万益资讯网

插帧那个,本来不想深入聊的,但考虑到视频都被投诉了,那我就稍微唠嗑下,包括如何鉴

插帧那个,本来不想深入聊的,但考虑到视频都被投诉了,那我就稍微唠嗑下,包括如何鉴别插帧,以及为什么判断120帧的画面需要240帧或者以上的录制帧率。

手机插帧大家都不陌生,很多手机都可以找到开关打开这个功能,或硬件或软件的插帧,都能做到让手机功耗发热降低,但是视觉上更“顺”了

对于视频而言这是对的,因为视频的未来播放帧是已知的,几分几秒第几帧是什么内容写在视频数据里面,但是游戏不一样,他的画面是随着操作不同而变化的,所以你就会发现插帧的第一个问题,无论画面本身看起来多“顺”,他的画面响应时间最多和原始帧率的延迟接近,甚至会因为插帧引入额外延迟,比如60帧画面插到120,你输入一个动作到系统响应到输出成画面,最少也是触控延迟+原始帧延迟,也就是60帧的延迟,因为你不可能虚空造帧,你需要渲染完一个原始帧,才能结合前一帧计算插入的帧的画面,然后才能让屏幕显示生成帧和原始帧,凑够120hz的刷新率,这就是我说的“粘滞感”

而这个生成帧,就有很多种了,比如重复帧,就是两帧画面是一样的,只是告诉屏幕我刷新120帧;比如平均帧,就是前后两帧画面取一个平均输出;比如光流法计算帧,还有一些基于模型预测的帧生成,就不逐一介绍了。

那120帧的画面,为什么要用至少240帧的相机(全局快门相机)去拍呢,这就涉及到一个信息学的基本定理:奈奎斯特采样定理:

为了能够从采样后的离散信号中无失真地重建原始的连续信号,采样频率必须至少是原始信号中所含最高频率的两倍。

也就是如果一个屏幕输出的画面最高帧率为120,那我要知道画面到底输出了啥,我至少需要240帧的采样率,也就是240fps的视频录制。

对于一个120帧输出画面的屏幕,我们可以认为他的图像每8.3ms变化成新的画面(帧),此时我们用一个240fps的视频录制,就意味着每一个视频录下来的画面,就是从开始录制的t0时刻,往后4.16ms内所有画面的叠加。

我们考虑两种情况,开始录制的t0,刚好是视频输出新画面的瞬间,这时候如果120帧画面是完全原生的,那么4.16ms的录制刚好是一个完整显示帧的一半,第二个4.16ms的录制刚好对应一个完整显示帧的另一半,此时我们检验录制画面,会发现他每2帧动一次,每一帧都是清晰的。

但是我们知道,要开始录制的t0,恰好对上画面生成的瞬间非常难,那么第二种情况,就是没有对上的,假设,举个例子,屏幕画面生成2ms后,遇到视频录制的t0开始,那么屏幕画面生成2ms-6.16ms的内容,就成为了视频录制的第1帧,而视频录制的第2帧,则对应画面生成的6.16ms-10.33ms,这时候你会发现,对一个120hz的刷新的画面来说,从8.3ms开始,他就开始显示第二帧屏幕画面了,也就是说,此时视频录制的第2帧,就录到了屏幕第一帧画面和第二帧画面的叠加,而视频录制的第3帧,则覆盖了10.33-14.49ms,恰好在完整的屏幕第二帧画面内。

如此结果,就是240帧的视频录制画面,记录120帧的屏幕连续原始画面,会录得一帧清晰,一帧重影的交替画面。

那聪明的你就可以思考一下,如果120帧的屏幕并非输出连续原始画面,而是60帧原始+重复帧,那么240帧的视频录制画面会录到什么结果呢?

如果是60帧原始+平均法插帧呢?如果是60帧原始+光流法插帧呢?

这里就不多赘述啦