CN102413331A - 图像或视频的编码方法 - Google Patents

图像或视频的编码方法 Download PDF

Info

Publication number
CN102413331A
CN102413331A CN2011103916143A CN201110391614A CN102413331A CN 102413331 A CN102413331 A CN 102413331A CN 2011103916143 A CN2011103916143 A CN 2011103916143A CN 201110391614 A CN201110391614 A CN 201110391614A CN 102413331 A CN102413331 A CN 102413331A
Authority
CN
China
Prior art keywords
transformation
image
carried out
video
positive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103916143A
Other languages
English (en)
Inventor
王国中
赵海武
程武
李国平
滕国伟
王小根
殷汶杰
范涛
朱洪波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN2011103916143A priority Critical patent/CN102413331A/zh
Publication of CN102413331A publication Critical patent/CN102413331A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种运用于图像或视频的编码方法,本方法的操作步骤如下:图像分块与预测补偿处理、正向变换处理、量化与熵编码处理、熵解码与逆量化处理、反向变换处理以及帧内帧间补偿与解码输出处理,其中正向变换处理的方法是基于正向六角变换Y=T′XT的类整系数处理方法,反向变换处理方法是基于逆向六角变换X=TYT′的类整系数处理的方法。本发明的方法,使得六角变换可以完全用整数运算来实现,实现用整数运算代替浮点数运算。

Description

图像或视频的编码方法
技术领域
本发明涉及一种图像或视频的编码方法,具体是一种采用类整系数六角变换方法的图像或视频的编码方法。本发明主要是在图像编码或者视频编码端,将图像数据或者视频数据进行快速正向六角变换处理,变换到以正向六角变换矩阵表达的向量空间中;在图像解码端或者视频解码端,将正向六角变换后的数据进行快速逆向六角变换处理,恢复得到原始的图像数据或者视频数据。有利于加快对图像数据或者视频数据的压缩和分析。
背景技术
传统的视频编码标准如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的不足之处。所谓六角变换,即根据六个角度导出的变换矩阵进行的变换。设a 1 a 2 a 3 a 4 a 5 a 6 是六个角度,令
C=cosa 1 D=sina 1
E=cosa 2 F=sina 2
G=cosa 3 H=sina 3
I=cosa 4 J=sina 4
K=cosa 5 L=sina 5
M=cosa 6 N=sina 6
则变换矩阵如下:
Figure 2011103916143100002DEST_PATH_IMAGE001
设X是空间域的8x8数据块,Y是X经过正向六角变换得到的变换域的8x8数据块,则正向六角变换可以描述为
Y = T′XT
逆向六角变换可以描述为
X = TYT′
在上述的快速算法中,C、D、E、F、G、H、I、J、K、L、M、N都是浮点数,而且不同的浮点运算装置会存在不同的精度,例如有些浮点运算装置用32位表示一个浮点数,有些浮点运算装置用64位表示一个浮点数。精度的不同会造成运算结果不同。在数字图像和视频的编码解码过程中,如果编码器和解码器中的浮点运算装置的精度不同,就会造成编码器和解码器所得到的重建图像不同。这种现象被称为编解码失配。
为了避免编解码失配,人们发明了整系数变换,例如H.264和AVS标准中使用的整系数DCT。其方法是将变换矩阵的每个元素同时放大若干倍,用近似的整数代替放大之后的矩阵元素,得到一个整数的变换矩阵。用整数变换矩阵代替原来的浮点数变换矩阵,进行变换运算。变换之后再把变换系数缩小相应的倍数。通过强制编码器和解码器采用同样的整数变换矩阵,达到编解码器的运算结果完全一致。
上述的把浮点数变换矩阵变成整数变换矩阵的方法,其效果决定于整数变换矩阵和浮点数变换矩阵的近似程度,即将浮点数变换矩阵放大的倍数。放大的倍数越大,近似的程度越高,但是会使整数变换矩阵的元素的值比较大,在实现时需要用更多的位来表示运算结果。本领域的技术人员应当了解,表示数据所需要的位数是衡量运算复杂程度的重要因素。位数越多,实现的复杂度越高。
发明内容
本发明的目的在于针对已有技术存在的缺陷,提供一种改进的图像或视频的编码方法,利用六角变换及其快速处理方法的特点,设计一种不存在编解码失配的六角变换处理方法,该处理方法不需要将浮点数变换矩阵放大若干倍,而是通过选取近似的角度来实现,同时不需要用很多的位来表示运算结果。
本发明采用如下的技术方案:
一种图像或视频的编码方法,包括如下操作步骤:
(1)图像分块与预测补偿处理:将输入图像分割成16×16的宏块,并对I帧图像进行帧内像素预测和补偿处理,对P帧图像进行帧间运动估计及运动补偿处理;
(2)正向变换处理:对输入预测残差数据进行正向变换处理;
(3)量化与熵编码处理:对变换系数进行量化及熵编码处理,并将熵编码输出;
(4)熵解码与逆量化处理:对所述编码码流进行熵解码,并对所述变换系数进行逆量化处理;
(5)反向变换处理:对经逆量化的变换系数进行反向变换处理;
(6)帧内帧间补偿与输出处理:对经逆变换处理后的图像数据进行帧内像素补偿或帧间运动补偿,并将解码后的图像输出;
上述步骤(1) 、(3) 、(4) 、(6)均属已有技术,本发明的改进之处在于步骤(2)和步骤(5):
上述步骤(2)对输入预测差值数据进行正向变换处理的方法是基于正向六角变换的类整系数处理方法,其中,X表示输入的8×8数据块矩阵,Y表示8×8输出数据块矩阵,T表示变换矩阵,T′表示矩阵T的转置。
上述类整系数六角变换中的变换矩阵T按如下方法得到:
设α1、α2、α3、α4、α5、α6是所选取的六个角度,令
C=cosa 1 D=sina 1
E=cosa 2 F=sina 2
G=cosa 3 H=sina 3
I=cosa 4 J=sina 4
K=cosa 5 L=sina 5
M=cosa 6 N=sina 6
Figure 2011103916143100002DEST_PATH_IMAGE003
在类整系数六角变换处理方法中,选择的六个角度,它们的正弦值和余弦值都是有理数,即D、E、F、G、H、I、J、K、L、M、N都是有理数,其中:
C=c/r0,D=d/r0,r0=
Figure 52223DEST_PATH_IMAGE004
E=e/r1,F=f/r1, r1=
Figure 2011103916143100002DEST_PATH_IMAGE005
G=g/r2,H=h/r2, r2=
I=i/r3,J=j/ r3,r3=
Figure 2011103916143100002DEST_PATH_IMAGE007
K=k/r4,L=l/r4, r4=
Figure 455840DEST_PATH_IMAGE008
M=m/r5,N=n/r5, r5=
Figure 2011103916143100002DEST_PATH_IMAGE009
其中,c、d、e、f、g、h、i、j、k、l、m、n、r0、r1、r2、r3、r4、r5都是整数。
上述步骤(2)对输入预测差值数据进行正向变换处理的方法是基于正向六角变换
Figure 944459DEST_PATH_IMAGE002
的类整系数处理方法;在实施过程中,采用
Figure 305033DEST_PATH_IMAGE010
以方便计算;则正向变换可用
Figure 2011103916143100002DEST_PATH_IMAGE011
来代替,其中,
Figure 629835DEST_PATH_IMAGE012
整系数处理方法可用如下方法实现:
设Xi=(x0,x1,x2,x3,x4,x5,x6,x7)是X的第i行,Zi=(z0,z1,z2,z3,z4,z5,z6,z7)是Z的第i行;用a[*]表示计算的中间结果: 
a[0] = x0 + x7;
a[7] = x0 - x7;
a[1] = x1 + x6;
a[6] = x1 - x6;
a[2] = x2 + x5;
a[5] = x2 - x5;
a[3] = x3 + x4;
a[4] = x3 - x4;
a[10] = (c * a[0] + d * a[3] + r0/2)/ r0;
a[13] = (d * a[0] - c * a[3] + r0/2)/ r0;
a[11] = (e * a[1] + f * a[2] + r1/2)/ r1;
a[12] = (f * a[1] - e * a[2] + r1/2)/ r1;
a[8] = (h * a[6] - g * a[5] + r2/2)/ r2;
a[9] = (g * a[6] + h * a[5] + r2/2)/ r2;
a[14] = (h * a[4] + g * a[8] + r2/2)/ r2;
a[15] = (g * a[4] - h * a[8] + r2/2)/ r2;
a[16] = (d * a[7] - c * a[9] + r0/2)/ r0;
a[17] = (c * a[7] + d * a[9] + r0/2)/ r0;
则Zi用如下处理方法得到:
z0 = (g * a[10] + h * a[11] + r2/2)/ r2;
z4 = (h * a[10] - g * a[11] + r2/2)/ r2;
z2 = (j * a[13] + i * a[12] + r3/2)/ r3;
z6 = (i * a[13] - j * a[12] + r3/2)/ r3;
z1 = (l * a[17] + k * a[14] + r4/2)/ r4;
z7 = (k * a[17] - l * a[14] + r4/2)/ r4;
z5 = (n * a[16] + m * a[15] + r5/2)/ r5;
z3 = (m * a[16] - n * a[15] + r5/2)/ r5;
此外,根据矩阵运算的性质,可得
    (2Y)′=(S′Z)′=Z′S
因此,可以用上述方法计算得到(2Y)′,再进行一次矩阵转置就可以得到2Y,同样不需要浮点运算。
结合上述方案,就可以完成2Y=S′XS,且不需要浮点数运算;将2Y的每一个系数除以2,就得到Y;这个除法是不需要单独计算的,可以在量化时,事先将量化系数扩大2倍,从而达到缩放的目的,而且不增加计算量。
上述步骤(5)对经逆量化的变换系数进行反向变换处理的方法是基于逆向六角变换
Figure 2011103916143100002DEST_PATH_IMAGE013
的类整系数处理方法;其中,Y表示输入的8×8数据块矩阵,X表示8×8输出数据块矩阵,T表示变换矩阵,T′表示矩阵T的转置;在实施过程中,采用
Figure 999636DEST_PATH_IMAGE014
以方便计算;则逆向变换可用来代替,其中,
Figure 578648DEST_PATH_IMAGE016
整系数处理方法可用如下方法实现:
设Yi=(x0,x1,x2,x3,x4,x5,x6,x7)是Y的第i行,Vi=(v0,v1,v2,v3,v4,v5,v6,v7)是V的第i行;用a[*]表示计算的中间结果: 
a[14] = (k * y1 - l * y7 + r4/2)/ r4;
a[17] = (l * y1 + k * y7 + r4/2)/ r4;
a[15] = (m * y5 - n * y3 + r5/2)/ r5;
a[16] = (n * y5 + m * y3 + r5/2)/ r5;
a[10] = (g * y0 + h * y4 + r2/2)/ r2;
a[11] = (h * y0 - g * y4 + r2/2)/ r2;
a[12] = (i * y2 - j * y6 + r3/2)/ r3;
a[13] = (j * y2 + i * y6 + r3/2)/ r3;
a[0] = (c * a[10] + d * a[13] + r0/2)/ r0;
a[3] = (d * a[10] - c * a[13] + r0/2)/ r0;
a[1] = (e * a[11] + f * a[12] + r1/2)/ r1;
a[2] = (f * a[11] - e * a[12] + r1/2)/ r1;
a[4] = (h * a[14] + g * a[15] + r2/2)/ r2;
a[8] = (g * a[14] - h * a[15] + r2/2)/ r2;
a[9] = (d * a[17] - c * a[16] + r0/2)/ r0;
a[7] = (c * a[17] + d * a[16] + r0/2)/ r0;
a[5] = (h * a[ 9] - g * a[ 8] + r2/2)/ r2;
a[6] = (g * a[ 9] + h * a[ 8] + r2/2)/ r2;
则Vi用如下处理方法得到:
v0 = a[0] + a[7];
v7 = a[0] - a[7];
v1 = a[1] + a[6];
v6 = a[1] - a[6];
v2 = a[2] + a[5];
v5 = a[2] - a[5];
v3 = a[3] + a[4];
v4 = a[3] - a[4];
此外,根据矩阵运算的性质,可得
    (2X)′=(SV)′=V′S′
因此,可以用上述方法计算得到(2X)′,再进行一次矩阵转置就可以得到2X,所需的计算量和计算YS′的计算量基本是一样的。
结合上述方案,就可以完成2X=SYS′,且全部都是整数运算;将2X的每一个系数除以2,就得到X;这个除法是不需要单独计算的,可以在量化时,事先将量化系数扩大2倍,从而达到将每一个变换系数除以2的目的,而且不增加计算量。
下面给出几种采用上述方法运用于图像或视频的编码装置:
一种运用于图像或视频的编码装置,包括:
输入模块,其将输入图像分割成16×16的宏块,并对I帧图像进行帧内像素预测和补偿处理,对P帧图像进行帧间运动估计及运动补偿处理;
正向变换模块,其对输入预测差值数据进行正向变换处理;
量化模块,其对变换系数进行量化;
反量化模块,其对所述变换系数进行反量化;
反向变换模块,其对经逆量化的变换系数进行反向变换处理;
控制模块,其编码码流进行熵编码以及熵解码,并对经逆变换处理后的图像数据进行帧内像素补偿或帧间运动补偿;
输出模块,其将经补偿和解码后的图像输出。
一种运用于图像或视频的正向变换模块装置,包括:
输入装置,配置为接收存储正向变换的输入数据;
正向六角变换系数获取装置,配置为获取正向六角变换矩阵的系数;
正向六角变换装置,配置为根据所述获取装置所得到的变换矩阵系数对所述输入数据块进行正向变换处理;
输出装置,配置为输出经正向六角变换后的数据;
其中,所述输入装置与所述正向变换装置之间通过数据总线连接,以传输所述输入数据;所述正向变换系数获取装置与所述正向变换装置之间通过数据总线连接,以传输所述正向变换矩阵系数;所述正向变换装置与所述输出装置之间通过总线连接,以传输所述经正向变换后的数据。
一种运用于图像或视频的正向变换模块装置,包括:
输入装置,配置为接收存储逆向变换的输入数据;
逆向六角变换系数获取装置,配置为存储逆向六角变换矩阵的系数;
逆向六角变换装置,配置为根据所述获取装置所获取的变换矩阵系数对所述输入数据块进行逆向变换处理;
输出装置,配置为输出经逆向六角变换后的数据;
其中,所述输入装置与所述逆向变换装置之间通过数据总线连接,以传输所述输入数据;所述逆向变换系数获取装置与所述逆向变换装置之间通过数据总线连接,以传输所述逆向变换矩阵系数;所述逆向变换装置与所述输出装置之间通过总线连接,以传输所述经逆向变换后的数据。 
本发明与现有技术相比,具有如下显而易见的突出实质性特点和显著优点:
本发明的处理方法通过选取一类特殊的角度,使得六角变换可以完全用整数运算来实现,避免了浮点运算带来的编解码失配的问题。
本发明的处理方法另辟蹊径,采用了和传统的整数变换矩阵不同的方案,在变换矩阵的元素仍为浮点数的情况下,实现了用整数运算代替浮点数运算。 
附图说明
图1是图像和视频编码方法的程序框图。
图2是运用于图像或视频的编码装置图。
图3是正向变换处理装置的示意图。
图4是逆向变换处理装置的示意图。
具体实施方式
本发明的优选实施例结合附图说明如下:
实施例一:
参见图1,本图像或视频的编码方法,具体操作步骤如下:
(1)图像分块与预测补偿处理:将输入图像分割成16×16的宏块,并对I帧图像进行帧内像素预测和补偿处理,对P帧图像进行帧间运动估计及运动补偿处理;
(2) 正向变换处理:对输入预测残差数据进行正向变换处理;
(3) 量化与熵编码处理:对变换系数进行量化及熵编码处理,并将熵编码输出;
(4) 熵解码与逆量化处理:对所述编码码流进行熵解码,并对所述变换系数进行逆量化处理;
(5) 反向变换处理:对经逆量化的变换系数进行反向变换处理;
(6) 帧内帧间补偿与输出处理:对经逆变换处理后的图像数据进行帧内像素补偿或帧间运动补偿,并将解码后的图像输出。
实施例二:
本实施例与实施例一基本相同,特别之处如下:
上述步骤(2)对输入预测差值数据进行正向变换处理的方法是基于正向六角变换
Figure 375702DEST_PATH_IMAGE002
的类整系数处理方法,其中,X表示输入的8×8数据块矩阵,Y表示8×8输出数据块矩阵,T表示变换矩阵,T′表示矩阵T的转置。
在类整系数六角变换中的变换矩阵T中,
Figure 2011103916143100002DEST_PATH_IMAGE017
选择角度a 1 、a 2 、a 3 、a 4 、a 5 、a 6 ,使:
C = cosa 1  = 140/221;D = sina 1  = 171/221;
E = cosa 2  =  20/29;F = sina 2  = 21/29;
G = cosa 3  =  20/29;H = sina 3  = 21/29;
I = cosa 4  =  84/205;J = sina 4  = 187/205;
K = cosa 5  =   9/41;L = sina 5  = 40/41;
M = cosa 6  =   4/5; N = sina 6 = 3/5;
于是
c=140;d=171;r0=221;r0/2=110;
e=20;f=21;r1=29;r1/2=14;
g=20;h=21;r2=29;r2/2=14;
i=84;j=187;r3=205;r3/2=102;
k=9;l=40;r4=41;r4/2=20;
m=4;n=3;r5=5;r5/2=2。
在实施过程中,采用
Figure 984538DEST_PATH_IMAGE010
以方便计算;则正向变换可用
Figure 95714DEST_PATH_IMAGE011
来代替,其中,整系数处理方法可用如下方法实现:
设Xi=(x0,x1,x2,x3,x4,x5,x6,x7)是X的第i行,Zi=(z0,z1,z2,z3,z4,z5,z6,z7)是Z的第i行;用a[*]表示计算的中间结果: 
a[0] = x0 + x7;
a[7] = x0 - x7;
a[1] = x1 + x6;
a[6] = x1 - x6;
a[2] = x2 + x5;
a[5] = x2 - x5;
a[3] = x3 + x4;
a[4] = x3 - x4;
a[10] = (140 * a[0] + 171 * a[3] + 110)/ 221;
a[13] = (171 * a[0] - 140 * a[3] + 110)/ 221;
a[11] = (20 * a[1] + 21 * a[2] + 14)/ 29;
a[12] = (21 * a[1] - 20 * a[2] + 14)/ 29;
a[ 8] = (21 * a[6] - 20 * a[5] + 14)/ 29;
a[ 9] = (20 * a[6] + 21 * a[5] + 14)/ 29;
a[14] = (21 * a[4] + 20 * a[8] + 14)/ 29;
a[15] = (20 * a[4] - 21 * a[8] + 14)/ 29;
a[16] = (171 * a[7] - 140 * a[9] + 110)/ 221;
a[17] = (140 * a[7] + 171 * a[9] + 110)/ 221;
则Zi可以用如下处理方法得到:
z0 = (20 * a[10] + 21 * a[11] + 14)/ 29;
z4 = (21 * a[10] - 20 * a[11] + 14)/ 29;
z2 = (187 * a[13] + 84 * a[12] + 102)/ 205;
z6 = (84 * a[13] - 187 * a[12] + 102)/ 205;
z1 = (40 * a[17] + 9 * a[14] + 20)/ 41;
z7 = (9 * a[17] - 40 * a[14] + 20)/ 41;
z5 = (3 * a[16] + 4 * a[15] + 2)/ 5;
z3 = (4 * a[16] - 3 * a[15] + 2)/ 5;
此外,根据矩阵运算的性质,可得
    (2Y)′=(S′Z)′=Z′S
因此,可以用方案1的方法计算得到(2Y)′,再进行一次矩阵转置就可以得到2Y。同样不需要浮点运算。
结合上述方案,就可以完成2Y=S′XS,且不需要浮点数运算。
将2Y的每一个系数除以2,就得到Y。这个除法是不需要单独计算的,可以在量化时,事先将量化系数扩大2倍,从而达到缩放的目的,而且不增加计算量。
上述步骤(5)对经逆量化的变换系数进行反向变换处理的方法是基于逆向六角变换
Figure 74351DEST_PATH_IMAGE013
的类整系数处理方法;其中,Y表示输入的8×8数据块矩阵,X表示8×8输出数据块矩阵,T表示变换矩阵,T′表示矩阵T的转置;在实施过程中,采用
Figure 170483DEST_PATH_IMAGE014
以方便计算;则逆向变换可用来代替,其中,
Figure 934225DEST_PATH_IMAGE016
整系数处理方法可用如下方法实现:
设Yi=(x0,x1,x2,x3,x4,x5,x6,x7)是Y的第i行,Vi=(v0,v1,v2,v3,v4,v5,v6,v7)是V的第i行;用a[*]表示计算的中间结果: 
a[14] = (9 * y1 - 40 * y7 + 20)/ 41;
   a[17] = (40 * y1 + 9 * y7 + 20)/ 41;
   a[15] = (4 * y5 - 3 * y3 + 2)/ 5;
   a[16] = (3 * y5 + 4 * y3 + 2)/ 5;
   a[10] = (20 * y0 + 21 * y4 + 14)/ 29;
   a[11] = (21 * y0 - 20 * y4 + 14)/ 29;
   a[12] = (84 * y2 - 187 * y6 + 102)/ 205;
   a[13] = (187 * y2 + 84 * y6 + 102)/ 205;
   a[0] = (140 * a[10] + 171 * a[13] + 110)/ 221;
   a[3] = (171 * a[10] - 140 * a[13] + 110)/ 221;
   a[1] = (20 * a[11] + 21 * a[12] + 14)/ 29;
   a[2] = (21 * a[11] - 20 * a[12] + 14)/ 29;
   a[4] = (21 * a[14] + 20 * a[15] + 14)/ 29;
   a[8] = (20 * a[14] - 21 * a[15] + 14)/ 29;
   a[9] = (171 * a[17] - 140 * a[16] + 110)/ 221;
   a[7] = (140 * a[17] + 171 * a[16] + 110)/ 221;
   a[5] = (21 * a[ 9] - 20 * a[ 8] + 14)/ 29;
   a[6] = (20 * a[ 9] + 21 * a[ 8] + 14)/ 29;
则Vi用如下处理方法得到:
   v0 = a[0] + a[7];
   v7 = a[0] - a[7];
   v1 = a[1] + a[6];
   v6 = a[1] - a[6];
   v2 = a[2] + a[5];
   v5 = a[2] - a[5];
   v3 = a[3] + a[4];
   v4 = a[3] - a[4];
此外,根据矩阵运算的性质,可得
    (2X)′=(SV)′=V′S′
因此,可以用上述方法计算得到(2X)′,再进行一次矩阵转置就可以得到2X。所需的计算量和计算YS′的计算量基本是一样的。
结合上述方案,就可以完成2X=SYS′,且全部都是整数运算;将2X的每一个系数除以2,就得到X;这个除法是不需要单独计算的,可以在量化时,事先将量化系数扩大2倍,从而达到将每一个变换系数除以2的目的,而且不增加计算量。
实施例三:
参见图2描述本运用于图像或视频的编码装置,包括:
输入模块,其将输入图像分割成16×16的宏块,并对I帧图像进行帧内像素预测和补偿处理,对P帧图像进行帧间运动估计及运动补偿处理;
正向变换模块,其对输入预测差值数据进行正向变换处理;
量化模块,其对变换系数进行量化;
反量化模块,其对所述变换系数进行反量化;
反向变换模块,其对经逆量化的变换系数进行反向变换处理;
控制模块,其编码码流进行熵编码以及熵解码,并对经逆变换处理后的图像数据进行帧内像素补偿或帧间运动补偿;
输出模块,其将经补偿和解码后的图像输出。
参见图3,本实施例的正向类整系数六角变换装置,包括:
输入装置710。输入装置710用于接收存储正向变换的输入数据。
所述正向装置还包括正向变换系数获取装置750。获取装置750用于获取正向变换矩阵的系数。获取装置750可以通过上述计算得到变换矩阵的系数,或者从外部单元获取并存储于其中。
所述正向变换装置还包括述正向类整系数六角变换装置720。正向变换装置720根据所获取装置的变换矩阵系数对所述输入数据块进行正向变换处理。本实施例中,正向变换装置720包括算术逻辑单元,从而可以用乘法、加法和移位运算实现正向变换处理。
所述正向变换装置还包括输出装置740。输出装置740输出正向类整系数六角变换后的数据。优选实施例中,输出装置740可首先存储变换后的数据,再进行输出。
输入装置710与正向变换装置720之间通过数据总线连接,以传输所述输入数据。正向变换系数获取装置750与正向变换装置720之间通过数据总线连接,以传输所述正向变换矩阵系数。正向变换装置720与输出装置740之间通过总线连接,以传输所述经正向变换后的数据。
参见图4,本实施例的逆向变换装置,包括:
输入装置810。输入装置810配置为接收存储逆向变换的输入数据。
所述逆向变换装置还包括逆向变换系数获取装置860,获取装置860配置为获取逆向变换矩阵的系数。获取装置860可以通过上述计算得到变换矩阵的系数,或者从外部单元获取并存储于其中。
所述逆向变换装置还包括类整系数六角变换装置830,其配置为根据所述获取装置所获取的变换矩阵系数对所述输入数据块进行逆向变换处理。本实施例中,逆向变换装置830算术逻辑单元,从而可以用乘法、加法和移位运算实现正向变换处理。
所述逆向变换装置还包括输出装置840。输出装置840输出逆向变换后的数据。优选实施例中,输出装置840可首先存储变换后的数据,再进行输出。
输入装置810与逆向变换装置830之间通过数据总线连接,以传输所述输入数据。逆向变换系数获取装置860与逆向变换装置830之间通过数据总线连接,以传输所述逆向变换矩阵系数。逆向变换装置830与输出装置840之间通过总线连接,以传输所述经逆向变换后的数据。

Claims (7)

1.一种图像或视频的编码方法,其特征在于:包括如下操作步骤:
图像分块与预测补偿处理:将输入图像分割成16×16的宏块,并对I帧图像进行帧内像素预测和补偿处理,对P帧图像进行帧间运动估计及运动补偿处理;
正向变换处理:对输入预测残差数据进行正向变换处理;
量化与熵编码处理:对变换系数进行量化及熵编码处理,并将熵编码输出;
熵解码与逆量化处理:对所述编码码流进行熵解码,并对所述变换系数进行逆量化处理;
反向变换处理:对经逆量化的变换系数进行反向变换处理;
帧内帧间补偿与解码输出处理:对经逆变换处理后的图像数据进行帧内像素补偿或帧间运动补偿,并将解码后的图像输出。
2.如权利要求1所述的图像或视频的编码方法,其特征在于:所述步骤(2)对输入预测差值数据进行正向变换处理的方法是基于正向六角变换                                                
Figure 558048DEST_PATH_IMAGE001
的类整系数处理方法,其中,X表示输入的8×8数据块矩阵,Y表示8×8输出数据块矩阵,T表示变换矩阵,T′表示矩阵T的转置。
3.如权利要求2所述的图像或视频的编码方法,其特征在于:所述的变换矩阵T按如下方法得到:设a 1 a 2 a 3 a 4 a 5 a 6 是所选取的六个角度,令
C=cosα 1 D=sinα 1
E=cosα 2 F=sinα 2
G=cosα 3 H=sinα 3
I=cosα 4 J=sinα 4
K=cosα 5 L=sinα 5
M=cosα 6 N=sinα 6
Figure 295060DEST_PATH_IMAGE002
4.如权利要求3所述的图像或视频的编码方法,其特征在于:所选择的六个角度,它们的正弦值和余弦值都是有理数,即D、E、F、G、H、I、J、K、L、M、N都是有理数,其中:
C=c/r0,D=d/r0,r0=
E=e/r1,F=f/r1, r1=
Figure 310606DEST_PATH_IMAGE004
G=g/r2,H=h/r2, r2=
Figure 552232DEST_PATH_IMAGE005
I=i/r3,J=j/ r3,r3=
Figure 827355DEST_PATH_IMAGE006
K=k/r4,L=l/r4, r4=
M=m/r5,N=n/r5, r5=
Figure 868310DEST_PATH_IMAGE008
其中,c、d、e、f、g、h、i、j、k、l、m、n、r0、r1、r2、r3、r4、r5都是整数。
5.如权利要求2所述的图像或视频的编码方法,其特征在于:所述正向变换
Figure 597231DEST_PATH_IMAGE009
处理过程中,采用
Figure 676046DEST_PATH_IMAGE010
以方便计算;则正向变换可用
Figure 174023DEST_PATH_IMAGE011
来代替,其中,
Figure 7987DEST_PATH_IMAGE012
的整系数处理方法可用如下方法实现:
设Xi=(x0,x1,x2,x3,x4,x5,x6,x7)是X的第i行,Zi=(z0,z1,z2,z3,z4,z5,z6,z7)是Z的第i行;用a[*]表示计算的中间结果: 
a[0] = x0 + x7;
a[7] = x0 - x7;
a[1] = x1 + x6;
a[6] = x1 - x6;
a[2] = x2 + x5;
a[5] = x2 - x5;
a[3] = x3 + x4;
a[4] = x3 - x4;
a[10] = (c * a[0] + d * a[3] + r0/2)/ r0;
a[13] = (d * a[0] - c * a[3] + r0/2)/ r0;
a[11] = (e * a[1] + f * a[2] + r1/2)/ r1;
a[12] = (f * a[1] - e * a[2] + r1/2)/ r1;
a[8] = (h * a[6] - g * a[5] + r2/2)/ r2;
a[9] = (g * a[6] + h * a[5] + r2/2)/ r2;
a[14] = (h * a[4] + g * a[8] + r2/2)/ r2;
a[15] = (g * a[4] - h * a[8] + r2/2)/ r2;
a[16] = (d * a[7] - c * a[9] + r0/2)/ r0;
a[17] = (c * a[7] + d * a[9] + r0/2)/ r0;
则Zi用如下处理方法得到:
z0 = (g * a[10] + h * a[11] + r2/2)/ r2;
z4 = (h * a[10] - g * a[11] + r2/2)/ r2;
z2 = (j * a[13] + i * a[12] + r3/2)/ r3;
z6 = (i * a[13] - j * a[12] + r3/2)/ r3;
z1 = (l * a[17] + k * a[14] + r4/2)/ r4;
z7 = (k * a[17] - l * a[14] + r4/2)/ r4;
z5 = (n * a[16] + m * a[15] + r5/2)/ r5;
z3 = (m * a[16] - n * a[15] + r5/2)/ r5。
6.如权利要求1所述的图像或视频的编码方法,其特征在于所述步骤(5) 对经逆量化的变换系数进行反向变换处理的方法是基于逆向六角变换的类整系数处理方法,其中,Y表示输入的8×8数据块矩阵,X表示8×8输出数据块矩阵,T表示变换矩阵,T′表示矩阵T的转置。
7.如权利要求6所述的图像或视频的编码方法,其特征在于:所述逆向变换
Figure 841131DEST_PATH_IMAGE014
处理过程中,采用
Figure 193615DEST_PATH_IMAGE010
以方便计算;则逆向变换可用
Figure 717523DEST_PATH_IMAGE015
来代替,其中,
Figure 155457DEST_PATH_IMAGE016
的整系数处理方法可用如下方法实现:
设Yi=(x0,x1,x2,x3,x4,x5,x6,x7)是Y的第i行,Vi=(v0,v1,v2,v3,v4,v5,v6,v7)是V的第i行;用a[*]表示计算的中间结果: 
a[14] = (k * y1 - l * y7 + r4/2)/ r4;
a[17] = (l * y1 + k * y7 + r4/2)/ r4;
a[15] = (m * y5 - n * y3 + r5/2)/ r5;
a[16] = (n * y5 + m * y3 + r5/2)/ r5;
a[10] = (g * y0 + h * y4 + r2/2)/ r2;
a[11] = (h * y0 - g * y4 + r2/2)/ r2;
a[12] = (i * y2 - j * y6 + r3/2)/ r3;
a[13] = (j * y2 + i * y6 + r3/2)/ r3;
a[0] = (c * a[10] + d * a[13] + r0/2)/ r0;
a[3] = (d * a[10] - c * a[13] + r0/2)/ r0;
a[1] = (e * a[11] + f * a[12] + r1/2)/ r1;
a[2] = (f * a[11] - e * a[12] + r1/2)/ r1;
a[4] = (h * a[14] + g * a[15] + r2/2)/ r2;
a[8] = (g * a[14] - h * a[15] + r2/2)/ r2;
a[9] = (d * a[17] - c * a[16] + r0/2)/ r0;
a[7] = (c * a[17] + d * a[16] + r0/2)/ r0;
a[5] = (h * a[ 9] - g * a[ 8] + r2/2)/ r2;
a[6] = (g * a[ 9] + h * a[ 8] + r2/2)/ r2;
则Vi用如下处理方法得到:
v0 = a[0] + a[7];
v7 = a[0] - a[7];
v1 = a[1] + a[6];
v6 = a[1] - a[6];
v2 = a[2] + a[5];
v5 = a[2] - a[5];
v3 = a[3] + a[4];
v4 = a[3] - a[4]。
CN2011103916143A 2011-12-01 2011-12-01 图像或视频的编码方法 Pending CN102413331A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103916143A CN102413331A (zh) 2011-12-01 2011-12-01 图像或视频的编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103916143A CN102413331A (zh) 2011-12-01 2011-12-01 图像或视频的编码方法

Publications (1)

Publication Number Publication Date
CN102413331A true CN102413331A (zh) 2012-04-11

Family

ID=45915140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103916143A Pending CN102413331A (zh) 2011-12-01 2011-12-01 图像或视频的编码方法

Country Status (1)

Country Link
CN (1) CN102413331A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547285A (zh) * 2012-01-09 2012-07-04 上海大学 图像或视频编码的六角变换快速处理方法
CN110856000A (zh) * 2019-10-22 2020-02-28 深圳市华星光电技术有限公司 图像解压缩方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564602A (zh) * 2004-03-18 2005-01-12 华中科技大学 视频编码的整数变换矩阵选择方法及相关的整数变换方法
CN101977321A (zh) * 2010-11-04 2011-02-16 深圳市融创天下科技发展有限公司 一种视频编码的整数变换方法
US20110097003A1 (en) * 2009-10-28 2011-04-28 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using rotational transform
CN102355580A (zh) * 2011-08-19 2012-02-15 上海国茂数字技术有限公司 运用于图像编码和视频编码的六角变换方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564602A (zh) * 2004-03-18 2005-01-12 华中科技大学 视频编码的整数变换矩阵选择方法及相关的整数变换方法
US20110097003A1 (en) * 2009-10-28 2011-04-28 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using rotational transform
CN101977321A (zh) * 2010-11-04 2011-02-16 深圳市融创天下科技发展有限公司 一种视频编码的整数变换方法
CN102355580A (zh) * 2011-08-19 2012-02-15 上海国茂数字技术有限公司 运用于图像编码和视频编码的六角变换方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WU CHENG ET AL: "A NOVEL 8×8 TRANSFORM METHOD APPLIED IN VIDEO CODING", 《CCWMC2011》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547285A (zh) * 2012-01-09 2012-07-04 上海大学 图像或视频编码的六角变换快速处理方法
CN102547285B (zh) * 2012-01-09 2014-05-14 上海大学 图像或视频编码的六角变换快速处理方法
CN110856000A (zh) * 2019-10-22 2020-02-28 深圳市华星光电技术有限公司 图像解压缩方法及装置
CN110856000B (zh) * 2019-10-22 2020-10-27 深圳市华星光电技术有限公司 图像解压缩方法及装置
US11436759B2 (en) 2019-10-22 2022-09-06 Tcl China Star Optoelectronics Technology Co., Ltd. Image decompression method, device and display terminal

Similar Documents

Publication Publication Date Title
CN102713895B (zh) 用于媒体编码的4x4变换
JP4920034B2 (ja) マルチスレッドsimd処理を利用したメディア符号化の並列実行
CN102667757B (zh) 用于媒体编码的4x4变换
TWI471013B (zh) 轉換式數位媒體編解碼器之計算複雜度及精確性控制
CN102804171B (zh) 用于媒体数据译码的16点变换
TW201122846A (en) 8-point transform for media data coding
JP2008501250A (ja) 第1の変換カーネルに基づく入力ビデオを第2の変換カーネルに基づく出力ビデオにトランスコードする方法、及び入力形式を有する入力ビデオを出力形式を有する出力ビデオに変換するトランスコーダ
TW201301902A (zh) 類型六及七的離散餘弦及正弦轉換之快速計算
CN105474642A (zh) 使用频域差对图像集合进行重新编码
JP2013502624A (ja) メディアデータ符号化用8点変換
JP2013502625A (ja) メディアデータコーディングのための16点変換
TWI286031B (en) Image processing devices and methods
Bouguezel et al. A multiplication-free transform for image compression
CN105163130B (zh) 一种基于离散Tchebichef正交多项式的图像无损压缩方法
Yang et al. A low complexity block-based adaptive lossless image compression
CN102413331A (zh) 图像或视频的编码方法
CN100450184C (zh) 运用于图像编码和视频编码的离散余弦变换方法
CN100440978C (zh) 一种视频图像编码方法
CN102355580B (zh) 运用于图像编码和视频编码的六角变换方法和装置
CN101193285A (zh) 影像压缩编码及解码的方法和装置
JP2006191642A (ja) 非標準化ビデオ量子化コーダを使用するビデオ規格に準拠した残差コーディング
CN106954070A (zh) 一种滑动像素块整数dct核心矩阵变换运动补偿器及方法
CN102625109A (zh) 一种基于多核处理器实现的mpeg-2至h.264的转码方法
CN102547285B (zh) 图像或视频编码的六角变换快速处理方法
Al-Khafaji Hybrid image compression based on polynomial and block truncation coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120411