引用
Silky
电影原本是 24fps 的,在胶卷过带(Telecine)的时候,NTSC 制会经过 3:2 pulldown 转为 30fps。
也就是原本 1 2 3 4 四个 Frame,拆成 1o 1e 2o 2e 3o 3e 4o 4e,每个 Frame 拆成奇数扫瞄线组成的奇数图场(Odd Field)和偶数扫瞄线组成的偶数图场(Even Field)。重新组合如下(以 Odd Field First 的顺序)
1o 1e - 2o 2e - 2o 3e - 3o 4e - 4o 4e
[ A ] - [ B ] - [ C ] - [ D ] - [ E ]
每两个 Field 再重新组合成一个 Frame,就变成 [A][C][D][E] 五张 Frame。这样由原本的 4 张变成 5 张,4*6 = 24 => 5*6 = 30,就能从 24fps 转为 30fps。
在电视上看,电视因为是交错显示,所以看不到交错线。但是在计算机上看,计算机屏幕是循序显示,所以中间的 2o 3e -3o 4e 这两张 Frame 中的 Field 分别来自不同的 Frame,一起显示的话就会看到交错的现象。
DVD 压缩的时候,母带是胶卷过带(Telecine)后的 30fps,但是我们知道,其实原本的影片是 24fps 的,这 30fps 其实是从 24fps 转出来的,中间有不必要重复的 Field。这些重复的 Field 会造成交错,使得每 5 个 Frame 中就有 2 个 Frame 交错(名言:每五张烂两张),这些交错的画面要压缩不但浪费空间,而且交错画面又难压缩,会使得压缩的效果很差。
所以先进的 DVD 压缩制程,在压缩时都会使用 IVTC(inverse telecine,反胶卷过带),将 30fps 转回 24fps,这样压缩的画面张数由 30fps 减少为 24fps,少了 20%,等于 Bitrate 增加 20%,而且画面无交错容易压缩,所以压出来的画质会好很多。
但是 IVTC 检出不一定能做到 100%,遇到无法检出、判断的部分,Encoder 还是会以原本的 30fps 来压缩。所以我们会看到有些 DVD,是 Film(24fps)和 NTSC(30fps)混合的 DVD,又叫做 Hybird(混合)的 DVD,这个意思就是说,这张 DVD 内的画面,是 24fps 无交错,和 30fps 有交错两种型态互相混合的。
通常 RC1 八大电影公司出的 DVD IVTC 率都很高,几乎都高达 99% 以上,但是其它的公司出的 DVD 就不一定有这么高的比例。IVTC 100% 的 DVD 代表这张 DVD 内完全以 24fps 压缩,那么在 30fps/60 field/s NTSC 制的电视机上要播放时,要怎么播放呢?这些 DVD 在压缩的时候,Encoder 会写入一个 Flag(旗标)的信息,叫做 Repeat First Field,简写为 RFF。根据这个 RFF,DVD 机播放的时候,就会知道哪些 Field 要重复输出,利用重复输出这些 Field,DVD 机就会再播放的时候,做上面提过的 3:2 pulldown 的动作,在播放的同时,将 24fps 转为 30fps 输出,这样就能在电视上正常收看了。
PAL 制则不一样,胶卷过带时是采用 2:2 pulldown,也就是仍然输出原本无交错的 Frame,但始将播放速度加快 4%,声音也一起加快 4%,提升为 25fps,所以理论上来说,PAL 很好处理,因为画面根本无交错,所以直接压缩即可。不过我在这里看到有朋友提到,PAL 的 DVD 还是有些是交错的,这点我就不明白是为什么了,可能是制作过程上有问题吧。(譬如说用 DV 去拍的影片,DV 大部分是交错式拍摄,张张都交错,是补不回来的)
DVD2AVI 的 Force Film,所作的处理,和 TMPGEnc 的 IVTC 不一样。TMPGEnc 的 IVTC 是跑一遍分析画面的信息,计算每一张画面的「奇数扫瞄线和偶数扫瞄线的差异」和「动态」这两个信息,藉由这些数据,推测出原本的 24fps 的顺序,将画面反转回原本的 24fps。因为需要分析、计算这些数据,所以跑第一遍的时候花的时间要比较久。而 DVD2AVI 则完全不一样,DVD2AVI 是根据上面提到的 RFF 这个旗标的信息,将重复的 Field 删除掉,直接原封不动的输出 DVD 内原本储存的 24fps 的 Frame。因为只是做这样的判断,所以速度很快,存 .d2v 档时一下子就存好了。所如果这部 DVD 在压缩时的 IVTC 率很高,Film 的比例高达 95% 以上,内部原本就是储存 24fps 的形式,这样才可勾选「Force Film」这个选项。如果该 DVD 的 IVTC 率很低,内部大部分是 30fps 的形式,选「Force Film」输出,你会得到乱七八糟的结果。所以在使用「Force Film」这个选项之前,必须先用 Preview 预览一次,让 DVD2AVI 跑一小段试试看,这部 DVD 的 IVTC 率究竟有多高,如果 Film 的比例很低,那么就不可以使用 Force Film 输出。
另外如果是 PAL 制的 DVD,更不可以开 Force Film,否则 DVD2AVI 会每五张砍掉一张,原本 25fps 会变成 20fps,画面会错得离谱。PAL 的画面就是原本电影无交错的画面,不需要做 IVTC,如果你的 PAL DVD 有怪异的交错,那么我猜测它的讯源一定是非""正规""的讯源(例如 DV),才会发生这种现象。遇到这种情况你应该作的是 Deinterlace,而不是 IVTC。
DVD2AVI 的 Force Film 和 TMPGEnc 的 IVTC,两者的作法和使用的时机都不同,使用者要自己判断该用哪一种方法。如果有人拿 Film 率很低的片子用「Force Film」输出,得到惨不忍睹的结果,然后怪 DVD2AVI 的 "IVTC" 烂,那真是冤枉了 DVD2AVI 的作者。这些观念在作者的网页上都讲得很清楚。
http://arbor.ee.ntu.edu.tw/~jackei/dvd2avi/doc/issue.html#videotype
节录当中的一段:
Forced FILM is based on RFF detection and frame decimation/duplication.
NTSC or PAL + Forced FILM ON -> garbage
FILM + Forced FILM ON -> synchronous 23.976 fps flawless FILM (equals to IVTC)
作者说,Force Film 是根据 RFF 旗标侦测和删除重复的 Frame。
NTSC(30fps)或者是 PAL 的讯源,如果开了 Force Film,得到的东西会是 garbage,垃圾。
Film 的讯源开 Force Film,才会是同步的 23.976fps,无错误的 Film 影像(equals to IVTC,等于做 IVTC)。
作者已经说得这么清楚了,就请大家要有正确的观念,不要再冤枉他了
帮 DVD2AVI 的作者申申冤
引用
csr2000
IVTC
1. AviUtl还开发了Interlace解除2,和本来的Interlaced解除结合使用,据说效果很好。
2. AviSynth的Plugin IT,Decomb如果不用Post的话,去场的成功率不如IT,用的话,画面质量又不如IT了,而且IT的场景过渡非常平滑。
3. AviSynth的Plugin WarpSharp,内置AutoFPS24,去场率据说比IT还高,但是要指定是TOP还是BOTTOM,24帧化场景过渡卡的比较明显,所以一般先用AutoFPS24去场,然后用Decomb的Decimate来抽帧。
4. AviSynth的Plugin Decomb,再加AntiComb的话,就无需post了,效果比较好,但AniComb对片中的小字,比如Credite里的,杀伤力比较大。
5. AviSynth的Plugin GreedyHMA,比较老的了,有颜色方面的bug,所以没有试过,不过据说出了改良版,修正了bug。
6. AviSynth的Plugin IVTC22和IVTC4,也没有试过。
silky对为什么要做IVTC说得比较清楚了,csr也大概的说了怎么做IVTC
下面就我正在用的IVTC做法说说
1、纯粹的NTSC 3:2 pulldown的30->24,假设reference=top
YUV2下
IT(fps=24,ref="top",blend=false)
或者IT(fps=30,ref="top",blend=false).decimate(mode=2,quality=3)
YV12下
Telecide(guide=1,Gthresh=50,Chroma=true,Threshold=15,dthreshold=5,Post=true,mm=0).Decimate(mode=2,quality=3)
或者Telecide(guide=1,Gthresh=50,Chroma=true,Threshold=15,dthreshold=5,Post=false,mm=0).Decimate(mode=2,quality=3).AntiComb()
2、Hybird的FILM和NTSC混合的clip
情况一,dvd2avi报告FILM多的
Telecide(guide=1,Gthresh=50,Chroma=true,Threshold=15,dthreshold=5,Post=true,mm=0).Decimate(mode=3,threshold=1.0,quality=3)
情况二,dvd2avi报告NTSC多的
Telecide(guide=1,Gthresh=50,Chroma=true,Threshold=15,dthreshold=5,Post=true,mm=0).Decimate(mode=1,threshold=1.0,quality=3)
上面的2种处理都是在YV12下,如果在YUV2下,不知道能不能用IT(fps=30,ref="top",blend=false)再加Decimate(mode=1,threshold=1.0,quality=3)或Decimate(mode=3,threshold=1.0,quality=3)来处理,没试过,呵呵
欢迎大家来指正,特别是对于Hybird情况的处理,我自己都感觉不太好,只是硬着头皮用的,呵呵