小波域半像素运动补偿的制作方法

文档序号:6404101阅读:267来源:国知局
专利名称:小波域半像素运动补偿的制作方法
技术领域
一般地讲,本发明涉及一种视频小波域变换,具体地讲,涉及一种小波域半像素运动补偿方法、装置、及其数据结构。
背景技术
小波变换按照近似于图像变化和与解释图像的人类视觉系统十分相似的空间-频率域结构分解静止图像。因此,小波压缩技术在静止图像压缩领域取得了相当大的成功。例如,美国FBI(美国联邦调查局)的指纹压缩标准和ISO(国际标准组织)的静止图像压缩标准JPEG2000,均采用小波压缩技术。
小波变换的一种类型是H变换,它是Haar变换的延伸。等式1表示二维H变换矩阵H,它在等式2中将含有系数a00、a01、a10和a11的空间域2×2矩阵A转换成为含有系数h0、hx、hy和hd的小波域矩阵。对于图像编码,系数a00、a01、a10和a11是在矩阵A中具有与图像相应像素的位置一致的位置的像素值(如颜色值、灰度级或RGB、YUV颜色分量值)。在变换矩阵中,小波域数值h0表示矩阵A的(低频)平均空间能量,并且小波域数值hx、hy和hd分别表示矩阵A的(高频)水平、垂直和对角变化。
等式1H=12111-1]]>等式2H·a00a01a10a11·H-1=h0hxhyhd]]>虽然H变换基本上是一个二维矩阵变换,等式3表达的是使用单一矩阵乘法,该单一矩阵乘法通过将像素值a00、a01、a10、a11和小波域值h0、hx、hy、hd重新排列成为四个分向量而得到,从像素值到小波域的H变换。
等式3h=h0hxhyhd=121111-11-11-1-111-111-1·a00a01a10a11]]>一种使用H变换的静止图像编码方法,把代表图像的像素值的N×N矩阵分解成为N/2×N/2个没有重叠的2×2矩阵,然后将二维H变换施加到每一个2×2像素值矩阵。然后,对于整个N×N矩阵的小波变换分量能够被重新排列而构成如图1所示的阵列100。如图所示,依照原始N×N阵列中相对2×2空间域矩阵的空间位置,阵列100将低频分量h0排列在N/2×N/2子阵列H0中。依照原始N×N阵列中相应2×2矩阵的空间位置,N/2×N/2子阵列Hx、Hy和Hd同样包含被排列在各个N/2×N/2子阵列Hx、Hy和Hd中的各个高频分量hx、hy和hd。
按照与原始图像H变换同样的方式,H变换能够被施加到低频子阵列H0,并且作为结果的二层变换分量h0’、hx’、hy’和hd’能够在N/4×N/4的子阵列H0’、Hx’、Hy’和Hd’中排列。该过程能够重复一次或多次,以构成如图2显示的多分辨率阶层式数据结构。在静止图像的编码、发送和存储中,有损压缩能够放弃这种阶层式的一个或更多较低层的部分,并且依照可利用的带宽或想得到的图像分辨率,数据/压缩量能够容易地改变或适应。
视频(或移动图像)编码一般采用运动估计/补偿程序,这些程序去除含有不同时间索引的帧的冗余信息。在使用视频图像帧的小波变换的系统中,希望直接在小波域中的图像数据上进行运动估计。然而,视频目标相对微小的运动能够引起小波域数据的显著变化,尤其是高频分量。
图3显示的图像实例包括在背景颜色“e”上含有颜色“d”的目标。与这个目标的一部分相对应的2×2矩阵310的H变换,提供含有数值为2d的低频分量h0和为0的高频分量hx。如果在下一帧目标左移一个像素,则目标边缘在2×2矩阵320,该矩阵在第二帧有与矩阵310在第一帧一样的相对位置。矩阵320的H变换提供值为d+e的低频分量h0和为e-d的高频分量hx。因此,当颜色e与颜色d明显不同时,目标微小的运动引起小波域数据巨大的变化。
这种小波域数据的急速变化使在小波域的运动估计技术变得复杂。在空间域能够实现运动估计,但是为了压缩从空间域变换到小波域和为了运动估计返回到空间域,需要一连串与小波域阶层式结构的层相对应的小波逆变换。这种小波逆变换增加编码的复杂度,对于具有低处理能力的系统,使实时编码变得困难。因而,希望得到这样一种视频编码系统,其具有低处理能力的要求、并且使用高效率的小波域压缩。

发明内容
依照本发明的一方面,使用H变换的低复杂度的半像素内插处理,提供不需要小波逆变换的小波域运动估计和补偿。对于编码,q维(如q=2)H变换按照常规方式被施加到第一帧阵列的没有重叠的q×q矩阵,以构成代表第一帧的小波域数据结构。当为第二帧决定运动向量时,第一帧的小波数据“半像素内插”生成半像素数据,该半像素数据对应于从q×q矩阵的标准集合水平或垂直偏移(如一个像素)的q×q矩阵的小波变换。然后,运动估计技术通过比较第二帧阵列的小波域数据和第一帧的实际小波域数据以及内插“半像素”小波域数据,识别第二帧中的目标。
本发明一个特定实施方式是编码器,该编码器包括小波变换单元、半像素数据生成器和运动估计单元。小波变换单元使用常规技术将视频数据从空间域转换到小波域,以代表视频的帧。半像素数据生成器接收来自小波域变换单元的小波域数据,并且从小波域数据生成半像素数据。半像素数据近似结果来自矩阵的小波变换,该矩阵是相对于小波变换单元所变换矩阵而偏移的矩阵。半像素数据生成器能够使用下面进一步描述的公式和方法,在没有进行小波逆变换的情况下,从小波域数据生成半像素数据。
运动估计单元不但在小波域数据,而且在半像素数据中,搜索与正在被编码的帧中目标区块最佳匹配的区块。因此,对于正在帧间编码的目标区块的运动向量,能够识别小波域数据区块或半像素数据区块的最佳匹配。
一般地讲,该编码器进一步包括量化单元和去量化单元。量化单元将传输给解码器的帧进行编码的数据量化。去量化单元将从量化单元输出的数据去量化,并且为了后续帧在运动估计中使用,将结果存储在存储器或缓冲器中。具体地讲,在量化和去量化之后,半像素生成器一般使用小波变换域数据,所以生成的半像素数据与解码器能够生成的半像素数据将是一样的。
本发明的另一个实施方式是用于视频的编码处理。该编码处理包括对视频数据的第一帧进行小波变换,以生成第一小波域数据,并且从第一小波域数据生成半像素数据。半像素数据近似从矩阵的小波变换所产生的小波域数据,该矩阵是相对于在小波变换期间使用的矩阵而偏移的矩阵。然后,编码处理能够在小波域数据和半像素数据中搜索与来自第二帧小波域数据的目标区块最佳匹配的区块。因此,代表第二帧的数据结构或数据流能够包括运动向量,该运动向量识别与目标区块最佳匹配的小波域数据或半像素数据区块。
本发明还有另一个实施方式是用于视频的解码处理。该解码处理将数据结构或数据流进行解码,以提取与视频第一帧相关的小波域差分阵列和运动向量。对于每一个运动向量,解码处理确定运动向量是第一种还是第二种。第一种运动向量识别代表第二帧的小波域数据的各个区块。第二种运动向量识别与代表第二帧部分的偏移矩阵的小波变换的近似值相对应的半像素数据的各个区块,该偏移矩阵是相对于在生成代表第二帧小波域数据时所使用矩阵而偏移的矩阵。
为构成用于第一帧的小波域数据,该解码处理把由第一种运动向量所识别的小波域数据的各个区块加到差分阵列的相应部分。因此,对于每一个第二种运动向量,该解码处理使用代表第二帧的小波域数据,生成由第二种运动向量所识别的半像素小波域数据区块,然后把生成的区块加到与运动向量相对应的差分阵列的部分。对于第一帧构成的小波域数据的小波逆变换允许第一帧的显示。
本发明另一个实施方式是代表视频的数据结构。在一种实施方式中,数据结构包括表示视频第一帧的小波域数据的第一数据、表示视频第二帧的小波域差分阵列的第二数据,和第一和第二种运动向量。第一种运动向量对应于差分阵列的各个区块,并且识别第一帧的小波域数据的区块,以加到差分阵列的相应区块。第二种运动向量对应于差分阵列的各个区块,并且识别半像素数据的区块,以加到差分阵列相应区块,这里的半像素数据近似在第一帧中阵列的小波变换,这些阵列相对于在为第一帧生成小波域数据使用的第一帧的阵列而偏移。


图1显示了从静止图像的小波变换产生的数据结构。
图2显示了从把一连串小波变换施加到静止图像数据产生的多分辨率数据结构。
图3显示了目标的微小运动在小波域数据能够产生的影响。
图4的方框图,是依照本发明实施方式,使用小波域半像素内插的编码系统。
图5的方框图,是依照本发明实施方式,使用小波域半像素内插的解码系统。
图6A、6B和6C显示了依照本发明实施方式,从空间域或低频图像数据的标准部分被分别水平、垂直和对角偏移的矩阵和相关的半像素数据。
图7A和7B显示了依照本发明实施方式,包括小波域图像数据的多分辨率数据结构。
图8的流程图,是依照本发明实施方式的编码处理。
图9的流程图,是依照本发明实施方式的解码处理。
在不同的图中使用相同的标号识别类似或同样的项目。
具体实施例方式
依照本发明的一方面,用于视频编码的运动估计处理从小波变换所确定的小波域图像数据生成“半像素”小波域数据。该半像素数据近似空间域或从小波变换所使用的矩阵水平、垂直或对角偏移的低频矩阵的小波变换的结果。在运动估计过程中,确定近似的半像素数据不需要小波数据的小波逆变换和再变换,并且该近似的半像素数据适合具有低效处理能力的装置和应用。确定指示视频目标运动的运动向量的运动估计程序,能够比较来自某一帧的小波域目标区块与另一帧的小波域数据和半像素数据。
图4的方框图是依照本发明实施方式的视频编码器400。视频编码器400包括小波变换单元410、量化单元430、熵编码单元440、去量化单元450、半像素数据生成器480和运动估计单元490。一般地讲,视频编码器400的功能块能够使用专门的硬件、软件或硬件和软件的结合来实现,以完成此处所述的编码功能。
在运行时,小波变换单元410按照代表形成视频图像的一连串帧的一连串空间域阵列接收视频图像数据。小波变换单元410将每一个空间域阵列变换成小波域数据结构。具体地讲,小波变换单元410将每一个空间域阵列划分成为一组没有重叠的q×q矩阵,并且对每一个q×q矩阵进行小波域变换。在本发明的典型实施方式中,q等于二,并且空间域或低频阵列的小波变换是等式1、2和3的二维H变换。然后低频小波域数据能够被收集进按照与空间域阵列同样方式变换的低频分量阵列中。小波变换单元410通过反复构成低频阵列并且将小波变换施加到构成的阵列的方式,构成诸如图2所示的阶层式数据结构。一般地讲,在阶层式数据结构的层数能够按照所希望的限定,包括被限定只有单独的一层。
如上所述的二维H变换对于应用于快速、低复杂度的编码器有几个优点。具体地讲,变换没有重叠的q×q像素区块使在编码器400中的平行处理结构易于实现,并且H变换有微小的内核,允许八个整数加法/减法以完成空间或低频分量a00、a01、a10和a11到小波域数值h0、hx、hy和hd的变化。另外,二维小波变换与通过先沿行再沿列变换扩展为二维的一维变换不同,避免了丢弃更多的水平方向的高频成分和垂直方向的低频分量的问题。
在正在被编码的帧通过小波变换单元410之后,编码器400的所有编码处理在小波域中进行。对于不使用运动估计进行编码的帧内,量化单元430将来自小波变换单元420的小波域数据进行量化,并且熵编码单元440将诸如霍夫曼编码等编码方法施加到代表帧内的量化的小波数据。然后,编码后的图像数据能够依靠视频编码器400的应用而传输或存储。
与接收来自编码器400的数据的解码器一样,去量化单元450使来自量化单元430的数据的量化复原。去量化单元450将作为结果的小波域数据存储在帧存储器470,用于后面的帧间编码。
帧间被当作在来自小波变换410的小波域帧数据以及使用运动向量、其他帧的存储的小波域数据和半像素数据而构成的类似小波域帧数据之间的差分来编码。具体地讲,加法器420从小波变换单元410的小波域数据减去构成的帧数据,并输出用于帧间编码的差分给量化单元430。一般地讲,所述差分数据将包括对于图2所示阶层式结构每一个小波域数据阵列或子阵列的差分阵列。
对于帧间,去量化单元450使差分数据去量化,并且加法器460回加从先前存储在存储器470的运动向量和小波域数据或半像素数据构成的类似帧数据。作为结果的小波域帧数据被存储在帧存储器470,用于其他帧间可能需要的运动估计处理。
量化单元430和熵编码单元440将作为结果的差分帧数据进行量化和编码。熵编码单元440也将用于帧间的运动向量当作是输出数据CODE的部分进行编码。
图5的方框图,是对输出数据CODE具有解码能力的解码器500。解码器500包括使量化和熵编码复原的熵解码单元510和去量化单元520,以生成用于帧内的小波域数据或用于帧间的差分数据和运动向量。用于帧内的小波域数据能够直接存储在帧存储器540。小波逆变换单元550将小波域数据转换成为代表用于显示或其它用途的视频帧的空间域数据VIDEO’。
对于帧间,加法器530将将来自帧存储器540的、运动向量为当前帧所识别的小波域数据或半像素数据的区块加到差分阵列。因此,当运动向量识别半像素数据的区块时,半像素数据生成器550使用与编码器400的半像素数据生成器480同样的技术,从帧存储器540的小波域数据生成需要的半像素数据区块。
依照本发明的一方面,小波域半像素数据生成器480和550,生成对应于和近似于空间域像素值或小波变换单元410没有使用的低频小波域系数q×q矩阵的小波变换的半像素数据。具体地讲,图6A、6B和6C显示的是十六个像素值或低频分量a到p的阵列,该阵列被分成四个用于小波变换的2×2阵列610、620、630和640。按照典型的实施方式,小波变换单元410对阵列610、620、630、和640进行二维H变换,分别生成四组小波域系数{h01,hx1,hy1,hd1}、{h02,hx2,hy2,hd2}、{h03,hx 3,hy3,hd3}和{h04,hx4,hy4,hd4}。
图6A、6B和6C还显示相对于小波变换单元410所变换的阵列610、620、630和640偏移的阵列612、634、613、624和614。具体地讲,阵列612(或634)从阵列610和620(或630和640)水平偏移一个像素。阵列613(或624)从阵列610和630(或620和640)垂直偏移一个像素,并且阵列614从阵列610、620、630和640中的每一个对角偏移一个像素。
小波变换单元410不确定偏移阵列612、634、613、624和614的小波变换,因为对于帧的表示这些变换不需要,也就是说,为了减少采样(downsampling),略过这些变换。阵列612、634、613、624和614的小波域变换能够从像素值a到p或从小波域系数{h01,hx1,hy1,hd1}、{h02,hx2,hy2,hd2}、{h03,hx3,hy3,hd3}和{h04,hx4,hy4,hd4}精确地确定,但是对于像素值a到p或来自小波域阶层式结构的低频小波域分量h01、h02、h03和h04的确定一般需要一连串的小波逆变换。在多分辨率结构的每一层,高频分量是可利用的,但低频分量只有对多分辨率结构的顶层是可利用的。
如上所述,低处理能力的编码或解码处理试图避免小波逆变换,即使偏移阵列612、634、613、624和614的小波域系数与阵列610、620、630和640的小波域系数可能有很大的不同。为了避免小波逆变换,当生成近似于子带的阵列612、634、613、624、614和其它偏移阵列的小波变换的半像素数据时,半像素数据生成器480使用不可用的低频分量h01、h02、h03和h04的近似值。另外,小波域半像素数据生成器480在阶层式小波域数据结构的其它层构成类似偏移阵列的小波变换的近似值,从而允许对阶层式结构所有层中的每一个子带进行半像素运动估计。
等式4一般地略述了用于获取与偏移阵列有关的半像素数据的获取公式的技术。
等式4h0′=h0TOP2MAXLEVEL-i]]>h′=h0′hxhyhd]]>A′=H-1·h′ht=H·At′=H·(H-1·h′)t在等式4中,hx、hy和hd是实际的高频小波域分量,而h0’是2×2阵列的实际低频分量h0的近似值。诸如由阶层式数据结构的顶层的相应低频分量提供的局部低频小波系数的平均值,一般代表实际低频系数h0的合理近似值,但是能够使用h0的其它近似值。阵列h’表示具有上述低频分量近似值的小波域系数,并且将H逆变换施加到h’产生空间域像素值或低频系数的近似矩阵A’。用移动或偏移的阵列A’t替代并将H变换施加到移动阵列A’t,就得到近似于实际小波域系数h0、hx、hy和hd的小波域阵列h’t。执行在等式4表示的数学运算,将得到以重叠阵列(如610、620、630和640)的小波域系数和小波域阶层式数据结构顶层的低频分量表示的半像素小波域数据(如对于阵列612、634、613、624和614)的公式。
对于诸如图6A的阵列612和634的水平偏移阵列,半像素数据生成器480使用等式5生成半像素系数h0’(r,s)、hxx(r,s)、hyx(r,s)和hdx(r,s),等式5h0′(r,s)=h0(r,s)TOP2MAXLEVEL-i]]>hxx(r,s)=(h0′-hxs-h0′r-hxr)/2hyx(r,s)=(hys-hds+hyr+hxr)/2hdx(r,s)=(hys-hds-hyr-hdr)/2在等式5中,i是包含当前水平偏移阵列的多分辨率小波域数据结构的层数;r和s是识别水平偏移所希望的偏移阵列一个系数的阵列的索引;hxr、hyr和hdr是小波域系数,h0’r是与左边阵列r相对应的近似低频小波域系数;hxs、hys和hds是小波域系数,h0s是与右边阵列s相对应的近似低频小波域系数;并且h0(r,s)TOP是来自多分辨率数据结构的顶层(MAXLEVEL)、并且对应于包含阵列r和s的阵列的低频小波域系数或低频小波域系数的平均值。等式5的hyx(r,s)和hdx(r,s)没有使用近似值h0’s和h0’r,而是精确值。
对于诸如图6B的阵列613和624的垂直偏移阵列,半像素数据生成器480使用等式6生成半像素系数h0’(r,s)、hxy(r,s)、hyy(r,s)和hdy(r,s)。
等式6h0′(r,s)=h0(r,s)TOP2MAXLEVEL-i]]>hxy(r,s)=(hxs-hds+hxr+hdr)/2hyy(r,s)=(h0′s-hys-h0′r-hyr)/2hdy(r,s)=(hxs-hds-hxr-hdr)/2等式6中,i是包含当前垂直偏移阵列的多分辨率小波域数据结构的层数;r和s是识别垂直偏移偏移阵列一个像素的阵列的索引;hxr、hyr和hdr是小波域系数,并且h0’r是与顶部阵列r相对应的低频小波域系数近似值;hxs、hys和hds是小波域系数,h0’s是与底部阵列s相对应的低频小波域系数近似值;并且h0(r,s)TOP是来自多分辨率数据结构的顶层(层MAXLEVEL)、并且对应于包含阵列r和s的阵列的低频小波域系数或低频小波域系数的平均值。等式6的hxy(r,s)和hdy(r,s)没有使用近似值h0’s和h0’r,而是精确值。
对于诸如图6C的阵列614的对角线偏移阵列,半像素数据生成器480使用等式7生成半像素系数h0’(r,s)、hxd(r,s)、hyd(r,s)和hdd(r,s)。
等式7h0′(r,u)=h0(r,u)TOP2MAXLEVEL-i]]>d′=(h0′r+hxr+hyr+hdr)/2g′=(h0′s-hxs+hys-hds)/2j′=(h0′t+hxt-hyt-hdt)/2m′=(h0′u-hxu-hyu+hdu)/2hxd(r,u)=(m′-j′+g′-d′)/4hyd(r,u)=(m′+j′-g′-d′)/4hdd(r,u)=(m′j′-g′+d′)/4在等式7中,i是包含当前对角偏移阵列的多分辨率小波域数据结构的层数;r、s、t和u是识别对角偏移偏移阵列一个像素的阵列的索引;hxr、hyr和hdr是小波域系数,并且h0’r是与顶层左边阵列r相对应的近似低频小波域系数;hxs、hys和hds是小波域系数,并且h0’s是与顶层右边阵列s相对应的近似低频小波域系数;hxt、hyt和hdt是小波域系数,并且h0’t是与底层左边阵列t相对应的近似低频小波域系数;hxu、hyu和hdu是小波域系数,并且h0’u是与底层右边阵列u相对应的近似低频小波域系数;并且h0(r,u)TOP是来自多分辨率数据结构的顶层(层MAXLEVEL)、并且对应于包含阵列r至u的阵列的低频小波域系数或平均值。
在图4的编码器400中,帧存储器470包含已经被编码、量化、去量化和解码的前帧的小波域数据(如阶层结构)。对于后帧的帧间编码,半像素数据生成器480使用在存储器470中的前帧的小波域数据来生成半像素数据。具体地讲,半像素数据生成器480可以使用等式5、6和7,生成阶层式数据结构每一层i的半像素小波域数据。
作为结果的小波域数据和来自生成器480的半像素小波域数据,能够被结合进图7A显示的多分辨率数据结构700。多分辨率数据结构700的每一层,子带阵列Hx、Hy和Hd被改进到不但包括各自小波域系数hx、hy和hd的集合,而且包括插入小波域系数hx、hy和hd之间的近似的半像素小波域系数(hxx,hxy,hxd)、(hyx、hyy、hyd)和(hdx、hdy、hdd)。阶层式结构的顶层另外包括顶层的能够被精确计算的低频系数h0TOP和半像素低频系数hxTOP、hyTOP和hdTOP。
图7B表示在多分辨率数据结构750中小波域数据和半像素小波域数据的另一种结构。数据结构750在顶层以下的每一层有十二个子阵列Hx、Hy、Hd、Hxx、Hyx、Hdx、Hxy、Hyy、Hdy、Hxd、Hyd和Hdd。子阵列Hx、Hy和Hd分别包含依照底层像素值相应位置排列的小波域系数hx、hy和hd。子阵列Hxx、Hyx、Hdx、Hxy、Hyy、Hdy、Hxd、Hyd和Hdd分别包含依照底层像素值的位置排列的半像素小波域系数hxx、hyx、hdx、hxy、hyy、hdy、hxd、hyd和hdd。多分辨率数据结构750能够使另一帧的相同一层的目标区块与小波域数据区块的比较简单化,因为目标区块能够被直接与子阵列Hx、Hy、Hd、Hxx、Hyx、Hdx、Hxy、Hyy、Hdy、Hxd、Hyd和Hdd的区块进行比较。
当搜索正在编码的帧间的一部分的最佳匹配时,图4的运动估计单元490搜索前帧小波域数据和半像素数据。使用半像素小波域数据有效地扩大了用于与帧间小波域数据区块相匹配的码本中的向量数目,从而在编码过程中能够提高压缩率和获得的图像质量。
图8的流程图,是依照在编码器400(图4)实现的本发明实施方式的视频编码处理800。编码处理800在步骤810从小波变换单元410为视频图像帧生成小波域数据开始。然后步骤815确定该帧是没有运动估计而编码的帧内,还是需要运动估计的帧间。可替换地,可以在确定运动估计达到的压缩量之后,做出该帧是帧内编码还是帧间编码的选择。具体地讲,如果运动估计显示这帧明显不同于前面的帧,则这帧能够被选择为帧内编码。
对于帧内,量化单元430和熵编码单元440为这帧量化、编码和传输小波域数据。在步骤825,去量化单元450为可能用于其它帧的运动估计而对量化的小波域数据进行去量化。帧缓冲存储器470存储从去量化单元450输出的去量化的小波数据。
在处理800的步骤830,半像素数据生成器480从帧存储器470中的缓冲小波域数据生成半像素数据。步骤830生成半像素数据预料随后帧被帧间编码,但是在某些情况下,半像素数据可能不需要。为了减少对处理能力的要求,另一种编码处理只在需要运动估计的帧间编码过程中,才生成半像素数据。
在步骤830的半像素小波域信息生成之后,如果步骤835指示用于编码的另一帧,则处理800分支返回步骤810。
如果正在编码的帧是帧间,则处理800从步骤815分支到步骤840,这里运动估计单元490在该帧选择目标区块。目标区块能够是小波域阶层式数据结构的特定层的小波域系数的区块。能够应用多种目标区块的选择处理。例如,每一目标区块能够有依照区块内容选择的不规则的尺寸。可替换地,区块能够有固定的尺寸(如16×16阵列)或依照目标区块阶层式结构的层而选择的尺寸。
一旦选择了目标区块,运动估计单元490在前帧的相同一层中搜索小波域数据和半像素数据,以识别最佳匹配的区块。然后运动估计单元490生成与最佳匹配区块相对应的运动向量。每一个运动向量能够包括附加比特,该附加比特被设置与否指示运动向量识别小波域数据还是半像素数据。从而运动向量能够识别小波域数据块或半像素数据块。在步骤855,最佳匹配区块从目标区块中被去除,以生成差分区块,该差分区块成为代表正在编码的帧的差分数据的一部分。然后步骤860确定是否可以选择另外哪一个目标块。
运动估计单元490为多分辨率结构的每一层重复步骤840至860,直到没有遗留待选择的目标区块,并且差分区块的集合形成帧的小波域差分数据。在步骤865,量化单元430和熵编码单元440量化、编码和传输小波域差分数据和相关的运动向量。
在步骤870和875,去量化单元450将差分数据去量化,并且加法器460回加运动向量所识别的最佳匹配区块。结果,编码处理800重构小波域数据(具有可能在量化、编码、解码或去量化中引入的变化),然后处理800回到步骤830生成可能用于下一帧运动估计的半像素数据。
既然运动估计处理使用能够识别半像素数据的运动向量,则解码处理可能需要一些半像素小波域图像数据。图9的流程图,是依照本发明实施方式的解码处理900。
解码处理900在步骤910从解码器500接收编码帧数据开始。在步骤915,解码器500确定帧数据相对应的是帧间还是帧内。帧内数据不包括运动向量且不需要用于解码的半像素数据。因此,帧内使用常规技术能够解码。具体地讲,步骤920解码和去量化代表帧内的小波域数据,步骤965能够对其进行小波逆变换,以重构像素信息。在逆变换之前,步骤920缓冲可能随后用于帧间解码的小波域数据。
如果步骤915确定接收的帧数据相对应的是帧间,则处理900从步骤915分支到步骤925,对与帧间相关的差分数据和运动向量进行解码和去量化。然后步骤930为以下处理选择一个运动向量,该处理从差分数据和前帧缓冲小波域数据重构帧间小波域数据。
随后的步骤930、步骤935确定选择的运动向量相对应的是小波域数据匹配区块还是半像素数据匹配区块。如果运动向量相对应的是小波域数据区块,则步骤945识别和使用来自前帧缓冲的小波域数据的小波域数据区块。
如果运动向量相对应的是半像素数据区块,则步骤940从前帧缓冲的小波域数据生成半像素数据区块。具体地讲,步骤940能够使用如上所述的等式5、6和7,生成需要的区块半像素数据。对于解码,不需要生成所有半像素数据,并且为减小处理能力的要求,只生成运动向量所识别的半像素数据区块。可替换地,在运动向量识别特定区块之前,解码器能够确定全部半像素小波域数据。
步骤950将识别的或生成的小波域数据或半像素数据区块加到差分阵列中的、并相应于运动向量的区块。步骤930至955对于每一个运动向量重复一次,所以步骤950的加法为正在被解码的帧间重构小波域数据。在步骤965进行小波逆变换以重构帧显示所需要的像素数据之前,为了可能用于随后的帧间解码,缓冲新近解码的小波域数据。
如上所述,处理能力相对小一些的编码器能够从小波域数据生成半像素数据。半像素数据能够被包括在运动估计搜索中,并且有效地扩展了可能匹配的区块的码本。这种扩展通过更有效地移除视频信号的冗余信息来提高压缩。
虽然本发明参考具体实施方式
进行了描述,但这种描述仅是本发明应用的一个实例,并且不应该作为局限。例如,尽管本描述强调基于前面来源帧到后面目标帧的运动估计,但是其它使用跟随目标帧的一个来源帧或多个来源帧的运动估计程序也适合在本发明实施方式中采用。此外,本发明上面描述的原理能够更一般地被施加到其它的类型和维的小波变换。本发明实施方式公开特征的各种其它修改和组合在权利要求所定义的本发明的范围之内。
权利要求
1.一种编码器,包含小波变换单元,可用于将视频数据从空间域转换到小波域;半像素数据生成器,可用于从小波变换单元接收小波域数据,其中所述半像素数据生成器从小波域数据生成半像素数据,半像素数据近似于从相对于小波变换单元变换的矩阵而偏移的矩阵的小波变换中产生的小波域数据;和运动估计单元,可用于在小波域数据和半像素数据中搜索与正在被编码的帧中目标区块最佳匹配的区块。
2.如权利要求1的编码器,其中所述半像素数据生成器在没有进行小波逆变换的情况下,从小波域数据生成半像素数据。
3.如权利要求1的编码器,进一步包含量化单元,可用于将帧内编码的小波域数据进行量化;存储器;和去量化单元,可用于将从量化单元输出的数据进行去量化,并且将结果存储在存储器中用于后续帧的运动估计。
4.如权利要求1的编码器,其中所述小波变换是二维H变换。
5.如权利要求1的编码器,其中所述半像素生成器使用多分辨率数据结构的层的高频小波域数据和所述层的低频小波域数据近似值,为所述层生成半像素数据。
6.如权利要求5的编码器,其中所述层的低频小波域数据近似值被来自多分辨率数据结构的较高层的低频小波域数据所确定。
7.如权利要求5的编码器,其中所述多分辨率数据结构的较高层是所述多分辨率数据结构的顶层。
8.如权利要求1的编码器,其中对于从与小波域数据相对应的矩阵水平偏移的偏移矩阵,所述编码器使用下面的等式确定包括半像素系数hxx(r,s)、hyx(r,s)和hdx(r,s)的半像素数据。hxx(r,s)=(h0′s-hxs-h0′r-hxr)/2;hyx(r,s)=(hys-hds+hyr+hxr)/2;和hdx(r,s)=(hys-hds-hyr-hdr)/2,其中r和s是识别从所述偏移矩阵水平偏移一个系数的阵列的索引;hxr、hyr和hdr是小波域系数,并且h0’r是与r相对应的近似低频小波域系数;和hxs、hys和hds是小波域系数,并且h0s是与s相对应的近似低频小波域系数。
9.如权利要求1的编码器,其中对于从与小波域数据相对应的矩阵垂直偏移的偏移矩阵,所述编码器使用下面的等式确定包括半像素系数hxy(r,s)、hyy(r,s)和hdy(r,s)的半像素数据。hxy(r,s)=(hxs-hds+hxr+hdr)/2;hyy(r,s)=(h0′s-hys-h0′r-hyr)/2;和hdy(r,s)=(hxs-hds-hxr-hdr)/2,其中r和s是识别从所述偏移矩阵垂直偏移一个系数的阵列的索引;hxr、hyr和hdr是小波域系数,并且h0’r是与r相对应的近似低频小波域系数;和hxs、hys和hds是小波域系数,并且h0s是与s相对应的近似低频小波域系数。
10.如权利要求1的编码器,其中对于从与小波域数据相对应的矩阵对角偏移的偏移矩阵,所述编码器使用下面的等式确定包括半像素系数hxy(r,s)、hyy(r,s)和hdy(r,s)的半像素数据。d′=(h0′r+hxr+hyr+hdr)/2;g′=(h0′s-hxs+hys-hds)/2;j′=(h0′t+hxt-hyt-hdt)/2;m′=(h0′u-hxu-hyu+hdu)/2;hxd(r,u)=(m′-j′+g′-d′)/4;hyd(r,u)=(m′-j′-g′-d′)/4;和hdd(r,u)=(m′-j′-g′+d′)/4,其中r、s、t和u为识别从所述偏移矩阵对角偏移一个系数的阵列的索引;hxr、hyr和hdr是小波域系数,并且h0’r是与r相对应的近似低频小波域系数;hxs、hys和hds是小波域系数,并且h0s是与s相对应的近似低频小波域系数;hxt、hyt和hdt是小波域系数,并且h0’r是与t相对应的近似低频小波域系数;和hxu、hyu和hdu是小波域系数,并且h0s是与u相对应的近似低频小波域系数。
11.一种编码器处理,包含对视频数据第一帧进行小波变换,以生成第一小波域数据;从第一小波域数据生成半像素数据,其中半像素数据近似从相对于在小波变换过程中使用的矩阵而偏移的矩阵的小波变换中产生的小波域数据;在小波域数据和半像素数据中搜索与来自代表第二帧的第二小波域数据的目标区块最佳匹配的区块;和在代表第二帧的数据流中包含运动向量,该运动向量用于识别与目标区块最佳匹配的区块。
12.如权利要求11的编码处理,其中在没有进行小波逆变换的情况下,从第一小波域数据生成半像素数据被实现。
13.如权利要求11的编码处理,其中第一小波域数据包括包含顶层和较低层在内的多层,每一个较低层包括高频小波域数据,所述顶层包括高频小波域数据和低频小波域数据;和从第一小波域数据生成半像素数据包含组合来自一个较低层的高频小波域数据与该较低层的低频近似值。
14.如权利要求13的编码处理,其中所述较低层的低频近似值从顶层中的低频小波域数据导出。
15.如权利要求11的编码处理,其中生成半像素数据包含使用下面等式为从与小波域数据相对应的矩阵水平偏移的偏移矩阵确定半像素系数hxx(r,s)、hyx(r,s)和hdx(r,s),hxx(r,s)=(h0′s-hxs-h0′r-hxr)/2;hyx(r,s)=(hys-hds+hyr+hxr)/2;和hdx(r,s)=(hys-hds-hyr-hdr)/2,其中r和s是识别从所述偏移矩阵水平偏移一个系数的阵列的索引;hxr、hyr和hdr是小波域数据,并且h0’r是与r相对应的近似低频小波域系数;和hxs、hys和hds是小波域系数,并且h0s是与s相对应的近似低频小波域系数。
16.如权利要求11的编码处理,其中生成半像素数据包含使用下面等式为从与小波域数据相对应的矩阵垂直偏移的偏移矩阵确定半像素系数hxy(r,s)、hyy(r,s)和hdy(r,s),hxy(r,s)=(hxs-hds+hxr+hdr)/2;hyy(r,s)=(h0′s-hys-h0′r-hyr)/2;和hdy(r,s)=(hxs-hds-hxr-hdr)/2,其中r和s是识别从所述偏移矩阵垂直偏移一个系数的阵列的索引;hxr、hyr和hdr是小波域数据,并且h0’r是与r相对应的近似低频小波域系数;和hxs、hys和hds是小波域系数,并且h0s是与s相对应的近似低频小波域系数。
17.如权利要求11的编码处理,其中生成半像素数据包含使用下面等式为从与小波域数据相对应的矩阵对角偏移的偏移矩阵确定半像素系数hxy(r,s)、hyy(r,s)和hdy(r,s),d′=(h0′r+hxr+hyr+hdr)/2;g′=(h0′s-hxs+hys-hds)/2;j′=(h0′t+hxt-hyt-hdt)/2;m′=(h0′u-hxu-hyu+hdu)/2;hxd(r,u)=(m′-j′+g′-d′)/4;hyd(r,u)=(m′+j′-g′-d′)/4;和hdd(r,u)=(m′-j′-g′+d′)/4,其中r、s、t和u为识别从所述偏移矩阵对角偏移一个系数的阵列的索引;hxr、hyr和hdr是小波域数据,并且h0’r是与r相对应的近似低频小波域系数;和hxs、hys和hds是小波域系数,并且h0s是与s相对应的近似低频小波域系数;hxt、hyt和hdt是小波域数据,并且h0’r是与t相对应的近似低频小波域系数;和hxu、hyu和hdu是小波域系数,并且h0s是与u相对应的近似低频小波域系数。
18.一种视频解码处理,包含对数据结构进行解码,以取出与视频第一帧相关的差分阵列和运动向量,所述差分阵列包含小波域数据之间的差分;对于每一个运动向量,识别运动向量是第一种还是第二种,其中第一种运动向量识别代表第二帧的小波域数据的各个区块;和第二种运动向量识别与代表第二帧一部分的像素值矩阵的小波变换近似值相对应的各个数据区块,所述矩阵相对于在生成代表第二帧的小波域数据时所使用的矩阵偏移;将由第一种运动向量所识别的小波域数据的各个区块加到差分阵列的相应部分;和对于每一个第二种运动向量,从代表第二帧的小波域数据,生成由第二种运动向量所识别的数据区块,并且将如此生成的区块加到与第二种运动向量相对应的差分阵列的部分。
19.如权利要求18的方法,进一步包含对从将小波域数据和所生成的数据区块加到差分阵列而产生的阵列进行小波逆变换。
20.如权利要求18的方法,其中在没有对第二帧的小波域数据进行小波逆变换的情况下,从第二帧的小波域数据生成由第二种运动向量所识别的数据区块。
21.如权利要求18的方法,其中代表第二帧的小波域数据包括包含顶层和较低层在内的多层,每一个较低层包括高频小波域数据,所述顶层包括低频小波域数据;和生成由第二种运动向量所识别的数据区块包含组合一个较低层的高频小波域数据和该较低层的低频近似值。
22.如权利要求21的方法,其中所述较低层的低频近似值从顶层中的低频小波域数据导出。
23.一种代表视频的数据结构,包含表示视频第一帧小波域数据的第一数据;表示视频第二帧差分阵列的第二数据;第一种运动向量,其中所述第一种运动向量与差分阵列的各个区块相对应,并且当为第二帧生成小波域数据时,识别小波域数据区块,用于加到差分阵列的相应区块;和第二种运动向量,其中所述第二种运动向量与差分阵列的各个区块相对应,并且当为第二帧生成小波域数据时,识别半像素域数据区块,用于加到差分阵列的相应区块,半像素数据数据近似来自第一帧的阵列的小波域变换,所述来自第一帧的这些阵列相对于在为第一帧生成小波域数据时所使用的阵列偏移。
24.如权利要求23的数据结构,其中所述第一数据包含表示用于视频第一帧的第二差分阵列的数据;与第一帧相关的第一种运动向量,其中与第一帧相关的第一种运动向量与第二差分阵列的各个区块相对应,并且当为第一帧生成小波域数据时,为第三帧识别小波域数据区块,用于加到第二差分阵列的相应区块;和与第一帧相关的第二种运动向量,其中与第一帧相关的第二种运动向量与第二差分阵列的各个区块相对应,并且当为第一帧生成小波域数据时,识别半像素数据区块,用于加到第二差分阵列的相应区块,半像素数据近似来自第三帧的阵列的小波变换,所述来自第三帧的这些阵列相对于在为第三帧生成小波域数据时所使用的第三帧的阵列偏移。
全文摘要
一种减小混淆效应的小波域半像素运动补偿处理(图4),使用H变换(410),并且在不需要小波逆变换的情况下,提供小波域运动估计和补偿(490)。对于编码,q维H变换(490)按照常规方式被施加到第一帧的没有重叠的q×q矩阵。当为第二帧确定运动向量时,第一帧的小波数据的“半像素”内插生成与q×q空间域矩阵相对应的半像素数据(480),这些矩阵是从已变换的q×q矩阵水平和/或垂直偏移。然后运动估计技术(490)能够通过比较一帧中小波域目标数据和另一帧的实际和内插的小波域数据来识别目标运动。在高性能小波视频编码器中,半像素内插或数据生成(480)能够与多分辨率运动估计相结合。
文档编号G06T9/00GK1640147SQ03804539
公开日2005年7月13日 申请日期2003年1月9日 优先权日2002年1月9日
发明者弗雷德里克·李, 乔纳森·张 申请人:奥克塔技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1