NAL nal_unit_type中的
1(非IDR图像的编码条带)、
2(编码条带数据分割块A)、
3(编码条带数据分割块B)、
4(编码条带数据分割块C)、
5(IDR图像的编码条带)种类型
6(SEI)、
7(SPS)、
8(PPS)
Slice种的三种编码模式:I_slice、P_slice、B_slice
frame的3种类型:I frame、P frame、 B frame
一帧的数据可以分为多个slice(片)一个帧是可以分割成多个Slice来编码的,而一个Slice编码之后被打包进一个NAL单元,不过NAL单元除了容纳Slice编码的码流外,还可以容纳其他数据,比如序列参数集SPS:
每个slice中的数据,在帧内预测只用到自己slice的数据, 与其他slice数据没有依赖关系。
NAL 是用来将编码的数据进行打包的。 比如,每一个slice 数据可以放在NAL 包中。
I 帧是自己独立编码,不依赖于其他frame 数据。
P frame 依赖 I frame 数据。
B frame 依赖 I frame, P frame 或其他 B frame 数据。
1、NAL、Slice与frame意思及相互关系
NAL指网络提取层,里面放一些与网络相关的信息
Slice是片的意思,264中把图像分成一帧(frame)或两场(field),而帧又可以分成一个或几个片(Slilce);片由宏块(MB)组成。宏块是编码处理的基本单元。
2、VCL视频编码层不做解释。
3、NAL nal_unit_type为序列参数集(SPS)、图像参数集(PPS)、增强信息(SEI)。表示后面的数据信息为序列参数集(SPS)、图像参数集(PPS)、增强信息(SEI)。
4、H.264的参数集又分为序列参数集(Sequence parameter set)和图像参数集(Pictureparameterset)。
序列参数集:包括一个图像序列的所有信息,即两个IDR图像间的所有图像信息。
图像参数集:包括一个图像的所有分片的所有相关信息,包括图像类型、序列号等,解码时某些序列号的丢 失可用来检验信息包的丢失与否。多个不同的序列和图像参数集存储在解码器中,编码器依据每个编码分片的头部的存储位置来选择适当的参数集,图像参数集本身也包括使用的序列参数集参考信息。
总结:
NAL单元中首先会有一个H.264 NAL type,根据这个可以判断是啥信息。如果是
H264NT_SLICE_DPA,H264NT_SLICE_DPB,H264NT_SLICE_DPC,H264NT_SLICE_IDR视频数据相关的,里面还会有Slicehead头信息,根据这个头信息,可以判断属于I-Slice(P-Slice或B-Slice),之后对于每个宏块,都会有MB head信息,根据宏块头信息可以判断块模式。