10

画像の縮小に使用するアルゴリズムは?

何が速いですか?

フラッシュやシルバー プレーヤー、html5 などの巨人による画像のサイズ変更 (たとえば、大きな 600x600 から超小さな 6x6 への特別なダウンサイジング) には、どのようなアルゴリズムが実行されますか?

4

4 に答える 4

11

バイリニアは最も広く使用されている方法であり、最も高速ですが精度が最も低い最近傍ダウンサンプリング アルゴリズムとほぼ同じ速度で実行できます。

バイリニア サンプリングの素朴な実装の問題点は、それを使用して画像を半分以上縮小すると、最近傍で遭遇するものと同様のエイリアシング アーティファクトに遭遇する可能性があることです。これに対する解決策は、ピラミッド ベースのアプローチを使用することです。基本的に、600x600 を 30x30 に縮小したい場合は、まず 300x300 に縮小し、次に 150x150、次に 75x75、次に 38x38 に縮小してから、バイリニアを使用して 30x30 に縮小します。

イメージを半分に縮小すると、バイリニア サンプリング アルゴリズムがはるかに単純になります。基本的に、ピクセルの交互の行と列ごとに:

y[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;
于 2010-06-22T01:30:16.757 に答える
3

特殊なケースが 1 つあります。JPG を 8 分の 1 以上に縮小する場合です。生の JPG データを解凍せずに、直接 8 分の 1 に再スケーリングできます。JPG は 8x8 ピクセルの圧縮ブロックとして保存され、最初に平均ピクセル値が表示されます。その結果、通常、ファイルをダウンスケールするよりも、ディスクまたはネットワークからファイルを読み取る方が時間がかかります。

于 2010-06-22T10:44:09.187 に答える
1

通常、縮小にはバイリニア フィルターを使用します。ただし、画像のサイズを小さなサイズに変更するには、うまくいかない場合があります。ほとんどのアイコンは、見栄えを良くするために手動でピクセル編集されています。

これは、概念を非常によく説明する優れたリソースです。

于 2010-06-22T00:37:27.600 に答える
1

The Code Project には、さまざまな画像フィルターの効果を示す優れた記事があります。

画像を縮小するには、バイキュービック アルゴリズムをお勧めします。これには自然なシャープ効果があるため、画像の細部は小さいサイズでも保持されます。

于 2010-06-22T00:38:39.660 に答える