Network Abstraction Layer

NAL hay Lớp trừu tượng hóa mạng (Network Abstraction Layer) là một phần của bộ quy chuẩn H.264/AVC và HEVC về mã hóa video. H.264 phân biệt rõ rệt giữa lớp mã hóa video (Video Coding Layer - VCL) và lớp trừu tượng hóa mạng (NAL). Kết xuất của quá trình mã hóa là dữ liệu VCL, được gói trong các gói NAL (NAL units) trước khi lưu trữ hay truyền đi. NAL được thiết kế với mục tiêu "thân thiện với đường truyền", cho phép sử dụng đơn giản và hiệu quả các dữ liệu VCL trong nhiều hệ thống đa dạng như:

  • RTP/IP cho mọi loại giao tiếp thời gian thực có dây hoặc không dây (đàm thoại hoặc streaming).[1]
  • Các định dạng File (ISO MP4 để lưu trữ và MMS...)[1]
  • H.32x cho các dịch vụ hội thoại có dây và không dây.[1]
  • Các hệ thống MPEG-2 cho các dịch vụ quảng bá (truyền hình, etc...)[1]

Việc chỉ định riêng rẽ lớp mã hóa video và lớp trừu tượng hóa mạng nhằm mục đích phân biệt giữa các đặc trưng của riêng mã hóa (tại lớp VCL) và vận chuyển (tại lớp NAL).[1][2]

NAL unit

Thành phần quan trọng nhất của NAL đó là NAL unit (gói NAL), mọi dữ liệu mã hóa video đều được đua vào các gói NAL unit, mỗi gói được tổ chức sao cho chúng chứa một số nguyên các byte. Dữ liệu payload trong gói NAL được lồng ghép một số các byte chống giả lập (emulation prevention bytes) nếu cần thiết, được chèn vào với một giá trị được định trước để ngăn ngừa việc một mẫu dữ liệu cụ thể gọi là start code prefix (tiếp đầu mã) bị lặp lại một cách tình cờ bên trong dữ liệu payload.[1][2]

Mỗi gói NAL chứa một chuỗi byte thô (Raw Byte Sequence Payload - RBSP), chứa dữ liệu video mã hóa hoặc thông tin trong header.

Một ví dụ cho chuỗi các đơn vị RBSP được mô tả trong hình sau. Các đơn vị này được truyền đi như các gói NAL. Một gói NAL chứa 1 byte header cho biết loại đơn vị RBSP và dữ liệu RBSP nào được gói trong NAL unit.

Sequence Parameter SetSEIPicture Parameter SetI SlicePicture DelimiterP SliceP Slice...

Chú thích

Đọc thêm