失真度估算的制作方法

文档序号:7680645阅读:302来源:国知局
专利名称:失真度估算的制作方法
技术领域
至少一种公开的实现方式涉及失真度估算(distortion estimation)。

背景技术
为了实现良好的视频流(streaming)性能,通常要解决的一个难题是如何减少未完成的(imperfect)网络传输引起的分组丢失(packet loss)影响。对于这个问题,已应用的普通且有效的框架是基于端到端失真度(ED,end-to-end distortion)的率失真度(RD,rate-distortion)优化(ED-RDO)。为了提高视频编码的差错恢复(error resilience),已经提出了种种基于ED-RDO的技术。在视频传输模块中,ED-RDO已经被应用来优化分组传送策略的选择。为了实现良好的ED-RDO性能,一个挑战是如何精确地估算所述ED。
典型ED估算方案在子帧级别(sub-frame level)上操作,它通过考虑从所有过去帧直到当前帧的差错传播来估算当前帧的ED。例如,由于帧间编码(其中当前帧是使用作为参考帧的先前帧被压缩的),因此可能传播差错。因此,如果在参考帧中存在差错,则当前帧也将反映该差错。在帧级别上操作的其它ED估算方案通过考虑归因于当前帧中的差错的未来帧中的差错来估算当前帧的ED。


发明内容
根据一个通常方面,确定失真度值。该值与画面系列中的特定画面的至少一部分相关联。该值基于所述特定画面中的、归因于所述特定画面或者所述系列中的先前画面中的差错的失真度。该值也基于所述系列中的后续画面中的、归因于所述特定画面中或者先前画面中的差错的失真度。
在附图中和下面的描述中阐述了一种或多种实现方式的细节。即使以一种特定方式进行描述,仍明显的是,实现方式能够以各种方式来配置或体现。例如,一种实现方式可被执行为方法或者体现为配置成执行一组操作的装置或者存储用于执行一组操作的指令的装置。通过结合附图和权利要求考虑的下列详细描述,其它方面和特征将变得清楚。



图1包括具有失真度估算的系统的实现方式方框图。
图2包括图示考虑先前帧中的差错的失真度估算技术的实现方式方框图。
图3包括图示考虑后续帧中的差错的失真度估算技术的实现方式方框图。
图4包括图示考虑先前帧和后续帧中的差错的失真度估算技术的实现方式方框图。
图5包括图示确定在图4相关联的实现方式中使用的权重的图。
图6包括用于估算失真度的处理的实现方式流程图。
图7包括用于估算失真度的另一处理的实现方式流程图。
图8包括图1的编码器的实现方式方框图。
具体实现方式方式 本公开中描述的至少一种实现方式展示了一种用于复杂性可量测的(scalable)差错恢复视频编码的新颖的混合端到端失真度(ED)估算方案。发明人已经意识到通常的系统在它们估算ED的途径方面受到限制,并且可特征化为“仅回顾(look-back-only)”或“仅展望(look-ahead-only)”。这样的仅回顾和仅展望ED估算系统通常分别引起高计算复杂度或者低估算精度。与这样的系统不同,所提出的解决方案是包含“回顾”和“展望”估算两者的一般混合范例。在“回顾”估算中,从在像素级(pixel-level),对来自仅某一数量的被先前编码的帧的差错传播(EP)失真度进行精确地计算。这种部分的回顾得到期望的估算精度。“回顾”所忽略的帧的影响通过使用具有相当低的计算复杂度的“展望”帧级别EP近似来补偿。通过改变“回顾”帧的数量,能够实现不同级的计算复杂度和估算精度。通过提供复杂度可量测性(scalability),所提出的方案可能更可适用于实际的视频流系统中。
为了实现良好的视频流性能,减少来自未完成的网络传输引起的分组丢失影响通常是关键的难题。对于这个问题,一般且有效的框架是基于ED的RD优化(ED-RDO),其已经应用于视频编码器模块和视频传输模块以便提高整个视频流系统的差错恢复。为了提高视频编码的差错恢复,已经提出了种种基于ED-RDO技术来优化各种编码判定,例如预测参考、运动矢量(MV)、量化参数(QP)和宏块(MB)编码模式等。在视频传输模块中,ED-RDO已经被广泛应用来优化分组传送策略的选择。ED-RDO也可被用来联合地优化源与信道编码之间的位分配(bit allocation)。为了实现良好的ED-RDO性能,一个重要的难题是精确地估算相关的ED,这时常是具有高度挑战性的任务。
本公开中的至少一种实现方式关注于基于ED-RDO的差错恢复视频编码的情况。这种实现方式展示了一种称作HEED(混合估算ED)的复杂度可量测的ED估算解决方案,其包含像素级“回顾”和帧级别“展望”估算。这种实现方式提供了估算精度与计算复杂度之间的折衷,其通常比现有的ED估算方案更灵活。通过改变“回顾”帧的数量,能够实现不同级别的计算复杂度和估算精度,这使得HEED更可应用于典型的实际视频流系统中。
参考图1,示出了系统100,其提供了用于讨论一种实现方式的框架。系统100包括编码器110、发送机/存储单元120、网络130和解码器140。编码器110接收输入数据,该输入数据可以是例如视频数据、音频数据、多形态(multi-modal)数据、或者可以估算其失真度的其它数据。编码器110根据HEED实现方式来编码输入数据,并且将编码的数据提供给发送机/存储单元120。
发送机/存储单元120执行发送或存储编码的数据中的一个或多个。如果发送编码的数据,则所述发送使用网络130,该网络可以包括例如因特网、自由空间(例如,从来自基于陆地的高塔或卫星的广播)、或者私有网络。清楚地,可以设想其它实现方式,例如单个设备内的专用传输路径。
解码器140通过例如从网络130接收发送的数据或者从发送机/存储单元120恢复存储的数据来访问编码的数据(由虚线表示)。术语“访问”被用作为广泛的术语,包括例如获取、恢复、接收、操纵、或者以各种方式处理。解码器140解码所访问的数据并且提供解码的数据作为输出数据。
现有的ED估算方案可大致分类为基于像素方式、基于块方式、或基于帧方式。差异主要涉及处理的粒度(granularity),如分类所建议的。
精确的ED估算可以通过基于像素的ROPE方法来实现,该方法最初被提出用于整数像素预测(integer-pixel prediction),并且后来被提出适用于子像素预测(sub-pixel prediction)。然而,连同它的高估算精度一起,ROPE也通常需要浮点递归计算每个像素的解码器重建第一分量和第二分量,这会导致大量的计算复杂度。因此,在现实的实时视频流系统中,ROPE通常是不令人满意的。
另一种基于像素的方式是在JM(JVT联合模型)H.264/AVC参考编码器中实现的,其中通过解码过程的耗尽型模拟以及在许多(例如30)分组丢失图案上进行平均来计算每像素的失真度。然而,它的复杂度甚至比ROPE方法的还要高。
为了低复杂度,可以使用一种简化的基于像素的失真度估算(SPDE)方式,其中仅考虑两个最可能丢失的事件(也就是,分别是最后两帧的丢失)。然而,忽略所有其它可能丢失的事件通常极大地损害了估算性能。
可替换地,基于块的方式生成并且递归地更新每一帧的块级别失真度图,这大致按照一个块大小的因子(例如,对于4×4块,是16)降低了基于像素的ROPE估算的估算复杂度。然而,由于帧间位移(displacement)包括子块运动矢量,因此运动补偿的块可以继承从先前帧中的多个块传播的差错。因此,基于块的技术需要或多或少的粗略近似(例如,传播块失真度或运动矢量近似的加权平均),这可能导致明显地降低估算精度。
在帧级别ED估算中,整个帧的ED被递归地计算。在这种情况下,所有复杂的事情(例如帧内编码的MB、子像素预测、解块滤波等)通常被使用不同的各个因子分别针对每一帧建模。因此,整体估算通常包括可忽略的计算复杂度。然而,实际上,帧级别估算通常仅可应用于帧级别ED-RDO问题中,而对于所关注的MB级别ED-RDO方案,例如ED-RDO运动估算(ME)和模式选择(MS),需要基于像素或者基于块的ED估算。
注意,上面的ED估算方案通常是“仅回顾”方式。在这些方式中,当前帧的ED通过考虑来自过去帧的差错传播来计算,如图2中一般所示。
参考图2,图解200描绘了一组帧(GOP),包括GOP开始210、GOP结束215、用垂直虚线225表示的帧i 220。所描绘的GOP也包括帧0、1、2和3,如在帧i 220之前(左边)出现所示。图解200分别图示说明了帧0、1、2和3中的每个帧的丢失对帧i 200以及对剩余GOP的影响。对帧i 220的影响例如由使用帧间编码产生。
帧0的丢失用“0_loss”230来表示,之后是一直通向帧i 220的虚线225的实线232。实线232表示典型的回顾方案,当估算与帧i 220相关联的失真度时,考虑帧0的丢失的影响。在帧i 220之后,实线232之后跟随延伸到GOP结束215的虚线234。虚线234表示帧0的丢失的影响继续(可能)影响GOP中的所有后续帧,但是当估算与帧i 220相关联的失真度时不考虑这个影响。当估算GOP中的未来帧的失真度时,考虑这些“未来”影响。虚线234之后是项236,表示为D’0_loss,它是指帧0的丢失对整个GOP的影响,包括帧i 220后续的帧。
对于帧1、2和3,遵循类似的分析。下面对帧1、2和3中的每一个进行描述。
帧1的丢失用“1_loss”240来表示,它出现在比帧0的丢失更迟(右边)的时间。1_loss 240之后是一直通向帧i 220的虚线225的实线242。实线242表示典型的回顾方案,当估算与帧i 220相关联的失真度时,考虑帧1的丢失的影响。在帧i 220之后,实线242之后跟随延伸到GOP结束215的虚线244。虚线244表示帧1的丢失的影响继续(可能)影响GOP中的所有后续帧,但是当估算与帧i 220相关联的失真度时不考虑这个影响。当估算GOP中的未来帧的失真度时,考虑这些“未来”影响。虚线244之后是项246,表示为D’1_loss,它是指帧1的丢失对整个GOP的影响,包括帧i 220后续的帧。
帧2的丢失用“2_loss”250来表示,它出现在比帧1的丢失更迟的时间。2_loss 250之后是一直通向帧i 220的虚线225的实线252。实线252表示典型的回顾方案,当估算与帧i 220相关联的失真度时,考虑帧2的丢失的影响。在帧i 220之后,实线252之后跟随延伸到GOP结束215的虚线254。虚线254表示帧2的丢失的影响继续(可能)影响GOP中的所有后续帧,但是当估算与帧i 220相关联的失真度时不考虑这个影响。当估算GOP中的未来帧的失真度时,考虑这些“未来”影响。为了简洁,对于帧2的丢失对整个GOP的影响,没有显示相应的D项。
帧3的丢失用“3_loss”260来表示,它出现在比帧2的丢失更迟的时间。3_loss 260之后是一直通向帧i 220的虚线225的实线262。实线262表示典型的回顾方案,当估算与帧i 220相关联的失真度时,考虑帧3的丢失的影响。在帧i 220之后,实线262之后跟随延伸到GOP结束215的虚线264。虚线264表示帧3的丢失的影响继续(可能)影响GOP中的所有后续帧,但是当估算与帧i 220相关联的失真度时不考虑这个影响。当估算GOP中的未来帧的失真度时,考虑这些“未来”影响。为了简洁,对于帧3的丢失对整个GOP的影响,没有显示相应的D项。
帧i 220的丢失也应当被期望为对帧i 220和GOP中的所有后续帧具有影响。正被分析的特殊回顾方案在估算与帧i 220相关联的失真度时考虑当前帧(帧i 220)的丢失的影响,而不考虑后续帧的丢失的影响。线条280(如点线所示,以便与已使用的实线和虚线区分开)图解了以下事实针对帧i 220的失真度估算仅考虑来自先前和当前(不是未来)丢失事件对帧i 220的影响。然而,针对GOP中的后续帧的影响显示为从帧i 220延伸到GOP结束215的虚线274。项D′i_loss276是指帧i 220的丢失针对剩余GOP的累积影响。
如我们所注意的,在正被分析的典型回顾方案中,在每个连续帧处考虑先前丢失事件和当前丢失事件的影响。因此,在考虑GOP中的每个帧之后,将要考虑每个丢失事件的全面影响,并且所有估算的失真度总和将等于所有D′j_loss项(对于GOP中的所有j)(例如项236)之和。
低复杂度感知(perceptual)ED度量(metric)以及相应ED-RDO ME和MS可以在分组丢失的情况下提高整体感知的视频质量。低复杂度ED度量可以考虑人类视觉系统的一些偏好/特性,因此被称作“感知”。这样的度量不同于计算MSE(均方的差错)失真度的典型ED度量。一种这样的感知度量(公开于“Concealment-aware motion estimation and mode selection for errorresilient video coding,”Proc.ICIP 2006,Altanta,October 2006)是一种“仅展望”ED估算方案,其中在当前帧ED计算中考虑在相同GOP中的所有后面帧中引起的差错传播,如图3所示(下面所描述的)。然而,由于来自先前帧的差错传播被完全地忽略,也忽略对停止过去差错传播的帧内编码的优点。尽管可以使用一种启发式方案来补偿忽略帧内编码的优点的影响,但是大体说来,这个难题通常仍会损害估算精度以及得到的“仅展望”方式的ED-RDO编码性能。
参考图3,图解300描绘了一组帧(GOP),包括GOP结束315、以及用垂直虚线325表示的帧i 320。所描绘的GOP也包括出现在帧i 320之后的帧i+1330。图解300图示说明了所有先前差错以及帧i 320的丢失对剩余GOP的组合影响。所述影响开始于帧i+1 330,并且继续(可能)于GOP中的所有后续帧。这个影响由从帧i+1 330延伸到GOP结束315的线条340表示。线条380(所示为点线,用以将其与已使用的实线和虚线区分开)图解说明了以下事实对于帧i 320的失真度估算仅考虑针对GOP中的未来帧的影响。
另外地,典型的展望方案应用穷举完全(brute-force complete)计算来估算失真度。本发明人已经意识到近似的优点并且提供了在至少一种实现方式中的近似。
在本公开中的至少一种实现方式中,我们关注基于ED-RDO的差错恢复视频编码的情况。大多数现有工作假设仅第一帧被编码作为I帧,并且所有剩余帧是P帧。相反,对于这种实现方式,我们假设基于GOP的视频编码框架,其中每个GOP的第一帧被编码作为I帧。除了差错恢复改进,GOP结构也有助于使能许多有用的特征,例如,快进、快退、或者快速频道变更,并且通常应用于实际的视频流系统中。
为了对所提出的HEED方案提供动力,我们从估算整个GOP的ED(用E{DGoP}表示)开始。称作FODE(一阶失真度估算)的方案使用它的一阶泰勒展开来近似E{DGoP}。实际上,通过差错恢复视频编码解决的分组丢失率p不大,例如,p<10%。除这以外,人们必须使用FEC或者其它技术来有效地减少p本身。使用小的p,FODE模型通常是非常精确的。MSEE{DGoP}被估算如下。
_这里,N是GOP大小,以及Dno_loss表示没有任何分组丢失的GOP失真度,也就是,仅源编码失真度。在整个本公开中,为了简洁,我们假设一帧的数据被打包成一个分组。γi是帧i的一阶泰勒展开系数,它可表达为 _这里,A是帧大小,fjk和

表示帧j中的像素k的原始值和编码器重构值(即,没有丢失的情况)。Di_loss和

表示当仅帧i丢失时GOP失真度和解码器重构像素值。在(2)中,所述近似是由相关项的忽略引起的。D′i_loss表示由于帧i的丢失引起的差错隐藏(EC)和差错传播(EP)失真度。(最初要表示的是此处的参考是

而不是fjk)。从上面的等式中,我们可以看到E{DGoP}可被认为是D′i_loss的线性组合,如图2中图解说明的。
尽管FODE最初被提出用来解决编码视频的最优化问题,但是我们已意识到E{DGoP}的简单线性表示在编码处理中所关注的MB级别优化任务上表现出有用的远见。在这种情况下,当它开始编码特定帧时,人们必须在它们如何影响E{DGoP}方面对于每个MB识别它们相应的重要性。为此,如果大多数(而不是全部)现有ED估算方式是“仅回顾”方法,则对于当前帧,除了它自身的EC失真度以外,它们基本估算由于GOP中每个先前帧的相应丢失引起的整体的过去(past)EP失真度,如图2所图示的。尽管最佳的ROPE方式精确地考虑来自所有过去的单独帧丢失事件的EP失真度,但是为了减少复杂度,SPDE方式仅考虑来自最后两帧中的每一帧的丢失的EP失真度。我们强调当在最优化帧的编码判定中被应用时,在每个帧能够精确地估算过去的EP失真的条件下,就象对于最优ROPE估算的情况一样,该“仅回顾”范例仍产生良好的帧间配合(synergy)。因为,在那种情况下,当最优化当前帧的编码判定时,不需要担心所引起的未来EP失真度,因为这将在后面帧的最优化中被精确地考虑。然而,在SPDE情况下,每个帧仅考虑来自最后两帧的有限的EP影响,这意味着在后面两帧之外,在优化剩余帧中将完全地忽略来自当前帧的EP失真。在这种情况下,不能再依靠“仅回顾”范例来提供良好的帧间配合。另一方面,图3中所示的“仅展望”方式尽管是有用的,但是它仅考虑后面帧中的EP失真度。因此,没有很好的说明停止过去的EP的帧内编码的优点,这损害了整体ED-RDO性能。
鉴于上面的分析以及来自FODE失真度模型的推动,我们提出一种新型的混合低复杂度ED估算方式,这种方式我们指定为HEED。类似于SPDE中的方式,HEED也对每个像素考虑来自某一数量的过去编码帧的确切过去EP失真度。然而,取代完全地忽略所有其它帧丢失事件的影响,在HEED中,我们引入帧级别EP因子近似来明确地说明从当前帧到GOP中的所有剩余帧的EP失真度,因此产生一种混合范例,其包括像素级别“回顾”和帧级别“展望”估算,如图4所示。
参考图4,图表400描绘了具有GOP结束410的一组帧(GOP),并且在该GOP中包括一系列帧,包括帧i-2 415、帧i-1 420、帧I 425和帧i+1 430。这四个帧415-430分别用垂直虚线435、440、445和450来表示。
现在考虑帧i 425。也就是,现在对帧i 425估算失真度。在这个实现方式中的失真度估算考虑三个不同的失真度源。第一,考虑帧i-2415的丢失对帧i 425(和GOP中的后续帧)的影响。第二,考虑帧i-1 420的丢失对帧i 425(和GOP中的后续帧)的影响。第三,考虑帧i+1 430的丢失对帧i+1 430(和GOP中的后续帧)的影响。
关于第一失真度源,实线460表示从帧i-2415直到帧i 425的丢失的失真度的传播。另外地,实线462(在中间用虚线示出以表示不确定的长度)示出了那个失真度继续传播到GOP结束410。如下面更全面所解释的,项w2,i-2是一个加权因子,其被分配给在帧i 425和后续帧处来自帧i-2415的丢失的失真度。这个加权被用来加权帧i 425处的失真度,以及加权在帧i 425之后的失真度的继续传播。
关于第二失真度源,实线470表示从帧i-2415直到帧i 425的丢失的失真度的传播。另外地,实线472(在中间用虚线示出以表示不确定的长度)示出了那个失真度继续传播到GOP结束410。如下面更全面所解释的,描述数个加权因子。项″1-w0,i-1″被用来在帧i 425处加权来自帧i-1420的丢失的失真度。项″w1,i-1″是一个加权因子,其被分配给在帧i+1 430处来自帧i-1 420的丢失的失真度,并且被用来加权在帧i+1 430处的失真度,以及加权在帧i+1430之后的失真度的继续传播。
关于第三失真度源,实线482(在中间用虚线示出以表示不确定的长度)示出了来自帧i+1 430的丢失的失真度,并且示出了那个失真度到GOP结束410的传播。如下面更全面所解释的,描述数个加权因子。″1″被分配给在帧i+1 430处来自帧i+1 430的丢失的失真度。项″w0,i+1″是一个加权因子,其被分配给来自帧i+1 430的丢失的失真度,并且这个加权被用来加权在GOP中帧i+1 430之后的所有后续帧处的失真度。注意,对于除了在帧i 425处考虑以外的失真度项,零在图表400中所示为加权。
注意,对于这种实现方式,第三失真度源起源于在对于帧i+1 430的差错隐藏中帧i 425的使用。具体地,这种实现方式假设使用运动拷贝的差错隐藏算法被用来隐藏帧i+1 430的丢失。因此,帧i 425的编码结果(也就是,运动矢量和重构)将影响帧i+1 430的丢失的EP分支。因此,当我们计算帧i的ED估算时,我们考虑帧i+1的丢失的EP分支。然而,实现方式可以使用其它形式的差错隐藏,并且该第三失真度源将仅被调节成说明不同的隐藏算法。例如,如果我们假设另一EC,例如帧拷贝,则取代帧i+1的丢失的EP分支,我们可以在帧i的EP计算中考虑帧i的丢失的EP分支。
如上所解释的,在图4的实现方式中,我们假设两个“回顾”帧。注意,所述推导可被容易地概括来适应任何其它数量的“回顾”帧,因此提供了复杂度可量测性。w0,i表示用于考虑在帧i的丢失右边的帧i丢失EP分支的加权因子,而w1,i和w2,i表示用于考虑在帧i丢失之后分别一帧或两帧处的帧i丢失EP分支的加权因子。注意,在该实现方式中的相同i的三个加权因子应当相加等于一,从而每个特定帧的丢失的完全EP分支在GOP中的所有帧的ED估算中被等效地计算刚好一次。在这种情况下,将所有帧的估算ED相加将产生整个GOP的ED的精确估算(明显地,如果整个GOP的ED的相加不感兴趣,则实现方式不必具有相加等于一的加权)。这在图5中得以图解说明。
参考图5,图解600示出了帧i+1的丢失的EP分支被包含在帧i、帧i+2和帧i+3处的ED估算中,其中所有的相应权重遵循图4的说明。实际上,图解600反映了刚描述的约束,即,在GOP中的所有帧的ED估算中,每个特定帧的丢失的完全EP分支实际上被等效地地计数刚好一次。
图5中的三个1’显示对于帧i+1的丢失的EP分支中的每帧的失真度项,相加的加权总是一。这意味着考虑GOP中的所有帧的ED计算,帧i+1丢失EP分支整体等效地被考虑一次。这刚好是我们对于整个模型期望的属性。回忆等式1示出了整个GOP的ED,等式2示出了每个EP分支的ED贡献。除了p以外,等式1中的加权γi(即,帧i的丢失的EP分支)总是一。对于p,它总是在模型中明确地揭露,并且已经从我们所谓的加权中分离出来。
再次参考图5,加权因子″w0,i+1″首先出现于帧i的ED计算中,以说明帧i+1丢失的EP分支。然后,加权因子“(1-w0,i+1)”出现于帧i+2的ED计算中,以说明帧i+1丢失的相同EP分支的影响。我们可以看到帧i+1丢失的EP分支中的帧i+2的失真度项被考虑两次,第一次在帧i的ED计算中,第二次在帧i+2的ED计算中。从整个GOP的ED计算来看,帧i+1丢失的相同EP分支中的每帧的失真度项应当最好仅被考虑一次(也就是,总加权应当是“1”)。现在,帧i+1丢失的EP分支中的帧i+2的失真度项首先在帧i的ED计算中被w0,i+1加权,然后在帧i+2的ED计算中被1-w0,i+1加权。因此,它的整体相加的加权是“1”。这对于模型来说是必要的设计约束。
注意,其它实现方式使用其它(不同)的设计约束。例如,加权可被假设为相加之和为一以外的数值。而且,实现方式不必使用加权因子。
接着,我们描述如何在每个特定帧处进行HEED ED估算。这里,为了简洁,我们假设在解码器处进行运动拷贝差错隐藏,其中当丢失一帧时,经由公知的运动补偿,使用来自先前帧中的并排放置的MB的运动矢量(MV)来隐藏当前帧。如此,当前帧MB的MV或编码模式也将影响下一帧中的并排放置的MB的EC失真度。注意,所提出的HEED方式本身在EC方案中没有特定限制。
假设,包含帧i中的像素k的MB被帧间编码,我们的HEED方法将像素的ED估算为 其中 (4)的三个右手边项分别对应于图4中的三个所考虑的EP分支,它们在等式5-7中可表示为如下。等式5-7是从先前的讨论、尤其是图4和5的讨论中得出的。
其中, αI→N=α+α2+...+αN.(8) 对于任意L≥0,D′i,i-L_lossk被定义为 注意,等式5-7中的“α”项表示“展望”部分。将如下进一步讨论等式5-7的“展望”方面。
等式5考虑帧i-2’丢失的EP分支在失真度计算中对当前帧i的影响,其包括从当前帧i到GOP的结束的帧的失真度项。后续帧的失真度项的考虑表示所谓的“展望”方面。
类似于等式5,等式6考虑帧i-1’丢失的EP分支在失真度计算中对当前帧i的影响,其包括从当前帧i到GOP的结束的帧的失真度项。后续帧的失真度项的包含再次表示所谓的“展望”方面。
等式7考虑帧i+1’丢失的EP分支在失真度计算中对当前帧i的影响,其包括从下一帧i+1到GOP的结束的帧的失真度项。此外,后续帧的失真度项的包含再次表示所谓的“展望”方面。
在各种实现方式中,给定帧(i)的解码器重构值基于先前帧(i-1)。在一种实现方式中,如果先前帧(i-1)丢失,则解码器已经使用差错隐藏算法重构了先前帧。为了重构当前帧,解码器然后将当前帧的运动矢量应用于先前帧的重构。在相同的实现方式中,如果i-2帧丢失,则解码器已经重构了该i-2帧,并且已经根据该重构的i-2帧重构了先前帧(i-1)。因此,解码器后续将当前帧的运动矢量应用于重构的i-1帧。
这里,α表示帧的EP因子。我们强调,在低复杂度的现有帧级别ED估算方案中,使用一个单一因子建模一个帧的EP影响是通常采用的实践,其中整体因子α可以包含各种因子,分别例如帧内MB、子像素预测、帧内预测和解块滤波。例如,一种简单的方案是设置α=1-β,其中β表示一帧的帧内MB百分比。
另一方面,由于我们执行正好与当一个帧丢失时解码器将进行的相同的EC和重构处理,所以精确地计算来自最后两帧的EP失真度,它的结果精度甚至比最优ROPE方式的精度更高。然而,类似的精确计算对于下一帧EC失真度是不可能的,因为

和有时甚至

在编码帧i时是不可用的。这样,我们使用帧i和帧i+1的初始参考来近似估算这一项。而且,注意,如果一个像素在帧内编码的MB中,则将没有来自最后两帧的EP失真度项,并且仅下一帧EC失真度项保留在上面的等式中,如下面所示。这里,DEP,i+1,i+1_lossk具有与(7)相同的表述。
在HEED中,关键难题通常是如何确定加权因子w0、w1和w2。首先,我们注意使用一个单一EP因子α来对实际复杂的EP处理建模可能不太精确。因此,通常期望均匀地在三个因子中分配权重。在这种情况下,通过在三个项上进行平均将减少整体建模差错。其次,我们的HEED估算将应用于所关注的ED-RDO ME和MS问题。在解码器处使用假设的运动复制EC,当与先前帧放在一起的MB是帧内MB时,它将被对待为与Skip-MB(跳过MB)相同,并且来自相邻MV的中间MV将被用于隐藏。在这种情况下,尽管当前帧MB的帧内编码优选地阻止现有EP过去,它也可以引起更多的下一帧EC失真度,并且因此得到比帧间模式编码更多的后面帧中的EP失真度,当帧间模式具有更强的灵活性来发现更好的MV以便产生较低的下一帧EC失真度。因此,w0与w1+w2之间的比率将直接影响重要的帧内/帧间模式选择,并且因此影响整个ED-RDO性能。从实验来看,对于GOP中的开始帧,有效的策略将对w0给出更多权重,对于结束帧,将对w0给出更少权重。注意,其它有效权重策略也是可能的。最后,我们采用的权重因子设置如下 已经描述了估算失真度的特定实现方式,我们现在参考图6,该图6示出了用于估算块的失真度的一般方法700。已经描述的该特定实现方式以及在本公开中描述的其它特定实现方式提供了一般方法700的实现方式。方法700包括估算数字图像的当前块的失真度测量(710)。估算(710)基于至少两个输入720和730。输入720是有助于先前块差错的当前块失真度。输入730是有助于先前块差错的当前块失真度。因此,估算(710)针对当前块,并且基于先前块差错。而且,估算(710)基于(1)回顾先前块差错以便确定先前块差错对当前块的影响,和(2)展望先前块差错对后续块的影响。
返回参考关于等式3-11描述的实现方式,结果E{Dik}后续可应用于任何基于ED-RDO的技术,以便优化前面提到的各种编码判定。例如,我们如下显示如何将它应用于ED-RDO ME和MS。图7中示出了完整的编码方案。
-对于运动估算 -对于模式选择 这里,mv*和mode*分别表示在帧n内对于块/MB i选择的最佳运动矢量和编码模式。(注意,现在i表示块索引,而n表示帧索引。)Rmv和R(mode)表示相应的编码率。例如,Rmv可以是指编码运动矢量仅必需的位,并且R(mode)可以是指被用来编码整个宏块的全体位。λMV和λMODE是相关的拉格朗日乘数。DDFD,i表示移位的帧差(DFD)。由于估算的DEP,i是MSE失真度,因此DDFD,i也具有MSE形式,如下面所示。
在实现方式中,使用等式14和15来计算等式12和13。依次,使用等式3-9和参考等式9讨论的近似估算来计算等式14。
如所示的,对于每个宏块编码模式,根据等式12来选择最佳运动矢量(如果必要)。在此之后,对于所有编码模式,根据等式13来选择最佳模式。
更远见的,我们可以看到,与所提出的一般混合范例进行比较,现有的基于像素的“仅回顾”和“仅展望”方式仅仅是分别具有覆盖所有过去编码的帧或者不覆盖任何帧的“回顾”帧的两个特殊情况。显而易见,该混合范例提供了一种经由在“回顾”估算中包括不同数量的过去帧来灵活地控制计算复杂度和估算精度之间的平衡的方式,因此通常更适宜应用于现实的视频流系统中,这可能具有彼此完全不同的复杂度约束。针对两种“回顾”帧情况的所有上述推导能够被容易地概括来适应任何其它数目的“回顾”帧。
最后,我们强调(3)给出了统计ED的估算,其中对EP失真度的权重是分组丢失率p。为了在分组丢失的情况下更有效地测量感知视觉质量,应当将比p更大的权重投入EP失真度上。由于我们的HEED估算基于FODE近似,因此仅考虑来自单个帧丢失事件对ED的影响,这与低复杂度感知ED度量中的情况相同。因此,(3)中分组丢失率p可容易地被任何适当感知权重代替,以便将所提出的HEED度量概括为与感知有损失的视频质量更紧密地相关。优于“仅展望”感知失真度度量,所提出的HEED度量是一种包括“回顾”和“展望”估算的混合解决方案。因此,它更精确地说明来自过去帧的EP,这在帧内/帧间选择方面导致更好的性能。
大范围的模拟结果显示HEED在GOP级别ED上实现了高估算精度。而且,当被应用于ED-RDO ME和MS时,HEED极大地优于其它现有的低复杂度解决方案。
本公开中描述的至少一种实现方式至少部分地激发自意识到针对不同的编码策略可以计算或估算宏块(或者其它单位)的期望失真度。期望失真度连同编码策略的比率可被在率失真度等式中用来计算编码策略的成本,并且各种不同的编码策略的成本然后可被用来选择编码策略以用以宏块。
尽管提到了宏块,但是在等级的各个级别处估算ED。不同等级级别的示例包括作为整体的帧、单个块、单个像素、或者甚至在子像素级别。
ED估算可被认为是针对GOP中的每个单个帧的ED的总和。对于每一帧,可以按各种方式来计算ED估算。
在估算帧的ED的第一示例中,每个帧的ED估算考虑先前帧的所有可能丢失事件。然后,ED估算基于下列两个因素(i)丢失当前帧本身的可能性和(ii)任何先前帧的丢失将对当前帧的期望失真度的影响。第二个元素基于以下事实如果运动补偿被用来编码当前帧,则先前帧的丢失可能影响当前帧的解码。这两个元素也说明下列事实如果当前帧丢失,则在作为差错隐藏处理的一部分的解码当前帧中可以使用先前帧。这是回顾实现方式。
在估算帧的ED的第二示例中,该帧的ED估算考虑(i)丢失下一帧的可能性和(ii)这种丢失(丢失下一帧)对所有未来帧的期望失真度的影响。该第二因素基于以下事实如果运动补偿被用来解码未来帧,则下一帧的丢失可能影响未来帧的解码。这是展望实现方式。
在估算帧的ED的第三示例中,该帧的ED估算考虑三个因素(i)丢失下一帧的可能性,(ii)仅丢失有限数量的先前帧的可能性,(iii)下一帧和有限数量的先前帧的丢失(丢失事件)将对所有未来帧的影响。该第三示例通常具有由上面等式描述的实现方式的特征。
参考图7,提供方法800来编码一个帧。在方法800的一种实现方式中,方法800包括接收视频信号;并且处理一系列嵌套循环中的视频,所述一系列嵌套循环包括对于每个GOP的循环、对于GOP中的每一帧的另一个循环、和对于该帧中的每个宏块的再一个循环。因此,方法800包括选择GOP(805);选择在所选的GOP内的帧(810);和选择在所选的帧内的MB(815)。在处理宏块中,对于每个模式使用循环。因此,方法800包括选择针对所选MB的模式(820)。
继续所述实现方式,对于所选的模式,如果所述模式是帧间模式,则使用等式12来确定MB的每个子块的最佳MV(825)。在一种实施方式中,MB是16×16,并且所述模式将MB分裂为一系列具有大小8×8(模式1,4个子块/MB)或者4×4(模式2,16个子块/MB)的子块。然后对于每个子块,使用等式13的括号在一起的部分来计算RD成本,并且对于MB相加这些子块RD值,以便得到MB的总RD成本(830)。注意,对于帧间模式和帧内模式两者执行操作830。
然后方法800确定MB的总RD成本是否是MB的最低RD成本(840)。如果是,则将最佳模式设置为当前选择的模式(840)。
方法800通过确定是否存在将要选择和处理的任何更多模式来对可能的模式进行循环(840)。结果,一旦在已经选择和处理所有模式之后退出操作840,方法800就确定该MB的最低总RD成本并且确定相关联的(最佳)模式。然后方法800用最佳模式和最佳MV来编码当前MB(845)。
继续所述实现方式,在编码所选的MB之后(845),方法800在所选帧中对剩余MB进行循环(850)。方法800然后计算将要在编码下一帧(i+1)中使用的数个变量(860)。所述变量包括两个中间解码器重构值(如在讨论等式9中更早讨论的)和当前(帧i)α(alpha)值。在一种实现方式中,在编码帧i+1中,帧i的α被用作针对帧(i+1)和其它帧的α的估算。这些变量被提供给使用所述变量的方法800的其它操作。在一种实现方式中,所述变量被提供给操作825和830,如图7中所示。在完成之前,方法800然后对任何剩余帧进行循环(865)和对任何剩余GOP(870)进行循环(870)。
参考图8,示出了系统900,其是来自图1的HEED编码器110的实现方式。系统900将输入数据提供给优化器910,该优化器910将模式选择和代码(例如MV)选择以及输入数据提供给编码器920,该编码器920根据所选的模式和代码来编码所述数据。优化器910包括控制器912、模式/代码选择器914和R-D成本估算器916,所有这些部件彼此通信。
在一种实现方式中,系统900执行(图7的)方法800。编码器920对于每个MB执行操作845,并且然后对于每一帧执行操作860(并且将输出信息提供回优化器910),而且优化器910执行剩余的操作。在优化器910内,(1)模式/代码选择器914执行操作825和835,(2)R-D成本估算器916执行操作830,以及(3)控制器912执行操作805-820、840、850和865-870。
因此,对于每一帧的每个MB,控制器912评估由模式/代码选择器914选择的模式/代码。所述评估基于由R-D成本估算器916提供的率失真度估算,并且更一般地,所述评估基于上述的失真度估算。所述评估导致为每个MB选择最佳的模式/代码,并且将最佳模式/代码信息提供给编码器920。编码器920对该帧的MB进行编码,并且将反馈信息提供给优化器910用以下一帧。
所描述的实现方式的特征和方面可应用于各种应用。应用包括例如用于诸如上述的编码器的预处理器。当然,预处理器可被合并到实际编码器。然而,此处描述的特征和方面可适用于其它应用领域。
此处描述的实现方式可以例如以方法或处理、装置或软件程序来实现。即使仅在单个形式的实现方式的环境中进行了讨论(例如,仅作为方法进行讨论),但是所讨论的特征的实现方式也能够以其它方式来实现(例如装置或程序)。装置可以例如以适当的硬件、软件和固件来实现。所述方法可以例如以装置(例如处理器,通常是指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备)来实现。
此处所描述的各种处理和特征的实现方式能够以各种不同的设施或应用来体现,具体地,例如与视频传输相关的设施或应用。设施的示例包括视频编码器、视频解码器、视频编解码器、网页服务器、蜂窝电话、便携式数字助理(“PDA”)、机顶盒、膝上型电脑和个人计算机。如将从这些示例中清楚的是,编码可以经由各种路径来发送,包括例如无线或有线路径、因特网、电缆电视线、电话线和以太网连接。另外地,如将会清楚的是,所述设施可以是移动的,并且甚至被安装在移动车辆中。
另外地,所述方法可以通过由处理器执行的指令来实现,并且所述指令可被存储在处理器可读媒介上,例如,集成电路、软件载体或者其它存储设备,例如硬盘、致密盘、随机存取存储器(“RAM”)或者只读存储器(“ROM”)。处理器也可以包括具有例如用于执行处理的指令的处理器可读媒介。
如将对本领域的普通技术人员显而易见的,实现方式也可以产生被格式化来承载信息(其可被例如存储或发送)的信号。所述信息可以包括例如用于执行方法的指令、或者由所描述的实现方式之一产生的数据。
已经描述了许多实现方式。然而,将会理解可以做出各种修改。例如,不同实现方式的元素可被组合、补充、修改或去除以产生其它实现方式。另外地,本领域的普通技术人员将会理解,其它结构和处理可替代所公开的那些,并且得到的实现方式将以至少基本相同的方式来执行至少基本相同的功能,以便实现与所公开的实现方式至少基本相同的结果。另外地,这些和其它实现方式可以通过本申请来预料并且在所附权利要求的范畴之内。
权利要求
1.一种方法,包括
确定(710)失真度值,该失真度值与画面系列中的特定画面的至少一部分相关联,其中该值基于(1)所述特定画面中的、归因于所述特定画面或者所述系列中的先前画面中的差错的失真度(720)和(2)所述序列中的后续画面中的、归因于所述特定画面或者先前画面中的差错的失真度(730)。
2.如权利要求1所述的方法,其中所述值进一步基于在所述系列中的所有后续画面中的、归因于所述特定画面或者所述系列中的先前画面中的差错的失真度。
3.如权利要求1所述的方法,其中所述画面系列通过帧内编码的画面来描绘。
4.如权利要求1所述的方法,其中所述特定画面中的失真度和所述后续画面中的失真度都归因于相同的差错。
5.如权利要求1所述的方法,其中
所述特定画面中的失真度归因于所述系列中的先前画面中的差错;和
所述后续画面中的失真度归因于所述特定画面中的差错。
6.如权利要求1所述的方法,其中基于所述后续画面中的失真度确定所述值包括通过量测所述特定画面中的失真度的至少一部分,近似所述后续画面中的失真度。
7.如权利要求6所述的方法,其中量测包括使用基于用于所述特定画面的代码而确定的量测因子。
8.如权利要求6所述的方法,其中量测包括使用基于被帧间编码的画面在所述系列中的百分比而确定的量测因子。
9.如权利要求8所述的方法,其中所述量测因子是基于被帧间编码的特定画面的百分比而确定的。
10.如权利要求1所述的方法,其中确定所述值基于(1)所述特定画面中的、归因于所述系列中的先前画面中的差错的失真度和(2)所述特定画面中的、归因于所述系列中的第二先前画面中的差错的失真度。
11.如权利要求1所述的方法,其中确定所述值包括使用小于一的权重加权至少一个失真度,从而对于所述系列中的多个画面执行所述方法不用不止一次地计数所述至少一个失真度。
12.如权利要求1所述的方法,其中确定所述值进一步基于所述系列中的画面中的、由所述画面的丢失和为了隐藏所述丢失的所述特定画面的使用引起的失真度。
13.如权利要求1所述的方法,其中
所述特定画面中的失真度归因于所述序列中的先前画面中的差错,和
所述特定画面中的失真度是由使用所述先前画面作为参考画面来帧间编码所述特定画面而产生的。
14.如权利要求1所述的方法,其中
所述值是基于被用于所述特定画面的所述至少一部分的特定代码(820)而确定的,和
所述方法进一步包括基于所确定的值评估(835)所述特定代码。
15.如权利要求1所述的方法,还包括
确定(820-830)与所述特定画面的所述至少一部分相关联的第二值,其中所述值与所述第二值都基于应用于所述特定画面的所述至少一部分的不同的代码;和
基于所述值与所述第二值之间的比较来评估(835)所述不同的代码。
16.一种装置,包括
率失真度成本估算器(916),其被配置成估算画面系列中的画面的至少一部分的失真度,所述估算基于(1)所述画面中的、由所述画面或者所述系列中的先前画面中的差错引起的失真度和(2)所述序列中的后续画面中的、由所述画面或者所述序列中的先前画面中的差错引起的失真度。
17.如权利要求16所述的装置,还包括控制器(912),用于基于所估算的失真度选择一代码以供在编码所述画面的所述至少一部分中使用。
18.一种装置,包括
用于确定画面系列中的画面的至少一部分的代码的部件(914);和
用于基于使用所确定的代码编码所述画面的所述至少一部分来估算所述画面的所述至少一部分的失真度的部件(916),所述估算基于(1)所述画面中的、由所述画面或者所述系列中的先前画面中的差错引起的失真度和(2)所述序列中的后续画面中的、由所述画面或者所述序列中的先前画面中的差错引起的失真度。
19.如权利要求15所述的装置,还包括用于基于所估算的失真度来评估所确定的代码的部件(912)。
20.一种处理器可读媒介,其上存储有用于促使一个或多个设备执行至少下列步骤的指令
确定失真度数量的指示,所述失真度与画面系列中的画面的至少一部分相关联,所述确定基于(1)所述画面中的、由所述画面或者所述系列中的先前画面中的差错引起的失真度和(2)所述序列中的后续画面中的、由所述画面或者所述序列中的先前画面中的差错引起的失真度。
全文摘要
根据一种实现方式,确定失真度值(710)。该值与画面系列中的特定画面的至少一部分相关联。该值基于所述特定画面中的、归因于所述特定画面或者所述系列中的先前画面中的差错的失真度(720)。该值也基于所述序列中的后续画面中的、归因于所述特定画面中或者先前画面中的差错的失真度(730)。
文档编号H04N7/50GK101595736SQ200780046236
公开日2009年12月2日 申请日期2007年6月27日 优先权日2006年12月15日
发明者华 杨, 吉尔·M·博伊斯, 魏晓慧 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1