Color space support
Color space information is stored in the encoded bitstream as metadata.
For H.264 and H.265, color space information is stored in the Video Usability Information (VUI) within the Stream Parameter Set (SPS) data of the bitstream.
For AV1, color space information is stored in the Sequence Header Open Bitstream Unit (OBU).
For VP9, color space information is stored in the Color Config field of the uncompressed frame header.
When decoding and encoding YUV (Y’CbCr), the Quadra decoder and encoder is independent of color space. The Quadra VPU only needs to read or write the metadata and does not need to change color space information. The video playback device uses color space information in the bitstream to determine how to interpret the YUV as color to be displayed.
The table below lists some of the common supported color spaces (specifically, the color primaries) as defined in
ITU-T H.264 Specification (08/2021)
ITU-T H.265 Specification (V10)
VP9 Bitstream Specification v0.7-20170222 draft
AV1 Bitstream & Decoding Process Specification (V1.00 with Errata 1)
| Color Space | H.264 | H.265 | AV1 | VP9 |
|---|---|---|---|---|
| BT.709 | Y | Y | Y | Y |
| BT.470M | Y | Y | Y | Y |
| BT.470BG, BT.601-625 | Y | Y | Y | Y |
| BT.601-525, SMPTE 170M, SMPTE 240M | Y | Y | Y | Y |
| FILM | Y | Y | Y | N |
| BT.2020 | Y | Y | Y | Y |
| SMPTE 428 | Y | Y | Y | N |
| SMPTE 431-2 | Y | Y | Y | N |
| SMPTE 432-1 | Y | Y | Y | N |
| JEDEC P22 | Y | Y | N | N |
| EBU TECH 3213 | Y | Y | Y | N |
When using the 2D engine filters, all color spaces are supported. However, when dealing with YUV, the 2D engine filters will only work correctly with limited range YUV. Full range will be accepted but there will be a small color shift in its output. The 2D engine will only output limited range YUV.
RGB/YUV conversion
The Quadra encoder is capable of converting 8-bit RGB to YUV (R’G’B' to Y’CbCr) prior to encoding. The Quadra encoder only supports the BT.709 color matrix and the resulting YUV will always be full range.
The Quadra 2D engine is also capable of converting between RGB and YUV. Only BT.709 and BT.2020 color matrices are supported. When converting from YUV to RGB, the YUV must be limited range. If converting from RGB to YUV, the Quadra 2D engine will only output limited range YUV.