NAL nal_unit_type中的web
1(非IDR圖像的編碼條帶)、網絡
2(編碼條帶數據分割塊A)、編碼
3(編碼條帶數據分割塊B)、spa
4(編碼條帶數據分割塊C)、orm
5(IDR圖像的編碼條帶)種類型
6(SEI)、視頻
7(SPS)、it
8(PPS)import
Slice種的三種編碼模式:I_slice、P_slice、B_slice
frame的3種類型:I frame、P frame、 B frame
一幀的數據能夠分爲多個slice(片)一個幀是能夠分割成多個Slice來編碼的,而一個Slice編碼以後被打包進一個NAL單元,不過NAL單元除了容納Slice編碼的碼流外,還能夠容納其餘數據,好比序列參數集SPS:打包
每一個slice中的數據,在幀內預測只用到本身slice的數據, 與其餘slice數據沒有依賴關係。
NAL 是用來將編碼的數據進行打包的。 好比,每個slice 數據能夠放在NAL 包中。
I 幀是本身獨立編碼,不依賴於其餘frame 數據。
P frame 依賴 I frame 數據。
B frame 依賴 I frame, P frame 或其餘 B frame 數據。webkit
一、NAL、Slice與frame意思及相互關係
NAL指網絡提取層,裏面放一些與網絡相關的信息
Slice是片的意思,264中把圖像分紅一幀(frame)或兩場(field),而幀又能夠分紅一個或幾個片(Slilce);片由宏塊(MB)組成。宏塊是編碼處理的基本單元。
二、VCL視頻編碼層不作解釋。
三、NAL nal_unit_type爲序列參數集(SPS)、圖像參數集(PPS)、加強信息(SEI)。表示後面的數據信息爲序列參數集(SPS)、圖像參數集(PPS)、加強信息(SEI)。
四、H.264的參數集又分爲序列參數集(Sequence parameter set)和圖像參數集(Pictureparameterset)。
序列參數集:包括一個圖像序列的全部信息,即兩個IDR圖像間的全部圖像信息。
圖像參數集:包括一個圖像的全部分片的全部相關信息,包括圖像類型、序列號等,解碼時某些序列號的丟 失可用來檢驗信息包的丟失與否。多個不一樣的序列和圖像參數集存儲在解碼器中,編碼器依據每一個編碼分片的頭部的存儲位置來選擇適當的參數集,圖像參數集自己也包括使用的序列參數集參考信息。
總結:
NAL單元中首先會有一個H.264 NAL type,根據這個能夠判斷是啥信息。若是是
H264NT_SLICE_DPA,H264NT_SLICE_DPB,H264NT_SLICE_DPC,H264NT_SLICE_IDR視頻數據相關的,裏面還會有Slicehead頭信息,根據這個頭信息,能夠判斷屬於I-Slice(P-Slice或B-Slice),以後對於每一個宏塊,都會有MB head信息,根據宏塊頭信息能夠判斷塊模式。