CN111526369B - 视频的运动估计方法、装置、电子设备和存储介质 - Google Patents

视频的运动估计方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111526369B
CN111526369B CN202010357305.3A CN202010357305A CN111526369B CN 111526369 B CN111526369 B CN 111526369B CN 202010357305 A CN202010357305 A CN 202010357305A CN 111526369 B CN111526369 B CN 111526369B
Authority
CN
China
Prior art keywords
frame
candidate
block
vector
target
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
CN202010357305.3A
Other languages
English (en)
Other versions
CN111526369A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010357305.3A priority Critical patent/CN111526369B/zh
Publication of CN111526369A publication Critical patent/CN111526369A/zh
Application granted granted Critical
Publication of CN111526369B publication Critical patent/CN111526369B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种视频的运动估计方法和装置、电子设备、计算机可读存储介质。方法包括获取目标视频的第一帧和第二帧;第一帧和第二帧为相邻的两帧;将第一帧和第二帧分别进行分块;依次获取第一帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括第一候选矢量和第二候选矢量,第一候选矢量包括前向运动估计得到的运动矢量;第二候选矢量包括后向运动估计得到的运动矢量;基于候选矢量集中的每个运动矢量,从第二帧中获取与目标块对应的候选匹配块,从各个候选匹配块中确定目标匹配块;根据目标匹配块确定目标块的目标运动矢量。上述视频的运动估计方法和装置、电子设备、计算机可读存储介质,可以提高运动估计的准确性。

Description

视频的运动估计方法、装置、电子设备和存储介质
技术领域
本申请涉及视频处理领域,特别是涉及一种视频的运动估计方法、装置、电子设备和计算机可读存储介质。
背景技术
运动估计算法是视频压缩编码的核心算法之一。高质量的运动估计算法是高效视频编码的前提和基础。通过运动估计可以获取图像序列中的图像帧与相邻的图像帧之间的相对位移,即运动矢量,从而可以基于相邻的图像帧之间的运动矢量对视频进行压缩编码,可以去除图像帧之间的冗余。
然而,传统的视频的运动估计方法,存在准确性不高的问题。
发明内容
本申请实施例提供了一种视频的运动估计方法、装置、电子设备、计算机可读存储介质,可以提高视频的运动估计的准确性。
一种视频的运动估计方法,包括:
获取目标视频的第一帧和第二帧;所述第一帧和所述第二帧为相邻的两帧;
将所述第一帧和所述第二帧分别进行分块;
依次获取所述第一帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量和第二候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
基于所述候选矢量集中的每个运动矢量,从所述第二帧中获取与所述目标块对应的候选匹配块,从各个所述候选匹配块中确定目标匹配块;
根据所述目标匹配块确定所述目标块的目标运动矢量。
一种视频的运动估计装置,包括:
图像帧获取模块,用于获取目标视频的第一帧和第二帧;所述第一帧和所述第二帧为相邻的两帧;
分块模块,用于将所述第一帧和所述第二帧分别进行分块;
候选矢量集获取模块,用于依次获取所述第一帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量和第二候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
目标匹配块确定模块,用于基于所述候选矢量集中的每个运动矢量,从所述第二帧中获取与所述目标块对应的候选匹配块,从各个所述候选匹配块中确定目标匹配块;
目标运动矢量确定模块,用于根据所述目标匹配块确定所述目标块的目标运动矢量。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的视频的运动估计方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述视频的运动估计方法、装置、电子设备和计算机可读存储介质,第一帧中的每个目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,还包括了后向运动估计得到的运动矢量即第二候选矢量,增加了目标块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。并且,目标块的候选矢量集中包括了数量更多以及类型更多的运动矢量,也可以避免目标块进行运动估计时陷入局部极小值的问题,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
一种视频的运动估计方法,包括:
获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
将所述第一帧、所述第二帧和所述中间帧分别进行分块;
依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量、第二候选矢量和第三候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;所述第三候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量;
基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述第一帧中与所述目标块对应的块,所述第二候选块是所述第二帧中与所述目标块对应的块;
根据所述目标匹配对确定所述目标块的目标运动矢量。
一种视频的运动估计装置,包括:
图像帧获取模块,用于获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
分块模块,用于将所述第一帧、所述第二帧和所述中间帧分别进行分块;
候选矢量集获取模块,用于依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量、第二候选矢量和第三候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;所述第三候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量;
目标匹配对确定模块,用于基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述第一帧中与所述目标块对应的块,所述第二候选块是所述第二帧中与所述目标块对应的块;
目标运动矢量确定模块,用于根据所述目标匹配对确定所述目标块的目标运动矢量。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的视频的运动估计方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述视频的运动估计方法、装置、电子设备和计算机可读存储介质,中间帧中的每个目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,后向运动估计得到的运动矢量即第二候选矢量,还包括了双向运动估计得到的运动矢量集第三候选矢量,增加了目标块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
目标块的候选矢量集包括了前向运动估计得到的运动矢量和后向运动估计得到的运动矢量,还包括了双向运动估计得到的运动矢量,可以避免仅采用前向运动矢量和后向运动矢量作为候选矢量产生的空洞效应,提高视频的运动估计的准确性。
目标块的候选矢量集中包括了前向运动估计得到的运动矢量和后向运动估计得到的运动矢量,而前向运动估计或后向运动估计得到的运动矢量的准确性更高,将其作为候选矢量集中的运动矢量,可以增加目标运动矢量准确的可能性,使得中间帧的各个块可以更快速获取到准确的运动矢量,既提高了视频的运动估计的准确性,又提高了视频的运动估计的效率。
一种视频的运动估计方法,包括:
获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
将所述第一帧、所述第二帧和所述中间帧分别进行分块;
对所述第一帧和所述第二帧进行单向运动估计,得到单向运动矢量;
在所述第一帧和所述第二帧之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块,基于所述参考块确定所述第一帧和所述第二帧之间的单向映射矢量;
依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括所述单向映射矢量;
基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述目标块对应的第一帧中的块,所述第二候选块是所述目标块对应的第二帧中的块;
根据所述目标匹配对确定所述目标块的目标运动矢量。
一种视频的运动估计装置,包括:
图像帧获取模块,用于获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
分块模块,用于将所述第一帧、所述第二帧和所述中间帧分别进行分块;
单向运动估计模块,用于对所述第一帧和所述第二帧进行单向运动估计,得到单向运动矢量;
矢量映射模块,用于在所述第一帧和所述第二帧之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块,基于所述参考块确定所述第一帧和所述第二帧之间的单向映射矢量;
候选矢量集获取模块,用于依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括所述单向映射矢量;
目标匹配对确定模块,用于基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述目标块对应的第一帧中的块,所述第二候选块是所述目标块对应的第二帧中的块;
目标运动矢量确定模块,用于根据所述目标匹配对确定所述目标块的目标运动矢量。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的视频的运动估计方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述视频的运动估计方法、装置、电子设备和计算机可读存储介质,中间帧中的每个目标块的候选矢量集包括单向映射矢量,而单向映射矢量是单向运动估计得到的单向运动矢量与双向运动估计时所预设的中间帧进行处理得到的矢量,将单向运动估计和双向运动估计进行结合,不仅包括了单向运动估计的信息,还包括了双向运动估计的信息,提高了候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
目标块的候选矢量集中包括了单向映射矢量,单向映射矢量包括了单向运动矢量的信息,而单向运动矢量的准确性更高,则单向映射矢量的准确性也更高,将其作为候选矢量集中的运动矢量,可以增加目标运动矢量准确的可能性,使得中间帧的各个块可以更快速获取到准确的运动矢量,既提高了视频的运动估计的准确性,又提高了视频的运动估计的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中图像处理电路的示意图;
图2为一个实施例中视频的运动估计方法的流程图;
图3为一个实施例中目标块的目标区域的示意图;
图4为一个实施例中视频的运动估计方法的系统架构图;
图5为一个实施例中步骤获取候选矢量集的流程图;
图6为另一个实施例中步骤获取候选矢量集的流程图;
图7为另一个实施例中视频的运动估计方法的流程图;
图8为另一个实施例中视频的运动估计方法的系统架构图;
图9为一个实施例中步骤获取第一候选矢量的流程图;
图10为一个实施例中步骤获取第二候选矢量的流程图;
图11为另一个实施例中视频的运动估计方法的流程图;
图12为另一个实施例中视频的运动估计方法的流程图;
图13为另一个实施例中视频的运动估计方法的流程图;
图14为一个实施例中前向运动矢量进行映射的示意图;
图15为一个实施例中后向运动矢量进行映射的示意图;
图16为另一个实施例中视频的运动估计方法的系统架构图;
图17为一个实施例中步骤前向运动估计得到前向运动矢量的流程图;
图18为一个实施例中步骤后向运动估计得到后向运动矢量的流程图;
图19为另一个实施例中视频的运动估计方法的流程图;
图20为另一个实施例中视频的运动估计方法的流程图;
图21为另一个实施例中视频的运动估计方法的流程图;
图22为一个实施例中步骤双向运动估计得到双向运动矢量的流程图;
图23为一个实施例中视频的运动估计装置的结构框图;
图24为另一个实施例中视频的运动估计装置的结构框图;
图25为另一个实施例中视频的运动估计装置的结构框图;
图26为一个实施例中电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一帧称为第二帧,且类似地,可将第二帧称为第一帧。第一帧和第二帧两者都是帧,但其不是同一帧。
本申请实施例还提供一种电子设备。上述电子设备中包括图像处理电路,图像处理电路可以利用硬件和/或软件组件实现,可包括定义ISP(Image Signal Processing,图像信号处理)管线的各种处理单元。图1为一个实施例中图像处理电路的示意图。如图1所示,为便于说明,仅示出与本申请实施例相关的图像处理技术的各个方面。
如图1所示,图像处理电路包括成像设备(照相机)110和ISP处理器120。成像设备110捕捉的图像数据首先由ISP处理器120处理,ISP处理器120对图像数据进行分析以捕捉可用于确定和/或成像设备110的一个或多个控制参数的图像统计信息。成像设备110可包括具有一个或多个透镜112和图像传感器114的照相机。图像传感器114可包括色彩滤镜阵列(如Bayer滤镜),图像传感器114可获取用图像传感器114的每个成像像素捕捉的光强度和波长信息,并提供可由ISP处理器120处理的一组原始图像数据。
ISP处理器120按多种格式逐个像素地处理原始图像数据。例如,每个图像像素可具有8、10、12或14比特的位深度,ISP处理器120可对原始图像数据进行一个或多个图像处理操作、收集关于图像数据的统计信息。其中,图像处理操作可按相同或不同的位深度精度进行。
ISP处理器120还可从图像存储器130接收图像数据。例如,成像设备110将原始图像数据发送给图像存储器130,图像存储器130中的原始图像数据再提供给ISP处理器120以供处理。图像存储器130可为存储器装置的一部分、存储设备、或电子设备内的独立的专用存储器,并可包括DMA(Direct Memory Access,直接直接存储器存取)特征。
当接收到来自图像传感器114接口或来自图像存储器130的原始图像数据时,ISP处理器120可进行一个或多个图像处理操作,如时域滤波。处理后的图像数据可发送给图像存储器130,以便在被显示之前进行另外的处理。ISP处理器120从图像存储器130接收处理数据,并对所述处理数据进行原始域中以及RGB和YCbCr颜色空间中的图像数据处理。在一个实施例中,图像存储器130可被配置为实现一个或多个帧缓冲器。
在一个实施例中,电子设备可以通过成像设备(照相机)110获取目标视频,并将目标视频发送至ISP处理器120中,通过ISP处理器120对目标视频的进行运动估计。
在另一个实施例中,电子设备可以通过图像存储器130获取存储的目标视频,并将目标视频发送至ISP处理器120中,通过ISP处理器120对目标视频的进行运动估计。
图2为一个实施例中视频的运动估计方法的流程图。如图2所示,视频的运动估计方法包括步骤202至步骤210。
步骤202,获取目标视频的第一帧和第二帧;第一帧和第二帧为相邻的两帧。
第一帧和第二帧为相邻的两帧,第一帧可以是第二帧的上一帧,第一帧也可以是第二帧的下一帧。
在一种实施方式中,电子设备可以通过摄像头获取目标视频。在另一种实施方式中,电子设备可以接收其他电子设备发送的目标视频。
具体地,电子设备获取用户输入的选取指令,选取指令中包括了选取的第一帧的标识和第二帧的标识,根据选取指令中的第一帧的标识获取目标视频中的第一帧,根据选取指令中的第二帧的标识获取目标视频中的第二帧。
步骤204,将第一帧和第二帧分别进行分块。
具体地,电子设备获取分块策略,基于分块策略将第一帧和第二帧分别划分为相同的至少两个块。分块策略中包括分块的数量、分块的位置等信息。
例如,基于分块策略可以将第一帧和第二帧分别划分为相同的九宫格;基于分块策略可以将第一帧和第二帧分别划分为相同的4个块;基于分块策略可以将第一帧和第二帧分别划分为相同的50个块。
步骤206,依次获取第一帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括第一候选矢量和第二候选矢量,第一候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第二候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量。
目标块指的是从第一帧中获取的用于运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取第一帧中的块作为目标块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取第一帧中的块作为目标块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取第一帧中的块作为目标块。获取目标块的顺序并不限定,可以根据用户需要进行设定。
候选矢量集指的是目标块候选的运动矢量的集合。候选矢量集中包括第一候选矢量和第二候选矢量,还可以包括第三候选矢量。第三候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量。
候选矢量集还可以包括零矢量、全局运动矢量、局部运动矢量、加随机值的空间候选运动矢量,等等。
可以理解的是,在帧间预测编码中,由于图像帧的邻近帧中的景物存在着一定的相关性,因此可以获取图像帧中的块在邻近帧中的对应块,并得出图像帧中的块与邻近帧中对应块之间的空间位置的相对偏移量,相对偏移量即图像帧中的块运动至邻近帧的运动矢量,得到运动矢量的过程被称为运动估计。
运动估计可以包括单向运动估计和双向运动估计,单向运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第10帧,下一帧是第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第10帧,上一帧是第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程。
在相邻两帧之间预设中间帧,中间帧的块分别在上一帧和下一帧中对称地进行块匹配搜索,找到使上一帧中的块和下一帧中的块最匹配的位移量作为中间帧的块的运动矢量,该过程即双向运动估计。例如,相邻的两帧是第9帧和第10帧,对第9帧和第10帧进行双向运动估计,预设第9帧和第10帧之间的中间帧,中间帧中的块分别在第9帧和第10帧中对称地进行块匹配搜索,找到使第9帧中的块和第10帧中的块最匹配的位移量作为中间帧的块的运动矢量。
第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第一候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第二候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量;第三候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行双向运动估计得到的运动矢量,如第9帧和第10帧之间进行双向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第一候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第二候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量;第三候选矢量可以是第9帧和第10帧之间进行双向运动估计得到的运动矢量。
当第一帧和第二帧之间进行前向运动估计,且目标块是第一帧中的第一个进行前向运动估计的块时,则第一帧和第二帧之间未存在前向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行前向运动估计得到的运动矢量作为第一候选矢量,或者获取第二帧的邻近两帧之间进行前向运动估计得到的运动矢量作为第一候选矢量,不限于此。同样地,当第一帧和第二帧之间进行后向运动估计,且目标块是第一帧中的第一个进行后向运动估计的块时,则第一帧和第二帧之间未存在后向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行后向运动估计得到的运动矢量作为第二候选矢量,或者获取第二帧的邻近两帧之间进行后向运动估计得到的运动矢量作为第二候选矢量,不限于此。
当第一帧和第二帧之间进行前向运动估计,且目标块不是第一帧中的第一个进行前向运动估计的块时,则第一帧和第二帧之间存在前向运动估计得到的运动矢量,可以将第一帧和第二帧之间存在的前向运动估计得到的运动矢量作为目标块的第一候选矢量。同样地,当第一帧和第二帧之间进行后向运动估计,且目标块不是第一帧中的第一个进行后向运动估计的块时,则第一帧和第二帧之间存在后向运动估计得到的运动矢量,可以将第一帧和第二帧之间存在的后向运动估计得到的运动矢量作为目标块的第一候选矢量。
例如,目标块为第一帧中第3个进行前向运动估计的块,则可以获取第一帧中的第1个进行前向运动估计的块的运动矢量,以及第2个进行前向运动估计的块的运动矢量,作为目标块的第一候选矢量。
步骤208,基于候选矢量集中的每个运动矢量,从第二帧中获取与目标块对应的候选匹配块,从各个候选匹配块中确定目标匹配块。
候选匹配块指的是第二帧中与目标块对应的块。目标匹配块指的是从各个候选匹配块中确定的与目标块相匹配的块。
基于候选矢量集中的每个运动矢量,将目标块进行位移,得到第二帧中与目标块对应的候选匹配块。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将第一帧中的目标块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到第二帧中与目标块对应的候选匹配块。
例如,运动矢量的位移数值是(4,8),位移方向是A方向,则将目标方向向A方向进行位移(4,8),得到第二帧中与目标块对应的候选匹配块。
从各个候选匹配块中确定目标匹配块,包括:确定目标块分别与各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配块作为目标匹配块。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配块作为目标匹配块,目标匹配块与目标块之间的运动矢量为最佳的运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配块作为目标匹配块。在其他实施方式中,还可以选取其他的候选匹配块作为目标匹配块,不限于此。
具体地,电子设备确定目标块和候选匹配块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为该目标块和候选匹配块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定该目标块和候选匹配块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为该目标块和候选匹配块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为该目标块和候选匹配块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定目标块和候选匹配块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定目标块和候选匹配块的绝对误差和为S1,则目标块和候选匹配块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定目标块和候选匹配块的绝对误差和为S2,则目标块和候选匹配块的匹配误差为S2+P2。
步骤210,根据目标匹配块确定目标块的目标运动矢量。
具体地,电子设备获取目标匹配块在候选矢量集中所对应的运动矢量,该运动矢量为目标块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算目标块与目标匹配块之间的运动矢量,将该运动矢量作为目标块的目标运动矢量。
电子设备确定当前的目标块的目标运动矢量之后,获取下一个块作为目标块,再对新的目标块进行运动估计,得到新的目标块的目标运动矢量。以此类推,电子设备可以获取到第一帧中的各个目标块的目标运动矢量。
当第一帧是第二帧的上一帧时,则目标块的目标运动矢量是目标块进行前向运动估计得到的运动矢量。当第一帧是第二帧的下一帧时,则目标块的目标运动矢量是目标块进行后向运动估计得到的运动矢量。
上述视频的运动估计方法,第一帧中的每个目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,还包括了后向运动估计得到的运动矢量即第二候选矢量,增加了目标块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。并且,目标块的候选矢量集中包括了数量更多以及类型更多的运动矢量,也可以避免目标块进行运动估计时陷入局部极小值的问题,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
对于目标块而言,候选矢量集的准确性对目标块的运动矢量的选取具有极大的依赖性,当选择的候选矢量集中的运动矢量正确的可能性增加,则最终目标块的目标运动矢量正确的可能性也会增加。
在一个实施例中,针对每一个目标块,获取候选矢量集,包括:针对每一个目标块,获取目标块所在的第一帧的目标区域,以及第一帧的预设的帧数量范围内,除第一帧之外所包括的每一帧中与目标区域对应的重合区域;获取目标区域所包括的运动矢量,以及重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
目标区域指的是第一帧中用于获取目标块的候选矢量集中的运动矢量的区域。目标区域可以包括目标块在内,也可以不包括目标块在内。目标区域可以根据用户需要进行设定。
在本实施例中,从目标区域以及重合区域中获取运动矢量作为候选矢量集,可以获取用户所需的范围内的运动矢量作为候选矢量集,避免了将第一帧以及其他帧的所有运动矢量均作为候选矢量集,可以提高目标块确定目标运动矢量的效率,从而提高视频的运动估计的效率。
在一个实施例中,如图3所示是目标块所在的第一帧的目标区域,C的当前获取的第一帧中的目标块,S1、S2、S3和S4分别是第一帧中已经完成运动估计的块,可以将S1至S4称为空间候选矢量块,T1、T2、T3、T4、T5、T6和T7分别是第一帧中未进行运动估计的块,可以将T1至T7称为时间候选矢量块。
当目标块C进行前向运动估计时,S1至S4已经完成前向运动估计,可以获取S1至S4的前向运动估计得到的运动矢量作为第一候选矢量,而T1至T7未进行前向运动估计,则可以获取第一帧的邻近帧的重合区域中T1至T7对应的块的前向运动估计作为第一候选矢量。而目标块C的第二候选矢量可以获取目标区域中各个块(包括S1至S4、C、T1至T7)进行后向运动估计得到的运动矢量,也可以获取第一帧的邻近帧中重合区域中各个块的后向运动估计得到的运动矢量,不限于此。
同样地,当目标块C进行后向运动估计时,S1至S4已经完成后向运动估计,可以获取S1至S4的后向运动估计得到的运动矢量作为第二候选矢量,而T1至T7未进行后向运动估计,则可以获取第一帧的邻近帧的重合区域中T1至T7对应的块的后向运动估计作为第二候选矢量。而目标块C的第一候选矢量可以获取目标区域中各个块(包括S1至S4、C、T1至T7)进行前向运动估计得到的运动矢量,也可以获取第一帧的邻近帧中重合区域中各个块的前向运动估计得到的运动矢量,不限于此。
在一个实施例中,当第二帧是第一帧的下一帧时,基于候选矢量集中的每个运动矢量,从第二帧中获取与目标块对应的候选匹配块,包括:当候选矢量集中的运动矢量是第一候选矢量时,将目标块以第一候选矢量匹配至第二帧中,获取第二帧中的候选匹配块;当候选矢量集中的运动矢量是第二候选矢量时,将第二候选矢量的相反方向对应的运动矢量作为第二中间矢量,并将目标块以第二中间矢量匹配至第二帧中,获取第二帧中的候选匹配块。
可以理解的是,当第二帧是第一帧的下一帧时,确定第一帧的目标块在第二帧中的目标运动矢量,即对目标块进行前向运动估计。
当候选矢量集中的运动矢量是第一候选矢量,即包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量,则该第一候选矢量的方向与目标块进行前向运动估计的方向一致,可以将目标块以第一候选矢量匹配至第二帧中,获取第二帧中的候选匹配块。
当候选矢量集中的运动矢量是第二候选矢量,即包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量,则该第二候选矢量(后向运动估计得到的运动矢量)的方向与目标块进行前向运动估计的方向相反,则先获取第二候选矢量的相反方向对应的运动矢量作为第二中间矢量,再将目标块以第二中间矢量匹配至第二帧中,获取第二帧中的候选匹配块。
例如,第二候选矢量的位移数值是(4,8),位移方向为-A,则第二中间矢量的位移数值是(4,8),位移方向时A,将目标块向A方向位移(4,8),可以获取到第二帧中的候选匹配块。
在本实施例中,当第二帧是第一帧的下一帧时,即将目标块进行前向运动估计,当候选矢量集中的运动矢量是第一候选矢量时,将目标块以第一候选矢量匹配至第二帧中,获取第二帧中的候选匹配块;当候选矢量集中的运动矢量是第二候选矢量时,将第二候选矢量的相反方向对应的运动矢量作为第二中间矢量,并将目标块以第二中间矢量匹配至第二帧中,获取第二帧中的候选匹配块,可以准确获取到第二帧中的候选匹配块,从而准确确定目标匹配块,准确获取目标块的目标运动矢量。
在一个实施例中,如图4所示,电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行前向运动估计,得到前向运动矢量。电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行后向运动估计,得到后向运动矢量。
在一个实施例中,如图5所示,当第二帧是第一帧的下一帧时,获取候选矢量集,包括:
步骤502,将第一帧和第二帧进行后向运动估计,得到第二帧的后向运动矢量。
第二帧是第一帧的下一帧,将第一帧和第二帧进行后向运动估计,即第二帧的块在第一帧中获取后向运动矢量的过程。第一帧和第二帧进行后向运动估计时,针对第二帧的每个块,候选矢量集中的候选矢量的类型并不限定,候选矢量集可以包括前向运动估计得到的运动矢量、后向运动估计得到的运动矢量和双向运动估计得到的运动矢量中的至少一种。候选矢量集中的候选矢量对应的帧也并不限定,候选矢量集可以包括第二帧的预设的帧数量范围内相邻两帧之间进行运动估计得到的运动矢量。
步骤504,获取第三帧;第三帧是第一帧的上一帧。
第二帧是第一帧的下一帧,第三帧是第一帧的上一帧。例如,第一帧是第10帧,则第二帧是第11帧,第三帧是第9帧。
步骤506,将第一帧和第三帧进行前向运动估计,得到第三帧的前向运动矢量。
将第一帧和第三帧进行前向运动估计,即第三帧的块在第一帧中获取前向运动矢量的过程。第一帧和第三帧进行前向运动估计时,针对第三帧的每个块,候选矢量集中的候选矢量的类型并不限定,可以包括前向运动估计得到的运动矢量、后向运动估计得到的运动矢量和双向运动估计得到的运动矢量中的至少一种。候选矢量集中的候选矢量对应的帧也并不限定,候选矢量集可以包括第三帧的预设的帧数量范围内相邻两帧之间进行运动估计得到的运动矢量。
步骤508,根据第二帧的后向运动矢量和第三帧的前向运动矢量构成候选矢量集,第二帧的后向运动矢量属于候选矢量集中的第二候选矢量,第三帧的前向运动矢量属于候选矢量集中的第一候选矢量。
目标块的候选矢量集包括了第一候选矢量和第二候选矢量,而第一候选矢量包括了第三帧的前向运动矢量,第二候选矢量包括了第二帧的后向运动矢量,而第三帧和第二帧是第一帧最邻近的图像帧,与第一帧的关联性最强,根据第二帧的后向运动矢量和第三帧的前向运动矢量构成第一帧的目标块的候选矢量集,可以更准确地确定目标块的目标运动矢量。
在一个实施例中,当第二帧是第一帧的下一帧时,第二候选矢量的获取方式,包括:将第一帧和第二帧进行前向运动估计,得到第一帧的前向运动矢量;将第一帧和第二帧进行后向运动估计,得到第二帧的后向运动矢量,并将第二帧的后向运动矢量作为候选矢量集中的第二候选矢量;后向运动估计时的候选矢量集包括第一帧的前向运动矢量。
可以理解的是,电子设备先将第一帧和第二帧进行前向运动估计得到第一帧的前向运动矢量,再将第一帧和第二帧进行后向运动估计得到第二帧的后向运动矢量,而后向运动估计时第二帧中的块的候选矢量集包括了第一帧的前向运动矢量,可以得到更准确的第二帧的后向运动矢量;将得到的第二帧的后向运动矢量作为目标块的第二候选矢量,再次对目标块进行前向运动估计,可以得到目标块的更准确的目标运动矢量。
在一个实施例中,当第二帧是第一帧的上一帧时,基于候选矢量集中的每个运动矢量,从第二帧中获取与目标块对应的候选匹配块,包括:当候选矢量集中的运动矢量是第一候选矢量时,将第一候选矢量的相反方向对应的运动矢量作为第一中间矢量,将目标块以第一中间矢量匹配至第二帧中,获取第二帧中的候选匹配块;当候选矢量集中的运动矢量是第二候选矢量时,将目标块以第二候选矢量匹配至第二帧中,获取第二帧中的候选匹配块。
可以理解的是,当第二帧是第一帧的上一帧时,确定第一帧的目标块在第二帧中的目标运动矢量,即对目标块进行后向运动估计。
当候选矢量集中的运动矢量是第一候选矢量,即包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量,则该第二候选矢量(前向运动估计得到的运动矢量)的方向与目标块进行后向运动估计的方向相反,则先获取第一候选矢量的相反方向对应的运动矢量作为第一中间矢量,再将目标块以第一中间矢量匹配至第二帧中,获取第二帧中的候选匹配块。
例如,第一候选矢量的位移数值是(4,8),位移方向为A,则第一中间矢量的位移数值是(4,8),位移方向时-A,将目标块向-A方向位移(4,8),可以获取到第二帧中的候选匹配块。
当候选矢量集中的运动矢量是第二候选矢量,即包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量,则该第二候选矢量的方向与目标块进行后向运动估计的方向一致,可以将目标块以第二候选矢量匹配至第二帧中,获取第二帧中的候选匹配块。
在本实施例中,当第二帧是第一帧的上一帧时,即将目标块进行后向运动估计,当候选矢量集中的运动矢量是第一候选矢量时,将第一候选矢量的相反方向对应的运动矢量作为第一中间矢量,将目标块以第一中间矢量匹配至第二帧中,获取第二帧中的候选匹配块;当候选矢量集中的运动矢量是第二候选矢量时,将目标块以第二候选矢量匹配至第二帧中,获取第二帧中的候选匹配块,从而准确确定目标匹配块,准确获取目标块的目标运动矢量。
在一个实施例中,如图6所示,当第二帧是第一帧的上一帧时,获取候选矢量集,包括:
步骤602,将第一帧和第二帧进行前向运动估计,得到第二帧的前向运动矢量。
第二帧是第一帧的上一帧,将第一帧和第二帧进行前向运动估计,即第二帧的块在第一帧中获取前向运动矢量的过程。第一帧和第二帧进行前向运动估计时,针对第二帧的每个块,候选矢量集中的候选矢量的类型并不限定,候选矢量集可以包括前向运动估计得到的运动矢量、后向运动估计得到的运动矢量和双向运动估计得到的运动矢量中的至少一种。候选矢量集中的候选矢量对应的帧也并不限定,候选矢量集可以包括第二帧的预设的帧数量范围内相邻两帧之间进行运动估计得到的运动矢量。
步骤604,获取第四帧;第四帧是第二帧的上一帧。
第二帧是第一帧的上一帧,即第一帧是第二帧的下一帧,第四帧是第二帧的上一帧。例如,第二帧是第10帧,则第一帧是第11帧,第四帧是第9帧。
步骤606,将第二帧和第四帧进行后向运动估计,得到第二帧的后向运动矢量。
将第二帧和第四帧进行后向运动估计,即第二帧的块在第四帧中获取后向运动矢量的过程。第二帧和第四帧进行后向运动估计时,针对第二帧的每个块,候选矢量集中的候选矢量的类型并不限定,可以包括前向运动估计得到的运动矢量、后向运动估计得到的运动矢量和双向运动估计得到的运动矢量中的至少一种。候选矢量集中的候选矢量对应的帧也并不限定,候选矢量集可以包括第二帧的预设的帧数量范围内相邻两帧之间进行运动估计得到的运动矢量。
步骤608,根据第二帧的前向运动矢量和第二帧的后向运动矢量构成候选矢量集,第二帧的前向运动矢量属于候选矢量集的第一候选矢量,第二帧的后向运动矢量属于候选矢量集中的第二候选矢量。
目标块的候选矢量集包括了第一候选矢量和第二候选矢量,而第一候选矢量包括了第二帧的前向运动矢量,第二候选矢量包括了第二帧的后向运动矢量,而第二帧是第一帧最邻近的图像帧,与第一帧的关联性最强,根据第二帧的后向运动矢量和前向运动矢量构成第一帧的目标块的候选矢量集,可以更准确地确定目标块的目标运动矢量。
在一个实施例中,当第二帧是第一帧的上一帧时,第一候选矢量的获取方式,包括:将第一帧和第二帧进行后向运动估计,得到第一帧的后向运动矢量;将第一帧和第二帧进行前向运动估计,得到第二帧的前向运动矢量,并将第二帧的前向运动矢量作为候选矢量集中的第一候选矢量;前向运动估计时的候选矢量集包括第一帧的后向运动矢量。
可以理解的是,电子设备先将第一帧和第二帧进行后向运动估计得到第一帧的后向运动矢量,再将第一帧和第二帧进行前向运动估计得到第二帧的前向运动矢量,而前向运动估计时第二帧中的块的候选矢量集包括了第一帧的后向运动矢量,可以得到更准确的第二帧的前向运动矢量;将得到的第二帧的前向运动矢量作为目标块的第一候选矢量,再次对目标块进行后向运动估计,可以得到目标块的更准确的目标运动矢量。
图7为另一个实施例中视频的运动估计方法的流程图。如图7所示,视频的运动估计方法包括步骤702至步骤710。
步骤702,获取目标视频的第一帧、第二帧以及预设的第一帧和第二帧之间的中间帧;第一帧和第二帧为相邻的两帧。
第一帧和第二帧为相邻的两帧,第一帧可以是第二帧的上一帧,第一帧也可以是第二帧的下一帧。预设的第一帧和第二帧之间的中间帧是预先设置的第一帧和第二帧之间待插入的图像帧,当获取到中间帧的各个块的目标运动矢量之后,可以生成新的中间帧,并插入第一帧和第二帧之间。
在一种实施方式中,电子设备可以通过摄像头获取目标视频。在另一种实施方式中,电子设备可以接收其他电子设备发送的目标视频。
具体地,电子设备获取用户输入的选取指令,选取指令中包括了选取的第一帧的标识和第二帧的标识,根据选取指令中的第一帧的标识获取目标视频中的第一帧,根据选取指令中的第二帧的标识获取目标视频中的第二帧,以及根据第一帧和第二帧获取预设的中间帧。
步骤704,将第一帧、第二帧和中间帧分别进行分块。
具体地,电子设备获取分块策略,基于分块策略将第一帧、第二帧和中间帧分别划分为相同的至少两个块。分块策略中包括分块的数量、分块的位置等信息。
例如,电子设备基于分块策略可以将第一帧、第二帧和中间帧分别划分为相同的九宫格;基于分块策略可以将第一帧、第二帧和中间帧分别划分为相同的4个块;基于分块策略可以将第一帧、第二帧和中间帧分别划分为相同的50个块。
步骤706,依次获取中间帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括第一候选矢量、第二候选矢量和第三候选矢量,第一候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第二候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;第三候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量。
目标块指的是从中间帧中获取的用于运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取中间帧中的块作为目标块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取中间帧中的块作为目标块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取中间帧中的块作为目标块。获取目标块的顺序并不限定,可以根据用户需要进行设定。
候选矢量集指的是目标块候选的运动矢量的集合。候选矢量集中包括第一候选矢量、第二候选矢量和第三候选矢量。候选矢量集还可以包括零矢量、全局运动矢量、局部运动矢量、加随机值的空间候选运动矢量,等等。
可以理解的是,在帧间预测编码中,由于图像帧的邻近帧中的景物存在着一定的相关性,因此可以获取图像帧中的块在邻近帧中的对应块,并得出图像帧中的块与邻近帧中对应块之间的空间位置的相对偏移量,相对偏移量即图像帧中的块运动至邻近帧的运动矢量,得到运动矢量的过程被称为运动估计。
运动估计可以包括单向运动估计和双向运动估计,单向运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第10帧,下一帧是第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第10帧,上一帧是第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程。
在相邻两帧之间预设中间帧,中间帧的块分别在上一帧和下一帧中对称地进行块匹配搜索,找到使上一帧中的块和下一帧中的块最匹配的位移量作为中间帧的块的运动矢量,该过程即双向运动估计。例如,相邻的两帧是第9帧和第10帧,对第9帧和第10帧进行双向运动估计,预设第9帧和第10帧之间的中间帧,中间帧中的块分别在第9帧和第10帧中对称地进行块匹配搜索,找到使第9帧中的块和第10帧中的块最匹配的位移量作为中间帧的块的运动矢量。
第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第一候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第二候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量;第三候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行双向运动估计得到的运动矢量,如第9帧和第10帧之间进行双向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第一候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第二候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量;第三候选矢量可以是第9帧和第10帧之间进行双向运动估计得到的运动矢量。
当第一帧和第二帧之间进行双向运动估计,且目标块是中间帧中的第一个进行双向运动估计的块时,则中间帧上未存在双向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行双向运动估计得到的运动矢量作为第三候选矢量,或者获取第二帧的邻近两帧之间进行双向运动估计得到的运动矢量作为第三候选矢量,不限于此。
当第一帧和第二帧之间进行双向运动估计,且目标块不是中间帧中的第一个进行双向运动估计的块时,则中间帧上存在双向运动估计得到的运动矢量,可以将中间帧上存在的运动矢量作为目标块的第三候选矢量。
例如,目标块为中间帧中第5个进行双向运动估计的块,则可以获取中间帧中的第1个进行双向运动估计的块的运动矢量,至第4个进行双向运动估计的块的运动矢量,作为目标块的第三候选矢量。
步骤708,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,从各对候选匹配对中确定目标匹配对;候选匹配对包括第一候选块和第二候选块,第一候选块是第一帧中与目标块对应的块,第二候选块是第二帧中与目标块对应的块。
候选匹配对指的是一对与目标块对应的候选匹配块,包括了第一候选块和第二候选块;而第一候选块是第一帧中与目标块对应的块,第二候选块是第二帧中与目标块对应的块。
基于候选矢量集中的每个运动矢量,将目标块分别匹配至第一帧和第二帧中,得到与目标块对应的候选匹配对。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将中间帧中的目标块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到与目标块对应的候选匹配对。
在一个实施例中,当第一帧是第二帧的上一帧时,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,包括:
当候选矢量集中的运动矢量是第一候选矢量时,将第一候选矢量的相反方向对应的运动矢量作为第一中间矢量;将目标块以第一中间矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第一候选矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
第一中间矢量的方向与第一候选矢量的方向相反,而第一候选矢量是前向运动估计得到的运动矢量,则第一中间矢量的方向与后向运动估计的方向一致。
当第一帧是第二帧的上一帧时,则目标块匹配至第一帧的方向与第一中间矢量的方向一致,目标块匹配至第二帧的方向与第一候选矢量的方向一致。因此,将目标块以第一中间矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第一候选矢量匹配至第二帧中,获取第二帧中的第二候选块。
当候选矢量集中的运动矢量是第二候选矢量时,将第二候选矢量的相反方向对应的运动矢量作为第二中间矢量;将目标块以第二候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二中间矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
第二中间矢量的方向与第二候选矢量的方向相反,而第二候选矢量是后向运动估计得到的运动矢量,则第二中间矢量的方向与前向运动估计的方向一致。
当第一帧是第二帧的上一帧时,则目标块匹配至第一帧的方向与第二候选矢量的方向一致,目标块匹配至第二帧的方向与第二中间矢量的方向一致。因此,将目标块以第二候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二中间矢量匹配至第二帧中,获取第二帧中的第二候选块。
当候选矢量集中的运动矢量是第三候选矢量时,第三候选矢量包括第一候选子矢量和第二子候选矢量,第一子候选矢量的方向与后向运动估计的方向一致,第二子候选矢量的方向与前向运动估计的方向一致;将目标块以第一子候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二子候选矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
在另一个实施例中,当第一帧是第二帧的下一帧时,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,包括:
当候选矢量集中的运动矢量是第一候选矢量时,将第一候选矢量的相反方向对应的运动矢量作为第一中间矢量;将目标块以第一候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第一中间矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
第一中间矢量的方向与第一候选矢量的方向相反,而第一候选矢量是前向运动估计得到的运动矢量,则第一中间矢量的方向与后向运动估计的方向一致。
当第一帧是第二帧的下一帧时,则目标块匹配至第一帧的方向与第一候选矢量的方向一致,目标块匹配至第二帧的方向与第一中间矢量的方向一致。因此,将目标块以第一候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第一中间矢量匹配至第二帧中,获取第二帧中的第二候选块。
当候选矢量集中的运动矢量是第二候选矢量时,将第二候选矢量的相反方向对应的运动矢量作为第二中间矢量;将目标块以第二中间矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二候选矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
第二中间矢量的方向与第二候选矢量的方向相反,而第二候选矢量是后向运动估计得到的运动矢量,则第二中间矢量的方向与前向运动估计的方向一致。
当第一帧是第二帧的下一帧时,则目标块匹配至第一帧的方向与第二中间矢量的方向一致,目标块匹配至第二帧的方向与第二候选矢量的方向一致。因此,将目标块以第二中间矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二候选矢量匹配至第二帧中,获取第二帧中的第二候选块。
当候选矢量集中的运动矢量是第三候选矢量时,第三候选矢量包括第一子候选矢量和第二子候选矢量,第一子候选矢量方向与前向运动估计的方向一致,第二子候选矢量与后向运动估计的方向一致;将目标块以第一子候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二子候选矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
从各对候选匹配对中确定目标匹配对,包括:确定每一对候选匹配对中第一候选块和第二候选块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配对作为目标匹配对。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配对作为目标匹配对,目标匹配对中第一候选块和目标块之间的运动矢量,以及第二候选块和目标块之间的运动矢量为目标块最佳的双向运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配对作为目标匹配对。在其他实施方式中,还可以选取其他的候选匹配对作为目标匹配对,不限于此。
具体地,电子设备确定第一候选块和第二候选块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为第一候选块和第二候选块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定第一候选块和第二候选块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为第一候选块和第二候选块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为第一候选块和第二候选块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第一候选块和第二候选块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定第一候选块和第二候选块的绝对误差和为S1,则第一候选块和第二候选块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定第一候选块和第二候选块的绝对误差和为S2,则第一候选块和第二候选块的匹配误差为S2+P2。
步骤710,根据目标匹配对确定目标块的目标运动矢量。
具体地,电子设备获取目标匹配对在候选矢量集中所对应的运动矢量,该运动矢量为目标块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算目标块与第一候选块之间的运动矢量,以及目标块与第二候选块之间的运动矢量,将计算得到的两个运动矢量作为目标块的目标运动矢量,即目标块的双向运动矢量。
电子设备确定当前的目标块的目标运动矢量之后,获取下一个块作为目标块,再对新的目标块进行运动估计,得到新的目标块的目标运动矢量。以此类推,电子设备可以获取到中间帧中的各个目标块的目标运动矢量。
上述视频的运动估计方法,中间帧中的每个目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,后向运动估计得到的运动矢量即第二候选矢量,还包括了双向运动估计得到的运动矢量集第三候选矢量,增加了目标块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
目标块的候选矢量集包括了前向运动估计得到的运动矢量和后向运动估计得到的运动矢量,还包括了双向运动估计得到的运动矢量,可以避免仅采用前向运动矢量和后向运动矢量作为候选矢量产生的空洞效应,提高视频的运动估计的准确性。
目标块的候选矢量集中包括了前向运动估计得到的运动矢量和后向运动估计得到的运动矢量,而前向运动估计或后向运动估计得到的运动矢量的准确性更高,将其作为候选矢量集中的运动矢量,可以增加目标运动矢量准确的可能性,使得中间帧的各个块可以更快速获取到准确的运动矢量,既提高了视频的运动估计的准确性,又提高了视频的运动估计的效率。
在一个实施例中,针对每一个目标块,获取候选矢量集,包括:针对每一个目标块,获取目标块所在的中间帧的目标区域,以及第一帧的预设的帧数量范围内,除中间帧之外所包括的每一帧中与目标区域对应的重合区域;获取目标区域所包括的运动矢量,以及重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
目标区域指的是中间帧中用于获取目标块的候选矢量集中的运动矢量的区域。目标区域可以包括目标块在内,也可以不包括目标块在内。目标区域可以根据用户需要进行设定。
在本实施例中,从目标区域以及重合区域中获取运动矢量作为候选矢量集,可以获取用户所需的范围内的运动矢量作为候选矢量集,避免了将第一帧以及其他帧的所有运动矢量均作为候选矢量集,可以提高目标块确定目标运动矢量的效率,从而提高视频的运动估计的效率。
在一个实施例中,如图3所示是目标块所在的中间帧的目标区域,C的当前获取的中间帧中的目标块,S1、S2、S3和S4分别是中间帧中已经完成双向运动估计的块,可以将S1至S4称为空间候选矢量块,T1、T2、T3、T4、T5、T6和T7分别是中间帧中未进行双向运动估计的块,可以将T1至T7称为时间候选矢量块。
当目标块C进行双向运动估计时,S1至S4已经完成双向运动估计,可以获取S1至S4的双向运动估计得到的运动矢量作为第三候选矢量,而T1至T7未进行双向运动估计,因此T1至T7不存在双向运动估计得到的运动矢量。第三候选矢量还可以包括第一帧的预设的帧数量范围内,除第一帧和第二帧之外的相邻两帧之间的中间帧的双向运动矢量。
而目标块C的第一候选矢量可以获取其他帧的重合区域中各个块(包括S1至S4、C、T1至T7)进行前向运动估计得到的运动矢量。
而目标块C的第二候选矢量可以获取其他帧的重合区域中各个块(包括S1至S4、C、T1至T7)进行后向运动估计得到的运动矢量。
例如,目标块C的候选矢量集包括:S1至S4:(目标区域)双向运动估计得到的运动矢量、T1至T4:(重合区域)前向运动估计得到的运动矢量、T5至T7:(重合区域)后向运动估计得到的运动矢量、C:(重合区域)前向运动估计和后向运动估计的候选矢量、零运动矢量、全局运动矢量、局部运动矢量、S1至S4:(目标区域)双向运动估计得到的运动矢量+随机值。
又如,目标块C的候选矢量集包括:S1:(目标区域)双向运动估计得到的运动矢量、S2:(目标区域和/或重合区域)前向运动估计得到的运动矢量、S3:(重合区域)后向运动估计得到的运动矢量、S4:(目标区域)双向运动估计得到的运动矢量、C:(重合区域)前向运动估计和后向运动估计得到的运动矢量、T1:其他的相邻两帧之间进行双向运动估计得到的运动矢量、T2:(重合区域)前向运动估计得到的运动矢量、T3:(重合区域)后向运动估计得到的运动矢量、T4至T7:其他的相邻两帧之间进行双向运动估计得到的双向运动矢量、零运动矢量、全局运动矢量、局部运动矢量、S1至S4:(目标区域)双向运动估计得到的运动矢量+随机值。
又如,目标块C的候选矢量集包括:S1:(目标区域)双向运动估计得到的运动矢量、S2:(重合区域)前向运动估计得到的运动矢量、S3:(重合区域)后向运动估计得到的运动矢量、S4:(目标区域)双向运动估计得到的运动矢量、C:(重合区域)前向和后向运动估计得到的运动矢量、T5:(重合区域)前向运动估计得到的运动矢量、T6:其他的相邻两帧之间进行双向运动估计得到的双向运动估计得到的运动矢量、T7:(重合区域)后向运动估计得到的运动矢量、零运动矢量、全局运动矢量、局部运动矢量、S1至S4:(目标区域)双向运动估计得到的运动矢量+随机值。
在一个实施例中,第一候选矢量的获取方式,包括:将第一帧和第二帧进行前向运动估计,得到第一候选矢量。第二候选矢量的获取方式,包括:将第一帧和第二帧进行后向运动估计,得到第二候选矢量。
在本实施例中,第一候选矢量是第一帧和第二帧进行前向运动估计得到的,第二候选矢量是第一帧和第二帧进行后向运动估计得到的,而再次对第一帧和第二帧进行双向运动估计,即确定预设的中间帧的各个块的运动矢量时,候选矢量集包括了第一候选矢量和第二候选矢量,与第一帧和第二帧的关联性最强,可以更准确地确定中间帧的各个目标块的目标运动矢量。
在一个实施例中,第三候选矢量的获取方式,包括:将第一帧和第二帧进行双向运动估计,得到第三候选矢量;第一帧和第二帧进行双向运动估计时的候选矢量集包括第一候选矢量或第二候选矢量。
在本实施例中,对第一帧和第二帧进行前向运动估计,得到第一候选矢量;对第一帧和第二帧进行后向运动估计,得到第二候选矢量;对第一帧和第二帧进行双向运动估计,得到第一帧和第二帧之间的双向运动矢量,候选矢量集中包括第一候选矢量或第二候选矢量;再将双向运动矢量作为目标块的第三候选矢量,再次对第一帧和第二帧进行双向运动估计,将第二次双向运动估计得到的目标运动矢量作为目标块最终的运动矢量,可以得到目标块的更准确的目标运动矢量。
在一个实施例中,先将第一帧和第二帧进行前向运动估计,得到第一候选矢量;将第一帧和第二帧进行双向运动估计,得到第三候选矢量,第一帧和第二帧进行双向运动估计时的候选矢量集包括第一候选矢量;将第一帧和第二帧进行后向运动估计,得到第二候选矢量;获取目标块的候选矢量集,包括第一候选矢量、第二候选矢量和第三候选矢量,再次将第一帧和第二帧进行双向运动估计,将第二次双向运动估计得到的目标运动矢量作为目标块最终的运动矢量,可以得到目标块的更准确的目标运动矢量。
在另一个实施例中,先将第一帧和第二帧进行后向运动估计,得到第二候选矢量;将第一帧和第二帧进行双向运动估计,得到第三候选矢量,第一帧和第二帧进行双向运动估计时的候选矢量集包括第二候选矢量;将第一帧和第二帧进行前向运动估计,得到第一候选矢量;获取目标块的候选矢量集,包括第一候选矢量、第二候选矢量和第三候选矢量,再次将第一帧和第二帧进行双向运动估计,将第二次双向运动估计得到的目标运动矢量作为目标块最终的运动矢量,可以得到目标块的更准确的目标运动矢量。
在另一个实施例中,将第一帧和第二帧进行前向运动估计,得到第一候选矢量;将第一帧和第二帧进行后向运动估计,得到第二候选矢量;将第一帧和第二帧进行双向运动估计,得到第三候选矢量,第一帧和第二帧进行双向运动估计时的候选矢量集包括第一候选矢量和第二候选矢量;获取目标块的候选矢量集,包括第一候选矢量、第二候选矢量和第三候选矢量,再次将第一帧和第二帧进行双向运动估计,将第二次双向运动估计得到的目标运动矢量作为目标块最终的运动矢量,可以得到目标块的更准确的目标运动矢量。
在一个实施例中,如图8所示,电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行前向运动估计,得到前向运动矢量。电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行后向运动估计,得到后向运动矢量。电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行双向运动估计,得到双向运动矢量。
在一个实施例中,如图9所示,当第一帧是第二帧的上一帧时,将第一帧和第二帧进行前向运动估计,得到第一候选矢量,包括:
步骤902,依次获取第一帧中的块作为第一块,针对每一个第一块,获取第一候选矢量集;第一候选矢量集包括第四候选矢量和第五候选矢量,第四候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第五候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量。
第一块指的是从第一帧中获取的用于前向运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取第一帧中的块作为第一块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取第一帧中的块作为第一块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取第一帧中的块作为第一块。获取第一块的顺序并不限定,可以根据用户需要进行设定。
第一候选矢量集指的是第一块候选的运动矢量的集合。第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第四候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第五候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第四候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第五候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量。
当第一帧和第二帧之间进行前向运动估计,且第一块是第一帧中的第一个进行前向运动估计的块时,则第一帧和第二帧之间未存在前向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行前向运动估计得到的运动矢量作为第四候选矢量,或者获取第二帧的邻近两帧之间进行前向运动估计得到的运动矢量作为第四候选矢量,不限于此。
当第一帧和第二帧之间进行前向运动估计,且第一块不是第一帧中的第一个进行前向运动估计的块时,则第一帧和第二帧之间存在前向运动估计得到的运动矢量,可以将第一帧和第二帧之间存在的前向运动估计得到的运动矢量作为第一块的第四候选矢量。
例如,第一块为第一帧中第3个进行前向运动估计的块,则可以获取第一帧中的第1个进行前向运动估计的块的运动矢量,以及第2个进行前向运动估计的块的运动矢量,作为第一块的第四候选矢量。
步骤904,基于第一候选矢量集中的每个运动矢量,从第二帧中获取与第一块对应的候选匹配块,从各个第一块对应的候选匹配块中确定第一块的目标匹配块。
基于候选矢量集中的每个运动矢量,将第一块进行位移,得到第二帧中与第一块对应的候选匹配块。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将第一帧中的第一块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到第二帧中与第一块对应的候选匹配块。
例如,运动矢量的位移数值是(4,8),位移方向是A方向,则将目标方向向A方向进行位移(4,8),得到第二帧中与第一块对应的候选匹配块。
从各个候选匹配块中确定目标匹配块,包括:确定第一块分别与各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配块作为目标匹配块。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配块作为目标匹配块,目标匹配块与第一块之间的运动矢量为最佳的运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配块作为目标匹配块。在其他实施方式中,还可以选取其他的候选匹配块作为目标匹配块,不限于此。
具体地,电子设备确定第一块和候选匹配块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为该第一块和候选匹配块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定该第一块和候选匹配块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为该第一块和候选匹配块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为该第一块和候选匹配块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第一块和候选匹配块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定第一块和候选匹配块的绝对误差和为S1,则第一块和候选匹配块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定第一块和候选匹配块的绝对误差和为S2,则第一块和候选匹配块的匹配误差为S2+P2。
步骤906,根据第一块的目标匹配块确定第一块的目标运动矢量,并将第一帧中的各个第一块的目标运动矢量作为第一候选矢量。
具体地,电子设备获取目标匹配块在候选矢量集中所对应的运动矢量,该运动矢量为第一块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算第一块与目标匹配块之间的运动矢量,将该运动矢量作为第一块的目标运动矢量。
电子设备确定当前的第一块的目标运动矢量之后,获取下一个块作为第一块,再对新的第一块进行运动估计,得到新的第一块的目标运动矢量。以此类推,电子设备可以获取到第一帧中的各个第一块的目标运动矢量,从而获取到中间帧的目标块的第一候选矢量。
上述视频的运动估计方法,第一帧中的每个第一块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第四候选矢量,还包括了后向运动估计得到的运动矢量即第五候选矢量,增加了第一块的候选矢量集中的运动矢量的数目和类型,可以提高第一块的候选矢量集的可靠性,使得第一块可以确定更准确的目标运动矢量,从而得到更准确的第一候选矢量,中间帧的目标块再基于更准确的第一候选矢量可以更准确地进行双向运动估计,更准确地得到目标块的目标运动矢量,从而提高视频的运动估计的准确性。
需要指出的是,在另一个实施例中,当第一帧是第二帧的下一帧时,将第一帧和第二帧进行前向运动估计,得到第一候选矢量的方式,即将上一个实施例中的第一帧和第二帧进行调换,即可得到第一候选矢量。
在一个实施例中,如图10所示,当第一帧是第二帧的上一帧时,将第一帧和第二帧进行后向运动估计,得到第二候选矢量,包括:
步骤1002,依次获取第二帧中的块作为第二块,针对每一个第二块,获取第二候选矢量集;第二候选矢量集包括第六候选矢量和第七候选矢量,第六候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第七候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量。
第二块指的是从第二帧中获取的用于后向运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取第二帧中的块作为第二块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取第二帧中的块作为第二块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取第二帧中的块作为第二块。获取第二块的顺序并不限定,可以根据用户需要进行设定。
第二候选矢量集指的是第二块候选的运动矢量的集合。第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第六候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第七候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第六候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第七候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量。
当第一帧和第二帧之间进行后向运动估计,且第二块是第二帧中的第一个进行后向运动估计的块时,则第一帧和第二帧之间未存在后向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行后向运动估计得到的运动矢量作为第七候选矢量,或者获取第二帧的邻近两帧之间进行后向运动估计得到的运动矢量作为第七候选矢量,不限于此。
当第一帧和第二帧之间进行后向运动估计,且第二块不是第二帧中的第一个进行后向运动估计的块时,则第一帧和第二帧之间存在后向运动估计得到的运动矢量,可以将第一帧和第二帧之间存在的后向运动估计得到的运动矢量作为第二块的第七候选矢量。
例如,第二块为第二帧中第3个进行后向运动估计的块,则可以获取第二帧中的第1个进行后向运动估计的块的运动矢量,以及第2个进行后向运动估计的块的运动矢量,作为第二块的第七候选矢量。
步骤1004,基于第二候选矢量集中的每个运动矢量,从第一帧中获取与第二块对应的候选匹配块,从各个第二块对应的候选匹配块中确定第二块的目标匹配块。
基于候选矢量集中的每个运动矢量,将第二块进行位移,得到第一帧中与第二块对应的候选匹配块。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将第二帧中的第二块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到第一帧中与第二块对应的候选匹配块。
例如,运动矢量的位移数值是(4,8),位移方向是A方向,则将目标方向向A方向进行位移(4,8),得到第一帧中与第二块对应的候选匹配块。
从各个候选匹配块中确定目标匹配块,包括:确定第二块分别与各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配块作为目标匹配块。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配块作为目标匹配块,目标匹配块与第二块之间的运动矢量为最佳的运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配块作为目标匹配块。在其他实施方式中,还可以选取其他的候选匹配块作为目标匹配块,不限于此。
具体地,电子设备确定第二块和候选匹配块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为该第二块和候选匹配块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定该第二块和候选匹配块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为该第二块和候选匹配块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为该第二块和候选匹配块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第二块和候选匹配块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定第二块和候选匹配块的绝对误差和为S1,则第二块和候选匹配块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定第二块和候选匹配块的绝对误差和为S2,则第二块和候选匹配块的匹配误差为S2+P2。
步骤1006,根据第二块的目标匹配块确定第二块的目标运动矢量,并将第二帧中的各个第二块的目标运动矢量作为第二候选矢量。
具体地,电子设备获取目标匹配块在候选矢量集中所对应的运动矢量,该运动矢量为第二块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算第二块与目标匹配块之间的运动矢量,将该运动矢量作为第二块的目标运动矢量。
电子设备确定当前的第二块的目标运动矢量之后,获取下一个块作为第二块,再对新的第二块进行运动估计,得到新的第二块的目标运动矢量。以此类推,电子设备可以获取到第二帧中的各个第二块的目标运动矢量,从而获取到中间帧的目标块的第二候选矢量。
上述视频的运动估计方法,第二帧中的每个第二块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第六候选矢量,还包括了后向运动估计得到的运动矢量即第七候选矢量,增加了第二块的候选矢量集中的运动矢量的数目和类型,可以提高第二块的候选矢量集的可靠性,使得第二块可以确定更准确的目标运动矢量,从而到更准确的第二候选矢量,中间帧的目标块再基于更准确的第二候选矢量可以更准确地进行双向运动估计,更准确地得到目标块的目标运动矢量,从而提高视频的运动估计的准确性。
需要指出的是,在另一个实施例中,当第一帧是第二帧的下一帧时,将第一帧和第二帧进行后向运动估计,得到第二候选矢量的方式,即将上一个实施例中的第一帧和第二帧进行调换,即可得到第二候选矢量。
在一个实施例中,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,包括:当候选矢量集中的运动矢量是第三候选矢量时,第三候选矢量包括第一子候选矢量和第二子候选矢量,第一子候选矢量和第二子候选矢量方向相反,将目标块以第一子候选矢量匹配至第一帧中的第一候选块,将目标块以第二子候选矢量匹配至第二帧中的第二候选块,将第一候选块和第二候选块作为目标块对应的候选匹配对。
第一子候选矢量和第二子候选矢量方向相反,即其中的一个与前向运动估计的方向一致,另一个与后向运动估计的方向一致。
当第一帧是第二帧的上一帧,且候选矢量集中的运动矢量是第三候选矢量时,第三候选矢量包括第一子候选矢量和第二子候选矢量,第一子候选矢量的方向与后向运动估计的方向一致,第二子候选矢量的方向与前向运动估计的方向一致;将目标块以第一子矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二子矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
当第一帧是第二帧的下一帧,且候选矢量集中的运动矢量是第三候选矢量时,第三候选矢量包括第一子候选矢量和第二子候选矢量,第一子候选矢量方向与前向运动估计的方向一致,第二子候选矢量与后向运动估计的方向一致;将目标块以第一子候选矢量匹配至第一帧中,获取第一帧中的第一候选块;将目标块以第二子候选矢量匹配至第二帧中,获取第二帧中的第二候选块;第一候选块和第二候选块构成候选匹配对。
在本实施例中,当候选矢量集中的运动矢量是第三候选矢量时,目标块分别以第一子候选矢量匹配至第一帧中得到第一候选块,以第二子候选矢量匹配至第二帧中得到第二候选块,可以更准确得到目标块对应的候选匹配对。
图11为另一个实施例中视频的运动估计方法的流程图。如图11所示,视频的运动估计方法包括步骤1102至步骤1114。
步骤1102,获取目标视频的第一帧、第二帧以及预设的第一帧和第二帧之间的中间帧;第一帧和第二帧为相邻的两帧。
第一帧和第二帧为相邻的两帧,第一帧可以是第二帧的上一帧,第一帧也可以是第二帧的下一帧。预设的第一帧和第二帧之间的中间帧是预先设置的第一帧和第二帧之间待插入的图像帧,当获取到中间帧的各个块的目标运动矢量之后,可以生成新的中间帧,并插入第一帧和第二帧之间。
在一种实施方式中,电子设备可以通过摄像头获取目标视频。在另一种实施方式中,电子设备可以接收其他电子设备发送的目标视频。
具体地,电子设备获取用户输入的选取指令,选取指令中包括了选取的第一帧的标识和第二帧的标识,根据选取指令中的第一帧的标识获取目标视频中的第一帧,根据选取指令中的第二帧的标识获取目标视频中的第二帧,以及根据第一帧和第二帧获取预设的中间帧。
步骤1104,将第一帧、第二帧和中间帧分别进行分块。
具体地,电子设备获取分块策略,基于分块策略将第一帧、第二帧和中间帧分别划分为相同的至少两个块。分块策略中包括分块的数量、分块的位置等信息。
例如,电子设备基于分块策略可以将第一帧、第二帧和中间帧分别划分为相同的九宫格;基于分块策略可以将第一帧、第二帧和中间帧分别划分为相同的4个块;基于分块策略可以将第一帧、第二帧和中间帧分别划分为相同的50个块。
步骤1106,对第一帧和第二帧进行单向运动估计,得到单向运动矢量。
可以理解的是,在帧间预测编码中,由于图像帧的邻近帧中的景物存在着一定的相关性,因此可以获取图像帧中的块在邻近帧中的对应块,并得出图像帧中的块与邻近帧中对应块之间的空间位置的相对偏移量,相对偏移量即图像帧中的块运动至邻近帧的运动矢量,得到运动矢量的过程被称为运动估计。
运动估计可以包括单向运动估计和双向运动估计,单向运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第10帧,下一帧是第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第10帧,上一帧是第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程。
单向运动矢量指的是单向运动估计得到的块的运动矢量。当进行前向运动估计时,该单向运动矢量为前向运动矢量;当进行后向运动估计时,该单向运动矢量为后向运动矢量。
步骤1108,在第一帧和第二帧之间将各个单向运动矢量进行映射,并将映射过程中穿过中间帧的块作为参考块,基于参考块确定第一帧和第二帧之间的单向映射矢量。
单向运动矢量包括位移数值,还包括位移方向。将单向运动矢量进行映射,即将单向运动矢量向位移方向进行位移该位移数值。当单向运动矢量是前向运动矢量,且第一帧是第二帧的上一帧时,即将第一帧中的块以前向运动矢量映射至第二帧中。当单向运动矢量是后向运动矢量,且第一帧是第二帧的上一帧时,即将第二帧中的块以后向运动矢量映射至第一帧中。当第一帧是第二帧的下一帧时,将单向运动矢量进行映射的原理也相同。
在将单向运动矢量映射的过程中,会穿过中间帧的块,将中间帧中被穿过的块作为参考块,并基于参考块确定第一帧和第二帧之间的单向映射矢量。
步骤1110,依次获取中间帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括单向映射矢量。
目标块指的是从中间帧中获取的用于运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取中间帧中的块作为目标块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取中间帧中的块作为目标块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取中间帧中的块作为目标块。获取目标块的顺序并不限定,可以根据用户需要进行设定。
候选矢量集指的是目标块候选的运动矢量的集合。候选矢量集中包括单向映射矢量。
可以理解的是,在帧间预测编码中,由于图像帧的邻近帧中的景物存在着一定的相关性,因此可以获取图像帧中的块在邻近帧中的对应块,并得出图像帧中的块与邻近帧中对应块之间的空间位置的相对偏移量,相对偏移量即图像帧中的块运动至邻近帧的运动矢量,得到运动矢量的过程被称为运动估计。
运动估计可以包括单向运动估计和双向运动估计,单向运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第10帧,下一帧是第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第10帧,上一帧是第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程。
在相邻两帧之间预设中间帧,中间帧的块分别在上一帧和下一帧中对称地进行块匹配搜索,找到使上一帧中的块和下一帧中的块最匹配的位移量作为中间帧的块的运动矢量,该过程即双向运动估计。例如,相邻的两帧是第9帧和第10帧,对第9帧和第10帧进行双向运动估计,预设第9帧和第10帧之间的中间帧,中间帧中的块分别在第9帧和第10帧中对称地进行块匹配搜索,找到使第9帧中的块和第10帧中的块最匹配的位移量作为中间帧的块的运动矢量。
步骤1112,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,从各对候选匹配对中确定目标匹配对;候选匹配对包括第一候选块和第二候选块,第一候选块是目标块对应的第一帧中的块,第二候选块是目标块对应的第二帧中的块。
候选匹配对指的是一对与目标块对应的候选匹配块,包括了第一候选块和第二候选块;而第一候选块是第一帧中与目标块对应的块,第二候选块是第二帧中与目标块对应的块。
基于候选矢量集中的每个运动矢量,将目标块分别匹配至第一帧和第二帧中,得到与目标块对应的候选匹配对。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将中间帧中的目标块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到与目标块对应的候选匹配对。
从各对候选匹配对中确定目标匹配对,包括:确定每一对候选匹配对中第一候选块和第二候选块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配对作为目标匹配对。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配对作为目标匹配对,目标匹配中第一候选块和目标块之间的运动矢量,以及第二候选块和目标块之间的运动矢量为目标块最佳的双向运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配对作为目标匹配对。在其他实施方式中,还可以选取其他的候选匹配对作为目标匹配对,不限于此。
具体地,电子设备确定第一候选块和第二候选块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为第一候选块和第二候选块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定第一候选块和第二候选块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动矢量映射得到的单向映射矢量,后向运动矢量映射得到的单向映射矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为第一候选块和第二候选块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为第一候选块和第二候选块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第一候选块和第二候选块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动矢量映射得到的单向映射矢量,对应的惩罚值为P1,确定第一候选块和第二候选块的绝对误差和为S1,则第一候选块和第二候选块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动矢量映射得到的单向映射矢量,对应的惩罚值为P2,确定第一候选块和第二候选块的绝对误差和为S2,则第一候选块和第二候选块的匹配误差为S2+P2。
步骤1114,根据目标匹配对确定目标块的目标运动矢量。
具体地,电子设备获取目标匹配对在候选矢量集中所对应的运动矢量,该运动矢量为目标块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算目标块与第一候选块之间的运动矢量,以及目标块与第二候选块之间的运动矢量,将计算得到的两个运动矢量作为目标块的目标运动矢量。
电子设备确定当前的目标块的目标运动矢量之后,获取下一个块作为目标块,再对新的目标块进行运动估计,得到新的目标块的目标运动矢量。以此类推,电子设备可以获取到中间帧中的各个目标块的目标运动矢量。
上述视频的运动估计方法,中间帧中的每个目标块的候选矢量集包括单向映射矢量,而单向映射矢量是单向运动估计得到的单向运动矢量与双向运动估计时所预设的中间帧进行处理得到的矢量,将单向运动估计和双向运动估计进行结合,不仅包括了单向运动估计的信息,还包括了双向运动估计的信息,提高了候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
目标块的候选矢量集中包括了单向映射矢量,单向映射矢量包括了单向运动矢量的信息,而单向运动矢量的准确性更高,则单向映射矢量的准确性也更高,将其作为候选矢量集中的运动矢量,可以增加目标运动矢量准确的可能性,使得中间帧的各个块可以更快速获取到准确的运动矢量,既提高了视频的运动估计的准确性,又提高了视频的运动估计的效率。
在一个实施例中,针对每一个目标块,获取候选矢量集,包括:针对每一个目标块,获取目标块所在的中间帧的目标区域,以及第一帧的预设的帧数量范围内,除中间帧之外所包括的每一帧中与目标区域对应的重合区域;获取目标区域所包括的运动矢量,以及重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
目标区域指的是中间帧中用于获取目标块的候选矢量集中的运动矢量的区域。目标区域可以包括目标块在内,也可以不包括目标块在内。目标区域可以根据用户需要进行设定。
在本实施例中,从目标区域以及重合区域中获取运动矢量作为候选矢量集,可以获取用户所需的范围内的运动矢量作为候选矢量集,避免了将第一帧以及其他帧的所有运动矢量均作为候选矢量集,可以提高目标块确定目标运动矢量的效率,从而提高视频的运动估计的效率。
在一个实施例中,如图12所示,在第一帧和第二帧之间将各个单向运动矢量进行映射,并将映射过程中穿过中间帧的块作为参考块,基于参考块确定第一帧和第二帧之间的单向映射矢量,包括:
步骤1202,针对每一个单向运动矢量,获取单向运动矢量对应的第一帧中的第一块,以及第二帧中的第二块,在第一块和第二块之间将各个单向运动矢量进行映射,并将映射过程中穿过中间帧的块作为参考块。
单向运动矢量可以是前向运动矢量和后向运动矢量中的一种。单向运动矢量表示的是第一帧中的第一块与第二帧中的第二块之间的位移矢量。
例如,当前帧的块A的前向运动矢量是(4,8),将块A位移(4,8)映射至下一帧中的块B,则该前向运动矢量对应的第一帧中的第一块是A,第二帧中的第二块是B。
又如,当前帧的块C的后向运动矢量是(3,6),将块C位移(3,6)映射至上一帧中的块D,则该后向运动矢量对应的第一帧中的第一块是C,第二帧中的第二块是D。
步骤1204,将参考块映射至第一块得到第一运动矢量,将参考块映射至第二块得到第二运动矢量,并将第一运动矢量和第二运动矢量作为单向映射矢量;第一运动矢量和第二运动矢量之间的方向相反。
第一运动矢量指的是参考块与第一块之间的位移矢量。第二运动矢量指的是参考块与第二块之间的位移矢量。
在另一种实施方式中,电子设备获取参考块在中间帧中的位置,获取第一块在第一帧中的位置,将参考块的位置和第一帧的位置进行差值计算,可以得到第一运动矢量的位移数值,再获取中间帧与第一帧的位置关系,可以获取到第一运动矢量的位移方向。
同样地,电子设备获取参考块在中间帧中的位置,获取第二块在第二帧中的位置,将参考块的位置和第二帧的位置进行差值计算,可以得到第二运动矢量的位移数值,再获取中间帧与第二帧的位置关系,可以获取到第二运动矢量的位移方向。
基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,包括:
步骤1206,当候选矢量集中的运动矢量是单向映射矢量时,将目标块以第一运动矢量匹配至第一帧中的第一候选块,将目标块以第二运动矢量匹配至第二帧中的第二候选块;第一候选块和第二候选块构成目标块对应的候选匹配对。
候选矢量集中的单向映射矢量,包括了第一运动矢量和第二运动矢量,第一运动矢量是中间帧的参考块到第一帧的第一块之间的位移矢量,第二运动矢量是中间帧的参考块到第二帧的第二块之间的位移矢量。因此,针对单向映射矢量,目标块以第一运动矢量匹配至第一帧中的第一候选块,以第二运动矢量匹配至第二帧中的第二候选块,可以获取到目标块的候选匹配对。
在本实施例中,针对每一个单向运动矢量,可以将单向运动矢量进行映射得到单向映射矢量,目标块再以单向映射矢量分别从第一帧和第二帧中获取到候选匹配对,可以更准确地获取目标块的候选匹配对。
在一个实施例中,如图13所示,第一帧是所述第二帧的上一帧;对第一帧和第二帧进行单向运动估计,得到单向运动估计矢量,包括:
步骤1302,对第一帧和第二帧进行前向运动估计,得到前向运动矢量。
步骤1304,对第一帧和第二帧进行后向运动估计,得到后向运动矢量。
在第一块和第二块之间将各个单向运动矢量进行映射,并将映射过程中穿过中间帧的块作为参考块,包括:
步骤1306,在第一块和第二块之间将各个前向运动矢量进行映射,并将映射过程中穿过中间帧的块作为第一参考块。
在一个实施例中,如图14所示,1402是第一帧,1406是第二帧,第一帧1402和第二帧1406是相邻的两帧,且第一帧1402是第二帧1406的上一帧,1404是预设的第一帧和第二帧之间的中间帧。获取第一帧1402中的第一块1408的前向运动矢量,将第一块1408以该前向运动矢量映射至第二帧中的第二块1412,在映射过程中穿过中间帧1404的第一参考块1410。
步骤1308,在第一块和第二块之间将各个后向运动矢量进行映射,并将映射过程中穿过中间帧的块作为第二参考块。
在一个实施例中,如图15所示,1502是第一帧,1506是第二帧,第一帧1502和第二帧1506是相邻的两帧,且第一帧1502是第二帧1506的上一帧,1504是预设的第一帧和第二帧之间的中间帧。获取第二帧1506中的第二块1512的后向运动矢量,将第二块1512以该后向运动矢量映射至第一帧中的第一块1508,在映射过程中穿过中间帧1504的第二参考块1510。
将参考块映射至第一块得到第一运动矢量,将参考块映射至第二块得到第二运动矢量,并将第一运动矢量和第二运动矢量作为单向映射矢量,包括:
步骤1310,将第一参考块映射至第一块得到第一子运动矢量,将第一参考块映射至第二块得到第二子运动矢量,并将第一子运动矢量和第二子运动矢量作为前向映射矢量。
第一参考块是前向运动矢量进行映射时所穿过的中间帧的块,即将第一帧中的块以前向运动矢量映射至第二帧中时所穿过的中间帧的块。
第一子运动矢量指的是第一参考块与第一块之间的位移矢量。第二子运动矢量指的是第二参考块与第二块之间的位移矢量。
步骤1312,将第二参考块映射至第一块得到第三子运动矢量,将第二参考块映射至第二块得到第四子运动矢量,并将第三子运动矢量和第四子运动矢量作为后向映射矢量。
第二参考块是后向运动矢量进行映射时所穿过的中间帧的块,即将第二帧中的块以后向运动矢量映射至第一帧中时所穿过的中间帧的块。
第三子运动矢量指的是第二参考块与第一块之间的位移矢量。第四子运动矢量指的是第二参考块与第二块之间的位移矢量。
当候选矢量集中的运动矢量是单向映射矢量时,将目标块以第一运动矢量匹配至第一帧中的第一候选块,将目标块以第二运动矢量匹配至第二帧中的第二候选块,将第一候选块和第二候选块作为目标块对应的候选匹配对,包括:
步骤1314,当候选矢量集中的运动矢量是前向映射矢量时,将目标块以第一子运动矢量匹配至第一帧中的第一子候选块,将目标块以第二子运动矢量匹配至第二帧中的第二子候选块,将第一子候选块和第二子候选块作为目标块对应的候选匹配对。
步骤1316,当候选矢量集中的运动矢量是后向映射矢量时,将目标块以第三子运动矢量匹配至第一帧中的第三子候选块,将目标块以第四子运动矢量匹配至第二帧中的第四子候选块,将第三子候选块和第四子候选块作为目标块对应的候选匹配对。
在本实施例中,第一帧是第二帧的上一帧,对第一帧和所述第二帧进行前向运动估计,得到前向运动矢量;对所述第一帧和所述第二帧进行后向运动估计,得到后向运动矢量;再分别将前向运动矢量和后向运动矢量进行映射,得到前向映射矢量和后向映射矢量,将前向映射矢量和后向映射矢量作为目标块的候选矢量集,将单向运动估计的信息和双向运动估计的信息进行结合,提高了候选矢量集的可靠性,使得目标块可以确定更准确的目标匹配对。
需要指出的是,在另一个实施例中,当第一帧是第二帧的下一帧时,获取前向映射矢量和后向映射矢量,以及确定目标快的候选匹配对的原理与上个实施例相同。
在一个实施例中,如图16所示,电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行前向运动估计,得到前向运动矢量,并将前向运动矢量进行映射,得到前向映射矢量。电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行后向运动估计,得到后向运动矢量,并将后向运动矢量进行映射,得到后向映射矢量。电子设备获取相邻两帧图像帧和候选矢量集,对相邻两帧图像帧进行双向运动估计,得到双向运动矢量。其中,相邻两帧图像帧进行双向运动估计时的候选矢量集可以包括前向映射矢量和后向映射矢量。
在一个实施例中,如图17所示,当第一帧是第二帧的上一帧时,对第一帧和第二帧进行前向运动估计,得到前向运动矢量,包括:
步骤1702,依次获取第一帧中的块作为第一目标块,针对每一个第一目标块,获取第一候选矢量集;第一候选矢量集包括第一候选矢量和第二候选矢量,第一候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第二候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量。
第一目标块指的是从第一帧中获取的用于前向运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取第一帧中的块作为第一目标块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取第一帧中的块作为第一目标块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取第一帧中的块作为第一目标块。获取第一目标块的顺序并不限定,可以根据用户需要进行设定。
第一候选矢量集指的是第一目标块候选的运动矢量的集合。第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第一候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第二候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第一候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第二候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量。
当第一帧和第二帧之间进行前向运动估计,且第一目标块是第一帧中的第一个进行前向运动估计的块时,则第一帧和第二帧之间未存在前向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行前向运动估计得到的运动矢量作为第一候选矢量,或者获取第二帧的邻近两帧之间进行前向运动估计得到的运动矢量作为第一候选矢量,不限于此。
当第一帧和第二帧之间进行前向运动估计,且第一目标块不是第一帧中的第一个进行前向运动估计的块时,则第一帧和第二帧之间存在前向运动估计得到的运动矢量,可以将第一帧和第二帧之间存在的前向运动估计得到的运动矢量作为第一目标块的第一候选矢量。
例如,第一目标块为第一帧中第3个进行前向运动估计的块,则可以获取第一帧中的第1个进行前向运动估计的块的运动矢量,以及第2个进行前向运动估计的块的运动矢量,作为第一目标块的第一候选矢量。
步骤1704,基于第一候选矢量集中的每个运动矢量,从第二帧中获取与第一目标块对应的候选匹配块,从各个第一目标块对应的候选匹配块中确定第一目标块的目标匹配块。
基于候选矢量集中的每个运动矢量,将第一目标块进行位移,得到第二帧中与第一目标块对应的候选匹配块。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将第一帧中的第一目标块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到第二帧中与第一目标块对应的候选匹配块。
例如,运动矢量的位移数值是(4,8),位移方向是A方向,则将目标方向向A方向进行位移(4,8),得到第二帧中与第一目标块对应的候选匹配块。
从各个候选匹配块中确定目标匹配块,包括:确定第一目标块分别与各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配块作为目标匹配块。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配块作为目标匹配块,目标匹配块与第一目标块之间的运动矢量为最佳的运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配块作为目标匹配块。在其他实施方式中,还可以选取其他的候选匹配块作为目标匹配块,不限于此。
具体地,电子设备确定第一目标块和候选匹配块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为该第一目标块和候选匹配块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定该第一目标块和候选匹配块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为该第一目标块和候选匹配块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为该第一目标块和候选匹配块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第一目标块和候选匹配块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定第一目标块和候选匹配块的绝对误差和为S1,则第一目标块和候选匹配块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定第一目标块和候选匹配块的绝对误差和为S2,则第一目标块和候选匹配块的匹配误差为S2+P2。
步骤1706,根据第一目标块的目标匹配块确定第一目标块的目标运动矢量,并将第一帧中的各个第一目标块的目标运动矢量作为前向运动矢量。
具体地,电子设备获取目标匹配块在候选矢量集中所对应的运动矢量,该运动矢量为第一目标块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算第一目标块与目标匹配块之间的运动矢量,将该运动矢量作为第一目标块的目标运动矢量。
电子设备确定当前的第一目标块的目标运动矢量之后,获取下一个块作为第一目标块,再对新的第一目标块进行运动估计,得到新的第一目标块的目标运动矢量。以此类推,电子设备可以获取到第一帧中的各个第一目标块的目标运动矢量,从而获取到中间帧的目标块的第一候选矢量。
上述视频的运动估计方法,第一帧中的每个第一目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,还包括了后向运动估计得到的运动矢量即第二候选矢量,增加了第一目标块的候选矢量集中的运动矢量的数目和类型,可以提高第一目标块的候选矢量集的可靠性,使得第一目标块可以确定更准确的目标运动矢量,从而得到第一帧的更准确的前向运动矢量。
需要指出的是,在另一个实施例中,当第一帧是第二帧的下一帧时,将第一帧和第二帧进行前向运动估计,得到前向运动矢量的方式,即将上一个实施例中的第一帧和第二帧进行调换,即可得到前向运动矢量。
在一个实施例中,如图18,当第一帧是第二帧的上一帧时,对第一帧和第二帧进行后向运动估计,得到后向运动矢量,包括:
步骤1802,依次获取第二帧中的块作为第二目标块,针对每一个第二目标块,获取第二候选矢量集;第二候选矢量集包括第三候选矢量和第四候选矢量,第三候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第四候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量。
第二目标块指的是从第二帧中获取的用于后向运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取第二帧中的块作为第二目标块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取第二帧中的块作为第二目标块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取第二帧中的块作为第二目标块。获取第二目标块的顺序并不限定,可以根据用户需要进行设定。
第二候选矢量集指的是第二目标块候选的运动矢量的集合。第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第三候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第四候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第三候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第四候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量。
当第一帧和第二帧之间进行后向运动估计,且第二目标块是第二帧中的第一个进行后向运动估计的块时,则第一帧和第二帧之间未存在后向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行后向运动估计得到的运动矢量作为第四候选矢量,或者获取第二帧的邻近两帧之间进行前向运动估计得到的运动矢量作为第四候选矢量,不限于此。
当第一帧和第二帧之间进行后向运动估计,且第二目标块不是第二帧中的第一个进行后向运动估计的块时,则第一帧和第二帧之间存在后向运动估计得到的运动矢量,可以将第一帧和第二帧之间存在的后向运动估计得到的运动矢量作为第二目标块的第四候选矢量。
例如,第二目标块为第二帧中第3个进行后向运动估计的块,则可以获取第二帧中的第1个进行后向运动估计的块的运动矢量,以及第2个进行后向运动估计的块的运动矢量,作为第二目标块的第四候选矢量。
步骤1804,基于第二候选矢量集中的每个运动矢量,从第一帧中获取与第二目标块对应的候选匹配块,从各个第二目标块对应的候选匹配块中确定第二目标块的目标匹配块。
基于候选矢量集中的每个运动矢量,将第二目标块进行位移,得到第一帧中与第二目标块对应的候选匹配块。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将第二帧中的第二目标块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到第一帧中与第二目标块对应的候选匹配块。
例如,运动矢量的位移数值是(4,8),位移方向是A方向,则将目标方向向A方向进行位移(4,8),得到第一帧中与第二目标块对应的候选匹配块。
从各个候选匹配块中确定目标匹配块,包括:确定第二目标块分别与各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配块作为目标匹配块。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配块作为目标匹配块,目标匹配块与第二目标块之间的运动矢量为最佳的运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配块作为目标匹配块。在其他实施方式中,还可以选取其他的候选匹配块作为目标匹配块,不限于此。
具体地,电子设备确定第二目标块和候选匹配块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为该第二目标块和候选匹配块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定该第二目标块和候选匹配块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为该第二目标块和候选匹配块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为该第二目标块和候选匹配块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第二目标块和候选匹配块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定第二目标块和候选匹配块的绝对误差和为S1,则第二目标块和候选匹配块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定第二目标块和候选匹配块的绝对误差和为S2,则第二目标块和候选匹配块的匹配误差为S2+P2。
步骤1806,根据第二目标块的目标匹配块确定第二目标块的目标运动矢量,并将第二帧中的各个第二目标块的目标运动矢量作为后向运动矢量。
具体地,电子设备获取目标匹配块在候选矢量集中所对应的运动矢量,该运动矢量为第二目标块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算第二目标块与目标匹配块之间的运动矢量,将该运动矢量作为第二目标块的目标运动矢量。
电子设备确定当前的第二目标块的目标运动矢量之后,获取下一个块作为第二目标块,再对新的第二目标块进行运动估计,得到新的第二目标块的目标运动矢量。以此类推,电子设备可以获取到第二帧中的各个第二目标块的目标运动矢量,从而获取到中间帧的目标块的第一候选矢量。
上述视频的运动估计方法,第二帧中的每个第二目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第三候选矢量,还包括了后向运动估计得到的运动矢量即第四候选矢量,增加了第二目标块的候选矢量集中的运动矢量的数目和类型,可以提高第二目标块的候选矢量集的可靠性,使得第二目标块可以确定更准确的目标运动矢量,从而得到第二帧的更准确的前向运动矢量。
需要指出的是,在另一个实施例中,当第一帧是第二帧的下一帧时,将第一帧和第二帧进行后向运动估计,得到后向运动矢量的方式,即将上一个实施例中的第一帧和第二帧进行调换,即可得到后向运动矢量。
在一个实施例中,如图19所示,电子设备执行步骤1902,获取第一帧和第二帧;第一帧和第二帧是相邻的两帧。电子设备执行步骤1904,将第一帧和第二帧进行前向运动估计,得到前向运动矢量场1906。前向运动矢量场指的是第一帧和第二帧之间进行前向运动估计所得到的各个前向运动矢量的集合。电子设备还可以将得到的前向运动矢量场1906作为候选矢量集,重新执行步骤1904,得到新的前向运动矢量场1906。电子设备执行步骤1908,将前向运动矢量场中的前向运动矢量进行映射,得到前向映射矢量场1910。前向映射矢量场指的是前向运动矢量场中的各个前向运动矢量进行映射得到的各个前向映射矢量的集合。
电子设备执行步骤1912,将第一帧和第二帧进行后向运动估计,得到后向运动矢量场1914。后向运动矢量场指的是第一帧和第二帧之间进行后向运动估计所得到的各个后向运动矢量的集合。电子设备还可以将得到的后向运动矢量场1914作为候选矢量集,重新执行步骤1912,得到新的后向运动矢量场1914。电子设备执行步骤1916,将后向运动矢量场中的后向运动矢量进行映射,得到后向映射矢量场1918。后向映射矢量场指的是后向运动矢量场中的各个后向运动矢量进行映射得到的各个后向映射矢量的集合。
电子设备执行步骤1904至得到前向映射矢量场1910的过程,以及执行步骤1912至得到后向映射矢量场1918的过程,是并行进行的。
电子设备执行步骤1920,将第一帧和第二帧进行双向运动估计,得到双向运动矢量场1922。双向运动估计的候选矢量集包括前向映射矢量场1910和后向映射矢量场1918。电子设备还可以将得到的双向运动矢量场1922作为候选矢量集,重新执行步骤1920,得到新的双向运动矢量场1922。
在另一个实施例中,如图20所示,电子设备执行步骤2002,获取第一帧和第二帧;第一帧和第二帧是相邻的两帧。电子设备执行步骤2004,将第一帧和第二帧进行前向运动估计,得到前向运动矢量场2006。前向运动矢量场指的是第一帧和第二帧之间进行前向运动估计所得到的各个前向运动矢量的集合。电子设备还可以将得到的前向运动矢量场2006作为候选矢量集,重新执行步骤2004,得到新的前向运动矢量场2006。
电子设备执行步骤2008,将第一帧和第二帧进行后向运动估计,得到后向运动矢量场2010。后向运动矢量场指的是第一帧和第二帧之间进行后向运动估计所得到的各个后向运动矢量的集合。电子设备还可以将得到的后向运动矢量场2010作为候选矢量集,重新执行步骤2008,得到新的后向运动矢量场2010。
电子设备执行步骤2012,将前向运动矢量场2006中的前向运动矢量进行映射,得到前向映射矢量场2014。前向映射矢量场指的是前向运动矢量场中的各个前向运动矢量进行映射得到的各个前向映射矢量的集合。
电子设备执行步骤2016,将后向运动矢量场中的后向运动矢量进行映射,得到后向映射矢量场2018。后向映射矢量场指的是后向运动矢量场中的各个后向运动矢量进行映射得到的各个后向映射矢量的集合。
电子设备执行前向运动估计和后向运动估计的过程可以是串行的,即先执行前向运动估计,再执行后向运动估计。
电子设备执行步骤2020,将第一帧和第二帧进行双向运动估计,得到双向运动矢量场2022。双向运动估计的候选矢量集包括前向映射矢量场2010和后向映射矢量场2018。电子设备还可以将得到的双向运动矢量场2022作为候选矢量集,重新执行步骤2020,得到新的双向运动矢量场2022。
在另一个实施例中,如图21所示,电子设备执行步骤2102,获取第一帧和第二帧;第一帧和第二帧是相邻的两帧。电子设备执行步骤2104,将第一帧和第二帧进行后向运动估计,得到后向运动矢量场2106。后向运动矢量场指的是第一帧和第二帧之间进行后向运动估计所得到的各个后向运动矢量的集合。电子设备还可以将得到的后向运动矢量场2106作为候选矢量集,重新执行步骤2104,得到新的后向运动矢量场2106。
电子设备执行步骤2108,将第一帧和第二帧进行前向运动估计,得到前向运动矢量场2110。前向运动矢量场指的是第一帧和第二帧之间进行前向运动估计所得到的各个前向运动矢量的集合。电子设备还可以将得到的前向运动矢量场2110作为候选矢量集,重新执行步骤2108,得到新的前向运动矢量场2110。
电子设备执行步骤2112,将后向运动矢量场2106中的后向运动矢量进行映射,得到后向映射矢量场2114。后向映射矢量场指的是后向运动矢量场中的各个后向运动矢量进行映射得到的各个后向映射矢量的集合。
电子设备执行步骤2116,将前向运动矢量场中的前向运动矢量进行映射,得到前向映射矢量场2118。前向映射矢量场指的是前向运动矢量场中的各个前向运动矢量进行映射得到的各个前向映射矢量的集合。
电子设备执行前向运动估计和后向运动估计的过程可以是串行的,即先执行后向运动估计,再执行前向运动估计。
电子设备执行步骤2121,将第一帧和第二帧进行双向运动估计,得到双向运动矢量场2122。双向运动估计的候选矢量集包括前向映射矢量场2110和后向映射矢量场2118。电子设备还可以将得到的双向运动矢量场2122作为候选矢量集,重新执行步骤2121,得到新的双向运动矢量场2122。
在一个实施例中,候选矢量集还包括双向运动矢量,双向运动矢量的获取方式,包括:获取第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的双向运动矢量。
在一个实施例中,获取第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的双向运动矢量,包括:将第一帧和第二帧进行双向运动估计,得到第一帧和第二帧之间的双向运动矢量。
候选矢量集还可以包括零矢量、全局运动矢量、局部运动矢量、加随机值的空间候选运动矢量,等等。
在一个实施例中,包括步骤S1至S10:
步骤S1:获取目标视频的第一帧、第二帧以及预设的第一帧和第二帧之间的中间帧;第一帧是第二帧的上一帧。
步骤S2:将第一帧、第二帧和中间帧分别进行分块。
步骤S3:对第一帧和第二帧进行前向运动估计,得到前向运动矢量。
步骤S4:对第一帧和第二帧进行后向运动估计,得到后向运动矢量。
步骤S5:将第一帧和第二帧进行双向运动估计,得到第一帧和第二帧之间的双向运动矢量。
步骤S6:在第一帧和第二帧之间将各个前向运动矢量进行映射,并将映射过程中穿过中间帧的块作为第一参考块,基于第一参考块确定第一帧和第二帧之间的单向映射矢量。
步骤S7:在第一帧和第二帧之间将各个后向运动矢量进行映射,并将映射过程中穿过中间帧的块作为第二参考块,基于第二参考块确定第一帧和第二帧之间的后向映射矢量。
步骤S8:依次获取中间帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括前向映射矢量、后向映射矢量和双向运动矢量。
步骤S9:基于候选矢量集中的每个运动矢量,从第一帧和所述第二帧中获取与目标块对应的候选匹配对,从各对候选匹配对中确定目标匹配对,从各对候选匹配对中确定目标匹配对;候选匹配对包括第一候选块和第二候选块,第一候选块是目标块对应的第一帧中的块,第二候选块是目标块对应的第二帧中的块。
步骤S10:根据目标匹配对确定目标块的目标运动矢量。
其中,步骤S3采用上述的前向运动估计方式,得到前向运动矢量;步骤S4采用上述的后向运动估计方式,得到后向运动矢量;步骤S5采用上述的双向运动估计方式,得到双向运动矢量。
在一种实施方式中,电子设备将第一帧和第二帧并行进行前向运动估计、后向运动估计和双向运动估计,分别得到前向运动矢量、后向运动矢量和双向运动矢量,将前向运动矢量和后向运动矢量进行映射,分别得到前向映射矢量和后向映射矢量,将前向映射矢量、后向映射矢量和双向运动矢量作为候选矢量集,再次将第一帧和第二帧进行双向运动估计,得到目标块的目标运动矢量,将第二次进行双向运动估计得到的目标运动矢量作为最终的运动矢量,可以更准确对视频进行双向运动估计。
在另一中实施方式中,电子设备将第一帧和第二帧串行进行前向运动估计、后向运动估计和双向运动估计,即先进行前向运动估计得到前向运动矢量,再进行后向运动估计得到后向运动矢量,接着进行双向运动估计得到双向运动矢量;将前向运动矢量和后向运动矢量进行映射,分别得到前向映射矢量和后向映射矢量,将前向映射矢量、后向映射矢量和双向运动矢量作为候选矢量集,再次将第一帧和第二帧进行双向运动估计,得到目标块的目标运动矢量,将第二次进行双向运动估计得到的目标运动矢量作为最终的运动矢量,可以更准确对视频进行双向运动估计。
在一个实施例中,如图3所示是目标块所在的中间帧的目标区域,C的当前获取的中间帧中的目标块,S1、S2、S3和S4分别是中间帧中已经完成双向运动估计的块,可以将S1至S4称为空间候选矢量块,T1、T2、T3、T4、T5、T6和T7分别是中间帧中未进行双向运动估计的块,可以将T1至T7称为时间候选矢量块。
当目标块C进行双向运动估计时,S1至S4已经完成双向运动估计,可以获取S1至S4的双向运动估计得到的运动矢量,该运动矢量属于候选矢量集中的双向运动矢量。而T1至T7未进行双向运动估计,因此T1至T7不存在双向运动估计得到的运动矢量。候选矢量集中的双向运动矢量还可以包括第一帧的预设的帧数量范围内,除第一帧和第二帧之外的相邻两帧之间的中间帧的双向运动矢量。
而目标块C的前向映射矢量可以获取目标区域中的各个块的前向映射矢量,也可以获取重合区域中的各个块的前向映射矢量。
而目标块C的后向映射矢量可以获取目标区域中的各个块的后向映射矢量,也可以获取重合区域中的各个块的后向映射矢量。
例如,目标块C的候选矢量集包括:S1至S4:(目标区域)双向运动估计得到的双向运动矢量、T1至T4:(目标区域和/或重合区域)前向映射矢量、T5至T7:(目标区域和/或重合区域)后向映射矢量、C:(目标区域和/或重合区域)前向映射矢量、后向映射矢量、零运动矢量、全局运动矢量、局部运动矢量、S1至S4:(目标区域和/或重合区域)双向运动估计得到的双向运动矢量+随机值。
又如,目标块C的候选矢量集包括:S1:(目标区域和/或重合区域)双向运动估计得到的双向运动矢量、S3:(目标区域和/或重合区域)双向运动估计得到的双向运动矢量、T1:(重合区域)双向运动估计得到的双向运动矢量、T3:(重合区域)双向运动估计得到的双向运动矢量、S2:(目标区域和/或重合区域)前向映射矢量、T2:(重合区域)前向映射矢量、S4:(目标区域和/或重合区域)后向映射矢量、T4:(重合区域)后向映射矢量、C:(目标区域和/或重合区域)前向映射矢量、后向映射矢量、零运动矢量、全局运动矢量、局部运动矢量、S1至S4:(目标区域)双向运动估计得到的运动矢量+随机值。
又如,目标块C的候选矢量集包括:S1至S4:(目标区域)双向运动估计得到的运动矢量、前向映射矢量、后向映射矢量、T1至T7:(重合区域)双向运动估计得到的运动矢量、前向映射矢量、后向映射矢量、C:(目标区域和/或重合区域)前向映射矢量、后向映射矢量、零运动矢量、全局运动矢量、局部运动矢量、S1至S4:(目标区域)双向运动估计得到的运动矢量+随机值。
在一个实施例中,如图22,将第一帧和第二帧进行双向运动估计,得到第一帧和第二帧之间的双向运动矢量,包括:
步骤2202,依次获取中间帧中的块作为中间块,针对每一个中间块,获取中间块的候选矢量集;中间块的候选矢量集包括第五候选矢量、第六候选矢量和第七候选矢量,第五候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第六候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;第七候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量。
中间块指的是从中间帧中获取的用于双向运动估计的块。在一种实施方式中,电子设备可以按照从左到右,从上到下的顺序依次获取中间帧中的块作为中间块。在另一种实施方式中,电子设备也可以按照从右到左,从下到上的顺序依次获取中间帧中的块作为中间块。在其他的实施方式中,电子设备还可以按照从上到下,从右到左的顺序依次获取中间帧中的块作为中间块。获取中间块的顺序并不限定,可以根据用户需要进行设定。
候选矢量集指的是中间块候选的运动矢量的集合。候选矢量集中包括第五候选矢量、第六候选矢量和第七候选矢量。
可以理解的是,在帧间预测编码中,由于图像帧的邻近帧中的景物存在着一定的相关性,因此可以获取图像帧中的块在邻近帧中的对应块,并得出图像帧中的块与邻近帧中对应块之间的空间位置的相对偏移量,相对偏移量即图像帧中的块运动至邻近帧的运动矢量,得到运动矢量的过程被称为运动估计。
运动估计可以包括单向运动估计和双向运动估计,单向运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第10帧,下一帧是第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第10帧,上一帧是第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程。
在相邻两帧之间预设中间帧,中间帧的块分别在上一帧和下一帧中对称地进行块匹配搜索,找到使上一帧中的块和下一帧中的块最匹配的位移量作为中间帧的块的运动矢量,该过程即双向运动估计。例如,相邻的两帧是第9帧和第10帧,对第9帧和第10帧进行双向运动估计,预设第9帧和第10帧之间的中间帧,中间帧中的块分别在第9帧和第10帧中对称地进行块匹配搜索,找到使第9帧中的块和第10帧中的块最匹配的位移量作为中间帧的块的运动矢量。
第一帧的预设的帧数量范围可以包括第一帧和第二帧在内,也可以不包括第一帧或者不包括第二帧在内。
例如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第8帧至第11帧时,则第五候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行前向运动估计得到的运动矢量,如第8帧和第9帧之间进行前向运动估计得到的运动矢量,第9帧和第10帧之间进行前向运动估计得到的运动矢量;第六候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行后向运动估计得到的运动矢量,如第9帧和第10帧之间进行后向运动估计得到的运动矢量;第七候选矢量可以是第8帧至第11帧范围内相邻两帧之间进行双向运动估计得到的运动矢量,如第9帧和第10帧之间进行双向运动估计得到的运动矢量。
又如,第一帧是第10帧,第二帧是第11帧,当第一帧的预设的帧数量范围是第9帧至第10帧,则第五候选矢量可以是第9帧和第10帧之间进行前向运动估计得到的运动矢量;第六候选矢量可以是第9帧和第10帧之间进行后向运动估计得到的运动矢量;第七候选矢量可以是第9帧和第10帧之间进行双向运动估计得到的运动矢量。
当第一帧和第二帧之间进行双向运动估计,且中间块是中间帧中的第一个进行双向运动估计的块时,则中间帧上未存在双向运动估计得到的运动矢量,可以获取第一帧的邻近两帧进行双向运动估计得到的运动矢量作为第七候选矢量,或者获取第二帧的邻近两帧之间进行双向运动估计得到的运动矢量作为第七候选矢量,不限于此。
当第一帧和第二帧之间进行双向运动估计,且中间块不是中间帧中的第一个进行双向运动估计的块时,则中间帧上存在双向运动估计得到的运动矢量,可以将中间帧上存在的运动矢量作为中间块的第七候选矢量。
例如,中间块为中间帧中第5个进行双向运动估计的块,则可以获取中间帧中的第1个进行双向运动估计的块的运动矢量,至第4个进行双向运动估计的块的运动矢量,作为中间块的第七候选矢量。
步骤2204,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与中间块对应的候选匹配对,从各个中间块对应的候选匹配对中确定目的匹配对;中间块对应的候选匹配对包括第三候选块和第四候选块,第三候选块是第一帧中与中间块对应的块,第四候选块是第二帧中与中间块对应的块。
候选匹配对指的是一对与中间块对应的候选匹配块,包括了第三候选块和第四候选块;而第三候选块是第一帧中与中间块对应的块,第四候选块是第二帧中与中间块对应的块。
基于候选矢量集中的每个运动矢量,将中间块分别匹配至第一帧和第二帧中,得到与中间块对应的候选匹配对。
可以理解的是,运动矢量包括位移数值,还包括位移方向。电子设备将中间帧中的中间块进行位移时,基于运动矢量的位移方向进行位移该位移数值,可以得到与中间块对应的候选匹配对。
在一个实施例中,当第一帧是第二帧的上一帧时,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与中间块对应的候选匹配对,包括:
当候选矢量集中的运动矢量是第五候选矢量时,将第五候选矢量的相反方向对应的运动矢量作为第五中间矢量;将中间块以第五中间矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第五候选矢量匹配至第二帧中,获取第二帧中的第四候选块;第三候选块和第四候选块构成候选匹配对。
第五中间矢量的方向与第五候选矢量的方向相反,而第五候选矢量是前向运动估计得到的运动矢量,则第五中间矢量的方向与后向运动估计的方向一致。
当第一帧是第二帧的上一帧时,则中间块匹配至第一帧的方向与第五中间矢量的方向一致,中间块匹配至第二帧的方向与第五候选矢量的方向一致。因此,将中间块以第五中间矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第五候选矢量匹配至第二帧中,获取第二帧中的第四候选块。
当候选矢量集中的运动矢量是第六候选矢量时,将第六候选矢量的相反方向对应的运动矢量作为第六中间矢量;将中间块以第六候选矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第六中间矢量匹配至第二帧中,获取第二帧中的第四候选块;第三候选块和第四候选块构成候选匹配对。
第六中间矢量的方向与第六候选矢量的方向相反,而第六候选矢量是后向运动估计得到的运动矢量,则第六中间矢量的方向与前向运动估计的方向一致。
当第一帧是第二帧的上一帧时,则中间块匹配至第一帧的方向与第六候选矢量的方向一致,中间块匹配至第二帧的方向与第六中间矢量的方向一致。因此,将中间块以第六候选矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第六中间矢量匹配至第二帧中,获取第二帧中的第四候选块。
当候选矢量集中的运动矢量是第七候选矢量时,第七候选矢量包括第一候选子矢量和第二子候选矢量,第一子候选矢量的方向与后向运动估计的方向一致,第二子候选矢量的方向与前向运动估计的方向一致;将中间块以第一子候选矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第二子候选矢量匹配至第二帧中,获取第二帧中的第四候选块;第三候选块和第四候选块构成候选匹配对。
在另一个实施例中,当第一帧是第二帧的下一帧时,基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与中间块对应的候选匹配对,包括:
当候选矢量集中的运动矢量是第五候选矢量时,将第五候选矢量的相反方向对应的运动矢量作为第五中间矢量;将中间块以第五候选矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第五中间矢量匹配至第二帧中,获取第二帧中的第四候选块;第三候选块和第四候选块构成候选匹配对。
第五中间矢量的方向与第五候选矢量的方向相反,而第五候选矢量是前向运动估计得到的运动矢量,则第五中间矢量的方向与后向运动估计的方向一致。
当第一帧是第二帧的下一帧时,则中间块匹配至第一帧的方向与第五候选矢量的方向一致,中间块匹配至第二帧的方向与第五中间矢量的方向一致。因此,将中间块以第五候选矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第五中间矢量匹配至第二帧中,获取第二帧中的第四候选块。
当候选矢量集中的运动矢量是第六候选矢量时,将第六候选矢量的相反方向对应的运动矢量作为第六中间矢量;将中间块以第六中间矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第六候选矢量匹配至第二帧中,获取第二帧中的第四候选块;第三候选块和第四候选块构成候选匹配对。
第六中间矢量的方向与第六候选矢量的方向相反,而第六候选矢量是后向运动估计得到的运动矢量,则第六中间矢量的方向与前向运动估计的方向一致。
当第一帧是第二帧的下一帧时,则中间块匹配至第一帧的方向与第六中间矢量的方向一致,中间块匹配至第二帧的方向与第六候选矢量的方向一致。因此,将中间块以第六中间矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第六候选矢量匹配至第二帧中,获取第二帧中的第四候选块。
当候选矢量集中的运动矢量是第七候选矢量时,第七候选矢量包括第一子候选矢量和第二子候选矢量,第一子候选矢量方向与前向运动估计的方向一致,第二子候选矢量与后向运动估计的方向一致;将中间块以第一子候选矢量匹配至第一帧中,获取第一帧中的第三候选块;将中间块以第二子候选矢量匹配至第二帧中,获取第二帧中的第四候选块;第三候选块和第四候选块构成候选匹配对。
从各对候选匹配对中确定目的匹配对,包括:确定每一对候选匹配对中第三候选块和第四候选块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将目标匹配误差对应的候选匹配对作为目的匹配对。
在一种实施方式中,可以将最小的匹配误差确定为目标匹配误差,即将最小的匹配误差的候选匹配对作为目的匹配对,目的匹配对中第三候选块和中间块之间的运动矢量,以及第四候选块和中间块之间的运动矢量为中间块最佳的双向运动矢量。在另一种实施方式中,可以将次小的匹配误差确定为目标匹配误差,即将次小的匹配误差的候选匹配对作为目的匹配对。在其他实施方式中,还可以选取其他的候选匹配对作为目的匹配对,不限于此。
具体地,电子设备确定第三候选块和第四候选块的绝对误差和(Sum of AbsoluteDifferences,SAD),将该绝对误差和作为第三候选块和第四候选块的匹配误差。
进一步地,获取运动矢量的类型对应的惩罚值(Penalty),基于绝对误差和以及惩罚值,确定第三候选块和第四候选块的匹配误差。惩罚值表示该运动矢量的类型的可靠性。
运动矢量的类型例如前向运动估计得到的运动矢量,后向运动估计得到的运动矢量,双向运动估计得到的运动矢量等。
在一种实施方式中,电子设备可以将绝对误差和加上惩罚值的结果作为第三候选块和第四候选块的匹配误差。在另一种实施方式中,电子设备可以获取绝对误差和的第一参数,以及惩罚值的第二参数,将绝对误差和乘以第一参数,将惩罚值乘以第二参数,再将得到的两个乘积相加的和作为第三候选块和第四候选块的匹配误差。在其他实施方式中,电子设备还可以其他的运算公式确定第三候选块和第四候选块的匹配误差。
例如,针对A运动矢量,该运动矢量的类型是前向运动估计得到的运动矢量,对应的惩罚值为P1,确定第三候选块和第四候选块的绝对误差和为S1,则第三候选块和第四候选块的匹配误差为S1+P1。针对B运动矢量,该运动矢量的类型是后向运动估计得到的运动矢量,对应的惩罚值为P2,确定第三候选块和第四候选块的绝对误差和为S2,则第三候选块和第四候选块的匹配误差为S2+P2。
步骤2206,根据目的匹配对确定第一帧和第二帧之间的双向运动矢量。
具体地,电子设备获取目的匹配对在候选矢量集中所对应的运动矢量,该运动矢量为中间块的目标运动矢量。在另一种实施方式中,电子设备也可以直接计算中间块与第三候选块之间的运动矢量,以及中间块与第四候选块之间的运动矢量,将计算得到的两个运动矢量作为中间块的目标运动矢量,即中间块的双向运动矢量。
电子设备确定当前的中间块的目标运动矢量之后,获取下一个块作为中间块,再对新的中间块进行运动估计,得到新的中间块的目标运动矢量。以此类推,电子设备可以获取到中间帧中的各个中间块的目标运动矢量。
上述视频的运动估计方法,中间帧中的每个中间块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第五候选矢量,后向运动估计得到的运动矢量即第六候选矢量,还包括了双向运动估计得到的运动矢量集第七候选矢量,增加了中间块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得中间块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
应该理解的是,虽然图2、图5至图7、图9至图13、图17至图18、以及图22的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图5至图7、图9至图13、图17至图18、以及图22中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图23为一个实施例的视频的运动估计装置的结构框图。如图23所示,提供了一种视频的运动估计装置2300,包括:图像帧获取模块2302、分块模块2304、候选矢量集获取模块2306、目标匹配块确定模块2308和目标运动矢量确定模块2310,其中:
图像帧获取模块2302,用于获取目标视频的第一帧和第二帧;第一帧和第二帧为相邻的两帧。
分块模块2304,用于将第一帧和第二帧分别进行分块。
候选矢量集获取模块2306,用于依次获取第一帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括第一候选矢量和第二候选矢量,第一候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第二候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量。
目标匹配块确定模块2308,用于基于候选矢量集中的每个运动矢量,从第二帧中获取与目标块对应的候选匹配块,从各个候选匹配块中确定目标匹配块。
目标运动矢量确定模块2310,用于根据目标匹配块确定目标块的目标运动矢量。
上述视频的运动估计装置,第一帧中的每个目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,还包括了后向运动估计得到的运动矢量即第二候选矢量,增加了目标块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。并且,目标块的候选矢量集中包括了数量更多以及类型更多的运动矢量,也可以避免目标块进行运动估计时陷入局部极小值的问题,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
在一个实施例中,上述候选矢量集获取模块2306还用于针对每一个目标块,获取目标块所在的第一帧的目标区域,以及第一帧的预设的帧数量范围内,除第一帧之外所包括的每一帧中与目标区域对应的重合区域;获取目标区域所包括的运动矢量,以及重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
在一个实施例中,当第二帧是第一帧的下一帧时,上述目标匹配块确定模块2308还用于当候选矢量集中的运动矢量是第一候选矢量时,将目标块以第一候选矢量匹配至第二帧中,获取第二帧中的候选匹配块;当候选矢量集中的运动矢量是第二候选矢量时,将第二候选矢量的相反方向对应的运动矢量作为第二中间矢量,并将目标块以第二中间矢量匹配至第二帧中,获取第二帧中的候选匹配块。
在一个实施例中,当第二帧是第一帧的下一帧时,上述候选矢量集获取模块2306还用于将第一帧和第二帧进行后向运动估计,得到第二帧的后向运动矢量;获取第三帧;第三帧是第一帧的上一帧;将第一帧和第三帧进行前向运动估计,得到第三帧的前向运动矢量;根据第二帧的后向运动矢量和第三帧的前向运动矢量构成候选矢量集,第二帧的后向运动矢量属于候选矢量集中的第二候选矢量,第三帧的前向运动矢量属于候选矢量集中的第一候选矢量。
在一个实施例中,当第二帧是第一帧的下一帧时,上述候选矢量集获取模块2306还用于将第一帧和第二帧进行前向运动估计,得到第一帧的前向运动矢量;将第一帧和第二帧进行后向运动估计,得到第二帧的后向运动矢量,并将第二帧的后向运动矢量作为候选矢量集中的第二候选矢量;后向运动估计时的候选矢量集包括第一帧的前向运动矢量。
在一个实施例中,当第二帧是第一帧的上一帧时,上述目标匹配块确定模块2308还用于当候选矢量集中的运动矢量是第一候选矢量时,将第一候选矢量的相反方向对应的运动矢量作为第一中间矢量,将目标块以第一中间矢量匹配至第二帧中,获取第二帧中的候选匹配块;当候选矢量集中的运动矢量是第二候选矢量时,将目标块以第二候选矢量匹配至第二帧中,获取第二帧中的候选匹配块。
在一个实施例中,当第二帧是第一帧的上一帧时,上述候选矢量集获取模块2306还用于将第一帧和第二帧进行前向运动估计,得到第二帧的前向运动矢量;获取第四帧;第四帧是第二帧的上一帧;将第二帧和第四帧进行后向运动估计,得到第二帧的后向运动矢量;根据第二帧的前向运动矢量和第二帧的后向运动矢量构成候选矢量集,第二帧的前向运动矢量属于候选矢量集的第一候选矢量,第二帧的后向运动矢量属于候选矢量集中的第二候选矢量。
在一个实施例中,当第二帧是第一帧的上一帧时,上述候选矢量集获取模块2306还用于将第一帧和第二帧进行后向运动估计,得到第一帧的后向运动矢量;将第一帧和第二帧进行前向运动估计,得到第二帧的前向运动矢量,并将第二帧的前向运动矢量作为候选矢量集中的第一候选矢量;前向运动估计时的候选矢量集包括第一帧的后向运动矢量。
图24为另一个实施例的视频的运动估计装置的结构框图。如图24所示,提供了一种视频的运动估计装置2400,包括:图像帧获取模块2402、分块模块2404、候选矢量集获取模块2406、目标匹配对确定模块2408和目标运动矢量确定模块2410,其中:
图像帧获取模块2402,用于获取目标视频的第一帧、第二帧以及预设的第一帧和第二帧之间的中间帧;第一帧和第二帧为相邻的两帧。
分块模块2404,用于将第一帧、第二帧和中间帧分别进行分块。
候选矢量集获取模块2406,用于依次获取中间帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括第一候选矢量、第二候选矢量和第三候选矢量,第一候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第二候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;第三候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量。
目标匹配对确定模块2408,用于基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,从各对候选匹配对中确定目标匹配对;候选匹配对包括第一候选块和第二候选块,第一候选块是第一帧中与目标块对应的块,第二候选块是第二帧中与目标块对应的块。
目标运动矢量确定模块2410,用于根据目标匹配对确定目标块的目标运动矢量。
上述视频的运动估计装置,中间帧中的每个目标块的候选矢量集,不仅包括了前向运动估计得到的运动矢量即第一候选矢量,后向运动估计得到的运动矢量即第二候选矢量,还包括了双向运动估计得到的运动矢量集第三候选矢量,增加了目标块的候选矢量集中的运动矢量的数目和类型,可以提高候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
目标块的候选矢量集包括了前向运动估计得到的运动矢量和后向运动估计得到的运动矢量,还包括了双向运动估计得到的运动矢量,可以避免仅采用前向运动矢量和后向运动矢量作为候选矢量产生的空洞效应,提高视频的运动估计的准确性。
目标块的候选矢量集中包括了前向运动估计得到的运动矢量和后向运动估计得到的运动矢量,而前向运动估计或后向运动估计得到的运动矢量的准确性更高,将其作为候选矢量集中的运动矢量,可以增加目标运动矢量准确的可能性,使得中间帧的各个块可以更快速获取到准确的运动矢量,既提高了视频的运动估计的准确性,又提高了视频的运动估计的效率。
在一个实施例中,上述候选矢量集获取模块2406还用于针对每一个目标块,获取目标块所在的中间帧的目标区域,以及第一帧的预设的帧数量范围内,除中间帧之外所包括的每一帧中与目标区域对应的重合区域;获取目标区域所包括的运动矢量,以及重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
在一个实施例中,上述候选矢量集获取模块2406还用于将第一帧和第二帧进行前向运动估计,得到第一候选矢量;将第一帧和第二帧进行后向运动估计,得到第二候选矢量。
在一个实施例中,上述候选矢量集获取模块2406还用于将第一帧和第二帧进行双向运动估计,得到第三候选矢量;第一帧和第二帧进行双向运动估计时的候选矢量集包括第一候选矢量或第二候选矢量。
在一个实施例中,当第一帧是第二帧的上一帧时,上述候选矢量集获取模块2406还用于依次获取第一帧中的块作为第一块,针对每一个第一块,获取第一候选矢量集;第一候选矢量集包括第四候选矢量和第五候选矢量,第四候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第五候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;基于第一候选矢量集中的每个运动矢量,从第二帧中获取与第一块对应的候选匹配块,从各个第一块对应的候选匹配块中确定第一块的目标匹配块;根据第一块的目标匹配块确定第一块的目标运动矢量,并将第一帧中的各个第一块的目标运动矢量作为第一候选矢量。
在一个实施例中,当第一帧是第二帧的上一帧时,上述候选矢量集获取模块2406还用于依次获取第二帧中的块作为第二块,针对每一个第二块,获取第二候选矢量集;第二候选矢量集包括第六候选矢量和第七候选矢量,第六候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第七候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;基于第二候选矢量集中的每个运动矢量,从第一帧中获取与第二块对应的候选匹配块,从各个第二块对应的候选匹配块中确定第二块的目标匹配块;根据第二块的目标匹配块确定第二块的目标运动矢量,并将第二帧中的各个第二块的目标运动矢量作为第二候选矢量。
在一个实施例中,上述目标匹配对确定模块2408还用于当候选矢量集中的运动矢量是第三候选矢量时,第三候选矢量包括第一子候选矢量和第二子候选矢量,第一子候选矢量和第二子候选矢量方向相反,将目标块以第一子候选矢量匹配至第一帧中的第一候选块,将目标块以第二子候选矢量匹配至第二帧中的第二候选块;第一候选块和第二候选块构成目标块对应的候选匹配对。
图25为另一个实施例的视频的运动估计装置的结构框图。如图25所示,提供了一种视频的运动估计装置2500,包括:图像帧获取模块2502、分块模块2504、单向运动估计模块2506、矢量映射模块2508、候选矢量集获取模块2510、目标匹配对确定模块2512和目标运动矢量确定模块2514,其中:
图像帧获取模块2502,用于获取目标视频的第一帧、第二帧以及预设的第一帧和第二帧之间的中间帧;第一帧和第二帧为相邻的两帧。
分块模块2504,用于将第一帧、第二帧和中间帧分别进行分块。
单向运动估计模块2506,用于对第一帧和第二帧进行单向运动估计,得到单向运动矢量。
矢量映射模块2508,用于在第一帧和第二帧之间将各个单向运动矢量进行映射,并将映射过程中穿过中间帧的块作为参考块,基于参考块确定第一帧和第二帧之间的单向映射矢量。
候选矢量集获取模块2510,用于依次获取中间帧中的块作为目标块,针对每一个目标块,获取候选矢量集;候选矢量集包括单向映射矢量。
目标匹配对确定模块2512,用于基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与目标块对应的候选匹配对,从各对候选匹配对中确定目标匹配对;候选匹配对包括第一候选块和第二候选块,第一候选块是目标块对应的第一帧中的块,第二候选块是目标块对应的第二帧中的块。
目标运动矢量确定模块2514,用于根据目标匹配对确定目标块的目标运动矢量。
上述视频的运动估计装置,中间帧中的每个目标块的候选矢量集包括单向映射矢量,而单向映射矢量是单向运动估计得到的单向运动矢量与双向运动估计时所预设的中间帧进行处理得到的矢量,将单向运动估计和双向运动估计进行结合,不仅包括了单向运动估计的信息,还包括了双向运动估计的信息,提高了候选矢量集的可靠性,使得目标块可以确定更准确的目标运动矢量,从而提高视频的运动估计的准确性。
目标块的候选矢量集中包括了单向映射矢量,单向映射矢量包括了单向运动矢量的信息,而单向运动矢量的准确性更高,则单向映射矢量的准确性也更高,将其作为候选矢量集中的运动矢量,可以增加目标运动矢量准确的可能性,使得中间帧的各个块可以更快速获取到准确的运动矢量,既提高了视频的运动估计的准确性,又提高了视频的运动估计的效率。
在一个实施例中,上述候选矢量集获取模块2510还用于针对每一个目标块,获取目标块所在的中间帧的目标区域,以及第一帧的预设的帧数量范围内,除中间帧之外所包括的每一帧中与目标区域对应的重合区域;获取目标区域所包括的运动矢量,以及重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
在一个实施例中,上述矢量映射模块2508还用于针对每一个单向运动矢量,获取单向运动矢量对应的第一帧中的第一块,以及第二帧中的第二块,在第一块和第二块之间将各个单向运动矢量进行映射,并将映射过程中穿过中间帧的块作为参考块;将参考块映射至第一块得到第一运动矢量,将参考块映射至第二块得到第二运动矢量,并将第一运动矢量和第二运动矢量作为单向映射矢量;第一运动矢量和第二运动矢量之间的方向相反。上述目标匹配对确定模块2512还用于当候选矢量集中的运动矢量是单向映射矢量时,将目标块以第一运动矢量匹配至第一帧中的第一候选块,将目标块以第二运动矢量匹配至第二帧中的第二候选块;第一候选块和第二候选块构成目标块对应的候选匹配对。
在一个实施例中,第一帧是第二帧的上一帧;上述单向运动估计模块2506还用于对第一帧和第二帧进行前向运动估计,得到前向运动矢量;对第一帧和第二帧进行后向运动估计,得到后向运动矢量。上述矢量映射模块2508还用于在第一块和第二块之间将各个前向运动矢量进行映射,并将映射过程中穿过中间帧的块作为第一参考块;在第一块和第二块之间将各个后向运动矢量进行映射,并将映射过程中穿过中间帧的块作为第二参考块。上述矢量映射模块2508还用于将第一参考块映射至第一块得到第一子运动矢量,将第一参考块映射至第二块得到第二子运动矢量,并将第一子运动矢量和第二子运动矢量作为前向映射矢量;将第二参考块映射至第一块得到第三子运动矢量,将第二参考块映射至第二块得到第四子运动矢量,并将第三子运动矢量和第四子运动矢量作为后向映射矢量。上述目标匹配对确定模块2512还用于当候选矢量集中的运动矢量是前向映射矢量时,将目标块以第一子运动矢量匹配至第一帧中的第一子候选块,将目标块以第二子运动矢量匹配至第二帧中的第二子候选块,将第一子候选块和第二子候选块作为目标块对应的候选匹配对;当候选矢量集中的运动矢量是后向映射矢量时,将目标块以第三子运动矢量匹配至第一帧中的第三子候选块,将目标块以第四子运动矢量匹配至第二帧中的第四子候选块,将第三子候选块和第四子候选块作为目标块对应的候选匹配对。
在一个实施例中,当第一帧是第二帧的上一帧时,上述单向运动估计模块2506还用于依次获取第一帧中的块作为第一目标块,针对每一个第一目标块,获取第一候选矢量集;第一候选矢量集包括第一候选矢量和第二候选矢量,第一候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第二候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;基于第一候选矢量集中的每个运动矢量,从第二帧中获取与第一目标块对应的候选匹配块,从各个第一目标块对应的候选匹配块中确定第一目标块的目标匹配块;根据第一目标块的目标匹配块确定第一目标块的目标运动矢量,并将第一帧中的各个第一目标块的目标运动矢量作为前向运动矢量。
在一个实施例中,当第一帧是第二帧的上一帧时,上述单向运动估计模块2506还用于依次获取第二帧中的块作为第二目标块,针对每一个第二目标块,获取第二候选矢量集;第二候选矢量集包括第三候选矢量和第四候选矢量,第三候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第四候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;基于第二候选矢量集中的每个运动矢量,从第一帧中获取与第二目标块对应的候选匹配块,从各个第二目标块对应的候选匹配块中确定第二目标块的目标匹配块;根据第二目标块的目标匹配块确定第二目标块的目标运动矢量,并将第二帧中的各个第二目标块的目标运动矢量作为后向运动矢量。
在一个实施例中,上述候选矢量集获取模块2510还用于获取第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的双向运动矢量。
在一个实施例中,上述候选矢量集获取模块2510还用于将第一帧和第二帧进行双向运动估计,得到第一帧和第二帧之间的双向运动矢量。
在一个实施例中,上述候选矢量集获取模块2510还用于依次获取中间帧中的块作为中间块,针对每一个中间块,获取中间块的候选矢量集;中间块的候选矢量集包括第五候选矢量、第六候选矢量和第七候选矢量,第五候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;第六候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;第七候选矢量包括第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量;基于候选矢量集中的每个运动矢量,从第一帧和第二帧中获取与中间块对应的候选匹配对,从各个中间块对应的候选匹配对中确定目的匹配对;中间块对应的候选匹配对包括第三候选块和第四候选块,第三候选块是第一帧中与中间块对应的块,第四候选块是第二帧中与中间块对应的块;根据目的匹配对确定第一帧和第二帧之间的双向运动矢量。
上述视频的运动估计装置中各个模块的划分仅用于举例说明,在其他实施例中,可将视频的运动估计装置按照需要划分为不同的模块,以完成上述视频的运动估计装置的全部或部分功能。
关于视频的运动估计装置的具体限定可以参见上文中对于视频的运动估计方法的限定,在此不再赘述。上述视频的运动估计装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图26为一个实施例中电子设备的内部结构示意图。如图26所示,该电子设备包括通过系统总线连接的处理器和存储器。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种视频的运动估计方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该电子设备可以是手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备。
本申请实施例中提供的视频的运动估计装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行视频的运动估计方法的步骤。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行视频的运动估计方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (29)

1.一种视频的运动估计方法,其特征在于,包括:
获取目标视频的第一帧和第二帧;所述第一帧和所述第二帧为相邻的两帧;
将所述第一帧和所述第二帧分别进行分块;
依次获取所述第一帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量和第二候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
基于所述候选矢量集中的每个运动矢量,从所述第二帧中获取与所述目标块对应的候选匹配块,确定所述目标块分别与各个候选匹配块之间的绝对误差和,以及获取所述运动矢量的类型对应的惩罚值,基于所述绝对误差和以及所述惩罚值,确定所述目标块分别和各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将所述目标匹配误差对应的候选匹配块作为目标匹配块;所述惩罚值表示所述运动矢量的类型的可靠性;
根据所述目标匹配块确定所述目标块的目标运动矢量。
2.根据权利要求1所述的方法,其特征在于,所述针对每一个所述目标块,获取候选矢量集,包括:
针对每一个所述目标块,获取所述目标块所在的所述第一帧的目标区域,以及所述第一帧的预设的帧数量范围内,除所述第一帧之外所包括的每一帧中与所述目标区域对应的重合区域;
获取所述目标区域所包括的运动矢量,以及所述重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
3.根据权利要求1所述的方法,其特征在于,当所述第二帧是所述第一帧的下一帧时,所述基于所述候选矢量集中的每个运动矢量,从所述第二帧中获取与所述目标块对应的候选匹配块,包括:
当所述候选矢量集中的运动矢量是所述第一候选矢量时,将所述目标块以所述第一候选矢量匹配至所述第二帧中,获取所述第二帧中的候选匹配块;
当所述候选矢量集中的运动矢量是所述第二候选矢量时,将所述第二候选矢量的相反方向对应的运动矢量作为第二中间矢量,并将所述目标块以所述第二中间矢量匹配至所述第二帧中,获取所述第二帧中的候选匹配块。
4.根据权利要求1所述的方法,其特征在于,当所述第二帧是所述第一帧的下一帧时,所述获取候选矢量集,包括:
将所述第一帧和所述第二帧进行后向运动估计,得到所述第二帧的后向运动矢量;
获取第三帧;所述第三帧是所述第一帧的上一帧;
将所述第一帧和所述第三帧进行前向运动估计,得到所述第三帧的前向运动矢量;
根据所述第二帧的后向运动矢量和所述第三帧的前向运动矢量构成候选矢量集,所述第二帧的后向运动矢量属于所述候选矢量集中的第二候选矢量,所述第三帧的前向运动矢量属于所述候选矢量集中的第一候选矢量。
5.根据权利要求1所述的方法,其特征在于,当所述第二帧是所述第一帧的下一帧时,所述第二候选矢量的获取方式,包括:
将所述第一帧和所述第二帧进行前向运动估计,得到所述第一帧的前向运动矢量;
将所述第一帧和所述第二帧进行后向运动估计,得到所述第二帧的后向运动矢量,并将所述第二帧的后向运动矢量作为所述候选矢量集中的第二候选矢量;所述后向运动估计时的候选矢量集包括所述第一帧的前向运动矢量。
6.根据权利要求1所述的方法,其特征在于,当所述第二帧是所述第一帧的上一帧时,所述基于所述候选矢量集中的每个运动矢量,从所述第二帧中获取与所述目标块对应的候选匹配块,包括:
当所述候选矢量集中的运动矢量是所述第一候选矢量时,将所述第一候选矢量的相反方向对应的运动矢量作为第一中间矢量,将所述目标块以所述第一中间矢量匹配至所述第二帧中,获取所述第二帧中的候选匹配块;
当所述候选矢量集中的运动矢量是所述第二候选矢量时,将所述目标块以所述第二候选矢量匹配至所述第二帧中,获取所述第二帧中的候选匹配块。
7.根据权利要求1所述的方法,其特征在于,当所述第二帧是所述第一帧的上一帧时,所述获取候选矢量集,包括:
将所述第一帧和所述第二帧进行前向运动估计,得到所述第二帧的前向运动矢量;
获取第四帧;所述第四帧是所述第二帧的上一帧;
将所述第二帧和所述第四帧进行后向运动估计,得到所述第二帧的后向运动矢量;
根据所述第二帧的前向运动矢量和所述第二帧的后向运动矢量构成候选矢量集,所述第二帧的前向运动矢量属于所述候选矢量集的第一候选矢量,所述第二帧的后向运动矢量属于所述候选矢量集中的第二候选矢量。
8.根据权利要求1所述的方法,其特征在于,当所述第二帧是所述第一帧的上一帧时,所述第一候选矢量的获取方式,包括:
将所述第一帧和所述第二帧进行后向运动估计,得到所述第一帧的后向运动矢量;
将所述第一帧和所述第二帧进行前向运动估计,得到所述第二帧的前向运动矢量,并将所述第二帧的前向运动矢量作为所述候选矢量集中的第一候选矢量;所述前向运动估计时的候选矢量集包括所述第一帧的后向运动矢量。
9.一种视频的运动估计方法,其特征在于,包括:
获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
将所述第一帧、所述第二帧和所述中间帧分别进行分块;
依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量、第二候选矢量和第三候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;所述第三候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量;
基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述第一帧中与所述目标块对应的块,所述第二候选块是所述第二帧中与所述目标块对应的块;
根据所述目标匹配对确定所述目标块的目标运动矢量。
10.根据权利要求9所述的方法,其特征在于,所述针对每一个所述目标块,获取候选矢量集,包括:
针对每一个所述目标块,获取所述目标块所在的所述中间帧的目标区域,以及所述第一帧的预设的帧数量范围内,除所述中间帧之外所包括的每一帧中与所述目标区域对应的重合区域;
获取所述目标区域所包括的运动矢量,以及所述重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
11.根据权利要求9所述的方法,其特征在于,所述第一候选矢量的获取方式,包括:
将所述第一帧和所述第二帧进行前向运动估计,得到第一候选矢量;
所述第二候选矢量的获取方式,包括:
将所述第一帧和所述第二帧进行后向运动估计,得到第二候选矢量。
12.根据权利要求11所述的方法,其特征在于,所述第三候选矢量的获取方式,包括:
将所述第一帧和所述第二帧进行双向运动估计,得到第三候选矢量;所述第一帧和所述第二帧进行双向运动估计时的候选矢量集包括所述第一候选矢量或所述第二候选矢量。
13.根据权利要求11所述的方法,其特征在于,当所述第一帧是所述第二帧的上一帧时,所述将所述第一帧和所述第二帧进行前向运动估计,得到第一候选矢量,包括:
依次获取所述第一帧中的块作为第一块,针对每一个所述第一块,获取第一候选矢量集;所述第一候选矢量集包括第四候选矢量和第五候选矢量,所述第四候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第五候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
基于所述第一候选矢量集中的每个运动矢量,从所述第二帧中获取与所述第一块对应的候选匹配块,从各个所述第一块对应的候选匹配块中确定所述第一块的目标匹配块;
根据所述第一块的目标匹配块确定所述第一块的目标运动矢量,并将所述第一帧中的各个所述第一块的目标运动矢量作为第一候选矢量。
14.根据权利要求11所述的方法,其特征在于,当所述第一帧是所述第二帧的上一帧时,所述将所述第一帧和所述第二帧进行后向运动估计,得到第二候选矢量,包括:
依次获取所述第二帧中的块作为第二块,针对每一个所述第二块,获取第二候选矢量集;所述第二候选矢量集包括第六候选矢量和第七候选矢量,所述第六候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第七候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
基于所述第二候选矢量集中的每个运动矢量,从所述第一帧中获取与所述第二块对应的候选匹配块,从各个所述第二块对应的候选匹配块中确定所述第二块的目标匹配块;
根据所述第二块的目标匹配块确定所述第二块的目标运动矢量,并将所述第二帧中的各个所述第二块的目标运动矢量作为第二候选矢量。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述候选矢量集中的运动矢量是所述第三候选矢量时,所述第三候选矢量包括第一子候选矢量和第二子候选矢量,所述第一子候选矢量和所述第二子候选矢量方向相反,将所述目标块以所述第一子候选矢量匹配至所述第一帧中的第一候选块,将所述目标块以所述第二子候选矢量匹配至所述第二帧中的第二候选块;所述第一候选块和所述第二候选块构成所述目标块对应的候选匹配对。
16.一种视频的运动估计方法,其特征在于,包括:
获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
将所述第一帧、所述第二帧和所述中间帧分别进行分块;
对所述第一帧和所述第二帧进行单向运动估计,得到单向运动矢量;
在所述第一帧和所述第二帧之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块,基于所述参考块确定所述第一帧和所述第二帧之间的单向映射矢量;
依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括所述单向映射矢量;
基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述目标块对应的第一帧中的块,所述第二候选块是所述目标块对应的第二帧中的块;
根据所述目标匹配对确定所述目标块的目标运动矢量。
17.根据权利要求16所述的方法,其特征在于,所述针对每一个所述目标块,获取候选矢量集,包括:
针对每一个所述目标块,获取所述目标块所在的所述中间帧的目标区域,以及所述第一帧的预设的帧数量范围内,除所述中间帧之外所包括的每一帧中与所述目标区域对应的重合区域;
获取所述目标区域所包括的运动矢量,以及所述重合区域所包括的运动矢量,并将所获取的各个运动矢量作为候选矢量集。
18.根据权利要求16所述的方法,其特征在于,所述在所述第一帧和所述第二帧之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块,基于所述参考块确定所述第一帧和所述第二帧之间的单向映射矢量,包括:
针对每一个单向运动矢量,获取所述单向运动矢量对应的所述第一帧中的第一块,以及所述第二帧中的第二块,在所述第一块和所述第二块之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块;
将所述参考块映射至所述第一块得到第一运动矢量,将所述参考块映射至所述第二块得到第二运动矢量,并将所述第一运动矢量和所述第二运动矢量作为单向映射矢量;所述第一运动矢量和所述第二运动矢量之间的方向相反;
所述基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,包括:
当所述候选矢量集中的运动矢量是单向映射矢量时,将所述目标块以所述第一运动矢量匹配至所述第一帧中的第一候选块,将所述目标块以所述第二运动矢量匹配至所述第二帧中的第二候选块;所述第一候选块和所述第二候选块构成所述目标块对应的候选匹配对。
19.根据权利要求18所述的方法,其特征在于,所述第一帧是所述第二帧的上一帧,所述对所述第一帧和所述第二帧进行单向运动估计,得到单向运动估计矢量,包括:
对所述第一帧和所述第二帧进行前向运动估计,得到前向运动矢量;
对所述第一帧和所述第二帧进行后向运动估计,得到后向运动矢量;
所述在所述第一块和所述第二块之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块,包括:
在所述第一块和所述第二块之间将各个所述前向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为第一参考块;
在所述第一块和所述第二块之间将各个所述后向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为第二参考块;
所述将所述参考块映射至所述第一块得到第一运动矢量,将所述参考块映射至所述第二块得到第二运动矢量,并将所述第一运动矢量和所述第二运动矢量作为单向映射矢量,包括:
将所述第一参考块映射至所述第一块得到第一子运动矢量,将所述第一参考块映射至所述第二块得到第二子运动矢量,并将所述第一子运动矢量和所述第二子运动矢量作为前向映射矢量;
将所述第二参考块映射至所述第一块得到第三子运动矢量,将所述第二参考块映射至所述第二块得到第四子运动矢量,并将所述第三子运动矢量和所述第四子运动矢量作为后向映射矢量;
所述当所述候选矢量集中的运动矢量是单向映射矢量时,将所述目标块以所述第一运动矢量匹配至所述第一帧中的第一候选块,将所述目标块以所述第二运动矢量匹配至所述第二帧中的第二候选块,将所述第一候选块和所述第二候选块作为所述目标块对应的候选匹配对,包括:
当所述候选矢量集中的运动矢量是前向映射矢量时,将所述目标块以所述第一子运动矢量匹配至所述第一帧中的第一子候选块,将所述目标块以所述第二子运动矢量匹配至所述第二帧中的第二子候选块,将所述第一子候选块和所述第二子候选块作为所述目标块对应的候选匹配对;
当所述候选矢量集中的运动矢量是后向映射矢量时,将所述目标块以所述第三子运动矢量匹配至所述第一帧中的第三子候选块,将所述目标块以所述第四子运动矢量匹配至所述第二帧中的第四子候选块,将所述第三子候选块和所述第四子候选块作为所述目标块对应的候选匹配对。
20.根据权利要求19所述的方法,其特征在于,当所述第一帧是所述第二帧的上一帧时,所述对所述第一帧和所述第二帧进行前向运动估计,得到前向运动矢量,包括:
依次获取所述第一帧中的块作为第一目标块,针对每一个所述第一目标块,获取第一候选矢量集;所述第一候选矢量集包括第一候选矢量和第二候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
基于所述第一候选矢量集中的每个运动矢量,从所述第二帧中获取与所述第一目标块对应的候选匹配块,从各个所述第一目标块对应的候选匹配块中确定所述第一目标块的目标匹配块;
根据所述第一目标块的目标匹配块确定所述第一目标块的目标运动矢量,并将所述第一帧中的各个所述第一目标块的目标运动矢量作为前向运动矢量。
21.根据权利要求19所述的方法,其特征在于,当所述第一帧是所述第二帧的上一帧时,对所述第一帧和所述第二帧进行后向运动估计,得到后向运动矢量,包括:
依次获取所述第二帧中的块作为第二目标块,针对每一个所述第二目标块,获取第二候选矢量集;所述第二候选矢量集包括第三候选矢量和第四候选矢量,所述第三候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第四候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
基于所述第二候选矢量集中的每个运动矢量,从所述第一帧中获取与所述第二目标块对应的候选匹配块,从各个所述第二目标块对应的候选匹配块中确定所述第二目标块的目标匹配块;
根据所述第二目标块的目标匹配块确定所述第二目标块的目标运动矢量,并将所述第二帧中的各个所述第二目标块的目标运动矢量作为后向运动矢量。
22.根据权利要求16所述的方法,其特征在于,所述候选矢量集还包括双向运动矢量,所述双向运动矢量的获取方式,包括:
获取所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的双向运动矢量。
23.根据权利要求22所述的方法,其特征在于,所述获取所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的双向运动矢量,包括:
将所述第一帧和所述第二帧进行双向运动估计,得到所述第一帧和所述第二帧之间的双向运动矢量。
24.根据权利要求23所述的方法,其特征在于,所述将所述第一帧和所述第二帧进行双向运动估计,得到所述第一帧和所述第二帧之间的双向运动矢量,包括:
依次获取所述中间帧中的块作为中间块,针对每一个所述中间块,获取所述中间块的候选矢量集;所述中间块的候选矢量集包括第五候选矢量、第六候选矢量和第七候选矢量,所述第五候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第六候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;所述第七候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量;
基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述中间块对应的候选匹配对,从各个所述中间块对应的候选匹配对中确定目的匹配对;所述中间块对应的候选匹配对包括第三候选块和第四候选块,所述第三候选块是所述第一帧中与所述中间块对应的块,所述第四候选块是所述第二帧中与所述中间块对应的块;
根据所述目的匹配对确定所述第一帧和所述第二帧之间的双向运动矢量。
25.一种视频的运动估计装置,其特征在于,包括:
图像帧获取模块,用于获取目标视频的第一帧和第二帧;所述第一帧和所述第二帧为相邻的两帧;
分块模块,用于将所述第一帧和所述第二帧分别进行分块;
候选矢量集获取模块,用于依次获取所述第一帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量和第二候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;
目标匹配块确定模块,用于基于所述候选矢量集中的每个运动矢量,从所述第二帧中获取与所述目标块对应的候选匹配块,确定所述目标块分别与各个候选匹配块之间的绝对误差和,以及获取所述运动矢量的类型对应的惩罚值,基于所述绝对误差和以及所述惩罚值,确定所述目标块分别和各个候选匹配块之间的匹配误差;基于各个匹配误差确定目标匹配误差,将所述目标匹配误差对应的候选匹配块作为目标匹配块;所述惩罚值表示所述运动矢量的类型的可靠性;
目标运动矢量确定模块,用于根据所述目标匹配块确定所述目标块的目标运动矢量。
26.一种视频的运动估计装置,其特征在于,包括:
图像帧获取模块,用于获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
分块模块,用于将所述第一帧、所述第二帧和所述中间帧分别进行分块;
候选矢量集获取模块,用于依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括第一候选矢量、第二候选矢量和第三候选矢量,所述第一候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行前向运动估计得到的运动矢量;所述第二候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行后向运动估计得到的运动矢量;所述第三候选矢量包括所述第一帧的预设的帧数量范围内相邻两帧之间进行双向运动估计得到的运动矢量;
目标匹配对确定模块,用于基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述第一帧中与所述目标块对应的块,所述第二候选块是所述第二帧中与所述目标块对应的块;
目标运动矢量确定模块,用于根据所述目标匹配对确定所述目标块的目标运动矢量。
27.一种视频的运动估计装置,其特征在于,包括:
图像帧获取模块,用于获取目标视频的第一帧、第二帧以及预设的所述第一帧和所述第二帧之间的中间帧;所述第一帧和所述第二帧为相邻的两帧;
分块模块,用于将所述第一帧、所述第二帧和所述中间帧分别进行分块;
单向运动估计模块,用于对所述第一帧和所述第二帧进行单向运动估计,得到单向运动矢量;
矢量映射模块,用于在所述第一帧和所述第二帧之间将各个所述单向运动矢量进行映射,并将映射过程中穿过所述中间帧的块作为参考块,基于所述参考块确定所述第一帧和所述第二帧之间的单向映射矢量;
候选矢量集获取模块,用于依次获取所述中间帧中的块作为目标块,针对每一个所述目标块,获取候选矢量集;所述候选矢量集包括所述单向映射矢量;
目标匹配对确定模块,用于基于所述候选矢量集中的每个运动矢量,从所述第一帧和所述第二帧中获取与所述目标块对应的候选匹配对,从各对所述候选匹配对中确定目标匹配对;所述候选匹配对包括第一候选块和第二候选块,所述第一候选块是所述目标块对应的第一帧中的块,所述第二候选块是所述目标块对应的第二帧中的块;
目标运动矢量确定模块,用于根据所述目标匹配对确定所述目标块的目标运动矢量。
28.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至24中任一项所述的视频的运动估计方法的步骤。
29.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至24中任一项所述的方法的步骤。
CN202010357305.3A 2020-04-29 2020-04-29 视频的运动估计方法、装置、电子设备和存储介质 Active CN111526369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010357305.3A CN111526369B (zh) 2020-04-29 2020-04-29 视频的运动估计方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010357305.3A CN111526369B (zh) 2020-04-29 2020-04-29 视频的运动估计方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111526369A CN111526369A (zh) 2020-08-11
CN111526369B true CN111526369B (zh) 2022-09-09

Family

ID=71905635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010357305.3A Active CN111526369B (zh) 2020-04-29 2020-04-29 视频的运动估计方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111526369B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532907A (zh) * 2020-11-30 2021-03-19 湖南国科微电子股份有限公司 一种视频帧频提升方法、装置、设备及介质
WO2024020825A1 (en) * 2022-07-27 2024-02-01 Qualcomm Incorporated Block searching procedure for motion estimation
CN116366866B (zh) * 2023-05-31 2023-10-10 天翼云科技有限公司 一种基于多目标追踪的视频编码运动估计方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105657319A (zh) * 2016-03-09 2016-06-08 宏祐图像科技(上海)有限公司 Me中基于特征动态控制候选矢量惩罚值的方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070055212A (ko) * 2005-11-25 2007-05-30 삼성전자주식회사 프레임 보간장치, 프레임 보간방법 및 움직임 신뢰성평가장치
CN102595110B (zh) * 2011-01-10 2015-04-29 华为技术有限公司 视频编码方法、解码方法及终端
CN102611886A (zh) * 2011-01-22 2012-07-25 华为技术有限公司 一种运动预测或补偿方法
US9357161B1 (en) * 2011-10-17 2016-05-31 Pixelworks, Inc. Motion vector interpolation for motion compensation
JP7027776B2 (ja) * 2017-10-02 2022-03-02 富士通株式会社 移動ベクトル算出方法、装置、プログラム、及びノイズ除去処理を含む移動ベクトル算出方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105657319A (zh) * 2016-03-09 2016-06-08 宏祐图像科技(上海)有限公司 Me中基于特征动态控制候选矢量惩罚值的方法及系统

Also Published As

Publication number Publication date
CN111526369A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN111526369B (zh) 视频的运动估计方法、装置、电子设备和存储介质
US11341750B2 (en) Quasi-parametric optical flow estimation
US11615546B2 (en) Systems and methods for depth estimation using generative models
JP4991712B2 (ja) デジタル画像処理装置および処理方法ならびにコンピュータプログラムプロダクト
JP4414379B2 (ja) 映像符号化方法、映像復号方法、映像符号化プログラム、映像復号プログラム及びそれらのプログラムを記録したコンピュータ読み取り可能な記録媒体
CN104067619B (zh) 视频解码器、视频解码方法以及视频解码程序的记录介质
JP4958302B2 (ja) 多視点画像奥行値抽出装置、その方法およびそのプログラム
CN110830802A (zh) 基于机器学习的视频压缩
US8416989B2 (en) Image processing apparatus, image capture apparatus, image processing method, and program
CN113597764B (zh) 视频解码方法、系统和存储介质
JP2007502053A (ja) 動き推定方法及び装置
US11218699B2 (en) Semi-global matching (SGM) cost compression
US11743466B2 (en) Video colour component prediction method and apparatus, and computer storage medium
CN102075760A (zh) 快速运动估计方法及装置
JP6394876B2 (ja) 符号化回路、符号化方法
JP6781823B2 (ja) インターフレーム予測符号化方法および装置
WO2016188243A1 (zh) 一种视频编解码方法、编码器和解码器
Shen et al. Self-supervised learning of depth and motion under photometric inconsistency
US10015508B2 (en) Video encoding device and video encoding method
WO2016131270A1 (zh) 一种错误隐藏的方法和装置
Yasarla et al. Mamo: Leveraging memory and attention for monocular video depth estimation
Peng et al. Self-supervised correlational monocular depth estimation using resvgg network
US20160286212A1 (en) Video encoding apparatus and method, and video decoding apparatus and method
CN115529459A (zh) 中心点搜索方法、装置、计算机设备、存储介质
JP4100321B2 (ja) セグメント単位画像符号化装置及びセグメント単位画像符号化プログラム

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