H264介绍

H264,同时也是MPEG-4的第十部分,是由ITU-T视频编码专家组和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组提出的高度压缩数据视频编码器标准(引用自被堵百科)。

H264编码格式

H264支持4:2:0的连续和隔行视频的编码和解码。它主要分为两层:视频编码层(VCL,Video Coding Layer)和网络提取层(NAL,NetWork Abstraction Layer)。VCL数据就是编码后的数据,表示的是编码后的视频序列。在数据传输或者存储之前,会将VCL数据封装在NAL单元中。

NAL单元包括一个NAL头和RBSP,NAL单元序列的示意图如下:

NAL头

RBSP

NAL头

RBSP

NAL头

RBSP

 

NAL头包括起始序列和NAL类型,起始序列为0x00000001或者0x000001,NAL头结构包括forbidden_bit(1bit)+ nal_reference_bit(2bit) + nal_unit_type(5bit)。

1.forbidden_bit:                            禁止位,初始为0,当网络发现NAL单元有比特错误时可设置该比特为1,以便接收方纠错或丢掉该单元。

2.nal_reference_bit:                  nal重要性指示,标志该NAL单元的重要性,值越大,越重要,解码器在解码处理不过来的时候,可以丢掉重要性为0的NALU。

不同类型的NALU的重要性指示如下表所示。 

nal_unit_type

NAL类型

nal_reference_bit

0

未使用

 0

1

非IDR的片

此片属于参考帧,则不等于0,

不属于参考帧,则等与0

2

片数据A分区

同上

3

片数据B分区

同上

4

片数据C分区

同上

5

IDR图像的片

5

6

补充增强信息单元(SEI)

0

7

序列参数集

非0

8

图像参数集

非0

9

分界符

0

10

序列结束

0

11

码流结束

0

12

填充

0

13..23

保留

 0

24..31

不保留

 0

H264码流结构

h264格式_压缩