H264的层次结构包括VCL(视频编码层)与NAL(网络提取层),具体的语法结构,在之前的文章已经提到过,这里就不再赘述了。NAL主要是把VCL的内容进行封装,帮助更好的适合复杂的网络环境。在解码端,NAL解码器又复杂拆分,进行图像重构建,如下图所示解码流程图。大致的解码流程为,解码器接收到压缩的码流,经过熵解码,再经过反量化,再反变换,得到残差数据,当解码器获得解码的头信息后构建一个预测块PRED,预测块与残差叠加求和就可以得到图像数据UF,最后通过各类滤波器,得到重构图像。
1.NAL单元与结构
NAL单元是基于包交换技术在网络中传输,符合传输层和存储介质的数据格式,同时具有头信息功能,各类型封装,比如RTSP,RTMP,都是基于NAL单元的基本封装。NAL单元不仅仅可以基于包,还可基于bit流系统的基本格式,两者区别就是bit流都有一个start code,会在头部记录正确,丢失等信息。
如果NAL单元携带一个编码片,有一个SPS或PPS,它的头