Mitchell–Netravali filters

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.{{cite conference |last1=Mitchell |first1=Don |last2=Netravali |first2=Arun |author-link2=Arun Netravali |date=June 1988 |title=Reconstruction Filters in Computer-Graphics |url=https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf |conference=ACM SIGGRAPH |location=Atlanta |publisher=Association for Computing Machinery |publication-place=New York City |volume=22 |issue=4 |pages=221–228 |citeseerx=10.1.1.582.7394 |doi=10.1145/378456.378514 |isbn=0897912756 |issn=0097-8930 |access-date=25 October 2020 |book-title=Proceedings of the 15th annual conference on computer graphics and interactive techniques (SIGGRAPH '88)}}{{cite book |last1=Pharr |first1=Matt |last2=Jakob |first2=Wenzel |last3=Humphreys |first3=Greg |title=Physically Based Rendering: From Theory to Implementation |url=http://www.pbr-book.org/ |chapter=Sampling and Reconstruction |chapter-url=http://www.pbr-book.org/3ed-2018/Sampling_and_Reconstruction.html |edition=3rd |pages=279–367 |isbn=978-0-12-800645-0 |publisher=Morgan Kaufmann Publishers |location=San Francisco |date=November 2016 |access-date=25 October 2020}}{{cite thesis |type=Diploma thesis |last=Theußl |first=Thomas |title=Sampling and Reconstruction in Volume Visualization |url=https://web.archive.org/web/20141019172025/http://www.cg.tuwien.ac.at/~theussl/DA/thesis.html |chapter=The eighties: an image processing view |chapter-url=http://www.cg.tuwien.ac.at/~theussl/DA/node11.html |publisher=TU Wien |date=29 December 1999 |url-status=dead |archive-url=https://web.archive.org/web/20140824074425/http://www.cg.tuwien.ac.at/~theussl/DA/node11.html |archive-date=24 August 2014}}

Definition

Image:Mitchell Filter.svg

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) = \frac{1}{6}

\begin{cases}

\begin{array}{l}

(12-9B-6C)|x|^3 + (-18+12B+6C)|x|^2 \\

\qquad + (6-2B)

\end{array} & \text{, if } |x|<1 \\

\begin{array}{l}

(-B-6C)|x|^3 + (6B+30C)|x|^2 \\

\qquad + (-12B-48C)|x| + (8B+24C)

\end{array} & \text{, if } 1\le |x|<2 \\

0 & \text{otherwise}

\end{cases}

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 P_0, P_1, P_2, P_3 the color value is then calculated P(d) as follows:

:\begin{align}

P(d) &\textstyle = \left((-\frac{1}{6}B-C)P_0 + (-\frac{3}{2}B-C+2)P_1 + (\frac{3}{2}B+C-2)P_2 + (\frac{1}{6}B+C)P_3\right) d^3 \\

&\textstyle + \left((\frac{1}{2}B+2C)P_0 + (2B+C-3)P_1 + (-\frac{5}{2}B-2C+3)P_2 -CP_3\right) d^2 \\

&\textstyle + \left((-\frac{1}{2}B-C)P_0 + (\frac{1}{2}B+C)P_2\right) d \\

&\textstyle + \frac{1}{6}BP_0 + (-\frac{1}{3}B+1)P_1 + \frac{1}{6}BP_2 \\

\end{align}

P lies between P_1 and P_2; d is the distance between P_1 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 \textstyle B=C=\frac{1}{3} as a satisfactory compromise.

Image:Mitchell-Netravali artifacts.svg

Implementations

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

class="wikitable"

!B

!C

!Cubic spline

!Common implementations

style="text-align:right;"|0

|style="text-align:center;"|Any

|Cardinal splines

|

style="text-align:right;"|0

|style="text-align:right;"|0.5

|Catmull-Rom spline

|Bicubic filter in GIMP

style="text-align:right;"|0

|style="text-align:right;"|0.75

|Unnamed

|Bicubic filter in Adobe Photoshop{{cite web |type=Project |last=Summers |first=Jason |title=What is bicubic resampling? |url=https://entropymine.com/imageworsener/bicubic/ |date=September 2011 |website=Entropymine |access-date=25 October 2020}}

style="text-align:right;"|1/3

|style="text-align:right;"|1/3

|Mitchell–Netravali

|Mitchell filter in ImageMagick{{cite tech report |last=Thyssen |first=Anthony |type=Manual |title=Examples of ImageMagick Usage |url=https://legacy.imagemagick.org/Usage/ |chapter=Resampling Filters |chapter-url=https://legacy.imagemagick.org/Usage/filter/ |publisher=ImageMagick |access-date=25 October 2020}}

style="text-align:right;"|1

|style="text-align:right;"|0

|B-spline

|Bicubic filter in Paint.net

Examples

{{Gallery

|width=512

|height=256

|align=left

|File:Resize Catmull-Rom.png|alt1=Back of statue facing a city building whose facade is Greek columns covered by a huge U.S. flag|Magnification with a bicubic filter in GIMP (Catmull-Rom)

|File:Resize Cubic B-Spline.png|alt2=Profile of stone face jutting out from a mountainside. Three workers clamber over it, each about the height of the face's upper lip.|Magnification with a bicubic filter in Paint.NET (B-spline)

}}

{{Clear}}

See also

References

{{reflist}}

{{DEFAULTSORT:Mitchell-Netravali filters}}

Category:Digital signal processing