出典: フリー百科事典『ウィキペディア(Wikipedia)』
ミッチェル・ネトラバリ・フィルター (Mitchell-Netravali フィルター) またはBC-スプライン は主にコンピューターグラフィックスで用いられる再構成フィルター群である。利用例としてはラスタ―画像 のアンチエイリアス や拡大縮小などが挙げられる。3次スプライン に含まれるため、画像処理プログラムではバイキュービック・フィルター と呼ばれることもある。
パラメーターが (1/3, 1/3) の Mitchell-Netravali フィルターのグラフ
Mitchell-Netravali フィルターは再構成フィルターのアーティファクト について調べるために設計された。区分的 3次 フィルターであり、幅1ピクセルの4つの台 を持つ。不連続 曲線などの不適切なフィルターを除くと、Mitchell-Netravali フィルターの性質を特徴付ける2つのパラメーター
B
{\displaystyle B}
と
C
{\displaystyle C}
が残る。Mitchell-Netravali フィルターは次のように定義される:
k
(
x
)
=
1
6
{
(
12
−
9
B
−
6
C
)
|
x
|
3
+
(
−
18
+
12
B
+
6
C
)
|
x
|
2
+
(
6
−
2
B
)
,
|
x
|
<
1
の場合
(
−
B
−
6
C
)
|
x
|
3
+
(
6
B
+
30
C
)
|
x
|
2
+
(
−
12
B
−
48
C
)
|
x
|
+
(
8
B
+
24
C
)
,
1
≤
|
x
|
<
2
の場合
0
その他の場合
{\displaystyle 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{, }}|x|<1{\text{の場合}}\\{\begin{array}{l}(-B-6C)|x|^{3}+(6B+30C)|x|^{2}\\\qquad +(-12B-48C)|x|+(8B+24C)\end{array}}&{\text{, }}1\leq |x|<2{\text{の場合}}\\0&{\text{その他の場合}}\end{cases}}}
分離 (separation ) を用いて、Mitchell-Netravali フィルターの2次元版を作ることもできる。その場合、2次元フィルターは1次元フィルターによる補間を縦横の2回行うことで置き換えられる。1次元の場合、ピクセル値
P
(
d
)
{\displaystyle P(d)}
をその周辺の4つのピクセルの値
P
0
{\displaystyle P_{0}}
,
P
1
{\displaystyle P_{1}}
,
P
2
{\displaystyle P_{2}}
,
P
3
{\displaystyle P_{3}}
を用いて表すと
P
(
d
)
=
(
(
−
1
6
B
−
C
)
P
0
+
(
−
3
2
B
−
C
+
2
)
P
1
+
(
3
2
B
+
C
−
2
)
P
2
+
(
1
6
B
+
C
)
P
3
)
d
3
+
(
(
1
2
B
+
2
C
)
P
0
+
(
2
B
+
C
−
3
)
P
1
+
(
−
5
2
B
−
2
C
+
3
)
P
2
−
C
P
3
)
d
2
+
(
(
−
1
2
B
−
C
)
P
0
+
(
1
2
B
+
C
)
P
2
)
d
+
1
6
B
P
0
+
(
−
1
3
B
+
1
)
P
1
+
1
6
B
P
2
{\displaystyle {\begin{aligned}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{aligned}}}
となる。ただし、
P
{\displaystyle P}
は
P
1
{\displaystyle P_{1}}
と
P
2
{\displaystyle P_{2}}
の間に位置し、
d
{\displaystyle d}
は
P
1
{\displaystyle P_{1}}
と
P
{\displaystyle P}
の距離である。
Mitchell-Netravali フィルターで再構成した画像の主観的評価。破線は開発者が推奨するパラメーターを示す。
パラメーター B と C の選び方によって違ったアーティファクトが発生しうる (図を参照)。開発者が推奨する値の組み合わせは
B
+
2
C
=
1
{\displaystyle B+2C=1}
で、特に
B
=
C
=
1
3
{\displaystyle \textstyle B=C={\frac {1}{3}}}
である。
特定のパラメーターの組み合わせで、既知の3次スプラインを表せる:
GIMPのバイキュービック・フィルター (B =0, C =0.5) と拡大図
Paint.NETのバイキュービック・フィルター (B =1, C =0) と拡大図
Don Mitchell, Arun Netravali: Reconstruction Filters in Computer Graphics. ACM SIGGRAPH Computer Graphics 22, 4 (Aug. 1988): 221–228, ISSN 0097-8930
Matt Pharr, Greg Humphreys: Physically Based Rendering. From Theory to Implementation, S. 279–367. Morgan Kaufmann, London 2004, ISBN 01-2553-180-X (PDF, 7 MB )