AV1 Transform Partitioning for 64x64 Blocks
In the AV1 video coding standard, 64x64 blocks represent the maximum supported transform unit size, governed by a flexible transform tree designed to optimize residual data representation. This article explains how AV1 defines, splits, and processes transform partitions within 64x64 blocks, covering recursive partitioning rules, aspect ratios, coefficient zeroing, and kernel restrictions.
Maximum Transform Unit Limits
While AV1 supports superblocks up to 128x128 in size, the maximum
allowable transform size is capped at 64x64 (TX_64X64).
Consequently, coding blocks larger than 64x64 must automatically be
split into transform units of 64x64 or smaller. When a coding block is
exactly 64x64, the encoder has the option to treat the entire unit as a
single 64x64 transform or to partition it further into smaller
sub-blocks.
Recursive Transform Partitioning
AV1 implements a recursive transform tree syntax that allows coding blocks to be divided independently of their inter or intra prediction partitions. For a 64x64 block:
- Symmetric Splits (Quadtree): The 64x64 block can be split into four 32x32 transform units. Each of these 32x32 units can be recursively split down to 4x4 units, up to a maximum transform depth (typically two levels of transform partitioning relative to the coding block size).
- Rectangular Splits: In addition to square partitions, AV1 supports extended non-square transforms with 1:2 and 1:4 aspect ratios. A 64x64 block can yield rectangular transform partitions such as 64x32, 32x64, 64x16, or 16x64, allowing the residual structure to align closely with directional edges.
The decision to split is signaled in the bitstream using transform depth flags, which are entropy-coded using context models based on the transform sizes of neighboring blocks.
High-Frequency Coefficient Truncation
Computing full 64-point discrete cosine transforms introduces significant computational complexity and hardware area overhead. To mitigate this, AV1 uses high-frequency coefficient zeroing (truncation) for any transform involving a 64-point dimension:
- In a 64x64 transform, only the top-left 32x32 low-frequency coefficient matrix is retained, quantized, and encoded.
- The remaining three-quarters of the transform matrix (the higher horizontal and vertical frequencies) are explicitly forced to zero and are not transmitted.
- For non-square 64-point transforms (e.g., 64x32 or 16x64), only the lower 32 coefficients along the 64-point axis are retained, while the rest are zeroed.
This truncation reduces implementation cost and memory bandwidth while preserving the low-frequency information that carries the vast majority of visual energy in large homogeneous areas.
Transform Kernel Restrictions
Smaller transform blocks in AV1 can select from a wide variety of transform combinations, including the Discrete Cosine Transform (DCT), Asymmetric Discrete Sine Transform (ADST), Fliped ADST, and Identity transforms. However, for 64x64 blocks and partitions with 64-point dimensions:
- The kernel options are strictly limited.
- 64x64 blocks predominantly utilize the 2D DCT-2 or Identity transforms.
- Asymmetric transforms like ADST are disabled for 64-point lengths to keep hardware logic minimal.