我在对视频进行反交错处理的时候,发现中文网络上难以找到系统讲解交错原理以及简明扼要指导如何利用MeGUI/AVS进行IVTC/反交错的文章。 网上找到的大多都是神仙讨论天书笔记,许多概念也纠缠在一起…… 所以斗胆在这里整理一个入门级的介绍,也作为自己的参考资料。 不欢迎一切转载。
一、隔行扫描与逐行扫描为了更好地说明交错,得先从传送图像的原理讲起。 在传送电视图像的时候,将每帧图像分解为像素,之后一个一个像素、一行一行顺序传送的方式叫做扫描。
逐行扫描是非常容易理解的扫描方式。将这一帧的图像从左至右从上至下扫描完成之后,输出一张完整的图像。扫完第一帧再继续扫第二帧,如此循环。由于每一次输出的图像都是完整的画面,所以观众观看的时候会觉得图像非常稳定细腻。
逐行扫描(Progressive Scan)但是这样的扫描方式需要有相当大的带宽来传送这些电信号,尤其在早期的时候由于技术限制和成本高昂,很难以实现。 怎么办呢?为了减少带宽,人们采用了隔行扫描的方式。 原理是将一帧的这一幅画面分为两个场来扫描。 完整的一帧 → 奇数行(奇场) → 偶数行(偶场)先扫描奇数行得到第一场(奇场/Field 1/Odd Field),然后扫描偶数行得到第二场(偶场/Field 2/Even Field)。两个场加起来组成完整的画幅。快速播放的时候由于视觉暂留效应,人眼不会注意到两场只有一半的扫描行,而会看到完整的一帧。
隔行扫描(Interlace Scan)通常有一种误解是,偶场和奇场是由同一帧的画面分拆得来的。 实际上,摄像机采集的方式和隔行扫描显示的方式是完全相同的。当摄像机采集图像时,偶场和奇场不是同时采集的。 以每秒60场的摄像机为例,偶场的采集在奇场的1/60秒之后进行。 只要图像中没有出现变化,比如说是静止的场景,两个场会补足对方形成完整流畅的画面。 但我们不是生活在PPT里,一旦画面出现变化,交错(interlace)便出现了。 运动的汽车出现了交错记得上文强调过两个场并不是同一帧的画幅,而是分处不同时间的。 当运动发生时,物体会在第一场处于位置A,而在下一场移动到位置B。此时两个场不能互相补足对方,画面上就会有一些交错。
这个动图演示了一个番茄从左向右的移动过程。由于每一个场和上一个场的位置都有细微的不同,交错便这样出现了。
以上是一些帮助你更好理解交错原理的背景知识,接下来我们更进一步。
二、交错、反交错与IVTC当你发现你手上的视频出现类似上文中的横纹拉丝情况,在想办法挂滤镜反交错之前,首要任务是需要确认视频和横纹的类型究竟是什么。
如果如上文所说,因为这是由隔行扫描录制的视频(interlaced video),那么我们需要做的是反交错(Deinterlacing)。
但还有另一种更常见的情况是,随着时代发展,如今逐行扫描已经渐渐普及。 于是影像本身是逐行扫描视频,但是为了在不同制式的电视和DVD里能正常播放和存储,许多时候要将原始视频进行一些处理。 这种转换的过程名为Telecine,缩写为TC,中文叫胶卷过带。 全世界最通用的两种电视制式为北美+日本为主的NTSC制式(30fps),与中国大陆+香港+欧洲为主的PAL制式(25fps)。
全世界电影拍摄的一般帧率都是24fps。 举例来说,要将24fps的视频转换为NTSC所要求的30fps。24/30=4/5,意味着原视频中的每4帧都要增加1帧。 经过Telecine输出的视频,一秒内的帧总数就由24帧增加为30帧了。 这个转换的方法叫做3:2 pull down。是将原视频拆分为偶场和奇场之后,在每两帧后添加一个第三帧的方法,如下图这般。 转换成果如大家所见,也就是常说的5烂2,每5帧里有2帧是烂的。
3:2 pulldown 下的Telecine上图是一个NTSC制式的3:2 pulldown例子。可以看到第1-2帧为交错的,之后3-4-5是正常的,再接着6-7为交错,8-9-10为正常,如此每5帧烂2帧的循环。
Euro pulldown下的Telecine也有其他情况,比如说将24fps的电影转换为PAL制式的25fps。如果你的视频如上图这般是13帧正常图像,接着12帧交错图像。那么极有可能是遇见了Euro pulldown。
Interlaced video而如果帧帧都交错呢,多半可以说这是一个Interlaced视频了(这种从摄制源头就是交错的视频也被称为true interlaced video)。 True interlaced video现在仍频繁出现于大部分的体育赛事、演唱会DVD,部分电视剧集和一些低成本电影,以及大量的纪录片和花絮/幕后里。
除了上文这些常见的Interlace与Telecine……在处理片源时我们还会遇见非常多的奇葩情况。 比如强行把NTSC制式的碟压进PAL DVD里的,比如片源经过了无数道手的剪辑和压制之后再次Telecine的,比如整体60i系统+正片24p+片尾和特典是24t+24p+30p再内置一个60i字幕的(没错索尼我在说你)
处理这些片源确实会把人逼疯,对此我也只能说…… 相信你一定可以久病成医的
三、使用MeGUI进行反交错处理接下来我们进入到实战阶段。使用MeGUI来进行反交错处理。
在中文网络里,不论是处理Interlaced还是Telecine视频都会用“反交错”这一个词。 但因两者原理有些许不同,准确来讲 处理Interlaced视频叫反交错(Deinterlacing),处理Telecine视频叫做Inverse Telecine(IVTC)。
如果视频只是单纯的Telecine,那么是可以通过IVTC实现完美还原的。 但如果是Interlaced视频,则永远无法补足从源头损失的那一半信息,只能通过不同的算法和滤镜来尽量达成较好的视觉效果。 在这里推荐一下Deinterlacing Algorithms By Rebeca Sanz Serrano,是一篇非常优秀的论文,细致比较了不同的反交错算法之间的优劣。
基本逻辑是,先确认交错种类。 可以IVTC的就不要上Deinterlacing。单纯的TC视频明明可以通过IVTC来完美还原,无脑Deinterlacing反而会让它白白损失清晰度。 以及勤预览。每帧每帧检查效果。
单纯的Telecine视频 通过观察是否为非常规律的交错(例如5烂2)来判断。 (MeGUI的自动分析偶尔会误判,不要过分依赖自动分析)
解决办法: MeGUI内置滤镜TIVTC 或因MeGUI自带decomb,可以直接写Telecide() ,例子: Telecide(Guide=1,Post=False)Decimate(Cycle=5) #5帧循环的语句 复杂的情况可以在这里根据视频来调整
当你很确定自己的视频就是5帧循环,也可以省略decimate: Telecide(Guide=1,Show=true)
需要做Deinterlacing的视频。 不同的反交错滤镜究竟哪个更好是在压制界几十年争论不息的话题……
简单来说,对视频的清晰度和整体质量没有完美要求的话,可以选择Yadif。 速度快,对CPU没什么压力。然而产出的视频对完美主义者不甚友好,损失了清晰度不说,线条边缘偶尔还会残留锯齿。但是当片源本身也是清晰度不够高的DVD时,Yadif很多时候也够用。 而对于疑难杂症视频或者完美主义者,可以选择QTGMC等大型滤镜,成品质量相当不错。就是非常非常非常耗时。 碰到解决不了的问题视频,以及值得自己在上面砸十几个小时的珍贵档源就轰上去QTGMC吧。
下图是一个对目前常见的Deinterlacing滤镜的速度与质量比较。 这个测试是MSU的发布者做的,所以可以不要管MSU 如上文所说,Yadif以及MeGUI内置的Tdeint是常见的快速而低质滤镜,QTGMC则恰好相反。 还有位于两者之间的nnedi3。在对Yadif效果不满意时可以尝试换nnedi3再试试看。
常见的交错视频基本可以通过这几个滤镜来解决。 再过问题重重的档源就需要手动调整了,非我力不能及,欢迎大神们讨论如何神仙反交错。
以及、处理动画片源又是另一个世界的事情了……
本文基本所有配图都非原创,Link在下面列出,感谢数十年来孜孜不倦与视频压制作斗争的各国前辈们。 愿天国再也没有interlace。 封面图是十八岁刚刚出道时的山本美月,没什么特别的含义,只是因为我喜欢
Link
如果之后还有力气大概会再详细写写滤镜比较,但是写这篇的工作量已经有点超出我想象了。
西蔚 2018.1.26
|