experiment:encoding-quality

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
experiment:encoding-quality [2020/06/13 16:15] – [Table] ischluffexperiment: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/projects/BROADCAST/repos/vmaf-docker/browse|vmaf-docker]] repo.+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 (values may differ, but the difference may not be relevant)**+Reference content is either our own (https://media.ccc.deor from Xiph (https://media.xiph.org/video/derf/).
  
-The codec settings are the ones currently in use by the C3VOC for live streaming.+The specific sources are found in https://github.com/voc/voctoquality/blob/master/data/sources.json
  
-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) 
-<code> +  * libvmaf-1.3.15 
-    -vaapi_device /dev/dri/renderD128 +  * libvpx-1.8.2 (bullseye
-    -hwaccel vaapi -hwaccel_output_format vaapi +  * libx264-2:0.155.2917+git0a84d98-2 (bullseye
-    -i $ref + 
-    -vf 'format=nv12|vaapi,hwupload' +===== 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:v 75 -g:v 75 + 
-    -b:v {rate}k -maxrate:v {rate}k -bufsize {rate}k +See https://github.com/voc/voctoquality/blob/master/data/profiles/voc_streaming.py for the specific ffmpeg options.
-</code> +
-  * libvpx-vp9 (current C3VOC transcoding settings+
-<code> +
-    -i $ref +
-    -c:v libvpx-vp9 +
-    -deadline:v realtime -cpu-used:v 8 +
-    -threads:v 8 +
-    -frame-parallel:v 1 -tile-columns:2 +
-    -keyint_min:v 75 -g:v 75 +
-    -crf:v 23 +
-    -b:v {rate}k -maxrate:v {rate}k -bufsize {rate}k +
-</code> +
-  * x264 (current C3VOC encoder-stream settings+
-<code> +
-    -i $ref +
-    -c:v libx264 -preset:v veryfast +
-    -profile:v main -flags +cgop +
-    -threads:v 0 -g:v 75 +
-    -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 ====
 +{{ :experiment:streaming_rates.pdf |}}
 +{{ :experiment:streaming_refs.pdf |}}
 +{{ :experiment:streaming_speeds.pdf |}}
  
-=== Versions === +==== Comments ==== 
-  * CPU: Intel(RCore(TM) i7-8665U CPU @ 1.90GHz + 
-  * ffmpeg-4.1.4 +^ Platform                                         ^ Label        ^ Hardware Codecs    ^ Comments                                                                                                                                                        ^ 
-  * libvmaf-1.3.15 +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              | 
-  * libvpx-1.7.0 (buster+^ 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/ | 
-  * libx264-2:0.155.2917+git0a84d98-2 (buster)+^ 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 1920x1088 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                                                                                  | 
 + 
 + 
 +==== Finding a Tracker VP9 Profile ==== 
 +=== HD-Profile === 
 + 
 +Goals:  
 +  * improve quality over previous libvpx (VP8profile 
 +  * 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
  
-=== Reference === +``` 
-Xiph Content is found on https://media.xiph.org/video/derf/ +-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:v 1 -tile-columns:v 2 
 +```
  
-=== Results === +=== SD-Profile === 
-{{tablelayout?colwidth="183px,103px,147px,735px"}} +  * worse parallelization and therefore speed than HD-profile 
-^ Platform                  ^ Label        ^ Hardware Codecs    ^ Comments                                                                                                                                            ^ +  * worse rate-control than HD-profile (doesn't reach target bitrate) 
-^ 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 +  * bufsize doesn't change anything 
-^ Intel 8th Gen (i7-8665U)  | whiskeylake  | h.264, h.265, VP9  | h.264 and h.265 results are identical to skylake                                                                                                    | +  * no threads parallelizes best 
-^ AMD Navi (RX 5700 XT    | navi10       | h.264, h.265       | h.264 is worse than x264 on veryfast...\\ h.265 produces 1920x1088 output?                                                                          |+  * frame-parallel doesn't work (frame too small?) 
 +  * 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 
  
  • experiment/encoding-quality.1592057747.txt.gz
  • Last modified: 2020/06/13 16:15
  • by ischluff