H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。
1、分层设计
H.264的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。
VCL层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H.264没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。
NAL负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如,NAL支持视频在电路交换信道上的传输格式,支持视频在Internet上利用RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构信息和实际载荷信息,即上层的VCL数据。(如果采用数据分割技术,数据可能由几个部分组成)。
2、高精度、多模式运动估计
H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动估计时,编码器还可选择"增强"内插滤波器来提高预测的效果。
在H.264的运动预测中,一个宏块(MB)可以按图2被分为不同的子块,形成7种不同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动物体的形状,大大提高了运动估计的精确程度。在这种方式下,在每个宏块中可以包含有1、2、4、8或16个运动矢量。
在H.264中,允许编码器使用多于一帧的先前帧用于运动估计,这就是所谓的多帧参考技术。例如2帧或3帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预测帧,并为每一宏块指示是哪一帧被用于预测。
3、4×4块的整数变换
H.264与先前的标准相似,对残差采用基于块的变换编码,但变换是整数操作而不是实数运算,其过程和DCT基本相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有"反变换误差"。 变换的单位是4×4块,而不是以往常用的8×8块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量比较小,而且在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的16个4×4块的DC系数(每个小块一个,共16个)进行第二次4×4块的变换,对色度数据的4个4×4块的DC系数(每个小块一个,共4个)进行2×2块的变换。
H.264为了提高码率控制的能力,量化步长的变化的幅度控制在12.5%左右,而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性,对色度系数采用了较小量化步长。
4、统一的VLC
H.264中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可选项,其编码性能比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。
5、帧内预测
在先前的H.26x系列和MPEG-x系列标准中,都是采用的帧间预测的方式。在H.264中,当编码Intra图像时可用帧内预测。对于每个4×4块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。
6、面向IP和无线环境
H.264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。
为了抵御传输差错,H.264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码(slice structured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。
除了利用量化步长的改变来适应信道码率外,在H.264中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于语法的数据分割(syntax-based data partitioning)方法,将每帧数据的按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割(temporal data partitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。
在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。因此,不同于MPEG-4中采用的精细分级编码FGS(Fine Granular Scalability)的方法(效率比较低),H.264采用流切换的SP帧来代替分级编码。
H.264的PSNR(PeakSignaltoNoiseRatio,峰值信噪比)比MPEG-4(ASP)和H.263++(HLP)明显要好,在6种速率的对比测试中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。
压缩方式是DVR的核心技术,压缩方式很大程度上决定着图像的质量、压缩比、传输效率、 传输速度等性能,它是评价DVR性能优劣的重要一环。 随着多媒体技术的发展,相继推出了许多压缩编码标准,目前主要有JPEG/M-JPEG、 H.261/H.263和MPEG等标准。
1、JPEG/M-JPEG
①、JPEG是一种静止图像的压缩标准,它是一种标准的帧内压缩编码方式。当硬件处理速度足够快时,JPEG能用于实时动图像的视频压缩。在画面变动较小的情况下能提供相当不错的图像质量,传输速度快,使用相当安全,缺点是数据量较大。
②、M-JPEG源于JPEG压缩技术,是一种简单的帧内JPEG压缩,压缩图像质量较好,在画面变动情况下无马赛克,但是由于这种压缩本身技术限制, 无法做到大比例压缩,录像时每小时约1-2GB空间,网络传输时需要2M带宽,所以无论录像或网络发送传输,都将耗费大量的硬盘容量和带宽,不适合长时间 连续录像的需求,不大实用于视频图像的网络传输。
2、H.261/H.263
①、H.261标准通常称为P*64,H.261 对全色彩、实时传输动图像可以达到较高的压缩比,算法由帧内压缩加前后帧间压缩编码组合而成,以提供视频压缩和解压缩的快速处理。由于在帧间压缩算法中只 预测到后1帧,所以在延续时间上比较有优势,但图像质量难以做到很高的清晰度,无法实现大压缩比和变速率录像等。
②、H.263的基本编码 方法与H.261是相同的,均为混合编码方法,但H.263为适应极低码率的传输,在编码的各个环节上作了改进,如以省码字来提高编码图像的质量,此 外,H.263还吸取了MPEG的双向运动预测等措施,进一步提高帧间编码的预测精度,一般说,在低码率时,采用H.263只要一半的速率可获得和 H.261相当的图像质量。
3、MPEG
MPEG是压缩运动图像及其伴音的视音频编码标准,它采用了帧间压缩,仅存储连续帧之间有差别的地方 ,从而达到较大的压缩比。MPEG现有MPEG—1、MPEG—2和MPEG—4三个版本,以适应于不同带宽和图像质量的要求。
①、MPEG—1的视频压缩算法依赖于两个基本技术,一是基于16*16(像素*行)块的运动补偿,二是基于变换域的压缩技术来减少空域冗余度,压缩比 相比M-JPEG要高,对运动不激烈的视频信号可获得较好的图像质量,但当运动激烈时,图像会产生马赛克现象。 MPEG-1以1.5Mbps的数据率传 输视音频信号,MPEG-1在视频图像质量方面相当于VHS录像机的图像质量,视频录像的清晰度的彩色模式≥240TVL,两路立体声伴音的质量接近CD 的声音质量。 MPEG-1是前后帧多帧预测的压缩算法,具有很大的压缩灵活性,能变速率压缩视频,可视不同的录像环境,设置不同的压缩质量,从每小时 80MB至400MB不等,但数据量和带宽还是比较大。
②、MPEG-2它是获得更高分辨率(720*572)提供广播级的视音频编码标 准。MPEG-2作为MPEG-1的兼容扩展,它支持隔行扫描的视频格式和许多性能包括支持多层次的可调视频编码,适合多种质量如多种速率和多种分辨 率的场合。它适用于运动变化较大,要求图像质量很高的实时图像。对每秒30帧、720*572分辨率的视频信号进行压缩,数据率可达3-10Mbps。由 于数据量太大,不适合长时间连续录像的需求。
③、MPEG-4是为移动通信设备在Internet网实时传输视音频信号而制定的低速率、高压 缩比的视音频编码标准。 MPEG-4标准是面向对象的压缩方式,不是像MPEG-1和MPEG-2那样简单地将图像分为一些像块,而是根据图像的内容, 其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率,对重要的对象分配较多的字节,对次要的对象分配 较少的字节,从而大大提高了压缩比,在较低的码率下获得较好的效果, MPEG-4支持MPEG-1、MPEG-2中大多数功能,提供不同的视频标准源格 式、码率、帧频下矩形图形图像的有效编码。
总之,MPEG-4有三个方面的优势:
①、具有很好的兼容性;
②、MPEG-4比其他算法提供更好的压缩比,达200:1;
③、MPEG-4在提供高压缩比的同时,对数据的损失很小。所以,MPEG-4的应用能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时间实时录像的需求,同时具备在低带宽上优良的网络传输能力。
H.264 是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team) 开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征 集,1999年9月,完成个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。目前 该标准还在开发之中,预计明年上半年可正式通过。
H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本” 的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的 处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。
在技术 上,H.264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得 H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复 能力,能够很好地适应IP和无线网络的应用。
其实现在多数的什么H.264都是H.263++通过改进后的算法,是压缩率变的小了点(包括现在有个别的生产厂家,我同事都看到过他们的源代码)!如果是从单个画面清晰度比较,MPEG4有优势;从动作连贯性上的清晰度,H.264有优势!
H.264标准压缩系统由视频编码层(VCL)和网络提取层(Network Abstraction Layer,NAL)两部分组成。VCL中包括VCL编码器与VCL解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。NAL则用于为VCL提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。包头中包含存储标志和类型标志。存储标志用于指示当前数据不属于被参考的帧。类型标志用于指示图像数据的类型。VCL可以传输按当前的网络情况调整的编码参数。
H.264是现有最重要数据压缩编码国际标准之一。同时快速运动估计算法一直是视频压缩中的研究热点。本文针对一些快速估计算法过早确定了搜索方向,容易陷入局部最小点,损失了搜索精度的情况,在原有基础上,运用菱形十字搜索算法(DCS)与阈值估计相结合的方法提高了运动估计的性能。实验结果表明,该算法可以用较小的搜索代价取得与全搜索(FS)相当的效果,并且在搜索速度方面优于钻石法DS)。
0 引言
H.264采用了减少视频图像各帧间冗余度的运动估计算法。运动估计算法传统的有全搜索(FS)、三步搜索(TSS)、新三步搜索(NTSS)、四步搜索(FSS)等;常用的是钻石搜索(DS)和非对称十字交叉多层次六边形格点运动搜索算法(UMHexagonS)。运动估计是整个视频编码中运算量的模块,可占整个软件编码器运算量的70%以上。因此视频系统中编码器的复杂部分取决于运动估计算法体系结构的复杂性。
1 运动估计算法分析
1.1 钻石搜索(DS)算法
DS算法即钻石搜索算法,被MPEG-4国际标准采用并收入验证模型VM(Verification Model)中,是MPEG-4建议采用的快速运动估计算法。 DS算法采用了两种搜索模板,分别是有9个检测点的大模板和有5个检测点的小模板。搜索时先用大模板LDSP在搜索区域中心及周围8个点处进行匹配计算,当最小块误差出现在中心点处时,将大模板LDSP换为SDSP,再进行匹配计算,这时5个点中的MBD(Minimum Block Distortion)即为匹配点;否则,改变中心位置,仍用LDSP重复计算。
1.2 菱形十字搜索(DCS)算法
菱形十字搜索算法(DCS)算法是在DS算法基础上改进而来,DCS的匹配模板是建立在两种不同的搜索模板之上的,即大菱形十字型(LDCSP)和小菱形十字型(SDCSP),如图1所示。其中,十字型可以对应于实际的运动的矢量分布,而交叉型则是为了加速搜索效果。
DCS算法在进行运动估计匹配运算时,有三种可能的情况:
(1)若MBD点位于LDCSP中心位置,说明图像是静止的,DCS算法一步结束;
(2)若MBD点位于LDCSP小十字位置,说明图像的运动较小,则在此基础上按照SDCSP模板反复进行交叉搜索。
(3)若MBD点位于LDCSP大十字位置,说明图像的运动较大,则在此基础上按照LDCSP模板反复进行交叉搜索。
由此可以看出,DCS算法的优点是,可以根据图像的运动类型(如上述三种情况),白适应选择下一步相应的搜索模板,使搜索与图像内容有关(基于内容的搜索),从而得到较好的搜索效果;DCS算法的搜索并不一定要经历模板由大到小的必然过程,有时一步即可完成搜索;用DCS搜索时,十字形模板对应于实际的运动矢量分布,交叉形模板则有准确性“聚焦”特性,这从本质上体现了DCS是粗定位和准确定位的有效结合。
2 运动估计的阈值确定
视频图像的运动矢量大部分为零矢量或运动很小的矢量。运动矢量为零的块称为静止块;运动矢量很小的块(以搜索窗口中心为圆心,两像素为半径的圆内)称为准静止块:而其他的称为运动块。如果有超过80%运动矢量很小的块可被看作静止或准静止块。因此,可设一个阀值T,当运动矢量的值小于T时,可用SDCSP搜索法直接进行精确定位,找出点;当运动矢量的值大于T时,可用LDCSP搜索算法找出点。
运动矢量空间域的预测方式有运动矢量中值预测、空间域的上层块模式运动矢量;在时间域的预测方式有前帧对应块运动矢量预测和时间域的邻近参考帧运动矢量预测。本文采用运动矢量中值预测方式。根据与当前E块相邻的左边A块,上边B块和右上边C块的运动矢量,取中值作为当前块的预测运动矢量。如图2所示。
设当前要编码块E的运动矢量为MVp。如果运动矢量的值MVp≥T,则与E块相邻的各块间运动的相关性较高,表明该区域的变化比较平缓;如果运动矢量的值MVp<T,则与E块相邻的各块间运动的相关性较低,表明该区域变化比较剧烈。通过对missa、grandmother、carphone、salesman的检测可知,取阈值T=2。
3 自适应运动估计算法
结合上述DCS算法和阈值的确定,可采取先对视频图像的运动块进行阈值的判断,再根据判断结果进行匹配块的搜索。具体搜索步骤描述如下:
Step 1:判断当前块运动矢量MVp和阈值确大小。若MVp≥T,则进入Step 2;若MVp<T,则进入Step 5。
Step 2:用LDCSP在搜索区域中心及周围8个点进行匹配运算,然后判断,找出MBD点。若MBD点位于中心点,说明宏块是静止的,DCS算法一步结束,得到匹配块;否则进行Step 3。
Step 3:若MBD点为LDCSP模版的小十字处,以该点为中心构建SDCSP进行匹配计算,若MBD点位于中心点,所得MBD点为所求。否则,进入Step 4。
Step 4:若MBD点为LDCSP模版的大十字处,以该点为中心构建LCSP进行匹配计算,进入step 2。
Step 5:用LDCSP在搜索区域中心及周围5个点进行匹配运算,然后判断,找出MBD点。若MBD点位于中心点,所得MBD点为所求;否则继续Step 5。算法流程图如图3所示。
4 实验结果及说明
用搜索时间和PSNR值两个指标来验证DCS的性能。本节实验用到的所有视频文件均为QCIF(Quartet commonintermediate format)格式。实验以主频1.8GHz的PC机上运行的VisualC++6.0为平台。测试对象为:missa、salesman、news、grandmother、foreman、carphone、claire,搜索范围为16×16的矩形框,量化范围为2~12,测试序列中每帧图像的大小为176×144。
4.1 搜索时间的比较
为了时间测试的准确性,测试时采用的是VC++提供的两个精确时间函数:QueryPerformanceFrequency()和OuerPerformanceCounter()精度对标准测试序列missa、salesman、news、grandmother、foreman、carphone进行精确测定,得表1(数据均为三次测量所求得的平均值)。
从表1可知:a.FS搜索效果,但耗时太长;DS算法有较大改进,可以实现实时压缩;DCS比DS,运行时间都有不同程度的减少,故DCS算法在搜索速度有优势。b.从单个序列来看,DCS算法对missa和salesman时间优化最为显着,分别只占FS算法的7.42%、7.50%和DS算法的98.17%、97.49%;对carphone序列的搜索速度也有很大优化,占FS搜索算法的7.97%和DS算法的97.82%。综合视频特性可知:DCS算法针对运动平缓的视频对象搜索速度优化明显。
4.2 信噪比的比较
对标准测试序列claire和carphone序列进行测定,计算PSNR得表2。
表2中FS的平均PSNR,达到42.38,但搜索时间最长;DS的PSNR,为42.31,而DCS为42.35,高于DS算法,且仅低于FS算法0.03dB。从单个序列来看,DCS算法对claire的优化程度,超过了FS的PSNR值,说明DCS算法身体静止仅面部表情运动特点视频适用。用DCS算法计算得到的carphone的PSNR值虽然低于FS算法,但高于DS算法;missa序列的DCS算法的PSNR值和FS、DS法的相差不大。故DCS算法在搜索速度、图像质量上均有保证。
5 结束语
本文从搜索时间和图像质量两方面对各种块匹配运动估计算法进行了性能分析比较。实验结果表明,将菱形十字交叉搜索算法和阈值判断结合,在搜索速度方面,有很大程度的优化,而且能得到与FS、DS搜索算法相当的图像质量。DCS算法针对运动平缓的视频作用明显,由此推知该算法适用于电视电话、远程教育等实时视频压缩。
视频编码技术在过去几年最重要的发展之一是由ITU和ISO/IEC的联合视频小组 (JVT)开发了H.264/MPEG-4 AVC[8]标准。在发展过程中,业界为这种新标准取了许多不同的名称。ITU在1997年开始利用重要的新编码工具处理H.26L(长期),结果令人鼓舞,于是ISO决定联手ITU组建JVT并采用一个通用的标准。因此,大家有时会听到有人将这项标准称为JVT,尽管它并非正式名称。ITU在2003年5月批准了新的H.264标准。ISO在2003年10 月以MPEG-4 Part 10、视频编码或AVC的名称批准了该标准。
H.264 实现的改进创造了新的市场机遇
H.264/AVC在压缩效率方面取得了巨大突破,一般情况下达到MPEG-2及MPEG-4简化类压缩效率的大约2倍。在JVT进行的正式测试中,H.264在85个测试案例中有78%的案例实现1.5倍以上的编码效率提高,77%的案例中达到2倍以上,部分案例甚至高达4倍。H.264 实现的改进创造了新的市场机遇,如:600Kbps的VHS品质视频可以通过ADSL线路实现视频点播;高清晰电影无需新的激光头即可适应普通 DVD。
H.264标准化时支持三个类别:基本类、主类及扩展类。后来一项称为高保真范围扩展 (FRExt)的修订引入了称为类的4个附加类。在初期主要是基本类和主类引起了大家的兴趣。基本类降低了计算及系统内存需求,而且针对低时延进行了优化。由于B帧的内在时延以及CABAC的计算复杂性,因此它不包括这两者。基本类非常适合可视电话应用以及其他需要低成本实时编码的应用。
主类提供的压缩效率,但其要求的处理能力也比基本类高许多,因此使其难以用于低成本实时编码和低时延应用。广播与内容存储应用对主类最感兴趣,它们是为了尽可能以的比特率获得的视频质量。
尽管H.264采用与旧标准相同的主要编码功能,不过它还具有许多与旧标准不同的新功能,它们一起实现了编码效率的提高。其主要差别,概述如下:
帧内预测与编码:H.264采用空域帧内预测技术来预测相邻块邻近像素的Intra-MB中的像素。它对预测残差信号和预测模式进行编码,而不是编码块中的实际像素。这样可以显着提高帧内编码效率。
帧间预测与编码:H.264中的帧间编码采用了旧标准的主要功能,同时也增加了灵活性及可操作性,包括适用于多种功能的几种块大小选项,如:运动补偿、四分之一像素运动补偿、多参考帧、通用 (generalized)双向预测和自适应环路去块。
可变矢量块大小:允许采用不同块大小执行运动补偿。可以为小至4(4的块传输单个运动矢量,因此在双向预测情况下可以为单个MB传输多达32个运动矢量。另外还支持16(8、8(16、8(8、8(4和4(8的块大小。降低块大小可以提高运动细节的处理能力,因而提高主观质量感受,包括消除较大的块化失真。
四分之一像素运动估计:通过允许半像素和四分之一像素运动矢量分辨率可以改善运动补偿。
多参考帧预测:16个不同的参考帧可以用于帧间编码,从而可以改善视频质量的主观感受并提高编码效率。提供多个参考帧还有助于提高H.264位流的容错能力。值得注意的是,这种特性会增加编码器与解码器的内存需求,因为必须在内存中保存多个参考帧。
自适应环路去块滤波器:H.264采用一种自适应解块滤波器,它会在预测回路内对水平和垂直区块边缘进行处理,用于消除块预测误差造成的失真。这种滤波通常是基于4(4块边界为运算基础,其中边界各边的3个像素可通过4级滤波器进行更新。
整数变换:采用DCT的早期标准必须为逆变换的固点实施来定义舍入误差的容差范围。编码器与解码器之间的 IDCT 精度失配造成的漂移是质量损失的根源。H.264利用整数4(4空域变换解决了这一问题——这种变换是DCT的近似值。4(4的小区块还有助于减少阻塞与振铃失真。
量化与变换系数扫描:变换系数通过标量量化方式得到量化,不产生加大的死区。与之前的标准类似,每个MB都可选择不同的量化步长,不过步长以大约12.5%的复合速率增加,而不是固定递增。同时,更精细的量化步长还可以用于色度成分,尤其是在粗劣量化光度系数的情况下。
熵编码:与根据所涉及的数据类型提供多个静态VLC表的先前标准不同,H.264针对变换系数采用上下文自适应VLC,同时针对所有其他符号采用统一的VLC (UniversalVLC)方法。主类还支持新的上下文自适应二进制算术编码器 (CABAC)。CAVLC优于以前的VLC实施,不过成本却比VLC高。
CABAC利用编码器和译码器的机率模型来处理所有语法元素 (syntax elements),包括:变换系数和运动矢量。为了提高算术编码的编码效率,基本概率模型通过一种称为上下文建模的方法对视频帧内不断变换的统计进行适应。上下文建模分析提供编码符号的条件概率估计值。只要利用适当的上下文模型,就能根据待编码符号周围的已编码符号,在不同的概率模型间进行切换,进而充份利用符号间的冗余性。每个语法元素都可以保持不同的模型(例如,运动矢量和变换系数具有不同的模型)。相较于VLC熵编码方法 (UVLC/CAVLC),CABAC 能多节省10%bit速率。
加权预测:它利用前向和后向预测的加权总和建立对双向内插宏模块的预测,这样可以提高场景变化时的编码效率,尤其是在衰落情况下。
保真度范围扩展:2004年7月,H.264标准增加了称为保真度范围扩展 (FRExt) [11]的新修订。这次扩展在H.264中添加了一整套工具,而且允许采用附加的色域、视频格式和位深度。另外还增加了对无损帧间编码与立体显示视频的支持。FRExt修订版在H.264中引入了4种新类,即:
?High Profile (HP):用于标准 4:2:0色度采样,每分量8位彩色。此类引入了新的工具—— 随后详述。
?High 10 Profile (Hi10P):用于更高清晰度视频显示的标准 4:2:0 色度采样,10位彩色。
?High 4:2:2 10 bit color profile (H422P):用于源编辑功能。
?High 4:4:4 12 bit color profile (H444P):品质的源编辑与色彩保真度,支持视频区域的无损编码以及与新的整数色域变换(从RGB到YUV及黑色)。
在新的应用领域中,H.264 HP对广播与DVD尤为有利。某些试验显示出H.264 HP的性能比MPEG2 提高了3倍。下面介绍H.264 HP中引入的主要附加工具。
自适应残差块大小与整数8(8变换:用于变换编码的残差块可以在8(8与4(4之间切换。引入了用于8(8块的新16位整数变换。较小的块仍然可以采用以前的4(4变换。
8(8亮度帧内预测:增加了8种模式,除之前的16(16和4(4块以外,使亮度内部宏模块还能够对8(8块进行帧内预测。
量化加权:用于量化8(8变换系数的新量化加权矩阵。
单色:支持黑/白视频编码。
AVS
2002 年,中国信息产业部成立的音视频技术标准 (AVS)工作组宣布准备针对移动多媒体、广播、DVD等应用编写一份国家标准。该视频标准称为AVS [14],由两个相关部分组成针对移动视频应用的AVS-M和针对广播与DVD的AVS1.0。AVS标准与H.264相似。
AVS1.0同时支持隔行和逐行扫描模式。AVS中P帧可以利用2帧的前向参考帧,同时允许B帧采用前后各一个帧。在隔行模式下,4个场可以用作参考。可以仅在帧级执行隔行模式中的帧/场编码,这一点与H.264不同,其中允许此选项的MB级自适应。AVS具有与H.264相似的环路滤波器,可以在帧级关闭。另外,B帧还无需环路滤波器。帧内预测是以8(8块为单位进行。MC允许对亮度块进行1/4象素补偿。ME的块大小可以是16(16、16(8、8(16或8(8。变换方式是基于16位的8(8整数变换(与WMV9相似)。VLC是基于上下文自适应2D运行/级别编码。采用4个不同的Exp-Golomb编码。用于每个已量化系数的编码自适应到相同8(8块中前面的符号。由于Exp-Golomb表是参数化的表,因此表较小。用于逐行视频序列的AVS 1.0的视频质量在相同比特率时稍逊于H.264主类。
AVS-M主要针对移动视频应用,与H.264基本规范存在交叉。它仅支持逐行视频、I与P帧,不支持B帧。主要AVS-M编码工具包括基于4(4块的帧内预测、1/4象素运动补偿、整数变换与量化、上下文自适应VLC以及高度简化的环路滤波器。与H.264基本规范相似AVS-M中的运动矢量块大小降至4(4,因此MB可拥有多达16个运动矢量。采用多帧预测,但仅支持2个参考帧。此外,AVS-M中还定义了H.264 HRD/SEI消息的子集。AVS-M的编码频率约为0.3dB,在相同设置下稍逊于H.264基本规范,而解码器的复杂性却降低了大约20%。
H.264和AVS的背景
H.264/MPEG-4AVC是ITU-T的VCG(Video Coding Experts Group)和ISO/IEC的MPEG(Moving Picture Experts Group)联合开发的新一代视频编码标准。应用范围包括可视电话、视频会议等。H.264的主要特色就是极大得提高了压缩率,是MPEG-2及MPEG-4压缩效率的一倍以上。H.264核心技术与之前标准相同,仍采用基于预测变换的混合编码框架,但是在细节的实现上有很大不同,就是细节上的改进导致压缩效率极大得提高。而且新一代视频编码标准H.264具有良好的网络适应性和容错等特点。
AVS的诞生可以说是一个历史的机遇,面对H.264以及MPEG-2等标准高额的专利费,我国数字视频产业面临严重挑战。加上我国致力于提高国内数字音视频产业的核心竞争力,由国家信息产业部科学技术司于2006年6月批准成立了“数字音视频编解码技术标准工作组”,联合国内从事数字音视频编解码技术研发的科研机构和企业,针对我国音视频产业的需求,提出了我国自主知识产权的信源编码标准―――《信息技术 先进音视频编码》系列标准,简称AVS(audio video coding standard).自主的AVS标准在技术和性能上处于国际先进水平,如果抓住这次机遇,我国在技术-专利-标准-芯片-系统-产业这个产业链上,就有可能具有全面的主动权。
H.264和AVS核心技术分析及对比
H.264和以前的标准一样,还是采用的混合编码的框架,AVS视频标准采用了与H.264类似的技术框架,包括变换、量化、熵编码、帧内预测、帧间预测、环路滤波等模块。他们核心技术的不同包括以下几点:
一、变换和量化
H.264对残差数据采用基于块的变换编码,去除原始图像的空间冗余,使图像能力集中在小部分系数上,直流系数值一般来说是的,这样可以提高压缩比、增强抗干扰能力。先前标准一般采用DCT变换,这种变换的缺点是会出现失配现象,原始数据经过变换和反变换恢复后会有一个差值,由于是实数运算计算量也比较大。H.264采用的是基于4×4块的整数变换。
AVS采用8×8的整数变换,可以在16位处理器上无失配地实现。对高分辨率的视频图像去相关性要比4×4变换有效,采用了64级量化,可以适应不同的应用和业务对码流和质量的要求。
二、帧内预测
H.264和AVS技术都采用帧内预测的方式,用相邻的像素预测当前块,采用代表空间域纹理的多种预测模式。H.264的亮度预测有4×4块和16×16块2种预测方式,对于4×4的块:从-135度到+22.5度方向加上一个直流预测一共是9种预测方向;对于16×16块:有4种预测方向。色度预测是8×8块,有4种预测模式,类似于帧内16×16预测的4种模式,其中DC为模式0、水平为模式1、垂直为模式2、平面为模式3。
三、帧间预测
H.264帧间预测是利用以编码视频帧和基于块的运动补偿的预测模式,与以往标准帧间预测的区别在于块尺寸范围更广、亚像素运动矢量的使用和多参考帧的运用。
H.264有16×16、16×8、8×16、8×8、8×4、4×8和4×4一共8种宏块及子宏块划分,而AVS只有16×16、16×8、8×16和8×8一共4种宏块划分方式。
H.264支持使用多个不同的参考帧对帧间宏块和片进行预测,AVS中P帧可以利用至多2帧的前向参考帧,B帧采用前后各一个参考帧。
四、熵编码
H.264制定了基于信息量的熵编码效率,一种是对所有的待编码的符号采用统一的可变长编码(UVLC),另一种是采用基于内容的自适应二进制算术编码(CABAC, Context-Adaptive Binary Arithmetic Coding),大大减少了块编码相关性冗余,提高了编码效率。UVLC计算复杂度较低,主要针对对编码时间很严格的应用,缺点就是效率低,码率较高。CABAC是一种效率很高的熵编码方法,其编码效率比UVLC编码高50%。
AVS熵编码采用自适应变长编码技术。在AVS熵编码过程中,所有的语法元素和残差数据都是以指数哥伦布码的形式映射成二进制比特流。
采用指数哥伦布码的优势在于:一方面,它的硬件复杂度比较低,可以根据闭合公式解析码子,无需查表;另一方面,它可以根据编码元素的概率分布灵活地确定以K阶指数哥伦布码编码,如果K选得恰当,则编码效率可以逼近信息熵。
对预测残差的块变换系数,经扫描形成(level、run)对串,level、run不是独立事件,而存在着很强的相关性,在AVS中level、run采用二维联合编码,并根据当前level、run的不同概率分布趋势,自适应改变指数哥伦布码的阶数。
另外,在AVS中没有SI、SP帧。可以这样说,AVS是在H.264的基础上发展起来的,吸收了H.264的精华,但为了绕过专利的困扰,又不得不放弃H.264的一些核心算法。换
来的代价就是,编码效率稍微降低一点的情况下,复杂度极大得降低了。
AVS是我国自主知识产权的标准,现在还没有大规模使用,处在起步阶段。大多数企业处于观望状态,没有资金大量投入,面临重重困难,但是它的广阔前景是不容忽视的,又有国家的大力支持,一定会发展的更加完美。
维库电子通,电子知识,一查百通!
已收录词条48243个