AVS整数DCT变换和量化方法的设计和实现_郑玉

  • 格式:pdf
  • 大小:145.37 KB
  • 文档页数:4

 第15卷第3期2006年9月淮海工学院学报(自然科学版)JournalofHuaihaiInstituteofTechnology(NaturalSciencesEdition)Vol.15 No.3

Sep.2006

文章编号:1672-6685(2006)03-0022-04AVS整数DCT变换和量化方法的设计和实现*

郑 玉1,刘文杰1,高 文2(1.南京信息工程大学计算机科学与技术系,江苏南京 210044;2.中国科学院计算技术研究所,北京 100080)摘 要:AVS是我国具备自主知识产权的第二代信源编码标准。为了避免使用其他国际信源编码标准的专利技术,需要新的变换和量化方法。通过对H.264/JVC国际标准中的变换和量化方法的研究,提出一种适用于AVS的整数DCT变换和量化方法。它采用较低复杂度的4×4整数变换矩阵,计算简单,只需加法和移位操作,编码效率较高。关键词:H.264/JVC;AVS;DCT;整数变换;量化中图分类号:TN911.21 文献标识码:A

DesignandImplementationofAVSIntegerDCTTransform&QuantizationZHENGYu1,LIUWen-jie1,GAOWen2(1.Dept.ofComputerScience&Technology,NanjingUniversityofInformationScience&Technology,Nanjing210044,China;2.InstituteofComputingTechnology,ChineseAcademyofSciences,Beijing100080,China)

Abstract:AVSisthesecond-generationencodingstandardofChinawithindependentintellectualproperty.Inordertoavoidusingthepatentofotherinternationalcodestandards,anewmethodoftransformation&quantizationisneeded.Basedontheresearchoftransform&quantizationofH.264,thispaperproposesanewmethodofDCTforAVS.Thismethod,freefrommultiplica-tion,hassignificantlylowercomputationalcomplexitythanthatinthecurrentstandard.Thetransformcanbecomputedin16-bitarithmeticwith4×4matrixandthecodingefficiencyisbet-terthanothermethods.Keywords:H.264/JVC;AVS;DCT;integertransform;quantization

近年来,出现了一批数字音视频编解码标准,具有代表性的有国际标准H.264/MPEG-4AVC[1]、我国自主制定的标准AVS[2]、微软公司推出的WM9[3]等。AVS是我国具备自主知识产权的信源编码标准,它是由我国数字音视频编解码技术标准工作组制订的,为数字音视频设备与系统提供高效经济的编解码技术,不仅压缩效率比MPEG-2提高2~3倍,和H.264相当,而且实现复杂度明显低于H.264。本文首先回顾了H.264/JVC的变换和量化过程[4],然后提出了一种新的应用于AVS的变换和

量化方法,最后验证了本方法的有效性。

1 H.264/JVC的变换和量化方法H.264/JVC协议中的变换方式主要有3种:4*收稿日期:2006-07-05;修订日期:2006-09-02基金项目:国家自然科学基金资助项目(60333020)作者简介:郑玉(1970-),男,江苏南京人,南京信息工程大学计算机科学与技术系讲师,硕士,主要从事视频压缩、数字网络、信息安全方面的研究,(E-mail)yzheng2008@126.com。×4残差变换,4×4亮度直流系数变换(16×16帧内模式下),2×2色度直流系数变换。H.264/JVC协议中的量化采用分级量化的原理。由于本文的改进重点放在4×4残差变换,所以,以下只对H.264/JVC协议中的4×4残差变换作了介绍。1.1 4×4整数残差变换4×4整数残差变换采用DCT变换,其正向变换如下:

Y=CfXCTf Ef=11111d-d-11-1-11d-11-dX111d1d-1-11-d-111-11-d a2aba2ababb2abb2a2aba2ababb2abb2,(1)式中:a=1/2;b=2/5;d=1/2。在式(1)中,CfXCTf是二维变换的核心部分,Ef

是缩放系数矩阵。运算符 表示每一个变换后的系

数分别与矩阵Ef中相同位置的缩放因子相乘(标量乘法而不是矩阵乘法)。在式(1)的基础之上,经过处理,可得到H.264/JVC的4×4残差变换的公式。 正向变换公式:Y=(CfXCTf) Ef=

111121-1-21-1-111-22-1x00x01x02x03x10x11x12x13x20x21x22x23x30x31x32x33121111-1-21-1-121-21-1 a2ab2a2ab2ab2b24ab2b24

a2ab2a2ab2

ab2b24ab2b24

。(2)

反向变换公式:X=CTi(X Ei)Ci=

11112112-1-11-12-111-11-12y00y01y02y03y10y11y12y13y20y21y22y23y30y31y32y33 a2aba2ababb2abb2a2aba2ababb2abb21111

112-12-11-1-1112-11-12

,(3)

式中:a=1/2;b=2/5。1.2 H.264/JVC的量化H.264/JVC采用分级量化。正向量化公式Zij=round(Yij/Qstep),(4)式中:Yij是作过正变换后的系数;Qstep是量化步长;round表示取整;Zij是量化后的系数。

在H.264/JVC协议中,采用0~51机制的量化,即量化步长参数QP共有52个,表1所示的是亮度信号的量化步长QPy,对亮度信号,QP每增加6,Qstep增加一倍;QP增加1,Qstep增加12.5%。H.264/JVC的反量化公式Yij=Zij×Qstep。(5)

表1 H.264QPy量化步长Table1 H.264QPy,stepofquantization

QP0123456789101112…QStep0.6250.68750.81250.87511.1251.251.3751.6251.7522.252.5…QP…18…24…30…36…42…48…51QStep…5…10…20…40…80…160…224

23 第3期郑 玉等:AVS整数DCT变换和量化方法的设计和实现1.3 H.264/JVC的变换和量化过程的实现H.264/JVC中的变换和量化的实现步骤:(1)编码端。

①对输入的4×4残差块作正向变换。

Y=111121-1-21-1-111-22-1x00x01x02x03x10x11x12x13x20x21x22x23x30x31x32x33121111-1-21-1-121-21-1

,(6)

②量化。|Zij|=(|Yij|×MF+f) qbits;sign(Zij)=sign(Yij)。(7)式中:Zij是相应的量化值;qbits=15+floor(QP/6);MF=PF×2qbits/Qstep;帧内编码时,f=2qbits/3;帧间编码时,f=2qbits/6。PF的取值如表2所示。(2)解码端。①反量化。Y′=Zij×Vij×2floor(QP/6)(8)(其中Vij=Qstep×PF×64)。表2 PF的取值Table2 ValueofPFPositionPF(0,0),(2,0),(0,2)or(2,2)a2(1,1),(1,3),(3,1)or(3,3)b2/4

Otherab/2

②反向变换。

X′=CTiY′Ci=1111/211/2-1-11-1/2-111-11-1/2Y′111111/2-1/2-11-1-111/2-11-1/2

。(9)

2 AVS整数变换和量化方法的设计及其实现2.1 AVS4×4整数残差变换对于运动补偿预测或帧内预测后的4×4点残差数据,正变换同样采用4×4整数残差DCT变换,但是所用变换核矩阵与H.264不同。Y=CfXCTf Ef=222231-1-32-2-221-33-1X232121-2-32-1-232-32-1 a2aba2ababb2abb2a2aba2ababb2abb2,(10)对于Y,U,V信号采用8位精度表示,因为输入矩阵是预测误差,因此需要9位来表示,变换矩阵每一行绝对值之和的最大值为8,因此对于变换后的矩阵元素需要9+log28*8=15位来表示。此应用中,在进行了二维核心变换CfXCTf后,缩放过程是和量化相结合的,这样就减少了运算量。2.2 AVS量化量化方法与H.264中的不同,针对变换完成后的矩阵Y,在量化之前首先会有一个缩放的过程。目的是将所有行的模都作了归一化的处理,使得将来量化时,只需要一个二维数组和一个一维数组即可完成不同级别的量化。在AVS中,采用的是0~63机制的量化,即量化步长的参数QP共有64个。对于同一个QP的值,对完成缩放的矩阵中的每一个元素,采用相同的量化系数,具体的量化公式为|Zij|=(((|Yij|×ScaleMij) 19+1/2)×Q-TABQP+f) qbits。(11)式中:Zij是相应的量化值;qbits=15+floor(QP/6);帧内编码时,f=2qbits/3;帧间编码时,f=2qbits/6;ScaleMij是Y矩阵中对应元素的缩放系数表,如表3所示。

表3 缩放系数Table3 Scalecoefficient

32768262143276826214262142097226214209723276826214327682621426214209722621420972

24淮海工学院学报(自然科学版)2006年9月