NMM视频技术(旧)

 找回密码
 成为会员
搜索
查看: 3492|回复: 1

Avisynth中resizer的切边参数的浮点数值类型小验证

[复制链接]
发表于 2008-7-29 11:20 | 显示全部楼层 |阅读模式
针对这个帖子http://www.dgwxx.net/nmmbbs/thread-590-1-1.html的讨论做了个不太严密的小实验
Avisynth 2.56起提供了8的resize滤镜,在改变大小之前可以切边
手册中的参数:
LanczosResize (clip, int target_width, int target_height, float "src_left", float "src_top", float "src_width", float "src_height", int "taps")

切边参数的数值类型是float,也就是说可以切“半个像素”……于是我做了个粗略的实验验证了一下

PS一张101x20的图,其中最右边一列是红色,最右边第二列是黄色,最右边第三列是蓝色,其他都是白色
resize.png


avs:
imagesource("D:\resize\resize.bmp")
BicubicResize(500,20,0.6,0,-0.4,0)


右边切掉0.4像素,左边切掉0.6像素,切完之后是100x20,再拉到500x20。横向放大了5倍,如果真能切浮点的话,理论上红色应该是3列,黄色5列,蓝色5列。

做了8个滤镜的实验,结果如下
resize8.png


为了方便,我把分开的结果放到一张图里了
虽然色彩的边缘处都有不同程度的模糊,不过可以看出,特别是PointResize,红色是3列,印证了之前的猜测。

附件是一些原始的图,由于不让上传bmp,用png代替了

我C看不明白,只能做这么一个现象上的验证,还请各位指出问题。

[ 本帖最后由 lititude 于 2008-7-29 11:22 编辑 ]

resize.zip

49.38 KB, 下载次数: 1792

发表于 2008-7-29 19:38 | 显示全部楼层
AviSynth的源代码显示,只有PointResize与其他resizer不一样,所以用lanczos3来代表其他所有resizer,做了下面的实验:
实验要求证明:AVS的浮点数值切边,到底是四舍五入还是按比例运算。
实验操作方法:将原版的101x20的图象,导入avs,进行<1数值的切边,resize为100x20,然后用第三方软件放大400%观看。
实验所用软件:AviSynth 2.57、VisualDubMod、Macromedia Fireworks
实验证明:除PointResize外,avs是按比例进行切边变形,而不是四舍五入。

[ 本帖最后由 diseac 于 2008-7-29 19:40 编辑 ]
未命名-1.png
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|手机版|NMM视频技术

GMT+8, 2019-10-15 09:09 , Processed in 0.050481 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表