视频编码方法

文档序号:7514455阅读:205来源:国知局
专利名称:视频编码方法
技术领域
总的来说,本发明涉及视频压缩领域,具体而言,涉及在应用于二维帧序列的子带编码方法基础之上的视频编码方法,该方法包括当前帧(F2)的子带分解步骤,针对前面的帧或者基准帧(F1)进行的运动预测步骤和编码步骤。
背景技术
在多媒体领域里,新的交互式应用,比方说因特网视频流、视频数据库浏览或者多质量视频业务,正在越来越普及。不同种类的网络(因特网、移动网、家庭数字网)上视频业务的新发展已经在不断变化的传输条件(带宽、误码率)和不断变化的消费者需求以及终端译码能力(CPU、显示器大小、应用……)下带来了新的问题,使得人们不断寻找新的算法来进行视频压缩,特别是基于子带分解的方法。
在传统的视频编码算法里,特别是在MPEG-4标准的帧内,处理过的视频序列连续帧之间的运动估计可以用所谓的块匹配算法(BMA)来进行在BMA中,通过在基准帧内限定的区域或者搜索窗内搜索相似块,将一个运动矢量分配给当前帧中的一块图像元素(像素)(分解成固定大小的块),按照误差测量通过评估候选对象来找到最佳矢量(表示块的变换)(最佳的对应块就是给出最小误差的那一个)。可惜,在经过了运动补偿的帧内,BMA在块边缘上(分块效应)产生高频缺陷。在小波分解基础之上将BMA用于编码方法中的时候,这些缺陷通过导致补偿过的帧的小波分解过程中的高系数来降低编码效率。

发明内容
本发明的目的是提出一种视频编码方法,它采用另一种运动估计和补偿技术,从而提高编码效率。
为此目的,本发明涉及前面提到的一种方法,其特征还在于所述运动预测步骤是建立在基准帧的冗余分解基础之上的,它采用以下程序(1)在所述分解技术的近似子带中,采用涉及到基准帧的完全搜索操作来估计运动,应用于当前帧的每一个图像元素(像素);
(2)对于其它子带,用像素(或者像素)递归运动估计算法来估计运动,将从所述子带分解过程中获得的二次抽样子带重构出来的基准冗余子带用于这一预测。
这里提出的这一技术是建立在采用小波的像素递归运动估计算法的基础之上的。小波域的运动估计必须考虑变换不变性这个问题。然后将基准帧的冗余分解技术用于预测运动情况,从而将最精细分辨率的栅格上的运动考虑在内。在近似子带中,在当前帧里对每个像素应用完全搜索算法来估计运动情况。对于其它子带,采用将基准冗余子带用于预测的像素递归算法。这个算法的初始化是利用同一个子带内空间邻域里运动矢量以及对应于前一级分解过程中同一个位置的运动矢量的加权值来完成的。这一算法允许在不能够收敛到良好估计的位置上重新初始化。还对子带内的扫描顺序进行优化,以便使逐行扫描中可能出现的漂移最小。
具体而言,所述像素递归运动估计算法可以包括以下步骤(a)初始化步骤,用有因果关系的邻域S中运动矢量的平均值d0(m)来初始化迭代算法d0(m)=1Card(S)Σj∈Sd(m-j)]]>采用以下符号m=必须估计其运动情况的像素;d(m)=它的运动矢量;(b)更新步骤,用于按照以下关系更新didi+1=di+ui,其中在每次叠带的时刻i确定的ui是下式给出的一个更新矢量ui=E(m)||▿A||2+λ·▿A]]>其中A是m-di这个点上图像的梯度,E(m)=B(m)-A(m-di)是当前这次迭代的预测误差,λ是调整参数;(c)判决步骤,用于进行终止测试,从而在di足够接近d的时候结束这一程序;最好使用四个像素的典型邻域。
在本发明的一个特定实施方案中,终止测试可以建立在以下比值的估计的基础之上
R=||ui||2||di||2]]>该比值必须大于给定门限ε。
所述终止测试还可以包括针对最大迭代次数给出的另外一个条件。
还可以指出,按照本发明的一个优选实施方案,所述更新矢量ui的确定是建立在包括以下最小化操作的计算步骤这一基础之上的已知B(m)=A(m-di)-δdT·A,其中δdT·A是A与矢量δd=d-di的内积,使平方误差J最小J=(B(m)-A(m-di)+δdT·A)2+λ‖δd‖2对于δd,λ‖δd‖2这一项是λ很大的时候得到的运动矢量场的平整度与λ很小的时候运动矢量精度之间的一个折中的情况下的一个调整项,在J/d=0的情况下得到最小值,导致以下更新矢量δd=ui=-E(m)||▿A||2+λ▿A]]>在本发明的另一个实施方案中,这一运动估计算法还可以包括以下步骤(a)初始化步骤,用有因果邻域S中运动矢量的平均值dj,0(m)来初始化迭代算法dj,0(m)=1Card(S)Σj∈Sdj(m-k)]]>采用以下符号k∈s(1~4);m=必须估计其运动情况的像素;dj,0(m)=它的运动矢量;(b)更新步骤,用于按照以下关系更新dj,i+1dj,i+1=dj,i+uj,i,其中在每次叠带的时刻i确定的uj,i是下式给出的一个更新矢量uj,i=(Σs=0,13(▿Aj,s▿Aj,sT)+λI)-I(-Σs=0,13Ej,s(m)▿Aj,s)]]>其中▿Aj,s=∂Aj,s(m-dj,i)∂m∂Aj,s(m-dj,i)∂n]]>是m-dj,i这个点上图像的梯度,Ej,s(m)=Bj,s(m)-Aj,s(m-dj,i);(c)判决步骤,用于进行终止测试,从而在dj,i足够接近dj的时候结束这一程序;最好使用四个像素的典型邻域。


下面参考附图,以实例的形式介绍本发明,在这些附图中图1说明具有运动补偿的视频序列的子带分解;图2和图3分别说明动态子带分解和能够获得所述分解的滤波器组;图4和5说明这样的动态子带分解如何不能保持变换不变性;图6和7说明表示之间的恒等性,说明每一级分析都存在冗余分解;图8和9分别描述信号分解和信号重构情形中的所谓的提升方案;图10~12说明将图6和7的恒等式应用于图3中的每一组滤波器得到的经典小波分解的三级;图13说明三级上分解的样本的选择(0表示偶数,1表示奇数);图14说明对应于64个可能分解基可能的64个二次抽样选择;图15说明交织的二次抽样子带如何导出冗余子带;图16说明单独一帧的冗余分解,十个冗余子带中的每一个都具有与原始帧相同的大小;图17说明经典线性扫描顺序,图18说明在描述的像素递归算法的初始化阶段能够获得改进了的因果性的一个因果扫描顺序;图19说明像素(m,n)冗余平面内的完全搜索窗。
具体实施例方式
为了获得能够满足不同需求的灵活性,视频编码系统需要具有可伸缩性。建立在子带分解技术基础之上的渐进编码技术可能是一个答案,因为它们允许进行全渐进传递。具体而言,关于可伸缩表示,小波在渐进编码图像中具有很高的效率。它们为静止图像提供自然的多尺度表示,利用分解过程中包括时间尺度的3D(或者2D+t)(3D=三维;2D=二维;t=时间)小波分析能够扩展到视频数据。在3D子带分解方案中引入运动补偿步骤能够得到视频信号的空间-时间多分辨(分层)表示,如图1所示,它说明具有运动补偿的视频信息时间子带分解。
将图中所示具有运动补偿的3D小波分解应用于一组帧(GOF),叫做F1~F8。在这个3D子带分解方案中,输入视频信号的每个GOF都首先经过运动补偿(MC),以便处理大运动序列,然后用Haar小波进行时间滤波(TF)。虚线箭头对应于高通时间滤波,而其它的则对应于低通时间滤波,图中画出了三级分解(L和H=第一级;LL和LH=第二级;LLL和LLH=第三级)。
但是,对每个子带的系数进行像素递归运动估计的时候,必须考虑没有变换不变性这个问题。动态子带分解的主要问题(见图2,它说明这样一个分解方案,针对三层进行,得到最低层中的十个子带LH1、HL1和HH1,中间层中的LH2、HL2和HH2,以及最高层中的M3、LH3、HL3和HH3;又见图3,它说明能够从输入信号f[n]获得这一分解的一个滤波器组,它给出输出信号L1[n]、L2[n]、L3[n]、H1[n]、H2[n]和H3[n])是在每次滤波操作以后(21,22,23,24,25,26)所进行的二次抽样操作(31,32,33,34,35,36)不具备变换不变性(而信号的冗余小波变换则是一个时间不变表示,非冗余小波分解则缺乏这一特性)。在图4和图5中给出一个实例,其中分别在运动目标(原始信号0RS)边缘的第一个位置这种情形以及对应于所述边缘另一个位置的偏移输入(偏移输入SHF)这种情形,说明低通和高通滤波器(L(z)和H(z))以及二次抽样器(TM2)的输出上,高通滤波分支和低通滤波分支的样本。在每个滤波器和每个二次抽样器以后说明获得的信号。每次二次抽样操作必须保持偶数或者奇数样本运动边缘导致第一种情况下(图4,高通滤波分支)的高频系数HFC,而在第二个中间再也不能检测到所述边缘(图5)。因此,无法从二次抽样以后的子带系数推测运动情况。必须从没有采样的子带进行运动预测。
对于1D信号,二次抽样操作会导致两个可能的选择可以选择奇数样本也可以选择偶数样本。对于2D信号(比方说图像),这一操作会导致四种可能的分解方法。因此,在三级上对一个信号帧进行分解,会有64种可能的分解方案,它们的信息量都相同。但是,如上所述,不能对它们进行运动分解,因为它们不是冗余的。于是从图6可以看出(说明图中所示两个表示(L(z2)+TM2)和(TM2+L(z)之间的恒等性)每一级分析都存在冗余分解。引入图3所示(图7中上半部分重复)低通滤波分支(21,31,22,32,23,33)里图6的等价的东西会得到图7所示下半部分的等价方案在最后的二次抽样操作之前,获得大小与原始图像一样的冗余子带,可以对它进行有效的运动估计(三级1、2、3上的冗余子带RSB1、RSB2、RSB3已经在图7中说明)。
在信号分解导致输出c[n]和d[n]的情况下,用图8所示的所谓提升方案来进行小波分解,在从所述信号c[n]和d[n]进行信号重构的情况下用图9所示的方案来进行(这样做是因为预测滤波器P和更新滤波器U的选择具有灵活性,但是显然它不是唯一的选择)。对于每条滤波器通道,首先可以提取奇数或者偶数样本(分别是x1[n]和x0[n]),就象图8和图9所示的一样-首先是偶数样本? -首先是奇数样本? 然后,图10~12说明通过将图6和7的恒等式应用于图3中的每个滤波器组能够获得的“经典”小波分解可以看出,刚好在每一级的抽取之前(图10、11或者12)停止会得到冗余子带。
问题是内在地提升小波要在滤波之前进行十取一处理。在图8中,提升组的输入信号是x0[n]=f[2n]·x1[n]=f[2n+1]或者x0[n]=f[2n+1]·x1[n]=f[2(n+1)],相对于原始信号f[n]对这些输入进行十取一处理。这样,在分解过程中不能跳过十取一这一步,可以用另一种方法获得冗余子带,这里不进行描述。
显然,参考图8和9,对于每一级分解和每一尺度,可以首先选择偶数或者奇数样本。如果例如偶数样本用0表示,奇数样本用1表示,那么三级上全分解的特征就是有六个比特,如图13中的实例所示,可以将它看成利用这样的基对这个数进行的二进制分解0,0,1,0,0,1->基数9。结果对应于64个可能的分解基有64个可能的二次抽样选择(如图14所示)。
然后用关键的二次抽样子带来构造冗余子带。分解基的数量能够得到要在矩形栅格上放置子带的位置。例如,如果描述x的比特是010(第3级,第2级,第1级),那么它们就得到2这个数,它就是重构偏移,说明子带的第一个样本必须沿着x方向放在冗余子带中的哪个位置上。针对y方向进行同样的操作,然后将样本按照以下长度间隔放置间隔=2分解级。知道了每个二次抽样子带的偏移和间隔,就能够对它们进行交织,以便重构冗余子带,如图15所示。这个冗余子带与原始图像具有相同的大小。在第一级分解中,每个冗余子带HL、LH和HH都是通过交织四个二次抽样子带获得的。在第2级上,通过交织16个二次抽样子带来获得它们,在第3级上,必须交织64个二次抽样子带来获得冗域子带(见图14)。最后,冗余分解得到10个冗余子带,如图16所示。
下面介绍像素递归运动估计方法。在下文中,黑体字表示矢量(d),表示梯度,(.)T表示转置。以下算法的目的是计算两个矩阵A和B之间的光流,它可以是两个连续的序列帧,或者(就象这个情形中一样)两个连续子带。目的是估计每个像素m=(m,n)的运动矢量d(m)B(m)=A(m-d)(1)为了对d进行递归描述,必须假设在图像平面上d是平滑分布的。这里描述的方法主要是对于B中的每个基准像素,在估计的位置(m-d)计算A中的梯度,以便找到A中更靠近基准像素的像素。这样就获得一个新位置m-d。如果位置没变,这个算法就停止,否则就再迭代一次。这样,当这一算法到达正确位置的时候,它就收敛并停止。
这一迭代程序包括以下步骤,包括初始化、计算更新矢量、更新运动矢量和终止测试(1)用因果邻域S中运动矢量的平均值初始化迭代程序,d0(m)=1Card(S)Σj∈Sd(m-j)---(2)]]>考虑到可以使用四个像素的典型邻域(假设这些运动矢量是图像边界的0)* j1j2j3** j0m * ** * * * *
(2)第二步是确定每次迭代i的更新矢量uiui=E(m)||▿A||2+λ·▿A----(3)]]>其中▿A=∂A(m-di)∂m∂A(m-di)∂n---(4)]]>是图像在m-di这一点上的梯度,E(m)=B(m)-A(m-di) (5)是当前这次迭代的预测误差,λ是调整参数。
(3)在第三步中,更新didi+1=di+ui(6)(4)如果di足够接近d,终止测试就结束这一程序。但是这一测试可以例如建立在比值估计这一基础之上R=||ui||2||di||2---(7)]]>它必须优于ε(可以转动ε来平衡矢量确定精度和计算负荷)。可以给最大迭代次数一个辅助条件。
下面详细介绍第二步(更新表达式(3)描述的矢量)。表达式(1)的一阶近似为B(m)=A(m-di)-δdT·A (8)其中A是表达式(4)的梯度,δd=d-di。
必须使平方误差最小(下面将介绍λ‖δd‖2这一项) 当∂J∂δd=0]]>的时候得到最小值,也就是(B(m)-A(m-di)+δdT·A)·A+λδd=0(10)当δdT·A是矢量δd和A的内积,得到δdT·A=AT·δd,表达式(10)成为(A.T+λI).δd=-E(m).A (11)现在能够看到λ的用途矩阵AAT是不可逆的(秩1),但是可以用以下引理来计算AAT+λI的逆(M+uuT)-1=M-1-M-1uuTM-11+uTM-1u]]>对于u=A和M=λI由此得到((▿A▿AT+λI)-1=▿Aλ+||▿A||2--(12)]]>最后得到δd=E(m)λ+||▿A||2▿A---(13)]]>这就是用于表达式(3)和(6)中的更新矢量ui。这一调整在得到的运动矢量场(对于大λ)平滑程度与运动矢量精度(对于小λ)之间得到一个折中。
显然,在表达式(11)中,必须计算A。梯度计算可以通过图像的离散滤波来近似。为了通过线性滤波对梯度进行离散近似,这些滤波器必须满足现在必须提醒的一些条件。假设h是一个FIR滤波器,考虑连续场F(x,y)的矩形采样,得到F[n,m]=F(nL1,nL2)。在x方向上图像的梯度是L1·∂F∂x(nL1,nL2)=hn,m*F[n,m]]]>=Σ(k,l)∈Shk,l·F[n-k,m-l]--(14),]]>S被看作9个像素的一个邻域(中心像素m和周围的8个像素)。另一方面,在第一阶,得到F[n-k,m-l]≈F[n,m]-kL1·∂F∂x(nL1,nL2)-lL2·∂F∂x(nL1,nL2)----(15)]]>合并表达式(14)和(15)得到L1·∂F∂x(nL1,nL2)=Σ(k,l)∈Shk,l·F[n,m]]]>-L1Σ(k,l)∈Skhk,lL1·∂F∂x(nL1,nL2)]]>-L2Σ(k,l)∈Slhk,lL1·∂F∂x(nL1,nL2)--(16)]]>找出关系(16)的成员就得到h的三个约束条件Σ(k,l)∈Shk,l=0]]>Σ(k,l)∈Skhk,l=-1]]>Σ(k,l)∈Slhk,l=0]]>选择出来满足这些条件的滤波器如下(a)x-维梯度滤波器
-1/8 0 1/8-1/4 0 1/4-1/8 0 1/8(b)y-维梯度滤波器-1/8 -1/4 -1/80 001/8 1/4 1/8由此得到离散梯度的一个良好近似。
采用上述算法能够得到不同的改进,特别是运动矢量和速度的精度。算法的速度可以通过让它更快地收敛而得到提高。因此,初始化步骤对于收敛速度而言至关重要。良好的初始化必须考虑以前计算出来的运动矢量。但是,在图像平面上运动矢量分布的平滑假设在物体的边界上可能不成立(对于特定类型的运动,例如当平面内的物体在不同方向上运动的时候)。这一算法必须能够检测这一情况,通过打破运动矢量场的平滑性来矫正这一初始化操作。可以在初始化步骤的结尾进行终止测试(甚至在每次更新完运动矢量以后都这样做)。必须计算两个测试值E0(m)=|Bj,s(m)-Aj,s(fm)|Ej,s(m)=|Bj,s(m)-Aj,s(fm-fdi)|,其中E0是没有运动(di=0)的误差,Ej,s是考虑了计算出来的运动矢量的时候的误差。原则是如果Ej,s大于E0,就必须将运动矢量重新初始化为0。但是,过于频繁的重新初始化会妨碍这一算法收敛。当预测误差非常小的时候,这种情况会频繁发生。这就是为什么在这一测试中引入一个容差,它由以下不等式给出Ej,s>E0+THR(17)其中THR是一个门限,要按照子带系数的值来确定。
另一个改善涉及到扫描阶数。假设图像是一个表,从第一项(也就是m=(0,0))到最后一项(m=xmax,ymax)进行扫描,如图17所示。结合了初始化邻域的这个初始化顺序在图像的左下角得到一个很差的运动估计(因为对于图像的第一栏,初始化邻域只减少到以上像素)。于是这一方法不是坚固的,导致误差漂移。图18给出的扫描顺序能够得到更好的结果。对这一图像进行扫描,偶数行从左到右,奇数行从右到左。这样就能够在初始化的时候增强因果性。每一个像素都依赖于以前扫描过的所有像素。采用这种方法在这个图像左下角的误差漂移不存在。更好的初始化可以使这一算法收敛更快。误差漂移是因为迭代次数有限如果这一初始化不好,这一算法就没有足够的迭代次数来收敛到正确的运动矢量。采用这种新的扫描顺序,必须改变初始化邻域。对于第一行,邻域减少到前一个像素* j0m *对于偶数行,邻域维持不变* j1j2j3** j0m * ** * * * *第三个改善涉及图像的近似子带SB Ajmax,0,从定义上讲它没有多少细节。这样,像素递归运动估计有时不够准确。补偿以后的近似中很小的误差会导致从补偿过的子带重构的图像非常差的结果。如果对于窗口Ajmax,0中的每一个像素Bjmax,0都进行完整的扫描就能够得到更好的结果,但是这种方法不如像素递归算法快。搜索窗的大小为(2·(2jmax)+1)by(2·(2jmax)+1)如图19所示。如果SB(3,0)的估计非常好,就能够用它的运动矢量来初始化其它子带SB。如果将dapproximation叫做像素m(m,n)上SB(3,0)里的运动矢量,将d0叫做只考虑空间邻域的初始化矢量,那么就能够通过以下表达式计算初始化矢量D0=α·dapproximation+(1-α).d0,(18)其中α是能够在初始化过程中控制dapproximation的影响的一个常数。如果α=0,dapproximation就根本没有任何影响。同样的原理可以应用于其它子带SB。于是可以在更高阶的分解j过程中用前面计算出来的运动矢量,以便初始化这一算法。如果将dj+1叫做j+1这一阶上估计出来的运动矢量,新的初始化矢量就是D0=α·dj+1+(1-α)·d0。上面描述的一般算法可以应用于两个子带。但是,如果使用了它,就不考虑同一级分解的子带之间的相关在这三个(或者将LL子带考虑在内的时候有四个)子带中计算出来的运动矢量对于每个像素都应该相同。于是能够决定对给定级的分解j{1,2,...,jmax}估计每个像素m=(m,n)的运动矢量dj(m)Bj,s(m)=Ajs(m-dj)for s∈{0,...4} (19)其中A0,0表示第一个图像,B0,0表示第二个图像,Aj,s表示帧A第j阶分解的子带号子带0表示近似子带(SB),子带1表示水平细节SB,子带2表示垂直细节SB,子带3表示对角线细节SB。
必须按照前面的方式做出在子带平面上d平滑分布的假设。
如上所述,对每一级分解j∈{1,2,...,jmax}所执行的迭代程序包括四个步骤初始化、计算更新矢量、更新运动矢量和终止测试,但是有一些细微的改进用因果邻域S中运动矢量的平均值初始化迭代程序,dj,0(m)=1Card(S)Σj∈Sdj(m-k)--(20)]]>对于例如典型的4像素邻域(假设在图像边界上运动矢量等于0)* k1k2k3** k0m * ** * * * *2.然后确定更新矢量uj,i
uj,i=(Σs=0,13(▿Aj,s▿Aj,sT)+λI)-1(-Σs=0,13Ej,s(m)▿Aj,s)---(21)]]>其中▿Aj,s=∂Aj,s(m-dj,i)∂m∂Aj,s(m-dj,i)∂n---(22)]]>是m-dj,i这一点上图像的梯度,Ej,s(m)=Bj,s(m)-Aj,s(m-dj,i) (23)s从1变到3,或者从0变到3,具体情况取决于必须考虑的子带数量(更深分解级为4,其它的为3)。
3.然后更新运动矢量dj,i+1dj,i+1=dj,i+uj,i(24)4.如果di,j足够接近dj,终止测试就结束这一程序,这一测试是例如以下比值的估计Rj,i=||uj,i||2||dj,i||2---(25)]]>它必须优于ε(ε待定)。给迭代最大次数另一个条件。
对于更新矢量的计算,在第一阶上,对于每个s,表达式(1)成为Bj,s(m)=Aj,s(m-dj,s)-δdjT▿Tj,s--(26)]]>其中Aj,s是从公式(4)得到的梯度,δdj=dj-dj,j。
同时想让所有子带上的平方误差最小的时候
满足以下条件的时候就得到最小值∂Ji∂δdj=0]]>也就是Σs=0,13((Bj,s(m)-Aj,s(m-dj,i)+δdjT▿Aj,s)▿Aj,s+λ∂dj)=0--(28)]]>表达式(28)成为(Σs=0,13(▿Aj,s▿Aj,sT)+λI)·δdj=-Ej,s(m)·▿Aj,s--(29)]]>即使没有进行调整,矩阵Σs=0,13▿Aj,s▿Aj,sT+λI]]>也是可逆的。它是一个2×2矩阵,可以以显式方式计算出逆矩阵。在这种情况下,只有运动矢量场相干性的控制需要调整项λI。
万一将这一像素递归运动估计算法应用于冗余子带,就必须改变前面的算法。令f是说明冗于子带大小和二次抽样子带大小之间比例大小的比例系数f=2j其中j是分解级。
已知冗于子带缺乏变换不变性。结果,可以在冗于子带(基准帧)和二次抽样子带(当前帧)之间进行像素递归运动估计。于是将运动矢量定义为(假设为Bj,s的二次抽样的分解保持偶数样本Bj,s(m)=Aj,s(fm-fdj) (30)
迭代程序略有不同1.用表达式(20)来初始化d0(m)。
2.更新矢量ui不变,新误差Ej,s(m)=Bj,s(m)-Aj,s(fm-fdj) (31)新梯度▿Aj,s=1f∂Aj,s(fm-fdj,i)∂m∂Aj,s(fm-fdj,i)∂m----(32)]]>3.更新等式不变。
4.终止测试不变。
权利要求
1.建立在子带编码方案,应用于二维帧序列的一种视频编码方法,该方法包括当前帧(F2)的一个子带分解步骤,对前一帧或者基准帧(F1)进行的运动预测步骤,以及编码步骤,该方法的特征还在于所述运动预测步骤是按照以下程序,建立在基准帧的冗余分解基础之上的(1)在所述分解的近似子带中,通过涉及到所述基准帧,应用于当前帧每个图形元素(像素)的完整搜索操作,对运动进行估计;(2)对于其它子带,通过像素(或者像素)递归运动估计算法,为预测利用从所述子带分解得到的二次抽样子带重构出来的基准冗余子带来对运动进行估计。
2.权利要求1的编码方法,其中用于计算表示两个连续子带的两个矩阵A和B之间光流,也就是按照B(m)=A(m-d)为每个像素m估计它的运动矢量d(m)的像素递归运动估计算法,包括以下步骤(a)一个初始化步骤,用因果邻域S中运动矢量的平均值d0(m)初始化这一迭代算法d0(m)=1Card(S)Σj∈Sd(m-j)]]>采用了以下符号m=必须估计其运动的像素;d(m)=它的运动矢量;(b)一个更新步骤,用于按照以下关系更新didi+1=di+ui,其中每次迭代i的ui都是由以下公式给出的更新矢量ui=-E(m)||▿A||2+λ,▿A]]>其中A是在m-di这一点上图像的梯度,E(m)=B(m)-A(m-di)是当前迭代中的预测,λ是一个调整参数;(c)一个判决步骤,用于进行终止测试,从而在di足够接近d的时候结束这一程序。
3.权利要求2的编码方法,其中使用了四个像素的典型邻域。
4.权利要求2和3中任意一个的编码方法,其中的终止测试建立在以下比值的估计的基础之上R=||ui||2||di||2]]>所述比值必须大于给定门限ε。
5.权利要求4的编码方法,其中的门限ε用来平衡矢量确定精度和计算负荷。
6.权利要求4和5中任意一个的编码方法,其中的终止测试包括针对最大迭代次数给出的另外一个条件。
7.权利要求4~6中任意一个的编码方法,其中所述更新矢量ui的确定建立在包括以下最小化操作的计算步骤的基础之上已知B(m)=A(m-di)-δdT·A,其中δdT·A是A和矢量δd=d-di的内积,为了使平方误差J相对于δd最小J=((B(m)-A(m-di)+δdT·A)2+λ‖δd‖2λ‖δd‖2是考虑到得到的对于λ的大值运动矢量场平滑程度和对于λ的小值的运动矢量精度之间的折中的一个调整项,当J/δd=0的时候得到最小值,并且得到更新矢量δd=ui=-E(m)||▿A||2+λ,▿A]]>
8.权利要求7的编码方法,其中的扫描顺序如下偶数行从左到右,奇数行从右到左,然后针对第一行修改初始化邻域,在这里,它缩减成前一个像素,对于奇数行,在这里将它反转过来以保持因果性。
9.权利要求7的编码方法,其中的运动估计算法必须通过用某种容差测试终止条件,来进行重新初始化,使用估计出来的运动矢量的时候,预测误差对于所述测试与没有任何运动估计的预测误差相比,加上一个门限。
10.权利要求2的编码方法,其中运动矢量的初始化是通过将邻域S上的平均和从前一级分解过程中具有相同取向的子带获得的运动矢量的线性合并来进行的。
11.权利要求1的编码方法,其中的像素递归运动估计算法用来使用与分解同一级的子带之间的相关性,也就是估计给定级分解j∈{1,2,...,jmax},对于每个像素m,它的运动矢量dj(m)的方式使得对于s={0,...,4},Bj,s(m)=Aj,s(m-dj),这两个矩阵A和B表示两个连续子带,它本身包括以下步骤(a)一个初始化步骤,迭代算法用因果邻域S中运动矢量的平均值dj(m)来初始化dj,o(m)=1Card(S)Σj∈Sdj(m-k)]]>采用以下符号k∈s(1~4);m=必须估计其运动情况的像素;dj,0(m)=它的运动矢量;(b)更新步骤,用于按照以下公式更新dj,i+1dj,i+1=dj,i+uj,i,其中在每次迭代i确定的uj,i是以下公式给出的一个更新矢量uj,i=(Σs=0,13(▿Aj,s▿Aj,sT)+λI)-1(-Σs=0,13Ej,s(m)▿Aj,s)]]>其中▿Aj,s=∂Aj,s(m-dj,i)∂m∂Aj,s(m-dj,i)∂n]]>是图像在m-dj,i这一点的梯度,和Ej,s(m)=Bj,s(m)-Aj,s(m-dj,i)(c)判决步骤,用于进行终止测试,从而在dj,i足够接近dj的时候结束这一程序。
12.权利要求11的编码方法,其中采用四个像素的典型邻域。
13.权利要求11和12的编码方法,其中的终止测试建立在以下比值的估计的基础之上Ri,j=||uj,i||2||dj,i||2]]>所述比值必须大于给定门限ε。
14.权利要求13的编码方法,其中的终止测试包括针对最大迭代次数给出的另外一个条件。
15.权利要求13和14中任意一个的编码方法,其中所述更新矢量ui的确定建立在包括以下最小化操作的计算步骤的基础之上已知Bj,s=Aj,s(m-dj,i)-δdT·Aj,s,其中δdT·Aj,s是Aj,s和矢量δdj=dj-dj,i的内积,为了使以下平方误差相对于δdj最小 λ‖δdj‖2是考虑到得到的对于λ的大值运动矢量场平滑程度和对于λ的小值的运动矢量精度之间的折中的一个调整项,当Jj/δδdj=0的时候得到最小值。
全文摘要
本发明涉及建立在应用于二维帧序列的子带编码方案之上的一种视频编码方法。该方法包括当前帧(F2)的一个子带分解步骤,相对于前一个或者基准帧(F1)进行的一个运动预测步骤,以及编码步骤。根据本发明,运动预测步骤建立在基准帧冗余分解的基础之上,按照以下步骤在近似子带里,通过应用于当前帧每个像素的完整搜索操作对运动进行估计,对于其它子带,在预测的时候使用从二次抽样子带重构出来的基准冗于子带,通过像素递归运动估计算法进行运动估计。所述像素递归运动估计算法本身包括一个初始化步骤、一个确定和更新步骤以及一个判决步骤。
文档编号H03M7/30GK1520693SQ02812747
公开日2004年8月11日 申请日期2002年6月20日 优先权日2001年6月26日
发明者P·卡拉斯科, P 卡拉斯科, B·佩斯奎特-波佩斯库, 箍 波佩斯库 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1