如何用 60 帧播放 24 帧的视频?
本文来自微信公众号「爱否科技」(ID:FViewXFG),作者恺伦,爱范儿经授权发布。
当代生活,我们总是在追求更大的屏幕尺寸、更好的屏幕素质和更高的刷新率。目前来看,电视屏幕的刷新率已经从 4K 60 帧向 8K 120 帧过渡,手机也从 90 帧向 120 帧发展,最强的还是我们这些「打游戏」的 PC 玩家,显示器的刷新率已经是 144 起步,还要玩显示器超频。
但是和屏幕对应的则是影视内容帧率的增长停滞:视频已经实现了 30 帧向 60 帧过渡,电视剧和电影还是维持在 24 帧的水平。
在这样的情况下,我们可以通过自给自足的方式实现视频的补帧。
什么是补帧?
其实不管是 PC 上的补帧、PR 里的光流法渲染、还是电视上的 MEMC 动态补偿,本质上都是通过计算画面中像素的运动轨迹,再依靠插帧的方式进行补帧。
在一段影片当中,一个物体的运动轨迹是相对固定的,因此通过算法可以很容易地算出两帧画面中物体的运动轨迹,在两帧运动轨迹的中间加入模拟的运动轨迹帧,实现插帧效果。通过这样的手段能够实现 30 变 60 及以上的帧率,并且能够减少画面的拖影,让视频看起来更加干净清晰。
但是问题是这样简单的补帧会出现很多问题:例如会加大显卡的压力,带来散热和功耗的压力;有可能会出现画面物体的撕裂;物体边缘由于像素运动是「从无到有」,因此可能会出现连续性方面问题,这被称之为块效应;无法很好地解决前有遮挡的运动物体的运动轨迹补帧。
因此现阶段最先进的补帧方案是通过 AI 计算的方式进行补帧,请注意这里的 AI 不是噱头,而是真的通过 AI 卷积神经网络计算的方式。
首先,要喂给 AI 大量的已有影像资料,通过机器学习的方式使 AI 训练出一个叫做「卷积核」的东西,这个卷积核是一个函数,输入画面到输出画面的变化就是由这个卷积核加权平均后决定的。
卷积核有点像一个「超级滤镜」,通过这个卷积核计算的视频能够实现更加清晰和智能的补帧。
这种 AI 补帧能够实现远胜于传统运动补帧算出来的视频效果,在上海交大开源的 DAIN(Depth-Aware Video Frame Interpolation)插帧算法中,已经可以实现自动识别景深来辅助插帧,这样几乎完全解决了由于遮挡带来的画面 BUG。
▲ 图片来源:极客湾视频
但是相对来说这种补帧方式实现的成本也非常高:由于需要 CUDA 的帮助才能计算,因此必须要有一块英伟达显卡,AI 计算非常吃显卡性能(尤其是显存),所以这块显卡的水平还不能太差;非常花时间,以小时或者天为单位来实现优化。
多说一句,这种 AI 计算的方式不但可以用来插帧,还可以用来提升画质,实现 480P 变 4K 的神奇操作。2019 年上映的电影《决胜时刻》中的开国大典就是根据从俄罗斯买回来的原片经过 AI 算法进行了修复后,实现了「胶片变 4K」的神奇效果。
如何实现补帧?
目前补帧操作主要还是在电视和 PC 上实现,电视主要依靠 MEMC 芯片进行运动补帧,通常在电视的设置里,在这里就不过多介绍了。这里主要介绍一下 PC 的补帧方式。
AMD 显卡
如果你是 AMD 显卡,那么你可以直接使用 AMD 官方的「AMD Fluid Motion video」功能搭配 Potplayer 播放器来完成插帧。
· 要有一张 GNC 或者 Vega 架构的 AMD 显卡,并下载最新的 AMD 驱动。
· 打开「AMD Fluid Motion video」功能。
· 下载 Bluesky Frame Rate Converter,安装完成后点击「Enable AFM Support」。
· 在 Potplayer 中的「选项 – 滤镜 – 全局优先滤镜 – 添加系统滤镜」选择「Enable AFM Support」滤镜,并强制使用。
这样就完成了设置,新视频就完成了视频补帧,实测效果还可以吧。
NVIDIA 显卡
如果你是 Nvidia 显卡,可以选择 SVP 或者是 DmitriRender 搭配 Potplayer 或者 MPC-HC 播放器使用。
SVP 已经是知名的老牌 PC 插帧软件了,大家可以在其官网上选择对应的版本进行下载,Windows、Mac、Linux 都有支持,官方教程也比较清楚。
缺点是收费(比较贵)、比较吃系统资源(尤其是显卡),而且在我的 1050TI 笔记本上经常出现音画不同步的情况。
DmitriRender 是一款新兴的视频插帧软件,相较于 SVP 比较节省系统资源,收费也更便宜。使用方式同样也是下载后添加滤镜。
这两种方式 AMD 显卡和核显都可以用,不过 AMD 更推荐上面的原生方案,核显可能会出现资源不够的情况。
特别提醒
插帧软件通常会有电影和动漫两种方案。
这是由于动画通常不是一帧一张画面的,而是「一拍二」或者「一拍三」,就是一张画用两帧或者三帧画面,也就是说「12 张图构成 24 帧」或者是「8 张图构成 24 帧」,剩下的部分由观众「脑补」而成(人体神奇的大脑和视觉系统)。
▲ 庵野秀明的「一拍三」变「一拍一」
这被称作「关键帧动画」,由手冢治虫提出。这样做主要是可以在不降低动画质量的前提下, 减轻动画原画的压力,但是会给插帧软件带来困扰……
此外「隔行扫描」的视频是无法进行插帧的,不过现在隔行扫描的视频已经基本没有了,所以影响不大。
目前来看,体验出色的补帧视频能够相当程度上提升视频的观看体验,这点相信看过李安最近几部电影的都应该有所感觉。但是目前的民用补帧技术还相对比较落后,我还是非常期待 AI 补帧能够达到正常用户使用水平的那天。
一个更加流畅的世界。