vmaf スコアの調べ方。新しい映像の品質評価 libvmaf

インターレース解除フィルタの vmaf スコア

インターレース解除フィルタでの vmaf スコアを調べる。比較したデインターレースフィルタは左から、yadif, bwdif, fieldmatch, pp=linipoldeint, pp=cubicipoldeint, pp=mediandeint, pp=ffmpegdeintの初期設定。エンコーダは QSV で余裕を持って 10000k 固定ビットレート出力している。

結論はfieldmatchフィルタが実写、アニメ映像にかかわらず vmaf スコアが高くなり、映像を補間するフィルタは vmaf スコアが下がる傾向になった。fieldmatchフィルタのスコアが高くなるのは縞が出ないところは何もせずに縞があるところだけフィールドをずらしてプログレッシブにするので元映像と比較すると変化が少ないことが最大の理由と考えられる。

コマンド例
ffmpeg -analyzeduration 300M -probesize 300M -i input -vf fieldmatch -movflags +faststart -max_muxing_queue_size 1024 -vcodec h264_qsv -look_ahead 0 -b:v 10000k -maxrate 10000k fieldmatch.mp4
ffmpeg -analyzeduration 300M -probesize 300M -i fieldmatch.mp4 -i input.ts -filter_complex libvmaf=model_path=../share/model/vmaf_v0.6.1.pkl -f null - > fieldmatch.txt 2>&1

A から D までは実写映像に以下のデインターレースフィルタを当ててる。

frames size yadif bwdif field linip cubic media ffmpe
A 8997 1440x1080p 96.785 95.625 99.238 91.749 94.953 98.163 96.167
B 8988 1920x1080p 89.917 87.787 93.729 82.646 84.576 91.282 87.930
C 17986 1920x1080p 88.843 87.803 92.067 86.976 87.754 91.945 90.035
D 22252 1920x1080p 93.855 91.552 96.667 85.598 88.303 94.124 91.684

E から J まではアニメ映像に上と同じようにデインターレースフィルタを当ててる。

frames size yadif bwdif field linip cubic media ffmpe
E 16168 1440x1080p 92.274 91.240 92.985 88.623 90.264 92.621 92.025
F 9592 1440x1080p 93.206 92.458 94.124 89.208 90.707 94.103 92.900
G 8997 1920x1080p 91.867 90.237 92.726 86.584 87.939 92.474 90.728
H 9592 1920x1080p 91.494 89.860 92.433 86.321 87.780 92.314 90.508
I 3780 1920x1080p 92.819 92.864 98.097 87.472 88.016 94.449 91.097
J 7197 1920x1080p 89.458 88.352 92.029 84.990 85.952 91.483 89.291

デノイズフィルタの vmaf スコア

デノイズフィルタでの vmaf スコアを調べる。比較したデノイズフィルタは初期設定である。through はデノイズフィルタを当てていない。エンコーダは QSV での 3000k 固定ビットレート出力している。

結論はsabフィルタが実写、アニメ映像にかかわらず概ね vmaf スコアが高くなる結果になった。fftdnoizフィルタも高い vmaf スコアになっているが結構負荷が高い。調べ終えて気づいたが input をfieldmatchしたほうがよかった気がしないでもない。

コマンド例
ffmpeg -analyzeduration 300M -probesize 300M -i input -vf fieldmatch,sab,fifo -movflags +faststart -max_muxing_queue_size 1024 -vcodec h264_qsv -look_ahead 0 -b:v 3000k -maxrate 3000k sab.mp4
ffmpeg -analyzeduration 300M -probesize 300M -i sab.mp4 -i input -filter_complex libvmaf=model_path=../share/model/vmaf_v0.6.1.pkl -f null - > sab.txt 2>&1

A から D までは実写映像

hqdn3d pp=de pp=dr sab nlmeans through deblock fftdnoiz
A 66.425 66.128 66.324 67.175 67.122 67.155 66.840 67.184
B 76.115 75.360 75.404 76.586 76.389 76.424 76.369 76.453
C 69.159 68.347 68.617 70.119 70.064 69.684 69.433 69.854
D 85.630 85.235 85.283 86.355 86.102 86.187 86.106 86.208

E から J まではアニメ映像

hqdn3d pp=de pp=dr sab nlmeans through deblock fftdnoiz
E 88.821 89.699 89.772 91.130 90.887 91.082 90.547 91.095
F 88.464 89.537 89.519 90.799 90.516 90.730 90.287 90.730
G 78.809 79.263 79.221 80.204 80.057 80.193 79.792 80.211
H 86.294 87.396 87.351 88.617 88.475 88.533 88.061 88.597
I 71.020 71.254 71.413 72.185 72.114 72.290 71.907 72.290
J 68.278 68.079 68.354 69.448 69.276 69.302 69.044 69.323

ビットレートを変えたデノイズフィルタの vmaf スコア

3000k でも足りている映像と足りてない映像があったが今度はさらにビットレートを 1500k, 1000k に下げてビットレートが足りていない状態でデノイズフィルタを当てたときの vmaf スコアを調べた。映像はプログレッシブの異なる2つのアニメ映像を使った。スコアの右に順位も記載した。

結論は必要なビットレートが足りなくなると何もデノイズフィルタを当てないよりもsabフィルタの方が vmaf スコアが高くなった。しかし上の例ではスコアが 90 を超えているのにsabフィルタの方が高くなることもあるので一概に低ビットレートではsabフィルタを使えばスコアが高くなるとも言い切れない。

一つ目は、7194フレーム、1920x1080p の映像。コマンドは上と同じだが、ビットレートが異なる。

3000k 1500k 1000k
hqdn3d 90.998 8 86.779 8 82.592 8
pp=de 93.128 7 88.481 7 84.026 6
pp=dr 93.300 6 88.607 6 84.015 7
sab 94.057 2 89.271 2 84.845 1
nlmeans 93.878 4 89.243 4 84.743 4
through 94.185 1 89.369 1 84.802 2
deblock 93.579 5 88.768 5 84.386 5
fftdnoiz 93.985 3 89.251 3 84.789 3

二つ目は、5399フレーム、1920x1080p の映像。

3000k 1500k 1000k
hqdn3d 80.787 8 75.280 8 69.435 8
pp=de 82.362 7 76.482 7 70.239 7
pp=dr 82.457 6 76.599 6 70.331 6
sab 83.157 2 77.347 1 71.045 1
nlmeans 82.796 4 77.115 4 70.756 4
through 83.204 1 77.298 3 70.984 2
deblock 82.720 5 76.840 5 70.546 5
fftdnoiz 83.102 3 77.330 2 70.913 3

ブログで解説した記事

コメントを残す

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

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