ffmpegプログラマーが使用するlibSwscaleとは何ですか?
- AVエンコーディング/デコーディングにはどのようなメリットがありますか?
- av * libsに関連するその位置は何ですか?
Swscale は、エンコード/デコードではなく、主にプレーヤーに使用されます。エンコードされたときとは異なるピクセル サイズ/アスペクト比でビデオを表示する必要があり、ハードウェア ビデオ スケーリングのサポートがない場合に必要です。Swscale は、さまざまな RGB および YUV カラー フォーマット間の色空間変換、およびパック (単一のバッファー内のすべてのチャネル) と平面 (各チャネルが独自のバッファーを持つ) フォーマット間の変換も実行します。これらのルーチンはすべて高度に最適化されています。私の知る限り、少なくとも x86 と x86_64 では、それらのいずれに対しても高速なソフトウェア実装は現在存在しません。
ソースビデオがまだエンコーダーで必要な形式になっていない場合は、ビデオのエンコードにも Swscale が必要になることがあります。たとえば、ソース ビデオが RGB の場合、ほとんどのコーデックは YUV で動作するため、おそらく適切な YUV 平面形式に変換する必要があります。ほとんどの YUV フォーマットは、Y 平面 (輝度、すなわち強度データ)。
swscale は高品質のリサンプリングも実行できます。例: lanczos アルゴリズムを使用します。したがって、基本的には色空間間、「ビット数」間で変換し、サイズ変更も行います。また、MMXなどを使用するオプションもあるため、高速にすることができます。