Netflix が使っている複数の解像度にエンコードされた動画の品質評価に使われている VMAF(Video Multimethod Assessment Fusion) のモーションスコアの計算が ffmpeg で使えるようになった。

vmaf モーションスコアを計算するフィルタは2つあり、この vmafmotion./configure --enable-libvmaf でライブラリをインストールして使える libvmaf フィルタがある。前者は1つの映像の vmaf モーションスコアを計算し、後者は2つの映像を比較した vmaf モーションスコアを計算する。これらのフィルタは異なる解像度でも品質評価ができ ssim, psnr フィルタよりも見た目の評価に近しいものを目指している。数値が 0 になると前フレームからの変化が無いことを示す。

2つの映像の画質評価をする SSIM

使い方は先に元動画の vmaf モーションスコアを計算し、次にエンコードした動画の vmaf モーションスコアを計算し何割減ったかを調べる。

Netflix/vmaf: Perceptual video quality assessment based on multi-method fusion.
Toward A Practical Perceptual Video Quality Metric – Netflix TechBlog – Medium

基本コマンド

vmaf モーションスコアを計算しエンコードが終わると平均 vmaf モーションスコアをコンソールに表示する
ffmpeg -i input -vf vmafmotion -an -f null -
さらにフレーム毎の vmaf モーションスコアを log.txt のテキストファイルで出力する
ffmpeg -i input -vf vmafmotion=log.txt -an -f null -

公式ドキュメント:FFmpeg Filters Documentation : vmafmotion

オプション

stats_file[string]
すべてのフレームの vmaf モーションスコアを表示したログファイルを指定したパスに出力する
既定値:無指定(何も出力しない)

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)