CN102172022A - 使用内插滤波器及偏移的数字视频译码 - Google Patents

使用内插滤波器及偏移的数字视频译码 Download PDF

Info

Publication number
CN102172022A
CN102172022A CN2009801391423A CN200980139142A CN102172022A CN 102172022 A CN102172022 A CN 102172022A CN 2009801391423 A CN2009801391423 A CN 2009801391423A CN 200980139142 A CN200980139142 A CN 200980139142A CN 102172022 A CN102172022 A CN 102172022A
Authority
CN
China
Prior art keywords
sub
interpolation filter
video
interpolation
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801391423A
Other languages
English (en)
Other versions
CN102172022B (zh
Inventor
马尔塔·卡切维奇
乔瓦尼·莫塔
叶琰
陈培松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102172022A publication Critical patent/CN102172022A/zh
Application granted granted Critical
Publication of CN102172022B publication Critical patent/CN102172022B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明描述用于使用内插滤波器及偏移来编码数字视频数据的技术。编码器可经配置以基于针对例如帧或切片等先前所编码的视频单元而获得的历史内插结果来选择用于子像素精度运动估计的内插滤波器。所述编码器还可经配置以在内插之后基于参考单元与待译码单元之间的差来计算偏移并将所述偏移指派给子像素位置。可在运动估计之前执行偏移的所述计算及指派。运动估计可经细化以使得运动搜索考虑先前已被加了偏移的子像素位置并评估具有非零偏移的子像素位置。在一些情况下,可在单个编码遍次中执行对给定单元的内插滤波器选择、偏移计算及/或细化运动估计。

Description

使用内插滤波器及偏移的数字视频译码
本申请案主张2008年10月3日申请的第61/102,789号美国临时申请案的权益,所述临时申请案特此以全文引用的方式并入本文中。
技术领域
本发明涉及数字视频译码,且更明确地说,涉及使用内插滤波器及偏移的视频译码技术。
背景技术
可将数字视频能力并入到各种各样的装置中,所述装置包括数字电视、数字直播***、无线广播***、个人数字助理(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-1之后,可在子像素位置中的每一者处确定参考单元N-1与先前参考单元(例如,N-2)中的块之间的内插误差。使用单元N-1的历史误差信息,视频编码器可选择将具有减小的误差值的最佳内插滤波器,且接着使用那些内插滤波器在单元N-1中内插子像素值以用于单元N的运动估计中。
在其它情况下,给定可经选择以用于子像素运动估计中的内插滤波器集合,视频编码器可针对每一内插滤波器及每一子像素位置而累加先前所编码单元与其参考单元之间的内插误差(即,帧N-1、N-2、N-3等上的子像素位置的累加内插误差值)。此经累加内插误差值可充当历史内插结果,所述历史内插结果可用以选择用于参考单元中的子像素位置的内插的内插滤波器,以用于针对待译码的下一单元的运动估计中。举例来说,对于给定子像素位置,可选择具有最低经累加误差值的内插滤波器以用于内插。
经累加误差值可随时间按比例缩小以防止溢出,且引入使较新近经译码单元的贡献比较早经译码单元的贡献具更大权重的窗效应。举例来说,如应用于给定子像素位置的每一内插滤波器的累加误差值可为一系列多个经译码单元上的相应内插滤波器及子像素位置的个别误差值的加权和,其中将较重地加权较新近经译码单元的误差值。编码器可在每一单元的译码之后评估误差值,且选择针对相应子像素位置产生最低累加误差的内插滤波器。
因此,为了选择内插滤波器,视频编码器可依赖于一个先前经译码视频单元或多个先前经译码视频单元的历史内插误差。明确地说,如上文所描述,视频编码器可选择针对先前经译码单元将产生最佳内插误差的内插滤波器集合,且应用所述内插滤波器来对当前经译码单元执行运动估计。在此意义上,如果将产生最佳结果的内插滤波器已用于针对先前经译码单元的运动估计中,那么使用所述内插滤波器来执行对当前单元的运动估计。或者,如上文所描述,视频编码器可选择在一系列单元上产生累加误差值的内插滤波器。在每一情况下,视频编码器依赖于一个或一个以上先前经译码单元的历史内插结果。
可将DC偏移值应用于经内插的像素值(例如)以补偿不同视频译码单元之间的照度改变。可以帧级应用DC偏移,使得帧中的所有像素使用同一DC偏移,或以子像素位置级个别地应用DC偏移。DC偏移值的计算及指派可基于参考单元与待编码的当前单元之间的DC帧及块差。在对待编码的当前单元执行运动估计之前,可在“先验”基础上执行计算。通过分析当前单元与参考单元之间的DC帧及块差,偏移可在无运动向量信息可用时在编码当前单元之前应用,从而准许单遍编码。
例如经构造以根据H.264标准执行的编码器等一些视频编码器可从多个先前所编码并发射的帧中预测一帧。这些参考帧通常存储在一个列表中或两个列表中,且每一列表可含有由正整数索引的若干个帧。一般来说,由零索引的帧(使用两个列表情况下,每一列表中一个帧)为时间上较靠近当前帧的帧。用如本发明中所描述的程序确定的子像素偏移通常仅用于最靠近当前帧的参考帧(由索引零索引的若干个参考帧)上。在所有其它帧上,可独立于子像素位置而使用简单的DC偏移。此偏移可计算为参考帧与当前帧之间的光度差,且跨越当前帧而应用。
细化运动估计过程可经应用以考虑先前加到子像素位置的DC偏移,且强制进行对运动搜索中具有非零DC偏移的子像素位置的评估。预测性运动估计可通过预测较可能对应于待译码块的位置且通过将搜索构造为若干模式来降低运动搜索的复杂性。然而,预测性运动估计过程可能跳过测试DC偏移值已指派给的一些子像素位置。可通过提供在失真估计期间明确搜索具有所定义DC偏移的子像素位置的运动搜索来克服此限制。以此方式,运动搜索可经配置以要求明确搜索具有非零偏移的子像素位置。
此外,运动搜索可经配置以计算虚拟块DC偏移。举例来说,在运动搜索期间计算的SAD误差可考虑所有可能偏移。运动搜索在应用偏移之前对块进行比较(计算块之间的SAD误差)。有可能通过将已计算出的偏移馈入给运动搜索以使得运动搜索可用以考虑此可能性来改进性能。举例来说,如果算法已确定应将子像素偏移用于如下表1中所示的相应位置:
表1
  位置   偏移
  0   0
  1   2
  2   0
  3   0
  4   0
  5   3
  6   1
  7   -2
  8   0
  9   3
  10   0
  11   2
  12   0
  13   -1
  14   1
  15   1
那么两个块的SAD的计算可计算六次,每当在将“虚拟”偏移{-2,-1,0,1,2,3}中的一者加到参考块之后计算一次。可选择具有最小SAD的运动向量。在一个以上位置中出现的偏移值(例如在子像素位置1及11两者中出现的偏移“2”)可仅尝试一次。换句话说,运动估计单元可搜索各自具有相同所计算偏移值的多个子像素中的仅一者。
图1为说明可实施本发明的技术的实例视频编码及解码***10的框图。如图1中所示,***10包括源装置12,其经由通信信道15将经编码的视频发射到目的装置16。源装置12及目的装置16可包含各种各样的装置中的任一者,包括有线及无线装置。在一些情况下,源装置12及目的装置16可包含无线通信装置,例如无线手持机、所谓的蜂窝式或卫星无线电话,或可在通信信道15上传达视频信息的任何无线装置,在所述情况下,通信信道15包括无线通信媒体。
在图1的实例中,源装置12可包括:视频源18、视频编码器20、调制器/解调器(调制解调器)22及发射器24。目的装置16可包括:接收器26、调制解调器28、视频解码器30及显示装置32。源装置12的视频编码器20可经配置以应用本发明中所描述的一种或一种以上译码技术作为视频编码过程的一部分。类似地,目的装置16的视频解码器30可经配置以应用本发明中所描述的一种或一种以上译码技术作为视频解码过程的一部分。
可通过支持达子像素分辨率的经运动补偿内插的任何编码装置来执行本发明中所描述的编码技术。在图1的实例中,源装置12产生经译码的视频数据以供发射到目的装置16。装置12、16可以实质上对称的方式操作,使得装置12、16中的每一者包括视频编码及解码组件。因此,***10可支持视频装置12、16之间的单向或双向视频发射,以(例如)用于视频流式传输、视频重放、视频广播或视频电话。
源装置12的视频源18可包括视频捕捉装置,例如视频相机、含有先前捕捉到的视频的视频档案或来自视频内容提供者的视频馈送。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或现场直播的视频、存档的视频与计算机产生的视频的组合。在一些情况下,如果视频源18为视频相机,那么源装置12及目的装置16可形成所谓的相机电话或视频电话。在每一情况下,经捕捉、预先捕捉或计算机产生的视频可由视频编码器20编码。经编码的视频数据可由调制解调器22根据通信标准来调制,且经由发射器24发射到目的装置16。调制解调器22可包括经设计用于信号调制的各种混频器、滤波器、放大器或其它组件。发射器24可包括经设计用于发射数据的电路,包括放大器、滤波器及一个或一个以上天线。
目的装置16的接收器26在信道15上接收信息,且调制解调器28解调所述信息。由视频解码器30执行的视频解码过程可利用内插滤波器、偏移值、运动向量及残余信息来解码并再现从装置12接收到的视频数据。举例来说,在信道15上传达的信息可包括视频编码器20针对特定帧、切片及块而定义的偏移信息。显示装置32向用户显示经解码的视频数据,且可包含例如以下各项等多种显示装置中的任一者:阴极射线管、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
在图1的实例中,通信信道15可包含任何无线或有线通信媒体,例如射频(RF)频谱或一个或一个以上物理传输线,或无线与有线媒体的任何组合。通信信道15可形成基于包的网络的一部分,例如局域网、广域网或全局网络(例如因特网)。通信信道15通常表示用于将视频数据从源装置12发射到目的装置16的任何合适的通信媒体或不同通信媒体的集合。通信信道15可包括路由器、开关、基站,或可用以促进从源装置12到目的装置16的通信的任何其它设备。
视频编码器20及视频解码器30可根据例如ITU-T H.264标准(或者描述为MPEG-4第10部分:高级视频译码(AVC))等视频压缩标准进行操作。然而,本发明的技术不限于任何特定译码标准。尽管在图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包括适当的多路复用-解多路复用单元或其它硬件及软件,以处置在共用数据流或单独数据流中的音频与视频两者的编码。如果适用,那么多路复用-解多路复用单元可遵照ITU H.223多路复用器协议或例如用户数据报协议(UDP)等其它协议。
ITU-T H.264/MPEG-4(AVC)标准由ITU-T视频译码专家组(VCEG)连同ISO/IEC运动图片专家组(MPEG)一起制订为被称为联合视频小组(JVT)的集体合作的产物。在一些方面中,本发明中所描述的技术可应用于大体遵照H.264标准的装置。H.264标准描述于由ITU-T研究组在2005年3月提出的“ITU-T建议H.264:用于一般视听服务的高级视频译码(ITU-T Recommendation H.264,Advanced Video Coding for genericaudiovisual services)”中,其在本文中可称为H.264标准或H.264规范,或H.264/AVC标准或规范。联合视频小组(JVT)继续研究H.264/MPEG-4AVC的扩展。
视频编码器20及视频解码器30各自可实施为一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一者可包括于一个或一个以上编码器或解码器中,其任一者可集成为相应的移动装置、订户装置、广播装置、服务器等中的组合式编码器/解码器(编解码器)的一部分。
视频序列通常包括一系列视频帧。视频编码器20对个别视频帧内的视频块进行操作以便编码视频数据。所述视频块可具有固定或不同的大小,且可根据指定的译码标准而在大小上有所不同。每一视频帧包括一系列切片。每一切片可包括可布置为子块的一系列宏块。举例来说,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.264/AVC中的4×4或8×8整数变换或离散余弦变换(DCT))之后,可执行量化。量化大体上指代使系数量化以减少用以表示所述系数的数据的量的过程。量化过程可减小与一些或所有系数相关联的位深度。举例来说,16位值在量化期间可下舍入为15位值。在量化之后,可(例如)根据内容自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)或另一熵译码过程来执行熵译码。
根据本发明的技术,视频编码器20可使用内插滤波器及偏移值来在单个遍次中编码视频单元。因此,在一些情况下,编码所述块可包含对块执行运动估计仅一次,使得在单个遍次中执行编码。在一个实例中,视频编码器20可包括具有固定系数的内插滤波器集合。换句话说,所述内插滤波器集合不一定需要包括编码器将为其动态地确定系数的自适应滤波器。实情为,编码器20可从多个替代的固定内插滤波器中选择用于每一子像素位置的内插滤波器。
可为不同子像素位置的内插选择不同内插滤波器。每一子整数像素位置可具有:默认内插滤波器;以及可经选择以基于历史内插结果而内插相应的子整数像素位置的多个其它内插滤波器。视频编码器20可通过首先使用用于相应子整数像素位置的默认内插滤波器计算参考单元的子整数像素值来编码第一经帧间译码的视频单元(例如,第一P帧的宏块)。
一旦参考单元中的子整数像素值经内插,视频编码器20就可利用参考单元的整数及分数子像素位置两者来计算正编码的下一P帧的宏块的运动向量。明确地说,视频编码器20可(例如)基于例如绝对差的和(SAD)、平方差的和(SSD)等像素差计算来搜索以寻找先前经译码参考单元中与正译码的当前单元中的相应块最紧密匹配的块。
在已产生待译码的第一P单元的每一宏块相对于参考单元中的预测性块的运动向量之后,视频编码器20可基于(例如)预测性宏块(即,参考单元的参考宏块)与P单元的实际宏块之间的像素值差来确定第一P单元的每一宏块的误差值。如上文所描述,误差值可包含(例如)绝对差的和(SAD)或平方差的和(SSD)的值。
视频编码器20可接着确定内插滤波器的不同集合是否将产生较低误差值。明确地说,视频编码器20对于相应的子像素位置可通过以下操作来识别将产生最低误差值的内插滤波器:重新计算参考宏块的子整数像素值的值;以及计算由运动向量识别的经重新计算的宏块的误差值。视频编码器20可接着确定哪些内插滤波器将为每一子整数像素位置的单元提供最低绝对误差值或最低平均误差值。
以此方式,视频编码器20可选择内插滤波器以基于将为参考单元产生最佳结果的内插滤波器来内插用于当前单元的参考单元的子整数像素位置。在一些实例中,视频编码器20可在一系列译码单元上于每一子整数像素位置处进一步计算每一内插滤波器的累加误差值。视频编码器20可使用所累加的误差值来选择提供子整数像素位置的历史最佳值的内插滤波器。
视频编码器20可识别内插滤波器中的哪些内插滤波器针对先前帧或在一系列先前帧上产生最低误差值。可对一系列帧上的每一内插滤波器及每一子像素位置追踪误差值。每一子像素位置可用相应的内插滤波器来计算。多个内插滤波器可能可用于选择每一子像素位置。可选择内插滤波器集合以支持多个相应子像素位置的内插。
在一个实例中,在视频编码器20编码例如P帧或B帧等下一预测性单元之前,视频编码器20使用对于先前所编码单元的参考单元将产生最低误差值的内插滤波器来计算先前所编码单元的子整数像素的值。同样,对于每一后续经帧间译码的帧,视频编码器20可识别内插滤波器中的哪些内插滤波器对于其参考单元将产生最低误差值,且将那些内插滤波器应用于最近经编码单元以计算所述最近经编码单元的子整数像素的值,其将接着用作用于运动估计的参考帧。
在一些情况下,视频编码器20可识别内插滤波器中的哪些内插滤波器对于一系列经译码单元上的每一子像素位置具有最低历史累加内插误差值。通过追踪由多个内插滤波器中的每一者对于每一子像素位置产生的误差值,可为每一相应子像素位置选择产生最低误差值的内插滤波器用于内插,以支持待译码的下一帧的运动估计。以此方式,视频编码器20可基于先前经译码帧的历史内插结果来为子像素位置选择内插滤波器。由视频编码器20分析的历史内插结果可考虑若干单元的内插误差,或在一些情况下,可仅考虑单个单元的内插误差。明确地说,视频编码器20可分析多个帧上的累加误差结果或仅分析当前单元N的参考单元(例如,N-1)与先前参考单元N-2之间的内插误差。
作为说明,如果存在待内插的n个子像素位置及可经挑选以内插n个子像素位置中的每一者的m个不同内插滤波器,那么视频编码器20可计算n×m个不同误差值。每一误差值可表示根据m个内插滤波器中的给定内插滤波器相对于待译码的先前单元中的实际像素值而计算的n个子像素位置值中的给定子像素位置值的误差值。在块基础上,误差值可基于待译码块的像素值与使用给定内插滤波器集合产生的经内插的预测性块中的子像素位置的像素值之间的像素值差。可对跨越帧的所有对应子像素位置应用子像素位置的内插滤波器。类似地,可跨越帧而提供每一内插滤波器及子像素位置的误差值。举例来说,误差值可为给定帧的平均值或中值或总计值。
如上文所提到,每一子像素位置及内插滤波器的误差值可在一系列单元上进行累加,从而产生内插滤波器及子像素位置的每一组合的累加误差值。在一些情况下,一系列单元上的误差值可使用加权求和来求和,其中相对于待译码的当前帧较新近译码的帧的误差值比先前经译码帧较重地加权。
举例来说,可使用滑动窗,使得对于待译码的单元,累加误差值对来自窗中的第一单元到窗中的恰在待译码单元之前的最后单元的加权误差值进行求和,其中较早单元的误差值以小于较晚单元的误差值的加权系数的加权系数来加权。加权系数可从较早经译码单元到较低经译码单元逐渐增加。此外,可周期性地按比例缩小经累加误差以防止溢出。较早经译码单元的误差值可随着其超出窗范围而最终被弃用。
为了为特定子像素位置选择特定内插滤波器以译码当前单元,视频编码器20可在一定范围的先前经译码单元上评估所述内插滤波器及子像素位置的误差值的加权求和。产生给定子像素位置的最低累加误差的内插滤波器可接着被选择作为待用于待译码的下一单元的所述子像素位置的内插的内插滤波器。
给定子像素位置的选定内插滤波器可跨越译码单元用作块中的对应子像素位置处的所有像素的内插滤波器。明确地说,选定滤波器用以内插参考单元中的所述子像素位置,以支持待译码的下一单元的运动搜索。如果每一块中存在n个子像素位置,那么编码器20可为相应子像素位置选择n个不同内插滤波器的集合。同一集合的内插滤波器可用于单元的每一块中的子像素位置。
在内插之后且在运动估计之前,视频编码器20还可将偏移值应用于经内插子像素位置处的像素值。视频编码器20可计算用于视频数据的例如帧等经译码单元或帧的例如切片等可独立解码部分的多个偏移值。不同偏移值可与多个不同整数及与视频块相关联的子整数像素位置相关联。子整数像素位置可定义经内插或外插的数据的位置,所述数据通常如上文所描述基于整数像素位置处的数据而内插。视频编码器20可将偏移值应用于预测性视频块中的整数像素位置及子像素位置以产生偏移预测性视频块,并基于所述偏移预测性视频块来编码经译码单元的视频块。
视频编码器20还可将偏移值编码为经译码位流的包括经译码单元的经译码视频块的部分,且源装置12的发射器24可将经译码位流发射到目的装置16的接收器26。明确地说,视频编码器20可通过调整预测性视频块的像素值来应用偏移值,且可通过基于偏移预测性视频块产生残差而基于偏移预测性视频块来编码视频块。举例来说,可通过从适当偏移预测性视频块减去待译码块来产生残差。由于基于预测性视频块的位置而将偏移加到偏移预测性视频块的像素值,所以译码效率(例如)在闪光或背景照明改变期间可得以改进。
当执行运动搜索以寻找待译码的单元时,视频编码器20识别参考译码单元中的预测性块。在一些情况下,运动搜索算法可经配置以跳过特定子像素值。明确地说,某一预测性运动估计可通过预测较可能对应于待译码块的位置且通过将搜索构造为若干模式来降低运动搜索的复杂性。然而,预测性运动估计过程可能跳过测试DC偏移值已指派给的一些子像素位置。视频编码器20可经配置以通过强加运动搜索明确地搜索具有非零偏移值的子像素位置的要求来克服预测性运动估计过程中的此限制。
在目的装置16中,视频解码器30接收用以编码视频数据的内插滤波器的识别符及视频数据的每一经译码单元的多个偏移值。举例来说,这些识别符可由视频编码器20译码为经译码位流中提供的单元标头(例如帧标头或切片标头)中的语法元素。视频解码器30可与视频编码器20存储同一内插滤波器集合的参数。视频解码器30应用由视频编码器20识别的内插滤波器来计算预测性视频块的子整数像素的值,将偏移值应用于预测性视频块以产生偏移预测性视频块,且基于所述偏移预测性视频块来解码经译码单元的视频块。
明确地说,使用运动向量及内插滤波器,视频解码器30可获得待解码单元中的相应块的预测性块,且对残余信息与预测性块求和以再现经解码单元中的所要块。以此方式,定义内插滤波器及偏移值并将其应用于视频编码器20处作为编码过程的一部分,且接着将识别内插滤波器及偏移值的信息作为经编码位流的一部分从源装置12传达到目的装置16。接着作为解码过程的一部分在视频解码器30处将偏移值应用于经内插的预测性数据,以便重构视频单元的像素值。
图2为说明可应用如本发明中所描述的内插及偏移技术的视频编码器20的实例的框图。编码器20视频编码器20可执行例如帧或切片等视频单元内的块的帧内及帧间译码。然而,为了易于说明,图2中未详细展示视频编码器20的帧内译码组件。帧内译码依赖于空间预测来减小或去除给定视频单元内的视频中的空间冗余。帧间译码依赖于时间预测来减小或去除视频序列的例如帧等邻近单元内的视频中的时间冗余。帧内模式(I模式)可指基于空间的压缩模式,且例如预测(P模式)或双向(B模式)等帧间模式可指基于时间的压缩模式。本发明的技术可在视频编码器20进行的帧间编码期间应用。
如图2中所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的实例中,视频编码器20包括:运动估计单元36、运动补偿单元35、参考帧存储装置34、加法器48、变换单元38、量化单元40及熵译码单元46。对于视频块重构,视频编码器20还包括:逆量化单元42、逆变换单元44及加法器51。还可包括去块滤波器(未图示)以对块边界进行滤波以从重构的视频去除成块假象。如果需要,去块滤波器可对加法器51的输出进行滤波。
在编码过程期间,视频编码器20接收待译码的视频块,且运动估计单元36及运动补偿单元35执行帧间预测性译码。运动估计单元36及运动补偿单元35可高度集成,但为了概念目的而单独地说明。通常将运动估计视为产生估计视频块的运动且引起参考单元中的对应预测性块的识别的运动向量的过程。举例来说,运动向量可指示预测性帧(或其它经译码单元)内的预测性块相对于当前帧(或其它经译码单元)内正译码的当前块的位移。通常将运动补偿视为基于由运动估计确定的运动向量而提取或产生预测性块的过程。此外,运动估计单元36及运动补偿单元35可在功能上集成。为了可论证目的,将运动补偿单元35描述为执行本发明的内插滤波器的选择及偏移技术。
将为了说明而描述呈帧形式的译码单元。然而,可使用例如切片等其它译码单元。运动估计单元36通过比较视频块与参考帧存储装置34中的参考帧的视频块来计算经帧间译码帧的视频块的运动向量。运动补偿单元35选择多个内插滤波器37中的一者来应用以计算先前所编码帧(例如,I帧或P帧)中的多个子像素位置中的每一者处的像素值。换句话说,视频编码器20可选择用于块中的每一子像素位置的内插滤波器。
选定内插滤波器对于不同子像素位置可为不同的。应用于块中的不同子像素位置的内插滤波器的集合对于参考帧中的所有块可为相同的。举例来说,如果为块中的子像素位置x1、y1选择内插滤波器F1,那么同一内插滤波器F1可用于同一帧中的所有块中的所述相同子像素位置。子像素位置可替代地称为子整数像素、子像素。
运动补偿单元35可基于一个或一个以上先前所编码帧的内插误差历史从若干内插滤波器37选择内插滤波器。明确地说,在变换单元38及量化单元40已编码帧之后,逆量化单元42及逆变换单元44解码先前所编码帧。在一个实例中,运动补偿单元35将选定内插滤波器37应用于先前所编码帧,以计算帧的子整数像素的值,从而形成存储于参考帧存储装置34中的参考帧。
对于后续帧,运动补偿单元35可应用内插滤波器37的不同集合来计算后续帧的子整数像素值。不同内插滤波器的选择可基于先前所编码的帧的历史(例如,给定子像素位置处的内插滤波器中的每一者的所累加误差),使得运动补偿单元35选择对于一系列帧上的相应子像素位置具有最低累加误差值的内插滤波器37。误差值可基于给定帧中的实际像素值与参考帧中的经内插像素值之间的差。
内插滤波器37可包含多个内插滤波器。每一潜在子整数像素位置可映射到内插滤波器37的集合中的一个内插滤波器以用于计算对应的像素值。举例来说,运动补偿单元35可应用具有系数[1,-5,20,20,-5,1]的6抽头维纳滤波器(6-tap Wiener filter)以基于整数像素位置的值来计算半像素位置的值,且应用双线性滤波器以基于整数像素位置的值来计算四分之一像素位置的值。在一个实例中,对于半像素位置来说,6抽头维纳滤波器可包含要应用于半像素位置的默认滤波器,且双线性滤波器可包含要应用于四分之一像素位置的默认滤波器。
此外,每一像素位置可映射到替代内插滤波器,例如具有不同系数的内插滤波器。可使用各种系数来构造其它内插滤波器。一般来说,固定内插滤波器在以下方面可为不同的:其系数(不同系数指定不同频率响应)及/或其支持(这是一维还是二维、垂直、水平或对角线),或用以内插的抽头(且因此像素)的数目。较大的支持通常可较佳地执行,但在需要执行以内插像素的乘法及加法方面具有较高复杂性。
在一个实例中,每一子整数像素可映射到m个可能的不同内插滤波器,其中用于一个子整数像素位置的m个内插滤波器中的至少一些内插滤波器可不同于用于不同子整数像素位置的m个内插滤波器。对于四分之一像素精度,内插滤波器37可包含m*15个唯一内插滤波器,其中m为每子像素内插滤波器的数目。或者,一些子整数像素可映射到同一内插滤波器。可将用于每一子整数像素的内插滤波器中的至少一者指派为用于对应子整数像素的默认内插滤波器。最初在视频序列中(例如,在已累加足够的历史内插结果以准许内插滤波器的可靠选择之前)可使用默认内插滤波器。
运动估计单元36将来自参考帧存储装置34的参考帧的块与当前帧(例如,P帧或B帧)的待编码块进行比较。因为参考帧存储装置34中的参考帧包括子整数像素的经内插值,所以由运动估计单元36计算的运动向量可参考子整数像素位置。运动估计单元36将所计算的运动向量发送到熵译码单元46及运动补偿单元35。根据本发明中所描述的技术,运动估计单元36可每块计算一个运动向量,且基于在运动估计之前选择的内插滤波器及偏移而产生运动向量。以此方式,视频编码器20可在单个遍次中(即,无需针对经译码单元的视频块执行运动估计两次)编码例如帧、切片及块等单元。
在单个遍次中编码与涉及以下操作的多遍编码过程形成对比:选择初始内插滤波器及偏移;使用初始内插滤波器及偏移来编码视频;基于编码结果来选择新的内插滤波器及偏移;以及接着用新选择的内插滤波器及偏移来重新编码帧。实情为,编码器20基于一个或一个以上先前帧的历史内插结果来选择内插滤波器,基于当前帧与一个或一个以上先前帧之间的差异来选择偏移,且接着使用选定内插滤波器及偏移来执行运动估计以产生每一块的运动向量及残余信息。因此,视频编码器20并不需要在第二或后续遍次中重新计算运动向量,且可借此改进编码过程的效率。实情为,运动估计可执行一次。运动补偿单元35计算参考帧的预测性块与正编码的帧的实际块之间的误差值,且经由加法器48产生残余块值,所述残余块值由视频编码器20的变换单元38及量化单元40编码。
在一个实例中,如上文所论述,运动补偿单元35可确定内插滤波器37中的哪些内插滤波器将对于先前所编码参考帧的块产生最低误差。举例来说,在使用用于运动估计的内插滤波器的选择集合来编码参考帧之后,运动补偿单元35可识别内插滤波器37中的哪些内插滤波器将产生子像素位置中的每一者处的最低误差值。为此,运动补偿单元35可使用内插滤波器的不同集合来重新计算所产生的预测性视频块的子整数像素以编码参考帧。明确地说,当由运动估计单元36计算的运动向量参照参考帧存储装置34中的参考帧的块的子整数像素位置时,运动补偿单元35使用其它内插滤波器37来重新计算所述块的子整数像素的值。运动补偿单元35接着计算对应于用于预测性块的内插滤波器37中的每一者的误差值。
运动补偿单元35确定内插滤波器37中的哪些内插滤波器对于经编码的帧导致最低误差值。即使已使用内插滤波器的集合来编码帧,仍可在编码之后确定将产生最低内插误差值的内插滤波器,并将其用以针对待编码的下一帧执行运动估计。在编码帧且识别对于所述帧将产生最低误差的内插滤波器37的集合之后,运动补偿单元35可在将帧存储于参考帧存储装置34中之前将选定内插滤波器应用于经重构的帧。以此方式,运动补偿单元35可使用被确定为对于先前帧为最佳的内插滤波器37的集合来计算可用于运动估计的参考帧中的子整数像素值以编码待译码的下一帧。
在另一实例中,如上文所论述,运动补偿单元35累加在每一子像素位置处的内插滤波器37中每一者的误差值,且对于待存储于参考帧存储装置34中的新帧,运动补偿单元35选择对于相应子像素位置具有最低累加误差的内插滤波器37。以此方式,运动补偿单元35可针对每一滤波器及每一子像素位置累加先前所编码的帧与其参考之间的内插误差。如上文所提到,运动补偿单元35可周期性地按比例缩小内插滤波器37的累加误差,以防止存储器溢出且较之内插滤波器37的较旧历史使用而较重地加权内插滤波器37的新近使用。以此方式,运动补偿单元可引入将较多地加权最新近帧的贡献且“遗忘”最旧帧的“窗”效应。
可基于待编码帧的原始像素值与通过内插产生的预测性帧的像素值之间的差来计算内插误差。所述预测性帧可包括通过内插产生的预测性块,且对应于待译码帧中的待译码块。可将所述差计算为所述预测性块及经译码块之中的像素值的差,例如如通过SSD、SAD或其它差值度量来确定。可跨越帧中的块对不同度量进行求和或求平均以计算总体差值及每一子像素位置处的差值。可将会在先前经译码参考帧的子像素位置中的每一者处产生最低差值的内插滤波器集合选择作为用于相对于所述参考帧对待译码的下一帧进行运动估计的内插滤波器集合。或者,可将在一定范围的经译码视频帧上的相应子像素位置处产生最低累加差值的内插滤波器用于相对于参考帧对待译码的下一帧进行运动估计。
一般来说,运动补偿单元35可通过计算决策向量D来选择用于每一子整数像素位置的内插滤波器。D可为具有长度n的向量,其中n对应于每一像素的子整数像素位置的数目。在其中视频编码器20支持四分之一像素精度的一个实例中,n等于15。D的每一元素对应于用于对应子整数像素位置的内插滤波器中的一者。因此,如果每一子整数像素具有m个不同的可能内插滤波器,那么D的每一元素在0与m之间的范围内。对于第一参考帧,D的每一元素可初始化为“0”,其中“0”指代用于对应像素位置的默认内插滤波器。运动补偿单元35可使用用于相应子像素位置的对应默认内插滤波器来计算所述第一参考帧的每一子像素位置值。
运动估计单元36可通过参照参考帧来计算后续经帧间译码的帧的每一经译码单元的运动向量,运动补偿单元35对于所述参考帧已使用如由决策向量D识别的内插滤波器来计算子整数像素值。运动补偿单元35还可计算经帧间译码的帧的成本矩阵C。在一个实例中,对于预测性经译码帧,成本矩阵C包括:对应于用于每一子整数像素的内插滤波器的第一维度F;以及对应于子整数像素的第二维度I。因此,成本矩阵可定义为C[F][I],其中F=[0,m]且I=[0,n]。C的每一元素初始设定为0。
接着,(例如)在使用SAD计算的实例中,运动补偿单元35对于经帧间译码的帧的每一像素及所述像素的每一内插滤波器进行计算,其中f位于F中且i位于I中,C[f][i]+=|实际(i)-预测(i,f)|,其中实际(i)为对应于待经帧间译码的帧的像素中的子像素i的像素的实际值,且其中预测(i,f)为如使用由对应运动向量参考的内插滤波器f来计算的子像素i的值。因此,C的每一元素对应于针对对应内插滤波器使用对应子像素的对应子像素位置的累加误差。
可针对双预测帧计算类似成本矩阵C2[F1][F2][i][j],其中i指代F1的子像素,j指代F2的子像素,F1指代用以计算第一参考帧中的子像素位置i的内插滤波器,且F2指代用以计算第二参考帧中的子像素位置j的内插滤波器。运动补偿单元35可接着计算经帧间译码帧与参考帧之间的误差值(例如,作为SAD值)。为了从成本矩阵C计算SAD值,运动补偿单元35可根据以下公式来计算每一所应用子像素位置的累加误差值与用以计算所述子像素的滤波器的和:
SAD = Σ m = 0 n C [ D [ m ] [ m ]
运动补偿单元35可对整个成本矩阵反复地进行处理,以确定位置及对应于所述位置的内插滤波器,使得位置与滤波器的组合将引起经帧间译码帧与参考帧之间的误差值的最大减小。换句话说,运动补偿单元35可识别引起上文所计算的SAD值的最大减小的值C[f][p]。运动补偿单元35可接着改变决策向量,使得所确定的内插滤波器f在将来将用于所确定的子整数像素位置p。明确地说,对于决策向量D、子整数像素位置p及内插滤波器f,运动补偿单元35可执行D[p]=f。如同滤波器f已用以计算位置p处的子整数像素值一般,运动补偿单元35可使用上文所呈现的公式接着重新计算差(例如,SAD)。
运动补偿单元35可重复此过程,直到所述差实质上不改变(例如,任何差均小于最小阈值)为止或直到已执行最大反复次数为止。以下伪码概述上文所描述的过程:
Figure BPA00001342843400171
在一些实例中,运动补偿单元35可累加每一参考帧的误差,从而偏选最近参考帧且“遗忘”较旧参考帧。为此,运动补偿单元35可如上文所论述计算特定帧的成本矩阵,但进一步将先前经译码帧的较早成本矩阵的值的分数加权加到所述成本矩阵。举例来说,对于先前经译码帧的成本矩阵C及其参考帧的成本矩阵CREF,运动补偿单元35可计算C=C+(1/n)*CREF。在此情况下,n优选可为大于一的任何整数。以此方式,运动补偿单元35可避免溢出,在选择内插滤波器时优选对较新参考帧的成本计算,且“遗忘”或弃用对较旧参考帧(即,在时间上较远离待编码帧的参考帧)的计算。
作为进一步说明,如果将译码帧N,且已经译码帧N-1到N-M,那么可根据如下计算的成本等式来选择(例如)相对于参考帧N-1而选择以用于帧N的运动估计的内插滤波器:
C=a1CN-1+a2CN-2+a3CN-3+...+aMCN-M
其中系数a1、a2、...aM表示具有逐渐变小的值的加权系数。基于给定子像素位置处的每一内插滤波器的累加成本C,编码器20选择产生C的最低值的内插滤波器。
运动补偿单元35还可将例如DC偏移等偏移值加到经内插的预测性数据(即,参考帧存储装置34中的参考帧的子整数像素值)。运动补偿单元35可基于参考帧与当前帧之间的DC差或参考帧的块与当前帧的块之间的DC差来指派DC偏移。与在单个遍次中执行译码的能力一致,运动补偿单元35可“先验”地(即,在对待编码的当前帧执行运动搜索之前)指派DC偏移。
可根据与预测性视频块的整数或非整数像素位置相关联的偏移而使预测性视频块的像素值向上或向下偏移。由运动补偿单元35执行的内插可定义不同视频块的若干可能子整数像素位置处的经内插的数据。并非对于给定经译码单元定义单个偏移值,运动补偿单元35在一些实施方案中对于每一可能整数及子整数像素位置可定义不同的偏移值。在其它情况下,单个偏移值可应用于预测性块、切片或帧中的所有像素值。运动补偿单元35在一些实例中仅将偏移值应用于子整数像素的子集。预测数据可接着基于与预测数据相关联的像素位置而应用位置特定偏移。
在一个实例中,运动补偿单元35可基于预测性视频块而计算分别与待编码的经译码帧的视频块的每一整数及子整数像素位置相关联的第一度量(例如,均值)集合。运动补偿单元35还可计算分别与将用以编码当前帧的块的预测性视频块的每一整数及子整数像素位置相关联的第二度量(例如,均值)集合。换句话说,由正译码的数据来定义第一度量集合,且由用于预测性译码的参考帧中的预测性数据来定义第二度量集合。运动补偿单元35接着基于第一及第二度量集合来计算多个偏移值。
第一度量集合可包含分别与基于预测性视频块而译码的经译码单元的视频块的每一整数及子整数像素位置相关联的第一均值集合,且第二度量集合可包含分别与预测性视频块的每一整数及子整数像素位置相关联的第二均值集合。在此情况下,所述多个偏移值可包含第一均值集合与第二均值集合之间的差。以此方式,可基于在第一译码遍次中译码的实际数据来为若干不同整数及子整数像素位置定义若干不同偏移值。所述差可表示(例如)帧之间的照度差。
第一度量集合可包含对应于给定经译码单元的视频块的每一整数及子整数像素位置处的像素值的平均数的均值集合。第二度量集合可包含对应于用以预测正在所述经译码单元中译码的当前块的预测性块的每一整数及子整数像素位置处的像素值的平均数的均值集合。多个偏移值可包含第一均值集合与第二均值集合之间的差。可通过单个像素(例如,相应宏块的左上角中的相应像素)来定义每一宏块位置。然而,每一宏块可定义为第一均值集合中的特定均值出力的十六个像素值。当然,本发明的技术还可应用于其它大小的视频块。
本发明的偏移技术可相对于亮度块、色度块或两者而应用。可为与每一类型的视频块(例如,亮度及色度块)相关联的每一整数及子整数像素位置定义不同偏移。另外,可将不同偏移指派给处于每一特定大小的每一块、每一块的分区或子分区。在一些实例中,为帧间编码双预测块,可针对特定像素或子整数像素位置计算两个偏移,第一偏移表示当前帧的当前块与时间上较接近的参考帧(例如,列表0)的位于同一位置的块之间的平均差,且第二偏移表示当前帧与时间上较远的参考帧(即,列表1)之间的平均差。在计算两个偏移值之后,视频编码器20可确定将两个偏移值中的哪一者应用于像素或子整数像素值,当编码基于列表0时应用第一偏移,且当编码基于列表1时应用第二偏移。
计算基于块的DC偏移涉及收集关于当前帧与参考帧的特定大小(例如,16×16像素)的位于同一位置的块之间的DC差的(呈直方图形式的)统计数据。将参考帧中的块与当前帧中的块进行比较,且对于两个帧的每一位于同一位置的块计算两个量:
1)像素差的平方误差(下文相对于实例函数blockDC1(块DC1)及blockDC2(块DC2)而描述的err0);及
2)在将块的平均DC减去每一像素的值之后的像素差的平方误差(下文相对于实例函数blockDC1及blockDC2而描述的err1)。
通过比较这两个量(例如,通过检查1中的误差是否大于2中的误差的两倍),有可能估计所述块是否为足够类似的(即,位于同一位置的块之间的差是否主要由DC差引起),且如果是此情况,那么将统计数据累加为含有基于块的DC差的直方图的向量。由于实际原因,可(例如)通过将DC差舍入为整数值来量化DC差。
通过审查直方图柱,有可能得出DC差的范围并计算DCmin及DCmax。一些可能性如下:
1)对对应于具有大于noSamples(无样本)个样本的正DC值及负DC值的柱的数目进行计数(下文在函数blockDC2中使用的方法);
2)对对应于具有大于noSamples个样本的负DC值及正DC值的柱的数目进行计数,但在第一次测试失败时停止计数;或
3)找寻对应于含有大于noSamples个样本的最左及最右柱的DC值(下文在blockDC1中使用的方法)。
举例来说,如果noSamples=20,且直方图如下文在表2中所指示,那么第一方法将返回DCmin=-2、DCmax=2,第二方法将返回DCmin=-2、DCmax=1,且第三方法将返回DCmin=-2、DCmax=4。
表2
  样本   DC差
  0   -4
  10   -3
  80   -2
  130   -1
  1000   0
  150   1
  0   2
  0   3
  25   4
一旦如上文所略述已估计当前帧与参考帧之间的基于块的DC差值,就可将偏移指派给子像素位置的子集。所使用的机制对于编码器及解码器两者是已知的,且完全由Dcmin及DCmax的值决定。因此,除非有必要维持与其它方法的兼容性,否则可通过仅发射这两个值来大大简化偏移的发射。
可以如下预定次序将偏移O(1)到O(15)指派给子像素位置:5、15、13、7、9、6、11、14、1、4、3、12、10、2、8。其它指派次序是可能的。下文的表3展示在1/4像素内插(位置0与全像素相关联)及偏移的指派中使用的子像素位置的索引。如果正指派小于15个偏移,那么将其余值设定为零。所述方法可扩展到不同分数像素内插。关于图5的实例来论述DC偏移对这些子像素位置的应用的实例。
表3
  0   1   2   3
  4   5   6   7
  8   9   10   11
  12   13   14   15
  O(9)   O(14)   O(11)
  O(10)   O(1)   O(6)   O(4)
  O(15)   O(5)   O(13)   O(7)
  O(12)   O(3)   O(8)   O(2)
  O(9)   0   0
  0   O(1)   O(6)   O(4)
  0   O(5)   0   O(7)
  0   O(3)   O(8)   O(2)
在上文的表3中,左侧四个列指示子像素位置,中间四个列指示15个偏移的指派,且右侧四个列说明9个偏移的指派。
当前帧与参考帧之间的(基于帧的)DC差可用以确定在计算Dcmin及DCmax时使用的阈值noSamples及用于1/4像素内插的偏移的数目两者。还可通过考虑图像的大小(且因此块的数目)来计算阈值noSamples。接着,可进一步细化Dcmin及DCmax。实现此情形的可能方式由以下伪码来示范:
sign=(DCdiff>=0)?1:-1;//if DCdiff>=0,sign=+1,else sign=-1
noOffsets=(int)(abs(DCdiff)+0.5);
DCint=noOffsets *sign;
blockDC(list,&DCmin,&DCmax,32-16*(noOffsets>=2));
DCmax=max(DCint,DCmax);
DCmin=min(DCint,DCmin);
roundFact=(int)ceil((double)(DCmax-DCmin)/15.0);
roundFact=max(roundFact,1);
DCmin=-roundFact *(int)(abs(DCmin)/roundFact+0.5);
DCmax=roundFact *(int)(abs(DCmax)/roundFact+0.5);
以上伪码中的量roundFact(舍入Fact)用以量化DC范围,并将偏移约束到不大于15个值。接着,将在范围[DCmin,DCmax]中的偏移以上文所指定的次序指派给子像素位置。如果基于帧的DC差的绝对值较小(例如,小于2),那么以较小步长(例如,0.1)重新量化DC差,且创建称为noOffsets1(无偏移1)的新量。如果noOffsets1小于或等于阈值(例如,8),那么将第一noOffset1子像素位置(上文指定的次序中的第一者)设定为零,且用+1或-1(视DC差的正负号而定)来填满其余位置。如果noOffset1大于阈值,那么用+1或-1来填满第一noOffsets1位置,且将其余子像素位置设定为零。
进一步参看图2,运动补偿单元35基于预测性块来计算预测数据。视频编码器20通过将预测数据从正译码的原始视频块减去来形成残余视频块。加法器48表示执行此减法操作的组件。变换单元38将例如离散余弦变换(DCT)或概念上类似的变换等变换应用于残余块,从而产生包含残余变换块系数的视频块。变换单元38(例如)可执行概念上类似于DCT其它变换,例如由H.264标准定义的那些变换。还可使用小波变换、整数变换、子带变换或其它类型的变换。在任何情况下,变换单元38将变换应用于残余块,从而产生残余变换系数块。所述变换可将残余信息从像素域转换到频域。
量化单元40量化残余变换系数以进一步减小位率。量化处理可减小与一些或所有系数相关联的位深度。举例来说,16位值在量化期间可下舍入为15位值。在量化之后,熵译码单元46熵译码经量化的变换系数。举例来说,熵译码单元46可执行内容自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)或另一熵译码方法。在熵译码单元46进行的熵译码之后,可将经编码的视频发射到另一装置或存档以供日后发射或检索。经译码的位流可包括经熵译码的残余块、用于此些块的运动向量、应用于参考帧以计算特定帧的子整数像素值的内插滤波器的识别符,以及包括识别经译码单元内的不同整数及子整数像素位置处的多个不同偏移的偏移值的其它语法。
逆量化单元42及逆变换单元44分别应用逆量化及逆变换来在像素域中重构残余块(例如)以供日后用作参考块。运动补偿单元35可通过将残余块加到参考帧存储装置34的帧中的一者的预测性块来计算参考块。运动补偿单元35还可将选定内插滤波器37应用于经重构的残余块以计算子整数像素值。求和器51将重构的残余块加到由运动补偿单元35产生的经运动补偿的预测块以产生重构的视频块以供存储于参考帧存储装置34中。重构的视频块可由运动估计单元36及运动补偿单元35用作参考块以帧间译码后续视频帧中的块。
根据本发明的技术,运动估计单元36还可修改用以识别从其计算运动向量的预测性块的标准搜索算法。根据本发明的技术,运动估计单元36可执行考虑先前加到参考帧的DC偏移的经改进的运动搜索。明确地说,运动估计单元36可通过作为加DC偏移的结果而强制进行对具有非零DC偏移值的子像素位置的评估来细化运动搜索。在运动搜索期间,运动估计单元36尝试(例如)基于SAD、SSD或块的其它像素差度量来识别参考帧的与待编码的块最紧密匹配的预测性块。
为改进由运动搜索产生的编码,运动估计单元36可检查在运动补偿单元35已为其定义非零偏移值的整数或子整数像素位置处开始的参考帧的预测性块,即使标准运动搜索算法将指定跳过在这些像素位置中的一者处开始的块也是如此。当参考帧的块开始于不存在所定义偏移值或存在为零的偏移值的像素或子像素位置,且运动搜索算法指定跳过所述位置处的块时,运动估计单元36可跳过所述位置且移到下一像素位置。然而,当参考帧的块开始于运动补偿单元35已为其定义非零偏移值的位置,且运动搜索算法指定跳过所述位置处的块时,运动估计单元36可仍分析开始于所述位置处的块,因此超驰标准运动搜索算法。明确地说,运动估计单元36可将开始于参考帧中的所述位置处的块与待译码的块进行比较,以确定是否应将所述块选择为预测性块以用于帧间译码。
在一个实例中,视频编码器20可组合以下各项以在具有很少性能损耗或无性能损耗及相当大的速度增益的情况下在单个遍次中执行编码:基于一个或一个以上先前所编码的帧的历史(单个或累加)而选择内插滤波器的程序;计算DC偏移并将DC偏移指派给子像素位置的程序;以及考虑具有DC偏移的子像素位置的运动搜索的细化。在其它实例中,视频编码器20可执行以下各项的任一组合或置换:(1)选择内插滤波器的程序,(2)计算DC偏移并将DC偏移指派给子像素位置的程序,以及(3)对考虑具有DC偏移的子像素位置的运动搜索的改进。
图3为说明视频解码器30的实例的框图,所述视频解码器30解码以本发明中所描述的方式编码的视频序列。视频解码器30在一些实例中可执行与相对于视频编码器20(图2)而描述的编码互逆的解码遍次。视频解码器30包括运动补偿单元54,所述运动补偿单元54在解码期间执行本发明的偏移技术。明确地说,在解码侧,运动补偿单元54可从熵解码单元52接收语法元素,所述语法元素识别经译码单元的(例如)定义整数像素位置及一个或一个以上非整数像素位置的不同偏移的多个偏移值。
运动补偿单元54可基于从熵解码单元52接收到的运动向量而产生预测性数据。明确地说,运动补偿单元54可使用运动向量来识别先前解码的参考帧中的预测性块,且可(基于预测数据的像素位置)将适当的偏移加到此预测数据以产生偏移预测数据。所述预测数据可为经内插的数据,在所述情况下,可将用于非整数位置的偏移值中的对应一者应用于经内插的预测数据以产生偏移预测数据。基于此偏移预测数据,可解码视频数据(例如,经重构的残余视频块)。明确地说,解码器可将偏移预测数据与残余视频块进行组合以产生经编码的原始视频块。
熵解码单元52熵解码所接收到的位流以产生经量化系数及语法(例如,经译码单元的运动向量及多个偏移值)。将所述语法从熵译码单元52转发到运动补偿单元54。逆量化单元56逆量化(即,去量化)经量化的块系数。逆量化过程可为(例如)如由H.264解码定义的常规过程。逆变换单元58将逆变换(例如,逆DCT或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残余块。运动补偿单元54产生经运动补偿的块,从而可能使用内插滤波器64来执行内插。指定待用于特定帧中的子像素位置的特定内插滤波器64的识别符还可作为语法元素包括于由编码器20产生的位流中。
运动补偿单元54可选择与由视频编码器20在视频块的编码期间使用的内插滤波器集合相同的内插滤波器64的集合。明确地说,运动补偿单元54使用如由从参考帧存储装置62检索的参考块的位流中的语法元素指示的内插滤波器64的集合来计算子整数像素值。在运动补偿单元54基于运动向量而产生预测性块之后,运动补偿单元54将适当的偏移值加到所述预测性块,以产生在由编码器执行的原始编码中使用的偏移预测性块。
求和器64通过对残余块与由运动补偿单元54产生的对应偏移预测块进行求和来加上来自残余块的残余数据以形成当前帧的经解码块。如果需要,还可应用去块滤波器来对经解码的块进行滤波以便去除成块假象。接着将经解码的视频块存储于参考帧存储装置62中,其提供用于待解码的随后帧的后续运动补偿的参考块,且还产生经解码的视频以供发射到显示缓冲器以驱动显示装置(例如图1的装置28)从而呈现视频。
此外,本发明的技术涉及将偏移应用于经运动补偿的预测性数据,其中将不同偏移用于通过内插定义的整数及不同子整数像素位置。编码器使用本发明的技术来定义并应用不同偏移值,且解码器解译从编码器发送的语法元素,以便识别由编码器定义并使用的相同偏移值。将适当的偏移应用于预测性数据的像素值,且所述适当偏移是基于为此预测性数据定义的像素位置(例如,整数像素位置或若干可能的非整数像素位置中的一者)来选择。
图4为说明与预测性数据相关联的整数像素位置及与经内插的预测性数据相关联的子整数像素位置的概念图。在图4的概念性说明中,不同的框表示像素。大写字母(在具有实线的框中)表示整数像素位置,而小写字母(在具有虚线的框中)表示子整数经内插像素位置。像素位置“aa”、“bb”、“cc”、“dd”、“ee”、“ff”、“gg”、“hh”、“ii”及“jj”为用于与像素位置“C3”相关联的各分数位置的分数内插中的半像素位置。每一像素可对应于视频块的右上部像素,使得所述像素定义视频块。对于内插或外插,视频块的像素中的每一者可相对于距相应子整数像素具有相同空间距离的不同整数像素以相同方式内插或外插。
每一整数像素位置具有相关联的15个不同分数(“子整数”)位置。在图4的实例中,将与像素“C3”相关联的这15个不同分数位置说明为子整数像素位置“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”及“o”。类似地,将与像素“E5”相关联的15个不同分数位置说明为子整数像素位置“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”及“o”。为了简单起见,并未展示多数其它分数位置(不同于上文所提到的用以产生与像素“C3”相关联的15个不同分数位置中的一者或一者以上的那些位置)。
在ITU H.264/AVC标准中,(例如)为了获得半像素位置处的亮度信号,通常使用具有系数[1,-5,20,20,-5,1]的6抽头维纳滤波器。接着,为了获得四分之一像素位置处的亮度信号,使用双线性滤波器。双线性滤波器还可用于色度分量的分数像素内插中,所述色度分量在H.264/AVC中可具有至多达1/8像素精度。
在运动估计之后,可(例如)使用速率失真模型来识别给定视频块的最佳运动向量,以便平衡译码速率与视频质量。在使用最佳运动向量的运动补偿期间形成预测视频块。如上文所概述,通过将预测视频块从原始视频块减去而形成残余视频块。接着对残余块应用变换,且量化并熵译码变换系数以进一步减小位率。
本发明的技术包括将偏移加到预测性视频块。偏移的值可为位置特定的,因为不同偏移是针对不同整数及子整数像素位置而定义的。与由像素“b”及“b′”识别的视频块相关联的偏移可为相同的,这是因为这两个像素关于整数像素C3及E5定义相同子整数像素位置。然而,与由像素“c”及“d”识别的视频块相关联的偏移可为不同的,这是因为像素“c”与“d”关于整数像素C3及E5定义不同的子整数像素位置。十六个不同像素位置“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”、“l”、“m”、“n”及“o”中的每一者。所述偏移可定义带正负号的值,其本质上使预测性块的每一像素值向上或向下偏置以产生偏移预测性块。
所述偏移可称为DC偏移,这是因为其可包含经译码单元的具有相同样本位置(整数位置或特定子整数字置)的所有像素相对于所有对应预测性像素的均值的平均差。换句话说,因为块的像素中的每一者以相同方式偏置,且偏置相同程度,所以偏移导致(例如)由DCT计算产生的经变换数据的DC值的改变,其中DC值为由变换计算产生的矩阵的左上部值。这是因为DC值表示块的像素值的平均值。因此,通过使像素偏置特定值,由变换计算产生的DC值将以类似方式被偏置。因此,在一些实例中,DC偏移可应用于由变换计算产生的DC值,而不是将DC偏移应用于块的每一像素。
在一些实例中,可为整数及子整数像素位置中的每一者指派一不同偏移值。将对应于运动向量所参考的像素或子像素的偏移值应用于块的每一像素。举例来说,对于像素位置“e”、“f”、“g”、“i”、“k”、“m”、“n”及“o”,可分别指派偏移值{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,l->空值,m->3,n->8,o->2}。在另一实例中,偏移值可包含参考帧的像素的平均值与当前帧的像素的平均值之间的差。参看例如DCframe(DC帧)等差,在一个实例中,当0<DCframe<1.5时,将具有量值1的偏移指派给10*DCframe(舍入为最接近的整数)个像素位置。举例来说,在DCframe等于0.83的情况下,向十六个像素位置中的八个位置指派具有量值1的偏移。
根据本发明的技术,运动估计单元36还可评估具有针对其而存在所定义的偏移值的位置的块,即使在标准运动搜索算法将指定跳过这些块中的一者或一者以上时也是如此。当运动搜索算法指定跳过开始于无所定义的偏移值的像素位置处的块时,运动估计单元36可跳过评估所述块。在以上实例中,在将偏移值{1,6,4,5,7,3,8,2}分别指派给像素位置“e”、“f”、“g”、“i”、“k”、“m”、“n”及“o”的情况下,运动估计单元36可跳过评估开始于像素位置“C3”、“a”、“b”、“c”、“d”、“h”、“j”及“l”处的块(当运动搜索算法这样指定跳过这些像素位置时)。然而,运动估计单元36将评估开始于像素位置“e”、“f”、“g”、“i”、“k”、“m”、“n”及“o”处的块,即使在运动搜索算法指定跳过开始于这些位置处的块时也是如此,因为像素位置“e”、“f”、“g”、“i”、“k”、“m”、“n”及“o”具有所定义的偏移值。
作为另一实例,令DCmb表示参考块的像素的平均值与当前块的像素的平均值之间的差。此外,令DCmin为指派给至少阈值数目个宏块的DCmb的最小值,且令DCmax为指派给至少阈值数目个宏块的DCmb的最大值。在一个实例中,当DCframe>1.5时,向像素值中的每一者指派在DCmin与DCmax之间的范围内的偏移值。
此外,图4用大写字母以实线框展示整数像素样本(也称为全像素)。对于任何给定整数像素样本,可存在15个子像素位置,其在图4中针对整数像素样本“C3”而展示且标记为“a”到“o”。根据H.264/AVC,运动补偿单元35可首先使用一维6抽头维纳滤波器来计算半像素位置“b”、“h”及“j”。内插滤波器可首先在水平方向且接着在垂直方向上应用,或反之亦然。运动补偿单元35可接着使用双线性滤波器及已计算出的半像素样本来对其余四分之一像素位置进行滤波。
经应用以产生经内插的数据的实际滤波器可经受各种各样的实施方案。作为一个实例,运动补偿单元35可使用自适应内插滤波来定义经内插的值。在另一实例中,可应用内插滤波器的若干集合,且可选择产生最佳预测性数据的集合。在一些实例中,如本发明中所描述,可基于一个或一个以上参考帧的历史内插数据来选择内插滤波器。按照本发明,偏移的添加发生于从待用于译码中的参考帧产生任何经内插的预测性数据之后,但在对待译码的当前帧执行运动估计之前。
如关于图2所描述,运动补偿单元35可使用具有偏移的经切换内插滤波器(SIFO)方案。运动补偿单元35可在多个固定内插滤波器37之间进行挑选,例如可通过内插滤波器系数的多个不同预定义集合来分别定义所述多个固定内插滤波器37。可针对每一经译码单元级(例如,帧级或切片级)或针对每一子像素位置(样本级)执行内插滤波器的挑选。另外,根据本发明,还可在预测之后添加DC偏移,且还可如本发明所描述为每一可能的整数或分数像素位置定义DC偏移。
因此,运动补偿单元35可使用固定内插滤波器37的不同集合,以便定义内插数据的若干可能替代。作为实例,运动补偿单元35可使用标准H.264滤波器集合、基于H.264/AVC但具有较高精度的滤波器集合(不具有用于1/2像素位置的居中舍入及用于1/4像素位置的有偏舍入),或定制内插滤波器集合。可通过使用一组训练视频序列来预定义所述定制内插滤波器集合。
如在累加基础上由先前参考帧或多个参考帧的历史内插误差所指示,运动补偿单元35可挑选提供最佳预测(即,较小预测误差能量)的滤波器集合,且将其应用于产生经内插的数据。在使用多个参考帧时,可为不同参考帧选择不同滤波器集合。在一个实例中,运动补偿单元35可将标准滤波器应用于1/2像素位置(位置b、h及l),且运动补偿单元35可将定制滤波器集合用于其它1/4像素位置。
一旦运动补偿单元35产生或内插预测性数据,就可基于与经内插(或非经内插)数据相关联的样本位置将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”、“l”、“m”、“n”及“o”中的每一者。
将DC偏移加到预测数据的像素可能有助于捕捉不同视频帧之间的照度改变效应。照度改变可由例如闪光或视频序列中正变暗的天空等事项引起。H.264/AVC使用经加权的预测,其可允许将偏移加到预测像素值。然而,可能仅在帧级上允许由H.264/AVC加权预测所定义的DC偏移,这意味着仅为给定帧定义一个偏移值,而不管视频块的预测数据是否经内插。换句话说,对于帧级偏移,同一帧中的所有像素具有相同的DC偏移。
根据本发明,在一些情况下,可为与经内插及非经内插数据相关联的不同样本位置不同地定义DC偏移。因此,可为图4中所展示的15个子像素位置(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”及“o”)中的每一者定义不同的DC偏移,且可为整数像素位置定义另一DC偏移。当使用基于样本的DC偏移时,可译码总计16个DC偏移且在用于解码器的视频位流中作为语法元素来发送。通过应用基于样本的DC偏移,运动补偿单元35可提供简单但有效的运动分段工具。
举例来说,视频帧可含有作为静止背景的正变暗的天空及作为前景的移动对象。在此情况下,背景及前景可具有不同程度的照度改变,且通过使用由识别给定视频块的像素的位置定义的位置特定DC偏移值,运动补偿单元35可能够以(与在无此些位置特定DC偏移值的情况下可实现的情况相比)更高效的方式捕捉前景与背景中的不同程度的照度改变。
另外,当经译码单元的视频块使用多个不同参考帧以(例如)用于双向预测时,可针对与不同参考帧相关联的每一整数及子整数位置计算并发送不同DC偏移。在一些情况下,一些参考帧可包含基于单个帧的DC偏移,而其它参考帧可具有若干位置特定DC偏移。一些方案可仅相对于在时间距离上最接近正译码的当前帧的参考帧而使用位置特定DC偏移,且可将基于单个帧的DC偏移用于所有其它参考帧。
为了译码DC偏移,每帧1个位可用以指示是使用基于单个帧的DC偏移还是使用若干个位置特定DC偏移。如果DC偏移仅具有整数精度,那么可使用带正负号的指数格罗姆(Golomb)码来译码这些偏移的值。如果DC偏移具有分数精度,那么可使用带正负号的指数格罗姆码来译码整数偏移的值,且可使用相对于由带正负号的指数格罗姆码定义的整数偏移的残差来译码非整数偏移的值。
在解码器侧,解码器可简单地将适当的DC偏移值应用于任何所产生的预测性视频块的像素。可在用于与每一预测性视频块相关联的特定整数或子整数像素位置的语法元素中定义解码器所使用的DC偏移值。举例来说,经译码单元的标头中的语法元素可包括旗标或值以指定用于所述经译码单元的多个偏移值中的每一者。在本发明中可互换地使用术语“偏移”与“DC偏移”。偏移在总体偏移是针对每一相同相应像素位置而定义的范围内称为DC偏移,例如用于整数位置的一个偏移及用于每一可能的子像素位置的若干不同偏移。
根据本发明的技术,偏移可在单个编码遍次中应用于整数及子整数像素位置。在一个实例中,用于在单个遍次中指派DC偏移值的方法可包括以下操作:
a.计算DCDiff[idx],其为参考帧“idx”与当前帧之间的DC差
b.设定sgn=sign(DCDiff[idx]),其中sign()返回+1或-1
c.如果参考帧具有idx>0,那么设定frmOffeset[idx]=min(round(DCDiff[idx]),1)并返回,否则:
d.确定numOffsets(偏移数目)为min(round(DCDiff[idx]),8);
e.如果numOffsets>=numOffsetsMin(例如,其中numOffsetsMin=2),那么将具有增加的值{1,2,3,4,5,6,7,8}的等于numOffsets的数目个偏移依次加到子像素位置{5,15,13,7,9,6,11,14};
f.否则,计算numOffsets1为min(round(DCDiff[idx]/0.1),15)
g.如果numOffsets1>0且numOffsets1<=thFullPel0,那么将具有值sgn的等于numOffsets1的数目个偏移遵循次序{5,15,13,7,9,6,11,14}加到子像素位置
h.否则,如果numOffsets1>0,那么将具有值sgn的八个偏移加到子像素位置{0,1,2,3,4,8,10,12},且将具有值sgn的等于numOffsets1的数目个偏移遵循次序{14,11,6,9,7,13,15,5}加到子像素位置
在一些实例中,通过使用如上文所概述的过程,运动补偿单元35可在单个遍次中将偏移值指派给整数及子整数像素位置。运动补偿单元35可接着将如通过由运动估计单元36计算的运动向量来识别的特定整数或子整数像素位置的偏移值应用于预测性块。
在一些实例中,运动补偿单元35计算两个帧之间的DC差以确定将指派给特定子整数像素的偏移值。运动补偿单元35可以直方图形式收集关于当前帧的块与用于当前帧的参考帧的位于同一位置的块之间的DC差的统计数据。运动补偿单元35可首先计算当前帧的块与参考帧的位于同一位置的块之间的像素差的平方误差作为第一误差值。运动补偿单元35还可计算两个块之间的平均DC差并将所计算的DC差从当前帧的块的像素值减去,接着比较在减去平均DC差之后当前帧的块的像素与参考帧的位于同一位置的块的像素之间的差的平方误差作为第二误差值。
运动补偿单元35可(例如)通过检查第一误差值是否大于第二误差值的两倍来确定第一误差值还是第二误差值是较佳的。运动补偿单元35可基于此比较来确定当前帧的块与参考帧的位于同一位置的块是否足够类似。当运动补偿单元35确定两个块为足够类似时,运动补偿单元35可将误差值累计于含有基于块的DC差的直方图的向量中。
运动补偿单元35可基于经收集以用于直方图的若干样本,以多种方式来分析直方图的柱以计算例如DCmin值及DCmax值等值。在一个实例中,对于样本的最小数目“noSamples”,运动补偿单元35可确定DCmin值等于-1乘以对应于具有大于noSamples个样本的负DC的柱数目的计数,且DCmax值等于对应于具有大于noSamples个样本的正DC的柱数目的计数。在另一实例中,对于样本的最小数目“noSamples”,运动补偿单元35可确定:DCmin值等于-1乘以对应于具有大于noSamples个样本的负DC的柱数目的计数(其中计数开始于DC差值0),但运动补偿单元35经配置以在第一次测试失败之后停止计数;且DCmax值等于对应于具有大于noSamples个样本的正DC的柱数目的计数,但运动补偿单元35经配置以在第一次测试失败之后停止计数。在另一实例中,对于样本的最小数目“noSamples”,运动补偿单元35可确定DCmin值等于对应于含有大于noSamples个样本的最左柱的DC,且DCmax值等于对应于含有大于noSamples个样本的最右柱的DC。下文的表4等同于上文的表2,但为了易于说明而再现如下:
表4
  样本   DC差
  0   -4
  10   -3
  80   -2
  130   -1
  1000   0
  150   1
  0   2
  0   3
  25   4
为了进一步说明这些实例方法,假定noSamples=20,且直方图如上文在表4中所指示,那么运动补偿单元35可确定:对于第一实例方法来说,DCmin=-2且DCmax=2,对于第二实例方法来说,DCmin=-2且DCmax=1,且对于第三实例方法来说,DCmin=-2且DCmax=4。
在计算DCmin及DCmax之后,运动补偿单元35可将DC偏移值指派给子整数像素。在一个实例中,运动补偿单元35以次序15、13、7、9、6、11、14、1、4、3、12、10、2、8(即,子像素索引15、13、7等)将偏移O(1)到O(15)指派给子整数像素,但其它指派次序是可能的。在一些实例中,运动补偿单元35可能并不计算可能偏移值的总数目,在所述情况下,运动补偿单元35可根据上文所呈现的次序来指派所计算的偏移。
运动补偿单元35可使用当前帧与参考帧之间的基于帧的DC差来确定在计算DCmin及DCmax时所使用的阈值noSamples。运动补偿单元35还可基于图像中的块的数目,根据图像的大小来计算阈值noSamples值。在一个实例中,运动补偿单元35确定待指派的偏移值的数目等于两个帧之间的DC差加上0.5。
在一些实例中,运动补偿单元35可通过以下操作来进一步细化所指派的DC偏移值:确定在偏移值的所计算数目大于DCmax的所计算值时使用偏移值的所计算数目作为DCmax,或在偏移值的所计算数目小于DCmin的所计算值时使用偏移值的所计算数目作为DCmin。否则,运动补偿单元35可使用DCmax及/或DCmin的原始计算值。
运动补偿单元35可计算值“roundFact”,其具有最小值1,且等于DCmax与DCmin的值之间的差除以子整数像素位置的数目(例如,15),所述差被舍入为临近的最高整数值。运动补偿单元35可通过计算以下等式来进一步细化DCmax及/或DCmin的值:
DC min = - roundFact * | DC min | roundFact + 0.5 ,
DC max = roundFact * | DC max | roundFact + 0.5
以下伪码表示如上文所论述用于细化DCmax及DCmin的实例方法,其中blockDC使用也在上文论述的实例方法中的一者来计算DCmin及DCmax的初始值,且遵循blockDC的伪码细化DCmin及DCmax的值:
sign=(DCdiff>=0)?1:-1;
noOffsets=(int)(abs(DCdiff)+0.5);
DCint=noOffsets*sign;
blockDC(list,&DCmin,&DCmax,32-16*(noOffsets>=2));
DCmax=max(DCint,DCmax);
DCmin=min(DCint,DCmin);
roundFact=(int)ceil((double)(DCmax-DCmin)/15.0);
roundFact=max(roundFact,1);
DCmin=-roundFact*(int)(abs(DCmin)/roundFact+0.5);
DCmax=roundFact*(int)(abs(DCmax)/roundFact+0.5)
图5为说明整数像素位置与根据关于图4所论述的实例方法而指派的偏移值的概念图。明确地说,在图5的实例中,假定参考帧与当前帧之间的舍入为整数值的差(即,round(DCDiff[idx]))为六。因此,运动补偿单元35分别将偏移值1到6指派给像素位置{5,15,13,7,9,6}。因此,在图5的实例中,分别向像素“e”、“f”、“g”、“i”、“m”及“o”指派偏移值1、6、4、5、3及2。根据本发明的技术,运动估计单元36可在执行运动搜索时分析开始于像素“e”、“f”、“g”、“i”、“m”及“o”处的块,这是因为此些像素具有所定义的偏移值,即使常规搜索算法将指定跳过开始于像素“e”、“f”、“g”、“i”、“m”及“o”中的一者或一者以上处的块也是如此。
图6为说明整数像素位置与根据关于图4所论述的实例方法而指派的偏移值的另一概念图。明确地说,在图6的实例中,假定参考帧与当前帧之间的差(即,DCDiff[idx])为0.7。因此,按照图4的实例,假定numOffsetMin(最小偏移数目)等于2,那么DCDiff[idx]在舍入为整数时小于numOffsetMin。DCDiff[idx]除以0.1为七,因此numOffset1等于七。根据图4的实例方法,等于numOffsets1的数目个具有量值sgn的偏移以次序{5,15,13,7,9,6,11,14}加到像素位置,其中sgn等于sign(DCDiff[idx]),sgn在此实例中为1。因此,如图6的实例中所示,运动补偿单元35将具有值1的偏移指派给像素“e”、“f”、“g”、“i”、“m”及“o”。根据本发明的技术,运动估计单元36可在执行运动搜索时分析开始于像素“e”、“f”、“g”、“i”、“k”、“m”及“o”处的块,即使常规运动搜索算法将指定跳过开始于像素位置“e”、“f”、“g”、“i”、“k”、“m”及“o”中的一者或一者以上处的块也是如此。
图7为说明整数像素位置与根据关于图4所论述的实例方法而指派的偏移值的又一概念图。明确地说,在图7的实例中,假定参考帧与当前帧之间的差(即,DCDiff[idx])为1.3。因此,按照图4的实例,假定numOffsetMin等于2,那么DCDiff[idx]在舍入为整数时小于numOffsetMin。DCDiff[idx]除以0.1为十三,因此numOffset1等于十三。根据图4的实例方法,具有量值sgn(其中sgn等于sign(DCDiff[idx]),sgn在此实例中为1)的八个偏移以次序{0,1,2,3,4,8,10,12}加到像素位置,且偏移的数目等于numOffsets1减去八(在此实例中为五),其中量值sgn加到像素位置{14,11,6,9,7,13,15,5}。因此,如图6的实例中所示,运动补偿单元35将具有值1的偏移指派给像素“C3”、“a”、“b”、“c”、“d”、“f”、“g”、“h”、“i”、“j”、“k”、“l”及“n”。根据本发明的技术,运动估计单元36可在执行运动搜索时尝试开始于像素“C3”、“a”、“b”、“c”、“d”、“f”、“g”、“h”、“i”、“j”、“k”、“l”及“n”处的块,即使常规运动搜索算法将指定跳过开始于像素“C3”、“a”、“b”、“c”、“d”、“f”、“g”、“h”、“i”、“j”、“k”、“l”及“n”中的一者或一者以上处的块也是如此。
图8为说明使用经交换的内插滤波器及偏移在单个遍次中编码视频数据的视频编码器20的实例操作的流程图。图8的实例方法说明一种用于基于先前编码的帧的历史来选择内插滤波器的实例方法。尽管出于阐释的目的而相对于视频编码器20(图2)进行描述,但应理解,其它视频编码器可使用关于图8所描述的方法。最初,视频编码器20从例如视频源18(图1)等视频源接收数字视频(80)。所述数字视频可在视频源18包含视频捕捉装置时包含新记录的视频,或在其它情况下包含预先记录、未经编码的数字视频。所述数字视频通常包含帧序列,每一帧包含多个切片及宏块。视频编码器20将视频序列中的帧编码为I帧、P帧或B帧。在P帧及B帧内,可将一些宏块编码为I宏块。
视频编码器20将图片群组(GOP)中的第一帧编码为经帧内译码的I帧(82)。视频编码器20接着选择默认集合的内插滤波器37以在(例如)通过逆变换单元44解码经编码的I帧以重构参考帧之后计算I帧的子整数像素的值(84)。运动补偿单元35接收I帧的经重构版本,且使用选定集合的内插滤波器37来计算I帧的子像素的值(86)。对于第一经帧间译码的单元,滤波器的选定集合可为滤波器的默认集合。明确地说,对于I帧的每一子像素,运动补偿单元35应用对应的默认内插滤波器来计算子像素的值。在一些实例中,用于一个子像素的默认内插滤波器可不同于用于同一I帧的另一子像素的默认内插滤波器。设计者可指定内插滤波器中的一者作为用于子像素位置中的每一者的默认内插滤波器。视频编码器20可选择内插滤波器37中在历史上已提供子像素的位置的最低误差的一者作为默认内插滤波器,或可以其它方式选择默认内插滤波器。在任何情况下,运动补偿单元35使用内插滤波器37中的默认内插滤波器来计算I帧的子像素的值,且将I帧存储在参考帧存储装置34中。
运动补偿单元35还计算参考帧的像素及子像素位置中的一者或一者以上的偏移值(88)。在一些实例中,偏移值可表示参考帧与待编码的下一帧(例如,B帧或P帧)之间的平均像素值差。运动补偿单元35可利用关于图4所描述或在本发明的其它地方所描述的方法中的任一者来计算偏移值并将偏移值指派给参考帧的像素。在计算偏移值之后,运动补偿单元35根据偏移值来更改参考帧的像素值。
视频编码器20接着根据参考帧来编码下一帧(例如,P帧或B帧)(90)。当待编码的下一帧为P帧时,视频编码器20可基于参考帧存储装置34中的最近的I帧或P帧来编码所述帧。当所述帧为B帧时,视频编码器20可基于参考帧存储装置34的一个或一个以上帧来编码所述帧。运动估计单元36基于参考帧存储装置34的一个或一个以上帧来计算帧的经译码单元(例如,块)的运动向量。块的运动向量指向参考帧中的对应预测性块。运动向量可参照参考帧内的整数或子整数像素位置。在子整数精度运动向量的情况下,如上文所述,内插参考帧(86)以产生子像素位置处的值。
在运动搜索以计算运动向量期间,运动估计单元36可根据运动搜索算法而跳过评估某些整数或子整数像素。然而,可根据本发明的技术来配置运动估计单元36,以评估开始于运动补偿单元35已对其应用偏移值的那些整数及子整数像素处的块,而不管运动搜索算法是否指定跳过所述像素。这与一些常规运动估计单元相反,所述常规运动估计单元将根据运动搜索算法跳过这些位置。在一个实例中,即使当常规运动搜索算法指定跳过那些位置中的任一者或全部时,运动估计单元36仍可经配置以明确地检查运动补偿单元35已为其指派偏移值的子整数像素位置中的每一者。举例来说,如果运动补偿单元35将以下偏移值指派给下表5中的以下子整数像素位置。表5等同于上文的表1,但为易于说明而再现如下。
表5
  位置   偏移
  0   0
  1   2
  2   0
  3   0
  4   0
  5   3
  6   1
  7   -2
  8   0
  9   3
  10   0
  11   2
  12   0
  13   -1
  14   1
  15   1
那么两个块的SAD的计算可计算六次,每当在将“虚拟”偏移{-2,-1,0,1,2,3}中的一者加到参考块之后计算一次。可选择具有最小SAD的运动向量。在一个以上位置中出现的偏移值(例如在子像素位置1及11两者中出现的偏移“2”)可仅尝试一次。换句话说,运动估计单元可搜索各自具有相同所计算偏移值的多个子像素中的仅一者。
运动补偿单元35基于帧中正编码的当前块与参考帧的预测性块之间的差来计算每一块的残余值。视频编码器20(例如)使用DCT、量化及熵译码来编码运动向量、残差及适用内插滤波器的识别符,以及偏移值,且将此数据在经译码位流中发送到解码器。
运动补偿单元35还将帧的误差值确定为使用参考帧而编码(92),所述参考帧具有使用应用于运动估计的选定内插滤波器来计算的子像素。运动补偿单元35还确定可能已用于每一子像素位置的其它潜在内插滤波器中的每一者的误差值(94)以用于运动估计。以此方式,运动补偿单元35可基于不同的其余内插滤波器来重新计算误差值。举例来说,运动补偿单元35可计算成本矩阵C[F][I]。举例来说,如关于图2所描述,对于每一(f,i),其中i对应于一子像素位置,且f指代对应于子像素位置i的内插滤波器,运动补偿单元35针对具有使用内插滤波器f计算的值的每一子像素位置i计算跨越帧而累加的误差。
运动补偿单元35可接着确定内插滤波器的哪一集合将产生最低误差值(96)。举例来说,运动补偿单元35可跨越每一子像素位置及每一未经尝试的滤波器而反复,以确定位置及其使帧的总误差降低最大量的内插滤波器。运动补偿单元35可接着重新计算帧的总误差,且继续识别位置及减小帧的总误差的对应内插滤波器,直到已达到最大反复次数为止或直到总误差降低小于阈值量为止。关于图9来论述此方法的实例。
运动补偿单元35可接着确定当前帧是否为视频序列(例如,图片群组(GOP)、帧群组)中或全记录视频序列中的最后帧(98)。如果不是(98的“否”分支),那么在后续帧为经双向编码的帧时,运动补偿单元35可将内插滤波器的选定集合应用于先前所编码的帧,以计算子像素值并参考所述帧及潜在的另一参考帧来编码后续帧。此过程可在重复的基础上继续,使得确定针对先前译码单元或译码单元系列产生最低误差的内插滤波器用以支持对当前译码单元的运动估计。以此方式,支持对当前译码单元的运动估计的内插滤波器的选择是基于一个或一个以上先前经译码的单元的历史内插结果。如上文所描述,可基于累加内插结果来选择内插滤波器,其中向较新近译码单元的结果给予较高权重。
图9为说明用于基于先前经译码的帧的历史内插结果来识别内插滤波器的最佳集合以便计算当前帧的子像素的经内插值的实例方法的流程图。最初,运动补偿单元35接收n个子整数像素位置的具有在0到n-1的范围内的元素索引的历史决策向量D(110)。决策向量D的每一元素对应于用以计算对应子像素的值的内插滤波器。
运动补偿单元35接着计算成本矩阵C[F][I],其中I中的每一i对应于子整数像素位置,且F中的每一f对应于用以计算子整数像素i的值的内插滤波器,其中C[f][i]等于当前帧中具有使用内插滤波器f来计算的值的每一子整数像素位置i的误差的和。因此,误差(x,i)指代与相对于所述帧中关于经编码帧的像素x的第i个子整数像素相关联的误差值,且每一帧具有M个像素:
C [ f ] [ i ] = Σ k = 0 M error ( x , i )
运动补偿单元35计算每一子整数像素位置的每一内插滤波器的误差值。在一个实例中,运动补偿单元35可进一步将先前帧的成本矩阵的分数值加到当前帧的成本矩阵,(例如)以使内插滤波器选择基于多个历史帧的累加内插误差结果而非仅基于参考帧。在计算成本矩阵之后,运动补偿单元35可通过加上如通过先前帧的内插滤波器计算的对应于子像素的值来计算历史帧的误差值(114)。换句话说,对于I中的每一i,运动补偿单元35可累加每一C[f][i],其中i对应于子像素位置,且f对应于用以计算i的值的内插滤波器。此值在一个实例中对应于SAD。
运动补偿单元35可接着确定位置i及用于i的减小SAD值最多的内插滤波器f(116)。举例来说,运动补偿单元35可反复通过并不用以计算参考帧的子像素的子像素与内插滤波器组合的成本矩阵中的每一值,并将这些值与用于参考帧的子像素与内插滤波器组合的对应值进行比较。未使用的子像素位置与内插滤波器组合与对应的子像素位置及已使用的内插滤波器之间的最大差为此组合。当此差大于最小阈值(118的“是”分支)时,运动补偿单元35用决策向量中的子像素位置处的新确定的内插滤波器来代替已用于所述位置的内插滤波器(120),且使用此新组合来重新计算误差(例如,SAD)(122)。运动补偿单元35可重复此过程,直到已达到最大反复次数(124的“是”分支)为止,或直到上文所描述的差小于预定阈值(118的“否”分支)为止。运动补偿单元35接着输出经更新的决策向量(126)。接着可使用经更新的决策向量来为待译码的当前单元选择内插滤波器集合。
以下伪码提供用于实施本发明的DC偏移技术的实例。在所述伪码中,“blockDC1”为用于基于由“list(列表)”识别的参考帧来计算由“input(输入)”识别的16×16像素块的DC偏移值DCmin及DCmax的程序。“NoSamples”为定义所述程序的可用于计算DCmin及DCmax的样本数目的整数值。“List”为识别参考帧的整数值(根据ITU H.264术语称为“list”)。一般来说,BlockDC1及BlockDC2为估计参考帧的亮度与正编码的帧(或当前帧)的亮度之间的差的函数。所估计的偏移可应用于参考帧,且用以改进经运动补偿的预测。
一种方法将为考虑参考帧的平均亮度,且将所述平均亮度与当前帧的平均亮度进行比较。此解决方案具有平均亮度并不表示局部变化的缺点。有可能具有具非常不同的平均亮度的两个帧一旦经运动补偿就产生几乎等同的宏块的情况。换句话说,(例如)明亮对象未受阻的情况。第二种可能性使用运动向量以便估计经运动补偿的块之间的DC差。此方法是精确的,但可能具有如下缺点:运动向量必须是可用的,且因此意味着必须编码当前帧多次(估计运动向量至少一次,及将DC偏移应用于预测一次,预测是已知影响需要重新计算以便考虑新计算的偏移的运动信息的操作)。
基于块的DC差的计算可在不利用运动向量的情况下克服例如上文所描述的问题等问题。基于块的DC差的计算可基于关于具有某一大小(例如,16×16像素)的位于同一位置的块之间的DC差的统计数据的收集。所述统计数据可以直方图形式来收集。在下文呈现的伪码中,BlockDC1及BlockDC2表示用于设定DCmin及DCmax的值以定义偏移值的范围的技术。比较参考帧与当前帧中的块,且对于每一像素块计算两个量:
1)像素差的平方误差(函数BlockDC1或BlockDC2中的err0);
2)在将块的平均DC减去每一像素的值之后的像素差的平方误差(函数BlockDC1或BlockDC2中的err1)。
对块是否足够类似(即,设在同一位置的块之间的差是否主要由DC差引起)的估计可基于以上的量1)与2)的比较。举例来说,如果1)中的误差(err0)大于2)中的误差(err1)的两倍,那么可确定所述块并非足够类似,且差并非主要由DC差引起。如果位于同一位置的块足够类似,那么可将统计数据累加到含有基于块的DC差的直方图的向量中。在一些情况下,可通过将DC差舍入为整数值来量化DC差。
通过审查直方图柱,有可能得出DC差的范围并计算出DCmin及DCmax。BlockDC1通过确定对应于含有大于noSamples个样本的最左及最右直方图柱的DC来计算DCmin及DCmax值。BlockDC2通过对对应于具有大于noSamples个样本的正DC值及负DC值的柱的数目进行计数来计算DCmin及DCmax值。作为BlockDC2的变化形式,另一方法可为对对应于具有大于noSamples个样本的负DC值及正DC值的柱的数目进行计数,但在第一次测试失败之后停止计数。SetSubpelOffset1及setSubpelOffset2在以下伪码中为根据在函数BlockDC1及BlockDC2中的对应者的执行期间实施的计算来设定帧的子整数像素的偏移值(例如,DCmin、DCmax及/或在DCmin与DCmax之间的值)的函数。
由以下伪码说明的“BlockDC1”程序为用于设定由“input”识别的16×16像素块的DCmin及DCmax的值的程序的实例。
Figure BPA00001342843400381
Figure BPA00001342843400401
“SetSubpelOffset1”为用于将由“SubpelOffset[16]”识别的块的DC偏移值设定于在DCmin与DCmax之间的范围内的程序。“List”为识别参考帧的整数值。“ImgOffset”识别用于具有大于零的索引的参考帧上的帧偏移。在此实例中,setSubpelOffset1调用blockDC,所述blockDC可调用上文所呈现的blockDC1的程序。
Figure BPA00001342843400421
Figure BPA00001342843400431
Figure BPA00001342843400441
由以下伪码说明的“BlockDC2”程序为用于设定由“input”识别的16×16像素块的DCmin及DCmax的值的另一程序的实例。DCmin及DCmax为指向由BlockDC2计算的值的指针,所述另一程序可用作用于设定块的在DCmin与DCmax之间的DC值的范围。“NoSamples”为定义程序的可用于计算DC偏移值的样本数目的整数值。
Figure BPA00001342843400442
Figure BPA00001342843400451
Figure BPA00001342843400461
Figure BPA00001342843400471
“SetSubpelOffset2”为将用于由“input”识别的块的子整数像素位置的偏移值设定于在DCmin与DCmax之间的范围内的程序。在此实例中,setSubpelOffset1调用blockDC,所述blockDC可调用上文所呈现的blockDC1或blockDC2的程序。
Figure BPA00001342843400481
Figure BPA00001342843400491
Figure BPA00001342843400511
本发明的技术可实现于各种各样的装置或设备中,所述装置或设备包括无线手持机、集成电路(IC)或一组IC(即,芯片组)。已描述经提供以强调功能方面的任何组件、模块或单元,且未必要求其通过不同硬件单元来实现。
本发明中所描述的技术可至少部分以硬件、软件、固件或其任一组合来实施。举例来说,所描述技术的各种方面可实施于以下各项内:一个或一个以上处理器(包括一个或一个以上微处理器)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其它等效集成式或离散逻辑电路,以及此些组件的任何组合。术语“处理器”或“处理电路”通常可指代单独或与其它逻辑电路组合的前述逻辑电路中的任一者,或任何其它等效电路。
此硬件、软件及固件可实施于同一装置内或单独装置内以支持本发明中描述的各种操作及功能。此外,所描述的单元、模块或组件中的任一者可一起实施或单独地实施为离散但可共同操作的逻辑装置。将不同特征描绘为模块或单元意在突出不同功能方面,且未必意味着必须通过单独的硬件及/或软件组件来实现这些模块或单元。实情为,与一个或一个以上模块或单元相关联的功能性可由单独的硬件或软件组件来执行,或集成于共用或单独的硬件或软件组件内。
本文中所描述的技术还可包含或编码在例如计算机可读存储媒体等含有指令的计算机可读媒体中。举例来说,在执行指令时,嵌入或编码于计算机可读媒体中的指令可致使可编程处理器或其它处理器实施方法。计算机可读存储媒体可包括:随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、硬盘、CD-ROM、软盘、盒式磁带、磁性媒体、光学媒体或其它计算机可读媒体。
已描述了各种实例。这些及其它实例在所附权利要求书的范围内。

Claims (42)

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所述的存储媒体,其中所述视频单元中的每一者包含视频帧或视频切片中的一者。
CN200980139142.3A 2008-10-03 2009-05-08 使用内插滤波器及偏移的数字视频译码 Expired - Fee Related CN102172022B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10278908P 2008-10-03 2008-10-03
US61/102,789 2008-10-03
US12/432,544 2009-04-29
US12/432,544 US9078007B2 (en) 2008-10-03 2009-04-29 Digital video coding with interpolation filters and offsets
PCT/US2009/043391 WO2010039288A1 (en) 2008-10-03 2009-05-08 Digital video coding with interpolation filters and offsets

Publications (2)

Publication Number Publication Date
CN102172022A true CN102172022A (zh) 2011-08-31
CN102172022B CN102172022B (zh) 2016-08-17

Family

ID=41199822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980139142.3A Expired - Fee Related CN102172022B (zh) 2008-10-03 2009-05-08 使用内插滤波器及偏移的数字视频译码

Country Status (8)

Country Link
US (1) US9078007B2 (zh)
EP (1) EP2345254A1 (zh)
JP (2) JP5547198B2 (zh)
KR (2) KR101437719B1 (zh)
CN (1) CN102172022B (zh)
BR (1) BRPI0920730A2 (zh)
TW (1) TW201016019A (zh)
WO (1) WO2010039288A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103237220A (zh) * 2013-04-29 2013-08-07 清华大学 视频编码中基于非均匀像素截断的运动估计方法
CN104255029A (zh) * 2012-04-26 2014-12-31 索尼公司 产生用于不同的颜色取样格式的子像素值
CN104581179A (zh) * 2013-10-21 2015-04-29 三星电子株式会社 执行运动补偿的视频编码和解码方法及其装置
CN104754342A (zh) * 2013-12-31 2015-07-01 Vixs***公司 带有块合并的视频编码器以及与其一起使用的方法
CN106576171A (zh) * 2014-08-22 2017-04-19 高通股份有限公司 统一帧内块复制和帧间预测
CN107734346A (zh) * 2012-02-04 2018-02-23 Lg 电子株式会社 视频编码方法、视频解码方法和使用其的设备
CN108055544A (zh) * 2012-07-16 2018-05-18 三星电子株式会社 Sao编码方法和设备以及sao解码方法和设备
CN109792524A (zh) * 2016-10-05 2019-05-21 高通股份有限公司 切换内插滤波器的***及方法
CN110149513A (zh) * 2014-01-08 2019-08-20 微软技术许可有限责任公司 选择运动向量精度
WO2020200236A1 (en) * 2019-04-01 2020-10-08 Beijing Bytedance Network Technology Co., Ltd. Using interpolation filters for history based motion vector prediction
US11503288B2 (en) 2019-08-20 2022-11-15 Beijing Bytedance Network Technology Co., Ltd. Selective use of alternative interpolation filters in video processing
US11546629B2 (en) 2014-01-08 2023-01-03 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010050089A1 (ja) * 2008-10-29 2010-05-06 パナソニック株式会社 動画像圧縮符号化における符号化処理方法及び符号化処理装置
CN102714731A (zh) * 2009-12-22 2012-10-03 索尼公司 图像处理设备和方法及程序
WO2011086672A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置
EP2557795A4 (en) * 2010-04-06 2015-07-08 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING A VIDEO AND METHOD AND APPARATUS FOR DECODING A VIDEO
US9219921B2 (en) * 2010-04-12 2015-12-22 Qualcomm Incorporated Mixed tap filters
US8798131B1 (en) 2010-05-18 2014-08-05 Google Inc. Apparatus and method for encoding video using assumed values with intra-prediction
US9154807B2 (en) * 2010-06-25 2015-10-06 Qualcomm Incorporated Inclusion of switched interpolation filter coefficients in a compressed bit-stream
US9317896B2 (en) * 2010-07-09 2016-04-19 Samsung Electronics Co., Ltd. Image interpolation method and apparatus
US20120063515A1 (en) * 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
GB2484071B (en) * 2010-09-23 2013-06-12 Imagination Tech Ltd De-interlacing of video data
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
EP3541076B1 (en) 2010-10-20 2021-03-10 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Error resilient rate distortion optimization for image and video encoding
US8968080B1 (en) * 2010-11-05 2015-03-03 Wms Gaming, Inc. Display of third party content on a wagering game machine
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US8761245B2 (en) 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
US8842723B2 (en) * 2011-01-03 2014-09-23 Apple Inc. Video coding system using implied reference frames
CN103503458B (zh) 2011-01-07 2017-09-22 诺基亚技术有限公司 视频编码中的运动预测
US9161041B2 (en) * 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
US9380319B2 (en) 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US9313519B2 (en) 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
WO2012125450A1 (en) * 2011-03-11 2012-09-20 General Instrument Corporation Interpolation filter selection using prediction index
US8767817B1 (en) * 2011-04-07 2014-07-01 Google Inc. Apparatus and method for coding using parameterized equation
US9143799B2 (en) * 2011-05-27 2015-09-22 Cisco Technology, Inc. Method, apparatus and computer program product for image motion prediction
CN108391137B (zh) 2011-06-15 2022-07-19 韩国电子通信研究院 可伸缩解码方法/设备、可伸缩编码方法/设备和介质
EP2724534A2 (en) 2011-06-24 2014-04-30 Motorola Mobility LLC Selection of phase offsets for interpolation filters for motion compensation
MX2014000046A (es) * 2011-06-28 2014-02-17 Samsung Electronics Co Ltd Metodo de codificacion de video que utiliza ajustes de desplazamiento de comformidad clasificacion de pixel y aparato para ello, metodo de decodificacion de video y aparato para ello.
US9055304B2 (en) * 2011-07-01 2015-06-09 Qualcomm Incorporated Reduced resolution pixel interpolation
BR112013033743A2 (pt) * 2011-07-01 2019-09-24 Motorola Mobility Inc filtro de interpolação de subpixel conjunto para predição temporal
US9392235B2 (en) 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
BR112014012038A2 (pt) * 2011-11-18 2017-05-30 Motorola Mobility Llc armazenamento eficiente de informação de movimento para codificação de vídeo de alta eficiência
EP2781098B1 (en) 2011-11-18 2019-02-06 Google Technology Holdings LLC An explicit way for signaling a collocated picture for high efficiency video coding (hevc)
KR101607038B1 (ko) 2011-11-21 2016-04-11 모토로라 모빌리티 엘엘씨 시간 예측을 위한 병치된 픽처의 암시적 결정 및 결합된 암시적 및 명시적 결정
US9386305B2 (en) 2011-11-28 2016-07-05 Qualcomm Incorporated Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
CN104303500B (zh) 2011-12-26 2018-04-13 谷歌技术控股有限责任公司 对于时间预测的并列图片的隐式确定
US20130243085A1 (en) * 2012-03-15 2013-09-19 Samsung Electronics Co., Ltd. Method of multi-view video coding and decoding based on local illumination and contrast compensation of reference frames without extra bitrate overhead
CN104937939B (zh) 2012-04-11 2018-10-23 谷歌技术控股有限责任公司 用于时间运动矢量预测符标志的编码器和解码器及其方法
WO2013154674A1 (en) 2012-04-11 2013-10-17 Motorola Mobility Llc Evaluation of signaling of collocated reference picture for temporal prediction
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9319681B2 (en) 2012-07-18 2016-04-19 Google Technology Holdings LLC Signaling of temporal motion vector predictor (MVP) enable flag
TW201406166A (zh) * 2012-07-27 2014-02-01 Novatek Microelectronics Corp 視訊編碼方法與視訊編碼裝置
CN103581689A (zh) * 2012-08-07 2014-02-12 联咏科技股份有限公司 视频编码方法与视频编码装置
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9369732B2 (en) 2012-10-08 2016-06-14 Google Inc. Lossless intra-prediction video coding
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US9648353B2 (en) * 2013-04-04 2017-05-09 Qualcomm Incorporated Multiple base layer reference pictures for SHVC
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US9247251B1 (en) 2013-07-26 2016-01-26 Google Inc. Right-edge extension for quad-tree intra-prediction
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
EP3023938A1 (en) 2014-11-21 2016-05-25 Thomson Licensing Method and apparatus for tracking the motion of image content in a video frames sequence using sub-pixel resolution motion estimation
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
CN108141602B (zh) * 2015-09-25 2021-02-23 华为技术有限公司 视频编解码器、编解码方法和计算机可读存储介质
CN108370445B (zh) 2015-09-25 2020-02-21 华为技术有限公司 一种视频编码器和视频解码器
RU2696314C1 (ru) 2015-09-25 2019-08-01 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ компенсации движения в видео
MY187403A (en) 2015-09-25 2021-09-22 Huawei Tech Co Ltd Apparatus and method for video motion compensation with selectable interpolation filter
CA2999848C (en) 2015-09-25 2020-08-18 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
JP7094076B2 (ja) * 2016-08-19 2022-07-01 沖電気工業株式会社 映像符号化装置、プログラム及び方法、並びに、映像復号装置、プログラム及び方法、並びに、映像伝送システム
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10499078B1 (en) * 2017-02-07 2019-12-03 Google Llc Implicit motion compensation filter selection
TWI648708B (zh) * 2017-09-06 2019-01-21 奇景光電股份有限公司 像素內插電路與像素內插方法
CN111010568B (zh) * 2018-10-06 2023-09-29 华为技术有限公司 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器
JP7277579B2 (ja) 2018-11-02 2023-05-19 北京字節跳動網絡技術有限公司 Hmvp候補記憶装置のための表の保守
EP3942823A4 (en) * 2019-03-18 2023-04-05 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
CN118214864A (zh) * 2019-09-11 2024-06-18 夏普株式会社 用于基于交叉分量相关性来减小视频编码中的重构误差的***和方法
EP4128755A4 (en) * 2020-04-29 2023-09-06 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTERPOLATION FILTERING UNDERSAMPLING
WO2024037645A1 (en) * 2022-08-19 2024-02-22 Mediatek Inc. Boundary sample derivation in video coding

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040076333A1 (en) * 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
CN1625902A (zh) * 2002-04-24 2005-06-08 日本电气株式会社 运动图片编码和解码方法以及使用该方法的设备和程序
WO2006108654A2 (en) * 2005-04-13 2006-10-19 Universität Hannover Method and apparatus for enhanced video coding
CN1926875A (zh) * 2004-07-13 2007-03-07 松下电器产业株式会社 运动补偿方法
WO2008068623A2 (en) * 2006-12-01 2008-06-12 France Telecom Adaptive interpolation method and system for motion compensated predictive video coding and decoding
WO2008084378A2 (en) * 2007-01-09 2008-07-17 Nokia Corporation Adaptive interpolation filters for video coding

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001076154A2 (en) 2000-04-03 2001-10-11 Telefonaktiebolaget Lm Ericsson (Publ) Ad-hoc network and gateway
DE20102205U1 (de) 2001-02-07 2001-08-23 Latein, Christine, 75177 Pforzheim Multifunktionaler, transportabler Computer
US6847405B2 (en) * 2001-09-14 2005-01-25 Sony Corporation Motion-adaptive de-interlacing method and system for digital televisions
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
JP2005318297A (ja) * 2004-04-28 2005-11-10 Toshiba Corp 動画像符号化・復号方法及び装置
US7460893B2 (en) * 2005-05-17 2008-12-02 Nokia Corporation Display changing in a portable electronic device
US20080075165A1 (en) * 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding
US8059207B2 (en) 2007-02-23 2011-11-15 Samsung Electronics Co., Ltd. System and method for video noise reduction using an adaptive temporal method with motion detection and motion compensation
MX2009010527A (es) * 2007-04-09 2009-10-26 Nokia Corp Vectores de movimiento de alta precision para codificacion de video con baja complejidad de codificacion y decodificacion.
FR2934901B1 (fr) 2008-08-05 2012-07-13 Commissariat Energie Atomique Procede de mesure sans contact de l'indice de refraction d'un materiau par tomographie par coherence optique, application a la mesure de la masse volumique d'un materiau poreux.
US8548041B2 (en) 2008-09-25 2013-10-01 Mediatek Inc. Adaptive filter

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625902A (zh) * 2002-04-24 2005-06-08 日本电气株式会社 运动图片编码和解码方法以及使用该方法的设备和程序
US20040076333A1 (en) * 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
CN1926875A (zh) * 2004-07-13 2007-03-07 松下电器产业株式会社 运动补偿方法
US20070133687A1 (en) * 2004-07-13 2007-06-14 Steffen Wittmann Motion compensation method
WO2006108654A2 (en) * 2005-04-13 2006-10-19 Universität Hannover Method and apparatus for enhanced video coding
WO2008068623A2 (en) * 2006-12-01 2008-06-12 France Telecom Adaptive interpolation method and system for motion compensated predictive video coding and decoding
WO2008084378A2 (en) * 2007-01-09 2008-07-17 Nokia Corporation Adaptive interpolation filters for video coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
VATIS Y 等: "P and B pics with 2-d nonseparable wiener interpolation", 《JOINT VIDEO TEAM(JVT) OF ISO/IEC MPEG&ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 06),NO.VCEG-AD08》 *
Y. VATIS等: "MOTION- AND ALIASING-COMPENSATED PREDICTION USING A TWO-DIMENSIONAL NON-SEPARABLE ADAPTIVE WIENER INTERPOLATION FILTER", 《IMAGE PROCESSING,2005.ICIP2005. IEEE INTERNATIONAL CONFERENCE ON GENOVA,ITALY》 *
YURI VATIS等: "locally adaptive non-separable interpolation filter for H.264/AVS", 《2006 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 *

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107734346A (zh) * 2012-02-04 2018-02-23 Lg 电子株式会社 视频编码方法、视频解码方法和使用其的设备
US11778212B2 (en) 2012-02-04 2023-10-03 Lg Electronics Inc. Video encoding method, video decoding method, and device using same
US11218713B2 (en) 2012-02-04 2022-01-04 Lg Electronics Inc. Video encoding method, video decoding method, and device using same
CN107734346B (zh) * 2012-02-04 2020-11-20 Lg 电子株式会社 视频编码方法、视频解码方法和使用其的设备
US10681364B2 (en) 2012-02-04 2020-06-09 Lg Electronics Inc. Video encoding method, video decoding method, and device using same
US10440358B2 (en) 2012-04-26 2019-10-08 Sony Corporation Data encoding and decoding
US9674531B2 (en) 2012-04-26 2017-06-06 Sony Corporation Data encoding and decoding
US9686548B2 (en) 2012-04-26 2017-06-20 Sony Corporation Data encoding and decoding
CN104255029A (zh) * 2012-04-26 2014-12-31 索尼公司 产生用于不同的颜色取样格式的子像素值
US10499052B2 (en) 2012-04-26 2019-12-03 Sony Corporation Data encoding and decoding
US11109019B2 (en) 2012-04-26 2021-08-31 Sony Corporation Data encoding and decoding
US10244232B2 (en) 2012-04-26 2019-03-26 Sony Corporation Data encoding and decoding
CN108055545B (zh) * 2012-07-16 2020-09-08 三星电子株式会社 Sao编码方法和设备以及sao解码方法和设备
CN108055545A (zh) * 2012-07-16 2018-05-18 三星电子株式会社 Sao编码方法和设备以及sao解码方法和设备
CN108055544B (zh) * 2012-07-16 2020-09-08 三星电子株式会社 Sao编码方法和设备以及sao解码方法和设备
CN108055544A (zh) * 2012-07-16 2018-05-18 三星电子株式会社 Sao编码方法和设备以及sao解码方法和设备
CN103237220B (zh) * 2013-04-29 2015-12-23 清华大学 视频编码中基于非均匀像素截断的运动估计方法
CN103237220A (zh) * 2013-04-29 2013-08-07 清华大学 视频编码中基于非均匀像素截断的运动估计方法
CN104581179A (zh) * 2013-10-21 2015-04-29 三星电子株式会社 执行运动补偿的视频编码和解码方法及其装置
CN104754342B (zh) * 2013-12-31 2019-07-09 Vixs***公司 带有块合并的视频编码器以及与其一起使用的方法
CN104754342A (zh) * 2013-12-31 2015-07-01 Vixs***公司 带有块合并的视频编码器以及与其一起使用的方法
US11546629B2 (en) 2014-01-08 2023-01-03 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
CN110177274A (zh) * 2014-01-08 2019-08-27 微软技术许可有限责任公司 选择运动向量精度
CN110149513A (zh) * 2014-01-08 2019-08-20 微软技术许可有限责任公司 选择运动向量精度
CN110149513B (zh) * 2014-01-08 2022-10-14 微软技术许可有限责任公司 选择运动向量精度
US11638016B2 (en) 2014-01-08 2023-04-25 Microsoft Technology Licensing, Llc Selection of motion vector precision
CN106576171A (zh) * 2014-08-22 2017-04-19 高通股份有限公司 统一帧内块复制和帧间预测
CN106576171B (zh) * 2014-08-22 2019-11-19 高通股份有限公司 一种对视频数据进行编码、解码的方法以及装置
CN109792524A (zh) * 2016-10-05 2019-05-21 高通股份有限公司 切换内插滤波器的***及方法
US11323697B2 (en) 2019-04-01 2022-05-03 Beijing Bytedance Network Technology Co., Ltd. Using interpolation filters for history based motion vector prediction
US11595641B2 (en) 2019-04-01 2023-02-28 Beijing Bytedance Network Technology Co., Ltd. Alternative interpolation filters in video coding
US11483552B2 (en) 2019-04-01 2022-10-25 Beijing Bytedance Network Technology Co., Ltd. Half-pel interpolation filter in inter coding mode
WO2020200236A1 (en) * 2019-04-01 2020-10-08 Beijing Bytedance Network Technology Co., Ltd. Using interpolation filters for history based motion vector prediction
US11936855B2 (en) 2019-04-01 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Alternative interpolation filters in video coding
US11503288B2 (en) 2019-08-20 2022-11-15 Beijing Bytedance Network Technology Co., Ltd. Selective use of alternative interpolation filters in video processing

Also Published As

Publication number Publication date
CN102172022B (zh) 2016-08-17
WO2010039288A1 (en) 2010-04-08
EP2345254A1 (en) 2011-07-20
KR20130054423A (ko) 2013-05-24
JP2012504904A (ja) 2012-02-23
KR101437719B1 (ko) 2014-09-03
JP5547198B2 (ja) 2014-07-09
US20100111182A1 (en) 2010-05-06
KR20110063857A (ko) 2011-06-14
BRPI0920730A2 (pt) 2018-06-26
JP2014042273A (ja) 2014-03-06
US9078007B2 (en) 2015-07-07
TW201016019A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
CN102172022A (zh) 使用内插滤波器及偏移的数字视频译码
US11178421B2 (en) Method and apparatus for encoding/decoding images using adaptive motion vector resolution
CN101999229B (zh) 用于视频译码中的运动补偿的高级内插技术
CN102783149B (zh) 用于视频译码的适应性运动分辨率
CN102265619B (zh) 切换式内插滤波器中的偏移计算方法
CN101999230B (zh) 子像素分辨率下的偏移
CN101990760B (zh) 用于视频译码中的运动补偿的高级内插技术
CN102474623B (zh) 在视频编码中的非零舍入及预测模式选择方法
US11638029B2 (en) Method and apparatus for encoding/decoding images using adaptive motion vector resolution
CN102084655A (zh) 通过过滤器选择进行的视频编码
CN103339939A (zh) 具有自适应分接头大小的低复杂性内插滤波
CN102474621A (zh) 视频编码中的非零舍入与预测模式选择技术
US9491480B2 (en) Motion vector encoding/decoding method and apparatus using a motion vector resolution combination, and image encoding/decoding method and apparatus using same
CN103609123A (zh) 统一合并模式和自适应运动向量预测模式候选者选择
CN103959788A (zh) 通过模式匹配在解码器层面的运动估计

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160817

Termination date: 20190508