goo blog サービス終了のお知らせ 

OnePassの備忘録

日々のメモ

x265とlibaom-AV1で、同じようなサイズと処理時間になるようにエンコード実行してSSIMを比較

2020-05-01 22:27:05 | Weblog

libaom-AV1のエンコード処理が早くなったみたいなので、SSIMを比較しました。

ただ、2passエンコードはエラーになるので x265は2pass libaom-AV1は1passで処理した結果を比較してます。

 

・エンコード前の動画の情報(ffprobeで取得)

    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 704x400 [SAR 1:1 DAR 44:25], 4134 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)

 

・エンコード結果

 x265

  処理時間:real 7m33.135s

  ファイルサイズ:823,979

  SSIM:[Parsed_ssim_0 @ 0x55a5995c54c0] SSIM Y:0.976640 (16.315310) U:0.980143 (17.020788) V:0.985460 (18.374241) All:0.978694 (16.714957)

 libaom-AV1

  処理時間:real 3m30.543s

  ファイルサイズ:801,592

  SSIM:[Parsed_ssim_0 @ 0x562c7cdb6400] SSIM Y:0.986202 (18.601769) U:0.991233 (20.571444) V:0.993023 (21.563563) All:0.988177 (19.272819)

 

x265のバージョン

--------------------------------------------------------------------------------------------------------------------------------

x265 [info]: HEVC encoder version 3.2.1+1-b5c86a64bbbe
x265 [info]: build info [Linux][GCC 9.3.0][64 bit] 8bit+10bit+12bit

--------------------------------------------------------------------------------------------------------------------------------

 

libaom-AV1のバージョン

--------------------------------------------------------------------------------------------------------------------------------

[libaom-av1 @ 0x556478ba6000] 1.0.0-errata1-avif-732-g315c196dd

--------------------------------------------------------------------------------------------------------------------------------

 

x265の2passエンコードは以下のコマンドで

--------------------------------------------------------------------------------------------------------------------------------

# init
FTMP0=`date "+%Y%m%d%H%M%S"`
FTMP="${FTMP0}"

VFRAMES=$2

OPT="${OPT} -af dynaudnorm"

# OPT="${OPT} -pix_fmt yuv420p10le"
OPT="${OPT} -pix_fmt yuv420p12le"
# OPT="${OPT} -vframes ${VFRAMES}"
# OPT="${OPT} -s 704x396 -aspect 16:9"
OPT="${OPT} -c:v libx265 -b:v 250k"
OPT="${OPT} -preset veryslow"
# OPT="${OPT} -preset placebo"
OPT="${OPT} -x265-params stats=${FTMP}"
OPT="${OPT}:analysis-reuse-file=${FTMP}.dat"
# OPT="${OPT}:pmode=1:pme=1"
OPT="${OPT}:multi-pass-opt-analysis=1"
OPT="${OPT}:multi-pass-opt-distortion=1"
OPT="${OPT}:rd-refine=1"
OPT="${OPT}:subme=7"
OPT="${OPT}:rc-lookahead=250"
# OPT="${OPT}:vbv-maxrate=10000"
# OPT="${OPT}:vbv-bufsize=10000"
OPT="${OPT}:ssim-rd=1"
OPT="${OPT}:opt-cu-delta-qp=1"
OPT="${OPT}:aq-motion=1"
OPT="${OPT}:aq-mode=3"
OPT="${OPT}:bframes=16"
OPT="${OPT}:dynamic-refine=1:refine-intra=4"
OPT="${OPT}:tu-inter-depth=4:tu-intra-depth=4"
OPT="${OPT}:max-merge=5"
# OPT="${OPT}:pools=32"

AUDIO=" -acodec libfdk_aac -profile:a aac_he_v2 "
AUDIO="${AUDIO} -ab 16k -ar 24000 -ac 2 -afterburner 1 "

touch "$1.x265.mp4"

ffmpeg -y -i "$1" -pass 1 \
${OPT}:pass=1 \
-an -f mp4 /dev/null && \
ffmpeg -y -i "$1" -pass 2 \
${OPT}:pass=2 \
${AUDIO} \
-f mp4 "$1.x265.mp4"

rm "${FTMP}"
rm "${FTMP}.dat"
rm "${FTMP}.cutree"

--------------------------------------------------------------------------------------------------------------------------------

 

libaom-AV1の1passエンコードは以下のコマンドで

--------------------------------------------------------------------------------------------------------------------------------

AUDIO=" -acodec libfdk_aac -profile:a aac_he_v2 "
AUDIO="${AUDIO} -ab 16k -ar 24000 -ac 2 -afterburner 1 "

OPT="${OPT} -tiles 1x1"

OPT="${OPT} -cpu-used 3"

OPT="${OPT} -b:v 80k"

OPT="${OPT} -aq-mode 3"

OPT="${OPT} -arnr-strength 6"

OPT="${OPT} -denoise-block-size 1"

ffmpeg -y -i "$1" \
  -c:v libaom-av1 \
  -strict experimental \
  -row-mt 1 \
  ${OPT} \
  -threads 14 \
  ${AUDIO} \
  ./output.libaom.mp4

--------------------------------------------------------------------------------------------------------------------------------

 


最新の画像もっと見る