Description
The Network Abstraction Layer (NAL) is a conceptual layer defined in video coding standards like H.264/Advanced Video Coding (AVC) and H.265/High Efficiency Video Coding (HEVC), which are widely adopted by 3GPP for multimedia telephony (IMS), Multimedia Broadcast/Multicast Service (MBMS), and streaming services. Its primary function is to map the output of the Video Coding Layer (VCL), which contains the compressed video data (slices of macroblocks or coding tree units), into a uniform format called NAL units. A NAL unit is a packet-like structure consisting of a header and a payload. The header contains crucial information such as the NAL unit type, which identifies whether the payload contains a coded slice of a picture, sequence parameter set (SPS), picture parameter set (PPS), or supplemental enhancement information (SEI). This abstraction decouples the highly complex video encoding/decoding process from the specifics of the underlying transport network or storage medium.
How it works: After the VCL encodes a picture slice, it outputs raw bit strings. The NAL formats these strings into NAL units by prefixing them with a start code prefix (or length information) and the NAL unit header. For transport over packet-based networks like IP, NAL units are often directly used as the payload of Real-time Transport Protocol (RTP) packets, as defined in 3GPP and IETF specifications. This is known as packetization mode. The NAL unit structure makes it easy for network elements (e.g., gateways, firewalls) or the receiver to identify the type of data without fully decoding the video, enabling network-aware processing such as prioritizing parameter sets (SPS/PPS) that are critical for decoding or applying error concealment when a loss is detected.
NAL plays a vital role in error resilience and adaptability. By separating parameter sets (which contain key decoding configuration) from the slice data, NAL allows these vital parameters to be sent reliably and out-of-band, protecting them from loss. Furthermore, specific NAL unit types are defined for indicating the end of a sequence, a stream, or for carrying filler data. In 3GPP systems, specifications like 26.114 (IMS) and 26.346 (MBMS) define precise profiles and levels for H.264/AVC and H.265/HEVC, which inherently rely on the NAL structure. The NAL design enables features like temporal scalability and easy transcoding, as different NAL units can represent different layers or qualities of the video stream. Its standardized format is the reason why the same encoded video file can be stored, streamed over HTTP, transmitted via RTP/UDP in a video call, or broadcast over MBMS, with only minimal adaptation at the transport layer.
Purpose & Motivation
The NAL was created to solve the problem of transporting compressed video bitstreams over diverse and potentially hostile network environments. Early video codecs often produced a continuous, monolithic bitstream that was highly vulnerable to errors; a single bit error could cause the decoder to lose synchronization and fail. The motivation for NAL, introduced with H.264/AVC, was to create a flexible, packet-oriented interface between the video encoder and the network. This abstraction addresses the limitation of tight coupling between coding and transport.
The historical context is the convergence of video applications onto IP networks and wireless systems in the early 2000s. 3GPP needed an efficient way to deliver video over error-prone radio links and through various gateways. NAL provides this by structuring the bitstream into discrete units (NAL units) with clear boundaries and self-contained headers. This allows for: 1) Easy packetization for RTP/IP transport, 2) Robust error detection and recovery (since losses are confined to specific NAL units), 3) Prioritization of important data (parameter sets), and 4) Compatibility with different transport protocols (RTP, MPEG-2 TS, file formats). For 3GPP services like Packet-switched Streaming Service (PSS) and Multimedia Telephony Service for IMS (MTSI), the NAL is the essential formatting layer that makes video codecs network-agnostic, enabling interoperability, efficient bandwidth use, and resilience against packet loss, which are critical for quality of experience in mobile video delivery.
Key Features
- Formats encoded video data into packet-like NAL units
- Defines NAL unit types for video slices, parameter sets, and control information
- Separates Video Coding Layer (VCL) from transport specifics
- Enables direct packetization into RTP for real-time streaming
- Facilitates error resilience through independent unit structure
- Supports scalability and prioritization of video data
Evolution Across Releases
Formally adopted the H.264/AVC codec with its Network Abstraction Layer for 3GPP multimedia services, including Packet-switched Streaming Service (PSS) and Multimedia Broadcast/Multicast Service (MBMS). Specified the use of NAL units for RTP packetization and file storage formats, establishing the foundation for mobile video delivery.
Defining Specifications
| Specification | Title |
|---|---|
| TS 26.116 | 3GPP TS 26.116 |
| TS 26.118 | 3GPP TS 26.118 |
| TS 26.346 | 3GPP TS 26.346 |
| TS 26.522 | 3GPP TS 26.522 |
| TS 26.822 | 3GPP TS 26.822 |
| TS 26.862 | 3GPP TS 26.862 |
| TS 26.902 | 3GPP TS 26.902 |
| TS 26.904 | 3GPP TS 26.904 |
| TS 26.906 | 3GPP TS 26.906 |
| TS 26.946 | 3GPP TS 26.946 |
| TS 26.948 | 3GPP TS 26.948 |