搜索 社区服务 统计排行 帮助
  • 3300阅读
  • 23回复

IVTC的一些经验,欢迎大家一起来讨论

楼层直达
xxp
级别: 工作组
注册时间:
2002-05-08
在线时间:
0小时
发帖:
6398
引用

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情况的处理,我自己都感觉不太好,只是硬着头皮用的,呵呵

你不能决定生命的长度,但你可以控制它的宽度。
你不能左右天气,但你可以改变心情。
你不能改变容貌,但你可以展现笑容。
你不能控制他人,但你可以掌握自己。
你不能预知明天,但你可以利用今天。
你不能样样胜利,但你可以事事尽力。
xxp
级别: 工作组
注册时间:
2002-05-08
在线时间:
0小时
发帖:
6398
只看该作者 23楼 发表于: 2003-02-25
“然后才是post processing, 按threshold和dthreshold的值的做deinterlace, 这里就是我不明白的地方了.”

你可以自己去用avspreview放大来看当threshold=15和=150的情况
还有当threshold=15下,dthreshold=9和90的情况
就知道咯,但是要我怎么说清楚,不知道怎么说。。。。。。。

昨晚没贴上图,有空再贴吧

你不能决定生命的长度,但你可以控制它的宽度。
你不能左右天气,但你可以改变心情。
你不能改变容貌,但你可以展现笑容。
你不能控制他人,但你可以掌握自己。
你不能预知明天,但你可以利用今天。
你不能样样胜利,但你可以事事尽力。
级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 22楼 发表于: 2003-02-25
引用
最初由 xxp 发布
是IVTC还是deinterlace,我也不清楚,英文说明里是deinterlace的,但实际我们做的是IVTC。
threshold是控制了combed frame的判定,然后交给dthreshold来绝对对判断出来的frame里的每个部分到底做多少动作。

我还是有点不明白这里的区别, 先说说我对decomb的理解吧...

首先是field matching, 用telecide来做, t是top field, b是bottom field, P,C,N依次就是前一帧, 现在的帧, 和下一帧,
Pt Ct Nt
Pb Cb Nb

对比 Ct Ct Ct
Pb Cb Nb

然后算出三种搭配的comb值, 按最小的那个来match field.
如果有用guide, 那就看计算的结果和guide预测的结果的差距, 如果小与gthresh就按guide预测的来做field matching. 所以这里应该和threshold没有什么关系, 因为不管怎么设置threshold, 在算法不变的情况下, 得出的comb值都是不变的, 只有gthresh才会影响这里的结果.

然后才是post processing, 按threshold和dthreshold的值的做deinterlace, 这里就是我不明白的地方了.

最后是decimate, 就是去帧了, 把30FPS转换成24FPS.

live id: liusu119@hotmail.com
email: liusu119@gmail.com
xxp
级别: 工作组
注册时间:
2002-05-08
在线时间:
0小时
发帖:
6398
只看该作者 21楼 发表于: 2003-02-24
算了,我晚上再上传吧,论坛太慢了

你不能决定生命的长度,但你可以控制它的宽度。
你不能左右天气,但你可以改变心情。
你不能改变容貌,但你可以展现笑容。
你不能控制他人,但你可以掌握自己。
你不能预知明天,但你可以利用今天。
你不能样样胜利,但你可以事事尽力。
xxp
级别: 工作组
注册时间:
2002-05-08
在线时间:
0小时
发帖:
6398
只看该作者 20楼 发表于: 2003-02-24
纯IT

你不能决定生命的长度,但你可以控制它的宽度。
你不能左右天气,但你可以改变心情。
你不能改变容貌,但你可以展现笑容。
你不能控制他人,但你可以掌握自己。
你不能预知明天,但你可以利用今天。
你不能样样胜利,但你可以事事尽力。
xxp
级别: 工作组
注册时间:
2002-05-08
在线时间:
0小时
发帖:
6398
只看该作者 19楼 发表于: 2003-02-24
Auto24fps(true,24,16,"blend",false)
Auto24fps(false,24,16,"blend",false)
的区别就是第一个是每5帧砍掉1帧
第二个不砍
所以第二个配合decimate来做24fps

“上面说的IVTC实际上是指的deinterlace吧, 不过这里面的"IVTC的力度"我不明白是什么意思, deinterlace无非是做或者不做, 难道还有做多做少之分. 既然threshold已经控制了combed frame的判定, 那dthreshold还有什么作用呢?”
是IVTC还是deinterlace,我也不清楚,英文说明里是deinterlace的,但实际我们做的是IVTC。
threshold是控制了combed frame的判定,然后交给dthreshold来绝对对判断出来的frame里的每个部分到底做多少动作。

“XXP能不能像精品的小嘴巴兄一样 截图对比一下?”
稍等,呵呵

你不能决定生命的长度,但你可以控制它的宽度。
你不能左右天气,但你可以改变心情。
你不能改变容貌,但你可以展现笑容。
你不能控制他人,但你可以掌握自己。
你不能预知明天,但你可以利用今天。
你不能样样胜利,但你可以事事尽力。
级别: 版主
注册时间:
2002-04-27
在线时间:
0小时
发帖:
1585
只看该作者 18楼 发表于: 2003-02-24
引用
最初由 littleyizhi 发布


mode=2 是适用于处理动画里FROM 8FPS OR 12FPS TO 29.97FPS的情况。
在cycle=5时,就是每5fps砍掉1fps。

mode=1 则不是砍掉最相似的帧,而是用当前帧和后一帧之间用a frame interpolated来代替或者是由Threshold参数来决定是否忽略掉(这里要用Telecide(Guide=1))与之配合。可以保持frame rate不变,使画面看起来更平滑。

其实认真看Decimate Readme 文件就会明白。:rolleyes:

真是书到用时方恨少,当初好好学英语就好了。:(



大概明白一些
我研究压制最大障碍是不懂英语 -_-
很多遇到不明白的地方:(
我一定好好学习英语:)
级别: 版主
注册时间:
2002-04-27
在线时间:
0小时
发帖:
1585
只看该作者 17楼 发表于: 2003-02-24
引用
最初由 skywalker 发布
mode=2时会做抽帧, 把30FPS的转换成24FPS,
而mode=1时则是做blend, 把该丢掉的重复帧和下一帧blend在一起, 出来的文件还是30FPS的.
mode=1主要是对hybrid使用的而mode=2是对动画使用的.

下面就是mode=1是的情况, 如果在mode=0时, 这帧就该被drop掉的...


谢谢请教!
如果加上Auto24fps(true,24,16,"blend",false)
就是会转换成24FPS
Auto24fps(false,24,16,"blend",false)呢?
我没试过
我想应该是不变的帧(30FPS)
级别: 版主
注册时间:
2002-10-16
在线时间:
1小时
发帖:
1143
只看该作者 16楼 发表于: 2003-02-24
引用
最初由 剑路1029 发布
Auto24fps(false,24,16,"blend",false)
Decimate(mode=2,quality=3)

Auto24fps(true,24,16,"blend",false)
Decimate(mode=1,quality=3)
好像基本相同
效果有点不同
不知道哪个好


mode=2 是适用于处理动画里FROM 8FPS OR 12FPS TO 29.97FPS的情况。
在cycle=5时,就是每5fps砍掉1fps。

mode=1 则不是砍掉最相似的帧,而是用当前帧和后一帧之间用a frame interpolated来代替或者是由Threshold参数来决定是否忽略掉(这里要用Telecide(Guide=1))与之配合。可以保持frame rate不变,使画面看起来更平滑。

其实认真看Decimate Readme 文件就会明白。:rolleyes:

真是书到用时方恨少,当初好好学英语就好了。:(

级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 15楼 发表于: 2003-02-24
mode=2时会做抽帧, 把30FPS的转换成24FPS,
而mode=1时则是做blend, 把该丢掉的重复帧和下一帧blend在一起, 出来的文件还是30FPS的.
mode=1主要是对hybrid使用的而mode=2是对动画使用的.

下面就是mode=1是的情况, 如果在mode=0时, 这帧就该被drop掉的...

live id: liusu119@hotmail.com
email: liusu119@gmail.com
级别: 版主
注册时间:
2002-04-27
在线时间:
0小时
发帖:
1585
只看该作者 14楼 发表于: 2003-02-24
Auto24fps(false,24,16,"blend",false)
Decimate(mode=2,quality=3)

Auto24fps(true,24,16,"blend",false)
Decimate(mode=1,quality=3)
好像基本相同
效果有点不同
不知道哪个好
级别: 工作组
注册时间:
2001-11-21
在线时间:
0小时
发帖:
795
只看该作者 13楼 发表于: 2003-02-24
XXP能不能像精品的小嘴巴兄一样 截图对比一下?
级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 12楼 发表于: 2003-02-24
上面说的IVTC实际上是指的deinterlace吧, 不过这里面的"IVTC的力度"我不明白是什么意思, deinterlace无非是做或者不做, 难道还有做多做少之分. 既然threshold已经控制了combed frame的判定, 那dthreshold还有什么作用呢?

live id: liusu119@hotmail.com
email: liusu119@gmail.com
xxp
级别: 工作组
注册时间:
2002-05-08
在线时间:
0小时
发帖:
6398
只看该作者 11楼 发表于: 2003-02-24
有区别的,参考以前再天空那边写的
threshold (0-255, default 15) sets the combed frame detection threshold for the postprocessing. You may want to increase this value if too many good frames are being deinterlaced, or reduce it if small combed areas are not getting caught. The default is a good general purpose value. Note that this threshold determines whether a frame is considered combed and needs to be deinterlaced; it is not the threshold you might be familiar with in Smart Deinterlacer. That threshold is determined by dthreshold (below); it is the threshold for deinterlacing the frames detected as combed.

dthreshold (0-255, default 9) sets the threshold for deinterlacing frames detected as combed. Note that this threshold is the threshold you might be familiar with in Smart Deinterlacer.

我自己的理解是threshold这里越大,被认为是非交错而留下来不进行IVTC的frames会越多,但就可能会让交错的frames也被认为是非交错的不做IVTC处理,而导致画面抽丝现象去除不干净。而dthreshold就是对被认为是交错的frames进行IVTC的力度是多大,这个值越大,则交错的frames里IVTC的力度越小(这里是个人感觉,实际要看大家怎样用了)。
你可以先用缺省的值编写好avs后用vd或者nd打开,然后看output窗口,拖动到motion很厉害的帧那里,看IVTC的效果,然后就首先调整threshold的值,调整一次重新打开avs到motion厉害的帧对比一次,直到最满意为止,然后再调整dthreshold的值。当然也可以一起调整,不过dthreshold缺省效果就不错了。这个调整方法不一定科学,最好办法还是应该是使用某个值试压一次后看效果再定比较好,呵呵。
ps.可以使用avsperiview来放大画面对比效果

你不能决定生命的长度,但你可以控制它的宽度。
你不能左右天气,但你可以改变心情。
你不能改变容貌,但你可以展现笑容。
你不能控制他人,但你可以掌握自己。
你不能预知明天,但你可以利用今天。
你不能样样胜利,但你可以事事尽力。
级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 10楼 发表于: 2003-02-24
另外, Threshold和dthreshold有什么区别啊, decomb的readme里面说这两个都是管deinterlace的, 但没说有什么区别.

live id: liusu119@hotmail.com
email: liusu119@gmail.com
快速回复

限150 字节
上一个 下一个