Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
experiment:encoding-quality [2020/06/13 16:15] – [Table] ischluff | experiment:encoding-quality [2021/04/15 13:36] (current) – ischluff | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Encoding-Quality-Testing ====== | ====== Encoding-Quality-Testing ====== | ||
- | Created with the [[https://bitbucket.fem.tu-ilmenau.de/ | + | Created with the [[https://github.com/voc/voctoquality|voctoquality]] repo. |
- | ==== Testing VAAPI vs. software encoding for live streaming | + | ===== Reference content ===== |
- | **The graphs currently contain no confidence intervals | + | Reference content is either our own (https:// |
- | The codec settings | + | The specific sources |
- | All the reference content is 1080p25. | + | All the reference content is converted to 8bit 1080p25. |
- | === Codec Settings | + | ===== Software ===== |
- | * vaapi: nothing but keyint and bitrates set | + | * ffmpeg-4.1.4 (same as in buster) |
- | < | + | * libvmaf-1.3.15 |
- | | + | * libvpx-1.8.2 (bullseye) |
- | -hwaccel vaapi -hwaccel_output_format vaapi | + | * libx264-2:0.155.2917+git0a84d98-2 (bullseye) |
- | -i $ref | + | |
- | -vf ' | + | ===== Testing VAAPI vs. software encoding for live streaming ===== |
- | -c:v {codec}_vaapi | + | The codec settings are the ones currently in use by the C3VOC for live streaming. |
- | -keyint_min: | + | |
- | -b:v {rate}k -maxrate:v {rate}k -bufsize {rate}k | + | See https:// |
- | </ | + | |
- | * libvpx-vp9 (current C3VOC transcoding settings) | + | |
- | < | + | |
- | | + | |
- | -c:v libvpx-vp9 | + | |
- | -deadline:v realtime -cpu-used:v 8 | + | |
- | -threads:v 8 | + | |
- | -frame-parallel: | + | |
- | -keyint_min: | + | |
- | -crf:v 23 | + | |
- | -b:v {rate}k -maxrate:v {rate}k -bufsize {rate}k | + | |
- | </ | + | |
- | * x264 (current C3VOC encoder-stream settings) | + | |
- | < | + | |
- | -i $ref | + | |
- | -c:v libx264 -preset:v veryfast | + | |
- | | + | |
- | | + | |
- | -crf:v 21 | + | |
- | -maxrate:v {rate}k -bufsize {rate}k | + | |
- | </code> | + | |
The codecs are tested with bitrates from 1Mbit/s to 5.2Mbit/s. | The codecs are tested with bitrates from 1Mbit/s to 5.2Mbit/s. | ||
- | Currently the 1080p25 streams are coded with 2.8Mbit/s maxrate. | ||
+ | ==== Graphs ==== | ||
+ | {{ : | ||
+ | {{ : | ||
+ | {{ : | ||
- | === Versions | + | ==== Comments ==== |
- | * CPU: Intel(R) Core(TM) i7-8665U | + | |
- | * ffmpeg-4.1.4 | + | ^ Platform |
- | | + | ^ Intel 6th Gen (i7-6600U) | skylake |
- | * libvpx-1.7.0 | + | ^ Intel 8th Gen (i7-8665U) | whiskeylake |
- | * libx264-2:0.155.2917+git0a84d98-2 (buster) | + | ^ AMD Navi (RX 5700 XT) + Ryzen 2nd Gen (R5-2600) |
+ | ^ Nvidia Turing (RTX2080 Super) | ||
+ | |||
+ | |||
+ | ==== Finding a Tracker VP9 Profile ==== | ||
+ | === HD-Profile === | ||
+ | |||
+ | Goals: | ||
+ | * improve quality over previous | ||
+ | * don't increase encoding time too much | ||
+ | * smaller size but similar quality as x264 master | ||
+ | |||
+ | |||
+ | Notes: | ||
+ | * realtime | ||
- | === Reference === | + | ``` |
- | Xiph Content is found on https:// | + | -i $ref |
- | * Ref1 - Noisy MPEG2 36C3 | + | -c:v libvpx-vp9 |
- | * Ref2 - MPEG2 36C3 | + | -quality:v good |
- | * Red Kayak - Xiph (converted to 8Bit 25FPS) | + | -crf:v 30 |
- | * Rush Hour - Xiph | + | -b:v 6000k |
+ | -maxrate:v 8000k | ||
+ | -minrate:v 2000k | ||
+ | -row-mt 1 | ||
+ | -frame-parallel: | ||
+ | ``` | ||
- | === Results | + | === SD-Profile |
- | {{tablelayout? | + | * worse parallelization and therefore speed than HD-profile |
- | ^ Platform | + | * worse rate-control |
- | ^ Intel 6th Gen (i7-6600U) | + | * bufsize doesn' |
- | ^ Intel 8th Gen (i7-8665U) | + | * no threads parallelizes best |
- | ^ AMD Navi (RX 5700 XT) | navi10 | + | * frame-parallel doesn' |
+ | * bitrate with crf is more like maxrate | ||
- | === Intel Conclusion === | ||
- | Keep in mind that this only applies to the stream-settings used | ||
- | * Quality: VAAPI HEVC > VAAPI h.264 > libvpx-VP9 > VAAPI-VP9 > x264 | ||
- | * Speed: VAAPI h.264 > VAAPI VP9 > VAAPI HEVC >= libvpx-VP9 ~= x264 | ||
- | * VAAPI VP9 has lower speeds and quality than VAAPI h.264 | ||
- | * libvpx-VP9 has higher quality than x264 at the same speeds | ||
- | * VAAPI-HEVC outperforms VAAPI-h.264 on hard content, but is 3x slower | ||