优选实施方式的详细描述
在以下本发明优选实施方式的描述中,可以参考形成其组成部分的附图,而且附图是通过图解本发明可被实践的具体实施方式来表示的。应该理解,在不偏离本发明的范围之下,可以利用其它实施方式并可以作出结构的改变。
1.0
例举的操作环境
图1表示了一种合适的计算系统环境100的一个例子,本发明可以在它上面实现。该计算系统环境100仅是一种合适的计算环境的一个例子,目的不在于限制本发明的使用或功能的范围。计算环境100不应该被解释成具有与示例性的操作环境100中表示的任何一个组成部分或其组成部分的组合相关的依赖性或规格。
本发明对于许多其它通用目的或专用目的的计算系统环境或配置是可操作的。适用于本发明的众所周知的计算系统、环境、和/或配置的例子包括,但不限于,个人电脑、服务器电脑、手持或膝上型电脑、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子产品、网络PC、小型计算机、大型计算机、包括以上系统或装置的任何一种的分布式计算环境,以及诸如此类。
本发明可以用计算机可执行指令的通用环境来描述,例如被计算机执行的程序模块。通常,程序模块包括子程序、程序、对象、变量、数据结构等,程序模块执行特定的任务或实现特定的抽象的数据类型。本发明也可以在分布式计算环境中被实践,其中由通过通信网络连接的远程处理设备执行任务。在分布式计算环境中,程序模块可以处于包括存储装置的本地和远程计算机存储媒体中。
参考图1,用于实现本发明的示例性的系统包括一个以计算机110的形式的通用目的计算装置。计算机110的组成部分可以包括,但不限于,处理单元120,系统存储器130,和将包括系统存储器的各种系统组成部分连接到处理单元120的系统总线121。系统总线121可以是包括存储器总线或存储控制器、外围总线、和使用多种总线结构的任一种的局部总线的几种类型的总线结构的任何一种。通过举例的方式,并不是限制,这种总线结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强工业标准结构(EISA)总线,视频电子标准协会(VESA)局部总线,和也被知晓为Mezzanine总线的外设部件互连(PCI)总线。
典型地,计算机110包括多种计算机可读介质。计算机可读介质可以是任何可用的能被计算机110访问的介质,它包括易失和非易失介质,可移动和不可移动介质。通过举例的方式,并没有限制,计算机可读介质可以包括计算机存储介质和传播介质。计算机存储介质包括易失和非易失、可移动和不可移动存储器,由用于存储例如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光盘存储器,盒式磁带、磁带、磁盘存储器或其它磁性存储装置、或任何能被用来存储所要求的信息并能被计算机110访问的其它介质。传播介质典型地包括了计算机可读指令、数据结构、程序模块或例如载波或其它传输机制的调制数据信号中的其它数据并还包括任何信息传输介质。术语“调制数据信号”指的是一种信号,它具有一个或多个特征,该特征以一种对信号中的信息进行编码的方式被设置或变更。用举例的方式,并没有限制,传播介质包括例如有线网络或直接有线连接的有线介质,和例如声、RF、红外和其它无线介质的无线介质。以上的任意组合应该也被包括在计算机可读介质的范围内。
系统存储器130包括以例如只读存储器(ROM)131和随机存储器(RAM)132的易失和/或非易失存储器形式的计算机存储介质。一个基本的输入/输出系统133(BIOS)典型地被存储在ROM131中,它包含了例如在启动时帮助在计算机110内的元件之间传输信息的基本程序。RAM132典型地包含了被处理单元120直接访问和/或即时操作的数据和/或程序模块。通过举例的方式,并不是限制,图1表示了操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失/非易失计算机存储介质。仅通过举例的方式,图1表示了从不可移动、非易失的磁性介质读取或写入的硬盘驱动器141,可从可移动、非易失的磁盘152读取或写入的磁盘驱动器151,和从例如CD ROM或其它光学介质的可移动、非易失的光盘156读取或写入的光盘驱动器155。其它能被用于示例性的操作环境中的可移动/不可移动、易失/非易失的计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录象带、固态RAM、固态ROM,以及诸如此类。硬盘驱动器141典型地通过例如接口140的一个不可移动的存储器接口被连接到系统总线121,以及磁盘驱动器151和光盘驱动器155典型地通过例如接口150的可移动存储器接口被连接到系统总线121。
上述以及由图1表示的驱动器和它们相关的计算机存储介质提供计算机可读指令、数据结构、程序模块和用于计算机110的其它数据的存储。在图1中,例如,硬盘驱动器141被表示成存储操作系统144、应用程序145、其它程序模块146、和程序数据147。注意这些组成部分可以与操作系统134、应用程序135、其它程序模块136、和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146、和程序数据147在这儿被用不同的数字表示,表明至少它们是不相同的。一个用户可以通过例如键盘162和被广泛称作鼠标、跟踪球或触摸垫的指示设备161的输入装置将命令和信息输入到计算机110中。其它输入装置(没有表示)可以包括麦克风、操纵杆、游戏垫、卫星反射器、扫描仪,或诸如此类。这些和其它的输入装置常常通过被连接到系统总线121的用户输入接口160被连接到处理单元120,但是可以通过其它例如并行端口、游戏端口或通用串行总线(USB)的接口或总线结构连接。监视器191或其它类型的显示装置通过例如视频接口190的接口也被连接到系统总线121。除了监视器,计算机也可以包括其它例如扬声器197和打印机196的外围输出设备,其可通过输出外围接口195被连接。本发明的特殊意义在于,能拍摄图像序列164的照相机163(例如数字/电子照相机或摄像机,或胶片/相片扫描仪)也能够被包括作为个人电脑110的输入装置。而且,虽然仅描绘了一个照相机,多个照相机可以被包括作为个人电脑110的输入装置。由一个或多个照相机拍摄的图像164通过合适的照相机接口165被输入到计算机110中。这个接口165被连接到系统总线121,由此使得图像被选择路径并存储到RAM132、或一个其它与计算机110相关的数据存储装置中。然而,注意到图像数据能从任何一个上述的计算机可读介质被输入到计算机110中,而不要求使用照相机163。
计算机110可以在对一个或多个例如远程计算机180的远程计算机使用逻辑连接的网络环境中操作。远程计算机180可以是个人电脑、服务器、路由器、网络PC、同等装置或其它普通的网络节点、并且典型地包括许多或全部上述的与计算机110相关的元件,尽管在图1中只表示了存储装置181。图1表示的逻辑连接包括一个局域网(LAN)171和一个广域网(WAN)173,但是也包括其它网络。这种网络环境在办公室、企业计算机网、内联网和互联网是常见的。
当用于LAN网络环境中时,计算机110通过网络接口或适配器170被连接到LAN171。当用于WAN网络环境中时,计算机110典型地包括一个调制解调器172或其它在例如互联网的WAN173上建立通信的装置。调制解调器172可以是内置的或外置的,它可通过用户输入接口160、或其它合适的机制被连接到系统总线121。在网络环境中,被描述的与计算机110相关的程序模块或它的部分可以被存储在远程存储装置中。通过举例的方式,并不是限制,图1表示了处于存储装置181上的远程应用程序185。应该理解表示的网络连接是示例性的,以及建立计算机之间通信连接的其它手段可以被采用。
现在在讨论了示例性的操作环境后,该描述部分的剩余部分将描述体现本发明的程序模块。
2.0
一种用于采用了混合方向预测和上升小波的图像编码的系统和方法
将在以下段落更详细地讨论本发明的图像编码系统和方法。本发明的概况和传统的上升技术的概况一起提出。然后参考传统的上升,比较和细述方向预测和上升技术。插值方法、预测角度估计和编码也被讨论。最后,本发明示例性的工作环境也被讨论。
2.1
发明概况
在图2中表示了本发明的系统和方法的概况。如处理操作202所示,表示图像的二维(2D)信号被输入到系统中。如处理操作204所示和图3所细述的,通过使用基于图像中的边缘和上升小波的方向预测,该2D信号然后被变换。变换的系数然后被输出(处理操作206)并被熵编码(处理操作208)。熵编码的系数然后被输出到如处理操作210所示的比特流。
如图3所示,使用了方向预测和上升小波的2D信号的变换包括在垂直方向执行1D小波变换(处理操作302)和在水平方向执行1D小波变换(处理操作304)。应该注意这两个处理操作顺序上可以颠倒。
处理操作302和304的特性如下。如处理操作306所示,第一1D小波变换沿垂直方向(处理操作306)被分成偶数和奇数的多相采样。“预测留数”或奇数的多相采样通过使用沿图像中的边缘选择的预测信号由邻近的偶数的多相采样预测(处理操作308)。然后偶数的多相采样通过使用预测的奇数的多相采样被更新,其中沿和在前预测步骤相同的方向选择更新的信号(处理操作310)。
类似地,第二1D小波变换被分成沿水平方向的偶数和奇数的多相采样(处理操作312)。“预测留数”或奇数的多相采样通过使用沿图像中的边缘选择的预测信号由邻近的偶数的多相采样预测(处理操作314)。然后偶数的多相采样通过使用预测的奇数的多相采样被更新,其中沿和在前预测步骤相同的方向选择更新的信号(处理操作316)。如图2所示,“预测留数”和更新的偶数的多相采样的系数然后被输出。
本发明的系统和方法将方向的空间预测合并到传统的基于上升的小波变换中以提供一种有效和灵活的DSP-上升图像编码技术。在本发明的一些实施例中,使用了流行的Haar,5/3和9/7滤波器。然而,本发明的系统和方法具有以下以前没有被其它上升方法采用的特征。
●在每个上升阶段,预测或更新信号并不总是来自于水平或垂直采样。它们能沿图像线性边缘被选择以减小高通系数的量级。
●出于精确的空间预测的目的,预测或更新信号可以来自于部分采样,这可由当今的插值技术计算。本发明的上升方法对插值方法没有限制。
●为了保证理想的重建,预测和更新的采样总是在整数位。
●当2D变换被分成两个1D变换,这两个1D变换在本发明的DSP-上升中不一定是垂直的。例如,在传统的上升中,两个1D变换总是在水平和垂直方向进行。默认第二1D变换垂直于第一1D变换。但是,在许多情况中,如果第一1D变换沿某一方向进行,第二1D变换的垂直方向不一定是最佳预测。在根据本发明的系统和方法中,第二变换能自由选择最佳预测方向并不被第一1D变换的方向所限制。但是要在水平和垂直方向实行将采样分成奇数和偶数的多相采样以产生四个矩形的子频段。
此外,本发明的系统和方法也采用了有效地对方向数据进行估计和编码的技术,因此提高了空间预测的精度并减少了附加位。这对于实现本发明的DSP-上升方法中的高性能是很关键的。本发明的一个实施例是在JPEG2000方式的编解码器中实行的,其中DSP-上升取代了传统的上升。
为了充分理解本发明和传统的上升技术之间的区别,以下部分记载和比较了传统上升的概况。
2.2
传统上升的概况
现在将回顾一下作为一个讨论根据本发明的系统和方法的开端的由Daubechies等在[23]中提出的传统上升。一个特别的图像被用来清楚地解释现有的小波/子频段图像编码方法中存在的问题。小波变换的基本思想是用存在于大部分真实生活信号中的相关结构来构造一个稀疏估计。邻近的采样和频率比那些离得很远的要更相关。
x(m,n)m,n∈Z是2D信号。没有一般性损耗,可以假定该信号首先在垂直方向上进行1D小波变换(例如在图像中的每行进行垂直小波分解)以及然后是在水平方向(例如在图像中的每列进行水平小波分解)。根据[23]中给出的技术,每个1D小波变换能被分解成一个或多个上升阶段。上升可以被看作一种利用空间域技术分析和合成给定信号的方法。一般,一个典型的上升阶段包括三个阶段:分割,预测和更新。在分割阶段,输入信号被分成两个不相交集,奇数的和偶数的采样。在预测阶段,偶数的采样被用来预测奇数的系数。该预测的值被从奇数的系数中减去以给出预测中的误差。在更新步骤中,偶数的系数和预测中的误差结合,其被通过一个更新函数以对偶数的系数提供更新。上升步骤很容易被颠倒。那就是说,有可能由误差预测的系数和偶数的系数的更新来重建原始信号。
更特别的是,以下将更详细地描述和垂直1D小波变换相关的上升阶段。
首先,1D垂直小波变换的所有采样被分成两个部分:偶数的多相采样和奇数的多相采样,
在预测步骤,从邻近的偶数的多相采样中预测奇数的多相采样。用以下方程计算预测留数h(m,n),
由于现在将讨论垂直变换,每个xo(m,n)的预测是第m列邻近的偶数的系数的线性组合,
值得注意pi与传统上升中的变量m无关。因此,方程(3)的冲击响应函数可以被简化成1D形式,即
其中z是Z域中的变量以及pi是预测参数,其由小波滤波器决定。一般,仅当有限数量的系数pi是非零的情况下才考虑FIR小波滤波器。此处设ib和ie分别为最小和最大的整数i,其中pi是非零的。在方程(2)的计算后,通过用预测留数h(m,n)代替xo(m,n)来得到x(m,n)的新的表达式。它等价于x(m,n)。给出奇数的多相采样的预测和预测留数,就可用方程(2)理想地重建原始的奇数的多相采样。
在更新步骤,偶数的多相采样被替换成
l(m,n)=xe(m,n)+Uh(m,n) 0 (5)
此处Uh(m,n)是第m列中邻近的预测留数的线性组合,
类似地,以下给出方程(6)的有限冲击响应函数
此处jb和je分别是最小和最大的整数j,其中uj是非零的。uj是更新参数,其由小波滤波器所决定。这个步骤一般又是可颠倒的。给出l(m,n)和h(m,n),就可理想地重建偶数的多相采样。
变量pi和uj是滤波参数。非零滤波参数的数目和它们的量级通常依使用的小波滤波器而不同。然而,具有不同滤波器的1D基于上升的变换一般可用图4所示的框架来描述。图4(a)是前向的基于上升的变换。图4(b)是逆向的基于上升的变换。变量K是上升阶段的数目(对于Haar和5/3滤波器K=1以及对于9/7滤波器K=2)。滤波器是线性时不变算符并完全由它的冲击响应确定。有限冲击响应滤波器(FIR)是仅当有限数量的滤波器系数是非零的情况。为了方便比较本发明的DSP上升技术和传统的上升,以下列出Haar、5/3和9/7滤波器的FIR函数,
1D水平上升变换以和上述关于垂直上升变换相同的方式被实行,但是它在m维上执行。从以上讨论中,可以发现方程(3)和(6)的预测总是邻近的整数采样或在水平或垂直方向的高通系数的组合。当编码图像的许多边缘既不水平也不垂直时,以下讨论的问题出现了。
为了清楚地解释该问题,如图5(a)所示,使用了用于2D小波变换一个特别的图像。它由四行方块组成:第一行具有水平条纹的四个方块,第二行和第四行具有倾斜条纹的四个方块,和第三行具有垂直条纹的四个方块。在传统的2D上升变换后,得到了图5(b)、(c)、(d)和(e)表示的四个子频段。这些子频段由将2D小波通过低通和高通滤波器所得到。起初,用垂直的1D变换对2D小波进行操作,这产生了由低通系数定义的图像和由高通系数定义的图像。然后用水平的1D变换对2D小波进行操作,这产生了由低通系数和高通系数定义的图像。这四个图像然后被合并成四个被描绘的子频段。在低高(LH)子频段,仅第一行被水平变换完全移除。在高低(HL)子频段,仅第三行被垂直变换完全移除。在高高(HH)子频段,具有倾斜条纹的行在水平和垂直变换后仍然保持。可以清楚地观察到,那些高通子频段包含许多纹理信息。这在低比特率下会产生低的编码效率和差的视觉质量。
2.3
采用了本发明的混合方向预测和上升小波的图像编码的系统和方法的 上升结构
传统的上升和根据本发明的系统和方法的DSP上升的主要区别在于方程(3)和(7)。不同于传统的上升总是在水平或垂直方向产生预测,本发明的DSP上升技术利用了局部空间相关性。如图6所示,假定像素在角度θv处具有强相关性,其中整数像素由标记“”表示,二分之一像素由标记“×”表示以及四分之一像素由标记“+”表示。在本发明的DSP上升系统和方法中,x(m,2n+1)的预测来自于图6中由箭头指出的偶数的多相采样。这些依如下计算,
其中tg()=sin()/cos()。
相应的有限冲击响应函数是
由于预测总是由偶数的多相采样计算,如果方位角已知,DSP上升可以用方程(2)理想地重建奇数的多相采样。
在更新步骤,本发明的DSP上升技术使用了和预测步骤相同的方位角以最小化对角度数据进行编码的必要的位数。因此,偶数的多相采样的预测被给作
相应的有限冲击响应函数是
显然,它也保证了理想的重建。
本发明的DSP上升系统和方法可以采用不同的小波滤波器,其同样可用如图6所示的框架来描述。如下给出建议的Haar、5/3和9/7滤波器的FIR函数,
与方程(8)、(9)和(10)比较,传统上升可以被视作本发明的DSP上升的一个特殊情况,其中θv等于零。特别地,当1D小波变换被分解成多于一个的上升阶段(例如9/7滤波器),除了第一上升阶段,通过将θv设置为零可使空间预测在其它阶段无效,这因为在前的上升阶段已经消除了方向相关性。
上述讨论已经叙述了本发明的DSP上升中的1D垂直变换。水平变换以相似的方式在m维中实行。值得注意的是水平变换的方位角θh并不要求与θv垂直,以使水平变换能找到分解的最佳方向。
图8表示了本发明的DSP上升分解之后的结果。在HL子频段,在垂直变换后仅具有水平条纹的行保留。在垂直和水平变换后,在HH子频段没有任何行保留。由于垂直变换后的下采样过程,本发明的DSP上升技术不能找到准确的预测方向。但是即使在这种情况下,LH子频段的能量比传统上升分解的要小得多。
2.4
插值
出于准确的空间预测的目的,本发明的DSP上升允许方位角指向分数像素。换句话说,用于方程(12)和(13)的tg(θ)可以不是整数。因此,在这种情况下需要插值技术。
如图6所示,x(m,2n+1)的预测使用了x(m-1,2n+2)和x(m,2n+2)之间以及x(m,2n)和x(m+1,2n)之间的二分之一像素。一般,不能求得这些二分之一像素的值。插值是计算分数像素值的方法。有许多方法,例如,线性插值是
y=(x(m-1,2n+2)+x(m,2n+2)+1)>>1.
通过使用方程(12)为例来讨论插值技术。首先,为了理想地重建,被用来对分数像素插值的整数像素应该属于xe(m,n)。该技术不能使用任何来自xo(m,n)的整数像素。插值一般可被描述成
此处k是sign(i-1)tg(θ)附近的整数以及ak是插值滤波器的参数。在方程(18)的z变换之后,得到了
参数ak具有有限数目的非零系数。在这个实施例中,采用了流行的Sinc插值,其决定了值ak。方程(14)的插值以相同的方式实现。
2.5
方向估计
每个采样的方位角θv和θh在给定的块大小下局部地估计,例如一个16×16的块。如图8所示,一个16×16的块能被划分成三个模式:16×16(图9A),8×8(图9B)和4×4(图9C)。在16×16的模式中,所有的像素具有相同的方位角。在4×4的模式中,每个方块具有16个方位角以及在4×4的子块中的所有像素具有相同的角度。此外,预测的角度越精确,空间预测就越准确。由视频编码中的运动补偿的知识,本发明的实施例优选于将预测精度提高到四分之一像素。
大体上,在图10中表示了图像中角度估计的过程。如处理操作1002、1004和1006所示,对于图像中的每个宏块,可从不同的块大小和垂直方向中的候选角中找到最佳预测角和模式。然后实行1D垂直变换(处理操作908)。如处理操作1010、1012和1014所示,对于图像中的每个宏块,从不同的块大小和水平方向中的候选角中找到最佳预测角和模式。然后执行1D垂直变换,如处理操作1016所示。
图11表示了宏块中角度和模式估计的过程。如处理操作1102、1104、1106所示,可以找到16×16的宏块中的最佳角度、8×8的宏块中的最佳角度和4×4的子块中的最佳角度。然后基于处于块模式水平的这三个最佳角度找到最佳模式(处理操作1108)。在用于垂直和水平变换的方程(20)和(21)中给出了确定最佳角度和模式的准则。
建议用R-D法则来确定每个16×16的块的预测模式和方位角。以下给出用于在垂直上升变换中估计模式和方位角的准则,
此处,h(m,n)是垂直变换后的高通系数,其可以由方程(2)计算。Rv是对模式和方位角编码的位数;λv是拉格朗日因子;以及(m0,n0)是h(m,n)的左上方像素的座标。
在对估计的方向数据进行垂直上升变换后,可以得到低通信号l(m,n)和高通信号h(m,n)。它们继续被用水平变换处理。一般而言,h(m,n)具有较少能量。不需要在垂直分解后用另一组预测模式和角度对高通子频段进行水平变换。因此,h(m,n)在水平方向被分解。
有另一组分解l(m,n)的预测模式和角度,这与用于垂直分解的不同。以下给出新的准则,
此处,lh(m,n)是LH子频段的系数。Rh是进行模式和方位角编码的位数。λh是拉格朗日因子。以及(m1,n1)是lh(m,n)的左上方像素的座标。
2.6
方位角编码
用固定的但是自适应映射的可变长编码(VLC)表对方位角编码。如图12所示,假定当前块的角度c被编码。即将用邻近块的角度a、b和d来预测编码角。可用以下准则来选择哪个角度被用作预测,
换句话说,如果角度b和d具有更大的差值,那么角度a被用作预测;否则角度d被用作预测。
VLC表的码元根据预测角度被自适应分配。预测角度作为最短码元被给出,以及从短到长的码元根据其它角度和预测角度之间的绝对差值被分配给这些角度。之后,用预定义的表对当前角度c进行编码。
2.7
根据本发明的系统和方法的示例性的应用
除了图像编码,提出的DSP上升也能被用于许多其它领域。现在,讨论本发明的系统和方法的两个示例性的应用:空间可缩放视频编码和低延迟小波视频编码。
2.7.1
空间可缩放视频编码
空间可缩放性是视频编码中非常需要的特性,特别是随着无线网络和便携装置的增加。这是一个很难解决的难题。许多研究已经表明空间可缩放性将会大大地损害编码效率。实现空间可缩放性的方案之一首先是将视频序列分解成几个四个一组的低分辨率的序列以及然后将它们共同或分别编码。然而,这些序列的高通序列很难用现有的运动补偿方法压缩。在本发明的DSP上升技术的帮助下,高通序列具有少得多的能量,这是因为用方向空间变换大大地消除了像素之间的相关性。用内编码压缩每个高通序列。
2.7.2
低延迟3D小波视频编码
MPEG需要关于可缩放视频编码的建议。大部分被提议的方法都利用了时域小波分解。这些方法中的一个大问题是由于多层时域分解故延迟是相当大的。它不能满足来自低延迟和实时应用的要求。根据提出的本发明的DSP上升,3D小波视频编码方法能减少时域分解的数量。用方向空间预测能消除低频段的帧之间的相关性。
出于解释和说明的目的,已经提供了在前的本发明的描述。它并不是详尽的或是将本发明限制于公开的具体形式。鉴于上述思想,许多改进和变化是可能的。本发明的范围不应该被这份详细的描述所限制,而是应该由此处所附的权利要求所限制。