分页: 1 / 1

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

发表于 : 2015-02-25 4:26
yan04000985
希望有損失較少的方法 想請教一下詳細使用方法和附上例子
Thanks

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

发表于 : 2015-02-26 12:39
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精度。

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

发表于 : 2015-02-26 20:45
alexz220
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()的区别?

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

发表于 : 2015-02-27 21:39
mawen1250
readme里都有写

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

发表于 : 2015-02-27 22:41
alexz220
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)) 结果基本一样?

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

发表于 : 2015-02-28 22:56
mawen1250
我忘了那是什么了,反正我这里分离是为了用Y生成edge mask,用于处理UV。
另外一种分离的情况就是用aWarp4。

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

发表于 : 2015-03-03 12:49
yan04000985
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精度。
感謝回复

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

发表于 : 2015-03-06 19:22
yan04000985
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精度。
使用後部分線條/邊緣完全消失 這是正常的?

图片
图片

图片
图片

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

发表于 : 2015-03-06 20:50
mawen1250
你觉得处理强度太大的话可以调整awarpsharp的相关参数