淺談基于IP網(wǎng)絡(luò)的H.264關(guān)鍵技術(shù)及其應(yīng)用
2. H.264 NAL單元的概念
H.264 NAL單元對編碼數(shù)據(jù)進(jìn)行打包,NAL單元由1字節(jié)的頭,3個定長的字段和一個字節(jié)數(shù)不定的編碼段組成。
頭標(biāo)的語法:NALU類型(5bit)、重要性指示位(2bit)、禁止位(1bit)。
NALU類型:1~12由H.264使用,24~31由H.264以外的應(yīng)用使用。
重要性指示:標(biāo)志該NAL單元用于重建時的重要性,值越大,越重要。
禁止位:網(wǎng)絡(luò)發(fā)現(xiàn)NAL單元有比特錯誤時可設(shè)置該比特為1,以便接收方丟掉該單元。
3. 分組打包的規(guī)則
(1)額外開銷要少,使MTU尺寸在100~64k字節(jié)范圍都可以;
(2)不用對分組內(nèi)的數(shù)據(jù)解碼就可以判別該分組的重要性;
(3)載荷規(guī)范應(yīng)當(dāng)保證不用解碼就可識別由于其他的比特丟失而造成的分組不可解碼;
(4)支持將NALU分割成多個RTP分組;
(5)支持將多個NALU匯集在一個RTP分組中。
RTP的頭標(biāo)可以是NALU的頭標(biāo),并可以實現(xiàn)以上的打包規(guī)則。
4. 簡單打包
一個RTP分組里放入一個NALU,將NALU(包括同時作為載荷頭標(biāo)的NALU頭)放入RTP的載荷中,設(shè)置RTP頭標(biāo)值。為了避免IP層對大分組的再一次分割,片分組的大小一般都要小于MTU尺寸。由于包傳送的路徑不同,解碼端要重新對片分組排序,RTP包含的次序信息可以用來解決這一問 題。
5. NALU分割
對于預(yù)先已經(jīng)編碼的內(nèi)容,NALU可能大于MTU尺寸的限制。雖然IP層的分割可以使數(shù)據(jù)塊小于64千字節(jié),但無法在應(yīng)用層實現(xiàn)保護(hù),從而降低了非等重保護(hù)方案的效果。由于UDP數(shù)據(jù)包小于64千字節(jié),而且一個片的長度對某些應(yīng)用場合來說太小,所以應(yīng)用層打包是RTP打包方案的一部分。
新的討論方案(IETF)應(yīng)當(dāng)符合以下特征:
(1)NALU的分塊以按RTP次序號升序傳輸;
(2)能夠標(biāo)記第一個和最后一個NALU分塊;
(3)可以檢測丟失的分塊。
6. NALU合并
一些NALU如SEI、參數(shù)集等非常小,將它們合并在一起有利于減少頭標(biāo)開銷。已有兩種集合分組:
(1)單一時間集合分組(STAP),按時間戳進(jìn)行組合;
(2)多時間集合分組(MTAP),不同時間戳也可以組合。
五、結(jié)束語
本文重點講述了在IP網(wǎng)絡(luò)的限制條件下H.264進(jìn)行錯誤恢復(fù)的幾種有力工具,但在不同的IP網(wǎng)絡(luò)中要組合使用各種工具才能實現(xiàn)高效率編碼和傳輸。因為目前無線網(wǎng)絡(luò)對MTU尺寸和時延的限制,所以錯誤恢復(fù)工具可以結(jié)合使用圖像的分割、數(shù)據(jù)的劃分和RTP分組技術(shù),避免使用冗余信息和反饋來提高錯誤恢復(fù)性能;另外高效率的FMO編碼模式可以大大提高編碼的抗分組丟失性能。
評論