最小化用于相互编码的参考画面数目的方法和装置的制作方法

文档序号:7608723阅读:184来源:国知局
专利名称:最小化用于相互编码的参考画面数目的方法和装置的制作方法
技术领域
本发明一般地涉及数字视频编码技术,特别涉及在用于数字视频编码应用的多个参考画面标准中的画面宏块的相互编码(inter coding)。
背景技术
视频编码器可以用来将图像序列的一个或多个帧编码为数字信息。然后,可以将此数字信息传送给接收机,然后可以在该接收机中重建图像或图像序列。传送信道自身可以经由很多介质中的任何一种;例如(仅出于说明性的目的,并且不意欲成为毫无遗漏的列举),该介质可以包括无线广播、无线电链路、卫星链路、同轴电缆电视或数据、光纤、移动电话连接、或固定线路电话链路、因特网、或者这些或其它介质的组合。
就视频编码和传送已经达成了各种国际标准。通常,一种标准提供用于将与图像的帧有关的数据压缩和编码的规则。这些规则提供了一种将图像数据压缩和编码,以便传送比观察照相机(viewing camera)原始提供的关于该图像的数据要少的数据的方式。因而,这一减少的数据量需要较少的信道带宽以进行传送。如果接收机知道所传送的数据遵循的规则(即,标准),则它可以从所传送的数据重建所述图像。H.264标准通过使用来自先前的帧的宏块的运动补偿预测而避免了部分图像的冗余传送。
诸如MPEG-2和JVT/H.264/MPEG 4Part10/AVC的视频压缩架构和标准仅使用用于每个宏块的编码的帧内(“内部”)编码或帧间(“相互”)编码方法来编码宏块。对于帧间运动估计/补偿,要编码的视频帧被划分为非重叠的矩形、或者更常见地被划分为像素的方块。对于这些块中的每一个,根据指定的匹配误差标准,以预定搜索窗口从参考帧中搜索最佳匹配宏块。然后,使用所匹配的块来预测当前的块,并且进一步处理预测误差块并将其传送给解码器。将参考块相对于原始块在水平和垂直方向上的相对位移合成一组,并称为原始宏块的运动矢量(MV),其也被传送给解码器。运动估计的主要目的是预测运动矢量,从而通过提取参考块与当前块的差值而获得的差异块在编码中产生最少数目的比特。
最近的视频编码标准和架构在试图提高编码效率时采用用于运动估计和补偿的多个参考画面。MPEG-2及其前身中的预测编码画面(称为“P”画面)仅使用一个先前的画面来预测当前画面中的值。H.264标准允许使用通常是处于不同时间瞬间的画面的多个参考画面(或帧),它们中的很多可以在空间和时间上与当前的画面不相关。在MPEG-2中,仅使用单个参考索引,而对于运动矢量的编码,在用于运动矢量的确定和解码的每个画面的比特流中,还传送被称为f-代码参数的特殊代码。该f-代码参数是在运动估计过程期间得到的,并且影响运动矢量的VLC编码。当与将参数保持固定相比较时,用于根据每个画面的运动参数和范围而自动地使f-代码参数适应每个画面的先前的提议可以获得更好的编码效率。H.264不支持这个参数,并且基本上使用预先定义的VLC代码来进行运动矢量的编码。另一方面,H.264允许多个参考(reference)的使用,因此还传送参考索引参数。
由于在运动估计过程期间需要检查更多画面,因此使用多个参考会显著增大编码器的复杂度。H.264标准允许编码器出于运动补偿的目的而在已经被解码并被存储在解码器中的更大数量的画面中进行选择。对参考能力的相同扩展还应用到运动补偿后的双向预测,所述双向预测在MPEG-2中被限制为仅使用两个特定的画面(这些画面中的一个是按照显示顺序的前一个内部(I)或P画面,并且另一个是按照显示顺序的下一个I或P画面)。
典型地,编码器计算适当的运动矢量和在视频数据流中表示的其它数据元素。用于编码器中的宏块的相互预测(inter prediction)的过程可以包括从很多所存储的先前解码的画面中选择要用作参考画面的画面。“参考索引”指定将用于预测相互编码的宏块的参考画面在参考画面列表(列表0或列表1)中的位置(索引)。“参考索引”是标识用于帧序列的所选画面的变量(PicNum和LongTermPicNum)的列表的索引,所述列表被称为参考画面列表。当将P或SP片(slice)解码时,存在单个参考画面列表RefPicList0。当将B片解码时,除了RefPicList0以外,还存在第二个独立的参考画面列表RefPicList1。哪些画面实际位于每个参考画面列表中是多画面缓冲器控制的问题。可以通过滑动窗口参考画面标记过程、即一种先入先出的机制来将画面标记为“不用于参考”,并且随后不会在任一个参考画面列表中列出该画面。H.264标准允许对参考列表中的参考重新排序。
多参考画面运动补偿预测需要编码器和解码器二者将用于帧间预测的参考画面存储在多画面缓冲器中。解码器根据在比特流中指定的存储器管理控制操作来复制编码器的多画面缓冲器。如果多画面缓冲器的大小被设置为一个画面,并且如果没有发信号通知列表0或列表1的最大参考索引等于1,则必须利用所传送的每个相互编码的宏块来发信号通知所述参考画面在多画面缓冲器内部所处的位置的参考索引。
因为必须在比特流中发信号通知参考索引,所以当参考画面列表的大小大于一个画面时,对于每个相互编码的宏块或宏块分区(例如,16×8、8×16或8×8个像素的子块),并不总能确定多个参考将增大特定画面编码时的压缩增益(例如,画面可以仅偏向于单个参考)。对于相互编码的宏块(或子块),在比特流中可以存在一个运动矢量差和一个参考索引。对于双向预测相互编码的宏块(或子块),在比特流中可以存在两个运动矢量差和两个参考索引。例如,考虑到在H.264中对于每个宏块有可能对于预测(P)画面传送多达4个参考索引,而对于双向(B)预测画面传送8个,因此由于参考索引导致的比特率开销可能相当大。
在H.264中,通过在片的级别上发信号通知的num_ref_idx_IN_activeminus1参数来控制参考的数目,其中,对于列表0,N等于0,而对于列表1,N等于1。num_ref_idx_IN_active_minus1参数指定将用来对其中使用列表N的画面的每个片进行解码的参考画面列表N的最大参考索引(例如,num_ref_idx_I0_active_minus1指定将用来对片进行解码的参考画面列表0的最大参考索引)。num_ref_idx_IN_active_minus1的值的范围在0和31之间,包括0和31。如果这一参数等于0,则对于当前的片,将只使用一个参考画面来对该片中的宏块进行相互编码,并且不需要将参考索引与该片的相互编码的宏块一起传送。

发明内容
将视频编码器适配为能够在编码给定画面之前动态地确定参考数目将是理想的,这是因为如果仅使用一个参考,则(每个宏块的参考索引的)前述比特开销将被消除或减少,从而有可能提供改善的编码器性能,同时由于在运动估计期间须测试较少的参考画面而减小了复杂度。
因此,本发明是一种使视频编码器能够自适应地(在运行编码实时的基础上动态地)选择将用于宏块的相互编码的参考画面的数目的方法和装置。参考数目的判定可以基于先前生成的信息,例如当前参考画面相关性、参考画面运动矢量、残留(residual)等,并且/或者这一判定可以基于率失真优化方法。本发明的实施例可以提供改进的压缩增益和/或编码效率。
本发明的一个实施例提供一种对视频画面序列中的当前画面的像素区进行相互编码的方法,该序列包括在至少一个参考列表中列出的多个参考,所述方法包括以下步骤选择在参考列表中列出的、将用作唯一参考的第一参考,所述唯一参考将用来对当前画面的像素区进行编码。在此情况中,num_ref_idx_IN_active_minus1可以被设置为等于0,其中,N表示参考列表的编号。这可以导致使用在时间上最接近包含要编码的像素区的当前画面的参考。
本发明的另一实施例提供一种对视频画面序列中的当前画面进行相互编码的方法,该序列包括在参考列表中列出的多个参考,所述方法包括选择在参考列表中列出的、将用作唯一参考的第一参考,所述唯一参考将用来对当前画面进行编码。
本发明的另一实施例提供一种使用在有效参考列表中列出的多个参考画面中的至少一个来对视频画面序列中的当前画面进行相互编码的方法,该方法包括以下步骤从有效参考列表中去除所列出的参考中的至少一个,该步骤基于每个被去除的参考与当前画面的比较。然后,可以相应地减小num_ref_idx_IN_active_minus1(其中,N表示有效参考列表的编号)。所述比较是直接比较,例如通过计算当前画面和每个被去除的画面之间的绝对像素差的总和来测量失真。可替换地,所述比较可以是例如通过在第二参考画面与第一参考画面相比具有高失真、并且第一参考画面与当前画面相比具有低失真时从有效参考列表中去除第二参考画面而进行的间接比较。
本发明的另一实施例提供一种使用在有效参考列表中列出的多个参考画面中的至少一个来对当前画面进行相互编码的方法,该方法包括以下步骤对所列出的参考重新排序,使得在有效参考列表中以较高的优先级列出相对于当前画面具有较小失真的参考画面。
本发明的另一实施例提供一种用于将像素数据编码为多个块变换系数的编码器,该编码器包括被适配用来基于在此公开的方法使将用来对当前画面进行相互编码的有效参考列表最小化的电路。该编码器还可以被适配用来将有效画面的列表重新排序,使得将以较高的优先级把相对于当前画面具有较小失真的剩余的有效参考画面放置在参考画面列表中。
本发明的另一实施例提供一种对视频画面序列进行相互编码的方法,该方法包括执行使用在参考画面列表中列出的所有参考画面来编码当前画面的第一编码步骤;从参考列表中选择和去除一个或多个画面以创建新参考列表的步骤;以及随后执行仅使用在新参考列表中列出的画面重新编码当前画面的第二编码步骤。
本发明的另一实施例提供一种用于将视频图像序列压缩和编码的编码方法,该方法包括以下步骤使用M个参考画面的K个排列来对当前画面进行K次相互编码,其中K等于K≤Σi=1MM!(M-i)!]]>并且随后;基于与其它K-1个编码的当前图像相比较的预定标准,从K个编码的当前画面中选择一个编码的当前图像。
本发明的另一实施例提供了一种对视频画面序列进行相互编码的方法,该方法包括以下步骤使用可用参考的多个排列中的每一个进行当前画面的运动估计编码,并选择将预定条件最小化的可用参考的排列,所述预定条件可以是比特率、失真或者比特率和失真的加权组合。
本发明的另一实施例提供一种用于编码视频图像序列的编码器,该编码器包括参考画面缓冲器,其中,该编码器被适配用来使用存储在参考画面缓冲器中并在参考列表中列出的多个参考画面中的至少一个来对画面序列中的当前画面进行相互编码;其中,该编码器还被适配用来基于预定标准动态地选择将被用作唯一参考的第一个列出的参考,所述唯一参考将用来对当前画面进行相互编码。
本发明的另一实施例提供一种用于编码图像序列的编码器,该编码器包括参考缓冲器,其中,该编码器被适配用来使用在参考缓冲器中列出的多个参考画面中的至少一个来对当前画面进行相互编码,并且被适配用来动态地将存储在参考缓冲器中的参考的列表重新排序,以使得在有效参考列表中以较高的优先级列出相对于当前画面具有较小失真的参考画面。
本发明的另一实施例提供一种多媒体终端,在所述多媒体终端中包括用于获得数字视频序列的部件;和被布置用来执行在此描述的编码方法的视频编码器。
本发明的另一实施例提供一种其中包含计算机可读程序代码的计算机可用介质,所述计算机可读程序代码用于使计算机系统能够执行在此描述的编码方法。
本发明的另一实施例提供一种存储可由计算机读取的程序的记录介质,所述程序用于使计算机系统执行在此描述的编码方法。
在以下描述中,将假设宏块的亮度(luma)分量包括被排列为4个8×8的块的阵列的16×16个像素,并且在水平和垂直方向上利用因子2来对相关联的色度分量进行空间子采样,以形成8×8的块。对于本领域普通技术人员来说,将该描述扩展到其它块大小和其它子采样方案将是显而易见的。本发明不受16×16的宏块结构限制,而是可以在任何基于分段的视频编码系统中使用。


通过参考附图详细描述本发明的示例实施例,本发明的上述特征将变得更加清楚,在附图中图1示出了根据本发明的原理的、将被编码并被选择用作相互编码参考的一系列画面;图2是图示用于判定对于用来对当前画面进行相互编码的每个(反向或前向)预测仅使用单个(一个)参考画面的方法的流程图;图3是图示从将用来对当前画面进行(前向或反向)相互编码的有效参考画面的列表中去除参考画面的方法的流程图;以及图4是图示根据本发明实施例的视频编码器的方框示意图。
具体实施例方式
图1示出了根据本发明的原理的、将被编码并被选择用作相互编码参考的一系列时间连续的画面(P0、B1、B2、P3、B4、B5、P6、B7、B8、P9)。画面P0被内部编码,并且被用作后续的相互编码的画面B1、B2、P3、B4、B5、P6的参考。仅将单个参考画面用于每个预测(P0是用于前向预测的单个参考;P3是用于反向预测的单个参考),来对画面B1进行双预测(bi-predictively)相互编码。仅将单个参考画面用于每个预测(P0是用于前向预测的单个参考;P3是用于反向预测的单个参考),来对画面B2进行双预测相互编码。仅将单个参考画面P0用于画面P3的(前向)预测,来对其进行单预测(mono-predictively)相互编码。将两个参考画面(P0和P3)用于画面B4的前向预测、并且将单个参考画面(P6)用于其反向预测,来对画面B4进行双预测相互编码。将两个参考画面(P0和P3)用于画面B5的前向预测、并且将单个参考画面(P6)用于其反向预测,来对画面B5进行双预测相互编码。将两个参考画面(P0和P3)用于画面P6的前向预测,来对画面P6进行单预测相互编码。仅将单个参考画面用于每个预测(P6是用于前向预测的单个参考;P9是用于反向预测的单个参考),来对画面B7进行双预测相互编码。仅将单个参考画面用于每个预测(P6是用于前向预测的单个参考;P9是用于反向预测的单个参考),来对画面B8进行双预测相互编码。仅将单个参考画面P6用于画面P9的前向(例如,列表0)预测,来对画面P9进行单预测相互编码。
在相互编码的画面B1、B2、P3、B7、B8和P9的每一个中,不需要用每个宏块或宏块分区的运动矢量将参考索引编码,这是因为仅使用来自其对应的参考画面列表(多个列表)的单个参考画面(对于P-画面使用一个参考列表;对于B-画面使用两个参考列表)来将每一个编码。
根据本发明的原理,公开了一种方法,用于基于当前画面的像素和运动特性,并且还基于有效/可用参考画面,来确定和限制将用于当前画面的预测或双预测相互编码的参考的数目。
根据本发明的实施例,选择用于对给定画面进行相互编码的参考的数目的一种方法是在第一遍(first pass)中使用所有有效(列出的)参考来编码当前画面,然后最后在第二遍中仅使用所参考的画面来将该画面重新编码,同时从对应的有效参考列表中去除所有其它画面。例如,执行使用在参考画面列表中列出的所有参考画面编码当前画面的第一编码步骤,并且从该参考列表中选择和去除一个或多个画面以创建新参考列表;然后仅使用在新参考列表中列出的画面来将当前画面重新编码。这可以使每个参考列表更紧凑,并且因此在参考索引中可能需要更少的比特。
可以对参考给定索引的参考画面的宏块或块的数目是否满足给定条件/阈值TMB进行额外的考虑。如果不满足此条件/阈值,则应当从有效参考缓冲器中去除这个被不充分地参考的参考画面,并且随后根据剩余的有效(列出的)参考画面预测(重新编码)当前画面的宏块/块。尽管这种方法有可能导致较好的增益,但是由于需要将画面编码两次,因此它们也引入了高得多的复杂度。在诸如H.264的编解码器中,由于它们已经非常高的复杂度,因此这特别麻烦。然而,在更强力的方法中,也可以使用从1到M个参考来尝试和编码同一画面K次,其中,K等于K≤Σi=1MM!(M-i)!]]>其表示包括重新排序的、画面参考的所有可能的布置和组合(排列)。从这些K个组合中,我们可以选择给出最小失真或比特率的一个,或者使用率失真优化标准(拉格朗日公式化表示),其中使用拉格朗日乘子(例如,通过使用J=D+λ×R形式的拉格朗日乘子)针对率来对失真进行加权。拉格朗日乘子是在受到约束的数学优化问题环境中出现的代数术语。
本发明的其它实施例提供了用于在不显著降低编码质量(不增大失真)或比特率的情况下判定画面参考数目的更简单的方法。我们已经发现在当编码当前画面时使用的参考数目(和参考索引)与在相邻的先前编码的画面中使用的参考数目(和参考索引)之间存在高度相关性,其中所述相邻的先前编码的画面被用作用来编码当前画面的参考。当这两个画面具有高度相似性(例如,它们的绝对差低于给定的相对较小的阈值)时,此相关性增大。例如,如果仅参考t-2处的先前画面的、时刻t-1处紧邻在前面的编码的画面具有很少的运动,并且与时刻t处的当前画面非常相似(例如,画面平均绝对差PMAD<4),则这使得很有可能有利地使用单个参考画面来编码当前画面。该参考帧可以在当前帧之前或之后。因此,通常,如果第一画面P1仅参考单个参考画面RP来进行编码并且相对于参考画面RP具有很少的运动(例如,P1-RP PMAD<4),并且如果第一画面P1与当前画面CP非常相似(例如,P1-CP PMAD<4),则也可以仅参考单个参考画面(例如,P1或RP)来有效地编码当前画面CP,并且将使用单个参考画面(例如,P1或RP0)来编码当前画面CP及其包括的全部片和宏块。优选的,画面RP、P1和CP是紧邻的画面,但并不必需是紧邻的画面。也可以进行当前画面和剩余的参考之间的附加的简单比较(例如,绝对差),以进一步确认此判定。此外,可以考虑不仅最近的参考画面而且还有所有其它参考的运动矢量和参考索引,以便做出或验证此判定。
本发明的方法的示例实施例提供以下用于选择和减少有效参考数目的方法。
首先,执行失真计算在块或宏块的级别上,计算相对于给定列表(列表0或列表1)中的第一参考(零参考)画面的、当前画面的CP绝对差的总和(PSAD)。画面SAD值(PSAD)是所有宏块SAD值(MBSAD)的总和。宏块SAD值(MBSAD)是相对于其它画面中的对应宏块的、单个宏块中的像素绝对差的总和(SAD)。可以使用参考画面RP的原画面或重建的参考画面RPrc来计算CP-RP画面SAD差(CP-RP PSAD)。优选的是,(通过除法)计算CP和RP画面的平均绝对差(CP-RP PMAD),作为整个当前画面和给定列表(列表0或列表1)中的第一参考(零参考)画面之间的失真的测量结果。画面的MAD值(PMAD)是正在比较的这两个画面的像素之间的平均绝对差(MAD)。画面的SAD值(PSAD)和画面的MAD值(PMAD)之间的关系是画面MAD(PMAD)等于画面SAD值(PSAD)除以一个数目,例如除以这两个画面的任一个中的宏块(或像素)数目。因此,画面MAD值(PMAD)是画面SAD值(PSAD)的归一化的版本,并且可以在宏块的级别上将画面SAD值(PSAD)归一化,使得通过将画面的SAD值(PSAD)除以画面中的宏块数目,将画面MAD值(PMAD)定义为(这两个画面的)对应宏块之间的平均(平均数)SAD值(MBSAD)。因此,如果适当地缩放将与PMAD和PSAD值进行比较的任何阈值,则可以可互换地使用PMAD和PSAD值。
如果画面的MAD值(CP-RP0 PMAD)(即,整个当前画面CP和整个第一个列出的参考画面RP0之间的MAD)低于相对小的第一阈值T1,则(例如,通过将num_ref_idx_IN_active_minus1设置为等于0)选择1作为将用于对当前画面进行编码的(可应用的列表即列表0或列表1中的)参考的数目。此外,如果具有低于第二阈值T2的宏块SAD值MBSAD的当前画面的宏块的百分比R等于或大于预定的阈值百分比TR(例如,TR=95%),则使用单个参考,(将num_ref_idx_IN_active_minus1设置为0)。因此,如果满足由T1或者由TR和T2定义的阈值条件中的任一个或全部,则将使用列表N(列表0或列表1)中的单个参考画面来编码当前画面(例如,将可应用于该列表的num_ref_idx_IN_active_minus1设置为0)。
如果在失真计算中使用重建的参考画面RPrc与当前画面进行比较,则考虑到这也受到量化过程影响,应当例如通过预先定义与量化参数QP相对应的特定权重并且将T1和T2重新定义为T1(QP)=a(QP)×T1和T2(QP)=b(QP)×T2,来相应地调整/缩放T1和T2,其中,a()和b()是通过量化参数QP指明(index)的预先定义的权重。
如果以上失真条件均不正确,但是画面的MAD值(CP-RP0 PMAD)满足不同的阈值T3(例如,T1≤PMAD<T3),或者如果满足不同的阈值T4(例如,T2≤MBSAD<T4)的宏块的百分比H的宏块SAD值(MBSAD)超过预定的阈值百分比TH,则我们还评估被编码用于第一参考画面的运动矢量和参考索引如果具有等于0的参考索引的第一参考画面的宏块的百分比K1超过预定的阈值百分比TK1,则将仅使用单个参考画面(第一参考画面)来编码当前画面,(并且相应地将num_ref_idx_IN_active_minus1设置为0)。
可选地,为了进一步优化,可以做出以下判定如果用来将列表中的第一参考画面编码的运动矢量的全部或一部分足够小(表明低运动活性),则使用单个参考画面(第一参考画面)来编码当前画面。例如,如果使用零参考(RP0)并且具有分别处于[-mx1,mx2]和[my1,my2](例如,mx1=mx2=my1=my2=1)目标范围内的运动矢量分量MVx和MVy的画面中的块的百分比K2大于预定的阈值百分比TK2,(例如TK2%≤TK1%),则将使用给定列表(例如,列表0)中的单个参考(例如,RP0)编码当前画面。
如果上面规定的条件都不满足,那么也可以(例如,通过计算画面的SAD值PSAD或块/宏块MAD值MBMAD)将可应用的参考列表中的剩余参考与当前画面进行比较。如果相对于当前画面的参考i(其中,i是参考画面列表的索引)的画面的MAD值PMADi大于阈值T5、或者其中的所有宏块具有大于阈值T6的宏块SAD值MBSADi,则将从用于编码当前画面的有效参考列表(例如,参考缓冲器)中去除此参考。类似地,还通过适配T5和T6的值,可以连续地考虑从最近到最远参考的运动矢量和参考索引(增大的参考索引)并且帮助所述判定。例如,如果参考画面没有被用于对更靠近当前画面的另一参考画面编码,则可以减小这些阈值(阈值的减小意味着该参考具有更高的从所检查的参考中去除的可能性)。
由于与用来将其编码的参考画面进行比较的参考画面的失真值可能已经为了该画面的参考数目的判定而进行了计算,因此在附加判定方法中可以再次使用这些失真值。具体地说,如果已经知道给定的参考画面与当前画面非常相似,但是与第二参考画面相比具有较高失真,则非常有可能的是相对于第二参考画面,当前画面将具有高失真值并且可以避免失真计算,以及,可以从将用来对当前画面进行编码的“有效”参考的缓冲器中去除该第二参考画面。然而,考虑运动补偿之后这两个参考之间的失真(或残留,如果可获得的话)将有可能导致更可靠的判定和更好的性能。
最后,还可以使用所生成的统计值(例如,参考列表中每个参考相对于当前画面的失真)来进行可应用的参考列表中的参考的重新排序,使得在参考列表中以较高的优先级(较小的索引号)放置相对于当前画面具有较小失真的参考。然后,可选地,可以将num_ref_idx_IN_active_minus1设置为阻止具有最高失真的参考画面被用作用于编码当前画面的参考的数字(例如,大于1)。在H.264标准中,将参考列表中的参考画面重新排序可以通过发信号通知参考画面列表重新排序元素来进行(参见H.264标准,7.3.3.1节)。在本发明的其它实施例中,也可以采用用于估计参考画面之间的失真的其它已知的和将来的方法,并且因此可以将所述方法与加权预测策略相结合。
与传统技术不同,MPEG-4标准提供一种压缩运动画面的基于对象的技术,并且允许具有任何形状的对象的单独编码。在传统的基于帧的视频编码方法中,利用一组矩形的时间相关的帧来表示“真实世界”,该矩形帧是可被独立编码或显示或者由用户操作的最小单位。
在诸如MPEG-4架构的基于对象的视频编码框架中,场景不再被看作一组具有给定的空间和时间分辨率的矩形帧,取而代之的是,它被理解为典型地具有不同的特性和语义相关性的、自然和合成源的可视对象(VO)的组合。每个对象被独立编码,并且生成可独立访问的基本流,从而向用户提供访问在语义上有意义的对象并与其交互的能力。在数据方面,并且相对于基于帧的场景,另外还存在定义每个对象的形状的形状数据、以及指定哪些对象在该场景中以及组织该场景的方式的场景描述数据。因此,MPEG-4允许通过视频对象面(VOP)的序列来表示2D任意形状的自然视频对象。对于每个VOP,将形状、纹理和运动数据编码。纹理编码是基于DCT的(8×8的块),并且运动补偿是基于宏块或块的(16×16或8×8的块)。对于形状,使用基于内容的算术编码(CAE)来将其编码。由于各种场景对象被独立编码从而生成单独的基本流,因此有可能为每个视频对象选择最佳数目的参考,以便在该对象的块的相互编码中使用。
在基于对象的编码框架中,由于场景中的各种对象尽管一起构成场景,但是就编码来说现在是独立的实体,因此本领域技术人员将理解可以将本发明的原理从基于帧的编码扩展到基于对象的视频压缩技术,其中,场景中的多个视频对象(VO)将被单独编码。在基于对象编码的情况中,前述方法可以分别被应用于每个单独编码的视频对象,而不是被应用于每个整体画面或者其中的整个片。
例如,根据上面公开的本发明的实施例,可以仅使用单个帧作为参考来将“背景”视频对象(例如,具有很少或者不具有帧间运动)编码为独立的视频对象,同时可以使用多个帧对显示在同一场景中的另一对象(运动对象,例如人)编码,如在下面更具体地描述的本发明的另一实施例中进行的那样。因此,要叠加在“背景”对象上的、同一场景中的人或其它运动对象可以使用多个参考画面(或单个参考画面)基于其自己的特性而被编码,同时仅使用单个参考画面(或多个参考画面)编码背景对象。如果可以仅使用根据在此公开的方法确定的单个参考画面有利地编码特定对象的块,则可以相应地仅使用单个参考来编码特定对象的块。
此外,如果所传送的画面的序列包括提供对特定(例如“背景”)对象的每个像素的描绘的单个真实帧,或者可以从所传送的画面构建(合成)的合成帧(不是视频画面序列中的实际真实图像的再现、但是包含对特定“背景”对象的所有像素的描绘的帧),则可以根据在此公开的方法选择该真实帧或合成帧(以用作用于将一个或多个其它帧中的相同视频对象的运动改变(motion-shifted)的对应部分进行编码的参考),作为将用来对“背景”对象进行编码的单个参考。
因此,在本发明的方法将被应用于基于对象的编码的情况下,本领域技术人员可以将上述方法适配为支持做出基于对象的参考数目的判定,而不是基于整个画面的比较的参考数目的判定。例如,取代计算两个整个画面之间的SAD值(PSAD),将计算特定视频对象的两个VOP表示之间的SAD值(VOSAD),并将该SAD值用于基于对象的参考数目的判定,而不是如前述方法中那样使用PSAD值。类似地,由此得出结论将利用基于对象的MAD值(VOMAD)来代替归一化的画面的SAD值(PMAD)(即,整个当前画面和整个第一个列出的参考画面之间的MAD)。可以通过将在第一时刻采样的、当前画面中的视频对象内的特定块(例如,宏块)与在第二时刻采样的、参考画面中的相同视频对象内的运动改变的对应的类似大小的块(例如宏块)进行比较,来进行基于对象的编码中的基于宏块的运动估计。因此,所公开的方法中的计算和判定可以被容易地应用于基于对象的编码。例如,如果相对于当前画面的参考i(其中,i是参考画面列表的索引)的画面MAD值PMADi大于阈值T5、或者其中的所有宏块具有大于阈值T6的宏块SAD值MBSADi,则将从用于对当前画面中的像素区(例如,视频对象)进行编码的参考(例如,参考缓冲器)中去除此参考。
因此,本发明的方法可以被一般地描述为基于要单独编码的“像素区”的特性的计算和参考数目的判定,其中,像素区的尺寸可以(根据进行基于帧的编码还是基于对象的编码)在整个画面的全矩形尺寸之间变化,或者被进一步限制为特定视频对象的形状边界中的较小区域。在本发明的一些实施例中,并且在所附权利要求中,术语“像素区”还包括要编码的当前画面或当前视频对象的片或场。因此,本发明的方法提供了使用在参考列表中列出的多个参考的至少一个来对视频图像序列中的当前画面的像素区进行相互编码,该方法包括以下步骤动态地选择将用作唯一参考的第一个列出的参考,所述唯一参考将用来对当前画面的像素区进行相互编码。该像素区可以包括(矩形的)当前画面的所有像素,或者诸如视频对象或片或场的较小的(例如,非矩形的)区域。第一个列出的参考可以是所述多个列出的参考中在时间上最接近包含要进行相互编码的像素区的当前图像的参考。
图2示出了用于确定对于用来将当前P或B画面进行相互编码的每个(反向或前向)预测是否仅使用单个(一个)参考画面、从而实施本发明原理的示例方法的序列200。在此处的每个流程图(例如图2和3)中,“是”表示当在相关联的菱形(判定框)中显示的比较或语句为真(TRUE)时使用的判定步骤的每个分支。反之,“否”表示当在相关联的菱形(判定框)中显示的比较或语句为假(FALSE)时使用的判定步骤的分支。
获取步骤210获取所有变量数据,包括当前画面(CP)和可应用的(反向或前向)参考列表N中的第一参考RP0N(零参考)的像素数据、以及将在做出所述判定时采用的各种阈值T1、T2、TR、T3、TH、T4、TK1、TK2。
通过计算当前画面CP和给定列表N(列表0或列表1)中的第一参考(零参考)画面RP0N的宏块之间的平均绝对差(PMAD)来执行失真计算步骤220。可以使用参考画面RP的原画面或者重建的参考画面RPrc来计算CP-RP0NPMAD。(注意,PMAD计算步骤220是指计算画面中的宏块的每个宏块SAD值MBSAD,其为在下面的判定步骤,例如234、262中使用的信息。)在判定步骤232中,如果(在宏块的级别上)整个当前画面CP和整个第一个列出的参考画面RP0之间的PMAD值(CP-RP0N PMAD)低于相对小的第一阈值T1,则选择“是”分支,并且接下来执行参考限制步骤294,由此,(例如,通过将num_ref_idx_IN_active_minus1设置为等于0)把将用于对当前画面进行编码的(可应用列表列表0或列表1中的)参考的数目设置为1。然后,将在编码步骤299中仅将单个参考画面(列表N中的零参考)用于可应用的(前向或反向)预测来对当前画面进行相互编码。在判定步骤232中,如果相反的,CP-RP0N PMAD超过第一阈值T1,则执行随后的判定步骤(例如,234),以确定是否通过其它标准、应当仅将单个参考画面(列表N中的零参考)用于可应用的(前向或反向)预测来对当前画面进行相互编码。
在判定步骤234中,如果具有低于第二阈值T2的宏块SAD值MBSAD的当前画面CP的宏块的百分比R等于或大于预定的阈值百分比TR(例如,TR等于95%),则选择“是”分支,并且接下来执行参考限制步骤294和编码步骤299。
在判定步骤236中,如果在计算步骤220中计算的画面的MAD值(CP-RP0N PMAD)满足不同的阈值T3(例如,T1≤PMAD<T3),则选择“是”分支,并且在随后的步骤280、290和292中评估被编码用于第一参考画面的运动矢量和参考索引。在判定步骤236中,如果相反的,画面的MAD值不满足阈值T3,则执行随后的计算步骤260和判定步骤(例如,262)。
在计算步骤260中,计算其宏块SAD值MBSAD满足不同阈值T4(例如,T2≤MBSAD<T4)的宏块的百分比H,以便在随后的判定步骤262中使用。
在判定步骤262中,如果满足不同阈值T4的宏块的百分比H的宏块SAD值(MBSAD)(例如,T2≤MBMAD<T4)超过预定的阈值百分比TH,则选择“是”分支,并且在随后的步骤280、290和292中评估被编码用于第一参考画面的运动矢量和参考索引。
在判定步骤262中,如果相反的,百分比H没有超过预定的阈值百分比TH,则可以执行随后的步骤(包括在图3的步骤302处开始的步骤),以便把用来对当前画面进行编码的有效参考数目减小到大于1的数目。
在计算步骤280中,计算具有等于0的参考索引的第一参考画面的宏块的百分比K1,以便在随后的判定步骤282中使用。在判定步骤282中,如果具有等于0的参考索引的第一参考画面的宏块的百分比K1超过预定的阈值百分比TK1,则选择“是”分支,并且接下来执行参考限制步骤294和编码步骤299。在判定步骤282中,如果相反的,百分比K1不满足预定的阈值百分比TK1,则执行随后的计算步骤290和判定步骤(例如,292)。
在计算步骤290中,计算使用零参考(RP0)、并且具有分别处于[-mx1,mx2]和[my1,my2](例如,mx1=mx2=my1=my2=1)的目标范围内的运动矢量分量MVx和MVy的画面中的块的百分比K2,以便在随后的判定步骤292中使用。在判定步骤292中,百分比K2大于预定的阈值百分比TK2,因而选择“是”分支,并且接下来执行参考限制步骤294和编码步骤299。在判定步骤292中,如果相反的,百分比K2不大于预定的阈值百分比TK2,则可以执行随后的步骤(包括在图3的步骤302处开始的步骤),以便把用来对当前画面进行编码的有效参考的数目减小到大于1的数目。
图3示出了用来将有效参考的数目减小到大于一个参考画面的数目、从而实施本发明的原理的示例方法的序列300,其中所述有效参考将(对于每个可用列表)用来对当前画面进行编码。当图2的方法200均没有产生仅将单个(一个)参考画面用于用来对当前P(或B)画面进行相互编码的每个(反向或前向)预测的判定时,将采用图3的方法300。
图3包括对于有效参考列表N中的每个参考画面重复、直到检测了最后的有效参考画面(例如,“最后的有效画面”等于“是”)为止的循环RPloop,并且包括步骤310、320、330、340、350、360,所述步骤可以被执行以便从将用来对当前画面进行(前向或反向)相互编码的有效参考画面的列表中去除参考画面。在该循环中,利用被递增的整数变量索引i来为最初在参考列表N中的多个参考画面编制索引,直到检测到“最后的有效参考?”(判定370等于“是”)为止。在步骤302中,将索引i初始化为等于1,其指示跟随在图2中检查的零参考之后的参考画面列表N中的参考画面。
获取步骤310获取所有变量数据,包括与参考画面列表N中的第i参考画面相对应的像素数据,并且确定、访问或计算将在进行所述判定时采用的各种阈值(例如,说明性地,在通过图3描述的实施例中为T5和T6)。
在计算步骤320中,计算相对于当前画面的、第i参考画面(其中,i是参考画面列表N的索引)中的每个宏块的宏块SAD值(MBSADi),以便在随后的判定步骤330中使用。
在判定步骤330中,如果第i参考中的所有宏块的宏块SAD值(MBSADi)具有大于阈值T6的宏块SAD值MBSADi(所有MBSADi>T6),则选择“是”分支,并且执行参考去除步骤360,以便从将用于对当前画面进行相互编码的有效参考中去除列表N中的第i参考画面。在判定步骤330中,如果相反的,所有MBSADi均不大于T6,则执行随后的计算步骤340以及随后的判定步骤350。
在计算步骤340中,计算相对于当前画面的、第i参考画面(其中,i是参考画面列表N的索引)的画面MAD值PMADi,以便在随后的判定步骤350中使用。
在判定步骤350中,如果相对于当前画面的、第i参考画面(其中,i是参考画面列表的索引)的画面MAD值PMAD1大于阈值T5,则选择“是”分支,并且执行参考去除步骤360,以便从将用于对当前画面进行相互编码的有效参考中去除列表N中的第i参考画面。
可以(例如在步骤310中)为每个参考画面不同地定义阈值T5和T6。例如,如果列表N中的第i参考画面没有被用于将更靠近当前画面的另一参考画面编码,则可以减小这些阈值T5和T6(阈值T5和T6的减小意味着该参考画面具有将通过步骤360而被从有效参考中去除的较高可能性,其中所述有效参考将用于在步骤399中对当前画面进行相互编码)。
在对于列表N中的所有参考画面完成循环RPloop(在判定步骤370中,“最后的有效参考”为“是”)之后,在列表重新排序步骤390中,可以将列表N重新排序,以排除通过步骤360去除的那些参考画面,从而在参考列表N中将以较高的优先级(较小的索引号)放置相对于当前画面具有较小失真的剩余的有效参考画面。随后,在步骤399中,可以使用已经通过图3的前述步骤序列300最小化和重新排序的参考列表N,来对当前画面进行相互编码。
双预测本发明的另一实施例具体适用于编码B-画面。在画面的双预测(B)相互编码的情况下,考虑到通常利用列表0的参考和列表1的参考将B-画面编码,可以根据两种参考的运动矢量和参考索引来施加附加条件。例如,如果列表1的参考画面中的所有或者非常高的百分比的块BP(例如,BP>90%)使用在列表0中列出的第一画面(零参考)作为参考,则因为不必将参考索引编码到比特流中而导致节省了比特,所以仅使用列表0的单个参考(零参考)可能是有益的。根据实验结果,还考虑到此画面类型中的直接模式的高度使用,B画面不会与P画面同样多地受益于多个参考的使用,因此,可以完全禁止多个参考选项,而不必进行进一步的参考数目的判定,并且在质量上影响不大。
对于B-画面,可以使用两个列表来判定是否将保留特定的参考画面。例如,如果B画面的列表1的参考画面(例如,图1中用于画面B7和B8的P9)仅使用单个参考画面(例如,P6)并且在这些画面之间存在时间关系,如图1所示,其中所述单个参考画面也是列表0中的第一参考,则很有可能也可以使用列表0的单个参考(例如,P6)来有利地对这些B-画面进行相互编码。可以进一步考虑这些参考相对于当前画面的失真、考虑运动信息、以及按照上面在图2和图3中描述的先前的示例的方式来考虑列表1的参考中的大多数块是否是静止的(具有0或接近0的运动),其中N将被设置为1以指示列表1。如果B-画面的列表0的预测完全或大部分使用单个参考,则将进一步指示使用单个参考来将B-画面编码的判定,同时也可以再次考虑运动矢量以及每个参考之间的失真。
图4示出了用于将像素数据(包括画面序列)编码为多个块变换系数的示例编码器700,该编码器被适配用来通过执行在此公开的判定方法和办法来最小化将用来对当前画面进行相互编码的有效参考的列表。编码器700可以包括多个电路,例如760、716、728、730,所述电路具体被适配用来操作或互操作,以便根据本发明的实施例、通过执行在此公开的一种或多种方法来最小化或优化将用来对当前画面进行相互编码的有效参考的列表。编码器700包括以信号通信耦接到求和块714的正输入的视频输入端712。求和块714继而耦接到用于实现整数变换以提供系数的功能块716。功能块716耦接到用于实现熵编码以提供输出比特流的熵编码块718。功能块716还在缩放和反相变换块722处耦接到环内(in-loop)部分720。功能块722耦接到求和块724,所述求和块724继而耦接到帧内预测块726。帧内预测块726耦接到开关727的第一输入,所述开关727继而耦接到求和块724的第二输入和求和块714的反相输入。
求和块724的输出还耦接到去块滤波器740。去块滤波器740耦接到帧存储器728。帧存储器728耦接到运动补偿(帧间预测)块730,所述运动补偿块730耦接到开关727的第二替换输入。视频输入端712还耦接到运动估计块719以提供运动矢量。去块滤波器740还耦接到运动估计(帧间预测)块719的第二输入。运动估计块719的输出耦接到运动补偿(帧间估计)块730,以及耦接到熵编码块718的第二输入。
视频输入端712还耦接到编码器控制块760。编码器控制块760耦接到块716、718、719、722、726、730和740中的每一个的控制输入,以便提供用来控制编码器700的操作的控制信号。该控制信号可以包括阈值T1、T2、TR、T3、TH、T4、TK1、TK2、T5、T6中的一个或多个、或者在功能上与其相当或者在其它情况下合并了它们的值的信号。
可以用可在通用计算机或者任何其它合适的计算环境上运行的软件来实现本发明的各种方面。可以在诸如个人计算机、通用计算机、服务器计算机、手持式设备、膝上型设备、多处理器、微处理器、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、分布式计算环境等的很多通用或专用计算环境中使用本发明,以便执行用于进行本发明的逐帧数字视频编码的计算机可执行指令,所述指令存储在计算机可读介质上。本发明可以部分或整个地实现为计算机可执行指令,诸如由计算机执行的程序模块。通常,程序模块包括用来执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。在分布式计算环境中,程序模块可以位于本地或远程存储设备中。
本发明的示例实施例已经在上面进行了说明并在附图中示出。然而,本发明不限于上述示例实施例,并且显而易见的是,在本发明的精神和范围内,本领域技术人员可以实施改变和修改。因此,示例实施例不应被理解为限制,而是应当被理解为示例。本发明的范围不是由以上描述而是由所附权利要求确定的,并且在不脱离由所附权利要求和等同物限定的本发明的范围的情况下,可以对本发明的实施例做出变化和修改,其中,i、K和M是整数。
权利要求
1.一种对视频画面序列中的当前画面的像素区进行相互编码的方法,所述序列包括在至少一个参考列表中列出的多个参考,该方法包括以下步骤选择在参考列表中列出的、将被用作唯一参考的第一参考,所述唯一参考将用来对当前画面的像素区进行编码。
2.如权利要求1所述的方法,还包括以下步骤将num_ref_idx_IN_active_minus1设置为等于0,其中,N表示参考列表的编号。
3.如权利要求1所述的方法,其中,第一个列出的参考在时间上最接近包含要编码的像素区的当前画面。
4.如权利要求1所述的方法,其中,要编码的像素区包括整个当前画面。
5.如权利要求1所述的方法,其中,要编码的像素区基本上由视频对象的像素组成。
6.如权利要求1所述的方法,其中,要编码的像素区基本上由片的像素组成。
7.如权利要求1所述的方法,其中,选择第一个列出的参考的步骤包括以下子步骤计算当前画面和第一个列出的参考的对应像素之间的绝对像素差的总和。
8.如权利要求7所述的方法,还包括以下步骤将所计算的绝对像素差的总和与第一阈值T1相比较。
9.如权利要求7所述的方法,其中,如果绝对像素差的总和小于第一阈值T1,则使用参考列表中列出的单个参考来编码当前画面的像素区。
10.如权利要求9所述的方法,其中,如果绝对像素差的总和不小于第一阂值T1,则使用参考列表中列出的多个参考来编码当前画面的像素区。
11.如权利要求1所述的方法,其中,选择第一个列出的参考的步骤包括以下第一子步骤计算具有比第二阈值T2要低的、相对于第一个列出的参考的绝对像素差值MBSAD的总和的当前画面的像素区中的块的比率MBR;其中,如果比率MBR等于或大于第一阈值比率TRR,则仅使用第一个列出的参考来编码所述像素区。
12.一种对视频画面序列中的当前画面进行相互编码的方法,所述序列包括在参考列表中列出的多个参考,该方法包括以下步骤选择在参考列表中列出的、将用作唯一参考的第一参考,所述唯一参考将用来对当前画面进行编码。
13.如权利要求12所述的方法,其中,选择第一个列出的参考的步骤包括以下子步骤计算在利用等于0的参考索引编码的第一个列出的参考画面中编码的块的比率RK1;其中,如果比率RK1超过预定的阈值比率TRK1,则仅使用第一个列出的参考来编码当前画面。
14.如权利要求13所述的方法,其中,仅在具有比第四阈值T4要低的、相对于第一个列出的参考的块SAD值MBSAD的当前画面的像素区中的块的比率MBR等于或大于第二预定阈值比率TRH时,才执行计算比率RK1的子步骤。
15.如权利要求13所述的方法,其中,仅在当前画面和第一个列出的参考的对应像素区中的绝对像素差的总和小于第三预定阈值T3时,才执行计算比率RK1的子步骤。
16.如权利要求12所述的方法,其中,选择第一个列出的参考的步骤包括以下子步骤计算第一参考画面的块的比率RK2,所述第一参考画面已经被编码为具有分别等于或小于预定阈值幅度TX和TY的运动矢量幅度分量MVx和MVy,其中,如果比率RK2大于预定阈值百分比TRK2,则仅使用第一个列出的参考来编码当前画面。
17.如权利要求16所述的方法,其中,阈值幅度TX等于阈值幅度TY。
18.如权利要求16所述的方法,其中,仅在当前画面和第一个列出的参考的对应像素区中的绝对像素差的总和不小于第一预定阈值T1时,才执行计算比率RK2的子步骤。
19.一种使用在有效参考列表中列出的多个参考画面中的至少一个来对视频画面序列中的当前画面进行相互编码的方法,该方法包括从有效参考列表中去除所列出的参考中的至少一个的步骤,该步骤基于每个被去除的参考与当前画面的比较。
20.如权利要求19所述的方法,还包括以下步骤相应地减小num_ref_idx_IN_active_minus1,其中,N表示有效参考列表的编号。
21.如权利要求19所述的方法,其中,所述比较是直接比较。
22.如权利要求21所述的方法,其中,去除所列出的参考的步骤包括以下子步骤通过计算当前画面和每个被去除的参考之间的绝对像素差的总和来测量失真。
23.如权利要求21所述的方法,其中,去除所列出的参考的步骤包括对于从列表中去除的每个参考执行以下子步骤计算具有大于预定阈值T6的绝对差值的总和的块的数目。
24.如权利要求23所述的方法,还包括对于未被用于编码在时间上更接近当前画面的另一参考画面的每个参考画面,动态地减小阈值T6的值。
25.如权利要求19所述的方法,其中,所述比较是间接比较。
26.如权利要求25所述的方法,其中,基于每个被去除的参考与当前画面的比较而从有效参考列表中去除所列出的参考中的至少一个的步骤包括如果第二参考画面与第一参考画面相比具有高失真、并且第一参考画面与当前画面相比具有低失真,则从有效参考列表中去除第二参考画面。
27.一种使用在有效参考列表中列出的多个参考画面中的至少一个来对当前画面进行相互编码的方法,该方法包括以下步骤将所列出的参考重新排序,使得在有效参考列表中以较高的优先级列出相对于当前画面具有较小失真的参考画面。
28.一种对视频画面序列进行相互编码的方法,该方法包括执行使用在参考画面列表中列出的所有参考画面来编码当前画面的第一编码步骤;从参考列表中选择和去除一个或多个画面以创建新参考列表的步骤;以及随后执行仅使用在新参考列表中列出的画面将当前画面重新编码的第二编码步骤。
29.如权利要求28所述的方法,其中,将所选择的、从参考列表中去除的画面中的至少一个去除,因为在用于编码当前画面的块的任何一个的第一编码步骤中没有将它用作参考。
30.如权利要求28所述的方法,其中,将所选择的、从参考列表中去除的画面中的至少一个去除,因为在第一步骤中使用其参考索引来对当前画面的少于预定阈值数目的块编码。
31.如权利要求28所述的编码方法,还包括从有效参考列表中去除在第一遍期间未被用作参考画面的所有画面。
32.如权利要求28所述的编码方法,还包括计算在第一遍中将特定索引的参考画面用作编码参考的当前画面中的块的数目;并且,如果块的数目小于块的预定阈值数目,则在第二遍中不使用该特定索引的参考画面来编码当前画面。
33.一种将视频图像序列编码的方法,该方法包括以下步骤使用M个参考画面的K个排列来对当前画面进行K次相互编码,其中K等于K≤Σi=1MM!(M-i)!]]>随后,基于与其它K-1个编码的当前画面进行比较的预定标准,从K个编码的当前画面中选择一个编码的当前画面。
34.如权利要求33所述的编码方法,其中,选择一个编码的当前画面的步骤包括计算和比较所述K个编码的当前画面的每一个相对于要编码的当前画面的失真。
35.如权利要求33所述的编码方法,其中,选择一个编码的当前画面的步骤包括计算和比较所述K个编码的当前画面中的每一个的比特率。
36.如权利要求33所述的编码方法,其中,选择一个编码的当前画面的步骤包括计算和比较所述K个编码的当前画面的每一个的比特率和失真,其中,使用拉格朗日乘子针对比特率来对失真进行加权。
37.一种对视频画面序列进行相互编码的方法,该方法包括以下步骤使用可用参考的多个排列的每一个来执行当前画面的运动估计编码,并且选择使预定条件最小化的可用参考的排列。
38.如权利要求37所述的方法,其中,所述预定条件选择自比特率、失真、或比特率和失真的加权组合。
39.如权利要求37所述的方法,其中,所选择的可用参考的排列由一个单一参考组成,并且其中,被最小化的预定条件是比特率。
40.如权利要求37所述的方法,其中,如果所选择的可用参考的排列由一个单个参考组成,则还执行仅将该单个参考用于运动估计以重新编码当前画面的步骤。
41.一种用于将视频图像序列编码的编码器,该编码器包括参考画面缓冲器,其中,该编码器被适配为使用存储在参考画面缓冲器中并在参考列表中列出的多个参考画面中的至少一个,来对画面序列中的当前画面进行相互编码;其中,该编码器还被适配为基于预定标准,动态地选择将用作唯一参考的第一个列出的参考,所述唯一参考将用来对当前画面进行相互编码。
42.如权利要求41所述的编码器,其中,所述预定标准包括使要编码的当前画面的比特率最小化。
43.如权利要求41所述的编码器,其中,所述预定标准包括使要编码的当前画面的失真最小化。
44.如权利要求41所述的编码器,其中,所述预定标准包括使用拉格朗日乘子将要编码的当前画面的比特率和失真的加权组合最小化。
45.如权利要求41所述的编码器,其中,该编码器还被适配为动态地将存储在参考画面缓冲器中的参考的列表重新排序,使得在该列表中以较高地优先级列出相对于当前画面具有较小失真的参考画面。
46.如权利要求41所述的编码器,其中,该编码器还被适配为从存储在参考画面缓冲器中的参考的列表中动态地选择和去除一个或多个画面,以创建新参考列表;并且仅使用在新参考列表中列出的画面来对当前画面进行相互编码。
47.一种用于将图像序列编码的编码器,该编码器包括参考缓冲器,其中,该编码器被适配为使用在参考缓冲器中列出的多个参考画面中的至少一个来对当前画面进行相互编码,并且被适配为动态地对存储在参考缓冲器中的参考的列表重新排序,使得在有效参考列表中以较高的优先级列出相对于当前画面具有较小失真的参考画面。
48.如权利要求47所述的编码器,其中,该编码器还被适配为如果仅使用第一个列出的参考进行编码满足预定标准,则仅将第一个列出的参考画面用作唯一参考来对当前画面进行相互编码,其中所述唯一参考将用来对当前画面进行相互编码。
49.如权利要求47所述的编码器,其中,所述预定标准包括使要编码的当前画面的比特率最小化。
50.如权利要求47所述的编码器,其中,所述预定标准包括使要编码的当前画面的失真最小化。
全文摘要
一种用于最小化和优化将用于当前画面、或当前画面中的像素区(例如,视频对象)的(前向或反向)相互编码的有效参考画面的列表的方法(200)。基于与像素数据以及当前画面和一个或多个参考画面之间的运动有关的一个或多个判定,将列表中的有效参考画面的数目设置为等于1(294)。否则,基于与像素数据以及当前画面和一个或多个参考画面之间的运动有关的一个或多个其它判定来最小化列表中的有效参考画面的数目(300)。基于第一参考画面列表中的参考画面的使用,最小化第二参考画面列表中的有效参考画面的数目。视频编码器(700)处理表示由传统的市场上有售的视频照相机产生的二维视频图像的数据。该视频编码器被适配用来确定、选择和最小化将用来对当前画面进行相互编码的有效参考画面的数目。由该编码器(700)发送的比特流可以由现有技术的解码器解码。
文档编号H04N7/36GK1875637SQ200480031673
公开日2006年12月6日 申请日期2004年8月24日 优先权日2003年8月26日
发明者亚历山德罗斯·图拉皮斯, 吉尔·M·博伊斯 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1