AV1 Block-Level Chroma Quantization Offsets Explained
AV1 manages variable block-level quantization offsets for color components by combining global frame-level offsets, superblock-level delta quantization parameters, and block-level segmentation. Rather than signaling completely independent quantization matrices for every color block, AV1 derives individual chroma (Cb/U and Cr/V) quantization steps by offsetting a dynamically shifting base quantization index. This design balances fine-grained rate-distortion optimization for color channels with strict bitstream signaling efficiency.
Base Quantization and Global Chroma Offsets
Every AV1 frame defines a base quantization index, denoted as
base_q_idx, ranging from 0 to 255. In addition to this base
value, the frame header signals five global delta values that target
color components directly:
DeltaQYDc: Luma (Y) DC offsetDeltaQUDc: Chroma Cb (U) DC offsetDeltaQUAc: Chroma Cb (U) AC offsetDeltaQVDc: Chroma Cr (V) DC offsetDeltaQVAc: Chroma Cr (V) AC offset
These values establish the default offset between the primary luminance channel and the color difference channels across the entire frame.
Superblock-Level Delta Q Modulation
To achieve variable quantization across different regions of a frame,
AV1 provides a local delta quantization mechanism
(delta_q). When delta_q_present_flag is
enabled, the encoder can update the local base quantization index at the
superblock level (128x128 or 64x64 pixels) or at smaller block
partitions depending on the signaled delta-Q resolution.
When a block modifies the running base index:
\[\text{CurrentQIndex} = \text{Clip3}(0, 255, \text{CurrentQIndex} + \text{delta\_q})\]
The chroma quantization parameters automatically adapt to this local
shift. The effective quantization index for any chroma component (DC or
AC) within that block is calculated by adding the global chroma offset
to the locally modified CurrentQIndex:
\[QIndex_{chroma} = \text{Clip3}(0, 255, \text{CurrentQIndex} + \text{DeltaQ}_{\{U,V\}\{Dc,Ac\}})\]
This allows local increases or decreases in quantization precision to cascade directly down to the chroma channels without requiring separate block-by-block chroma step signaling.
Block-Level Segmentation Offsets
For more surgical, block-level control down to 4x4 pixel blocks, AV1 uses segmentation. A frame can be divided into up to eight distinct segments, with each block assigned a segment ID via a segmentation map.
Each segment can define an alternative quantization feature
(SEG_LVL_ALT_Q). When active, the segment's
ALT_Q value applies an additional signed offset directly to
the quantization index. This mechanism allows encoders to selectively
protect chroma fidelity or aggressively compress color in specific image
regions—such as complex textures or smooth color gradients—independent
of neighboring blocks.
Dequantization Lookup Tables
After calculating the final 8-bit quantization index (\(0 \le QIndex \le 255\)) for a chroma block,
AV1 maps this value to an actual dequantizer step size using predefined
lookup tables (dc_qlookup and ac_qlookup).
The lookup tables apply a non-linear scaling curve. Chroma components use specialized lookup tables that differ from luma, accounting for the human visual system's reduced sensitivity to high-frequency color variations. Once retrieved from the table, this value is used to scale the transformed chroma transform coefficients during reconstruction.