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

想問一下分別在8bit下和如何升到16bit YUV 4:4:4後Chroma bleeding修正的方法

希望有損失較少的方法 想請教一下詳細使用方法和附上例子
Thanks
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 想問一下分別在8bit下和如何升到16bit YUV 4:4:4後Chroma bleeding修正的方法

example
# 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
1. 输入的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所示。
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。
alexz220
帖子: 115
注册时间: 2012-07-21 17:15

Re: 想問一下分別在8bit下和如何升到16bit YUV 4:4:4後Chroma bleeding修正的方法

mawen1250 写了:example
# 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
1. 输入的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所示。
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。
求教awarp(aSobel().aBlur())与awarpsharp2()的区别?
alexz220
帖子: 115
注册时间: 2012-07-21 17:15

Re: 想問一下分別在8bit下和如何升到16bit YUV 4:4:4後Chroma bleeding修正的方法

mawen1250 写了:readme里都有写
之前是读过readme的,看见前辈这样写所以有疑问(在github上看见你Hunter的某一版AVS是用aWarpSharp2,而另一部动画用了aWarp(aSobel().aBlur()))。

“Syntax:
aWarpSharp2(int "thresh", int "blur", int "type", int "depth", int "chroma")
aSobel(int "thresh", int "chroma")
aBlur(int "blur", int "type", int "chroma")
aWarp(edge_mask_clip, int "depth", int "chroma")
aWarp4(edge_mask_clip, int "depth", int "chroma")

aWarpSharp2() is the same as aWarp(aSobel().aBlur()) but a bit faster.”

意思是用aWarpSharp2()的结果和aWarp(aSobel(crhoma=a).aBlur(crhoma=a)) 结果基本一样?
yan04000985
帖子: 16
注册时间: 2014-06-28 11:33

Re: 想問一下分別在8bit下和如何升到16bit YUV 4:4:4後Chroma bleeding修正的方法

mawen1250 写了:example
# 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
1. 输入的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所示。
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。
感謝回复
yan04000985
帖子: 16
注册时间: 2014-06-28 11:33

Re: 想問一下分別在8bit下和如何升到16bit YUV 4:4:4後Chroma bleeding修正的方法

mawen1250 写了:example
# 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
1. 输入的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所示。
2. 各个plane转到GRAY8,对Y用aSobel和aBlur获得edge map,再用Y的edge map对U、V进行awarp处理。
3. YUV合并后,处理的结果作为ref对src16进行限制,从而保留未处理部分的16bit精度。
使用後部分線條/邊緣完全消失 這是正常的?

图片
图片

图片
图片

回到 “AviSynth”