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