CN101106714A - 应用于视频和图像处理的变换方法 - Google Patents

应用于视频和图像处理的变换方法 Download PDF

Info

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
Application number
CN 200710070256
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN 200710070256 priority Critical patent/CN101106714A/zh
Priority to CN 200710300902 priority patent/CN101282476B/zh
Publication of CN101106714A publication Critical patent/CN101106714A/zh
Priority to PCT/CN2008/071798 priority patent/WO2009015600A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods 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离散余弦变换和反离散余弦变换分别如下:
y ( k , l ) = c ( k ) c ( l ) 1 8 × 8 Σ m = 0 7 Σ n = 0 7 x ( m , n ) cos ( 2 m + 1 ) kπ 16 cos ( 2 n + 1 ) lπ 16 - - - ( 1 )
x ( m , n ) = 1 8 × 8 Σ k = 0 7 Σ l = 0 7 c ( k ) c ( l ) y ( k , l ) cos ( 2 m + 1 ) kπ 16 cos ( 2 n + 1 ) lπ 16 - - - ( 2 )
其中
Figure A20071007025600073
Figure A20071007025600074
由于在理想的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、令 k = floor ( ( j 2 31 - 1 ) * ( L + H + 1 ) ) , 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)定义如下: clip 3 ( a , b , x ) = a x &le; a x a < x < b b x &GreaterEqual; b ,
对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]).
p = max x &Element; [ 0,7 ] y &Element; [ 0,7 ] ( | h &prime; &prime; z [ y ] [ x ] - g &prime; &prime; z [ y ] [ x ] | ) .
4、对x=0..7和y=0..7,按下面式子计算8×8矩阵d和e
d [ y ] [ x ] = 1 Q &Sigma; z = 0 Q - 1 ( h &prime; &prime; z [ y ] [ x ] - g &prime; &prime; z [ y ] [ x ] )
e [ y ] [ x ] = 1 Q &Sigma; z = 0 Q - 1 ( h &prime; &prime; z [ y ] [ x ] - g &prime; &prime; z [ y ] [ x ] ) 2
其中d[y][x]表示矩阵(x,y)位置上像素的平均误差(pme),e[y][x]表示矩阵(x,y)位置上像素的均方误差(pmse)
5、计算m和n的值
m = 1 64 &Sigma; x = 0 7 &Sigma; y = 0 7 d [ y ] [ x ]
n = 1 64 &Sigma; x = 0 7 &Sigma; y = 0 7 e [ y ] [ x ]
其中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]).
p = max x &Element; [ 0,7 ] y &Element; [ 0,7 ] ( | h &prime; &prime; z [ y ] [ x ] - g &prime; &prime; z [ y ] [ x ] | ) , p的值必须小于等于1。
对于一个定点反离散余弦变换,如果满足上述所有的精度测试规范要求,则该定点反离散余弦变换符合ISO/IEC 23002-1-2006。
发明内容:
本发明的目的在于针对现有技术中的离散余弦变换、反离散余弦变换定点实现上的不足,提供了一种能够以较低的复杂度和较简单的结构实现8×8离散余弦变换/反离散余弦变换(DCT/IDCT),并且和理论上的变换相比具有较高精度的应用于视频和图像处理的变换方法。
所述应用于视频和图像处理的变换方法,它至少包括8×8反离散余弦变换方法和8×8离散余弦变换方法中的一种,所述的8×8反离散余弦变换为:
x ( m , n ) = 1 8 &times; 8 &Sigma; k = 0 7 &Sigma; l = 0 7 c ( k ) c ( l ) y ( k , l ) cos ( 2 m + 1 ) k&pi; 16 cos ( 2 n + 1 ) l&pi; 16
所述的8×8离散余弦变换为:
y ( k , l ) = c ( k ) c ( l ) 1 8 &times; 8 &Sigma; m = 0 7 &Sigma; n = 0 7 x ( m , n ) cos ( 2 m + 1 ) k&pi; 16 cos ( 2 n + 1 ) l&pi; 16 ;
其中
Figure A20071007025600122
Figure A20071007025600123
所述8×8反离散余弦变换方法用以实现逼近理想的反离散余弦变换,包括反变换预处理步骤、一维反变换步骤和反变换后处理步骤,所述的反变换预处理步骤使用一个8×8的整数矩阵M;所述的一维反变换步骤使用至少6个不同的乘法系数a、b、c、d、h、t进行运算;所述的反变换后处理步骤为右移w位的移位操作。
所述的反变换预处理步骤中的8×8矩阵M由10个不同的整数元素组成:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E ; 所述反变换预处理步骤如下:输入数据8×8数据块X’与8×8矩阵M做操作I得到反变换预处理步骤的输出数据X,所述操作I为
Figure A20071007025600125
所述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个不同的整数元素组成:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E ; 所述正变换后处理步骤如下:输入数据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)做如下定义: f ( a ) = 0 a &GreaterEqual; 0 1 a < 0 .
所述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的相互关系如下: h = [ &alpha; &times; &phi; ] 2 k , t = [ &beta; &times; &phi; ] 2 k , a = [ &gamma; &times; &psi; ] 2 k , b = [ &delta; &times; &psi; ] 2 k , c = [ &epsiv; &times; &psi; ] 2 k , d = [ &zeta; &times; &psi; ] 2 k , A=[1×2S], B = [ 1 &psi; &times; 2 S ] , C = [ 1 &phi; &times; 2 S ] , D = [ 2 &psi; &times; 2 S ] , E = [ 1 &psi; 2 &times; 2 S ] , F = [ 1 &psi; &CenterDot; &phi; &times; 2 S ] , G = [ 2 &psi; 2 &times; 2 S ] , H = [ 1 &phi; 2 &times; 2 S ] , I = [ 2 &phi; &CenterDot; &psi; &times; 2 S ] , J = [ 2 &psi; 2 &times; 2 S ] , 其中: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个输入数据
Figure A200710070256001516
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是:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数S=10,k=12,ψ=1.3522468075656300,
φ=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。
所述的应用于视频和图像处理的反离散余弦变换方法,其详细步骤如下:
1、将输入数据8×8数据块X’做操作I得到反变换预处理的输出数据:所述操作I为
Figure A20071007025600172
其中M[i][j]表示矩阵M中第(i,j)个元素;
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是:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数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
所述的应用于视频和图像处理的反离散余弦变换方法,其详细步骤如下:
1、将待变换的8×8数据X’做反变换预处理得到反变换预处理的输出:
Figure A20071007025600202
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是:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数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
可以验证,由以上{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个输入数据
Figure A20071007025600241
令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’做反变换预处理得到反变换预处理的输出:
Figure A20071007025600242
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是:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数S=10,k=14,
ψ=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是:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数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
所述的应用于视频和图像处理的离散余弦变换方法,其详细步骤如下:
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是:
A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数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
参见图1所示,所述的应用于视频和图像处理的反离散余弦变换方法的详细步骤如下:
1、输入数据8×8数据块X’动态范围为[-28+3,28+3-1],即12位位宽,将X’输入,进行反变换预处理:
Figure A20071007025600341
得到反变
换预处理的输出数据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中的操作分别用如下的加法、减法、移位操作的组合实现:
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)
一维反变换的输出x’, x &prime; = x &prime; 0 x &prime; 1 x &prime; 2 x &prime; 3 x &prime; 4 x &prime; 5 x &prime; 6 x &prime; 7 8 &times; 8 , 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的排列方式是: A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E , 取联系参数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中的操作分别用如下的加法、减法、移位操作的组合实现:
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、将存储的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位的移位操作。
2.根据权利要求1所述的应用于视频和图像处理的变换方法,其特征在于所述的反变换预处理步骤中的8×8矩阵M由10个不同的整数元素组成: A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E ; 所述反变换预处理步骤如下:输入数据8×8数据块X’与8×8矩阵M做操作I得到反变换预处理步骤的输出数据X,所述操作I为
Figure A2007100702560002C2
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个不同的整数元素组成: A B C D A D C B B E F G B G F E C F H I C I H F D G I J D J I G A B C D A D C B D G I J D J I G C F H I C I H F B E F G B G F E ; 所述正变换后处理步骤如下:输入数据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)做如下定义: f ( a ) = 0 a &GreaterEqual; 0 1 a < 0 .
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的相互关系如下: h = [ &alpha; &times; &phi; ] 2 k , t = [ &beta; &times; &phi; ] 2 k , a = [ &gamma; &times; &psi; ] 2 k , b = [ &delta; &times; &psi; ] 2 k , c = [ &epsiv; &times; &psi; ] 2 k , d = [ &zeta; &times; &psi; ] 2 k , A=[1×2S], B = [ 1 &psi; &times; 2 S ] , C = [ 1 &phi; &times; 2 S ] , D = [ 2 &psi; &times; 2 S ] , E = [ 1 &psi; 2 &times; 2 S ] , F = [ 1 &psi; &CenterDot; &phi; &times; 2 S ] , G = [ 2 &psi; 2 &times; 2 S ] , H = [ 1 &phi; 2 &times; 2 S ] , I = [ 2 &phi; &CenterDot; &psi; &times; 2 S ] , J = [ 2 &psi; 2 &times; 2 S ] , 其中:α=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个输入数据
Figure A2007100702560005C16
令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。
CN 200710070256 2007-07-29 2007-07-29 应用于视频和图像处理的变换方法 Pending CN101106714A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 浙江大学 应用于视频和图像处理的变换方法

Cited By (10)

* Cited by examiner, † Cited by third party
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