experiment:encoding-quality

Encoding-Quality-Testing

Created with the voctoquality repo.

Reference content is either our own (https://media.ccc.de) or from Xiph (https://media.xiph.org/video/derf/).

The specific sources are found in https://github.com/voc/voctoquality/blob/master/data/sources.json

All the reference content is converted to 8bit 1080p25.

  • ffmpeg-4.1.4 (same as in buster)
  • libvmaf-1.3.15
  • libvpx-1.8.2 (bullseye)
  • libx264-2:0.155.2917+git0a84d98-2 (bullseye)

The codec settings are the ones currently in use by the C3VOC for live streaming.

See https://github.com/voc/voctoquality/blob/master/data/profiles/voc_streaming.py for the specific ffmpeg options.

The codecs are tested with bitrates from 1Mbit/s to 5.2Mbit/s.

Platform Label Hardware Codecs Comments
Intel 6th Gen (i7-6600U) skylake h.264, h.265 h.264 scores better than our VP9 and x264 streaming settings and is pretty fast
h.265 even scores a little bit higher but is considerably slower
Intel 8th Gen (i7-8665U) whiskeylake h.264, h.265, VP9 h.264 and h.265 results worse but faster than skylake, have to check whats up with that
VP9 scores worse than H.264 and has broken rate-control for <2mbit/s
AMD Navi (RX 5700 XT) + Ryzen 2nd Gen (R5-2600) navi10 h.264, h.265 h.264 is worse than x264 on veryfast…
h.265 produces 1920×1088 output?
Nvidia Turing (RTX2080 Super) turing h.264, h.265 nvidia-driver-460, cuda-toolkit 9.1.85
best h.265 encode, h.264 behind Intel

HD-Profile

Goals:

  • improve quality over previous libvpx (VP8) profile
  • don't increase encoding time too much
  • smaller size but similar quality as x264 master

Notes:

  • realtime + speed ⇐ 3: slower and worse than quality good
-i $ref
-c:v libvpx-vp9
-quality:v good
-crf:v 30
-b:v 6000k
-maxrate:v 8000k
-minrate:v 2000k
-row-mt 1
-frame-parallel:v 1 -tile-columns:v 2

SD-Profile

  • worse parallelization and therefore speed than HD-profile
  • worse rate-control than HD-profile (doesn't reach target bitrate)
  • bufsize doesn't change anything
  • no threads parallelizes best
  • frame-parallel doesn't work (frame too small?)
  • bitrate with crf is more like maxrate
  • experiment/encoding-quality.txt
  • Last modified: 2021/04/15 13:36
  • by ischluff