头像
dgwxx
管理猿
帖子: 771
注册时间: 2010-09-19 20:42
联系: 网站

Re: resize&copy问题

每次谈到resize里切边的话题都能扯出来无尽的麻烦。resample.cpp里的注释是这么写的:
/**
* Resize(PClip clip, dst_width, dst_height [src_left, src_top, src_width, int src_height,] )
*
* src_left et al. = when these optional arguments are given, the filter acts just like
* a Crop was performed with those parameters before resizing, only faster
**/
不过我无论如何都不觉得这个切边just like a Crop,并且only faster
日常推 @dgwxx: 基本没什么技术的话题,欢迎没事看看消遣。
► 显示剧情透露 平庸的rip
► 显示剧情透露 “不知道”的五大理由
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: resize&copy问题

dgwxx 写了:每次谈到resize里切边的话题都能扯出来无尽的麻烦。resample.cpp里的注释是这么写的:

不过我无论如何都不觉得这个切边just like a Crop,并且only faster
just like a Crop
大概就是这样…… {:cat_2}
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
mayday4352767
帖子: 29
注册时间: 2010-10-16 3:25

Re: resize&copy问题

264768502 写了:LanczosResize(tap=4) = Lanczos4Resize
一般的偶数切边,直接用crop,习惯了
undot是去dot的...怎么可能用了还吃码率(一般来说)?
非常感谢前辈的多次指点!! 谢谢了!! 我一般也是偶数切边,奇数切边也是前两天刚刚看到的关于711的相关文章才知道的,呵呵!
关于undot 降噪吃码率,我也仅仅是看了一言半字,也没搞出作者的原意,不好意思!
头像
mayday4352767
帖子: 29
注册时间: 2010-10-16 3:25

Re: resize&copy问题

dgwxx 写了:Lanczos4Resize()是LanczosResize(taps=4)的简便写法,不是升级。
resize滤镜内置的切边功能和crop虽然原理不太一样,不过效果是一样的,而且写起来方便,又能切奇数,所以一般就用resize里的crop了。crop切边和resize滤镜内切边对细节的影响没有理论证实过,您有兴趣可以证实证实。

此外,希望楼主把帖子的标题改一下,不是copy,是crop。
简单 清晰!!原来文档库里面是有相关的说明的 {:cat_4} 谢谢前辈耐心帮忙指点!!
{:cat_16}
头像
Holy
核心会员
核心会员
帖子: 235
注册时间: 2010-09-24 9:28

Re: resize&copy問題

264768502 写了:= = 剛剛實戰了下,只切邊,crop和Lanczosresize是一樣的...
只切邊的話確實是一樣的,不過有 resize 的話效果就有差了…

測試腳本

代码: 全选

a = BlankClip(width=720, height=8, pixel_type="YV12", color=$000000)
b = BlankClip(width=720, height=464, pixel_type="YV12", color=$CACACA)
c = BlankClip(width=720 ,height=8, pixel_type="YV12", color=$000000)
source = StackVertical(a, b, c)
e = source.Crop(8, 8, 704, 464).Spline64Resize(640, 360)
f = source.Spline64Resize(640, 360, 8, 8, 704, 464)
return StackHorizontal(e, f)
Maa…就那 1px 出問題而已一般看片黨哪會注意到呢(死
图片
头像
mayday4352767
帖子: 29
注册时间: 2010-10-16 3:25

Re: resize&crop问题

继续环绕这个话题,我承认我在钻牛角尖了(并且是毫无理论为前提的钻)
在漫游论坛和贵坛又多少充了一下电!
看到很多dgwxx大哥和一些前辈的高谈阔论,感到无力的同时,也激发了一些小小的兽性, 不管我的问题是否愚蠢,不过我想,可以搞清楚一些最好,其他先撂一边了!
翻看了silky大神的文章(只能说是超级超级蜻蜓点水的看),又结合了NMM文档里面和dgwxx大哥的提示!目前心里面终于有了个新的认识!
说实话,之前看到的一些关于缩放滤镜的文章,没有过多描述关于上下黑边像素过多的处理方法。看了看漫游酷论坛的一位前辈列举的公式法,感觉没有dgwxx前辈做出的计算器便捷直观 ,至于dgwxx前辈的切边计算器,我是看了一下silky大神的文章之后,才知道那个目标分辨率的大概取值(实在是不好意思,之前没概念 {:cat_5}
提出一个问题, 像silky大神这句话---(720x480 切边-> 704x480 Resize-> 704x396(16:9) 396 不是 16 的倍数,补黑边-> 704x400) lanczosresize代码应该如何写?
我对这句话的理解是这样的:左右要切一次(共切16),为了还原比例;上下的黑边需要完全切掉,这是第二次! 最后的目标分辨率定位 704x400 ! 是不是这样写呢?
crop(16,0.704,480)
AddBorders(0,2,0,2)
crop(0,40,0,-40)
LanczosResize(704,400)
彻底晕乎了,相信各位看官前辈吐得也稀里哗啦了! silky大神文章后面也多少提了一下这个补黑边其实并不是真的切了再补(应该是为了满足高mod16然后填补进去) 那好,我再改!!
crop(16,0.704,480)
crop(0,38,0,-38)
LanczosResize(704,400)
双crop诞生了,杯具的我!! {:cat_5} 我想这个代码我肯定是写错了,但是从文字上理解,我真是不知如何下手!
其实写这个我可能更多的是想搞清楚关于crop和LanczosResize的多种写法吧??源头就是因为文档资料库里面那个AE=0的AVS写法:LanczosResize(X,X,X,X,-X,-X).crop(X,X,-X,-X)
各位,勇猛的菜鸟我睡了! 坚信:我棒槌,我可贵 雷啊,尽情的劈吧!!
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: resize&crop问题

目标分辨率其实可以随便取值,只要颜色空间支持该分辨率就好(比如最常见的YV12,必须mod2)
目前来说大可不必追求圣经中的mod16,因为无论是编码器还是解码器,都已经能很好的接受非mod16的RIP了

关于这个
(720x480 切边-> 704x480 Resize-> 704x396(16:9) 396 不是 16 的倍数,补黑边-> 704x400)
你写的顺序错了
LanczosResize(704,396,8,0,-8,0) #(第一次切边,并resize)
crop(0,40,0,-40) #第二次切上下黑边
AddBorders(0,42,0,42) #补足上下黑边

关于LanczosResize和Crop的具体写法,你还是看这里吧
http://www.nmm-hd.org/doc/index.php?tit ... iant=zh-cn
头像
mayday4352767
帖子: 29
注册时间: 2010-10-16 3:25

Re: resize&crop问题

264768502 写了:目标分辨率其实可以随便取值,只要颜色空间支持该分辨率就好(比如最常见的YV12,必须mod2)
目前来说大可不必追求圣经中的mod16,因为无论是编码器还是解码器,都已经能很好的接受非mod16的RIP了

关于这个
(720x480 切边-> 704x480 Resize-> 704x396(16:9) 396 不是 16 的倍数,补黑边-> 704x400)
你写的顺序错了
LanczosResize(704,396,8,0,-8,0) #(第一次切边,并resize)
crop(0,40,0,-40) #第二次切上下黑边
AddBorders(0,42,0,42) #补足上下黑边

关于LanczosResize和Crop的具体写法,你还是看这里吧
http://www.nmm-hd.org/doc/index.php?tit ... iant=zh-cn
谢谢前辈指导。 不过好像您那个添加黑边的滤镜用的不对(我拿了个片源试了下,无法消除黑边)! 针对上面的举例, silky 大神原话是这样的:所谓补黑边,其实就是上下切的时候,多留下 8 pixels 的黑边,不是真的先切了再补 ^^;
我坚持不下去了! 搞清楚比例,老老实实的切边好了! 万分感谢!!
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: resize&crop问题

= = 那个是加黑边用的...自然无法消除黑边...
圣经的意思就是做成mod16,但是同时要保持成品的比例正确,所以补了一些黑边进去
如果你要做无黑边的,且播放比例正确,那么很多情况下你是无法做到成品的最终分辨率正好为704x400的

720x480->704x480->704x396->704x400
切边 resize 加黑
也就是说你从704x480到704x396不是靠切边来完成的,而是resize到该分辨率

其实吧...现在已经很少有人做704x396或者704x400分辨率的RIP了
大多数都是选择横向缩放,比如720x480最终做成640x480 (4:3) 或者872/864/856/848x480(16:9)
或者索性不做resize,只切边,然后设置一个播放比例,于是播放器会自动识别该信息,将RIP以之前设置好的比例播放
头像
mayday4352767
帖子: 29
注册时间: 2010-10-16 3:25

Re: resize&crop问题

264768502 写了:= = 那个是加黑边用的...自然无法消除黑边...
圣经的意思就是做成mod16,但是同时要保持成品的比例正确,所以补了一些黑边进去
如果你要做无黑边的,且播放比例正确,那么很多情况下你是无法做到成品的最终分辨率正好为704x400的

720x480->704x480->704x396->704x400
切边 resize 加黑
也就是说你从704x480到704x396不是靠切边来完成的,而是resize到该分辨率

其实吧...现在已经很少有人做704x396或者704x400分辨率的RIP了
大多数都是选择横向缩放,比如720x480最终做成640x480 (4:3) 或者872/864/856/848x480(16:9)
或者索性不做resize,只切边,然后设置一个播放比例,于是播放器会自动识别该信息,将RIP以之前设置好的比例播放
您说的横向缩放,小弟浏览了一些帖子,确实可以算是主流吧! 让播放器自动识别或者封装添加播放信息,也 就是SAR法了! 能不能再麻烦您按照我举的实例再多少指点一下呢?
720 480 NTSC(4:3)的VOB 上下一共有114像素的黑边!我要全部切掉
我的AVS是这样的;Crop(0,54,-0,-60)
LanczosResize(720,366)
那么按照您讲的只切边Crop(0,54,-0,-60)不resize的话是不是在megui里设定 --sar 40:33就可以了?
或者把AVS拉到megui界面的时候,设置播放分辨率!
谢谢 !! {:cat_5}

回到 “理论讨论 / Theoratical discussion”