H.264的整数DCT变换编码与量化过程.doc_第1页
H.264的整数DCT变换编码与量化过程.doc_第2页
H.264的整数DCT变换编码与量化过程.doc_第3页
H.264的整数DCT变换编码与量化过程.doc_第4页
H.264的整数DCT变换编码与量化过程.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文章编号:1009-8119(2005)05-0040-03H.264的整数DCT变换编码与量化过程张晓燕 谢珺堂(北京理工大学信息科学技术学院电子工程系,100081)摘要 H.264是ITU与ISO联合共同开发的具有高编码效率、高压缩质量的视频新标准。H.264采用了44块的无乘法整数变换编码算法,有效地降低了编解码的运算量,且避免了反变换的误匹配问题。本文详细分析了H.264的整数DCT变换的原理和实现,并阐述了与变换编码相应的量化过程。关键词 H.264,整数DCT变换,量化 The Integer DCT Transform and Quantization in H.264Zhang Xiaoyan, Xie Juntang(Department of Electronic Engineering, Beijing Institute of Technology, Beijing 100081)Abstract: H.264 is the new video coding standard established by ITU and ISO,which has high coding efficiency and high compression quality. The 44 transforms in H.264 can be computed exactly in integer arithmetic without multiplication, thus minimizing computational complexity and avoiding inverse transform mismatch problems. This paper provides a detailed analysis on the principle and implementation of the integer DCT transform and the corresponding quantization.Keywords: H.264,Integer DCT,Quantization1 引言新一代视频编码标准H.264是由国际电信联合会(ITU)与国际标准组织(ISO)的联合视频小组(JVT)负责开发,它是面向实际应用的最新发展的标准。其目标是基于高的视频分辨率,提高图像质量,并能够覆盖所有低带宽和高带宽的应用。H.264是在ITU-T增强型多媒体通信标准H.26L基础上推出的能够为ITU-T和ISO/IEC共同使用的单一的新一代视频编码标准,并且在技术上同MPEG标准形成体系。H.264与先前的标准相似,对残差数据采用基于块的变换编码,变换编码可以去除原始图像的空间冗余,使图像能量集中在一小部分系数上,这样可以提高压缩比增强抗干扰能力。而H.264采用的变换是近似DCT的无乘法整数变换,在此我们称它为整数DCT变换。需要注意的是,此处的变换已经不是真正的DCT,仍然称其为DCT变换只是为了说它是由DCT推导而来,且为了和另一个变换(Hadamard变换)相区别。H.264的整数DCT变换中只有整数运算,消除了浮点运算,减少了运算量,并且精确的整数排除了编码器和解码器反变换之间的误匹配问题。2 H.264的变换与量化21 整数DCT变换H.264中的变换编码和以前各种标准中的DCT有所不同,以前标准中直接采用DCT的定义进行变换,会带来两个问题:第一,需要进行浮点数操作,从而造成系统设计及运算上的复杂性;第二,由于变换核都是无理数,而有限精度的浮点数不可能精确地表示无理数,再加上浮点数的运算可能会引入舍入误差,这就使得在具体实现时会导致编解码的不匹配(mismatch),即反变换的输出结果和正变换的输入不一致。为了克服这些问题,H.264采用基于44块的整数操作而不是实数运算,使得变换操作仅用整数加减和移位操作就可以完成,这样既降低了设计复杂度,又避免了编解码误匹配,能够得到与44 DCT变化类似的编码效果,而由此带来的编码性能的减少微乎其微。此整数变换中无乘法,采用基于提升结构的无乘法二进制DCT(Bin DCT),只包括加法和16位算术移位,这样大大减小了运算复杂度,尤其是对低端处理,减少了乘法运算且保持了整数变换的优点,精确的整数排除了编码器和解码器之间反变换的误匹配,保证了变换的效果。我们可以通过各种公式推导出整数DCT正变换的公式: (1.1)式(1.1)中,虽然乘以1/2的操作可以用右移来实现,但这样会产生截断误差,因此,我们将1/2提到矩阵外面,并与右边的点乘合并,得: (1.2)这就是H.264中所用到的整数变换公式,其变换核仅用加减法(和左移)即可以实现。而后面的点乘操作可以合并到随后的量化过程中去。H.264中所用到的反DCT变换公式如下: (1.3) 其中与Y点乘的操作与反量化合并,乘以系数1/2的操作由右移来实现,由于反量化后的结果足够地大,所以这里不会出现截断误差的问题。以上各式中,。H.264编码器的变换与量化过程如图1所示: 图1 H.264编码器变换与量化过程图中输入为预测残差,输出为准备进行熵编码的数据。为了更大程度地利用空间冗余, H.264在对1616的luma分量(亮度分量)的16个44块进行DCT变换后,将每个44块的DC系数(还没有经过量化)提取出来,组成一个44的luma DC块,对其再进行4x4的哈达玛(Hadamard)变换。同样,对88 chroma分量(色度分量)的4个44块进行DCT变换后,也将每个44块的DC系数提取出来,组成一个22的chroma DC块,对其进行22的Hadamard变换。H.264根据宏块编码的特性采用亮度块直流变换、色度块直流变换与普通差值变换相结合的方式,使用了三种变换方式(如图2所示),根据残差数据类型的不同来进行选择。亮度DC系数采用44的矩阵(标号为1),色度 DC系数采用22的矩阵(标号为16、17),对于其他的残差AC系数都采用44的块来变换(标号125是变换时所代表的块在码流中的顺序)。 图2 亮度和色度宏块的DC变换系数分配图例如输入像素到输出系数的整数变换过程定义如下:这个变换矩阵可以运用于所有44块变换中(除了1616帧内DC)。如图2中标号为0到15的44亮度块的16个luma DC系数是由Hadamard变换得到的:每个22色度分量的4个chroma DC系数也是由Hadamard变换得到的:输出像素的反变换系数定义如下: Hadamard变换的正变换和反变换形式一样。H.264解码器的反变换与反量化过程如图3所示:图3 H.264解码器反变换与反量化过程图中的输入是经过解码后的结果,输出的数据加上预测值后成为重建图像。这里有一个地方需要注意,对于DC系数(无论是Intra_1616 luma DC还是chroma DC ),解码器是先反变换再反量化。MUX是指将DC系数按图2装配到AC系数中,形成完整的44块,用于后续的反DCT变换。H.264的整数DCT变换可以分做两步完成:先对需要做变换的矩阵的每一列做一维变换,再对其结果的每一行做一维变换,这个次序也可以反过来,先行后列。这样二维变换就可以用一维变换来实现。在具体实现过程中,为了减少运算量,每一步可以采用蝶型算法,以公式(1.2)的第一步对的第一列进行一维变换为例,其运算过程如下式所示: (1.4) 其中为第一列的元素,为滤波结果。由(1.4)式可见计算有很多重复,如就同时被计算和的公式所使用,所以可以将其暂时保存起来以避免重复计算,对应的蝶型算法如下图所示。 图4 蝶型算法由以上可见,按公式(1.4)计算需要进行12次加法,4次乘法,而图4中的蝶型算法仅需8次加法,2次乘法,它利用了运算中的冗余,大大降低了运算量。由于在反变换中使用精确的整数,这就避免了浮点DCT中逆变换不匹配的问题。H.264利用了尺度DCT的思想,在变换中并不进行归一化运算,而是放在量化和反量化过程中完成,以此降低整个变换编码的运算量。22 量化过程H.264对变换系数采用等比例标量量化,其基本的前向量化公式为 (1.5)其中为量化后的系数值,为变换后的输入系数值,为量化步长,表示取整。H.264标准在常规量化的基础上又考虑了两个问题:如何将变换过程中的点乘步骤一并考虑进来;如何避免除法和浮点运算。H.264变换量化的全过程为:对输入的44采样差值矩阵进行前向变换,然后进行分级量化和缩放:。设为结果中位于第行第列的一个元素,则由(1.2)与(1.5),它的量化值应为: (1.6)其中,为位于处的元素值。H.264的量化步长共有52种,每个宏块的量化步长由量化参数()决定。H.264采用非均匀量化,其量化步长的规律是:每增加1,量化步长就增加12.25%(即);每增加6,量化步长就增加一倍。量化步长的变化的幅度控制在12.25%左右而不是以不变的增幅变化,这样就提高了码率控制的能力。由于把变换和量化融合在一起,因而有效地减少了压缩编码的运算复杂性。综上所述,H.264变换采用了16位整数算法,在没有损失精确度的情况下,避免了反变换的无匹配问题。在量化过程中还可有机结合变换中的系数矩阵,使得变换过程中不再出现小数乘法问题,并且在量化过程中巧妙地回避了除法运算。图5是H.264正向变换量化和反变换反量化的实现框图。输入块X前向变换后分级处理和量化反量化和前处理反向变换 色度信号 或 1616 帧内模式22或44DC变换22或44DC反变换输出块 图5 H.264的正向变换量化和反变换反量化实现框图3 结束语本文分析了H.264标准的整数变换和量化的原理和实现。从总体上看H.264采用了新型的44整数变换编码,在量化过程中结合了变换系数,使得量化和变换具有更好的效果和更高的压缩效率。H.264的整数DCT变换具有很多优点,例如:变换采用了44像素块进行变换能够降低图像的块效应;整数运算代替了浮点运算有效提高了计算速度,避免了反变换误匹配问题,也更有利于硬件实现实时系统等等。现在看来,整数变换将代替DCT变换成为变换域编码的主要方法。H.264采用了一系列新的压缩技术,获得了更高性能的压缩效果。作为一个更有效的新视频编码标准,从数字电视、远程监控、无线3G网络,到IP网络、媒体的存储格式等,它具有广阔的应用前景。参考文献1 Study of Final Committee Draft of Joint Video Specification (ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6)6th Meeting:Awaji, Island, JP,5-13 December,20022 A.Tamhankar,K.R.Rao. An Overview of H.264/MPEG-4 Part 10J. Video/Image Processing and Multimedia Communication,July 2003:38-413 H.264/MPEG-4Part 10 White Paper-Transform & Quantization. Available at 4 Henrique S. Malvar, Fellow, IEEE, Antti Hallapuro, Marta Karczewicz, and Louis Kerofsky, Member, IEEE. Low-Complex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论