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

三、H.264的視頻編碼層的錯誤恢復[1,4]
在H.261、H.263、MPEG-1、MPEG-2、MPEG-4中,許多錯誤恢復工具已經得到了很好的應用:圖像分割的不同形式(片、塊組),I模式宏塊,片和圖像的內插,參考圖像選擇(帶有和不帶反饋、圖像級別、GOB/SLICE或MB級別),數據分割等。
H.264標準繼承了以前視頻編碼標準中某些優秀的錯誤恢復工具,同時也改進和創新了多種錯誤恢復工具。這裏主要介紹H.264的錯誤恢復工具,包括參數集、靈活的宏塊排序和冗餘片RS等。
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

1. 參數集
參數集是H.264標準的一個新概念,是一種通過改進視頻 碼流結構增強錯誤恢復能力的方法。H.264的參數集又分爲序列參數集和圖像參數集。其中,序列參數集包括一個圖像序列的所有信息,即兩個IDR圖像間的 所有圖像信息。圖像參數集包括一個圖像的所有分片的所有相關信息,包括圖像類型、序列號等,解碼時某些序列號的丟失可用來檢驗信息包的丟失與否。多個不同 的序列和圖像參數集存儲在解碼器中,編碼器依據每個編碼分片的頭部的存儲位置來選擇適當的參數集,圖像參數集本身也包括使用的序列參數集參考信息。
衆所周知,一些關鍵信息比特的丟失(如序列和圖像的頭信息)會造成解碼的嚴重負面效應,而H.264把這些關鍵信息分離出來,憑藉參數集的設計,確保在易出錯的環境中能正確地傳輸。這種碼流結構的設計無疑增強了碼流傳輸的錯誤恢復能力。
參數集具體實現的方法也是多樣化的:
(1)通過帶外傳輸,這種方式要求參數集通過可靠的協議,在首個片編碼到達之前傳輸到解碼器;
(2)通過帶內傳輸,這需要爲參數集提供更高級別的保護,例如發送複製包來保證至少有一個到達目標;
(3)在編碼器和解碼器採用硬件處理參數集。
2. 片、片組和FMO
一幅圖像由若干片組成,每片包含一系列的宏塊(MB)。MB的排列可按光柵掃描順序,也可不按掃描順序。每個片獨立解碼,不同片的宏塊不能用於自身片中作預測參考。因此,片的設置不會造成誤碼擴散。
靈活的宏塊排序FMO是H.264的一大特色,適用於H.264的基本檔次和擴展檔次的應用。
圖像內部預測機制,例如幀內預測或運動矢量預測,僅允許用 同一片組裏的空間相鄰的宏塊。FMO通過宏塊分配映射技術,把每個宏塊分配到不按掃描順序的片中。FMO模式劃分圖像的模式各種各樣,重要的有棋盤模式、 矩形模式等。當然FMO模式也可以使一幀中的宏塊順序分割,使得分割後的片的大小小於無線網絡的MTU尺寸,經過FMO模式分割後的圖像數據分開進行傳 輸。
所有的MB被分成了片組0和片組1,相應地分別採用黃色和 白色表示。當白片丟失時,因爲其周圍的宏塊都屬於其他片的宏塊,利用鄰域相關性,黃片宏塊的某種加權可用來代替白片相應宏塊。這種錯誤隱藏機制可以明顯提 高抗誤碼性能。實驗證明,在CIF圖像的視頻會議中,在丟包率達10%時,視頻失真低到需要訓練有素的眼睛才能識別。使用FMO的代價是稍微降低了編碼效 率(因爲它打破了原先非鄰居MB之間的預測),而且在高度優化的環境中,有較高的時延。

3. 數據分割
通常情況下,一個宏塊的數據是存放在一起而組成片的,數據劃分使得一個片中的宏塊數據重新組合,把宏塊語義相關的數據組成一個劃分,由劃分來組裝片。H.264視頻編碼標準使用了三種不同類型的數據分割。
(1)A型分割
A型分割是頭信息劃分,包括宏塊類型、量化參數和運動矢量,這個信息是最重要的。
(2)B型分割
B型分割是幀內信息劃分,包括幀內CBPs和幀內係數。幀內信息可以阻止錯誤的傳播,該型數據分割要求給定分片的A型分割有效,相對於幀間信息,幀內信息能更好地阻止漂移效應,因此它比幀間分割更爲重要。
(3)C型分割
C型分割是幀間信息劃分,包括幀間CBPs和幀間係數,一般情況下它是編碼分片的最大分區。幀間分割是最不重要的,它的使用要求A型分割有效。
當使用數據分割時,源編碼器把不同類型的分割安排在3個不 同的緩衝器中,同時分片的尺寸必須進行調整以保證小於MTU長度,因此是編碼器而不是NAL來實現數據分割。在解碼器上,所有分割用於信息重建。這樣,如 果幀內或幀間信息丟失了,有效的幀頭信息仍然能用來提高錯誤隱藏效率,即有效的宏塊類型和運動矢量,保留了宏塊的基本特徵,從而仍可獲得一個相當高的信息 重構質量,而僅僅丟失了細節信息。

4. 冗餘片方法
H.264中參考圖像的選擇與以前在H.263中的一樣,在基於反饋的系統中,解碼器接收到丟失或被破壞的圖像信息時,選擇參考圖像序列中正確的參考宏塊,來進行錯誤恢復;而對於無反饋的系統,H.264提出了冗餘分片編碼。
冗餘分片允許編碼器把在同一個碼流中添加同一MB的一個或 更多冗餘表示。需要注意的是這些冗餘片的編碼參數與非冗餘片的編碼參數不同,例如主片可用低QP(高質量)來編碼,而冗餘信息中能用一個高QP(低質量) 的方式來編碼,這樣質量粗糙一些但碼率更低。解碼器在重構時,首先使用主片,如果它可用就拋棄冗餘片;而如主片丟失(比如因爲包的丟失)冗餘片也能被用於 重構。冗餘片主要用於支持高誤碼的移動環境。

5. 幀內編碼
H.264中幀內編碼大體上類似於以往的視頻編碼標準,但也進行了重要的改進,主要體現在:
(1)H.264中幀內預測宏塊的參考宏塊可以是幀間編碼宏塊,幀內預測宏塊並不像H.263中的幀內編碼一樣,而採用預測的幀內編碼比非預測的幀內編碼有更好的編碼效率,但降低了幀內編碼的重同步性能,可以通過設置限制幀內預測標記來恢復這一性能。
(2)只包含幀內宏塊的片有兩種,一種是幀內片(I Slice),一種是立即刷新片(IDR Slice)。立即刷新片需存在於立即刷新圖像(IDR Picture)中。與短期參考圖像相比,立即刷新圖像有更強壯的重同步性能。
爲了更適用無線IP網絡環境中的應用,H.264通過採用率失真優化編碼和設置幀內預測標誌,來提高幀內圖像的重同步性能
                     《關於 H.264 視頻編碼傳輸的 QoS 特性分析(二)
                     《關於 H.264 視頻編碼傳輸的 QoS 特性分析(三)
發佈了24 篇原創文章 · 獲贊 1 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章