画像スケーリング

ファイル:2xsai_example.svg|thumb|300px|最近傍スケーリング（左）と2×SaIスケーリング（右）でスケーリングされた画像
画像スケーリング（がぞうスケーリング、Image scaling）とは、コンピュータグラフィックスやデジタル画像処理でのデジタル画像のサイズ変更を指す。
ビデオ技術では、デジタル素材の拡大はアップスケーリングまたはResolution enhancement technologyとして知られている。
ベクトルグラフィック画像をスケーリングする場合、画像を構成するグラフィックプリミティブは、label=画質を損なうことなく、幾何学的変換を使用してスケーリングできる。ラスターグラフィック画像を拡大縮小する場合、ピクセル数が多い、または少ない新しい画像を生成する必要がある。ピクセル数を減らす（スケールダウンする）場合、これは通常、目に見える品質の低下をもたらす。デジタル信号処理の観点から、ラスターグラフィックスのスケーリングは、離散信号をサンプリングレート（この場合はローカルサンプリングレート）から別のサンプリングレートに変換するサンプリング周波数変換の2次元の例である。

**数学上**
画像スケーリングは、ナイキストサンプリング定理の観点から、画像のリサンプリングまたは画像の再構成の一種として解釈できる。この定理によれば、高解像度のオリジナルからより小さな画像へのダウンサンプリングは、エイリアシングアーティファクトを防ぐために適切な2DAnti-aliasing filterを適用した後にのみ実行できる。画像は、より小さな画像で保持できる情報に縮小される。
アップサンプリングの場合、アンチエイリアシングフィルターの代わりにReconstruction filterが使用される。
160 by 160 thumbnail of 'Green Sea Shell'.png|元の160x160pxの画像
160 by 160 thumbnail of 'Green Sea Shell' - 0. in fourier domain.png|空間周波数領域の元の画像
160 by 160 thumbnail of 'Green Sea Shell' - 1. fourier filtered for downsampling to 40 x 40.png|2Dローパスフィルタ処理されているが、160x160pxのままである
160 by 160 thumbnail of 'Green Sea Shell' - 1.1. fourier filtered image for downsampling to 40 x 40 in fourier domain.png|空間周波数領域でフィルタリングされた画像
160 by 160 thumbnail of 'Green Sea Shell' - 2. downsampling to 40 x 40 (nearest neighour).png | ローパスフィルター処理された160x160pxの画像を40x40pxに4倍ダウンサンプリング|代替文=ローパスフィルター処理された160x160pxの画像を40x40pxに4倍ダウンサンプリング
160 by 160 thumbnail of 'Green Sea Shell' - 3. fourier reconstruction from 40 x 40.png | 40x40pxのダウンサンプリングされた画像の160x160pxへの4倍フーリエアップサンプリング（正しい再構成）
160 by 160 thumbnail of 'Green Sea Shell' - 4. fourier reconstruction from 40 x 40 (aliasing ).png | 40x40pxのダウンサンプリングされた画像の160x160pxへの4倍フーリエアップサンプリング（エイリアシングあり）
アップスケーリングへのより洗練されたアプローチは、問題を逆問題として扱い、スケールダウンすると入力画像のように見えるもっともらしい画像を生成するという問題を解決する。これには、正則化項を使用した最適化手法や例からの機械学習の使用など、さまざまな手法が適用される。

**アルゴリズム**
画像サイズはいくつかの方法で変更できる。

**最近傍補間**
画像サイズを拡大する簡単な方法の1つは、最近傍補間で、すべてのピクセルを出力内の最も近いピクセルに置き換える。アップスケーリングの場合、これは同じ色の複数のピクセルが存在することを意味する。これにより、ピクセルアートの鮮明なディテールを維持できるが、以前は滑らかだった画像にジャギーが生じる。最近傍の「最近傍」は、数学的に最も近い必要はありません。一般的な実装の1つは、常にゼロに向かって丸めることである。このように丸めると、アーティファクトが少なくなり、計算が速くなる。date=December 2021
このアルゴリズムは、滑らかなエッジがほとんどない、あるいは全くない画像にしばしば使用される。一般的な応用例は、ピクセルアートに見られる。

**バイリニアおよびバイキュービックアルゴリズム**
バイリニア補間は、ピクセルの色の値を補間することで、元の素材が離散的な変化を持つ場合でも、連続的に変化する出力を得られる。
これは連続トーン画像には望ましいが、このアルゴリズムはlabel=コントラスト（エッジのシャープネス）を低下させるため、線画には望ましくない場合がある。
バイキュービック補間は、計算コストは​​増大するが大幅に優れた結果をもたらす。date=December 2021

**Sincとランチョスのリサンプリング**
理論上、Sinc resamplingは、完全に帯域制限された信号に対して可能な限り最良の再構成を提供する。しかし実際には、Sincリサンプリングの前提は現実世界のデジタル画像では完全には満たされない。Sinc法の近似であるLanczos resamplingは、より良い結果をもたらす。バイキュービック補間は、ランチョス・リサンプリングの計算効率の高い近似と見なすことができる。date=December 2021

**ボックスサンプリング**
バイリニア、バイキュービック、および関連するアルゴリズムの1つの弱点は、特定の数のピクセルをサンプリングすることである。すべてのバイサンプリングアルゴリズムで、特定のしきい値（1/2倍未満など）を下回るダウンスケーリングを行うと、アルゴリズムは隣接していないピクセルをサンプリングするため、データが失われ、結果が粗くなる。date=December 2021
この問題の簡単な解決策は、ボックスサンプリングである。これは、ターゲットピクセルを元の画像のボックスと見なし、ボックス内のすべてのピクセルをサンプリングするものである。これにより、すべての入力ピクセルが出力に寄与することが保証される。このアルゴリズムの主な弱点は、最適化が難しいことである。date=December 2021

**ミップマップ**
バイサンプリングスケーリングのダウンスケール問題に対する別の解決策は、ミップマップである。ミップマップは、事前にスケーリングされたダウンスケールコピーのセットである。ダウンスケーリングする際には、最も近い大きなミップマップが原点として使用され、バイリニアスケーリングの有効なしきい値を下回るスケーリングが使用されないようにする。このアルゴリズムは高速で、最適化も容易である。これは、OpenGLなどの多くのフレームワークで標準的に採用されている。代償として、画像メモリの使用量が増加し、標準の実装ではちょうど3分の1増加する。

**フーリエ変換法**
フーリエ変換に基づく単純な補間により、周波数領域にゼロ成分を埋め込む（スムーズウィンドウベースのアプローチではlabel=リンギングが低減される）。細部が良好に保存（または復元）される一方で、コンテンツの左端から右端への（およびその逆の）リンギングと循環ブリーディングが顕著である。

**エッジ保存補間**
エッジ保存補間アルゴリズムは、階段状のアーティファクトが生じる可能性のある他のアルゴリズムとは異なり、スケーリング後に画像のエッジを保持することを目的としている。
このタスクのアルゴリズムの例としては、新エッジ指向補間（New Edge-Directed Interpolation、略称：NEDI）
、エッジガイド画像補間（Edge-Guided Image Interpolation、略称：EGGI）
、Iterative Curvature-Based Interpolation（Iterative Curvature-Based Interpolation、略称：ICBI）、およびDirectional Cubic Convolution Interpolation（Directional Cubic Convolution Interpolation、略称：DCCI）
などがあげられる。2013年の分析では、一連のテスト画像でDCCIのPSNRとlabel=SSIMにおいて 最高のスコアを示したことがわかった
。

**hqx**
解像度が低い、または色数が少ない（通常2から256色）のコンピュータグラフィックスを拡大する場合、hqxまたは他のPixel-art scaling algorithmsによってより良い結果を得ることができる。これらは鋭いエッジを生成し、高レベルのディテールを維持する。

**ベクトル化**
ベクトル抽出、またはベクトル化は、別のアプローチを提供する。ベクトル化では、最初に、スケーリングされるグラフィックの解像度に依存しないベクトル表現を作成する。次に、解像度に依存しないバージョンを、目的の解像度でラスター画像としてレンダリングする。この手法は、Adobe Illustrator 、Live Trace、およびInkscapeで使用されている
。スケーラブル・ベクター・グラフィックスは単純な幾何学的画像に適しているが、写真は複雑であるため、ベクトル化には適していない。

**深層畳み込みニューラルネットワーク**
この方法では、機械学習を使用して、写真や複雑なアートワークなどのより詳細な画像を取得する。この方法を使用するプログラムには、waifu2x、Imglarger、NeuralEnhanceが含まれる。
などの AI 駆動型ソフトウェアを使用すると、オリジナルには存在しないディテールと鮮明さを歴史的な写真に追加できる。
File:John Howard Lindauer portrait.jpg|州議会議員名簿からスキャンしたJohn Howard Lindauerの270×368ピクセルの低品質写真
File:John Howard Lindauer 1983 (upscaled whitebackground enhanced).jpg|MyHeritage's Photo Enhancerで2160×2944ピクセルに拡大された同じ画像

**アプリケーション**

**全般的**
画像スケーリングは、 ウェブブラウザ、画像エディタ、画像およびファイルビューア、ソフトウェア拡大鏡、デジタルズーム、サムネイル画像の生成プロセス、および画面やプリンタを介した画像の出力などのアプリケーションで使用される。

**ビデオ**
このアプリケーションは、DVDプレーヤーなどのPAL解像度のコンテンツを、ホームシアター向けのHDTV対応出力機器向けに拡大する。アップスケーリングはリアルタイムで実行され、出力信号は保存されない。

**ピクセルアートスケーリング**
ピクセルアートグラフィックスは通常、低解像度であるため、個々のピクセルを注意深く配置する必要があり、多くの場合、色のパレットが制限されている。これにより、個々のピクセルに至るまで解像度の低い、定型化された視覚的な手がかりに依存した複雑な形状を定義するグラフィックスが作成される。このため、ピクセルアートのスケーリングは特に難しい問題になる。
従来のスケーリングアルゴリズムは知覚的な手がかりを考慮に入れていないため、ピクセルアートグラフィックスを処理するための特殊なアルゴリズムが開発された。
典型的なアプリケーションは、アーケードおよびコンソールエミュレーターでのFourth generation of video game consoles以前のビデオゲームの外観を改善することであるため、多くは、小さな入力画像に対して毎秒60フレームでリアルタイムに実行するように設計されている。
高速ハードウェアでは、これらのアルゴリズムはゲームやその他のリアルタイム画像処理に適している。これらのアルゴリズムは、ぼやけを最小限に抑えながら、シャープでクリスプなグラフィックを提供する。スケーリングアートアルゴリズムは、HqMAMEやDOSBoxなどのさまざまなエミュレーター、2Dゲームエンジン、 ScummVMなどのGame engine recreationに実装されている。
これらの技術はゲーマーの間で高く評価され、1980年代と1990年代のゲーム体験の復活を促した。date=December 2015
このようなフィルターは現在、 Xbox Live 、仮想コンソール、およびPSNの商用エミュレーターで使用されており、従来の低解像度ゲームを最新のHDディスプレイでより美しく表示できるようになっている。これらのフィルターを組み込んだ最近リリースされたゲームには、ソニック アルティメット ジェネシスコレクション、悪魔城ドラキュラ Xクロニクル、悪魔城ドラキュラX 月下の夜想曲、悪魔城ドラキュラX 血の輪廻などがある。

**リアルタイムスケーリング**
多くの企業が、ビデオゲームで画面に描画されるときなどに、ビデオフレームをリアルタイムでアップスケールする技術を開発している。
Nvidiaのディープラーニングスーパーサンプリング（deep learning super sampling、略称：DLSS）は、高解像度のコンピュータモニターに表示するためにディープラーニングを使用して、低解像度の画像を高解像度にアップサンプリングする
。
AMDのFidelityFX Super Resolution（略称：FSR）1.0は機械学習を採用しておらず、従来のシェーディングユニットで空間的なアップスケールを実現するために従来の人が作成したアルゴリズムを使用している。
FSR 2.0は、これも人によりチューニングされたアルゴリズムを使用した時間的（temporal）なアップスケールを利用している。
FSRの標準化されたプリセットは強制されておらず、Dota 2などの一部のタイトルでは解像度スライダーが提供されている
。
その他の技術には、Intel XeSSやNvidia Image Scaler（略称：NIS）がある
。

**脚注**

**関連項目**
 バイキュービック補間- バイリニア補間- Image reconstruction- Lanczos resampling- Spline interpolation- Seam carving- Video scaler- Scaling (geometry)