CN1607835A - 矩形运动搜索 - Google Patents

矩形运动搜索 Download PDF

Info

Publication number
CN1607835A
CN1607835A CNA2004100780902A CN200410078090A CN1607835A CN 1607835 A CN1607835 A CN 1607835A CN A2004100780902 A CNA2004100780902 A CN A2004100780902A CN 200410078090 A CN200410078090 A CN 200410078090A CN 1607835 A CN1607835 A CN 1607835A
Authority
CN
China
Prior art keywords
search
motion
zone
video
point
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
CNA2004100780902A
Other languages
English (en)
Other versions
CN100352286C (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1607835A publication Critical patent/CN1607835A/zh
Application granted granted Critical
Publication of CN100352286C publication Critical patent/CN100352286C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • 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

Landscapes

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

Abstract

本发明公开了一种用于矩形运动搜索的方法。该方法的一个实施例包括在多个运动搜索点上进行运动测量,多个运动搜索点形成一个矩形搜索区域,基本上基于运动测量的结果找到多个运动搜索点中的最小运动搜索点,以及如果最小运动搜索点在矩形搜索区域的内部区域内,则找到与像素块从第一视频帧到第二视频帧的相对运动相对应的运动向量。

Description

矩形运动搜索
技术领域
本发明涉及视频和图形信号处理,更具体而言,涉及在视频帧中进行运动搜索。
背景技术
视频数据压缩去除容易恢复的冗余数据,以减少存储空间或者传输带宽。一般地,视频数据存在于一系列帧中,其中随着视频帧中的物体在场中移动,图像的大部分实质上是类似的。通过跟踪移动的物体,所记录的数据量可以被缩减为物体从一帧到另一帧的变化,而其余的数据可以用前一帧所记录的数据代替。
现有的用来估计视频帧中的像素块在后继帧中将如何移动的梯度下降法通常被称为全像素钻石搜索。全像素钻石搜索使用两级进行运动搜索,如图1A和图1B所示。参考图1A,在该运动搜索的第一级中,在钻石搜索模板中的9个搜索点103处收集像素的测量。运动搜索点处的测量彼此进行比较,以确定参考帧中的像素块的每个搜索点与当前帧的像素块有多接近。参考帧可以是视频数据中的在先帧。如果最接近的点是钻石搜索模板内的8个外部点中的一个,则搜索模板被移动到以那个点为中心的新位置。在此情况下,新的搜索模板有4个和旧的搜索模板一样的搜索点,并有5个新的搜索点。因此,当该钻石搜索模板被右移2个网格线时,进行5个新的测量。无需对两个搜索模板共有的搜索点进行测量,因为以前测量的数据可以再使用。
如果最佳测量在中心点,则进行下一级的搜索,如图1B所示。在此级,测量4个新的运动搜索点110,以前测量的中心点105的数据可以再使用。具有最小测量的运动搜索点是全像素搜索位置。
钻石搜索是一种快速算法,因为将模板移动两个网格只需要5个或者更多的测量。但是,钻石搜索模板的不规则形状使得被存储在寄存器文件中的测量数据的操作变得复杂。钻石搜索的一些问题包括跟踪数据的地址偏移的困难,存储空间的利用不足,以及其稀疏的取样模板导致可能遗漏真正的最小值。
由于其大量运算的需求,通常由并行处理器进行运动搜索。一个这样的并行处理器使用单指令多数据(SIMD)的操作。例如,运动搜索的一种测量是绝对差和(Sum of Absolute Different,SAD),即当前帧中的块和参考帧中的块之间的差的L1范数的测量。另一种运动搜索测量是差平方和(Sum of Square Different,SSD),即当前帧中的块和参考帧中的块之间的差的L2范数(欧几里得范数)的平方测量。多个数据条目上的SAD或SSD测量可以通过SIMD操作进行。一个典型的并行处理器具有大寄存器文件,以便减少对分级存储器体系的数据访问量。搜索区域中的钻石搜索的数据通常被存储在寄存器文件中。并行处理器可以在并行操作中访问寄存器文件中的多个数据条目,例如,计算几个连续列中的数据条目的绝对差和的SAD操作。由于寄存器文件中的钻石形状区域的行具有不同数目的列,所以不同数目的列被访问以计算行中的条目的SAD。因此,并行处理器必须跟踪各个行和列的不同的地址偏移,从而使并行操作的性能恶化。
发明内容
本发明的目的是针对上述问题提供方法和装置。根据本发明的一个方面,提供了一种视频编码器,包括:运动估测器,用于相对于参考视频帧在输入视频数据上进行运动搜索,以产生多个运动向量,所述运动搜索包括矩形运动搜索;和可变长编码器,用于使用所述运动向量压缩所述输入视频数据。
根据本发明的另一个方面,提供了一种方法,包括:相对于参考视频帧在输入视频数据上进行运动搜索,以产生多个运动向量,所述运动搜索包括矩形运动搜索;以及使用所述运动向量压缩所述输入视频数据。
根据本发明的另一个方面,提供了一种用于确定像素块从第一视频帧到第二视频帧的相对运动的方法,所述方法包括:在形成矩形搜索区域的多个运动搜索点上进行运动测量;基于所述运动测量的结果,找到所述多个运动搜索点中的最小运动搜索点;以及如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频帧的所述相对运动相对应的运动向量。
根据本发明的另一个方面,提供了一种用于压缩视频数据的方法,包括:将第一视频帧定义为参考视频帧;相对于所述参考视频帧在第二视频帧上进行运动搜索,以确定所述第二视频帧相对于所述参考视频帧的多个运动向量;以及将所述视频数据简化为所述参考视频帧和所述第二视频帧的所述多个运动向量,其中所述运动搜索包括在形成像素块内的矩形搜索区域的多个运动搜索点上进行运动测量;基于所述运动测量的结果,找到所述多个运动搜索点中的最小运动搜索点;如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频帧的所述相对运动相对应的运动向量。
根据本发明的另一个方面,提供了一种提供指令的机器可访问介质,所述指令如果被处理器执行,将引起所述处理器执行操作,以确定像素块从第一视频帧到第二视频帧的相对运动,所述操作包括:在形成像素块内的矩形搜索区域的多个运动搜索点上进行运动测量;基于所述运动测量的结果找到所述多个运动搜索点中的最小运动搜索点;以及如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频的所述相对运动相对应的运动向量。
根据本发明的另一个方面,提供了一种系统,包括:动态随机访问存储器器件;与所述动态随机访问存储器器件耦合的存储控制器;和与所述存储控制器耦合的并行处理器芯片,所述并行处理器芯片包括定义寄存器文件的多个寄存器;和与所述多个寄存器耦合的并行处理器,其中,所述并行处理器可操作用来进行操作,以确定像素块从第一视频帧到第二视频帧的相对运动,所述操作包括:在形成所述像素块内的矩形搜索区域的多个运动搜索点上进行运动测量;基于所述运动测量的结果,找到所述多个运动搜索点中的最小运动搜索点;如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频的所述相对运动相对应的运动向量。
附图说明
从随后的详细说明及附图将更全面地理解本发明,但是,它们不应被理解为将所附权利要求限制为所示出的具体实施例,而仅仅是用于解释和理解。
图1A示出了钻石搜索的第一级的运动搜索点。
图1B示出了钻石搜索的第二级的运动搜索点。
图2示出了搜索区域的一个实施例。
图3示出了用矩形搜索模板进行运动搜索的处理的一个实施例的流程图。
图4示出了矩形搜索模板的一个实施例。
图5示出了并行处理器芯片的一个实施例。
图6示出了寄存器文件的示例实施例。
图7示出了视频编码器的一个实施例。
图8示出了计算机系统的示例实施例。
具体实施方式
这里公开了一种用于矩形运动搜索的方法。用于进行矩形块运动搜索的方法的一个实施例包括以下操作:在矩形搜索区域内的多个运动搜索点上进行运动测量;根据运动测量的结果找到多个运动搜索点中最小的运动搜索点,以及如果最小运动搜索点在矩形搜索区域的内部区域中,则将矩形搜索区域会聚在最小运动搜索点处,以找到表示像素块从第一视频帧到第二视频帧的相对运动的运动向量。
在以下说明中,给出了许多具体细节。但是,应认识到没有这些具体细节,也可以实现本发明。在其他情况下,没有详细示出公知的模块、结构和技术,以避免模糊对本说明的理解。
接下来的详细说明的某些部分是按照对计算机存储器中的数据位的操作的算法和符号表示给出的。这些算法描述和表示是数据处理领域技术人员用来最有效地向本领域其他技术人员表达其工作实质的手段。这里的算法一般被认为是导致所需结果的操作的自洽序列。这些操作需要对物理量的物理操纵。尽管不是必要的,但通常这些量采用能够被存储、传输、组合、比较或以其他方式被操作的电或磁信号的形式。已证实主要是由于通用的原因,将这些信号称为位、值、元素、符号、字符、项、数等等有时是方便的。
但是,应该牢记,所有这些以及相似的术语都将与合适的物理量关联,并且仅仅是用于这些物理量的方便的标记。除非以从下面的讨论明显看出的以其他方式被特定地叙述,应该意识到,贯穿整个说明使用诸如“处理”、“计算”、“运算”、“确定”或“显示”等术语的讨论指的是计算机系统或类似的电子计算设备的动作或处理,其将计算机系统的寄存器和存储器中被表示为物理(电子)量的数据操纵并转换成计算机系统的存储器或寄存器或其他这样的信息存储、传输或显示设备中类似地被表示为物理量的其他数据。
本发明还涉及用于进行这里的操作的装置。装置可以是为所需目的专门构造的,或者它可以包括由存储在计算机中的计算机程序可选择地激活或重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读存储介质中,例如但不限于任何类型的包括软盘、光盘、CD-ROM和磁光盘的盘、只读存储器(ROM)、随机访问存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡,或适于存储电子指令的任何类型的介质,它们每个都被耦合到计算机系统总线上。
这里表示出的操作和显示并不固有地与任何特定的计算机或其他装置相关。各种通用系统可以与根据这里的教导的程序一起使用,或者可以证实构造用来进行这些操作的更专门的装置是方便的。各种这样的系统所需的结构将从下面的描述中呈现出。此外,并非参考任何特定的编程语言来描述本发明。应当认识到,可以使用各种编程语言来实现这里所描述的本发明的教导。
机器可读介质包括任何以机器(例如,计算机)可读形式存储或传输信息的机构。例如,机器可读介质包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存器件;电、光、声或者其他形式的传播信号(例如,载波,红外信号,数字信号等)等等。
在一个实施例中,使用矩形搜索模板定义搜索区域,以确定像素块从一个视频帧到另一个视频帧的相对运动。视频帧可以包括多个像素块。图2示出了参考窗口200中搜索区域的一个实施例。参考图2,参考窗口200是16×16的网格。搜索区域201是4×4的正方形,区域内有16个运动搜索点。公知地,正方形是一类等边的矩形。应该知道,该4×4正方形这里被用作说明的目的。应该很清楚,不同尺度的矩形搜索区域可以被用在其他的实施例中,例如,4×8,16×8,16×16等等。参考图2,该搜索区域具有4个内部搜索点,例如点220,以及沿正方形区域201各边的12个搜索点,例如点210。和4个内点对比,这12个搜索点被称为外点。在一个实施例中,内点和外点中的每个对应于参考帧中的一个像素块。
在一个实施例中,在搜索区域201的每个运动搜索点处进行一个或多个像素属性的测量,以在当前视频帧中找到和参考视频帧中的另一个像素块匹配的像素块。属性可以包括像素强度、像素颜色等等。在一个实施例中,基于预定的标准,将每个搜索点处的像素块的测量与参考视频帧中的像素块相比较。在一个实施例中,计算两帧中的像素块中的像素之间在像素强度上的绝对差和(SAD)。在一个实施例中,选择具有最小SAD的搜索点,该点也被称为最小点。
在一个实施例中,进行搜索以得到像素块从参考视频帧到当前视频帧的相对运动。当最小点是正方形搜索区域中的内点之一时,参考帧中以最小点为中心的像素块是当前帧中的像素块的最接近匹配者。一旦找到了参考帧中该像素块的最接近匹配者,就可以确定一个运动向量,该运动向量表示像素块从参考帧到当前帧的相对运动。
在一个实施例中,通过如下方式压缩具有一组视频帧的视频数据:将第一帧以压缩格式存储为参考帧,将随后的帧存储为来自在先帧的各个像素块的运动预测残留(residue)和运动向量。诸如变换编码和熵编码之类的工具可以被用来压缩和/或存储第一帧以及随后的帧。经压缩的视频数据的大小小于未被压缩的视频数据,因此,既减少了用来传输视频数据的带宽,也减少了用来存储视频数据的存储空间。
在一个实施例中,当最小点是外点中的任何一个时,搜索继续。移动搜索区域,以使得新的搜索区域基本上以找到的最小点为中心。例如,参考图2,有8个可能的移动方向,即,四个角的情形和四个边的情形。对矩形搜索区域的每边上的2个非角的外边位置,新的搜索位置是共同的。图2中示出了新搜索区域的一些示例,即,左上角的情形203,右移的情形205和下移的情形207。
在一个实施例中,两个搜索模板共有的运动搜索点的测量被重用,以节省时间。参考图2,在角的情形203中,有4个共有的运动搜索点,即,运动搜索点223。因此,在移动后的搜索模板中进行12个非共有的搜索点的测量。在边的情形中,例如右移的情形205或者下移的情形207,有8个共有搜索点。因此,在移动后的搜索模板中进行8个非共有搜索点的测量。换言之,当搜索模板移动2个网格时,进行8个或者更多的测量。
在一个实施例中,4×4的搜索区域进一步被划分为4个2×2的漫游模板(walk pattern),也被称作图像片(tile)。可以逐个在每个2×2的图像片中进行运动测量。
图3示出了利用矩形搜索模板进行运动搜索的过程的一个实施例的流程图。通过处理逻辑进行该过程,该处理逻辑可以包括硬件(例如,电路、专用逻辑等等)、软件(例如,运行在通用计算机系统或者专用机器上),或者两者的组合。参考图3,处理逻辑为当前帧的像素块加载在以参考视频帧中所选起始搜索位置为中心的参考窗口(处理框310)。在一个实施例中,参考窗口包含32×32的像素阵列,并且矩形搜索区域为4×4的正方形。在一个实施例中,4×4的正方形进一步被分为4个2×2的数据单元。该数据单元也可以被称为图像片。在一个实施例中,处理逻辑将4位的掩码设置为“1111”,以开启正方形搜索区域的四个图像片的每一个的运动测量,其中该掩码的每一位对应于正方形搜索区域的一个不同的图像片(处理框320)。
在一个实施例中,处理逻辑在每个图像片内进行运动测量(处理框330)。处理逻辑可以在移到另一个图像片前完成一个图像片内的运动测量,该移动也被称作图像片漫游(tile walking)。在一个实施例中,处理逻辑在搜索区域内的每个搜索点测量像素的一个或多个属性。属性的示例包括像素强度、像素颜色等等。在一个实施例中,处理逻辑计算测得的属性的SAD,以找到16个运动搜索点中具有最小SAD的点(处理框340)。该点也被称为最小点。
在一个实施例中,如果最小点是搜索区域中的内点之一,则处理逻辑终止搜索(处理框390)。如果最小点是搜索区域中的外点之一,则处理逻辑移动正方形搜索区域,以使其基本上以最小点为中心(处理框360)。由于当前搜索区域和经移动的搜索区域部分重叠,因此不必测量在重叠的区域内的运动搜索点处的像素。在一个实施例中,当最小点是在当前搜索区域的角上时,处理逻辑复制两个搜索区域共有的4个运动搜索点的SAD 值,或者当最小点是沿当前搜索区域的一条边而不是在当前搜索区域的角上时,处理逻辑复制两个搜索区域共有的8个运动搜索点的SAD值。在一个实施例中,取决于最小点是否在正方形搜索区域的角上,处理逻辑用两个1或者3个1设置掩码,以开启在经移动的搜索区域内的2个或者3个图像片的运动测量(处理框370)。
在一个实施例中,如果经移动的搜索区域的像素块内的任何像素在参考窗口的之外,则处理逻辑加载另一像素块并重新居中于该像素块(处理框380)。处理逻辑然后重复处理框330~380。在一个实施例中,进行运动搜索,以确定像素块从一个视频帧到另一个视频帧的相对运动。在一个实施例中,处理逻辑通过保存运动向量,而不是保存整个视频帧来压缩视频数据,其中该运动向量表示像素块从一个视频帧到另一个视频帧的相对运动。
在一个实施例中,使用更大的矩形搜索模板,例如8×8、4×8、16×4等等。如果最小点不在矩形搜索区域的边上或者角上,通过收缩搜索区域,搜索会聚。在一个实施例中,支持次像素运动向量,因此,当整数运动搜索的最小点是搜索区域的内点之一时,搜索在次像素级上继续。图4示出了使用矩形搜索模板的两级分级结构的运动搜索的一个实施例。参考图4,第一级矩形搜索模板包括4×4=16个搜索点,相邻搜索点相隔2个像素。在第一级搜索后,如果搜索被会聚在内部搜索点420,则在点420周围进行第二级整数点运动搜索。具体而言,在第二级搜索中测量最小点420附近的8个新的样本位置410(在图4中被标记为星形)。9个位置中具有最小值的位置是被会聚的整数位置。在一个实施例中,次像素运动是在半像素精度上的。在与由8个样本位置410所形成的形状相类似的形状中的被会聚的整数位置附近的半像素位置的8个新的样本位置被测量。9个位置(8个半像素位置加上被会聚的整数位置)中具有最小值的位置是被会聚的半像素位置。
图5示出了并行处理器芯片500的一个实施例。并行处理器芯片500包括并行处理器542和寄存器组544。该寄存器组也被称为寄存器文件。并行处理器542包括编码器551和解码器553。下面参考图7讨论编码器的一个实施例的细节。并行处理器向寄存器文件544写入数据或从寄存器文件544读数据。在一个实施例中,被存储在寄存器文件544中的数据被安排成列和行。
在一个实施例中,并行处理器542采用单指令多数据(SIMD)体系结构并支持对寄存器文件544的基于列和基于行的访问。并行处理器542将对应于视频帧内矩形搜索区域的测量数据加载到寄存器文件中。在一个实施例中,寄存器文件544逻辑上被排列成矩形,因此,视频帧中的矩形搜索区域可以方便地映射到寄存器文件中的区域上。在寄存器文件中以矩形区域存储像素数据允许并行处理器542并行地访问及操作搜索区域的像素数据。这样的并行访问能力增加了并行处理器542的吞吐量。
图6示出了寄存器文件600的示例实施例。正方形610中的寄存器存储视频帧中正方形搜索区域的搜索点的数据。假设搜索区域的最小点在正方形的右侧边上,则并行处理器将该正方形搜索区域向右移动。与新搜索区域相对应的数据在寄存器文件600中的正方形620内的寄存器中。在一个实施例中,寄存器文件中的数据的位置对应于搜索点的位置。因此,并行处理器542在处理重叠的搜索区域时重用已被存储在寄存器文件中的数据,以节省时间。此外,因为存储数据的位置对应于搜索点的位置,所以无需将重叠范围中的搜索点的数据拷贝到寄存器文件的另一个位置。
此外,不同于钻石搜索模板和菱形搜索模板,使用矩形搜索模板还使得重用在寄存器文件中的数据变得更容易,因为并行处理器可以很容易地计算可以逻辑上被安排成矩形的寄存器文件中对于矩形模板的地址偏移。此外,当数据被存储在与搜索区域相对应的矩形区域中时,并行处理器542可以重用寄存器文件中的更多数据。
图7示出了视频编码器的一个实施例。视频编码器700可以是运动图像专家组(MPEG)视频编码器。编码器700包括离散余弦变换器(DCT)710、运动补偿器720、运动估测器730、帧存储器740,进行剪裁的逻辑电路750、可变长编码器(VLC)760、反离散余弦变换器(IDCT)770、量化单元780、解量化单元790、扫描单元792以及反扫描单元794。
在一个实施例中,输入的视频数据被提供给运动估测器730,该运动估测器730进行矩形运动搜索,以将当前视频帧和参考视频帧进行比较。除矩形运动搜索外,运动估测器还可以进行其他类型的运动搜索,例如,菱形运动搜索。其输出被提供给VLC 760以及运动补偿器720。运动补偿器还接收来自帧存储器740的输入,以确定在输入数据上的运动补偿,其通过减法器705被从当前视频帧中减去。经补偿的视频数据输入到DCT710。DCT 710输出经变换的视频数据到量化单元780。量化单元780输出经量化的视频数据到扫描单元792。
在一个实施例中,扫描单元792将数据组织成一串数据元。例如,通过对8×8的经量化经变换的视频数据块进行Z字形扫描,扫描单元720输出一串数据元。由于量化后许多数据元为零,所以数据被格式化为两个变量的组合,即RUN和LEVEL。RUN是在LEVEL处的非零值前的零的数目。所以,量化单元的输出可以由(RUN,LEVEL)符号序列组成。此外,当数据压缩是有损的时候,例如MPEG-2编码,则量化单元可以丢弃一些信息。扫描单元792然后输出经量化的数据到VLC 760。在一个实施例中,经量化的数据被组成为一串数据元。在一个实施例中,VLC 760让每个(RUN,LEVEL)对通过一组哈夫曼(Huffman)查找表,以给其赋予一个位模式。这些位模式对不同的(RUN,LEVEL)符号可以有不同数目的位,即,这些位模式可以有可变的长度。
除VLC 760以外,扫描单元792还将数据输出到反扫描单元794。反扫描单元794将该串视频数据反向变换为8×8的经量化经变换的视频数据块。反扫描单元794输出数据到解量化单元790。解量化单元790反向变换施加于数据上的量化并将数据输出到反离散余弦变换器770。反离散余弦变换器770的输出被加到来自帧存储器740的数据上。在一个实施例中,该和具有超过8个位,即,超出0到255的范围,因此,该和被输入到进行剪裁的逻辑电路750。逻辑电路750可以逐个像素地截短输入,以使得数据在0到255的范围内。在一个实施例中,任何小于0的输入值被赋成0,任何大于255的输入值被赋成255,而任何在0到255之间的输入值保持不变。剪裁的结果然后被存储在帧存储器740中。被存储在帧存储器中的结果然后可以被用作对于未来视频帧的参考帧。
图8示出了计算机系统800的示例实施例。系统800包括处理器810、动态随机访问存储器(DRAM)830、存储控制器(MCH)820以及图形芯片840。处理器810、DRAM 830以及图形芯片840被耦合到MCH820。
在一个实施例中,图形处理器840是能进行视频编码的并行处理器。图形芯片840包括寄存器组844和图形处理器842。寄存器组844被称作寄存器文件。在一个实施例中,寄存器文件被安排成列和行。图形处理器842被耦合到寄存器组844。
在一个实施例中,图形处理器842用矩形搜索模板在视频帧中进行运动搜索。在像素块上的矩形搜索模板内有许多运动搜索点。图形处理器842对每个运动搜索点进行运动测量,以计算对于每个运动搜索点的SAD值。在一个实施例中,具有最小SAD值的运动搜索点被认为是最小点。如果最小点是矩形搜索区域的外点,则图形处理器842移动搜索区域,使其以该最小点为中心,并在经移动的搜索区域内的运动搜索点上重复运动测量。否则,图形处理器842终止搜索并计算像素块的运动向量。图形处理器842可以在寄存器844中存储测量数据、SAD值或者运动向量。通过存储视频帧的运动搜索数据,而不是视频帧本身,图形处理器842压缩了视频数据。
前述的讨论仅仅描述了本发明的一些示例实施例。从这样的讨论、附图和权利要求中,本领域的技术人员将容易认识到,在不脱离所附权利要求的精神和范围的条件下,可以进行各种修改。因而,本说明应被看作是说明性的而不是限制性的。

Claims (29)

1.一种视频编码器,包括:
运动估测器,用于相对于参考视频帧在输入视频数据上进行运动搜索,以产生多个运动向量,所述运动搜索包括矩形运动搜索;和
可变长编码器,用于使用所述运动向量压缩所述输入视频数据。
2.根据权利要求1所述的视频编码器,还包括:
用于变换实域中的所述输入视频数据的变换器;和
用于量化所述经变换的视频数据的量化单元。
3.根据权利要求1所述的视频编码器,还包括被耦合到所述运动估测器的用于存储所述参考帧的帧存储器。
4.一种方法,包括:
相对于参考视频帧在输入视频数据上进行运动搜索,以产生多个运动向量,所述运动搜索包括矩形运动搜索;以及
使用所述运动向量压缩所述输入视频数据。
5.根据权利要求4所述的方法,还包括:
变换实域中的所述输入视频数据;以及
量化所述经变换的视频数据。
6.权利要求4所述的方法,还包括存储所述参考帧。
7.一种用于确定像素块从第一视频帧到第二视频帧的相对运动的方法,所述方法包括:
在形成矩形搜索区域的多个运动搜索点上进行运动测量;
基于所述运动测量的结果,找到所述多个运动搜索点中的最小运动搜索点;以及
如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频帧的所述相对运动相对应的运动向量。
8.根据权利要求7所述的方法,还包括:
如果所述最小运动搜索点是沿着所述矩形搜索区域的边或者在所述矩形搜索区域的角上,则重定位所述矩形搜索区域,使其基本上以所述最小运动搜索点为中心,并部分重叠所述矩形搜索区域,所述被重定位的矩形搜索区域包括第二多个运动搜索点;以及
在所述第二多个运动搜索点上进行运动测量。
9.根据权利要求8所述的方法,其中,在所述第二多个运动搜索点上的所述运动测量不包括所述多个运动搜索点中既落在所述矩形搜索区域内又落在所述被重定位的矩形搜索区域内的一个或多个。
10.根据权利要求7所述的方法,还包括:
将所述矩形搜索区域划分成多个数据单元,所述多个数据单元中的每个具有基本相同的大小以及所述多个运动搜索点的不同子集,其中,依次在所述多个数据单元的每个上进行所述运动测量。
11.根据权利要求10所述的方法,其中,所述矩形搜索区域是具有16个运动搜索点的正方形搜索区域。
12.根据权利要求11所述的方法,其中所述正方形搜索区域被划分成4个数据单元,所述4个数据单元的每个具有4个不同的运动搜索点。
13.根据权利要求7所述的方法,还包括进行细化运动搜索,其中,进行所述细化运动搜索包括如果所述最小运动搜索点在所述矩形搜索区域的所述内部区域内,则在所述最小点处收缩所述矩形搜索区域。
14.根据权利要求7所述的方法,还包括如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则在所述最小点周围进行次像素运动搜索。
15.一种用于压缩视频数据的方法,包括:
将第一视频帧定义为参考视频帧;
相对于所述参考视频帧在第二视频帧上进行运动搜索,以确定所述第二视频帧相对于所述参考视频帧的多个运动向量;以及
将所述视频数据简化为所述参考视频帧和所述第二视频帧的所述多个运动向量,其中所述运动搜索包括
在形成像素块内的矩形搜索区域的多个运动搜索点上进行运动测量:
基于所述运动测量的结果,找到所述多个运动搜索点中的最小运动搜索点;
如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频帧的所述相对运动相对应的运动向量。
16.根据权利要求15所述的方法,其中,进行所述运动搜索还包括:
如果所述最小运动搜索点是沿着所述矩形搜索区域的边或者在所述矩形搜索区域的角上,则重定位所述矩形搜索区域,使其基本上以所述最小运动搜索点为中心,并部分重叠所述矩形搜索区域,所述被重定位的矩形搜索区域包括第二多个运动搜索点;以及
在所述第二多个运动搜索点上进行运动测量。
17.根据权利要求16所述的方法,其中,在所述第二多个运动搜索点上的所述运动测量不包括所述多个运动搜索点中既落在所述矩形搜索区域内又落在所述被重定位的矩形搜索区域内的一个或多个。
18.根据权利要求15所述的方法,其中,进行所述运动搜索还包括:
将所述矩形搜索区域划分成多个数据单元,所述多个数据单元中的每个具有基本相同的大小以及所述多个运动搜索点的不同子集,其中,依次在所述多个数据单元的每个上进行所述运动测量。
19.一种提供指令的机器可访问介质,所述指令如果被处理器执行,将引起所述处理器执行操作,以确定像素块从第一视频帧到第二视频帧的相对运动,所述操作包括:
在形成像素块内的矩形搜索区域的多个运动搜索点上进行运动测量;
基于所述运动测量的结果找到所述多个运动搜索点中的最小运动搜索点;以及
如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频的所述相对运动相对应的运动向量。
20.根据权利要求19所述的机器可访问介质,其中,所述操作还包括:
如果所述最小运动搜索点是沿着所述矩形搜索区域的边或者在所述矩形搜索区域的角上,则重定位所述矩形搜索区域,使其基本上以所述最小运动搜索点为中心,并部分重叠所述矩形搜索区域,所述被重定位的矩形搜索区域包括第二多个运动搜索点;以及
在所述第二多个运动搜索点上进行运动测量。
21.根据权利要求20所述的机器可访问介质,其中,在所述第二多个运动搜索点上的所述运动测量不包括所述多个运动搜索点中既落在所述矩形搜索区域内也落在所述被重定位的矩形搜索区域内的一个或多个。
22.根据权利要求19所述的机器可访问介质,其中,所述操作还包括:
将所述矩形搜索区域划分成多个数据单元,所述多个数据单元中的每个具有基本相同的大小以及所述多个运动搜索点的不同子集,其中,依次在所述多个数据单元的每个上进行所述运动测量。
23.根据权利要求22所述的机器可访问介质,其中,所述矩形搜索区域是具有16个运动搜索点的正方形搜索区域。
24.根据权利要求23所述的机器可访问介质,其中,所述正方形搜索区域被划分成4个数据单元,所述4个数据单元的每个具有4个不同的运动搜索点。
25.一种系统,包括:
动态随机访问存储器器件;
与所述动态随机访问存储器器件耦合的存储控制器;和
与所述存储控制器耦合的并行处理器芯片,所述并行处理器芯片包括
定义寄存器文件的多个寄存器;和
与所述多个寄存器耦合的并行处理器,其中,所述并行处理器可操作用来进行操作,以确定像素块从第一视频帧到第二视频帧的相对运动,所述操作包括:
在形成所述像素块内的矩形搜索区域的多个运动搜索点上进行运动测量;
基于所述运动测量的结果,找到所述多个运动搜索点中的最小运动搜索点;
如果所述最小运动搜索点在所述矩形搜索区域的内部区域内,则找到与所述像素块从所述第一视频帧到所述第二视频的所述相对运动相对应的运动向量。
26.根据权利要求25所述的系统,其中,所述操作还包括:
如果所述最小运动搜索点是沿着所述矩形搜索区域的边或者在所述矩形搜索区域的角上,则重定位所述矩形搜索区域,使其基本上以所述最小运动搜索点为中心,并部分重叠所述矩形搜索区域,所述被重定位的矩形搜索区域包括第二多个运动搜索点;以及
在所述第二多个运动搜索点上进行运动测量。
27.根据权利要求26所述的系统,其中,在所述第二多个运动搜索点上的所述运动测量不包括所述多个运动搜索点中既落在所述矩形搜索区域内也落在所述被重定位的矩形搜索区域内的一个或多个。
28.根据权利要求25所述的系统,其中,所述并行处理器将多个数据元加载到所述寄存器文件内的矩形区域中,所述矩形区域对应于所述矩形搜索区域。
29.根据权利要求25所述的系统,还包括与所述存储控制器耦合的微处理器。
CNB2004100780902A 2003-09-30 2004-09-21 矩形运动搜索 Expired - Fee Related CN100352286C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/676,577 US7400680B2 (en) 2003-09-30 2003-09-30 Rectangular-shape motion search
US10/676,577 2003-09-30

Publications (2)

Publication Number Publication Date
CN1607835A true CN1607835A (zh) 2005-04-20
CN100352286C CN100352286C (zh) 2007-11-28

Family

ID=34377424

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100780902A Expired - Fee Related CN100352286C (zh) 2003-09-30 2004-09-21 矩形运动搜索

Country Status (7)

Country Link
US (1) US7400680B2 (zh)
EP (1) EP1668912B1 (zh)
JP (1) JP4405516B2 (zh)
KR (1) KR100803405B1 (zh)
CN (1) CN100352286C (zh)
TW (1) TWI265734B (zh)
WO (1) WO2005034519A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005709A (zh) * 2014-12-23 2017-08-01 英特尔公司 对于任意形状的运动估计
CN107944392A (zh) * 2017-11-25 2018-04-20 周晓风 一种适用于小区卡口高密度人群监控视频目标标注的有效方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852940B2 (en) * 2005-10-20 2010-12-14 Qualcomm Incorporated Scalable motion estimation for video encoding
GB2431787B (en) * 2005-10-31 2009-07-01 Hewlett Packard Development Co A method of tracking an object in a video stream
US8488839B2 (en) * 2006-11-20 2013-07-16 Videosurf, Inc. Computer program and apparatus for motion-based object extraction and tracking in video
JP4843482B2 (ja) * 2006-12-27 2011-12-21 株式会社東芝 情報処理装置およびプログラム
US20090086820A1 (en) * 2007-09-28 2009-04-02 Edward Hong Shared memory with contemporaneous access for use in video encoding and methods for use therewith
US8041927B2 (en) * 2008-04-16 2011-10-18 Nec Corporation Processor apparatus and method of processing multiple data by single instructions
US8175160B1 (en) * 2008-06-09 2012-05-08 Nvidia Corporation System, method, and computer program product for refining motion vectors
WO2010006334A1 (en) 2008-07-11 2010-01-14 Videosurf, Inc. Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20110286523A1 (en) * 2009-01-29 2011-11-24 Anthony Peter Dencher Method and apparatus for efficient hardware motion estimation
US9182981B2 (en) * 2009-11-23 2015-11-10 University Of Washington Systems and methods for implementing pixel-based reverse engineering of interface structure
US9413477B2 (en) 2010-05-10 2016-08-09 Microsoft Technology Licensing, Llc Screen detector
US9311708B2 (en) 2014-04-23 2016-04-12 Microsoft Technology Licensing, Llc Collaborative alignment of images
US9508011B2 (en) * 2010-05-10 2016-11-29 Videosurf, Inc. Video visual and audio query
TWI451767B (zh) * 2010-05-27 2014-09-01 Mstar Semiconductor Inc 視訊編碼系統、移動估算裝置及移動估算方法
US20170332094A1 (en) * 2016-05-16 2017-11-16 Google Inc. Super-wide area motion estimation for video coding
GB2563943B (en) 2017-06-30 2021-02-24 Canon Kk Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
JP6930418B2 (ja) * 2017-12-26 2021-09-01 株式会社Jvcケンウッド 画像切り出し装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10327415A (ja) * 1997-05-22 1998-12-08 Mitsubishi Electric Corp 動きベクトル検出装置
WO2001022733A1 (en) * 1999-09-21 2001-03-29 Koninklijke Philips Electronics N.V. Method of global motion estimation
TW550953B (en) * 2000-06-16 2003-09-01 Intel Corp Method of performing motion estimation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005709A (zh) * 2014-12-23 2017-08-01 英特尔公司 对于任意形状的运动估计
CN107005709B (zh) * 2014-12-23 2020-08-21 英特尔公司 对于任意形状的运动估计
CN107944392A (zh) * 2017-11-25 2018-04-20 周晓风 一种适用于小区卡口高密度人群监控视频目标标注的有效方法

Also Published As

Publication number Publication date
US7400680B2 (en) 2008-07-15
CN100352286C (zh) 2007-11-28
TW200519774A (en) 2005-06-16
WO2005034519A1 (en) 2005-04-14
TWI265734B (en) 2006-11-01
EP1668912B1 (en) 2016-04-06
KR100803405B1 (ko) 2008-02-13
JP4405516B2 (ja) 2010-01-27
US20050069037A1 (en) 2005-03-31
EP1668912A1 (en) 2006-06-14
KR20060055555A (ko) 2006-05-23
JP2007507987A (ja) 2007-03-29
WO2005034519A8 (en) 2006-05-26

Similar Documents

Publication Publication Date Title
CN100352286C (zh) 矩形运动搜索
CN112383780B (zh) 点匹配参考集和索引来回扫描串匹配的编解码方法和装置
CN112203095B (zh) 视频运动估计方法、装置、设备及计算机可读存储介质
CN101243685B (zh) 数字媒体数据的编码方法、处理方法及处理装置
CN1708133A (zh) 降低位精度的用于子像素运动估计的方法和设备
CN116342596A (zh) 一种基于YOLOv5改进的变电站设备螺母缺陷识别检测方法
CN1736108A (zh) 有效的预测图像参数估计
CN105263026B (zh) 基于概率统计与图像梯度信息的全局矢量获取方法
EP2953357A1 (en) Video encoding method, decoding method and apparatus
CN113052922B (zh) 裸土识别方法、系统、设备及介质
CN106954065B (zh) 基于梯度方向直方图的递归预测图像压缩方法
CN103105943B (zh) 精确定位光电鼠标位移量的方法
CN117496240A (zh) 一种光伏面板表面缺陷分类方法及系统
US20200304831A1 (en) Feature Encoding Based Video Compression and Storage
CN1201589C (zh) 运动估计方法和装置
CN116246064A (zh) 一种多尺度空间特征增强方法及装置
CN110991361B (zh) 面向高清高速视频的多通道多模态背景建模方法
US7181075B2 (en) Multi-level encoding/decoding apparatus
JP2007067552A (ja) 階層間予測処理方法,階層間予測処理装置,階層間予測処理プログラムおよびその記録媒体
CN113837258B (zh) 基于局部相关熵矩阵的高光谱图像分类方法和系统
CN115937807A (zh) 一种道路病害识别检测方法及系统
Zhang et al. Fast Fractal Image Compression Algorithm Based on Compression Perception
Ghosh et al. On Far End Saliency Detection of Images by Compressive Sensing
Gao et al. A Novel YOLOv5_ES based on lightweight small object detection head for PCB surface defect detection
CN116258683A (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

Granted publication date: 20071128

Termination date: 20170921

CF01 Termination of patent right due to non-payment of annual fee