
很显然是AMD家更强咯,A炮如是说。
好吧这篇文章不是对比各种补帧技术的优劣,而是简单说一下有哪些补帧的方法。
视频补帧,也叫插帧,指的是低帧率视频转化为高帧率视频,通过一些算法生成中间帧,而不是简单重复帧。
补帧分两种,一种是播放补帧,一种是压制补帧。
播放补帧有以下方法:
1.SVP的ffdshow途径。通过安装SVP PRO软件(需要15美刀购买),选择安装ffdshow和avs+的64位版本,还有SVP的AVS插件。该方法可以使用potplayer,MPC等播放器。其滤镜链是 解码器--ffdshow--AVS+--SVP--渲染器。鉴于ffdshow过于老旧,AVS+效率低下,我不推荐使用这种方法,还有一个好处是可以省15美刀的钱。
2.SVP的vapoursynth途径。这个方法要使用MPV播放器。滤镜链是 MPV--vapoursynth--SVP--MPV。由于使用了vapoursynth,效率比AVS+高很多。但MPV没有设置界面,需要手动写CONF文件进行设置,有一定难度。
3.SVP的potplayer途径。potplayer支持vapoursynth脚本,但是效率极低极低极低,我完全不推荐使用该方法。
4.AMD fluid motion video。也就是AFM(区别于AMF,这个是AMD显卡的编解码框架)。播放器可以用potplayer或MPC。需要一张支持AFM的A卡。需要一个Bluesky Frame Rate Converter。
压制补帧有以下方法:
1.SVP的AVS和VS插件。
2.Adobe premiere的光流法。
这里挑三个方法做下简单讲解。其中包括SVP的vapoursynth途径,AMD fluid motion video的播放补帧和SVP的VS插件的压制补帧。
1.播放补帧:SVP的vapoursynth途径
我之前写过教程,这里就不重复了。
教程链接:https://1drv.ms/f/s!AnNR9fAbPdHFolsh-kHl_JTiZRB9
这是一个微软onedrive网盘链接,国内需要魔法冲浪才能看。顺便说一句,如果你没办法魔法冲浪,你不太适合研究视频技术,即使是伸手,都很难。
其中教程文件夹里有一个 MPV补帧.rar 和 MPV补帧 conf和vpy更新包v1.rar 两个压缩包。第一个压缩包里有个pdf,是教程,不要用这里面的配置文件。第二个压缩包里有新的配置文件,用这里的。
区别就是新版的MPV的线性光缩放参数改了,我改了CONF文件的其中一行。还有就是SVP脚本做了适当修改。CPU线程数,缓存大小,语法,都适当改了一下。你们可以按自己需求再改改。我不保证直接盲目抄袭一定能用。
这个方法需要python环境,vapoursynth,SVP的VS滤镜,MPV,SVP的VS脚本。所有组件都是免费的,而且效果比官方的SVP PRO效果好,因为它支持10bit补帧,而且参数可以手动优化。
“技术知识有什么用?它能让你用到不花钱又好用的东西。”
2.播放补帧:AMD fluid motion video
需求:一张支持AFM的A卡,最新的Radeon software驱动,Bluesky Frame Rate Converter,potplayer或MPC播放器。
Bluesky Frame Rate Converter官网:https://bluesky23.yukishigure.com/en/BlueskyFRC.html
下载ZIP压缩包版本即可。
首先把A卡驱动装好,系统环境搭建好,这个没什么好说的。
Bluesky Frame Rate Converter解压到一个英文文件夹内。任何被其他软件使用的文件夹都不要有中文,这是一个非常好的习惯。如果某软件不支持中文目录,你又不知道这一点,你排查故障可能需要很久时间。

BFRC安装
如图,可以选择安装在如下位置。这个无所谓的,你安装在哪都行......

A卡驱动
A卡驱动要打开AFM功能。

BFRC设置1
如果你用DXVA解码可以把DXVA支持打开。Zero-copy能提高一些性能,但打开之后遇到bug的话可以关闭。

BFRC设置2
解码就不用开了。status页面是补帧状态,视频播放的时候可以看一下。

potplayer设置
以potplayer为例,在全局滤镜优先权选项卡中,点击添加外部滤镜,选择64位的BFRC的DLL,然后为其设置强制使用。

效果
这里使用potplayer,lav,madvr的播放环境,想搭建可以去我那个onedrive网盘里找教程,也可以自己研究研究。
potplayer下按ctrl+J,打开madvr的OSD。可以看到上个滤镜呈递的是60fps的流,证明开启成功,因为源电源头号玩家是24fps的。滤镜链里可以看到lav和madvr之间插入了BFRC。BFRC状态也显示正在工作。
如果想关闭补帧功能,在potplayer全局滤镜里选择BFRC,选择不使用,然后把驱动里的AFM关闭即可。
3.压制补帧:SVP的vapoursynth插件
首先需要学一下vapoursynth的安装和使用,这里不多说。
脚本的话可以使用我的vapoursynth模板,里面有SVP功能,单独拿出来就是:
super_params="{gpu:1}"
analyse_params="{gpu:1}"
smoothfps_params="{rate:{num:60000,den:1001,abs:true},algo:23}"
super = core.svp1.Super(src,super_params)
vectors = core.svp1.Analyse(super["clip"],super["data"],src,analyse_params)
smooth = core.svp2.SmoothFps(src,super["clip"],super["data"],vectors["clip"],vectors["data"],smoothfps_params)
src = core.std.AssumeFPS(smooth,fpsnum=smooth.fps_num,fpsden=smooth.fps_den)
模板链接:https://github.com/Morpheus1123/ZeroS-vapoursynth-template
GitHub不需要魔法冲浪。
如果需要10bit补帧,可以参考我之前那个MPV用的SVP脚本改一改。SVP有俩插件,1是做扫描用的,它不支持10bit,2是做补帧的,它支持10bit。所以操作就是把clip先缩出一个8bit的用作扫描,然后svp2用svp1的扫描结果,给10bit的clip补帧。
有几点需要注意的。
我个人觉得效果是AFM>SVP>premiere。
但AFM不支持10bit补帧,也不支持压制,而SVP都支持。AFM唯一可以支持压制的方法是走AVS的DSS滤镜。然而,既然是补帧,对帧的准确度要求极高,但DSS帧准确度特别腊鸡。
目前各种补帧都能看出比较明显的瑕疵,但有一种类型的片子补帧效果明显利大于弊,那就是某国爱情片,不多说,自己去试一下就知道了。他们的BD是60i的隔行(反正S1的是,别家的没看过),直接播放或者QTGMC反交错都是直接输出60p,不用补帧,已经很流畅了。DMM版本是30p,可以用我说的方法补到60p,舒舒服服,如丝般顺滑。
还有就是,如果你热衷观看电影,动漫等视频,可以考虑买A卡。但如果你需要专业处理视频,不建议买A卡。有些软件和滤镜对A卡支持不好,甚至不能使用。