关于AVS脚本编写, 其实大到开个站也可以... 不过小起来, 写一篇BLOG大概也就可以记录下一些心得了...AVS脚本的作用是把滤镜和信号事先处理好, 然后直接交给编码器压制... 大致需要经过几个步骤实现以下一些功能: 剪裁/调整比例和大小/去拉丝/降噪/锐化, 顺序不是那么严格的, 不过也应该有些忌讳.
最早做的应该是剪裁... 原则是这样: 拿到后先左右一共截掉16个pixel, 然后再进行后续工作, 因为有可能过几步后要继续裁. 截掉16个pixel的道理很简单: 所有的DVD机都是这么做的, 而且这也是在MPEG2规范中规定的(原因从略), 所以如果想后续步骤做对, 实现精确还原, 就要先这么做. 在这个意义上说, 所有的DVD播放软件的Resize这一步都是错的.
剪裁和调整比例通常是连在一起的, 那么一起说掉(但不严格要求剪裁16 pixel后立刻调整, 毕竟最后调整可以保留更多细节)... 分为PAL和NTSC.
PAL:
比例上有两种情况: 4比3, 16比9. 原始分辨率是720X576, 切完后704X576
4比3的情况, 很简单, 704/11X10=640, 另一边则是根据640/4X3=480. 这是最规范的分辨率640X480. 不管是官方还是民间白皮书上, 这都是最符合条件的. 当然硬要从704/4X3给出704X528, 也不是不可以, 不过比较不容易控制容量, 但这样确实可以保留更多细节(但其实很有可能是假细节), 毕竟信号源有这么大, 做起来比较爽. 另外注意这是唯一一种可以做出704X528的情况. 也就是PAL 4比3. 另外如果不是要求很高, 可以再降低一级变成512X384.
16比9的话, 要分成Letter Box和Squeeze. Squeeze的情况下, 纵向挤压了33%的信号, 因此在横向pixel数不变的情况下再下降33%, 或者直接套公式算, 640/16X9=360, 704/16X9=396, 甚至512/16X9=288. 但是, 显示卡要启动Overlay需要的是横向分辨率mod32, 纵向分辨率mod16, 360和396都不是16的倍数, 因此要进一步裁或补黑边, 360时如果没黑边了, 可以上下各补4个变成368, 如果有, 可以看情况裁成352. 396时建议补到400, 如果黑边较大, 也可以裁到384. 288则刚好不用裁.
Letter Box更简单, 按4比3调整完, 直接裁上下黑边到Squeeze的368/374或400/384. 总之最后怎么裁怎么凑mod16随便, 但换算过程不能含糊. 另外不建议先调整纵向然后在横向补黑边, 一方面没有这种算法规范, 另一方面屏幕两边没填满很难看.
NTSC的话, 也是分成4比3, 16比9, 16比9中有Letter Box和Squeeze, 道理基本一样. 不过因为NTSC原始分辨率是720X480, 因此4比3的情况下, 704级的那套不能用(软倍线? 以后再说吧=v=)
因此, NTSC总结如下:
4比3: 720X480 -> 704X480 -> 640X480/512X384, Finish.
16比9: 720X480 -> 704X480 -> 704X396/640X360/512X288 -> 704X400(384)/640X368(352)/512X288, Finish.
Letter Box的话按4比3的弄, 之后直接裁到16比9的最终分辨率.
一些特例如Ghibli的片子, 上下左右都有黑边, 这时可以先套704那组公式计算, 调整完, 然后手动裁到640那组... 或者672这种特殊分辨率, 记得原则就好.
那么关于剪裁和调整比例, 暂时就是这个样子. 其他的情况除了去拉丝必须在调整比例前做之外, 顺序没有严格要求, 按DOOM9里某前辈的话说, "No conception errors."^^
... 以上.
贴两张图, 上面是原始DVD, 下面是处理后, 注意周围黑边已经没有了. 关于其他处理, 下篇再说吧= =

查看全文及评论...