用于画面组的并行多线程视频编码的i帧去闪烁的制作方法

文档序号:7737425阅读:448来源:国知局
专利名称:用于画面组的并行多线程视频编码的i帧去闪烁的制作方法
技术领域
本发明涉及视频编码,并且更具体地涉及视频被编码为画面组(GOP)情况下的I 帧闪烁伪像消除。
背景技术
在播放GOP编码视频时,对于同一场景中的GOP而言,恼人的跳动(annoying pulsing)或者所谓的闪烁伪像通常将在周期性的I帧处看到。尤其对于低比特率或中等比特率视频编码,非常明显地看到该I帧闪烁,这大大损害了编码视频的整体感知质量。原始的视频信号具有原本平滑的光流。然而,在质量差的视频编码之后,在编码视频信号中原来的光流将失真。然后,作为结果的、在编码帧上的时间不一致性/不连贯性将被感知为闪烁伪像。实际上,更经常在编码视频的静止的或低运动区域/部分处感知到闪烁。例如,几个连续帧可能共享相同的静止背景。因此,在这些帧上在静止背景中所有的位于同一位置的像素在原始输入视频中具有相同或相似的像素值。然而,在视频编码中,位于同一位置的像素可能从不同帧中的不同参考像素预测而来,并且因此在对残差进行量化之后,产生不同的重构值。在视觉上,在编码视频播放期间,在这些帧上增加的帧间差异将被感知为闪烁。这样,由于粗糙量化,对于低比特率编码或中等比特率编码而言,闪烁伪像更密集。而且,在I帧上比P帧或B帧上更明显地观察到闪烁伪像。这主要是因为对于相同的静止区域,在P帧或B帧中由帧间预测产生的预测残差通常比在I帧中由帧内预测或无预测产生的预测残差更小。因此,利用粗糙量化,I帧中重构的静止区域展示了更容易注意到的、与之前的P帧或B帧中位于同一位置的区域的差异,并且因此展示了更容易注意到的闪烁伪像。因此,如何减少I帧闪烁是大大影响整体感知视频编码质量的关键问题。大多数现有的基于编码器的I帧去闪烁机制被设计用于GOP顺序单线程视频编码情况,在该情况下,当编码I帧时,紧接在该I帧之前的帧已经被编码。因此,可以容易地使用重构的之前帧来导出当前帧的无闪烁参考,其然后可以被用于当前I帧的去闪烁。图1图示了常用的用于GOP顺序单线程编码的两回合(Pass)I帧去闪烁方法。在此情况下,在编码I_next 8之前,P_last 4已经被编码,由此总可以被用来导出I_next 8 的无闪烁参考以用于其去闪烁。由于P_last 4紧接在I_next 8之前,因此通常这两帧是高度相关的,并且因而所导出的无闪烁参考通常很好地用于去闪烁。使用多编码线程而不使用一个单线程,是用于在实时视频编码系统中大大加速计算密集的视频编码处理的常用的有效并行化策略。尽管在实践中可以以许多不同的方式来采用多线程,一种直接的并且因而通常被采用的方法是使多线程分别且同时编码多个G0P。 这是用于GOP并行编码的情形。注意,贯穿该说明书,术语“GOP并行,,和“多线程,,将被互换地使用,并且“G0P顺序”和“单线程”将同样地被互换地使用。多线程编码使I帧闪烁消除成为比在GOP顺序单线程编码的情况下的I帧闪烁消除更具挑战的任务。在单线程编码中,当编码I帧时,紧接在其之前的帧已经被编码,可以容易地采用该之前帧的重构来导出用于当前I帧的去闪烁编码的良好的无闪烁参考(例如,经由用于第一编码回合的穷尽性(exhaustive)或简化P帧编码)。然而,在GOP并行多线程编码情况下,最有可能的是当编码I帧时,紧接在其之前的帧尚未被编码,这是因为这两帧可能属于两个不同的G0P,而这两个不同的GOP被两个不同的编码线程编码。在此情况下,一种解决方案是使用最靠近当前I帧的之前GOP中的编码帧来产生其无闪烁参考以用于去闪烁。然而,如果该帧距当前帧太远使得这两帧没有很好地相关,则可能不能从该帧中导出良好的无闪烁参考,因而可能不能实现合适的闪烁消除。通常,通过适当地修改编码处理或者通过在解码器处增加一些有效的后处理,可能消除或减少I帧闪烁以及任何其它编码伪像。然而,在实际的视频编码应用中,基于后处理的去闪烁通常不是好的解决方案,这是因为编码视频比特流可能被来自大量不同制造商的解码器/播放器解码,所述大量不同制造商中的一些可能没有采用该特定的后处理技术 (例如,为了降低产品成本)。

发明内容
提出了一种编码视频的方法,其中形成并在以并行线程编码多个画面组(GOP)。每个编码GOP具有一个初始的I帧以及接下来的一系列P帧。每个I帧被利用从之前GOP的最靠近的编码帧导出的第一无闪烁参考来进行去闪烁编码,而该之前GOP的一系列P帧中的最后P帧被利用从去闪烁编码的I帧导出的第二无闪烁参考来进行去闪烁编码。可以在编码I帧时采用小量化参数(QP)以便非常接近该第一无闪烁参考。可以在编码最后的P 帧时采用中等的QP。在该方法中,所导出的第一无闪烁参考可以由一个回合的简化P帧编码来生成。该简化的P帧编码可以包括以下步骤对于在I帧和之前GOP的最接近的编码帧之间的低相关性,应用较大的运动搜索范围。该简化的P帧编码还可以包括以下步骤对于在I帧和之前GOP的最接近的编码帧之间的高相关性,应用较小的运动搜索范围;或者包括在模式选择中放弃跳跃模式检查,其中可以通过总的帧间复杂度、或者可以通过总的帧间复杂度来确定该相关性。简化的P帧编码还可能包括以下步骤仅检查P 16x16模式,使用较小的运动搜索范围,编码当前帧MB和预测参考MB之间的失真匹配,以及在RDO-MS中修改RD成本,由此防止或阻止跳跃模式和帧内模式。


现在将参考附图借助示例来描述本发明,在附图中图1是现有的用于GOP顺序单线程编码的两回合I帧去闪烁方法的示意图;图2是根据本发明的用于GOP并行多线性编码的I帧去闪烁解决方案的示意图;图3是图2的多线程I帧去闪烁解决方案的作为结果的去闪烁性能的曲线图;图4是多线程I帧去闪烁框架的框图;图5是示出来自图4的去闪烁缓存器的合适参考帧加载的框图;图6是示出将当前帧编码结果缓存到图4的去闪烁缓存器中的框图;图7是示出I_neXt MB的去闪烁编码的框图;以及图8是示出P_last MB的去闪烁编码的框图。
具体实施例方式在GOP并行多线程视频编码情形下,GOP以IDR帧开始并且以P帧结束。注意,尽管GOP间预测(即,跨GOP边界的预测)产生或多或少改进的编码效率,但是难以在该GOP 并行多线程编码架构下支持GOP间预测。因此,上面的假设一般常常保持为真。不丧失一般性,假设每个GOP仅具有一个I帧,其也是其第一帧。在以下描述中,关注点在于同一场景中的两个连续GOP的编码,以及因而关注点在于第二 GOP中的第一 I帧的去闪烁。第一 GOP和第二 GOP中的最初I帧分别作为“1_ curr"以及“ I_next”。我们将第一 GOP中的最后P帧表示为“P_last”。不丧失一般性,假设两个GOP分别由两个不同的编码线程编码,并且当一个线程将要开始编码Ijext时,另一线程仅仅部分地编码了之前G0P。具有最高显示顺序的第一 GOP中的编码帧被表示为“P_ curr”。注意,P_curr帧实际上可以是除了 I帧之外的任何帧类型。这里,使用P_curr仅仅是为了表示方便。还注意,P_curr仅仅是之前GOP中最接近I_next的编码帧。这些表示如在图1和图2中图示。参考图2,在GOP并行多线程编码的情况下,由于两个GOP可能由两个不同的编码线程分别编码,因此,在编码I_next 18时,P_last 14非常有可能尚未被编码。因此,1_ next 18去闪烁不得不诉诸于最接近的之前编码帧,即P_CUrr 12。这里的挑战在于由于 P_curr 12&P_last 14距I_neXt 18更远,因此其可能具有与I_neXt 18的非常低的相关性。在该情况下,如何从P_currl2中导出用于I_next 18的良好的无闪烁参考是比从P_ last 14中导出良好的无闪烁参考更为困难的任务。在至少一个实现方式中,提出了用于解决该问题的新的简化P帧编码方案。如下面详细解释的,所提出的方案与之前的简化P帧编码方案具有许多显著差异,其对于良好的多线程去闪烁性能是重要的。除了 I_next 18的新的去闪烁编码之外,我们的解决方案中的第二种技术是所提出的P_last 14的去闪烁编码。在多线程编码中,非常有可能当一线程将要编码当前GOP 中的最后帧(即,P_last 14)时,下一 GOP中的第一 I帧(即,I_next 18)已经被另一线程编码。在此情况下,我们提出同样进行P_last 14的去闪烁编码。注意,在Ijext 18的去闪烁编码中,经常将更多的比特分配给该帧,使得可以利用小量化参数(QP)来编码I_next 18,并且因而I_next 18非常靠近其无闪烁参考。然而,在新的P_last的去闪烁编码中,不再期望非常接近无闪烁参考。这是因为尽14和I_next 18可能高度相关,但 P_curr 12*P_last 14可能并且因而在时间上不连贯,即在P_lastl4的之前帧和I_next 18之间可能存在闪烁伪像。因此,在该情况下,对于P_last 14而言,更优选地在其之前的编码帧和编码I_next 18之间进行很好的权衡以得到最佳的整体去闪烁性能,而不是非常接近从其之前的编码帧或编码I_next 18导出的无闪烁参考。因此,在所提出的P_last 14 的去闪烁编码方案中,仍经由与在I_next去闪烁编码中相同的新提出的简化P帧编码从编码I_neXt 18中导出其无闪烁参考。然而,仅将中等量的附加比特进一步分配
14。因此,作为结果的重14表示其之前帧和I_next 18的适当混合,其产生它们之间的更平滑的过渡。在图2和图3中分别图示了所提出的整体去闪烁解决方案以及期望的去闪烁性能。在图4-8中进一步详细解释了所提出的去闪烁方案的实现方式。图4示出了所提
5出的用于编码每个帧的方案的整体流程图。这示出了由所有的编码线程分别进行所提出的帧编码方案。在步骤20,当一线程正在编码一帧时,其首先检查是否是合格的(qualified) P_last 14或I_next帧18。如果是,则该线程将从defIickerJxiffer (去闪烁缓存器)中加载适当参考帧以用于该帧的去闪烁编码。在该实现方式中,deflickerjxiffer是重要的并且是有用的缓存机制,其有助于所有的多个线程缓存并且共享它们的编码结果以用于I_next 18或?_1&计14去闪烁。在我们的当前实现方式中,defIickerJxiffer包括三个部分l)deflicker_var_buffer 每个编码线程一个,由线程ID来编制索引,记录线程的编码状态变量,例如,当前的编码帧号(由"CurrFrmNumber”表示),从当前帧到GOP结束的累计的帧编码复杂度(由“SumComplexityFromCurrFrmToGOPEnd”表示)等。2) deflicker_frm_buffer 所有线程一个,缓存最近的P_last或I_next及其相关的其它信息以用于可能的去闪烁编码;3)prev_frm_buffer 每个编码线程一个,对于每个线程缓存具有最高显示顺序的编码帧及其相关的其它信息。在图4-8中解释这些缓存器的使用。注意,为了简洁,未示出缓存器的初始化。在步骤24,传统的MB编码处理采取原始视频帧作为目标帧,并且然后通常基于最小化的率失真(RD)成本准则从所有的MB编码模式选项(即,包括所有的帧间和帧内预测模式)中选择最佳编码模式。这是所谓的RD优化模式选择(RDO-MS)。然后,将利用所选择的最佳编码模式将MB编码为输出比特流。在步骤78和96中也解释了分别用于I帧和P帧中的MB 的传统的MB编码。对于步骤26,在图8中详细解释了 P_last MB的去闪烁编码。在图5 中的步骤42、44、46、48和49中以及在图6中分别解释了其参考帧缓存器加载和更新。图 6提供了步骤28的细节,其中,如图5中的步骤49、44和40中所示地管理所涉及的变量 SaveCurrFrm0图5解释了从deflicker_buffer加载适当参考帧。“curr_thread_ID”是标识当前编码线程的索引。在步骤30,“SUmCOmplexityTOG0PEnd”是每个帧的被用来度量当前帧和i_next之间的相关性的量。在当前实现方式中,两个连续帧之间的复杂度被计算如下。Cmpl = Rmv+MAD(1)这里,Cmpl表示后一帧的复杂度。瓦_表示一帧中所有MB上的平均MV编码比特, 而Gi万表示一帧中所有MB上的MB运动估计误差的平均的亮度绝对平均差(MAD)。注意, 图6中的THl和图7中的TH2是与特定复杂度度量有关的阈值。利用(1)中的复杂度度量, THl = 250,TH2 = 20。可以看到更高的复杂度意味着帧之间更低的相关性。图5示出了当编码P_last 14时该处理检查I_next 18是否已被编码(步骤32、 34)。如果是,则在步骤36等待P_last编码完成,然后从deflickerjxiffer加载I_neXt 18 (步骤40)以用于P_last 14的去闪烁编码。否则,P_last 14将在步骤42和44经历传统的P帧编码处理。当编码I_next时,首先在步骤38检查P_last是否可用。如果是,则加载P_last以对Ijext进行去闪烁编码(步骤40)。否则,在步骤42进一步检查有用的 P_curr是否可用。这里,有用的P_curr被定义为具有SumComplexityToGOPEnd < THl的P_ curr帧,即可能与I_next很好地相关的P_curr。如果是,则在步骤44将加载P_curr以用于 I_neXt去闪烁。在步骤46,由于多线程编码,在步骤46—个线程正在编码P_last的同时,可能将i_next分配为另一线程,并且已经被编码、或者尚未开始编码、或者正在编码中。步骤46检查I_neXt是否正在编码中。如果是,则当前的编码线程将等待,直到其它线程结束 I_neXt编码。因此,在步骤46之后,I_next已经被完全编码或者尚未开始编码。然后,步骤 48将检查哪种情况为真。如果I_next已经被编码,则将前进到步骤49。否则,前进到步骤 42。如在步骤49中所解释的,当Ijext被编码,将利用其来生成用于当前P_last帧的MB 去闪烁编码的无闪烁参考。在图5中,将原始的之前帧和重构的之前帧表示为PrevFrmOrig 和PrevFrmRecon。关于P_last MB编码,在图8的步骤82中使用PrevFrmRecon,并且在步骤92中使用这两者来计算P 16x16预测参考MB所包含的重构失真。Def IickerCurrFrm是在当前实现方式中所使用的标志,其指示去闪烁编码是否被用于当前帧编码。SaveCurrFrm 是图6的步骤50中所检查的用于更新defIickerJxiffer的标志。图6示出了利用当前帧编码结果的deflickerjxiffer更新。在步骤50,如果 SaveCurrFrm 为真(true),则在步骤 54,I_next 18 或 P_last 14 帧将记录在 deflicker_ frm_buffer中以便稍后分别用于P_last 14或I_neXt 18的去闪烁编码。否则,如果当前编码帧到目前为止是对于I_next去闪烁最有用的帧,则将在步骤52、53将当前帧结果记录在prev_frm_buffer[curr_thread_ID]中,其稍后将被加载为用于I_next去闪烁的P_ curr。注意,仅当满足图6中的所有四个条件时,才需要缓存当前帧结果。图7示出了 I_next MB的去闪烁编码。这里,QP表示当前MB编码QP。QP_PrevFrm 表示所加载的参考帧的MB平均QP。ME_range表示运动矢量搜索范围。这里,ME_SAD表示运动估计后所选择的运动矢量的预测残差的绝对差之和。TH3=10。该条件是在步骤60 和62检查MB是运动的还是静止的。QP_CurrMB表示从率控制计算的当前MB编码QP。注意,在率控制中,将向Ijext分配更多比特以便确保其低QP编码,从而使得编码的I_next 非常接近其无闪烁参考。在图7中,如果P_last在步骤63被用来生成用于I_neXt去闪烁编码的I_next无闪烁参考,则将预期去闪烁编码与如在步骤64和78中所示的GOP顺序单线程方案相同。该情况实际上表示GOP并行多线程编码的最佳可实现去闪烁性能。否则, P_CUrr而不是P_last将被用来生成无闪烁参考并被用于I_next的去闪烁编码,在步骤 66-76中对其进行解释。图7示出了新提出的简化P帧编码的至少一个实现方式的细节,并且该实现方式包含许多与用于单线程编码的简化P帧编码方案的显著差异。将这些差异总结如下1)自适应的ME搜索范围如果P_curr与I_neXt高度相关,则使用较小的搜索范围(例如,5)。否则,使用较大的搜索范围(例如,10)。2)在简化的RD优化模式选择(RDO-MS)中无跳跃模式检查3)如果当前MB不是静止MB或者如果经由RDO-MS选择了帧间模式,总使用具有质量匹配QP的P 16x1 6模式来生成无闪烁参考。除了这些差异之外,步骤66-76中的经由P_curr的I_neXt去闪烁编码遵循与传统的单线程I帧去闪烁编码几乎相同的方案。简言之,如果MB的ME_SAD大于阈值并且最佳RD优选模式是帧内预测模式,则MB被识别为高运动,并且因此是闪烁不敏感的MB,对于其而言,去闪烁编码不是必须的,并且因此其将以如步骤90中所示的将原始MB取为目标MB 的传统方式编码。否则,MB被识别为低运动,并且因此是倾向于闪烁的MB,其将被编码以便去闪烁。在此情况下,将如步骤92中所示地首先生成无闪烁参考MB,然后其将被取为用于当前MB编码的目标MB。图8示出了 P_last MB的去闪烁编码。与图7中I_neXt MB的去闪烁编码的差异在于1)当P_last紧接在I_neXt之前时,它们之间的高度相关区域必定是低运动的从而是倾向于闪烁的。因此,在步骤80设置较小的ME搜索范围是合适的。类似于步骤66-76, 步骤84-90遵循与传统的单线程I帧去闪烁编码几乎相同的方案。2)如步骤92和94中所示,来自P_last MB去闪烁的率控制的QP_CurrMB具有中间值。这是因为,如先前讨论的,P_last的中间编码质量是优选的,从而为其重构产生编码 I.next及其之前的编码帧之间的适当权衡或混合。3)在实际编码的第二回合中,不使用跳跃模式。相反,将在步骤96使用安全跳跃 (Safe_Skip)模式。安全跳跃模式实际上是具有与跳跃模式相同的MV的替代P 16x16模式,即不招致MV编码比特。注意,在该模式中,将编码预测残差,从而防止跳跃模式编码的不期望的差质量。跳跃模式是大多数的最近视频编码标准(例如,H.264/AVC)中的标准化的MB编码模式,其表明将使用帧间预测来编码MB,然而其将简单地使用依据运动补偿而从相邻的编码MB的运动矢量预测的精确运动矢量,并且不包括预测残差的编码。因此,其表示最少比特消耗的MB编码模式,然而,往往是所有编码模式中具有最大编码失真的模式。 安全跳跃模式是我们提出的对于跳跃模式的新的替代模式,其使用与跳跃模式的运动矢量相同的运动矢量,然而,其与P16xl6模式一样地编码预测残差。因此,与其它帧间预测模式 (例如P16x8、8x16、8x8、8x4、4x8、4x4等)相比,其在运动矢量编码上不耗费比特,而同时由于所包含的残差编码而产生类似的编码失真。而且,注意,在P_last或I_neXt MB无闪烁生成中的简化RD0-MS都包含每个候选模式的修改后的RD成本,这对于最终的显著的和可靠的去闪烁性能而言也是关键的。基本上,经由在RDO-MS中修改RD成本,更阻止跳跃模式和帧内模式,而帧间预测模式是更受欢迎的。这证明是用于实现更好的去闪烁性能的有效手段。具体地,在无闪烁参考生成中,对于增加的偏好和对于P_last MB而言,帧间模式的RD成本被乘以0. 7,在无闪烁参考生成以及实际编码两者中,对于降低的偏好,帧内模式的RD成本被乘以2. 5。最后一点也很重要,如先前所述,率控制必须与I_next 18*P_last 14的去闪烁编码良好地协调。基本上,在帧级别的率控制中,需要将更多比特分配给I_next去闪烁,而需要将中等量的比特分配给P_last去闪烁。这通常可以通过在进行帧级别比特分配时为帧分配合适的QP偏移来实现。在我们的当前实现方式中,我们分别向Ijext和P_last分配-6和-2的QP偏移。已经进行了实验来评估上面提出的GOP并行多线程去闪烁解决方案的性能。结果表明所提出的方案能够有效的降低多线程编码情况下的I帧闪烁伪像,而所招致的附加计算复杂度不对实时编码的实施施加严重挑战。尤其,我们发现较短的GOP长度(例如,<60) 比较大的GOP长度(例如,>90)更有希望得到更好的去闪烁性能,这是因为利用较短的 GOP长度,P_curr 12和I_neXt 18之间的间距也更可能地短,这对于良好的去闪烁而言是高度受欢迎的。这里,提供了具有特定特征和方面的一个或多个实现方式。然而,所描述的实现方式的特征和方面还可以被适配于其它实现方式。例如,可以使用一个、两个、或多个回合来执行实现方式,即使这里参考特定数目的回合来进行描述。另外,QP可以对于给定画面或帧而变化,诸如例如,基于MB的特性而变化。尽管这里描述的实现方式可能是在特定背景下描述的,但是这样的描述将决不应被当作将所述特征和构思限制于这样的实现方式或背

ο这里描述的实现方式可以以例如方法或处理、装置、或软件程序来实现。即使仅仅在单个实现方式形式的背景下进行讨论(例如,仅作为方法讨论),所讨论的实现方式或特征也可以以其它形式(例如,装置或程序)来实现。装置可以以例如适当硬件、软件和固件来实现。方法可以以例如在诸如例如计算机或其它处理设备的装置中实现。另外,方法可以通过被处理设备或其它装置执行的指令来实现,并且这样的指令可以存储在诸如例如⑶ 的计算机可读介质上、或其它计算机可读存储设备上或者可以存储在集成电路上。此外,计算机可读介质可以存储由实现方式产生的数据值。如对于本领域技术人员而言明显的,实现方式还可以产生被格式化为承载可以例如被存储或传输的信息的信号。该信息可以包括例如用于执行方法的指令、或者由所描述的实现方式之一产生的数据。另外,许多实现方式可以在编码器、编码器的预处理器、解码器、或解码器的后处理器中的一个或多个中实现。此外,根据该公开可预期其它实现方式。例如,通过组合、删除、修改或补充所公开的实现方式中的各种特征,可以创建另外的实现方式。以下列表提供了各种实现方式的简短列表。该列表不意图是穷举的而仅仅是将许多可能实现方式中一小部分的简短描述提供如下1. 一种利用多个编码线程对GOP并行实时编码的视频编码器,其通过利用从之前 GOP中的最靠近的编码帧导出的无闪烁参考来首先对I帧进行去闪烁编码、并且然后利用从去闪烁编码的I帧导出的无闪烁参考来对该之前GOP中的最后P帧进行去闪烁编码,来降低I帧闪烁。2.在实现方式1中,在第一 I帧的实际编码中使用小QP以便非常接近其无闪烁参考,而在最后P帧的实际编码中使用中等QP以便为编码帧产生下一 GOP中的编码I帧和当前GOP中的之前编码帧的权衡混合。3.在实现方式1中,在一帧的去闪烁编码中,经由简化P帧编码的一个回合生成无闪烁参考。4.在实现方式3中,简化P帧编码包含⑴对于当前I帧和之前GOP中最靠近的编码帧之间较低的相关性,较大的运动搜索范围,反之亦然,( )在模式选择中无跳跃模式检查,(iii)RDO-MS中修改的RD成本阻止跳跃模式和帧内模式。5.在实现方式1中,使用总的帧间复杂度来确定当前I帧和之前GOP中最靠近的编码帧之间的相关性级别。6.在实现方式1中,对于GOP中最后P帧的去闪烁编码,在实际MB编码中,使用如在本公开的一个或多个实现方式中定义的安全跳跃模式,而不是传统的跳跃模式。7.在实现方式1中,采用如在本公开的一个或多个实现方式中定义的多线程缓存和通信机制,其分离地对于每个编码线程缓存具有GOP中最高显示顺序的重构编码帧、对于所有线程缓存GOP的重构的最后P帧和最初I帧。
9
8.从所描述的实现方式中任一个产生的信号。9.根据在本公开中描述的一个或多个实现方式创建、组合、存储、传输、接收和/ 或处理用于I帧和P帧的视频编码信息以便降低闪烁。10. 一种能够根据所描述的实现方式之一或者与所描述的实现方式之一沟通地操作的设备(诸如例如编码器、解码器、预处理器、或后处理器)。11. 一种设备(例如,计算机可读介质),其用于存储根据在本公开中描述的一个或多个实现方式的I帧或P帧之一或编码、或者执行I帧或P帧的编码的一组指令。12. 一种信号,其被格式化为包括涉及根据在本公开中描述的一个或多个实现方式的、I帧或P帧的编码的信息。13.在实现方式12中,其中信号表示数字信息。14.在实现方式12中,其中信号是电磁波。15.在实现方式12中,其中信号是基带信号。16.在实现方式12中,其中信息包括残差数据、运动矢量数据、以及参考指示符数据中的一个或多个。17. 一种对于视频的多线程编码降低闪烁的处理、或者一种用于实现对于视频的多线程编码降低闪烁的处理的设备、或者一组用于实现对于视频的多线程编码降低闪烁的处理的指令。所描述的实施例提出了用于GOP并行多线程视频编码的有效的I帧去闪烁方案。 所提出的方案可以降低紧接在前的重构帧的不可用性对当前I帧去闪烁的影响。该方案也是高效的,这是因为其招致少量的附加计算和存储器成本,并且因此在实时视频编码系统中很好地适应。总之,这里提出了适当地改变编码器的手段及其方法,其中,以更直接和一般的方式进行编码以便解决上面讨论的各种伪像消除问题。尽管一些方案对于所有的帧内编码视频(利用运动JPEG2000标准或者利用 H. 264/AVC标准的)都解决去闪烁问题,但是本公开中的至少一个实现方式提供与主流视频编码标准(即,公知的具有运动补偿和变换编码的混合编码模式)兼容的去闪烁技术范例。此外,本申请涉及按GOP编码的视频,其中每个GOP以I帧开始。
权利要求
1.一种编码视频的方法,包括以下步骤形成多个画面组(GOP);开始GOP的并行线程的多个编码,每个GOP具有初始的I帧以及接下来的一系列P帧;利用从之前GOP的最靠近的编码帧导出的第一无闪烁参考来对每个I帧进行去闪烁编码;以及利用从去闪烁编码的I帧导出的第二无闪烁参考来对该之前GOP的一系列P帧中的最后P帧进行去闪烁编码。
2.如权利要求1所述的方法,其中,在编码I帧时采用小量化参数(QP)以便非常接近该第一无闪烁参考。
3.如权利要求1所述的方法,其中,在编码最后的P帧时采用中等的QP。
4.如权利要求1所述的方法,其中,所导出的第一无闪烁参考是由一个回合的简化P帧编码生成的。
5.如权利要求4所述的方法,其中,该简化的P帧编码包括以下步骤对于在I帧和之前GOP的最接近的编码帧之间的低相关性,应用较大的运动搜索范围。
6.如权利要求4所述的方法,其中,该简化的P帧编码包括以下步骤对于在I帧和之前GOP的最接近的编码帧之间的高相关性,应用较小的运动搜索范围。
7.如权利要求4所述的方法,其中,该简化的P帧编码包括在模式选择中放弃跳跃模式检查。
8.如权利要求4所述的方法,其中,简化的P帧编码包括以下步骤仅检查P16x 16 模式,使用较小的运动搜索范围,编码当前帧MB和预测参考MB之间的失真匹配,以及在 RDO-MS中修改RD成本,由此防止或阻止跳跃模式和帧内模式。
9.如权利要求5所述的方法,其中,通过总的帧间复杂度来确定相关性。
10.如权利要求6所述的方法,其中,通过总的帧间复杂度来确定相关性。
全文摘要
提出了一种编码视频的方法,其中形成并在并行线程中编码多个画面组(GOP)。每个编码GOP具有初始的I帧以及接下来的一系列P帧。每个I帧被利用从之前GOP的最接近的编码帧导出的第一无闪烁参考来进行去闪烁编码,而该之前GOP的一系列P帧中的最后P帧被利用从去闪烁编码的I帧导出的第二无闪烁参考来进行去闪烁编码。
文档编号H04N11/04GK102217315SQ200980145004
公开日2011年10月12日 申请日期2009年11月10日 优先权日2008年11月12日
发明者杨华 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1