版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

mawen1250 写了:format的话你用core.register_format()注册,如果要求输入的是id的话那就在后面再加上.id。
或者是vs预定义好的格式就直接用vs.YUV444P16这种。
噢~原来是这样玩的 {:cat_11}
多谢大大
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

mawen1250 写了:format的话你用core.register_format()注册,如果要求输入的是id的话那就在后面再加上.id。
或者是vs预定义好的格式就直接用vs.YUV444P16这种。
再次请问大大,我现在用 nnrs.nnedi3_resample(src16, csp=vs.YUV444P16) 来拉伸420到444(luma不改变),使用的是nnedi3吗?
看到相关的语句是 if chromak_up is None chromak_up = 'nnedi3'和chroma upscaling一节 U/V = nnedi3_resample_kernel(......)
脚本好高级,打开只能看懂一点点所以向大大确定一下 {:cat_3}
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

NAVras 写了:
mawen1250 写了:format的话你用core.register_format()注册,如果要求输入的是id的话那就在后面再加上.id。
或者是vs预定义好的格式就直接用vs.YUV444P16这种。
再次请问大大,我现在用 nnrs.nnedi3_resample(src16, csp=vs.YUV444P16) 来拉伸420到444(luma不改变),使用的是nnedi3吗?
看到相关的语句是 if chromak_up is None chromak_up = 'nnedi3'和chroma upscaling一节 U/V = nnedi3_resample_kernel(......)
脚本好高级,打开只能看懂一点点所以向大大确定一下 {:cat_3}
这里的意思就是你没指定chromak_up的话,就使用nnedi3做chroma的upscale。
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

mawen1250 写了:这里的意思就是你没指定chromak_up的话,就使用nnedi3做chroma的upscale。
谢大大教导 {:cat_11}
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

Holy 写了:
lwjkk666 写了:弱弱地问下,有没有vs版的
https://github.com/mawen1250/VapourSynth-script
如果想让nnedi3在32bit下是不是改190行
# Convert depth to 16-bit
last = mvf.Depth(input, depth=1632, fulls=fulls)
就行呢?
nope...在后面gamma的expr里还要
好险 {:cat_18}之前改完后没用上gamma转换...
Shir1yn
帖子: 106
注册时间: 2012-03-22 19:29

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

mawen1250 写了:可以在x26x的参数里手动指定--colormatrix --transfer --colorprim
至于转换的话:
1. 对于420的源,需要先转到444才能做matrix转换,带来了额外的麻烦(而且如果最后转回420就多了两次resample的损失)。
2. 光是转换matrix是不符合定义要求的,因为BT.601、BT.709、BT.2020定义了一整套颜色标准,而不单单只是matrix,所以要转换的话就应该同时转换matrix、transfer和primary。而AVS里似乎并没有方便的函数可以做到(就我所知只有3D-LUT之类的可以实现,然而使用麻烦而且只支持8bit);VS倒是有zimg的z.ColorSpace可以一步完成所有的转换,fmtconv未来也会加入primary转换的支持。
請問mawen大大

在x264或x265裡面的標註的話,是不是SD>HD就是用bt709,HD>SD就是用bt601?--colormatrix --transfer --colorprim 這三項都是標註bt601或bt709?
joeleejj
帖子: 4
注册时间: 2018-02-03 12:54

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

请问以下mawen大的:
XXXSource("xxx.xxx")
# 1920x1080 8bit YUV 4:2:0 - input

nnedi3_resize16(lsb_in=False, tv_range=true, matrix="709", output="RGB48Y")

nnedi3_resize16(output_width=1280, output_height=720, lsb_in=True, lsb=True, tv_range=False, curve="709", Y=3, U=1, V=1)

Dither_convert_rgb_to_yuv(SelectEvery(3, 0), SelectEvery(3, 1), SelectEvery(3, 2), lsb=True, tv_range=true, output="YV12")

和这个:
XXXSource("xxx.xxx")
# 1920x1080 8bit YUV 4:2:0 - input

Dither_convert_8_to_16()

Dither_convert_yuv_to_rgb (matrix="709", output="rgb48y", lsb_in=true)

Dither_y_gamma_to_linear (tv_range_in=false, tv_range_out=false, curve="709", sigmoid=true)

Dither_resize16nr (1280, 720, kernel="spline36")

Dither_y_linear_to_gamma (tv_range_in=false, tv_range_out=false, curve="709", sigmoid=true)

r = SelectEvery (3, 0)
g = SelectEvery (3, 1)
b = SelectEvery (3, 2)
Dither_convert_rgb_to_yuv (r, g, b, matrix="709", lsb=true)

有什么分别? 又,如果要转回8bit的话是 Down10(8, TVrange=true, stack=False)?还是用 ditherpost()? 当中又什么分别?
抱歉貌似找不到类似的答案。。
mrhso
帖子: 33
注册时间: 2016-10-22 17:19

Re: nnedi3_resize16 v3.3 - 高精度upscale/colorspace转换脚本 - 3.0提速280%

524 行:

代码: 全选

shift16  = IsY8 ? output=="Y8" ? merge16.ConvertToY8() : Eval("shift16.ConvertTo"+oCSP).Dither_lut16(Y=2, U=-32768, V=-32768) : shift16
「merge16.ConvertToY8()」应为「shift16.ConvertToY8()」?

回到 “AviSynth”