3 comments

[ 2.2 ms ] story [ 21.5 ms ] thread
This 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.
AV1 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.
I 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 [1]

A showcase of shard-db. Data from the Hacker News API. Refreshed every 15 minutes.

Source · Live DB stats