Can AV1 Tiles Be Decoded Independently?
An AV1 video frame can be partitioned into a grid of rectangular regions known as tiles, designed primarily to facilitate parallel processing and multi-threaded decoding. While AV1 tiles are architected to allow parallel entropy decoding and pixel reconstruction, they cannot always be decoded completely independently of neighboring tiles by default. True independent decoding depends on specific bitstream configurations regarding intra-prediction boundaries, context models, and crucially, in-loop filtering operations across tile borders.
Parsing and Entropy Decoding
At the bitstream level, AV1 tiles are largely independent. Each tile contains its own payload that can be parsed by an entropy decoder without waiting for neighboring tiles within the same frame.
AV1 utilizes Cumulative Distribution Function (CDF) contexts for arithmetic coding. A tile can either use a default context, inherit the context from a previous frame, or inherit contexts from specific neighboring tiles within the frame. Once the context is initialized, the symbol parsing within the tile proceeds entirely independently.
Spatial and Motion Prediction
Within a single frame, spatial prediction (intra-prediction) strictly respects tile boundaries. An intra-coded block situated along the edge of a tile cannot use reconstructed pixels from an adjacent tile as reference samples. For prediction purposes, pixels outside the current tile boundary are treated as non-existent or unavailable. This isolation ensures that the reconstruction of motion vectors and prediction residuals inside one tile does not depend on the data from a neighboring tile in the same frame.
The In-Loop Filtering Barrier
The primary obstacle preventing standard AV1 tiles from being 100% independently decodable is in-loop filtering. AV1 uses multiple filtering stages to reduce artifacts:
- Deblocking Filter: Smooths sharp edges along block boundaries.
- Constrained Directional Enhancement Filter (CDEF): Rings and directional smoothing.
- Loop Restoration: High-precision Wiener filtering or Self-Guided restoration.
By default, these filters require pixel data from across tile boundaries to calculate filtering operations for edge pixels. If these filters sample adjacent tiles, a decoder must wait for neighboring tiles to complete reconstruction before finalizing pixel values.
Achieving Complete Independence
An AV1 tile can be made completely independent under specific conditions:
- Disabling Cross-Tile Loop Filtering: The AV1
bitstream includes a syntax element named
loop_filter_across_tiles_enabled. When this flag is set to0, all in-loop filtering operations (deblocking, CDEF, and loop restoration) are constrained to remain strictly within the tile's borders. With this flag disabled, a tile can be fully parsed, reconstructed, and filtered without reading any data from adjacent tiles. - Large Scale Tile Decoding (Tile Lists): AV1 includes a specialized feature called "Tile Lists," predominantly used in 360-degree and virtual reality streaming. In this mode, individual tiles are packaged so that a decoder can extract and decode only a specific subset of tiles representing the user's immediate field of view, completely ignoring the rest of the frame.
In standard encoding configurations, AV1 tiles decode in parallel up to the filtering stage, requiring a final synchronization step across borders. However, when the encoder explicitly restricts loop filtering to stay within tile borders, an AV1 tile can be decoded completely independently from start to finish.