關(guān)于H.264視頻編碼傳輸?shù)腝oS特性分析
H.264標(biāo)準(zhǔn)繼承了以前視頻編碼標(biāo)準(zhǔn)中某些優(yōu)秀的錯誤恢復(fù)工具,同時也改進和創(chuàng)新了多種錯誤恢復(fù)工具。這里主要介紹H.264的錯誤恢復(fù)工具,包括參數(shù)集、靈活的宏塊排序和冗余片RS等。
1. 參數(shù)集
參數(shù)集是H.264標(biāo)準(zhǔn)的一個新概念,是一種通過改進視頻碼流結(jié)構(gòu)增強錯誤恢復(fù)能力的方法。H.264的參數(shù)集又分為序列參數(shù)集和圖像參數(shù)集。其中,序列參數(shù)集包括一個圖像序列的所有信息,即兩個IDR圖像間的所有圖像信息。圖像參數(shù)集包括一個圖像的所有分片的所有相關(guān)信息,包括圖像類型、序列號等,解碼時某些序列號的丟失可用來檢驗信息包的丟失與否。多個不同的序列和圖像參數(shù)集存儲在解碼器中,編碼器依據(jù)每個編碼分片的頭部的存儲位置來選擇適當(dāng)?shù)膮?shù)集,圖像參數(shù)集本身也包括使用的序列參數(shù)集參考信息。
眾所周知,一些關(guān)鍵信息比特的丟失(如序列和圖像的頭信息)會造成解碼的嚴(yán)重負(fù)面效應(yīng),而H.264把這些關(guān)鍵信息分離出來,憑借參數(shù)集的設(shè)計,確保在易出錯的環(huán)境中能正確地傳輸。這種碼流結(jié)構(gòu)的設(shè)計無疑增強了碼流傳輸?shù)腻e誤恢復(fù)能力。
參數(shù)集具體實現(xiàn)的方法也是多樣化的:(1)通過帶外傳輸,這種方式要求參數(shù)集通過可靠的協(xié)議,在首個片編碼到達(dá)之前傳輸?shù)浇獯a器;(2)通過帶內(nèi)傳輸,這需要為參數(shù)集提供更高級別的保護,例如發(fā)送復(fù)制包來保證至少有一個到達(dá)目標(biāo);(3)在編碼器和解碼器采用硬件處理參數(shù)集。
2. 片、片組和FMO
一幅圖像由若干片組成,每片包含一系列的宏塊(MB)。MB的排列可按光柵掃描順序,也可不按掃描順序。每個片獨立解碼,不同片的宏塊不能用于自身片中作預(yù)測參考。因此,片的設(shè)置不會造成誤碼擴散。
靈活的宏塊排序FMO是H.264的一大特色,適用于H.264的基本檔次和擴展檔次的應(yīng)用。
圖像內(nèi)部預(yù)測機制,例如幀內(nèi)預(yù)測或運動矢量預(yù)測,僅允許用同一片組里的空間相鄰的宏塊。FMO通過宏塊分配映射技術(shù),把每個宏塊分配到不按掃描順序的片中。FMO模式劃分圖像的模式各種各樣,重要的有棋盤模式、矩形模式等。當(dāng)然FMO模式也可以使一幀中的宏塊順序分割,使得分割后的片的大小小于無線網(wǎng)絡(luò)的MTU尺寸,經(jīng)過FMO模式分割后的圖像數(shù)據(jù)分開進行傳輸。
所有的MB被分成了片組0和片組1,相應(yīng)地分別采用黃色和白色表示。當(dāng)白片丟失時,因為其周圍的宏塊都屬于其他片的宏塊,利用鄰域相關(guān)性,黃片宏塊的某種加權(quán)可用來代替白片相應(yīng)宏塊。這種錯誤隱藏機制可以明顯提高抗誤碼性能。實驗證明,在CIF圖像的視頻會議中,在丟包率達(dá)10%時,視頻失真低到需要訓(xùn)練有素的眼睛才能識別。使用FMO的代價是稍微降低了編碼效率(因為它打破了原先非鄰居MB之間的預(yù)測),而且在高度優(yōu)化的環(huán)境中,有較高的時延。
3. 數(shù)據(jù)分割
通常情況下,一個宏塊的數(shù)據(jù)是存放在一起而組成片的,數(shù)據(jù)劃分使得一個片中的宏塊數(shù)據(jù)重新組合,把宏塊語義相關(guān)的數(shù)據(jù)組成一個劃分,由劃分來組裝片。H.264視頻編碼標(biāo)準(zhǔn)使用了三種不同類型的數(shù)據(jù)分割。
(1)A型分割
A型分割是頭信息劃分,包括宏塊類型、量化參數(shù)和運動矢量,這個信息是最重要的。
?。?)B型分割
B型分割是幀內(nèi)信息劃分,包括幀內(nèi)CBPs和幀內(nèi)系數(shù)。幀內(nèi)信息可以阻止錯誤的傳播,該型數(shù)據(jù)分割要求給定分片的A型分割有效,相對于幀間信息,幀內(nèi)信息能更好地阻止漂移效應(yīng),因此它比幀間分割更為重要。
?。?)C型分割
C型分割是幀間信息劃分,包括幀間CBPs和幀間系數(shù),一般情況下它是編碼分片的最大分區(qū)。幀間分割是最不重要的,它的使用要求A型分割有效。
當(dāng)使用數(shù)據(jù)分割時,源編碼器把不同類型的分割安排在3個不同的緩沖器中,同時分片的尺寸必須進行調(diào)整以保證小于MTU長度,因此是編碼器而不是NAL來實現(xiàn)數(shù)據(jù)分割。在解碼器上,所有分割用于信息重建。這樣,如果幀內(nèi)或幀間信息丟失了,有效的幀頭信息仍然能用來提高錯誤隱藏效率,即有效的宏塊類型和運動矢量,保留了宏塊的基本特征,從而仍可獲得一個相當(dāng)高的信息重構(gòu)質(zhì)量,而僅僅丟失了細(xì)節(jié)信息。
評論