VP9 is an open and royalty free video coding format developed by Google. VP9 is a successor to VP8 and competes with MPEGs High Efficiency Video Coding, at first, VP9 was mainly used on Googles popular video platform YouTube. The emergence of the Alliance for Open Media, and its support for the development of the successor AV1. In contrast to HEVC, VP9 support is common among web browsers.264 holdout among web browsers, android has supported VP9 since version 4.4 KitKat, though hardware acceleration varies. Parts of the format are covered by patents held by Google, the company grants free usage of its own related patents based on reciprocity, i. e. as long as the user doesnt engage in patent litigations. VP9 is customized for video resolutions beyond high-definition video and also enables lossless compression, the VP9 format supports the following color spaces, Rec. VP9 supports HDR video using Hybrid Log-Gamma and Perceptual Quantizer, the comparison evaluated the slowest encoding speeds available for each encoder. By contrast, another subjective comparison from 2014 concluded that at higher quality settings HEVC and it was concluded that libvpx and x265 were both capable of the claimed 50% bitrate improvement over H.264, but only at 10–20 times the encoding time of x264. Judged by the objective quality metric VQM in early 2015, the VP9 reference encoder delivered video quality on par with the best HEVC implementations, a decoder comparison by the same developer showed 10% faster decoding for ffvp9 than ffh264 for same-quality video, or identical at same bitrate. It also showed that the implementation can make a difference, concluding that ffvp9 beats libvpx consistently by 25–50%. Another decoder comparison indicated 10–40 percent higher CPU load than H.264, and that on mobile, the bitstream format is relatively simple compared to formats that offer similar bitrate efficiency like HEVC. VP9 has many design improvements compared to VP8 and its biggest improvement is support for the use of coding units of 64×64 pixels. This is especially useful with high-resolution video, also the prediction of motion vectors was improved. In addition to the VP8s four modes, VP9 supports six oblique directions for linear extrapolation of pixels in intra-frame prediction and this is mandatory for video resolutions in excess of 4096 pixels. A tile header contains the tile size in bytes so decoders can skip ahead, the image is then divided into coding units called superblocks of 64×64 pixels which are adaptively subpartitioned in a quadtree coding structure. They can be subdivided either horizontally or vertically or both, square units can be subdivided recursively down to 4×4 pixel blocks, subunits are coded in raster scan order, left to right, top to bottom. Starting from each key frame, decoders keep 8 frames buffered to be used as reference frames or to be shown later, transmitted frames signal which buffer to overwrite and can optionally be decoded into one of the buffers without being shown. The encoder can send a frame that just triggers one of the buffers to be displayed
Example partitioning and internal coding order of a coding unit
Transform coefficients are scanned in a round pattern (increasing distance from the corner). This is to coincide (better than the traditional zig-zag pattern) with the expected order of importance of the coefficients, so to increase their compressibility by entropy coding. A skewed variant of the pattern is used when the horizontal or vertical edge is more important.