H.264/AVC视频编码方案主要集中在两个方面:研究编码效率的视频编码层VCL(Video Coding Layer)和支持视频在不同网络之间透明传输的网络抽象层NAL(Network Abstraction Layer)
VCL主要研究基于常规的运动补偿、系数变换编码、熵编码等编码技术来提高视频信号编码效率,使用的最基本的表示法是切图(slice)技术,即将一个待处理的图像分割成许多宏块来进行处理.一般而言,VCL主要包括4个重要方面的技术:
① 降低对视频帧的处理时间:通过将每个视频帧划分成由点阵组成的块,将对视频帧的处理降到对块的处理。
② 降低视频帧在空间的冗余量:通过变换、量化和熵编码方式对原始块进行编码。
③ 在有效帧的宏块之间进行时间独立性分析,采用运动估计和补偿技术只对那些在有效帧之间变化的数据进行编码。
④ 通过对残差块的编码对视频帧中所残存的任何空间冗余进行利用。
NAL将VCL从具体的传输层中抽象出来,定义了一个基本的和独立于网络的表示法。网络提取层(NAL) 负责使用下层网络的分段格式来封装数据, 包括组帧、逻辑信道的信令、定时信息的利用或发序列结束信号。
视频编码的最后一步是熵编码。其中,基于VLC的熵编码是一个应用最广的方法,它主要应用在对量化变换系数、自适应块变换ABT(adaptive block transform)、运动向量和其他编码信息的压缩技术中;而基于内容的自适应二进制算术编码主要是使编码和解码两边都能使用所有语法元素(变换系数、运动矢量)的概率模型。
在视频编码层VCL中的熵编码(entropy coding)技术采用基于内容的自适应变长编码CAVLC(Context—
based Adaptive Variable Length Coding)与—致变字长变码UVLC(Universal Variable Length Coding)
相结合的编码和基于内容的自适应二进制算术编码CABAC(Context—based Adaptive Binary Arithmetic
Coding)