专利名称:切换式内插滤波器中的偏移计算的制作方法
技术领域:
本发明涉及数字视频译码,且更明确地说,涉及将偏移应用于在视频译码中使用的预测数据的技术。
背景技术:
可将数字视频能力并入到广泛范围的装置内,包括数字电视、数字直接广播系统、 无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话及其类似物。数字视频装置实施视频压缩技术,例如在由MPEG-2、MPEG-4或ITU-T H. 264/MPEG-4第10部分高级视频译码 (AVC)定义的标准中描述的技术,以更有效率地发射及接收数字视频信息。视频压缩技术可执行空间预测及/或时间预测以减少或移除视频序列中所固有的冗余。基于块的帧间译码为非常有用的译码技术,其依赖于时间预测来减少或移除视频序列的连续的经译码单元的视频块之间的时间冗余。经译码单元可包含视频帧、视频帧的切片、图片群组或视频块的另一经定义单元。对于帧间译码,视频编码器执行运动估计及运动补偿以跟踪两个或两个以上邻近经译码单元的对应视频块的移动。运动估计产生运动向量,其指示视频块相对于一个或一个以上参考帧或其它经译码单元中的对应预测视频块的位移。运动补偿使用运动向量来从参考帧或其它经译码单元产生预测视频块。在运动补偿之后,通过从正被译码的原始视频块减去预测视频块而形成残余视频块。视频编码器还可应用变换、量化及熵译码过程来进一步减小与残余块的通信相关联的位速率。变换技术可包含离散余弦变换(DCT)或概念上类似的过程。或者,可使用小波变换、整数变换或其它类型的变换。在DCT过程中,作为实例,将一组像素值转换为变换系数,其可表示在频域中像素值的能量。将量化应用到变换系数,且量化通常涉及限制与任何给定变换系数相关联的位的数目的过程。熵译码包含一个或一个以上共同压缩一连串经量化的变换系数的过程。熵译码的实例包括(但不限于)内容适应性可变长度译码(CAVLC) 及内容适应性二进制算术译码(CABAC)。经译码的视频块可由预测信息表示,预测信息可用以创建或识别预测块及指示正被译码的块与预测块之间的差异的残余数据块。预测信息可包含用以识别预测数据块的一个或一个以上运动向量。如果给定运动向量,则解码器能够重构用以译码所述残余的预测块。因此,如果给定一组残余块及一组运动向量(及可能某一额外语法),则解码器可能够重构原始被编码的视频帧。基于运动估计及运动补偿的帧间译码可实现很好的压缩,因为连续的视频帧或其它类型的经译码单元通常非常类似。经编码的视频序列可包含残余数据的块、运动向量及可能其它类型的语法。已开发出内插及外推技术以便改进可在帧间译码中实现的压缩水平。在此情况下,可从视频帧或在运动估计中使用的其它经译码单元的视频块的像素内插或外推用以译码视频块的在运动补偿期间产生的预测数据。通常执行内插或外推以产生预测半像素值及预测四分之一像素值。此内插或外推通常产生甚至比预测帧或在视频译码中使用的其它经译码单元的实际视频块更类似于正被译码的视频块的预测块。
发明内容
本发明描述由编码器及解码器执行以便在视频译码的运动补偿过程期间将偏移添加到双向预测视频块的技术。根据本发明的一个方面,编码器可针对每一经译码单元产生多个偏移值,且将所述偏移值应用于用以对经译码单元的视频块进行译码的预测数据。 明确地说,编码器可针对整数像素位置及不同子整数像素位置定义不同偏移值。适当的偏移值可基于与对应的预测数据相关联的像素位置而应用于所述预测数据。子整数像素位置可对应于基于整数像素位置处的数据而内插或外推的内插或外推数据。通过考虑到在不同像素位置(整数像素位置及子整数像素位置)处的不同偏移,所得的偏移双向预测数据可提供比原始预测数据好的压缩。以此方式,本发明的技术可改进视频质量。举例来说,将偏移添加到预测数据可改进在视频序列的帧之间的照明改变期间(例如,在帧之间的闪光、 变暗的天空或其它类型的照明改变期间)的译码。在一个实例中,本发明提供一种用于编码当前视频块的方法。所述方法包含经由编码器,基于第一参考数据列表内的第一参考视频单元内插与子整数像素位置相关联的第一预测值块,且基于第二参考数据列表内的第二参考视频单元内插与所述子整数像素位置相关联的第二预测值块。所述方法进一步包含经由编码器,针对子整数像素位置,基于所述第一预测值块及当前视频块计算第一偏移值,且基于所述第一偏移值及所述第二预测值块计算第二偏移值。所述方法进一步包含经由编码器基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值而确定最终偏移值块。所述方法进一步包含经由编码器基于所述最终偏移值块而编码所述当前视频块。在另一实例中,本发明提供一种编码视频数据的设备。所述设备包含视频编码器, 其基于第一参考数据列表内的第一参考视频单元而内插与子整数像素位置相关联的第一预测值块,且基于第二参考数据列表内的第二参考视频单元而内插与所述子整数像素位置相关联的第二预测值块。所述设备进一步包含视频编码器,其针对子整数像素位置,基于所述第一预测值块及当前视频块计算第一偏移值,且基于所述第一偏移值及所述第二预测值块计算第二偏移值。所述设备进一步包含视频编码器,其基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块。所述设备进一步包含视频编码器,其基于所述最终偏移值块编码所述当前视频块。在又一实例中,本发明提供一种计算机可读媒体,其包含在所述计算机可读媒体上编码的指令,所述指令在执行时致使视频编码器内的处理器基于第一参考数据列表内的第一参考视频单元内插与子整数像素位置相关联的第一预测值块,且基于第二参考数据列表内的第二参考视频单元内插与所述子整数像素位置相关联的第二预测值块。所述计算机可读媒体进一步包含致使处理器针对子整数像素位置基于所述第一预测值块及当前视频块计算第一偏移值且基于所述第一偏移值及所述第二预测值块计算第二偏移值的指令。所述计算机可读媒体进一步包含致使处理器基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块的指令。所述计算机可读媒体进一步包含致使处理器基于所述最终偏移值块而编码所述当前视频块的指令。在又一实例中,本发明提供一种编码视频数据的设备。所述设备包含用于基于第一参考数据列表内的第一参考视频单元内插与子整数像素位置相关联的第一预测值块且基于第二参考数据列表内的第二参考视频单元内插与所述子整数像素位置相关联的第二预测值块的装置。所述设备进一步包含用于针对子整数像素位置基于所述第一预测值块及当前视频块计算第一偏移值且基于所述第一偏移值及所述第二预测值块计算第二偏移值的装置。所述设备进一步包含用于基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块的装置。所述设备进一步包含用于基于所述最终偏移值块编码所述当前视频块的装置。在又一实例中,本发明提供一种视频编码方法,其包含经由编码器作为第一遍次使用序列滤波器在不使用偏移的情况下编码当前帧。如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则经由编码器作为图片次序内容(POC)遍次使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧。如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则将所述 POC加权参考帧用于编码,且存储所述POC遍次的所述速率-失真特性作为变量。如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则存储所述第一遍次的所述速率-失真特性作为所述变量。如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则存储所述第一遍次的所述速率-失真特性作为所述变量。所述方法进一步包含经由编码器计算关于所述当前帧的帧滤波器及偏移,且经由编码器作为第二遍次使用所述计算的帧滤波器及偏移编码所述当前帧。如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则存储所述第二遍次的所述速率-失真特性作为所述变量,且将量化步长增加一且作为第三遍次使用所述计算的帧滤波器及偏移编码所述当前帧。如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述量化步长增加一且作为所述第三遍次使用所述序列滤波器在不使用偏移的情况下编码所述当前帧。如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述第三遍次的所述编码添加到位流。如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述变量的所述编码添加到所述位流。所述方法进一步包含经由编码器计算序列滤波器以编码下一个帧。在又一实例中,本发明提供一种编码视频数据的设备,所述设备包含视频编码器, 其作为第一遍次使用序列滤波器在不使用偏移的情况下编码当前帧。如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则所述视频编码器作为图片次序内容(POC) 遍次使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧。如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则所述视频编码器使用所述POC加权参考帧来编码,且存储所述POC遍次的所述速率-失真特性作为变量。如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则所述视频编码器存储所述第一遍次的所述速率-失真特性作为所述变量。如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则所述视频编码器存储所述第一遍次的所述速率-失真特性作为所述变量。所述视频编码器计算关于所述当前帧的帧滤波器及偏移,且所述视频编码器作为第二遍次使用所述计算的帧滤波器及偏移编码所述当前帧。如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述视频编码器存储所述第二遍次的所述速率-失真特性作为所述变量,且所述视频编码器将量化步长增加一且作为第三遍次使用所述计算的帧滤波器及偏移编码所述当前帧。如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述视频编码器将所述量化步长增加一且作为所述第三遍次使用所述序列滤波器在不使用偏移的情况下编码所述当前帧。如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述视频编码器将所述第三遍次的所述编码添加到位流。如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述视频编码器将所述变量的所述编码添加到所述位流。所述视频编码器计算序列滤波器以编码下一个帧。
在又一实例中,本发明提供一种计算机可读媒体,其包含在所述计算机可读媒体上编码的指令,所述指令在执行时致使视频编码器内的处理器作为第一遍次使用序列滤波器在不使用偏移的情况下编码当前帧。如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则所述指令致使所述处理器作为图片次序内容(POC)遍次使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧。如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则所述指令致使所述处理器使用所述POC加权参考帧来编码,且所述指令致使所述处理器存储所述 POC遍次的所述速率-失真特性作为变量。如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则所述指令致使所述处理器存储所述第一遍次的所述速率-失真特性作为所述变量。如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则所述指令致使所述处理器存储所述第一遍次的所述速率-失真特性作为所述变量。所述指令致使所述处理器计算关于当前帧的帧滤波器及偏移,且所述指令致使所述处理器作为第二遍次使用所述计算的帧滤波器及偏移编码所述当前帧。如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述指令致使所述处理器存储所述第二遍次的所述速率-失真特性作为所述变量,且所述指令致使所述处理器将量化步长增加一且作为第三遍次使用所述计算的帧滤波器及偏移编码所述当前帧。如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述指令致使所述处理器将所述量化步长增加一且作为所述第三遍次使用所述序列滤波器在不使用偏移的情况下编码所述当前帧。如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述指令致使所述处理器将所述第三遍次的所述编码添加到位流。如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述指令致使所述处理器将所述变量的所述编码添加到所述位流。所述指令致使所述处理器计算序列滤波器以编码下一个帧。
在又一实例中,本发明提供一种编码视频数据的设备。所述设备包含用于经由编码器作为第一遍次使用序列滤波器在不使用偏移的情况下编码当前帧的装置。如果具有id =0的所有参考帧与所述当前帧分开相同数目的帧,则所述设备包含用于经由编码器作为图片次序内容(POC)遍次使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧的装置。如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则所述设备包含用于将所述POC加权参考帧用于编码的装置,及用于存储所述POC遍次的所述速率-失真特性作为变量的装置。如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则所述设备包含用于存储所述第一遍次的所述速率-失真特性作为所述变量的装置。 如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则所述设备包含用于存储所述第一遍次的所述速率-失真特性作为所述变量的装置。所述设备进一步包含用于经由编码器计算关于所述当前帧的帧滤波器及偏移的装置,及用于经由编码器作为第二遍次使用所述计算的帧滤波器及偏移编码所述当前帧的装置。如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述设备包含用于存储所述第二遍次的所述速率-失真特性作为所述变量的装置。所述设备进一步包含用于将量化步长增加一且作为第三遍次使用所述计算的帧滤波器及偏移编码所述当前帧的装置。如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述设备包含用于将所述量化步长增加一且作为所述第三遍次使用所述序列滤波器在不使用偏移的情况下编码所述当前帧的装置。 如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述设备包含用于将所述第三遍次的所述编码添加到位流的装置。如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则所述设备包含用于将所述变量的所述编码添加到所述位流的装置。所述设备进一步包含用于经由编码器计算序列滤波器以编码下一个帧的装置。在附图及以下描述中阐述本发明的一个或一个以上方面的细节。本发明中所描述的技术的其它特征、目标及优势将从描述及图式以及从权利要求书变得显而易见。
图1为说明视频编码及解码系统的示范性框图。图2为说明符合本发明的视频编码器的实例的框图。图3为说明符合本发明的视频解码器的实例的框图。图4为说明可组成预测视频块的像素的整数像素及各种子整数像素的概念图。图5为说明符合本发明的通过视频编码器编码视频块的实例方法的流程图。图6A到图6C为说明符合本发明的使滤波器及偏移的配置优化以便实现B切片的最佳速率-失真的方法的流程图。
具体实施例方式本发明描述由编码器及解码器执行以便在视频译码的运动补偿过程期间将偏移添加到双向预测视频块的技术。双向预测视频块指代在经双向编码块的编码或解码中使用的预测块。双向预测视频块是基于识别两组不同预测数据的至少两个不同运动向量而产生的。本发明提供将偏移引入或以其它方式添加到双向预测视频块内的技术。根据本发明的一个方面,编码器可针对每一经译码单元产生多个偏移值,且将所述偏移值应用于用以对经译码单元的视频块进行译码的预测数据。明确地说,编码器可针对整数像素位置及不同子整数像素位置定义不同偏移值。可基于与对应的预测数据相关联的像素位置而将适当的偏移值应用于所述预测数据。子整数像素位置可对应于基于整数像素位置处的数据而内插或外推的内插或外推数据。通过考虑到在不同像素位置(整数像素位置及子整数像素位置)处的不同偏移,所得的偏移双向预测数据可提供比原始预测数据好的压缩。以此方式,本发明的技术可改进视频质量。举例来说,将偏移添加到预测数据可改进在视频序列的帧之间的照明改变期间(例如,在帧之间的闪光、变暗的天空或其它类型的照明改变期间)的译码。ITU-T H. 264标准支持子整数像素到四分之一像素分辨率的分数内插。在此情况下,对于每个整数像素位置,存在十五个可能的子整数像素位置。对于单向帧间模式预测(P 模式),可针对经译码单元的每一可能的整数及子整数像素位置产生十六个不同的偏移值。 如上文指出,经译码单元可包含视频帧、视频帧的切片或视频块的另一可独立解码单元。偏移值可包括用于整数像素位置的一个偏移值及用于不同子整数像素位置的若干偏移值。举例来说,与允许内插数据的十五个不同子整数位置的ITU-T H. 264标准相符,偏移值可同样地包括用于十五个不同子整数像素位置的十五个不同偏移值。根据本发明的技术,对于双向帧间模式预测(B模式),可针对经译码单元的每一可能的整数及子整数像素位置产生三十二个不同的偏移值。也就是说,可基于第一参考帧针对每一可能的整数及子整数像素位置产生十六个不同的偏移值,且可基于第二参考帧针对每一可能的整数及子整数像素位置产生十六个不同的偏移值。因此,每一可能的整数及子整数像素位置具有两个偏移基于第一参考帧的第一偏移,以及基于第二参考帧的第二偏移。如将在下文中更详细地描述,组合所述两个偏移以形成单一偏移值。可基于与任何预测数据相关联的像素位置而将所述单一偏移值应用于所述预测数据。明确地说,可将偏移值应用于调整预测视频块的像素值,且用以进行这些像素值调整的偏移值可视与所述预测视频块相关联的位置(例如,整数位置或若干可能的子像素位置中的一者)而定。如下文指出,术语“经译码单元”指代视频帧的任何可独立解码单元,例如整个帧、帧的切片或根据所使用的译码技术定义的另一可独立解码单元。本发明的技术适用于所有经译码单元。可将不同偏移值编码为每一经译码单元的位流的部分。举例来说,对于双向预测的经译码单元,可将三十二个不同偏移值编码为位流的部分。解码器可接收由编码器针对每一经译码单元定义的不同偏移值。因此,解码器可产生预测数据且接着基于所述预测数据及所述偏移值而重构偏移预测数据。解码器可基于偏移预测数据(其是基于预测数据及偏移值而产生的)解码经译码单元(例如,视频块)的视频数据。如同编码一样,将偏移添加到预测数据可通过改进在照明改变或其它视频效应期间的视频质量而改进视频解码。图1为说明可实施本发明的技术的视频编码及解码系统10的一个实例的框图。如图1中所示,系统10包括源装置12,其经由通信信道15将经编码视频发射到目的地装置 16。源装置12及目的地装置16可包含广泛范围的装置中的任一者。在一些情况下,源装置12及目的地装置16包含无线通信装置,例如无线手持机、所谓的蜂窝式或卫星无线电电话,或可在通信信道15上传递视频信息的任何无线装置(在所述情况下,通信信道15为无线的)。然而,本发明的技术(其涉及在运动补偿期间将偏移添加到预测数据)不必限于无线应用或设置。在图1的实例中,源装置12可包括视频源20、视频编码器22、调制器/解调器(调制解调器)23及发射器M。目的地装置16可包括接收器沈、调制解调器27、视频解码器 28及显示装置30。根据本发明,源装置12的视频编码器22可经配置以应用本发明的偏移技术中的一者或一者以上作为视频编码过程的部分。类似地,目的地装置16的视频解码器 28可经配置以应用本发明的偏移技术中的一者或一者以上作为视频解码过程的部分。图1所说明的系统10仅为视频编码及解码系统的一个实例。可由支持到子像素分辨率的经运动补偿的内插的任何编码装置执行本发明的偏移技术。源装置12及目的地装置16仅为这些译码装置的实例,其中源装置12产生用于发射到目的地装置16的经译码视频数据。装置12、16可以大体上对称的方式操作,使得装置12、16中的每一者包括视频编码及解码组件。因此,系统10可支持视频装置12、16之间的单程或双程视频发射,例如, 用于视频串流、视频重放、视频广播或视频电话。源装置12的视频源20可包括视频捕获装置,例如摄影机、含有先前捕获的视频的视频档案或来自视频内容提供者的视频馈送。作为另一替代方案,视频源20可产生基于计算机图形的数据作为源视频,或产生实况视频、存档视频与计算机产生的视频的组合。在一些情况下,如果视频源20为摄影机,则源装置12及目的地装置16可形成所谓的相机电话或视频电话。在每一情况下,经捕获的、预捕获的或计算机产生的视频可由视频编码器22 编码。经编码的视频信息可接着由调制解调器23根据通信标准(例如,码分多址(CDMA) 或另一通信标准)调制,且经由发射器M发射到目的地装置16。调制解调器23可包括各种混频器、滤波器、放大器或经设计用于信号调制的其它组件。发射器M可包括经设计用于发射数据的电路,包括放大器、滤波器及一个或一个以上天线。目的地装置16的接收器沈在信道15上接收信息,且调制解调器27解调所述信息。再一次地,视频编码过程可实施本文中描述的技术中的一者或一者以上以在运动补偿期间将偏移添加到预测数据。由视频解码器观执行的视频解码过程在其解码过程的运动补偿阶段期间也可执行这些技术。在信道15上传递的信息可包括由视频编码器22定义的偏移信息,其也由视频解码器观使用。显示装置30向用户显示经解码的视频数据,且可包含多种显示装置中的任一者,例如阴极射线管、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。在图1的实例中,通信信道15可包含任何无线或有线通信媒体(例如射频(RF) 频谱或一个或一个以上物理传输线)或无线与有线媒体的任何组合。通信信道15可形成基于包的网络(例如局域网、广域网或全球网(例如因特网))的部分。通信信道15大体上表示用于将视频数据从源装置12发射到目的地装置16的任何合适的通信媒体或不同通信媒体的集合。通信信道15可包括路由器、开关、基站或可用以促进从源装置12到目的地装置16的通信的任何其它设备。视频编码器22及视频解码器28可根据视频压缩标准(例如ITU-T H. 264标准, 替代地描述为MPEG-4第10部分高级视频译码(AVC))来操作。然而,本发明的技术不限于任何特定译码标准。尽管在图1中未展示,但在一些方面中,视频编码器22及视频解码器28各自可与音频编码器及解码器集成,且可包括适当的多路复用-多路分用单元或其它硬件及软件,以处置在共同数据流或单独数据流中的音频及视频两者的编码。如果适用,则多路复用-多路分用单元可遵照ITU H. 223多路复用器协议或例如用户数据报协议(UDP)等其它协议。ITU-T H. 264/MPEG-4(AVC)标准由 ITU-T视频译码专家小组(VCEG)与 IS0/IEC运动图片专家小组(MPEG) —起制定,作为称为联合视频团队(JVT)的共同合作伙伴关系的产物。在一些方面中,本发明中描述的技术可应用于大体上遵守H. 264标准的装置。H. 264标准描述于由ITU-T研究小组公布且日期为2005年3月的ITU-T建议H. 264 (用于一般视听服务的高级视频译码)中,其在本文中可被称作H. 264标准或H. 264规范或H. 264/AVC标准或规范。联合视频团队(JVT)继续开发H.264/MPEG-4AVC的扩展。视频编码器22及视频解码器观各自可实施为一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、 固件或其任何组合。视频编码器22及视频解码器观中的每一者可包括于一个或一个以上编码器或解码器中,其任一者可集成为相应移动装置、订户装置、广播装置、服务器或其类似物中的组合编码器/解码器(编解码器)的部分。视频序列通常包括一系列视频帧。视频编码器22对个别视频帧内的视频块操作以便编码视频数据。视频块可具有固定或变化的大小,且大小可根据所指定的译码标准而不同。每一视频帧包括一系列切片。每一切片可包括一系列宏块,其可经布置为子块。作为实例,ITU-T H. 264标准支持各种块大小的帧内预测(例如对于亮度分量,16乘16、8乘8 或4乘4,及对于色度分量,8乘8)以及各种块大小的帧间预测(例如对于亮度分量,16乘 16、16乘8、8乘16、8乘8、8乘4、4乘8及4乘4,及对于色度分量,对应的经按比例缩放的大小)。例如,在例如离散余弦变换或概念上类似的变换过程等变换过程之后,视频块可包含像素数据的块或变换系数的块。较小的视频块可提供较好的分辨率,且可用于视频帧的包括高细节等级的位置。 一般来说,可将宏块及各种子块考虑为视频块。此外,可将切片考虑为一系列视频块,例如宏块及/或子块。每一切片可为视频帧的可独立解码单元。或者,帧自身可为可解码单元, 或可将帧的其它部分定义为可解码单元。术语“经译码单元”指代视频帧的任何可独立解码单元,例如整个帧、帧的切片或根据所使用的译码技术定义的另一可独立解码单元。本发明的技术可应用于所有经译码单元。在基于帧间的预测译码(其包括内插及本发明的用以定义用于不同整数及子整数像素位置的偏移值的技术)之后,且在任何变换(例如在H. ^4/AVC中使用的4X4或 8X8整数变换或离散余弦变换DCT)之后,可执行量化。量化大体上指代其中对系数进行量化以可能地减少用以表示所述系数的数据的量的过程。量化过程可减小与所述系数中的一些或所有者相关联的位深度。举例来说,在量化期间可将16位值舍去到15位值。在量化之后,可执行熵译码,例如,根据内容适应性可变长度译码(CAVLC)、内容适应性二进制算术译码(CABAC)或另一熵译码方法。根据本发明的技术,视频编码器22可计算用于视频数据的经译码单元(例如帧或帧的可独立解码部分(例如切片))的多个偏移值。不同偏移值与多个不同整数像素位置及子整数像素位置(其与视频块相关联)相关联。子整数像素位置可定义通常基于整数像素位置处的数据而内插或外推的内插或外推数据的位置。视频编码器22可将偏移值应用于预测视频块以产生偏移预测视频块,且基于所述偏移预测视频块编码经译码单元的视频块。视频编码器22还可编码偏移值作为包括经译码单元的经译码视频块的经译码位流的部分,且源装置12的发射器M可将经译码位流发射到目的地装置16的接收器26。明确地说,视频编码器22可通过调整双向预测视频块的像素而应用偏移值,且可通过基于偏移预测视频块产生残余而基于偏移预测视频块编码视频块。举例来说,可通过从适当的偏移预测视频块减去待译码的块而产生残余。由于基于预测视频块的位置而将偏移添加到偏移预测视频块的像素值,因此可改进译码效率,尤其在闪光或背景照明改变期间。在此情况下,偏移的添加可偏置预测块的像素值,使得偏移预测块较准确地匹配正被译码的块,尤其当正被译码的块与预测块(无偏移)之间的差异对于所有相应像素主要相差同一亮度强度时。在目的地装置16中,视频解码器观接收用于视频数据的每一经译码单元的多个偏移值。视频解码器观将偏移值应用于预测视频块以产生偏移预测视频块,且基于所述偏移预测视频块而解码经译码单元的视频块。以此方式,在视频编码器22处定义偏移值并将其应用作为编码过程的部分,且作为经编码位流的部分而从源装置12传递到目的地装置 16。接着作为解码过程的部分在视频解码器观处将偏移值应用于预测数据,以便重构视频序列。在此情况下,在视频重构期间创建并使用对预测数据的偏移。图2为说明符合本发明的可执行偏移技术的视频编码器50的实例的框图。视频编码器50为本文中被称作“译码器”的专用视频计算机装置或设备的一个实例。视频编码器50可对应于源装置12的视频编码器22或不同装置的视频编码器。视频编码器50可执行视频帧内的块的帧内及帧间译码,但为了易于说明,图2中未展示帧内译码组件。帧内译码依赖于空间预测来减少或移除在给定视频帧内的视频的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的邻近帧内的视频的时间冗余。帧内模式(I模式)可指代基于空间的压缩模式,且例如预测(P模式)或双向(B模式)等帧间模式可指代基于时间的压缩模式。使用B模式编码的单元是参考两个帧来编码的。在H.沈4中,可参考两个时间上在前的帧来编码B帧或其它单元。举例来说,如果待编码的当前单元驻存于帧N中,则可将帧N-I及N-2用作参考帧来编码当前单元。在其它译码标准(例如,MPEG-2)中,可使用至少一个时间上未来的帧(例如,帧N+1)及至少一个时间上在前的帧(例如,帧N-1)来编码驻存于帧N中的当前单元。本发明的技术适用于双向帧间译码期间,且因此,为了说明的简单及容易,例如空间预测单元等帧内译码单元未说明于图2中。如图2中所示,视频编码器50接收待编码的视频帧内的视频块。在图2的实例中,视频编码器50包括预测单元32、存储器34、加法器48、变换单元38、量化单元40及熵译码单元46。对于视频块重构,视频编码器50还包括逆量化单元42、逆变换单元44及加法器51。还可包括去块滤波器(未图示)来对块边界进行滤波以从重构的视频中移除成块假影。如果需要的话,去块滤波器将通常对加法器51的输出进行滤波。预测单元32可包括运动估计(ME)单元35及运动补偿(MC)单元37。根据本发明, 滤波器39可包括于预测单元32中且可由ME单元35及MC单元37中的一者或两者调用来执行作为运动估计及/或运动补偿的部分的内插或内插类滤波。滤波器39可实际上表示用以促进如本文中描述的众多不同类型的内插及内插型滤波的多个不同滤波器。因此,预测单元32可包括多个内插或内插类滤波器。在编码过程期间,视频编码器50接收待译码的视频块(图2中标注为“视频块”),且预测单元32执行帧间预测译码以产生预测块(图 2中标注为“预测块”)。具体地说,ME单元35可执行运动估计以识别存储器34中的预测块,且ME单元37可执行运动补偿以产生预测块。通常将运动估计考虑为产生运动向量的过程,所述运动向量估计视频块的运动。 举例来说,运动向量可指示在预测或参考帧(或其它经译码单元,例如,切片)内的预测块相对于当前帧(或其它经译码单元)内待译码的块的位移。在双向预测的情况下,产生两个运动向量一个运动向量指示第一预测或参考帧内的预测块的位移,且另一个运动向量指示第二预测或参考帧内的预测块的位移。在双向预测中,两个参考帧(或两个帧的部分) 可在时间上定位于当前视频块所属于的视频帧(或视频帧的部分)之前或之后。通常将运动补偿考虑为从存储器34提取或产生预测块或可能基于由运动估计确定的运动向量内插或以其它方式产生经滤波的预测数据的过程。ME单元35通过将待译码的视频块与两个参考帧(例如,两个先前帧、先前帧与随后帧,或两个随后帧)的视频块进行比较来选择用于所述待译码的视频块的适当运动向量。ME单元35可执行具有分数像素精确度的运动估计,有时被称作分数像素或子像素运动估计。因而,可互换地使用术语分数像素与子像素运动估计。在分数像素运动估计中,ME 单元35可选择指示到不同于整数像素位置的位置的位移的运动向量。以此方式,分数像素运动估计允许预测单元32以比整数像素(或全像素)位置高的精确度来追踪运动,因此产生更准确的预测块。分数像素运动估计可具有半像素精确度、四分之一像素精确度、八分之一像素精确度或任何更精细的精确度。ME单元35可调用滤波器39以用于在运动估计过程期间的任何必要的内插。为了执行分数像素运动补偿,MC单元37可执行内插(有时被称作内插滤波)以便产生子像素分辨率的数据(本文中被称作子像素或分数像素值)。MC单元37可调用滤波器39以用于此内插。预测单元32可使用本文中描述的技术执行内插(或整数像素的内插类滤波)。一旦待译码的视频块的第一运动向量(基于第一参考帧)由ME单元35选定,MC 单元37便产生与所述运动向量相关联的预测视频块。MC单元37可基于由MC单元37确定的第一运动向量从存储器34提取预测块。在具有分数像素精确度的运动向量的情况下,MC 单元37对来自存储器34的数据进行滤波以将这些数据内插到子像素分辨率,例如,调用滤波器39以用于此过程。在一些情况下,可将用以产生子像素预测数据的内插滤波技术或模式作为一个或一个以上内插语法元素向熵译码单元46指示以包括于经译码位流中。在双向帧间译码中,基于第二参考帧对第二运动向量重复此过程。MC单元37产生与第二运动向量相关联的预测视频块。MC单元37可基于由ME单元35确定的第二运动向量从存储器34提取预测块。在具有分数像素精确度的运动向量的情况下,MC单元37对来自存储器34的数据进行滤波以将这些数据内插到子像素分辨率,例如,调用滤波器39以用于此过程。在一些情况下,可将用以产生子像素预测数据的内插滤波技术或模式作为一个或一个以上内插语法元素向熵译码单元46指示以包括于经译码位流中。以下更详细地描述滤波器选择。在双向帧间译码中,一旦预测单元32已产生两个预测块,视频编码器50便组合来自两个预测块的数据以产生单一预测块。在其组合期间,可不同地加权所述预测块中的每一者。举例来说,如果帧N的经译码单元使用来自参考帧N-I的第一预测块及来自参考帧 N-2的第二预测块,则在两个预测块的组合期间可比来自参考帧N-2的第二预测块重地加权来自参考帧N-I的第一预测块,以便考虑到在时间上帧N-2比帧N-I距帧N较远。如将在下文中更详细地描述,MC单元37可计算每一整数及子像素位置的DC偏移。 偏移值可包含用以向上或向下偏置对应视频块的所有像素值的绝对值或带正负号的值,其再一次可对视频编码中所遇到的场景改变、闪光、照明改变或类似者为非常有用的。本发明的偏移技术可应用于亮度块、色度块或所述两者。可针对与每一类型的视频块(例如,亮度及色度块)相关联的每一整数及子整数像素位置而定义不同偏移。此外,不同偏移可被指派给每一特定大小的每一块、每一块的分区或子分区。在本发明中可互换地使用术语“偏移”与“DC偏移”。一旦定义了偏移值,MC单元37便可执行第二译码遍次以便基于预测数据及偏移来译码视频数据。明确地说,MC单元37可将偏移值应用于原始预测视频块以产生偏移预测视频块,且基于所述偏移预测视频块编码经译码单元的视频块。通过根据预测块的像素位置(整数位置或多个可能子整数像素位置中的一者)而以基于位置的方式将偏移添加到预测块的像素值,预测块可更类似于正被译码的块,此可改进译码效率。此外,由于针对不同像素位置不同地定义偏移值,因此本发明的技术可提供用以实现在与不同类型的内插相关联的数据译码间的分段的能力。一旦MC单元37已产生偏移预测数据(例如,可为内插的数据或基于整数的数据的偏移预测视频块),视频编码器50便通过从正被译码的原始视频块减去偏移预测块而形成残余视频块(图2中标注为“残余块”)。加法器48表示执行此减法运算的组件。变换单元38将变换(例如离散余弦变换(DCT)或概念上类似的变换)应用到残余块,从而产生包含残余变换块系数的视频块。举例来说,变换单元38可执行其它变换,例如由H. 264标准定义的变换,其在概念上类似于DCT。还可使用小波变换、整数变换、子带变换或其它类型的变换。在任一情况下,变换单元38将变换应用到残余块,从而产生残余变换系数的块。 变换可将残余信息从像素域转换到频域。量化单元40量化残余变换系数以进一步减小位速率。量化过程可减小与所述系数中的一些或所有者相关联的位深度。举例来说,在量化期间可将16位值舍去到15位值。 此外,量化单元40还可使用本发明的技术来量化不同偏移以将所要数目的位分配到不同偏移的相应整数及分数部分。明确地说,量化单元40可针对偏移值中的每一者将第一数目的位指派给给定偏移值的整数部分,且将第二数目的位指派给所述给定偏移值的分数部分,其中基于整数部分的量值确定第一数目的位及第二数目的位。熵译码单元46可与编码第二数目的位不同地编码第一数目的位。在量化之后,熵译码单元46对经量化的变换系数进行熵译码。举例来说,熵译码单元46可执行CAVLC、CABAC或另一熵译码方法。熵译码单元46还可译码从预测单元32或视频编码器50的其它组件获得的一个或一个以上预测语法元素。所述一个或一个以上预测语法元素可包括译码模式、一个或一个以上运动向量、用以产生子像素数据的内插技术、 滤波器系数的集合或子集,或与预测块的产生相关联的其它信息。系数预测及量化单元41 可预测性地编码及量化预测语法,例如滤波器系数。在由熵译码单元46进行熵译码之后,经编码的视频及语法元素可被发射到另一装置或被存档以用于稍后发射或检索。经译码位流可包括经熵译码的残余块、这些块的运动向量,及包括识别在经译码单元内的不同整数及子整数像素位置处的多个不同偏移的偏移值的其它语法。逆量化单元42及逆变换单元44分别应用逆量化及逆变换以重构像素域中的残余块,例如,用于稍后用作参考块。经重构的残余块(在图2中标注为“经重构的残余块”)可表示提供到变换单元38的残余块的经重构版本。归因于由量化及逆量化运算引起的细节的损失,经重构的残余块可与由加法器48产生的残余块不同。求和器51将经重构的残余块相加到由预测单元32产生的经运动补偿的预测块以产生用于存储于存储器34中的经重构的视频块。经重构的视频块可由预测单元32用作参考块,其可用以随后译码随后视频帧或随后经译码单元中的块。如上所述,预测单元32可执行具有分数像素(或子像素)精确度的运动估计。当预测单元32使用分数像素运动估计时,预测单元32可使用本发明中描述的内插运算产生子像素分辨率的数据(例如,子像素或分数像素值)。换句话说,将内插运算用以计算在整数像素位置之间的位置处的值。位于整数像素位置之间的距离一半处的子像素位置可称作半像素位置,位于整数像素位置与半像素位置之间的距离一半处的子像素位置可称作四分之一像素位置,位于整数像素位置(或半像素位置)与四分之一像素位置之间的距离一半处的子像素位置可称作八分之一像素位置,等等。图3为说明视频解码器60的实例的框图,所述视频解码器60解码以本文中描述的方式编码的视频序列。视频解码器60包括运动补偿单元55,其在解码期间执行本发明的偏移技术。明确地说,在解码侧上,运动补偿单元55可从熵解码单元52接收语法元素,所述语法元素识别用于经译码单元的多个偏移值,例如,定义用于整数像素位置及一个或一个以上非整数像素位置的不同偏移。运动补偿单元55可基于从熵解码单元52接收的运动向量而产生预测数据,且可(基于预测数据的像素位置)将适当偏移添加到此预测数据以产生偏移预测数据。预测数据可为内插数据,在所述情况下,用于非整数位置的偏移值中的对应一者可应用于预测数据以产生偏移预测数据。基于此偏移预测数据,可解码视频数据 (例如,经重构的残余视频块)。明确地说,解码器60可将偏移预测数据与残余视频块组合以产生经编码的原始视频块。熵解码单元52对所接收的位流进行熵解码以产生经量化的系数(在图3中标注为“量化系数”)及语法(例如,经译码单元的运动向量及多个偏移值,在图3中标注为“偏移值”及“运动向量”)。将语法从熵译码单元52转发到运动补偿单元55。逆量化单元56 逆量化(即,解量化)经量化的块系数。逆量化过程可为如由H. 264解码所定义的常规过程。逆变换单元58将逆变换(例如,逆DCT或概念上类似的逆变换过程)应用到变换系数以便产生像素域中的残余块。运动补偿单元阳产生经运动补偿的块,有可能基于也可包括于语法中的一个或一个以上内插滤波器系数集合而执行内插。一旦运动补偿单元55基于运动向量产生预测块,便可将用于每一预测块的适当偏移添加到预测块以产生在由编码器执行的原始编码中所使用的偏移预测块。 求和器64通过将残余块与由运动补偿单元55产生的对应偏移预测块求和来解码残余块以形成经解码的块。如果需要的话,还可应用去块滤波器以对经解码的块进行滤波以便移除成块假影。接着将经解码的视频块存储于参考帧存储装置62中,所述参考帧存储装置62提供用于随后运动补偿的参考块且还向驱动显示装置(例如图1的装置28)产生经解码的视频。再次,本发明的技术涉及将偏移应用于经运动补偿的双向预测数据,其中将不同偏移用于由内插定义的整数像素位置及不同的子整数像素位置。编码器使用本发明的技术来定义及应用不同的偏移值,且解码器解译从编码器发送的语法元素以便识别由编码器定义及使用的同一偏移值。将适当偏移应用于预测数据的像素值,且基于针对此预测数据而定义的像素位置(例如,整数像素位置或若干可能的非整数像素位置中的一者)来选择适当偏移。图4为说明与预测数据相关联的整数像素(或全像素)位置及与内插预测数据相关联的子像素(或分数像素)位置的概念图。在图4的概念说明中,不同的框表示在帧或帧的块内的像素及子像素位置。大写字母(在具有实线的框中)表示整数像素位置,而小写字母(在具有虚线的框中)表示子像素位置。明确地说,像素位置A1-A6、B1-B6、C1-C6、 D1-D6、E1-E6及F1-F6表示帧、切片或其它经译码单元中的整数像素位置的6乘6阵列。子像素位置“a”到“ο表示与整数像素C3相关联的十五个子像素位置,例如,在整数像素位置 C3、C4、D3与D4之间。子像素位置“a”到“O”表示与整数像素C3相关联的十五个子像素位置,例如,在整数像素位置C3、C4、D3与D4之间。子像素位置“a”到“O”表示与整数像素 C3相关联的每个半像素及四分之一像素位置。类似地,子像素位置“a' ”到“ο' ”表示与整数像素E5相关联的十五个子像素位置,例如,在整数像素位置E5、E6、F5与F6之间。对于每个整数像素位置,可存在类似的子像素位置。为了简单起见,未展示其它分数位置中的大多数(除了以上提到的分数位置之外,所述以上提到的分数位置用以产生与像素“C3”相关联的15个不同分数位置中的一者或一者以上)。当最初产生视频数据时,整数像素位置可与物理传感器元件(例如光电二极管) 相关联。光电二极管可测量在传感器的位置处光源的强度且使像素强度值与整数像素位置相关联。再一次地,每一整数像素位置可具有相关联的十五个子像素位置(或可能更多) 的集合。与整数像素位置相关联的子像素位置的数目可视所要的精确度而定。在图4中说明的实例中,所要的精确度为四分之一像素精确度,在所述情况下,整数像素位置中的每一者与十五个不同的子像素位置对应。可基于所要的精确度使更多或更少的子像素位置与每一整数像素位置相关联。举例来说,对于半像素精确度,每一整数像素位置可与三个子像素位置对应。作为另一实例,对于八分之一像素精确度,整数像素位置中的每一者可与六十三个子像素位置对应。每一像素位置可定义一个或一个以上像素值,例如,一个或一个以上亮度及色度值。Y可表示亮度,且Cb及Cr可表示三维YCbCr色空间的色度的两个不同值。对于三维色空间,每一像素位置可实际上定义三个像素值。然而,为了简单起见,本发明的技术可指代相对于一个维度的预测。就相对于一个维度中的像素值描述技术来说,可将类似技术扩展到其它维度。每一像素可对应于视频块的右上方像素,以使得所述像素界定所述视频块。对于内插或外推,可相对于距相应子整数像素具有相同空间距离的不同整数像素以相同方式内插或外推视频块的像素中的每一者。举例来说,在ITU H. ^4/AVC标准中,为了在半像素位置处获得亮度信号,通常使用具有系数[1、-5、20、20、-5、1]的6分接头维纳(Wiener)滤波器。接着,为了在四分之一像素位置处获得亮度信号,使用双线性滤波器。双线性滤波器还可用于分数像素内插中以获得色度分量,在H. ^4/AVC中,其可具有高达1/8像素精确度。与ITU-T H. 264标准相符,举例来说,预测单元32可使用6分接头内插滤波器(例如维纳滤波器)来确定半像素位置的像素值。在H. 264标准的情况下,6分接头内插滤波器的滤波器系数通常为[1、-5、20、20、-5、1],但可使用其它系数。预测单元32可首先在水平方向上且接着在垂直方向上应用内插滤波器,或反之亦然。对于半像素位置“b”及“h”, 每一分接头可分别对应于水平及垂直方向上的整数像素位置。明确地说,对于半像素位置 “b”,6分接头滤波器的分接头对应于C1、C2、C3、C4、C5及C6。同样地,对于半像素位置“h”, 6分接头滤波器的分接头对应于A3、B3、C3、D3、E3及F3。举例来说,可使用等式(1)及(2) 计算子像素位置“b”及“h”的像素值b = ((Cl-5*C2+20*C3+20*C4-5*C5+C6)+16)/32 (1)h = ((A3-5*B3+20*C3+20*D3-5*E3+F;3)+16)/32 (2)对于半像素位置“j”,6分接头滤波器的分接头自身对应于水平地内插于位置 C1-C6与D1-D6之间,或垂直地内插于位置A3-F3与A4-F4之间。可通过使用半像素位置的先前内插的像素值的6分接头滤波器计算半像素位置“j”,例如,根据等式C3)或中的
一者j = ((aa-5*bb+20*b+20*hh_5*ii+jj)+16)/32 (3)j = ((cc-5*dd+20*h+20*ee-5*ff+gg)+16)/32 (4)其中(如图4中所说明)aa对应于A3与A4之间的内插,bb对应于B3与B4之间的内插,b对应于C3与C4之间的内插,hh对应于D3与D4之间的内插, 对应于Ε3与Ε4 之间的内插,且j j对应于F3与F4之间的内插。在等式4中,cc对应于Cl与D1之间的内插,dd对应于C2与D2之间的内插,h对应于C3与D3之间的内插,ee对应于C4与D4之间的内插,ff对应于C5与D5之间的内插,且gg对应于C6与D6之间的内插。与H. 264标准相符,预测单元32可使用双线性内插滤波器及周围的整数及半像素位置的像素值确定在四分之一像素位置“a”、“c”、“d”、“e”、“f”、“g”、“i”、“k”、“l”、“m”、 “η”及“0”处的像素值。举例来说,预测单元32可使用C3及“b”的像素值确定与子像素位置“a”相关联的像素值,使用“b”及C4的像素值确定与子像素位置“C”相关联的像素值,寸寸。图4为在第一参考数据列表内的第一参考视频单元的概念图。基于第一参考数据列表内的第一参考视频单元,以上相对于图4描述的技术产生与子整数像素位置相关联的第一预测值块。如上所述,在双向帧间译码中,还需要第二参考单元以形成用于待编码的当前块的预测视频单元。以类似于以上相对于图4描述的方式的方式,使用第二参考数据列表内的第二参考视频单元来产生与子整数像素位置相关联的第二预测值块。第一及第二列表可包含不同参考帧、来自不同帧的不同切片、来自相同参考帧的不同切片、一个或一个以上先前或随后帧的数据的不同部分,或(可能)各自包括来自一个或一个以上帧、切片或其它经译码单元的数据的不同数据集合。在运动估计之后,可识别给定视频块的最佳运动向量,例如,使用速率-失真模型以便平衡译码速率及视频质量。在运动补偿期间使用给定块的最佳运动向量形成预测视频块。如上所述,一旦预测单元32已产生两个预测块,视频编码器50便组合所述两个预测块以产生单一预测块。在其组合期间,可不同地加权所述预测块中的每一者。举例来说,如果帧N的经译码单元使用来自参考帧N-I的预测块及来自参考帧N-2的预测块,则在两个预测块的组合期间可比参考帧N-2重地加权参考帧N-1,以便考虑到在时间上帧N-2比帧N-I 距帧N较远。如上概述,通过从原始视频块减去预测视频块来形成残余视频块。接着对残余块应用变换,且对变换系数进行量化及熵译码以进一步减小位速率。本发明的技术包括将偏移添加到双向预测视频单元。如以下将更详细地描述,对于每一子像素位置,基于第一参考数据列表内的第一参考视频单元计算第一偏移值。接着, 对于每一子像素位置,基于第二参考数据列表内的第二参考视频单元计算第二偏移值。然而,第二偏移值计算使用先前计算的第一偏移值。计算第一及第二偏移值产生用于四分之一像素精确度的三十二个偏移值每个子像素及整数像素位置两个偏移,即,第一偏移及第二偏移。为了确定每一位置的最终偏移值,将第一偏移值与来自第一预测块的位置的第一预测进行组合,且将第二偏移与来自第二预测块的位置的第二预测进行组合,且将所述结果除以2(除非使用了加权)。偏移的值可为位置特定的,因为针对不同整数及子整数像素位置定义了不同偏移。由于像素“b”及“b' ”相对于整数像素C3及E5定义相同子整数像素位置,因此与由这两个像素“b”及“b' ”识别的视频块相关联的偏移可为相同的。然而,由于像素“C”及 "d' ”相对于整数像素C3及E5定义不同子整数像素位置,因此与由像素“C”及“d' ”识别的视频块相关联的偏移可为不同的。十六个不同像素位置“C3”、“a”、“b”、“C”、“d”、“e”、 “ f ”、“ g”、“h ”、“ i ”、“ j ”、“ k”、“ 1 ”、“m”、“η ”及“ ο ”中的每一者可定义不同偏移。此夕卜,这些不同偏移还可分别应用于十六个不同像素位置“E5”、“a' ”、“b' ”、“c' ”、“d' ”、“e',,、 "f' ”、“g' ”、“h' ”、“i' ”、“j' ”、“k' ”、“1' ”、“m' ”、“η' ”及“ο' ” 中的每一者。偏移可定义带正负号的值,所述带正负号的值基本上使预测块的每个像素值向上或向下偏置以产生偏移预测块。再一次,使用偏移的偏置可有助于捕获视频序列的不同帧之间的照明改变。偏移可被称作DC偏移,因为其包含经译码单元的具有同一样本位置(整数或特定子整数位置)的所有像素的平均数相对于所有对应的预测像素的平均数之间的差。也就是说,因为以同一方式且按同一程度偏置块的像素中的每一者,所以偏移导致从(例如)DCT 计算产生的经变换数据的DC值的改变,其中DC值为从变换计算产生的矩阵的左上方值。这是因为DC值表示块的像素值的平均值。因此,通过按特定值偏置像素,将以类似方式偏置从变换计算产生的DC值。因此,在一些实例中,可将DC偏移应用于从变换计算产生的DC 值,而非将DC偏移应用于块的每一像素。在一些实例中,可对整数及子整数像素位置中的每一者指派不同偏移值。将对应于由运动向量参考的像素或子像素的偏移值应用于块的每一像素。借助于具体实例,对于像素位置、”、竹”、、”、“广、1”、“!11”、“11”及“0”,可分别指派偏移值{1、6、4、5、7、3、8、 2},以将范围在1与8之间的偏移值指派给像素及子像素位置。也就是说,偏移值映射可为 {C3- >空值、a- >空值、b- >空值、C- >空值、d- >空值、e- > 1、f- > 6、g- > 4、h- > 空值、i_ > 5、j- >空值、k- > 7、1- >空值、m- > 3、n- > 8、ο- > 2}。在另一实例中,偏移值可包含参考帧的像素的平均值与当前帧的像素的平均值之间的差。将此差称作DCframe,在一个实例中,当0 < DCframe < 1. 5时,将具有量值1的偏移指派给I(M)Cframe (舍入到最接近的整数)个像素位置。举例来说,在DCframe等于 0. 83的情况下,对十六个像素位置中的八者指派具有量值1的偏移。作为另一实例,使DCmb表示参考块的像素的平均值与当前块的像素的平均值之间的差。另外,使DCmin为指派给至少阈值数目的宏块的DCmb的最小值,且使DCmax为指派给至少所述阈值数目的宏块的DCmb的最大值。在一个实例中,当DCframe > 1. 5时,对像素值中的每一者指派范围在DCmin与DCmax之间的偏移值。再一次地,图4展示具有大写字母的实线框中的整数像素样本(还称作全像素)。 对于任何给定整数像素样本,可存在15个子像素位置,在图4中针对整数像素样本“C3”展示子像素位置且将其标记为“a”到“0”。根据H. 264/AVC, MC单元37可首先使用一维6分接头维纳滤波器来计算半像素位置“b ”、“h ”及“ j ”。可首先在水平方向上且接着在垂直方向上应用内插滤波器,或反之亦然。MC单元37可接着使用双线性滤波器及已经计算出的半像素样本来对剩余的四分之一像素位置进行滤波。经应用以产生内插数据的实际滤波器可具有广泛多种实施方案。作为一个实例, 可应用固定、预定内插滤波器的若干集合,且可选择产生最佳预测数据的集合。在一些实例中,可基于用于一个或一个以上参考帧的历史内插数据选择内插滤波器,如本发明中描述。 按照本发明,偏移的添加发生于从待在译码中使用的参考帧产生任何内插预测数据之后, 但在针对待译码的当前帧执行运动估计之前。MC单元37可使用具有偏移的切换式内插滤波器(SIFO)方案。MC单元37可在多个固定内插滤波器39之间选择,例如,所述滤波器39可由内插滤波器系数的多个不同预定义集合分别定义。可针对每一经译码单元层级(例如,帧层级或切片层级)或针对每一子像素位置(样本层级)执行内插滤波器的选择。此外,根据本发明,还可在预测之后添加DC 偏移,且还可针对每一可能的整数或分数像素位置定义DC偏移,如本发明中所描述。因此,MC单元37可使用固定内插滤波器39的不同集合以便定义内插数据的若干可能替代方案。作为实例,MC单元37可使用标准的ITU-T H. 264滤波器集合、基于H. 264/ AVC但具有较高精确度(无针对1/2像素位置的中间舍入及针对1/4像素位置的偏置舍入) 的滤波器集合,或定制内插滤波器的集合。可通过使用训练视频序列的集合来预定义定制内插滤波器的集合。MC单元37可选择提供最佳预测(即,较小预测误差能量)的滤波器集合。也就是说,可针对每一子像素位置选择滤波器以便使经运动补偿的经滤波参考与正被预测的块之间的误差最小化。在一个实例中,可根据以下伪码计算针对来自列表0的子像素位置(例如,sub_pos
)及来自列表1的子像素位置(例如,sub_pos[l])的组合累加的误差tmp=valOrg -
clip 1 a(((wbp_weight
[fw_ref_idx] [bw_ref_idx][ 0] * predF[i] +
wbp_weight[ 1 ] [fw_ref_idx] [bw_ref_idx]
* predB[j] + (wp_offset
[fw_ref_idx]
+ wp_offset[ 1 ] [bw_ref_idx]
) * 2 * wp_luma_round + 2 * wp_luma一round * (1 - img->bipred_rounding))>> (luma_log_weight_denom+l)));
AccErrorB[i]|J][sub_pos
][sub_pos[l]] +=(tmp * tmp);其中项“predF[i] ”及“predB[j],,为对应于滤波器i及j的正向及反向预测,项 "wbp_weight
经由持久保留的用于共享写访问的资源仲裁的制作方法带有量化的视频流装备及其方法用于显示联系人窗件的方法和装置的制作方法基站装置、移动站装置、移动通信系统以及通信方法 [bw] [bw] [comp] ”表示在加权预测中使用的权数,项"wp_off set
经由持久保留的用于共享写访问的资源仲裁的制作方法带有量化的视频流装备及其方法用于显示联系人窗件的方法和装置的制作方法基站装置、移动站装置、移动通信系统以及通信方法 [ref] [comp],,为加权预测中的偏移,且项‘‘ img- > biprecLrounding”控制B切片中的舍入。当不使用加权预测时,第一语句简化为以下形式tmp = valOrg-((predF[i]+predB[j]+1-img- > bipred_rounding) >> 1);借助于实例,MC单元37从固定内插滤波器39的集合选择第一滤波器“i”,例如, 滤波器F1,且产生用于正向预测的子像素预测数据,S卩,predF[Fl]。MC单元37接着从固定内插滤波器39的集合选择第二滤波器“j”,例如,滤波器F2,且产生用于反向预测的子像素预测数据,即,predB[F2]。根据由以上呈现的伪码表示的技术,使用用于正向预测的子像素预测数据及用于反向预测的子像素预测数据计算累加的误差值ACCErr0rB[Fl]F2] [sub_ pOS
][Sub_pOS[l]]。MC单元37存储滤波器Fl与F2的组合的累加的误差值。接着,MC 单元37从固定内插滤波器39的集合选择另外两个滤波器以产生用于正向及反向预测的子像素预测数据。如先前,计算且存储累加的误差值。MC单元37可针对固定内插滤波器集合中的每一组合继续执行此累加且存储误差值的过程。在一些实例中,MC单元37可针对子像素位置中的每一者选择默认滤波器,例如,标准ITU-T H. 264滤波器集合。在一个实例中,如果至少一个组合的累加的误差值低于阈值误差值,则MC单元37可针对预定数目的滤波器组合继续执行所述过程。一旦MC单元37计算且存储了固定内插滤波器39的集合的各种累加的误差值,MC单元37便开始针对每一子像素位置选择滤波器的过程。在一个实例中,在累加了滤波器39的每一组合的预测误差之后,MC单元37针对固定内插滤波器39的每一集合计算用以编码滤波器系数侧信息的速率-失真成本。举例来说,MC单元37可使用成本函数以便确定作为速率及失真的函数的用以针对固定内插滤波器的每一集合编码滤波器系数的成本。在一些实例中,可将以位为单位的成本乘以比例因子。一旦已计算了每一滤波器集合的成本,便可相互比较每一滤波器集合的成本及累加的误差值,且可选择导致最低误差及最低成本的滤波器集合。一旦由MC单元37选择了滤波器且产生或内插了预测数据,便可基于与内插的(或非内插的)数据相关联的样本位置将DC偏移应用于预测数据。明确地说,本发明提供针对不同整数或子整数像素位置使用不同DC偏移。再一次地,在图4中展示的实例数据中,这意味着十六个不同像素位置 “ C3 ”、“ a ”、“ b ”、“ c ”、“ d ”、“ e ”、“ f ”、“ g ”、“ h ”、“ i ”、“ j ”、 “k”、“l”、“m”、“n”及“O”中的每一者可定义其自身的不同偏移。因此,对于十六个可能的整数及子整数位置,可存在十六个不同偏移。此外,这些不同偏移还可分别应用于十六个不同像素位置“E5”、“a' ”、“b' ”、“c' ”、“d' ”、“e' ”、“f' ”、“g' ”、“h' ”、“i' ”、“j' ”、 "k' ”、“Γ ”、“m' ”、“η' ”及“ο' ” 中的每一者。将DC偏移添加到预测数据的像素可有助于捕获在不同视频帧之间的照明改变的效应。照明改变可由视频序列中的例如闪光或变暗的天空等事物引起。H.264/AVC使用加权预测,其可允许将偏移添加到预测像素值。然而,仅在帧层级上可允许由H. ^4/AVC加权预测定义的DC偏移,这意味着针对给定帧仅定义一个偏移值,而不管视频块的预测数据是否为内插的。换句话说,对于帧层级偏移,同一帧中的所有像素具有同一 DC偏移。根据本发明,在一些情况下,可针对与内插及非内插的数据相关联的不同样本位置不同地定义DC偏移。因此,可针对图4中所展示的15个子像素位置(“a”、“b”、“c”、 “ d ”、“ e ”、“ f ”、“ g ”、“ h ”、“ i ”、“ j ”、“ k ”、“ 1 ”、“m ”、“ η ” 及 “ ο ”)中的每一者定义不同 DC 偏移,且可针对整数像素位置定义另一 DC偏移。当将基于样本的DC偏移用于四分之一像素精确度时,可对总共16个DC偏移进行译码且将其在用于解码器的视频位流中作为语法元素发送。通过应用基于样本的DC偏移,MC单元37可提供简单但有效的运动分段工具。作为实例,视频帧可含有变暗的天空作为静止背景及运动对象作为前景。在此情况下,背景及前景可具有不同程度的照明改变,且通过使用由识别给定视频块的像素的位置所定义的位置特定DC偏移值,运动补偿单元37可能够以比在没有这些位置特定DC偏移值的情况下所能实现的效率更高的方式捕获前景及背景中的不同程度的照明改变。如上提到,本发明的技术包括将偏移添加到双向预测视频块。因为双向预测视频块使用来自两个不同参考数据列表的两个不同参考视频单元,所以可针对与不同参考帧相关联的每一整数及子整数位置计算两个不同DC偏移。然而,如果基于第一参考数据列表内的第一参考视频单元针对每一整数及子整数位置计算合意的第一偏移,且如果基于第二参考数据列表内的第二参考视频单元针对每一整数及子整数位置计算合意的第二偏移,则第一与第二合意的偏移的组合将未必导致合意的偏移。举例来说,第一与第二偏移的组合可导致大于合意偏移的偏移。根据本发明的技术,可共同地计算每一整数及子整数位置的两个不同偏移以便产生合意的偏移。首先,针对一个列表(例如,列表0)计算偏移,且接着通过考虑来自另外列表(例如,列表0)的先前确定的偏移而计算另一列表(例如,列表1)的偏移。可针对列表0中的最靠近的参考帧计算第一 DC偏移的集合。对于每一子像素位置sub_p0s W],可将DC偏移作为当前帧中具有对应于子像素位置sub_p0s W]的运动向量精确度的所有像素的平均数与其双向预测的内插值的平均数之间的差来计算。用于列表0 中的帧0的子像素偏移的计算的误差经累加于“AccFrameOffsetF[ref_frame
] ”中,如以下伪码中描述
权利要求
1.一种用于编码当前视频块的视频编码方法,所述方法包含经由编码器,基于第一参考数据列表内的第一参考视频单元内插与子整数像素位置相关联的第一预测值块,且基于第二参考数据列表内的第二参考视频单元内插与所述子整数像素位置相关联的第二预测值块;经由编码器,针对子整数像素位置,基于所述第一预测值块及所述当前视频块计算第一偏移值,且基于所述第一偏移值及所述第二预测值块计算第二偏移值;经由编码器,基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块;及经由编码器,基于所述最终偏移值块编码所述当前视频块。
2.根据权利要求1所述的方法,其中由固定内插滤波器执行内插所述第一预测值块及所述第二预测值块。
3.根据权利要求1所述的方法,其中确定最终偏移值块包含 将权数应用于所述第一偏移值及所述第二偏移值中的至少一者。
4.根据权利要求1所述的方法,其中确定最终偏移值块包含将所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值相加在一起以产生偏移预测总和;将所述偏移预测总和除以二以产生预测误差; 累加每一子整数像素位置的所述预测误差;及将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值。
5.根据权利要求1所述的方法,其中确定最终偏移值块包含 将所述第一预测值块与所述第一偏移值相加以产生第一偏移预测总和; 将所述第二预测值块与所述第二偏移值相加以产生第二偏移预测总和;将所述第一偏移预测总和乘以第一权数以产生第一加权偏移预测总和,且将所述第二偏移预测总和乘以第二权数以产生第二加权偏移预测总和;将所述第一加权偏移预测总和与所述第二加权偏移预测总和相加以产生最终加权偏移预测总和;将所述最终加权偏移预测总和除以正规化项以产生预测误差; 累加每一子整数像素位置的所述预测误差;及将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值。
6.根据权利要求1所述的方法,其进一步包含编码所述最终偏移值块作为包括所述经译码的当前视频块的经译码位流的部分。
7.根据权利要求6所述的方法,其进一步包含将所述经译码位流从源装置发射到目的地装置。
8.根据权利要求6所述的方法,其中编码所述最终偏移值块包含将第一数目的位指派给所述最终偏移值块中的偏移值的整数部分,且将第二数目的位指派给所述最终偏移值块中的所述偏移值的分数部分,且其中基于所述整数部分的量值而确定所述第一及第二数目的位。
9.根据权利要求6所述的方法,其中所述最终偏移值块包括用于整数像素位置的一个偏移值及用于不同子整数像素位置的若干偏移值。
10.根据权利要求9所述的方法,其中所述最终偏移值块包括用于十五个不同子整数像素位置的十五个不同偏移值。
11.一种编码视频数据的设备,所述设备包含视频编码器,所述视频编码器基于第一参考数据列表内的第一参考视频单元而内插与子整数像素位置相关联的第一预测值块,且基于第二参考数据列表内的第二参考视频单元而内插与所述子整数像素位置相关联的第二预测值块;针对子整数像素位置,基于所述第一预测值块及当前视频块计算第一偏移值,且基于所述第一偏移值及所述第二预测值块计算第二偏移值;基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块;及基于所述最终偏移值块编码所述当前视频块。
12.根据权利要求11所述的设备,其中所述视频编码器包含至少一个固定内插滤波器,其内插所述第一预测值块及所述第二预测值块。
13.根据权利要求11所述的设备,其中为了确定所述最终偏移值块,所述视频编码器将权数应用于所述第一偏移值及所述第二偏移值中的至少一者。
14.根据权利要求11所述的设备,其中为了确定所述最终偏移值块,所述视频编码器将所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值相加在一起以产生偏移预测总和,将所述偏移预测总和除以二以产生预测误差,累加每一子整数像素位置的所述预测误差,且将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值。
15.根据权利要求11所述的设备,其中为了确定所述最终偏移值块,所述视频编码器 将所述第一预测值块与所述第一偏移值相加以产生第一偏移预测总和,将所述第二预测值块与所述第二偏移值相加以产生第二偏移预测总和, 将所述第一偏移预测总和乘以第一权数以产生第一加权偏移预测总和,且将所述第二偏移预测总和乘以第二权数以产生第二加权偏移预测总和;将所述第一加权偏移预测总和与所述第二加权偏移预测总和相加以产生最终加权偏移预测总和;将所述最终加权偏移预测总和除以正规化项以产生预测误差; 累加每一子整数像素位置的所述预测误差;及将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值。
16.根据权利要求11所述的设备,其中所述视频编码器编码所述最终偏移值块作为包括所述经译码的当前视频块的经译码位流的部分。
17.根据权利要求16所述的设备,其中所述视频编码器将第一数目的位指派给所述最终偏移值块中的偏移值的整数部分,且将第二数目的位指派给所述最终偏移值块中的偏移值的分数部分,且其中所述第一及第二数目的位是基于所述整数部分的量值而确定的。
18.根据权利要求16所述的设备,其中所述最终偏移值块包括用于整数像素位置的一个偏移值及用于不同子整数像素位置的若干偏移值。
19.根据权利要求18所述的设备,其中所述最终偏移值块包括用于十五个不同子整数像素位置的十五个不同偏移值。
20.根据权利要求11所述的设备,其中所述视频编码器形成无线通信装置的部分。
21.根据权利要求11所述的设备,其中所述视频编码器包含集成电路装置。
22.—种计算机可读媒体,其包含在所述计算机可读媒体上编码的指令,所述指令在执行时致使视频编码器内的处理器基于第一参考数据列表内的第一参考视频单元内插与子整数像素位置相关联的第一预测值块,且基于第二参考数据列表内的第二参考视频单元内插与所述子整数像素位置相关联的第二预测值块;针对子整数像素位置,基于所述第一预测值块及当前视频块计算第一偏移值,且基于所述第一偏移值及所述第二预测值块计算第二偏移值;基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块;及基于所述最终偏移值块编码所述当前视频块。
23.根据权利要求22所述的计算机可读媒体,其中所述致使所述处理器内插所述第一预测值块及所述第二预测值块的指令包含致使所述处理器从一组固定内插滤波器中选择一组内插滤波器的指令。
24.根据权利要求22所述的计算机可读媒体,其中所述致使处理器确定最终偏移值块的指令包含致使处理器将权数应用于所述第一偏移值及所述第二偏移值中的至少一者的指令。
25.根据权利要求22所述的计算机可读媒体,其中所述致使处理器确定最终偏移值块的指令包含致使处理器进行以下操作的指令将所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值相加在一起以产生偏移预测总和;及将所述偏移预测总和除以二以产生预测误差; 累加每一子整数像素位置的所述预测误差;及将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值。
26.根据权利要求22所述的计算机可读媒体,其中所述致使处理器确定最终偏移值块的指令包含致使处理器进行以下操作的指令将所述第一预测值块与所述第一偏移值相加以产生第一偏移预测总和; 将所述第二预测值块与所述第二偏移值相加以产生第二偏移预测总和; 将所述第一偏移预测总和乘以第一权数以产生第一加权偏移预测总和,且将所述第二偏移预测总和乘以第二权数以产生第二加权偏移预测总和;将所述第一加权偏移预测总和与所述第二加权偏移预测总和相加以产生最终加权偏移预测总和;将所述最终加权偏移预测总和除以正规化项以产生预测误差; 累加每一子整数像素位置的所述预测误差;及将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值。
27.根据权利要求22所述的计算机可读媒体,其中所述致使处理器确定最终偏移值块的指令包含致使处理器进行以下操作的指令编码所述最终偏移值块作为包括所述经译码的当前视频块的经译码位流的部分。
28.根据权利要求27所述的计算机可读媒体,其进一步包含致使所述经译码位流从源装置发射到目的地装置的指令。
29.根据权利要求27所述的计算机可读媒体,其中所述致使处理器编码所述最终偏移值块的指令包含致使处理器进行以下操作的指令将第一数目的位指派给所述最终偏移值块中的偏移值的整数部分,且将第二数目的位指派给所述最终偏移值块中的所述偏移值的分数部分,其中所述第一及第二数目的位是基于所述整数部分的量值而确定的。
30.根据权利要求27所述的计算机可读媒体,其中所述最终偏移值块包括用于整数像素位置的一个偏移值及用于不同子整数像素位置的若干偏移值。
31.根据权利要求30所述的计算机可读媒体,其中所述至少一个最终偏移值包括用于十五个不同子整数像素位置的十五个不同偏移值。
32.—种编码视频数据的设备,所述设备包含用于基于第一参考数据列表内的第一参考视频单元内插与子整数像素位置相关联的第一预测值块且基于第二参考数据列表内的第二参考视频单元内插与所述子整数像素位置相关联的第二预测值块的装置;用于针对子整数像素位置基于所述第一预测值块及当前视频块计算第一偏移值且基于所述第一偏移值及所述第二预测值块计算第二偏移值的装置;用于基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块的装置;及用于基于所述最终偏移值块编码所述当前视频块的装置。
33.根据权利要求32所述的设备,其中所述用于内插所述第一预测值块及所述第二预测值块的装置由固定内插滤波器执行。
34.根据权利要求32所述的设备,其中所述用于确定最终偏移值块的装置包含 用于将权数应用于所述第一偏移值及所述第二偏移值中的至少一者的装置。
35.根据权利要求32所述的设备,其中所述用于确定最终偏移值块的装置包含 用于将所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值相加在一起以产生偏移预测总和的装置;用于将所述偏移预测总和除以二以产生预测误差的装置; 用于累加每一子整数像素位置的所述预测误差的装置;及用于将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值的装置。
36.根据权利要求32所述的设备,其中所述用于确定最终偏移值块的装置包含 用于将所述第一预测值块与所述第一偏移值相加以产生第一偏移预测总和的装置; 用于将所述第二预测值块与所述第二偏移值相加以产生第二偏移预测总和的装置; 用于将所述第一偏移预测总和乘以第一权数以产生第一加权偏移预测总和且将所述第二偏移预测总和乘以第二权数以产生第二加权偏移预测总和的装置;用于将所述第一加权偏移预测总和与所述第二加权偏移预测总和相加以产生最终加权偏移预测总和的装置;用于将所述最终加权偏移预测总和除以正规化项以产生预测误差的装置; 用于累加每一子整数像素位置的所述预测误差的装置;及用于将每一子整数像素位置的所述累加的预测误差除以对所述预测误差的贡献的数目以产生每一子整数像素位置的最终偏移值的装置。
37.根据权利要求32所述的设备,其进一步包含用于编码所述最终偏移值块作为包括所述经译码的当前视频块的经译码位流的部分的装置。
38.根据权利要求37所述的设备,其进一步包含用于将所述经译码位流从源装置发射到目的地装置的装置。
39.根据权利要求37所述的设备,其中所述用于编码所述最终偏移值块的装置包含用于将第一数目的位指派给所述最终偏移值块中的偏移值的整数部分且将第二数目的位指派给所述最终偏移值块中的所述偏移值的分数部分的装置,且其中所述第一及第二数目的位是基于所述整数部分的量值而确定的。
40.根据权利要求37所述的设备,其中所述最终偏移值块包括用于整数像素位置的一个偏移值及用于不同子整数像素位置的若干偏移值。
41.根据权利要求40所述的设备,其中所述最终偏移值块包括用于十五个不同子整数像素位置的十五个不同偏移值。
42.一种视频编码方法,其包含经由编码器,作为第一遍次,使用序列滤波器在不使用偏移的情况下编码当前帧; 如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则 经由编码器,作为图片次序内容(POC)遍次,使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧;如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则将所述POC加权参考帧用于编码;及存储所述POC遍次的所述速率-失真特性作为变量;如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则存储所述第一遍次的所述速率-失真特性作为所述变量;如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则存储所述第一遍次的所述速率-失真特性作为所述变量;经由编码器,计算关于所述当前帧的帧滤波器及偏移; 经由编码器,作为第二遍次,使用所述计算的帧滤波器及偏移编码所述当前帧; 如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则存储所述第二遍次的所述速率-失真特性作为所述变量;及将量化步长增加一,且作为第三遍次,使用所述计算的帧滤波器及偏移编码所述当前帧;如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述量化步长增加一,且作为所述第三遍次,使用所述序列滤波器在不使用偏移的情况下编码所述当前帧;如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述第三遍次的所述编码添加到位流;如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述变量的所述编码添加到所述位流;及经由编码器,计算序列滤波器以编码下一个帧。
43.一种编码视频数据的设备,所述设备包含视频编码器,所述视频编码器 作为第一遍次,使用序列滤波器在不使用偏移的情况下编码当前帧;如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则 作为图片次序内容(POC)遍次,使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧;如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则将所述POC加权参考帧用于编码;及存储所述POC遍次的所述速率-失真特性作为变量;如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则存储所述第一遍次的所述速率-失真特性作为所述变量;如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则存储所述第一遍次的所述速率-失真特性作为所述变量; 计算关于所述当前帧的帧滤波器及偏移; 作为第二遍次,使用所述计算的帧滤波器及偏移编码所述当前帧; 如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则存储所述第二遍次的所述速率-失真特性作为所述变量;及将量化步长增加一,且作为第三遍次,使用所述计算的帧滤波器及偏移编码所述当前帧;如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述量化步长增加一,且作为所述第三遍次,使用所述序列滤波器在不使用偏移的情况下编码所述当前帧;如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述第三遍次的所述编码添加到位流;如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述变量的所述编码添加到所述位流;及计算序列滤波器以编码下一个帧。
44.一种计算机可读媒体,其包含在所述计算机可读媒体上编码的指令,所述指令在执行时致使视频编码器内的处理器作为第一遍次,使用序列滤波器在不使用偏移的情况下编码当前帧;如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则 作为图片次序内容(POC)遍次,使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧;如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则将所述POC加权参考帧用于编码;及存储所述POC遍次的所述速率-失真特性作为变量;如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则存储所述第一遍次的所述速率-失真特性作为所述变量;如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则存储所述第一遍次的所述速率-失真特性作为所述变量; 计算关于所述当前帧的帧滤波器及偏移; 作为第二遍次,使用所述计算的帧滤波器及偏移编码所述当前帧; 如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则存储所述第二遍次的所述速率-失真特性作为所述变量;及将量化步长增加一,且作为第三遍次,使用所述计算的帧滤波器及偏移编码所述当前帧;如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述量化步长增加一,且作为所述第三遍次,使用所述序列滤波器在不使用偏移的情况下编码所述当前帧;如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述第三遍次的所述编码添加到位流;如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则将所述变量的所述编码添加到所述位流;及计算序列滤波器以编码下一个帧。
45. 一种编码视频数据的设备,所述设备包含用于经由编码器作为第一遍次使用序列滤波器在不使用偏移的情况下编码当前帧的装置;如果具有id = 0的所有参考帧与所述当前帧分开相同数目的帧,则 用于经由编码器作为图片次序内容(POC)遍次使用关于POC加权参考帧的序列滤波器在不使用偏移的情况下编码所述当前帧的装置;如果所述POC遍次的速率-失真特性定义比所述第一遍次的所述速率-失真特性低的速率失真成本值,则用于将所述POC加权参考帧用于编码的装置;及用于存储所述POC遍次的所述速率-失真特性作为变量的装置; 如果所述第一遍次的所述速率-失真特性定义比所述POC遍次的所述速率-失真特性低的速率失真成本值,则用于存储所述第一遍次的所述速率-失真特性作为所述变量的装置;如果具有id = 0的所有参考帧并非与所述当前帧分开相同数目的帧,则用于存储所述第一遍次的所述速率-失真特性作为所述变量的装置;用于经由编码器计算关于所述当前帧的帧滤波器及偏移的装置;用于经由编码器作为第二遍次使用所述计算的帧滤波器及偏移编码所述当前帧的装置;如果所述第二遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则用于存储所述第二遍次的所述速率-失真特性作为所述变量的装置;及用于将量化步长增加一且作为第三遍次使用所述计算的帧滤波器及偏移编码所述当前帧的装置;如果所述第二遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则用于将所述量化步长增加一且作为所述第三遍次使用所述序列滤波器在不使用偏移的情况下编码所述当前帧的装置;如果所述第三遍次的所述速率-失真特性定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则用于将所述第三遍次的所述编码添加到位流的装置;如果所述第三遍次的所述速率-失真特性不定义比存储于所述变量中的所述速率-失真特性低的速率失真成本值,则用于将所述变量的所述编码添加到所述位流的装置;及用于经由编码器计算序列滤波器以编码下一个帧的装置。
全文摘要
本发明描述用于在视频译码期间将偏移添加到预测视频块的技术。在一个实例中,一种编码视频块的方法包括基于第一参考数据列表内的第一参考视频单元内插第一预测值块,且基于第二参考数据列表内的第二参考视频单元内插第二预测值块;针对子整数像素位置,基于所述第一块及当前视频块计算第一偏移值,且基于所述第一偏移值及所述第二块计算第二偏移值;基于所述第一预测值块、所述第二预测值块、所述第一偏移值及所述第二偏移值确定最终偏移值块;以及基于所述最终偏移值块编码所述当前视频块。
文档编号H04N7/36GK102265619SQ200980137201
公开日2011年11月30日 申请日期2009年9月22日 优先权日2008年9月23日
发明者乔瓦尼·莫塔, 叶琰, 陈培松, 马尔塔·卡切维奇 申请人:高通股份有限公司