『漫游』酷论坛>『影音数码技术学习交流』>[求助新手压片,求助 ..

[求助新手压片,求助!

wo si le@2003-01-25 16:07

前两天刚买了张《冰河世纪》DVD ,Z版D9的,想压到机上,如果漫游要的就申请上传,但是不清楚压的具体方法,希望各位大大指点,可以的话讲具体点,我怕太简化的看不懂!
引用

wo si le@2003-01-25 22:52

还有一个问题,,DVD碟里有多种语音,在压片的时候可以选其中的一种压吗?还是压的时候已经是默认了其中的一种,不能选?
引用

Humdrum@2003-01-25 23:48

相關教學您可以在射手網找到

DVD擷取出RAW時可以選擇不同的聲音及字幕語言,因為它們在DVD中是跟影像分開來的^^
引用

wo si le@2003-01-26 00:37

我的电话线慢,上不去射手,麻烦你把文章贴上来可以吗?
引用

转贴:射手网 『 高质量XVID制作 』 ---- 作者:沈晟

omiqpl@2003-01-26 09:43

既然XVID也被列入2002年0dayz通用的制作标准,那么就废话少说,来做最高质量的XVID吧。

首先安装并打开Gordian Knot,开始用SmartRipper来DeCSS DVD,并把VOB文件按照影片的PGC和Angel 1(角度1)解成硬盘上的VOB文件。




(也可以同时制作VOBSUB,请参考相应文章,本文略)


接下来再用DVD2AVI将VOB解码,并同时分离音频。具体可以参考老的DivX制作功略和本站关于DVD2AVI的介绍。



然后IVTC。这里你可以选择老方法——Tmpgenc(看旧文),也可以选择这里介绍的新方法——Gordian Knot+AviSynth+DeComb(AviSynth+DeComb在完全安装Gordian Knot应该已经包含)。

在Gordian Knot左下角有一个DVD2AVI字样和一个Open按钮,按下后打开刚刚做出来的d2v文件。这时就会弹出一个新的预览窗口。接下来就是Gordian Knot最轻松的地方,只要在面板上依次选择DVD制式,再点击Auto Corp,所有变形、去边的工作都会自动完成,不用自己耗费时间查找IMDB的电影比例再用计算器计算了,一切有Gordian Knot分析判断。不过惯用DUB Filter的老手可能要花点时间适应这种简单的思路。



接下来点击预览窗口的”Save & Encode“。如果是NTSC制式的电影DVD就在这里选择Inverse Telecine(IVTC)。再按SAVE,保存成AVS文件。这时上级者当然也可以自己编辑AVS文件。



现在就要对不起了,Gordian Knot目前还不支持XVID,它仅支持DivX3.11和DivX4-5。所以要换软件——>VirtualDUB。


用VirtualDUB打开刚刚由Gordian Knot建立的avs文件。看看有没有横纹,如果还有,那么可能是场序错了,需要回到DVD2AVI改变Field Order重做(目前decomb好像还没有类似Tmpgenc中的Field Order选项,所以要从DVD2AVI那里重做)。

没问题的话,进入VirtualDUB的Video菜单,Compression选项,应该可以在最底下看到XVID的编码(不要告诉我你到现在还没有安装XVID的Codec),选中XVID后按下右侧的Config按钮,进入细部选项控制。



先选择[2-pass 1st]。并进入Advanced Options,在运动检测精度中选择5或者6,量化模式中选择MPEG(.h263的质量就不行了),最小关键帧距设为10左右。


OK。OK。回到VirtualDUB主界面,在Video菜单下选择Fast Recompress(1st pass只是收集信息,所以Fast Recompress就可以了)。再到File菜单,Save AVI...。

完成硬盘根目录会生成video.stats(要想生成到其他目录或别的文件名的话,之前到Advanced Options中可以修改)的1st pass信息文件。好了把这个video.stats交给Gordian Knot来分析。(XVID也有自己的分析计算内核,不过我想XVID的开发者都预留了Gordian Knot分析的文件接口,或许XVID的开发者自己也认为XVID的2pass计算没有胜出Gordian Knot?!Who Knows。反正如果想利用XVID自己的分析计算内核的话,只要跳过下面的Gordian Knot部分,直接在VirtualDUB中选择XVID压缩设置中的2-pass 2ed pass Int.——注意一定是Int.)



在Gordian Knot中的NanDUB Files中,OPEN打开XVID 1st pass建立的video.stats文件。再到Bitrate中,输入目标文件的大小。(注意在这里要选择DivX5模式,因为XVID和DIVX5一样,对遵循ISO MPEG4标准,1KB=1000Bytes,而不是DivX3.11的1KB=1024Bytes)。此处还可以选择音频文件或填入音频文件的码流或大小,便于便于估算最终尺寸。这里我用的是AC3音频,那么还要注意选择2Frame或者3Frame。原因是AC3的区块较大,因此TDX2002制作标准规定Audio-Video Interleave必须为66或96ms,也就是each 2-3frame。



选择好码流后,进入Stats File Editor,点击Calculate,Gordian Knot就会按照目标文件大小生成新的控制编码的stats文件。Stats File Editor中的选项不难理解,无非是限制最小码流、运动侦测精度、亮度校正、演职员表(Credits)模糊、关键帧距离等几个功能。(我个人一般会调低最小码流,不使用亮度校正、演职员表模糊,其余默认)。不过Stats File Editor有几个有趣的功能,例如显示影片的运动分布等等......不那么专业的说:或许可以当作饭后消遣。^-^



计算完成后SAVE保存出新的控制stats文件,现在换回VirtualDUB。

Video菜单别忘了切换回Full Processing Mode,再次进入Compresion中XVID的压缩选项,选择2-pass 2nd pass Ext.(注意必须是Ext.)。再进入Advanced Options中,Global Option和刚刚要一样;Two Pass控制部分中选择刚刚由Gordian Knot生成的2nd pass stats文件。OK。OK。Save AVI......



一阵子等待以后(可能要很多个小时,所以不要再来问“XXXX用了n个小时正常么?”这样的问题,TKS ^-^),一个符合TDX2002标准的高质量XVID视频文件就诞生了。恭喜你。

VBR MP3或AC3音频制作、合成的部分可以参照本站旧文,此处略。XVID的设置全释另行撰文,多谢。
引用

转贴 射手网『 XviD中的精彩技术 』 ---- 作者:Silky

omiqpl@2003-01-26 10:09

Quarter Pel = Quarter Pixel = 1/4 Pixel = QPel:

MPEG 压缩的时候,P-Frame 会参考前一个画面压缩,B-Frame 会参考前面或后面,或前后的画面压缩。此时只要纪录和参考画面之间的差异,也就是预测的误差,还有物体移动的方向(动作向量 MV),不用重新压缩整个画面,所以可以节省很多 bits,达到很高的压缩率。

其中又以 B-Frame 的压缩效率最高,因为 B-Frame 可以同时参考前面和后面的画面,以前后画面的平均值((前+后)/2)做为参考画面,可以大幅减少预测的误差。(预测的误差越小,所需花费的纪录误差的 bits 数就越少,档案就越小,压缩效率就越高)同时 MPEG-4 的 B-VOP 还有第四种预测模式,叫做 Direct Mode,直接拿后面的 P-Frame 的 MV 除以二作为动作向量,省去记录 MV 的空间,也可以达到很高的压缩效率。

如:I B P

我们可以预测,B 的物体移动必然是介于 I 和 P 之间,所以 B 的 MV 大概会接近 P 的 MV 的一半。以上是大致的压缩原理,我们回过头来看什么是 QPel。

前面说到 P/B Frame 会在参考画面上寻找最接近的区块,然后记录和这个区块的误差值,以及相距的方向和位置(MV)。

MPEG 压缩的时候是以 16x16 的方块为单位,称为 MacroBlock(MB),一个 MB 一个 MB 地搜寻最匹配、误差最小的参考方块在哪里。(也就是搜寻这个物体移动到哪里)搜寻会在一定的范围内搜寻,譬如说在周围 32x32 的范围内搜寻,而不会无限制的扩大搜寻下去。所以当画面上动态很大的时候,物体移动距离较远,超出搜寻范围,或是画面变化的差异太大,我们就找不到误差很小的参考方块,此时压缩率就会下降,需要较多的 bits 来记录。

很明显的,物体的移动和像素(Pixel)的精确度无关,物体不会按照像素的格子,一格一格的移动,每次都移动整数的格子点,刚好落在像素上。所以我们以整数像素的单位做搜寻、比对,显然无法找到最匹配、最相似、误差最小的参考方块。为了克服这个问题,MPEG-2 压缩的时候,会先将要参考的画面做内插补值(interpolation),补出像素和像素之间的次像素的数值,如:

A x B

x x x

C x D

像素 A 的值为 11,像素 B 的值为 13,则我们可以预测 A 和 B 之间的次像素 x 的值为 12。依此类推,补出所有的 x 的数值,也就是 1/2 Pixel 的值,再以此 1/2 Pixel 精确度的画面做为参考画面,于其上搜寻最近似的参考方块。这样,我们就可以找到误差更小的参考方块,压缩率就更高,同品质下档案就更小,同容量下品质就更高。根据测试,使用 1/2 Pixel 精确度的 ME(动作估计),PSNR(Peak Signal to Noise Ratio,讯噪比,常见的一种客观测试影像品质的方法)可以上升 3~5dB。而 MPEG-4 用的 Quarter Pixel = 1/4 Pel,就是比 1/2 Pel 更精确,再补出 1/2 像素和像素之间的 1/4 Pel,以此做为参考画面。理论上 1/4 Pel 可以再提升 PSNR 2~3dB。

AoxoB

ooooo

xoxox

ooooo

CoxoD

o: 1/4 Pel

但是,如果 1/4 Pel 没有良好的实作出来,导致用了 1/4 Pel 也没有找到更好的参考方块,那么因为 1/4 Pel 所使用的动作向量 MV 需要原本 1/2 Pel 的双倍精度来记录(如:1.5 --> 1.25),所以压出来的档案反而会变大。(同容量下品质就更差)

早期 XviD 的 QPel 就是没有良好的实作,同时有一些错误,所以对于压缩效率没有助益,使用之后档案反而更大。但是现在 XviD 的 QPel 已经修正完毕,完全符合 MPEG-4 的标准规范,同时也达到理论上它的压缩助益。您可以做一个测试,以同品质压缩(固定 Quantizer),开了 QPel 之后,档案大约会减小 ~3%。这代表同档案大小下,开 QPel 的品质会比没开 QPel 的品质好。

有了以上这些 MPEG 压缩的基础说明,我补充一下上次提到的几个名词说明:

Chroma ME 这个选项 ME = Motion Estimation 动作估计  在参考画面上搜寻最近似的方块,找出相距的距离和方向 => 动作向量 MV = Motion Vector 的过程叫做 ME。MC = Motion Compensation 动作补偿  将目前要压缩的方块和找到的参考方块相减,纪录它们之间的误差值,以便在解压缩的时候能够补上这个误差值,这个过程叫做 MC。

MPEG 压缩的时候将像素分为 YUV 三个平面,一般只在 Y(亮度)的平面上做 ME,搜寻 Y 误差最小的 MV。而 UV(色度,Chroma)的动作向量则是直接拿 Y 找到的动作向量除以二,作为 UV 的动作向量。(当 MPEG 以 YUV 4:2:0 记录时,UV 的分辨率只有 Y 的一半,也就是画面大小只有 Y 的一半。如 Y: 640x480,UV 则只有 320x240。所以动作向量直接拿 Y 除以二,可以得到近似值)这是因为人眼对 Y 亮度比较敏感,对 C 色度比较不敏感。色度分辨率差一点,人眼也看不出来。减少 C 所占的空间,给 Y 使用多一点空间,可以在有限的流量大小下,增进视觉看起来的品质。然而做 ME 的时候偷懒,只精确的求 Y 的 MV,而 C 的 MV 就直接拿 Y 的 MV/2 来使用,这样虽然可以加快压缩的速度,但是品质也会下降。(C 没有精确的求出误差最小的参考方块,需要花较多的 bits 纪录,使得压缩率下降)XviD 现在加入了 Chroma ME 的这个选项,会同时搜寻 Y/C 平面上,误差最小的 MV,速度会慢一点,但是品质会较好。尤其是压动画类影片,效果最明显。

为什么动态越大的时候要减少连续 B-Frame 的个数?B-Frame 不是压缩率最高,越多越好吗?

MPEG-1 里面,有三种 Frame 型态:

I-Frame: 不参考其它画面,独立压缩,压缩率最差,需要最多 bits,Frame size 最大。

P-Frame: 参考前一张 I 或 P Frame 压缩,压缩率次之。

B-Frame: 参考前后的 I 或 P Frame 压缩,压缩率最高。B-Frame 不能被其它 Frame 拿来当作参考画面。B-Frame(在 MPEG-4 里面正确的名称是 B-VOP)的预测模式有四种:

a. Forward 顺向预测,参考前一张画面,记录和前一张画面的差距。和 P-Frame 的预测方法一样。

b. Backward 逆向预测,参考下一张画面,记录和下一张画面的的差距。

c. Bi-Directionally 双向预测,参考前面和后面两张画面,记录的是和「前后两张画面的平均值」的差距。也叫做内插预测,压缩率最高。

d. Direct Mode,不搜寻、纪录动作向量,直接由下一张的 P Frame推导出动作向量。譬如说 I B P,我们可以预测 B 画面的动作必然是介于 I 和 P 两个画面之间,所以我们可以直接用 P 的 MV/2 作为B 的动作向量,这样可以省去记录 MV 的空间。压缩 B-Frame 的时候会从上面几种预测模式中选压出来最小的一个模式来使用。

当把最大 B Frame 的个数设得太多的时候,如果 XviD 的动态 Frame Type 决策没有好好发挥它的功能,会造成误判,在高动态的地方还是插入过多的 B-frame。

如:大动态画面

I B B B B P

P 距离参考的 I Frame 太远,误差太大,容量暴增。而第一个 B-frame,因为 I 和 P 的差距很大,(I+P)/2 两个 Frame 的平均值和 B Frame 的差异还是很大,倒不如只用 I Frame来预测。此时 B 只参考前一张 I 压缩,等于 P-frame。中间的 B 参考 (I+P)/2 压缩,因为差异量大,还是无法取得很好的压缩率。最后一个 B 只参考后面的 P 压缩。最后这四张 B-frame 都无法取得很好的压缩率,大小都变成和 P 差不多大,此时如果改成

0 1 2 3 4 5
I P P P P P

反而可以得到更好的压缩率。(因为 1P 参照 0I,差距小。2P 又可以参照 1P,差距也小。以此类推....)现在 XviD 的动态分配决策已经比以前好很多,最大 B-frames 个数可以放心设到 4 没有问题。至于 DivX 5 的 B-frame,最多连续个数只能为 1,只能是 I B P B P B P B... 这种型态,更别提 XviD 现在使用的先进 I/P/B Frame 分配决策,DivX 5 已经完全比不上 XviD。

最后,关于 XviD 保留的细节比较多的问题。

MPEG 压缩的时候,以每个 16x16 像素方块大小的 MacroBlock 为单位作 ME,然后量化的时候会切成 4 个 8x8 的 Block(微方块),做一种称为 DCT 的转换。经过 DCT 转换以后,8x8 方块里的 64 个像素点的 YUV 值,就变成代表空间频率的系数。人眼对高频比较不敏感,相对的低频的系数就比较重要,所以我们利用量化把高频的系数削掉多一点,保留比较重要的低频系数,在有限的流量的情况下,可以增进肉眼看起来的品质。

XviD 可以使用两种不同的量化方法(Quantization Type),一种是 H.263,另一种是 MPEG。H.263 的量化方法,顾名思义,就是使用 H.263 这个压缩规格所使用的量化方法,量化的时候,8x8 的像素方块内的所有 DCT 系数,全部除以同一个数字。(这个动作就叫做量化)例如全部都除以 32,如果有一个 DCT 系数为 15,小于 32,经过相除之后,会被量化为 0,如此便可以省下很多记录的 bits。

当然,除的数字越大,量化的误差也就越大,品质也就越差,但是压缩率会越高,压出来档案会越小。我们会利用另一个参数来调整量化的误差,控制最后量化的品质和档案的大小,这个参数叫做 Quantizer。量化的系数会再乘上这个 Quantizer 的倍数,例如原本要除的量化系数是 32,Quantizer 是 2,对应的放大倍数也是 2,最后真正要除的量化系数就变成 32*2 = 64。所以 Quantizer 越大,要除的量化系数就越大,量化误差就越大,品质就越差,但是档案也越小。H.263 的量化方法还规定,相邻的两个 MacroBlock 的 Quantizer 不能相差超过 2。而另一种 MPEG 的量化方法,高低频系数可以除以不同的量化系数,可以视情况将高频削多一点。这个 8x8 的量化系数,也就是 Quantize Matrix(量化矩阵)。XviD 还可以让你自订、编辑这个矩阵的量化系数,你可以依照影片内容、使用码率,自订最适当的量化矩阵。(量化方法要选 MPEG-Custom,同时更改 Edit Quantizer Matrix... 里面的预设量化矩阵,目前这个功能无法和 B-Frame 同时共享)

MPEG 的量化方法对相邻的 MB 使用的 Quantizer 差距并没有限制。根据经验,使用均匀量化矩阵(uniform quantization)的 H.263 量化法,压出来的画面会较模糊。MPEG 量化方法的画面会比较锐利。(不过锐利线条的周围、物体的边缘,会产生一些噪声)MS MPEG-4,也就是 DivX 3.11,使用的是 MPEG 的量化方式,所以一直以来,大家的评价都是 MS MPEG-4的画面比较锐利,保留比较多的细节。DivX 4, DivX 5 都是使用 H.263 的量化方法,尤其是 DivX 4,画面非常模糊。虽然表面上看起来压缩瑕疵较少,但是细节都被削光光了。

(可以参考上面 net1999 兄提供的图片)

(DivX 5 其实可以藉由修改 registry 的方法,改成以 MPEG 的量化方式压缩,但是显然有 bug,压出来的东西惨不忍睹)XviD 则可以让使用者自行选择要固定使用哪种量化方法,或者是视情况切换量化的方法。(量化方法选择 Modulated,Quantizer 小于或等于 3 时会使用 MPEG 量化,大于 3 时使用 H.263 量化。New Modulated HQ 则反过来)

GMC,也就是 S(GMC)-VOP,只有在整个画面上,有大部分的区块都往同一个方向移动时,才能派上用场。譬如说镜头做 pan(由左往右 或 由右往左 平移)的时候,全体由上往下,或由下往上移动,以及 zoom in/zoom out(物体放大缩小)的时候,才会使用 S(GMC)-VOP。

(其实还有其他功能,例如变形、旋转的时候,不过目前 DivX 和 XviD 都没有完整的作出这些功能)

使用 GMC 的时候,那个 Frame 会使用 MPEG-4 才有的 Frame Type,叫做 S-VOP。(因为 MPEG-4 是以物件 Object 为单位压缩,所以叫做 Video Object Plane,VOP,视讯物件平面。有 I-VOP/P-VOP/B-VOP 和特别的 S-VOP 这几种 VOP)为了要和 Stripe 做区分,我们又把它叫做 S(GMC)-VOP。所以要比较 GMC 的使用情形,必须找两个相同的画面,而且是 S(GMC)-VOP(也就是有使用 GMC 的 VOP),才能看出 GMC 的使用结果。

目前 XviD 的 GMC 只有非常简单的功能,现在使用 Global MC 不会比原来的 Local MC 有效率,对压缩没有助益,用了之后档案反而会更大(压缩效率更差,同容量下品质更差)。而且还有一些正确性的问题要修正(要符合 ISO 制订的 MPEG-4 的标准规格,否则便是做错,压出来的东西将来无法为其他标准的 MPEG-4 decoder 解码),所以不建议使用。XviD 的编程人员每个人都是学富五车,而且是世界上顶尖的编程高手,目前Codec中的问题他们不是不知道,而是还在思考解决的方法。

譬如说目前 B-frame 一定要勾选 DX50 B-VOP compatibility,这个 Closed GOV(等于 MPEG-1/2 的 Closed GOP)的问题开发人员不是不知道,而是很困难解决。(我们来想的话会觉得很简单。没错,理论上很简单,实作就知道有多困难 )而且开发人员每个人都还有自己的学业、工作要忙,仅能利用一点的闲余时间来从事这项编程工作,所以无法说改就改,立刻就解决这些问题。不过尽管如此,XviD 仍然是目前世界上,品质最好的 MPEG-4 编码软件... 之一 (话不能说得太满,要留一点进步的空间 )

XviD 这么优秀,您还要继续用 DivX 5 吗 ^^
引用

转贴 射手网『 合成、播放AC3音频 』 ---- 作者:沈晟

omiqpl@2003-01-26 10:19

同时拥有原版DVD的高画质DivX,再同时拥有原版DVD的高音质Dobly Digtal(AC3)。合成DivX/AC3 AVI是最佳的结果。

现在新版的NanDub已可以用来完成这个工作: 步骤如下:[File] -> [Open video file...] 打开已经制作好的DivX视频格式的AVI。将[Video]和[Audio]都设置为“Direct stream copy”;点击[Audio] -> [AC3 Audio...]。

这时,选择前面由vStrip分离出来的AC3音频文件即可。 打开[Audio] -> [Interleaving Option]选项,根据AC3的具体码流调节音视频交错值(Interleave)以保证音频同步。推荐设定为64ms或96ms。

点击[File] -> [Save AVI...] ,NanDub就会将Dobly Digtal(AC3)音轨合成到DivX AVI中。安装了AC3播放滤镜后就可以在PC上享受DivX/AC3的靓音了。

============================================

射手网上有很多文章,总不能一一贴过来吧,用google搜索吧。

搜索dvdrip制作工具

搜索DVDRIP制作方法
引用

wo si le@2003-01-26 10:31

好的,谢了,

今天不知道怎么的,我上到射手了,昨天死连都连不上,可能是那个国际病毒在搞鬼!!
引用

shinbu@2003-01-27 16:08

为什么我只得到了一个1.4k的avs……
引用

| TOP