スマホだと画像例が適切に表示されない場合があります。
はじめに
バイキュービック畳み込み補間には1つの自由度としてパラメータ$a$が存在します。1972年頃、最初に米国TRW社のRifmanらにより提案された際は$-1.0$固定でした。人工衛星画像が対象だったことが関係していたと推測されます。その後1975年に同社Simonにより $-0.5,\ -0.75\ -1.0$ が意味のある値とされました。しかし$-0.75$や$-1.0$については、補間された結果について言及されていないことに注意する必要があります。表にすると以下の通りになります。
| $a$の値 | 畳み込みカーネル | 補間された結果(補間関数) |
|---|---|---|
| $-0.5$ | 厳密な定勾配補間(exact constant slope interpolation) | |
| $-0.75$ | 2次微分が $x=1$ で連続になる | |
| $-1.0$ | 微分が $x=1$ でsinc関数の微分と一致する |
1981年Keysにより一般化され、$-0.5$の場合のみ、補間関数$g(x)$が入力関数$f(x)$の2次微分までのテイラー近似(剰余項除く)と一致することが示されました。
Keysの命題:
$x$における$f(x)$の2次微分までのテイラー級数展開は;
$\quad f(x)=f(x_j)+shf’(x_j)+s^2h^2f’’(x_j)/2+O(h^3)$
となる。ただし、$O(h^3)$は剰余項である。
$a=-0.5$ の場合に限り、補間関数$g(x)$との関係が
$\quad f(x)-g(x)=O(h^3)$
となり、$f(x)$と$g(x)$は剰余項を除き一致する。
このように$-0.5$が(数学的に)正しいとされたにもかかわらず、いまだに多くの処理系で$-0.75$が採用されています。
この理由は不明で、推測するに、$-0.75$のほうが補間画像が鮮明に見える(ように感じられる)とか、『畳み込みカーネルが2次微分連続』を『補間関数が2次微分連続』とはき違えた、といったところでしょうか。
いずれにしても、自分が使う処理系がどの設定なのか、どの設定だとどのような影響があるか、理解しておく必要があります。
パラメータaの作用を示す例
この命題の作用を端的に示す例が、$f(x)$が1次関数の場合です。$a=-0.5$ の場合のみ$g(x)$が1次関数になります。(上の『exact constant slope interpolation』はこのことだと考えられます)
例えば、
$\quad \begin{bmatrix} f(-1) & f(0) & f(1) & f(2) \end{bmatrix} = \begin{bmatrix} -1 & 0 & 1 & 2 \end{bmatrix}$
であると、区間 $x \in [0,1]$ の補間関数は
$\quad g(x) = -2(2a+1)x^3+3(2a+1)x^2-2ax$
であり、$a=-0.5$ の場合のみ$g(x)$は1次関数(2次と3次の項の係数がゼロ)になります。
以下は、これを$a$の各設定についてグラフにしたものです。青色の点線は$f(x)$、青色の丸は$f(x)$のサンプリングされた値、橙色の線は$g(x)$を表します。
| $a=-0.5$ | $a=-0.75$ | $a=-1.0$ |
|---|---|---|
![]() |
![]() |
![]() |
単純グラデーション画像の補間例
$x$方向にのみ輝度値が単調増加する単純グラデーション画像について、バイキュービック補間例を示します。
以下は、入力画像と補間画像について、輝度値を$z$としてプロットした3Dグラフです。
| 入力 | $a=-0.5$ | $a=-0.75$ | $a=-1.0$ |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
以下は、輝度値が等しい点をプロットした等高線グラフです。
| $a=-0.5$ | $a=-0.75$ | $a=-1.0$ |
|---|---|---|
![]() |
![]() |
![]() |
以下は、単純グラデーション画像と、その16倍拡大画像の例です。
$a=−0.75,\ −1.0$ では縦縞状の濃淡むらが見られます。
| 入力 | $a=-0.5$ | $a=-0.75$ | $a=-1.0$ | 最近傍補間 (比較対照用) |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
45度グラデーション画像の補間例
以下は、画素の値をZとして3Dプロットした例です。
| 入力 | $a=-0.5$ | $a=-0.75$ | $a=-1.0$ |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
以下は、輝度値が等しい点をプロットした等高線グラフです。
| $a=-0.5$ | $a=-0.75$ | $a=-1.0$ |
|---|---|---|
![]() |
![]() |
![]() |
以下は、45度グラデーション画像と、その16倍拡大画像の例です。
| 入力 | $a=-0.5$ | $a=-0.75$ | $a=-1.0$ | 最近傍補間 (比較対照用) |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
45度ストライプ画像の補間拡大例
以下は、45度ストライプ画像と、その8倍拡大画像の例です。
45度ストライプ画像は、ピッチ$9.28\sqrt{2}$ 画素の45度ストライプパターンを、Qtのソフトレンダラを用いてアンチエリアシング有効のストライプパターンを描画し、OpenCVのcv::GaussianBlurで5x5ガウシアンを適用する手順で作成しました。各設定の拡大画像は、8倍拡大後の画像から x:160, y:160, w:180, h:180 の範囲を切り出しました。
| 入力 | $a=-0.5$ | $a=-0.75$ | $a=-1.0$ |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
自然物画像の補間拡大例
本作用の影響が端的に見られる、自然物(人物写真)画像の拡大例を以下に示します。
$a=−0.75,\ −1.0$ ではこめかみ部分に人工的なまだら模様が見られます。
| $a=-0.5$ | $a=-0.75$ | $a=-1.0$ | 最近傍補間 (比較対照用) |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
上記は以下の標準テスト画像を8倍拡大し、x:928, y:432, w:160, h:160 の範囲を切り出したものです。

出典:MIT Works Acquired Digitally - cameraman
画像認識への影響
特徴抽出器を人手で設計する従来型のパターン認識においては、特徴量にHOG(勾配方向ヒストグラム)が広く用いられています。
以下は前記45度ストライプ画像のHOGを取得し、影響の定量化を試みた例です。$a=−0.75,\ −1.0$ では方向成分の拡散が見られます。
- OpenCVのcv::HOGDescriptorを用いて90方向(2度刻み)のHOGを取得しました。
- 画像全体(ただし外周20画素幅は除外)をひとつのブロックとしました。
- 合計が1になるよう正規化してあります。
参考文献
-
George Wolberg
Digital Image Warping, pp.130-131
ISBN 0-8186-8944-7 -
Samuel S. Rifman
Digital rectification of ERTS multispectral imagery
NASA Technical Report 73N28327, 1973
https://ntrs.nasa.gov/citations/19730019595 -
K. W. Simon
Digital Image Reconstruction and Resampling for Geometric Manipulation
LARS Symposia, Paper 67, 1975
https://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1068&context=lars_symp -
Robert G Keys
Cubic convolution interpolation for digital image processing
IEEE Transactions on Acoustics, Speech, and Signal Processing 29 (6), 1981, pp.1153–1160
https://ieeexplore.ieee.org/document/1163711
関連記事



































