CN106303545B - 用于在帧序列中执行运动估计的数据处理系统和方法 - Google Patents

用于在帧序列中执行运动估计的数据处理系统和方法 Download PDF

Info

Publication number
CN106303545B
CN106303545B CN201610589737.0A CN201610589737A CN106303545B CN 106303545 B CN106303545 B CN 106303545B CN 201610589737 A CN201610589737 A CN 201610589737A CN 106303545 B CN106303545 B CN 106303545B
Authority
CN
China
Prior art keywords
vector
frame
blocks
backward
frames
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.)
Active
Application number
CN201610589737.0A
Other languages
English (en)
Other versions
CN106303545A (zh
Inventor
J·狄金斯
S·菲舍维克
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN106303545A publication Critical patent/CN106303545A/zh
Application granted granted Critical
Publication of CN106303545B publication Critical patent/CN106303545B/zh
Active 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
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

用于在帧序列中执行运动估计的数据处理系统和方法。一种用于执行运动估计的数据处理系统,该系统包括:向量生成器,其被构造成形成针对第一帧的块的前向向量的集合以及针对第二帧的块的后向向量的集合,每个前向向量识别块到第二帧中的可能的映射,而每个后向向量识别块到第一帧中的可能的映射;以及处理器,其被构造成,针对在第一帧和第二帧之间插值的输出帧的块,识别针对第一帧并与该搜索块共位而形成的第一前向向量以及针对第二帧并与该搜索块共位而形成的第一后向向量;该处理器被构造成,如果该第一前向向量和该第一后向向量为互逆,则根据该第一前向向量和该第一后向向量生成针对该搜索块的输出向量。

Description

用于在帧序列中执行运动估计的数据处理系统和方法
技术领域
本发明涉及用于执行运动估计的方法和数据处理系统。
背景技术
在用于处理视频流或其他帧序列的系统中,能够估计流中描绘的特征在帧之间的运动是有用的。这种运动估计信息具有多种应用。例如,在播放设备中,运动估计信息可用于猜测特征将在视频帧之间的时间点在什么位置,并因此通过在视频流的帧之间生成一个或更多个插值帧来进行帧率转换。在记录或编码设备中,运动估计信息允许视频流的有效压缩,因为其可在一个或更多个视频帧的时间段内用表示相同特征像素的压缩描述和描述这些像素在帧之间运动的信息来替换多个视频帧中的这些像素。
已知多种技术用于估计视频帧之间像素或像素组的运动。现将以示例的形式来描述一种称为基于块的运动估计的常规方法。该基于块的运动估计将视频序列帧细分为称为块或宏块的多个区。总体上说,为识别块在帧之间的运动,帧的每个块中的像素数据与来自前一帧或后一帧的多个候选位置的像素数据进行比较。给出最佳匹配的候选的相对位置可被表示为向量,然后其用于表示块在帧之间的运动。通过在帧的块中重复该步骤,可以生成针对该帧的运动向量的集合,称为该帧的运动向量场。
运动估计技术通常使用可以称为单端运动向量。图1示出了示例性的基于块的单端运动估计。图像100被划分为块105的规则阵列,而运动估计对每个块依次进行。
图1示出了运动对象110,其在视频序列的一个帧的特定位置处,以及交叠于同一图个中,同一对象115,其在序列的前一帧的其位置。块120中的图像数据包含表示对象110的一部分的多个像素。针对块120的运动估计包括搜索序列中的前一帧,以查找具有最类似于块120的内容的内容的图像数据的区域。假设运动估计执行良好,找到了区域125。可以看到,区域125与块120具有相同的大小,但不对齐于网格105。相对于块120,匹配像素125的区域的位置确定运动向量130,其反映对象 110的运动,并且称为块120的运动向量。
单端运动估计在某些应用运行良好,诸如视频编码,因为其在被编码的每个帧100中,针对每个块诸如120生成一个向量。
在运动补偿了的帧率转换器中,在视频序列中的两个已有的源帧之间的中间位置生成插值帧是一般而言必要的。图2示出了从图1的运动估计结果用于在来自原始视频序列的两个源帧之间的新帧中插值图像数据。针对块200的运动估计确定运动向量 205,而从块200的像素并且从区域210的像素导出位于向量中点的帧215的新区域的像素。请注意,插值区域215不一定对齐于块的网格。
图3例示了在帧率转换器利用单端向量时产生的问题。对象300和305以不同的速度运动,分别产生针对块310和315的不相等的运动向量330和335。在该示例中,向量是收敛的。新帧的插值涉及在两个向量的中点即位置330和335处创建像素数据。块310和315是邻接的,但插值区域320和325不邻接。这导致插值帧中的孔340。另选的情况在向量发散时存在,导致插值区域的交叠。在任一种情况下,需要附加的帧处理来解决孔和交叠区域,以生成在每个像素位置具有一个值的输出帧。
图4示出了双端(或双向)运动估计的示例。当用于帧率转换器的示例应用时,该类型的运动估计具有针对插值帧中的每个像素位置准确地生成一个值的优点。要被插值的帧400被划分为块405的规则阵列,而运动估计针对每个块依次进行。针对块 405的运动估计涉及针对图像数据彼此最类似的区域,搜索序列中的前一帧和下一帧。在该示例中,搜索通过要求所测试的区域的偏移量量级上相等并且相对于插值帧 (表示前一和下一源帧之间的时间中点的插值)中的块的位置方向相反而受约束。在该示例中,最佳匹配发现于前一帧的区域410和下一帧的区域415之间,两者被示出交叠在插值帧的块的网格上。注意任何区域均不一定对齐于网格。前向偏移量420 等于后向偏移量425。组合起来,两个偏移量可称为块405的运动向量,并表示对象在源帧之间的间隙中的运动。
块405中的像素数据的插值需要从像素数据410和415的区域之一或两者导出像素数据。网格与插值帧的对齐表示针对每个像素位置确实只生成一个值。
图4的示例示出了插值出现于两个源帧之间的时间中点。在帧率转换中,通常需要其他插值阶段,例如源帧之间间隙的四分之一处的插值。在该情况,某些可能性是存在的,图5例示了两种情况。
在一个示例中,块500被进行运动估计并且利用类似于图4说明的方法插值。然而,已知需要在帧间隙的四分之一进行插值,因此前向偏移量505被缩放以使其为后向偏移量510的三倍大小。缩放后的偏移量然后用于运动估计和插值。其给出了对象 515的正确插值。在需要进一步插值的情况下,例如在一半和四分之三间隙,通过相应调整前向和后向偏移量大小来执行进一步运动估计。该方法执行良好,但会需要每个源帧间隙的多次运动估计。在帧率以较大因数增加时,该运动估计的成本是显著的。
在另一个示例中,在源帧间隙的某些部分需要插值,但每个间隙仅执行一次运动估计,典型地在中点处执行。针对块550的运动估计因此搜索具有相等和相反偏移量的匹配图像区域,并可以找到分别具有偏移量565和570的区域555和560。对于插值,运动向量根据间隙中的插值位置来缩放。例如,在间隙的四分之一处的插值将向量缩放为前向成分575和后向成分580。总体上,当运动在图像的大部分呈均一时,得到的插值比较精确。图5的示例示出了产生误差的示例。偏移量575和580造成从图像区域585和590导出差值。请注意,用于块500的运动估计的方法将不会选择区域585和590,因为这些区域中的图像数据不匹配。然而,块550的插值没有另选,只能从该数据导出插值输出。结果可为两个区域的综合,如在595示出。
基于块的运动评估器典型地通过使用诸如绝对差的和(SAD)或方差均值(MSD) 的方法相对于源帧的像素测试针对块的运动向量候选的集合以识别给出最低误差块匹配的运动向量,来选择其输出运动向量。通过搜索该帧对中的像素块的匹配,生成一个或更多个单端或双端运动向量候选,以描述像素块在帧间的运动。
在多种视频编码标准中,例如,H.264,利用不同于上述针对帧率转换的机制,“B帧”被双向预测。每一个编码块可选择使用一个或两个基准帧。在使用一个基准帧时,编码类似于用于单向预测的“P”帧中的编码。在使用两个基准帧时,预测可以是从编码帧之前的一帧以及其后继的一帧提取的基准像素的均值。识别两个基准帧的基准像素区域的向量不一定在长度上相等或共线,并且运动估计尝试将每个基准帧的像素数据与正被编码的块的像素数据匹配。
传统运动估计系统会将闪烁以及其他伪像引入输出视频流。闪烁一般被认为是出现不希望的(通常是杂乱无章的)随时间的亮度变化。这是在其中难以识别描述帧间像素运动的良好运动向量的帧区域中的特定问题。例如,在依靠像素匹配来识别运动向量的系统中,针对几乎不呈现对比度变化(例如视频中的白色墙壁)或包括重复图案的区域(例如由树形成的浓密的森林或运动场上的草坪)的帧区域会生成欠佳的运动向量。不确定的向量的区域导致输出视频流中的闪烁和漩涡效果。
多种方法先前已用于运动估计系统,以降低闪烁和类似伪像。例如,Y.Kuszpet 等人在“Post-Processing for Flicker Reduction in H.264/AVC”,Proc.Picture CodingSymposium,Lisbon,Portugal,Nov.2007描述了一种后处理技术,其使用简单运动补偿的均衡滤波器来降低闪烁。H.Abbas和L.J.Karam在“Suppression of Mosquito Noise byrecursive Epsilon-filters”,Proc.IEEE ICASSP,Honolulu,Hawaii,April 2007描述了使用递归滤波器来降低蚊式噪声和相关联的闪烁。并且V.Naranjo和A.Albiol在“Flickerreduction in old films”,Proc.IEEE ICIP,Vancouver,Canada,Sep.2000中描述了一种柱状图匹配方法,以降低旧胶片的连贯帧的亮度和对比度的变化。
然而,这些传统技术通过对视频帧的后处理尝试降低闪烁和相关联的伪像并且并未解决由运动估计系统带来的闪烁。此外,除由系统执行的任何运动估计外,以上技术需要系统执行大量处理。
发明内容
根据本发明的第一方面提供了一种用于在帧序列中执行运动估计的数据处理系统,所述帧序列包括分别划分为相应像素块集合的第一帧和第二帧,该系统包括:
向量生成器,该向量生成器被构造成形成针对该第一帧的块的前向向量的集合和针对该第二帧的块的后向向量的集合,每个前向向量识别各块到第二帧中的可能的映射,并且每个后向向量识别各块到第一帧中的可能的映射;以及
处理器,该处理器被构造成针对在该序列的第一帧和第二帧之间插值的输出帧的搜索块,识别关于该第一帧的与该搜索块共位的一个或更多个块而形成的第一前向向量以及关于该第二帧的与该搜索块共位的一个或更多个块而形成的第一后向向量;
其中,该处理器被构造成,如果该第一前向向量和该第一后向向量基本彼此互逆,则依赖于该第一前向向量和该第一后向向量之一或两者生成针对该输出帧的该搜索块的输出向量。
该处理器可被构造成通过形成第一前向向量和第一后向向量的平均来生成该输出双向向量。
该处理器可被构造成通过计算第一前向向量与取逆的第一后向向量的向量的和来形成该第一前向向量和该第一后向向量的平均。
该处理器可被构造成,如果该第一前向向量和该第一后向向量不是基本彼此互逆,则通过识别该第一帧和该第二帧的相似像素的区域生成针对该输出帧的搜索块的向量候选。
该处理器可被构造成,如果该第一前向向量和该第一后向向量是基本彼此互逆,则不通过识别该第一帧和该第二帧的相似像素的区域生成针对该输出帧的搜索块的向量候选。
该处理器可被构造成将将该第一帧和该第二帧的位于与该输出帧的该搜索块对应的帧位置处的一个或更多个块识别为与该搜索块共位。
在识别该第一帧/该第二帧的与该搜索块共位的多个块时,该处理器可被构造成通过以下来识别针对该第一帧/第二帧的多个块的第一前向向量/第一后向向量:
计算针对该第一帧/该第二帧的多个块中的两个或更多个块形成于该向量生成器处的前向向量/后向向量的平均;
确定针对该第一帧/该第二帧的多个块形成于该向量生成器处的前向向量/后向向量的最常规向量;或
随机或根据预定义机制选择针对该第一帧/该第二帧的多个块的形成于该向量生成器处的前向向量/后向向量之一。
该向量生成器可被构造成通过识别该第二帧的与该第一帧的块的像素最接近地匹配的像素的区域来形成针对该第一帧的块的所述集合的前向向量,并且通过识别该第一帧的与该第二帧的块的像素最接近地匹配的像素的区域来形成针对该第二帧的块的所述集合的后向向量。
如果以下条件被满足,则该第一前向向量和该第一后向向量基本彼此互逆:
该第一前向向量和该第一后向向量的方向在第一边界内相反;和/或
该第一前向向量和该第一后向向量的大小在第二边界内相等。
该第一边界和/或该第二边界可在经验上确定。
该第一边界和/或该第二边界可为该第一前向向量/该第一后向向量和/或该帧序列的特征的函数。
该数据处理系统可还包括候选评估器,该候选评估器可操作以从针对每个块生成的一个或更多个向量候选的集合输出针对该输出帧的每个块的最佳匹配向量,其中,该处理器被构造成,如果该第一前向向量和该第一后向向量彼此互逆,则针对该搜索块:
用作为针对该搜索块的最佳匹配向量的输出向量替换针对该搜索块生成的任何向量候选;或
将该输出向量加到针对该搜索块生成的任何向量候选中,以使候选评估器选择该输出向量作为针对该搜索块的最佳匹配向量。
该候选评估器可操作以针对块的每个向量候选计算得分,每个得分为该第一帧和该第二帧的在该相应向量候选的每一端处的像素的相似性的度量,并且该候选评估器被构造成依赖于所计算的得分选择针对该块的最佳匹配向量。
该候选评估器可被构造成不计算针对该搜索块的该输出向量的得分和/或针对该搜索块可用的其他任何向量候选的得分。
所述系统可还包括插值逻辑器,该插值逻辑器被构造成在该第一帧和该第二帧的像素上操作来自该候选评估器的所述最佳匹配向量,以生成在该第一帧和该第二帧之间插值的输出帧。
所述系统可还包括编码逻辑器,该编码逻辑器被构造成在该第一帧和该第二帧的像素上操作来自该候选评估器的最佳匹配向量以生成编码帧流。
根据本发明的第二方面,提供了一种用于在帧序列中执行运动估计的方法,该序列包括被分别划分为相应像素块集合的第一帧和第二帧,该方法包括以下步骤:
形成针对该第一帧的块的前向向量的集合,每个向量识别各块到该第二帧中的可能的映射;
形成针对该第二帧的块的后向向量的集合,每个向量识别各块到该第一帧中的可能的映射;
并且,针对在该序列的该第一帧和该第二帧之间插值的输出帧的搜索块:
识别该第一帧和该第二帧的与该搜索块共位的块;
确定关于该第一帧的一个或更多个共位块形成的第一前向向量和关于该第二帧的一个或更多个共位块形成的第一后向向量是否基本彼此互逆;以及
如果该第一前向向量和该第一后向向量基本彼此互逆,则依赖于该第一前向向量和该第一后向向量之一或两者生成针对该输出帧的搜索块的输出向量。
该方法可进一步包括,如果该第一前向向量和该第一后向向量基本彼此互逆,则防止生成除该输出向量外的针对该输出帧的该搜索块的向量候选。
该方法可进一步包括,如果该第一前向向量和该第一后向向量不是基本彼此互逆,则通过识别该第一帧和该第二帧的相似像素的区域来生成针对该输出帧的该搜索块的向量候选。
识别该第一帧和该第二帧的与该搜索块共位的块的步骤可包括,识别该第一帧和该第二帧的每个的位于与该输出帧中的该搜索块对应的帧位置处的一个或更多个块。
形成用于第一帧的块的该集合的前向向量可包括,识别该第二帧的与该第一帧的块的像素最接近地匹配的像素的区域,以及形成用于第二帧的块的该集合的后向向量包括,识别该第一帧的与该第二帧的块的像素最接近地匹配的像素的区域。
生成输出向量可包括形成第一前向向量和第一后向向量的平均。
确定第一前向向量和第一后向向量是否基本彼此互逆可包括验证:
该第一前向向量和该第一后向向量的方向在第一边界内相反;和/或
该第一前向向量和该第一后向向量的大小在第二边界内相等。
计算机程序代码可被提供,定义该数据处理系统,由此该数据处理系统可制造。非暂存计算机可读存储介质可被提供,具有存储其上的计算机可读指令,其当在计算机系统处理用于生成集成电路的表现时,使计算机系统生成该数据处理系统的表现。
计算机可读代码可被提供用于实现执行运动估计的方法。非暂存计算机可读存储介质可被提供,具有存储其上的计算机可读指令,其当在处理器处理时,使处理器实现执行运动估计的方法。
附图说明
本发明现将以示例的形式并参照附图描述。在附图中:
图1示出了示例性的基于块的单端运动估计。
图2示出了来自图1的运动估计结果被用于在来自原始帧序列的两个源帧之间的新帧中插值图像数据。
图3例示了当在帧率转换器中使用单端向量时产生的问题。
图4示出了产生在两个源帧之间的时间上的中点的插值。
图5示出了产生在两个源帧之间的其他点的插值。
图6例示了双向互补向量的生成。
图7例示了对象大小对互补向量生成的重要性。
图8为被构造成利用互补向量执行运动估计数据处理系统的示意图。
图9为例示了在帧序列中执行运动估计的方法的流程图。
具体实施方式
如下描述以示例的形式呈现,以使能任何本领域技术人员制造和使用本发明。本发明不限于本文描述的实施例,而且对公开的实施例的多种修改将对本领域技术人员完全显而易见。
需要一种用于以引入帧序列的闪烁最小化并且不需要附加图像处理的方式执行运动估计的方法和数据处理系统。此外总体上需要一种具有比传统运动估计方法和系统更低的处理需求的用于执行运动估计的更有效的方法和数据处理系统。
在本文描述的示例中,用于执行运动估计的方法和系统执行基于块的运动估计。其他类型的运动估计是已知的并假设本文描述的原理可应用于该其他类型的运动估计。用于执行本文描述的运动估计的方法和系统可应用于任何帧序列,诸如视频流(包括交织或非交织视频流)或图像序列(包括照片或渲染图像)。
用于在帧序列中执行运动估计的数据处理系统800示出于图8。现将描述以使引入视频流的闪烁和关联的伪像最小化同时降低生成运动向量需要的处理的系统配置。图8的系统仅仅为示例,并且根据本文描述的原理其他配置也是可能的。
数据处理系统800被构造成接收帧流801,其在该示例中包括视频帧的序列。流中的至少两个连贯帧存储于帧缓冲器802。这些帧将称为前一帧803和下一帧804, (分别)指示该帧表示当前间隔的开始和结束,其中关于当前间隔确定一个或更多个运动向量。每个运动向量关于前一帧,下一帧或输出帧的像素的块而生成。每个块表示包括像素组的前一帧/下一帧/输出帧的区域,像素在前一帧和下一帧之间跨越当前间隔的运动将被识别。
数据处理系统800包括单端向量处理器805和双向向量处理器808。在本示例中,这些处理器被构造成在保存在帧缓存的前一帧和下一帧的像素上进行操作,以分别生成单端运动向量和双向运动向量。由于在单端运动向量和双端(双向)运动向量之间转换是简单的,在其它示例中,处理器805和808可被构造成生成并操作于任何类型的运动向量,该运动向量具有被生成或解释为适于实现的单端向量或双端向量的给定向量。总体上,单端向量处理器805可为用于生成表示一对序列帧之间的像素映射的向量的任何种类的向量生成器,而双向向量处理器808可为用于在由向量生成器生成的向量上进行操作以根据本文描述的原理形成互补向量的任何类型的处理器。
由处理器生成的运动向量被提供至候选缓冲器812,作为前一帧和下一帧之间的当前间隔的候选运动向量。单端向量处理器805首先在保持在帧缓冲器804的帧上进行操作,以生成针对前一帧和下一帧的块的其候选运动向量。然后,双向向量处理器 808在保持在帧缓冲器804的帧上进行操作,以生成针对位于前一帧和下一帧之间的当前间隔内的插值输出帧的块的其候选运动向量。(插值输出帧可以是假定的,在于插值帧实际可以不被实际生成)。双向向量处理器在生成其候选向量时可使用保持在候选缓冲器处的单端向量候选。
单端向量处理器805包括前向向量生成器806和后向向量生成器807。前向向量生成器806被构造成在下一帧804中搜索与针对前一帧803定义的像素块的匹配。当在下一帧中发现针对前一帧的块的匹配时,在时间上向前从前一帧指向下一帧的单端向量被生成,以描述相对于前一帧中的块的位置的下一帧中的块的位置:其为前向单端运动向量。后向向量生成器807被构造成在前一帧803中搜索与针对下一帧804 定义的像素块的匹配。当在前一帧中发现针对下一帧的块的匹配时,在时间上向后从下一帧指向前一帧的单端向量被生成,以描述相对于下一帧中的块的位置的前一帧中的块的位置:其为后向单端运动向量。
前向向量生成器和后向向量生成器可根据任何合适的算法搜索相似的像素组。例如,向量生成器可基于两组像素的单纯相似性的度量来确定两帧中像素组的相似性- 例如在给定像素值中诸如颜色或亮度的绝对差的和(SAD)或方差均值(MSD)。向量生成器可将一个或更多个单端向量作为运动向量候选针对每个块提供至候选缓冲器。例如,表示针对块识别的最佳匹配的三个单端向量可被提供至候选缓冲器。
由单端向量生成器在前一帧和下一帧中搜索的像素可根据预定模式或依赖于附加的信息进行选择。例如,搜索区域可依赖于针对该块或关于一个或更多个先前间隙的相邻块创建的运动向量(或其派生)进行选择,和/或搜索区域可基于像素区域的颜色或亮度值的相似性进行选择。
在实际中,通常不可能查找像素块在帧间的每个可能映射,并且由其像素表示的对象可在帧间由于其在场景中运动而改变大小或方向。结果,并非总是可能单独通过连贯帧的像素匹配搜索来识别最合适的运动向量。因此,可以有利的是生成附加的候选向量用于评估。可选地设置向量候选生成器822以生成通过前一帧和下一帧之间的匹配像素以外的机制导出的任何数量的不同向量候选。该向量候选生成器可相对于单端向量处理器和双端向量处理器的操作而在任何合适的时间操作。
其他向量候选可由向量候选生成器针对块以多种方式生成。已知运动向量在空间和时间上均与邻接块的向量高度相关,因此向量候选生成器822可将相邻向量引入针对块的向量候选的集合中。当邻近向量表示像素之间的良好匹配(例如,具有低的 SAD)并且由像素匹配器创建的最佳向量表示差的匹配(例如具有高的SAD)时,这尤其有用。向量候选生成器822基于相对于前一间隙针对块计算的输出运动向量,或基于形成于前一间隙的结束于该块的运动向量而提供一个或更多个候选。
向量候选生成器可以另选地或附加地生成一个或更多个伪随机向量候选,以使系统改进其匹配并在视频中的运动改变时引入自适应要素。在块具有其邻居不能简单预测的运动的情况下,向量候选的伪随机扰动通常可预测运动的变化。该方法对缓慢改变的向量场运行良好。
如以下更详细地描述,针对块保持在候选缓冲器812的向量候选813被评估,以确定哪个候选表示块的运动向量的最佳估计。该评估在候选评估器814中执行。候选评估器可以任何合适的方式确定最佳向量输出。在本示例中,候选评估器比较在前一帧和下一帧中向量的每端处的像素,以确定其像素的相似性。因此候选评估器被提供对合适的像素数据823的访问。例如,候选评估器可被构造成执行到帧缓冲器802 中的搜索。
双向向量处理器808包括双向向量生成器811,该双向向量生成器811被构造成针对插值输出帧的块生成双向向量候选。该双向向量生成器可通过针对相互最类似的图像数据区域搜索前一帧和下一帧而以上述关于图4的方式操作。执行搜索,其目的在于识别针对插值帧的每个搜索块的双端向量,该双端向量发源于该块并指向前一帧和下一帧的相似区域。双端向量可被约束,以使在前一帧和下一帧中测试的区域的偏移量在大小上相等并相对于插值帧中搜索块的位置在方向上相反。其对应于在前一帧和下一帧之间的时间中点的运动估计。不同的约束可用于在当前间隔中具有不同位置的插值帧。由双向向量生成器生成的双向向量候选被提供至候选缓冲器812。
双向向量处理器808还包括检查逻辑器809和互补向量生成器810,其操作以通过另选机制生成双向向量并在进行中降低系统的处理负载。检查逻辑器809在由单端向量处理器生成的单端向量上操作。检查逻辑器可以任何合适的方式接收单端向量,包括:直接从单端向量处理器805接收,如由箭头824表示;从候选缓冲器812接收;从候选评估器814接收;或如本示例描述和图8所示,从向量存储器815接收。现将结合图6描述检查逻辑器和互补向量生成器810的操作。
图6示出了插值输出帧605,其位于前一帧803和下一帧804这一对输入帧之间的当前间隔。考虑插值输出帧的块601,双向向量处理器针对其生成双向向量。为了检查其是否可能通过另选机制针对块601生成双向向量,检查逻辑器809接收:(a) 针对前一帧的块602的单端前向向量607,其相对于帧边界而与搜索块601共位;以及(b)针对下一帧的块603的单端后向向量606,其也与搜索块601共位。如图8 所示,在本示例中,检查逻辑器809从向量存储器815接收针对块602和603的单端向量607和606。其具有的优点在于,单端向量607和606表示如由候选评估器814 确定的针对块602和603的最佳匹配向量。
前一帧和下一帧的与搜索块的中心的帧坐标交叠的块可被认为与插值输出帧的搜索块共位。如果前一帧或下一帧的超过一个块与该坐标交叠,则针对一个或更多个块的单端向量可被检查逻辑器考虑,或对识别搜索块的中心的帧坐标最接近的块可被选择用于在检查逻辑器处进行比较,以给出两个示例。
单端向量和双端向量可在相互不同的分辨率生成。例如一个运动向量场可使用8×8像素块而另一个可使用16×16像素块。较低分辨率向量场的块可被考虑与较高分辨率向量场的所有块共位,其相对于帧的边界而以某些方式与第一向量场交叠。例如,中心位于较低分辨率向量的块的边界内的较高分辨率向量的所有块可被认为与该低分辨率的块共位。多种机制可用于识别当双向向量场的分辨率不同于单端向量场的分辨率时,针对双向向量场的块使用哪个互补向量。例如,如果单端向量场的块大小大于双向向量场的块大小,则每个单端块将搭配于多个双向块;在这种情况下,针对单端块定义的相同的互补向量可被分配至多个交叠的双向块。如果单端向量场的块大小小于双向向量场的块大小,则每个双向块将与多个单端块共位;在这种情况下,例如,针对共位的单端块定义的互补向量的平均(例如均值,中值或众数(mode))可被使用,或针对共位的单端块定义的互补向量中的一个可被随机使用。
检查逻辑器比较前一帧和下一帧的共位块的单端前向向量和后向向量,以确定其向量是否为“互补的”。如果前向向量和后向向量为彼此的逆,则它们为互补:换言之,向量具有基本相同的大小但具有基本相反的方向。如果其大小在相互的预定义长度或比例内,前向向量和后向向量可被认为为具有基本相同的大小。如果其方向在相互的预定义角度或比例内彼此相反,则前向向量和后向向量可被认为为具有基本相反的方向。例如,一对前向向量和后向向量的长度或方向之间的最大差可表示为向量之一或两者(例如平均)的长度/角度比例或帧间时间距离/某些基准角的比例,超过该差之外不再被认为是互补。在其它示例中,如果具有相同的长度并且精确地彼此相反 (在向量被定义到的分辨率以内),则它们可被认为为互逆。检查逻辑器可以任何合适的方式识别前向向量和后向向量对是否为互逆;该识别可包括或不包括前向向量和后向向量的长度和方向的显式识别。
前向向量和后向向量被认为为互逆的合适的容差可通过试错来确定,以实现针对意图目的的所期望的运动估计特性-例如,编码视频流中期望的效率和/或质量等级,或插值帧中希望的图像质量。
如果前向向量和后向向量为彼此的逆,则它们可能需要具有相互的例如,5%,3%,2%或1%以内的长度。考虑1080p视频帧的示例,如果认为为互逆,前向向量和后向向量可能需要具有相互的8个像素以内的长度。如果认为为互逆,前向向量和后向向量可能需要具有相互的例如5%,3%,2%或1%以内的角度。
前向向量和后向向量之间的长度和角度的任何差的综合度量可用于确定这些向量是否是彼此的逆。例如,从前向向量和后向向量之间的长度差和角度差的度量可以形成来自完美互逆的一对向量的偏差的综合度量:
偏差=(长度偏差*长度惩罚)+(角度偏差*角度惩罚)
如果偏差度量超过某些预定义阈值,则前向向量和后向向量将不被认为为互逆;该阈值以下前向向量和后向向量将被认为为互逆。长度惩罚参数和角度惩罚参数可通过以长度和角度偏差的度量被表达的单元的试错来确定。综合偏差度量可随长度和角度偏差的度量而线性地变化;在其它示例中,长度惩罚参数和角度惩罚参数可本身依赖于长度和角度偏差的度量,以使综合偏差度量随长度和角度偏差的度量非线性地变化(例如,指数地)。
如果检查逻辑器确定一对前向向量和后向向量是互补的,则检查逻辑器使互补向量生成器810形成双向向量,其等同于前向向量加上后向向量的逆(即方向反转后的后向向量)的均值,表示为双端向量。互补向量生成器810可被构造成以任何合适的方式根据前向向量和后向向量计算互补向量。由互补向量生成器810生成的向量将称为双向互补向量。例如,回到图6,互补双向向量608可通过计算单端前向向量和单端后向向量的逆的向量和的一半而形成,结果表达为起始于插值输出帧的块601的双端向量,而非单端向量。其在数学上可表达为:
Figure GDA0003202137620000131
其中a为前向向量607,b为后向向量606,c为输出的互补双向向量,但该特定计算不需要明确由互补向量生成器执行。如下文所述,如果检查逻辑器确定前向向量和后向向量对相对于块是互补的,则检查逻辑器优选地不将搜索块传递至双向向量生成器。
如果前向向量和后向向量被认为为互补,则仅前向向量和后向向量中的一方需要被使用来形成输出互补双向向量。在前向向量和后向向量不需要准确地为认为为彼此的逆以被认为为互补的情况下,从前向向量和后向向量两者形成输出互补双向向量能够提供在输出帧的搜索块处的更好的向量场估计。
在示出于图8中的示例中,最佳单端向量将通常在向量存储器针对前一帧和下一帧的每个块可用。在其它实现方式中,多个单端向量候选可针对前一帧和下一帧的共位块可用——例如,在针对每个块确定最佳向量之前检查逻辑器直接从候选缓冲器的单端向量处理器接收单端向量候选的情况下。在这种情形下,检查逻辑器可被构造成确定哪些向量呈现可用向量端点处的像素之间的最佳匹配并测试这些向量(例如,检查逻辑器可从向量存储器的候选评估器接收这种信息)。另选地,检查逻辑器可被构造成测试多个向量以识别哪些组合表示互补向量对。
如果检查逻辑器确定一对前向向量和后向向量不是互补的,则优选地不将前向向量和后向向量传送至互补向量生成器以生成互补双向向量。检查逻辑器将优选地将搜索块传送至双向向量生成器以进行传统像素匹配,以生成一个或更多个双向向量候选。检查逻辑器然后可进入检查插值输出帧的下一块。
互补向量生成器810可被构造成将其生成的每个互补双向向量提供至候选缓冲器812作为向量候选。在其它示例中,互补向量生成器可将其生成的每个互补双向向量提供至向量存储器815,可选地替换关于同一块提供的其他任何向量。
当针对块生成了互补双向向量并被加入候选缓冲器时,有利的是防止双向向量生成器还针对该块生成向量候选,和/或防止候选评估器评估针对该块可用的任何向量候选。这极大减少了由候选评估器814执行的识别针对该块的最佳候选向量的处理。候选评估器可被构造成避免评价互补双向向量。例如:候选评估器可被构造成当仅存在一个向量候选时不评价向量候选;另选地,互补双向向量可被识别至候选评估器(例如,通过标记或其他标识)以使候选评估器不评价互补双向向量,并输出互补双向向量作为针对该块的最佳向量。防止双向向量生成器生成向量候选也极大减少了在双向向量处理器需要的处理。这尤其显著,因为形成双向向量相对于生成单端向量在计算上成本高。例如,形成每个双向向量需要加倍从像素存储器(例如,帧缓冲器801) 的获取,以比较两个帧的块。
对于通常的视频流,相比于不执行这些有利方法的等效系统,在互补向量生成器生成互补双向向量并且因此防止双向向量生成器形成向量候选使得系统处理负载降低了大约三分之一。
在另选示例中,不是防止双向向量生成器生成针对搜索块的向量候选,双向向量处理器808可删除候选缓冲器中针对该块的其他任何向量候选(或使其不可用,例如,用合适的标记)。在其它示例中,双向向量生成器可将针对搜索块的互补双向向量提供至候选缓冲器,以由候选评估器与针对该块的任何其他候选一起进行评估。该互补双向向量将优选地被分配低误差得分(参见下文)以使该互补双向向量在多数(如果不是所有)情形下被选择。
根据本文描述的原理形成的互补双向向量通常提供对真实双向向量的接近的匹配,该真实双向向量描述搜索块从插值输出帧到两个输入帧的运动。例如,在所描述的系统中,互补双向向量将在超过50%时间可接受误差大小内表示真实双向向量。在本文描述的示例性系统中,误差通常不超过1-2个像素,尽管其可针对较长的向量增加:例如,对于长度32个像素的单端向量,误差可高达4个像素。
除极大降低系统处理负载外,互补双向向量的使用解决了闪烁和关联的图像伪像的问题,显著优于传统的后处理技术。这是因为该方法假设向量场在空间上在前向单端向量和后向单端向量的开始和结束点之间的帧区域中一致。例如,在图6中,通过生成互补双向向量608,前一帧的区域609和下一帧的区域610被有效地假定为运动向量为恒定的区域。使用互补向量避免了在这些区域内生成虚假向量并保证该区域被均一地映射至插值输出帧。这减少了系统由于进行运动估计而引入的闪烁。
此外,使用互补双向向量倾向于对以低于其尺寸的速度运动的对象给出偏好。这可从图7理解,其例示了较大对象如何比更小对象运动更快并仍然允许互补双向向量针对该对象生成。因为前一帧和下一帧的块(在块处生成单端向量)应与插值帧的搜索块共位,存在速度上限,以该速度给定大小的对象能够穿过帧而运动并且能够针对该速度生成互补双向向量。
图7的(a)至图7的(c)例示了其中对象701-703分别可穿过帧序列而运动并仍然允许生成互补向量。每个对象具有相对于图7所示的空间维度在对象的末端描绘的单端向量对(对710和711、712和713、以及714和715)。假设对象为固态,以均一平移运动(例如其不随运动而旋转),单端向量将为互补并且对象中的向量场将为均匀的。对象的速度由单端向量的梯度表示,梯度越陡峭表示帧之间的运动越大。从图7的(a)至图7的(c)和单端向量的相应梯度,将观察到最大对象701能够以最大速度运动,最小对象703能够以最低速度运动,中间大小的对象702能够以中间速度运动。
由于视频中的较大运动倾向于在背景中,而前景细节倾向于较慢运动,应当理解的是,互补双向向量的使用允许均一背景的较大区域被映射至插值输出帧并且较小的前景区域在不丢失细节的情况下被映射,两种情况都同时避免了引入闪烁。总体上,因为限制互补向量生成自连贯帧的共位块的向量,所以可以说互补向量的使用倾向于偏好相对慢运动的小对象。这种对象倾向于作为视频的前景中的特征,而且被构造成利用互补向量的系统在减少视频流的前景细节中的闪烁方面执行的特别好。
在图8的示例中,在候选缓冲器812中针对块保持的向量候选813被评估,以确定哪个候选表示针对块的运动向量的最佳估计。该评估在候选评估器814执行。该候选评估器可以任何合适的方式确定最佳向量输出。例如,评估器可比较前一帧和下一帧的在向量的各端的像素组,以确定其组的相似性。如上所述,候选评估器优选地不评估互补双向向量并且这些向量作为最佳向量输出而通过。
对于要被评估的向量候选,形成误差得分,该误差得分表示由每个候选向量指示的像素组对的相似的程度,以允许向量的比较。该误差得分例如可基于两个组的像素之间的差异度量来确定,差异例如给定像素值的绝对差的和(SAD)或方差均值 (MSD),给定像素值诸如颜色或亮度。误差得分可进一步依赖于针对邻近块生成的向量的相似性,以使该块的误差得分为其端点块之间的像素差异的复合度量以及关于相邻块形成的向量的相似性的度量。本领域已知多种算法用于生成误差得分,其中包括迭代算法,其形成向量的初始集合,所述向量仅基于像素相似性选择,然后基于邻近向量的相似性来提炼。
针对每个块,具有最低误差得分的向量(或被确定为针对块的最佳向量输出)被存储于向量存储器815中以被用作针对该块的向量输出。
在本示例中,该候选评估器在前一帧和下一帧中的像素值上操作并因此被提供对像素数据823的访问。其可限于评估器用于形成每个向量候选的相似性得分需要的像素数据,或前一帧和下一帧的像素值可对评估器整体可用(例如,评估器可操作以在帧缓冲器802中执行查找)。
可以有利的是向候选评估器814提供由单端向量处理器和双端向量处理器生成的数据。例如,如果向量处理器通过匹配前一帧和下一帧中的像素组来识别向量候选,则向量处理器可生成数据,评估器在确定由向量处理器生成的候选的误差得分时可使用该数据。在某些实现方式中,向量处理器可提供误差得分本身用于其生成的候选:例如,在向量处理器计算针对候选向量的绝对差的和(SAD)并且候选评估器使用该绝对差的和作为针对每个向量的误差得分的情况下。
用于确定针对块的最合适的向量的其他方法是已知的,并且任何方法可结合根据本文描述的原理的互补向量的生成来使用。
数据处理系统800可被构造成以多种不同方式使用针对当前间隔生成并存储于向量存储器815的向量场。如下描述了数据处理系统进行运动估计的两个示例性实现方式。通常有必要保持关于一对帧生成的向量场以当处理后续帧时使用(例如在视频编码器中,多个帧对的向量场可用于对单帧的编码)使用。系统可被构造成更新保持在向量存储器815处的针对间隔的向量场,以将针对该间隔生成的互补双向向量包括在内。这允许当处理视频流的其他部分时使用互补双向向量。另选地,系统可被构造成不更新针对该间隔的向量场以将互补双向向量包括在内而禁止使用这些向量来处理已创建了互补双向向量的间隔。互补双向向量可在这种情况下存储于向量存储器 1212中但被适当地标记以将其标识为互补双向向量。例如,互补双向向量可用于帧率转换器中以生成位于当前间隔中的插值帧,但针对该间隔的向量场不被更新以包括互补双向向量。互补双向向量偶尔可表示欠佳像素映射,并且这能够避免这种误差在帧对之间的多个间隔中传播。
在第一示例中,数据处理系统为帧率转换器并包括插值逻辑器816,插值逻辑器816被构造成使用针对在一对连贯帧之间的间隙而生成的向量场,以在间隙内生成一个或更多个插值帧820。例如,插值逻辑器816可被构造成通过在连贯帧的每个对之间的中点生成插值帧而将视频流801的帧率加倍。图6示出了这种插值后的输出帧 605位于前一帧和下一帧之间的当前间隙的中心。可以使用任何合适的插值技术,其根据前一帧和下一帧的像素数据818以及根据本文描述的原理生成的针对当前间隙的向量场(保持在向量存储器815中)形成新帧。根据本文描述的原理生成的向量场可包括互补双向向量。
总体上说,插值技术通过识别穿过插值帧的每个块(例如图6的601)的向量并且将前一帧和/或下一帧的像素根据穿过该块的向量映射到每个块上来构建插值帧。例如,在图6,互补双向向量608可指示输出帧605的块601要根据在向量端点的前一帧和下一帧的像素形成。这是因为向量608表示前一帧和下一帧的像素在当前间隙上的运动的线性估计。典型地,将采用算法以将通过向量场映射到当前帧中的交叠像素混合在一起。多种其他插值方法也是可能的。
在第二示例中,数据处理系统为视频编码器并包括编码逻辑器817,该编码逻辑器817被构造成使用针对一对连贯帧之间的间隙而生成的向量场,以将视频流801 编码成压缩格式821。根据本文描述的原理生成的向量场可包括互补双向向量。例如,编码逻辑器可利用从存储于向量存储器815的向量场获取的编码信息周期性地替换一个或更多个流帧的序列,该编码信息描述了紧接在帧序列之前和之后的基准帧的像素在由该序列表示的时间段内如何运动。当被提供在前和后续基准帧时,编码信息使帧序列能够在解码器大量重建。如本领域公知,可采用算法以创建无法从存在于基准帧(例,如来自邻近像素)中生成的像素的像素。
不同类型的运动估计可对向量带来不同需求。例如在视频编码器应用中,需求典型地为通过使用运动向量来引用来自序列的前一帧的基准像素数据,形成帧的最紧凑表示。这些运动向量总体上集中于提供对像素数据块的“最接近的匹配”(或最低残留误差),并且尽管得到的运动向量同城表示场景中的对象的实际运动,但不需要始终为这种情况。在其它应用中,诸如解交织或帧率转换,其中帧中的对象在源帧中其位置之间的中间位置被插值,更重要的是运动向量表示场景中的对象的“真实运动”,即使视频中的其他失真表示那些向量并不总是给出像素数据的块之间的最接近的匹配(或最低残留误差)。通过在运动搜索期间对候选运动向量应用合适的约束,结果必要时可被引导向“最接近的匹配”或“真实运动”。
根据本文描述的原理例示用于在帧序列中执行运动估计的方法流程图示出于图9。该方法可由上述数据处理系统800执行。最初,第一帧和第二帧被接收901,其定义其中要进行运动估计的当前间隙,以生成描述第一帧和第二帧之间的像素运动的向量场。根据任何合适的技术针对当前间隙形成前向向量候选902和后向向量候选 903,以识别帧之间像素映射。运动向量候选可为单端向量或双端向量。
在形成运动向量候选之后或同时,第一帧和第二帧的与位于第一帧和第二帧之间的当前间隔中的输出帧的搜索块共位的块被识别904。检查然后被执行905,以识别第一帧和第二帧的与搜索块共位的块的前向向量和后向向量是否彼此互逆。如果向量为彼此互逆,则根据本文描述的原理根据前向向量和后向向量生成906针对搜索块的互补向量。该互补向量可被提供作为针对搜索块908的输出向量,以避免需要生成和 /或评估针对搜索块的其他向量候选。如果前向向量和后向向量不互逆,则以传统方式生成907针对搜索块的向量,例如,通过基于像素组的帧之间的相似性来识别第一帧和第二帧之间的像素映射。这种向量可被提供作为针对搜索块909的运动向量候选并连同用针对该块的其他任何运动向量候选一起经受评估。
为在每个可能的情况下生成针对输出帧的块的互补向量,共位块的对及其前向向量和后向向量的识别在输出帧910的块中重复,每个块依次作为输出帧的搜索块。
在本文描述的示例中,基于块的运动估计被执行。其他形式的运动估计也是可能的,其中互补双向向量可根据所描述的原理生成。块可指代一个或更多个像素的任何连续组,像素组具有任何形状。如本领域已知的,不同的帧可具有为其定义的不同的块。块不需要在帧内或在帧间随时间具有恒定大小或形状;块的大小和/或形状可基于帧流特性而调整。
帧可为表示或解释为像素的集合的任何类型的图像信息。帧流可为来自任何源的帧序列,包括:视频;静态图像序列,诸如来自操作于脉冲模式的照相机的照片序列;渲染的图像序列或表示渲染的3D场景的图像。帧序列可以时间为顺序或不以时间为顺序。例如,帧序列可根据时间以外的某些基础进行排序:例如帧的集合可根据其总体相似性度量排序,或图像的集合可根据每一个图像被捕获的位置排序。
图8 的数据处理系统示出为包括多个功能块。其仅为示意性的而非意图定义数据处理系统不同的逻辑元件之间的严格划分。每一个功能块可提供于任何合适的方式。
根据本文描述的原理配置的数据处理系统可应用于硬件(例如作为集成电路,其处理执行于二进制逻辑)和/或软件(例如作为运行于处理器的例程集合,诸如具有对用于存储像素数据,运动向量数据以及其他值的一个或更多个存储器进行访问的图形处理单元(GPU)或中央处理单元(CPU))。
术语软件,程序代码和计算机可读代码包含可执行代码,用于处理器(例如CPU和/或GPU),固件,字节码,编程语言代码诸如C或OpenCL和模块,用于可重配置逻辑设备诸如FPGA。计算机可读代码进一步包括在任何大小定义集成电路的表示的代码,包括在寄存器传输大小(RTL),高级电路表示,诸如Verilog或VHDL和较低大小表示诸如OASIS和GDSII。当执行于配置用于生成集成电路硬件表示的计算机系统时,该定义集成电路表示的代码可使计算机系统生成根据代码定义的集成电路。代码可包括电路元件定义和/或合并电路元件的规则。用于合并所定义的电路元件的某些或所有规则可提供于计算机系统作为默认规则,用于从该计算机可读代码生成硬件格式的集成电路的表示。
本文描述的算法和方法可由一个或更多个物理处理单元执行软件执行,其使该单元执行算法/方法。该或每个物理处理单元可为任何合适的处理器,诸如CPU或GPU (或其内核),或固定函数或可编程硬件。机器可读代码可以非暂存形式存储于机器可读介质,诸如集成电路存储器,或光或磁存储。机器可读介质可包括某些存储器,诸如片上存储器,计算机工作存储器和非易失性存储设备。
申请人在此公开本文描述的每个独立的特征和两个或多个特征的任何组合,以使该特征或组合能够由本领域技术人员根据常规知识基于整体的说明书实现,而与该特征或特征的组合是否解决了本文公开的任何问题无关。申请人表示,本发明的各方面可包括任何独立的特征或特征的组合。从在前描述中,本领域技术人员显而易见,多种修改可在本发明的范围内进行。

Claims (20)

1.一种用于在帧序列中执行运动估计的数据处理系统,所述帧序列包括分别被划分为相应像素块集合的第一帧和第二帧,该数据处理系统包括:
候选评估器,所述候选评估器用于通过评估针对在所述序列的所述第一帧与所述第二帧之间插值的输出帧的各个块的一个或更多个向量候选来确定针对该块的最佳输出向量;
向量生成器,该向量生成器被构造成形成针对所述第一帧的块的前向向量的集合和针对所述第二帧的块的后向向量的集合,每个前向向量识别所述第一帧的各块的像素到所述第二帧中的可能的映射,并且每个后向向量识别所述第二帧的各块的像素到所述第一帧中的可能的映射;以及
处理器,该处理器被构造成针对所述输出帧的搜索块,识别关于所述第一帧的与所述搜索块共位的一个或更多个块形成的第一前向向量以及关于所述第二帧的与所述搜索块共位的一个或更多个块形成的第一后向向量;
如果所述第一前向向量和所述第一后向向量彼此互逆,则依赖于所述第一前向向量和所述第一后向向量之一或两者生成针对所述输出帧的所述搜索块的双向输出向量;
其中,所述候选评估器被构造成在不评估所述双向输出向量的情况下,传递所述双向输出向量作为针对所述搜索块的所述最佳输出向量。
2.根据权利要求1所述的数据处理系统,其中,所述处理器被构造成通过形成所述第一前向向量和所述第一后向向量的平均来生成所述双向输出向量。
3.根据权利要求2所述的数据处理系统,其中,所述处理器被构造成通过计算所述第一前向向量与取逆的所述第一后向向量的向量的和来形成所述第一前向向量和所述第一后向向量的平均。
4.根据权利要求1所述的数据处理系统,其中,所述处理器被构造成,如果所述第一前向向量和所述第一后向向量不是基本彼此互逆,则通过识别所述第一帧和所述第二帧的相似像素的区域生成针对所述输出帧的所述搜索块的向量候选。
5.根据权利要求1所述的数据处理系统,其中,所述处理器被构造成,如果所述第一前向向量和所述第一后向向量是基本彼此互逆,则不通过识别所述第一帧和所述第二帧的相似像素的区域生成针对所述输出帧的所述搜索块的向量候选。
6.根据权利要求1所述的数据处理系统,其中,所述处理器被构造成将所述第一帧和所述第二帧的位于与所述输出帧的所述搜索块对应的帧位置处的一个或更多个块识别为与所述搜索块共位。
7.根据权利要求1所述的数据处理系统,其中,在识别所述第一帧/所述第二帧的与所述搜索块共位的多个块时,所述处理器被构造成通过以下处理来识别针对所述第一帧/所述第二帧的所述多个块的第一前向向量/第一后向向量:
计算针对所述第一帧/所述第二帧的所述多个块中的两个或更多个块形成于所述向量生成器处的所述前向向量/所述后向向量的平均;
确定针对所述第一帧/所述第二帧的所述多个块形成于所述向量生成器处的所述前向向量/所述后向向量的最常规向量;或
随机或根据预定义机制选择针对所述第一帧/所述第二帧的所述多个块的形成于所述向量生成器处的所述前向向量/所述后向向量之一。
8.根据权利要求1所述的数据处理系统,其中,所述向量生成器被构造成通过识别所述第二帧的与所述第一帧的块的像素最接近地匹配的像素的区域来形成针对所述第一帧的块的所述集合的前向向量,并且通过识别所述第一帧的与所述第二帧的块的像素最接近地匹配的像素的区域来形成针对所述第二帧的块的所述集合的后向向量。
9.根据权利要求1所述的数据处理系统,其中,在以下情况下,所述第一前向向量和所述第一后向向量基本彼此互逆:
所述第一前向向量和所述第一后向向量的方向在第一边界内相反;和/或
所述第一前向向量和所述第一后向向量的大小在第二边界内相等。
10.根据权利要求9所述的数据处理系统,其中,所述第一边界和/或所述第二边界在经验上确定。
11.根据权利要求9所述的数据处理系统,其中,所述第一边界和/或所述第二边界为所述第一前向向量/所述第一后向向量和/或所述帧序列的特征的函数。
12.根据权利要求1所述的数据处理系统,所述处理器被构造成,如果所述第一前向向量和所述第一后向向量彼此互逆,则针对所述搜索块:
用作为针对所述搜索块的最佳匹配向量的所述双向输出向量替换针对所述搜索块生成的任何向量候选;或
将所述双向输出向量加到针对所述搜索块生成的任何向量候选中,以使所述候选评估器选择所述双向输出向量作为针对所述搜索块的最佳匹配向量。
13.根据权利要求12所述的数据处理系统,所述候选评估器可操作以针对块的每个向量候选计算得分,每个得分为所述第一帧和所述第二帧的在相应的向量候选的每一端处的像素的相似性的度量,并且所述候选评估器被构造成依赖于所计算的得分选择针对该块的最佳匹配向量。
14.根据权利要求13所述的数据处理系统,所述候选评估器被构造成不计算针对所述搜索块的所述双向输出向量的得分和/或针对所述搜索块可用的其他任何向量候选的得分。
15.根据权利要求12所述的数据处理系统,所述数据处理系统还包括插值逻辑器,该插值逻辑器被构造成对所述第一帧和所述第二帧的像素操作来自所述候选评估器的所述最佳匹配向量,以生成在所述第一帧和所述第二帧之间插值的所述输出帧。
16.根据权利要求12所述的数据处理系统,所述数据处理系统还包括编码逻辑器,该编码逻辑器被构造成对所述第一帧和所述第二帧的像素操作来自所述候选评估器的最佳匹配向量以生成编码帧流。
17.一种用于在帧序列中执行运动估计的方法,该序列包括分别被划分为相应像素块集合的第一帧和第二帧,其中,能够通过评估针对在所述序列的所述第一帧与所述第二帧之间插值的输出帧的各个块的一个或更多个向量候选来确定针对该块的最佳输出向量,该方法包括以下步骤:
形成针对所述第一帧的块的前向向量的集合,每个向量识别所述第一帧的各块的像素到所述第二帧中的可能的映射;
形成针对所述第二帧的块的后向向量的集合,每个向量识别所述第二帧的各块的像素到所述第一帧中的可能的映射;
并且,针对所述输出帧的搜索块:
识别所述第一帧和所述第二帧的与所述搜索块共位的块;
确定关于所述第一帧的一个或更多个共位块形成的第一前向向量和关于所述第二帧的一个或更多个共位块形成的第一后向向量是否彼此互逆;以及
如果所述第一前向向量和所述第一后向向量彼此互逆,则依赖于所述第一前向向量和所述第一后向向量之一或两者生成针对所述输出帧的所述搜索块的双向输出向量,并且在不评估所述双向输出向量的情况下,传递所述双向输出向量作为针对所述搜索块的所述最佳输出向量。
18.根据权利要求17所述的方法,所述方法还包括,如果所述第一前向向量和所述第一后向向量基本彼此互逆,则防止生成除所述输出向量外的针对所述输出帧的所述搜索块的向量候选。
19.根据权利要求17所述的方法,所述方法还包括,如果所述第一前向向量和所述第一后向向量不是基本彼此互逆,则通过识别所述第一帧和所述第二帧的相似像素的区域来生成针对所述输出帧的所述搜索块的向量候选。
20.根据权利要求17所述的方法,其中,识别所述第一帧和所述第二帧的与所述搜索块共位的块的步骤包括:识别所述第一帧和所述第二帧中的每个的位于与所述输出帧中的所述搜索块对应的帧位置处的一个或更多个块。
CN201610589737.0A 2015-06-08 2016-06-08 用于在帧序列中执行运动估计的数据处理系统和方法 Active CN106303545B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1509881.7A GB2539197B (en) 2015-06-08 2015-06-08 Complementary vectors
GB1509881.7 2015-06-08

Publications (2)

Publication Number Publication Date
CN106303545A CN106303545A (zh) 2017-01-04
CN106303545B true CN106303545B (zh) 2021-12-14

Family

ID=53785092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610589737.0A Active CN106303545B (zh) 2015-06-08 2016-06-08 用于在帧序列中执行运动估计的数据处理系统和方法

Country Status (4)

Country Link
US (1) US20160360225A1 (zh)
EP (1) EP3104612B1 (zh)
CN (1) CN106303545B (zh)
GB (1) GB2539197B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020143774A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Merge with mvd based on geometry partition
US11303847B2 (en) 2019-07-17 2022-04-12 Home Box Office, Inc. Video frame pulldown based on frame analysis
US20220038653A1 (en) * 2020-07-30 2022-02-03 Nvidia Corporation Techniques to generate interpolated video frames

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101023677A (zh) * 2004-07-20 2007-08-22 高通股份有限公司 以多个参考帧以及可变块尺寸的帧速率上变换方法和装置
CN103702128A (zh) * 2013-12-24 2014-04-02 浙江工商大学 一种应用于视频帧速率上转换的插值帧生成方法
CN103703781A (zh) * 2011-07-01 2014-04-02 高通股份有限公司 使用自适应运动向量分辨率的视频译码
CN104469379A (zh) * 2013-09-18 2015-03-25 想象技术有限公司 生成用于包括在视频序列中的输出帧

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100878809B1 (ko) * 2004-09-23 2009-01-14 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 이의 장치
WO2008140656A2 (en) * 2007-04-03 2008-11-20 Gary Demos Flowfield motion compensation for video compression
KR101493325B1 (ko) * 2008-09-03 2015-02-16 삼성전자주식회사 정밀 움직임 예측을 기반으로 한 프레임 보간 장치 및 그 방법
GB2480422B (en) * 2010-02-25 2014-07-09 Imagination Tech Ltd Object tracking using graphics engine derived vectors in a motion estimation system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101023677A (zh) * 2004-07-20 2007-08-22 高通股份有限公司 以多个参考帧以及可变块尺寸的帧速率上变换方法和装置
CN103703781A (zh) * 2011-07-01 2014-04-02 高通股份有限公司 使用自适应运动向量分辨率的视频译码
CN104469379A (zh) * 2013-09-18 2015-03-25 想象技术有限公司 生成用于包括在视频序列中的输出帧
CN103702128A (zh) * 2013-12-24 2014-04-02 浙江工商大学 一种应用于视频帧速率上转换的插值帧生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Motion compensated image interpolation;C. Cafforio等;《IEEE Transactions on Communications》;19900228;第38卷(第2期);第215-221页 *
New frame rate up-conversion using bi-directional motion estimation;Byung-Tae Choi等;《IEEE Transactions on Consumer Electronics》;20000831;第46卷(第3期);第603-608页 *

Also Published As

Publication number Publication date
US20160360225A1 (en) 2016-12-08
GB201509881D0 (en) 2015-07-22
EP3104612A1 (en) 2016-12-14
GB2539197B (en) 2019-10-30
GB2539197A (en) 2016-12-14
CN106303545A (zh) 2017-01-04
EP3104612B1 (en) 2020-12-23

Similar Documents

Publication Publication Date Title
CN106254885B (zh) 数据处理系统、执行运动估计的方法
TWI729422B (zh) 色彩分量間的子區塊移動向量繼承
TWI729402B (zh) 加權交織預測
JP6905093B2 (ja) 映像コーディングにおける動き補償予測のオプティカルフロー推定
US8837591B2 (en) Image block classification
RU2761511C2 (ru) Окно ограниченного доступа к памяти для уточнения вектора движения
JP2009147807A (ja) 画像処理装置
CN111083487B (zh) 仿射模式的运动信息的存储
CN111201792B (zh) 指向分数像素点位置的运动矢量的修正运动矢量
US20100315550A1 (en) Image frame interpolation device, image frame interpolation method, and image frame interpolation program
CN111201795A (zh) 存储访问窗口和用于运动矢量修正的填充
CN106303545B (zh) 用于在帧序列中执行运动估计的数据处理系统和方法
CN111567047A (zh) 进行子预测块运动矢量推导的存储器访问窗口
US8594199B2 (en) Apparatus and method for motion vector filtering based on local image segmentation and lattice maps
CN101969568A (zh) 面向帧速率上变换的运动估计方法
JP2008061135A (ja) 画像符号化装置および画像符号化方法
JP6390275B2 (ja) 符号化回路、符号化方法
Zhao et al. Frame rate up-conversion based on edge information
TW202005388A (zh) 交織預測的應用
Lu et al. An artifact information based motion vector processing method for motion compensated frame interpolation
US10063880B2 (en) Motion detecting apparatus, motion detecting method and program
JP2013157681A (ja) 動画像復号装置及び動画像復号方法
Günyel et al. Multi-resolution motion estimation for motion compensated frame interpolation
JP2005122571A (ja) 画像処理装置、画像処理方法、プログラム及び記憶媒体
Zhang et al. An improved FRUC algorithm based on unilateral and bidirectional motion estimation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant