在 H.264
流中牵素,有兩種 NALU
極其重要
- 序列參數(shù)集 (Sequence Paramater Set,
SPS
)- SPS 記錄了編碼的
Profile
、level
澄者、圖像寬高等 - 如果其中的數(shù)據(jù)丟失或出現(xiàn)錯(cuò)誤笆呆,那么解碼過程很可能會(huì)失敗
- SPS 記錄了編碼的
- 圖像參數(shù)集 (Picture Paramater Set,
PPS
)每一幀編碼后數(shù)據(jù)所依賴的參數(shù)保存于
PPS
中
一般情況 SPS
和 PPS
的 NAL Unit
通常位于整個(gè)碼流的起始位置。
封裝文件一般進(jìn)保存一次粱挡,位于文件頭部赠幕,SPS/PPS
在整個(gè)解碼過程中復(fù)用,不發(fā)生變化抱怔。
然而對(duì)于實(shí)時(shí)流劣坊,通常是從流中間開始解碼,因此需要在每個(gè)I幀
前添加SPS
和PPS
屈留;
如果編碼器在編碼過程中改變了碼流參數(shù)(如分辨率)局冰,需要重新調(diào)整SPS
和PPS
數(shù)據(jù)。
什么是 NAL
NAL (Network Abstract Layer
)灌危,即網(wǎng)絡(luò)抽象層
在 H.264/AVC
視頻編碼標(biāo)準(zhǔn)中康二,整個(gè)系統(tǒng)框架被分為了兩個(gè)層面:
- 視頻編碼層面 (Video Coding Layer, 即
VCL
)- 負(fù)責(zé)有效表示視頻數(shù)據(jù)的內(nèi)容
-
VCL
是H.264/AVC
的規(guī)格,意思是壓縮后勇蝙、去冗余(Visual Redundancy)的影像資料沫勿,其技術(shù)核心包括動(dòng)作估計(jì)、轉(zhuǎn)換編碼味混、預(yù)測編碼产雹、去區(qū)塊效應(yīng)濾波及熵編碼等
- 網(wǎng)絡(luò)抽象層面 (
NAL
)負(fù)責(zé)格式化數(shù)據(jù)并提供頭信息,以保證數(shù)據(jù)適合各種信道和存儲(chǔ)介質(zhì)上的傳播
視頻編碼層往往與網(wǎng)絡(luò)抽象層(NAL)相互配合翁锡,標(biāo)準(zhǔn)的 NAL-unit 總共規(guī)范(Profile
)有12種蔓挖,這12種型式可粗分成 VCL NAL-unit
及 non-VCL NAL-unit
,其中 VCL NAL-unit
是指 NAL-unit
中存放的完全是VCL的影像資料馆衔。
現(xiàn)實(shí)中的傳輸系統(tǒng)是多樣化的瘟判,其可靠性怨绣,服務(wù)質(zhì)量,封裝方式等特征各不相同拷获,NAL這一概念的提出提供了一個(gè)視頻編碼器和傳輸系統(tǒng)的友好接口篮撑,使得編碼后的視頻數(shù)據(jù)能夠有效的在各種不同的網(wǎng)絡(luò)環(huán)境中傳輸。