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 | ||