画像ダウンサイジングに使用するアルゴリズムは何ですか?
-
28-09-2019 - |
質問
画像ダウンサイジングに使用するアルゴリズムは何ですか?
より速いのは何ですか?
フラッシュやシルバープレーヤー、HTML5などの巨人によって、画像のサイズ変更(特に大きな600x600から超小型6x6までのダウンサイジング)に対してどのアルゴリズムが実行されますか?
解決
Bilinearは最も広く使用されている方法であり、最も速い隣のダウンサンプリングアルゴリズムと同じくらい速く実行することができます。
双線形サンプリングの素朴な実装に関する問題は、それを使用して画像を半分以上削減する場合、最近隣人と遭遇するものと同様のエイリアシングアーティファクトに遭遇できることです。これに対する解決策は、ピラミッドベースのアプローチを使用することです。基本的に600x600から30x30を減らしたい場合は、最初に300x300、次に150x150、75x75、38x38に減少し、その後Bilinearを使用して30x30に減少します。
画像を半分に減らすと、双線形サンプリングアルゴリズムがはるかに簡単になります。基本的に、ピクセルの各交互の行と列について:
y[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;
他のヒント
特別なケースが1つあります。JPGを8倍以上ダウンサイジングします。8の直接的な要因は、RAW JPGデータを減圧せずに実行できます。 JPGは8x8ピクセルの圧縮ブロックとして保存され、平均ピクセル値が最初に保存されます。その結果、ディスクやネットワークからファイルを読み取るのに時間がかかるよりも時間がかかります。
通常、スケーリングのために双線形フィルターに固執します。画像を変更するため 小さな しかし、サイズは運が悪いかもしれません。ほとんどのアイコンは、手で編集されており、最高のように見えます。
ここ 概念を非常によく説明する優れたリソースです。
素晴らしいことがあります 記事 さまざまな画像フィルターの効果を示すコードプロジェクトで。
画像を縮小するために、二頭筋アルゴリズムを提案します。これには自然なシャープニング効果があるため、画像の詳細はより小さなサイズで保持されます。