SeparateResize v1.6 - Luma和Chroma分别resize脚本(增加16-bit版)
发表于 : 2011-03-07 20:16
一个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啊……
下载:
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啊……