AV1 Intra Block Splitting to 4x4 Explained
This article explores whether the AV1 video codec supports recursive intra block splitting down to 4x4 sub-partitions. It details the mechanics of AV1's recursive partitioning tree, discusses how minimum block boundaries apply to intra coding, explains color subsampling constraints for chroma channels, and examines the practical trade-offs between coding efficiency and encoder complexity.
AV1 Partitioning Tree Architecture
AV1 structures video frames using large coding units called superblocks, typically configured as 128x128 or 64x64 pixels. To adapt to complex image details, an AV1 encoder can recursively break these superblocks down into smaller units using a versatile 10-way partition tree. These partition options include:
- NONE: No split, processing the block at its current dimension.
- SPLIT: A standard 4-way quad-tree split into four equal quadrants.
- HORZ and VERT: 2-way splits producing 2:1 or 1:2 rectangular blocks.
- HORZ_A, HORZ_B, VERT_A, and VERT_B: T-shaped 3-way partition patterns.
- HORZ_4 and VERT_4: 1:4 and 4:1 non-square rectangular partitions.
This recursive tree allows blocks to be subdivided continuously until reaching the codec's minimum supported block size.
Splitting Down to 4x4 Sub-Partitions
An AV1 encoder can recursively split an intra block down to 4x4 sub-partitions.
Starting from a 64x64 or 128x128 superblock, an encoder applying
standard quad-tree splits (PARTITION_SPLIT) can traverse
down through 32x32, 16x16, and 8x8 block sizes. At the 8x8 stage, the
encoder can choose to split the block once more into four individual 4x4
sub-partitions. An 8x8 block can also be divided into rectangular 4x8 or
8x4 sub-partitions.
The 4x4 block size serves as the terminal leaf node in the AV1 partition tree. Once a block reaches 4x4, no further splitting is permitted by the bitstream specification.
Chroma Considerations in 4:2:0 Subsampling
While 4x4 luma partitioning is fully valid for intra frames, YUV 4:2:0 chroma subsampling introduces architectural constraints. In a 4:2:0 format, color resolution is halved horizontally and vertically:
- A 4x4 luma partition mathematically corresponds to a 2x2 chroma area.
- AV1 does not support 2x2 transform units or 2x2 prediction blocks.
- To resolve this, the AV1 specification aggregates chroma processing across neighboring 4x4 luma blocks.
When an 8x8 luma intra block is partitioned into four 4x4 luma blocks, the corresponding chroma data is coded as a single 4x4 chroma block rather than four separate 2x2 blocks. The luma blocks retain independent intra prediction directions and transform units, while the chroma channels remain bound to the minimum 4x4 transform size.
Practical Implementation and Performance
Although the AV1 specification permits 4x4 intra partitioning, modern encoders (such as libaom-av1 and SVT-AV1) frequently restrict or disable 4x4 intra splitting depending on the selected preset:
- Signaling Overhead: Each 4x4 intra block requires its own intra prediction mode to be signaled in the bitstream. At very small block sizes, the bit cost of signaling prediction modes can outweigh the bitrate saved from smaller residual errors.
- Computational Cost: Evaluating rate-distortion costs down to 4x4 requires evaluating extensive intra prediction modes for every potential sub-partition, drastically slowing down encoding speed.
In production environments, 4x4 intra blocks are primarily used when encoding high-contrast edges, fine textures, or running at ultra-low compression presets targeting maximum fidelity.