The xvc codec is built of around 60 individual tools that together provide the extraordinary video compression constituting xvc. For full details about the tools, please feel free to dig into the source code here.
As a summary, it can be said that the xvc codec is a block-based hybrid (inter/intra) video coding format built using world-class compression technologies. The codec operates on raw YUV pictures and compresses them to a NAL (network abstraction layer) unit structured bitstream. Each picture in a video sequence is divided into rectangular blocks of samples, which are predicted from samples in the same picture (intra prediction) or samples in previously coded pictures (inter prediction). Residuals are transformed using non-square DCT-like transforms and the coded symbols are compressed using a context-adaptive binary arithmetic coder. Block boundaries are filtered using a deblocking filter.
Each of these parts of the codec consists of several individual features, and in the xvc codec each of these individual features can be turned off during run time, via control information in the bitstream.
The xvc codec has been designed with streaming services as the primary use-case, partly because this is an area which is growing rapidly and which requires very efficient compression, but also because this is an area in which the clients are connected and generally has support for being updated remotely. It comes with a slim High-Level Syntax layer and with novel methods for efficiently handling transitions between representations in adaptive bit rate (ABR) applications.
The codec is extremely flexible in terms of supported video formats. Picture sizes can range from for example 256×144 and 320×180 to 4K, 8K and even 16K video. The same goes for bitdepth and chroma format. The xvc codec has native support for various combinations of chroma formats and bitdepths (see table below), but the output format of the decoder can be controlled via decoder configuration settings.
|Chroma format \ Bitdepth||8||10||12|