分页: 1 / 2

SeparateResize v1.6 - Luma和Chroma分别resize脚本(增加16-bit版)

发表于 : 2011-03-07 20:16
06_taro
一个Resize脚本,对Luma和Chroma分别使用不同的Resize算法,想法来自于madvr

下载:
MediaFire:SeparateResize_v1.6.7z
nmm镜像:SeparateResize_v1.6.7z

v1.6
- 使用自適應的nr算法,分辨率提高的倍率較低時降低ringing-reduction強度。現在nr參數從bool改為val,可以支持bool或者float的輸入。當作為float的時候用於指定nr clip的weight,等於1時和舊版的True相同,等於0時和False相同。新版的True就是自適應的nr算法
- 稍微加快一點nr算法
- 增加16-bit的SeparateResize16
- 取消madResize和nrLSResize支持。這兩個函數沒有修改,所以仍然可以按以前的用法使用,不過以後不會再更新了(本來就是作為SeparateResize裡部分常用用法的alias name的)

v1.5
- 非YV12的YUV格式也支持不轉換為YV12直接處理了,包括YUY2, YV16, YV24, YV411, Y8
- RGB輸入不再固定轉為YV12,如果avs版本是2.6的話優先使用YV24,並且RGB->YUV轉換優先使用Dither工具(失敗時才用內部ConvertToYVXX)
- 增加幾個輔助函數: GetCSP, IsY8, IsYV411, Separate_Y8_YV411:
- GetCSP(clip c),返回c的colorspace,格式是字符串,類似EPCS,不過支持YV16/YV24/Y8/YV411等2.6的新colorspace。
- IsY8(clip c),如果c是Y8,返回true,否則返回false。與Dither_IsY8不同的是,Dither_IsY8沒法區分Y8和YV411,如果輸入的是YV411,Dither_IsY8會返回true,當然這是錯誤的。這裡的IsY8在輸入是YV411時會正確返回false
- IsYV411(clip c),如果c是YV411,返回true,否則返回false。
- Separate_Y8_YV411(clip c),只是用來區分Y8和YV411的輔助工具。Y8返回"Y8",YV411返回"YV411",如果輸入的c既不是Y8也不是YV411,返回的結果是錯誤的沒有意義。本來只是給GetCSP/IsY8/IsYV411內部處理用的。

v1.4.2
madResize裡增加2<=taps<=4之外的支持,當然taps=1或者taps>4需要SplineResize這個外部插件的支持
nrLanczosResize.avsi改成nrLSResize,增加了nrSpline(16/36/64/100/144)Resize的支持。

v1.4.1
madResize修正,不用ResampleHQ了,仍然用avs内置的resizer,现在结果没问题了,前者各种RP……

v1.4
1. 增加"nr"参数(表示non-ringing),默认开启,用来去除resize导致的ringing artifacts。
2. 顺便默认算法改成了madVR相同的Spline64+SoftCubic100,不喜欢的自己设定。
3. 另外增加madResize.avsi,用ResampleHQ来实现更快速的处理,不过只限用madVR的Spline+SoftCubic/Lanczos+SoftCubic,分别对应函数madSpline和madLanczos,可调整taps与soft。同样用nr参数去除ringing。madSpline/madLanczos最好先別用。ResampleHQ雖然快,但是結果和avs內置的效果似乎有些區別,某些設置下質量明顯下降,我最近再看看到底怎麼回事。SeparateResize/SoftCubicResize/nrLanczosResize不受影響。
4. 增加SoftCubicResize,SeparateResize的默认参数用到这个,所以都要载入。把它单独分出来变成SoftCubicResize.avsi主要是给只需要SoftCubicResize的人用。
5. 增加nrLanczosResize,是改进的LanczosResize,无ringing。用法同LanczosResize/Lanczos4Resize,函数前加一个nr就行了,例如nrLanczosResize(640, 480, 8, 0, -8, 0, taps=4)等同于nrLanczos4Resize(640, 480, 8, 0, -8, 0)

和avs内置resize使用(704, 480, 8, 0, -8, 0)的C&R相同,Luma用GaussResize(p=40),Chroma用BicubicResize(b=0.2, c=0.4),若源不是YV12或者YUY2的话按照Rec601转换为YV12, 显示resize信息

PS: RGB之类的input最好在resize前自己转成YV12,否则这个脚本虽然会自动转,不过依据的colormatrix是根据原分辨率自动判断的(同AutoResize),1024x576以上用Rec709,以下用Rec601,无法保证准确(开启info的话会显示转换用的matrix),本来709/601就有可能被乱标= =

话说谁知道madvr里面SoftCubic在AVS里有实现方式么?
俺英文烂不想去问madshi啊……

Re: SeparateResize v1.3 - 对Luma和Chroma分别resize的脚本(8.11去除无用步骤

发表于 : 2011-08-11 12:17
06_taro
更新一下,主要是之前MergeLuma和MergeChroma做两步既没必要也影响速度,现在应该可以稍快一些

Re: SeparateResize v1.3 - 对Luma和Chroma分别resize的脚本(8.11去除无用步骤

发表于 : 2011-08-11 22:18
Holy
06_taro 写了:话说谁知道madvr里面SoftCubic在AVS里有实现方式么?
不曉得 Taro 菊苣是否早就已經知道了…哈 {:cat_11}
SoftCubic50:BicubicResize(b=0.5, c=0.5)
SoftCubic75:BicubicResize(b=0.75, c=0.25)
SoftCubic100:BicubicResize(b=1.0, c=0.0)

Re: SeparateResize v1.3 - 对Luma和Chroma分别resize的脚本(8.11去除无用步骤

发表于 : 2011-08-12 9:13
06_taro
thx~這個我真不知道……

Re: SeparateResize v1.4 - 对Luma和Chroma分别resize脚本(11.11去除ring

发表于 : 2011-11-11 18:38
06_taro
小更新一下,里面多了一堆函数,大部分只是让使用更加方便的。不过有nr之后又有ResampleHQ代替不了的功能了-_,-

Re: SeparateResize v1.4 - 对Luma和Chroma分别resize脚本(11.11去除ring

发表于 : 2011-11-13 1:23
4h4h270
我之前看到说blackmanresize能产生更少的ringing,就一直用的那个,但是没见人用过,不知道为啥.
nrlanczos和blackman相比有什么区别么

Re: SeparateResize v1.4 - 对Luma和Chroma分别resize脚本(11.11去除ring

发表于 : 2011-11-14 2:16
angelcat
個人糾結於不淡線的伸展下降低RING的方法..
否則爆力DERING實在太蛋疼

但各種RESIZE的RING嚴重度,就跟開了BLURDERING的強度有著相似的結果...

Re: SeparateResize v1.4.1 - Luma和Chroma分别resize脚本(11.13去ring

发表于 : 2011-11-14 4:00
06_taro
小更新一下,madResize现在没问题了。

顺便应求:
图片
上面是Blackman,下面是SeparateResize,nrLanczos和SeparateResize的nr方法一样所以结果类似。防ringing效果对比够明显了吧。

Re: SeparateResize v1.4.1 - Luma和Chroma分别resize脚本(11.13去ring

发表于 : 2011-11-14 19:20
4h4h270
拜谢taro大,效果很明显~

Re: SeparateResize v1.4.1 - Luma和Chroma分别resize脚本(11.13去ring

发表于 : 2011-11-15 2:20
angelcat
在模擬超高倍數放大時,雖然任何resize(eedi系列的倍線)的防ring效果都無法在一般動畫dvd上取得多大的效果

SeparateResize是我現在試過超高放大的狀態下 多產生的ring極少的resize,感謝taro大 {:cat_11}