CN111586409B - 插值帧的生成方法、装置、电子设备和存储介质 - Google Patents
插值帧的生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111586409B CN111586409B CN202010406948.2A CN202010406948A CN111586409B CN 111586409 B CN111586409 B CN 111586409B CN 202010406948 A CN202010406948 A CN 202010406948A CN 111586409 B CN111586409 B CN 111586409B
- Authority
- CN
- China
- Prior art keywords
- frame
- motion
- rate
- motion 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
Links
Images
Classifications
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/513—Processing of motion vectors
-
- 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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Systems (AREA)
Abstract
本申请涉及一种插值帧的生成方法和装置、电子设备、计算机可读存储介质。方法包括获取原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率;基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧。上述插值帧的生成方法和装置、电子设备、计算机可读存储介质,可以提高生成的插值帧的准确性。
Description
技术领域
本申请涉及视频处理领域,特别是涉及一种插值帧的生成方法、装置、电子设备和计算机可读存储介质。
背景技术
随着计算机技术的发展,出现了插帧技术,即在视频的图像帧中生成新的图像帧,并插入视频中,可以提高视频的帧率,从而使得视频的帧率与计算机设备的刷新率相匹配。
然而,传统的视频插帧方法,存在生成新的图像帧不准确的问题。
发明内容
本申请实施例提供了一种插值帧的生成方法、装置、电子设备、计算机可读存储介质,可以提高生成的插值帧的准确性。
一种插值帧的生成方法,包括:
获取原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率;
基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
一种插值帧的生成装置,包括:
图像帧获取模块,用于获取原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
运动估计模块,用于对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
第一帧率确定模块,用于基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率;
差值帧生成模块,用于基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的插值帧的生成方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述插值帧的生成方法、装置、电子设别和计算机可读存储介质,获取原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;第一运动矢量表示第一帧和第二帧之间的运动情况,基于第一帧和第二帧之间的第一运动矢量,即基于第一帧和第二帧之间的运动情况,可以更准确地确定第一帧和第二帧之间的第一帧率,再基于第一帧率和第一运动矢量,生成更准确的第一帧和第二帧之间的插值帧。
并且,生成的插值帧可以插入到第一帧和第二帧之间,则第一帧和第二帧之间的视频片段的帧率越高,该视频片段在播放时也更加清晰、流畅。
一种插值帧的生成方法,包括:
获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;
基于所述第二运动矢量,确定第一帧率;
基于所述第一帧率确定所述原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
一种插值帧的生成装置,包括:
第二运动矢量获取模块,用于获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;
第一帧率确定模块,用于基于所述第二运动矢量,确定第一帧率;
图像帧获取模块,用于基于所述第一帧率确定所述原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
运动估计模块,用于对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
差值帧生成模块,用于基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的插值帧的生成方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述插值帧的生成方法、装置、电子设备和计算机可读存储介质,获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;基于第二运动矢量,确定第一帧率;基于第一帧率确定原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;第一运动矢量表示第一帧和第二帧之间的运动情况,而基于第一帧和第二帧之间的运动情况和第一帧率,可以更准确地生成第一帧和第二帧之间的插值帧。
并且,生成的插值帧可以插入到第一帧和第二帧之间,则第一帧和第二帧之间的视频片段的帧率越高,该视频片段在播放时也更加清晰、流畅。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中图像处理电路的示意图;
图2为一个实施例中插值帧的生成方法的流程图;
图3为一个实施例中生成目标视频的流程图;
图4为一个实施例中基于不同目标模式得到第一帧率的流程图;
图5为另一个实施例中基于不同目标模式得到第一帧率的流程图;
图6为另一个实施例中生成目标视频的流程图;
图7为一个实施例中插值帧生成的系统框架示意图;
图8为另一个实施例中插值帧的生成方法的流程图;
图9为另一个实施例中生成目标视频的流程图;
图10为一个实施例中插值帧的生成装置的结构框图;
图11为另一个实施例中插值帧的生成装置的结构框图;
图12为一个实施例中电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一帧称为第二帧,且类似地,可将第二帧称为第一帧。第一帧和第二帧两者都是帧,但其不是同一帧。
本申请实施例还提供一种电子设备。上述电子设备中包括图像处理电路,图像处理电路可以利用硬件和/或软件组件实现,可包括定义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至步骤208。
步骤202,获取原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧。
第一帧和第二帧之间间隔预设数量的帧,预设数量可以是0、1、2等。当预设数量是0时,即第一帧和第二帧是相邻的两帧。按照原始视频中图像帧的排列顺序,第一帧可以处于第二帧之前,第一帧也可以处于第二帧之后。
在一种实施方式中,电子设备可以通过摄像头获取原始视频。在另一种实施方式中,电子设备可以接收其他电子设备发送的原始视频。
步骤204,对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。
运动矢量(MotionVector,MV)表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。第一运动矢量指的是第一帧与第二帧之间的相对位移。第一运动矢量不仅包括第一帧和第二帧之间相对位移的数值,还包括相对位移的方向。
运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第一帧,为目标视频的第10帧,下一帧是第二帧,为目标视频的第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程;再基于第10帧中的每一个块在第11帧中的运动矢量可以得到第10帧和第11帧之间的第一运动矢量。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第一帧,为目标视频的第10帧,上一帧是第二帧,为目标视频的第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程;再基于第10帧中的每一个块在第9帧中的运动矢量可以得到第10帧和第9帧之间的第一运动矢量。
在一种实施方式中,电子设备对第一帧和第二帧进行前向运动估计,得到第一帧和第二帧之间的前向运动矢量。
在另一种实施方式中,电子设备对第一帧和第二帧进行后向运动估计,得到第一帧和第二帧之间的后向运动矢量。
在其他实施方式中,运动估计还包括双向运动估计、单双向运动估计等。
当第一帧和第二帧是相邻的两帧时,直接将第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。
当第一帧和第二帧不是相邻的两帧时,获取第一帧和第二帧之间的中间帧,按照第一帧、中间帧和第二帧之间的排列顺序,依次获取相邻的两帧进行运动估计,得到各个子运动矢量;将各个子运动矢量进行叠加处理,得到第一帧和第二帧之间的第一运动矢量。
需要指出的是,在计算第一帧和第二帧之间的第一运动矢量的过程中,任何相邻两帧进行运动估计的类型相同。运动估计的类型包括前向运动估计、后向运动估计、双向运动估计、单双向运动估计等。
例如,第一帧是第5帧,第二帧是第8帧,中间帧包括第6帧和第7帧,按照第一帧、中间帧和第二帧之间的排列顺序,即按照第5帧、第6帧、第7帧和第8帧的排列顺序,依次获取相邻的两帧进行运动估计,如依次将第5帧和第6帧、第6帧和第7帧、第7帧和第8帧进行前向运动估计,得到3个子运动矢量分别为A、B和C,则第5帧和第8帧之间的第一运动矢量为A+B+C。
步骤206,基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率。
帧率(Frame rate)是图像处理器处理视频时每秒钟能够更新的图像帧的次数。第一帧率是图像处理器处理第一帧和第二帧之间的视频片段时每秒钟能够更新的图像帧的次数。可以理解的是,视频是由至少两帧图像帧组成的。而第一帧和第二帧之间包括至少两帧图像帧,也是一个视频片段。
可以理解的是,第一帧率越高,表示图像处理器在处理第一帧和第二帧之间的视频片段时,每秒钟更新的图像帧的次数越多,则视频越清晰、流畅;第一帧率越低,表示图像处理器在处理第一帧和第二帧之间的视频片段时,每秒钟更新的图像帧的次数越少,则图像处理器的功耗越低,包括该图像处理器的电子设备的功耗也越低。
具体地,基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的运动情况,当第一帧和第二帧的运动情况激烈时,则确定第一帧和第二帧之间的第一帧率较大,可以使得电子设备的图像处理器每秒钟更新的图像帧越多,则第一帧和第二帧之间的视频片段也更加清晰、流畅;当第一帧和第二帧的运动情况缓和时,则确定第一帧和第二帧之间的第一帧率较小,可以使得电子设备的图像处理器每秒钟更新的图像帧越少,则图像处理器的功耗越低,包括该图像处理器的电子设备的功耗也越低。
步骤208,基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧。
插值帧指的是插入第一帧和第二帧之间的图像帧。电子设备通过在第一帧和第二帧之间插入插值帧,可以提高原始视频所包括的图像帧的数目,也可以提高原始视频的帧率,使得原始视频的帧率可以与电子设备的刷新率相匹配,电子设备可以准确播放该插帧之后得到的目标视频。其中,刷新率是电子设备的显示器每秒钟刷新页面的次数。
例如,原始视频是一段2秒钟包括100帧图像帧的视频,原始视频的帧率是50HZ,对原始视频进行插帧,得到200帧图像帧的目标视频,该视频的播放时长仍为2秒,则插帧得到的目标视频的帧率是100HZ,提高了视频的帧率,可以匹配刷新率也为100HZ的电子设备,从而可以更清晰、流畅且更准确地播放该视频。
可以理解的是,当原始视频的目标对象运动速度快时,则第一帧和第二帧之间的第一运动矢量大,在播放原始视频时可能存在卡顿的现象。
因此,在本实施例中,获取原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;第一运动矢量表示第一帧和第二帧之间的运动情况,基于第一帧和第二帧之间的第一运动矢量,即基于第一帧和第二帧之间的运动情况,可以更准确地确定第一帧和第二帧之间的第一帧率,再基于第一帧率和第一运动矢量,生成更准确的第一帧和第二帧之间的插值帧。
并且,生成的插值帧可以插入到第一帧和第二帧之间,则第一帧和第二帧之间的视频片段的帧率越高,该视频片段在播放时也更加清晰、流畅。
可选地,上述视频帧的生成方法,既可以应用于MEMC(Motion Estimate andMotion Compensation,运动估计和运动补偿)芯片中,也可以应用于云平台中,如云服务器。在5G飞速发展的时代,高带宽低延时的通信使得云计算成为可能,应用在云平台上进行计算,能够有增加算力,降低延时,同时降低显示设备的硬件成本。
在一个实施例中,上述方法还包括:获取预设时长;每间隔预设时长,执行获取原始视频中所包括的第一帧和第二帧步骤。例如,每间隔1s执行获取原始视频中所包括的第一帧和第二帧步骤,避免电子设备时刻处于工作状态,可以节约电子设备的处理资源。
在另一个实施例中,上述方法还包括:获取预设帧数目;每间隔预设帧数目,执行获取原始视频中所包括的第一帧和第二帧步骤。例如,每间隔60帧图像帧,执行获取原始视频中所包括的第一帧和第二帧步骤,将原始视频中的图像帧分别进行集中处理,避免了图像处理器每获取一帧图像帧进行处理,可以节约电子设备的处理资源。
在另一个实施例中,上述方法还包括:当获取到原始视频时,执行获取原始视频中所包括的第一帧和第二帧步骤。即只要获取到输入的原始视频,则实时进行插值帧的生成过程,可以提高插值帧生成的时效性。
在另一个实施例中,上述方法还包括:当获取到运动估计的开启指令时,执行对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量步骤;当获取到帧率确定的开启指令时,执行基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率步骤。其中,运动估计的开启指令和帧率确定的开启指令均可以由用户输入得到。
进一步地,当获取到运动估计的关闭指令时,停止执行对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量步骤;当获取到帧率确定的关闭指令时,停止执行基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率步骤。其中,运动估计的关闭指令和帧率确定的关闭指令均可以由用户输入得到。
在一个实施例中,获取原始视频中所包括的第一帧和第二帧之前,还包括:获取预设帧率,以及原始视频的第二帧率;基于预设帧率和第二帧率确定插帧倍率;根据插帧倍率确定第一帧和第二帧。
在一种实施方式中,电子设备获取显示器的刷新率,将该刷新率作为预设帧率。在另一种实施方式中,预设帧率也可以根据用户需要进行设定。
第二帧率是图像处理器处理原始视频时每秒钟能够更新的图像帧的次数。插帧倍率指的是插帧之后得到的视频片段的帧率与插帧之前的视频片段的帧率之间的倍率。插帧倍率可以是整数倍率,如插帧倍率2、3等,也可以是小数倍率,如1.25、2.5等。通过插帧倍率可以确定第一帧和第二帧。
例如,插帧之前的视频片段的帧率是24,插帧之后得到的视频片段的帧率是48,那么该视频片段的插帧倍率为2,则第一帧和第二帧可以是相邻的两帧,每相邻两帧插入一帧插值帧。又如,插帧之前的视频片段的帧率是24,插帧之后得到的视频片段的帧率是30,那么该视频片段的插帧倍率为5/4=1.25,即需要将视频片段中每4帧经过插帧之后得到5帧,可以将每4帧中的首尾两帧作为第一帧和第二帧,去除中间两帧,再插入三帧插值帧。
在本实施例中,获取预设帧率,以及原始视频的第二帧率;基于预设帧率和第二帧率确定插帧倍率;根据插帧倍数可以准确从原始视频中确定第一帧和第二帧,从而可以对视频进行插帧,生成目标视频。
在一个实施例中,根据插帧倍率确定第一帧和第二帧,包括:当插帧倍率是整数倍率时,获取原始视频中未进行插帧处理的相邻的两帧,分别作为第一帧和第二帧;当插帧倍率是小数倍率时,确定预设帧率和第二帧率之间的最大公约数,将第二帧率除以最大公约数,得到第一数量,并获取原始视频中未进行插帧处理的第一数量的图像帧,从第一数量的图像帧中确定第一帧和第二帧;第一数量大于2。
当插帧倍率是整数倍率时,可以将原始视频中未进行插帧处理的相邻的两帧,分别作为第一帧和第二帧。例如,插帧倍率为3时,即原始视频中的图像帧数目再增加两倍,可以直接将原始视频中未进行插帧处理的相邻的两帧分别作为第一帧和第二帧。如将原始视频中的第1帧和第2帧分别作为第一帧和第二帧,插入2帧插值帧;再将原始视频中的第2帧和第3帧分别作为第一帧和第二帧,插入2帧插值帧,以此类推,可以得到插帧倍率为3的目标视频。
最大公约数指的是预设帧率和第二帧率之间最大的约数。例如,预设帧率是30,第二帧率是24,则最大公约数是6;预设帧率是20,第二帧率是30,则最大公约数是10。
从第一数量的图像帧中确定第一帧和第二帧,可以将第一数量的图像帧中的首尾两帧分别作为第一帧和第二帧,也可以第一数量的图像帧中选取指定的两帧分别作为第一帧和第二帧,不限于此。
当插帧倍率是小数倍率时,例如,预设帧率是30,第二帧率是24,则插帧倍率是30/24=1.25,预设帧率和第二帧率的最大公约数是6,则将第二帧率24除以最大公约数6,得到第一数量为4,即获取原始视频中未进行插帧梳理的4帧图像帧,并从4帧图像帧中确定第一帧和第二帧。
在本实施例中,当插帧倍率是整数倍率或者小数倍率时,均可以准确从原始图像中确定第一帧和第二帧。
在一个实施例中,从第一数量的图像帧中确定第一帧和第二帧,包括:按照原始视频中各个帧的排列顺序,从第一数量的图像帧中获取首尾两帧,分别作为第一帧和第二帧。
电子设备从第一数量的图像帧中获取首尾两帧,分别作为第一帧和第二帧,则后续计算得到的第一帧和第二帧之间的第一运动矢量,可以准确表示目标对象在第一数量的图像帧之间的运动矢量,从而更准确生成第一帧和第二帧之间的插值帧。
在一个实施例中,上述方法还包括:去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入第一帧和第二帧之间,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到对原始视频中的所有图像帧进行插帧完成时,生成目标视频。
电子设备去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入第一帧和第二帧之间,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,获取新的第一帧和新的第二帧,再生成新的第一帧和新的第二帧之间的插值帧,去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入新的第一帧和新的第二帧之间,直到对原始视频中的所有图像帧进行插帧完成时,可以生成更准确并且更清晰、流畅的目标视频。
在一个实施例中,上述方法还包括:获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;基于第二运动矢量,确定第三帧率;基于第三帧率确定原始视频中所包括的第一帧和第二帧。
第二运动矢量指的是上一次插值帧生成过程中所确定的第一帧和第二帧之间的运动矢量,即相对位移。将上一次插值帧生成过程中所确定的第一帧和第二帧分别定义为第三帧和第四帧,则第二运动矢量指的是第三帧和第四帧之间的运动矢量。第三帧率是由第二运动矢量确定的,用于确定原始视频中所包括的第一帧和第二帧。
具体地,基于第二运动矢量,确定第三帧和第四帧之间的运动情况,当运动情况激烈时,则确定的第三帧率较大,可以使得电子设备的图像处理器每秒钟更新的图像帧越多,视频在播放时也更加流畅;当运动情况缓和时,则确定的第三帧率较小,可以使得电子设备的图像处理器每秒钟更新的图像帧越少,则图像处理器的功耗越低,包括该图像处理器的电子设备的功耗也越低。
在一个实施例中,基于第三帧率确定原始视频中所包括的第一帧和第二帧,包括:获取原始视频的第二帧率;基于第三帧率和第二帧率确定插帧倍率;根据插帧倍数确定第一帧和第二帧。
第二帧率是图像处理器处理原始视频时每秒钟能够更新的图像帧的次数。插帧倍率指的是插帧之后得到的视频片段的帧率与插帧之前的视频片段的帧率之间的倍率。插帧倍率可以是整数倍率,如插帧倍率2、3等,也可以是小数倍率,如1.25、2.5等。通过插帧倍率可以确定第一帧和第二帧。
例如,插帧之前的视频片段的帧率是24,插帧之后得到的视频片段的帧率是48,那么该视频片段的插帧倍率为2,则第一帧和第二帧可以是相邻的两帧,每相邻两帧插入一帧插值帧。又如,插帧之前的视频片段的帧率是24,插帧之后得到的视频片段的帧率是30,那么该视频片段的插帧倍率为5/4=1.25,即需要将视频片段中每4帧经过插帧之后得到5帧,可以将每4帧中的首尾两帧作为第一帧和第二帧,去除中间两帧,再插入三帧插值帧。
在本实施例中,获取原始视频的第二帧率;基于第三帧率和第二帧率确定插帧倍率;根据插帧倍数可以准确从原始视频中确定第一帧和第二帧,从而可以对视频进行插帧,生成目标视频。
在一个实施例中,第一帧和第二帧均包括目标对象;基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率,包括:基于第一帧和第二帧之间的第一运动矢量,确定目标对象在第一帧和第二帧之间的目标运动程度;根据目标运动程度确定第一帧和第二帧之间的第一帧率;目标运动程度与第一帧率成正相关。
目标对象指的是用户所拍摄的对象。目标对象可以是人、动物、花朵、树木、白云等,不限于此。
目标运动程度指的是目标对象在第一帧和第二帧之间运动的幅度。目标运动程度大,表示第一帧中的目标对象至第二帧中的目标对象运动剧烈,运动速度快;目标运动程度小,表示第一帧中的目标对象至第二帧中的目标对象运动缓和,运动速度慢。
在一个实施例中,目标运动程度可以用Level表示,Level的值越大表示目标对象在第一帧和第二帧之间运动得越剧烈;Level值越小表示目标对象在第一帧和第二帧之间运动得越平缓,Level的值存在其最大阈值Level1。
目标运动程度与第一帧率成正相关,也就是说,目标运动程度越大,第一帧率越大;目标运动程度越小,第一帧率越小。
可以理解的是,当目标运动程度大时,目标对象在第一帧和第二帧之间的运动速度快,可能存在卡顿的现象,因此可以确定较大的第一帧率,从而在第一帧和第二帧之间插入更多的插值帧,使得第一帧和第二帧之间的视频片段在播放时更加清晰、流畅。而当目标运动程度小时,目标对象在第一帧和第二帧之间的运动速度慢,因此可以确定较小的第一帧率,从而在第一帧和第二帧之间插入较少的插值帧,降低图像处理器的功耗,降低电子设备的功耗,也节约了电子设备的处理资源;并且,在第一帧和第二帧之间插入了插值帧,既可以使得第一帧和第二帧之间的视频片段在播放时更加清晰、流畅,也可以降低了功耗,更好地平衡了处理资源的消耗和视频的清晰、流畅程度之间的关系。
在其他实施例中,目标运动程度与第一帧率之间的关系可以线性关系,也可以是非线性关系。
在一个实施例中,如图3所示,电子设备获取原始视频302,以及获取原始视频中所包括的第一帧和第二帧;执行步骤304,对原始视频中的第一帧和第二帧进行运动估计,得到第一运动矢量;执行步骤306,对第一运动矢量进行运动检测,确定目标对象在第一帧和第二帧之间的目标运动程度;执行步骤308,根据目标运动程度确定第一帧和第二帧之间的第一帧率;执行步骤310,基于第一帧率和第一运动矢量进行运动补偿,生成第一帧和第二帧之间的插值帧;根据原始视频以及各个插值帧,可以生成目标视频312。
在一个实施例中,第一帧和第二帧之间的第一运动矢量包括目标对象对应区域的局部运动矢量,以及第一帧和第二帧之间的全局运动矢量。
局部运动矢量指的是目标对象对应的局部区域的运动矢量,可以表示目标对象对应的局部区域的绝对运动情况。全局运动矢量指的是第一帧和第二帧之间整体图像的运动矢量,可以表示拍摄该第一帧和第二帧之间的视频片段的摄像头的绝对运动情况。
在一种实施方式中,获取目标对象在第一帧中对应的第一区域,获取目标对象在第二帧中对应的第二区域,确定第一区域和第二区域之间的运动矢量作为局部运动矢量。
在另一种实施方式中,将第一帧和第二帧分别划分为至少两个局部区域,分别确定各个局部区域的运动矢量,再将各个局部区域的运动矢量的均值作为局部运动矢量。其中,电子设备还可以统计各个局部区域的运动矢量的直方图,由直方图确定各个局部区域的运动矢量的均值。
基于第一帧和第二帧之间的第一运动矢量,确定目标对象在第一帧和第二帧之间的目标运动程度,包括:根据目标对象对应的局部运动矢量,确定目标对象的第一运动程度;根据第一帧和第二帧之间的全局运动矢量,确定第一帧和第二帧之间的第二运动程度;基于第一运动程度和第二运动程度,确定目标对象在第一帧和第二帧之间的目标运动程度。
局部运动矢量越大,则目标对象的第一运动程度越大,目标对象在第一帧和第二帧之间的运动速度越快。全局运动矢量越大,则目标对象的第二运动程度越大,第一帧和第二帧之间整体图像的运动速度越快。
具体地,基于第一运动程度和第二运动程度,确定第一运动程度和第二运动程度的相对运动程度,并将该相对运动程度确定为目标对象在第一帧和第二帧之间的目标运动程度。
例如,第一运动程度为50,第二运动程度为0,则第一运动程度和第二运动程度的相对运动程度是50,即目标运动程度是50,表示目标对象在第一帧和第二帧之间的目标运动程度较大,目标对象运动剧烈。又如,第一运动程度为10,第二运动程度为10,则第一运动程度和第二运动程度的相对运动程度是0,即目标运动程度是0,表示目标对象在第一帧和第二帧之间的目标运动程度较小,目标对象运动轻微(缓和)。
在本实施例中,第一帧和第二帧之间的第一运动矢量包括目标对象对应区域的局部运动矢量,以及第一帧和第二帧之间的全局运动矢量;根据目标对象对应的局部运动矢量,确定目标对象的第一运动程度;根据第一帧和第二帧之间的全局运动矢量,确定第一帧和第二帧之间的第二运动程度;基于第一运动程度和第二运动程度之间的关系,可以准确确定目标对象在第一帧和第二帧之间的目标运动程度。
在一个实施例中,电子设备还可以根据目标对象在第一帧和第二帧之间的目标运动程度确定目标对象的运动状态。具体地,当目标运动程度大于运动程度阈值时,目标对象的运动状态为运动;当目标运动程度小于或等于运动程度阈值时,目标对象的运动状态为静止。
运动状态包括运动、静止等状态。运动程度阈值可以根据用户需要进行设定。
当目标运动程度大于运动程度阈值时,目标对象的运动速度较大,目标对象的运动状态为运动。当目标运动程度小于或等于运动程度阈值时,目标对象的运动速度较小,目标对象的运动状态为静止。
在一个实施例中,根据目标运动程度确定第一帧和第二帧之间的第一帧率,包括:预先将运动程度划分为至少两个运动等级;每个运动等级对应一个帧率;将目标运动程度与至少两个运动等级进行匹配,获取目标运动程度所在的运动等级作为目标运动等级;将目标运动等级对应的帧率作为第一帧和第二帧之间的第一帧率。
电子设备可以根据用户需要将运动程度进行划分,得到至少两个运动等级,再对每一个运动等级设定一个帧率。需要注意的是,运动程度越大,运动等级越高,则设定的帧率越大。
可以理解的是,在原始视频中,目标对象在相邻的视频片段之间的运动情况具有连贯性,目标对象在相邻的视频片段中的运动程度较接近,因此预先将运动程度划分为至少两个运动等级之后,相邻的且运动情况较接近的视频片段所获取到第一帧率相同,从而可以在相邻的视频片段中插入相同数目的插值帧,在播放该插帧得到的相邻的视频片段时也更加清晰、流畅。
在一个实施例中,上述方法还包括:对第一帧中的目标对象和第二帧中的目标对象进行差分处理,得到目标对象的参考运动程度;将参考运动程度与目标运动程度进行差值处理,得到运动差值;当运动差值小于运动差值阈值时,执行根据目标运动程度确定第一帧和第二帧之间的第一帧率步骤;当运动差值大于或等于运动差值阈值时,基于目标运动程度和参考运动程度确定新的目标运动程度。
参考运动程度指的是差分处理得到的目标对象在第一帧和第二帧之间的运动的幅度。参考运动程度越大,表示目标对象在第一帧和第二帧之间的运动的幅度越大,目标对象在第一帧和第二帧之间的运动速度越快。
在一种实施方式中,电子设备对第一帧中的目标对象和第二帧中的目标对象进行差分处理,可以获取到第一帧中的目标对象和第二帧中的目标对象之间的位置差异,基于该位置差异可以得到参考运动程度。在另一种实施方式中,电子设备可以采用自身所集成的运动检测算法,检测出目标对象的参考运动程度。
电子设备将参考运动程度与目标运动程度进行差值处理,得到运动差值;将该运动差值与运动差值阈值进行比较。
当运动差值小于运动差值阈值时,表示差分处理得到的参考运动程度与运动估计得到的目标运动程度较接近,则目标运动程度的可信度高,执行根据目标运动程度确定第一帧和第二帧之间的第一帧率步骤。
当运动差值大于或等于运动差值阈值时,表示差分处理得到的参考运动程度与运动估计得到的目标运动程度相差较大,则目标运动程度的可信度低,基于目标运动程度和参考运动程度重新确定新的目标运动程度。
在本实施例中,对第一帧中的目标对象和第二帧中的目标对象进行差分处理,得到目标对象的参考运动程度;将参考运动程度与目标运动程度进行差值处理,得到运动差值;当运动差值小于运动差值阈值时,表示目标运动程度的可信度高,执行根据目标运动程度确定第一帧和第二帧之间的第一帧率步骤;当运动差值大于或等于运动差值阈值时,表示目标运动程度的可信度低,基于目标运动程度和参考运动程度确定新的目标运动程度,可以获取到更准确的目标运动程度。
在一个实施例中,上述方法还包括:获取电子设备运行视频的目标模式;获取目标模式对应的目标帧率范围。基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率,包括:基于第一帧和第二帧之间的第一运动矢量,在目标帧率范围内确定第一帧和第二帧之间的第一帧率。
电子设备运行视频的目标模式可以包括低功耗模式、高刷新率模式。低功耗模式的功耗低,刷新率低,对应的目标帧率范围内的各个帧率的均值也低;高刷新率模式的功耗高,刷新率高,对应的目标帧率范围内的各个帧率的均值也高,视频也更加清晰、流畅。
在本实施例中,获取电子设备运行视频的目标模式,获取目标模式对应的目标帧率范围,从而可以在目标帧率范围内确定第一帧率,确定的第一帧率符合该目标模式,提高了第一帧率的准确性,最终使得插帧得到的目标视频也符合该目标模式。
在一个实施例中,目标模式包括第一模式和第二模式,第一模式的功耗比第二模式的功耗低,第二模式的刷新率比第一模式的刷新率高。
第一模式即低功耗模式,第二模式即高刷新率模式。
如图4所示,获取目标模式对应的目标帧率范围,包括:
步骤402,当目标模式是第一模式时,获取第一模式的第一帧率范围。
可以理解的是,第一模式的功耗低,刷新率低,但是为了使得视频在播放时符合人眼的视觉停留效应,电子设备的显示器的刷新率存在最低刷新率,再获取第一阈值,基于最低刷新率与第一阈值生成第一帧率范围;第一阈值大于最低刷新率。
例如,最低刷新率为TH1,第一阈值为TH2,TH2大于TH1,则第一帧率范围是[TH1,TH2]。
步骤404,当目标模式是第二模式时,获取第二模式的第二帧率范围;第一帧率范围内的最大值小于第二帧率范围内的最小值。
可以理解的是,第二模式的功耗高,刷新率高,而由于电子设备的显示器的硬件限制,电子设备的显示器的刷新率存在最高刷新率,再获取第二阈值,基于最高刷新率与第二阈值生成第二帧率范围;第二阈值小于最低刷新率。
例如,第一阈值为TH3,最高刷新率为TH4,TH3小于TH4,则第一帧率范围是[TH3,TH4]。
第一阈值即第一帧率范围内的最大值,第二阈值即第二帧率范围内的最小值,第一帧率范围内的最大值小于第二帧率范围内的最小值,即第一阈值小于第二阈值。
基于第一帧和第二帧之间的第一运动矢量,在目标帧率范围内确定第一帧和第二帧之间的第一帧率,包括:
步骤406,当目标模式是第一模式时,基于第一帧和第二帧之间的第一运动矢量,在第一帧率范围内确定第一帧和第二帧之间的第一帧率。
步骤408,当目标模式是第二模式时,基于第一帧和第二帧之间的第一运动矢量,在第二帧率范围内确定第一帧和第二帧之间的第一帧率。
在本实施例中,目标模式包括第一模式和第二模式,当目标模式是第一模式时,可以降低图像处理器的功耗,降低电子设备的功耗;当目标模式是第二模式时,可以生成帧率更高的视频片段,提高视频播放时的清晰度和流畅度。
在一个实施例中,如图5所示,执行步骤502,获取最高刷新率和最低刷新率;执行步骤504,选择目标模式;目标模式包括第一模式506和第二模式508,第一模式506的功耗比第二模式508的功耗低,第二模式508的刷新率比第一模式506的刷新率高。第一模式即低功耗模式,第二模式即高刷新率模式。
获取目标模式对应的目标帧率范围510。具体地,当目标模式是第一模式506时,获取第一模式506的第一帧率范围;当目标模式是第二模式508时,获取第二模式508的第二帧率范围;第一帧率范围内的最大值小于第二帧率范围内的最小值。基于第一帧和第二帧之间的第一运动矢量,在目标帧率范围内确定第一帧和第二帧之间的第一帧率512。
在一个实施例中,对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量之后,还包括:获取上一次插值帧生成过程中得到的第二运动矢量;将第一运动矢量和第二运动矢量进行匹配,当第一运动矢量和第二运动矢量相匹配时,执行基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率步骤。
第二运动矢量指的是上一次插值帧生成过程中所确定的第一帧和第二帧之间的运动矢量。而第一运动矢量指的是当前插值帧生成过程中所确定的第一帧和第二帧之间的运动矢量。例如,上一帧插值帧生成过程中所确定的第一帧和第二帧分别是原始视频中的第4帧和第5帧,第二运动矢量为第4帧和第5帧之间的运动矢量;当前插值帧生成过程中所确定的第一帧和第二帧分别是第6帧和第7帧,第一运动矢量为第6帧和第7帧之间的运动矢量。
具体地,电子设备确定第一运动矢量和第二运动矢量之间的差值,当该差值小于预设差值阈值时,第一运动矢量和第二运动矢量相匹配;当该差值大于或等于预设差值阈值时,第一运动矢量和第二运动矢量不匹配。
可以理解的是,视频中相邻帧之间具有连贯性,则上一次插值帧生成过程中得到的第二运动矢量与当前插值帧生成过程中的第一运动矢量相差较小,即第一运动矢量和第二运动矢量相匹配,表示当前插值帧生成过程中所确定的第一帧和第二帧是准确的,可以执行基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率步骤,从而更准确生成插值帧。
在一个实施例中,上述方法还包括:当第一运动矢量和第二运动矢量不匹配时,重新确定第一帧和第二帧中的至少一帧,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到第一运动矢量和第二运动矢量相匹配。
可选地,可以重新确定第一帧,并保持第二帧不变;也可以重新确定第二帧,并保持第一帧不变;还可以重新确定第一帧以及第二帧。
当第一运动矢量和第二运动矢量不匹配时,表示当前插值帧生成过程中确定的第一帧和第二帧之间的第一运动矢量与上一次插值帧生成过程中得到的第二运动矢量存在较大的偏差,当前插值帧生成过程中所确定的第一帧和第二帧不准确,则重新确定第一帧和第二帧中的至少一帧,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到第一运动矢量和第二运动矢量相匹配,可以更准确地确定第一帧和第二帧,从而更准确生成第一帧和第二帧之间的插值帧。
在一个实施例中,如图6所示,将原始视频602并行执行步骤604和步骤606。其中,执行步骤604,从原始视频602中获取第一帧和第二帧进行运动估计,得到第一运动矢量。步骤604还包括,获取原始视频的第二帧率,以及第一帧率;基于第一帧率和第二帧率确定第一帧和第二帧之间的插值帧数目。
步骤606,运动检测,包括:获取上一次插值帧生成过程中得到的第二运动矢量;将第一运动矢量和第二运动矢量进行匹配;当第一运动矢量和第二运动矢量相匹配时,基于第一帧和第二帧之间的第一运动矢量,确定目标对象在第一帧和第二帧之间的目标运动程度;对第一帧中的目标对象和第二帧中的目标对象进行差分处理,得到目标对象的参考运动程度;将参考运动程度与目标运动程度进行差值处理,得到运动差值,并判断该运动差值是否小于运动差值阈值。
当运动差值小于运动差值阈值时,执行步骤608,确定帧率,即根据目标运动程度确定第一帧和第二帧之间的第一帧率。当运动差值大于或等于运动差值阈值时,返回执行步骤604,获取原始视频中所包括的第一帧和第二帧,并对第一帧和第二帧进行运动估计,得到新的第一运动矢量;执行第一运动矢量和第二运动矢量相匹配,且目标运动程度和参考运动程度的运动差值小于运动差值阈值时,再执行步骤608,确定帧率,即根据目标运动程度确定第一帧和第二帧之间的第一帧率。
执行步骤610,基于第一帧率和第一运动矢量进行运动补偿,生成第一帧和第二帧之间的插值帧;根据原始视频以及各个插值帧,可以生成目标视频612。
在一个实施例中,上述方法还包括:获取第一帧和第二帧,以及第一帧和第二帧之间的插值帧,得到视频片段,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到对原始视频中的所有图像帧进行插帧完成时,根据各个视频片段生成目标视频。
电子设备获取第一帧和第二帧,以及第一帧和第二帧之间的插值帧,将插值帧插入第一帧和第二帧之间,得到视频片段;返回执行获取原始视频中所包括的第一帧和第二帧步骤,获取下一个视频片段;以此类推,直到对原始视频中的所有图像帧进行插帧完成时,获取插帧得到的各个视频片段,将各个视频片段按照生成的时间顺序首尾连接,可以生成目标视频。
进一步地,获取刷新率,将目标视频进行编解码得到新的目标视频;新的目标视频的帧率与刷新率一致,电子设备可以准确播放该新的目标视频。
在一个实施例中,上述方法还包括:获取目标视频的目标帧率;基于目标帧率,确定与目标帧率一致的刷新率。
刷新率是电子设备的显示器每秒钟刷新页面的次数。目标视频的目标帧率必要与电子设备的显示器的刷新率一致,才能准确播放该目标视频。
可以理解的是,电子设备的显示器存在最高的刷新率TH1,同时为了使得播放的视频符合人眼的视觉停留效应,也存在最低的刷新率TH2,因此最终确定的刷新率小于或等于TH1,且大于或等于TH2。
在本实施例中,电子设备的显示器具有自适应可变刷新率,当获取到目标视频的目标帧率时,确定与目标帧率一致的刷新率,可以在播放目标视频时准确进行播放。
在一个实施例中,如图7所示为一个实施例中插值帧生成的系统框架示意图。电子设备采用插值帧生成算法704在原始视频702中生成各个插值帧,从而根据原始视频和插值帧得到自适应可变帧率视频,将自适应可变帧率视频发送至显示器706中,显示器确定与目标帧率一致的刷新率,即自适应可变刷新率,则可以执行步骤708,播放视频。
在一个实施例中,基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧,包括:获取原始视频的第二帧率;基于第一帧率和第二帧率确定第一帧和第二帧之间的插值帧数目;根据第一运动矢量生成第一帧和第二帧之间插值帧数目的插值帧。
第二帧率指的是图像处理器处理原始视频时每秒钟能够更新的图像帧的次数。
根据第一帧和第二帧之间的第一运动矢量,以及第一帧和第二帧之间的插值帧数目,可以对第一帧和第二帧进行运动补偿,生成插值帧数目的插值帧。
例如,原始视频的第二帧率是24HZ,第一帧是原始视频的第5帧,第二帧是原始视频的第8帧,则第5帧至第8帧所包括的4帧图像帧的视频片段的帧率也为24HZ,而基于第一帧和第二帧之间的第一运动矢量所确定的第一帧率是30HZ,也就是说,需要将第5帧至第8帧所包括的4帧图像帧进行插帧得到5帧图像帧。因此,第5帧和第8帧之间的插值帧数目是3,去除第5帧与第8帧之间的第6帧和第7帧,生成3帧插值帧并插入第5帧和第8帧之间。
在本实施例中,获取原始视频的第二帧率;基于第一帧率和第二帧率确定第一帧和第二帧之间的插值帧数目;根据第一运动矢量生成第一帧和第二帧之间插值帧数目的插值帧,可以更准确的生成对应插值帧数目的插值帧。
图8为另一个实施例中插值帧的生成方法的流程图。如图4所示,插值帧的生成方法包括步骤802至步骤810。
步骤802,获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量。
运动矢量(MotionVector,MV)表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。第二运动矢量指的是上一次插值帧生成过程中所确定的第一帧和第二帧之间的运动矢量,即相对位移。将上一次插值帧生成过程中所确定的第一帧和第二帧分别定义为第三帧和第四帧,则第二运动矢量指的是第三帧和第四帧之间的运动矢量。第三帧和第四帧间隔预设数量的帧,预设数量可以是0、1、2等。当预设数量是0时,即第三帧和第四帧是相邻的两帧。按照原始视频中图像帧的排列顺序,第三帧可以处于第四帧之前,第三帧也可以处于第四帧之后。
第二运动矢量不仅包括第三帧和第四帧之间相对位移的数值,还包括相对位移的方向。
在一种实施方式中,电子设备可以通过摄像头获取原始视频。在另一种实施方式中,电子设备可以接收其他电子设备发送的原始视频。
步骤804,基于第二运动矢量,确定第一帧率。
帧率(Frame rate)是图像处理器处理视频时每秒钟能够更新的图像帧的次数。第一帧率是由第二运动矢量确定的,并作为后续确定的第一帧和第二帧之间的视频片段的帧率。
可以理解的是,第一帧率越高,表示图像处理器在处理视频片段时,每秒钟更新的图像帧的次数越多,则视频越清晰、流畅;第一帧率越低,表示图像处理器在处理视频片段时,每秒钟更新的图像帧的次数越少,则图像处理器的功耗越低,包括该图像处理器的电子设备的功耗也越低。
具体地,基于第二运动矢量,确定第三帧和第四帧之间的运动情况,当运动情况激烈时,则确定的第一帧率较大,可以使得电子设备的图像处理器每秒钟更新的图像帧越多,视频在播放时也更加流畅;当运动情况缓和时,则确定的第一帧率较小,可以使得电子设备的图像处理器每秒钟更新的图像帧越少,则图像处理器的功耗越低,包括该图像处理器的电子设备的功耗也越低。
步骤806,基于第一帧率确定原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧。
第一帧和第二帧之间间隔预设数量的帧,预设数量可以是0、1、2等。当预设数量是0时,即第一帧和第二帧是相邻的两帧。按照原始视频中图像帧的排列顺序,第一帧可以处于第二帧之前,第一帧也可以处于第二帧之后。
可以理解的是,视频是由至少两帧图像帧组成的。而第一帧和第二帧之间包括至少两帧图像帧,也是一个视频片段。
步骤808,对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。
运动矢量(MotionVector,MV)表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。第一运动矢量指的是第一帧与第二帧之间的相对位移。第一运动矢量不仅包括第一帧和第二帧之间相对位移的数值,还包括相对位移的方向。
第一运动矢量指的是当前插值帧生成过程中所确定的第一帧和第二帧之间的运动矢量。例如,上一帧插值帧生成过程中所确定的第一帧和第二帧分别是原始视频中的第4帧和第5帧,第二运动矢量为第4帧和第5帧之间的运动矢量;当前插值帧生成过程中所确定的第一帧和第二帧分别是第6帧和第7帧,第一运动矢量为第6帧和第7帧之间的运动矢量。
运动估计可以包括前向运动估计和后向运动估计。
其中,前向运动估计指的是当前帧的块在下一帧中获取运动矢量的过程。例如,当前帧是第一帧,为目标视频的第10帧,下一帧是第二帧,为目标视频的第11帧,对第10帧和第11帧进行前向运动估计,即获取第10帧中的每一个块在第11帧中的运动矢量的过程;再基于第10帧中的每一个块在第11帧中的运动矢量可以得到第10帧和第11帧之间的第一运动矢量。
后向运动估计指的是当前帧的块在上一帧中获取运动矢量的过程。例如,当前帧是第一帧,为目标视频的第10帧,上一帧是第二帧,为目标视频的第9帧,对第10帧和第9帧进行后向运动估计,即获取第10帧中的每一个块在第9帧中的运动矢量的过程;再基于第10帧中的每一个块在第9帧中的运动矢量可以得到第10帧和第9帧之间的第一运动矢量。
在一种实施方式中,电子设备对第一帧和第二帧进行前向运动估计,得到第一帧和第二帧之间的前向运动矢量。
在另一种实施方式中,电子设备对第一帧和第二帧进行后向运动估计,得到第一帧和第二帧之间的后向运动矢量。
在其他实施方式中,运动估计还包括双向运动估计、单双向运动估计等。
当第一帧和第二帧是相邻的两帧时,直接将第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。
当第一帧和第二帧不是相邻的两帧时,获取第一帧和第二帧之间的中间帧,按照第一帧、中间帧和第二帧之间的排列顺序,依次获取相邻的两帧进行运动估计,得到各个子运动矢量;将各个子运动矢量进行叠加处理,得到第一帧和第二帧之间的第一运动矢量。
需要指出的是,在计算第一帧和第二帧之间的第一运动矢量的过程中,任何相邻两帧进行运动估计的类型相同。运动估计的类型包括前向运动估计、后向运动估计、双向运动估计、单双向运动估计等。
例如,第一帧是第5帧,第二帧是第8帧,中间帧包括第6帧和第7帧,按照第一帧、中间帧和第二帧之间的排列顺序,即按照第5帧、第6帧、第7帧和第8帧的排列顺序,依次获取相邻的两帧进行运动估计,如依次将第5帧和第6帧、第6帧和第7帧、第7帧和第8帧进行前向运动估计,得到3个子运动矢量分别为A、B和C,则第5帧和第8帧之间的第一运动矢量为A+B+C。
步骤810,基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧。
插值帧指的是插入第一帧和第二帧之间的图像帧。电子设备通过在第一帧和第二帧之间插入插值帧,可以提高原始视频所包括的图像帧的数目,也可以提高原始视频的帧率,使得原始视频的帧率可以与电子设备的刷新率相匹配,电子设备可以准确播放该插帧之后得到的目标视频。其中,刷新率是电子设备的显示器每秒钟刷新页面的次数。
例如,原始视频是一段2秒钟包括100帧图像帧的视频,原始视频的帧率是50HZ,对原始视频进行插帧,得到200帧图像帧的目标视频,该视频的播放时长仍为2秒,则插帧得到的目标视频的帧率是100HZ,提高了视频的帧率,可以匹配刷新率也为100HZ的电子设备,从而可以更清晰、流畅且更准确地播放该视频。
可以理解的是,视频中相邻帧之间具有连贯性,相邻的视频片段或者图像帧之间的运动情况接近,运动矢量以及帧率也接近,则基于上一次插值帧生成过程得到的第二运动矢量而确定的第一帧率,可以作为当前插值帧生成过程中确定第一帧和第二帧之间的视频片段的帧率。因此,可以基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧。
在本实施例中,获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;基于第二运动矢量,确定第一帧率;基于第一帧率确定原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;第一运动矢量表示第一帧和第二帧之间的运动情况,而基于第一帧和第二帧之间的运动情况和第一帧率,可以更准确地生成第一帧和第二帧之间的插值帧。
并且,生成的插值帧可以插入到第一帧和第二帧之间,则第一帧和第二帧之间的视频片段的帧率越高,该视频片段在播放时也更加清晰、流畅。
可选地,上述视频帧的生成方法,既可以应用于MEMC(Motion Estimate andMotion Compensation,运动估计和运动补偿)芯片中,也可以应用于云平台中,如云服务器。在5G飞速发展的时代,高带宽低延时的通信使得云计算成为可能,应用在云平台上进行计算,能够有增加算力,降低延时,同时降低显示设备的硬件成本。
在一个实施例中,上述方法还包括:获取预设时长;每间隔预设时长,执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤。例如,每间隔1s执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,避免电子设备时刻处于工作状态,可以节约电子设备的处理资源。
在另一个实施例中,上述方法还包括:获取预设帧数目;每间隔预设帧数目,执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤。例如,每间隔60帧图像帧,执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,将原始视频中的图像帧分别进行集中处理,避免了图像处理器每获取一帧图像帧进行处理,可以节约电子设备的处理资源。
在另一个实施例中,上述方法还包括:当获取到原始视频时,先确定第一帧和第二帧,并确定第一帧和第二帧之间的运动矢量,将该运动矢量作为第二运动矢量,执行基于第二运动矢量,确定第一帧率步骤。即只要获取到输入的原始视频,则实时进行插值帧的生成过程,可以提高插值帧生成的时效性。
在另一个实施例中,上述方法还包括:当获取到运动估计的开启指令时,执行对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量步骤;当获取到帧率确定的开启指令时,执行基于所述第二运动矢量,确定第一帧率步骤。其中,运动估计的开启指令和帧率确定的开启指令均可以由用户输入得到。
进一步地,当获取到运动估计的关闭指令时,停止执行对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量步骤;当获取到帧率确定的关闭指令时,停止执行基于所述第二运动矢量,确定第一帧率步骤。其中,运动估计的关闭指令和帧率确定的关闭指令均可以由用户输入得到。
在一个实施例中,基于第一帧率确定所述原始视频中所包括的第一帧和第二帧,包括:获取原始视频的第二帧率;基于第一帧率和第二帧率确定插帧倍率;根据插帧倍率确定第一帧和第二帧。
第二帧率是图像处理器处理原始视频时每秒钟能够更新的图像帧的次数。插帧倍率指的是插帧之后得到的视频片段的帧率与插帧之前的视频片段的帧率之间的倍率。插帧倍率可以是整数倍率,如插帧倍率2、3等,也可以是小数倍率,如1.25、2.5等。通过插帧倍率可以确定第一帧和第二帧。
例如,插帧之前的视频片段的帧率是24,插帧之后得到的视频片段的帧率是48,那么该视频片段的插帧倍率为2,则第一帧和第二帧可以是相邻的两帧,每相邻两帧插入一帧插值帧。又如,插帧之前的视频片段的帧率是24,插帧之后得到的视频片段的帧率是30,那么该视频片段的插帧倍率为5/4=1.25,即需要将视频片段中每4帧经过插帧之后得到5帧,可以将每4帧中的首尾两帧作为第一帧和第二帧,去除中间两帧,再插入三帧插值帧。
在本实施例中,获取原始视频的第二帧率;基于第一帧率和第二帧率确定插帧倍率;根据插帧倍数可以准确从原始视频中确定第一帧和第二帧,从而可以对视频进行插帧,生成目标视频。
在一个实施例中,根据插帧倍率确定第一帧和第二帧,包括:当插帧倍率是整数倍率时,获取原始视频中未进行插帧处理的相邻的两帧,分别作为第一帧和第二帧;当插帧倍率是小数倍率时,确定预设帧率和第二帧率之间的最大公约数,将第二帧率除以最大公约数,得到第一数量,并获取原始视频中未进行插帧处理的第一数量的图像帧,从第一数量的图像帧中确定第一帧和第二帧;第一数量大于2。
当插帧倍率是整数倍率时,可以将原始视频中未进行插帧处理的相邻的两帧,分别作为第一帧和第二帧。例如,插帧倍率为3时,即原始视频中的图像帧数目再增加两倍,可以直接将原始视频中未进行插帧处理的相邻的两帧分别作为第一帧和第二帧。如将原始视频中的第1帧和第2帧分别作为第一帧和第二帧,插入2帧插值帧;再将原始视频中的第2帧和第3帧分别作为第一帧和第二帧,插入2帧插值帧,以此类推,可以得到插帧倍率为3的目标视频。
最大公约数指的是预设帧率和第二帧率之间最大的约数。例如,预设帧率是30,第二帧率是24,则最大公约数是6;预设帧率是20,第二帧率是30,则最大公约数是10。
从第一数量的图像帧中确定第一帧和第二帧,可以将第一数量的图像帧中的首尾两帧分别作为第一帧和第二帧,也可以第一数量的图像帧中选取指定的两帧分别作为第一帧和第二帧,不限于此。
当插帧倍率是小数倍率时,例如,预设帧率是30,第二帧率是24,则插帧倍率是30/24=1.25,预设帧率和第二帧率的最大公约数是6,则将第二帧率24除以最大公约数6,得到第一数量为4,即获取原始视频中未进行插帧梳理的4帧图像帧,并从4帧图像帧中确定第一帧和第二帧。
在本实施例中,当插帧倍率是整数倍率或者小数倍率时,均可以准确从原始图像中确定第一帧和第二帧。
在一个实施例中,从第一数量的图像帧中确定第一帧和第二帧,包括:按照原始视频中各个帧的排列顺序,从第一数量的图像帧中获取首尾两帧,分别作为第一帧和第二帧。
电子设备从第一数量的图像帧中获取首尾两帧,分别作为第一帧和第二帧,则后续计算得到的第一帧和第二帧之间的第一运动矢量,可以准确表示目标对象在第一数量的图像帧之间的运动矢量,从而更准确生成第一帧和第二帧之间的插值帧。
在一个实施例中,上述方法还包括:去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入第一帧和第二帧之间,并返回执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,直到对原始视频中的所有图像帧进行插帧完成时,生成目标视频。
电子设备去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入第一帧和第二帧之间,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,获取新的第一帧和新的第二帧,再生成新的第一帧和新的第二帧之间的插值帧,去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入新的第一帧和新的第二帧之间,直到对原始视频中的所有图像帧进行插帧完成时,可以生成更准确并且更清晰、流畅的目标视频。
在一个实施例中,第三帧和第四帧均包括目标对象;基于第二运动矢量,确定第一帧率,包括:基于第三帧和第四帧之间的第二运动矢量,确定目标对象在第三帧和第四帧之间的运动程度;根据目标对象在第三帧和第四帧之间的运动程度确定第一帧率;目标对象在第三帧和第四帧之间的运动程度与第一帧率成正相关。
目标对象指的是用户所拍摄的对象。目标对象可以是人、动物、花朵、树木、白云等,不限于此。
第三帧和第四帧之间的运动程度指的是目标对象在第三帧和第四帧之间的运动的幅度。第三帧和第四帧之间的运动程度大,表示目标对象运动剧烈,运动速度快;第三帧和第四帧之间的运动程度小,表示目标对象运动缓和,运动速度慢。
第三帧和第四帧之间的运动程度与第一帧率成正相关,也就是说,第三帧和第四帧之间的运动程度越大,第一帧率越大;第三帧和第四帧之间的运动程度越小,第一帧率越小。
可以理解的是,当第三帧和第四帧之间的运动程度大时,目标对象在第三帧和第四帧之间的运动速度快,可能存在卡顿的现象,因此可以确定较大的第一帧率,从而可以在后续所确定的第一帧和第二帧之间插入更多的插值帧,使得第一帧和第二帧之间的视频片段在播放时更加清晰、流畅。而当第三帧和第四帧之间的运动程度小时,目标对象在第三帧和第四帧之间的运动速度慢,因此可以确定较小的第一帧率,从而在后续所确定的第一帧和第二帧之间插入较少的插值帧,降低图像处理器的功耗,降低电子设备的功耗,也节约了电子设备的处理资源;并且,在后续所确定的第一帧和第二帧之间插入了插值帧,既可以使得第一帧和第二帧之间的视频片段在播放时更加清晰、流畅,也可以降低了功耗,更好地平衡了处理资源的消耗和视频的清晰、流畅程度之间的关系。
在其他实施例中,第三帧和第四帧之间的运动程度与第一帧率之间的关系可以线性关系,也可以是非线性关系。
在一个实施例中,第三帧和第四帧之间的第二运动矢量包括目标对象对应区域的局部运动矢量,以及第三帧和第四帧之间的全局运动矢量。
局部运动矢量指的是目标对象对应的局部区域的运动矢量,可以表示目标对象对应的局部区域的绝对运动情况。全局运动矢量指的是第三帧和第四帧之间整体图像的运动矢量,可以表示拍摄该第三帧和第四帧之间的视频片段的摄像头的绝对运动情况。
在一种实施方式中,获取目标对象在第三帧中对应的第一区域,获取目标对象在第四帧中对应的第二区域,确定第一区域和第二区域之间的运动矢量作为局部运动矢量。
在另一种实施方式中,将第三帧和第四帧分别划分为至少两个局部区域,分别确定各个局部区域的运动矢量,再将各个局部区域的运动矢量的均值作为局部运动矢量。其中,电子设备还可以统计各个局部区域的运动矢量的直方图,由直方图确定各个局部区域的运动矢量的均值。
基于第三帧和第四帧之间的第二运动矢量,确定目标对象在第三帧和第四帧之间的运动程度,包括:根据目标对象对应的局部运动矢量,确定目标对象的第一运动程度;根据第三帧和第四帧之间的全局运动矢量,确定第三帧和第四帧之间的第二运动程度;基于第一运动程度和第二运动程度,确定目标对象在第三帧和第四帧之间的运动程度。
局部运动矢量越大,则目标对象的第一运动程度越大,目标对象在第三帧和第四帧之间的运动速度越快。全局运动矢量越大,则目标对象的第二运动程度越大,第三帧和第四帧之间整体图像的运动速度越快。
具体地,基于第一运动程度和第二运动程度,确定第一运动程度和第二运动程度的相对运动程度,并将该相对运动程度确定为目标对象在第三帧和第四帧之间的运动程度。
例如,第一运动程度为50,第二运动程度为0,则第一运动程度和第二运动程度的相对运动程度是50,即第三帧和第四帧之间的运动程度是50,表示目标对象在第三帧和第四帧之间的运动程度较大,目标对象运动剧烈。又如,第一运动程度为10,第二运动程度为10,则第一运动程度和第二运动程度的相对运动程度是0,即第三帧和第四帧之间的运动程度是0,表示目标对象在第三帧和第四帧之间的运动程度较小,目标对象运动轻微(缓和)。
在本实施例中,第三帧和第四帧之间的第一运动矢量包括目标对象对应区域的局部运动矢量,以及第三帧和第四帧之间的全局运动矢量;根据目标对象对应区域的局部运动矢量,确定目标对象的第一运动程度;根据第三帧和第四帧之间的全局运动矢量,确定第三帧和第四帧之间的第二运动程度;基于第一运动程度和第二运动程度之间的关系,可以准确确定目标对象在第三帧和第四帧之间的运动程度。
在一个实施例中,电子设备还可以根据目标对象在第三帧和第四帧之间的运动程度确定目标对象的运动状态。具体地,当第三帧和第四帧之间的运动程度大于运动程度阈值时,目标对象的运动状态为运动;当第三帧和第四帧之间的运动程度小于或等于运动程度阈值时,目标对象的运动状态为静止。
运动状态包括运动、静止等状态。运动程度阈值可以根据用户需要进行设定。
当第三帧和第四帧之间的运动程度大于运动程度阈值时,目标对象的运动速度较大,目标对象的运动状态为运动。当第三帧和第四帧之间的运动程度小于或等于运动程度阈值时,目标对象的运动速度较小,目标对象的运动状态为静止。
在一个实施例中,根据目标对象在第三帧和第四帧之间的运动程度确定第一帧率,包括:预先将运动程度划分为至少两个运动等级;每个运动等级对应一个帧率;将目标对象在第三帧和第四帧之间的运动程度与至少两个运动等级进行匹配,获取目标对象在第三帧和第四帧之间的运动程度所在的运动等级作为目标运动等级;将目标运动等级对应的帧率作为第一帧率。
电子设备可以根据用户需要将运动程度进行划分,得到至少两个运动等级,再对每一个运动等级设定一个帧率。需要注意的是,运动程度越大,运动等级越高,则设定的帧率越大。
可以理解的是,在原始视频中,目标对象在相邻的视频片段之间的运动情况具有连贯性,目标对象在相邻的视频片段中的运动程度较接近,因此预先将运动程度划分为至少两个运动等级之后,相邻的且运动情况较接近的视频片段所获取到第一帧率相同,从而可以在相邻的视频片段中插入相同数目的插值帧,在播放该插帧得到的相邻的视频片段时也更加清晰、流畅。
在一个实施例中,上述方法还包括:获取电子设备运行视频的目标模式;获取目标模式对应的目标帧率范围。基于第二运动矢量,确定第一帧率,包括:基于第三帧和第四帧之间的第二运动矢量,在目标帧率范围内确定第三帧和第四帧之间的第一帧率。
电子设备运行视频的目标模式可以包括低功耗模式、高刷新率模式。低功耗模式的功耗低,刷新率低,对应的目标帧率范围内的各个帧率的均值也低;高刷新率模式的功耗高,刷新率高,对应的目标帧率范围内的各个帧率的均值也高,视频也更加清晰、流畅。
在本实施例中,获取电子设备运行视频的目标模式,获取目标模式对应的目标帧率范围,从而可以在目标帧率范围内确定第一帧率,确定的第一帧率符合该目标模式,提高了第一帧率的准确性,最终使得插帧得到的目标视频也符合该目标模式。
在一个实施例中,目标模式包括第一模式和第二模式,第一模式的功耗比第二模式的功耗低,第二模式的刷新率比第一模式的刷新率高。
第一模式即低功耗模式,第二模式即高刷新率模式。
获取目标模式对应的目标帧率范围,包括:当目标模式是第一模式时,获取第一模式的第一帧率范围;当目标模式是第二模式时,获取第二模式的第二帧率范围;第一帧率范围内的最大值小于第二帧率范围内的最小值。
可以理解的是,第一模式的功耗低,刷新率低,但是为了使得视频在播放时符合人眼的视觉停留效应,电子设备的显示器的刷新率存在最低刷新率,再获取第一阈值,基于最低刷新率与第一阈值生成第一帧率范围;第一阈值大于最低刷新率。
例如,最低刷新率为TH1,第一阈值为TH2,TH2大于TH1,则第一帧率范围是[TH1,TH2]。
可以理解的是,第二模式的功耗高,刷新率高,而由于电子设备的显示器的硬件限制,电子设备的显示器的刷新率存在最高刷新率,再获取第二阈值,基于最高刷新率与第二阈值生成第二帧率范围;第二阈值小于最低刷新率。
例如,第一阈值为TH3,最高刷新率为TH4,TH3小于TH4,则第一帧率范围是[TH3,TH4]。
第一阈值即第一帧率范围内的最大值,第二阈值即第二帧率范围内的最小值,第一帧率范围内的最大值小于第二帧率范围内的最小值,即第一阈值小于第二阈值。
基于第三帧和第四帧之间的第二运动矢量,在目标帧率范围内确定第三帧和第四帧之间的第一帧率,包括:当目标模式是第一模式时,基于第三帧和第四帧之间的第二运动矢量,在第一帧率范围内确定第三帧和第四帧之间的第一帧率;当目标模式是第二模式时,基于第三帧和第四帧之间的第二运动矢量,在第二帧率范围内确定第三帧和第四帧之间的第一帧率。
在本实施例中,目标模式包括第一模式和第二模式,当目标模式是第一模式时,可以降低图像处理器的功耗,降低电子设备的功耗;当目标模式是第二模式时,可以生成帧率更高的视频片段,提高视频播放时的清晰度和流畅度。
在一个实施例中,上述方法还包括:获取第一帧和第二帧,以及第一帧和第二帧之间的插值帧,得到视频片段;将第一运动矢量作为新的第二运动矢量,返回执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,直到对原始视频中的所有图像帧进行插帧完成时,根据各个视频片段生成目标视频。
电子设备获取第一帧和第二帧,以及第一帧和第二帧之间的插值帧,将插值帧插入第一帧和第二帧之间,得到视频片段;将第一运动矢量作为新的第二运动矢量,返回执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,获取下一个视频片段;以此类推,直到对原始视频中的所有图像帧进行插帧完成时,获取插帧得到的各个视频片段,将各个视频片段按照生成的时间顺序首尾连接,可以生成目标视频。
进一步地,获取刷新率,将目标视频进行编解码得到新的目标视频;新的目标视频的帧率与刷新率一致,电子设备可以准确播放该新的目标视频。
在一个实施例中,上述方法还包括:获取目标视频的目标帧率;基于目标帧率,确定与目标帧率一致的刷新率。
刷新率是电子设备的显示器每秒钟刷新页面的次数。目标视频的目标帧率必要与电子设备的显示器的刷新率一致,才能准确播放该目标视频。
可以理解的是,电子设备的显示器存在最高的刷新率TH1,同时为了使得播放的视频符合人眼的视觉停留效应,也存在最低的刷新率TH2,因此最终确定的刷新率小于或等于TH1,且大于或等于TH2。
在本实施例中,电子设备的显示器具有自适应可变刷新率,当获取到目标视频的目标帧率时,确定与目标帧率一致的刷新率,可以在播放目标视频时准确进行播放。
在一个实施例中,基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧,包括:获取原始视频的第二帧率;基于第一帧率和第二帧率确定第一帧和第二帧之间的插值帧数目;根据第一运动矢量生成第一帧和第二帧之间插值帧数目的插值帧。
第二帧率指的是图像处理器处理原始视频时每秒钟能够更新的图像帧的次数。
根据第一帧和第二帧之间的第一运动矢量,以及第一帧和第二帧之间的插值帧数目,可以对第一帧和第二帧进行运动补偿,生成插值帧数目的插值帧。
例如,原始视频的第二帧率是24HZ,第一帧是原始视频的第5帧,第二帧是原始视频的第8帧,则第5帧至第8帧所包括的4帧图像帧的视频片段的帧率也为24HZ,而基于第一帧和第二帧之间的第一运动矢量所确定的第一帧率是30HZ,也就是说,需要将第5帧至第8帧所包括的4帧图像帧进行插帧得到5帧图像帧。因此,第5帧和第8帧之间的插值帧数目是3,去除第5帧与第8帧之间的第6帧和第7帧,生成3帧插值帧并插入第5帧和第8帧之间。
在本实施例中,获取原始视频的第二帧率;基于第一帧率和第二帧率确定第一帧和第二帧之间的插值帧数目;根据第一运动矢量生成第一帧和第二帧之间插值帧数目的插值帧,可以更准确的生成对应插值帧数目的插值帧。
在一个实施例中,如图9所示,获取原始视频902,对原始视频执行步骤904至910,可以生成目标视频912。获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量,将上一次插值帧生成过程中所确定的第一帧和第二帧分别定义为第三帧和第四帧,执行步骤904,基于第三帧和第四帧之间的第二运动矢量,确定目标对象在第三帧和第四帧之间的运动程度。
执行步骤906,确定帧率,即根据目标对象在第三帧和第四帧之间的运动程度确定第一帧率。执行步骤908,基于第一帧率确定原始视频中所包括的第一帧和第二帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。执行步骤910,基于第一帧率和第一运动矢量进行运动补偿,生成第一帧和第二帧之间的插值帧;根据原始视频以及各个插值帧,可以生成目标视频912。
应该理解的是,虽然图2、图4和图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4和图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图10为一个实施例的插值帧的生成装置的结构框图。如图10所示,提供了一种插值帧的生成装置1000,包括:图像帧获取模块1002、运动估计模块1004、第一帧率确定模块1006和差值帧生成模块1008,其中:
图像帧获取模块1002,用于获取原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧。
运动估计模块1004,用于对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。
第一帧率确定模块1006,用于基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率。
差值帧生成模块1008,用于基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧。
上述插值帧的生成装置,获取原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;第一运动矢量表示第一帧和第二帧之间的运动情况,基于第一帧和第二帧之间的第一运动矢量,即基于第一帧和第二帧之间的运动情况,可以更准确地确定第一帧和第二帧之间的第一帧率,再基于第一帧率和第一运动矢量,生成更准确的第一帧和第二帧之间的插值帧。
并且,生成的插值帧可以插入到第一帧和第二帧之间,则第一帧和第二帧之间的视频片段的帧率越高,该视频片段在播放时也更加清晰、流畅。
在一个实施例中,上述插值帧生成装置1000还包括第一帧和第二帧确定模块,用于获取预设帧率,以及原始视频的第二帧率;基于预设帧率和第二帧率确定插帧倍率;根据插帧倍率确定第一帧和第二帧。
在一个实施例中,上述第一帧和第二帧确定模块还用于当插帧倍率是整数倍率时,获取原始视频中未进行插帧处理的相邻的两帧,分别作为第一帧和第二帧;当插帧倍率是小数倍率时,确定预设帧率和第二帧率之间的最大公约数,将第二帧率除以最大公约数,得到第一数量,并获取原始视频中未进行插帧处理的第一数量的图像帧,第一数量的图像帧中确定第一帧和第二帧;第一数量大于2。
在一个实施例中,上述第一帧和第二帧确定模块还用于按照原始视频中各个帧的排列顺序,从第一数量的图像帧中获取首尾两帧,分别作为第一帧和第二帧。
在一个实施例中,上述插值帧生成装置1000还包括目标视频生成模块,用于去除第一数量的图像帧中除首尾两帧之外的其他帧,将插值帧插入第一帧和第二帧之间,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到对原始视频中的所有图像帧进行插帧完成时,生成目标视频。
在一个实施例中,第一帧和第二帧均包括目标对象。上述第一帧率确定模块1006还用于基于第一帧和第二帧之间的第一运动矢量,确定目标对象在第一帧和第二帧之间的目标运动程度;根据目标运动程度确定第一帧和第二帧之间的第一帧率;目标运动程度与第一帧率成正相关。
在一个实施例中,第一帧和第二帧之间的第一运动矢量包括目标对象对应区域的局部运动矢量,以及第一帧和第二帧之间的全局运动矢量。上述第一帧率确定模块1006还用于根据目标对象对应的局部运动矢量,确定目标对象的第一运动程度;根据第一帧和第二帧之间的全局运动矢量,确定第一帧和第二帧之间的第二运动程度;基于第一运动程度和第二运动程度,确定目标对象在第一帧和第二帧之间的目标运动程度。
在一个实施例中,上述第一帧率确定模块1006还用于预先将运动程度划分为至少两个运动等级;每个运动等级对应一个帧率;将目标运动程度与至少两个运动等级进行匹配,获取目标运动程度所在的运动等级作为目标运动等级;将目标运动等级对应的帧率作为第一帧和第二帧之间的第一帧率。
在一个实施例中,上述插值帧生成装置1000还包括判断模块,用于对第一帧中的目标对象和第二帧中的目标对象进行差分处理,得到目标对象的参考运动程度;将参考运动程度与目标运动程度进行差值处理,得到运动差值;当运动差值小于运动差值阈值时,执行根据目标运动程度确定第一帧和第二帧之间的第一帧率步骤;当运动差值大于或等于运动差值阈值时,基于目标运动程度和参考运动程度确定新的目标运动程度。
在一个实施例中,上述插值帧生成装置1000还包括目标模式获取模块,用于获取电子设备运行视频的目标模式;获取目标模式对应的目标帧率范围。上述第一帧率确定模块1006还用于基于第一帧和第二帧之间的第一运动矢量,在目标帧率范围内确定第一帧和第二帧之间的第一帧率。
在一个实施例中,目标模式包括第一模式和第二模式,第一模式的功耗比第二模式的功耗低,第二模式的刷新率比第一模式的刷新率高。上述目标模式获取模块还用于当目标模式是第一模式时,获取第一模式的第一帧率范围;当目标模式是第二模式时,获取第二模式的第二帧率范围;第一帧率范围内的最大值小于第二帧率范围内的最小值。上述第一帧率确定模块1006还用于当目标模式是第一模式时,基于第一帧和第二帧之间的第一运动矢量,在第一帧率范围内确定第一帧和第二帧之间的第一帧率;当目标模式是第二模式时,基于第一帧和第二帧之间的第一运动矢量,在第二帧率范围内确定第一帧和第二帧之间的第一帧率。
在一个实施例中,上述插值帧生成装置1000还包括匹配模块,用于获取上一次插值帧生成过程中得到的第二运动矢量;将第一运动矢量和第二运动矢量进行匹配,当第一运动矢量和第二运动矢量相匹配时,执行基于第一帧和第二帧之间的第一运动矢量,确定第一帧和第二帧之间的第一帧率步骤。
在一个实施例中,上述匹配模块还用于当第一运动矢量和第二运动矢量不匹配时,重新确定第一帧和第二帧中的至少一帧,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到第一运动矢量和第二运动矢量相匹配。
在一个实施例中,上述目标视频生成模块还用于获取第一帧和第二帧,以及第一帧和第二帧之间的插值帧,得到视频片段,并返回执行获取原始视频中所包括的第一帧和第二帧步骤,直到对原始视频中的所有图像帧进行插帧完成时,根据各个视频片段生成目标视频。
在一个实施例中,上述插值帧生成装置1000还包括刷新率确定模块,用于获取目标视频的目标帧率;基于目标帧率,确定与目标帧率一致的刷新率。
在一个实施例中,上述差值帧生成模块1008还用于获取原始视频的第二帧率;基于第一帧率和第二帧率确定第一帧和第二帧之间的插值帧数目;根据第一运动矢量生成第一帧和第二帧之间插值帧数目的插值帧。
图11为另一个实施例的插值帧的生成装置的结构框图。如图11所示,提供了一种插值帧的生成装置1100,包括:第二运动矢量获取模块1102、第一帧率确定模块1104、图像帧获取模块1106、运动估计模块1108和差值帧生成模块1110,其中:
第二运动矢量获取模块1102,用于获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量。
第一帧率确定模块1104,用于基于第二运动矢量,确定第一帧率。
图像帧获取模块1106,用于基于第一帧率确定原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧。
运动估计模块1108,用于对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量。
差值帧生成模块1110,用于基于第一帧率和第一运动矢量,生成第一帧和第二帧之间的插值帧。
上述插值帧的生成装置,获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;基于第二运动矢量,确定第一帧率;基于第一帧率确定原始视频中所包括的第一帧和第二帧;第一帧和第二帧间隔预设数量的帧;对第一帧和第二帧进行运动估计,得到第一帧和第二帧之间的第一运动矢量;第一运动矢量表示第一帧和第二帧之间的运动情况,而基于第一帧和第二帧之间的运动情况和第一帧率,可以更准确地生成第一帧和第二帧之间的插值帧。
并且,生成的插值帧可以插入到第一帧和第二帧之间,则第一帧和第二帧之间的视频片段的帧率越高,该视频片段在播放时也更加清晰、流畅。
在一个实施例中,上述插值帧的生成装置1100还包括目标视频生成模块,用于获取第一帧和第二帧,以及第一帧和第二帧之间的插值帧,得到视频片段;将第一运动矢量作为新的第二运动矢量,返回执行获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,直到对原始视频中的所有图像帧进行插帧完成时,根据各个视频片段生成目标视频。
在一个实施例中,上述图像帧获取模块1106还用于获取原始视频的第二帧率;基于第一帧率和第二帧率确定插帧倍率;根据插帧倍数确定第一帧和第二帧。
上述插值帧的生成装置中各个模块的划分仅仅用于举例说明,在其他实施例中,可将插值帧的生成装置按照需要划分为不同的模块,以完成上述插值帧的生成装置的全部或部分功能。
关于插值帧的生成装置的具体限定可以参见上文中对于插值帧的生成方法的限定,在此不再赘述。上述插值帧的生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图12为一个实施例中电子设备的内部结构示意图。如图12所示,该电子设备包括通过系统总线连接的处理器和存储器。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种插值帧的生成方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该电子设备可以是手机、平板电脑、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 (22)
1.一种插值帧的生成方法,其特征在于,包括:
获取预设帧率,以及原始视频的第二帧率;基于所述预设帧率和所述第二帧率确定插帧倍率;根据所述插帧倍率确定原始视频中的第一帧和第二帧;所述第二帧率是图像处理器处理所述原始视频时每秒钟能够更新的图像帧的次数,所述插帧倍率指的是插帧之后得到的视频片段的帧率与插帧之前的视频片段的帧率之间的倍率;
获取原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率;
基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
2.根据权利要求1所述的方法,其特征在于,所述根据所述插帧倍率确定第一帧和第二帧,包括:
当所述插帧倍率是整数倍率时,获取所述原始视频中未进行插帧处理的相邻的两帧,分别作为第一帧和第二帧;
当所述插帧倍率是小数倍率时,确定所述预设帧率和所述第二帧率之间的最大公约数,将所述第二帧率除以所述最大公约数,得到第一数量,并获取所述原始视频中未进行插帧处理的第一数量的图像帧,从所述第一数量的图像帧中确定第一帧和第二帧;所述第一数量大于2。
3.根据权利要求2所述的方法,其特征在于,所述从所述第一数量的图像帧中确定第一帧和第二帧,包括:
按照原始视频中各个帧的排列顺序,从所述第一数量的图像帧中获取首尾两帧,分别作为第一帧和第二帧。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
去除所述第一数量的图像帧中除首尾两帧之外的其他帧,将所述插值帧插入所述第一帧和所述第二帧之间,并返回执行所述获取原始视频中所包括的第一帧和第二帧步骤,直到对所述原始视频中的所有图像帧进行插帧完成时,生成目标视频。
5.根据权利要求1所述的方法,其特征在于,所述第一帧和所述第二帧均包括目标对象;
所述基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率,包括:
基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述目标对象在所述第一帧和所述第二帧之间的目标运动程度;
根据所述目标运动程度确定所述第一帧和所述第二帧之间的第一帧率;所述目标运动程度与所述第一帧率成正相关。
6.根据权利要求5所述的方法,其特征在于,所述第一帧和所述第二帧之间的第一运动矢量包括所述目标对象对应区域的局部运动矢量,以及所述第一帧和所述第二帧之间的全局运动矢量;
所述基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述目标对象在所述第一帧和所述第二帧之间的目标运动程度,包括:
根据所述目标对象对应的局部运动矢量,确定所述目标对象的第一运动程度;
根据所述第一帧和所述第二帧之间的全局运动矢量,确定所述第一帧和所述第二帧之间的第二运动程度;
基于所述第一运动程度和所述第二运动程度,确定所述目标对象在所述第一帧和所述第二帧之间的目标运动程度。
7.根据权利要求5所述的方法,其特征在于,所述根据所述目标运动程度确定所述第一帧和所述第二帧之间的第一帧率,包括:
预先将运动程度划分为至少两个运动等级;每个所述运动等级对应一个帧率;
将所述目标运动程度与至少两个所述运动等级进行匹配,获取所述目标运动程度所在的运动等级作为目标运动等级;
将所述目标运动等级对应的帧率作为所述第一帧和所述第二帧之间的第一帧率。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
对所述第一帧中的目标对象和所述第二帧中的目标对象进行差分处理,得到所述目标对象的参考运动程度;
将所述参考运动程度与所述目标运动程度进行差值处理,得到运动差值;
当所述运动差值小于运动差值阈值时,执行所述根据所述目标运动程度确定所述第一帧和所述第二帧之间的第一帧率步骤;
当所述运动差值大于或等于所述运动差值阈值时,基于所述目标运动程度和所述参考运动程度确定新的目标运动程度。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取电子设备运行视频的目标模式;
获取所述目标模式对应的目标帧率范围;
所述基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率,包括:
基于所述第一帧和所述第二帧之间的第一运动矢量,在所述目标帧率范围内确定所述第一帧和所述第二帧之间的第一帧率。
10.根据权利要求9所述的方法,其特征在于,所述目标模式包括第一模式和第二模式,所述第一模式的功耗比所述第二模式的功耗低,所述第二模式的刷新率比所述第一模式的刷新率高;
所述获取所述目标模式对应的目标帧率范围,包括:
当所述目标模式是所述第一模式时,获取所述第一模式的第一帧率范围;
当所述目标模式是所述第二模式时,获取所述第二模式的第二帧率范围;所述第一帧率范围内的最大值小于所述第二帧率范围内的最小值;
所述基于所述第一帧和所述第二帧之间的第一运动矢量,在所述目标帧率范围内确定所述第一帧和所述第二帧之间的第一帧率,包括:
当所述目标模式是所述第一模式时,基于所述第一帧和所述第二帧之间的第一运动矢量,在所述第一帧率范围内确定所述第一帧和所述第二帧之间的第一帧率;
当所述目标模式是所述第二模式时,基于所述第一帧和所述第二帧之间的第一运动矢量,在所述第二帧率范围内确定所述第一帧和所述第二帧之间的第一帧率。
11.根据权利要求1所述的方法,其特征在于,所述对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量之后,还包括:
获取上一次插值帧生成过程中得到的第二运动矢量;
将所述第一运动矢量和所述第二运动矢量进行匹配,当所述第一运动矢量和所述第二运动矢量相匹配时,执行基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率步骤。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当所述第一运动矢量和所述第二运动矢量不匹配时,重新确定所述第一帧和所述第二帧中的至少一帧,并返回执行所述获取原始视频中所包括的第一帧和第二帧步骤,直到所述第一运动矢量和所述第二运动矢量相匹配。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一帧和所述第二帧,以及所述第一帧和所述第二帧之间的插值帧,得到视频片段,并返回执行所述获取原始视频中所包括的第一帧和第二帧步骤,直到对所述原始视频中的所有图像帧进行插帧完成时,根据各个视频片段生成目标视频。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
获取所述目标视频的目标帧率;
基于所述目标帧率,确定与所述目标帧率一致的刷新率。
15.根据权利要求1所述的方法,其特征在于,所述基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧,包括:
获取原始视频的第二帧率;
基于所述第一帧率和所述第二帧率确定所述第一帧和所述第二帧之间的插值帧数目;
根据所述第一运动矢量生成所述第一帧和所述第二帧之间所述插值帧数目的插值帧。
16.一种插值帧的生成方法,其特征在于,包括:
获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;
基于所述第二运动矢量,确定第一帧率;
基于所述第一帧率确定所述原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
17.根据权利要求16所述的方法,其特征在于,所述基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧之后,还包括:
获取所述第一帧和所述第二帧,以及所述第一帧和所述第二帧之间的插值帧,得到视频片段;
将所述第一运动矢量作为新的第二运动矢量,返回执行所述获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量步骤,直到对所述原始视频中的所有图像帧进行插帧完成时,根据各个视频片段生成目标视频。
18.根据权利要求16所述的方法,其特征在于,所述基于所述第一帧率确定所述原始视频中所包括的第一帧和第二帧,包括:
获取所述原始视频的第二帧率;
基于所述第一帧率和所述第二帧率确定插帧倍率;
根据所述插帧倍率确定第一帧和第二帧。
19.一种插值帧的生成装置,其特征在于,包括:
第一帧和第二帧确定模块,用于获取预设帧率,以及原始视频的第二帧率;基于所述预设帧率和所述第二帧率确定插帧倍率;根据所述插帧倍率确定原始视频中的第一帧和第二帧;所述第二帧率是图像处理器处理所述原始视频时每秒钟能够更新的图像帧的次数,所述插帧倍率指的是插帧之后得到的视频片段的帧率与插帧之前的视频片段的帧率之间的倍率;
图像帧获取模块,用于获取原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
运动估计模块,用于对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
第一帧率确定模块,用于基于所述第一帧和所述第二帧之间的第一运动矢量,确定所述第一帧和所述第二帧之间的第一帧率;
差值帧生成模块,用于基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
20.一种插值帧的生成装置,其特征在于,包括:
第二运动矢量获取模块,用于获取原始视频中的上一次插值帧生成过程中得到的第二运动矢量;
第一帧率确定模块,用于基于所述第二运动矢量,确定第一帧率;
图像帧获取模块,用于基于所述第一帧率确定所述原始视频中所包括的第一帧和第二帧;所述第一帧和所述第二帧间隔预设数量的帧;
运动估计模块,用于对所述第一帧和所述第二帧进行运动估计,得到所述第一帧和所述第二帧之间的第一运动矢量;
差值帧生成模块,用于基于所述第一帧率和所述第一运动矢量,生成所述第一帧和所述第二帧之间的插值帧。
21.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至18中任一项所述的插值帧的生成方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至18中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010406948.2A CN111586409B (zh) | 2020-05-14 | 2020-05-14 | 插值帧的生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010406948.2A CN111586409B (zh) | 2020-05-14 | 2020-05-14 | 插值帧的生成方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111586409A CN111586409A (zh) | 2020-08-25 |
CN111586409B true CN111586409B (zh) | 2022-06-10 |
Family
ID=72118938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010406948.2A Active CN111586409B (zh) | 2020-05-14 | 2020-05-14 | 插值帧的生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111586409B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532880B (zh) * | 2020-11-26 | 2022-03-11 | 展讯通信(上海)有限公司 | 视频处理方法、装置、终端设备及存储介质 |
CN112532907A (zh) * | 2020-11-30 | 2021-03-19 | 湖南国科微电子股份有限公司 | 一种视频帧频提升方法、装置、设备及介质 |
CN114339339B (zh) * | 2021-01-14 | 2024-02-23 | 海信视像科技股份有限公司 | 一种显示设备、外接设备及播放模式切换方法 |
CN113099132B (zh) * | 2021-04-19 | 2023-03-21 | 深圳市帧彩影视科技有限公司 | 视频处理方法、装置、电子设备、存储介质及程序产品 |
CN115083326A (zh) * | 2022-06-15 | 2022-09-20 | 武汉华星光电半导体显示技术有限公司 | 显示装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9247243B1 (en) * | 2012-01-02 | 2016-01-26 | Marvell International Ltd. | Interpolated video error concealment |
CN105828184A (zh) * | 2015-08-31 | 2016-08-03 | 维沃移动通信有限公司 | 一种视频处理方法及移动终端 |
CN106210767A (zh) * | 2016-08-11 | 2016-12-07 | 上海交通大学 | 一种智能提升运动流畅性的视频帧率上变换方法及系统 |
CN109803175A (zh) * | 2019-03-12 | 2019-05-24 | 京东方科技集团股份有限公司 | 视频处理方法及装置、设备、存储介质 |
CN110933497A (zh) * | 2019-12-10 | 2020-03-27 | Oppo广东移动通信有限公司 | 视频图像数据插帧处理方法及相关设备 |
-
2020
- 2020-05-14 CN CN202010406948.2A patent/CN111586409B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9247243B1 (en) * | 2012-01-02 | 2016-01-26 | Marvell International Ltd. | Interpolated video error concealment |
CN105828184A (zh) * | 2015-08-31 | 2016-08-03 | 维沃移动通信有限公司 | 一种视频处理方法及移动终端 |
CN106210767A (zh) * | 2016-08-11 | 2016-12-07 | 上海交通大学 | 一种智能提升运动流畅性的视频帧率上变换方法及系统 |
CN109803175A (zh) * | 2019-03-12 | 2019-05-24 | 京东方科技集团股份有限公司 | 视频处理方法及装置、设备、存储介质 |
CN110933497A (zh) * | 2019-12-10 | 2020-03-27 | Oppo广东移动通信有限公司 | 视频图像数据插帧处理方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111586409A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111586409B (zh) | 插值帧的生成方法、装置、电子设备和存储介质 | |
US10789456B2 (en) | Facial expression recognition utilizing unsupervised learning | |
US10929720B2 (en) | Image processing method, image processing apparatus, and computer storage medium | |
US7899122B2 (en) | Method, apparatus and computer program product for generating interpolation frame | |
US10963993B2 (en) | Image noise intensity estimation method, image noise intensity estimation device, and image recognition device | |
EP4198875A1 (en) | Image fusion method, and training method and apparatus for image fusion model | |
CN108805265B (zh) | 神经网络模型处理方法和装置、图像处理方法、移动终端 | |
CN113542651B (zh) | 模型训练方法、视频插帧方法及对应装置 | |
CN111028137A (zh) | 图像处理方法、装置、电子设备和计算机可读存储介质 | |
CN114586337B (zh) | 视频防抖优化处理方法和装置、电子设备 | |
KR20190077428A (ko) | 스트리밍된 메타데이터를 사용한 비디오 프레임 레이트 변환 | |
EP2629531A1 (en) | Method for converting 2d into 3d based on image motion information | |
CN111586321B (zh) | 视频生成方法、装置、电子设备和计算机可读存储介质 | |
CN111652921A (zh) | 一种单目深度预测模型的生成方法及单目深度预测方法 | |
CN108053444B (zh) | 瞳孔定位方法及装置、设备和存储介质 | |
CN115375536A (zh) | 图像处理方法及设备 | |
Han et al. | Hybrid high dynamic range imaging fusing neuromorphic and conventional images | |
CN111614911A (zh) | 图像生成方法和装置、电子设备及存储介质 | |
CN116170650A (zh) | 视频插帧方法及装置 | |
CN111462021B (zh) | 图像处理方法、装置、电子设备和计算机可读存储介质 | |
CN113870302A (zh) | 运动估计方法、芯片、电子设备以及存储介质 | |
CN115471413A (zh) | 图像处理方法及装置、计算机可读存储介质和电子设备 | |
CN111340101B (zh) | 稳定性评估方法、装置、电子设备和计算机可读存储介质 | |
CN108600762B (zh) | 结合运动补偿和神经网络算法的递进式视频帧生成方法 | |
CN113781346A (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 |