NAL nal_unit_type中的web
1(非IDR图像的编码条带)、网络
2(编码条带数据分割块A)、编码
3(编码条带数据分割块B)、spa
4(编码条带数据分割块C)、orm
5(IDR图像的编码条带)种类型
6(SEI)、视频
7(SPS)、it
8(PPS)import
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 数据。webkit
一、NAL、Slice与frame意思及相互关系
NAL指网络提取层,里面放一些与网络相关的信息
Slice是片的意思,264中把图像分红一帧(frame)或两场(field),而帧又能够分红一个或几个片(Slilce);片由宏块(MB)组成。宏块是编码处理的基本单元。
二、VCL视频编码层不作解释。
三、NAL nal_unit_type为序列参数集(SPS)、图像参数集(PPS)、加强信息(SEI)。表示后面的数据信息为序列参数集(SPS)、图像参数集(PPS)、加强信息(SEI)。
四、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信息,根据宏块头信息能够判断块模式。