H.264中的NAL技術

NAL技術


1.NAL概述
NAL全稱Network Abstract Layer, 即網絡抽象層。在H.264/AVC視頻編碼標準中,整個系統框架被分爲了兩個層面:視頻編碼層面(VCL)和網絡抽象層面(NAL)。其中,前者負責有效表示視頻數據的內容,而後者則負責格式化數據並提供頭信息,以保證數據適合各種信道和存儲介質上的傳輸。
現實中的傳輸系統是多樣化的,其可靠性,服務質量,封裝方式等特徵各不相同,NAL這一概念的提出提供了一個視頻編碼器和傳輸系統的友好接口,使得編碼後的視頻數據能夠有效地在各種不同的網絡環境中傳輸。

2.NAL單元
NAL單元是NAL的基本語法結構,它包含一個字節的頭信息和一系列來自VCL的稱爲原始字節序列載荷(RBSP)的字節流。頭信息中包含着一個可否丟棄的指示標記,標識着該NAL單元的丟棄能否引起錯誤擴散,一般,如果NAL單元中的信息不用於構建參考圖像,則認爲可以將其丟棄;最後包含的是NAL單元的類型信息,暗示着其內含有效載荷的內容。
送到解碼器端的NAL單元必須遵守嚴格的順序,如果應用程序接收到的NAL單元處於亂序,則必須提供一種恢復其正確順序的方法。

3.NAL實現編解碼器與傳輸網絡的結合
NAL提供了一個編解碼器與傳輸網絡的通用接口,而對於不同的網絡環境,具體的實現方案是不同的。對於基於流的傳輸系統如H.320、MPEG等,需要按照解碼順序組織NAL單元,併爲每個NAL單元增加若干比特字節對齊的前綴以形成字節流;對於RTP/UDP/IP系統,則可以直接將編碼器輸出的NAL單元作爲RTP的有效載荷;而對於同時提供多個邏輯信道的傳輸系統,我們甚至可以根據重要性將不同類型的NAL單元在不同服務質量的信道中傳輸[2]。

4.結論
爲了實現編解碼器良好的網絡適應性,需要做兩方面的工作:第一、在Codec中將NAL這一技術完整而有效的實現;第二、在遵循H.264/AVC NAL規範的前提下設計針對不同網絡的最佳傳輸方案。如果實現了以上兩個目標,所實現的就不僅僅是一種視頻編解碼技術,而是一套適用範圍很廣的多媒體傳輸方案,該方案適用於如視頻會議,數據存儲,電視廣播,流媒體,無線通信,遠程監控等多種領域。


NALU類型

標識NAL單元中的RBSP數據類型,其中,nal_unit_type爲1, 2, 3, 4,5及12的NAL單元稱爲VCL的NAL單元,其他類型的NAL單元爲非VCL的NAL單元。

  • 0:未規定
  • 1:非IDR圖像中不採用數據劃分的片段
  • 2:非IDR圖像中A類數據劃分片段
  • 3:非IDR圖像中B類數據劃分片段
  • 4:非IDR圖像中C類數據劃分片段
  • 5:IDR圖像的片段
  • 6:補充增強信息 (SEI)
  • 7:序列參數集
  • 8:圖像參數集
  • 9:分割符
  • 10:序列結束符
  • 11:流結束符
  • 12:填充數據
  • 13 – 23:保留
  • 24 – 31:未規定

NAL在多媒體傳輸、存儲系統中的應用

NAL的頭佔用了一個字節,可以表示如下:

0AABBBBB

其中,AA用於表示改NAL是否可以丟棄(有無被其後的NAL參考),00b表示沒有參考作用,可丟棄,如Bslice、SEI等,非零——包括01b、10b、11b——表示該NAL不可丟棄,如SPS、PPS、I Slice、PSlice等。常用的NAL頭的取值如:

0x67: SPS 

0x68: PPS 

0x65: IDR 

0x61: non-IDR Slice


0x01: B Slice


0x06: SEI


0x09: AU Delimiter

由於NAL的語法中沒有給出長度信息,實際的傳輸、存儲系統需要增加額外的頭實現各個NAL單元的定界。

其中,AVI文件和MPEGTS廣播流採取的是字節流的語法格式,即在NAL單元之前增加0x00000001的同步碼,則從AVI文件或MPEG TSPES包中讀出的一個H.264視頻幀以下面的形式存在:

00 00 00 01 06 ... 00 00 00 01 67 ... 00 00 00 01 68 ... 00 00 00
01 65 ...


SEI信息             SPS                   PPS              IDR Slice

而對於MP4文件,NAL單元之前沒有同步碼,卻有若干字節的長度碼,來表示NAL單元的長度,這個長度碼所佔用的字節數由MP4文件頭給出;此外,從MP4讀出來的視頻幀不包含PPS和SPS,這些信息位於MP4的文件頭中,解析器必須在打開文件的時候就獲取它們。從MP4文件讀出的一個H.264幀往往是下面的形式(假設長度碼爲2字節):

00 19 06 [... 25 字節...] 24 aa 65 [... 9386 字節...]


SEI信息                   IDR Slice

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章