どうやら、バイキュービックピクセル補間は、(リアルタイムかどうかに関係なく)画像を拡大または縮小するのに適しています。
ダウンサイジングする前にローパスフィルターを使用することをお勧めしますか、それともバイキュービックサンプリングはエイリアシングの問題をまったく処理しますか?
どうやら、バイキュービックピクセル補間は、(リアルタイムかどうかに関係なく)画像を拡大または縮小するのに適しています。
ダウンサイジングする前にローパスフィルターを使用することをお勧めしますか、それともバイキュービックサンプリングはエイリアシングの問題をまったく処理しますか?
回答:
ダウンサンプリングパスが適切に設計されている場合、ダウンサンプリングの一部として効果的にローパスフィルタリングが実行されます。個別のローパスフィルター操作は必要ありません。
基本的に、ダウンサンプリングするときは、ソース(高解像度)の画像ピクセルに対してフィルターを実行しますが、フィルターは宛先(低解像度)のピクセルの位置でのみ評価します。このフィルターのフットプリントは、ソースピクセルの間をスキップして情報の欠落を回避するために、ターゲットピクセル間のおおよその間隔である必要があります。しかし、これはフィルターのフットプリントがいくつかのソースピクセル幅になるため、ソースを効果的にローパスすることを意味します。
たとえば、画像を各軸で正確に10倍ダウンサンプリングするとします。ボックスフィルター(たとえば)を使用して、各宛先ピクセルをソースピクセルの10x10ボックスの平均に設定します。これは10px未満の機能をすべて消去するため、実質的にローパスフィルターです。
あなたはバイキュービック補間について言及しています。ここでは、フィルタリングと補間を区別する必要があります。補間は、ダウンサンプリングではなく、アップサンプリングに適しています。バイキュービック補間は、バイキュービックスプラインパッチをピクセルの4x4近傍に適合させ、補間されたポイントでパッチを評価することで機能します。小さな係数(最大2倍程度)で画像をダウンサンプリングするには十分に機能する可能性がありますが、それよりもはるかに遠い場合は失敗します。たとえば、前の例のように10倍のダウンサンプリングを行った場合、バイキュービックでソースピクセルの大部分が失われ、結果にかなりエイリアスが発生する可能性があることがわかります。
一方、バイキュービックフィルタリングは、(ボックス、三角形、ガウス、ランチョスなどのカーネルではなく)バイキュービック関数であるカーネルを使用した、単なる標準のフィルタリングです。Mitchell-Netravaliカーネルは、このタイプの典型的な例です。ダウンサンプリングに使用する場合、カーネルは先に説明したように宛先ピクセルの間隔に合わせて適切にサイズ設定する必要があり、4x4またはその他の固定サイズの近傍だけでなく、フットプリントのすべてのピクセルを合計します。