希望有損失較少的方法 想請教一下詳細使用方法和附上例子
Thanks
求教awarp(aSobel().aBlur())与awarpsharp2()的区别?mawen1250 写了:example1. 输入的YUV420P8可以用nnedi3_resize16(lsb_in=False, lsb=True, output="YV24")转到YUV444P16。但是nnedi3不一定适合用作所有源的chroma upsampling,特别是源的chroma质量较差时用SoftCubic会更合适,所以可以把ratiothr设为足够大(这里只要略大于2即可)以避免调用nnedi3,然后手动指定kernel_u、a1、a2,SoftCubic60就如上方example所示。CODEBOX_PLUS_CODE: [全选] [CODEBOX_PLUS_EXPAND/CODEBOX_PLUS_COLLAPSE]# YUV420P8 input
nnedi3_resize16(lsb_in=False, lsb=True, output="YV24", ratiothr=2.25, kernel_u="Bicubic", a1=0.6, a2=0.4)
src16 = last
DitherPost(mode=-1)
warpe = ConvertToYV12().aSobel(128, 1).aBlur(1, 1, 1)
epp = YToUV(UToY().awarp(warpe, 6, 1), VToY().awarp(warpe, 6, 1), last)
Dither_limit_dif16(src16, epp.U16(), thr=1.0, elast=2, y=2, u=3, v=3)
# YUV444P16 output
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。
之前是读过readme的,看见前辈这样写所以有疑问(在github上看见你Hunter的某一版AVS是用aWarpSharp2,而另一部动画用了aWarp(aSobel().aBlur()))。mawen1250 写了:readme里都有写
感謝回复mawen1250 写了:example1. 输入的YUV420P8可以用nnedi3_resize16(lsb_in=False, lsb=True, output="YV24")转到YUV444P16。但是nnedi3不一定适合用作所有源的chroma upsampling,特别是源的chroma质量较差时用SoftCubic会更合适,所以可以把ratiothr设为足够大(这里只要略大于2即可)以避免调用nnedi3,然后手动指定kernel_u、a1、a2,SoftCubic60就如上方example所示。CODEBOX_PLUS_CODE: [全选] [CODEBOX_PLUS_EXPAND/CODEBOX_PLUS_COLLAPSE]# YUV420P8 input
nnedi3_resize16(lsb_in=False, lsb=True, output="YV24", ratiothr=2.25, kernel_u="Bicubic", a1=0.6, a2=0.4)
src16 = last
DitherPost(mode=-1)
warpe = ConvertToYV12().aSobel(128, 1).aBlur(1, 1, 1)
epp = YToUV(UToY().awarp(warpe, 6, 1), VToY().awarp(warpe, 6, 1), last)
Dither_limit_dif16(src16, epp.U16(), thr=1.0, elast=2, y=2, u=3, v=3)
# YUV444P16 output
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。
使用後部分線條/邊緣完全消失 這是正常的?mawen1250 写了:example1. 输入的YUV420P8可以用nnedi3_resize16(lsb_in=False, lsb=True, output="YV24")转到YUV444P16。但是nnedi3不一定适合用作所有源的chroma upsampling,特别是源的chroma质量较差时用SoftCubic会更合适,所以可以把ratiothr设为足够大(这里只要略大于2即可)以避免调用nnedi3,然后手动指定kernel_u、a1、a2,SoftCubic60就如上方example所示。CODEBOX_PLUS_CODE: [全选] [CODEBOX_PLUS_EXPAND/CODEBOX_PLUS_COLLAPSE]# YUV420P8 input
nnedi3_resize16(lsb_in=False, lsb=True, output="YV24", ratiothr=2.25, kernel_u="Bicubic", a1=0.6, a2=0.4)
src16 = last
DitherPost(mode=-1)
warpe = ConvertToYV12().aSobel(128, 1).aBlur(1, 1, 1)
epp = YToUV(UToY().awarp(warpe, 6, 1), VToY().awarp(warpe, 6, 1), last)
Dither_limit_dif16(src16, epp.U16(), thr=1.0, elast=2, y=2, u=3, v=3)
# YUV444P16 output
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。