H.264 SODB RBSP EBSP的區別
阿新 • • 發佈:2019-04-30
ice rtc access 問題 cap 同時 它的 兩種 內部
SODB(String of Data Bits,數據比特串):
最原始,未經過處理的編碼數據
RBSP(Raw Byte Sequence Payload,原始字節序列載荷):
在SODB的後面填加了結尾bit(RBSP trailing bits 一個bit ‘1’)若幹bit ‘0’,以便字節對齊。
EBSP(Encapsulated Byte Sequence Payload, 擴展字節序列載荷):
NALU的起始碼為0x000001或0x00000001(起始碼包括兩種:3 字節(0x000001) 和 4 字節(0x00000001),在 SPS、PPS 和 Access Unit 的第一個 NALU 使用 4 字節起始碼,其余情況均使用 3 字節起始碼。)
同時H264規定,當檢測到0x000000時,也可以表示當前NALU的結束。那這樣就會產生一個問題,就是如果在NALU的內部,出現了0x000001或0x000000時該怎麽辦?
在RBSP基礎上填加了仿校驗字節(0x03)它的原因是:在NALU加到Annexb上時,需要填加每組NALU之前的開始碼StartCodePrefix,如果該NALU對應的slice為一幀的開始則用4位字節表示,0x00000001,否則用3位字節表示0x000001.為了使NALU主體中不包括與開始碼相沖突的,在編碼時,每遇到兩個字節連續為0,就插入一個字節的0x03。解碼時將0x03去掉。也稱為脫殼操作。
關系圖:
H.264 SODB RBSP EBSP的區別