H.264視頻編碼傳輸的QoS特性分析(三)

四、H.264的網絡提取層的錯誤恢復
NAL支持衆多基於包的有線/無線通信網絡,諸如 H.320、MPEG-2和RTP/IP等。但目前,絕大部分的視頻應用所採用的網絡協議層次是RTP/UDP/IP,因此在下面的描述中主要基於這個傳 輸框架。下面首先分析NAL層的基本處理單元NALU以及它的網絡封裝、分割和合並的方法。
1.     NAL單元
每個NAL單元是一個一定語法元素的可變長字節字符串,包括包含一個字節的頭信息(用來表示數據類型),以及若干整數字節的負荷數據。一個NAL單元可以攜帶一個編碼片、A/B/C型數據分割或一個序列或圖像參數集。
NAL單元按RTP序列號按序傳送。其中,T爲負荷數據類型,佔5bit;R爲重要性指示位,
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
佔2個bit;最後的F爲禁止位,佔1bit。具體如下:
(1)       NALU類型位
可以表示NALU的32種不同類型特徵,類型1~12是H.264定義的,類型24~31是用於H.264以外的,RTP負荷規範使用這其中的一些值來定義包聚合和分裂,其他值爲H.264保留。
(2)重要性指示位
用於在重構過程中標記一個NAL單元的重要性,值越大,越重要。值爲0表示這個NAL單元沒有用於預測,因此可被解碼器拋棄而不會有錯誤擴散;值高於0表示此NAL單元要用於無漂移重構,且值越高,對此NAL單元丟失的影響越大。
(3)禁止位
編 碼中默認值爲0,當網絡識別此單元中存在比特錯誤時,可將其設爲1,以便接收方丟掉該單元,主要用於適應不同種類的網絡環境(比如有線無線相結合的環 境)。例如對於從無線到有線的網關,一邊是無線的非IP環境,一邊是有線網絡的無比特錯誤的環境。假設一個NAL單元到達無線那邊時,校驗和檢測失敗,網 關可以選擇從NAL流中去掉這個NAL單元,也可以把已知被破壞的NAL單元前傳給接收端。在這種情況下,智能的解碼器將嘗試重構這個NAL單元(已知它 可能包含比特錯誤)。而非智能的解碼器將簡單地拋棄這個NAL單元。NAL單元結構規定了用於面向分組或用於流的傳輸子系統的通用格式。在H.320和 MPEG-2系統中,NAL單元的流應該在NAL單元邊界內,每個NAL單元前加一個3字節的起始前綴碼。在分組傳輸系統中,NAL單元由系統的傳輸規程 確定幀界,因此不需要上述的起始前綴碼。一組NAL單元被稱爲一個接入單元,定界後加上定時信息(SEI),形成基本編碼圖像。該基本編碼圖像(PCP) 由一組已編碼的NAL單元組成,其後是冗餘編碼圖像(RCP),它是PCP同一視頻圖像的冗餘表示,用於解碼中PCP丟失情況下恢復信息。如果該編碼視頻 圖像是編碼視頻序列的最後一幅圖像,應出現序列NAL單元的end,表示該序列結束。一個圖像序列只有一個序列參數組,並被獨立解碼。如果該編碼圖像是整 個NAL單元流的最後一幅圖像,則應出現流的end。
H.264採用上述嚴格的接入單元,不僅使H.264可自適應於多種網絡,而且進一步提高其抗誤碼能力。序列號的設置可發現丟的是哪一個VCL單元,冗餘編碼圖像使得即使基本編碼圖像丟失,仍可得到較“粗糙”的圖像。

2. H.264中的RTP
上面闡述了NAL單元的結構和實現,這裏要詳細討論RTP的載荷規範和抗誤碼性能。RTP可通過發送冗餘信息來減少接收端的丟包率,會增加時延,與冗餘片不同的是它增加的冗餘信息是個別重點信息的備份,適合於非平等保護機制。相應的多媒體傳輸規範有:
(1)分組複製多次重發,發送端對最重要的比特信息分組進行復制重發,使得保證接收端能至少正確接收到一次,同時接收端要丟棄已經正確接收的分組的多餘備份。
2)基於分組的前向糾錯,對被保護的分組進行異或運算,將運算結果作爲冗餘信息發送到接收方。由於時延,不用於對話型應用,可用於流媒體。
(3)音頻冗餘編碼,可保護包括視頻在內的任何數據流。每個分組由頭標、載荷以及前一分組的載荷組成,H.264中可與數據分割一起使用。
RTP的封裝規範總結如下:
(1)額外開銷要少,使MTU尺寸在100~64千字節範圍都可以;
(2)易於區分分組的重要性,而不必對分組內的數據解碼;
(3)載荷規範應當保證不用解碼就可識別由於其他比特丟失而造成的分組不可解碼;
(4)支持將NALU分割成多個RTP分組;
(5)支持將多個NALU彙集在一個RTP分組中。
H.264採用了簡單打包的方案,即一個RTP分組裏放入 一個NALU,將NALU(包括同時作爲載荷頭標的NALU頭)放入RTP的載荷中,設置RTP頭標值。理想情況下,VCL不會產生超過MTU尺寸的 NAL單元,來避免IP層的分拆。在接收端,通過RTP序列信息識別複製包並丟棄,取出有效RTP包裏的NAL單元。基本檔次和擴展檔次允許片的無序解 碼,這樣在抖動緩存中就不必對包重新排序。在使用主檔次時(不允許片的亂序),要通過RTP序列信息來對包重新排序,解碼順序號(DON)的概念現正在 IETF的討論中。
存在如下情況,例如當使用內容預編碼時,編碼器不瞭解底層網絡的MTU大小,將產生許多大於MTU尺寸的NALU。這就需要涉及NALU的分割和合並。
(1)       NALU的分割
雖 然IP層的分割可以使數據塊小於64千字節,但無法在應用層實現保護,從而降低了非平等保護方案的效果。由於UDP數據包小於64千字節,而且一個片的長 度對某些應用場合來說太小,所以應用層打包是RTP打包方案的一部分。目前的拆分方案正在IETF的討論之中,大致具有以下特點:①NALU的分塊以按 RTP次序號升序傳輸;②能夠標記第一個和最後一個NALU分塊;③可以檢測丟失的分塊。
(2)       NALU的合併
一些NALU如SEI、參數集等非常小,將它們合併在一起有利於減少頭標開銷。現有的兩種集合分組:①單一時間集合分組(STAP),按時間戳進行組合,一般用於低時延環境;②多時間集合分組(MTAP),不同時間戳也可以組合,一般用於高時延環境,比如流應用。
五、結束語
本文針對最新推出的視頻編解碼標準H.264的抗誤碼性能 進行了分析,可以看到H.264/AVC標準除了擁有高效編碼的特性,還引入了一些新工具用於提高錯誤恢復能力。特別是,參數集、NAL上的NALU的概 念、靈活的宏塊排序FMO、數據分割以及幀內編碼等都極大地提高了複雜網絡環境下的抗誤碼能力。同時,詳細介紹了與視頻比特流傳輸密切相關的RTP封裝規 範,與H.264的NAL緊密結合,提供了對數據封裝的指導。通過附加了一些傳輸層的低開銷機制來用於NALU包的高效拆分和聚合。當聯合使用這些工具 時,可以達到更高的性能,在因特網和惡劣的無線網絡上進行高質量的視頻壓縮也將最終成爲現實[5]。
                     《關於 H.264 視頻編碼傳輸的 QoS 特性分析(二)

                     《關於 H.264 視頻編碼傳輸的 QoS 特性分析(三)

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