图像或视频编码的六角变换快速处理方法

文档序号:7886725阅读:318来源:国知局
专利名称:图像或视频编码的六角变换快速处理方法
技术领域
本发明涉及图像或视频编码的六角变换快速处理方法。本发明主要是在图像或视频编码端,将图像或视频数据进行正向六角变换处理,变换到以正向六角变换矩阵表达的向量空间中;在图像或视频解码端,将正向六角变换后的数据进行逆向六角变换处理,恢复得到原始的图像或视频数据。有利于加快对图像数据或者视频数据的压缩和分析。
背景技术
传统的视频编码标准如ITU制定的H. 261, H. 263, H. 263+, H. 264标准以及ISO的 MPEG组织制定的MPEG-1,MPEG-2,MPEG-4等都是建立在混合编码(Hybrid Coding)框架之上的。所谓混合编码框架是一种综合考虑预测、变换和熵编码的方法框架,有以下主要特占.
(1)利用预测去除时间域的冗余度;
(2)利用变换去除空间域的冗余度;
(3)利用熵编码去除统计上的冗余度。上述视频编码标准都具有帧内编码帧(I帧)和帧间编码帧(P/B帧)。对图像或者视频帧以宏块为基本单位进行编码,首先进行帧内或者帧间的预测,然后将预测残差进行二维变换、量化,最后对量化系数进行熵编码。由于视频数据和图像数据在空间域上有较强的相关性,二维变换是提高编码增益的关键因素,因此二维变换是视频编码和图像编码的很重要的部分。离散余弦变换(DCT)通常用于视频图像数据的块变换编码,这是因为对于各种信号,离散余弦变换非常近似于统计最佳的K-L变换。离散余弦变换被广泛应用于各种视频 /图像编码标准中。离散余弦变换的一个缺点是将待变换数据块的各个位置上的数据同等对待,和预测残差的分布规律不相吻合。经过各种预测后,视频图像的块数据的空间相关性发生了变化,在统计意义上,块中心的像素预测匹配较好,预测残差较小,而块边缘的像素预测匹配较差,预测残差较大。六角变换能够适应预测残差的统计特性,克服DCT的不足之处。所谓六角变换,即根据六个角度导出的变换矩阵进行的变换。设α ρ α 2、α 3、α 4、α 5、〃6是六个角度,令
Ct=COS a jjD-sin α 厂
E-cos a Z7=Sin a G-cos a 3, H-six\ a 3, /=COS a 4,J-six\ a 4J K-cos a Z=Sin a I=COS a ^,yV=sin a 6 ;
则变换矩阵如下(CG EH Fff DG
m
FH
BH ^CO
CL
GDl HGK DHl-GGK
HK -HK -DHi+GGK -GDL-SGK -CL
DJ FI -EI
-CJ -CJ —EI FI DJ
DM HHN-GCM
-MM—GEN -m (Μ
JiCM+G册
-HHN+GCM
-IM
CE
-EG
-FXj
DE
DH
-FG
-EG
CE
DM -HBM-GW - Hm+GHM OM -GM Hm-WM SHM+GHM -IW
m
-CT
-a
ZJ
-FJ
DI
GDK-HGL HDKkGGL -EL HL
-HDK-GGL I -GDK+HGL
设X是空间域的8X8数据块,Y是X经过正向六角变换得到的变换域的8X8数据块, 则正向六角变换可以描述为 γ = τ'χτ
逆向六角变换可以描述为 X = TYT'
可见,正向六角变换和逆向六角变换都需要进行两次矩阵相乘运算,而且矩阵中的元素都是浮点数,计算量较大。经过简单的统计可知,每次矩阵相乘,需要进行8X8X8=512 次浮点数相乘和8X8X7=448次浮点数相加。本发明将提供一种快速算法,可以明显降低六角变换的运算量。

发明内容
本发明的目的是针对已有技术存在的缺陷,提供一种图像或视频编码的六角变换快速处理方法,可以明显降低六角变换的运算复杂度,有利于加快对图像或视频数据的压缩和分析。本发明采用如下的技术方案
一种图像或视频编码的六角变换快速处理方法,包括在图像或视频编码端,将图像或视频数据进行正向六角变换处理,变换到以正向六角变换矩阵表达的向量空间中;在图像或视频解码端,将正向六角变换后的数据进行逆向六角变换处理,恢复得到原始的图像或视频数据;将图像或视频数据进行正向变换处理的方法是基于正向六角变换Γ = 的快速处理方法;将正向六角变换后的数据进行逆向变换处理的方法是基于逆向六角变换 if = TIT1的快速处理方法。上述快速处理方法中的变换矩阵T按如下方法得到 设α ρ α 2、α 3、α 4、α 5、σ ,是所选取的六个角度,令 C=Cos a i =sin a ”
Ε-cos a 2, Z7=Sin a 2, G=Cos a 3, //=sin a 3, /=COS a 4, J=Sin a 4, K=Cos a 5, Z=sin a 5, M=Cos a ^7Ar=Sin a 6 ;CN 102547285 A
C^ DJ IM CH m DI CK FM GBUmK FI-FG -MM-GfM -FJ Qm-mi
FM DHL-σσΚ -EI -MM—Qim-m -MM+QIM SJ HDK^ QGl 丄沉 HK -a -GM DM GM -Cl -M DG -HK -GJ QN DH -QM -CI Μ FM -DBUQGK -EI ΗζΜ+mm -FQ MM-Qmd WJ -EDM-GGl
m ~GM~M X Fi -BmhGOd -m mm—Qim -FJ -oDK-t-mi
、CQ -OL DJ 'IM CH -ZJiV DI -CK
上述正向变换处理的方法是基于正向六角变换r = π的快速处理方法;在实施过程中,采用S =在T以方便计算;则正向变换可用Γ=『1/2来代替,其中,Z = JC 的
快速处理方法可用如下方法实现
设 Xi=(x0, xl, x2, x3, x4, x5, x6, x7)是 X 的第 i 行,Zi=(Zi), zl, z2, z3, z4, z5, z6, z7)是 Z的第i行;用aM表示计算的中间结果
a
=xO+x7;a[7]=xO-x7;a[l]=xl+x6 ;a [6]=xl-x6 ;a[2]=x2+x5;a[5]=x2-x5;a[3]=x3+x4;a [4]=x3-x4;a[10]=C氺a
+ D氺a[3]a[13]=D氺a
-C氺a[3]a[ll]=E氺a[l]+ F氺a[2]a[12]=F氺a[l]-E氺a[2]a[ 8]=H氺a [6]-G氺a[5]a[ 9]=G氺a [6]+ H氺a[5]a[14]=H氺a [4]+ G氺a [8]a[15]=G氺a [4]-H氺a [8]a[16]=D氺a[7]-C氺a [9]a[17]=C氺a[7]+ D氺a [9]
则Zi用如下处理方法得至
zO=G氺a[10]+ H氺a11]z4=H氺a[10]-G氺a11]z2=J氺a[13]+ I氺a12]z6=I氺a[13]-J氺a12]zl=L氺a[17]+ K氺a14]z7=K氺a[17]-L氺a14]z5=N氺a[16]+ M氺a15]z3=M氺a[16]-N氺a15]
对矩阵X和矩阵Z的每一行都进行上述同样的计算过程,就完成了 Z=XS的计算,总共需要的运算次数为36X8=288次浮点数乘法,18X8=144次浮点数加减法,8X8=64次整数加减法。相比直接矩阵相乘的512次浮点数乘法和448次浮点数加减法,计算量减少了很
^^ ο此外,根据矩阵运算的性质,可得 (2Y) ' = (S'Z) '=Z'S
因此,可以用上述方法计算得到OY)‘,再进行一次矩阵转置就可以得到2Y。所需的计算量和计算XS的计算量基本是一样的。结合上述方案,就可以完成2Y=S'XS,且所需计算量和直接矩阵相乘相比减少一半以上。将2Y的每一个系数除以2,就得到Y。这个除法是不需要单独计算的,可以在量化时, 事先将量化系数扩大2倍,从而达到缩放的目的,而且不增加计算量。上述逆向变换处理的方法是基于逆向六角变换if = TTT1的快速处理方法;其中, Y表示输入的8X8数据块矩阵,X表示8X8输出数据块矩阵,T表示变换矩阵,T'表示矩阵 T的转置;在实施过程中,采用=4 .Τ以方便计算;则逆向变换可用= ^flT来代替,其中,F = m'快速处理方法可用如下方法实现
设 Yi=(xO, xl, x2, x3, x4, x5, x6, x7)是 Y 的第 i 行,Vi=(v0,vl, v2, v3, v4, v5, v6, v7)是 V的第i行;用aM表示计算的中间结果 a[14] = K * yl - L * y7; a[17] = L * yl + K * y7; a[15] = M * y5 - N * y3; a[16] = N * y5 + M * y3; a[10] = G * yO + H * y4; a[ll] = H * yO - G * y4; a[12] = I * y2 - J * y6; a[13] = J * y2 + I * y6; a
= C * a[10] + D * a[13]; a[3] = D * a[10] - C * a[13]; a[l] =E* a[ll] + F * a[12]; a[2] =F* a[ll] - E * a[12]; a[4] =H* a[14] + G * a[15]; a[8] =G* a[14] - H * a[15]; a[9] =D* a[17] - C * a[16]; a[7] =C* a[17] + D * a[16]; a[5] = H * a[ 9] - G * a[ 8]; a[6] = G * a[ 9] + H * a[ 8]; 则Vi用如下处理方法得到 v0 = a
+ a[7]; v7 = a
- a[7]; vl = a[l] + a[6]; v6 = a[l] - a[6]; v2 = a[2] + a[5];v5 = a[2] - a[5]; v3 = a[3] + a[4]; v4 = a[3] - a[4];
对矩阵Y和矩阵V的每一行都进行上述同样的计算过程,就完成了 V=YS'的计算,总共需要的运算次数为36 X 8=288次浮点数乘法,26 X 8=208次浮点数加减法。相比直接矩阵相乘的512次浮点数乘法和448次浮点数加减法,计算量减少了很多。此外,根据矩阵运算的性质,可得 (2X) ' = (SV) '=VS'
因此,可以用上述方法计算得到OX)‘,再进行一次矩阵转置就可以得到2X。所需的计算量和计算YS'的计算量基本是一样的。结合上述方案,就可以完成2X=SYS',且所需计算量和直接矩阵相乘相比减少一半以上。将2X的每一个系数除以2,就得到X。这个除法是不需要单独计算的,可以在量化时, 事先将量化系数扩大2倍,从而达到将每一个变换系数除以2的目的,而且不增加计算量。
下面给出几种采用上述方法运用于图像或视频编码的六角变换快速处理装置 一种运用于图像或视频编码的正向六角变换快速处理装置,包括 输入装置,配置为接收存储正向变换的输入数据; 正向系数获取装置,配置为获取正向六角变换矩阵的系数;
正向变换装置,配置为根据获取装置所得到的六角变换矩阵系数对输入数据块进行快速正向六角变换处理;
输出装置,配置为输出经正向六角变换后的数据。一种运用于图像或视频编码的逆向六角变换快速处理装置,包括 输入装置,配置为接收存储逆向变换的输入数据;
逆向系数获取装置,配置为获取逆向六角变换矩阵的系数;
逆向变换装置,配置为根据获取装置所得到的六角变换矩阵系数对输入数据块进行快速逆向六角变换处理;
输出装置,配置为输出经逆向六角变换后的数据。本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著进步
本发明在图像或视频编码端,将图像或视频数据进行正向变换处理方法是基于正向六角变换F = 的快速处理方法,在图像或视频解码端,将正向六角变换后的数据进行逆向变换处理方法是基于逆向六角变换Z = IlT1的快速处理方法,明显降低了六角变换的运算复杂度,减少处理时间,有利于加快图像或视频数据的压缩和分析。


图1是正向六角变换快速处理方法的示意图; 图2是逆向六角变换快速处理方法的示意图3是正向六角变换装置的示意图; 图4是逆向六角变换装置的示意图。
具体实施方式
本发明的优选实施例结合

如下 实施例一
本图像或视频编码的六角变换快速处理方法,包括在图像或视频编码端,将图像或视频数据进行正向六角变换处理,变换到以正向六角变换矩阵表达的向量空间中;在图像或视频解码端,将正向六角变换后的数据进行逆向六角变换处理,恢复得到原始的图像或视频数据,其中将图像或视频数据进行正向变换处理的方法是基于正向六角变换 F = TJiT的快速处理方法;将正向六角变换后的数据进行逆向变换处理的方法是基于逆向六角变换I = TiT的快速处理方法。实施例二
参见图1和图2,本实施例与实施例一基本相同,特别之处如下 在六角变换中的变换矩阵
权利要求
1.一种图像或视频编码的六角变换快速处理方法,包括在图像或视频编码端,将图像或视频数据进行正向六角变换处理,变换到以正向六角变换矩阵表达的向量空间中;在图像或视频解码端,将正向六角变换后的数据进行逆向六角变换处理,恢复得到原始的图像或视频数据;其特征在于所述将图像或视频数据进行正向变换处理的方法是基于正向六角变换Y = TXT的快速处理方法,其中,X表示输入的8 X 8数据块矩阵,Y表示8 X 8输出数据块矩阵,T表示变换矩阵,T'表示矩阵T的转置;所述将正向六角变换后的数据进行逆向变换处理的方法是基于逆向六角变换 X = TfT'的快速处理方法,其中,Y表示输入的8X8数据块矩阵,X表示8X8输出数据块矩阵,T表示变换矩阵,T'表示矩阵T的转置。
2.如权利要求1所述的图像或视频编码的六角变换快速处理方法,其特征在于所述的变换矩阵T按如下方法得到设α ρ α 2、α 3、α 4、α 5、“ 6是所选取的六个角度,令
3.如权利要求1所述的图像或视频编码的六角变换快速处理方法,其特征在于 (1)所述正向变换;T = T JT处理过程中,采用S =T以方便计算;则正向变换可用Γ = f忍/2来代替,其中,Z = XS的快速处理方法可用如下方法实现设 Xi=(xO, xl, x2, x3, x4, x5, x6, x7)是 X 的第 i 行,Zi=(Zi), zl, z2, z3, z4, z5, z6, z7)是Z的第i行;用a[*]表示计算的中间结果 a
= xO + x7 a[7] = xO - x7 a[l] = xl + x6 a[6] = xl - x6 a[2] = x2 + x5 a[5] = x2 - x5 a[3] = x3 + x4a[13]=D氺a
-C氺a[3]a[ll]=E氺a[l]+ F氺a[2]a[12]=F氺a[l]-E氺a[2]a[ 8]=H氺a [6]-G氺a[5]a[ 9]=G氺a [6]+ H氺a[5]a[14]=H氺a [4]+ G氺a [8]a[15]=G氺a [4]-H氺a [8]a[16]=D氺a[7]-C氺a [9]a[17]=C氺a[7]+ D氺a [9]则rLi用如下处理方法得到zO=G氺a[10]+ H氺a[ll]z4=H氺a[10]-G氺a[ll]z2=J氺a[13]+ I氺a[12]z6=I氺a[13]-J氺a[12]zl=L氺a[17]+ K氺a[14]z7=K氺a[17]-L氺a[14]z5=N氺a[16]+ M氺a[15]z3=M氺a[16]-N氺a[15](2)正向六角变换需要进行两次矩阵相乘运算,而且矩阵中的元素都是浮点数,计算量较大,每次矩阵相乘,需要进行8X8X8=512次浮点数相乘和8X8X7=448次浮点数相加;正向六角变换快速处理方法,需要的运算次数为36X8=288次浮点数乘法,18X8=144 次浮点数加减法,8X8=64次整数加减法,明显降低了六角变换的运算量。
4.如权利要求1所述的图像或视频编码的六角变换快速处理方法,其特征在于(1)所述逆向变换Z = ITr1处理过程中,采用S=√2T以方便计算;则逆向变换可用 X = SYS '/2来代替,其中,V = YS'的快速处理方法可用如下方法实现i殳 Yi= (y0, y 1, y2, y3, y4, y5, y6, y7) ^ Y 白勺第 i ^f vi=(v0,vl,v2,v3,v4, v5, v6, v7)是V的第i行;用a[*]表示计算的中间结果 a[14] = K * yl - L * y7; a[17] = L * yl + K * y7; a[15] = M * y5 - N * y3; a[16] = N * y5 + M * y3; a[10] = G * yO + H * y4; a[ll] = H * yO - G * y4; a[12] = I * y2 - J * y6; a[13] = J * y2 + I * y6; a
= C * a[10] + D * a[13]; a[3] = D * a[10] - C * a[13]; a[l] =E* a[ll] + F * a[12]; a[2] =F* a[ll] - E * a[12];a[4] =H* a[14] + G * a[15];a[8] =G* a[14] - H * a[15];a[9] =D* a[17] - C * a[16];a[7] =C* a[17] + D * a[16];a[5] = H * a[ 9] - G * a[ 8];a[6] = G * a[ 9] + H * a[ 8];则vi用如下方法计算v0 = a
+ a[7];v7 = a
- a[7];vl = a[l] + a[6];v6 = a[l] - a[6];v2 = a[2] + a[5];v5 = a[2] - a[5];v3 = a[3] + a[4];v4 = a[3] - a[4];(2)逆向六角变换需要进行两次矩阵相乘运算,而且矩阵中的元素都是浮点数,计算量较大,每次矩阵相乘,需要进行8 X 8 X 8=512次浮点数相乘和8 X 8 X 7=448次浮点数相加; 逆向六角变换快速处理方法,需要的运算次数为36X8=288次浮点数乘法,18X8=144次浮点数加减法,8X8=64次整数加减法,明显降低了六角变换的运算量。
全文摘要
本发明涉及一种图像或视频编码的六角变换快速处理方法。包括在图像或视频编码端,将图像或视频数据进行正向六角变换处理,变换到以正向六角变换矩阵表达的向量空间中;在图像或视频解码端,将正向六角变换后的数据进行逆向六角变换处理,恢复得到原始的图像或视频数据,其中将图像或视频数据进行正向变换处理的方法是基于正向六角变换的快速处理方法;将正向六角变换后的数据进行逆向变换处理的方法是基于逆向六角变换的快速处理方法。本发明降低了六角变换的运算复杂度,减少处理时间,有利于加快图像或视频数据的压缩或分析。
文档编号H04N7/30GK102547285SQ201210004028
公开日2012年7月4日 申请日期2012年1月9日 优先权日2012年1月9日
发明者朱洪波, 李国平, 滕国伟, 王国中, 程武, 赵海武 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1