影视黑科技系列:免费开源去场倍帧神器

2015-11-14 14:55

(百度网盘有测试样本和有关软件)http://pan.baidu.com/s/1gdsaJj9
话说现在的摄影摄像机科技一日千里,市场繁荣,3万元左右就能买到4K50/60P的机种,例如松下的AG-DVX200,3千元左右就能买到全高清50/60P的机器,例如GOPRO之类,后期党都知道50/60P真是好东西,各种宿主软件和插件折腾这种素材不容易搞出各种BUG,直接用来做0.5倍速慢镜效果也能保证。但就在几年前,市场主流还是全高清50i/60i电视摄像机的天下,这种格式的素材和成品存量也是很大的。以下就介绍用免费开源算法把50/60i视频高质量快速转变为50/60P,让你的老机器发挥余热。
图例1:前几年流行的几款典型的1080-50i摄像机
影视黑科技系列:免费开源去场倍帧神器

我们先回顾下什么是50/60i和50/60P。
隔行扫描Interlace Scanning与逐行扫描progressive scanning

图例2:1080-50i运动影像素材中的一帧局部,由于一帧包含先后从传感器读出的隔行两场内容,所以你能看到这先后两场内容产生的隔行交错横线。
影视黑科技系列:免费开源去场倍帧神器

隔行扫描是个历史遗留问题,以前为了节省电视传输带宽和降低拍摄设备图像信息处理量,每隔1/50(PAL制式)或1/60(NTSC制式,实际是59.94)秒,从影像传感器隔行输出一半的图像,或者说一半数量像素的图像,或者说水平分辨率不变垂直分辨率减半的图像,这种图像叫隔行扫描的一场,根据这种图像第一行的位置,场又可以分成上场和下场,也有叫奇数场合偶数场的。视音频制作数字化IT化以后,视频文件里都有一些标识信息告诉设备或软件,这个视频是逐行还是隔行,如果是隔行,哪个场先显示。这样的好处是,拍摄设备、制作设备和传输环节的数据量(带宽)减半,但人眼-人脑在观看的时候效果又非常接近每秒50/60幅全帧的效果—比较静态的影像很清晰,比较动感的影像很流畅不晃眼。所以隔行扫描是一种充分利用了人的视觉特性的节省成本的方法。

然而,眼睛和大脑挑剔的人群需要更完美的画质,不会满足于隔行扫描近似每秒50/60帧的效果,而且现在流行电影摄影/电视摄像兼容,机器既能拍电视又能拍电影,要知道电影工业一直是全帧画面的天下,从来瞧不上电视的半帧(场)的屌丝做派。最近几年,IT业的摩尔定律也在影视软硬件业发挥作用,使高性价比拍摄用机高帧率逐行全帧化成为可能,影像传感器的读出速度,其后机内处理器的速度都不是问题,后期制作软硬件也积极跟进,制造商开始了分辨率和帧率大战,逐渐开始了50/60P甚至更高帧率逐行扫描格式的普及。

事实上,如果你的项目素材来源很单纯统一,后期制作只是简单的剪辑,成品投放的播出平台也很明确,我们只要操作时不乱来,严格遵守流程正确设置各种软件的参数,一般不会出什么乱子。但是,如果你发现自己的视频成品在电视机上看,运动部分抖动得特别厉害甚至有反向抽动,那就是整个拍摄,后期制作环节某个或某些地方出了问题,显示场的顺序弄错了;还有的时候,你的视频是为了网络等非传统电视媒体播出用的,成品在观看时发现运动或变化处有水平细线或横纹或水波纹或清晰度明显下降斜线条有锯齿等现象,那就是你在制作过程中使用了隔行素材,又没有使用正确的设置把隔行素材正确转变为高质量的逐行格式所致。

但现在视频后期制作经常需要做裁剪重新构图,加一些滤镜,插件,或者使用来源很杂的素材混编。试想一下,如果我们把一个1080-50i的素材,截取大概1280X720的范围重新撑满整个1920X1080-50i播放窗口,那原有素材隔行扫描就需要重新映射到显示终端,破坏了原有简单的像素点对点;或者我们只是把原始1080-50i的素材做模糊或锐化,也会产生次像素渲染问题,产生的新像素次像素也会打破原有场序;还有一些插件只针对逐行素材优化,隔行素材会产生各种bug;所以复杂的后期制作时我们更喜欢用逐行素材,哪怕只有25P。

一般的商业软件是怎么处理隔行素材的呢?

情况1) 我们以50i素材在电视播出用的50i项目属性为例。软件内部黑箱操作,把50i的素材处理成50P,每一场对应垂直分辨率减半的一帧,然后经过剪辑和滤镜处理后,输出时重新把这种垂直半分辨率50P用很简单的算法转换回50i。这种算法速度快,而且很保险,简单制作时原汁原味,不会产生人工添加的插值,缺点是复杂的像素变换效果不好。
图例3:1080-50i运动影像素材中的一帧局部,一般软件内部把它拆分成上下两场形成的垂直分辨率减半的半帧。
影视黑科技系列:免费开源去场倍帧神器
影视黑科技系列:免费开源去场倍帧神器

情况2)我们以50i素材在给互联网传播用的25P项目属性为例。
图例4:比较静态的1080-50i素材中的一帧局部
影视黑科技系列:免费开源去场倍帧神器
软件通常有个参数设置,去隔行方法之类,通常是两种速度快的算法,混合场和插补场。混合场的算法很简单,两个相邻的场(隔行半帧)简单合并成一个帧(逐行全帧),所以50i变成了25P。这种算法对于比较静态的影像来说,效果还行;
图例5:比较静态的1080-50i素材利用场混合算法转25P一帧局部,和原始50i素材对比稍有因两场微小差异带来的模糊
影视黑科技系列:免费开源去场倍帧神器
如果影像比较动感,效果就有点坑,类似运动模糊,即使拍摄时快门速度很高,也会由于场混合带来运动模糊感。
图例6:比较动感的1080-50i素材利用场混合算法转25P一帧局部,和原始50i素材对比有因两场较大差异带来的类似运动模糊感
影视黑科技系列:免费开源去场倍帧神器

普通商业软件插补场的算法也简单,通常是抛弃一个场(隔行半帧),把保留的那个场在垂直方向上复制加倍补全一帧即可。这种算法对于比较静态的影像来说,效果比较坑,人眼很容易发现垂直方向上清晰度减半,斜线条有锯齿;
图例7:比较静态的1080-50i素材利用简单场插补算法转25P一帧局部,和原始50i素材对比斜线条有明显锯齿
影视黑科技系列:免费开源去场倍帧神器
如果影像比较动感,效果倒是不会产生混合场算法的类似运动模糊,但正因为如此,非常动感的画面会很晃眼。
图例8:比较动感的1080-50i素材利用简单场插补算法转25P一帧局部,和原始50i素材对比丢失了差异比较大的一场,所以单帧画面看上去反而比较清晰
影视黑科技系列:免费开源去场倍帧神器
50i转50P的算法也是这两种,而且比较静态的影像推荐使用场混合算法,比较动感的影像推荐场插补算法,总之,普通商业软件50i出25P和50P的成品效果不会很好。

那么理想的50i转50P或25P的算法应该是怎样的呢?我试着用日常语言描述一下:
它应该仍然以场插补为基础,但插补空白行的不是简单的复制本场相邻隔行内容,而是根据本场图像内容和相邻前后两场内容努力恢复出缺失的行,虽然这可能带有人工的痕迹,但能极大减少简单场插补算法带来的画面斜线条锯齿。显然这个算法的计算量大于简单场插补,会造成节目渲染输出速度降低,可能对于商业软件来说会降低主要用户体验,所以商业软件通常不会提供此类复杂的场插补算法,幸运的是,此类算法能在狂热爱好者共享的开源代码中找到。
其中集大成者就是QTGMC(由西班牙大神VIT主导),有兴趣的可以自行前往研究
http://avisynth.nl/index.php/QTGMC
http://forum.doom9.org/showthread.php?t=156028
如果你要速度和质量兼顾,我们可以直接采用QTGMC中的VERY FAST预置档位也引用的YADIF算法(由俄罗斯大神Fizick (Alexander Balakhnin) 开发)
http://avisynth.org.ru/yadif/yadif.html
虽然效果比不过QTGMC更高档次,但由于速度非常快,是目前众多开源播放器、编码器的内置默认去交错算法。下面我就以VIRTUALDUB为例说明它的使用。

图例9:用VIRTUALDUB打开要处理的1080-50i格式的AVI文件(本案例使用开源无损压缩编码LAGARITH)
影视黑科技系列:免费开源去场倍帧神器

图例10:在菜单栏-视频-滤镜中,加载去除交错,然后选择YADIF算法,场顺序根据素材特点选择顶场优先或底场优先,如果是倍帧,选加倍帧速,如果不倍帧,选保留顶场或底场。
影视黑科技系列:免费开源去场倍帧神器

图例11:YADIF倍帧比较静态的影像,斜线条锯齿不太明显了
影视黑科技系列:免费开源去场倍帧神器

图例12:YADIF倍帧比较动感的影像,也能获得比较好的全帧效果
影视黑科技系列:免费开源去场倍帧神器

图例13:在菜单栏-视频-压缩中设置视频输出编码
影视黑科技系列:免费开源去场倍帧神器

图例14:在菜单栏-文件-另存AVI为 把去场倍帧的成果保存为LAGARITH编码,AVI封装的文件,速度还不错。
影视黑科技系列:免费开源去场倍帧神器

以1080-50i素材为主的项目推荐流程:

不纠结的傻瓜流程:主要编辑工作的NLE使用50i项目属性,个别需要复杂包装和复杂特效合成的子项目用合适软件50P项目属性,所需50P素材用我前面说的开源去场倍帧算法或者以前发表的SVP倍帧得到,制作完成后出50P渲染片段或动态链接给主工程。这和通常大部分人在做复杂包装特效部分采用25P运动影像有些晃眼的工程属性稍有不同,50P的优点是特效包装段落也能得到摄像机般流畅的运动影像,代价是生成這额片段的渲染时间加倍。主工程出片用1080-50i,如果要输出给互联网用的25P版本,在最后的压片编码环节使用MEGUI等开源软件和前面说的开源非倍帧去隔行算法。

有些追求完美的傻瓜流程:全部后期工程属性都采用50P,所需50P素材用我前面说的开源去场倍帧算法或者以前发表的SVP倍帧得到,如果要输出电视50i的版本,从50P成片很容易得到,给互联网用的25P版本,在最后的压片编码环节每两帧丢弃一帧(快速,运动画面清晰但较不流畅)或者每两帧混合成一帧(稍慢,运动画面有模糊感,但流畅度较高)即可。

本期测试素材同样采用了开源无损压缩编码 LAGARITH http://lags.leetcode.net/codec.html
网上关于这些软件的参数还有一些教程,请自行搜索,也可联系本人,
交流QQ:370524166
微信号:voixfleche

本文为作者 左艺共创 分享,影视工业网鼓励从业者分享原创内容,影视工业网不会对原创文章作任何编辑!如作者有特别标注,请按作者说明转载,如无说明,则转载此文章须经得作者同意,并请附上出处(影视工业网)及本页链接。原文链接 https://cinehello.com/stream/72086

左艺共创

点击了解更多
CREATIVE COMMONS FOR COMMUNISM 开源 互助 共享
联系客服