专利名称:使用内插滤波器及偏移的数字视频译码的制作方法
技术领域:
本发明涉及数字视频译码,且更明确地说,涉及使用内插滤波器及偏移的视频译码技术。
背景技术:
可将数字视频能力并入到各种各样的装置中,所述装置包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数字相机、数字记录装置、视频游戏装置、视频游戏机、蜂窝式或卫星无线电话等。数字视频装置实施例如在由 MPEG-2、MPEG-4或ITU-T H. 264/MPEG-4第10部分高级视频译码(AVC)定义的标准或其它标准中描述的视频压缩技术等视频压缩技术,以更高效地发射及接收数字视频信息。视频压缩技术可执行空间预测及/或时间预测以减小或去除视频序列中固有的冗余。帧内译码依赖于空间预测来减小或去除给定经译码单元内的视频块之间的空间冗余。帧间译码依赖于时间预测来减小或去除视频序列的连续经译码单元中的视频块之间的时间冗余。对于帧间译码,视频编码器执行运动估计及补偿以在参考单元中识别与待编码单元中的块紧密匹配的预测块,且产生指示经编码块与预测块之间的相对位移的运动向量。经译码块与预测块之间的差异构成残余信息。因此,经帧间译码的块可由一个或一个以上运动向量及残余信息来表征。在一些译码过程中,运动向量可具有分数像素值,所述分数像素值准许视频译码器以高于整数像素值的精度来追踪运动。为了支持用分数像素值来识别预测块,编码器对参考单元应用内插操作以产生子像素位置(例如四分之一像素或半像素位置)处的值。 H. 264标准指定固定内插方案针对子像素位置的使用。在一些情况下,可选择不同内插滤波器以改进译码效率及预测质量。举例来说,编码器可在选择性基础上应用固定内插滤波器或自适应内插滤波器的不同集合。而且,为了进一步改进预测质量,编码器在内插之后可向子像素位置值加偏移。
发明内容
一般来说,本发明描述用于使用内插滤波器及偏移来编码数字视频数据的技术。 编码器可经配置以基于针对先前所编码的视频单元(例如帧或切片)而获得的历史内插结果来选择用于子像素精度运动估计的内插滤波器。编码器还可经配置以在内插之后基于参考单元与待译码单元之间的单元及/或块差异来计算偏移并将偏移指派给子像素位置。可在运动估计之前执行偏移的所述计算及指派。此外,运动估计可经细化,以使得运动搜索考虑先前已加了偏移的子像素位置,并评估具有非零偏移的子像素位置。在一些情况下,可在单个编码遍次中执行针对给定单元的内插滤波器选择、偏移计算及/或细化运动估计。编码器在一些实例中可累加每一单元上的每一内插滤波器及每一子像素位置的误差,使得编码器可在给定一个或一个以上先前所编码单元的历史信息的情况下,选择在每一子像素位置处提供最低内插误差的内插滤波器。在一个实例中,本发明提供一种视频编码方法,所述方法包含在针对当前视频单元执行运动估计之前,使用选定内插滤波器来内插参考视频单元的子整数像素;在针对所述当前视频单元执行运动估计之前,将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素;以及基于所述参考视频单元使用运动估计来编码所述当前视频单元的块。在另一实例中,本发明提供一种视频编码设备,所述设备包含经配置以进行以下操作的视频编码器在针对当前视频单元执行运动估计之前,使用选定内插滤波器来内插参考视频单元的子整数像素;在针对所述当前视频单元执行运动估计之前,将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素;以及基于所述参考视频单元使用运动估计来编码所述当前视频单元的块。在额外实例中,本发明提供一种计算机可读存储媒体,所述计算机可读存储媒体编码有用于致使可编程处理器进行以下操作的指令在针对当前视频单元执行运动估计之前,使用选定内插滤波器来内插参考视频单元的子整数像素;在针对所述当前视频单元执行运动估计之前,将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素;以及基于所述参考视频单元使用运动估计来编码所述当前视频单元的块。在一些情况下,编码所述块可包含对所述块执行运动估计仅一次,使得在单个遍次中执行编码。可基于一个或一个以上先前所编码的视频单元的历史内插结果来选择内插滤波器集合。所述内插滤波器对应于相应的子整数像素,且所述内插滤波器针对所述子整数像素中的至少一些子整数像素包括不同的内插滤波器。所述偏移可在帧基础或块基础上确定。附图和以下描述中陈述一个或一个以上实例的细节。将从描述及图式且从所附权利要求书中明白其它特征、目标及优点。
图1为说明实例视频编码及解码系统的框图。图2为说明经配置以用内插及偏移来执行视频编码的视频编码器的实例的框图。图3为说明经配置以解码由图2的编码器编码的视频数据的视频解码器的实例的框图。图4为说明与预测性数据相关联的整数像素位置及与经内插预测性数据相关联的子整数像素位置的概念图。图5到图7为说明具有偏移值的指派的参考单元的整数像素位置的概念图。图8为说明视频编码器用内插及偏移来编码视频数据的实例操作的流程图。图9为说明用于识别用于历史单元的内插滤波器的最佳集合以计算用于当前单元的子像素的经内插值的实例方法的流程图。
具体实施例方式本发明描述用于使用内插及偏移来编码数字视频数据的技术。举例来说,编码器可经配置以选择内插滤波器,并将偏移指派给参考视频单元中的子像素位置,以支持对待译码单元的运动估计。经译码单元可为(例如)包括例如宏块等视频块的视频帧或切片。 滤波器及偏移可先于对给定单元的运动估计而基于一个或一个以上先前经译码的单元的历史内插结果来进行选择,使得可在单个遍次中执行译码。因此,在一些情况下,编码所述块可包含对所述块执行运动估计仅一次(即,单次),使得在单个遍次中执行编码。在单个遍次中编码视频数据要求对待译码单元中的给定块应用运动估计仅一次。 代替于执行运动估计及补偿一次以选择用于相应子像素位置的内插滤波器,且接着再次应用选定内插滤波器,编码器可基于针对一个或一个以上先前所编码单元的子像素位置而获得的历史内插结果来选择内插滤波器。此外,编码器可经配置以在对待译码单元执行运动估计之前计算偏移并将偏移指派给经内插的子像素位置。可基于参考单元与待译码单元之间的单元及/或块差异来确定所述偏移。在一些实例中,在选择内插及偏移之后,运动估计可经细化,以使得运动搜索被迫考虑先前加到子像素位置的偏移,并评估具有非零偏移值的子像素位置。在一些实施方案中,这些特征的组合可准许以改进的处理速度及很小或无性能损耗下在单个遍次中执行编码。在一些情况下,视频编码器可基于通过对先前经译码单元(例如,N-1)(例如用作当前单元N的参考单元的经译码单元)的运动估计而产生的内插误差来选择待用于针对当前单元N的运动估计的内插滤波器。举例来说,在编码先前经译码参考单元N-I之后,可在子像素位置中的每一者处确定参考单元N-I与先前参考单元(例如,N-2)中的块之间的内插误差。使用单元N-I的历史误差信息,视频编码器可选择将具有减小的误差值的最佳内插滤波器,且接着使用那些内插滤波器在单元N-I中内插子像素值以用于单元N的运动估计中。在其它情况下,给定可经选择以用于子像素运动估计中的内插滤波器集合,视频编码器可针对每一内插滤波器及每一子像素位置而累加先前所编码单元与其参考单元之间的内插误差(即,帧Ν-1、Ν-2、Ν-3等上的子像素位置的累加内插误差值)。此经累加内插误差值可充当历史内插结果,所述历史内插结果可用以选择用于参考单元中的子像素位置的内插的内插滤波器,以用于针对待译码的下一单元的运动估计中。举例来说,对于给定子像素位置,可选择具有最低经累加误差值的内插滤波器以用于内插。经累加误差值可随时间按比例缩小以防止溢出,且引入使较新近经译码单元的贡献比较早经译码单元的贡献具更大权重的窗效应。举例来说,如应用于给定子像素位置的每一内插滤波器的累加误差值可为一系列多个经译码单元上的相应内插滤波器及子像素位置的个别误差值的加权和,其中将较重地加权较新近经译码单元的误差值。编码器可在每一单元的译码之后评估误差值,且选择针对相应子像素位置产生最低累加误差的内插滤波器。因此,为了选择内插滤波器,视频编码器可依赖于一个先前经译码视频单元或多个先前经译码视频单元的历史内插误差。明确地说,如上文所描述,视频编码器可选择针对先前经译码单元将产生最佳内插误差的内插滤波器集合,且应用所述内插滤波器来对当前
8经译码单元执行运动估计。在此意义上,如果将产生最佳结果的内插滤波器已用于针对先前经译码单元的运动估计中,那么使用所述内插滤波器来执行对当前单元的运动估计。或者,如上文所描述,视频编码器可选择在一系列单元上产生累加误差值的内插滤波器。在每一情况下,视频编码器依赖于一个或一个以上先前经译码单元的历史内插结果。可将DC偏移值应用于经内插的像素值(例如)以补偿不同视频译码单元之间的照度改变。可以帧级应用DC偏移,使得帧中的所有像素使用同一 DC偏移,或以子像素位置级个别地应用DC偏移。DC偏移值的计算及指派可基于参考单元与待编码的当前单元之间的DC帧及块差。在对待编码的当前单元执行运动估计之前,可在“先验”基础上执行计算。 通过分析当前单元与参考单元之间的DC帧及块差,偏移可在无运动向量信息可用时在编码当前单元之前应用,从而准许单遍编码。例如经构造以根据H. 264标准执行的编码器等一些视频编码器可从多个先前所编码并发射的帧中预测一帧。这些参考帧通常存储在一个列表中或两个列表中,且每一列表可含有由正整数索引的若干个帧。一般来说,由零索引的帧(使用两个列表情况下,每一列表中一个帧)为时间上较靠近当前帧的帧。用如本发明中所描述的程序确定的子像素偏移通常仅用于最靠近当前帧的参考帧(由索引零索引的若干个参考帧)上。在所有其它帧上,可独立于子像素位置而使用简单的DC偏移。此偏移可计算为参考帧与当前帧之间的光度差,且跨越当前帧而应用。细化运动估计过程可经应用以考虑先前加到子像素位置的DC偏移,且强制进行对运动搜索中具有非零DC偏移的子像素位置的评估。预测性运动估计可通过预测较可能对应于待译码块的位置且通过将搜索构造为若干模式来降低运动搜索的复杂性。然而,预测性运动估计过程可能跳过测试DC偏移值已指派给的一些子像素位置。可通过提供在失真估计期间明确搜索具有所定义DC偏移的子像素位置的运动搜索来克服此限制。以此方式,运动搜索可经配置以要求明确搜索具有非零偏移的子像素位置。此外,运动搜索可经配置以计算虚拟块DC偏移。举例来说,在运动搜索期间计算的SAD误差可考虑所有可能偏移。运动搜索在应用偏移之前对块进行比较(计算块之间的 SAD误差)。有可能通过将已计算出的偏移馈入给运动搜索以使得运动搜索可用以考虑此可能性来改进性能。举例来说,如果算法已确定应将子像素偏移用于如下表1中所示的相应位置表 权利要求
1.一种视频编码方法,其包含在对当前视频单元执行运动估计之前使用选定内插滤波器来内插参考视频单元的子整数像素;在对所述当前视频单元执行运动估计之前将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素;以及基于所述参考视频单元使用运动估计来编码所述当前视频单元的块。
2.根据权利要求1所述的方法,其中编码所述块包含对所述块执行运动估计仅一次, 使得在单个遍次中执行编码。
3.根据权利要求1所述的方法,其进一步包含基于一个或一个以上先前所编码的视频单元的历史内插结果来选择内插滤波器集合。
4.根据权利要求3所述的方法,其中选择所述内插滤波器包含确定用以编码先前所编码的视频单元的第一内插滤波器集合的第一内插误差值; 确定第二内插滤波器集合的第二内插误差值; 将所述第一误差值与所述第二误差值进行比较;以及基于所述比较来选择所述内插滤波器。
5.根据权利要求3所述的方法,其中选择所述内插滤波器包含累加用以编码多个先前所编码的视频单元的不同内插滤波器的内插误差值;以及基于所述所累加的内插误差值来选择所述内插滤波器。
6.根据权利要求3所述的方法,其中所述内插滤波器对应于相应的子整数像素,且所述内插滤波器包括用于所述子整数像素中的至少一些子整数像素的不同内插滤波器。
7.根据权利要求3所述的方法,其进一步包含编码语法元素,所述语法元素指示用于所述经编码块的所述选定内插滤波器及所述偏移。
8.根据权利要求1所述的方法,其中编码所述视频块包含执行运动估计以识别所述参考视频单元中用于所述当前视频单元中的所述块的预测性块;确定识别所述参考视频单元中的所述预测性块的运动向量;以及确定所述当前视频单元中的所述块与所述参考视频单元中的所述预测性块之间的残
9.根据权利要求8所述的方法,其中执行运动估计包含执行运动搜索算法,所述运动搜索算法指定跳过对与已被应用偏移的子整数像素相关联的块的评估;以及强制进行对与已被应用偏移的子整数像素相关联的所述块的评估。
10.根据权利要求1所述的方法,其中所述视频单元中的每一者包含视频帧或视频切片中的一者。
11.一种包含视频编码器的视频编码设备,所述视频编码器经配置以在对当前视频单元执行运动估计之前使用选定内插滤波器来内插参考视频单元的子整数像素;在对所述当前视频单元执行运动估计之前将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素;且基于所述参考视频单元使用运动估计来编码所述当前视频单元的块。
12.根据权利要求11所述的设备,其中所述视频编码器经配置以对所述块执行运动估计仅一次,使得在单个遍次中执行编码。
13.根据权利要求11所述的设备,其中所述视频编码器经配置以基于一个或一个以上先前所编码的视频单元的历史内插结果来选择内插滤波器集合。
14.根据权利要求13所述的设备,其中所述视频编码器经配置以确定用以编码先前所编码的视频单元的第一内插滤波器集合的第一内插误差值; 确定第二内插滤波器集合的第二内插误差值; 将所述第一误差值与所述第二误差值进行比较;且基于所述比较来选择所述内插滤波器。
15.根据权利要求13所述的设备,其中所述视频编码器经配置以累加用以编码多个先前所编码的视频单元的不同内插滤波器的内插误差值;且基于所述所累加的内插误差值来选择所述内插滤波器。
16.根据权利要求13所述的设备,其中所述内插滤波器对应于相应的子整数像素,且所述内插滤波器包括用于所述子整数像素中的至少一些子整数像素的不同内插滤波器。
17.根据权利要求13所述的设备,其中所述视频编码器经配置以编码语法元素,所述语法元素指示用于所述经编码块的所述选定内插滤波器及所述偏移。
18.根据权利要求11所述的设备,其中所述视频编码器经配置以执行运动估计以识别所述参考视频单元中用于所述当前视频单元中的所述块的预测性块;确定识别所述参考视频单元中的所述预测性块的运动向量;且确定所述当前视频单元中的所述块与所述参考视频单元中的所述预测性块之间的残
19.根据权利要求18所述的设备,其中所述视频编码器经配置以执行运动搜索算法,所述运动搜索算法指定跳过对与已被应用偏移的子整数像素相关联的块的评估;且强制进行对与已被应用偏移的子整数像素相关联的所述块的评估。
20.根据权利要求11所述的设备,其中所述视频单元中的每一者包含视频帧或视频切片中的一者。
21.根据权利要求11所述的设备,其中所述视频编码器形成无线通信装置的一部分。
22.根据权利要求11所述的设备,其中所述视频编码器包含集成电路装置。
23.一种视频编码设备,其包含用于在对当前视频单元执行运动估计之前使用选定内插滤波器来内插参考视频单元的子整数像素的装置;用于在对所述当前视频单元执行运动估计之前将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素的装置;以及用于基于所述参考视频单元使用运动估计来编码所述当前视频单元的块的装置。
24.根据权利要求23所述的设备,其中所述用于编码所述块的装置包含用于对所述块执行运动估计仅一次以使得在单个遍次中执行编码的装置。
25.根据权利要求23所述的设备,其进一步包含用于基于一个或一个以上先前所编码的视频单元的历史内插结果来选择内插滤波器集合的装置。
26.根据权利要求25所述的设备,其中所述用于选择所述内插滤波器的装置包含 用于确定用以编码先前所编码的视频单元的第一内插滤波器集合的第一内插误差值的装置;用于确定第二内插滤波器集合的第二内插误差值的装置; 用于将所述第一误差值与所述第二误差值进行比较的装置;以及用于基于所述比较来选择所述内插滤波器的装置。
27.根据权利要求25所述的设备,其中所述用于选择所述内插滤波器的装置包含 用于累加用以编码多个先前所编码的视频单元的不同内插滤波器的内插误差值的装置;以及用于基于所述所累加的内插误差值来选择所述内插滤波器的装置。
28.根据权利要求25所述的设备,其中所述内插滤波器对应于相应的子整数像素,且其中所述内插滤波器包括用于所述子整数像素中的至少一些子整数像素的不同内插滤波器。
29.根据权利要求25所述的设备,其进一步包含用于编码语法元素的装置,所述语法元素指示用于所述经编码块的所述选定内插滤波器及所述偏移。
30.根据权利要求23所述的设备,其中所述用于编码所述视频块的装置包含 用于执行运动估计以识别所述参考视频单元中用于所述当前视频单元中的所述块的预测性块的装置;用于确定识别所述参考视频单元中的所述预测性块的运动向量的装置;以及用于确定所述当前视频单元中的所述块与所述参考视频单元中的所述预测性块之间的残余误差的装置。
31.根据权利要求30所述的设备,其中所述用于执行运动估计的装置包含用于执行运动搜索算法的装置,所述运动搜索算法指定跳过对与已被应用偏移的子整数像素相关联的块的评估;以及用于强制进行对与已被应用偏移的子整数像素相关联的所述块的评估的装置。
32.根据权利要求23所述的设备,其中所述视频单元中的每一者包含视频帧或视频切片中的一者。
33.一种编码有指令的计算机可读存储媒体,所述指令用于致使处理器在对当前视频单元执行运动估计之前使用选定内插滤波器来内插参考视频单元的子整数像素;在对所述当前视频单元执行运动估计之前将偏移应用于所述参考视频单元的所述子整数像素中的至少一些子整数像素;且基于所述参考视频单元使用运动估计来编码所述当前视频单元的块。
34.根据权利要求33所述的存储媒体,其中编码所述块包含对所述块执行运动估计仅一次,使得在单个遍次中执行编码。
35.根据权利要求33所述的存储媒体,其进一步包含用以致使所述处理器基于一个或一个以上先前所编码的视频单元的历史内插结果来选择内插滤波器集合的指令。
36.根据权利要求35所述的存储媒体,其进一步包含用以致使所述处理器进行以下操作的指令确定用以编码先前所编码的视频单元的第一内插滤波器集合的第一内插误差值; 确定第二内插滤波器集合的第二内插误差值; 将所述第一误差值与所述第二误差值进行比较;以及基于所述比较来选择所述内插滤波器。
37.根据权利要求35所述的存储媒体,其进一步包含用以致使所述处理器进行以下操作的指令累加用以编码多个先前所编码的视频单元的不同内插滤波器的内插误差值;以及基于所述所累加的内插误差值来选择所述内插滤波器。
38.根据权利要求35所述的存储媒体,其中所述内插滤波器对应于相应的子整数像素,且其中所述内插滤波器包括用于所述子整数像素中的至少一些子整数像素的不同内插滤波器。
39.根据权利要求35所述的存储媒体,其进一步包含用以致使所述处理器编码语法元素的指令,所述语法元素指示用于所述经编码块的所述选定内插滤波器及所述偏移。
40.根据权利要求35所述的存储媒体,其进一步包含用以致使所述处理器进行以下操作的指令执行运动估计以识别所述参考视频单元中用于所述当前视频单元中的所述块的预测性块;确定识别所述参考视频单元中的所述预测性块的运动向量;以及确定所述当前视频单元中的所述块与所述参考视频单元中的所述预测性块之间的残
41.根据权利要求40所述的存储媒体,其进一步包含用以致使所述处理器进行以下操作的指令执行运动搜索算法,所述运动搜索算法指定跳过对与已被应用偏移的子整数像素相关联的块的评估;以及强制进行对与已被应用偏移的子整数像素相关联的所述块的评估。
42.根据权利要求33所述的存储媒体,其中所述视频单元中的每一者包含视频帧或视频切片中的一者。
全文摘要
本发明描述用于使用内插滤波器及偏移来编码数字视频数据的技术。编码器可经配置以基于针对例如帧或切片等先前所编码的视频单元而获得的历史内插结果来选择用于子像素精度运动估计的内插滤波器。所述编码器还可经配置以在内插之后基于参考单元与待译码单元之间的差来计算偏移并将所述偏移指派给子像素位置。可在运动估计之前执行偏移的所述计算及指派。运动估计可经细化以使得运动搜索考虑先前已被加了偏移的子像素位置并评估具有非零偏移的子像素位置。在一些情况下,可在单个编码遍次中执行对给定单元的内插滤波器选择、偏移计算及/或细化运动估计。
文档编号H04N7/26GK102172022SQ200980139142
公开日2011年8月31日 申请日期2009年5月8日 优先权日2008年10月3日
发明者乔瓦尼·莫塔, 叶琰, 陈培松, 马尔塔·卡切维奇 申请人:高通股份有限公司