CN101106714A - 应用于视频和图像处理的变换方法 - Google Patents
应用于视频和图像处理的变换方法 Download PDFInfo
- Publication number
- CN101106714A CN101106714A CN 200710070256 CN200710070256A CN101106714A CN 101106714 A CN101106714 A CN 101106714A CN 200710070256 CN200710070256 CN 200710070256 CN 200710070256 A CN200710070256 A CN 200710070256A CN 101106714 A CN101106714 A CN 101106714A
- Authority
- CN
- China
- Prior art keywords
- transform
- inverse
- dimensional
- transformation
- discrete cosine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N19/45—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Abstract
本发明公开了一种应用于视频和图像处理的变换方法。它至少包括8×8反离散余弦变换方法和8×8离散余弦变换方法中的一种,所述8×8反离散余弦变换包括反变换预处理步骤、一维反变换步骤和反变换后处理步骤;所述8×8离散余弦变换包括正变换预处理步骤、一维正变换步骤和正变换后处理步骤。本发明公开的变换方法能很好地逼近理想的8×8反离散余弦变换及理想的8×8离散余弦变换,精度上远远超过ISO/IEC 23002-1-2006的要求,同时在硬件实现上复杂度大大降低,能应用在多种现有流行的国际视频编解码标准。
Description
技术领域:
本发明涉及电数字数据处理技术领域,特别是涉及一种应用于视频和图像处理的定点反离散余弦变换、定点离散余弦的变换方法。
背景技术:
在部分视频编码标准中,如ITU制定的H.261,H.263,以及ISO的MPEG组织制定的MPEG-1、MPEG-2、MPEG-4标准,都是采用离散余弦变换(DCT)去除空间域的信息冗余度来达到压缩的目的。理想的8×8离散余弦变换和反离散余弦变换分别如下:
由于在理想的8×8离散余弦变换中,变换矩阵乘法系数是无理数,而在实际的实现上这些乘法系数位宽不可能达到无限长,因此都是利用定点的实现方法拟合这些无理数来实现离散余弦变换变换。同样的,在解码部分,由于理想的8×8反离散余弦变换(IDCT)采用的是理想的8×8离散余弦变换矩阵的转置矩阵,所以其变换矩阵系数也是无理数,同样需要定点的实现来拟合这些无理数。
此外,在软件硬件的具体实现中,为了进一步降低资源的开销和提升处理速度,通常采用加法器和移位器来取代乘法器的功能;而对于不同的定点数,所需要的加法器和移位次数都是不一样的,这就要求如何用最优或者接近最优的方法来获得理想的8×8 DCT/IDCT中这些无理数的定点表示,使之既能达到足够高的精度,又能使得所需要的加法器和移位次数最少。
目前对于用定点反离散余弦变换的精度有一系列的要求,这些要求体现在标准ISO/IEC 23002-1-2006中。整个测试分为随机数生成、随机数输入测试、全零输入测试和临近DC倒置测试以及相应的指标。
以下是ISO/IEC 23002-1-2006标准定义的精度测试规范:
一、随机数生成
设变量i,j,k和s为采用二进制补码表示的32比特整数。采用下面指定的方法产生一维随机数组r[i],其中i=0..(64*Q-1),Q=10000或Q=1000000。
1、令s=1。
2、对于i=0到64*Q-1,进行以下操作
A、令s=(s*1103515245)+12345
B、令j=s&0x7ffffffe
C、令 floor(x)表示取不大于x的最大整数
D、令r[i]=k-L
二、随机数输入测试
1、对于下面的每一对L和H,
-L=2B和H=2B-1
-L=5*2B-8和H=5*2B-8
-L=300*2B-8和H=300*2B-8
进行以下步骤:
采用一中的方法生成64*Q个随机数,组成数组r[i],i=0..(64*Q-1).
2、对于z在0..(Q-1)中的每一个值,进行以下操作
对于x=0..7和y=0..7,置fz[y][x]=r[64*z+8*y+x].
对8×8矩阵fz进行一次式(1)定义的理想的DCT操作,然后四舍五入得到整数的8×8变换系数矩阵F′z必须采用至少64比特的浮点精度。
对于u=0..7和v=0..7,置F″z[v][u]=clip3(-2B+3,2B+3-1,F′z[v][u]),clip3(a,b,x)定义如下:
对8×8变换系数矩阵F″z进行一次式(2)定义的IDCT操作,然后四舍五入得到8×8矩阵g′z。必须采用至少64比特的浮点精度。
对于x=0..7和y=0..7,置g″z[y][x]=clip3(-2B,2B-1,g′z[y][x]).对8×8变换系数矩阵F″z进行一次被测的IDCT操作,然后四舍五入得到8×8矩阵h′z。
对于x=0..7和y=0..7,置h″z[y][x]=clip3(-2B,2B-1,h′z[y][x]).
4、对x=0..7和y=0..7,按下面式子计算8×8矩阵d和e
其中d[y][x]表示矩阵(x,y)位置上像素的平均误差(pme),e[y][x]表示矩阵(x,y)位置上像素的均方误差(pmse)
5、计算m和n的值
其中m表示所有像素的平均误差(ome),|n|表示所有像素的均方误差(omse)。
6、判定是否满足以下精度要求:
●p<=1.
●对于x=0..7和y=0..7,|d[y][x]|<=0.015.
●对于x=0..7和y=0..7,e[y][x]<=0.06.
●|n|<=0.02.
● m<=0.001 5.
7、置r[i]=-r[i]对于i=0..(64*Q-1),重复上述步骤2到6。
三、全零输入测试(All Zero Test)
置F′[v][u]=0,u=0..7和v=0..7。
对8×8变换系数矩阵F′[v][u]进行一次被测的IDCT,然后四舍五入得到对应的8×8矩阵h′。
对于x=0..7和y=0..7,h′[y][x]的值应该为0。
四、临近DC倒置测试(Near-DC Inversion Test)
对于变量z=0..(2B+4-1),进行以下步骤
对于u=0..7和v=0..7,置Fz″[v][u]=0.
置Fz″[0][0]=z-2B+3.
如果z是偶数,置Fz″[7][7]=1;否则置Fz″[7][7]=0.
对8×8变换系数矩阵Fz″进行一次理论的IDCT,然后四舍五入得到对应的8×8矩阵g′z.必须采用至少64比特的浮点精度。
对于x=0..7和y=0..7,置g″z[y][x]=clip3(-2B,2B-1,g′z[y][x]).对8×8变换系数矩阵Fz″进行一次需要测试的IDCT,然后四舍五入得到对应的8×8矩阵h′z
对于x=0..7和y=0..7,h″z[y][x]=clip3(-2B,2B-1,h′z[y][x]).
对于一个定点反离散余弦变换,如果满足上述所有的精度测试规范要求,则该定点反离散余弦变换符合ISO/IEC 23002-1-2006。
发明内容:
本发明的目的在于针对现有技术中的离散余弦变换、反离散余弦变换定点实现上的不足,提供了一种能够以较低的复杂度和较简单的结构实现8×8离散余弦变换/反离散余弦变换(DCT/IDCT),并且和理论上的变换相比具有较高精度的应用于视频和图像处理的变换方法。
所述应用于视频和图像处理的变换方法,它至少包括8×8反离散余弦变换方法和8×8离散余弦变换方法中的一种,所述的8×8反离散余弦变换为:
所述的8×8离散余弦变换为:
所述8×8反离散余弦变换方法用以实现逼近理想的反离散余弦变换,包括反变换预处理步骤、一维反变换步骤和反变换后处理步骤,所述的反变换预处理步骤使用一个8×8的整数矩阵M;所述的一维反变换步骤使用至少6个不同的乘法系数a、b、c、d、h、t进行运算;所述的反变换后处理步骤为右移w位的移位操作。
所述的反变换预处理步骤中的8×8矩阵M由10个不同的整数元素组成:
所述8×8反离散余弦变换方法中的一维反变换步骤含有或等效为如下运算:
p10=X0,p14=X4,p12=X2,p16=X6,p17=X1-X7,p13=X3,p15=X5,p11=X1+X7;
p20=p10+p14,p24=p10-p14,p22=p12*h-p16*t,p26=p16*h+p12*t,
p27=p15+p17,p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27*c-p21*d,
p33=p23*a-p25*b,p35=p23*b+p25*a,p31=p21*c+p27*d;
x0=p30+p31,x1=p34+p35,x2=p32+p33,x3=p36+p37,x4=p36-p37,x5=p32-p33,
x6=p34-p35,x7=p30-p31;
其中X0,X1,X2,X3,X4,X5,X6,X7为一维反变换步骤的输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换步骤的输出数据,p10~p17、p20~p27、p30~p37是一维反变换步骤的中间变量。
在所述8×8反离散余弦变换方法中,当反变换预处理步骤的输入数据的动态范围为[-2R+3,2R+3-1]时,反变换预处理步骤的输出数据的动态范围是[-2R+14,2R+14-1];一维反变换步骤中的输入数据、输出数据和中间变量的动态范围不超过[-2R+17,2R+17-1];所述反变换后处理步骤中的移位参数w=13,反变换后处理步骤的输出数据动态范围为[-2R,2R-1],R为正整数。
所述8×8离散余弦变换方法用以实现逼近理想的离散余弦变换,包括正变换预处理步骤、一维正变换步骤和正变换后处理步骤;所述的正变换预处理步骤为左移r位的移位操作;所述的一维正变换步骤使用至少6个不同的乘法系数a、b、c、d、h、t进行运算;所述的正变换后处理步骤使用一个8×8的整数矩阵M和右移z位的移位操作。
所述8×8离散余弦变换方法中的一维正变换步骤含有或等效为如下运算:
q10=y0+y1,q14=y1+y6,q12=y2+yx5,q16=y3+y4,q17=y3-y4,q13=y2-y5,
q15=y1-y6,q11=y0-y7;
q20=q10+q16,q24=q14+q12,q22=q14-q12,q26=q10-q16,q27=q17*c+q11*d,
q23=q13*a+q15*b,q25=q15*a-q13*b,q21=q11*c-q17*d;
q30=q20+q24,q34=q20-q24,q32=q22*h+q26*t,q36=q26*h-q22*t,
q37=q27+q25,q33=q21-q23,q35=q27-q25,q31=q21+q23;
Y0=q30,Y1=q31+q31,Y2=q32,Y3=q33,Y4=q34,Y5=q35,Y6=q36,
Y7=q31-q37,
其中y0,y1,y2,y3,y4,y5,y6,y7为一维正变换的输入数据,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7为一维正变换的输出数据。q10~q17、q20~q27、q30~q37为一维正变换的中间变量。
所述正变换后处理步骤中的8×8矩阵M由10个不同的整数元素组成:
Y’与8×8矩阵M做操作II得到正变换后处理步骤的输出数据Y:所述操作II为:Y[y][x]=[Y′[y][x]×M[y][x]+(1<<19)-f(Y′[y][x])]>>z y,x∈[0,7];其中函数f(a)做如下定义:
所述8×8离散余弦变换方法中,当正变换预处理步骤输入数据的动态范围为[-2R,2R-1]时,正变换预处理步骤的输出数据的动态范围是[-2R+7,2R+7-1],一维正变换步骤中的输入数据、输出数据和中间变量的动态范围不超过[-2R+13,2R+13-1];正变换预处理步骤中的移位参数r=7,正变换后处理步骤中的移位参数z=20,R为正整数。
所述的应用于视频和图像处理的变换方法中的一维反变换步骤中的*运算和一维正变换步骤中的*运算可以采用加法、减法、右移中的一个或多个的组合来替代,*表示乘法操作。
所述应用于视频和图像处理的变换方法中的一维正变换步骤、一维反变换步骤中的乘法系数a、b、c、d、h、t和反变换预处理或正变换后处理步骤中的参数A、B、C、D、E、F、G、H、I、J的相互关系如下: A=[1×2S], 其中:a=cos(3π/8),β=sin(3π/8),γ=cos(π/16),δ=sin(π/16),ε=cos(3π/16),ζ=sin(3π/16),k、S、ψ、φ是联系因子,[x]表示取最接近x的两个整数之一,例如x=2.1,则[x]=2或者3;由它们构成的{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所对应的8×8反离散余弦变换方法须符合ISO/IEC 23002-1-2006和以下2条定义的精度要求:
(a)线性测试:对于i∈[0,63],j∈[1,255],产生64个输入数据x∈[0,63],x/a表示x整除,ax%a表示x整除a的余数;令8×8输入数据矩阵N′i,j=-Ni,j;将Ni,j和N′i,j分别进行由{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的8×8反离散余弦变换,得到两个输出块,将其相加得到N″i,j;对i,j取值范围内所有的组合,所得到的N″i,j均应为全零;
(b)根据ISO/IEC 23002-1-2006标准定义的随机数生成方法,产生Q组[-L,+H]范围内的随机数,将这些随机数作为输入,对由{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的8×8反离散余弦变换进行测试得到omse;其中的L<10,H<10,Q>=10000,所得到的omse必须小于0.01。
本发明为应用于视频和图像处理的反变换及正变换方法,能很好地逼近理想的8×8反离散余弦变换及理想的8×8离散余弦变换,精度上远远超过ISO/IEC 23002-1-2006的要求,同时在硬件实现上复杂度大大降低,并能应用在多种现有流行的国际视频编解码标准。其反变换预处理过程可以结合视频压缩解码的反量化,进一步降低复杂度。
附图说明:
图1为应用于视频和图像处理的反变换方法流程示意图
图2为应用于视频和图像处理的正变换方法流程示意图
图3为8×8反离散余弦变换的一维反变换的算法流程图
图4为8×8离散余弦变换的一维正变换的算法流程图
具体实施方式:
实施实例一
一种应用于视频和图像处理的变换方法,其包括的8×8反离散余弦变换中的反变换预处理步骤中的8×8矩阵M是:
φ=0.9596162302465070可以得到:
A=1024.0000000000000000, B=757.2582122367510000,
C=1067.0932480341200000,,D=1070.9248339636200000,
E=560.0000000000000000,F=789.1260989220920000,G=791.9595949289330000,
H=1112.0000000000000000,I=1115.9928315182000000,
J=1120.0000000000000000;
a×212=5432.3763787064400000,b×212=1080.5668459858300000,
c×212=4605.3463196628800000,d×212=3077.1940310190000000,
h×212=2127.2189396844700000,t×212=5135.5608143231700000.
取A=1024,B=757,C=1067,D=1071,E=560,F=789,G=792,H=1112,I=1116,
J=1120,a=5432/4096,b=1080/4096,c=4605/4096,d=3078/4096,h=2128/4096,
t=5136/4096。
所述的应用于视频和图像处理的反离散余弦变换方法,其详细步骤如下:
2、进行第一次一维反变换,步骤如下:
将X按行排成8组向量,将第一行向量(X[0][0],X[0][1],…,X[0][7])作为输入,进行如下运算:
p10=X[0][0],p14=X[0][4],p12=X[0][2],p16=X[0][6],p17=X[0][1]-X[0][7],
p13=X[0][3],p15=X[0][5],p11=X[0][1]+X[0][7];
p20=p10+p14,p24=p10-p14,p22=p12*h-p16*t,p26=p16*h+p12*t,p27=p15+p17,
p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27*c-p21*d,
p33=p23*a-p25*b,p35=p23*b+p25*a,p31=p21*c+p27*d;
x’[0][0]=p30+p31,x’[1][0]=p34+p35,x’[2][0]=p32+p33,x’[3][0]=p36+p37,
x’[4][0]=p36-p37,x’[5][0]=p32-p33,x’[6][0]=p34-p35,x’[7][0]=p30-p31;其中*表示乘法操作;
3、重复步骤2,将(X[1][0],X[1][1],…,X[1][7]),(X[2][0],X[2][1],…,X[2][7]),(X[3][0],X[3][1],…,X[3][7]),(X[4][0],X[4][1],…,X[4][7]),(X[5][0],X[5][1],…,X[5][7]),(X[6][0],X[6][1],…,X[6][7]),(X[7][0],X[7][1],…,X[7][7])依次进行相同的一维反变换,得到第一次一维反变换输出x’;
4、进行第二次一维反变换,步骤如下:
将x’按行排成8组向量,将第一行向量(x′[0][0],x′[0][1],…,x′[0][7])作为输入,进行如下运算:
p10=x’[0][0],p14=x’[0][4],p12=x’[0][2],p16=x’[0][6],p17=x’[0][1]-x’[0][7],
p13=x’[0][3],p15=x’[0][5],p11=x’[0][1]+x’[0][7];
p20=p10+p14,p24=p10-p14,p22=p12*h-p16*t,p26=p16*h+p12*t,p27=p15+p17,
p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27*c-p21*d,
p33=p23*a-p25*b,p35=p23*b+p25*a,p31=p21*c+p27*d;
x”[0][0]=p30+p31,x”[1][0]=p34+p35,x”[2][0]=p32+p33,x”[3][0]=p36+p37,
x”[4][0]=p36-p37,x”[5][0]=p32-p33,x”[6][0]=p34-p35,x”[7][0]=p30-p31;
5、重复步骤4,将(x′[1][0],x′[1][1],…,x′[1][7]),(x′[2][0],x′[2][1],…,x′[2][7]),(x′[3][0],x′[3][1],…,x′[3][7]),(x′[4][0],x′[4][1],…,x′[4][7]),(x′[5][0],x′[5][1],…,x′[5][7]),(x′[6][0],x′[6][1],…,x′[6][7]),(x′[7][0],x′[7][1],…,x′[7][7])进行相同的一维反变换,得到第二次一维反变换输出x”;
6、将所得的第二次一维反变换后的输出x”进行后处理右移w位得到8×8反离散余弦变换的输出x,其中w=13,操作如下:x[v][u]=x″[v][u]>>13 v,u∈[0,63],>>表示右移位操作,反之,<<表示左移位操作;
实施实例二
一种应用于视频和图像处理的变换方法,其包括的8×8反离散余弦变换中的反变换预处理步骤中的8×8矩阵M是:
φ=0.5918825969335950可以得到:
A=1024.0000000000000000,B=1137.6888854164000000,
C=1730.0728308369000000,D=1608.9350515170000000,
E=1264.0000000000000000,F=1922.1529595742400000,
G=1787.5659428395900000,H=2923.0000000000000000,
I=2718.3347843854700000,J=2528.0000000000000000;
a×212=3615.8493569450400000,b×212=719.2371556781520000,
c×212=3065.3690701062000000,d×212=2048.2141299835100000,
h×212=1312.0493699271300000,t×212=3167.5673833811500000,
取A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,
I=2718,J=2528,a=3616/4096,b=719/4096,c=3066/4096,d=2048/4096,
h=1312/4096,t=3168/4096
所述的应用于视频和图像处理的反离散余弦变换方法,其详细步骤如下:
1、将待变换的8×8数据X’做反变换预处理得到反变换预处理的输出:
2、进行第一次一维反变换,步骤如下:
将X按行排成8组向量,将第一行向量(X[0][0],X[0][1],…,X[0][7])作为输入,进行如下运算:
p10=X[0][0],p14=X[0][4],p12=X[0][2],p16=X[0][6],p17=X[0][1]-X[0][7],
p13=X[0][3],p15=X[0][5],p11=X[0][1]+X[0][7];
p20=p10+p14,p24=p10-p14,p22=p12⊙h-p16⊙t,p26=p16⊙h+p12⊙t,
p27=p15+p17,p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27⊙c-p21⊙d,
p33=p23⊙a-p25⊙b,p35=p23⊙b+p25⊙a,p31=p21⊙c+p27⊙d;
x’[0][0]=p30+p31,x’[1][0]=p34+p35,x’[2][0]=p32+p33,x’[3][0]=p36+p37,
x’[4][0]=p36-p37,x’[5][0]=p32-p33,x’[6][0]=p34-p35,x’[7][0]=p30-p31
其中的⊙表示用加(减)法、移位实现乘法操作,定义如下:
x⊙a=1-(x>>3)+(x>>7);
x⊙b=(x>>3)-(x>>7)+(((x>>3)-(x>>7)-(x>>11))>>1)
x⊙h=((x+(x>>5))>>2)+(x>>4)
x⊙t=x+(x>>5)-((x+(x>>5))>>2)
x⊙d=x>>2
x⊙c=(((x>>9)-x)>>2)-((x>>9)-x)
3、重复步骤2,将(X[1][0],X[1][1],…,X[1][7]),(X[2][0],X[2][1],…,X[2][7]),(X[3][0],X[3][1],…,X[3][7]),(X[4][0],X[4][1],…,X[4][7]),(X[5][0],X[5][1],…,X[5][7]),(X[6][0],X[6][1],…,X[6][7]),(X[7][0],X[7][1],…,X[7][7])进行相同的一维反变换,得到第一次一维反变换输出x’;
4、进行第二次一维反变换,步骤如下:
将x’按行排成8组向量,将第一行向量(x′[0][0],x′[0][1],…,x′[0][7])作为输入,进行如下运算:
p10=x’[0][0],p14=x’[0][4],p12=x’[0][2],p16=x’[0][6],p17=x’[0][1]-x’[0][7],
p13=x’[0][3],p15=x’[0][5],p11=x’[0][1]+x’[0][7];
p20=p10+p14,p24=p10-p14,p22=p12⊙h-p16⊙t,p26=p16⊙h+p12⊙t,
p27=p15+p17,p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27⊙c-p21⊙d,
p33=p23⊙a-p25⊙b,p35=p23⊙b+p25⊙a,p31=p21⊙c+p27⊙d;
x”[0][0]=p30+p31,x”[1][0]=p34+p35,x”[2][0]=p32+p33,x”[3][0]=p36+p37,
x”[4][0]=p36-p37,x”[5][0]=p32-p33,x”[6][0]=p34-p35,x”[7][0]=p30-p31
其中的⊙操作定义与步骤2中的定义相同;
5、重复步骤4,将(x′[1][0],x′[1][1],…,x′[1][7]),(x′[2][0],x′[2][1],…,x′[2][7]),(x′[3][0],x′[3][1],…,x′[3][7]),(x′[4][0],x′[4][1],…,x′[4][7]),(x′[5][0],x′[5][1],…,x′[5][7]),(x′[6][0],x′[6][1],…,x′[6][7]),(x′[7][0],x′[7][1],…,x′[7][7])进行相同的一维反变换,得到第二次一维反变换输出x”;
6、将所得的第二次一维变换后的输出x”进行后处理右移w位得到8×8反离散余弦变换的输出x,其中w=13,步骤如下:x[v][u]=x″[v][u]>>13 v,u∈[0,63]。
实施实例三
一种应用于视频和图像处理的变换方法,其包括的8×8反离散余弦变换中的反变换预处理步骤中的8×8矩阵M是:
ψ=0.9000703207408190,φ=0.5918825969335950可以得到:
A=1024.0000000000000000,B=1137.6888854164000000,
C=1730.0728308369000000,D=1608.9350515170000000,
E=1264.0000000000000000,F=1922.1529595742400000,
G=1787.5659428395900000,H=2923.0000000000000000,
I=2718.3347843854700000,J=2528.0000000000000000;
a×212=3615.8493569450400000,b×212=719.2371556781520000,
c×212=3065.3690701062000000,d×212=2048.2141299835100000,
h×212=1312.0493699271300000,t×212=3167.5673833811500000.
取A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,
I=2718,J=2528,a=3616/4096,b=719/4096,c=3066/4096,d=2048/4096,h=1312/4096,t=3168/4096
可以验证,由以上{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的对应的8×8反离散余弦变换方法符合ISO/IEC 23002-1-2006和以下2条定义的精度要求:
(a)对于i∈[0,63],j∈[1,255],产生64个输入数据令8×8输入数据矩阵N′i,j=-Ni,j;将Ni,j和N′i,j分别进行由{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的8×8反离散余弦变换,得到两个输出块,将其相加得到N″i,j;对i,j取值范围内所有的组合,所得到的N″i,j为全零;
(b)根据ISO/IEC 23002-1-2006标准定义的随机数生成方法,对1000000组[-1,+1]范围内的随机数,将这些随机数作为输入,对由{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的8×8反离散余弦变换进行测试得到omse=0.000204,小于0.01。
所述的应用于视频和图像处理的反离散余弦变换方法,其详细步骤如下:
1、将待变换的8×8数据X’做反变换预处理得到反变换预处理的输出:
2、进行第一次一维反变换,步骤如下:将X按行排成8组向量,将第一行向量(X[0][0],X[0][1],…,X[0][7])作为输入,进行如下运算:
p10=X[0][0],p14=X[0][4],p12=X[0][2],p16=X[0][6],p17=X[0][1]-X[0][7],
p13=X[0][3],p15=X[0][5],p11=X[0][1]+X[0][7];
p20=p10+p14,p24=p10-p14,p22=p12⊙h-p16⊙t,p26=p16⊙h+p12⊙t,
p27=p15+p17,p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27⊙c-p21⊙d,
p33=p23⊙a-p25⊙b,p35=p23⊙b+p25⊙a,p31=p21⊙c+p27⊙d;
x’[0][0]=p30+p31,x’[1][0]=p34+p35,x’[2][0]=p32+p33,x’[3][0]=p36+p37,
x’[4][0]=p36-p37,x’[5][0]=p32-p33,x’[6][0]=p34-p35,x’[7][0]=p30-p31
其中的⊙操作定义如下:
x⊙a=1-(x>>3)+(x>>7);
x⊙b=(x>>3)-(x>>7)+(((x>>3)-(x>>7)-(x>>11))>>1)
x⊙h=((x+(x>>5))>>2)+(x>>4)
x⊙t=x+(x>>5)-((x+(x>>5))>>2)
x⊙d=x>>2
x⊙c=(((x>>9)-x)>>2)-((x>>9)-x);
3、重复步骤2,将(X[1][0],X[1][1],…,X[1][7]),(X[2][0],X[2][1],…,X[2][7]),(X[3][0],X[3][1],…,X[3][7]),(X[4][0],X[4][1],…,X[4][7]),(X[5][0],X[5][1],…,X[5][7]),(X[6][0],X[6][1],…,X[6][7]),(X[7][0],X[7][1],…,X[7][7])进行相同的一维反变换,得到第一次一维反变换输出x’;
4、进行第二次一维反变换,步骤如下:
将x’按行排成8组向量,将第一行向量(x′[0][0],x′[0][1],…,x′[0][7])作为输入,进行如下运算:
p10=x’[0][0],p14=x’[0][4],p12=x’[0][2],p16=x’[0][6],p17=x’[0][1]-x’[0][7],
p13=x’[0][3],p15=x’[0][5],p11=x’[0][1]+x’[0][7];
p20=p10+p14,p24=p10-p14,p22=p12⊙h-p16⊙t,p26=p16⊙h+p12⊙t,
p27=p15+p17,p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27⊙c-p21⊙d,
p33=p23⊙a-p25⊙b,p35=p23⊙b+p25⊙a,p31=p21⊙c+p27⊙d;
x”[0][0]=p30+p31,x”[1][0]=p34+p35,x”[2][0]=p32+p33,x”[3][0]=p36+p37,
x”[4][0]=p36-p37,x”[5][0]=p32-p33,x”[6][0]=p34-p35,x”[7][0]=p30-p31
其中的⊙操作与2中的相同;
5、重复步骤4,将(x′[1][0],x′[1][1],…,x′[1][7]),(x′[2][0],x′[2][1],…,x′[2][7]),(x′[3][0],x′[3][1],…,x′[3][7]),(x′[4][0],x′[4][1],…,x′[4][7]),(x′[5][0],x′[5][1],…,x′[5][7]),(x′[6][0],x′[6][1],…,x′[6][7]),(x′[7][0],x′[7][1],…,x′[7][7])进行相同的一维反变换,得到第二次一维反变换输出x”;
6、将所得的第二次一维变换后的输出x”进行后处理右移w位得到8×8反离散余弦变换的输出x,其中w=13,步骤如下:x[v][u]=x″[v][u]>>13 v,u∈[0,63]。
实施实例四
一种应用于视频和图像处理的变换方法,其包括的8×8离散余弦变换中的变换后处理步骤中的8×8矩阵M是:
ψ=1.1812048201875100、φ=0.8012529373378150,可以得到:
A=1024.0000000000000000,B=866.9114640401220000,
C=1277.9984350538200000,D=1225.9979498222600000,
E=733.9213735197150000,F=1081.9448187241100000,
G=1037.9215601470700000,H=1595.0000000000000000,
I=1530.1010363789400000,J=1467.8427470394300000;
a×214=18981.0000000000000000,b×214=3775.5556452332900000,
c×214=16091.3148131935000000,d×214=10751.8728142102000000,
h×214=7104.6752652150500000,t×214=17152.2033815388000000.
取A=1024,B=867,C=1278,D=1226,E=734,F=1082,G=1038,H=1595,I=1530,
J=1468,a=18981/16384,b=3776/16384,c=16091/16384,d=10752/16384,
h=7104/16384,t=17152/16384
所述的应用于视频和图像处理的离散余弦变换方法,其详细步骤如下:
1、将待变换的8×8数据y做正变换预处理得到正变换预处理的输出:y′[v][u]=y[u][v]<<7,v,u∈[0,7];
2、进行第一次一维正变换,步骤如下:
将y’按列排成8组向量,将第一列向量(y′[0][0],y′[1][0],…y′[7][0])T作为输入,进行如下运算:
q10=y’[0][0]+y’[1][0],q14=y’[1][0]+y’[6][0],q12=y’[2][0]+y’[5][0],
q16=y’[3][0]+y’[4][0],q17=y’[3][0]-y’[4][0],q13=y’[2][0]-y’[5][0],
q15=y’[1][0]-y’[6][0],q11=y’[0][0]-y’[7][0];
q20=q10+q16,q24=q14+q12,q22=q14-q12,q26=q10-q16,q27=q17*c+q11*d,
q23=q13*a+q15*b,q25=q15*a-q13*b,q21=q11*c-q17*d;
q30=q20+q24,q34=q20-q24,q32=q22*h+q26*t,q36=q26*h-q22*t,q37=q27+q25,
q33=q21-q23,q35=q27-q25,q31=q21+q23;
y”[0][0]=q30,y”[0][1]=q31+q31,y”[0][2]=q32,y”[0][3]=q33,y”[0][4]=q34,
y”[0][5]=q35,y”[0][6]=q36,y”[0][7]=q31-q37;
3、重复步骤2,将(y′[0][1],y′[1][1],…y′[7][1])T、(y′[0][2],y′[1][2],…y′[7][2])T、(y′[0][3],y′[1][3],…y′[7][3])T、(y′[0][4],y′[1][4],…y′[7][4])T、(y′[0][5],y′[1][5],…y′[7][5])T、(y′[0][6],y′[1][6],…y′[7][6])T、(y′[0][7],y′[1][7],…y′[7][7])T、进行相同的一维正变换,得到第一次一维正变换输出y”;
4、进行第二次一维正变换,步骤如下:
将y”按列排成8组向量,将第一列向量(y″[0][0],y″[1][0],…y″[7][0])T作为输入,进行如下运算:
q10=y”[0][0]+y”[1][0],q14=y”[1][0]+y”[6][0],q12=y”[2][0]+y”[5][0],
q16=y”[3][0]+y”[4][0],q17=y”[3][0]-y”[4][0],q13=y”[2][0]-y”[5][0],
q15=y”[1][0]-y”[6][0],q11=y”[0][0]-y”[7][0];
q20=q10+q16,q24=q14+q12,q22=q14-q12,q26=q10-q16,q27=q17*c+q11*d,
q23=q13*a+q15*b,q25=q15*a-q13*b,q21=q11*c-q17*d;
q30=q20+q24,q34=q20-q24,q32=q22*h+q26*t,q36=q26*h-q22*t,q37=q27+q25,
q33=q21-q23,q35=q27-q25,q31=q21+q23;
y[0][0]=q30,y[0][1]=q31+q31,y[0][2]=q32,y[0][3]=q33,y[0][4]=q34,
y[0][5]=q35,y[0][6]=q36,y[0][7]=q31-q37;
5、重复步骤4,将(y″[0][1],y″[1][1],…y″[7][1])T、(y″[0][2],y″[1][2],…y″[7][2])T、(y″[0][3],y″[1][3],…y″[7][3])T、(y″[0][4],y″[1][4],…y″[7][4])T、(y″[0][5],y″[1][5],…y″[7][5])T、(y″[0][6],y″[1][6],…y″[7][6])T、(y″[0][7],y′[1][7],…y″[7][7])T进行相同的一维正变换,得到第二次一维正变换输出y;
6、将所得的第二次一维正变换后的输出y进行后处理右移z位得到8×8离散余弦变换的输出Y,取z=20,步骤如下:
Y[v][u]=[y[v][u]×M[v][u]+(1<<19)-f(y[v][u])]>>20。
实施实例五
一种应用于视频和图像处理的变换方法,其包括的8×8离散余弦变换中的变换后处理步骤中的8×8矩阵M是:
ψ=0.9000703207408190,φ=0.5918825969335950可以得到:
A=1024.0000000000000000,B=1137.6888854164000000,
C=1730.0728308369000000,D=1608.9350515170000000,
E=1264.0000000000000000,F=1922.1529595742400000,
G=1787.5659428395900000,H=2923.0000000000000000,
I=2718.3347843854700000,J=2528.0000000000000000;
a×212=3615.8493569450400000,b×212=719.2371556781520000,
c×212=3065.3690701062000000,d×212=2048.2141299835100000,
h×212=1312.0493699271300000,t×212=3167.5673833811500000.
取A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,
I=2718,J=2528,a=3616/4096,b=719/4096,c=3066/4096,d=2048/4096,
h=1312/4096,t=3168/4096
所述的应用于视频和图像处理的离散余弦变换方法,其详细步骤如下:
1、将待变换的8×8数据y做正变换预处理得到正变换预处理的输出:
y′[v][u]=y[u][v]<<7,v,u∈[0,7];
2、将y’按列排成8组向量,将第一列向量(y′[0][0],y′[1][0],…y′[7][0])T作为输入,进行如下运算:
q10=y’[0][0]+y’[1][0],q14=y’[1][0]+y’[6][0],q12=y’[2][0]+y’[5][0],
q16=y’[3][0]+y’[4][0],q17=y’[3][0]-y’[4][0],q13=y’[2][0]-y’[5][0],
q15=y’[1][0]-y’[6][0],q11=y’[0][0]-y’[7][0];
q20=q10+q16,q24=q14+q12,q22=q14-q12,q26=q10-q16,q27=q17⊙c+q11 ⊙d,
q23=q13⊙a+q15⊙b,q25=q15⊙a-q13⊙b,q21=q11⊙c-q17⊙d;
q3 0=q20+q24,q34=q20-q24,q32=q22⊙h+q26⊙t,q36=q26⊙h-q22⊙t,
q37=q27+q25,q33=q21-q23,q35=q27-q25,q3 1=q21+q23;
y”[0][0]=q30,y”[0][1]=q31+q31,y”[0][2]=q32,y”[0][3]=q33,y”[0][4]=q34,
y”[0][5]=q35,y”[0][6]=q36,y”[0][7]=q31-q37;
其中的⊙操作定义如下:
x⊙a=1-(x>>3)+(x>>7);
x⊙b=(x>>3)-(x>>7)+(((x>>3)-(x>>7)-(x>>11))>>1)
x⊙h=((x+(x>>5))>>2)+(x>>4)
x⊙t=x+(x>>5)-((x+(x>>5))>>2)
x⊙d=x>>2
x⊙c=(((x>>9)-x)>>2)-((x>>9)-x);
3、重复步骤2,将(y′[0][1],y′[1][1],…y′[7][1])T、(y′[0][2],y′[1][2],…y′[7][2])T、(y′[0][3],y′[1][3],…y′[7][3])T、(y′[0][4],y′[1][4],…y′[7][4])T、(y′[0][5],y′[1][5],…y′[7][5])T、(y′[0][6],y′[1][6],…y′[7][6])T、(y′[0][7],y′[1][7],…y′[7][7])T进行相同的一维正变换,得到第一次一维正变换输出y”;
4、进行第二次一维正变换,步骤如下:
将y”按列排成8组向量,将第一列向量(y″[0][0],y″[1][0],…y″[[7][0])T作为输入,进行如下运算:
q10=y”[0][0]+y”[1][0],q14=y”[1][0]+y”[6][0],q12=y”[2][0]+y”[5][0],
q16=y”[3][0]+y”[4][0],q17=y”[3][0]-y”[4][0],q13=y”[2][0]-y”[5][0],
q15=y”[1][0]-y”[6][0],q11=y”[0][0]-y”[7][0];
q20=q10+q16,q24=q14+q12,q22=q14-q12,q26=q10-q16,q27=q17⊙c+q11⊙d,
q23=q13⊙a+q15⊙b,q25=q15⊙a-q13⊙b,q21=q11⊙c-q17⊙d;
q30=q20+q24,q34=q20-q24,q32=q22⊙h+q26⊙t,q36=q26⊙h-q22⊙t,
q37=q27+q25,q33=q21-q23,q35=q27-q25,q31=q21+q23;
y[0][0]=q30,y[0][1]=q31+q31,y[0][2]=q32,y[0][3]=q33,y[0][4]=q34,
y[0][5]=q35,y[0][6]=q36,y[0][7]=q31-q37
其中的⊙和步骤2中的相同;
5、重复步骤4,将(y″[0][1],y″[1][1],…y″[7][1])T、(y″[0][2],y″[1][2],…y″[7][2])T、(y″[0][3],y″[1][3],…y″[7][3])T、(y″[0][4],y″[1][4],…y″[7][4])T、(y″[0][5],y″[1][5],…y″[7][5])T、(y″[0][6],y″[1][6],…y″[7][6])T、(y″[0][7],y″[1][7],…y″[7][7])T进行相同的一维正变换,得到第二次一维正变换输出y;
6、将所得的第二次一维正变换后的输出y进行后处理右移z位得到8×8反离散余弦变换的输出Y,取z=20,步骤如下:
Y[v][u]=[y[v][u]×M[v][u]+(1<<19)-f(y[v][u])]>>20。
实施实例六
一种应用于视频和图像处理的变换方法,其包括的8×8反离散余弦变换中的反变换预处理步骤中的8×8矩阵M是:
ψ=0.9000703207408190,φ=0.5918825969335950可以得到:
A=1024.0000000000000000,B=1137.6888854164000000,
C=1730.0728308369000000,D=1608.9350515170000000,
E=1264.0000000000000000,F=1922.1529595742400000,
G=1787.5659428395900000,H=2923.0000000000000000,
I=2718.3347843854700000,J=2528.0000000000000000;
a×212=3615.8493569450400000,b×212=719.2371556781520000,
c×212=3065.3690701062000000,d×212=2048.2141299835100000,
h×212=1312.0493699271300000,t×212=3167.5673833811500000.
取A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,
I=2718,J=2528,a=3616/4096,b=719/4096,c=3066/4096,d=2048/4096,
h=1312/4096,t=3168/4096
参见图1所示,所述的应用于视频和图像处理的反离散余弦变换方法的详细步骤如下:
换预处理的输出数据X,X的动态范围为[-2R+14,2R+14-1],即23位位宽;
2、将X按行排成8组向量:
(X[0][0],X[0][1],…,X[0][7]),(X[1][0],X[1][1],…,X[1][7]),(X[2][0],X[2][1],…,X[2][7]),
(X[3][0],X[3][1],…,X[3][7]),(X[4][0],X[4][1],…,X[4][7]),(X[5][0],X[5][1],…,X[5][7]),
(X[6][0],X[6][1],…,X[6][7]),(X[7][0],X[7][1],…,X[7][7]);
每组向量分别进行一维反变换,其中每组向量均作为图3中的X0~X7进行一维反变换,图3中的x0~x7即为每组一维反变换的结果xi’:
x′0=(x′[0][0],x′[0][1],…,x′[0][7]),x′1=(x′[1][0],x′[1][1],…,x′[1][7]),
x′2=(x′[2][0],x′[2][1],…,x′[2][7]),x′3=(x′[3][0],x′[3][1],…,x′[3][7]),
x′4=(x′[4][0],x′[4][1],…,x′[4][7]),x′5=(x′[5][0],x′[5][1],…,x′[5][7]),
x′6=(x′[6][0],x′[6][1],…,x′[6][7]),x′7=(x′[7][0],x′[7][1],…,x′[7][7])。
图3中的操作分别用如下的加法、减法、移位操作的组合实现:
xa=1-(x>>3)+(x>>7);
xb=(x>>3)-(x>>7)+(((x>>3)-(x>>7)-(x>>11))>>1)
xh=((x+(x>>5))>>2)+(x>>4)
xt=x+(x>>5)-((x+(x>>5))>>2)
xd=x>>2
xc=(((x>>9)-x)>>2)-((x>>9)-x)
一维反变换的输出x’, x’和中间变量的动态范围不超过[-28+17,28+17-1];
3、将存储的x’按列排成8组向量,每组向量分别作为图3中的X0~X7进行第二次一维反变换,图3中的x0~x7即为每组向量第二次一维反变换的结果,得到第二次一维反变换输出x”;第二次一维反变换的输入x’、输出x”和中间变量的动态范围不超过[-28+17,28+17-1];
4、将x”进行反变换后处理,即右移w位,其中w=13:x[v][u]=x″[v][u]>>13 v,u∈[0,63];
得到8×8反离散余弦变换的输出x,x的动态范围为[-28,28-1]。
实施实例七
一种应用于视频和图像处理的变换方法,其包括的8×8离散余弦变换中的正变换后处理步骤中的8×8矩阵M的排列方式是: 取联系参数S=10,k=12,
ψ=0.9000703207408190,φ=0.5918825969335950可以得到:
A=1024.0000000000000000,B=1137.6888854164000000,
C=1730.0728308369000000,D=1608.9350515170000000,
E=1264.0000000000000000,F=1922.1529595742400000,
G=1787.5659428395900000,H=2923.0000000000000000,
I=2718.3347843854700000,J=2528.0000000000000000;
a×212=3615.8493569450400000,b×212=719.2371556781520000,
c×212=3065.3690701062000000,d×212=2048.2141299835100000,
h×212=1312.0493699271300000,t×212=3167.5673833811500000.
取A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,
I=2718,J=2528,a=3616/4096,b=719/4096,c=3066/4096,d=2048/4096,
h=1312/4096,t=3168/4096;
参见图2所示,所述的应用于视频和图像处理的离散余弦变换方法的详细步骤如下:
1、输入数据8×8数据块y动态范围为[-28,28-1],即9位位宽,将y输入,进行正变换预处理:y′[v][u]=y[u][v]<<7,v,u∈[0,7],得到正变换预处理的输出y’,y’的动态范围为[-28+7,28+7-1],即16位位宽;
2、将y’按列排成8组向量,(y′[0][0],y′[1][0],…y′[7][0])T,(y′[0][1],y′[1][1],…y′[7][1])T,(y′[0][2],y′[1][2],…y′[7][2])T,(y′[0][3],y′[1][3],…y′[7][3])T,(y′[0][4],y′[1][4],…y′[7][4])T,(y′[0][5],y′[1][5],…y′[7][5])T,(y′[0][6],y′[1][6],…y′[7][6])T,(y′[0][7],y′[1][7],…y′[7][7])T,每组向量分别作为图4中的x0~x7输入一维正变换装置进行一维正变换,每组一维正变换的结果均为图4中的X0~X7:
(y″[0][0],y″[1][0],…y″[7][0])T,(y″[0][1],y″[1][1],…y″[7][1])T、
(y″[0][2],y″[1][2],…y″[7][2])T、(y″[0][3],y″[1][3],…y″[7][3])T、
(y″[0][4],y″[1][4],…y″[7][4])T、(y″[0][5],y″[1][5],…y″[7][5])T、
(y″[0][6],y″[1][6],…y″[7][6])T、(y″[0][7],y″[1][7],…y″[7][7])T;
图4中的操作分别用如下的加法、减法、移位操作的组合实现:
xa=1-(x>>3)+(x>>7);
xb=(x>>3)-(x>>7)+(((x>>3)-(x>>7)-(x>>11))>>1);
xh=((x+(x>>5))>>2)+(x>>4);
xt=x+(x>>5)-((x+(x>>5))>>2);
xd=x>>2;
xc=(((x>>9)-x)>>2)-((x>>9)-x);
3、将存储的y”按行排成8组向量,每组向量分别作为图4中的x0~x7再次进行第二次一维正变换,图4中的X0~X7即为每组向量第二次一维正变换的结果,得到第二次一维正变换的输出y;第二次一维正变换的输出y”、y和中间变量的动态范围不超过[-28+13,28+13-1];
4、将所得的第二次一维正变换后的输出y进行正变换后处理,即右移z位,得到8×8反离散余弦变换的输出数据Y,取z=20:即Y[v][u]=[y[v][u]×M[v][u]+(1<<19)-f(y[v][u])]>>20;Y动态范围为[-28+3,28+3-1]。
Claims (9)
1.一种应用于视频和图像处理的变换方法,其特征在于所述的变换方法至少包括8×8反离散余弦变换方法和8×8离散余弦变换方法中的一种,所述8×8反离散余弦变换包括反变换预处理步骤、一维反变换步骤和反变换后处理步骤,所述的反变换预处理步骤使用一个8×8的整数矩阵M;所述的一维反变换步骤使用至少6个不同的乘法系数a、b、c、d、h、t进行运算;所述的反变换后处理步骤为右移w位的移位操作;所述8×8离散余弦变换包括正变换预处理步骤、一维正变换步骤和正变换后处理步骤,所述的正变换预处理步骤为左移r位的移位操作;所述的一维正变换步骤使用至少6个不同的乘法系数a、b、c、d、h、t进行运算;所述的正变换后处理步骤使用一个8×8的整数矩阵M和右移z位的移位操作。
3.根据权利要求1所述的应用于视频和图像处理的变换方法,其特征在于所述8×8反离散余弦变换方法中的一维反变换步骤含有或等效为如下运算:
p10=X0,p14=X4,p12=X2,p16=X6,p17=X1-X7,p13=X3,p15=X5,p11=X1+X7;
p20=p10+p14,p24=p10-p14,p22=p12*h-p16*t,p26=p16*h+p12*t,
p27=p15+p17,p23=p11-p13,p25=p17-p15,p21=p11+p13;
p30=p20+p26,p34=p24+p22,p32=p24-p22,p36=p20-p26,p37=p27*c-p21*d,
p33=p23*a-p25*b,p35=p23*b+p25*a,p31=p21*c+p27*d;
x0=p30+p31,x1=p34+p35,x2=p32+p33,x3=p36+p37,x4=p36-p37,x5=p32-p33,
x6=p34-p35,x7=p30-p31;
其中X0,X1,X2,X3,X4,X5,X6,X7为一维反变换步骤的输入数据,x0,x1,x2,x3,x4,x5,x6,x7为一维反变换步骤的输出数据,p10~p17、p20~p27、p30~p37是一维反变换步骤的中间变量。
4.根据权利要求2或3所述的应用于视频和图像处理的变换方法,其特征在于当反变换预处理步骤的输入数据的动态范围为[-2R+3,2R+3-1]时,反变换预处理步骤的输出数据的动态范围是[-2R+14,2R+14-1];一维反变换步骤中的输入数据、输出数据和中间变量的动态范围不超过[-2R+17,2R+17-1];所述反变换后处理步骤中的移位参数w=13,反变换后处理步骤的输出数据动态范围为[-2R,2R-1],R为正整数。
5.根据权利要求1所述的应用于视频和图像处理的变换方法,其特征在于所述8×8离散余弦变换方法中的一维正变换步骤含有或等效为如下运算:
q10=y0+y1,q14=y1+y6,q12=y2+yx5,q16=y3+y4,q17=y3-y4,q13=y2-y5,
q15=y1-y6,q11=y0-y7;
q20=q10+q16,q24=q14+q12,q22=q14-q12,q26=q10-q16,q27=q17*c+q11*d,
q23=q13*a+q15*b,q25=q15*a-q13*b,q21=q11*c-q17*d;
q30=q20+q24,q34=q20-q24,q32=q22*h+q26*t,q36=q26*h-q22*t,
q37=q27+q25,q33=q21-q23,q35=q27-q25,q31=q21+q23;
Y0=q30,Y1=q31+q31,Y2=q32,Y3=q33,Y4=q34,Y5=q35,Y6=q36,
Y7=q31-q37,
其中y0,y1,y2,y3,y4,y5,y6,y7为一维正变换的输入数据,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7为一维正变换的输出数据,q10~q17、q20~q27、q30~q37为一维正变换的中间变量。
6.根据权利要求1所述的应用于视频和图像处理的变换方法,其特征在于所述正变换后处理步骤中的8×8矩阵M由10个不同的整数元素组成: 所述正变换后处理步骤如下:输入数据8×8数据块Y’与8×8矩阵M做操作II得到正变换后处理步骤的输出数据Y:所述操作II为:Y[y][x]=[Y′[y][x]×M[y][x]+(1<<19)-f(Y′[y][x])]>>z y,x∈[0,7];其中函数f(a)做如下定义:
7.根据权利要求5或6所述的应用于视频和图像处理的变换方法,其特征在于当正变换预处理步骤输入数据的动态范围为[-2R,2R-1]时,正变换预处理步骤的输出数据的动态范围是[-2R+7,2R+7-1],一维正变换步骤中的输入数据、输出数据和中间变量的动态范围不超过[-2R+13,2R+13-1];正变换预处理步骤中的移位参数r=7;正变换后处理步骤中的移位参数z=20,R为正整数。
8.根据权利要求1所述的应用于视频和图像处理的变换方法,其特征在于一维反变换步骤和一维正变换步骤中的*运算可以采用加法、减法、右移中的一个或多个的组合来替代,*表示乘法操作。
9.根据权利要求1、2或5所述的应用于视频和图像处理的变换方法,其特征在于所述一维正变换步骤、一维反变换步骤中的乘法系数a、b、c、d、h、t和反变换预处理或正变换后处理步骤中的参数A、B、C、D、E、F、G、H、I、J的相互关系如下: A=[1×2S], 其中:α=cos(3π/8),β=sin(3π/8),γ=cos(π/16),δ=sin(π/16),ε=cos(3π/16),ζ=sin(3π/16),k、S、ψ、φ是联系因子;由它们构成的{A、B、C、D、E、F、G、H、I、J、d、b、c、d、h、t}所对应的8×8反离散余弦变换方法须符合ISO/IEC23002-1-2006和以下2条定义的精度要求:
(a)线性测试:对于i∈[0,63],j∈[1,255],产生64个输入数据令8×8输入数据矩阵Ni,j′=-Ni,j;将Ni,j和Ni,j′分别进行由{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的8×8反离散余弦变换,得到两个输出块,将其相加得到Ni,j″;对i,j取值范围内所有的组合,所得到的Ni,j″均应为全零;
(b)根据ISO/IEC 23002-1-2006标准定义的随机数生成方法,产生Q组[-L,+H]范围内的随机数,将这些随机数作为输入,对由{A、B、C、D、E、F、G、H、I、J、a、b、c、d、h、t}所构成的8×8反离散余弦变换进行测试得到omse;其中的L<10,H<10,Q>=10000,所得到的omse必须小于0.01。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710070256 CN101106714A (zh) | 2007-07-29 | 2007-07-29 | 应用于视频和图像处理的变换方法 |
CN 200710300902 CN101282476B (zh) | 2007-07-29 | 2007-12-07 | 应用于视频和图像处理的变换方法 |
PCT/CN2008/071798 WO2009015600A1 (en) | 2007-07-29 | 2008-07-29 | The transform method and device applying for video and image process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710070256 CN101106714A (zh) | 2007-07-29 | 2007-07-29 | 应用于视频和图像处理的变换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101106714A true CN101106714A (zh) | 2008-01-16 |
Family
ID=39000349
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710070256 Pending CN101106714A (zh) | 2007-07-29 | 2007-07-29 | 应用于视频和图像处理的变换方法 |
CN 200710300902 Active CN101282476B (zh) | 2007-07-29 | 2007-12-07 | 应用于视频和图像处理的变换方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710300902 Active CN101282476B (zh) | 2007-07-29 | 2007-12-07 | 应用于视频和图像处理的变换方法 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN101106714A (zh) |
WO (1) | WO2009015600A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009015600A1 (en) * | 2007-07-29 | 2009-02-05 | Huawei Technologies Co., Ltd. | The transform method and device applying for video and image process |
CN101742298B (zh) * | 2008-11-19 | 2011-07-27 | 中国科学院微电子研究所 | 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法 |
CN102438136A (zh) * | 2007-12-07 | 2012-05-02 | 浙江大学 | 应用于视频和图像处理的变换方法 |
CN102595112A (zh) * | 2011-01-12 | 2012-07-18 | 北京大学 | 视频编码中编码和重建图像块的方法 |
CN101765013B (zh) * | 2008-12-25 | 2012-08-29 | 佳能株式会社 | 数据变换装置及其控制方法 |
CN103098473A (zh) * | 2010-09-08 | 2013-05-08 | 三星电子株式会社 | 对帧内预测使用自适应dct/dst的低复杂度变换编码 |
CN103348676A (zh) * | 2011-02-10 | 2013-10-09 | 英特尔公司 | 共享的视频-音频流水线 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101754009B (zh) * | 2008-11-28 | 2012-01-11 | 展讯通信(上海)有限公司 | 整数反变换方法及其装置 |
CN102200963B (zh) * | 2010-12-28 | 2013-06-19 | 上海山景集成电路股份有限公司 | 一种用于音频解码的定点修正离散余弦反变换imdct的方法 |
CN108200439B (zh) * | 2013-06-14 | 2020-08-21 | 浙江大学 | 提高数字信号变换性能的方法及数字信号变换方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8700843A (nl) * | 1987-04-10 | 1988-11-01 | Philips Nv | Televisie-overdrachtsysteem met transformcoding. |
US7379956B2 (en) * | 2002-07-14 | 2008-05-27 | Apple Inc. | Encoding and decoding data arrays |
KR100584550B1 (ko) * | 2002-11-20 | 2006-05-30 | 삼성전자주식회사 | 고속 역 이산 여현 변환 방법 및 장치 |
CN100426678C (zh) * | 2004-03-04 | 2008-10-15 | 上海杰得微电子有限公司 | 8×8两维整数离散余弦变换的变换电路及反变换电路 |
CN100490539C (zh) * | 2006-01-11 | 2009-05-20 | 浙江大学 | 运用于图像编码和视频编码的离散余弦变换的方法 |
CN100450184C (zh) * | 2006-07-12 | 2009-01-07 | 浙江大学 | 运用于图像编码和视频编码的离散余弦变换方法 |
CN101106714A (zh) * | 2007-07-29 | 2008-01-16 | 浙江大学 | 应用于视频和图像处理的变换方法 |
-
2007
- 2007-07-29 CN CN 200710070256 patent/CN101106714A/zh active Pending
- 2007-12-07 CN CN 200710300902 patent/CN101282476B/zh active Active
-
2008
- 2008-07-29 WO PCT/CN2008/071798 patent/WO2009015600A1/zh active Application Filing
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009015600A1 (en) * | 2007-07-29 | 2009-02-05 | Huawei Technologies Co., Ltd. | The transform method and device applying for video and image process |
CN102438136A (zh) * | 2007-12-07 | 2012-05-02 | 浙江大学 | 应用于视频和图像处理的变换方法 |
CN101742298B (zh) * | 2008-11-19 | 2011-07-27 | 中国科学院微电子研究所 | 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法 |
CN101765013B (zh) * | 2008-12-25 | 2012-08-29 | 佳能株式会社 | 数据变换装置及其控制方法 |
CN103098473A (zh) * | 2010-09-08 | 2013-05-08 | 三星电子株式会社 | 对帧内预测使用自适应dct/dst的低复杂度变换编码 |
CN103098473B (zh) * | 2010-09-08 | 2016-10-19 | 三星电子株式会社 | 对帧内预测使用自适应dct/dst的低复杂度变换编码 |
CN102595112A (zh) * | 2011-01-12 | 2012-07-18 | 北京大学 | 视频编码中编码和重建图像块的方法 |
CN102595112B (zh) * | 2011-01-12 | 2014-02-19 | 北京大学 | 视频编码中编码和重建图像块的方法 |
CN103348676A (zh) * | 2011-02-10 | 2013-10-09 | 英特尔公司 | 共享的视频-音频流水线 |
US9942593B2 (en) | 2011-02-10 | 2018-04-10 | Intel Corporation | Producing decoded audio at graphics engine of host processing platform |
Also Published As
Publication number | Publication date |
---|---|
CN101282476A (zh) | 2008-10-08 |
CN101282476B (zh) | 2011-10-05 |
WO2009015600A1 (en) | 2009-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101106714A (zh) | 应用于视频和图像处理的变换方法 | |
Shams et al. | NEDA: A low-power high-performance DCT architecture | |
Ahmed et al. | N point DCT VLSI architecture for emerging HEVC standard | |
CN108200439B (zh) | 提高数字信号变换性能的方法及数字信号变换方法和装置 | |
CN111405289B (zh) | 部分解码电路和部分编码电路 | |
Kekre et al. | Color image compression using vector quantization and hybrid wavelet transform | |
TWI412281B (zh) | A Method of Calculating Reverse Conversion of Low Complexity | |
JP6357345B2 (ja) | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 | |
Brahimi et al. | An efficient fast integer DCT transform for images compression with 16 additions only | |
CN100450184C (zh) | 运用于图像编码和视频编码的离散余弦变换方法 | |
KR20030057425A (ko) | 역 변환 디바이스 및 역 변환 방법 및 변환 디바이스 및변환 방법 | |
KR100978391B1 (ko) | 이산여현변환/역이산여현변환 방법 및 장치 | |
CN110737869B (zh) | Dct/idct乘法器电路优化方法及应用 | |
US7620240B2 (en) | Method of encoding and decoding image data by applying image capturing device | |
Khongsit et al. | Scalable discrete Tchebichef Transform for image/video compression | |
WO2020060832A1 (en) | Fast implementation of odd one dimensional transforms | |
CN102438136A (zh) | 应用于视频和图像处理的变换方法 | |
JP2006227666A (ja) | 行列演算装置 | |
CN114125461B (zh) | 通用视频编码变换电路和通用视频编码设备 | |
CN102413331A (zh) | 图像或视频的编码方法 | |
Hegde et al. | An efficient hybrid integer coefficient-DCT architecture using quantization module for HEVC standard | |
Lee et al. | SIMD optimization of the H. 264/SVC decoder with efficient data structure | |
Li et al. | Realizing high throughput transforms of H. 264/AVC | |
JPH05153402A (ja) | 離散コサイン変換器 | |
He et al. | A fast algorithm for conversion from DCT blocks to integer cosine transform blocks |
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 |