H264元素的分層結構
H.264編碼器輸出的Bit流中,每個Bit都隸屬於某個句法元素。句法元素被組織成有層次的結構,分別描述各個層次的信息。
在H.264 中,句法元素共被組織成 序列、圖像、片、宏塊、子宏塊五個層次。在這樣的結構中,每一層的頭部和它的數據部分形成管理與被管理的強依賴關系,頭部的句法元素是該層數據的核心,而一旦頭部丟失,數據部分的信息幾乎不可能再被正確解碼出來,尤其在序列層及圖像層。
在 H.264 中,分層結構最大的不同是取消了序列層和圖像層,並將原本屬於序列和圖像頭部的大部分句法元素游離出來形成序列和圖像兩級參數集,其余的部分則放入片層。
參數集是一個獨立的數據單位,不依賴於參數集外的其他句法元素。一個參數集不對應某一個特定的圖像或序列,同一序列參數集可以被多個圖像參數集引用,同理,同一個圖像參數集也可以被多個圖像引用。只在編碼器認為需要更新參數集的內容時,才會發出新的參數集。
復雜通信中的碼流中可能出現的數據單位:
IDR: 在H.264中,圖像以序列為單位進行組織。一個序列的第一個圖像叫做 IDR 圖像(立即刷新圖像),IDR 圖像都是 I 幀圖像。H.264 引入 IDR 圖像是為了解碼的重同步,當解碼器解碼到 IDR 圖像時,立即將參考幀隊列清空,將已解碼的數據全部輸出或拋棄,重新查找參數集,開始一個新的序列。這樣,如果前一個序列出現重大錯誤,在這里可以獲得重新同步的機會。IDR圖像之后的圖像永遠不會使用IDR之前的圖像的數據來解碼。 IDR 圖像一定是 I 圖像,但 I 圖像不一定是 IDR 圖像。I幀之后的圖像有可能會使用I幀之前的圖像做運動參考。
表1
NAL單元格式
|
|||
NAL頭 | RBSP | NAL頭 | RBSP |
RBSP 類型之一 PS: 包括序列參數集 SPS 和 圖像參數集 PPS
SPS 包含的是針對一連續編碼視頻序列的參數,如標識符 seq_parameter_set_id、幀數及 POC 的約束、參考幀數目、解碼圖像尺寸和幀場編碼模式選擇標識等等。
PPS對應的是一個序列中某一幅圖像或者某幾幅圖像,其參數如標識符 pic_parameter_set_id、可選的 seq_parameter_set_id、熵編碼模式選擇標識、片組數目、初始量化參數和去方塊濾波系數調整標識等等。
標識NAL單元中的RBSP數據類型,其中,nal_unit_type為1, 2, 3, 4, 5及12的NAL單元稱為VCL的NAL單元,其他類型的NAL單元為非VCL的NAL單元。
0:未規定
1:非IDR圖像中不采用數據划分的片段
2:非IDR圖像中A類數據划分片段
3:非IDR圖像中B類數據划分片段
4:非IDR圖像中C類數據划分片段
5:IDR圖像的片段
6:補充增強信息 (SEI)
7:序列參數集
8:圖像參數集
9:分割符
10:序列結束符
11:流結束符
12:填充數據
13 – 23:保留
24 – 31:未規定

圖1 H.264的碼流結構
|