运动矢量选择的制作方法

文档序号:7639657阅读:119来源:国知局
专利名称:运动矢量选择的制作方法
技术领域
本发明涉及视频压縮领域。
背景技术
运动矢量通常在图像编码中被用于辅助目标图像(可以是帧、场或者 其一部分)与一个或多个参考图像的近似。该近似后的目标图像被称为经 补偿图像。近似过程将目标图像栅格化固定大小的块并且向每个块分配一 个运动矢量,以便将目标图像中的每个块映射到参考图像上的接近匹配 块。目标图像的特定块中的像素值然后被从参考图像上的所映射块中复 制。该近似处理的普通变体包括增加预测模式、获得两个大小和位置相同 的块的平均并且将栅格分成更小的面积。所希望的目标图像与经补偿图像之间的误差然后被编码。假设编码器 和解码器都具有到相同参考图像的通路。因此,仅运动矢量和残差校正被 用于完成用于转换的视频编码。成功的视频编码器平衡许多因素以生成高质量目标图像同时利用有限 计算资源。在所有这些因素中,用于映射到参考块的一组运动矢量的选择 对视频质量是关键的并且在计算资源方面成本较高。在给定可用的有限计 算资源的情况下,传统的视频编码器无法选择一组全局最优的运动矢量。因此,需要一种选择一组全局最优或接近全局最优的运动矢量的方 法,以利用有限和可中断的计算资源来预测目标图像。发明内容一种选择向量的方法包括接收一组运动矢量和目标速率,并且使用速 率-失真标准来修改这组运动矢量。


通过示例图示出本发明,并且通过结合附图来参照下面的描述可以更 好地理解本发明,其中图l示出用于执行运动矢量选择方法的设备的示例。图2示出用于图1的形状限定库140的一些实施例中的形状限定的一 组示例。图3示出用于图1的形状限定库140的一些实施例中的形状限定的另一组示例。图4示出被利用来自运动矢量的输出选择的运动矢量来映射到参考图像中的参考块的目标块的示例。图5示出目标图像中被映射到多个参考块的像素的示例。 图6示出运动矢量选择方法的示例。图7是从图6中的方法的多次迭代所产生的目标图像失真减小的图。 图8示出利用图6的方法增加或去除特定运动矢量所产生的速率和失 真的相对变化。图9是示出从运动矢量的选择中增加或去除运动矢量的效果的表。 图10示出增加或去除一个或多个运动矢量所产生的速率和失真的相 对变化。图11是示出增加或去除一个或多个运动矢量的效果的表。图12示出由图6的方法所使用的增加运动矢量的方法的示例。图13示出由图6的方法所使用的去除运动矢量的方法的示例。图14示出利用图6的方法对视频数据的图像进行编码的方法的示图15示出将图像解码的方法的示例。图16示出使用运动矢量选择方法的视频系统的示例。
具体实施方式
'在下面的描述中,参照形成其一部分的附图,在附图中,通过图示方 式示出可以实施本发明的具体实施例。将会了解到,在不脱离本发明的范围的情况下可以利用其他实施例并且可以作出结构变化。例如,本领域技 术人员将会了解到,在关于图像数据使用时,用于描述各种实施例的术语 场或帧或图像一般可互换。运动矢量选择方法修改现有的对运动矢量的初始选择,从而以指定的 比特率得到目标图像的改善的表示法。在一些实施例中,可以将该方法初 始化为接近解决方案,可以在任何时间修改速率控制,并且可以在任何时 间中断该方法,使得其高度地适合作为用于实时视频编码的分量。所述方法通过利用有限的、可中断的资源而找到几乎最优的选择。该 任务是通过以下方式完成的从对时间空间的参考图像的选择开始,然后 迅速修改该选择以形成可行的选择。所述方法然后继续改善该选择直到操 作收敛或者达到一个或多个其他停止标准。每个经修改的选择产生速率-失 真改善以针对给定速率来近似地优化运动矢量的选择。用于执行运动矢量选择方法的设备的示例在图1中示出。运动矢量选择设备110接收目标图像115、来自参考池(reference pool) 120的一组一 个或多个参考图像、运动矢量的初始集合(可以为空)125和用于指示所 允许的比特率Rt或所允許的效率AD/AR的控制信号130,其中AD是失 真的变化。一些实施例中所使用的失真的示例是经补偿图像上的像素与目标图像 上的相应像素之间的方差的和。失真的另一个示例是目标图像与经补偿图 像上的相应像素之间绝对差的和。AR是比特率的变化。在一些实施例中,比特率是用于编码视频的每 秒所需要的平均比特数。目标速率是算法希望达到的速率。当前速率是用 于编码运动矢量的当前选择所需要的视频的每秒的比特数。速率偏差是增 加到目标速率的速率,其限定当前速率的迭代的可接受限度。候选运动矢量确定设备135利用形状限定库140来选择运动矢量的输 出集合。该运动矢量的输出集合被应用于参考图像,以便形成经补偿图像 145,经补偿图像145在所允许的由控制信号130设置的参数内近似目标 图像115。运动矢量的输出集合150然后可以作为视频压縮和传输处理的 一部分而被编码。形状限定库140中的每个形状限定指的是通过运动矢量所补偿的像素
的集合。例如,图2示出用于构建参考块的两个形状限定。形状限定210将M乘以N像素的目标图像栅格化成不重叠的16像素乘16像素的块的集合。例如,块211是16X16像素的块。每个块由运动矢量(未示出)来表示。唯一运动矢量ID用于标识形状限定内的特定块。在该示例中,运动矢量ID的范围从1至(MXN)/(16X16)。作为另一个示例,形状限定220将目标图像栅格化成4乘4像素的块。例如,块221是4乘4像素的块。用于形状限定220的运动矢量ID的范围从1至(MXN)/(4X4)。同样,唯一形状ID用于标识每个形状限定。唯一形状ID和唯一运动矢量ID用于唯一地确定多个形状限定中的特定块。形状210和220用于说明通常在视频编码中所使用的形状。
图3示出在形状限定库140的一些实施例中一起使用的形状限定的示例。在这些示例中,形状限定基于16像素乘16像素的块。 一些形状限定具有用于允许更复杂交互(例如重叠块)的偏移。说明性的形状限定310将MXN像素的目标图像栅格化成16X16的块,其形状ID为1,并且其运动矢量ID范围从1至(MXN)/(16X16)。形状限定320将MXN像素的目标图像栅格化16X16的块,沿着图像的上边界和下边界,垂直地具有8像素的偏移321和322。说明性的形状限定320的形状ID为2,并且运动矢量ID的范围从1至((M—1)XN)/(16X 16)。说明性的形状限定330将MXN像素的目标图像栅格化16X16的i央,沿着图像的左边界和右边界,水平地具有8像素的偏移331和332。形状限定330的形状ID为3,运动矢量ID的范围从(MX(N—1))/(16X16)。说明性的形状限定340将MXN像素的目标图像栅格化16X16的块,垂直地具有8像素的偏移341、 342并且水平地具有8像素的偏移343、 344。形状限定340的形状ID为4,运动矢量ID的范围从1至((M—1)X(N—1))/(16X16)。形状ID和运动矢量ID的组合用于唯一地标识来自形状限定310、 320、 330和340的特定块。
例如如图4所示,来自库140 (图1中示出)中的形状限定的目标图像415的目标块410利用来自运动矢量的输出选择的运动矢量430而被映射到参考图像425中的相应参考块420。运动矢量430指示参考块420相对于目标块410的运动量,该运动量由垂直偏移Ay和水平偏移Ax表示。在一个实施例中,完全指定的运动矢量包括形状ID、运动矢量ID、参考图像ID以及水平和垂直偏移。当确定运动矢量作为编码系统的一部分时,参考图像或者可以是原始输入图像,或者可以是它们的解码后的对应
在利用运动矢量标识出参考块之后,来自参考块的像素值被复制到相应的目标块。因此通过利用运动矢量的输出选择将目标块映射到参考块、然后将像素值复制到目标块而生成经补偿的目标图像。经补偿图像一般用于近似目标图像。当构建经补偿图像作为视频解码系统的一部分时,参考图像一般是先前被解码的图像。
在一些情况下,目标图像中的一些像素是多个目标块的一部分,并且被映射到多于一个参考块以形成目标块的重叠区场,如图5所示。在这些情况下,通过获得来自分别是参考图像525和535中的参考块520和530的像素值的平均,确定经补偿图像515的重叠区场510中的每个经补偿像素的值。或者,可以使用加权平均或滤波估计。同样,在一些情况下,目标图像中的一些像素不是目标块的一部分并且未被映射到任何参考块。这些像素可以使用缺省值(例如0)和内插值、预先保持的值或另一专门规则。
再次参照图1,运动矢量选择设备110接下来从形状限定库140中选择一些运动矢量并且丢弃一些运动矢量。然后利用运动矢量的输出集合150中的运动矢量、它们所参考的来自参考池120的图像和来自形状限定库140的块的形状限定来构建经补偿目标图像145。候选运动矢量确定设备135确定是否应该向运动矢量的输出集合150增加一个或多个运动矢量或者从运动矢量的输出集合150中去除一个或多个运动矢量。该确定是根据近似最优的速率-失真标准来执行的。
运动矢量选择方法的示例在图6中示出。在610,接收初始值(例如运动矢量的初始集合)、目标速率、速率偏差、目标图像和参考图像。速率偏差的示例是增加到目标速率的速率过冲(rate overshoot)和速率不足(rate undershoot)的量。速率偏差越大,对集合作出的改变越多,但返回目标速率所花费的时间越长。在620计算速率估计R和失真估计D。在630,如果速率估计R小于目标RT,则在640,增加一个或多个运动矢量,直到速率R超过目标速率Rt—个量Rs。在一些实施例中,在640,增加运动矢量直到时限期满。如果在630,速率R不小于目标速率RT,或者在640,超过目标速率RT—个量Rs,则在650,去除一个或多个运动矢量,直到Rt和Rs之间的差别大于或等于速率估计R。在650,在一些实施例中,去除运动矢量,直到时限已期满。在660,在一些实施例中,所述方法确定时限是否已期满。如果已期满,则方法在670结束。否则,方法返回640。
图6中所示的运动矢量选择方法增加或去除运动矢量,直到达到目标速率(或者在一些实施例中,达到目标效率),如图7的图表710所示。在该向量选择已被完成之后,当前的所估计速率在目标速率附近振荡,找到产生较低失真量度的操作点,如图表720所示。710和720中的圈指示已满足目标速率的速率和失真量度。失真减小的速率最终饱和,允许方法结束而无性能上的显著损失。
示出从候选运动矢量的集合中增加或去除运动矢量的效果示例的图表在图8中示出。从具有速率估计R和失真估计D的操作点开始,所述方法具有增加或去除运动矢量的选项。速率可以被模型化为直接正比于运动矢量的数目,以使得增加一运动矢量将速率增大1单位并且去除一运动矢量将速率减小1单位。所述方法选择与失真的最大减小相对应的增加或删除动作。图8中的每个箭头对应于一运动矢量并且示出运动矢量对速率和失真的影响。
例如,箭头802、 804、 806和808示出从集合150去除一个运动矢量的效果。去除与箭头808相对应的运动矢量引起图像失真的最大增加。去除与箭头802相对应的运动矢量引起失真的最小增加。在所有四种情况下,去除运动矢量将速率减小1单位,并且增大经补偿图像的失真。去除运动矢量可以弓1起失真减小,但这种结果是相对稀少的。
箭头810、 812、 814、 816、 818和820示出向集合150增加一个运动矢量的效果。在每种情况下,增加运动矢量将速率增大1单位。在一些情况下,增加运动矢量也增大失真。例如,箭头820示出,向集合850增加
相应的运动矢量将会增大失真并且增大速率。在其他情况下,例如由箭头
814所示,增加运动矢量对失真没有影响。向集合增加运动矢量在增加的运动矢量减小经补偿图像的失真量的情况下是高效的。箭头810和812对应于在被增加到集合的情况下减小失真的运动矢量。
示出从运动矢量的集合150中增加或去除运动矢量的效果的表在图9中示出。在该示例中,当前在集合中的运动矢量可以被去除,并且当前不在集合中的运动矢量可以被增加。当试图减小编码速率时,运动矢量选择方法标识这样的运动矢量,该运动矢量在被从集合中去除时引起失真的最小增加。例如,所述方法去除图9的"如果被去除"栏中具有最小值的运动矢量。类似地,当试图增大编码速率时,所述方法增加引起失真的最大减小的运动矢量。例如,所述方法增加"如果被增加"栏中具有最负值的
一般而言,所述方法可以考虑速率变化不被限于+/-1的情况。该情形可以发生在使用更复杂的速率估计方法时或者在允许对运动矢量选择的数种同时变化时。在该一般情况下,应用各种候选决定的效果是将操作点从(R, D)移至图10中箭头所指示处。当多个运动矢量满足标准时,选择这些运动矢量中的一个。否则,所考虑的运动矢量中,最小的运动矢量被选择。
例如,箭头1010示出由去除运动矢量所产生的失真增加。箭头1020示出由去除不同的运动矢量所产生的失真的更大增加。因此,如果想要去除运动矢量以减小速率,则对应于箭头1010的运动矢量是更好的选择,因为失真增加被最小化。类似地,箭头1030、 1040、 1050和1060示出增加运动矢量的效果。对应于箭头1030和1040的运动矢量增大速率并且增大失真,因此这些运动矢量不被增加。对应于箭头1050和1060的运动矢量减小失真。这些向量中,1060是更好的选择,因为其引起失真的更大减小。
用于一般情况的表在图11中示出。该表示出与图9的表独立的两种变化。第一,允许运动矢量被应用多于一次,从而改变作为所映射的值的平均的经补偿值。第二,如果运动矢量被应用多次,则速率模型化比简单地对运动矢量计数更加复杂。因此,"所应用的次数"被增加到表中。而且,考虑对由AD/AR所度量的增加或去除运动矢量的效率的效果,而不考虑对失真的效果。
图12示出如图6的640所图示的用于增加运动矢量的方法的示例。在1210,选择最佳候选运动矢量作为对运动矢量的集合的潜在增加。如果在这组候选运动矢量中存在最佳候选,则这种向量是IAR, ADI小于0的运动矢量。否则,最佳候选是具有AD/AR最小值的运动矢量。然后,在1220,所述方法确定增加最佳候选运动矢量是否减小经补偿图像的失真。如果否,则方法结束。如果是,则在1230,最佳候选运动矢量被试验性地增加到集合150。在1240,更新速率和失真的值。在1260,更新候选表。然后在1270,所述方法确定当前的所估计速率R是否在目标速率Rt的容许范围内。如果是,则在1280,最佳候选运动矢量被永久地增加到集合中。在1290,如果速率R超过目标速率RT—个量Rs,则用于增加运动矢量的方法通过返回到图6的运动矢量选择方法中的框650而结束。否则,用于增加运动矢量的方法返回到1210。
图13示出如图6的650所图示的用于去除运动矢量的方法的示例。在1310,所述方法确定运动矢量的集合150中是否没有运动矢量,如果没有运动矢量存在,则方法结束。否则,在1320,选择最佳候选运动矢量。如果存在这样的运动矢量,该运动矢量在被从集合150中去除的情况下减小失真,则选择这种运动矢量作为最佳候选。否则,选择具有最小AD/AR的运动矢量作为最佳候选以供去除。在1330,试验性地从运动矢量的集合中去除最佳候选。在1340,更新速率R和失真D的值。在1360,更新候选表。然后在1370,所述方法确定速率R是否在目标速率Rt的容許范国内。如果是,则在1380,候选运动矢量被永久地从集合150中去除。在1390,如果速率R小于目标速率Rt—个量Rs,则用于去除运动矢量的方法通过返回到图6的运动矢量选择方法中的框660而结束。否则,用于去除运动矢量的方法返回到1310。
在一个实施例中,运动矢量选择方法在视频编码中被用于对视频数据的图像(或者帧,或者场)进行编码,如图14所示。在1410,编码器接收输入目标图像。包含与目标图像有关的解码后图像的一组参考图像在编码处理期间对编码器是可用的,并且在解码处理期间对解码器也是可用
的。在1420,编码器生成与目标图像相关联的运动矢量的不规则采样或分布。在1430,采样布局信息(例如,用于表示布局的比特)被发送到解码器。图6中所示的方法可以用于生成自适应采样布局。
在1440,时间预测滤波处理被应用于不规则运动采样布局。该自适应滤波处理利用运动矢量、不规则采样布局和参考图像来生成对目标图像的预测。在1450,运动矢量值被编码并且被发送到解码器。在1460,生成余量(residual),该余量是目标图像减去来自适应滤波处理的预测误差的实际目标数据。在1470,余量被编码,并且在1480被发送到解码器。
在另一个实施例中,运动矢量的自适应采样布局被用于编码视频数据的图像(或者帧,或者图像),如图15所示。在1510,接收编码后的余量。在1520,解码器将接收到的编码后余量解码。在1530,解码器接收采样布局信息、参考图像和运动矢量值。然后在1540,解码器应用自适应时间滤波处理以生成时间预测。在1550,通过将解码后余量增加到时间预测中而生成解码后的目标图像。
图16示出使用自适应影响范围滤波器的系统的示例。数字摄像机1610以电子形式捕捉图像,并且利用压縮设备1620来处理图像,压縮设备1620在压縮和编码处理期间使用运动矢量选择方法。编码后的图像被通过电子传输介质1630发送到数字回放设备1640。通过解码设备1650将图像解码,解码设备1650在解码处理期间使用滤波。相机1610用于说明包括本发明的实施例的各种图像处理装置(例如,其他图像捕捉设备、图像编辑器、图像处理器、个人和商业计算平台等等)。同样,解码设备1650用于说明将图像数据解码的各种设备。
尽管根据特定系统环境中的实施例描述了本发明,但是本领域普通技术人员将会认识到,在所附权利要求书的精神和范围内,可以在修改的情况下、在其他或不同的硬件和软件环境下实施本发明。
权利要求
1.一种由电子数据处理器执行的方法,包括接收一组运动矢量;以及使用速率-失真标准来修改所述一组运动矢量。
2. 如权利要求1所述的方法,其中,使用所述速率-失真标准包括向所述组中增加或从所述组中去除一个或多个运动矢量以达到近似目 标速率。
3. 如权利要求1所述的方法,其中,使用所述速率-失真标准包括 计算所述一组运动矢量的失真;以及 向所述组中增加运动矢量以减小所述失真。
4. 如权利要求1所述的方法,其中,使用所述速率-失真标准包括 针对所述组中的每个运动矢量,确定由从所述组中去除所述运动矢量所产生的失真变化;如果去除运动矢量引起减小失真的失真变化,则去除减小失真的运动如果去除所述组中的每个运动矢量引起增大失真的失真变化,则从所 述组中去除其去除引起失真的最小增大的运动矢量。
5. 如权利要求l所述的方法,其中,使用所述速率-失真标准包括针对所述组中的每个运动矢量,确定由从所述组中去除所述运动矢量 所产生的失真变化,确定由从所述组中去除所述运动矢量所产生的速率变化,并且确定所述失真变化和所述速率变化之间的比率;以及 从所述组中去除其去除引起所述比率的最小变化的运动矢量。
6. 如权利要求1所述的方法,其中,使用所述速率-失真标准包括针对所述组中的每个运动矢量,确定由将所述运动矢量增加到所述组 中所产生的失真变化,确定由将所述运动矢量增加到所述组中所产生的速率变化,并且确定所述失真变化和所述速率变化之间的比率;以及将其增加引起所述比率的最小变化的运动矢量增加到所述组中。
7. —种装置,包括运动矢量选择设备,选择设备接收一组运动矢量;以及 候选运动矢量确定设备,使用速率-失真标准来修改所述一组运动矢
8. 如权利要求7所述的装置,其中,所述候选运动矢量确定设备使用 所述速率-失真标准来向所述组中增加或从所述组中去除一个或多个运动矢 量,从而达到近似目标速率。
9. 如权利要求7所述的装置,其中,所述候选运动矢量确定设备针对 所述一组运动矢量计算失真,并且向所述组中增加运动矢量以减小所述失 真。
10. 如权利要求7所述的装置,其中,所述候选运动矢量确定设备被配置为通过以下步骤来使用所述速率-失真标准针对所述组中的每个运动矢量,确定由从所述组中去除所述运动矢量所产生的失真变化;如果去除运动矢量引起减小失真的失真变化,则去除减小失真的运动如果去除所述组中的每个运动矢量引起增大失真的失真变化,则从所 述组中去除其去除引起失真的最小增大的运动矢量。
11. 如权利要求7所述的装置,其中,所述候选运动矢量确定设备被配置为通过以下步骤来使用所述速率-失真标准针对所述组中的每个运动矢量,确定由从所述组中去除所述运动矢量 所产生的失真变化,确定由从所述组中去除所述运动矢量所产生的速率变化,并且确定所述失真变化和所述速率变化之间的比率;以及 从所述组中去除其去除引起所述比率的最小变化的运动矢量。
12. 如权利要求7所述的装置,其中,所述候选运动矢量确定设备被 配置为通过以下步骤来使用所述速率-失真标准针对所述组中的每个运动矢量,确定由将所述运动矢量增加到所述组 中所产生的失真变化,确定由将所述运动矢量增加到所述组中所产生的速 率变化,并且确定所述失真变化和所述速率变化之间的比率;以及将其增加引起所述比率的最小变化的运动矢量增加到所述组中。
13. —种存储指令计算机程序的计算机可读介质,所述指令在被处理 系统执行时使得所述系统执行包括以下步骤的方法接收一组运动矢量;以及使用速率-失真标准来修改所述一组运动矢量。
14. 如权利要求13所述的计算机可读介质,其中,使用所述速率-失真 标准包括向所述组中增加或从所述组中去除一个或多个运动矢量以达到近似目 标速率。
15. 如权利要求13所述的计算机可读介质,其中,使用所述速率-失真标准包括计算所述一组运动矢量的失真;以及 向所述组中增加运动矢量以减小所述失真。
16. 如权利要求13所述的计算机可读介质,其中,使用所述速率-失真 标准包括针对所述组中的每个运动矢量,确定由从所述组中去除所述运动矢量 所产生的失真变化;如果去除运动矢量引起减小失真的失真变化,则去除减小失真的运动如果去除所述组中的每个运动矢量引起增大失真的失真变化,则从所 述组中去除其去除引起失真的最小增大的运动矢量。
17. 如权利要求13所述的计算机可读介质,其中,使用所述速率-失真 标准包括针对所述组中的每个运动矢量,确定由从所述组中去除所述运动矢量 所产生的失真变化,确定由从所述组中去除所述运动矢量所产生的速率变 化,并且确定所述失真变化和所述速率变化之间的比率;以及从所述组中去除其去除引起所述比率的最小变化的运动矢量。
18. 如权利要求13所述的计算机可读介质,其中,使用所述速率-失真 标准包括针对所述组中的每个运动矢量,确定由将所述运动矢量增加到所述组中所产生的失真变化,确定由将所述运动矢量增加到所述组中所产生的速 率变化,并且确定所述失真变化和所述速率变化之间的比率;以及 将其增加引起所述比率的最小变化的运动矢量增加到所述组中。
全文摘要
一种选择运动矢量的方法包括接收一组运动矢量和目标速率,并且使用速率-失真标准来修改这组运动矢量。
文档编号H04N7/12GK101627626SQ200680034027
公开日2010年1月13日 申请日期2006年9月1日 优先权日2005年9月16日
发明者苗周荣, 詹姆斯·J·卡里格, 马里奥·帕尼科尼 申请人:索尼电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1