DVDvob转rmvb压制技巧和经验

安装软件

Gk0.28.7(可以使用其内的滤镜和DVD2avi工具)以上版本,Avisynth2.5x,阿飞解码插件包(vobsub、mpge2,AC3ACM等解码器)或者风暴插件包,rma(分离合成rm视频和音频用)

一,源处理

1,smartripper和DVDecrypter提取vob文件

压制vob-rmvb推荐使用smartripper,可以很方便的合成输出整个vob,也方便后续字幕的提取和使用

需要注意几点:

1)硬盘分区格式如果是Fat32的只能提取4G的文件,所以如果文件超过4G,可以ripper到NTFS格式的分区上,同时在smartripper上定义文件大小,默认是4G。

2)对于多声道的文件,如同时有2ch或者6ch的,就采用2ch。如此ripper时的文件会进一步缩小,而且2ch的压制问题较少。双语影片根据实际情况提取,参见下文。

3)如果要进行切割分集,那么用DVDecrypter来进行ripper更方便些。

2,DVD2AVI生成工程文件和音轨

DVD2AVI可以查看源的一些信息。打开后按F5预览,弹出的窗口中可以查看信息如帧率,是否是PAL还是NTCS。注意,DVD2AVI 显示的 Frame Type = Interlaced 的信息,不是表示这张画面是否交错,而是根据DVD内置的一些参数得出的,DVD2AVI 根本不会去分析、判断画面上是否有交错。因为我们手里拿到的很多DVD片子制作也非标准。

设置上,field operation设置成None,交给后续的avs的decomb做IVTC处理,其他的设置一般论坛上介绍的就是默认的设置,如在视频 [Video]菜单下的[iDCT]中选择IEEE-1180,可以获得最好的解码质量,速度上也不是传说中的最慢.最后保存工程文件File->Save Project (1.76)

如果是一些双语的连续剧,通过这步就可以将几个音轨都提取出来,就可以先单独压制d2v 文件得到视频rm,然后分别将2个音轨压制,最后可以用rma进行合并。见下文。

二,avs及其滤镜的合理使用

1,IVTC

IVTC是对场处理笼统的叫法,狭窄意义上讲,场处理一般又分IVTC,FieldDeinterlace,Bob等.实际压缩证明IVTC可以在一定程度上控制码率。

IVTC(Inverse Telecine),简单的说,IVTC就是将DVD纪录的29.976fps(NTSC)或25fps(PAL)的隔行信号还原为胶片的23.976fps的逐行信号。IVTC可以有效的消除影片的“拉丝(Interlace)”现象,还可以平滑的减少每杪内的桢数,以获得画面质量与码流的最佳比例。不过所谓的拉丝,如同https://www.360docs.net/doc/249471789.html,给的示例,我在DVD处理过程中倒从没见过.估计处理DV源和TVRIP时这种现象多见.另外,在rmvb压制中,如果开启软件本身的"反交织(Deinterlace)"功能,效果反而不好.所以我不知道那些所谓高手谈论去拉丝时到底结合了多少实际压缩体会.

FieldDeinterlace一般用于纯交错(interlaced)的视频流上,如DV源等,是真正意义上的反

交织.https://www.360docs.net/doc/249471789.html,上有很多示例图.

Bob()有场分离的意思,用于vedio制式的转换,具体也了解不多,略.

做IVTC有很多方法,如TMPGENC里的ODD/EVEN去场,VDM的BLEND去场,又有很多avs滤镜可以实现,如IT,Warpsharp,decomb,GreedyHMA,TomsMoComp等.这里只根据常用的用GK或者AutoRv9自动生成的avs模板介绍avisynth的滤镜decomb,感兴趣的可以根据这些关键词到百度或者google寻找相关资料.

下面参考DVDSHarexvid里介绍的IVTC的内容(混合型的不介绍)和doom9官方的https://www.360docs.net/doc/249471789.html,/index.html?/decomb.htm,结合工作室几个组员的测试结果做些介绍.Decomb不同版本的功能略有不同.

PAL制式

FieldDeinterlace(blend=false)

#FieldDeinterlace()

#FieldDeinterlace(full=false)

#Telecide(guide=2).Decimate(cycle=25)#有些版本order加了会出错,就取消

NTSC制式

Telecide(guide=1,post=false).Decimate(Cycle=5)

估计是抽去重复帧的作用才使得rmvb压制时,码率在一定程度上有所控制.而对于绝大多数的DVD,所谓的拉丝现象是不明显的.

下面顺带将这几个的详细参数说明下

FieldDeinterlace参数

FieldDeinterlace(full, threshold, dthreshold, blend, chroma, debug) FieldDeinterlace()相当于FieldDeinterlace(full=false, threshold=15, dthreshold=9, blend=true, chroma=false, debug=false) 为默认设置

full关闭,说明只对检测到的交织的画面进行处理

blend指在交错画面用渲染来替代填充

threshold (0-255), dthreshold (0-255), 默认分别为15和9,一般用threshold, dthreshold等阈值参数都会增加压缩时间,但效果提升又有限

常用的,如FieldDeinterlace(blend=false),FieldDeinterlace(full=false),大家可以自己测试体会下.

decomb参数

Telecide(reverse, swap, firstlast, guide, gtresh, post, treshold, dthreshold, blend, chroma, y0, y1, debug)

其中

guide,0-3,默认0 ,NTSC用1,PAL用2,当已知DVD是NTSC或者Pal时,使用此参数可以大大提高field matching

threshold(0-255, default 15),设定一个极限,超过此极限telecide便认为它是有横纹的

祯,将在后面被deinterlace.增大这个值如果过多的好祯被deinterlace,减小此值如果一些地方的横纹没有被探测到。

dthreshold(0-255, default 9),设置deinterlace的强度,可以开启到75,不过速度马上降低.

post默认是开启,说明Telecide后还要进行deinterlace,如果画质好,可以关闭.

如:用于一些动画片制作avi时的设置

Telecide(Guide=1,Gthresh=50,Chroma=True,Post=false)

Decimate(cycle=5)

Decimate参数

Decimate(cycle, mode, threshold, debug)

Decimate有删除重复帧率的作用,cycle里NTSC用5,PAL用25

mode主要用于混和帧的处理

如:

Decimate(mode=1,threshold=50)

关于decomb的更详细的内容参见https://www.360docs.net/doc/249471789.html,/index.html?/decomb.htm

注:对于混合型的IVTC处理参见其他人介绍的内容.

2,画面裁减和缩放 crop()/LanczosResize()

若要著名的silky讲解画面裁减和缩放,起码5千字。我就占他光简单的说一句:只要人物没有压扁或太阳等圆形物体没有变成椭圆即可。有经验的也就无所谓用GK来精确计算,何况很多情况下(4:3模式的连续剧),就是GK算过的也还是要手动来调整

想了解的多的,请看

https://www.360docs.net/doc/249471789.html,/showthread.php?t=441

根据rmvb压制的实际情况,推荐自由裁减和固定缩放(新手还是试试GK或者VDM)。

自由裁减

先用mediaplayer在原始画面下观看效果,了解黑边、视频噪音线的大致情况。一般尽可能的裁减掉,特别是左右黑边。

自crop(左,上,-右,-下)

固定缩放:根据片子的特点,经裁减后用以下三个固定画面来用于rmvb的压制

全屏4:3模式的用448×336,480×360,512×384

普通宽银幕(2.35:1)用640×272(建议这类画面保留部分黑边,则画面大小为640×360)一般宽银幕用576×312,608×336

如:

crop(16,8,-8,-8)

LanczosResize(448,336)

若用于动画片的压制,有不少人使用SimpleResize

如:

LoadPlugin("C:\Program Files\Gordian Knot\SimpleResize.dll")

crop(8,24,-8,-4)

SimpleResize(512,384)

画面缩放是我在rmvb压制中比较强调的问题。作为一种高度压缩的格式,没有那么多数据来保证大画面。而用于vob-rmvb的压制,缩小画面不仅可以一定程度上控制码率(如果片子本身容易错位的,那缩小画面还是不能有效控制码率,除非缩小到384×288的小画面以下),而且合适的画面大小是人性化压制的体现。当在电脑上打开一个rmvb,其原始画面近乎充满屏幕时,我真的不知道操作点在哪里。另外高分辨率的画面需要硬件支持,更何况播放rmvb 本身对硬件要求要高,所以压制者必须考虑画面缩放的问题。

3,亮度

亮度是rmvb压制需要注意的问题。很多人问我怎么我的码率设置的那么低,而画质却相当好,是不是用了什么额外的滤镜。实际我就是在压制时增加了些亮度。增加亮度在xvid制作中一般卡的较紧,他们认为是增加亮度也会同时增加噪音,同时码率也会加大。rmvb压制中,建议用Levels(),增加点亮度即可,所谓的噪音也可以为rmvb柔化的本着特点给掩饰了。而增加了亮度的rmvb整体画质上就感觉比较阳刚。

增加亮度,在rmvb压制中对码率和压缩时间基本无影响

4,降躁

用于vob-rmvb,使用降低噪音的目的是为了控制码率。参考了部分xvid制作时的avs参数,使用undot()。undot滤镜是进行象素及细小噪点降噪,一般用来去除细小的、肉眼不容易察觉的噪点,所以具体效果上并不明显,而且对压缩速度也影响不大。结合IVTC可以在一定程度上控制1pass压制码率错位。

我一般这么用,加一套滤镜就用一次undot

LoadPlugin("c:\Program Files\GORDIA~1\UnDot.dll")

LoadPlugin("C:\PROGRA~1\GORDIA~1\decomb.dll")

DirectShowSource("e:\temp\sample.vob")

#IVTC略

UnDot()

crop(16,8,-8,-8)

LanczosResize(448,336)

UnDot()

Levels(0,1.2,255,0,255)

UnDot()

或者

LoadPlugin("C:\Program Files\GORDIA~1\mpeg2dec3.dll")

LoadPlugin("C:\Program Files\GORDIA~1\decomb.dll")

LoadPlugin("c:\Program Files\GORDIA~1\UnDot.dll")

v=mpeg2source("e:\temp\sample.d2v",cpu=4).undot()

#IVTC略

v=crop(v,16,8,-8,-8)

v=LanczosResize(v,448,336).undot()

v=Levels(v,0,1.2,255,0,255).undot()

a=DirectShowSource("e:\temp\sample.ac3")

AudioDub(v,a)

5,柔化降躁(具体参见VCD-rmvb压制篇)

也就是常用的fluxsmooth、deen/eDeen和Convolution3D,这几个会增加压缩时间,1pass 码率控制上不明确。一般用于动画片或者片源较差的片子以及DV录制的片源的处理。其中fluxsmooth用于VCD压制可以明显改善VCD的画质,这个会在VCD-rmvb压制中说明。对于画质较好的DVD片子特别要注意取舍。我看很多人的avs滤镜中,这几个全套加入,实为不可取!

加载deen和Convolution3D有的系统上需要转换色彩环境,那么可以根据出错提示来增加转换颜色环境的滤镜,如CONVERTTOYV12()

Convolution3D可以直接用作者内建的preset

Convolution3d (preset="movieHQ") // Movie Hi Quality (good DVD source)

is an alias for Convolution3D (0, 3, 4, 3, 4, 2.8, 0)

Convolution3d (preset="movieLQ") // Movie Low Quality (noisy DVD source)

is an alias for Convolution3D (0, 6, 10, 6, 8, 2.8, 0)

Convolution3d (preset="animeHQ") // Anime Hi Quality (good DVD source)

is an alias for Convolution3D (0, 6, 12, 6, 8, 2.8, 0)

Convolution3d (preset="animeLQ") // Anime Low Quality (noisy DVD source)

is an alias for Convolution3D (1, 8, 16, 8, 8, 2.8, 0)

Convolution3d (preset="animeBQ") // Anime Bad Quality

is an alias for Convolution3D (1, 12, 22, 8, 8, 2.8, 0)

Convolution3d (preset="vhsBQ") // VHS capture Bad Quality

is an alias for Convolution3D (0, 32, 128, 16, 64, 10, 0)

anime用于动画片,movie用于普通影视,vhs主要用于DV源的处理

deen可以用 deen("a2d",2,10,12),具体参见vcd压制篇

edeen默认是(7,14,21,2,3,true)

fluxsmooth可以参考一些自动生成的模板,如

# 1) little noise

#Temporalsoften(2,3,3,mode=2,scenechange=6)

#mergechroma(blur(1.3))

#FluxSmooth(5,7)

#

# 2) medium noise

#Temporalsoften(3,5,5,mode=2,scenechange=10)

#Convolution3d("moviehq")

相关主题
相关文档
最新文档