web-dev-qa-db-ja.com

ビデオ用に選択するサイズ変更アルゴリズムはどれですか?

VirtualDub を使用して、これらの settings でエンコードしています。 resize algorithms

しかし、私は自分の作品を1920x1080で記録し、それを1280x720にサイズ変更します。さて、質問:バランスの取れた品質とファイルサイズの決定をするとき、どのアルゴリズムを選択すべきですか?

私は常にLanczosを使用していました。それが事前構成されているからです。これらの説明は、私の質問ではまったく役に立ちません。

21
Grumpy ol' Bear

TL; DR

サンプリングする場合:Lanczosまたはスプラインフィルタリングを使用します。

サンプリング時:BicubicまたはLanczosフィルタリングを使用します。

これらは、私が何年にもわたって読んだ資料と、業界で使用されていると私が見たものに基づいています。推奨事項は、コンテンツタイプとアプリケーション領域によって異なる場合があります。

なぜそれが重要なのですか?

ビデオを縮小する場合、サイズ変更フィルターはそれほど重要ではないと主張できます。さらに重要なのは、そもそもデータが存在しない場所でデータを生成する必要があるため、アップスケーリング時に品質に影響を与えることです。

これらのフィルターはすべて、ファイルサイズにわずかな影響しか与えません。したがって、そこで大きな違いを心配する必要はありません。

事実は、いつものようにビデオをエンコードするとき、結果はソース素材に大きく依存するということです。結果を常に予測できるわけではありませんが、何が最も効果的かを確認してください。

異なるアルゴリズム

例として、ここに bicubicbilinear補間 を示します。

enter image description here

バイキュービック補間により滑らかなエッジが得られることを確認してください。これは非常に一般的な説明ですが、画像スケーリングアルゴリズムの概要 here を見つけることができます。

  • 双一次補間 は、ピクセルの2x2環境を使用して、これらのピクセルの平均を取り、新しい値を補間します。これは最良のアルゴリズムではありませんが、かなり高速です。

  • バイビック補間 は、ピクセルの4x4環境を使用して、最も内側のピクセルの重みを高くし、平均をとって新しいものを補間します値。それは、私が考える限り、最も人気があります。

  • Area averagingは、ソースピクセルと宛先ピクセルのマッピングを使用して、カバーされる宛先ピクセルの割合に関してソースピクセルを平均化します。 このページ によると、ダウンサンプリングするとより良い結果が得られるはずです。

  • スプラインおよびsinc 補間高次多項式を使用するため、バイキュービック補間よりも計算が困難です。処理時間の全体的な増加は、それらを使用する価値があるとは思いません。

  • Lanczos リサンプリングには、sincフィルターも含まれます。計算コストは​​高くなりますが、通常は非常に高品質であると説明されており、アップサンプリングとダウンサンプリングに使用できます。

  • hqx および2xSaIフィルターはピクセルアートのスケーリング(ゲームエミュレーターなど)に使用されます。ビデオでそれらを使用する正当な理由はないと思います。

ジェフ・アトウッドの比較

Jeff Atwoodが 画像補間アルゴリズムの比較 を実行したことがわかりました。彼の経験則は、ダウンサンプリングにはバイキュービック補間を使用し、アップサンプリング時にはバイリニア補間を使用することでした。とはいえ、これはビデオエンコーディングに通常推奨されるものではありません。また、一部のコメンターは、アトウッドのこの分野の専門知識に疑問を投げかけています。

しかし、彼はまた…

画像の縮小は完全に安全で合理的​​な操作です。情報を破棄するだけで、精度と解像度が低下します。画像を必要なだけ小さくすると、許容されるピクセル数の範囲内で完全な忠実度が得られます。どのアルゴリズムを選択しても、良い結果が得られます。 (まあ、素朴なPixel ResizeアルゴリズムまたはNearest Neighborアルゴリズムを選択しない限り)。

その他の例

これが 画像補間アルゴリズムのいくつかの例 です。

また、ダウンサンプリング用のバイキュービックフィルタリングを明示的にban禁止しているビデオエンコーディングシーンのドキュメント(シーンルール)も見つけました。代わりに、ランチョス、スプライン、または「ブラックマン」リサンプリングを推奨します。

26
slhck

これの一部を説明する良い画像を見つけました。

enter image description here

フルサイズ版 こちら

一般的に、大きな画像を小さな画像にする場合は穏やかなシャープ効果が必要で、小さな画像を大きな画像にする場合は穏やかなぼかし効果が必要です。 MadVRフィルターセットのデフォルトは、アップスケーリングの場合はLanczos、ダウンスケーリングの場合はバイキュービックです。

9
Jeff Atwood

3x3の元のピクセルを2x2のターゲットピクセルに変換しています。

シャープなラインを維持したい場合は、ランチョスまたはシャープなラインをぼかさないように周囲のピクセルをより多く使用するもの(ファーや反射など)を選択します

そうでない場合は、面積平均など(これもバイリニア/トリリニア)で十分です。

2
ZaB