Twitch Engineering

How VP9 delivers value for Twitch’s esports live streaming

thumbnail

#Summary

##Introduction

  • VP9 can deliver 25% bitrate savings compared to H.264 encoders used in Twitch's production today.
  • Encoding gaming content efficiently in real-time is challenging due to VP9's complexity.

##VP9's Compression Efficiency for Live 1080p60 Encoding

  • A practical 1080p60 real-time VP9 encoder is compared against a state-of-the-art real-time H.264 encoder.
  • Using VMAF, Twitch's video quality is comparable to broadcast quality video.
  • VP9's larger prediction block sizes are useful for saving inter-frame bits on predictable content like flat areas.
  • VP9's larger transform sizes lead to better preservation of detail in smooth areas like the sky and regular textures like the road.

##Larger Prediction Block Sizes

  • VP9's larger prediction block sizes are useful for saving inter-frame bits on predictable content like flat areas.
  • VP9 uses larger block sizes for relatively flat areas like the sky, roads, and pavements and smaller block sizes in highly textured areas to preserve fine details.

##Wider Choice of Larger Transform Sizes

  • VP9 supports transform sizes up to the prediction block size or 32x32, whichever is less.
  • Larger transform sizes lead to better preservation of detail in smooth areas like the sky and regular textures like the road.
  • Smaller transform sizes capture fine details like the road, lampposts, buildings in the distance, and reflections on the truck's side.

##Full Mode Search for Rate Distortion Optimization (RDO)

  • VP9's FPGA acceleration evaluates all intra modes and inter mode candidates as well as all prediction and transform block sizes for the most optimal RDO mode decision.
  • Larger prediction and transform sizes result in consistently sharper output on the road surface and finer details on the side of the truck.
  • FPGA enables the exhaustive RDO mode search to make optimal mode decisions.