縦型動画のコーデックでファイルサイズはどれだけ変わるか H.264からH.265・VP9・AV1への変換を実測しました

IT・仕事術

記事内に広告が含まれています。

この記事でわかることをまとめました

  • 縦型動画10秒を4つのコーデックに変換したときの、ファイルサイズと変換時間の実測値がわかります。
  • AV1が一番小さく元の30.2%になったこと、H.264が一番速く7.18秒だったことがわかります。
  • 今回の比較が成り立つ範囲と、私が確認していないことがわかります。

AV1が最小で元の30.2%、H.264が最速で7.18秒でした

私は縦型動画10秒をH.264、H.265、VP9、AV1に変換して比べました。一番小さくなったのはAV1 CRF 35で、283,379バイト、元の動画の30.2%でした。

変換時間の中央値が一番短かったのは、H.264 CRF 23の7.18秒でした。今回の4条件では、一番小さかったのがAV1 CRF 35で、一番速かったのがH.264 CRF 23でした。

素材は動きの少ない縦型動画の先頭10秒です

素材は、以前のHyperFrames試行で作った縦型動画です。1080×1920、30fps、H.264で、音声はありません。

私はこの動画の先頭10秒を、ffmpegのストリームコピーで切り出して元動画にしました。再圧縮をしていないため、画質は元の動画と同じです。元動画は937,490バイトでした。

変換条件は次のとおりです。いずれもyuv420pで、音声なしです。

  • H.264は libx264 の CRF 23、preset mediumです。
  • H.265は libx265 の CRF 28、preset mediumです。
  • VP9は libvpx-vp9 の CRF 32で、ビットレート指定なし、deadline good、cpu-used 2です。
  • AV1は libsvtav1 の CRF 35、preset 8です。

各条件を3回変換し、変換時間は中央値で比べました。ファイルサイズは、残した出力ファイルの実測です。環境はCPU 2コアのVMです。

ファイルサイズは4条件すべてが元の半分以下になりました

図1にファイルサイズをまとめました。AV1が最も小さく、H.265、H.264、VP9の順に大きくなりました。

縦型動画10秒を4つのコーデックに変換したファイルサイズの棒グラフ。元の937,490バイトに対して、AV1が283,379バイトで一番小さいことを示しています

コーデックと設定ファイルサイズ(バイト)元の動画に対する割合変換時間中央値SSIM(All)PSNR平均
元の動画(H.264)937,490100.0%———
H.264 CRF 23392,95341.9%7.18秒0.99844951.21 dB
H.265 CRF 28339,74636.2%19.79秒0.99759450.22 dB
VP9 CRF 32467,52949.9%24.10秒0.99720240.46 dB
AV1 CRF 35283,37930.2%17.24秒0.99954757.74 dB

H.264 CRF 23の392,953バイトと比べると、AV1は72.1%の大きさ、H.265は86.5%の大きさでした。VP9は467,529バイトで、今回の4条件の中ではH.264より大きくなりました。

SSIMはどの条件も0.997以上で、PSNRはVP9だけ低くなりました

画質の数値は、ffmpegのssimフィルタとpsnrフィルタで、変換後の動画と元の10秒を比べて測りました。

SSIMは4条件とも0.997202から0.999547の範囲でした。AV1が一番高く、VP9が一番低い結果でした。

PSNRの平均は、AV1が57.74 dBで一番高く、H.264が51.21 dB、H.265が50.22 dBでした。VP9は40.46 dBで、ほかの条件より低くなりました。私はこの違いの原因の切り分けをしていません。

3秒時点のフレームを、元の動画、H.264 CRF 23、AV1 CRF 35の3枚で並べました。目で見て分かる大きな違いはありませんでした。

3秒時点のフレームを並べた比較画像。元の動画、H.264 CRF 23、AV1 CRF 35の3枚で、見た目に大きな違いはありません

変換時間はH.264が一番短く、ほかは2.4〜3.4倍かかりました

図2に変換時間の中央値をまとめました。H.264の7.18秒に対して、H.265は19.79秒、VP9は24.10秒、AV1は17.24秒でした。

4つのコーデックの変換時間の中央値を比べた棒グラフ。H.264が7.18秒で一番短く、VP9が24.10秒で一番長いことを示しています

H.264と比べると、H.265は約2.8倍、VP9は約3.4倍、AV1は約2.4倍の時間でした。

変換時間は回によってばらつきがありました。AV1は21.18秒、16.68秒、17.24秒で、VP9は23.00秒、24.10秒、27.98秒でした。そのため、私は中央値で比べています。ファイルサイズは、3回とも同じバイト数でした。

この結果を読むときの注意点があります

  • CRFの数字はコーデックごとに意味が違います。今回の4条件は同じ画質を狙った設定ではありません。CRF 23、28、32、35という、それぞれのコーデックでよく使われる設定で比べた結果です。ほかのCRFを選べば順位が変わる場合があります。
  • 比べたのは、動きの少ない画面中心の縦型動画10秒です。動きの多い動画や、写真のような実写の動画では結果が変わる場合があります。
  • 3秒時点の1フレームを見比べた以外に、私は目で見た画質の評価をしていません。SSIMとPSNRは数値の目安として測りました。
  • VP9の出力だけWebM形式(.webm)で、ほかの3条件はMP4形式です。ファイルサイズの比較には形式の違いも含まれています。

関連する計測記事もあわせて読んでみてください

このブログで実測した記事として、画像の形式別サイズを調べた画像形式を変えてファイルサイズを比較した記事、動画の書き出し時間を計測した動画の書き出しを実測した記事、音声形式のサイズを調べたBGMの音声形式を実測した記事を紹介しています。

コメント

タイトルとURLをコピーしました