新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于H.264視頻編碼傳輸的QoS特性分析

        關于H.264視頻編碼傳輸的QoS特性分析

        作者: 時間:2013-04-17 來源:網絡 收藏



          標準繼承了以前視頻編碼標準中某些優秀的錯誤恢復工具,同時也改進和創新了多種錯誤恢復工具。這里主要介紹的錯誤恢復工具,包括參數集、靈活的宏塊排序和冗余片RS等。


          1. 參數集


          參數集是標準的一個新概念,是一種通過改進視頻碼流結構增強錯誤恢復能力的方法。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來實現數據分割。在解碼器上,所有分割用于信息重建。這樣,如果幀內或幀間信息丟失了,有效的幀頭信息仍然能用來提高錯誤隱藏效率,即有效的宏塊類型和運動矢量,保留了宏塊的基本特征,從而仍可獲得一個相當高的信息重構質量,而僅僅丟失了細節信息。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 麻江县| 镇安县| 原平市| 千阳县| 海南省| 东阳市| 海盐县| 孝昌县| 和硕县| 精河县| 镇雄县| 长顺县| 墨玉县| 涪陵区| 额济纳旗| 南和县| 荥经县| 朝阳市| 拉萨市| 含山县| 科尔| 大连市| 卫辉市| 石屏县| 尼勒克县| 日照市| 株洲县| 通海县| 澄江县| 山阳县| 高邮市| 江山市| 长宁区| 绍兴市| 嘉定区| 鹿泉市| 天峨县| 桓台县| 涞源县| 那曲县| 上高县|