运用于图像编码和视频编码的离散余弦变换的方法与装置的制作方法

文档序号:7955722阅读:210来源:国知局
专利名称:运用于图像编码和视频编码的离散余弦变换的方法与装置的制作方法
技术领域
本发明涉及电数字数据处理技术领域,特别是一种运用于图像编码和视频编码的离散余弦变换的方法与装置。
背景技术
传统的视频编码标准如ITU制定的H.261,H.263标准以及ISO的MPEG组织制定的MEPG-1,MPEG-2,MPEG-4等都是基于混合编码。所谓混合编码框架是综合考虑预测,变换以及熵编码的方法的编码框架,有以下主要特点1)利用预测去除时间域的冗余度;2)利用变换去除空间域的冗余度;3)而用熵编码去除统计上的冗余度;上述视频编码标准都具有帧内编码帧,即I帧,和帧间编码帧,即P帧,I帧和P帧采用不同的编码方法。I帧的编码过程如下对原始图像数据或帧内预测得到的残差块进行二维变换;然后在变换域中对变换系数进行量化;最后进行熵编码,即Huffman编码或者算术编码等。P帧的编码过程如下采用运动估计得到运动矢量,然后采用基于运动补偿的帧间预测,接着对帧间预测得到的残差块进行二维变换,再对变换域系数进行量化,最后进行熵编码。
传统的图像编码标准,如JPEG标准,与视频编码标准有着相近之处,对原始图像数据或图像内预测得到的残差块进行二维变换;然后在变换域中对变换系数进行量化;最后进行熵编码。
由于视频数据和图像数据在空间域上较强的相关性,二维变换是提高编码增益的关键因素,因此二维变换是视频编码和图像编码的很重要的部分。
离散余弦变换(DCT)变换通常用于图像数据和视频数据的块变换编码,这是因为对于各种信号,离散余弦变换非常近似于统计最佳的K-L变换。离散余弦变换被广泛应用于各种视频/图像编码标准中。离散余弦变换的一个缺点是矩阵中的部分系数是无理数,所以在数字计算机上用迭代的方法进行变换和反变换后,不能得到一模一样的初始值。在解码端,由于没有定义具体的反离散余弦变换(IDCT)的具体过程,所以不同的解码器解码的结果可能不同,导致了解码器失配(decoder mismatch)的问题。因此,符合标准的解码器必须达到一定的精度要求。但是高的精度通常要求高的实现复杂度。在设计和实现时要根据不同需要对精度和实现复杂度两者进行权衡。

发明内容
本发明的目的是提供一种运用于图像编码和视频编码的离散余弦变换的方法和装置。
本发明解决其技术问题所采用的技术方案是1、一种运用于图像编码和视频编码的离散余弦变换的方法,对于正变换根据下式选取N×N正变换矩阵FDCTfpNFDCTfpN=round(Ng2SCALEfgFDCT)/2SCALEf;]]>其中FDCT为理论的N×N离散余弦正变换矩阵;SCALEf为预先指定的非负整数,用于获得N×N正变换矩阵;round(g)为普通的四舍五入操作;对于正变换采用或调整SCALEf达到不同的精度和不同的实现复杂度;根据所选取的N×N正变换矩阵,进行相应的正变换过程在正变换前先左移FS0位,在一维正变换后右移FS1位,在二维正变换后右移FS2位;其中FS0,FS1,FS2为整数,值为零时表示不进行移位操作,值为正整数时表示进行上所述方向的移位操作,值为负整数表示进行和上述方向相反的移位操作;对于正变换,采用或调整FS0,FS1,FS2中的一个、两个或三个达到不同的精度和不同的实现复杂度。
采用或调整N×N正变换矩阵FDCTfpN中的系数达到不同的精度和不同的实现复杂度,即用FDCTfpNr代替FDCTfpN,满足|(FDCTfpNr(i,j)-FDCTfpN(i,j))/FDCTfpN(i,j)|≤1% 0≤i≤N-1,0≤j≤N-1;其中FDCTfpNr(i,j)和FDCfpN(i,j)分别表示FDCTfpN和FDCTfpN中位置为(i,j)的系数。
所说的选取N×N正变换矩阵的方法具体应用到8×8正变换矩阵如下采用如下的8×8正变换矩阵FDCTfp8FDCTfp8=round(8g2SCALEfgFDCT)/2SCALEf=GfGfGfGfGfGfGfGfAfBfCfDf-Df-Cf-Bf-AfEfFf-Ff-Ef-Ef-FfFfEfBf-Df-Af-CfCfAfDf-BfGf-Gf-GfGfGf-GfGfGfCf-AfDfBf-Bf-DfAf-CfFf-EfEf-Ff-FfEf-EfFfDf-CfBf-AfAf-BfCf-Df/2SCALEf]]>其中FDCT为理论的8×8离散余弦正变换矩阵;SCALEf为预先指定的非负整数,用于获得8×8正变换矩阵;round(g)为普通的四舍五入操作;Af,Bf,Cf,Df,Ef,Ff,Gf表示8×8正变换矩阵中的系数,且均为整数;特别地,还包括以下四组正变换矩阵系数(1)Af=2841,Bf=2408,Cf=1609,Df=565,Ef=2676,Ff=1108,Gf=2408,SCALEf=11;(2)Af=5681,Bf=4816,Cf=3218,Df=1130,Ef=5352,Ff=2217,Gf=4096,SCALEf=12;(3)Af=11363,Bf=9633,Cf=6436,Df=2260,Ef=10703,Ff=4433,Gf=8192,SCALEf=13;(4)Af=22725,Bf=19266,Cf=12873,Df=4520,Ef=21407,Ff=8867,Gf=16384,SCALEf=14。
2、一种运用于图像编码和视频编码的离散余弦变换的方法,对于反变换根据下面两式选取N×N反变换矩阵IDCTfpNIDCTfpN=round(Ng2SCALEigIDCT)/2SCALEi;]]>其中IDCT为理论的N×N离散余弦反变换矩阵;SCALEi为预先指定的非负整数,用于获得N×N反变换矩阵;round(g)为普通的四舍五入操作;对于反变换采用或调整SCALEi达到不同的精度和不同的实现复杂度;根据所选取的N×N反变换矩阵,进行相应的反变换过程在变换前先左移IS0位,在一维变换后右移IS1位,在二维变换后右移IS2位;其中IS0,IS1,IS2为整数,值为零时表示不进行移位操作,值为正整数时表示进行上所述方向的移位操作,值为负整数表示进行和上述方向相反的移位操作;对于反变换,采用或调整IS0,IS1,IS2中的一个、两个或三个达到不同的精度和不同的实现复杂度。
采用或调整N×N反变换矩阵IDCTfpN中的系数达到不同的精度和不同的实现复杂度,即用IDCTfpNr代替IDCTfpN,满足|(IDCTfpNr(i,j)-IDCTfpN(i,j))/IDCTfpN(i,j)|≤1% 0≤i≤N-1,0≤j≤N-1;其中IDCTfpNr(i,j)和IDCTfpN(i,j)分别表示FDCTfpN和FDCTfpN中位置为(i,j)的系数。
所说的选取N×N反变换矩阵的方法具体应用到8×8反变换矩阵如下
采用如下8×8反变换矩阵IDCTfp8IDCTfp8=round(8g2SCALEigIDCT)/2SCALEi=GiAiEiBiGiCiFiDiGiBiFi-Di-Gi-Ai-Ei-CiGiCi-Fi-Ai-Gi-DiEiBiGiDi-Ei-CiGiBi-Fi-AiGi-Di-EiCiGi-Bi-FiAiGi-Ci-FiAi-Gi-DiEi-BiGi-BiFiDi-GiAi-EiCiGi-AiEi-BiGi-CiFi-Di/2SCALEf]]>其中IDCT为理论的8×8离散余弦反变换矩阵;SCALEi为预先指定的非负整数,用于获得8×8反变换矩阵;round(g)为普通的四舍五入操作;Ai,Bi,Ci,Di,Ei,Fi,Gi表示8×8反变换矩阵中的系数,且均为整数;特别地,还包括以下四组正变换矩阵系数和反变换矩阵系数(1)Ai=2841,Bi=2408,Ci=1609,Di=565,Ei=2676,Fi=1108,Gi=2408,SCALEi=11;(2)Ai=5681,Bi=4816,Ci=3218,Di=1130,Ei=5352,Fi=2217,Gi=4096,SCALEi=12;(3)Ai=11363,Bi=9633,Ci=6436,Di=2260,Ei=10703,Fi=4433,Gi=8192,SCALEi=13;(4)Ai=22725,Bi=19266,Ci=12873,Di=4520,Ei=21407,Fi=8867,Gi=16384,SCALEi=14。
3、一种运用于图像编码和视频编码的离散余弦变换的装置正变换装置包括预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维正变换装置的输入端相连,第一维正变换装置的输出端和第一维正变换后移位装置的输入端相连,第一维正变换后移位装置的输出端和第二维正变换装置输入端相连,第二维正变换装置输出端和第二维正变换后移位装置输入端相连,第二维正变换后移位装置输出端和变换输出数据相连。
对于正变换装置,还包括正变换精度复杂度控制装置;正变换精度复杂度控制装置通过开关和预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置相连;4、一种运用于图像编码和视频编码的离散余弦变换的装置反变换装置包括预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维反变换装置的输入端相连,第一维反变换装置的输出端和第一维反变换后移位装置的输入端相连,第一维反变换后移位装置的输出端和第二维反变换装置输入端相连,第二维反变换装置输出端和第二维反变换后移位装置输入端相连,第二维反变换后移位装置输出端和变换输出数据相连。
对于反变换装置,还包括反变换精度复杂度控制装置;反变换精度复杂度控制装置通过开关和预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置相连。
本发明与背景技术相比,具有有益的效果可以用较低的实现复杂度得到较高的精度,并且可以较方便的控制实现的复杂度。它所采用的变换矩阵的系数和理论的离散余弦变换矩阵的系数更加接近,因此和理论的离散余弦变换的结果更加接近,精度比现有技术在相当的实现复杂度下高。同时,现有技术在调整实现的复杂度和精度时需要调整多个系数,本发明允许可以调整一个、两个或多个系数,调整方法更加方便和全面。本发明可以用于图像编码和视频编码相关的领域中。


图1是本发明实施例1、2、3、4、5、6的正变换蝶形图;图2是本发明实施例1、2、3、4、5、6的反变换蝶形图;图3是本发明实施例7的正变换装置;图4是本发明实施例7的反变换装置;图5是本发明实施例8的正变换装置;图6是本发明实施例8的反变换装置。
具体实施例方式
实施例1采用的正变换蝶形图和反变换蝶形图如图1、图2所示。(实际实现时可以根据需要采用不同的蝶形结构和实现方法。)图1中x0,x1,x2,x3,x4,x5,x6,x7为一维正变换输入数据,y0,y1,y2,y3,y4,y5,y6,y7为一维正变换输出数据,SCALEf为选取正变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的正变换矩阵确定的参数,r为正变换后四舍五入参数;图2中y0,y1,y2,y3,y4,y5,y6,y7为一维反变换输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换输出数据,SCALEi为选取反变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的反变换矩阵确定的参数,r为反变换后四舍五入参数。
采用的正变换矩阵为FDCTfp=8192819281928192819281928192819211363963364362260-2260-6436-9633-11363107034433-4433-10703-10703-44334433107039633-2260-11363-64366436113632260-96338192-8192-819281928192-8192-819281926436-1136322609633-9633-226011363-64364433-1070310703-4433-443310703-1070344332260-64369633-1136311363-96336436-2260/8192]]>正变换过程如下在进行正变换过程前,对输入数据先左移6位,一维变换后不移位,二维变换后右移9位FS0=6,FS1=0,FS2=9采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,对输入数据先左移10位,一维变换后不移位,二维变换后右移13位IS0=10,IS1=0,IS2=13图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE
具体参数如下SCALEf=SCALEi=13e0=-15136/8192 e1=4433/8192 e2=6270/8192d0=2446/8192 d1=16820/8192 d2=25172/8192d3=12300/8192 d4=-7373/8192 d5=-20996/8192d6=-16069/8192 d7=-3197/8192 d8=9633/8192实施例2采用的正变换蝶形图和反变换蝶形图如图1、图2所示。(实际实现时可以根据需要采用不同的蝶形结构和实现方法。)图1中x0,x1,x2,x3,x4,x5,x6,x7为一维正变换输入数据,y0,y1,y2,y3,y4,y5,y6,y7为一维正变换输出数据,SCALEf为选取正变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的正变换矩阵确定的参数,r为正变换后四舍五入参数;图2中y0,y1,y2,y3,y4,y5,y6,y7为一维反变换输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换输出数据,SCALEi为选取反变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的反变换矩阵确定的参数,r为反变换后四舍五入参数。
采用的正变换矩阵为FDCTfp=8192819281928192819281928192819211363963364362260-2260-6436-9633-11363107034433-4433-10703-10703-44334433107039633-2260-11363-64366436113632260-96338192-8192-819281928192-8192-819281926436-1136322609633-9633-226011363-64364433-1070310703-4433-443310703-1070344332260-64369633-1136311363-96336436-2260/8192]]>正变换过程如下在进行正变换过程前,对输入数据先左移6位,一维变换后不移位,二维变换后右移9位FS0=6,FS1=0,FS2=9采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,对输入数据先左移8位,一维变换后不移位,二维变换后右移11位IS0=8,IS1=0,IS2=11图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体参数如下SCALEf=SCALEi=13e0=-15136/8192 e1=4433/8192 e2=6270/8192d0=2446/8192 d1=16820/8192 d2=25172/8192d3=12300/8192 d4=-7373/8192 d5=-20996/8192d6=-16069/8192 d7=-3197/8192 d8=9633/8192实施例3采用的正变换蝶形图和反变换蝶形图如图1、图2所示。(实际实现时可以根据需要采用不同的蝶形结构和实现方法。)图1中x0,x1,x2,x3,x4,x5,x6,x7为一维正变换输入数据,y0,y1,y2,y3,y4,y5,y6,y7为一维正变换输出数据,SCALEf为选取正变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的正变换矩阵确定的参数,r为正变换后四舍五入参数;图2中y0,y1,y2,y3,y4,y5,y6,y7为一维反变换输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换输出数据,SCALEi为选取反变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的反变换矩阵确定的参数,r为反变换后四舍五入参数。
采用的正变换矩阵为FDCTtp=20482048204820482048204820482048284124081609565-565-1609-2408-284126761108-1108-2676-2676-1108110826762408-565-2841-160916092841565-24812048-2048-204820482048-2048-204820481609-28415652408-2408-5652841-16091108-26762676-1108-11082676-26761108565-16092408-28412841-24081609-565/2048]]>正变换过程如下在进行正变换过程前,对输入数据先左移5位,一维变换后不移位,二维变换后右移8位FS0=5,FS1=0,FS2=8采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,对输入数据先左移8位,一维变换后不移位,二维变换后右移11位IS0=8,IS1=0,IS2=11图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体参数如下SCALEf=SCALEi=11e0=-3784/2048 e1=1108/2048 e2=1568/2048d0=611/2048 d1=4205/2048 d2=6293/2048d3=3075/2048 d4=-1843/2048 d5=-5249/2048d6=-4017/2048 d7=-799/2048 d8=2408/2048
实施例4采用的正变换蝶形图和反变换蝶形图如图1、图2所示。(实际实现时可以根据需要采用不同的蝶形结构和实现方法。)图1中x0,x1,x2,x3,x4,x5,x6,x7为一维正变换输入数据,y0,y1,y2,y3,y4,y5,y6,y7为一维正变换输出数据,SCALEf为选取正变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的正变换矩阵确定的参数,r为正变换后四舍五入参数;图2中y0,y1,y2,y3,y4,y5,y6,y7为一维反变换输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换输出数据,SCALEi为选取反变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的反变换矩阵确定的参数,r为反变换后四舍五入参数。
采用的正变换矩阵为FDCTfp=16384163841638416384163841638416384163842272519266128734520-4520-12873-19266-22725214078867-8867-21407-21407-886788672140719266-4520-22725-1287312873227254520-1926616384-16384-163841638416384-16384-163841638412873-22725452019266-19266-452022725-128738867-2140721407-8867-886721407-2140788674520-1287319266-2272522725-1926612873-4520/16384]]>正变换过程如下在进行正变换过程前,对输入数据先左移6位,一维变换后不移位,二维变换后右移9位FS0=6,FS1=0,FS2=9采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,对输入数据先左移12位,一维变换后不移位,二维变换后右移15位IS0=12,IS1=0,IS2=15
图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体参数如下SCALEf=SCALEi=14e0=-30274/16384 e1=8867/16384 e2=12540/16384d0=4894/16384 d1=33638/16384 d2=50344/16384d3=24598/16384 d4=-14746/16384 d5=-41991/16384d6=-32139/16384 d7=-6393/16384 d8=19266/16384实施例5采用的正变换蝶形图和反变换蝶形图如图1、图2所示。(实际实现时可以根据需要采用不同的蝶形结构和实现方法。)图1中x0,x1,x2,x3,x4,x5,x6,x7为一维正变换输入数据,y0,y1,y2,y3,y4,y5,y6,y7为一维正变换输出数据,SCALEf为选取正变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的正变换矩阵确定的参数,r为正变换后四舍五入参数;图2中y0,y1,y2,y3,y4,y5,y6,y7为一维反变换输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换输出数据,SCALEi为选取反变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的反变换矩阵确定的参数,r为反变换后四舍五入参数。
采用的正变换矩阵为FDCTfp=8192819281928192819281928192819211363963364362261-2261-6437-9633-11363107044433-4433-10704-10704-44334433107049633-2261-11363-64376437113632261-96338192-8192-819281928192-8192-819281926437-1136322619633-9633-226111363-64374433-1070410704-4433-443310704-1070444332261-64379633-1136311363-96336437-2261/8192]]>正变换过程如下在进行正变换过程前,对输入数据先左移6位,一维变换后不移位,二维变换后右移9位FS0=6,FS1=0,FS2=9采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,对输入数据先左移10位,一维变换后不移位,二维变换后右移13位IS0=10,IS1=0,IS2=13图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体参数如下SCALEf=SCALEi=13e0=-15137/8192 e1=4433/8192 e2=6271/8192d0=2446/8192 d1=16820/8192 d2=25172/8192d3=12298/8192 d4=-7372/8192 d5=-20996/8192d6=-16070/8192 d7=-3196/8192 d8=9633/8192
实施例6采用的正变换蝶形图和反变换蝶形图如图1、图2所示。(实际实现时可以根据需要采用不同的蝶形结构和实现方法。)图1中x0,x1,x2,x3,x4,x5,x6,x7为一维正变换输入数据,y0,y1,y2,y3,y4,y5,y6,y7为一维正变换输出数据,SCALEf为选取正变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的正变换矩阵确定的参数,r为正变换后四舍五入参数;图2中y0,y1,y2,y3,y4,y5,y6,y7为一维反变换输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换输出数据,SCALEi为选取反变换矩阵时确定的参数,e0,e1,e2,d0,d1,d2,d3,d4,d5,d6,d7,d8为根据所选取的反变换矩阵确定的参数,r为反变换后四舍五入参数。
采用的正变换矩阵为FDCTfp=8192819281928192819281928192819211363963364362260-2260-6436-9633-11363107034433-4433-10703-10703-44334433107039633-2260-11363-64366436113632260-96338192-8192-819281928192-8192-819281926436-1136322609633-9633-226011363-64364433-1070310703-4433-443310703-1070344332260-64369633-1136311363-96336436-2260/8192]]>正变换过程如下在进行正变换过程前,对输入数据先左移6位,一维变换后不移位,二维变换后右移9位FS0=6,FS1=0,FS2=9图1中的参数由下式计算得到e0=(-Ef-Ff)/2SCALEf]]>e1=Ff/2SCALEf]]>e2=(Ef-Ff)/2SCALEf]]>d0=(-Af+Bf+Cf-Df)/2SCALEf]]>d1=(Af+Bf-Cf+Df)/2SCALEf]]>d2=(Af+Bf+Cf-Df)/2SCALEf]]>d3=(Af+Bf-Cf-Df)/2SCALEf]]>d4=(-Bf+Df)/2SCALEf]]>d5=(-Af-Bf)/2SCALEf]]>d6=(-Bf-Cf)/2SCALEf]]>d7=(-Bf+Df)/2SCALEf]]>d8=Bf/2SCALEf]]>
具体参数如下SCALEf=13e0=-15136/8192 e1=4433/8192 e2=6270/8192d0=2446/8192 d1=16820/8192 d2=25172/8192d3=12300/8192 d4=-7373/8192 d5=-20996/8192d6=-16069/8192 d7=-3197/8192 d8=9633/8192采用的反变换矩阵为FDCTfp=16384163841638416384163841638416384163842272519266128734520-4520-12873-19266-22725214078867-8867-21407-21407-886788672140719266-4520-22725-1287312873227254520-1926616384-16384-163841638416384-16384-163841638412873-22725452019266-19266-452022725-128738867-2140721407-8867-886721407-2140788674520-1287319266-2272522725-1926612873-4520/16384]]>反变换过程如下在进行反变换过程前,对输入数据先左移12位,一维变换后不移位,二维变换后右移15位IS0=12,IS1=0,IS2=15图2中的参数由下式计算得到e0=(-Ei-Fi)/2SCALEi]]>e1=Fi/2SCALEi]]>e2=(Ei-Fi)/2SCALEi]]>d0=(-Ai+Bi+Ci-Di)/2SCALEi]]>d1=(Ai+Bi-Ci+Di)/2SCALEi]]>d2=(Ai+Bi+Ci-Di)/2SCALEi]]>d3=(Ai+Bi-Ci-Di)/2SCALEi]]>d4=(-Bi+Di)/2SCALEi]]>d5=(-Ai-Bi)/2SCALEi]]>d6=(-Bi-Ci)/2SCALEi]]>d7=(-Bi+Di)/2SCALEi]]>d8=Bi/2SCALEi]]>具体参数如下SCALEi=14e0=-30274/16384 e1=8867/16384 e2=12540/16384d0=4894/16384 d1=33638/16384 d2=50344/16384d3=24598/16384 d4=-14746/16384 d5=-41991/16384d6=-32139/16384 d7=-6393/16384 d8=19266/16384
实施例7一种运用于图像编码和视频编码的离散余弦变换的装置,它包括正变换装置(图3)和反变换装置(图4)两大部分正变换装置包括预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维正变换装置的输入端相连,第一维正变换装置的输出端和第一维正变换后移位装置的输入端相连,第一维正变换后移位装置的输出端和第二维正变换装置输入端相连,第二维正变换装置输出端和第二维正变换后移位装置输入端相连,第二维正变换后移位装置输出端和变换输出数据相连;反变换装置包括预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维反变换装置的输入端相连,第一维反变换装置的输出端和第一维反变换后移位装置的输入端相连,第一维反变换后移位装置的输出端和第二维反变换装置输入端相连,第二维反变换装置输出端和第二维反变换后移位装置输入端相连,第二维反变换后移位装置输出端和变换输出数据相连。
变换前输入数据首先经过预移位装置进行移位,其输出送到第一维正(反)变换装置进行变换,其输出送到第一维正(反)变换后移位装置进行移位,其输出送到第二维正(反)变换装置进行变换,其输出送到第二维正(反)变换后移位装置进行移位,其输出为变换后输出数据。
第一维正(反)变换装置和第二维正(反)变换装置为图1、图2所示的正(反)变换蝶形结构。
采用的正变换矩阵为FDCTfp=8192819281928192819281928192819211363963364362260-2260-6436-9633-11363107034433-4433-10703-10703-44334433107039633-2260-11363-64366436113632260-96338192-8192-819281928192-8192-819281926436-1136322609633-9633-226011363-64364433-1070310703-4433-443310703-1070344332260-64369633-1136311363-96336436-2260/8192]]>正变换过程如下在进行正变换过程前,预移位装置对输入数据先左移6位,第一维正变换后移位装置对一维变换后的数据不移位,第二维正变换后移位装置对二维变换后的数据右移9位FS0=6,FS1=0,FS2=9采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,预移位装置对输入数据先左移10位,第一维反变换后移位装置对一维变换后的数据不移位,第二维反变换后移位装置对二维变换后的数据右移13位IS0=10,IS1=0,IS2=13图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体参数如下SCALEf=SCALEi=13e0=-15136/8192 e1=4433/8192 e2=6270/8192d0=2446/8192 d1=16820/8192 d2=25172/8192d3=12300/8192 d4=-7373/8192 d5=-20996/8192d6=-16069/8192 d7=-3197/8192 d8=9633/8192实施例8一种运用于图像编码和视频编码的离散余弦变换的装置,它包括正变换装置(图5)和反变换(图6)装置两大部分正变换装置包括预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置,正变换精度和复杂度控制器;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维正变换装置的输入端相连,第一维正变换装置的输出端和第一维正变换后移位装置的输入端相连,第一维正变换后移位装置的输出端和第二维正变换装置输入端相连,第二维正变换装置输出端和第二维正变换后移位装置输入端相连,第二维正变换后移位装置输出端和变换输出数据相连,正变换精度和复杂度控制器通过开关和预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置相连;反变换装置包括预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维反变换装置的输入端相连,第一维反变换装置的输出端和第一维反变换后移位装置的输入端相连,第一维反变换后移位装置的输出端和第二维反变换装置输入端相连,第二维反变换装置输出端和第二维反变换后移位装置输入端相连,第二维反变换后移位装置输出端和变换输出数据相连,反变换精度和复杂度控制器通过开关和预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置相连。
变换前输入数据首先经过预移位装置进行移位,其输出送到第一维正(反)变换装置进行变换,其输出送到第一维正(反)变换后移位装置进行移位,其输出送到第二维正(反)变换装置进行变换,其输出送到第二维正(反)变换后移位装置进行移位,其输出为变换后输出数据。正(反)变换精度和复杂度控制器通过开关控制和调整预移位装置,第一维正(反)变换装置,第一维正(反)变换后移位装置,第二维正(反)变换装置,第二维正(反)变换后移位装置中的相关参数,从而达到不同的精度和不同的实现复杂度。
第一维正(反)变换装置和第二维正(反)变换装置为图1、图2所示的正(反)变换蝶形结构。
采用的正变换矩阵为FDCTfp=8192819281928192819281928192819211363963364362260-2260-6436-9633-11363107034433-4433-10703-10703-44334433107039633-2260-11363-64366436113632260-96338192-8192-819281928192-8192-819281926436-1136322609633-9633-226011363-64364433-1070310703-4433-443310703-1070344332260-64369633-1136311363-96336436-2260/8192]]>
正变换过程如下在进行正变换过程前,预移位装置对输入数据先左移6位,第一维正变换后移位装置对一维变换后的数据不移位,第二维正变换后移位装置对二维变换后的数据右移9位FS0=6,FS1=0,FS2=9采用的反变换矩阵为正变换矩阵的转置IDCTfp=(FDCTfp)T反变换过程如下在进行反变换过程前,预移位装置对输入数据先左移10位,第一维反变换后移位装置对一维变换后的数据不移位,第二维反变换后移位装置对二维变换后的数据右移13位IS0=10,IS1=0,IS2=13图1、图2中的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体参数如下SCALEf=SCALEi=13e0=-15136/8192 e1=4433/8192 e2=6270/8192d0=2446/8192 d1=16820/8192 d2=25172/8192d3=12300/8192 d4=-7373/8192 d5=-20996/8192d6=-16069/8192 d7=-3197/8192 d8=9633/8192正变换精度和复杂度控制器通过控制第一维正变换装置、第二维正变换装置达到不同的精度和实现复杂度,采用的正变换矩阵调整为
FDCTfpr=16384163841638416384163841638416384163842272519266128734520-4520-12873-19266-22725214078867-8867-21407-21407-886788672140719266-4520-22725-1287312873227254520-1926616384-16384-163841638416384-16384-163841638412873-22725452019266-19266-452022725-128738867-2140721407-8867-886721407-2140788674520-1287319266-2272522725-1926612873-4520/16384]]>图1、图2中的调整后的参数由下式计算得到e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体的调整后的参数如下SCALEf=14e0=-30274/16384 e1=8867/16384 e2=12540/16384d0=4894/16384 d1=33638/16384 d2=50344/16384d3=24598/16384 d4=-14746/16384 d5=-41991/16384d6=-32139/16384 d7=-6393/16384 d8=19266/16384反变换精度和复杂度控制器通过控制预移位装置,第一维反变换装置,第一维反变换后移位装置、第二维反变换装置和第二维反变换后移位装置达到不同的精度和实现复杂度,采用的反变换矩阵调整为IDCTfpr=(FDCTfpr)T图1、图2中的调整后的参数由下式计算得到
e0=(-E-F)/2SCALEe1=F/2SCALEe2=(E-F)/2SCALEd0=(-A+B+C-D)/2SCALEd1=(A+B-C+D)/2SCALEd2=(A+B+C-D)/2SCALEd3=(A+B-C-D)/2SCALEd4=(-B+D)/2SCALEd5=(-A-B)/2SCALEd6=(-B-C)/2SCALEd7=(-B+C)/2SCALEd8=B/2SCALE具体的调整后的参数如下SCALEf=14e0=-30274/16384 e1=8867/16384 e2=12540/16384d0=4894/16384 d1=33638/16384 d2=50344/16384d3=24598/16384 d4=-14746/16384 d5=-41991/16384d6=-32139/16384 d7=-6393/16384 d8=19266/16384预移位装置对输入数据调整为先左移12位,第一维正(反)变换后移位装置对一维变换后的数据不移位,第二维正(反)变换后移位装置对二维变换后的数据调整为右移15位IS0=12,IS1=0,IS2=15上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
权利要求
1.一种运用于图像编码和视频编码的离散余弦变换的方法,其特征在于对于正变换,根据下式选取N×N正变换矩阵FDCTfpNFDCTfpN=round(Ng2SCALEfgFDCT)/2SCALEf;]]>其中FDCT为理论的N×N离散余弦正变换矩阵;SCALEf为预先指定的非负整数,用于获得N×N正变换矩阵;round(g)为普通的四舍五入操作;对于正变换采用或调整SCALEf达到不同的精度和不同的实现复杂度;根据所选取的N×N正变换矩阵,进行相应的正变换过程在正变换前先左移FS0位,在一维正变换后右移FS1位,在二维正变换后右移FS2位;其中FS0,FS1,FS2为整数,值为零时表示不进行移位操作,值为正整数时表示进行上所述方向的移位操作,值为负整数表示进行和上述方向相反的移位操作;对于正变换,采用或调整FS0,FS1,FS2中的一个、两个或三个达到不同的精度和不同的实现复杂度。
2.根据权利要求1中所述的运用于图像编码和视频编码的离散余弦变换的方法,其特征在于,采用或调整N×N正变换矩阵FDCTfpN中的系数达到不同的精度和不同的实现复杂度,即用FDCTfpNr代替FDCTfpN,满足|(FDCTfpNr(i,j)-FDCTfpN(i,j))/FDCTfpN(i,j)|≤1%0≤i≤N-1,0≤j≤N-1;其中FDCTfpNr(i,j)和FDCTfpN(i,j)分别表示FDCTfpN和FDCTfpN中位置为(i,j)的系数。
3.根据权利要求1或2中所述的运用于图像编码和视频编码的离散余弦变换的方法,其特征在于所说的选取N×N正变换矩阵的方法具体应用到8×8正变换矩阵如下采用如下的8×8正变换矩阵FDCTfp8FDCTfp8=round(8g2SCALEfgFDCT)/2SCALEf=GfGfGfGfGfGfGfGfAfBfCfDf-Df-Cf-Bf-AfEfFf-Ff-Ef-Ef-FfFfEfBf-Df-Af-CfCfAfDf-BfGf-Gf-GfGfGf-GfGfGfCf-AfDfBf-Bf-DfAf-CfFf-EfEf-Ff-FfEf-EfFfDf-CfBf-AfAf-BfCf-Df/2SCALEf]]>其中FDCT为理论的8×8离散余弦正变换矩阵;SCALEf为预先指定的非负整数,用于获得8×8正变换矩阵;round(g)为普通的四舍五入操作;Af,Bf,Cf,Df,Ef,Ff,Gf表示8×8正变换矩阵中的系数,且均为整数;特别地,还包括以下四组正变换矩阵系数(1)Af=2841,Bf=2408,Cf=1609,Df=565,Ef=2676,Ff=1108,Gf=2408,SCALEf=11;(2)Af=5681,Bf=4816,Cf=3218,Df=1130,Ef=5352,Ff=2217,Gf=4096,SCALEf=12;(3)Af=11363,Bf=9633,Cf=6436,Df=2260,Ef=10703,Ff=4433,Gf=8192,SCALEf=13;(4)Af=22725,Bf=19266,Cf=12873,Df=4520,Ef=21407,Ff=8867,Gf=16384,SCALEf=14。
4.一种运用于图像编码和视频编码的离散余弦变换的方法,其特征在于对于反变换,根据下面两式选取N×N反变换矩阵IDCTfpNIDCTfpN=round(Ng2SCALEigIDCT)/2SCALEi;]]>其中IDCT为理论的N×N离散余弦反变换矩阵;SCALEi为预先指定的非负整数,用于获得N×N反变换矩阵;round(g)为普通的四舍五入操作;对于反变换采用或调整SCALEi达到不同的精度和不同的实现复杂度;根据所选取的N×N反变换矩阵,进行相应的反变换过程在变换前先左移IS0位,在一维变换后右移IS1位,在二维变换后右移IS2位;其中IS0,IS1,IS2为整数,值为零时表示不进行移位操作,值为正整数时表示进行上所述方向的移位操作,值为负整数表示进行和上述方向相反的移位操作;对于反变换,采用或调整IS0,IS1,IS2中的一个、两个或三个达到不同的精度和不同的实现复杂度。
5.根据权利要求4中所述的运用于图像编码和视频编码的离散余弦变换的方法,其特征在于,采用或调整N×N反变换矩阵IDCTfpN中的系数达到不同的精度和不同的实现复杂度,即用IDCTfpNr代替IDCTfpN,满足|(IDCTfpNr(i,j)-IDCTfpN(i,j))/IDCTfpN(i,j)|≤1% 0≤i≤N-1,0≤j≤N-1;其中IDCTfpNr(i,j)和IDCTfpN(i,j)分别表示FDCTfpN和FDCTfpN中位置为(i,j)的系数。
6.根据权利要求4或5中所述的运用于图像编码和视频编码的离散余弦变换的方法,其特征在于所说的选取N×N反变换矩阵的方法具体应用到8×8反变换矩阵如下采用如下8×8反变换矩阵IDCTfp8IDCTfp8-round(8g2SCALEigIDCT)/2SCALEi=GiAiEiBiGiCiFiDiGiBiFi-Di-Gi-Ai-Ei-CiGiCi-Fi-Ai-GiDiEiBiGiDi-Ei-CiGiBi-Fi-AiGi-Di-EiCiGi-Bi-FiAiGi-Ci-FiAi-Gi-DiEi-BiGi-BiFiDi-GiAi-EiCiGi-AiEi-BiGi-CiFi-Di/2SCALEi]]>其中IDCT为理论的8×8离散余弦反变换矩阵;SCALEi为预先指定的非负整数,用于获得8×8反变换矩阵;round(g)为普通的四舍五入操作;Ai,Bi,Ci,Di,Ei,Fi,Gi表示8×8反变换矩阵中的系数,且均为整数;特别地,还包括以下四组正变换矩阵系数和反变换矩阵系数(1)Ai=2841,Bi=2408,Ci=1609,Di=565,Ei=2676,Fi=1108,Gi=2408,SCALEi=11;(2)Ai=5681,Bi=4816,Ci=3218,Di=1130,Ei=5352,Fi=2217,Gi=4096,SCALEi=12;(3)Ai=11363,Bi=9633,Ci=6436,Di=2260,Ei=10703,Fi=4433,Gi=8192,SCALEi=13;(4)Ai=22725,Bi=19266,Ci=12873,Di=4520,Ei=21407,Fi=8867,Gi=16384,SCALEi=14。
7.一种运用于图像编码和视频编码的离散余弦变换的装置,其特征在于正变换装置包括预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维正变换装置的输入端相连,第一维正变换装置的输出端和第一维正变换后移位装置的输入端相连,第一维正变换后移位装置的输出端和第二维正变换装置输入端相连,第二维正变换装置输出端和第二维正变换后移位装置输入端相连,第二维正变换后移位装置输出端和变换输出数据相连。
8.根据权利要求7所述的一种运用于图像编码和视频编码的离散余弦变换的装置,其特征在于对于正变换装置,还包括正变换精度复杂度控制装置;正变换精度复杂度控制装置通过开关和预移位装置,第一维正变换装置,第一维正变换后移位装置,第二维正变换装置,第二维正变换后移位装置相连;
9.一种运用于图像编码和视频编码的离散余弦变换的装置,其特征在于反变换装置包括预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置;预移位装置的输入端与变换前的输入数据相连,预移位装置的输出端和第一维反变换装置的输入端相连,第一维反变换装置的输出端和第一维反变换后移位装置的输入端相连,第一维反变换后移位装置的输出端和第二维反变换装置输入端相连,第二维反变换装置输出端和第二维反变换后移位装置输入端相连,第二维反变换后移位装置输出端和变换输出数据相连。
10.根据权利要求9所述的一种运用于图像编码和视频编码的离散余弦变换的装置,其特征在于对于反变换装置,还包括反变换精度复杂度控制装置;反变换精度复杂度控制装置通过开关和预移位装置,第一维反变换装置,第一维反变换后移位装置,第二维反变换装置,第二维反变换后移位装置相连。
全文摘要
本发明公开了一种运用于图像编码和视频编码的离散余弦变换的方法和装置。它用较低的实现复杂度得到较高的精度,并且可以较方便的控制实现的复杂度。所采用的变换矩阵的系数和理论的离散余弦变换矩阵的系数更加接近,因此和理论的离散余弦变换的结果更加接近,精度比现有技术在相当的实现复杂度下高。同时,现有技术在调整实现的复杂度和精度时需要调整多个系数,本发明允许可以调整一个、两个或多个系数,调整方法更加方便和全面。本发明可以用于图像编码和视频编码相关的领域中。本发明中离散余弦变换装置完全实现本发明中的离散余弦变换方法。
文档编号H04N7/30GK1809170SQ20061004898
公开日2006年7月26日 申请日期2006年1月11日 优先权日2006年1月11日
发明者虞露, 张赐勋 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1