微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > H.264/AVC视频压缩编码标准的新进展

H.264/AVC视频压缩编码标准的新进展

时间:08-29 来源:《世界广播电视》 点击:


作者:郭晓强,国家广播电影电视总局广播科学研究院
解伟,北京邮电大学  

H .264/AVC是由ISO/IEC与ITU-T组成的联合视频组(JVT)制定的新一代视频压缩编码标准,于2003年5月完成制订。相对于先前的标准,H.264/AVC无论在压缩效率、还是在网络适应性方面都有明显的提高,因此,业界普遍预测其将在未来的视频应用中替代现有的视频压缩标准。

  但是,H.264/AVC标准由于对视频源的限制,仅支持娱乐级视频质量。为了进一步扩大其应用范围,使其适应高保真视频压缩的应用,JVT于2004年7月对H.264/AVC做了重要的补充扩展,称为FRExt(Fidelity Range Extensions)。

FRExt概述

  H.264/AVC标准第一版支持的源图像为每象素8b,且采样方式仅限于4∶2∶0;而新近扩展的FRExt部分则扩大了标准的应用范围,如专业级的视频应用、高分辨率/高保真的视频压缩等。FRExt对H.264/AVC的改善主要在:(1)进一步引入一些先进的编码工具,提高了压缩效率;(2)视频源的每个样值均可超过8b,最高可达12b;(3)增加了4∶2∶2与4∶4∶4的采样格式;(4)更高的比特率,更高的图像分辨率;(5)可达到图像高保真的要求,支持无损压缩;(6)支持RGB格式的压缩,同时避免了色度空间转换的舍入误差。



图1 FRExt 编码工具

  FRExt增加了4个新的类:(1)High Profile(HP),支持8b、4∶2∶0采样;(2)High 10 Profile(Hi10P),支持10b、4∶2∶0采样;(3)High 4∶2∶2 Profile(H422P),支持10b、4∶2∶2采样;(4)High 4∶4∶4 Profile (H444P),支持12b、4∶4∶4采样、无损编码与多种色彩空间的编码。

  H.264/AVC FRExt详细说明了一组4个新的类,它们如同性能的嵌套子集一样被创立。这4个类全都继承了主类的工具集,就像它们的公共交集;而高类(HP)还额外地包含了所有能够提高编码效率的主要的新工具。相对于主类(MP),这些工具在算法复杂度上只是稍有提高。因此,在数字视频应用中,在4∶2∶0色度采样格式中使用8b视频的高类有可能代替主类。

  增加了高类之后,H.264/AVC各类的关系如图2所示,具体所包含的编码工具如下:


图2 H.264 各个类的关系

  1.所有类的共同部分:I片、P片、CAVLC;

  2.基本类(Baseline):FMO、ASO、冗余片;

  3.主类(Main):B片、加权预测、CABAC、隔行编码;

  4.扩展类(Extended):包含基本类的所有部分(FMO、ASO、冗余片)、SP片、SI片、数据分割、B片、加权预测;

  5.高类(High):包含主类的所有部分(B片、加权预测、CABAC、隔行编码)、自适应变换块尺寸(4×4或8×8整数变换)、量化矩阵。
FRExt增加的关键算法

  FRExt之所以能进一步提高编码效率及保真度,是因为加入了一些有效的编码工具。其中大部分是在取样点比特深度和色度格式方面;而在提高编码效率方面,主要是利用8×8的亮度帧内预测、4×4变换及8×8变换、量化矩阵等技术。

  9种8×8的亮度帧内预测

  H.264/AVC第一版的帧内预测包括9种4×4亮度块、4种16×16亮度块和4种色度块的预测。



图3 帧内预测方向

在FRExt中增加了9种8×8亮度块的预测,其预测方向(如图3)、预测块的计算与4×4块的基本一样,如图4所示。在一个给定的8×8亮度块中,每个象素值可从相邻的参考象素值(A~X、Z)中预测得到,编码器可选择8种不同的预测方向和直流预测。

  还有一点与4×4块的不同,就是要对预测值进行低通滤波,以提高预测的精确度。新的8×8帧内预测中,给出了一个简单的二阶低通滤波器,它在预测之前被用来重建亮度的参考象素值。经过滤波的参考象素按照9种模式的预测方法进行预测。

  8×8的整数变换

  H.264/AVC第一版中,对所有的残差块采用了4×4整数变换;对16×16亮度块进行帧内预测;整数变换后的16个DC系数采用4×4哈达玛变换,色度块的DC系数采用2×2哈达码变换。

  4×4整数变换除了算法复杂度低外,还可以有效地降低块效应。但是,对于大尺寸、高保真的视频,须要很好地保存图像的细节和纹理,这就需要更大尺寸的变换。为了达到各方面的平衡,FRExt引入了8×8整数变换,且编码器可以在宏块级自适应地选择4×4或8×8变换。在制定H.264/AVC标准之前,曾提出可变块尺寸的变换,其算法复杂度要低一些。



图4 用于8×8空间亮度预测的样本

  8×8正变换和逆变换都可以通过快速蝶形算法实现,对于n比特的输入视频,只需要(8+n)比特的运算动态范围。8×8变换蝶形算法的复杂度只略高于4×4变换。

  新的变换同时要求相应的量化方法。FRExt在第一版的基础上做了扩展,与MPEG-2一样可以选择量化矩阵进行量化,而量化矩阵可以提高图像的主观质量。同时,CABAC也做了改进,增加了3个内容模型,而CAVLC把8×8的系数分为4组4×4的系数。



表1 FRExt中的二维8×8变换矩阵

  须要指出的是,编码器可以对每一个宏块选择4×4或8×8变换,但变换尺寸的选择过程受到两种约束:(1)对于帧内预测,只有在采用8×8亮度块的预测时,选择8×8整数变换;(2)对于帧间预测,宏块中包含一个或多个小于8×8的块(4×8、8×4、4×4),必须采用4×4整数变换。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top