1)什么是视频插帧?
2)视频插帧有何应用意义?
3)动画插帧与自然视频插帧有何不同?
4)帧率和刷新率,是一回事吗?
5)主流插帧算法之光流法,又是什么?
什么是视频插帧?
视频插帧,指通过在原始视频的每两帧画面中增加一帧或多帧,缩短每帧之间的显示时间,修正人眼视觉暂留形成的错觉,从而提升视频的流畅度。帧是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。我们常说的帧率,简单来说,就是1秒时间内传输的图片的帧数,通常用FPS表示,帧率越高,画面越流畅。
视频插帧有何应用意义?
1)提高视频帧率,让视频画面更流畅;
2)视频压缩。一些视频压缩的方法就是在发送端只传输一些关键帧,在接收端接收到这些关键帧后通过算法来合成其他帧,这样可以有效减少传输的通信带宽;
3)生成慢动作视频,同时也可以使用插帧生成的慢动作序列来合成一些运动模糊;
4)使运动画面更平滑。如连续的三帧的图像中,第2帧存在明显抖动,则可以利用插帧算法先以第1帧、第2帧为输入获取第1.5帧,以第2帧和第3帧为输入来插取第2.5帧,此时第1.5帧和第2.5帧间的抖动相对原始视频的抖动程度会有所改善。以此类推,不断迭代插帧,视频整体会变得更加平滑稳定;
5)合成新视角。涉及场景重建、视角预测相关的应用,如虚拟现实、元宇宙,可以使用高效插帧的方法来减少每一个视角进行渲染所带来的复杂的计算代价;
6)动漫创作。在动漫创作尤其是动画创作的过程中,需要对每帧动画进行绘制,通过连续播放才能看到动画的效果,因此任务量较大,但借助视频插帧算法可以只需绘制关键帧,即可合成中间运动画面,大大减少了工作量。
动画插帧与自然视频插帧有何不同?
动画视频由专业动画师用复杂而精确的程序手绘而成,每一帧都会消耗大量的时间, 因此动画视频实际的帧率都很低。然而,在自然视频中取得很大进展的现有视频插帧技术,并不能让动画视频产生令人满意的帧间图像。此挑战源于动画视频的两个独特特性:1)卡通图像由明确的草图和线条组成,平滑的区域缺少纹理,很难估计动画视频上的准确运动。2)卡通动画为了追求艺术效果而使用夸张的表情,这导致相邻帧之间的运动是非线性的。
在《Deep Animation Video Interpolation in the Wild》论文中,曾针对动画视频插帧提出了一个有效的框架AnimeInterp,其中包含两个从粗到精的专用模块:1)分段引导匹配通过利用分段相干的颜色片段之间的全局匹配来解决“缺少纹理”的挑战。2) 递归流细化解决了“非线性和超大运动”的挑战,通过使用变压器式结构的递归预测。大量实验表明,该方法优于其他视频插帧方法。
帧率和刷新率,是一回事吗?
帧率,是1秒时间内传输的图片的帧数,也可以理解为图形处理器(GPU)每秒钟能够渲染出新图像的次数,通常用FPS表示。
刷新率,通常指垂直刷新率,表示屏幕的图象每秒钟重绘的次数,也可以理解为由显卡输入的显示信号,通过电子束对屏幕扫描的次数,把多张静止的图像连贯播放出来形成动态影像。因此,刷新率越高,图像就越稳定,显示就越自然清晰,同样会因为人眼的视觉效应而误认为是动态图像。
帧数和刷新率之间的关系在于,刷新率决定了屏幕能展示的帧率的上限,比如120帧率的画面在60Hz的屏幕上,最终显示效果最高也只有60帧每秒。所以高于刷新率的帧数都是无效的,许多游戏所具备的垂直同步选项就是起到强制游戏帧数不超过刷新率的作用。
主流插帧算法之光流法,又是什么?
视频插帧中的中间帧,顾名思义是由连续的前后帧经过算法得出来的,最常见的思路就是计算出视频帧序列中运动物体的位移,然后预测目标在中间时刻的位置,从而补全运动轨迹。
提到运动轨迹,最容易想到的应该就是光流法,光流也就是指视频中一个物体或者单个像素在相邻帧中的位移,计算出光流场,也就是二维/三维空间中所有像素点的偏移量,由此可以帮助我们直接得出中间帧。 根据是否选取图像稀疏点进行光流估计,可以将光流估计分为稀疏光流和稠密光流。
如左图选取了一些特征明显(梯度较大)的点进行光流估计和跟踪。右图为连续帧稠密光流示意图,稠密光流描述图像每个像素向下一帧运动的光流,为了方便表示,使用不同的颜色和亮度表示光流的大小和方向。