動画コーデックの画質の比較

ffmpegを使用しPSNRの値を比較しました。

 

環境

Windows 10 / Core i7 9750H / Geforce GTX 1660 Ti

 

 エンコードオプションは以下のように設定しました。

ffmpeg -y -i input.mp4 -c:v libx264 -b:v 100k out_libx264.mp4
ffmpeg -y -i input.mp4 -c:v libx265 -b:v 100k out_libx265.mp4
ffmpeg -y -i input.mp4 -c:v vp9 -b:v 100k out_vp9.mp4
ffmpeg -y -i input.mp4 -c:v h264_nvenc -b:v 100k out_h264_nvenc.mp4
ffmpeg -y -i input.mp4 -c:v hevc_nvenc -b:v 100k out_hevc_nvenc.mp4

PSNRは以下の様にして計測しました。

ffmpeg -i input -i out_.mp4 -lavfi psnr="stats_file=psnr.log" -f null  -

元の動画は1920 x 1080 29.97Pで同一です。

コーデック FPS 100k 300k 500k 1m 3m 5m 10m
libx264 42~102 28.83 31.50 33.84 37.19 41.60 43.29 45.14
libx265 12~52 32.93 37.53 39.35 41.60 44.31 45.29 46.46
vp9 4.2~11 34.83 37.85 39.39 41.32 43.68 44.67 45.97
h264_nvenc 173~175 31.22 31.29 32.71 36.85 40.89 42.67 44.87
hevc_nvenc 124~126 34.93 35.07 37.67 39.91 42.95 44.21 45.80

f:id:taku-woohar:20190906002620p:plain

PSNR

PSNR上ではhevcはh.264の2倍ほどの圧縮率を誇る様です。

今回Geforceが使用できた為GPUエンコードを使用しましたが、速度は圧倒的です。

大きな問題さえなければ積極的に使っていきたいです。