21 ms·
YouTube is now building its own video-transcoding chips
- stsmwg 5y agoThis is a 1st-gen chip with H.264 and VP9 support. Apparently, they've already got early versions of the next generation with AV1 which will hopefully mean wider adoption of AV1 will be coming in the next few years.
- clouddrover 5y agoAV1 is already here. Lots of YouTube videos have AV1 encodes and they'll playback in software on your desktop as long as your browser supports AV1. You can see which codec you're using by right clicking on the video and selecting the "Stats for nerds" menu item.
- photojosh 5y agoI was most curious about how they parallelise the encoding for the multiple resolutions. The juicy bits from the paper are [1] "MOT [multiple-output transcoding] is an alternative approach where a single transcoding task produces the desired combination of resolutions and formats for a given chunk (Figure 2b). The input chunk is read and decoded once, and then downscaled and encoded to all output variants in parallel. This reduces the decoding overheads and allows efficient sharing of control parameters obtained by analysis of the source (e.g., detection of fades/flashes). MOT is generally preferred to SOT, as it avoids redundant decodes for the same group of outputs, but SOT may be used when memory or latency needs mandate it." "Multiple-output transcoding (MOT) was considered foundational for encoder utilization because of the benefits discussed in Section 2. The efficiency of decoding once, scaling, and encoding an entire MOT graph on a single VCU simplifies scheduling and reduces resource consumption at the data center level. The typical structure of a multi-output transcode is a single-decode and then the set of conventional 16:9 outputs (e.g. for 1080p inputs: 1080p, 720p, 480p, 360p, 240p, and 144p are encoded). This scales down the decode needs of the VCU by the number of outputs and generally only doubles the encoding requirements. Few videos require an entire VCU for their MOT, so we designed our VCUs to perform multiple MOTs and SOTs in parallel to boost encoder and VCU utilization" "In fact, our production workload is largely MOT, which was not supported on our GPU baseline. Prior to VCU, the production workload used multiple SOTs instead of running MOT on CPU given the high latency. MOT throughput is 1.2-1.3x higher than SOT (976 Mpix/s on H.264 and 927 Mpix/s on VP9), stemming from the single decode that is reused to produce all the output resolutions." I grabbed the list of formats for a current popular video too [0] just to give me an idea. 160 mp4 256x128 144p 64k , mp4_dash container, avc1.4d400c@ 64k, 30fps, video only, 5.28MiB 278 webm 256x128 144p 68k , webm_dash container, vp9@ 68k, 30fps, video only, 5.59MiB 242 webm 426x214 240p 113k , webm_dash container, vp9@ 113k, 30fps, video only, 9.27MiB 133 mp4 426x214 240p 145k , mp4_dash container, avc1.4d400d@ 145k, 30fps, video only, 11.90MiB 243 webm 640x320 360p 209k , webm_dash container, vp9@ 209k, 30fps, video only, 17.12MiB 134 mp4 640x320 360p 253k , mp4_dash container, avc1.4d401e@ 253k, 30fps, video only, 20.71MiB 244 webm 854x428 480p 347k , webm_dash container, vp9@ 347k, 30fps, video only, 28.40MiB 135 mp4 854x428 480p 482k , mp4_dash container, avc1.4d401f@ 482k, 30fps, video only, 39.45MiB 247 webm 1280x640 720p 630k , webm_dash container, vp9@ 630k, 30fps, video only, 51.52MiB 136 mp4 1280x640 720p 834k , mp4_dash container, avc1.64001f@ 834k, 30fps, video only, 68.17MiB 248 webm 1920x960 1080p 1103k , webm_dash container, vp9@1103k, 30fps, video only, 90.18MiB 137 mp4 1920x960 1080p 1507k , mp4_dash container, avc1.640028@1507k, 30fps, video only, 123.22MiB 271 webm 2560x1280 1440p 2608k , webm_dash container, vp9@2608k, 30fps, video only, 213.13MiB 313 webm 3840x1920 2160p 7953k , webm_dash container, vp9@7953k, 30fps, video only, 649.98MiB 18 mp4 640x320 360p 395k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz), 32.35MiB 22 mp4 1280x640 720p 962k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best) [0] https://www.youtube.com/watch?v=ehv3zQAa9zM https://www.youtube.com/watch?v=ehv3zQAa9zM [1] https://dl.acm.org/doi/abs/10.1145/3445814.3446723 https://dl.acm.org/doi/abs/10.1145/3445814.3446723