关于切边和变形

Shout! Factory出品25周年变形金刚DVD
25周年新版变形金刚G1动画DVD第一季外观
变形金刚2 堕落者的复仇DVD封面放出
变形金刚Energon超能量体DVD套装碟报
新加坡变形金刚爱好者网站建立
cam、ts、tc、scr版的区别
变形金刚07电影DVD发行简介
DVD入门到精通Part1
DVD入门到精通Part2
HD DVD and BluRay reencoding guide
将VOB格式的DVD档案还原为DVD镜像
从菜鸟出发!征服高清详细评测全攻略Part1
从菜鸟出发!征服高清详细评测全攻略Part2
变形金刚真实电影 DVD和HD-DVD 即将发行
正版!变形金刚终极宝典
RID 变形战士系列玩具图集
变形金刚2008动画正式亮相
The Ultimate Battle 终极战争 DVD 简介
变形金刚塞博特恩传奇即将登陆电视台
BeastWars 野兽战争 DVDrip 下载


作者:phg79    来源:TFcc    DVDrip制作    2004-9-7 12:30:16

    这篇文章的内容大多来源于网上对切边和变形的讨论,如果不理解还可以参考 细说DVD的画面比例你真的了解DVD画面分辨率吗?

    切边是因为我们的电视机并非完美的电视机,左右边缘的区域会因为某些原因而显示不出来或者不正常,所以电视屏幕上显示的并非传输到电视的画面的全部,也就是说DVD的画面并非全都需要显示。那么在做DVDrip的时候就需要将不用于正常显示的那部分切掉,保证画面的比例正确。实际上我们也可以看到有的DVD就专门为这些区域留出了黑边,我们就更可以放心的把多余的这部分切掉了。

    对于为什么要做变形可以这么理解。不论DVD是什么比例的4:3、16:9,还是别的,实际上视频存储在光盘上的画面尺寸只是两种:720X480(NTSC) 或 720X576(PAL) 。但是DVD上还存储了该DVD正确播放的画面比例:4:3 、16:9。有了这个,DVD播放机或者DVD播放软件就能够进行画面变形,将正确比例的画面还原到电视或者计算机屏幕上。而我们制作DVDrip生成的avi没有存储画面比例信息,各种播放器播放avi时候的比例都是avi文件本身的原始比例,所以需要我们手工把DVD的比例调整好,然后再转制成avi文件,这样在播放DVDrip的时候,画面才是正确的。

    下面是对NTSC格式的DVD的具体做法:

    所有的DVD 都是把电影胶片按照两种变形方式来录制的,4:3 和16:9,没有2.35:1,2.35:1 实际是16:9 再裁掉上下黑边而来。

    DVD 都是 720X480(NTSC) 或 720X576(PAL) 的画面尺寸。我们假设所有的AVI 最大宽度为640。以NTSC 制式DVD 为例:

    # 对于DAR=4:3 的DVD 正确步骤是:
    1、左右共Crop 16 个点,720X480->704X480
    2、因为宽度是PAR=1.1:1 取样,进行还原 704X480->Resize 成(704/1.1=640)X480
    3、再Resize 成需要的画面尺寸,宽度取16 的倍数,高度=宽度/DAR,例如:640 X 480、624 X 464、608 X 448、592 X 432、576 X 432、544 X 408、512 X 384、等,但由于是满屏显示需要的象素点也是最多的,为了节省有限的视频码率,所以我们通常选择 512 X 384 或 480 X 352 两种分辨率。
    4、裁掉多余的上下左右黑边。

    # 对于DAR=16:9 的DVD 正确步骤是:
    1、左右共Crop 16 个点,720X480->704X480
    2、因为宽度是PAR=1.1:1 取样,进行还原 704X480->Resize 成(704/1.1=640)X480
    3、再Resize 成需要的画面尺寸,宽度取16 的倍数,高度=宽度/DAR,例如:640 X 352、624 X 336、608 X 336、592 X 320、576 X 320、560 X 304、544 X 304 等。
    4、裁掉多余的上下左右黑边。

    # 对于2.35:1 画面的DVD 实际是按照16:9 做的,只是裁的时候上下多一些,比如正常情况下640X360 裁完了上下黑边后出来高度是272。640:272=2.35:1,这就是大家常说的2.35:1 画面DVD。
    验证最后的画面尺寸,需要保持宽度和高度是16 的倍数(TDX2002 已明确规定)。不是准确的倍数的话有两种办法,一是继续裁,一是补黑边。一般来说约定俗成的做法不喜欢有黑边,所以一般选继续裁。
    实际在做裁切(Corp)和变形(Resize)时,由于种种原因怎么裁切都无法使得变形市镇率为0%,因此对于肉眼是无法辨识的轻微变形失真(Aspect Error < 1%)的情况是允许的。

    下面是一些对切边和变形的讨论,如果不理解上面的就好好看看这些高手的讨论

附精品技术论坛一个高手Silky的解释:

切边后再 resize 是为了保持正确的比例,否则人物会变形。
你可以做不切边和切边的版本,两者互相比较,
便可以知道不切边会造成怎样的变形、比例会如何错误。

切边如果会切到画面,还是要把它切掉,不能保留。
觉得切到画面可惜的话,不妨这么想,这些要切掉的画面本来就是多余的,
本来就不该出现在 DVD 里,制作 DVD 的厂商只是取样的时候为了预防万一,
多取样一点作为保险,所以把这些本来就多余的画面切掉,一点也不可惜。
心理这样想的话也许就会好过一点 ^^

事实上 DVD 的画面也是经过切过的,原始电影胶片上的画面更多,
胶片转到 DVD 上时切掉的东西更多,如果要追求完整画面,
恐怕得拿原始胶片来转才可以 :P
所以可见画面的多寡不是重点,画面的比例是否正确,反而是更值得注意的焦点。

我再把原理和作法简单地说明一次,详细的说明,请参阅过去的讨论。

NTSC 4:3 720x480 的 DVD,取样的宽高比为 11:10,
也就是取样时宽度比高度多取样 11/10 倍,
所以真正的有效宽度应该等于 480*11/10 = 704,而不是 720。

因此在 resize 至我们需要的 4:3 播放比例之前,要先左右切边共 16 点,
720x480 切边 -> 704x480 然后再 resize 至我们要的 4:3 比例
如 640x480/512x384... 等等。

取样宽高比 11:10 的 704x480,等于取样宽高比 1:1 的 640x480。
因为 704 多取样 11/10 倍,减回来 704*10/11 = 640,便会得到 640x480。
所以 NTSC 4:3 720(704)x480 的 DVD,在不放大画面的情况下,
所能得到的最大分辨率,就是 640x480。

建议制作的时候不要放大画面,放大画面的工作交给播放时的显示卡来做就好了。
制作 640x480 还有一个好处,将桌面分辨率调成 640x480 播放,
就不用经过放大补点,画面会较锐利。

以上是以取样宽高比 11:10 来计算,会得到切边 704,如果以取样宽高比 79:72
来计算,便会得到要切边 702,才是正确比例。
旧版 GK 是以 704 为标准,新版 GK 是以 702 为标准。
小弟觉得,要切 702 或 704 都可以,差距不会太大,看你觉得哪个方便。

以下以 16:9 的影片做范例,说明切边和 resize 流程
1. 本来 16:9 letterbox 应该是 720x480 切边 -> 704x360 resize -> 640x360

2. 为了 MPEG 压缩方便,高度要调整为可以被 16 整除的倍数,所以切边时故意
多留下 8 个 pixel 的黑边,变成 704x368,368 可以被 16 整除。

3. 我选择把黑边集中在底部,8 个 pixel 刚好是一个 DCT 转换的方块单位大小。

4. 最后做 resize,704x368 -> 640x368

 

anamorphic 是指拍摄的时候,用变形镜头(anamorphic lens),水平挤压 33%,将 16:9 的宽银幕画面塞入 4:3 的画面中,让画面上下没有黑边,充分利用完所有的有效画面,提高画面的信息量。
播放时再水平扩展 33%,回复原本的宽银幕画面。
图形请参考
http://www.thedigitalbits.com/articles/anamorphic/anamorphic185demo.html

要怎么知道 DVD 有没有 anamorphic?
各家厂商的标示不一样,请参考
http://www.thedigitalbits.com/articles/anamorphic/page2.html

往下拉看 "How Do I Know A DVD Is Anamorphic?" 这一段。


NTSC anamorphic
720x480 切边-> 704x480 Resize-> 704x396(16:9)
396 不是 16 的倍数,补黑边-> 704x400

704x396 是 NTSC anamorphic 在不放大的情形下,最大的分辨率。

如果要其它低的分辨率,一样是先切边-> 704x480 再 Resize 至其它 16:9 的分辨率。
720x480 -> 704x480 -> 704x396/640x360/512x288...

有些电影不是 16:9,例如 2.35:1,这时 anamorphic 上下会多出一点黑边,resize 后把黑边切掉即可。
图形请参考
http://www.thedigitalbits.com/articles/anamorphic/anamorphic235demo.html


PAL anamorphic
720x576 切边 -> 704x576 Resize -> 704x396(16:9)


letterbox 就是不做任何特殊处理,将 16:9 的画面直接放入 4:3 的画面中,当然上下会多出许多黑边没有利用到,有效画面缩小,相当可惜。
由于这种画面上下有很大的黑边,中间的缝隙才是有影像的部分,看起来很像是一个信箱投入口的样子,所以被称为 letterbox。
letterbox 其实可以视为是一般的 4:3 DVD,只是画面上下的区域,像素都是黑色的,所以它的处理方法和一般的 4:3 DVD 没有不同,只是多出了将上下黑边切除的动作。


NTSC letterbox
720x480 切边-> 704x480 Resize-> 640x480(4:3) 切掉上下黑边-> 640x360(16:9)
360 不是 16 的倍数,补黑边-> 640x368

所谓补黑边,其实就是上下切的时候,多留下 8 pixels 的黑边,不是真的先切了再补 ^^;
720x480 切边-> 704x480 Resize-> 640x480 切掉上下黑边-> 640x368

640x360 是 NTSC letterbox 在不放大的情形下,最大的分辨率。

我们可以看出,letterbox 的最大分辨率比 anamorphic 要小。
这就是 anamorphic 的好处,分辨率高 ^_^

不过 anamorphic 的 DVD 在一般的 4:3 电视机上播放,因为要用 letterbox 的方式,
将画面塞进 4:3 的屏幕里面,只好每 4 条扫瞄线抽掉一条,480 *3/4 = 360。
这样会造成画面有锯齿,看起来不好看。
所以 anamorphic 的 DVD 在一般的 4:3 电视机上播放反而不好看。
(每 4 条扫瞄线抽掉一条,有许多做法,直接砍掉一条当然画质是最差的,
可以用其它 downsample 的计算方式去做,各家电视机硬件的设计不一样,
功力有差,出来的画质就不一样,有的不会锯齿得那么严重)

如果将 DVD 设定用 "Wide" 模式输出,这样看就没有锯齿,但是画面会变形,人物会被拉长。
有的日系的电视机有提供 "V 压缩" 垂直压缩的功能,会将扫瞄线收束,
集中扫瞄在屏幕中间的区域,这样就不用砍掉扫瞄线,这个播放画面非常细致,效果是最好的。
而在计算机上看则不会有这些问题

关于 anamorphic DVD 在 4:3 电视机上显示的问题,可以看这里的图形,一目了然,很清楚 ^^
http://www.widescreen.org/widescreen.shtml
http://www.i70s.com/xl/dvd/dvd9.htm


切掉上下黑边的动作可以在 Resize 之前做
720x480 切边-> 704x360 Resize-> 640x360 的结果和
720x480 切边-> 704x480 Resize-> 640x480(4:3) 切掉上下黑边-> 640x360(16:9)
相同

因为上下左右同时切边后再 Resize
704x360 -> 640x360 垂直一样,不用 Resize,等于只做水平 704 -> 640 的 Resize

而先切左右 Resize
704x480 -> 640x480 垂直也一样,等于只做水平 704 -> 640 的 Resize

所以上下黑边先切后切都一样,垂直方向完全不受 Resize 影响。

如果要其它低的分辨率,一样是先切边-> 704x360 再 Resize 至其它 4:3 的分辨率。
720x480 -> 704x360 -> 640x360/512x288...

有些电影不是 16:9,例如 2.35:1,这时上下会多出更多的黑边,把黑边切掉切到没有即可。
http://www.thedigitalbits.com/articles/anamorphic/anamorphic235demo.html


PAL letterbox
720x576 切边 -> 704x576 Resize -> 704x528(4:3) 切掉上下黑边-> 704x396(16:9)

704x396 是 PAL letterbox 在不放大的情形下,最大的分辨率。

可以看出 PAL 的分辨率高于 NTSC。


以上有几点值得探讨
1. 相信大家一定会怀疑,PAL 的正确比例,切边应该是切 702,怎么我用 704?

因为用 704 可以得到较大的最大分辨率 704x528(4:3)/704x396(16:9),
如果你要压制分辨率比较高的影片,切边 704 可得到较大的分辨率。
但是会牺牲一点比例的正确性,画面会有点变形。

如果你不是要用最大分辨率,使用 702 的切边较好,比例才会正确。
720x576 -> 702x576 -> 640x480/512x384...
720x576 -> 702x576 -> 640x360/512x288...


2. 上面我们为了让 MPEG 压缩方便,多补了黑边,例如 640x360,补成 640x368,这样会不会造成画面变形?

在 4:3 的屏幕上看,不会。

当我们在 4:3 640x480 的屏幕上播放 640x360 16:9 的影片时,有影像的部分只有中间,上下是什么?是黑边
所以当我们把 640x360 补黑边补成 640x368 时,只是先补了这 8 pixels 的黑边,这些黑边本来播放时自然就会有的,我们只是先补了、多压了这些黑边,所以一点也不会影响到播放时的画面比例。

其它 4:3 的屏幕分辨率 800x600/1024x768... 的情况依此类推,也是一样。


3. 为什么要补黑边,让长宽能被 16 整除?

因为 MPEG 是以 16x16 的像素大小为单位作压缩的,如果长宽不能被 16 整除,就无法得到整数个单位,这样会造成压缩的困难,会有许多瑕疵。
所以例如 TMPGEnc 等 MPEG 压缩软件一定要限制你的输出长宽可以被 16 整除。
然而 XviD 有 MPEG-4 的压缩工具,可以对付长宽非 16 倍数的大小。
所以用 XviD 压缩,长宽不一定要能被 16 整除。
但是考虑到压缩效率,似乎补成可以被 16 整除的大小较好。
但是这里面有许多复杂的因素... 因为补上去的黑边其像素值是 0,可能和其它像素的落差太大,使得包含黑边的压缩单位在寻找参考对象时,无法找到适当的匹配对象,这样也会造成压缩困难,甚至出现压缩瑕疵。
所以也有人建议,例如 sysKin,把所有的黑边都切掉,不要留下黑边。

我自己压缩的经验,还没有遇到过黑边会造成压缩瑕疵。
但是如果真的发生压缩瑕疵,我们只好不补黑边。
那么不能补黑边,又想维持能被 16 整除的话该怎么办呢?
这时只好多切一点画面,切到最接近的,能被 16 整除的数字。
例如 640x360,不能补黑边补成 640x368,只好多切一点,切成 640x352,牺牲一点有效画面。


4. 切成 640x352,画面会不会变形?

不会。
在 4:3 640x480 的屏幕上播放 640x352 16:9 的影片,有影像的部分高度是 352,并没有伸长或缩短,画面当然也不会变形。只是少掉了 8 pixels 的分辨率,变成黑边,少看了这 8 pixels 的画面。

其它 4:3 的屏幕分辨率 800x600/1024x768... 的情况依此类推,也是一样。

所以结论,正确 Resize 之后,随便你怎么切边,画面都不会变形,高兴的话,你要切成 640x16 都可以


5. 左右切到 704/702 后,如果还是有黑边,可不可以多切一点?

可以,但是 Resize 之前切,计算很复杂,可以用 Gordian Knot 帮忙计算,不过我没有找到好的切边方法,能让比例正确。
Resize 之后切,会比较方便。(Resize 之后,可以任意切边)


6. 有些 DVD 标示影片比例是 2.35:1,但是 Resize 后切掉黑边,发现剩下来的影像比例并不是 2.35:1?

DVD 所标示的比例,不一定是真正的比例,影片的比例根据拍摄使用的方法、镜头不同,有许多不同的比例,还有导演和制作人可能随自己的喜好,改变放在 DVD 上的影片比例。标示 2.35:1 是取其最接近的近似值,实际上的比例可能是 2.40:1,或者窄一点,2.20:1,这是不一定的。
总之正确 Resize 之后,剩下的看到黑边就砍,比例一定是对的,不用担心。
请参考这篇文章的说明
http://www.chinaaudio.net/myyx/yxcs/dvd.htm

各种器材、拍摄方式,不同的比例
http://www.widescreen.org/aspect_ratios.shtml

2.40:1 影片的范例
http://www.widescreen.org/examples/zorro/index.shtml


我手上有一个 PAL 的 Matrix 片段,720x576 letterbox,
720x576 -> 704x576 -> 704x528 切掉黑边之后-> 704x272(?!)

704x272,比例是 2.58823529411764705882352941176471:1

我也不知道这是怎么回事
不过看起来比例好像没问题

普罗米修斯化身Silky曾经将Jackei的火种带到了CCF... :


譬如说 NTSC 4:3 的 DVD,720x480 的分辨率,要先左右共削掉 16 个点,变成 704x480 再 resize 成 640x480/512x384 ... 才是正确的比例,这个道理便是他研究发现的,然后再教给 GKnot 的作者 TheWEF。GKnot 有个选项叫 "Follow ITU-R BT.601 Standard",选了这个选项 GKnot 便可以遵照 ITU-R BT.601 的标准,做正确的 resize。唯有按照 ITU-R BT.601 的规范做 resize,resize 后的比例才是正确的,GKnot 变成唯一可以帮你计算正确 resize 方法的软件,其它软件的 resize 乱七八糟都是错的。而 GKnot 之所以知道正确的作法,就是因为 DVD2AVI 的作者 jackei 教的)

(PAL 同样要遵循 ITU-R BT.601 的规范,至于正确的作法我没有研究,有需要的人可以利用 GKnot 帮忙计算正确的 resize 作法)

(关于 ITU-R BT.601 和正确的比例如何计算的原理,说起来很复杂,有机会我再解释 有兴趣的人可以参考 http://www.uwasa.fi/~f76998/video/conversion/。

.....简单的说,因为 DVD 取样记录的时候,取样的点之间的长宽比,Pixel Aspect Ratio,也就是 PAR 不是 1:1。而我们个人计算机的屏幕上 Pixel 和 Pixel 之间的长宽间距都一样,也就是 PAR 是 1:1,也就是正方形的 Pixel,Square Pixel。所以 resize 的时候,不能直接从 DVD 的原始分办率 resize 至目标的比例,如 4:3 or 16:9,而要做一些处理。通常来讲,要左右削掉一些 Pixel,转换后的比例才正确。例如 NTSC 720x480 16:9 squeeze 的影片要 resize,正确的作法要左右共削掉 16 个点,变成 704x480 再 resize 至 704x396(16:9) 才是正确的比例。然而 704x396 的高度 396 不能被 16 整除,不利于 MPEG 压缩,所以我们再上下各补 2 个点,补上黑边,补成 704x400 之后再送进去压缩。因为 AVI 这种格式没有纪录 DAR,Display Aspect Ratio,播放时的比例的信息,所以播放软件播放时不知道正确的播放比例应该是多少,因此制作时就要先设计好正确的长宽比例,如上例中的 704x396(16:9)。您可能会疑惑可是最后我们为了压缩需要又补了四个点上去,变成 704x400,这样就不是 16:9 了啊。没错,704x400 不是 16:9,但是因为补上去的多余的点是黑边,所以即使放大到全屏幕,比例还是正确的 16:9,多出来的黑边不影响画面中央有影像部分的正确比例。有点抽象,要好好想一下才能明白其中的道理 ^^;)

 

PowerDVD, WinDVD 等这些软件的 DVD Player 所做的 resize 也都是错误的。
(WinDVD 新版的已经了解到这个问题,开始改进)
所以大家在计算机上看了那么久的 DVD,比例都是错的
不过如上述所讲的,幸运的,一般没有注意的话是看不出来的。
不过一旦发现了以后,就会开始注意到这个错误了

为什么直接 resize 是错的呢?因为根据 ITU-R BT.601,取样的时候长宽的取样比例不是 1:1,
PAR(Pixel Aspect Ratio)不是 square pixel,正方形的 pixel,而是长方形的 pixel。
NTSC 的 PAR 是 10:11,也就是说如果横轴每隔 1cm 取样一点,纵轴就是每隔 1.1cm 取样一点,
取样的间距是 1:1.1 = 10:11。
横轴取样的间距比较短,也就是取样的次数比较密集,也就是取样出来的点数会比较多。
假设原始影像是 PAR 1:1 640x480 的图形,经过 ITU-R BT.601 重新取样后,
分办率会变成 PAR 10:11 704x480(高度 480 不变,长度变为原本的 1.1 倍,640*1.1=704,
横轴的点数变多),而不是 720x480。
所以 NTSC PAR 10:11 720x480 的 DVD 要 resize 到 PAR 1:1 640x480,要左右共砍 16 个点,
变成 704x480 再 resize 到 640x480 才会正确。

不知道这样解释容易了解吗? ^^;
公式是
PAR = DAR * (水平分辨率/垂直分辨率)

DAR 是 Display Aspect Ratio,譬如说电视是 4:3
NTSC 的 PAR 是 10:11,所以
4/3 = 10/11 * 704/480

要从 704x480 resize 到 640x480/512x384... 才会得到正确的 DAR 4:3 的比例。

而 PAL 的 PAR 则是 59:54
4/3 = 59/54 * 702.91/576

所以要先截边变成 702.91,再 resize 到 640x480/512x384... 才会得到正确的 DAR 4:3 的比例。

我没有研究过 PAL 的算法,刚刚用 GKnot 帮忙算了几组正确的比例(要让 Aspect Error 这个项目
显示的百分比为 0%,水平分辨率必须能被 32 整除,垂直分办率必须能被 16 整除),
得到下面的结果(因为无法截边为 702.91,GKnot 是取整数 702):
PAL 4:3
720x576 -> 702x576 -> 704x528 /Aspect Ratio 1.333(4:3), Aspect Error 0%

注意,虽然此时 GKnot 显示 W-Zoom(水平放大)为 100%(没有放大),
但是实际上水平已经由 702 放大到 704,只是放大的幅度太小所以忽略。
我没有实际压过,不知道这样到底好不好。

720x576 -> 702x576 -> 640x480 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 576x432 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 512x384 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 448x336 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 384x288 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 320x240 /Aspect Ratio 1.333(4:3), Aspect Error 0%
.....

如果电影比例小于 4:3,上下会多出黑边,此时就把黑边削掉就好,
只要注意高度必须能被 16 整除。


PAL 16:9(anamorphic,原始影片上下无黑边,变形画面,完全填满整个 720x576 的画面)
720x576 -> 702x576 -> 704x396 /Aspect Ratio 1.778(16:9), Aspect Error 0%

注意,虽然此时 GKnot 显示 W-Zoom(水平放大)为 100%(没有放大),
但是实际上水平已经由 702 放大到 704,只是放大的幅度太小所以忽略。
注意高度 396 不能被 16 整除,所以 resize 完以后,要上下多补 2 个 pixel 的黑边,
补成 704x400 再送进去压缩。
如果电影比例小于 16:9,上下会多出黑边,此时就把黑边削掉就好,
只要注意高度必须能被 16 整除。

720x576 -> 702x576 -> 640x360 /Aspect Ratio 1.778(16:9), Aspect Error 0%

注意高度 360 不能被 16 整除,所以 resize 完以后,要上下多补 4 个 pixel 的黑边,
补成 640x368 再送进去压缩。

720x576 -> 702x576 -> 576x324 /Aspect Ratio 1.778(16:9), Aspect Error 0%

324 不能被 16 整除,补为 576x336。

720x576 -> 702x576 -> 512x288 /Aspect Ratio 1.778(16:9), Aspect Error 0%
720x576 -> 702x576 -> 480x270 /Aspect Ratio 1.778(16:9), Aspect Error 0%
270 ->补为 272

720x576 -> 702x576 -> 448x252 /Aspect Ratio 1.778(16:9), Aspect Error 0%
252 -> 256

720x576 -> 702x576 -> 384x216 /Aspect Ratio 1.778(16:9), Aspect Error 0%
216 -> 224
.....

其它还有很多组可以自行利用 GKnot 计算。
(算 16:9(anamorphic) 的时候先把 H-Modul = 16(高度必须能被 16 整除的限制)改成 1,
这样的弹性比较大,会有比较多组可以选择,等算好 resize 后的大小后,如果高度不能被 16 整除,
再自行考虑要多补,或者是削掉多少黑边)


继续传递Silky的火种:

OK,再来讲更复杂的 ^^;

前面说到根据 CCIR601,模拟影像转为数字时(由电影胶片转为数字格式,如 D1),
由于取样的长宽间距(Sample Aspect Ratio/SAR or Pixel Aspect Ratio/PAR)不一样,
假设 NTSC 是横轴每 1cm 取样一点,纵轴便是每 1.1cm 取样一点,取样的长宽间距不一样,
不是 1:1(square pixel),而是 1:1.1(non-square pixel),所以影像在计算机上看是变形的。
由于横轴的取样间距短,取样次数较频繁,所以取样出来的点比较多。
NTSC PAR 1:1.1 704x480 的影像(变形的)其实等于 NTSC PAR 1:1 640x480(4:3) 的影像。
704/1.1 = 640
或者反过来看,纵轴点数一样多(480),横轴 PAR 1:1.1 的点数要比 PAR 1:1 的多出 1.1 倍
640*1.1 = 704

所以我们拿到 NTSC 的 DVD,规格是 PAR 1:1.1 720x480,要 resize 到 640x480,
或其它 4:3 的比例,直接从 720x480 -> 640x480 是错误的,必须要左右截边变成 704x480,
再 resize 到 640x480,这样比例才会正确。
因为 PAR 1:1 640x480 的画面,对应的 PAR 1:1.1 画面大小是 704x480,
而非 720x480。

同样的道理 PAL 的 PAR 是 59:54,假设横轴每 5.9 的单位长度取样一点,
纵轴便是每 5.4 的单位长度取样一点,横轴的取样间距较长,取样次数较稀少,
取样出来的点比较少。
所以 PAL PAR 59:54 702.91x576 的影像其实等于 PAL 1:1 768x576(4:3) 的影像。
702.91/(54/59) = 768
或者反过来看,纵轴点数一样多(576),横轴 PAR 59:54 的点数要比 PAR 1:1 的少 54/59 倍。
768*(54/59) = 702.91

所以我们拿到 PAL 的 DVD,要 resize 到 768x576/640x480 或其它 4:3 的比例,
直接从 720x576 -> 768x576/640x480 是错误的,必须要左右先截边变成 702.91x576,
再 resize 到 768x576/640x480 ...。

ps. 702.91 是近似值,实际上的数字应该是 702+54/59 = 702.915254237288135593220338983050847..
为了数字化处理方便,使用 704 来代替。
也就是 720x576 削边-> 704x576 -> 640x480 ... etc,16:9 也是先削边 704x576 -> 640x360 ...。
做 PAL VCD 的时候,VCD 的 PAR 和 DVD 相同,所以要削边 704x576 两边等倍缩小 1/2 => 352x288。

这个是上次说的,那么 NTSC 10:11/PAL 59:54 这个 PAR 是怎么算来的呢?
因为要整合 NTSC 和 PAL 系统,减少硬件设计成本,所以 ITU-R BT.601 把取样频率定为 13.5MHz,
然而对 525-line NTSC (ANSI/SMPTE 170M-1994) 的模拟讯号,要取样成 1:1 的 square Pixel,
根据 SMPTE 244M "industry standard" square pixel,取样频率必须是 12 + 27/99 MHz。
所以可以得到 525-line Rec.601 NTSC 的 PAR 是 13.5 / (12 + 27/99) = 11/10 (y/x)

而对 625-line PAL (Rec. ITU-R BT.470-3) 的模拟讯号,要取样成 1:1 的 square Pixel,
取样频率必须是 14.75MHz,所以可以得到 625-line Rec.601 PAR = 13.5 / (14.75) = 54/59 (y/x)

最后总结,关于比例,Doom9 上也讨论过好多次,有兴趣者可以自行查阅,或是参考下列两个网址
http://www.mir.com/DMG/aspect.html
http://www.lurkertech.com/lg/pixelaspect.html
能看繁体中文的话,请看 DVD2AVI 的作者 jackei 的解说
http://bbs.irradiance.net/txtVersion/boards/animation/M.982241028.A/PostThreadList.html
http://bbs.irradiance.net/txtVersion/boards/animation/M.1022228442.A/PostThreadList.html


然而也许有人会注意到,根据这个网页
http://www.uwasa.fi/~f76998/video/conversion/
NTSC 的 PAR 竟然不是 10/11 (x/y),而是 72/79;PAL 的 PAR 竟然不是 59/54,而是 128/117!
这又是怎么回事呢?
这就是令人头痛的地方,也就是复杂的地方 ^^;

下面有点复杂,我没有保握能够解说得很简单清楚明了,建议最好仔细阅读以上提供的网页再往下看。

前面计算 PAR 的时候,我们是拿 13.5MHz 直接去除 "industry standard" 的 square pixel
的取样频率,来求得 NTSC 和 PAL 的 PAR。但是实际上这些 "industry standard" 的取样频率,
取样出来的仍然不是 1:1 的 square pixel,只是很接近 square pixel,所以直接这样除,
得到的 PAR 并不精确。

精确的计算方法:
625/50 PAL 每一条扫瞄线的取样时间为 64μs,实际上用来记录数据的时间只有 52μs,
其它时间用来同步和等待扫瞄线归位,所以要记录 1:1 768x576,取样频率应该是
52μs * (14 + 10/13)MHz = 768

一条扫瞄线要 768 点(取样 768 次),取样时间 52μs,反算回来取样频率就得要是
14 + 10/13 MHz,而不是 "industry standard" 的 14.75MHz。

525/59.94 NTSC 每一条扫瞄线的取样时间为 63+5/9 (63.555...) μs,
实际上用来记录数据的时间只有 52+2/3 (52.666...) μs,其它时间用来同步和等待扫瞄线归位,
所以要记录 1:1 640x480(648x486),取样频率应该是
52+2/3μs * (12 + 24/79)MHz = 640(648)

而不是 SMPTE 244M "industry standard" square pixel 的 12 + 27/99 MHz。

所以根据正确的纪录时间(PAL 52μs/NTSC 52+2/3μs)来推算 PAR,得到的结果就是
NTSC 72/79,PAL 128/117 了。

头开始痛了吗? ^^;
本来我们都已经习惯左右截边 -> 704 之后再 resize,这也是一般看到的作法,
大家都是这么作的,结果根据这个算法,NTSC PAR 变成是 72/79,
本来是
640 * 11/10 = 640*1.1 = 704

现在变成
640 * 79/72 = 702 + 2/9

要截边为 702 + 2/9 再 resize 为 640x480 才是正确的。

不过该网页的作者也建议,还是使用 704 比较好,704 这个数字刚好可以被 16 整除,
704 这个数字刚好是 VCD 352 的两倍,704 刚好是 VCD 可以存放的静态图片的最大分办率,
704 刚好是 ATSC 数字电视的标准分办率...
有这么多的 "巧合",所以我们还是选择削边为 704 来处理。
DVD2AVI 的作者也是建议,还是以 704 来处理。

而 PAL 就很有趣了,因为 PAL 真正的 PAR 是 128/117,所以
768 * 117/128 = 702

刚刚好等于 702 一点都不差!
所以也许 PAL DVD 要 resize 为 PAR 1:1 640x480/512x384 ...,
截边为 702 之后再 resize,会比 704 更好。

讲完正确的 resize 作法之后,小弟也就可以功成身退了

 

前面曾经提过 702.91 最接近的数字 703 这个数字数字处理不好处理,
所以改用 704,和这个道理很像。
因为 YUY2/YV12 格式的水平,色彩(Chroma)信息是每两个 sample 取样一个,
所以切的时候,一定要以偶数为单位切割(亮度 Y 切 8,色度 C 就要切 8/2 = 4,
Y 如果切 9,那么 C 要怎么切?),所以如果要切 9,就不能以 YUY2/YV12 模式处理,
要转为 RGB 模式才可以。

如果你是用 TMPGEnc, AviUtl, VirtualDub 切割,因为这些软件以 RGB 模式处理,
所以没有以上的限制。

假设我们是切为 704x480,resize 为 16:9 后是 704x396,396 不是 16 的整数倍,
上下填黑,补成 400 再压缩。例如 Avisynth 上下填 2 个 pixel:
# AddBorders(clip, int left, int top, int right, int bottom)
AddBorders(0,2,2,0)

或是用 VirtualDub 的 resize filter:
Expand frame and letterbox image
Frame width : 704
Frame height : 400
Fill color : 选黑色

AviUtl 有另外的 plug-in 可以做填黑,处理的优先顺位要调到 resize 之后,
相信会用的人自然知道,不用小弟多言。

TMPGEnc ..等,也是一样的作法,做完以后再压缩就可以了。

至于几个正确的分辨率,前面已经有算好了,直接拿来用就可以了。
如果不要用 702,想用 704,将前面那些算好的数字 702 改为 704 即可。
想用其它分辨率可以用 Gordian Knot 帮忙算。

我刚刚才发现,新出的 Gordian Knot 0.27 版已经改为使用那个网页上的计算方法,
以 702 为正确的切边数字。现在 NTSC 用 704 会显示是错误的 Aspect Ratio,
和 PAL 一样,要用 702 才会得到正确的结果... 真麻烦啊,NTSC 我还是想用 704 耶...

作者:phg79    来源:TFcc
网站首页 | 文档列表 | 网站声明 | 友情链接 | 联系方式
Copyright © 2004-2008 TFcc. All Rights Reserved.
变形金刚形象使用权仅属于美国Hasbro®公司与日本Takara®公司