IVTC

来自NMM Doc
Dgwxx讨论 | 贡献2013年3月25日 (一) 09:40的版本
跳到导航 跳到搜索

IVTC(Inverse Telecine)意为反胶卷过带,是通过场匹配(Field Match)和删除重复帧(Decimate)两个过程,将经过Telecine的视频信号消除交错并恢复到原始帧率的过程。由于Telecine基本用于NTSC制式,因此在制作卡通动画和少部分电影的DVDRIP甚至是BDRIP的时候,都要涉及到IVTC这个过程。 深刻理解IVTC的原理有助于帮助使用IVTC滤镜的高级功能,获得更加准确的结果。

注意
本项目中的计数方式为0起算。计数中0为第一个项目,1为第二个项目,以此类推。

偶数:0, 2, 4, 6, 8...
奇数:1, 3, 5, 7, 9...


Telecine(胶卷过带)

要说明IVTC的原理,首先要从Telecine说起。 为了将电影(24fps)转换到NTSC电视(30fps)上能够正常播放的格式,需要作Telecine(胶卷过带)。其做法是先把电影的一帧拆成两个场,拥有全部奇数(从0起算0、2、4、6...)扫描线的场叫top field(顶场),也叫odd field(奇数场),拥有全部偶数(从0起算1、3、5、7...)扫描线的场叫bottom field(底场),也叫even field(偶数场)。0t和0b两个场可以组成完整的第0帧。

取出前4帧为例,讲4帧拆成了8个场:

0 1 2 3
TopField 0t 1t 2t 3t
BottomField 0b 1b 2b 3b

(表1)

通过顶场在先(TFF,top field first)的方式将这8个场进行重复输出和排列组合之后变成下面这样:

A B C D E
TopField 0t 1t 1t' 2t 3t
BottomField 0b 1b 2b 3b' 3b

(表2) (注:表中1t和1t'、3b和3b'内容完全相同,但实际上已经是不同的场,是经由3:2 pulldhwon过程产生的复制品。为了进行区别加__'__表示)

这样8个场又以这种方式组成了5帧。24帧中每4帧都如此组合,24 * 5 / 4 = 30,就成了30fps的影片。因为原来的显像管电视本来就是交错显示的,这种方式看起来并不会有问题但是电脑显示器或液晶电视是逐行扫描的,其中的C和D帧由于是由两个来自不同帧的场组成的,因此看起来可能就有交错,有人称为梳状波纹。

以上这个过程叫做3:2 pulldown。做过3:2 pulldown的电影就变成30fps的了,在NTSC的电视上播放就没有同步问题了,NTSC的DVD也用此种方式的视频。但是在电脑上播放每5张画面会有2张有交错,有人称之为“5烂2”。这种DVD处理起来就需要做IVTC。

电影要在pal的电视上播放,需要做2:2 pulldown。不过没有NTSC那样的复杂组合,只是将播放速度加快5%,既把24fps的画面以25fps播放,声音也加快5%,保持同步。

24fps的源就是通过上述方式转换为30fps灌制成DVD。因此在DVDRIP过程中要做IVTC才能还原原本的帧率。

Field Match(场匹配)

通过将场重新匹配、组合的方式,可以将视频恢复至无交错状态。通常做法如下。 以表2为准,首先以0t为准,分别和0b、1b进行匹配。

0t -
0b 1b

从中选择交错程度较低的组合输出(本例中自然是原配的0t0b组合)。 然后重复这个过程:

- 1t -
0b 1b 2b

(输出1t1b)

- 1t' -
1b 2b 3b'

(输出1t'1b)

- 2t -
2b 3b' 3b

(输出2t2b) 最后对3t进行匹配:

- 3t - 重复该过程→
3b' 3b 4b 重复该过程→

(输出3t3b或3t3b') (表3)

Decimate(删除重复帧)

经由以上操作,通过将场重新拆分、组合,已经将视频回复成如下状态:

A B C D E
TopField 0t 1t 1t' 2t 3t
BottomField 0b 1b 1b 2b 3b

(表4) 可以看出C帧出现了重复,这时需要通过删除重复帧这个操作,将B或C中的以帧删除。重复这个过程,每5帧中删除1帧:

5 * 6 = 30fps
4 * 6 = 24fps

将帧率从30fps恢复为24fps。

至此IVTC过程完成。

实际应用中的IVTC

以上说明的是理论上最基础的IVTC原理,实际应用过程中只靠单纯的场匹配是不足以完全消除交错的。其原因就源自场匹配这个过程的准确率问题。 场匹配并不是100%准确的。由于源在Telecine之后可能还会经过其他编辑(加字幕、加特效等),造成画面无法通过场匹配消除交错。或者由于画面本身的属性问题导致场匹配误判,输出了错误的匹配。

所以通常实际应用IVTC的时候,通常会有一些手段来提高场匹配精确度,或者采取一些辅助手段来弥补场匹配的失误。下面进行简要的介绍。

色度信号检测

CrossColor干扰IVTC Postprocessing判断的例子。

由于DVD的色度信号分辨率只有亮度信号的一半,所以进行IVTC的时候一些滤镜将色度信号忽略,直接通过信息量较大的亮度信号来计算匹配结果。

而AviSynth的IVTC插件TIVTC则允许用户将色度信号也列入场匹配和后处理中交错度计算的参考范围,来提高精度。

但同时,如果片源的色度信号存在问题(如彩虹等),则需要将色度信号检测关闭,以免影响匹配和后处理检测结果。

后处理

后处理称为post-processing。为了防止错误的场匹配结果和无法通过场匹配还原的交错帧直接输出造成结果残留交错,IVTC滤镜通常会在场匹配完成之后对输出的帧进行独立的交错度检测。如果该帧被判定为交错,则对该帧进行Deinterlace处理,防止输出交错结果。

然而,就像场匹配一样,后处理对交错的检测并不是100%准确。后处理同样会出现误判。将不交错的帧判定为交错,或者漏掉交错的帧,都有可能发生。因此,为了实现完美的结果输出,一些IVTC滤镜内置了允许用户直接干预场匹配和后处理判定结果的手动修正功能。

手动修正

手动修正称为Override(简称OVR),英文意为推翻、废除,允许用户通过一个脚本文件推翻滤镜的场匹配和后处理判定。通过使用OVR功能,理论上可以实现100%正确的IVTC。

但由于全手动修正结果需要大量的时间和精力,因此实现起来相对困难。在具体的IVTC应用中,可以通过一些OVR的技巧来来减少修正所需要的时间,达到相对较好的输出结果(但不是100%准确)。这点在TIVTC的说明中将会进行详细的解释。