NALU
VCL层是对核心算法引擎、块、宏块及片的语法级别的定义,最终输出压缩编码后的数据 SODB。VCL数据在传输或存储之前,先被映射或封装进NAL单元中。NAL层将SODB打包成RBSP然后加上NAL头,组成一个NALU(NAL单元)。NAL层定义片级以上的语法级别(如序列参数集和图像参数集,针对网络传输),同时支持以下功能:独立片解码,起始码唯一保证,SEI以及流格式编码数据传送。
每个NAL单元是一个一定字语法元素的可变长字节字符串,包括一个字节的头信息(用来表示数据类型),以及若干个整数字节的原始字节序列负荷(RBSP)。一个NAL单元可以携带一个编码片,A/B/C型数据分割或一个序列或一个图像参数集。H.264采用NAL单元接入可适用多种网络,而且进一步提高其抗误码能力。序列号的设置可以发现丢失的是哪一个VCL单元,冗余编码图像使得基本编码图像丢失仍可得到较“粗糙”的图像。
NAL单元主要有按一定顺序图像参数集(Picture Parameter Set, PPS)NALU、序列参数集(Sequence Parameter Set, SPS)NALU、视频参数集(Video Parameter Set, VPS)NALU,如果NAL单元的顺序是混乱的,必须将其重新依照规范组织后送入解码器,否则解码器不能够正确解码。