JA EN

画像補間法の比較 - 最近傍、バイリニア、バイキュービック、Lanczos の特性と使い分け

· 約 9 分で読めます

画像補間とは - なぜ補間が必要なのか

画像補間 (Image Interpolation) は、既知のピクセル値から未知の位置のピクセル値を推定する処理です。画像のリサイズ (拡大・縮小)、回転、歪み補正、パースペクティブ変換など、ピクセルグリッドの再配置が必要なあらゆる幾何学的変換で使用されます。

補間が必要になる場面: 例えば 100 × 100の画像を 200 × 200に拡大する場合、出力画像の各ピクセル位置を入力画像に逆変換すると、整数座標に一致しない小数座標 (例: x=3.7, y=5.2) が得られます。この小数座標でのピクセル値を周囲の既知ピクセルから推定するのが補間です。

補間品質の評価指標:

補間法の分類: 補間法は参照するピクセル数 (サポートサイズ) で分類されます。最近傍法は 1 ピクセル、バイリニアは 4 ピクセル (2x2)、バイキュービックは 16 ピクセル (4x4)、Lanczos-3 は 36 ピクセル (6x6) を参照します。参照ピクセル数が多いほど品質は向上しますが、計算コストも増加します。

最近傍法 (Nearest Neighbor) - 最速だが品質は最低

最近傍法は最も単純な補間アルゴリズムで、目的座標に最も近い整数座標のピクセル値をそのまま使用します。計算コストが最小で、特定の用途では最適な選択肢となります。

アルゴリズム: 出力ピクセル (x', y') に対応する入力座標 (x, y) を計算し、round(x), round(y) の位置のピクセル値を出力します。浮動小数点の丸めのみで補間が完了するため、1 ピクセルあたり 1 回のメモリアクセスで済みます。

利点:

欠点:

適切な使用場面: ピクセルアートの整数倍拡大 (2x, 3x, 4x) では、最近傍法がピクセルの鮮明さを保持する唯一の正しい選択です。また、セマンティックセグメンテーションのマスク画像では、補間によって存在しないクラス値が生成されることを防ぐため、最近傍法を使用する必要があります。OpenCV では cv2.INTER_NEAREST で指定します。

実測性能: 1,920 × 1,080→ 3,840 × 2,160の拡大処理で約 2ms (CPU)。同条件でバイリニアは約 7ms、バイキュービックは約 15ms です。

バイリニア補間 - 品質と速度のバランス

バイリニア補間 (Bilinear Interpolation) は、目的座標を囲む 4 つのピクセル (2x2) の加重平均で値を推定します。品質と計算コストのバランスに優れ、リアルタイムアプリケーションで最も広く使用される補間法です。

アルゴリズム: 座標 (x, y) の値を求める場合、まず x 方向に 2 回の線形補間を行い、次に y 方向に 1 回の線形補間を行います (計 3 回の線形補間)。具体的には、4 つの隣接ピクセル f(0,0), f(1,0), f(0,1), f(1,1) と小数部分 (dx, dy) から:

result = f(0,0)(1-dx)(1-dy) + f(1,0)dx(1-dy) + f(0,1)(1-dx)dy + f(1,1)dx*dy

利点:

欠点:

GPU での高速処理: 現代の GPU はテクスチャユニットにバイリニア補間をハードウェア実装しており、追加コストなしで利用可能です。WebGL の gl.LINEAR、CUDA のテクスチャメモリなど、GPU プログラミングではバイリニアがデフォルトの補間法です。

OpenCV では cv2.INTER_LINEAR で指定し、cv2.resize() のデフォルト補間法でもあります。Pillow では Image.BILINEAR (または Image.LINEAR) で指定します。

バイキュービック補間 - 高品質リサイズの標準

バイキュービック補間 (Bicubic Interpolation) は、目的座標を囲む 16 ピクセル (4x4) を参照し、3 次多項式で重み付けする高品質な補間法です。Photoshop のデフォルト補間法であり、印刷用途や高品質な画像処理の標準として広く採用されています。

アルゴリズム: 各方向に 4 点を参照し、3 次の畳み込みカーネルで重み付けします。カーネル関数 W(t) は:

W(t) = (a+2)|t|³ - (a+3)|t|² + 1 (|t| ≤ 1)

W(t) = a|t|³ - 5a|t|² + 8a|t| - 4a (1 < |t| < 2)

パラメータ a は通常 -0.5 (Catmull-Rom スプライン) または -0.75 (Photoshop) が使用されます。a=-0.5 は理論的に最適な近似精度を持ち、a=-0.75 はよりシャープな結果を生みます。

利点:

欠点:

実測比較 (1,920 × 1,080→ 3,840 × 2,160): PSNR でバイリニアより平均 1.5-2.0dB 高く、SSIM で 0.02-0.03 ポイント優れます。処理時間は約 15ms (CPU) で、バイリニアの約 2 倍です。OpenCV では cv2.INTER_CUBIC、Pillow では Image.BICUBIC で指定します。

Lanczos 補間 - 最高品質のリサンプリング

Lanczos 補間は sinc 関数を窓関数で切り詰めた理論的に最適に近い補間カーネルを使用し、最高品質のリサンプリングを実現します。Lanczos-2 (4x4)、Lanczos-3 (6x6)、Lanczos-4 (8x8) のバリエーションがあり、Lanczos-3 が最も一般的です。

理論的背景: 理想的な補間は sinc 関数 (sin(πx)/(πx)) による畳み込みですが、sinc 関数は無限のサポートを持つため実用的ではありません。Lanczos カーネルは sinc 関数を Lanczos 窓 (sinc(x/a)) で切り詰めたもので、有限サポートで sinc に最も近い近似を提供します。

L(x) = sinc(x) × sinc(x/a) (|x| < a)

L(x) = 0 (|x| ≥ a)

a=3 (Lanczos-3) が品質とコストの最適バランスとされ、6x6=36 ピクセルを参照します。

利点:

欠点:

実測性能: 1,920 × 1,080→ 3,840 × 2,160で約 35ms (CPU)。PSNR はバイキュービックより 0.3-0.8dB 高く、特に縮小処理で差が顕著です。OpenCV では cv2.INTER_LANCZOS4 (Lanczos-4)、Pillow では Image.LANCZOS (Lanczos-3) で指定します。libvips は Lanczos-3 をデフォルトとし、大量画像のバッチ処理に最適化されています。

用途別の最適な補間法選択ガイド

補間法の選択は用途、品質要件、パフォーマンス制約によって決まります。以下に具体的なユースケースごとの推奨を示します。

Web 画像のサムネイル生成: Lanczos-3 を推奨。縮小処理では Lanczos のプリフィルタリング効果が最も有効で、モアレやエイリアシングを抑制します。サーバーサイドでの事前生成であれば処理時間は問題になりません。ImageMagick のデフォルト、libvips のデフォルトも Lanczos です。

リアルタイム動画処理: バイリニアを推奨。GPU ハードウェアサポートにより追加コストなしで利用可能です。4K 60fps のリアルタイム処理ではバイキュービック以上は GPU でも負荷が高くなります。

ピクセルアート・ドット絵: 最近傍法が唯一の正解。他の補間法はピクセルの境界をぼかし、ドット絵の意図したシャープさを破壊します。整数倍 (2x, 3x) の拡大に限定し、非整数倍は避けます。

医療画像・科学画像: バイキュービック (a=-0.5) を推奨。Lanczos のリンギングが診断に影響する可能性があるため、リンギングの少ないバイキュービックが安全です。DICOM ビューアの多くがバイキュービックを採用しています。

印刷用高解像度出力: Lanczos-3 を推奨。印刷では処理時間よりも品質が最優先です。300dpi 以上の出力では補間品質の差が視認可能になるため、最高品質の Lanczos を選択します。

機械学習の前処理: バイリニアまたはバイキュービック。学習データの前処理では処理速度が重要で、数百万枚の画像を処理する場合は速度差が数時間に影響します。推論時はバイリニアで十分です。PyTorch の F.interpolate はバイリニアがデフォルトです。

関連記事

画像リサイズのベストプラクティス - アスペクト比と補間アルゴリズムの選び方

画像リサイズ時のアスペクト比維持、補間アルゴリズムの違い、用途別の推奨サイズを解説。Web ・印刷・ SNS それぞれに最適なリサイズ手法を紹介します。

画像拡大技術の比較 - 補間法から超解像まで

最近傍補間、バイリニア、バイキュービックなどの古典的手法から、深層学習ベースの超解像技術まで、画像拡大手法を網羅的に比較します。

エッジ検出アルゴリズム比較 - Sobel, Canny, Laplacian の原理と使い分け

主要なエッジ検出アルゴリズムの数学的原理から実装、性能比較まで解説。Sobel、Canny、Laplacian の特性を理解し、用途に応じた最適な手法を選択する指針を提供します。

シャープネス処理の種類と使い分け - 画像の鮮鋭化を極める実践ガイド

アンシャープマスク、ハイパスフィルタ、デコンボリューションなど主要なシャープニング手法の原理と最適な使い分けを具体的なパラメータとともに解説します。

アルファマッティングの技術解説 - 自然画像から精密な前景抽出を実現する手法

画像マッティングの原理から最新の深層学習手法まで網羅的に解説。トライマップ、クローズドフォーム、ディープマッティングの実装と比較を詳述します。

工業検査における画像処理技術 - 外観検査から寸法計測まで

製造業の品質管理で使われる画像処理技術を体系的に解説。欠陥検出、寸法計測、パターンマッチング、深層学習による異常検知の実践手法を紹介します。

関連用語