天天看點

h264基礎及rtp分包解包

一、 h264基礎概念

SODB: 資料比特串-->最原始的編碼資料

RBSP: 原始位元組序列載荷-->在SODB的後面填加了結尾比特(RBSP trailing bits 一個bit“1”)若幹比特“0”,以便位元組對齊。

EBSP: 擴充位元組序列載荷-- >在RBSP基礎上填加了仿校驗位元組(0X03)它的原因是: 在NALU加到Annexb上時,需要填加每組NALU之前的開始碼 StartCodePrefix,如果該NALU對應的slice為一幀的開始則用4位位元組表示,ox00000001,否則用3位位元組表示 ox000001.

為了使NALU主體中不包括與開始碼相沖突的,在編碼時,每遇到兩個位元組連續為0,就插入一個位元組的0x03。解碼時将0x03去掉。 也稱為脫殼操作。

H.264的功能分為兩層,視訊編碼層(VCL)和網絡提取層(NAL)

VCL資料即被壓縮編碼後的視訊資料序列。在VCL資料要封裝到NAL單元中之後,才可以用來傳輸或存儲。NAL單元格式如下圖:

h264基礎及rtp分包解包

H.264 的編碼視訊序列包括一系列的NAL 單元,每個NAL 單元包含一個RBSP,見表1。編碼片(包括資料分割片IDR 片)和序列RBSP 結束符被定義為VCL NAL 單元,其餘為NAL 單元。典型的RBS

繼續閱讀