Mitchell–Netravali filters

From testwiki
Jump to navigation Jump to search

Template:Short description The Mitchell–Netravali filters or BC-splines are a group of reconstruction filters used primarily in computer graphics, which can be used, for example, for anti-aliasing or for scaling raster graphics. They are also known as bicubic filters in image editing programs because they are bi-dimensional cubic splines.[1][2][3]

Definition

Graph of the Mitchell–Netravali filter with parameters B = C = 1/3

The Mitchell–Netravali filters were designed as part of an investigation into artifacts from reconstruction filters. The filters are piece-wise cubic filters with four-pixel wide supports. After excluding unsuitable filters from this family, such as discontinuous curves, two parameters B and C remain, through which the Mitchell–Netravali filters can be configured. The filters are defined as follows:

k(x)=16{(12−9B−6C)|x|3+(−18+12B+6C)|x|2+(6−2B), if |x|<1(−B−6C)|x|3+(6B+30C)|x|2+(−12B−48C)|x|+(8B+24C), if 1≤|x|<20otherwise

It is possible to construct two-dimensional versions of the Mitchell–Netravali filters by separation. In this case the filters can be replaced by a series of interpolations with the one-dimensional filter. From the color values of the four neighboring pixels P0, P1, P2, P3 the color value is then calculated P(d) as follows:

P(d)=((−16B−C)P0+(−32B−C+2)P1+(32B+C−2)P2+(16B+C)P3)d3+((12B+2C)P0+(2B+C−3)P1+(−52B−2C+3)P2−CP3)d2+((−12B−C)P0+(12B+C)P2)d+16BP0+(−13B+1)P1+16BP2

P lies between P1 and P2; d is the distance between P1 and P.

Subjective effects

Various artifacts may result from certain choices of parameters B and C, as shown in the following illustration. The researchers recommended values from the family B+2C=1 (dashed line) and especially B=C=13 as a satisfactory compromise.[1][4]

Subjective appearance of images reconstructed with various Mitchell–Netravali filters.

Implementations

The following parameters result in well-known cubic splines used in common image editing programs:

B C Cubic spline Common implementations
0 Any Cardinal splines
0 0.5 Catmull-Rom spline
0 0.75 Unnamed Bicubic filter in Adobe Photoshop[5]
1/3 1/3 Mitchell–Netravali Mitchell filter in ImageMagick[4]
1 0 B-spline Bicubic filter in Paint.net

Examples

Template:Gallery Template:Clear

See also

References

Template:Reflist