H264码流解析

来源:互联网 发布:java printwriter 编辑:程序博客网 时间:2024/05/22 04:23

**一个片(slice)由一个NALU或三个NALU(假如有数据分割)组成,通常是一个片由一个NAL组成。
片(slice)实际是一个(原子)解码单元。
图像解码过程中总是按照片进行解码的,然后按照片组将解码宏块重组成图像。
一幅图像由 1~N个片组组成。
每一个片组又由一个或若干个片组成。**

H264码流的组成图
这里写图片描述

从解码的角度看:一个码流序列的第一个图像为IDR帧,当解码器遇到IDR帧时,意味着解码一切重新开始,之前的信息全部抛弃。

H264在网络中传输时的构成图:
这里写图片描述

NALU头结构
长度:1byte
forbidden_bit(1bit) + nal_reference_bit(2bit) + nal_unit_type(5bit)
forbidden_bit:
禁止位,初始为0,当网络发现NAL单元有比特错误时可设置该比特为1,以便接收方纠错或丢掉该单元。
nal_reference_bit:
nal重要性指示,标志该NAL单元的重要性,值越大,越重要,解码器在解码处理不过来的时候,可以丢掉重要性为0的NALU。

nal_unit_type:NALU类型取值如下表所示。
nal 类型值,省略。。。。

RBSP
RBPS的类型
这里写图片描述

每个NAL的组成
起始码(0x000001或者0x00000001) + NALU头 + RBSP

几个例子:
这里写图片描述

一段实际的码流:
这里写图片描述

参考博客:
http://blog.csdn.net/newthinker_wei/article/details/8748442

0 0
原创粉丝点击