CN111462170A - 运动估计方法、运动估计装置、存储介质与电子设备 - Google Patents
运动估计方法、运动估计装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN111462170A CN111462170A CN202010239649.4A CN202010239649A CN111462170A CN 111462170 A CN111462170 A CN 111462170A CN 202010239649 A CN202010239649 A CN 202010239649A CN 111462170 A CN111462170 A CN 111462170A
- Authority
- CN
- China
- Prior art keywords
- block
- error
- matched
- determining
- motion vector
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/207—Analysis of motion for motion estimation over a hierarchy of resolutions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
Abstract
本公开提供了一种运动估计方法、装置、存储介质与电子设备,涉及图像与视频处理技术领域。该方法包括:确定待匹配块与参考块的误差,所述待匹配块为当前帧中的图像块,所述参考块为所述当前帧的参考帧中的图像块;根据所述误差从所述参考块中确定至少一个候选块;基于所述待匹配块与所述参考块之间的位移量,确定随机数范围;以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,所述随机数范围内的随机数为增量,得到随机运动矢量;通过所述随机运动矢量确定所述待匹配块的最优运动矢量。本公开实现了随机数范围对场景运动状态自适应的效果,适用于不同场景,有利于提高运动估计的准确度,且能够降低计算量,提高效率。
Description
技术领域
本公开涉及图像与视频处理技术领域,尤其涉及一种运动估计方法、运动估计装置、计算机可读存储介质与电子设备。
背景技术
运动估计(Motion Estimation)是指在视频中计算连续帧图像之间目标的相对偏移量,得到目标的运动矢量(Motion Vector),在视频编码、运动补偿、视频插帧等领域有着广泛应用。
相关技术中,为了实现运动估计,通常将图像序列的每一帧分成许多互不重叠的块,并认为块内所有像素点的位移都相同,然后在参考帧某一给定范围内找出当前块的相似块,从而得到当前块与相似块之间的运动矢量,然而其对于不同场景的适应性较差,导致难以得到有效的运动矢量。
发明内容
本公开提供了一种运动估计方法、运动估计装置、计算机可读存储介质与电子设备,进而至少在一定程度上解决相关技术对于不同场景的适应性较差的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种运动估计方法,包括:确定待匹配块与参考块的误差,所述待匹配块为当前帧中的图像块,所述参考块为所述当前帧的参考帧中的图像块;根据所述误差从所述参考块中确定至少一个候选块;基于所述待匹配块与所述参考块之间的位移量,确定随机数范围;以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,所述随机数范围内的随机数为增量,得到随机运动矢量;通过所述随机运动矢量确定所述待匹配块的最优运动矢量。
根据本公开的第二方面,提供一种运动估计装置,包括:误差确定模块,用于确定待匹配块与参考块的误差,所述待匹配块为当前帧中的图像块,所述参考块为所述当前帧的参考帧中的图像块;候选块确定模块,用于根据所述误差从所述参考块中确定至少一个候选块;随机数范围确定模块,用于基于所述待匹配块与所述参考块之间的位移量,确定随机数范围;随机运动矢量确定模块,用于以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,所述随机数范围内的随机数为增量,得到随机运动矢量;最优运动矢量确定模块,用于通过所述随机运动矢量确定所述待匹配块的最优运动矢量。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的运动估计方法及其可能的实施方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的运动估计方法及其可能的实施方式。
本公开的技术方案具有以下有益效果:
根据上述运动估计方法、运动估计装置、存储介质和电子设备,确定待匹配块与参考块的误差,以确定候选块;然后基于待匹配块与参考块之间的位移量确定随机数范围;再以待匹配块与候选块之间的运动矢量为基础运动矢量,随机数范围内的随机数为增量,得到随机运动矢量;最后通过随机运动矢量确定待匹配块的最优运动矢量。一方面,通过随机数范围与位移量的匹配,实现了随机数范围对场景运动状态自适应的效果,可以应用到不同的场景中,得到较为鲁棒的随机数与随机运动矢量,以覆盖到实际的最优块,从而提高运动估计的准确度。另一方面,在参考块中筛选出较优的候选块,然后进一步确定基础运动矢量,提高了基础运动矢量的针对性,使得基础运动矢量与随机数的结合能够快速找到最优块的区域,无需向多个方向反复尝试,从而降低计算量,提高效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式运行环境的系统架构图;
图2示出本示例性实施方式中电子设备的示意图;
图3示出本示例性实施方式中一种运动估计方法的流程图;
图4示出本示例性实施方式中参考块的示意图;
图5示出本示例性实施方式中一种确定梯度误差的流程图;
图6示出本示例性实施方式中计算梯度误差的示意图;
图7示出本示例性实施方式中一种确定候选块的流程图;
图8示出本示例性实施方式中另一种确定候选块的流程图;
图9示出本示例性实施方式中一种确定随机数范围的流程图;
图10示出本示例性实施方式中一种得到随机运动矢量的流程图;
图11示出本示例性实施方式中一种确定最优运动矢量的流程图;
图12示出本示例性实施方式的一种运动估计装置的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本公开示例性实施方式提供一种运动估计方法和运动估计装置。图1示出该方法与装置运行环境的系统架构图。如图1所示,该系统架构100可以包括:终端110、网络120和服务器130。终端110可以是具有视频拍摄功能的各种电子设备,包括但不限于手机、平板电脑、数码相机、个人电脑等。网络120用以在终端110和服务器130之间提供通信链路的介质,可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。应该理解,图1中的终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络和服务器。比如服务器130可以是多个服务器组成的服务器集群等。
本示例性实施方式所提供的运动估计方法可以由终端110执行,例如在终端110拍摄视频后,对视频进行运动估计处理;也可以由服务器130执行,例如终端110拍摄视频后,上传到服务器130,使服务器130对视频进行运动估计处理。需要说明的是,如果由终端110执行上述运动估计方法,则终端110可以是单机设备(即无需具备网络连接功能),或者工作在未联网状态下。
本公开的示例性实施方式还提供一种用于实现上述运动估计方法和运动估计装置的电子设备,可以是图1中的终端110或服务器130。该电子设备可以以各种形式来实施,例如可以包括智能手机、平板电脑、笔记本电脑、个人数字助理(Personal DigitalAssistant,PDA)、导航装置、可穿戴设备、无人机等移动设备,以及台式电脑、智能电视等固定设备。下面以图2中的移动终端200为例,对电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图2中的构造也能够应用于固定类型的设备。在另一些实施方式中,移动终端200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。各部件间的接口连接关系只是示意性示出,并不构成对移动终端200的结构限定。在另一些实施方式中,移动终端200也可以采用与图2不同的接口连接方式,或多种接口连接方式的组合。
如图2所示,移动终端200具体可以包括:处理器210、内部存储器221、外部存储器接口222、通用串行总线(Universal Serial Bus,USB)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及用户标识模块(Subscriber Identification Module,SIM)卡接口295等。其中传感器模块280可以包括深度传感器2801、压力传感器2802、陀螺仪传感器2803、气压传感器2804等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成读取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。存储器可以存储用于实现六个模块化功能的指令:检测指令、连接指令、信息管理指令、分析指令、数据传输指令和通知指令,并由处理器210来控制执行。在一些实施方式中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施方式中,处理器210可以包括一个或多个接口。接口可以包括集成电路(Inter-Integrated Circuit,I2C)接口、集成电路内置音频(Inter-Integrated CircuitSound,I2S)接口、脉冲编码调制(Pulse Code Modulation,PCM)接口、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、通用输入输出(General-PurposeInput/Output,GPIO)接口、用户标识模块(Subscriber Identity Module,SIM)接口和/或通用串行总线(Universal Serial Bus,USB)接口等。通过不同的接口和移动终端200的其他部件形成连接。
USB接口230是符合USB标准规范的接口,具体可以是MiniUSB接口,MicroUSB接口,USBTypeC接口等。USB接口230可以用于连接充电器为移动终端200充电,也可以连接耳机,通过耳机播放音频,还可以用于移动终端200连接其他电子设备,例如连接电脑、外围设备等。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施方式中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施方式中,充电管理模块240可以通过移动终端200的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
电源管理模块241用于连接电池242、充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210、内部存储器221、显示屏290、摄像模组291和无线通信模块260等供电,还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。
移动终端200的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。移动终端200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施方式中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在移动终端200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(Low Noise Amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波、放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块260可以提供应用在移动终端200上的包括无线局域网(WirelessLocal Area Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络)、蓝牙(Bluetooth,BT)、全球导航卫星系统(Global Navigation Satellite System,GNSS)、调频(Frequency Modulation,FM)、近距离无线通信技术(Near Field Communication,NFC)、红外技术(Infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施方式中,移动终端200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得移动终端200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(Global System for Mobilecommunications,GSM),通用分组无线服务(General Packet Radio Service,GPRS),码分多址接入(Code Division Multiple Access,CDMA),宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA),时分码分多址(Time Division-Synchronous CodeDivision Multiple Access,TD-SCDMA),长期演进(Long Term Evolution,LTE),新空口(New Radio,NR),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(Global Positioning System,GPS),全球导航卫星系统(Global NavigationSatellite System,GLONASS),北斗卫星导航系统(Beidou Navigation SatelliteSystem,BDS),准天顶卫星系统(Quasi-Zenith Satellite System,QZSS)和/或星基增强系统(Satellite Based Augmentation Systems,SBAS)。
移动终端200通过GPU、显示屏290及应用处理器等实现显示功能。GPU为的微处理器,连接显示屏290和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
移动终端200可以包括一个或多个显示屏290,用于显示图像,视频等。显示屏290包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(Organic Light-Emitting Diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-Matrix Organic Light Emitting Diode,AMOLED),柔性发光二极管(Flexlight-Emitting Diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(Quantum dot Light Emitting Diodes,QLED)等。
移动终端200可以通过ISP、摄像模组291、视频编解码器、GPU、显示屏290及应用处理器等实现拍摄功能。
ISP用于处理摄像模组291反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。在一些实施方式中,ISP可以设置在摄像模组291中。
移动终端200可以包括一个或多个摄像模组291,用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。
视频编解码器用于对数字视频压缩或解压缩。移动终端200可以支持一种或多种视频编解码器。这样,移动终端200可以播放或录制多种编码格式的视频,例如:动态图像专家组(Moving Picture Experts Group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口222可以用于连接外部存储卡,例如Micro SD卡,实现扩展移动终端200的存储能力。外部存储卡通过外部存储器接口222与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储移动终端200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(Universal Flash Storage,UFS)等。处理器210通过运行存储在内部存储器221的指令和/或存储在设置于处理器中的存储器的指令,执行移动终端200的各种功能应用以及数据处理。
移动终端200可以通过音频模块270、扬声器271、受话器272、麦克风273、耳机接口274及应用处理器等实现音频功能。例如音乐播放、录音等。
音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块270还可以用于对音频信号编码和解码。在一些实施方式中,音频模块270可以设置于处理器210中,或将音频模块270的部分功能模块设置于处理器210中。
扬声器271,也称“喇叭”,用于将音频电信号转换为声音信号。移动终端200可以通过扬声器271收听音乐,或收听免提通话。
受话器272,也称“听筒”,用于将音频电信号转换成声音信号。当移动终端200接听电话或语音信息时,可以通过将受话器272靠近人耳接听语音。
麦克风273,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风273发声,将声音信号输入到麦克风273。移动终端200可以设置多个麦克风273,以实现降噪、识别声音来源、定向录音等功能。
耳机接口274用于连接有线耳机。耳机接口274可以是USB接口230,也可以是3.5mm的开放移动电子设备平台(Open Mobile Terminal Platform,OMTP)标准接口,美国蜂窝电信工业协会(Cellular Telecommunications Industry Association of the USA,CTIA)标准接口。
深度传感器2801用于获取景物的深度信息。在一些实施方式中,深度传感器可以设置于摄像模组291。压力传感器2802用于感受压力信号,可以将压力信号转换成电信号,用于实现压力触控等功能。陀螺仪传感器2803可以用于确定移动终端200的运动姿态,可用于拍摄防抖、导航、体感游戏等场景。气压传感器2804用于测量气压,可通过计算海拔高度,辅助定位和导航。
此外,根据实际需要,还可以在传感器模块280中设置其他功能的传感器,例如磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等等。
指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
马达293可以产生振动提示,例如来电、闹钟、接收信息等的振动提示,也可以用于触摸振动反馈等。
按键294包括开机键,音量键等。按键294可以是机械按键。也可以是触摸式按键。移动终端200可以接收按键输入,产生与移动终端200的用户设置以及功能控制有关的键信号输入。
移动终端200可以支持一个或多个SIM卡接口295,用于连接SIM卡,使移动终端200通过SIM卡和网络交互,实现通话以及数据通信等功能。
下面对本公开示例性实施方式的运动估计方法和运动估计装置进行具体说明。
图3示出了本示例性实施方式中一种运动估计方法的流程,包括以下步骤S310至S350:
步骤S310,确定待匹配块与参考块的误差。
其中,待匹配块为当前帧中的图像块,参考块为当前帧的参考帧中的图像块。当前帧指视频中当前待处理的帧,如果在拍摄视频时同步进行运动估计,则当前获取的最新一帧为当前帧;或者对视频进行逐帧解析,则当前待解析的一帧为当前帧。参考帧可以选用视频中当前帧的相邻帧,一般是前一帧。对于当前帧,可以按照预设尺寸的块(如16*16大小块)对图像进行分割,得到多个图像块,也可以通过目标检测、语义分割等多种方式分割图像块,本公开不做限定。在将当前帧分割为多个图像块后,可以分别以每个图像块为待匹配块,通过执行本示例性实施方式进行运动估计。在确定参考块时,一般以待匹配块为中心,向各个方向移动一定的步长,其对应在参考帧中的图像块即为参考块。在一种实施方式中,为了简化计算,如图4所示,可以在参考帧中提取待匹配块S0周围相邻的8个图像块S1~S8,得到8个参考块。
运动估计的目的是为待匹配块找到最为匹配的参考块(本文称为最优块)。步骤S310中的参考块是初步确定的,其中包含最优块的概率较低。本示例性实施方式中,可以确定待匹配块与各参考块的误差,以得到待匹配块与各参考块匹配的情况。其中,待匹配块与任一参考块的误差,可以包括以下任意一项或多项:绝对差值和,梯度误差,惩罚值,欧式距离。
下面分别说明每种误差项的计算方法:
绝对差值和(Sum of Absolute Differences,简称SAD)。对待匹配块的每个像素点,计算其与参考块中对应像素点的像素绝对差值,累加每个像素点的绝对差值,得到待匹配块与参考块的绝对差值和。
梯度误差。参考图5所示,可以通过以下步骤S501至S503计算梯度误差:
步骤S501,在当前帧中,计算待匹配块的边缘像素点与相邻的外部像素点之间的梯度,累加待匹配块的各边缘像素点的梯度,得到待匹配块的梯度;
步骤S502,在参考帧中,计算参考块的边缘像素点与相邻的外部像素点之间的梯度,累加参考块的各边缘像素点的梯度,得到参考块的梯度;
步骤S503,计算待匹配块的梯度与参考块的梯度的绝对差值,得到梯度误差。
其中,待匹配块和参考块一般是正方形或矩形的,边缘像素点指上下左右四个边缘位置的像素点,相邻的外部像素点指位于待匹配块或参考块以外,与边缘像素点相邻的像素点。
结合图6举例说明,图6中左侧为待匹配块S0,其由n*n个像素(图中示出为4*4)组成,S0(i,j)表示S0中第i列、第j行的像素点,虚线为相邻的外部像素点;右侧为参考块S1及其邻的外部像素点。计算待匹配块S0的梯度为:
同样的,可以计算参考块S1的梯度:
然后计算待匹配块S0和参考块S1的梯度误差:
Grad_Diff=|Grad(S0)-Grad(S1)| (3)
惩罚值(Penalty)。惩罚值用于描述待匹配块与参考块之间匹配的可靠性,计算方式可以通过经验值和实验选取,本公开对此不做限定。例如,可以将待匹配块和参考块输入预先训练的神经网络,待匹配块输入第一通道,参考块输入第二通道,通过神经网络输出匹配度,匹配度越低,则惩罚值越高(如惩罚值=1-匹配度)。
欧式距离。从待匹配块和参考块分别提取图像特征,形成两个特征向量,对两个特征向量计算欧式距离。
此外,还可以采用其他误差项,如基于互相关函数计算的互相关度,均方误差,基于最大像素匹配统计得到的匹配像素数或匹配像素比例等。
一般的,当采用上述至少两种误差项时,可以对各误差项进行加权计算,得到待匹配块与参考块的误差。例如,如果同时采用绝对差值和、梯度误差、惩罚值和欧式距离,误差计算可以参考公式(4):
Loss=w1SAD+w2Grad_Diff+w3Penalty+w4Dis (4)
其中,Loss表示误差,Dis表示欧式距离,w1、w2、w3和w4均为预设的权重,可以根据经验或实际需求设置,表示将上述四个误差项进行加权时所采用的权重,并且w1、w2、w3和w4还可以起到归一化的作用,因此w1、w2、w3和w4之和不一定为1。基于公式(4),可以分别计算待匹配块与每个参考块之间的误差。
步骤S320,根据上述误差从参考块中确定至少一个候选块。
通常可以根据误差由低到高排列各参考块,越靠前的参考块,其与待匹配块越匹配。从第一参考块开始,可以按顺序选取候选块,例如可以根据实际需求选取任意数量的参考块,作为候选块。需要说明的是,候选块是参考块中较优的块(即与待匹配块较为匹配的块),但不一定是最优块。
在排列参考块时,如果存在至少两个参考块,其与待匹配块的误差相同,则按照预设误差项确定该至少两个参考块之间的排列顺序。其中,预设误差项包括绝对差值和、梯度误差、惩罚值和欧式距离中任意一项或两项、三项的组合,换而言之,可以将预设误差项看成是误差的子集。如果误差同时包括绝对差值和、梯度误差、惩罚值和欧式距离这四项,则预设误差项可以是其中任意一项、两项、三项,具体采用哪些误差项作为预设误差项,视实际需求而定。举例来说,当采用公式(4)计算误差时,如果参考块S1、S2与待匹配块S0的Loss相同,为了进一步确定S1、S2哪个更匹配,可以进一步比较S1、S2与S0计算预设误差项的数值大小;如采用绝对差值和与梯度误差作为预设误差项,则可以采用以下公式(5)计算子误差Loss1:
Loss1=w1SAD+w2Grad_Diff (5)
哪个参考块与S0的Loss1更小,则哪个参考块更匹配,排列在相对靠前的位置。
也可以确定多个层级的预设误差项,例如在Loss相同的情况下,比较Loss1,如果Loss1也相同,则继续比较Grad_Diff,如果Grad_Diff也相同,则继续比较Penalty等等,直到区分出两个参考块的优劣。
在一种可选的实施方式中,参考图7所示,步骤S320可以通过以下步骤S701至S703实现:
步骤S701,获取至少两个预设误差阈值,各预设误差阈值均不相同;
步骤S702,利用预设误差阈值确定参考块的误差所属的区间,以得到误差分布;
步骤S703,根据上述误差分布,从参考块中确定至少一个候选块。
举例来说,可以设置第一误差阈值T1和第二误差阈值T2,T1<T2,这样可以得到3个数值区间,(-∞,T1)、[T1,T2]和(T2,+∞),然后统计所有的误差在这3个区间的分布情况。将误差处于(-∞,T1)的参考块确定为第一类参考块,为较优的参考块;将误差处于[T1,T2]的参考块确定为第二类参考块,为次优的参考块;将误差处于(T2,+∞)的参考块确定为第三类参考块,为一般的参考块;然后统计第一类参考块、第二类参考块和第三类参考块的数量,以得到误差分布。假设一共有3个参考块,分别计算误差后,统计得到的各种分布情况可以参考表1所示,表1中合并了一些分布情况,例如第一类参考块的数量为2时,无论其余两类参考块的数量是多少,都归为分布2,第一类参考块的数量为1时,无论其余两类参考块的数量是多少,都归为分布3。
表1
得到误差分布后,可以进而确定候选块。确定候选块的基本思想是如果有较优的参考块,则采用较优的参考块,没有较优的参考块则采用次优的参考块,没有次优的参考块则采用一般的参考块。在一种实施方式中,参考图8所示,可以通过以下步骤S801至S803确定候选块:
步骤S801,如果第一类参考块的数量大于0,则将第一类参考块确定为候选块;
步骤S802,如果第一类参考块的数量为0,且第二类参考块的数量大于0,则将第二类参考块确定为候选块;
步骤S803,如果第一类参考块和第二类参考块的数量均为0,则将处于待匹配块第一预设方向的第三类参考块确定为候选块。
需要说明的是,第一预设方向可以是根据实际场景的特点预先确定的方向,如利用前面若干帧之间的运动矢量预测当前块的运动方向,作为第一预设方向。举例来说,在图4中,假设第一预设方向可以包括左上和右上,若S1~S8均为第三类参考块,则采用S1和S3作为候选块。
在另一种实施方式中,可以参考表1所示,具体如下:
如果第一类参考块的数量大于0,则将第一类参考块确定为候选块,其中,当第一类参考块的数量大于2时,采用误差较小的两个第一类参考块;
如果第一类参考块的数量为0,且第二类参考块的数量大于0,则将第二类参考块确定为候选块,其中,当第二类参考块的数量大于2时,采用误差较小的两个第二类参考块;
如果第一类参考块和第二类参考块的数量均为0,则采用误差较小的两个第三类参考块为候选块。
由此可以保证所选取的候选块不超过2个,使得候选块的质量较高。
需要补充的是,在执行上述步骤S702时,可以先根据误差由低到高排列各参考块,从其中第一参考块开始,选取预设数量的参考块;再利用预设误差阈值确定所选取的参考块的误差所属的区间,以得到误差分布。预设数量一般小于参考块的总数,可以根据实际需求设定,例如参考块的总数为8,预设数量为3,即选取误差较小的3个参考块,然后对这3个参考块的误差计算分布,进而从这3个参考块中确定候选块。由此可以简化计算量,提高效率。
步骤S330,基于待匹配块与参考块之间的位移量,确定随机数范围。
其中,待匹配块与参考块之间的位移量可以采用运动矢量的长度,其体现了视频中目标的运动程度,位移量大说明目标运动较快,因而可以设置较大的随机数范围。
在一种可选的实施方式中,参考图9所示,步骤S330可以通过以下步骤S901和S902实现:
步骤S901,确定待匹配块与处于待匹配块第二预设方向的参考块之间的第一位移量,以及待匹配块与候选块之间的第二位移量;
步骤S902,根据上述第一位移量和第二位移量确定随机数范围。
其中,第二预设方向可以是根据实际场景的特点预先确定的方向,如统计前面所有帧中已出现过的当前块的运动方向,作为第二预设方向。需要说明的是,第二预设方向与第一预设方向之间无关联,两者可以相同,也可以不同。
举例来说,在图4中,假设第二预设方向可以包括正左、左上、正上和右上,则处于待匹配块S0第二预设方向的参考块包括S1、S2、S3和S4,分别计算S0和S1、S2、S3、S4之间的位移量,平均后得到第一位移量R1。然后计算待匹配块与候选块之间的位移量,假设图4中候选块为S6、S7,分别计算S0和S6、S7之间的位移量,平均后得到第二位移量R2。再根据第一位移量和第二位移量确定随机数范围,例如可以计算第一位移量和第二位移量的平均位移量,R0=(R1+R2)/2,通过预设转换关系对平均位移量进行转换计算,得到随机数范围。在一种实施方式中,可以设置两个预设阈值,记为第三预设阈值T3和第四预设阈值T4,T3<T4;如果R0<T3,则判定为小运动场景,采用较小的随机数范围,如[-3,3];如果T3<R0<T4,则判定为中等运动场景,采用中等的随机数范围,如[-5,5];如果R>T4,则判定为大运动场景,采用较大的随机数范围,如[-9,9]。在另一种实施方式中,也可以设置转换系数α,通常α>0,在计算得到R0后,可以随机数范围为[-αR0,αR0]。
当然,上述计算过程仅是举例说明,实际应用中,还可以对R1和R2进行加权计算,得到R0,或者设置R0与随机数范围之间为非线性转换关系,等等,本公开对于计算方法的细节不做限定。
由上可知,随机数范围是与位移量相匹配的,因此实现了随机数范围自适应的效果,当场景不同、目标运动状态不同时,对应得到不同的随机数范围,可以增加本方案的鲁棒性。
步骤S340,以待匹配块与候选块之间的运动矢量为基础运动矢量,随机数范围内的随机数为增量,得到随机运动矢量。
需要说明的是,如果存在多个候选块,则可以分别计算待匹配块与每个候选块之间的运动矢量,并对各运动矢量求平均,得到基础运动矢量。在求平均时,可以计算算术平均值,也可以以每个候选块与待匹配块的误差计算对应的权重,对各候选块的运动矢量计算加权平均值。
通常基础运动矢量包括x和y两个方向的分量(即图像平面的两个坐标维度),在对基础运动矢量添加增量时,可以在随机数范围内生成两个随机数,分别加到x和y上,得到随机矢量。在一种可选的实施方式中,参考图10所示,步骤S340可以通过以下步骤S1001和S1002实现:
步骤S1001,以单位步长遍历随机数范围,得到多组增量;
步骤S1002,以待匹配块与候选块之间的运动矢量为基础运动矢量,结合上述多组增量,得到多个随机运动矢量。
其中,单位步长可以是一个像素尺寸,以随机数范围[-3,3]为例,如果单位步长为1,则遍历随机数范围,可以得到49组增量,包括(0,0),然后以基础运动矢量分别加上每组增量,得到49个随机运动矢量,形成随机运动矢量集。
步骤S350,通过随机运动矢量确定待匹配块的最优运动矢量。
在确定随机运动矢量后,计算待匹配块与随机运动矢量对应的参考块之间的误差,将误差最低的随机运动矢量作为最优运动矢量,从而完成待匹配块的运动估计。
在一种可选的实施方式中,基于图10中得到的多个随机运动矢量,参考图11所示,步骤S350可以通过以下步骤S1101和S1102实现:
步骤S1101,在参考帧中依次获取各随机运动矢量对应的参考块,并与待匹配块计算误差;
步骤S1102,当误差收敛时,确定最小的误差对应的随机运动矢量为最优运动矢量。
需要说明的是,步骤S1101得到的参考块与步骤S310中的参考块不相同,在参考帧中,按照随机运动矢量移动待匹配块,其所在位置的图像块即参考块。在遍历随机数范围的同时,每得到一组增量,计算对应的随机运动矢量,再计算对应的参考块与待匹配块的误差;在遍历过程中,如果误差收敛,例如连续一定数量的随机运动矢量,其误差不再降低,则将误差最低的随机运动矢量作为最优运动矢量。
当然,也可以对步骤S1002中得到的每个随机运动矢量,均计算其对应的误差,然后选取最小的误差对应的随机运动矢量为最优运动矢量。通过遍历随机数范围,可以改善局部收敛的问题,保证最终得到的最优运动矢量为全局最优。
综上所述,本示例性实施方式中,确定待匹配块与参考块的误差,以确定候选块;然后基于待匹配块与参考块之间的位移量确定随机数范围;再以待匹配块与候选块之间的运动矢量为基础运动矢量,随机数范围内的随机数为增量,得到随机运动矢量;最后通过随机运动矢量确定待匹配块的最优运动矢量。一方面,通过随机数范围与位移量的匹配,实现了随机数范围对场景运动状态自适应的效果,可以应用到不同的场景中,得到较为鲁棒的随机数与随机运动矢量,以覆盖到实际的最优块,从而提高运动估计的准确度。另一方面,在参考块中筛选出较优的候选块,然后进一步确定基础运动矢量,提高了基础运动矢量的针对性,使得基础运动矢量与随机数的结合能够快速找到最优块的区域,无需向多个方向反复尝试,从而降低计算量,提高效率。
图12示出了本公开示例性实施方式中的运动估计装置。如图12所示,该运动估计装置1200可以包括:
误差确定模块1210,用于确定待匹配块与参考块的误差,待匹配块为当前帧中的图像块,参考块为当前帧的参考帧中的图像块;
候选块确定模块1220,用于根据误差从参考块中确定至少一个候选块;
随机数范围确定模块1230,用于基于待匹配块与参考块之间的位移量,确定随机数范围;
随机运动矢量确定模块1240,用于以待匹配块与候选块之间的运动矢量为基础运动矢量,随机数范围内的随机数为增量,得到随机运动矢量;
最优运动矢量确定模块1250,用于通过随机运动矢量确定待匹配块的最优运动矢量。
在一种可选的实施方式中,待匹配块与任一参考块的误差,包括以下任意一项或多项:绝对差值和,梯度误差,惩罚值,欧式距离。
在一种可选的实施方式中,待匹配块与参考块的梯度误差,通过以下方式确定:
在当前帧中,计算待匹配块的边缘像素点与相邻的外部像素点之间的梯度,累加待匹配块的各边缘像素点的梯度,得到待匹配块的梯度;
在参考帧中,计算参考块的边缘像素点与相邻的外部像素点之间的梯度,累加参考块的各边缘像素点的梯度,得到参考块的梯度;
计算待匹配块的梯度与参考块的梯度的绝对差值,得到梯度误差。
在一种可选的实施方式中,误差确定模块1210,还用于当待匹配块与任一参考块的误差包括至少两项误差项时,对各误差项进行加权计算,得到待匹配块与参考块的误差。
在一种可选的实施方式中,候选块确定模块1220,被配置为:
根据误差由低到高排列参考块,从其中第一参考块开始,选取至少一个候选块;
如果存在至少两个参考块,其与待匹配块的误差相同,则按照预设误差项确定该至少两个参考块之间的排列顺序。
预设误差项包括以下任意一项或两项、三项的组合:绝对差值和,梯度误差,惩罚值,欧式距离。
在一种可选的实施方式中,候选块确定模块1220,被配置为:
获取至少两个预设误差阈值,这些预设误差阈值均不相同;
利用预设误差阈值确定参考块的误差所属的区间,以得到误差分布;
根据误差分布,从参考块中确定至少一个候选块。
在一种可选的实施方式中,上述至少两个预设误差阈值包括第一误差阈值和第二误差阈值,第一误差阈值小于第二误差阈值。
候选块确定模块1220,被配置为:
将误差低于第一误差阈值的参考块确定为第一类参考块;
将误差处于第一误差阈值和第二误差阈值之间的参考块确定为第二类参考块;
将误差高于第二误差阈值的参考块确定为第三类参考块;
统计第一类参考块、第二类参考块和第三类参考块的数量,以得到误差分布。
在一种可选的实施方式中,候选块确定模块1220,用于:
如果第一类参考块的数量大于0,则将第一类参考块确定为候选块;
如果第一类参考块的数量为0,且第二类参考块的数量大于0,则将第二类参考块确定为候选块。
在一种可选的实施方式中,候选块确定模块1220,还用于:
如果第一类参考块和第二类参考块的数量均为0,则将处于待匹配块第一预设方向的第三类参考块确定为候选块。
在一种可选的实施方式中,候选块确定模块1220,还用于:
根据误差由低到高排列参考块,从其中第一参考块开始,选取预设数量的参考块;
利用预设误差阈值确定预设数量的参考块的误差所属的区间,以得到误差分布。
在一种可选的实施方式中,随机数范围确定模块1230,被配置为:
确定待匹配块与处于待匹配块第二预设方向的参考块之间的第一位移量,以及待匹配块与候选块之间的第二位移量;
根据第一位移量和第二位移量确定随机数范围。
在一种可选的实施方式中,随机数范围确定模块1230,被配置为:
计算第一位移量和第二位移量的平均位移量,通过预设转换关系对平均位移量进行转换计算,得到随机数范围。
在一种可选的实施方式中,随机运动矢量确定模块1240,还用于:
如果存在多个候选块,则分别计算待匹配块与每个候选块之间的运动矢量,并对各运动矢量求平均,得到基础运动矢量。
在一种可选的实施方式中,随机运动矢量确定模块1240,被配置为:
以单位步长遍历随机数范围,得到多组增量;
以待匹配块与候选块之间的运动矢量为基础运动矢量,结合多组增量,得到多个随机运动矢量。
在一种可选的实施方式中,最优运动矢量确定模块1250,被配置为:
在参考帧中依次获取各随机运动矢量对应的参考块,并与待匹配块计算误差;
当误差收敛时,确定最小的误差对应的随机运动矢量为最优运动矢量。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤,例如可以执行图3或图5中任意一个或多个步骤。
该程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (18)
1.一种运动估计方法,其特征在于,包括:
确定待匹配块与参考块的误差,所述待匹配块为当前帧中的图像块,所述参考块为所述当前帧的参考帧中的图像块;
根据所述误差从所述参考块中确定至少一个候选块;
基于所述待匹配块与所述参考块之间的位移量,确定随机数范围;
以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,所述随机数范围内的随机数为增量,得到随机运动矢量;
通过所述随机运动矢量确定所述待匹配块的最优运动矢量。
2.根据权利要求1所述的方法,其特征在于,所述待匹配块与任一所述参考块的误差,包括以下任意一项或多项:
绝对差值和,梯度误差,惩罚值,欧式距离。
3.根据权利要求2所述的方法,其特征在于,所述待匹配块与所述参考块的梯度误差,通过以下方式确定:
在所述当前帧中,计算所述待匹配块的边缘像素点与相邻的外部像素点之间的梯度,累加所述待匹配块的各边缘像素点的梯度,得到所述待匹配块的梯度;
在所述参考帧中,计算所述参考块的边缘像素点与相邻的外部像素点之间的梯度,累加所述参考块的各边缘像素点的梯度,得到所述参考块的梯度;
计算所述待匹配块的梯度与所述参考块的梯度的绝对差值,得到所述梯度误差。
4.根据权利要求2所述的方法,其特征在于,当所述待匹配块与任一所述参考块的误差包括至少两项误差项时,对各所述误差项进行加权计算,得到所述待匹配块与所述参考块的误差。
5.根据权利要求2所述的方法,其特征在于,在排列所述参考块时,所述方法包括:
根据所述误差由低到高排列所述参考块,从其中第一参考块开始,选取至少一个候选块;
如果存在至少两个参考块,其与所述待匹配块的误差相同,则按照预设误差项确定所述至少两个参考块之间的排列顺序;
所述预设误差项包括以下任意一项或两项、三项的组合:
绝对差值和,梯度误差,惩罚值,欧式距离。
6.根据权利要求1所述的方法,其特征在于,所述根据所述误差从所述参考块中确定至少一个候选块,包括:
获取至少两个预设误差阈值,所述至少两个预设误差阈值均不相同;
利用所述预设误差阈值确定所述参考块的误差所属的区间,以得到误差分布;
根据所述误差分布,从所述参考块中确定至少一个候选块。
7.根据权利要求6所述的方法,其特征在于,所述至少两个预设误差阈值包括第一误差阈值和第二误差阈值,所述第一误差阈值小于所述第二误差阈值;
所述利用所述预设误差阈值确定所述参考块的误差所属的区间,以得到误差分布,包括:
将误差低于所述第一误差阈值的参考块确定为第一类参考块;
将误差处于所述第一误差阈值和所述第二误差阈值之间的参考块确定为第二类参考块;
将误差高于所述第二误差阈值的参考块确定为第三类参考块;
统计所述第一类参考块、第二类参考块和第三类参考块的数量,以得到所述误差分布。
8.根据权利要求7所述的方法,其特征在于,所述根据所述误差分布,从所述参考块中确定至少一个候选块,包括:
如果所述第一类参考块的数量大于0,则将所述第一类参考块确定为所述候选块;
如果所述第一类参考块的数量为0,且所述第二类参考块的数量大于0,则将所述第二类参考块确定为所述候选块。
9.根据权利要求8所述的方法,其特征在于,所述根据所述误差分布,从所述参考块中确定至少一个候选块,还包括:
如果所述第一类参考块和第二类参考块的数量均为0,则将处于所述待匹配块第一预设方向的所述第三类参考块确定为所述候选块。
10.根据权利要求6所述的方法,其特征在于,所述利用所述预设误差阈值确定所述参考块的误差所属的区间,以得到误差分布,包括:
根据所述误差由低到高排列所述参考块,从其中第一参考块开始,选取预设数量的参考块;
利用所述预设误差阈值确定所述预设数量的参考块的误差所属的区间,以得到误差分布。
11.根据权利要求1所述的方法,其特征在于,所述基于所述待匹配块与所述参考块之间的位移量,确定随机数范围,包括:
确定所述待匹配块与处于所述待匹配块第二预设方向的参考块之间的第一位移量,以及所述待匹配块与所述候选块之间的第二位移量;
根据所述第一位移量和所述第二位移量确定所述随机数范围。
12.根据权利要求11所述的方法,其特征在于,所述根据所述第一位移量和所述第二位移量确定所述随机数范围,包括:
计算所述第一位移量和所述第二位移量的平均位移量,对所述平均位移量进行转换,获得所述随机数范围。
13.根据权利要求1所述的方法,其特征在于,所述以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,包括:
如果存在多个所述候选块,则分别计算所述待匹配块与每个所述候选块之间的运动矢量,并对各所述运动矢量求平均,得到所述基础运动矢量。
14.根据权利要求1所述的方法,其特征在于,所述以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,所述随机数范围内的随机数为增量,得到随机运动矢量,包括:
以单位步长遍历所述随机数范围,得到多组增量;
以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,结合所述多组增量,得到多个随机运动矢量。
15.根据权利要求14所述的方法,其特征在于,所述通过所述随机运动矢量确定所述待匹配块的最优运动矢量,包括:
在所述参考帧中依次获取各所述随机运动矢量对应的参考块,并与所述待匹配块计算误差;
当所述误差收敛时,确定最小的误差对应的所述随机运动矢量为所述最优运动矢量。
16.一种运动估计装置,其特征在于,包括:
误差确定模块,用于确定待匹配块与参考块的误差,所述待匹配块为当前帧中的图像块,所述参考块为所述当前帧的参考帧中的图像块;
候选块确定模块,用于根据所述误差从所述参考块中确定至少一个候选块;
随机数范围确定模块,用于基于所述待匹配块与所述参考块之间的位移量,确定随机数范围;
随机运动矢量确定模块,用于以所述待匹配块与所述候选块之间的运动矢量为基础运动矢量,所述随机数范围内的随机数为增量,得到随机运动矢量;
最优运动矢量确定模块,用于通过所述随机运动矢量确定所述待匹配块的最优运动矢量。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至15任一项所述的方法。
18.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至15任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010239649.4A CN111462170B (zh) | 2020-03-30 | 2020-03-30 | 运动估计方法、运动估计装置、存储介质与电子设备 |
PCT/CN2021/083327 WO2021197229A1 (en) | 2020-03-30 | 2021-03-26 | Method for motion estimation, non-transitory computer-readable storage medium, and electronic device |
EP21165685.5A EP3889899B1 (en) | 2020-03-30 | 2021-03-29 | Method for motion estimation, non-transitory computer-readable storage medium, and electronic device |
US17/216,633 US11716438B2 (en) | 2020-03-30 | 2021-03-29 | Method for motion estimation, non-transitory computer-readable storage medium, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010239649.4A CN111462170B (zh) | 2020-03-30 | 2020-03-30 | 运动估计方法、运动估计装置、存储介质与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111462170A true CN111462170A (zh) | 2020-07-28 |
CN111462170B CN111462170B (zh) | 2023-08-25 |
Family
ID=71680911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010239649.4A Active CN111462170B (zh) | 2020-03-30 | 2020-03-30 | 运动估计方法、运动估计装置、存储介质与电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11716438B2 (zh) |
EP (1) | EP3889899B1 (zh) |
CN (1) | CN111462170B (zh) |
WO (1) | WO2021197229A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112001943A (zh) * | 2020-08-31 | 2020-11-27 | Oppo广东移动通信有限公司 | 运动估计方法及装置、计算机可读介质和电子设备 |
CN112672158A (zh) * | 2020-12-10 | 2021-04-16 | 博流智能科技(南京)有限公司 | 运动侦测系统及方法 |
CN113111842A (zh) * | 2021-04-26 | 2021-07-13 | 浙江商汤科技开发有限公司 | 一种动作识别方法、装置、设备及计算机可读存储介质 |
WO2021197229A1 (en) * | 2020-03-30 | 2021-10-07 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for motion estimation, non-transitory computer-readable storage medium, and electronic device |
CN115086678A (zh) * | 2022-08-22 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 视频编码方法和装置、视频解码方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863272A (zh) * | 2006-02-14 | 2006-11-15 | 华为技术有限公司 | 一种视频图像超分辨率重构方法 |
US20080240243A1 (en) * | 2007-03-30 | 2008-10-02 | Himax Technologies Limited | Method for estimating a motion vector |
US20090190037A1 (en) * | 2008-01-25 | 2009-07-30 | Mediatek Inc. | Method and integrated circuit for video processing |
US20090316786A1 (en) * | 2006-04-14 | 2009-12-24 | Nxp B.V. | Motion estimation at image borders |
CN102316317A (zh) * | 2010-07-10 | 2012-01-11 | 华为技术有限公司 | 一种生成图像预测值的方法和装置 |
US20120057760A1 (en) * | 2010-09-02 | 2012-03-08 | Kabushiki Kaisha Toshiba | Motion vector detection device, apparatus for detecting motion vector and motion vector detection method |
CN108702512A (zh) * | 2017-10-31 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 运动估计方法和装置 |
CN110839155A (zh) * | 2018-08-17 | 2020-02-25 | 北京金山云网络技术有限公司 | 运动估计的方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100275694B1 (ko) * | 1998-03-02 | 2000-12-15 | 윤덕용 | 실시간 동영상 부호화를 위한 초고속 움직임 벡터 추정방법 |
JP2003534615A (ja) | 2000-05-19 | 2003-11-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ブロック整合する候補ベクトルの決定 |
JP2005528709A (ja) * | 2002-05-30 | 2005-09-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 現動きベクトルを推定するユニット及び方法 |
KR100579542B1 (ko) * | 2003-07-29 | 2006-05-15 | 삼성전자주식회사 | 블럭 간의 상관성을 고려한 움직임 추정 장치 및 방법 |
US8494052B2 (en) * | 2006-04-07 | 2013-07-23 | Microsoft Corporation | Dynamic selection of motion estimation search ranges and extended motion vector ranges |
US8295551B2 (en) * | 2009-04-08 | 2012-10-23 | Samsung Electronics Co., Ltd. | System and method of adaptive vertical search range tracking for motion estimation in digital video |
JP5669523B2 (ja) * | 2010-07-06 | 2015-02-12 | 三菱電機株式会社 | フレーム補間装置及び方法、並びにプログラム及び記録媒体 |
US8934544B1 (en) * | 2011-10-17 | 2015-01-13 | Google Inc. | Efficient motion estimation in hierarchical structure |
US9571833B2 (en) * | 2011-11-04 | 2017-02-14 | Nokia Technologies Oy | Method for coding and an apparatus |
CN102438146B (zh) | 2011-12-05 | 2014-04-30 | 晶门科技(深圳)有限公司 | 一种视频质量的提高方法及其实现装置 |
US20150110190A1 (en) * | 2013-10-21 | 2015-04-23 | Sony Corporation | Method and apparatus for motion estimation |
US20180109791A1 (en) | 2015-05-07 | 2018-04-19 | Peking University Shenzhen Graduate School | A method and a module for self-adaptive motion estimation |
CN115086652A (zh) * | 2015-06-05 | 2022-09-20 | 杜比实验室特许公司 | 图像编码和解码方法和图像解码设备 |
US20180184107A1 (en) * | 2016-12-28 | 2018-06-28 | Novatek Microelectronics Corp. | Motion estimation method and motion estimation apparatus |
CN107124617B (zh) | 2017-03-08 | 2020-11-24 | 青岛信芯微电子科技股份有限公司 | 运动估计运动补偿中随机矢量的生成方法及系统 |
CN106993108B (zh) | 2017-04-07 | 2020-08-28 | 上海顺久电子科技有限公司 | 一种确定视频图像在运动估计中的随机量的方法和装置 |
US20200014945A1 (en) * | 2018-07-08 | 2020-01-09 | Mellanox Technologies, Ltd. | Application acceleration |
CN108270945B (zh) * | 2018-02-06 | 2020-10-30 | 上海通途半导体科技有限公司 | 一种运动补偿去噪方法及装置 |
US11070813B2 (en) * | 2018-06-29 | 2021-07-20 | Intel Corporation | Global motion estimation and modeling for accurate global motion compensation for efficient video processing or coding |
US10812823B2 (en) * | 2018-07-11 | 2020-10-20 | Apple Inc. | Global motion vector video encoding systems and methods |
US11006143B2 (en) * | 2018-07-11 | 2021-05-11 | Apple Inc. | Motion vector candidate pruning systems and methods |
CN111462170B (zh) * | 2020-03-30 | 2023-08-25 | Oppo广东移动通信有限公司 | 运动估计方法、运动估计装置、存储介质与电子设备 |
-
2020
- 2020-03-30 CN CN202010239649.4A patent/CN111462170B/zh active Active
-
2021
- 2021-03-26 WO PCT/CN2021/083327 patent/WO2021197229A1/en active Application Filing
- 2021-03-29 EP EP21165685.5A patent/EP3889899B1/en active Active
- 2021-03-29 US US17/216,633 patent/US11716438B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863272A (zh) * | 2006-02-14 | 2006-11-15 | 华为技术有限公司 | 一种视频图像超分辨率重构方法 |
US20090316786A1 (en) * | 2006-04-14 | 2009-12-24 | Nxp B.V. | Motion estimation at image borders |
US20080240243A1 (en) * | 2007-03-30 | 2008-10-02 | Himax Technologies Limited | Method for estimating a motion vector |
US20090190037A1 (en) * | 2008-01-25 | 2009-07-30 | Mediatek Inc. | Method and integrated circuit for video processing |
CN102316317A (zh) * | 2010-07-10 | 2012-01-11 | 华为技术有限公司 | 一种生成图像预测值的方法和装置 |
US20120057760A1 (en) * | 2010-09-02 | 2012-03-08 | Kabushiki Kaisha Toshiba | Motion vector detection device, apparatus for detecting motion vector and motion vector detection method |
CN108702512A (zh) * | 2017-10-31 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 运动估计方法和装置 |
CN110839155A (zh) * | 2018-08-17 | 2020-02-25 | 北京金山云网络技术有限公司 | 运动估计的方法、装置、电子设备及计算机可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021197229A1 (en) * | 2020-03-30 | 2021-10-07 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for motion estimation, non-transitory computer-readable storage medium, and electronic device |
CN112001943A (zh) * | 2020-08-31 | 2020-11-27 | Oppo广东移动通信有限公司 | 运动估计方法及装置、计算机可读介质和电子设备 |
CN112672158A (zh) * | 2020-12-10 | 2021-04-16 | 博流智能科技(南京)有限公司 | 运动侦测系统及方法 |
CN113111842A (zh) * | 2021-04-26 | 2021-07-13 | 浙江商汤科技开发有限公司 | 一种动作识别方法、装置、设备及计算机可读存储介质 |
CN115086678A (zh) * | 2022-08-22 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 视频编码方法和装置、视频解码方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210306528A1 (en) | 2021-09-30 |
US11716438B2 (en) | 2023-08-01 |
EP3889899B1 (en) | 2023-10-04 |
WO2021197229A1 (en) | 2021-10-07 |
EP3889899A1 (en) | 2021-10-06 |
CN111462170B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111462170B (zh) | 运动估计方法、运动估计装置、存储介质与电子设备 | |
US11889180B2 (en) | Photographing method and electronic device | |
CN111179282B (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
CN112954251B (zh) | 视频处理方法、视频处理装置、存储介质与电子设备 | |
CN111741303B (zh) | 深度视频处理方法、装置、存储介质与电子设备 | |
EP4068169A1 (en) | Search method for machine learning model and related apparatus and device | |
CN112533115B (zh) | 一种提升扬声器的音质的方法及装置 | |
CN111161176B (zh) | 图像处理方法及装置、存储介质和电子设备 | |
CN111598919B (zh) | 运动估计方法、运动估计装置、存储介质与电子设备 | |
CN111176465A (zh) | 使用状态识别方法、装置、存储介质与电子设备 | |
CN114880251A (zh) | 存储单元的访问方法、访问装置和终端设备 | |
WO2022022319A1 (zh) | 一种图像处理方法、电子设备、图像处理系统及芯片系统 | |
CN113556421B (zh) | 录音数据处理方法、装置及存储介质 | |
CN113096022B (zh) | 图像虚化处理方法、装置、存储介质与电子设备 | |
CN112599144A (zh) | 音频数据处理方法、音频数据处理装置、介质与电子设备 | |
CN112037157A (zh) | 数据处理方法及装置、计算机可读介质及电子设备 | |
CN109285563B (zh) | 在线翻译过程中的语音数据处理方法及装置 | |
WO2022095752A1 (zh) | 帧解复用方法、电子设备及存储介质 | |
CN114390406B (zh) | 一种控制扬声器振膜位移的方法及装置 | |
CN115546248A (zh) | 事件数据处理方法、装置和系统 | |
CN115225800A (zh) | 多摄像头变焦方法、装置及设备 | |
CN111294905B (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
CN111626929B (zh) | 深度图像的生成方法及装置、计算机可读介质和电子设备 | |
CN115801987A (zh) | 一种视频插帧方法及装置 | |
CN111696037A (zh) | 深度图像处理方法及装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |