运用于图象编码和视频编码的整数变换方法和装置的制作方法

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

发明内容
本发明的目的是提供一种运用于图像编码和视频编码的整数变换方法和装置,克服离散余弦变换的不足之处,避免了离散余弦变换在反变换中出现的失配问题。本方法并不限于图像编码和视频编码领域,可以推广至其他信号处理的应用中。同时本发明的方法具有一定的可扩展性,可以与众多的信号处理方法相结合,并可以实现不同应用范围的信号处理。
本发明采用的技术方案如下方案1运用于图像编码和视频编码的正向整数变换方法如下1)根据正向整数变换输入数据块的大小,选取正向整数变换矩阵的大小;2)根据所设置的正向整数变换矩阵的大小,选取正向整数变换矩阵系数;3)根据所设置的正向整数变换矩阵系数,选取相应的正向缩放矩阵系数;4)根据所设置的正向整数变换矩阵对输入数据块进行正向变换处理;5)根据所设置的正向缩放系数矩阵对正向变换处理后的数据进行正向缩放处理。运用于图像编码和视频编码的正向整数变换方法的装置输入装置,用于接受存储正向整数变换的输入数据;正向整数变换系数存储装置,用于存储正向整数变换矩阵系数;正向变换装置,根据正向整数变换系数存储装置所存储的正向整数变换系数对输入数据块进行正向变换处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;正向缩放系数存储装置,用于存储正向缩放矩阵系数;正向缩放装置,根据正向缩放系数存储装置所存储的正向缩放系数对正向变换处理后的数据进行正向缩放处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;输出装置,用于存储正向整数变换后的数据,并提供输出;输入装置与正向变换装置之间通过数据总线连接,传输输入数据;正向整数变换系数存储装置与正向变换装置之间通过数据总线连接,传输正向整数变换矩阵系数;正向变换装置与正向缩放装置之间通过数据总线连接,传输正向变换处理后的数据;正向缩放系数存储装置与正向缩放装置之间通过数据总线连接,传输正向缩放矩阵系数;正向缩放装置与输出装置之间通过数据总线连接,传输正向整数变换后的数据。方案2运用于图像编码和视频编码的逆向整数变换方法如下1)根据逆向整数变换输入数据块的大小,选取逆向整数变换矩阵的大小;2)根据所设置的逆向整数变换矩阵的大小,选取逆向整数变换矩阵系数;3)根据所设置的逆向整数变换矩阵系数,选取相应的逆向缩放矩阵系数;4)根据所设置的逆向缩放系数矩阵对输入数据块进行逆向缩放处理;5)根据所设置的逆向整数变换矩阵对逆向缩放处理过的数据进行逆向变换处理。运用于图像编码和视频编码的逆向整数变换方法的装置输入装置,用于接受存储逆向整数变换的输入数据;逆向缩放系数存储装置,用于存储逆向缩放矩阵系数;逆向缩放装置,根据逆向缩放系数存储装置所存储的逆向缩放系数对输入数据块进行逆向缩放处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;逆向整数变换系数存储装置,用于存储逆向整数变换矩阵系数;逆向变换装置,根据逆向整数变换系数存储装置所存储的逆向整数变换系数对逆向缩放处理过的数据进行逆向变换处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;输出装置,用于存储逆向整数变换后的数据,并提供输出;输入装置与逆向缩放装置之间通过数据总线连接,传输输入数据;逆向缩放系数存储装置与逆向缩放装置之间通过数据总线连接,传输逆向缩放矩阵系数;逆向缩放装置与逆向变换装置之间通过数据总线连接,传输逆向缩放处理后的数据;逆向整数变换系数存储装置与逆向变换装置之间通过数据总线连接,传输逆向整数变换矩阵系数;逆向变换装置与输出装置之间通过数据总线连接,传输逆向整数变换后的数据。
本发明与背景技术相比,具有的有益效果由于本方法所采用的正向整数变换矩阵系数和逆向整数变换矩阵系数都是整数,原始图像数据在正向整数变换和逆向整数变换后得到与初始数据完全一样的数据,从而克服离散余弦变换的不足之处,避免了离散余弦变换在反变换中出现的失配问题。本发明并不限于图像编码和视频编码领域,还可以推广至其他信号处理的应用中。


图1是4×4垂直正向整数变换矩阵和水平逆向整数变换矩阵示意图。
图2是4×1正向缩放系数矩阵和逆向缩放系数矩阵示意图。
图3是8×8垂直正向整数变换和水平逆向整数变换矩阵矩阵示意图。
图4是8×1正向缩放系数矩阵和逆向缩放系数矩阵示意图。
图5是16×16垂直正向整数变换和水平逆向整数变换矩阵矩阵示意图。
图6是16×1正向缩放系数矩阵和逆向缩放系数矩阵示意图。
图7是正向整数变换装置的示意图。
图8是逆向整数变换装置的示意图。
图9是采用了整数变换的图像数据或视频数据处理系统的方块图。
具体实施例方式
图像数据和视频数据可以被划分为不同大小的块进行整数变换。例如,4×4,4×8,8×4,8×8,4×16,16×4,16×8,8×16和16×16等。对于这些不同大小的块,可以使用大小为4×4,8×8和16×16的水平正向整数变换矩阵和垂直正向整数变换矩阵进行变换。变换的方法如下根据正向整数变换输入数据块的大小,选取正向整数变换矩阵的大小。根据输入数据块的大小n×m,选取垂直正向整数变换矩阵大小为n×n,选取水平正向整数变换矩阵大小为m×m,其中,n是输入数据块的行数,m是输入数据块的列数。
根据所设置的正向整数变换矩阵的大小,选取正向整数变换矩阵系数。
1)一个n×n的垂直正向整数变换矩阵Tn中包含了n个相同或不同的整数系数,Tn中的第k行第0列的系数tk0表示为nk,0≤k≤n-1,Tn中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tn中第i,j行的行向量,tjT是tj的转置列向量;2)一个m×m的垂直正向整数变换矩阵Tm中包含了m个相同或不同的整数系数,矩阵Tm中的第k行第0个系数tk0表示为nk,0≤k≤m-1,Tm中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tm中第i,j行的行向量,tjT是tj的转置列向量,将Tm转置,得到m×m的水平正向整数变换矩阵TmT。
根据所设置的正向整数变换矩阵系数,选取相应的正向缩放矩阵系数。
1)对于一个n×n的垂直正向整数变换矩阵Tn,设置相对应的n×1正向缩放系数矩阵Sn的矩阵系数si,si代表了Sn中第i行的正向缩放系数,si=1Σj=0n-1tij20≤i≤n-1,]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤n-1时,si≠sj;2)对于一个m×m的垂直正向整数变换矩阵Tm,设置相对应的m×1正向缩放系数矩阵Sm的矩阵系数si,si代表了Sm中第i行的正向缩放系数,si=1Σj=0m-1tij20≤i≤m-1,]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤m-1时,si≠sj;3)根据以上的n×1正向缩放系数矩阵Sn和m×1正向缩放系数矩阵Sm,设置n×m正向缩放系数矩阵Sn×m,Sn×m=Sn×SmT,]]>
其中,SmT是Sm的转置矩阵。
根据所设置的正向整数变换矩阵对输入数据块进行正向变换处理。Cn×m=Tn×Bn×m×TmT,]]>其中,Bn×m表示n行m列的正向整数变换输入数据块,Tn和Tm分别代表了n×n垂直正向整数变换矩阵和m×m垂直正向整数变换矩阵,TmT是Tm的转置矩阵,代表了m×m水平正向整数变换矩阵,Cn×m代表了正向整数变换的中间结果。
根据所设置的正向缩放系数矩阵对正向变换处理后的数据进行正向缩放处理。
Dn×m=Cn×mSn×m其中,算符表示Cn×m中的每一个系数分别与Sn×m中相同位置的正向缩放系数相乘,Dn×m代表了正向整数变换后的n×m输出数据块。
一个4×4的垂直正向整数变换矩阵Tm=T4,T4中的第k行第0列系数tk0表示为nk,0≤k≤3。T4中的第i行第j列系数tij是 并且, ti,tj分别代表了第i,j行的行向量,如图1所示,tjT是tj的转置列向量。n0,n1,n2和n3代表了整数。相应的4×1缩放系数矩阵Sn=S4,如图2所示。s0,s1,s2和s3代表了每一行的缩放系数。并且,至少存在一组i和j,当i≠j且0≤i,j≤3时,si≠sj。S4×4=S4×S4T]]>一个4×4的水平正向整数变换矩阵就是4×4的垂直正向整数变换矩阵的转置,即T4T,相应的4×1缩放系数矩阵Sn=S4,4×4缩放系数矩阵S4×4=S4×S4T.]]>一个8×8的垂直正向整数变换矩阵Tm=T8,T8中的第k行第0列系数tk0表示为nk,0≤k≤7。T8中的第i行第j列系数tij是 并且, ti,tj分别代表了第i,j行的行向量,如图3所示,tjT是tj的转置列向量。n0,n1,n2,n3,n4,n5,n6和n7代表了整数。相应的8×1缩放系数矩阵Sn=S8,如图4所示。s0,s1,s2,s3,s4,s5,s6和s7代表了每一行的缩放系数。并且,至少存在一组i和j,当i≠j且0≤i,j≤7时,si≠sj。S8×8=S8×S8T]]>一个8×8的水平正向整数变换矩阵就是8×8的垂直正向整数变换矩阵的转置,即T8T,相应的8×1缩放系数矩阵Sn=S8,8×8缩放系数矩阵S8×8=S8×S8T.]]>一个16×16的垂直正向整数变换矩阵Tm=T16,T16中的第k行第0个系数tk0表示为nk,0≤k≤15。T16中的第i行第j列系数tij是 并且, ti,tj分别代表了第i,j行的行向量,如图5所示,tjT是tj的转置列向量。n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14和n15代表了整数。相应的16×1缩放系数矩阵Sn=S16,如图6所示。s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14和s15代表了每一行的缩放系数。并且,至少存在一组i和j,当i≠j且0≤i,j≤15时,si≠sj。S16×16=S16×S16T]]>一个16×16的水平正向整数变换矩阵就是16×16的垂直正向整数变换矩阵的转置,即T16T,相应的16×1缩放系数矩阵Sn=S16,16×16缩放系数矩阵S16×16=S16×S16T.]]>
图像数据和视频数据进行正向整数变换处理后,可以进行逆向整数变换而得到恢复,数据可以被划分为不同大小的块进行逆向整数变换。例如,4×4,4×8,8×4,8×8,4×16,16×4,16×8,8×16和16×16等。对于这些不同大小的块,可以使用大小为4×4,8×8和16×16的水平逆向整数变换矩阵和垂直逆向整数变换矩阵进行变换。变换的方法如下根据逆向整数变换输入数据块的大小,选取逆向整数变换矩阵的大小。根据输入数据块的大小n×m,选取垂直逆向整数变换矩阵大小为n×n,选取水平逆向整数变换矩阵大小为m×m,其中,n是输入数据块的行数,m是输入数据块的列数。
根据所设置的逆向整数变换矩阵的大小,选取逆向整数变换矩阵系数。
1)一个n×n的水平逆向整数变换矩阵Tn中包含了n个相同或不同的整数系数,Tn中的第k行第0列系数tk0表示为nk,0≤k≤n-1,Tn中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tn中第i,j行的行向量,tjT是tj的转置列向量,将Tn转置,得到n×n的垂直正向整数变换矩阵TnT;2)一个m×m的水平逆向整数变换矩阵Tm中包含了m个相同或不同的整数系数,Tm中的第k行第0列系数tk0表示为nk,0≤k≤m-1,Tm中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tm中第i,j行的行向量,tjT是tj的转置列向量。
根据所设置的逆向整数变换矩阵系数,选取相应的逆向缩放矩阵系数。
1)对于一个n×n的水平逆向整数变换矩阵Tn,设置相对应的n×1逆向缩放系数矩阵Sn的矩阵系数si,si代表了Sn中第i行的逆向缩放系数,si=1Σj=0n-1tij20≤i≤n-1,]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤n-1时,si≠sj;2)对于一个m×m的水平逆向整数变换矩阵Tm,设置相对应的m×1逆向缩放系数矩阵Sm的矩阵系数si,si代表了Sm中第i行的逆向缩放系数,si=1Σj=0m-1tij20≤i≤m-1]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤m-1时,si≠sj;3)根据n×1逆向缩放系数矩阵Sn和m×1逆向缩放系数矩阵Sm,设置n×m逆向缩放系数矩阵Sn×m,Sn×m=Sn×SmT,]]>其中,SmT是Sm的转置矩阵。
根据所设置的逆向缩放系数矩阵对输入数据块进行逆向缩放处理。
Cn×m=Dn×mSn×m其中,Dn×m表示n行m列的逆向整数变换输入数据块,Cn×m代表了逆向整数变换的中间结果,算符表示Dn×m中的每一个系数分别与Sn×m中相同位置的逆向缩放系数相乘。
根据所设置的逆向整数变换矩阵对逆向缩放处理过的数据进行逆向变换处理。Bn×m=TnT×Cn×m×Tm]]>其中,Cn×m代表了逆向整数变换的中间结果,Bn×m表示n行m列的逆向整数变换输出数据块,Tn和Tm分别代表了n×n水平逆向整数变换矩阵和m×m水平逆向整数变换矩阵,TnT是Tn的转置矩阵,代表了m×m的垂直逆向整数变换矩阵。
一个4×4的水平逆向整数变换矩阵Tm=T4,T4中的第k行第0列系数tk0表示为nk,0≤k≤3。T4中的第i行第j列系数tij是 并且, ti,tj分别代表了第i,j行的行向量,如图1所示,tjT是tj的转置列向量。n0,n1,n2和n3代表了整数。相应的4×1缩放系数矩阵Sn=S4,如图2所示。s0,s1,s2和s3代表了每一行的缩放系数。并且,至少存在一组i和j,当i≠j且0≤i,j≤3时,si≠sj。S4×4=S4×S4T]]>一个4×4的垂直逆向整数变换矩阵就是4×4的水平逆向整数变换矩阵的转置,即T4T,相应的4×1缩放系数矩阵Sn=S4,4×4缩放系数矩阵S4×4=S4×S4T.]]>一个8×8的水平逆向整数变换矩阵Tm=Tn,T8中的第k行第0列系数tk0表示为nk,0≤k≤7。T8中的第i行第j列系数tij是 并且, ti,tj分别代表了第i,j行的行向量,如图3所示,tjT是tj的转置列向量。n0,n1,n2,n3,n4,n5,n6和n7代表了整数。相应的8×1缩放系数矩阵Sn=S8,如图4所示。s0,s1,s2,s3,s4,s5,s6和s7代表了每一行的缩放系数。并且,至少存在一组i和j,当i≠j且0≤i,j≤7时,si≠sj。S8×8=S8×S8T]]>一个8×8的垂直逆向整数变换矩阵就是8×8的水平逆向整数变换矩阵的转置,即T8T,相应的8×1缩放系数矩阵Sn=S8,8×8缩放系数矩阵S8×8=S8×S8T.]]>一个16×16的水平逆向整数变换矩阵Tm=T16,T16中的第k行第0个系数tk0表示为nk,0≤k≤15。T16中的第i行第j列系数tij是 并且, ti,tj分别代表了第i,j行的行向量,如图5所示,tjT是tj的转置列向量。n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14和n15代表了整数。相应的16×1缩放系数矩阵Sn=S16,如图6所示。s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14和s15代表了每一行的缩放系数。并且,至少存在一组i和j,当i≠j且0≤i,j≤15时,si≠sj。S16×16=S16×S16T]]>一个16×16的垂直逆向整数变换矩阵就是16×16的水平逆向整数变换矩阵的转置,即T16T,相应的16×1缩放系数矩阵Sn=S16,16×16缩放系数矩阵S16×16=S16×S16T.]]>通过选取不同的正向整数变换矩阵系数和矩阵大小与逆向整数变换矩阵系数和矩阵大小,可以构造出不同的正向整数变换矩阵和逆向整数变换矩阵。整数变换可以运用于各种基于块变换的图像处理和视频处理技术。例如,整数变换可以与基于频率或基于人类视觉系统(HVS)的视频编码相结合,如扫描,量化和滤波。可以根据不同的运用场合选取正向整数变换矩阵和逆向整数变换矩阵的大小和系数,具有一定的灵活性。
正向整数变换的装置主要包括输入装置,正向变换装置,正向整数变换系数存储装置,正向缩放装置,正向缩放系数存储装置和输出装置,如图7所示。输入装置710用于接受存储正向整数变换的输入数据。正向变换系数存储装置750用于存储正向整数变换矩阵系数,但是在一些应用中,也可以将正向变换系数存储装置750与正向变换装置720相合并。正向变换装置720根据正向整数变换系数存储装置所存储的正向整数变换系数对输入数据块进行正向变换处理,其中包括的算术逻辑单元725可以用乘法运算,加法运算和移位运算实现该处理。正向缩放系数存储装置760用于存储正向缩放矩阵系数,但是在一些应用中,也可以将正向缩放系数存储装置760与正向缩放装置730相合并。正向缩放装置730根据正向缩放系数存储装置所存储的正向缩放系数对正向变换处理后的数据进行正向缩放处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理。输出装置740用于存储正向整数变换后的数据,并提供输出。
逆向整数变换的装置主要包括输入装置,逆向缩放装置,逆向缩放系数存储装置,逆向变换装置,逆向整数变换系数存储装置和输出装置,如图8所示。输入装置810用于接受存储逆向整数变换的输入数据。逆向缩放系数存储装置850用于存储逆向缩放矩阵系数,但是在一些应用中,也可以将逆向缩放系数存储装置850与逆向缩放装置820相合并。根据逆向缩放系数存储装置所存储的逆向缩放系数对输入数据块进行逆向缩放处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理。逆向变换系数存储装置860用于存储逆向整数变换矩阵系数,但是在一些应用中,也可以将逆向变换系数存储装置860与逆向变换装置830相合并。逆向变换装置根据逆向整数变换系数存储装置所存储的逆向整数变换系数对逆向缩放处理过的数据进行逆向变换处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理。输出装置840用于存储逆向整数变换后的数据,并提供输出。
上述的正向整数变换的装置和逆向整数变换的装置可以用处理器系统,微控制器,可编程逻辑器件或微处理器实现部分或全部的操作。上述的一些操作可以用软件实现,同时另一些操作可以用硬件实现。
为了方便起见,这些操作被描述为不同的互连的功能单元或不同的软件模块。但是,这不是必要的。在一些应用中,这些功能单元或模块可以被集成到单一的逻辑器件,程序或操作中,而没有明显的界限。在任何情况中,功能单元和软件模块或描述的特征可以独立实现,或与其他操作一起用硬件或软件实现。
图9表示了利用上述整数变换方法或整数变换装置进行编码和解码的系统。这个系统可以是计算机,视频设备,照相机,网络处理器等等任何能处理数据的设备。模块910中的数据可以是任何需要变换处理的数据。例如,系统可以用来处理视频信息。
模块920中的正向整数变换可以使用上述的任何一种正向整数变换矩阵和相应的正向缩放系数矩阵来处理模块910中的数据。用来处理数据的正向整数变换矩阵和相应的正向缩放系数矩阵的大小取决于数据块划分的大小。例如,在一种应用中,图像数据被划分为4×4的块用于编码,在同样或另一种应用中,相同的或不同的图像数据被划分为16×16的块而能更有效的编码。正向整数变换模块920就包含了存储上述不同的4×4,8×8和16×16整数变换矩阵和相应的缩放系数矩阵的存储器。对于不同大小划分的图像数据,就使用与图像数据同样划分大小的正向整数变换矩阵和相应的正向缩放系数矩阵进行变换。
正向整数变换后的数据在模块930中被量化,在模块940中进行熵编码。编码后的数据在模块950中,可以存储在存储器中或通过信道传输。
数据的解码首先在模块960中进行反熵编码,再在模块970中进行反量化。模块980使用逆向整数变换矩阵和相应的逆向缩放系数矩阵进行逆向整数变换。逆向整数变换的逆向整数变换矩阵与正向整数变换矩阵的大小相同。逆向整数变换后的数据在模块990中作为逆向整数变换数据输出。
上述的系统可以用处理器系统,微控制器,可编程逻辑器件或微处理器实现部分或全部的操作。上述的一些操作可以用软件实现,同时另一些操作可以用硬件实现。
为了方便起见,这些操作被描述为不同的互连的功能单元或不同的软件模块。但是,这不是必要的。在一些应用中,这些功能单元或模块可以被集成到单一的逻辑器件,程序或操作中,而没有明显的界限。在任何情况中,功能单元和软件模块或描述的特征可以独立实现,或与其他操作一起用硬件或软件实现。
权利要求
1.一种运用于图像编码和视频编码的整数变换方法,其特征在于运用于图像编码和视频编码的正向整数变换方法,方法如下1)根据正向整数变换输入数据块的大小,选取正向整数变换矩阵的大小;2)根据所设置的正向整数变换矩阵的大小,选取正向整数变换矩阵系数;3)根据所设置的正向整数变换矩阵系数,选取相应的正向缩放矩阵系数;4)根据所设置的正向整数变换矩阵对输入数据块进行正向变换处理;5)根据所设置的正向缩放系数矩阵对正向变换处理后的数据进行正向缩放处理。
2.如权利要求1所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据正向整数变换输入数据块的大小,选取正向整数变换矩阵的大小,还包括以下的子步骤1)根据输入数据块的大小n×m,选取垂直正向整数变换矩阵大小为n×n;2)根据输入数据块的大小n×m,选取水平正向整数变换矩阵大小为m×m;其中,n是输入数据块的行数,m是输入数据块的列数。
3.如权利要求1所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的正向整数变换矩阵的大小,选取正向整数变换矩阵系数,还包括以下的子步骤1)一个n×n的垂直正向整数变换矩阵Tn中包含了n个相同或不同的整数系数,Tn中的第k行第0列的系数tk0表示为nk,0≤k≤n-1,Tn中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tn中第i,j行的行向量,tjT是tj的转置列向量;2)一个m×m的垂直正向整数变换矩阵Tm中包含了m个相同或不同的整数系数,矩阵Tm中的第k行第0个系数tk0表示为nk,0≤k≤m-1,Tm中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tm中第i,j行的行向量,tjT是tj的转置列向量,将Tm转置,得到m×m的水平正向整数变换矩阵TmT。
4.如权利要求1所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的正向整数变换矩阵系数,选取相应的正向缩放矩阵系数,还包括以下的子步骤1)对于一个n×n的垂直正向整数变换矩阵Tn,设置相对应的n×1正向缩放系数矩阵Sn的矩阵系数si,si代表了Sn中第i行的正向缩放系数,si=1Σj=0n-1tij20≤i≤n-1,]]>并且,至少存在一组i和j,当i≠j且0≤i,j ≤n-1时,si≠sj;2)对于一个m×m的垂直正向整数变换矩阵Tm,设置相对应的m×1正向缩放系数矩阵Sm的矩阵系数si,si代表了Sm中第i行的正向缩放系数,si=1Σj=0m-1tij20≤i≤m-1,]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤m-1时,si≠sj;3)根据以上的n×1正向缩放系数矩阵Sn和m×1正向缩放系数矩阵Sm,设置n×m正向缩放系数矩阵Sn×m,Sn×m=Sn×SmT,]]>其中,SmT是Sm的转置矩阵。
5.如权利要求1所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的正向整数变换矩阵对输入数据块进行正向变换处理的方法Cn×m=Tn×Bn×m×TmT,]]>其中,Bn×m表示n行m列的正向整数变换输入数据块,Tn和Tm分别代表了n×n垂直正向整数变换矩阵和m×m垂直正向整数变换矩阵,TmT是Tm的转置矩阵,代表了m×m水平正向整数变换矩阵,Cn×m代表了正向整数变换的中间结果。
6.如权利要求1所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的正向缩放系数矩阵对正向变换处理后的数据进行正向缩放处理的方法Dn×m=Cn×mSn×m其中,算符表示Cn×m中的每一个系数分别与Sn×m中相同位置的正向缩放系数相乘,Dn×m代表了正向整数变换后的n×m输出数据块。
7.如权利要求1所述的一种运用于图像编码和视频编码的整数变换方法,其整数变换的装置包括输入装置(710),用于接受存储正向整数变换的输入数据;正向整数变换系数存储装置(750),用于存储正向整数变换矩阵系数;正向变换装置(720),根据正向整数变换系数存储装置(750)所存储的正向整数变换系数对输入数据块进行正向变换处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;正向缩放系数存储装置(760),用于存储正向缩放矩阵系数;正向缩放装置(730),根据正向缩放系数存储装置(760)所存储的正向缩放系数对正向变换处理后的数据进行正向缩放处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;输出装置(740),用于存储正向整数变换后的数据,并提供输出;输入装置(710)与正向变换装置(720)之间通过数据总线连接,传输输入数据;正向整数变换系数存储装置(750)与正向变换装置(720)之间通过数据总线连接,传输正向整数变换矩阵系数;正向变换装置(720)与正向缩放装置(730)之间通过数据总线连接,传输正向变换处理后的数据;正向缩放系数存储装置(760)与正向缩放装置(730)之间通过数据总线连接,传输正向缩放矩阵系数;正向缩放装置(730)与输出装置(740)之间通过数据总线连接,传输正向整数变换后的数据。
8.一种运用于图像编码和视频编码的整数变换方法,其特征在于运用于图像编码和视频编码的逆向整数变换方法,方法如下1)根据逆向整数变换输入数据块的大小,选取逆向整数变换矩阵的大小;2)根据所设置的逆向整数变换矩阵的大小,选取逆向整数变换矩阵系数;3)根据所设置的逆向整数变换矩阵系数,选取相应的逆向缩放矩阵系数;4)根据所设置的逆向缩放系数矩阵对输入数据块进行逆向缩放处理;5)根据所设置的逆向整数变换矩阵对逆向缩放处理过的数据进行逆向变换处理。
9.如权利要求8所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据逆向整数变换输入数据块的大小,选取逆向整数变换矩阵的大小,还包括以下的子步骤1)根据输入数据块的大小n×m,选取垂直逆向整数变换矩阵大小为n×n;2)根据输入数据块的大小n×m,选取水平逆向整数变换矩阵大小为m×m;其中,n是输入数据块的行数,m是输入数据块的列数。
10.如权利要求8所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的逆向整数变换矩阵的大小,选取逆向整数变换矩阵系数,还包括以下的子步骤1)一个n×n的水平逆向整数变换矩阵Tn中包含了n个相同或不同的整数系数,Tn中的第k行第0列系数tk0表示为nk,0≤k≤n-1,Tn中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tn中第i,j行的行向量,tjT是tj的转置列向量,将Tn转置,得到n×n的垂直正向整数变换矩阵TnT;2)一个m×m的水平逆向整数变换矩阵Tm中包含了m个相同或不同的整数系数,Tm中的第k行第0列系数tk0表示为nk,0≤k≤m-1,Tm中的第i行第j列系数tij是 并且, 其中,ti,tj分别代表了Tm中第i,j行的行向量,tjT是tj的转置列向量。
11.如权利要求8所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的逆向整数变换矩阵系数,选取相应的逆向缩放矩阵系数,还包括以下的子步骤1)对于一个n×n的水平逆向整数变换矩阵Tn,设置相对应的n×1逆向缩放系数矩阵Sn的矩阵系数si,si代表了Sn中第i行的逆向缩放系数,si=1Σj=0n-1tij20≤i≤n-1,]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤n-1时,si≠sj;2)对于一个m×m的水平逆向整数变换矩阵Tm,设置相对应的m×1逆向缩放系数矩阵Sm的矩阵系数si,si代表了Sm中第j行的逆向缩放系数,si=1Σj=0m-1tij20≤i≤m-1]]>并且,至少存在一组i和j,当i≠j且0≤i,j≤m-1时,si≠sj;3)根据n×1逆向缩放系数矩阵Sn和m×1逆向缩放系数矩阵Sm,设置n×m逆向缩放系数矩阵Sn×m,Sn×m=Sn×SmT,]]>其中,SmT是Sm的转置矩阵。
12.如权利要求8所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的逆向缩放系数矩阵对输入数据块进行逆向缩放处理的方法Cn×m=Dn×mSn×m其中,Dn×m表示n行m列的逆向整数变换输入数据块,Cn×m代表了逆向整数变换的中间结果,算符表示Dn×m中的每一个系数分别与Sn×m中相同位置的逆向缩放系数相乘。
13.如权利要求8所述的一种运用于图像编码和视频编码的整数变换方法,其特征在于所说的根据所设置的逆向整数变换矩阵对逆向缩放处理过的数据进行逆向变换处理的方法Bn×m=TnT×Cn×m×Tm]]>其中,Cn×m代表了逆向整数变换的中间结果,Bn×m表示n行m列的逆向整数变换输出数据块,Tn和Tm分别代表了n×n水平逆向整数变换矩阵和m×m水平逆向整数变换矩阵,TnT是Tn的转置矩阵,代表了m×m的垂直逆向整数变换矩阵。
14.如权利要求8所述的一种运用于图像编码和视频编码的整数变换方法,其整数变换装置包括输入装置(810),用于接受存储逆向整数变换的输入数据;逆向缩放系数存储装置(850),用于存储逆向缩放矩阵系数;逆向缩放装置(820),根据逆向缩放系数存储装置(850)所存储的逆向缩放系数对输入数据块进行逆向缩放处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;逆向整数变换系数存储装置(860),用于存储逆向整数变换矩阵系数;逆向变换装置(830),根据逆向整数变换系数存储装置(860)所存储的逆向整数变换系数对逆向缩放处理过的数据进行逆向变换处理,其中包括的算术逻辑单元可以用乘法运算,加法运算和移位运算实现该处理;输出装置(840),用于存储逆向整数变换后的数据,并提供输出;输入装置(810)与逆向缩放装置(820)之间通过数据总线连接,传输输入数据;逆向缩放系数存储装置(850)与逆向缩放装置(820)之间通过数据总线连接,传输逆向缩放矩阵系数;逆向缩放装置(820)与逆向变换装置(830)之间通过数据总线连接,传输逆向缩放处理后的数据;逆向整数变换系数存储装置(860)与逆向变换装置(830)之间通过数据总线连接,传输逆向整数变换矩阵系数;逆向变换装置(830)与输出装置(840)之间通过数据总线连接,传输逆向整数变换后的数据。
全文摘要
本发明公开了一种运用于图像编码和视频编码的整数变换方法和装置。它采用整数变换方法主要是将图像数据或视频数据进行正向整数变换处理,变换到以正向整数变换矩阵表达的向量空间中;对正向整数变换后的数据进行逆向整数变换处理,能够恢复得到原始的图像数据或视频数据。本发明中的整数变换装置通过数据总线将各个功能单元相连接,完全实现本发明中的整数变换方法。由于本方法所采用的变换矩阵系数都是整数,原始图像数据在正向整数变换和逆向整数变换后与初始数据完全一样,从而克服离散余弦变换的失配问题。本发明并不限于图像编码和视频编码领域,还可以推广至其他信号处理的应用中。
文档编号H04N7/30GK1445999SQ0311599
公开日2003年10月1日 申请日期2003年3月26日 优先权日2003年3月26日
发明者楼剑, 虞露 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1