本公开涉及视频处理领域,尤其涉及一种改善插帧效果的方法和装置。
背景技术:
视频帧率提升是一种将低帧率视频转换为高帧率视频的视频后处理方法,利用相邻帧原始图像之间的时域相关性确定内插帧图像,然后将内插帧图像插入相邻帧原始图像之间以达到增加帧率的目的。例如,将视频帧率从30fps(framespersecond,帧每秒)提升至60fps。视频帧率越高,视频画面中动作越流畅,用户观看体验越好。
目前常用的视频帧率提升方法为基于光流的光流插帧法,通过计算视频中相邻帧原始图像之间的光流,进而生成相邻帧原始图像之间的内插帧图像。实际应用中,由于无法确保相邻帧原始图像之间的光流是否准确,导致光流插帧之后的高帧率视频中可能会出现物体边缘破碎等影响用户观看体验的现象。
因此,亟需一种改善插帧效果的方法。
技术实现要素:
有鉴于此,本公开提出了一种改善插帧效果的方法和装置,用于改善基于光流插帧法得到的内插帧图像的插帧质量,从而提高用户对插帧之后得到的高帧率视频的观看体验。
根据本公开的第一方面,提供了一种改善插帧效果的方法,包括:基于光流插帧法,确定相邻两帧原始图像之间的内插帧图像;判断所述内插帧图像的插帧质量是否达标;当所述内插帧图像的插帧质量不达标时,更新所述内插帧图像。
在一种可能的实现方式中,判断所述内插帧图像的插帧质量是否达标,包括:至少根据所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,其中,所述像素质量与所述内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重相关。
在一种可能的实现方式中,至少根据所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,包括:确定所述内插帧图像中包括的第一类内插像素点对应的第一数目,其中,所述第一类内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;当所述第一数目大于第二阈值时,确定所述内插帧图像的插帧质量不达标。
在一种可能的实现方式中,至少根据所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,包括:根据所述相邻两帧原始图像中至少一帧原始图像中像素点的光流值,以及所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,根据所述相邻两帧原始图像中至少一帧原始图像中像素点的光流值,以及所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,包括:针对所述相邻两帧原始图像中的至少一帧原始图像,确定所述至少一帧原始图像中包括的第一类像素点对应的第二数目,其中,所述第一类像素点对应的光流值大于第三阈值;确定所述内插帧图像中包括的第一类内插像素点对应的第三数目,其中,所述第一类内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;当所述第二数目大于第四阈值,且所述第三数目大于第五阈值时,确定所述内插帧图像的插帧质量不达标。
在一种可能的实现方式中,至少根据所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,包括:根据所述相邻两帧原始图像之间的光流一致性,以及所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,根据所述相邻两帧原始图像之间的光流一致性,以及所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,包括:针对所述相邻两帧原始图像中的至少一帧原始图像,确定所述至少一帧原始图像中包括的第二类像素点对应的第四数目,其中,所述第二类像素点与所述第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性;确定所述内插帧图像中包括的第一类内插像素点对应的第五数目,其中,所述第一类内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;当所述第四数目大于第六阈值,且所述第五数目大于第七阈值时,确定所述内插帧图像的插帧质量不达标。
在一种可能的实现方式中,所述相邻两帧原始图像为第t帧原始图像和第t+1帧原始图像;所述第二类像素点与所述第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性,包括下述至少一种:所述第二类像素点位于第t帧原始图像,所述第二类像素点的前向光流与所述第二类像素点在第t+1帧原始图像中的映射像素点的后向光流之间的光流绝对值之差大于第八阈值;所述第二类像素点位于第t+1帧原始图像,所述第二类像素点的后向光流与所述第二类像素点在第t帧原始图像中的映射像素点的前向光流之间的光流绝对值之差大于所述第八阈值。
在一种可能的实现方式中,当所述内插帧图像的插帧质量不达标时,更新所述内插帧图像,包括:基于光流插帧法以外的其它插帧法,重新确定所述内插帧图像中任一内插像素点对应的像素值。
在一种可能的实现方式中,还包括:当所述内插帧图像的插帧质量达标,且所述内插帧图像中包括所述第一类内插像素点时,基于光流插帧法以外的其它插帧法,重新确定所述第一类内插像素点对应的像素值。
在一种可能的实现方式中,基于光流插帧法,确定相邻两帧原始图像之间的内插帧图像,包括:基于光流插帧法,针对所述内插帧图像中的任一内插像素点,确定所述内插像素点在所述相邻两帧原始图像中的多个映射像素点;确定所述多个映射像素点中任一映射像素点对应的权重;根据所述任一映射像素点对应的权重和像素值,确定所述内插像素点对应的像素值。
根据本公开的第二方面,提供了一种改善插帧效果的装置,包括:确定模块,用于基于光流插帧法,确定相邻两帧原始图像之间的内插帧图像;判断模块,用于判断所述内插帧图像的插帧质量是否达标;更新模块,用于当所述内插帧图像的插帧质量不达标时,更新所述内插帧图像。
在一种可能的实现方式中,所述判断模块具体用于:至少根据所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标,其中,所述像素质量与所述内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重相关。
在一种可能的实现方式中,所述判断模块包括:第一确定子模块,用于确定所述内插帧图像中包括的第一类内插像素点对应的第一数目,其中,所述第一类内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;第二确定子模块,用于当所述第一数目大于第二阈值时,确定所述内插帧图像的插帧质量不达标。
在一种可能的实现方式中,所述判断模块具体用于:根据所述相邻两帧原始图像中至少一帧原始图像中像素点的光流值,以及所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,所述判断模块包括:第三确定子模块,用于针对所述相邻两帧原始图像中的至少一帧原始图像,确定所述至少一帧原始图像中包括的第一类像素点对应的第二数目,其中,所述第一类像素点对应的光流值大于第三阈值;第四确定子模块,用于确定所述内插帧图像中包括的第一类内插像素点对应的第三数目,其中,所述第一类内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;第五确定子模块,用于当所述第二数目大于第四阈值,且所述第三数目大于第五阈值时,确定所述内插帧图像的插帧质量不达标。
在一种可能的实现方式中,所述判断模块具体用于:根据所述相邻两帧原始图像之间的光流一致性,以及所述内插帧图像中内插像素点的像素质量,判断所述内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,所述判断模块包括:第六确定子模块,用于针对所述相邻两帧原始图像中的至少一帧原始图像,确定所述至少一帧原始图像中包括的第二类像素点对应的第四数目,其中,所述第二类像素点与所述第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性;第七确定子模块,用于确定所述内插帧图像中包括的第一类内插像素点对应的第五数目,其中,所述第一类内插像素点在所述相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;第八确定子模块,用于当所述第四数目大于第六阈值,且所述第五数目大于第七阈值时,确定所述内插帧图像的插帧质量不达标。
在一种可能的实现方式中,所述相邻两帧原始图像为第t帧原始图像和第t+1帧原始图像;所述第二类像素点与所述第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性,包括下述至少一种:所述第二类像素点位于第t帧原始图像,所述第二类像素点的前向光流与所述第二类像素点在第t+1帧原始图像中的映射像素点的后向光流之间的光流绝对值之差大于第八阈值;所述第二类像素点位于第t+1帧原始图像,所述第二类像素点的后向光流与所述第二类像素点在第t帧原始图像中的映射像素点的前向光流之间的光流绝对值之差大于所述第八阈值。
在一种可能的实现方式中,所述更新模块具体用于:基于光流插帧法以外的其它插帧法,重新确定所述内插帧图像中任一内插像素点对应的像素值。
在一种可能的实现方式中,所述更新模块还用于:当所述内插帧图像的插帧质量达标,且所述内插帧图像中包括所述第一类内插像素点时,基于光流插帧法以外的其它插帧法,重新确定所述第一类内插像素点对应的像素值。
在一种可能的实现方式中,所述确定模块包括:第九确定子模块,用于基于光流插帧法,针对所述内插帧图像中的任一内插像素点,确定所述内插像素点在所述相邻两帧原始图像中的多个映射像素点;第十确定子模块,用于确定所述多个映射像素点中任一映射像素点对应的权重;第十一确定子模块,用于根据所述任一映射像素点对应的权重和像素值,确定所述内插像素点对应的像素值。
根据本公开的第三方面,提供了一种改善插帧效果的装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述第一方面所述的改善插帧效果的方法。
根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述第一方面所述的改善插帧效果的方法。
基于光流插帧法确定相邻两帧原始图像之间的内插帧图像之后,判断该内插帧图像的插帧质量是否达标,并在该内插帧图像的插帧质量不达标时,更新该内插帧图像,从而可以改善基于光流插帧法得到的内插帧图像的插帧质量,有效提高用户对插帧之后得到的高帧率视频的观看体验。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出本公开一实施例的改善插帧效果的方法的流程示意图;
图2示出本公开一实施例的基于光流插帧法确定相邻两帧原始图像之间的内插帧图像的示意图;
图3示出本公开一实施例的改善插帧效果的方法的示意图;
图4示出本公开一实施例的改善插帧效果的装置的结构示意图;
图5示出本公开一实施例的电子设备的结构示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。所属领域技术人员可以理解,和/或表示所连接对象的至少其中之一。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出本公开一实施例的改善插帧效果的方法的流程示意图。如图1所示,该方法可以包括:
步骤s11,基于光流插帧法,确定相邻两帧原始图像之间的内插帧图像。
步骤s12,判断内插帧图像的插帧质量是否达标。
步骤s13,当内插帧图像的插帧质量不达标时,更新内插帧图像。
在一种可能的实现方式中,基于光流插帧法,确定相邻两帧原始图像之间的内插帧图像,包括:基于光流插帧法,针对内插帧图像中的任一内插像素点,确定内插像素点在相邻两帧原始图像中的多个映射像素点;确定多个映射像素点中任一映射像素点对应的权重;根据任一映射像素点对应的权重和像素值,确定内插像素点对应的像素值。
图2示出本公开一实施例的基于光流插帧法确定相邻两帧原始图像之间的内插帧图像的示意图。
如图2所示,基于光流插帧法,确定第t帧原始图像和第t+1帧原始图像之间的第t+0.5帧内插帧图像,即确定第t+0.5帧内插帧图像中任一内插像素点对应的像素值。
确定第t+0.5帧内插帧图像中内插像素点(i,j)对应的像素值,具体地:
首先,针对第t+0.5帧内插帧图像中的内插像素点(i,j),根据第t帧原始图像中的像素点(i,j)的前向光流,确定内插像素点(i,j)在第t+1帧原始图像中的第一映射点(a,b);根据第t帧原始图像中的像素点(i,j)的后向光流,确定内插像素点(i,j)在第t帧原始图像中的第二映射点(c,d);根据第t+1帧原始图像中的像素点(i,j)的后向光流,确定内插像素点(i,j)在第t帧原始图像中的第三映射点(e,f);根据第t+1帧原始图像中的像素点(i,j)的前向光流,确定内插像素点(i,j)在第t+1帧原始图像中的第四映射点(g,h);
其次,确定第一映射点(a,b)对应的权重w1、第二映射点(c,d)对应的权重w2、第三映射点(e,f)对应的权重w3、第四映射点(g,h)对应的权重w4;
最后,根据下述加权平均算法确定内插像素点(i,j)对应的像素值
其中,
基于光流插帧法确定相邻两帧原始图像之间的内插帧图像之后,由于无法确定相邻两帧原始图像之间的光流是否准确,因此,为了确保内插帧图像能够满足用户的观看需求,需要判断内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,判断内插帧图像的插帧质量是否达标,包括:至少根据内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,其中,像素质量与内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重相关。
内插像素点在相邻帧原始图像中的映射像素点对应的权重越大,基于光流法得到的该内插像素点的像素质量越高。通过映射点对应的权重大小判断内插帧图像中内插像素点的像素质量,可以确定内插帧图像中像素质量不达标的内插像素点,进而可以有效判断内插帧图像是否达标。
图3示出本公开一实施例的改善插帧效果的方法的示意图。
如图3所示,至少根据内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标包括但不限于下述三种方式。
第一种:
在一种可能的实现方式中,至少根据内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,包括:确定内插帧图像中包括的第一类内插像素点对应的第一数目,其中,第一类内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;当第一数目大于第二阈值时,确定内插帧图像的插帧质量不达标。
针对内插帧图像中的任一内插像素点,确定该内插像素点在相邻两帧原始图像中的多个映射点,以及确定多个映射点中任一映射点对应的权重,当多个映射点的权重均小于第一阈值时,则确定该内插像素点为第一类内插像素点。
当内插像素点在相邻两帧原始图像中的多个映射点对应的权重均小于第一阈值时,根据该多个映射点对应的权重得到的该内插像素点对应的像素值是不准确的,即该内插像素点的像素质量不达标。本公开对第一阈值的具体取值不作限定。
确定内插帧图像中包括的第一类像素点对应的第一数目,当第一数目大于第二阈值,即当像素质量不达标的内插像素点的数目大于第二阈值时,则可以确定该内插帧图像的插帧质量不达标。本公开对第二阈值的具体取值不作限定。
例如,内插帧图像中包括的第一类内插像素点对应的第一数目为n,第二阈值为n,当n>n时,可以确定该内插帧图像的插帧质量不达标。
在一示例中,第二阈值n的取值可以为内插帧图像中总像素点数目的第一预设比例。例如,内插帧图像中像素行数为x,列数为y,第一预设比例为α,则第二阈值n的取值可以为α*x*y。
第二种:
在一种可能的实现方式中,至少根据内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,包括:根据相邻两帧原始图像中至少一帧原始图像中像素点的光流值,以及内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标。
原始图像中像素点的光流值越大,表示该像素点对应的特征点在相邻帧图像中存在较大运动,基于该光流值很难在相邻帧原始图像中找到与该像素点匹配的特征点,也即该光流值是不准确的,无法有效应用于光流插帧过程。通过综合考虑原始图像中像素点的光流值以及内插帧图像中内插像素点的像素质量,可以更加准确地判断基于光流插帧法得到的内插帧图像是否达标。
在一种可能的实现方式中,根据相邻两帧原始图像中至少一帧原始图像中像素点的光流值,以及内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,包括:针对相邻两帧原始图像中的至少一帧原始图像,确定该至少一帧原始图像中包括的第一类像素点对应的第二数目,其中,第一类像素点对应的光流值大于第三阈值;确定内插帧图像中包括的第一类内插像素点对应的第三数目,其中,第一类内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;当第二数目大于第四阈值,且第三数目大于第五阈值时,确定内插帧图像的插帧质量不达标。
在一示例中,基于光流插帧法确定第t帧原始图像和第t+1帧原始图像之间的第t+0.5帧内插帧图像之后,确定第t帧原始图像中任一像素点对应的前向光流值,并将前向光流值大于第三阈值的像素点确定为第一类像素点。
例如,第t帧原始图像中像素点(i,j)对应的前向光流为(2,3),则该像素点(i,j)对应的前向光流值为
在一示例中,基于光流插帧法确定第t帧原始图像和第t+1帧原始图像之间的第t+0.5帧内插帧图像之后,确定第t+1帧原始图像中任一像素点对应的后向光流值是否大于第三阈值,并将后向光流值大于第三阈值的像素点确定为第一类像素点。
例如,第t+1帧原始图像中像素点(i,j)对应的前向光流为(-4,-3),则该像素点(i,j)对应的前向光流值为
当像素点的光流值大于第三阈值时,可以认为该像素点为快速运动特征点对应的像素点,即第一类像素点均为快速运动特征点对应的像素点。由于特征点运动较快,第一类像素点很难在相邻帧原始图像中找到正确的映射点,也即第一类像素点对应的光流值是不准确的。本公开对第三阈值的具体取值不作限定。
确定相邻两帧原始图像中的至少一帧原始图像中第一类像素点对应的第二数目,即确定光流值不准确的像素点对应的第二数目。以及,在基于光流法确定的该相邻两帧原始图像之间的内插帧图像中,确定第一类像素点对应的第三数目,即确定像素质量不达标的内插像素点对应的第三数目。
当第二数目大于第四阈值,且第三数目大于第五阈值,即当光流值不准确的像素点的数目大于第四阈值,且像素质量不达标的内插像素点的数目大于第五阈值时,则可以确定该内插帧图像的插帧质量不达标。本公开对第四阈值、第五阈值的具体取值不作限定。
例如,相邻两帧原始图像中至少一帧原始图像中包括的第一类像素点对应的第二数目为m,该相邻两帧原始图像之间的内插帧图像中包括的第一类内插像素点对应的第一数目为n,第四阈值为m,第五阈值为n',当m>m且n>n'时,可以确定该内插帧图像的插帧质量不达标。
在一示例中,第四阈值m的取值可以为相邻两帧原始图像中至少一帧原始图像中总像素点数目的第二预设比例。例如,任一帧原始图像中像素行数为x,列数为y,第二预设比例为β。当第二数目为相邻两帧原始图像中任一帧原始图像中第一类像素点对应的数目,则第四阈值m的取值可以为β*x*y;当第二数目为相邻两帧原始图像中所有的第一类像素点对应的数目,则第四阈值m的取值可以为2*β*x*y。
在一示例中,第五阈值n'的取值可以为内插帧图像中总像素点数目的第三预设比例。例如,内插帧图像中像素行数为x,列数为y,第三预设比例为δ,则第五阈值n'的取值可以为δ*x*y。其中,第一预设比例α与第三预设比例δ可以相同,也可以不相同,本公开不作具体限定。
在一示例中,第五阈值n'的取值可以为第一类像素点对应的第二数目的第四预设比例。例如,相邻两帧原始图像中至少一帧原始图像中包括的第一类像素点对应的第二数目为m,第四预设比例为γ,则第五阈值n'的取值可以为γ*m。
第三种:
在一种可能的实现方式中,至少根据内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,包括:根据相邻两帧原始图像之间的光流一致性,以及内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标。
在光流插帧过程中,若光流质量较差,则很难得到插帧质量达标的内插帧图像。判断相邻两帧原始图像之间的光流一致性,可以确定光流插帧过程中的光流质量是否满足需求。通过综合考虑相邻帧原始图像之间的光流一致性以及内插帧图像中内插像素点的像素质量,可以更加准确地判断基于光流插帧法得到的内插帧图像是否达标。
在一种可能的实现方式中,根据相邻两帧原始图像之间的光流一致性,以及内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,包括:针对相邻两帧原始图像中的至少一帧原始图像,确定该至少一帧原始图像中包括的第二类像素点对应的第四数目,其中,第二类像素点与第二类像素点在原始图像的相邻帧原始图像中的映射像素点之间不具有光流一致性;确定内插帧图像中包括的第一类内插像素点对应的第五数目,其中,第一类内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;当第四数目大于第六阈值,且第五数目大于第七阈值时,确定内插帧图像的插帧质量不达标。
在判断相邻两帧原始图像之间的内插帧图像的插帧质量是否达标的过程中,至少判断该相邻两帧原始图像之间的光流一致性,即判断该相邻两帧原始图像中至少一帧原始图像中任一像素点与该像素点在相邻帧原始图像中的映射像素点之间是否具有光流一致性,若不具有光流一致性,则将该像素点确定为第二类像素点。
在一种可能的实现方式中,相邻两帧原始图像为第t帧原始图像和第t+1帧原始图像;第二类像素点与第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性,包括下述至少一种:第二类像素点位于第t帧原始图像,第二类像素点的前向光流与第二类像素点在第t+1帧原始图像中的映射像素点的后向光流之间的光流绝对值之差大于第八阈值;第二类像素点位于第t+1帧原始图像,第二类像素点的后向光流与第二类像素点在第t帧原始图像中的映射像素点的前向光流之间的光流绝对值之差大于第八阈值。
例如,相邻两帧原始图像为第2帧原始图像和第3帧原始图像:
针对第2帧原始图像中的像素点(u,v),确定像素点(u,v)的前向光流(vx-a,vy-a);根据像素点(u,v)的前向光流(vx-a,vy-a),确定像素点(u,v)在第3帧原始图像中的映射像素点(i+vx-a,j+vy-b);确定映射像素点(i+vx-a,j+vy-b)的后向光流(vx-b,vy-b);确定前向光流(vx-a,vy-a)和后向光流(vx-b,vy-b)的绝对值之差s,当s大于第八阈值时,可以将第2帧原始图像中的像素点(u,v)确定为第二类像素点;和/或,
针对第3帧原始图像中的像素点(p,q),确定像素点(p,q)的后向光流(vx-c,vy-c);根据像素点(p,q)的后向光流(vx-c,vy-c),确定像素点(p,q)在第2帧原始图像中的映射像素点(x+vx-c,y+vy-c);确定映射像素点(x+vx-c,y+vy-c)的前向光流(vx-d,vy-d);确定后向光流(vx-c,vy-c)和前向光流(vx-d,vy-d)的绝对值之差k,当k大于第八阈值时,可以将第3帧原始图像中的像素点(p,q)确定为第二类像素点。本公开对第八阈值的具体取值不作限定。
在一种可能的实现方式中,第二类像素点与第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性,还可以包括:第二类像素点位于第t帧原始图像,第二类像素点的后向光流与第二类像素点在第t-1帧原始图像中的映射像素点的前向光流之间的光流绝对值之差大于第八阈值;第二类像素点位于第t+1帧原始图像,第二类像素点的前向光流与第二类像素点在第t+2帧原始图像中的映射像素点的后向光流之间的光流绝对值之差大于第八阈值。
在相邻两帧原始图像中至少一帧原始图像中,确定第二类像素点对应的第四数目,即确定不具有光流一致性的像素点对应的第四数目。以及,在基于光流法确定的该相邻两帧原始图像之间的内插帧图像中,确定第一类像素点对应的第五数目,即确定像素质量不达标的内插像素点对应的第五数目。
当第四数目大于第六阈值,且第五数目大于第七阈值,即当不具有光流一致性的像素点的数目大于第六阈值,且像素质量不达标的内插像素点的数目大于第七阈值时,则可以确定该内插帧图像的插帧质量不达标。本公开对第七阈值、第八阈值的具体取值不作限定。
例如,相邻两帧原始图像中至少一帧原始图像中包括的第二类像素点对应的第四数目为r,该相邻两帧原始图像之间的内插帧图像中包括的第一类内插像素点对应的第一数目为n,第六阈值为r,第七阈值为n”',当r>r且n>n”'时,可以确定该内插帧图像的插帧质量不达标。
在一示例中,第六阈值r的取值可以为相邻两帧原始图像中至少一帧原始图像中总像素点数目的第五预设比例。例如,任一帧原始图像中像素行数为x,列数为y,第五预设比例为σ。当第四数目r为相邻两帧原始图像中任一帧原始图像中第二类像素点对应的数目,则第六阈值r的取值可以为σ*x*y;当第四数目为相邻两帧原始图像中所有的第二类像素点对应的数目,则第六阈值r的取值可以为2*σ*x*y。
在一示例中,第七阈值n”'的取值可以为内插帧图像中总像素点数目的第六预设比例。例如,内插帧图像中像素行数为x,列数为y,第六预设比例为η,则第七阈值n”'的取值可以为η*x*y。其中,第一预设比例α与第六预设比例η可以相同,也可以不相同,本公开不作具体限定。
在一示例中,第七阈值n”'的取值可以为第一类像素点对应的第二数目的第七预设比例。例如,相邻两帧原始图像中至少一帧原始图像中包括的第一类像素点对应的第二数目为m,第七预设比例为μ,则第七阈值n”'的取值可以为μ*m。其中,第四预设比例γ与第七预设比例μ可以相同,也可以不相同,本公开不作具体限定。
上述三种判断内插帧图像的插帧质量是否达标的方法可以单独使用,也可以联合使用,本公开对此不作具体限定。
仍以上述图3为例,在判断内插帧图像的插帧质量是否达标之后,根据判断结果,对内插帧图像进行更新,以提高内插帧图像的插帧效果。
在确定内插帧图像的插帧质量不达标时,为了确保用户对插帧之后高帧率视频的观看效果,需要更新内插帧图像。
在一种可能的实现方式中,当内插帧图像的插帧质量不达标时,更新内插帧图像,包括:基于光流插帧法以外的其它插帧法,重新确定内插帧图像中任一内插像素点对应的像素值。
也即,当内插帧图像的插帧质量不达标时,对内插帧图像中的所有内插像素点对应的像素值进行更新。
在一种可能的实现方式中,还包括:当内插帧图像的插帧质量达标,且内插帧图像中包括第一类内插像素点时,基于光流插帧法以外的其它插帧法,重新确定第一类内插像素点对应的像素值。
也即,当内插帧图像的插帧质量达标时,对内插帧图像中的部分内插像素点(第一类内插像素点)对应的像素值进行更新。
在一示例中,针对内插帧图像中需要更新的内插像素点,可以根据相邻帧原始图像中与该内插像素点的坐标位置相同的像素点对应的像素值,通过融合的方式,得到该内插像素点对应的像素值。
例如,通过下述公式更新第t+0.5帧内插帧图像中的内插像素点(i,j)对应的像素值
其中,
在一示例中,针对内插帧图像中需要更新的内插像素点,可以根据相邻帧原始图像中与该内插像素点的坐标位置相同的像素点对应的像素值,通过重复的方式,得到该内插像素点对应的像素值。
例如,通过下述公式更新第t+0.5帧内插帧图像中的内插像素点(i,j)对应的像素值
基于光流插帧法确定相邻两帧原始图像之间的内插帧图像之后,判断该内插帧图像的插帧质量是否达标,并在该内插帧图像的插帧质量不达标时,更新该内插帧图像,从而可以改善基于光流插帧法得到的内插帧图像的插帧质量,有效提高用户对插帧之后得到的高帧率视频的观看体验。
图4示出本公开一实施例的改善插帧效果的装置的结构示意图。图4所示的装置40可以用于执行上述图1所示方法实施例的步骤,装置40包括:
确定模块41,用于基于光流插帧法,确定相邻两帧原始图像之间的内插帧图像;
判断模块42,用于判断内插帧图像的插帧质量是否达标;
更新模块43,用于当内插帧图像的插帧质量不达标时,更新内插帧图像。
在一种可能的实现方式中,判断模块42具体用于:
至少根据内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标,其中,像素质量与内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重相关。
在一种可能的实现方式中,判断模块42包括:
第一确定子模块,用于确定内插帧图像中包括的第一类内插像素点对应的第一数目,其中,第一类内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;
第二确定子模块,用于当第一数目大于第二阈值时,确定内插帧图像的插帧质量不达标。
在一种可能的实现方式中,判断模块42具体用于:
根据相邻两帧原始图像中至少一帧原始图像中像素点的光流值,以及内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,判断模块42包括:
第三确定子模块,用于针对相邻两帧原始图像中的至少一帧原始图像,确定至少一帧原始图像中包括的第一类像素点对应的第二数目,其中,第一类像素点对应的光流值大于第三阈值;
第四确定子模块,用于确定内插帧图像中包括的第一类内插像素点对应的第三数目,其中,第一类内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;
第五确定子模块,用于当第二数目大于第四阈值,且第三数目大于第五阈值时,确定内插帧图像的插帧质量不达标。
在一种可能的实现方式中,判断模块42具体用于:
根据相邻两帧原始图像之间的光流一致性,以及内插帧图像中内插像素点的像素质量,判断内插帧图像的插帧质量是否达标。
在一种可能的实现方式中,判断模块42包括:
第六确定子模块,用于针对相邻两帧原始图像中的至少一帧原始图像,确定至少一帧原始图像中包括的第二类像素点对应的第四数目,其中,第二类像素点与第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性;
第七确定子模块,用于确定内插帧图像中包括的第一类内插像素点对应的第五数目,其中,第一类内插像素点在相邻两帧原始图像中的多个映射像素点对应的权重均小于第一阈值;
第八确定子模块,用于当第四数目大于第六阈值,且第五数目大于第七阈值时,确定内插帧图像的插帧质量不达标。
在一种可能的实现方式中,相邻两帧原始图像为第t帧原始图像和第t+1帧原始图像;
第二类像素点与第二类像素点在相邻帧原始图像中的映射像素点之间不具有光流一致性,包括下述至少一种:
第二类像素点位于第t帧原始图像,第二类像素点的前向光流与第二类像素点在第t+1帧原始图像中的映射像素点的后向光流之间的光流绝对值之差大于第八阈值;
第二类像素点位于第t+1帧原始图像,第二类像素点的后向光流与第二类像素点在第t帧原始图像中的映射像素点的前向光流之间的光流绝对值之差大于第八阈值。
在一种可能的实现方式中,更新模块43具体用于:
基于光流插帧法以外的其它插帧法,重新确定内插帧图像中任一内插像素点对应的像素值。
在一种可能的实现方式中,更新模块43还用于:
当内插帧图像的插帧质量达标,且内插帧图像中包括第一类内插像素点时,基于光流插帧法以外的其它插帧法,重新确定第一类内插像素点对应的像素值。
在一种可能的实现方式中,确定模块41包括:
第九确定子模块,用于基于光流插帧法,针对内插帧图像中的任一内插像素点,确定内插像素点在相邻两帧原始图像中的多个映射像素点;
第十确定子模块,用于确定多个映射像素点中任一映射像素点对应的权重;
第十一确定子模块,用于根据任一映射像素点对应的权重和像素值,确定内插像素点对应的像素值。
本公开提供的装置40能够实现图1所示方法实施例中的各个步骤,并实现相同的技术效果,为避免重复,这里不再赘述。
图5示出本公开一实施例的电子设备的结构示意图。如图5所示,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成改善插帧效果的装置。处理器,执行存储器所存放的程序,并具体执行图1所示方法实施例的步骤。
上述如图1所示方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备可执行图1所示方法实施例执行的方法,并实现上述图1所示方法实施例的功能,本说明书实施例在此不再赘述。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中的改善插帧效果的方法,并具体执行图1所示方法实施例的步骤。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。