AV1 L1T3 Temporal Scalability Explained

The L1T3 temporal scalability structure in the AV1 video codec provides an efficient mechanism for real-time video communication systems to adapt to changing network bandwidths without renegotiating connections. By encoding a single spatial resolution across three distinct frame rate layers, an AV1-based system can dynamically drop or forward intermediate video frames to match client capabilities and network health. This article explains the architectural mechanics of L1T3, including its frame dependency hierarchy, AV1 reference buffer management, and its role in Selective Forwarding Unit (SFU) architectures.

What L1T3 Means

In standard Scalable Video Coding (SVC) nomenclature, L1T3 denotes:

In a typical 30 frames per second (fps) configuration, the frame rates distribute as follows:

Hierarchical Prediction and Dependency Structure

Real-time communication requires low latency, which rules out out-of-order frame displays and bidirectional B-frames. L1T3 uses a forward-only, hierarchical prediction structure:

  1. Layer 0 (T0 - Base Layer): Contains key frames and critical inter-frames. T0 frames only reference prior T0 frames. Dropping any other layer never corrupts T0.
  2. Layer 1 (T1 - Intermediate Layer): Predicted strictly from previous T0 frames (or preceding T1 frames, depending on the pattern configuration). T1 frames never serve as references for T0.
  3. Layer 2 (T2 - Top Layer): Highest frame rate tier. T2 frames reference T0 and T1 frames, but no other frames reference T2. T2 frames are non-reference (leaf) frames.

Because dependencies only point downward or backward within the same layer, higher layers can be dropped at any point in the transmission path without causing decoding artifacts in the lower layers.

AV1 Implementation Mechanics

AV1 handles temporal scalability directly inside its bitstream syntax using Open Bitstream Units (OBUs):

Role in Real-Time WebRTC and SFUs

In modern WebRTC deployments, media passes through a Selective Forwarding Unit (SFU). The SFU reads the temporal_id in the RTP packet extension or AV1 OBU header and performs dynamic layer filtering: