在讲解完Telecide函数之后,我们来讲解与之配合的Decimate函数。Decimate函数通常紧跟在Telecide函数后面,因为Telecide可以为紧跟在其后的Decimate函数传送信息,更有利于Decimate准确的判断并删除重复帧。
Decimate函数基本语法:
Decimate()
通常情况下,用下面写法便可应付绝大多数情况,比如纯3:2 pulldown型:
Telecide(order=1,guide=1,post=2,vthresh=30).Decimate(cycle=5)
有一点请注意,即25fps的PAL片源不要使用Decimate删除帧,因为这类片源根本没有重复帧。如果删了,就会造成画面播放的时候一顿一顿的。
为了应付更复杂的情况,我们来了解一下Decimate函数的常用参数。
Cycle参数:(范围:2~25,默认5)
Cycle参数用来指定删除重复帧的“周期”,即每多少帧删除一帧。比如,在3:2pulldown的片源下,我们需要每5帧删除1帧(原因见本节开头,Telecide原理讲解部分),那么cycle函数应当设置为5。
Mode参数:(范围:0~3,默认0)
Mode参数用于指定Decimate函数的具体删帧策略。
当设置mode=0时,Decimate函数将直接删除本周期内最相似的两个帧中的一个,影片帧率将会随之下降。
当设置mode=1时,Decimate将会采用两种策略来应对:
1.用一个内插补点计算出来的帧,来替换原本应该删除的帧,保持帧率不变。这个用内插补点计算出来的新的帧,由当前帧和下一帧计算得出。比如,经过场匹配处理的12345五幅画面,3、4相同,本来应当删去4,但是这时候Decimate就会通过3和5计算出来一个中间帧,取代4的位置。这时,仍然有5幅画面,所以帧率保持不变。
2.保持该帧原有的样子不变,直接pass。比如,原有12345五幅画面,3、4相同,本应当删去4,但此时Decimate会保持4不变直接输出。
到底使用哪种策略,又由两个方面决定:
1. 片源是否为3:2 pulldown?(需要在Telecide函数中使用post=1参数声明帧序)
2. 该帧与前一帧的区别?(通过本函数的threshold参数指定)
设置mode=3能够较好的应付24p/30ihybird这片源。Decimate会应用以下两种应对策略:
1.当处理24p部分的时候,Decimate会按照正常的删帧方式,每5帧删1帧,帧率下降到24fps。比如经过场匹配处理的12345五幅画面,3、4相同,Decimate会删除4,此时帧率下降到24fps。
2.当处理30i部分的时候,因为五幅画面中没有任何两幅相同,不能直接删除,同时还要求将帧率下降到24fps,所以Decimate会将5帧中最相近的两帧混合成1帧输出,以减少帧率下降所造成的顿挫感(画面一顿一顿的感觉)。比如经过Deinterlace处理的12345五幅画面,没有相同的,但是3、4两幅画面很相似,此时Decimate会将3、4混合成1帧输出,此时帧率下降到24fps。
Decimate的重点便是mode的采用。在通常情况下,纯3:2pulldown(即纯24p)的影片最适合采用mode=0,这样处理得到的画面是最完美的,由于删除了本来就不该有的多余帧,所以没有顿挫感。
但是大多数情况是,没有纯3:2pulldown的影片,很多影片为24p/30i混合的。mode=1和mode=3都是为了这种情况准备的。我们知道,24p部分每5张有一张重复,如果不删除这张重复的,画面播放的时候会一顿一顿的;30i部分没有重复画面,如果删了的话,画面会一顿一顿的。但是问题是,我们的片源里面既有24p也有30i,到底是删还是不删呢……这取决于24p和30i的含量。
1.当影片大部分为24p,少数为30i的时候,应当采用mode=3。这样,24p部分被完美还原,30i的部分进行混合输出处理,缓解了由删帧引起的顿挫感。
2.当影片大部分为30i,少数为24p的时候,应当采用mode=1。这样,30i部分因为没有删帧,没有顿挫感;24p部分由于采用了内插补帧的方式增加了一帧,缓解了不删帧引起的顿挫感。
有一点请注意,用Telecide+Decomb处理24/30hybird混合型片源,最多只能算作一种妥协方案。这样做出来的DVDRip,画面可能会出现模糊、顿挫感、色块(由内插补点或者Blend引起)等等不良现象。处理24/30hybird混合型片源最佳的解决方案是制作120fps的AVI。
Decimate函数的重要参数到这里就基本讲完了。如果想了解更多Decimate的进阶参数,请参考《Decomb参考手册》。
下面来讲解FieldDeinterlace函数。FieldDeinterlace与Telecide的Postprocessing机能非常类似,都是对出现交错的单个帧进行去交错。
FieldDeinterlace基本语法:
FieldDeinterlace()
Full参数:(范围:true/false,默认false)
Full参数用于指定是否全部帧都是交错。当设置为true时,函数会对全部帧进行Deinterlace处理。当片源全部为交错帧的时候(比如纯30i),可以将full设置为true。当设置为false时,函数会对每个帧进行侦测,如果判断为交错帧,那么进行Deinterlace处理;如果不是交错帧就直接pass。
Blend参数:与Telecide的Blend参数相同。
到此为止,Decomb的一些函数的基本参数已经基本讲解完了。本节只是对一些重点、基本参数进行了讲解,如果想了解更多,笔者强烈建议您参阅Decomb的《Decomb参考手册》。在这个手册里面,您将找到一切您需要的答案。
联系客服