Mitchell–Netravali filters

From testwiki
Revision as of 16:40, 19 January 2025 by 2600:1700:31b0:6590:5894:192a:a68f:c02d (talk) (References: Fixed date typo from 1998 to 1988.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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{(129B6C)|x|3+(18+12B+6C)|x|2+(62B), if |x|<1(B6C)|x|3+(6B+30C)|x|2+(12B48C)|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)=((16BC)P0+(32BC+2)P1+(32B+C2)P2+(16B+C)P3)d3+((12B+2C)P0+(2B+C3)P1+(52B2C+3)P2CP3)d2+((12BC)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 Bicubic filter in GIMP
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