FFmpeg スケーラ ドキュメント
1 概要
FFmpeg のリスケーラは、libswscale ライブラリの画像変換機能に対する高水準のインターフェースを提供します。具体的には、画像のリスケール(拡大縮小)と pixel format の変換を行えます。
2 スケーラのオプション
映像スケーラは以下の名前付きオプションに対応します。
オプションは FFmpeg の各ツールで -option value の形式で指定して設定します(後述する一部のオプションは API からのみ利用できます)。プログラムから使う場合は、SwsContext のオプションに直接設定するか、libavutil/opt.h の API を通して設定できます。
scaler, scaler_sub
使用するスケーリングアルゴリズムを選びます。既定値はどちらも ‘auto’ です。以下の値を指定できます。
‘auto’
自動選択。‘scaler_sub’ では ‘scaler’ と同じアルゴリズムを使うという意味になります。‘scaler’ では ‘sws_flags’ で選ばれたスケーラフラグが既定値になります。
‘bilinear’
バイリニアフィルタ(別名トライアングルフィルタ)。
‘bicubic’
2-tap の3次 BC スプライン(別名 Mitchell-Netravali スプライン)。B と C のパラメータは param0 と param1 で設定でき、既定値はそれぞれ 0.0 と 0.6 です。
‘point, neighbor’
ポイントサンプリング(別名ニアレストネイバー)。
‘area’
面積平均。拡大時は ‘bilinear’ と同等です。
‘gaussian’
2-tap のガウシアンフィルタ近似。シャープネスのパラメータは param0 で設定でき、既定値は 3.0 です。
‘sinc’
窓関数なしの sinc フィルタ。
‘lanczos’
Lanczos リサンプリング(sinc 窓をかけた sinc)。フィルタのタップ数は param0 で設定でき、既定値は 3 です。
‘spline’
窓関数なしの自然な3次スプライン。
sws_flags
スケーラフラグを設定します。スケーリングアルゴリズムの指定にも使えますが、この用途は非推奨で、代わりに ‘scaler’ を設定してください。選択できるアルゴリズムは1つだけです。既定値は ‘bicubic’ です。
以下の値を指定できます。
‘fast_bilinear’
高速バイリニアスケーリングアルゴリズムを選びます。(非推奨)
‘bilinear’
バイリニアスケーリングアルゴリズムを選びます。(非推奨)
‘bicubic’
バイキュービックスケーリングアルゴリズムを選びます。(非推奨)
‘experimental’
実験的なスケーリングアルゴリズムを選びます。(非推奨)
‘neighbor’
ニアレストネイバーのリスケーリングアルゴリズムを選びます。(非推奨)
‘area’
面積平均のリスケーリングアルゴリズムを選びます。(非推奨)
‘bicublin’
輝度成分にはバイキュービック、色差成分にはバイリニアのスケーリングアルゴリズムを選びます。(非推奨)
‘gauss’
ガウシアンのリスケーリングアルゴリズムを選びます。(非推奨)
‘sinc’
sinc のリスケーリングアルゴリズムを選びます。(非推奨)
‘lanczos’
Lanczos のリスケーリングアルゴリズムを選びます。既定の幅(alpha)は 3 で、param0 で変更できます。(非推奨)
‘spline’
自然な3次スプラインのリスケーリングアルゴリズムを選びます。(非推奨)
‘print_info’
情報表示・デバッグログ出力を有効にします。
‘accurate_rnd’
高精度な丸めを有効にします。
‘full_chroma_int’
フルクロマ補間を有効にします。
‘full_chroma_inp’
フルクロマ入力を選びます。
‘bitexact’
ビット単位で正確な(bitexact)出力を有効にします。
‘unstable’
実験的な新コードの使用を許可します。出力にわずかな影響が出たり、誤った結果になることもあります。テスト用途のみです。
srcw (API only)
ソースの幅を設定します。
srch (API only)
ソースの高さを設定します。
dstw (API only)
出力先の幅を設定します。
dsth (API only)
出力先の高さを設定します。
src_format (API only)
ソースの pixel format を設定します(整数で指定する必要があります)。
dst_format (API only)
出力先の pixel format を設定します(整数で指定する必要があります)。
src_range (boolean)
1 を設定すると、ソースがフルレンジであることを示します。既定値は 0 で、ソースがリミテッドレンジであることを示します。
dst_range (boolean)
1 を設定すると、出力先でフルレンジを有効にします。既定値は 0 で、リミテッドレンジを有効にします。
gamma (boolean)
1 を設定すると、ガンマ補正を考慮したスケーリングを有効にします。既定値は 0 です。
param0, param1
スケーリングアルゴリズムのパラメータを設定します。指定する値は一部のスケーリングアルゴリズムに固有のもので、それ以外のアルゴリズムでは無視されます。値は浮動小数点数で指定します。
sws_dither
ディザリングアルゴリズムを設定します。以下のいずれかの値を指定できます。既定値は ‘auto’ です。
‘auto’
自動選択
‘none’
ディザリングなし
‘bayer’
ベイヤーディザ
‘ed’
誤差拡散ディザ
‘a_dither’
加算を用いた算術ディザ
‘x_dither’
xor を用いた算術ディザ(a_dither よりランダム性が高く、パターンが目立ちにくい)。
alphablend
入力にアルファがあって出力にない場合に使うアルファブレンドを設定します。既定値は ‘none’ です。
‘uniform_color’
単色の背景色に合成します
‘checkerboard’
チェッカーボード(市松模様)に合成します
‘none’
合成しません
sws_backends
使用を許可する swscale バックエンドを設定します。これはフラグ形式のオプションなので、複数のバックエンドを組み合わせられます。
‘auto’
自動選択。‘unstable’ フラグが設定されているかどうかに応じて、‘stable’ または ‘all’ のいずれかと等しくなります。これが既定値です。
‘stable’
安定版のすべてのバックエンド。
‘unstable’
不安定版のすべてのバックエンド。
‘all’
利用可能なすべてのバックエンド。
‘legacy’
旧来の swscale コード。
‘c’
テンプレートベースのリファレンスコード。
‘memcpy’
libc の memcpy を使う高速パス。
‘x86’
x86 の SIMD カーネル。
‘aarch64’
AArch64 の NEON カーネル。
‘spirv’
Vulkan SPIR-V バックエンド。
‘glsl’
Vulkan GLSL バックエンド。
3 関連項目
ffmpeg, ffplay, ffprobe, libswscale
4 著作者
FFmpeg の開発者たち。
著作者の詳細については、プロジェクトの Git 履歴(https://git.ffmpeg.org/ffmpeg)を参照してください。たとえば FFmpeg のソースディレクトリで git log コマンドを実行するか、オンラインリポジトリ https://git.ffmpeg.org/ffmpeg を閲覧してください。
各コンポーネントのメンテナは、ソースコードツリーの MAINTAINERS ファイルに記載されています。
ホスティングは telepoint.bg の提供によるものです。