AVS(AviSynth)的认识

一、简述
 
  AviSynth AVI SYNTHesizer 的缩写,意思就是 AVI 和成器,是一个 Frameserver 。( Frameserver 就是一个把影像文件从一个程序转换到另外一个程序的过程 , 其间没有临时文件或中介文件产生)
 
    AviSynth 是由 Ben Rudiak-Gould 首创的一种非常有用的工具,能够提供各种方式来合并和滤镜处理影像文件。最独特的就是 AviSynth 并不是一个孤立的影像处理程序,而是在影像文件和应用程序之间担任“中间人”的角色。
 
    AviSynth 的基本工作原理是这样的:
    首先建立一个包含特定命令的文本,称之为“脚本” ( 后缀为 avs) ,这些命令指定要运行处理的影像文件和滤镜;
    然后运行影像应用程序,比如 VD ND ,打开脚本。此时 AviSynth 就开始工作了,打开脚本中指定的影像文件,运行特定的滤镜,并把输出结果提供给影像应用程序。但影像应用程序并不了解 AviSynth 在后台所做的处理,而认为是直接打开了一个“被处理过”的影像文件。
 
    因此使用 AviSynth 5 大优势:
1. YUV 支持:内建滤镜可以在 YUV 环境下运行,第三方滤镜几乎也兼容 YUV ,所以比起 VD ND 的内嵌滤镜必须在 RGB 环境下运行要快很多。省却了一个转换的过程,将来还可以支持 YV
2. 滤镜处理:内建许多影像处理滤镜,比如 Resizing Cropping 等。还有大量的第三方强力滤镜,并可以调用 VD 以及 AviUtl 的第三方滤镜。
3. 突破 2G 限制:通过 AviSynth 打开影像文件就相当于应用程序直接打开,这样就可以使本身有 2G 限制的程序也能突破 2G 的限制。
4. 打开格式: AviSynth 可以打开几乎所有影像文件,包括 MPEG QuickTime 。所以当影像应用程序通过 AviSynth 打开这些文件时,会被认为是打开标准的 AVI ,这样就可以处理影像应用程序本身并不支持的格式。
5. 节省硬盘空间: AviSynth 处理的影像文件在运行过程中直接导入应用程序,没有临时文件,所以节省硬盘空间。
 
    AviSynth 现在有 3 个版本,第一个是 Ben Rudiak-Gould 的首先编译的 AviSynth v1.0b ;在 Ben Rudiak-Gould 停止开发后, Edwin van Eggelen 继续开发,最新的版本是 AviSynth v1.0b6 ;在 2002 7 月第二次源码编写计划开始,目前最新的版本是 AviSynth v2.0.6 ,新的 v2.5 版还在开发中。
    最后一个版本比较强大,更新速度快,增加了许多实用的命令,也吸收了一些优秀的第三方滤镜成为内建滤镜,强力推荐使用。
 
二、安装
 
AviSynth 的安装可谓简单,先下载 AviSynth ,然后解压缩,把 AviSynth.dll 复制到 Windows\System 下( W98 ME )或 Windows\System32 下( W2K XP ),然后运行 INSTALL.REG 就完成安装了。
 
 
三、内建滤镜
 
AviSynth 内建了数目繁多的滤镜,所以只能介绍一些最常见实用的一部分。
 
1 、源文件滤镜
 
AVISource
导入 AVI ,对于 DivX XviD ,需要安装相应的 Codec
   例: AVISource("test.avi")
WAVSource
导入 WAV
   例: WAVSource("test.wav")
 
2 、处理滤镜
 
AddBorders
加边:给影像加黑边,尤其适用于对 16:9 的影像加字幕,希望不影响图像,把字幕加在图象的下方的情况。参数是整数,顺序是左、上、右、下。
例: AddBorders(0,64,0,64)   # 640*352 16:9 )改成 640*480 4:3
 
ConvertToRGB ConvertToYUY2
改变颜色环境:
VD AviUtl 第三方滤镜有的需要 RGB 环境才能运行,需要 ConvertToRGB 来进行切换。
有的 RAW 文件是 RGB 的,但调用的 AVISynth 滤镜只能运行在 YUV 下,就需要用 ConvertToYUY2 来运行。
例: ConvertToRGB()      改变成 RGB 颜色环境
�� ConvertToYUY2()     改变成 YUV 颜色环境
 
Crop
   切边:为了保持比例或切除黑边,参数是整数,顺序是左、上、宽、高。
   例: Crop(8,0,704,480)     左右各切去 8 ,以保持比例
 
Levels
   层次:调节亮度、对比度和 Gamma 值。
   例: Levels(0,1.2,255,0,255)   # 调整 Gamma ,使画面变亮
 
 
LanczosResize
   放大缩小: Lanczos 采样方法可以在图像处理中看到,是 BicubicResize 的替代者,提供更精准、更锐利的画质。本来是日本人开发的第三方滤镜,在日本普遍使用,欧美使用 BicubicResize 。自 2.05 版本开始吸收为内置滤镜。
   例: LanczosResize(640,480)   # 把分辨率改变为 640*480
 
Tweak
��调整:可以调节色度,饱和度,亮度,对比度。
��色度: -180.0 180.0 ,默认 0.0 。正数趋向红色,负数趋向绿色。
��饱和度: 0.0 10.0 ,默认 1.0 0.0 为黑白。
��亮度: -255.0 255.0 ,默认 0.0
��对比度: 0.0 10.0 ,默认 1.0
 
3 、编辑滤镜
 
FadeIn FadeOut
淡入和淡出:提供淡入和淡出功能,尤其是淡出功能,可以使影片结束地更自然。参数为整数,表示需要编辑的帧数。
例: FadeOut(24)   影片最后 1 秒淡出
 
Trim
截取:决定需要处理的部分。参数为整数,表示需要编辑的开始帧和结束帧。对抽样做 Sample 比较有用。
例: Trim(240,480)   决定处理 240 480 这一片断
 
4 、声音滤镜
 
AudioDub
影音合并:可以把影像和声音合并在一起。适用用用 Helix 直接做 RMVB 格式的 DVDrip
例: Video = AVISource("test.avi")
�� Audio= WAVSource("test.wav")
�� AudioDub(Video,Audio)   test.avi test.wav 合并
 
GetLeftChannel GetRightChannel
   获取声道:把立体声的左右声道单独返回,适用于左右声道不同语种的 WAV
例: stereo=WavSource("test.wav")
�� return GetLeftChannel(stereo)   返回 test.wav 的左声道
 
DelayAudio
声音延迟:由于从 VOB 里分离的 AC3 通常有延迟,所以用 Azid 转码得到的 WAV 也有延迟,在用 AudioDub 合并时就需要加上这个延迟。
   例: WavSource("test.wav").DelayAuido(0.5)   test.wav 延迟半秒
 
 
 
 
 
四、第三方滤镜
 
AviSynth 最强大之处就是有数目繁多、功能强大的第三方滤镜;同时还可以调用 VD 以及 AviUtl 的滤镜;甚至还有特别开发的接口,可以让 TMPGEnc AviUtl 读取 AVS
和内建滤镜不同,第三方滤镜需要先调用声明,再可以使用。
 
1 、源文件滤镜
 
MPEG2Dec
    dividee 编写的读取 DVD2AVI 产生的 d2v 工程文件的滤镜,同时内建去除 Noise TemporalSmoother
例: LoadPlugin("MPEG2Dec.dll")
�� MPEG2Source("test.d2v")
 
MPEG2Dec2
    trbarry MPEG2Dec 的基础上进行了改进,支持 P4 SSE2 指令集。用文本编辑工具打开 d2v ,把 iDCT_Algorithm= ?改成 5 就可以了。速度很快,效果也好,推荐 P4 CPU 的用户使用。
例: LoadPlugin("MPEG2Dec2.dll")
�� MPEG2Source("test.d2v")
 
MPEG2Dec3
    MPEG2Dec2 的基础上再进行了改进,加入了 Nic 的图像后处理( PP ),一定程度上可以减少 Noise 。好像除了 P4 SSE2 外,还加入了 AMD 3D Now !优化,目前还在开发中,是个非常有前途的滤镜。
例: LoadPlugin("MPEG2Dec3.dll")
�� MPEG2Source("test.d2v",CPU=4) # CPU=4 就是开启了 PP 模式
 
2 、处理滤镜
 
SimpleResize
    放大缩小:由 trbarry 编写的,由于对 SSE 进行了优化,所以速度快,效果好。替代了 AviSynth 中的 BilinearResize 。和 LanczosResize 的米切尔双立方体算法不同,这个是单纯的双线性算法。 LanczosResize 的画质更锐利和真实,适合普通电影;而 SimpleResize 的画质较柔和,适合动画。
例: LoadPlugin("SimpleResize.dll")
�� SimpleResize(640,480)
 
ColorYUY2
    颜色补偿: Kiraru2002 编写的滤镜。由于经过编码,得到的结果和 DVD 相比较,颜色有所改变,所以要对颜色进行补偿。
例: LoadPlugin("ColorYUY2.dll")
�� ColorYUY2(0,10,0,10,0,0,0,0,0)
 
     
3 、交错滤镜
 
Decomb
    IVTC Deinterlace 滤镜:由 Donald A.Graft 编写,新增加的专门处理 NTSC 格式动画的 mode=2 ,要和 Avisynth2.05 以上版本使用,不然速度会慢一倍。
   
   guide  0~2 ,默认 0 NTSC 1 PAL 2 ,可以提高 IVTC 准确度。
   gthresh  0~100 ,默认 15 ,控制区分不同帧的程度。
   post  默认 true ,用来处理 IVTC 遗漏的细节,使画面略微模糊。
   threshold  0~255 ,默认 15 ,控制 post 的程度。
   dthreshold  0~255 ,默认 9 ,控制 threshold 判定 IVTC 遗漏的程度。
   blend 默认 true ,在交错画面用渲染来替代填充。
   chroma 默认 false ,在交错画面的亮度色度调整。
   cycle  2~25 ,默认 5 ,每 n 帧删除 1 帧, NTSC 5 PAL 25
   mode  0~2 ,默认 2
   mode=0  cycle 里最相近的帧不进行处理。
   mode=1  cycle 里最相近的帧进行处理,用于处理混合帧速。
   mode=2  在一个很长的范围里进行帧对比,可以正确处理动画里由 8 帧或 12 帧复制为 29.97 帧的情况。
   Threshold  默认 0 ,控制 mode=1 时的处理重复帧的程度, Threshold 默认 100 ,控制 mode=2 时的处理重复帧的程度。
   Quality 0 3 ,默认 2 ,采样和色度的质量,与速度成反比。
 
但是最近的几个版本似乎都存在一个问题,就是处理后的画面有波动现象,并伴随影片里文字闪烁现象,所以还是用老版本的保险。
 
   例: LoadPlugin("Decomb.dll")
     Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)
     Decimate(cycle=5)    # NTSC 3:2 PullDown
    
     LoadPlugin("Decomb.dll")
     Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)
     Decimate(Cycle=5,Mode=2)   # NTSC Progressive Interlaced 混合
 
   LoadPlugin("Decomb.dll")
     Telecide(Guide=2,Gthresh=50,Chroma=True,Quality=3,Post=false)
     Decimate(Cycle=25)   # PAL
 
 
 
4 、字幕滤镜
 
VobSub
   Sub 字幕: VobSub 不但是外挂字幕的好手,内嵌字幕也是一样的强。
   将字幕的 2 个文件 test.idx test.sub 放在同一个目录下就可以了。
例: LoadPlugin("VobSub.dll")
�� VobSub("test")
 
TextSub
   SSA ASS 字幕:这个也是 VobSub 自带的,可以内嵌特效字幕。
例: LoadPlugin("TextSub.vdf")
�� TextSub("test.ssa")
 
作者: CSR2000    来源: CCF
 
DOC文档下载,请查看附件,推荐保留该文档

你可能感兴趣的:(职场,休闲,AVS)