具体实施方式
在三维(“3D”)小波或子带视频编码中,通过多个时间变换和空间变换视频被分解为许多时间-空间子带。子带有点独立,由此可以针对可伸缩性去除它们中的一些。例如,为了解码低空间分辨率视频,空间高通子带被略去并且解码器只执行在空间低通子带中的接收数据的解码。
这里描述的各种技术和工具可以独立地使用。一些技术和工具可以组合使用(例如在组合的编码和/或解码处理的不同的阶段)。
I.示例操作环境
图1示出合适的计算环境(100)的普遍例子,其中可以实施几个描述的实施例。计算环境(100)不趋于对任何关于使用或功能的范围的作出限制,因为描述的技术和工具可以在各种通用或专用的计算环境中实施。
参照图1,计算环境(100)包括至少一个处理单元(110)和存储器(120)。在图1中,最基本的结构(130)包含在虚线中。处理单元(110)执行计算机可执行的指令并且可以是一个真实的或虚拟的处理器。在一个多处理系统中,多个处理单元执行计算机可执行的指令以增加处理能力。存储器(120)可以是易失性存储器(例如寄存器、超高速缓冲存储器、RAM)、非易失性存储器(例如ROM、EEPROM、快速存储器等等)或者其中两个的一些组合。存储器(120)存储实现使用本文描述的一个或多个技术的视频编码器和/或解码器的软件(180)。
计算环境可以具有附加的特征。例如,计算环境(100)包括存储器(140)、一个或多个输入装置(150)、一个或多个输出装置(160)以及一个或多个通信连接(170)。互连装置(未示出)诸如总线、控制器或网络使计算环境(100)的部件互相连接。典型地,操作系统软件(未示出)提供操作环境用于在计算环境(100)中执行另一软件,并且调整计算环境(100)的部件的活动性。
存储器(140)可以是可移动的或非可移动的,并且包括磁盘、磁带或盒式磁带、CD-ROM、DVD或任何其它可以用于存储信息并且能够在计算环境(100)中存取的介质。存储器(140)存储用于软件(180)的指令。
输入装置(或多个输入装置)(150)可以是一个接触输入装置诸如键盘、鼠标、笔、或眼踪球、声音输入装置、扫描装置、或其它提供输入到计算环境(100)的装置。对于音频或视频编码,输入装置(或多个输入装置)(150)可以是一个声卡、显卡、TV调谐器卡、或类似接收模拟或数字形式的音频或视频输入的装置、或读取音频或视频采样到计算环境(100)中的CD-ROM或CD-RW。输出装置(或多个输出装置)(160)可以是一个显示器、打印机、扬声器、CD-记录器、或其它提供来自计算环境(100)的输出的装置。
通信连接(或多个通信连接)(170)允许通过通信媒介与另一计算实体通信。通信媒介传送信息诸如计算机可执行的指令、音频或视频输入或输出、或其它以调制数据信号形式的数据。调制数据信号是一个具有一个或多个它的特征组的信号,或以这样的方式改变以便编码该信号中的信息的信号。通过例子,并且不限于该例子,通信媒介包括用一个电的、光的、RF、红外的、声学的或其它载体实施的有线或无线技术。
该技术和工具可以在计算机可读介质的一般环境中描述。计算机可读介质是任何可获得的可在计算环境中访问的介质。通过例子,并且不限于该例子,和计算环境(100)一起,计算机可读介质包括存储器(120)、存储器(140)、通信媒介以及上述任意的组合。
该技术和工具可以在计算机可执行指令的一般环境中描述,计算机可执行指令是诸如包括在程序模块中的正在计算环境中在目标真实的或虚拟的处理器上执行的那些指令。通常,程序模块包括执行特定任务或实施特定摘要数据类型的例行程序、程序、程序库、目标程序、种类、成分、数据结构等等。程序模块的功能可以组合或者在程序模块之间分开如各种实施例中期望的。用于程序模块的计算机可执行指令可以在本地或分布的计算环境中执行。
为了表示起见,详细描述部分中使用词语如“信号”、“确定”和“应用”以便描述计算环境中的计算机操作。这些词语是用于由计算机执行的操作的高级概括,并且不应该与人执行的动作混淆。相应于这些词语的实际的计算机操作依赖于实施而改变。
II.示例视频编码器和视频解码器
图2是一个通用的视频编码器系统(200)的方框图,其中可以实施各种描述的实施例。图4示出具有四层时间分解以及后面是一层空间分解的通用编码器(400)。图3是通用视频解码器系统(300)的方框图,其中可以实施各种描述的实施例。图5示出具有四层(逆)时间分解和两层(逆)空间分解的组合的编码器/解码器系统(500)。
在编码器和解码器中的模块之间示出的关系表示编码器和解码器中的信息的主流程;为了简单起见,其它的关系未示出。特别地,除运动信息以外,图2和3未示出表示编码器设置、模式、表格等等用于视频序列、帧、宏块、块等等的辅助信息。这样的辅助信息以输出比特流发送,可能地在辅助信息的熵编码之后发送。
依赖于实施和期望的压缩类型,示出在图中的一个编码器或解码器的模块可以被加入、省略、分为多个模块、与其它模块组合和/或用相似的模块代替。在可选择的实施例中,具有不同模块的编码器或解码器和/或其它结构的模块执行一个或多个期望的技术。例如,虽然图2示出编码器系统(200)中时间分解(210)下游的空间分解(230),编码器系统(200)可以在时间分解(210)开始之前选择地或另外包括一个或多个空间分解层。在这样的情况中,一个相应的解码器系统(300)可以在逆时间分解(310)之后包括一个或多个逆空间分解层。
3D子带视频编码获得与目前状况的非可伸缩的视频编码(例如依据H.264或VC-1标准)在中间或高比特率方面可以比较的性能。然而,与传统的非可伸缩的方法相比,花费在3D子带视频编码中的编码运动矢量的比特量是相对较大的。因此,3D子带视频编码与非可伸缩方法相比在低比特率方面执行地较差,其中花费在编码运动矢量的比特占总比特率的较大百分比。
A.示例视频编码器
3D子带视频编码是通过采用视频的多级空间/时间子带分解提供多级空间和/或时间可伸缩性的一流的方法。图2说明一般的3D子带视频编码方案(200)。编码器(200)接收视频图像序列(205)(例如逐行视频帧、隔行视频帧、或隔行视频帧的场)并且产生压缩的视频信息(295)作为输出。视频编码器的特定的实施例一般使用通用的编码器(200)的变化或补充的型式。
编码器(200)通过一个时间子带变换(210)分解一个视频信号。图2示出用于单级时间分解为低分辨率子带和高分辨率子带的输出,但是时间分解可以包括4、5或一些其它分解级数。
在图2中,时间分解(210)是运动补偿的时间滤波(“MCTF”),所以编码器(200)执行运动估计(220)以计算视频信号的运动信息。运动估计(220)的精确策略依赖于实施并且可以包括例如后面是子像素精细化的整数像素搜索、螺旋搜索模式以及考虑实际的或模型的剩余的编码成本、运动信息编码成本和运动预测模式等等的速率失真功能的最小化。
在一些实施中,编码器(200)在运动估计(220)中为运动矢量的可变尺寸块(从4×4直到16×16)计算运动矢量并且在运动补偿时间滤波MCTF中应用这样的运动矢量。例如,对于一个16×16宏块,编码器(200)为一个16×16部分、两个16×8部分、两个8×16部分或者四个8×8部分计算运动矢量,其中每个8×8可以进一步分为两个8×4部分、两个4×8部分或者四个4×4部分。或者,编码器(200)为较高空间分辨率视频(例如CIF)的较大的块(例如32×32)计算运动矢量以便当只解码较低空间分辨率视频(例如QCIF)时利于运动矢量的使用。可选择地,编码器(200)为其它尺寸的块计算运动信息。
运动估计(220)和运动补偿时间滤波MCTF的运动准确度依赖于实施。例如,运动估计(220)和运动补偿时间滤波MCTF使用四分之一像素运动矢量。可选择地,运动估计(220)和运动补偿时间滤波MCTF使用具有一些其它准确度的运动信息。例如,为了当只解码QCIF视频时便于四分之一像素运动矢量的使用,编码器(200)为CIF视频计算二分之一像素运动矢量和域为4CIF视频计算整数像素运动矢量。
运动估计(220)和运动补偿时间滤波MCTF的方向可以向前、向后、双向或在内部。在一些实施中,编码器(200)依据宏块的分割设置运动估计(220)和补偿方向如向前、向后、双向或在内部中的任何一个。可选择地,编码器(200)在一些其它级设置方向和/或不允许一些方向(例如在内部)。
在一些实施中,参照帧可以被插入(例如通过简单的重复插入)以供参照帧之外的运动估计/补偿用。在参照帧上的子像素内插产生样值用于使用双线性滤波器、双三次滤波器、sinc滤波器或者一些其它滤波器的部分运动估计/补偿。在一些实施中,编码器使用重叠的块运动补偿(“OBMC”)。可选择地,运动矢量范围限于参照帧边界之内和/或不使用重叠的块运动补偿OBMC。
以下使用一个5/3双正交的小波结构描述运动补偿时间滤波MCTF的几个例子。可选择地,编码器(200)执行其它数量和/或类型的时间子带变换(210)(例如哈尔变换)和/或运动估计(220)。图2示出空间域运动补偿时间滤波MCTF,其中全空间分辨率视频在时间上被变换。可选择地,编码器(200)在时间分解(210)之前包括一个或多个空间子带变换,并且运动补偿时间滤波MCTF是来自初始空间分解的空间子带上的频带内运动补偿时间滤波MCTF。
在时间变换(210)之后,编码器(200)应用一个或多个两维(“2D”)空间子带变换(230)以便进一步分解信号。图2示出用于两级2D空间分解的输出,其中具有水平和垂直低空间分辨率的子带被进一步水平和垂直分解。例如,2D空间子带变换是二重离散小波变换(“DWT”)。小波滤波器例如可以是用于9/7离散小波变换DWT滤波器或者5/3离散小波变换DWT滤波器。可选择地,编码器(200)执行其它数目(诸如3或4)的空间子带变换和/或执行其它类型的空间子带变换(230)。
在时间变换(或多个时间变换)(210)和空间变换(或多个空间变换)(230)之后,信号被编组成不同的时空的子带,其与输入视频(205)的不同的时空分辨率对应。编码器(200)熵编码(240)该子带。例如,在一些实施中,编码器(200)使用具有最佳截断的3D嵌入块编码(“EBCOT”)。JPEG 2000使用2D形式的最佳截断嵌入块编码EBCOT,并且在这样的实施中的编码器(200)基本上扩展2D最佳截断嵌入块编码EBCOT到3D编码。每个由时间和空间变换产生的子带被分为被单独编码的3D编码块。对于每个编码块,编码器(200)使用位平面编码和环境基础的算法编码。可选择地,编码器(200)为子带信息使用一些其它形式的熵编码。
编码器(200)还编码(250)运动信息(例如运动矢量、运动模式选择信息)。例如,编码器(200)使用一些形式的熵编码诸如简单的可变长度编码以便熵编码运动矢量信息、宏块的分割以及运动估计/补偿的方向。对于一个运动矢量,编码器(200)编码运动矢量和它的预测值之间的差。运动矢量预测值可以使用来自以前编码/解码的运动矢量的中值预测来计算或者使用一些其它的运动矢量预测技术来计算。可选择地,编码器(200)为运动信息使用其它和/或另外的编码(250)技术。
因为子带变换(210、230)的特性,编码器(200)当然支持空间可伸缩性和时间/帧速率可伸缩性。此外,因为子带系数的位平面编码,编码器(200)一般也支持质量/信号与噪声比率(“SNR”)可伸缩性。
这些可伸缩性对于通过易于出错的网络诸如因特网或无线网络的视频传输是非常有用的。可以针对具有不同等级误差校正或误差传输恢复力的传输,对不同的子带编码。或者,不同的子带可以以不同的优先等级传输,其中网络支持优先化的传输。
各种可伸缩性还可以帮助不同的装置共享相同的压缩视频流,即使不同的装置具有不同的存储资源、计算功率、显示尺寸、可获得的带宽等等。以这种方式,以不同的比特率编码视频(205)的任务被简化。
多级时间分解的一个优点在于视频信号内的时间冗余可在一个大的范围内被利用。第一个很少级的时间子带变换可以利用在帧附近之中的该时间冗余,并且最后一个很少级的时间子带变换可以利用通过较长的距离的帧之中的相关性。
图4示出具有四层时间分解和一层空间分解的示例3D子带视频编码器(400)。实质上,图4示出图2中的时间子带变换(210)的一个可能的扩展并且还示出用于不同的时间分解级的数据流程。图4还引入用于时间和空间分解的新符号。
在图4中,编码器(400)应用一个四级时间子带变换到具有每秒f帧的帧速率的视频。每级时间子带变换Ti将输入到那一级的信号分为两个时间子带-一个时间低通子带和一个时间高通子带。那么每个子带具有输入到那一级的视频信号的一半帧速率。在图4中,词语t-Li和t-Hi分别表示在第i级时间变换Ti之后输出低通子带和高通子带。t-Li和t-Hi都具有帧速率f/2i。在图4中,用时间子带变换Ti+1将信号t-Li重复分解以利用长范围的相关性并且实现可以由解码器解码的较低的帧速率视频。
为了用一个简单的数字的例子说明,假定输入视频是每秒30帧(“fps”)的CIF视频。来自第一时间分解的输出低通子带t-L1是15fps视频,另一个是来自第一时间分解的输出高通子带t-H1。来自第二时间分解的输出子带t-L2和t-H2是7.5fps视频,并且来自第三时间分解的输出子带t-L3和t-H3是3.75fps视频。最后,来自第四时间分解的输出子带t-L4和t-H4是1.875fps视频。在例子中,空间分辨率对于所有的输出低通和高通子带是CIF。
帧之间的运动信息在不同的级估计,并且每级的时间变换沿着当前级的运动轨迹执行。每级时间分解从而产生运动矢量,其随后被编码。在图4中,有四组运动矢量,相当于四级时间变换。
接着用一个单级2D空间子带变换S1分解输出时间低通子带t-L4和输出时间高通子带t-H1、t-H2、t-H3和t-H4,该单级2D空间子带变换S1将各个输入子带分为低通水平、低通垂直(“LL”)、低通水平、高通垂直(“LH”)、高通水平、低通垂直(“HL”)以及高通水平、高通垂直(“HH”)子带。可选择地,编码器(400)在时间分解级之前和/或之后包括其它的和/或附加级空间分解,或者编码器(400)使用一个不同的空间分解模式。
继续上述图4的数字的例子,低通子带t-L4具有CIF空间分辨率。使用单级2D空间子带变换S1,时间子带t-L4被分解为LL子带、LH子带、HL子带和HH子带。LL、LH、HL和HH子带中的每个都具有QCIF分辨率。类似地,时间高通子带t-H1、t-H2、t-H3和t-H4中的每个以CIF分辨率开始并且被分解为QCIF分辨率LL、LH、HL和HH子带。
空间分解的子带接着被熵编码和输出。
B.示例视频解码器
图3示出一个一般的3D子带视频解码方案(300)。解码器(300)接收压缩的视频信息(395)并且产生视频图像序列(305)(例如逐行视频帧、隔行视频帧或者隔行视频帧的场)作为输出。视频解码器的特定实施例典型地使用通用解码器(300)的变型或者补充的型式。
解码器(300)熵编码(340)用于一些或全部时空子带的信息(395)。视频信息(395)仍然编组成不同的时空子带,其与输入视频(205)的不同的时空分辨率对应。以这种方式,解码器(300)可以在不同的时空分辨率之间选择,忽略部分压缩比特流(395),或者解码器(300)可以仅仅解码(340)解码器(300)实际接收的压缩比特流(395)的一些子集。解码器(300)实质上对解码器(300)解码的信息执行编码器(200)中执行的熵编码(240)的反转。例如,解码器(300)接收并且解码(340)使用3D最佳截断嵌入块编码EBCOT编码的信息。可选择地,解码器(300)对于所有或部分的子带信息使用一些其它形式的熵解码。
当解码器(300)执行逆MCTF(“逆运动补偿时间滤波IMCTF”),解码器(300)解码(350)运动信息(例如运动矢量、运动模式选择信息),在许多情况中执行编码器(200)中执行的编码(250)的反转。例如,解码器(300)使用一些形式的熵解码诸如简单的可变长度编码的解码。对于一个运动矢量,解码器(300)使用中值预测或一些其它的运动矢量预测技术计算一个运动矢量预测,并且解码器(300)接着将运动矢量预测与运动矢量差分组合。可选择地,解码器(300)使用其它的和/或附加的解码(350)技术。
解码器(300)应用一个或多个2D逆空间子带变换(或多个逆空间子带变换)(330)以空间地重建视频。图3示出用于两级2D逆空间分解的输入和输出。例如,2D逆空间子带变换是二重逆DWT(“逆离散小波变换IDWT”)。可选择地,解码器(300)执行另一数量的和/或类型的逆空间子带变换(330)。
解码器(300)进一步通过逆时间子带变换(310)重建视频信号。图3示出用于来自一个低分辨率子带和高分辨率子带输出单级时间重建,但是时间合成可以包括4、5或一些其它数目的合成级。
在图3中,逆时间变换(310)使用逆运动补偿时间滤波IMCTF,并且解码器(300)使用用于视频信号的解码的(350)运动信息执行运动补偿。通常,运动信息和逆运动补偿时间滤波IMCTF的属性(例如用于运动补偿的部分、运动矢量准确度、运动补偿的方向、参照帧插入的使用、子像素内插、重叠的块运动补偿OBMC的使用)同在相应的编码器(200)中一样并且在压缩的视频比特流(395)中用信号通知。下面描述逆运动补偿时间滤波IMCTF的几个例子。可选择地,解码器(300)执行另一数目的和/或类型的逆时间子带变换(310)和/或运动补偿。图3示出空间域逆运动补偿时间滤波SDIMCTF,其中使用逆时间变换重建全空间分辨率视频。可选择地,解码器(300)执行带内运动补偿时间滤波MCTF。
返回到图4的编码器(400),一个相应的解码器能只从t-Li重建f/2i帧速率视频。或者,解码器能从t-Li和t-Hi(包括随后的视频高通子带信息t-Hi+1等等)重建f/2i-1帧速率视频。
图5示出示例3D子带视频编码器-解码器(“编解码器”)系统(500),其中在编码器中具有四层时间分解和两层时间分解,在解码器中具有相应数目的逆变换。实质上,图5示出图2和3的编码器(200)和解码器(300)的其它可能的型式。图5还引入用于时间和空间分解和它们的逆操作的简单的符号。
在图5中,编码器应用四级时间子带变换Ti(即T1、T2、T3和T4)到视频并且应用两级空间子带变换Si(即S1和S2)到时间分解的结果。编码器接着执行熵编码E。解码器执行熵解码E-1并且执行两级逆空间子带变换Si -1(即S2 -1和S1 -1)到熵解码的结果。解码器接着应用四级逆时间子带变换Ti -1(即T4 -1、T3 -1、T2 -1和T1 -1)到空间重建的结果。
III.运动补偿的时间滤波
为了改进编码效率,运动调整的时间变换(可选择地本文中称为运动补偿的时间滤波(“MCTF”))应用在时间分解中以有效地除去时间冗余。运动补偿时间滤波MCTF的主要思想是当应用时间分解时调整不同帧之中的像素。运动调整的3D编码方案可以提供可伸缩性的特性以及非妥协的,或者与其它编码方案相比更好的编码效率。
在各种运动补偿时间滤波MCTF方案之中,基于提升的运动补偿时间滤波MCTF提供一个灵活的和有效的实施。图6示出在对于5/3双正交小波的基于提升的运动补偿时间滤波MCTF方案中输入视频帧、时间低通帧和时间高通帧之间的关系。
图6示出用于输入到运动补偿时间滤波MCTF的四个原始的、索引的视频帧的像素列。(该输入帧本身例如可以是来自先前级运动补偿时间滤波MCTF的一个时间低通子带输出。)图6中的基于提升的小波变换包含两个基础阶段:一个运动补偿预测(“MCP”)阶段和一个运动补偿更新(“MCU”)阶段。
在预测阶段中,对于一个奇数帧(例如帧I2i+1),来自一个或多个相邻偶数帧(例如帧I2i和I2i+2)的运动补偿表示用于奇数帧的像素的运动补偿预测。高通帧(例如Hi)实质上是奇数帧和用于奇数帧的运动补偿预测之间的差。
在更新阶段,一个或多个可获得的高通帧(例如Hi和Hi-1)的运动补偿表示运动补偿更新。一个低通帧(例如Li)实质上是该更新和偶数帧(例如帧I2i)之间的差。
图7示出编码器中具有提升作用的传统的运动补偿时间滤波MCTF,并且图8示出解码器中相应的逆运动补偿时间滤波IMCTF。为了一致起见,在图7和8中以及在应用的其它地方,偶数视频帧是用于运动补偿预测的参照并且用于低通帧的形成,并且奇数视频帧是运动补偿预测MCP的主体并且用于高通视频帧的形成。可选择地,奇数帧和偶数帧的角色可以交换。
在图7的运动补偿时间滤波MCTF(700)中,在运动补偿预测MCP(710)中偶数视频帧被用作参照。对于一个特定的奇数视频帧I2i+1,编码器从一个或两个相邻的偶数帧I2i和I2i+2计算一个运动补偿预测。该预测和原始奇数帧I2i+1之间的差是时间高通帧Hi。
在运动补偿更新MCU(720)中高通帧Hi被用作参照。对于一个特定的偶数视频帧I2i,编码器从相邻的奇数视频帧的一个或两个高通帧Hi-1和Hi计算一个运动补偿更新。该更新和原始偶数帧I2i的组合是时间低通帧Li。
例如,假定一个视频帧序列I0、I1...I2n-1将被图7的运动补偿时间滤波MCTF(700)处理。预测模块(710)从连续的偶数帧I2i和I2i+2为奇数帧I2i+1计算预测P(I2i+1),如下所述。
其中MV2i+1->2i表示从帧I2i+1到帧I2i的运动矢量,MV2i+1->2i+2具有类似的意义,并且运动补偿MC()表示从一个相邻偶数帧产生至少一部分当前奇数帧的预测的运动补偿。(等式(1)是意图说明用于应用运动矢量的奇数帧的一个宏块、宏块分割或其它部分的运动补偿预测MCP,并且这样的运动补偿预测MCP为奇数帧的其它宏块、宏块分割等等重复。)在一些情况中,当使用等式(1)中运动补偿MC成分相应的改变和加权计算运动补偿预测时(如在一个哈尔变换中),或者编码器使用帧内压缩对部分或全部奇数帧编码时,编码器只考虑一个相邻的偶数帧(不是两个)。协同一个嵌入的基本层编解码器,编码器可以使用相邻的偶数帧以外的帧作为参照帧,如下所述。
预测模块(710)接着如下所述计算高通帧Hi。
Hi=I2i+1-P(I2i+1) (2)
在更新步骤(720)中,其跟随预测步骤(710)以完成一级时间变换,编码器为偶数帧I2i从相邻高通帧计算更新U(I2i),如下所述。
其中MC()表示为偶数帧从相邻高通帧产生至少部分更新的运动补偿。作为一个简单的近似,用于运动补偿更新MCU的运动矢量作为用于运动补偿预测MCP的相应的运动矢量的反转被导出。(等式(3)意图示出用于应用运动矢量的偶数帧的宏块、宏块分割或其它部分的运动补偿更新MCU,并且这样的运动补偿更新MCU为其它宏块、宏块分割等等重复。)在一些情况中,当使用等式(3)中运动补偿MC成分相应的改变和加权计算运动补偿更新时,编码器只考虑一个高通帧(不是两个),或者编码器不考虑任何高通帧。
接着编码器如下所述产生低通帧。
Li=I2i+U(I2i) (4).
在图8的逆运动补偿时间滤波IMCTF(800)中,在运动补偿更新MCU(820)中高通帧Hi被用作参照。对于一个特定的偶数视频帧I2i,编码器为相邻的奇数视频帧从一个或两个高通帧Hi-1和Hi计算运动补偿更新。该更新和用于偶数帧I2i的相应的时间低通帧Li之间的差是重建的偶数帧I2i。
重建时,在运动补偿预测MCP(810)中偶数视频帧被用作参照。对于一个特定的奇数视频帧I2i+1,解码器从一个或两个相邻的重建的偶数帧I2i和I2i+2计算运动补偿预测。该预测和用于奇数帧I2i+1的相应的时间高通帧Hi的组合是重建的奇数帧I2i+1。
在编码器中,预测步骤典型地试图最小化或减少与用于预测的运动矢量一起编码高通帧(在空间分解和熵编码中)所需的比特率。从而,高通帧Hi实质上是来自相关的偶数索引的原始视频帧(或多个帧)的相应的奇数索引的输入视频帧I2i+1的双向运动补偿预测MCP(例如这种情况可以是或者前向运动补偿预测MCP、或后向运动补偿预测MCP)的残差。接着,原始的偶数索引的帧I2i用该预测残差更新作为低通帧。
高通帧的能量基于运动模型的成功,运动模型的成功依赖于运动的复杂性、运动跨越的帧的一致性以及运动模型本身。如果运动预测是准确的,该预测残差通常具有小的量值。但是,即使当运动正确地获得时,更新步骤仍然是有用的,在于它们可以减少由沿着运动轨迹的低通滤波引起的噪声和失真。通常,更新步骤利于除去低通帧中的高频部分,从而改进编码效率。
如果运动预测是不准确的(例如由于复杂性、不可预测的运动或运动模型本身的缺点引起的),目标特征将不能调整,引起几个问题。不准确的运动预测可以导致高通子带帧中的多个边缘和增加的能量。这不只损害了高通子带自己的编码的压缩性能,而且还在更新步骤期间到增加了时间低通帧的重影边缘和轮廓。
更加通常地,更新步骤可以影响启动时间可伸缩性时的解码性能。特别地,当一些时间高通帧被部分或全部略去时,在解码器处出现问题是可能的,例如,由于有限的信道带宽或者装置性能引起的。(通常,当在时间变换域中放弃高通子带时,通过保留时间低通子带实现逆运动补偿时间滤波IMCTF中的时间可伸缩性。)当运动预测不是有效的时候,在编码中的更新步骤期间,高通帧为低通帧(即较低的帧速率视频)带来失真。当视频只从时间低通帧重建时,在解码器中没有高通成分通过运动补偿更新MCU除去。或者,如果时间高通帧信息被粗糙地量化,时间低通帧的质量可能受损,因为来自高通帧的成分在解码器中的运动补偿更新MCU中只近似除去。低通帧中的重影因此不能被除去,即使当更多的比特被分配去编码低通帧。
一个可能的解决方法是跳过编码器中的基于提升的运动补偿时间滤波MCTF中的更新步骤。但是这可以显著地减少全部的编码性能,因为更新步骤可以减少由沿着运动轨迹的低通滤波引起的噪声和失真。此外,更新步骤通过扩散时间高通子带和时间低通子带之中的失真可以降低解码器中的整体失真。
IV.运动补偿时间滤波MCTF和逆运动补偿时间滤波IMCTF中的自适应的更新步骤
在一些实施例中,一个可伸缩的视频编码器自适应地执行基于提升的运动补偿时间滤波MCTF中的更新步骤和/或可伸缩的视频解码器自适应地执行逆运动补偿时间滤波IMCTF中的更新步骤。通过利用人类视觉系统的特性,自适应的更新步骤改进了从时间低通子带解码的低帧速率视频的可感知的视觉质量。同时,与传统的更新步骤相比,自适应的更新步骤保持了从时间低通和时间高通子带解码的较高帧速率视频的令人满意的性能。
A.示例编码器和解码器
自适应的更新方案实现两个对立的目的之间的较好的折衷,这两个对立的
目的是(1)尽可能地加入原始更新信息,(2)同时,降低由更新步骤引起的视觉失真。
图9描述在编码器中具有自适应更新操作的运动补偿时间滤波MCTF框架(900),并且图10描述在解码器中具有自适应更新操作的逆运动补偿时间滤波IMCTF框架(1000)。例如,框架(900、1000)被合并入到一个编码器和/或解码器诸如参照图2-5描述的。可选择地,自适应的更新操作被合并入到另一编码器和/或解码器中。
参照图9,运动补偿时间滤波MCTF框架(900)包括预测(910)和更新(920)步骤。这些步骤基本上如参照图7所述的进行。
运动补偿时间滤波MCTF框架(900)使用人类视觉系统(“HVS”)模型(930)以依据视觉质量估计来自预测步骤的信号。例如,编码器根据人类视觉系统HVS模型(930)估计偶数帧中的信息。在一些实施中,人类视觉系统HVS模型(930)使用一个刚好能看出差异(“JND”)的尺度。在其它实施中,人类视觉系统HVS模型(930)使用其它感知的标准。人类视觉系统HVS模型(930)提供阈值信息到阈值(940)步骤,其考虑到阈值信息估计并应用更新(920)步骤的结果。例如,人类视觉系统HVS模型(930)依据根据模型估计的偶数帧的像素提供阈值。下面描述各种示例阈值和它们在更新操作中的使用。可选择地,人类视觉系统HVS模型(930)提供不同的阈值信息。
阈值(940)步骤的结果在于更新信息可以限于图像的失真特别地可感知到的部分,而更新信息不限于该图像的其它部分。更新信息因此在更新信息应用到一个偶数帧之前基于人类感觉可被自适应地除去或者被限制。
参照图10,逆运动补偿时间滤波IMCTF框架(1000)还包括预测(1010)和更新(1020)步骤。这些步骤基本上如参照图8所述的进行。
逆运动补偿时间滤波IMCTF框架(1000)使用人类视觉系统HVS模型(1030)以依据视觉质量估计一个信号。例如,解码器根据人类视觉系统HVS模型(1030)估计低通帧中信息。在一些实施中,人类视觉系统HVS模型(1030)使用一个刚好能看出差异(“JND”)的尺度。在其它实施中,人类视觉系统HVS模型(1030)使用其它感知的标准。
人类视觉系统HVS模型(1030)提供阈值信息到阈值(1040)阶段,其依据阈值信息估计和应用更新(1020)阶段的结果。例如,人类视觉系统HVS模型(1030)依据根据该模型估计的低通帧的像素提供阈值。以下描述各种示例阈值和它们在更新操作中的使用。可选择地,人类视觉系统HVS模型(1030)提供不同的阈值信息。
与图9和10相比,在编码器侧的人类视觉系统HVS模型(930)应用到偶数帧,而解码器侧的人类视觉系统HVS模型(1030)应用到低通帧。即使相同的人类视觉系统HVS模型(930、1030)用于编码器侧和解码器侧,阈值也可以稍微不同。这是可容忍的,因为阈值对于相应的偶数和低通帧很可能是非常相似的,并且由于编码器和解码器状态之间的偏差局限到一帧(与随时间累积和变得更坏相反)。
此外,在图9和10的框架(900、1000)中,在运动补偿时间滤波MCTF/逆运动补偿时间滤波IMCTF的每一级计算阈值。因而,即使对于时间上相应的帧在不同级的运动补偿时间滤波MCTF/逆运动补偿时间滤波IMCTF阈值可以是不同的。
从而,在一些实施中,编码器侧运动补偿时间滤波MCTF(900)和解码器侧逆运动补偿时间滤波IMCTF(1000)在人类视觉系统HVS模型(930、1030)中应用相同的刚好能看出差异JND尺度。没有与阈值或取阈值操作有关的编码开支,因为该阈值是独立计算的并且应用在编码器和解码器中。可选择地,一个编码器发送阈值信息或决定到解码器,或者解码器应用与编码器不同的人类视觉系统HVS模型。
B.示例人类视觉系统HVS模型和取阈值操作
编码器中的自适应更新步骤一般可以表示如下:Li=I2i+f(U2i)。函数f()是应用到偶数帧I2i的更新U2i的自适应函数。Li是合成的低通帧。
自适应函数利用人类视觉模型的结果和发展。广泛的研究已经被引导进入基于人类视觉系统发展计算模型。在不同模型中,感知的标准基于观察人类视觉系统HVS的敏感性中的不一致性以刺激在空间和时间域中改变的对比度和亮度的等级改变。
在人类视觉系统HVS的许多计算模型之中,刚好能看出差异JND广泛地用于感知的编码和图像加水印中。刚好能看出差异JND使用限定为亮度边缘的幅度的函数的可见度阈值,其中扰动增加直到它变得刚好对于人类是可辨别的。对于更多的信息,参见A.N.Netravali和B.Prasada在IEEE会报第65卷第536-548页上发表的文章“Adaptive Quantization of Picture Signals Using SpatialMasking”(1977年四月)。刚好能看出差异JND与人类视觉系统HVS的结构掩蔽特性紧密相关。根据该标准,噪声在平坦的和缺少纹理的区域是更加可见的,并且噪声在具有边缘和纹理的区域中是很少可见的。
刚好能看出差异JND阈值是依赖于图像的。只要更新信息保持在刚好能看出差异JND阈值以下,在低通帧中就可实现“更新残差”透明度。因而,刚好能看出差异JND作为人类视觉系统HVS模型在自适应更新方案中执行顺利。在自适应更新方案的一个实施中,刚好能看出差异JND模型如下限定。
其中σx 2(i,j)表示以具有坐标(i,j)的像素为中心的窗口中的图像的局部偏差。刚好能看出差异JND可以只从亮度样值计算以减少计算复杂度。或者,刚好能看出差异JND可以从亮度和色度样值两者计算。窗口的尺寸依赖于实施。
一个示例窗口尺寸是3×3,另一个是5×5。θ是可以为一个特定图像选择的调整参数。这与噪声可见度函数值相同,假定该图像是一个非稳态的高斯型的。调整参数θ在刚好能看出差异JND限定中起对比调整的作用。为了使调整参数θ是依赖于图像的,它可以如下计算:
其中
是对于一个给定图像的最大局部偏差,并且D∈[50,100]是用实验方法确定的参数。根据该刚好能看出差异JND定义,刚好能看出差异JND值在平坦区域是小的,因为σ
x 2(i,j)是小的,并且反之亦然。
表示编码器中的自适应更新的更精确的方法是:
Li=I2i+f(I2i,U2i) (7),
其中
是如上定义的JNDx(i,j)的示例,并且S表示依赖于实施的强度因数,例如12.5。刚好能看出差异JND函数与具有与视觉掩蔽有关的局部帧特性相适应。如果局部强度偏差是大的,刚好能看出差异JND相对较大(根据等式(5)接近于1),表示一个被占用的或复杂的区域。另一方面,如果局部强度偏差小,刚好能看出差异JND相对较小(根据等式(5)接近于0),表示一个平坦的区域。它在编码器中从将更新的偶数索引的帧计算并且在解码器中从偶数索引的帧(实际上,它的低通图像近似值)计算。因此,自适应更新可以有效地减轻由于高通帧引起的重影失真并且改进时间可伸缩性的编码性能。
如上所述,在一些实施中,编码器和解码器使用相同的刚好能看出差异JND尺度和取阈值操作(在等式(8)中具有到索引值的改变等等),并且没有任何额外开销的要被编码并且传递到用于自适应更新操作的解码器。虽然编码器和解码器在不同的图像上操作(在编码器处是原始帧并且在解码器处是重建的低通型式),根据实验的结果已经说明在解码器处得到的更新掩蔽是非常接近于编码器处的得到的更新掩蔽。
可选择地,编码器和/或解码器使用刚好能看出差异JND的另一定义、另一人类视觉系统HVS模型和/或其它取阈值操作。例如,可以使用其它和/或另外的参数。
C.示例自适应的更新技术
图11到13说明用于自适应更新操作的技术(1100、1200、1300)。一个编码器诸如参照图9描述的编码器执行图11和12中示出的技术(1100、1200),并且一个解码器诸如参照图10描述的解码器执行图11和13中示出的技术(1100、1300)。可选择地,别的编码器和解码器执行技术(1100、1200、1300)。
图11示出用于自适应更新操作的简单的、一般的技术(1100)。编码器或解码器为自适应更新计算(1120)阈值。编码器或解码器接着执行(1160)自适应更新操作。
图12示出编码器中用于自适应更新操作的详细技术(1200),包括用于运动补偿预测MCP的附加的细节。
对于一个为其将计算低通帧的当前偶数帧,编码器计算(1220)阈值。例如,编码器为当前偶数帧的像素计算刚好能看出差异JND,如前一部分描述的。可选择地,编码器使用一些其它尺度计算(1220)阈值。
对于运动补偿预测MCP,编码器从当前偶数帧计算(1230)一个或多个运动补偿预测,例如向前和/或向后以预测相邻奇数帧。编码器可以为相邻奇数帧从其它偶数帧计算(1230)一个或多个其它运动补偿预测(或者这样的预测可以从一个较早的偶数帧预先计算)。编码器接着从运动补偿预测(或多个运动补偿预测)和它们的相应的相邻奇数帧(或多个帧)计算(1240)一个或多个高通帧。
接着,编码器为当前偶数帧从一个或多个高通帧计算(1250)运动补偿更新。例如,编码器应用到在运动补偿预测MCP(1230)期间从当前偶数帧计算的运动信息的反转中。可选择地,编码器使用不同的装置以计算(1250)更新。
编码器接着执行(1260)用于当前偶数帧的自适应更新,产生一个低通帧。例如,编码器使用运动补偿更新和刚好能看出差异JND阈值执行自适应取阈值操作,如先前部分中所描述的。可选择地,编码器使用不同的取阈值装置执行(1260)自适应更新。
编码器确定(1290)是否继续运动补偿时间滤波MCTF,并且如果继续的话,继续下一偶数帧。
图13示出用于编码器中的自适应更新操作的详细技术(1300),包括用于以不同的帧速率解码的分离路径。
解码器确定(1310)用于解码的时间分辨率。时间分辨率可以根据用户级设置或一些其它设置确定,根据解码器实际接收的多少信息确定(例如,只有通过易于出错的信道的时间低通信息)、或者以一些其它方式确定。可选择地,解码器可以只具有一个解码路径。例如,一个解码器可以包括低帧速率路径,而另一解码器包括高帧速率路径,适于各个解码器的资源。
在低帧速率路径中,解码器从接收的低通帧信息(例如使用低通帧作为当前帧)计算(1312)当前偶数帧。自适应更新操作不被执行,因为高通信息和运动信息被忽略或不接收。即使缺少这样的信息,由于编码期间的自适应更新操作当前偶数帧的质量也被改进了(与传统的逆运动补偿时间滤波IMCTF相比),因为加到偶数帧的显著的失真在编码期间被限制了。
在高帧速率路径中,对于当前偶数帧,解码器从解码器接收的相应的低通帧计算(1320)阈值。例如,解码器为低通帧的像素计算刚好能看出差异JND,如先前部分中描述的。可选择地,解码器使用一些其它尺度计算(1320)阈值。
解码器为当前偶数帧从一个或多个高通帧计算(1330)运动补偿更新。例如,解码器应用在运动补偿预测MCP(1230)期间从当前偶数帧计算的运动信息的反转中。可选择地,解码器使用不同的装置以计算(1330)更新。
解码器接着执行(1360)一个低通帧的自适应更新以重建当前偶数帧。例如,解码器使用该更新和刚好能看出差异JND阈值执行自适应取阈值操作,如先前部分中描述的。可选择地,解码器使用不同的取阈值装置执行(1360)自适应更新。
对于运动补偿预测MCP,解码器从重建的当前偶数帧计算(1370)一个或多个运动补偿预测,例如,向前和/或向后以预测相邻奇数帧。(用于相邻奇数帧的其它的运动补偿预测可以从较早的偶数帧预先计算。)解码器接着为奇数帧和相应的高通帧从运动补偿预测计算(1380)一个重建的奇数帧。
解码器确定(1390)是否继续逆运动补偿时间滤波IMCTF,并且如果继续的话,继续下一偶数帧。
图12和13中示出的各种操作可被分开,与其它操作组合或重新排序。例如,虽然图12示出并行的某些操作,但是这些操作也可以顺序地执行。
V.在3D子带视频编码和解码中嵌入的基本层编解码器
在一些实施例中,一个可伸缩的视频编码器包括一个嵌入的基本层编解码器和一个包括一个嵌入的基本层解码器的可伸缩的视频解码器。基本上,由嵌入的基本层编解码器产生的比特流用作低比特率、基本层3D子带视频编码比特流。在一些可伸缩的视频编码/解码系统的环境中,例如,基本层为系统提供最小空间、时间和信号与噪声比率SNR分辨率的视频,在其之上加入附加的增前层以为系统提供高达最大空间、时间和信号与噪声比率SNR分辨率的可伸缩性。(在编码和解码中的基本层的实际的作用依不同的实施例而不同。)例如,3D子带视频编码器包括一个嵌入的视频编解码器和一个包括相应的嵌入的视频解码器的3D子带视频解码器。
对于许多类型的嵌入的编解码器,这改进了低比特率的编码性能,其中在传统3D子带编码中消耗编码运动信息的比特消耗了可获得的比特率的无效率的部分,并且嵌入的视频编解码器比较起来是更加有效率的。在一些情况中,嵌入的基本层编解码器提供优点诸如闭环时间预测、环内滤波和速率失真最佳化,而不限制于与3D子带编码有关的约束。同时,在中间和较高比特率处的3D子带编码的优点(例如空间和时间可伸缩性)被保持。
嵌入编解码器到3D子带视频编码中的另一优点是它提供与嵌入的编解码器和相应的解码器的兼容性。例如,如果一个MPEG-1编解码器被嵌入,任何具有MPEG-1解码性能的接收机可以解码压缩的视频的粗糙型式(即使MPEG-1编解码器本质上不改进编码性能)。如果H.264或VC-1编解码器被嵌入,除了兼容性,这还改进了低比特率的编码性能。
本文中描述的技术和工具不限于具有性能和/或兼容性优点的系统。除性能和兼容性以外,在可伸缩的视频编码器中嵌入基本层编解码器以及在可伸缩的视频解码器中嵌入基本层解码器可以具有其它的优点。
A.示例编码器和解码器
图14到19说明用于分别在编码器或解码器中嵌入基本层编解码器或解码
器的三种不同方案。在编码器中,用于基本层的编解码器嵌入在时间子带变换之中,并且时间子带变换后面有空间子带变换。在时间子带变换之前和/或之后可放置另外的空间子带变换,在解码器中也可能有相应的改变。基本层编解码器可以放置在各种变换之中的不同的位置,在解码器中相应的改变也是可能的。
总之,嵌入的编解码器的放置为基本层视频设定了帧速率和空间分辨率。为了简化图14到19中示出的三个方案之间的比较,基本层分辨率设定为原始视频的帧速率的四分之一以及空间分辨率的二分之一。因此,如果原始视频是30fpsCIF视频,例如,基本层视频是7.5fpsQCIF视频。
因而,在图14、16和18的编码器中基本层编解码器在两个时间子带变换之后,并且在图15、17和19的解码器中基本层解码器在最后两个逆时间子带变换之前。改变基本层编解码器和解码器在时间变换之中的放置是改变基本层帧速率的一种方法。例如,虽然图14、16和18示出嵌入基本层模块以接收t-L2子带作为输入,可选择地,基本层模块放置在t-L1子带变换或另一子带变换之后。总之,在时间变换之中的放置依赖于基本层视频所需的帧速率。
在图14、16和18中,对于基本层改变空间分辨率是通过一些任意因数的采样操作或空间子带变换操作(靠近嵌入的编解码器或解码器)完成。改变采样/空间子带变换操作的比例是改变基本层空间分辨率的一种方法。
图14、16和18包括时间子带变换模块T、空间子带变换模块S和MV编码和熵编码模块,以及模块的输入和输出。图15、17和19包括逆时间子带变换模块T-1、逆空间子带变换模块S-1和MV解码和熵解码模块,以及模块的输入和输出。总之,这些模块和它们的输入/输出的作用是参照图2到5所描述的。
在图14、16和18中示出的基本层编解码器可以是产生依从标准的比特流(例如MPEG-1、MPEG-2、MPEG-4、H.261、H.263、H.264/AVC或VC-1)的编解码器,在图15、17和19中有相应的基本层解码器。或者,基本层编解码器/解码器可以是商业产品(例如WMV8、WMV9)。更广泛地,基本层编解码器/解码器可以是具有需要的性能和/或兼容特性的任何可获得的编解码器/解码器。
1.第一方案
图14示出根据第一方案的3D子带编码器(1400)。编码器(1400)包括
一个嵌入的基本层编解码器(1420)以及环绕着该基本层编解码器(1420)的一个向下采样模块(1410)和一个向上采样模块(1430)。
向下采样模块(1410)和向上采样模块(1430)是任选的。当由嵌入的编解码器(1420)编码的视频比输入到嵌入的编解码器(1420)的时间子带的空间分辨率低时,它们被采用。否则,向下采样模块(1410)和向上采样模块(1430)可以省略。
图14中的虚线矩形包围了两级时间分解之后与基本层编解码器(1420)有关的操作。对于基本层,输入视频是每秒f/4帧,并且分辨率可以通过向下采样模块(1410)减少。因此,基本层视频提供低帧速率并且(可能地)原始视频的低空间分辨率表示。
向下采样模块(1410)使用简单的次采样、低通滤波器或一些其它滤波装置对t-L2时间子带向下采样。例如,向下采样模块(1410)再水平或垂直上将空间分辨率减半。在一些实施中,向下采样模块(1410)应用“MPEG”滤波器如在Bjontegaard等人的文献“H.263 Anchors-Technical Description”中描述的或者Daubechies 9/7离散小波变换DWT滤波器。更广泛地,向下采样模块(1410)通过任意比率改变输入到嵌入的编解码器(1420)的空间分辨率以获得需要的基本层空间分辨率和/或与基本层编解码器(1420)允许的输入空间分辨率匹配。
嵌入的编解码器(1420)使用用于嵌入的编解码器(1420)的任何通常的操作对已被向下采样的t-L2子带(作为ts-LL子带示出)进行编码。嵌入的编解码器(1420)产生具有基本层分辨率的输出基本层比特流(1495),其中基本层比特流(1495)与相应的基本层解码器兼容。为了编码器(1400)中后面的编码,嵌入的编解码器(1420)还使用用于嵌入的编解码器(1420)的相应的解码操作解码ts-LL子带,产生重建的子带ts-LL′。
向上采样模块(1430)使用一些滤波装置向上采样来自基本层编解码器(1420)的重建的输出子带ts-LL′,产生时间子带t-L2的重建的型式t-L′2。重建的子带t-L′2具有和t-L2相同的分辨率。例如,向上采样模块(1430)再水平或垂直上将空间分辨率增加一倍。在一些实施中,向上采样模块(1430)应用一个简单的6抽头滤波器{-1、5、20、20、5、-1}、一个8抽头sinc滤波器如在Chen等人的“Improved MC-EZBC with Quarter-pixel Motion Vectors”中描述的、或者一个Daubechies 9/7逆离散小波变换IDWT滤波器。向上采样滤波器不需要与向下采样滤波器对称-例如MPEG滤波器可以用于向下采样以及逆离散小波变换IDWT滤波器用于向上采样。更广泛地,向上采样模块(1430)通过任意比率改变来自嵌入的编解码器(1420)的输出的空间分辨率以恢复视频在到向下采样模块(1410)之前具有的空间分辨率。
编码器(1400)将原始时间子带t-L2减去重建的型式t-L′2。这产生了一个差或者残差子带t-L″2。当基本层编解码器(1420)是有效的(例如VC-1或者H.264/AVC)以及基本层比特率是适当的,基本层质量可以相对较好,以致该差异子带不具有太多能量。另一方面,当基本层编解码器(1420)是不太有效的或者基本层比特率是不适当的,基本层质量可以相对较差,以致该差异子带具有更多能量。
编码器(1400)在差异子带t-L″2上再执行两级时间分解。最后,编码器(1400)在各个子带(例如t-H1、t-H2、t-H3、t-H4和t-L4)上执行空间变换和熵编码以产生可伸缩的比特流。
图15示出根据第一方案的相应的3D子带解码器(1500)。解码器(1500)包括一个嵌入的基本层解码器(1520)以及在基本层解码器(1520)之后的向上采样模块(1530)。
向上采样模块(1530)是任选的。当由嵌入的解码器(1520)解码的视频比输出到下游逆时间变换级的时间子带t-L2的空间分辨率低时,使用该向上采样模块。否则,向上采样模块(1530)可以省略。
图15中的虚线矩形包围了在两级附加的逆时间分解之前与基本层解码器(1520)有关的操作。对于基本层,视频是每秒f/4帧,并且空间分辨率可以减少。因此,基本层给出低帧速率和(可能地)视频的低空间分辨率表示。实际上,具有低帧速率和(可能地)低空间分辨率的视频可以用基本层解码器(1520)直接解码并输出。
另外,解码器(1500)在来自可伸缩的比特流(例如t-H1、t-H2、t-H3、t-H4和t-L4)的任何一个子带上执行熵解码和逆空间分解,解码器(1500)将用于重建视频。解码器(1500)执行第三级和第四级逆时间分解以从t-H3、t-H4和t-L4子带以及相关的运动信息重建差异子带t-L″2。
嵌入的解码器(1520)为以基本层分辨率编码的视频接收基本层比特流(1595)。使用合适的解码操作,嵌入的解码器(1520)解码基本层比特流(1595)中的压缩的、向下采样的子带ts-LL,产生子带的重建的型式ts-LL′。
向上采样的模块(1530)使用一些滤波装置向上采样来自基本层解码器(1520)的重建的子带ts-LL′,产生时间子带t-L2的重建的型式t-L′2。重建的子带t-L′2具有与t-L2的相同的分辨率。例如,向上采样的模块(1530)在水平和垂直上空间分辨率增加了一倍。更广泛地,向上采样模块(1530)通过任意比率改变从嵌入的解码器(1520)输出的空间分辨率以恢复视频在任何基本层向下采样之前具有的空间分辨率。
解码器(1500)将重建的差异子带t-L″2加入到相应的重建的子带t-L′2。这产生了时间低通子带t-L2的重建的型式,其输入到剩余的逆时间分解。
2.第二方案
图16示出根据第二方案的3D子带编码器(1600)。编码器(1600)包括一个嵌入的基本层编解码器(1620)以及环绕着该基本层编解码器(1620)的离散小波变换DWT模块(1610)和逆离散小波变换IDWT模块(1630)。
与在图14中示出的向下采样模块(1410)和向上采样模块(1430)一样,离散小波变换DWT模块(1610)和逆离散小波变换IDWT模块(1630)是任选的。当由嵌入的编解码器(1620)编码的视频比输入到嵌入的编解码器(1620)的时间子带t-L2的空间分辨率低时,使用该离散小波变换DWT模块(1610)和逆离散小波变换IDWT模块(1630)。否则,可以跳过离散小波变换DWT模块(1610)和逆离散小波变换IDWT模块(1630)。
图16中的虚线方框围住了2级时间分解之后与基本层编解码器(1620)有关的操作。离散小波变换DWT模块(1610)对t-L2时间子带进行处理,产生低通子带ts-LL。通常,离散小波变换DWT模块(1610)改变输入到嵌入式编解码器(1620)的空间分辨率,以便获得所期望的基本层空间分辨率和/或匹配基本层编解码器(1620)允许的一个输入空间分辨率。离散小波变换DWT模块(1610)还产生空间高通子带ts-LH、ts-HL和ts-HH,这些子带被发送到逆离散小波变换IDWT模块(1630)。
嵌入式编解码器(1620)利用嵌入式编解码器(1620)中任何常用操作对ts-LL子带进行编码。嵌入式编解码器(1620)产生一个基本层分辨率的输出基本层比特流(1695)。嵌入式编解码器(1620)还利用嵌入式编解码器(1620)相应的解码操作对ts-LL子带进行解码,产生重建的子带ts-LL’。
编码器(1600)将原始的ts-LL子带减去它的重建型式ts-LL’。这产生一个残差子带ts-LL”。在图14中编码器(1400)的情况中,当基本层编解码器(1620)效率高并且基本层比特率充足,那么残差的ts-LL”通常不具有太多能量。另一方面,当基本层编解码器(1620)效率不高或者基本层的比特率不充足时,残差的ts-LL”可以具有更多的能量。
逆离散小波变换IDWT模块(1630)从残差的子带ts-LL”以及空间高通子带ts-LH、ts-HL和ts-HH中产生一个新的残差子带t-L2”。新的残差子带t-L2”具有与输入到离散小波变换DWT模块(1610)中去的子带t-L2相同的空间分辨率。
编码器(1600)对残差的子带t-L2”执行另外两级时间分解。最后,编码器(1600)对相应的子带(例如:t-H1、t-H2、t-H3、t-H4和t-L4)执行空间变换和熵编码,从而产生可伸缩比特流。
图17示出了一个根据第二方案的相应的3D子带解码器(1700)。该解码器(1700)包括一个嵌入式基本层解码器(1720)以及围绕着该基本层解码器(1720)的离散小波变换DWT模块(1710)和逆离散小波变换IDWT模块(1730)。
离散小波变换DWT模块(1710)和逆离散小波变换IDWT模块(1730)是可选的。在由嵌入式解码器(1720)解码的视频的空间分辨率比输出到下游逆时间变换级的时间子带t-L2低时,使用这两个模块。否则,可以跳过离散小波变换DWT模块(1710)和逆离散小波变换IDWT模块(1730)。
图17中的虚线方框围住了在两个附加的逆时间分解级之前与基本层解码器(1720)有关的操作。基本层给出了视频的一个低帧速率和(可能)低空间分辨率表示,并且这样的较低质量的视频可以直接利用基本层解码器(1720)来解码并输出。
否则,解码器(1700)对可伸缩比特流(例如:t-H1、t-H2、t-H3、t-H4和t-L4)的子带中任意一个执行熵解码以及逆空间分解,其中解码器(1700)将用该可伸缩比特流来重建视频。解码器(1700)执行第三和第四级的逆时间分解,以便从t-H3、t-H4和t-L4子带以及相关的运动信息中重建残差的子带t-L2”。
离散小波变换DWT模块(1710)对残差子带t-L2”进行处理,产生重建型式的空间低通残差子带ts-LL”以及空间高通子带ts-LH”、ts-HL”和ts-HH”。通常,离散小波变换DWT模块(1710)改变空间分辨率以便低通残差子带ts-LL”在空间分辨率方面与嵌入式解码器(1720)的输出匹配。
嵌入式解码器(1720)为以基本层分辨率编码的视频接收基本层比特流(1795)。嵌入式解码器(1720)利用适当的解码操作对基本层比特流(1795)中已压缩的已变换子带t-LL进行解码,产生该子带的一个重建型式ts-LL’。
解码器(1700)将重建的残差子带ts-LL”加入到从嵌入式解码器(1720)输出的相应的重建子带ts-LL’中去。这产生了原始ts-LL子带的一个重建型式。
然后逆离散小波变换IDWT模块(1730)将重建的ts-LL子带与从离散小波变换DWT模块(1710)输出的空间高通子带ts-LH”、ts-HL”和ts-HH”结合在一起。这产生了时间低通子带t-L2的一个重建型式,其被输入到其余的逆时间分解。
3.第三方案
在前面两个编码方案中,基本层编解码器被嵌入到时间变换中,并且残差的信号在随后的时间变换中被进一步分解。相反,在第三编码方案中,随后的时间变换被应用到时间低通帧(例如与残差的帧相反)中。
图18示出一个根据第三方案的3D子带编码器(1800)。编码器(1800)包括嵌入式基本层编解码器(1820)以及围绕着基本层编解码器(1820)的向下采样模块(1810)和向上采样模块(1830)。图18中的虚线方框围住了两级时间分解之后与基本层编解码器(1820)有关的操作。如同图14所示的编码器(1400)相应的模块一样,向下采样模块(1810)和向上采样模块(1830)是可选的。象第二和第三时间变换之间的可伸缩视频一样,基本层视频是f/4帧/秒,并且分辨率可以被向下采样模块(1810)降低。因此,基本层视频再次提供原始视频的一个低帧速率和(可能)低空间分辨率表示。
向下采样模块(1810)利用简单的子采样、低通滤波器或一些其他滤波装置对t-L2时间子带进行向下采样。通常,向下采样模块(1810)以任意比例改变输入到嵌入式编解码器(1820)的空间分辨率,以便获得所期望的基本层空间分辨率和/或匹配基本层编解码器(1820)允许的输入空间分辨率。
嵌入式编解码器(1820)利用嵌入式编解码器(1820)的任一种常用的操作对向下采样t-L2子带(作为ts-LL子带示出)进行编码。嵌入式编解码器(1820)产生基本层分辨率的最低比特速率的输出基本层比特流(1895),其中该基本层比特流(1895)与相应的基本层解码器兼容。为了随后在编码器(1800)中编码,嵌入式编解码器(1820)还利用嵌入式编解码器(1820)的相应的解码操作对ts-LL子带进行解码,产生重建的子带ts-LL’。
向上采样模块(1830)利用某些滤波装置对来自基本层编解码器(1820)的重建输出子带ts-LL’进行向上采样,产生时间子带t-L2的重建型式t-L2’。重建子带t-L2’具有与t-L2相同的分辨率。通常,向上采样模块(1830)以任意的比例改变从嵌入式编解码器(1820)输出的空间分辨率,以便将视频恢复至向下采样模块(1810)之前其所具有的空间分辨率。
编码器(1800)对原始(预基本层处理)时间子带t-L2执行第三和第四级时间变换。出于第三和第四时间变换的目的,编码器(1800)为时间高通子带t-H3和t-H4计算出运动补偿预测。正如所料,时间子带t-L2为第三级时间变换中的运动补偿提供候选的参考帧(例如t-L2的偶数帧),并且时间子带t-L3为第四级时间变换中的运动补偿提供候选的参考帧(例如t-L3的偶数帧)。根据第三方案,向上采样中时间上相应的图像、重建的子带t-L2’作为运动补偿的另外的候选参考帧。例如,t-L2’的交替帧(与t-L2的奇索引帧具有相同的时间)可用作在第三级时间变换中t-L2的奇索引帧的运动补偿预测MCP的参考。t-L2’的每四个帧(与相应的t-L3的奇索引帧具有相同的时间)可用作第四级时间变换中t-L3的时间上相应的奇索引帧的运动补偿预测MCP的参考。
图20示出了跟随在嵌入式基本层编解码器后面的时间变换中运动补偿的不同参考组合的情况。候选参考帧包括来自输入时间低通子带的帧(例如偶数帧)。候选的参考帧还包括来自基本层的向上采样输出的时间上相应(例如时间相同)的重建帧。例如,在图20的组合(1)中,高通子带帧H利用来自前一时间子带的偶数帧(与低通子带帧L相应)的第一运动补偿预测,并利用来自基本层的向上采样重建(与高通子带帧H时间上共同定位)的第二运动补偿预测。相对地,高通子带帧H仅用来更新用于运动补偿的偶数帧(以便产生相应的低通子带帧L)。如果来自基本层的参考被用于预测步骤,那么其不需要相应的更新步骤。
在某些实施中,编码器基于逐个宏块为运动补偿选出和变换参考帧(或多个帧)。替代地,编码器基于某些其他原则(例如根据当前奇数帧、根据运动矢量和宏块分割)为运动补偿选出和变换参考帧(或多个帧)。
再次参考图18,在上一次时间分解之后,基本层输出t-L2’的帧速率是最终的时间低通子带t-L4的帧速率的四倍。编码器(1800)将最终的时间低通子带t-L4减去基本层输出t-L2’的时间上相应的向上采样重建帧。这产生了一个残差子带t-L4’。最后,编码器(1800)对相应的子带(例如t-H1、t-H2、t-H3、t-H4和t-L4’)执行空间变换和熵编码,以便产生可伸缩比特流。
图19示出了根据第三方案的相应的3D子带解码器(1900)。解码器(1900)包括嵌入式基本层解码器(1920)和该基本层解码器(1920)之后的向上采样模块(1930)。
如同图15所示的解码器(1500)一样,向上采样模块(1930)是可选的。当由嵌入式解码器(1920)解码的视频的空间分辨率比下游逆时间变换级利用的时间子带帧的空间分辨率低时,使用向上采样模块。否则,可以跳过向上采样模块(1930)。
图19中虚线方框围住了四级逆时间分解之前与基本层解码器(1920)有关的操作。如同其他基本层解码器一样,具有低的基本层帧速率和(可能的)低空间分辨率的视频可以直接利用基本层解码器(1920)来解码并输出。
否则,解码器(1900)对来自可伸缩比特流的子带(例如t-H1、t-H2、t-H3、t-H4和t-L4’)中的任一个执行熵解码和逆空间分解,其中解码器(1900)将利用这些子带来重建该视频。
嵌入式解码器(1920)为以基本层分辨率编码的视频接收基本层比特流(1995)。利用适当的解码操作,嵌入式解码器(1920)对基本层比特流(1995)中的已压缩的向下采样子带ts-LL进行解码,产生该子带的重建型式ts-LL’。向上采样模块(1930)利用某些滤波装置对来自基本层解码器(1920)的重建子带ts-LL’进行向上采样,产生时间子带t-L2的重建型式t-L2’。
解码器(1900)将残差子带t-L4’加入到向上采样基本层输出t-L2’的时间上相应(例如相同时间)的帧。这产生了时间低通子带t-L4的重建型式,其被输入到第四级逆时间分解。
解码器(1900)执行第三和第四级逆时间分解以便从重建的t-H3、t-H4和t-L4子带以及相关的运动信息中重建时间子带t-L2。出于第三和第四逆时间变换的目的,解码器(1900)为时间高通子带t-H3和t-H4计算出运动补偿预测。时间子带t-L3具有用于第四级时间变换中的运动补偿预测MCP的重建参考帧(例如t-L3的重建偶数帧),并且时间子带t-L2具有用于第三级时间变换中的运动补偿预测MCP的重建参考帧(例如t-L2的重建偶数帧)。向向上采样中的时间上相应的(例如相同时间)图像、重建子带t-L2’可以用作用于第三和第四级逆时间变换中的运动补偿预测MCP的另外的参考帧。
B.基本层信息的示例附加用途
除了在低比特率视频的速率失真检测中提供向后兼容和提高压缩效率外,来自基本层的输出可以具有附加的用途。
1.来自基本层的运动矢量的重新使用
在利用基于提升的运动补偿时间滤波MCTF的3D子带编码中,用于运动补偿预测MCP步骤的运动矢量通过运动估计来获得。在某些实施中,运动估计处理类似于用于与现有的视频标准例如MPEG2、H.264/AVC等兼容的编码器的传统运动估计。此外,哈尔(haar)和5/3时间变换分别类似于传统P图像和B图像的运动补偿处理。
对于与现有标准例如MPEG-2、MPEG4和H.264/AVC等兼容的基本层编解码器,利用用于I图像(P图像或B图像)的帧内压缩来编码的块通常具有相关的运动信息。同时,在3D子带编码中,在基本层编解码器下游的时间分解级中(例如在图14、16和18的第三和第四级中)的高通子带可以在基本层输出中找到时间上相应的图像。在许多情况中(特别是根据第三方案),用于这样的高通子带的运动信息和基本层中时间上相应的I图像的运动信息之间存在很高的相似性。基于这种关系,出于若干目的,编码器和/或解码器可以重新利用来自基本层编解码器的运动矢量。
在基本层运动矢量的附加用途的一个示例中,3D子带编码器和3D子带解码器仅将基本层运动矢量用作时间上相应的高通子带帧的块的实际的运动矢量。(当基本层帧和高通子带帧具有不同空间分辨率时,3D子带编码器和3D子带解码器可以因此对基本层运动矢量进行缩放。)特别地,出于此目的,3D子带编码器和3D子带解码器在低比特速率中利用基本层运动矢量。由于基本层运动矢量已被标记为基本层比特流的一部分,这自然减小了用于运动信息的开销。在许多情况中,在损失运动预测准确性方面的代价是很微小的。
在基本层运动矢量的附加用途的另一个示例中,3D子带编码器和3D子带解码器在运动矢量预测中利用了来自基本层编解码器的运动矢量。作为传统运动矢量编码和解码的一部分,运动矢量预测提供了当前运动矢量值的预测。然后,当前运动矢量可以被表示并标记为相对于预测的运动矢量的差。编码器和解码器均为当前运动矢量从相邻块的先前重建的运动矢量中选出或派生出预测的运动矢量。
在某些实施中,当选出或派生出的时间高通子带的一个块的当前运动矢量的预测运动矢量时,3D子带编码器和3D子带解码器利用来自时间上相应的基本层帧的空间上相应的块的运动矢量。例如,3D子带编码器和3D子带解码器利用来自基本层的运动矢量作为预测运动矢量。或者,3D子带编码器和3D子带解码器利用来自基本层的运动矢量作为候选,其中从该候选选出预测的运动矢量(例如作为候选的中间值)。
仍然在基本层运动矢量的附加用途的另一个示例中,3D子带编码器利用基本层运动矢量来加速运动估计。例如子带编码器在运动估计的初期考虑相应的基本层运动矢量,以便更快速地找出适合的当前运动矢量。
类似地,3D子带编码器和3D子带解码器可以重新利用来自基本层的运动模式(例如块分割、方向)信息。在某些情况中,基本层模式信息可以被用作时间上相应的高通子带帧的块的实际模式信息。或者基本层模式信息可以被用于模式信息的预测或用于加速运动估计。
图21至23示出了不同的编码结构(帧类型的模式),在这些结构中,来自基本层的运动信息对基本层之后的时间分解中的时间高通子带特别有用。在图21中,基本层的编码结构被调整到适合于3D子带编码的普通结构。三个B图像被插在两个I或P图像之间,并且第二个B图像(例如用于H.264/AVC中的被存储的B图像)被用作第一和第三个B图像的参考。以这种方式,基本层中的B图像的运动矢量可以很自然地被重新用于3D子带编码中的时间上相应的高通子带帧。
出于与基本层编解码器的某些现有标准兼容的目的,图22的结构为基本层采用了传统的编码结构但是针对3D子带编码对帧类型的模式进行了调整。在基本层中,两个I/P图像之间插入三个B图像,但是这三个B图像仅将I/P图像作为参考(没有B图像作为运动补偿参考)。在3D子带编码方案中,模式包括在两个低通子带之间产生的三个高通子带。
图23阐明了一个普通的模式。在基本层中,与3D子带编码中的高通子带时间上相应的图像被与B或P图像一起编码。然而,图21和22所示的模式适合于5/3时间分解,图23所示的模式可适用于哈尔和5/3时间分解(分别与P图像和B图像的关系相应)。
2.从基本层预测帧内区域
当视频序列中存在阻塞或不规则的运动时,运动估计可以针对时间高通子带中某些块仅找出匹配差的块。当没有帧内编码模式被启动时,针对这些情况而强迫帧间预测可使得编码性能恶化,并且对视觉质量产生坏的影响。
在H.264/AVC标准中,帧内预测技术解决运动补偿预测MCP失败的情况。在帧内预测中,当前块的预测器是通过从相邻的重建像素的空间预测获得的。然而,在具有开路运动补偿时间滤波MCTF结构的3D子带编码中,这样的空间预测易于引入失匹配和误差偏移。
在上述的第一和第二嵌入式基本层编码方案中,基本层编码和解码完成之后,对差信息执行进一步的用于3D子带编码的时间分解。(例如在图14中,差信息是输入时间子带t-L2和来自基本层编解码器的输出ts-LL’的向向上采样型式的t-L2’之间的残差。)通常,这个差仅具有高频能量,并且它的空间冗余很低。因此,当块在基本层编解码器中以帧内模式被编码时,通常不必要提供3D子带编码中随后的时间分解内的帧内预测。这有助于避免与开路3D子带编码中帧内预测有关的失匹配,同时提高了编码性能和视觉质量。
另一方面,上述的第三嵌入式基本层编码方案中,不对差信号执行进一步的用于3D子带编码的时间分解。然而,在第三方案中,基本层编解码器的输出可以提供候选参考图像,并且候选参考图像可以包括利用空间帧内预测编码的块。执行与来自基本层输出的参考图像的已帧内编码块有关的运动补偿,可以有助于解决运动补偿时间滤波MCTF中运动补偿预测MCP意料之外的仅找出匹配差的块的情况。来自基本层输出的参考图像还可以用作随后3D子带编码中低通子带的预测器。3D子带编码器可以利用来自基本层的帧内模式信息来确定何时将来自基本层输出的参考图像用于随后运动补偿预测MCP或其他预测。
3.用于进一步时间分解的运动估计
在纯3D子带编码中,以及在根据上述的第三方案的具有嵌入式基本层编解码器的3D子带编码中,对原始低通子带执行运动估计以便获得更高级的高通子带和运动信息。这样的运动估计有效地合并了许多传统运动估计参数,例如权衡编码残差信息的成本相对于编码运动信息的成本的“λ(lambda)”参数。
然而,对于根据上述第一和第二方案的具有嵌入式基本层编解码器的3D子带编码,对差信息执行用于进一步时间分解的运动估计。因而,运动估计采用传统的运动估计参数,以便在进一步时间分解中在相邻的帧之间利用时间冗余。例如,编码器调整λ参数以便对输入到时间分解的差进行解释。
C.利用基本层编解码器或解码器的示例性技术
图24示出了一个用于利用嵌入式基本层编解码器的可伸缩编码的技术(2400)。图25示出了利用嵌入式基本层解码器的可伸缩解码的技术(2500)。3D子带编码器,例如结合图14、16或18所述的一个,执行了图24所示的技术(2400),并且3D子带解码器,例如结合图15、17或19所述的一个,执行图25所示的技术(2500)。代替地,另一个编码器或解码器执行技术(2400、2500)。
参考图24,3D子带编码器利用子带编码对视频的一个或更多层进行编码(2410)。这产生到基本层编解码器的输入。例如,3D子带编码器执行一个或更多级运动补偿时间滤波MCTF,为时间高通子带找出运动信息并产生时间低通子带以便用作基本帧速率视频输入到基本层编解码器。替代地,在这个阶段中,3D子带编码器执行其他和/或附加类型的编码。
3D子带编码器利用基本层编解码器对基本层视频进行编码(2430)。例如,基本层编解码器是一个H.264/AVC、MPEG-2、VC-1或WMV9编解码器,并且产生一个相应的压缩视频比特流和重建的输出视频。运动信息和帧内模式信息是压缩视频比特流的一部分,或者这个信息可以单独地以某些其他形式提供至3D子带编码器。
然后,3D子带编码器利用来自基本层编解码器的结果对视频的一个或更多层进行编码(2450)。例如,3D子带编码器对由基本层编码和解码的结果计算出来的差信息进行一或更多级的时间分解。或者,3D子带编码器利用来自基本层编解码器的重建视频中的参考图像对时间低通子带执行一或更多级的时间分解。或者,3D子带编码器在编码或时间分解的判决中利用运动信息和/或帧内模式信息。替代地,3D子带编码器以某些其他的方式将来自基本层编解码器的结果应用到随后的子带编码中,或跳过随后的编码(2450)。
编码器确定(2490)是否继续编码处理,并且在“是”时,继续下一帧。
参考图25,3D子带解码器利用基本层解码器对基本层视频进行解码(2530)。例如,基本层解码器是H.264/AVC、MPEG-2、VC-1或WMV9解码器,并且其对一个相应的压缩视频比特流进行分析和解码,并产生重建的输出视频。
3D子带编码器为解码确定(2540)分辨率。分辨率可以根据用户级设置或一些其他设置来确定、根据解码器实际接收的信息量来确定(例如,仅基本层视频或一个或更多附加层也可)或者以某些其他方法来确定。替代地,3D子带解码器仅具有一条解码路径。例如,一个解码器可以包括一个基本层路径,而另一个解码器包括基本层+可伸缩层路径,以便与相应解码器的源相配。
如果没有更高分辨率视频要被解码,(来自判决2540的“无”路径),那么3D子带解码器继续至阶段(2590)。
否则,3D子带解码器利用来自基本层解码的结果对视频的一个或更多附加层进行解码(2550)。例如,3D子带解码器对差信息执行一或更多级逆时间分解,然后将重建的差信息加入到基本层解码的结果中。或者3D子带解码器利用来自基本层解码器的重建视频中的参考图像执行一或更多级逆时间分解,以便重建时间低通子带。代替地,3D子带解码器以某些其他的方式将来自基本层解码器的结果应用到随后的子带解码中。
最后,解码器确定(2590)是否继续解码处理,如果是“是”,那么继续下一帧。
图24和25示出的各种操作可以被分开,与其他操作结合,或者重新排序。
VI.解码空间域运动补偿时间滤波SDMCTF编码视频中的空间可伸缩性
通常,基于3D子带视频编码中何时执行运动补偿时间滤波MCTF,存在两类运动补偿时间滤波MCTF。在被称为带内MCTF(“带内运动补偿时间滤波IBMCTF”)的第一类中,编码器首先空间地分解视频,并接着在子带/小波域中执行运动补偿时间滤波MCTF。编码器接着执行进一步的空间分解。在被称为空间域MCTF(“空间域运动补偿时间滤波SDMCTF”)的第二类中,编码器在空间分解之前直接在空间域中执行运动补偿时间滤波MCTF。类似地,在解码过程中,逆运动补偿时间滤波IMCTF可以在空间域内(“空间域逆运动补偿时间滤波SDIMCTF”)或带内(“IBIMTF”)中执行。
因此,在利用空间域运动补偿时间滤波SDMCTF的3D子带编码中,整个视频被多个运动调整时间变换在空间域中分解,并接着被空间变换分解。图5示出了一个完整的编码和解码方案,其具有四级(逆)时间变换和两级(逆)空间变换,并且在解码中没有空间可伸缩性。解码过程正好是图5所述的编码的逆过程。
通常,在针对特定比特率的质量方面,带内运动补偿时间滤波IBMCTF方案的性能不如空间域运动补偿时间滤波SDMCTF方案的性能好。因此,许多3D子带编码器采用空间域运动补偿时间滤波SDMCTF。然而,在某些应用中,解码器产生较低空间分辨率型式的视频输出。例如,原始视频是CIF分辨率(352×288像素),对于一级空间可伸缩性的解码,3D子带解码器产生一个QCIF型式(176×144像素)的解码视频。在解码器与一个屏幕较小设备(例如蜂窝视频电话)关联时或在解码器通过一个不可靠的连接仅接收较低空间分辨率子带信息时,就可能是这种情况。当视频上的运动补偿时间滤波MCTF操作在空间域中执行时,然而,由于运动信息、参考图像等以全空间分辨率来重现,这些情况是有问题的。
这个部分描述在对空间域运动补偿时间滤波SDMCTF编码视频进行解码以便以较低空间分辨率输出时用来提高解码性能的各种机械装置。在某些实施例中,例如,3D子带视频解码器接收利用空间域运动补偿时间滤波SDMCTF以某一分辨率(例如CIF)编码的视频,但对该视频进行解码以较低分辨率(例如QCIF)输出。3D子带解码器利用多个不同的机械装置中的任一个来提高解码性能。
A.在对空间域运动补偿时间滤波SDMCTF视频进行解码中的简单空间可伸缩方案
图26描述了两个用于对来自空间域运动补偿时间滤波SDMCTF-编码视频的压缩视频比特流解码并输出较低空间分辨率视频的简单方案(2600、2650)。图26中较低空间分辨率视频由于一级空间可伸缩性而与全空间分辨率不同。
第一方案(2600)提供了一个直接的解决方法。3D子带解码器首先恢复全空间分辨率视频(示为CIF视频)。(假设丢失了用于第二逆空间变换的空间高通(“SH”)子带,那么在第二逆空间变换中,解码器将空间高通SH子带当作空(SH=0)来处理)。在逆时间分解之后,3D子带解码器利用一个滤波器(示为空间变换)对全空间分辨率视频向下采样至输出分辨率(示为QCIF)。解码器执行空间域逆运动补偿时间滤波SDIMCTF,并且在中间步骤中对CIF视频进行解码时,解码器利用许多解码资源(例如计算资源、参考图像缓存器)。
另一方面,在第二方案(2650)中,3D子带解码器执行带内逆运动补偿时间滤波IBIMCTF。第二方案(2650)描述了对低分辨率视频进行解码的启发式方法。如第一方案(2600)一样,第二方案(2650)包括熵解码和四级逆时间变换。第二方案(2650)实际上包括逆空间变换,它的逆空间变换比第一方案(2600)少一个。(第二方案(2650)示出的第二逆空间变换和随后的空间变换相互抵消,并且可以被省去。)
在第二方案(2650)中,3D子带解码器实质上将空间低通(“SL”)子带(第一逆空间变换的输出)当作完整的原始视频来处理,以空间低通SL子带分辨率执行逆时间变换。这接近没有空间可伸缩的解码处理,并且其具有计算复杂性低和缓存(用于参考图像等)需求低的优点。此外,对解码器来说,视频的原始分辨率和空间可伸缩性可以是完全清楚的。方案(2650)的性能在低比特率时是符合要求的,但是在高比特率时不符合要求。特别是,当比特率增加,其变得难以或不能重建高质量低空间分辨率视频,即使比特率非常高。
图26所示的两个解码方案(2600、2650)之间的不同在于如何在逆运动补偿时间滤波IMCTF期间执行运动补偿预测MCP和运动补偿更新MCU步骤。图27描述了在一级逆运动补偿时间滤波IMCTF中的两个方案(2600、2650)的运动补偿预测MCP。特别地,图27示出了在预测步骤中从参考图像中的有效空间低通SL子带信息(不仅是空间高通SH子带信息)产生空间低通SL提升信号。
对于空间域逆运动补偿时间滤波SDIMCTF,空间低通SL提升信号如下产生:
其中,INTPSD表示为参考图像信息在空间域中对像素的内插,而运动补偿预测MCPSD表示空间域中的运动补偿预测MCP。离散小波变换DWT是线性操作,并且
DWT(F1+F2)=DWT(F1)+DWT(F2) (10).
为了利用空间低通SL分辨率缓存器存储中间结果,离散小波变换DWT减小了空间域预测以便在空间低通SL域中预测。
对于带内逆运动补偿时间滤波IBIMCTF,空间低通SL提升信号是这样产生的:
其中INTPSL表示为参考图像信息在空间低通SL域中对像素的内插,而运动补偿预测MCPSL表示空间低通SL域中的运动补偿预测MCP。为了简化,INTPSD和INTPSL使用相同的内插滤波器。
B.理论分析
各种因素导致了空间域运动补偿时间滤波SDMCTF编码视频的3D子带解码中空间可伸缩性的问题。一个因素是空间低通SL域中的内插和运动补偿的效率低。另一个因素是逆运动补偿时间滤波IMCTF的位置(与编码中的运动补偿时间滤波MCTF的位置相比)。再一个因素是由运动补偿引起的功率谱泄漏交叉子带。
除了这些因素外,各种编码/解码的特征可以导致编码器中的空间域运动补偿时间滤波SDMCTF与解码器中的带内逆运动补偿时间滤波IBIMCTF之间的失匹配。两个这样的特征是运动矢量缩放比例和重叠的块运动补偿OBMC。在这一部分中,为了简化,假设带内逆运动补偿时间滤波IBIMCTF中的运动矢量的准确度没有改变,并且用于运动补偿的子像素内插良好,足以利用带内逆运动补偿时间滤波IBIMCTF期间的运动信息。再次出于简化的目的,重叠的块运动补偿OBMC被停用,并且假设运动补偿预测MCP操作是仅根据适用的运动矢量的简单的像素存取的操作。即使在作了这些简化假设的情况下,前段所列的因素还可以降低带内逆运动补偿时间滤波IBIMCTF的性能。
1.内插
即使在对空间域内插和空间低通SL域内插使用相同的内插滤波器(例如双线性滤波器或8抽头sinc滤波器)时,由于两个操作的不同伸缩,一个帧中相同位置的给定部分像素从不同的像素组中被插入。这导致了子像素内插参考图像之间的失匹配。
空间低通SL域中的内插由于另一个原因而可能不是最佳的。由于小波变换的抽取方位,仅空间LL带不是原始视频的整个低通信号的完全表示。也就是说,在不考虑高通信号或当不存在高通信号时,在相位位置的中间,部分低通信号丢失。抽取的一个结果是空间LL带的移位可变特性。由于LL带的非完全性,当获得一个内插低通帧时,直接在LL带中执行内插(如操作(12)所示)可能不是最佳的。
以及
一个替代方案是通过变换到过完全小波表示来执行半像素内插。从空间低通SL子带得到的过完全表示可以由完全至过完全离散小波变换DWT(未示出)或由逆离散小波变换IDWT和过完全DWT(“过完全离散小波变换OCDWT”)产生(操作13中所示)。这个逆离散小波变换IDWT加上过完全离散小波变换OCDWT组合作为一级内插。内插的剩余级可以利用传统的内插在过完全小波域中执行,在操作(13)中由INTPOC-LL表示。
变换至传统过完全小波表示仅提供了空间低通SL域中的半像素内插。为了支持空间低通SL域中四分之一像素运动矢量准确度或更好的运动,解码器可以利用连续相位过完全小波变换(“CPOCWT”)。对空间低通SL子带中的四分之一像素位置,解码器在空间域中执行内插,如操作(14)所示。然后,通过离散小波变换DWT获得内插的帧的低通子带。离散小波变换DWT是一个伸缩敏感的操作。为了与编码器中的离散小波变换DWT匹配,解码器在内插帧中的m采样像素上执行过完全离散小波变换OCDWT,其中m×m是过完全离散小波变换OCDWT之前空间域内插的因子。在操作(14)中,向下采样离散小波变换DSDWT表示将空间域内插帧向下采样至许多子帧中、在相应的子帧上执行过完全离散小波变换OCDWT并使所获得的系数向后交织。因而,向下采样离散小波变换DSDWT是过完全离散小波变换OCDWT的一种。
根据操作(12)至(14)中的每一个,解码器在空间低通SL域中对m×m参考图像执行运动补偿预测。
2.离散小波变换DWT和运动补偿预测MCP的位置交换
对于带内逆运动补偿时间滤波IBIMCTF,即使带内内插被空间域内插代替如(14)所示,运动补偿预测MCP的参考图像仍然是低通帧——运动补偿预测MCP发生在小波域中。与编码器相比,离散小波变换DWT和运动补偿预测MCP预期的顺序被交换(其中,在编码器中,运动补偿预测MCP在离散小波变换DWT之前)。然而,由于离散小波变换DWT的下列移位可变特性,离散小波变换DWT和运动补偿预测MCP操作是非可交换的:
DWT(MCPSD(FSD))≠MCPSL(DWT(FSD)) (15),
以及
IDWT(MCPSL(FSL))≠MCPSD(IDWT(FSL)) (16).
为了简单起见,假设运动补偿预测MCP涉及简单的基于块的运动的位移操作,方程(15)可以表示如下。假设当前帧被分成块B={Bi|i=1,...,m},并且假设这些块的运动矢量是MV={mvi|i=1,...,m}。Fref i是参考帧Fref的新型式,其中只有被块Bi参考的像素被保留,并且其他像素被设置为0。
(18)中的第一个不等式是由离散小波变换DWT的移位可变特性引起的。(18)中第二个不等式是在运动非常复杂时由运动补偿预测MCP中运动位移期间的重叠和暴露引起的。
一个可能的解决方案是在离散小波变换DWT之前将运动补偿预测MCP移到空间域,如操作(19)中所示。在此情况下,运动补偿预测MCP是空间域逆运动补偿时间滤波SDIMCTF的一部分。
3.由运动位移引起的功率谱泄漏
在3D小波编码中,时空的子带通常被假设为独立的。在许多应用中,时空的子带被任意地下降,特别是高通子带。然而,在利用运动补偿时间滤波MCTF的3D子带编码中,由于运动位移产生的功率谱泄漏引起相邻帧中的低通子带和高通子带具有相似处。
当在一个空间子带中只包含一个信号的一帧根据运动位移时,那么该信号的一部分将转移到其他空间子带。图28示出了简单的整体运动的现象。在图28的第一行中,原始帧Org被分成两部分:一个空间低通SL信号A和一个空间高通SH信号B。在第二行中,只包含空间低通SL信号A的帧在空间域中利用一个简单的图像域运动位移(“IMS”)进行位移,并且位移后的帧现在包含空间高通SH信号。类似地,在图28的第三行中,仅包含空间高通SH信号B的帧在空间域中位移,并且位移后的帧现在包含空间低通SL信号。当运动复杂时,频谱泄漏问题变得更严重。
因此,在编码器中具有空间域运动补偿时间滤波SDMCTF而逆运动补偿时间滤波IMCTF采用空间低通SL信息,参考帧的空间低通SL分量预测帧的空间高通SH分量部分。因此,即使解码器开始时仅具有空间低通SL子带信息,解码器在每一级逆运动补偿时间滤波IMCTF的中间结果中获得有意义的空间高通SH子带信息。当解码器利用空间低通SL分辨率缓存器存储逆运动补偿时间滤波IMCTF级之间的中间结果时,然而,这使得空间高通SH子带信息下降,而空间高通SH子带信息对逆运动补偿时间滤波IMCTF的下一级中的运动补偿预测MCP可能有用。
此外,参考帧的空间高通SH分量预测帧的空间低通SL分量的部分。为了对空间低通SL分量进行编码,编码器可以利用参考帧中的空间高通SH子带信息。当解码器不能访问这些空间高通SH分量时,空间高通SH子带的缺乏导致一种偏移。(例如,当解码器执行来自完全分辨率帧(包括空间高通SH信息)的运动补偿预测MCP,但是解码器仅具有空间低通SL信息时。)结果是一个PSNR升限——PSNR曲线在相对低比特率处变成水平的。
C.利用空间可伸缩性对空间域运动补偿时间滤波SDMCTF编码的视频进行解码的改良方案的示例
在某些实施例中,当对空间域运动补偿时间滤波SDMCTF编码的视频解码用于以较低分辨率输出时,3D子带解码器利用多种技术中任一种来提高解码性能。这些技术逐步地提高解码性能,并通常不需要改变编码器和被传输的比特流。总的来说,这些技术提供了一个灵活的解码方案,其在不同复杂等级中具有不同选项。
在某些方案,解码器分配额外的资源来进行解码。通常,当额外的计算资源被分配来解码时,解码器重建更好的视频。此外,当额外缓存器资源被分配来存储参考图像信息时,解码器重建更好的视频。
或者,编码器或解码器为空间低通SL视频的解码加强空间高通SH子带信息。例如,为了将空间高通SH子带信息并入逆运动补偿时间滤波IMCTF判决中,即使是在解码器仅重建空间低通SL分辨率视频时,比特流提取器为空间高通SH系数分配带宽,而不是完全将它们略去。
在这个部分中各图(即图29至34)示出了一级空间可伸缩性。代替地,3D子带解码器为多级空间可伸缩性输出视频。以同样的方式,这个部分中各图示出了一个3D子带解码器,其为利用运动补偿时间滤波MCTF以CIF分辨率编码的原始视频输出QCIF视频。在此描述的技术和工具不限于以CIF和QCIF分辨率方式使用。
对于这部分的多个图来说,运动矢量在原始分辨率中具有半像素准确度,而在空间低通SL分辨率中具有四分之一像素的准确度。这对操作例如子像素的内插产生影响。代替地,运动矢量具有其他准确度,并因此解码器执行更多或更少子像素内插。此外,虽然这个部分中数个图示出了用于内插的是一个sinc滤波器,但是代替地,解码器可以采用另一种类型的滤波器(例如双线性、双三次)。
最后,这个部分中各图示出了二进制的离散小波变换DWT和逆离散小波变换IDWT操作。但是代替地,解码器可以采用其他操作来进行空间变换和逆空间变换。
1.方案A:带内逆运动补偿时间滤波IBIMCTF(基线)
为了与后面的方案进行比较,图29描述了在解码过程中没有分配额外计算或缓存器资源的带内逆运动补偿时间滤波IBIMCTF。图29中的方案与图26的带内逆运动补偿时间滤波IBIMCTF解码器(2650)中逆运动补偿时间滤波IMCTF的一个级相应。图29所示的操作在小波域中产生。
根据图29,3D子带解码器利用一个空间低通SL缓存器(2910)存储空间低通SL子带信息,以便将其用作参考图像信息。空间低通SL子带信息的有效分辨率是QCIF。
解码器利用一个4×4sinc滤波器执行子像素内插(2920)。(用于空间低通SL域中运动补偿预测MCP的运动矢量准确度是四分之一像素准确度。)这产生了一个子像素内插参考帧(2930)。内插的参考帧的有效分辨率是4CIF(704×576像素)。
解码器利用参考图像信息的内插的参考帧(2930)在空间低通SL域中执行运动补偿预测MCP(2940)。运动补偿预测MCPSL(2940)在空间低通SL域中产生一个预测(2950)。同样,预测(2950)的有效分辨率为QCIF。
2.方案B:最佳的带内逆运动补偿时间滤波IBIMCTF
在第二类的方案中,3D子带解码器通过将内插操作和/或运动补偿预测MCP操作移到空间域中来提高逆运动补偿时间滤波IMCTF。解码器依然为参考图像信息采用空间低通SL分辨率缓存器。图30示出了第二类方案的大体的框架,其中逆时间变换被表示为最佳逆时间变换OTi -1。图31、32和33示出了根据不同变化的第二类方案中逆运动补偿时间滤波IMCTF的一个级的示例。
a.方案B1
根据图31所示的方案(方案B1),3D子带解码器利用一个空间低通SL缓存器(3110)存储空间低通SL子带信息,以便用作参考图像信息。解码器利用缓存的空间低通SL子带信息执行一个逆离散小波变换IDWT操作(3120)。在该逆离散小波变换IDWT操作(3120)中,空间高通SH子带被当作空的(SH=0)。逆离散小波变换IDWT操作(3120)因此从空间低通SL子带信息中产生一个参考帧(3130)。当空间低通SL子带的有效分辨率是QCIF时,参考帧(3130)的有效分辨率是CIF。
然后,解码器对参考帧(3130)执行一个过完全离散小波变换OCDWT(3140)操作,产生一个过完全表示(3150)。代替地,解码器执行一个完全至过完全离散小波变换DWT而不是逆离散小波变换IDWT(3120)和过完全离散小波变换OCDWT(3140)。总之,过完全表示(3150)包括适于半像素运动补偿预测MCP的相移值。
在四分之一像素运动补偿预测MCP的准备中,解码器接着利用2×2sinc滤波器执行子像素内插(3160)。这产生了一个子像素内插参考帧(3170)。内插参考帧(3170)的有效分辨率是4CIF。
解码器利用参考图像信息的内插参考帧(3170)在空间低通SL域中执行运动补偿预测MCP(3180)。运动补偿预测MCPSL(3180)在空间低通SL域中产生一个预测(3190)。同样,预测(3190)的有效分辨率为QCIF。
b.方案B2
根据图32所示的方案(方案B2),3D子带解码器利用一个空间低通SL缓存器(3210)存储空间低通SL子带信息,以便将其用作参考图像信息。解码器利用缓存的空间低通SL子带信息执行一个逆离散小波变换IDWT操作(3220)。在逆离散小波变换IDWT操作(3220)中,空间高通SH子带被当作空的(SH=0)。逆离散小波变换IDWT操作(3220)因而从空间低通SL子带信息中产生一个参考帧(3230)。当空间低通SL子带的有效分辨率是QCIF时,参考帧(3230)的有效分辨率是CIF。
解码器利用一个2×2sinc滤波器执行子像素内插(3240)。这产生了一个子像素内插参考帧(3250),其中该帧的分辨率被水平地和垂直地提高了2倍。内插参考帧(3250)的有效分辨率是4CIF。
然后,解码器对内插参考帧(3250)执行一个向下采样离散小波变换DSDWT(3260)操作。这产生参考帧信息的一个过完全表示(3270)。该过完全表示(3270)包括适于四分之一像素运动补偿预测MCP的相移值。
解码器利用参考图像信息的内插参考帧(3270)在空间低通SL域中执行运动补偿预测MCP(3280)。运动补偿预测MCPSL(3280)在空间低通SL域中产生一个预测(3290)。同样,预测(3290)的有效分辨率为QCIF。
c.方案B3
根据图33所示的方案(方案B3),3D子带解码器利用空间低通SL缓存器(3310)存储空间低通SL子带信息,用作参考图像信息。解码器利用缓存的空间低通SL子带信息执行逆离散小波变换IDWT操作(3320)。空间高通SH子带在逆离散小波变换IDWT操作(3320)被当作空的(SH=0)。逆离散小波变换IDWT操作(3320)因而从空间低通SL子带信息中产生一个参考帧(3330)。当空间低通SL子带的有效分辨率是QCIF,那么参考帧(3330)的有效分辨率是CIF。
解码器利用2×2sinc滤波器执行子像素内插(3340)。这产生了一个子像素内插参考帧(3350),其分辨率被水平地和垂直地提高了2倍。内插参考帧(3350)的有效分辨率是4CIF。
解码器利用参考图像信息的内插参考帧(3350)在空间域中执行运动补偿预测MCP(3360)。运动补偿预测MCPSD(3360)(具有半像素准确度的运动矢量)在空间域中产生一个预测(3370)。在这个情况中,该预测(3370)的有效分辨率是CIF。
解码器对该预测(3370)执行一个离散小波变换DWT操作(3380),产生该预测(3370)的一个较低空间分辨率的型式(3390)。较低空间分辨率预测(3390)的有效分辨率是QCIF。
3.方案C:空间域逆运动补偿时间滤波SDIMCTF
图34示出了在解码期间分配了额外计算和缓存资源的空间域逆运动补偿时间滤波SDIMCTF。图34中的方案与图26的空间域逆运动补偿时间滤波SDIMCTF解码器(2600)的逆运动补偿时间滤波IMCTF的一个级相应。图34所示的操作发生在空间域。与方案B3相比,方案C中的参考图像缓存器是一个SD缓冲器,并且解码器在每一级逆运动补偿时间滤波IMCTF中不执行逆离散小波变换IDWT和离散小波变换DWT操作。以这种方式,中间结果中的空间高通SH信息被保持以便用于随后的空间域逆运动补偿时间滤波SDIMCTF。
根据方案C,3D子带解码器利用一个SD缓存器(3410)存储空间域信息,以便用作参考图像信息。最后逆空间变换在SD缓存器(3410)中为第一逆时间变换从空间低通SL子带信息产生该信息。为了随后的逆时间变换,SD缓存器(3410)中的信息从最早的逆时间变换开始被保持,并且SD缓存器(3410)中的信息可以包括由功率谱泄漏而产生的空间高通SH信息。SD缓存器(3410)中的信息的有效分辨率是CIF。
解码器利用2×2sinc滤波器执行子像素内插(3420)。这产生了一个子像素内插参考帧(3430),其被水平地和垂直地提高了2倍。内插参考帧(3430)的有效分辨率是4CIF。
解码器利用参考图像信息的内插参考帧(3430)在空间域中执行运动补偿预测MCP(3440)。运动补偿预测MCPSD(3440)(具有半像素准确度的运动矢量)在空间域中产生一个预测(3450)。在此情况下,预测(3450)的有效分辨率是CIF。
4.方案D:具有空间高通SH系数的空间域逆运动补偿时间滤波SDIMCTF
为了解决空间高通SH偏移的问题,在一个比特流提取器中为空间高通SH系数分配带宽。这与传统的空间可伸缩性不同,根据传统的空间可伸缩性中,当对空间低通SL分辨率的视频输出解码时,空间高通SH子带信息被简单地略去。
为了给空间高通SH系数确定最佳速率,降低低空间分辨率视频的失真的空间高通SH系数的成分被测量。(相反,利用传统空间可伸缩实施,降低整个原始空间分辨率视频的失真的空间高通SH系数的成分被测量。)换言之,即使在只输出低空间分辨率视频时,空间高通SH子带的增益因子也被考虑,以便解释在减小空间低通SL视频失真中空间高通SH子带的优点(例如提高运动补偿预测的准确度)。以这种方式,空间高通SH子带信息更可能被向前传送到空间低通SL视频的解码中。
在方案D中,当对空间低通SL视频解码时,当前空间高通SH子带的增益因子被使用,就像解码器正在提取原始分辨率视频。允许空间低通SL和空间高通SH子带的系数被包括在最后比特流中。代替地,为原始空间分辨率解码和空间低通SL解码的空间高通SH子带,计算不同增益因子。
在方案D中,当对空间低通SL视频解码时,3D子带解码器将如图34所示的解码框架应用于逆运动补偿时间滤波IMCTF中的一个级。参考图像缓存器(3410)是一个SD缓存器。为了第一逆时间变换,SD缓存器包括利用空间低通SL子带信息和(至少部分)SH子带信息重建的参考图像信息,即使最后输出视频实际上将只有空间低通SL分辨率。中间结果中的空间高通SH信息也被保持,以便用于随后的空间域逆运动补偿时间滤波SDIMCTF。
解码器利用2×2sinc滤波器执行子像素内插(3420)。这产生一个子像素内插参考帧(3430),其分辨率被水平地和垂直地提高了2倍。解码器利用参考图像信息的内插参考帧(3430)在空间域中执行运动补偿预测MCP(3440)。运动补偿预测MCPSD(3440)(具有半像素准确度的运动矢量)在空间域中产生一个预测(3450)。
5.比较
下表是方案A、B1、B2、B3、C和D的特性的比较。
方案 |
仅SL系数 |
仅SL缓存器 |
带内INTP |
带内MCP |
A |
是 |
是 |
是 |
是 |
B1 |
是 |
是 |
是 |
是 |
B2 |
是 |
是 |
否 |
是 |
B3 |
是 |
是 |
否 |
否 |
C |
是 |
否 |
否 |
否 |
D |
否 |
否 |
否 |
否 |
代替地,当对空间域运动补偿时间滤波SDMCTF编码的视频进行解码以便以较低空间分辨率输出时,解码器利用空间域内插、空间域运动补偿、空间域参考图像缓存器的某些其他的组合和/或利用空间高通SH信息来提高解码性能。
VI.连续相位过完全子带变换
带内运动补偿时间滤波IBMCTF和带内逆运动补偿时间滤波IBIMCTF的一个问题是如何减少运动估计和补偿上的小波变换的移位可变的效应——图像域中的位移/运动不直接映射到变换域。某些技术将整像素运动映射到变换域。(参见,例如Y.A.Andreopoulos等人发表于Proc.IEEE Conf.Digital Signal Proc.(2002)的“A New Method for Complete-to-Overcomplete Discrete WaveletTransforms”;以及X.Li、L.Kerofsky、S.Lei发表于Proc.ICIP第3卷第538-541页(2001)的“All-phase Motion Compensated Prediction for High PerformanceVideo Coding”。)这个部分描述了将部分像素运动映射到变换域中的相位变化的技术。藉此,可以在准确度更高的情况下执行运动估计和补偿,这可能明显地影响编码性能。
这一部分描述一个连续相位过完全子带变换(“CPOST”),其具有一个一级的一维小波变换的例子。P-像素连续相位过完全子带变换CPOST的分解过程具有四个连续的阶段:(1)p-像素内插,(2)连续位移,(3)向下采样,以及(4)小波变换。
设想连续的p-像素相位过完全变换是(p=1,1/2,1/4,1/8,…)。当p=1时,连续相位过完全子带变换CPOST是整像素相位过完全情况。P的其他值表示子像素相位过完全情况。假设输入信号是离散时间域中的序列{x(n)},n=0,1,2,3,…。编码器或解码器首先执行{x(n)}的p-像素内插,接着连续地移动p-像素内插序列
次,并对移动后的序列向下采样。这产生了{x(n)}的一组连续相移序列,由{x
i p(n)},i=0,1,…,
表示。最后,编码器或解码器对{x
i p(n)}执行小波分解变换。
对于p=1/2的情况,连续的相移序列如下。{y(n)}是由{x(n)}的1/2-像素内插点组成的序列。
…x(n)y(n)x(n+1)y(n+1)x(n+2)y(n+2)x(n+3)y(n+3)…
0-相位 …x(n) x(n+1) x(n+2)…
1/2-相位 …y(n) y(n+1) y(n+2)…
1-相位 …x(n+1) x(n+2) x(n+3)…
3/2-相位 …y(n+1) y(n+2) y(n+3)…
可以通过分别沿着水平和垂直方向制造两个序列1D连续相位过完全子带变换CPOST来实现一个2D连续相位过完全子带变换CPOST。
在小波域中,利用一组预测滤波器F
i p(z)i=0,1,…,
可以获得连续的p-像素相移序列。这些滤波器等效于将子像素内插序列连续位移并对这些位移后的序列进行向下采样。P-像素连续相位过完全子带变换CPOST的分解过程可以被表示为:将滤波器应用至x(n),接着为了小波分解变换分别利用低通滤波器G
L(z)和高通滤波器G
H(z)对结果进行处理,然后向下采样。l
i p(n)和h
i p(n)分别是连续相位过完全子带变换CPOST的低通和高通系数,其中
在z域中,X(z)和X
i p(z)分别是{x(n)}和{x
i p(n)}的z变换。L
i p(z)和H
i p(z)分别是l
i p(n)和h
i p(n)的z变换。
Lp i(z)=1/2[GL(z1/2)Xp i(z1/2)GL(-z1/2)Xp i(-z1/2)] (21).
Hp i(z)=1/2[GH(z1/2)Xp i(z1/2)+GH(-z1/2)Xp i(-z1/2)]
P-像素连续相位过完全子带变换CPOST的分解过程与矩阵表达式相应:
表达式(22)表示没有位移的原始序列的小波分解变换。表达式(23)表示连续子相移序列的小波分解变换。表达式(23)和(24)构成连续相位过完全子带变换CPOST。至于Li p(z)、Hi p(z)与Lp 0(z)、Hp 0(z)之间的关系。
从(20)至(23):
从(22)至(24):
其中
并且其中G-1(z)是G(z)的逆矩阵。
根据(25),变换矩阵Ti p(z)和逆变换矩阵ITi p(z)可以从原始序列(即0相移序列)的小波变换中获得,以便获得子像素相移序列的小波变换。
从(26),如果存在表达式(28),那么过完全小波变换之后的子像素内插的结果等于离散时间域中子像素内插之后的过完全小波变换的结果。否则,过完全小波变换之后的子像素内插的结果不等于离散时间域中子像素内插之后的过完全小波变换的结果。
通常,表达式(28)不存在,这暗示带内视频编码的子像素内插和过完全小波变换的顺序没被交换。根据(25),然而,原始序列的连续相位过完全子带变换CPOST系数可以从它的小波变换系数中导出。
连续相位过完全子带变换CPOST方法不仅实现整像素相位过完全小波变换,还实现子像素相位过完全小波变换。接着利用5-3小波变换和6-抽头内插滤波器进行的P=1/2的连续相位过完全小波变换矩阵系数如下。变换矩阵的每一个元素的系数T1/2 1(z)、T1/2 2(z)和T1/2 3(z)如下:
T1/2 1(0,0)=[0.0098 -0.0957 0.8867 0.2227 -0.0215 -0.0020]
T1/2 1(0,1)=[-0.0024 0.0488 -0.2290 0.3242 -0.1440 0.0020 0.0005]
T1/2 1(1,0)=[0.0391 -0.2344 0.3438 -0.1406 -0.0078]
T1/2 1(1,1)=[-0.0098 0.1582 0.3633 -0.5352 0.0215 0.0020]
T1/2 2(0,0)=[-0.0625 0.5625 0.5625 -0.0625]
T1/2 2(0,1)=[0.015625 -0.25 0.46875 -0.25 0.015625]
T1/2 2(1,0)=[-0.25 0.5 -0.25]
T1/2 2(1,1)=[0.0625 -0.5625 -0.5625 0.0625]
T1/2 3(0,0)=[-0.0020 -0.0215 0.2227 0.8867 -0.0957 0.0098]
T1/2 3(0,1)=[0.0005 0.0020 -0.1440 0.3242 -0.2290 0.0488 -0.0024]
T1/2 3(1,0)=[-0.0078 -0.1406 0.3438 -0.2344 0.0391]
T1/2 3(1,1)=[0.0020 0.02148 -0.5352 0.3633 0.1582 -0.0098]
由于大量可能的实施例可以应用本发明的原理,因此,应认识到所描述的实施例仅是本发明较佳示例,并且不应当认为是对本发明范围的限制。相反,本发明的范围是由附加的权利要求限定。因此,我们要求所有在这些权利要求的范围和精神内的发明为我们的发明。