分页: 1 / 2

想问一下Chroma Shift

发表于 : 2014-08-19 17:00
lwjkk666
有没有地图炮类型Chroma Shift滤镜之类的插件,想请教一下具体使用方法

Re: 想问一下Chroma Shift

发表于 : 2014-08-24 17:36
dgwxx
马文那些不就挺好么

Re: 想问一下Chroma Shift

发表于 : 2014-08-24 21:57
lwjkk666
恕我眼拙,翻了整个论坛帖子也没有找到相关资料。。。。
在wiki那边只找到ChromaShift.DLL这个插件
用了ChromaShift(C=-2,L=1)。没效果。。。

Re: 想问一下Chroma Shift

发表于 : 2014-08-25 22:46
mawen1250
分平面用Resize实现subpixel精度的shift

Re: 想问一下Chroma Shift

发表于 : 2014-09-08 5:23
望月凝香
mawen1250 写了:分平面用Resize实现subpixel精度的shift
虽然知道你说的是哪个,但是可以的话还是给个链接?最好给下函数名,方便提问者。
小小抱怨一个,坛子里的搜索不是那么好用,翻帖子太累了。读文档也是==!
我懒,表打我~

Re: 想问一下Chroma Shift

发表于 : 2014-09-08 10:45
mawen1250
# Parameters for chroma shift, example for converting MPEG-1 chroma placement to MPEG-2 chroma placement
U_Horizontal_Shift = -0.25
U_Vertical_Shift = 0
V_Horizontal_Shift = -0.25
V_Vertical_Shift = 0

# 8bit YUV input

# Separate planes
Y = last
U = UToY8()
V = VToY8()

# Use resizer to achieve sub-pixel precision shift for each plane
U = U.Spline16Resize(U.Width(), U.Height(), U_Horizontal_Shift, U_Vertical_Shift)
V = V.Spline16Resize(V.Width(), V.Height(), V_Horizontal_Shift, V_Vertical_Shift)

# Merge planes back to YUV format
YToUV(U, V, Y)
我只是说了处理思路而已,具体实现靠avs内置滤镜就可以,如果我自己的话会用Dither_resize16做16bit精度的处理。

上面的例子里的参数设置是针对源制作时错误地使用MPEG-1 chroma placement的情况(而SD、HD的标准,以及播放器都是按照MPEG-2 chroma placement进行chroma subsampling和chroma upsampling的),由于MPEG-1的chroma是center align而MPEG-2的chroma是left align,所以播放的结果是chroma向左偏移0.25像素(4:2:x下对应luma的0.5像素),那么用resize向右移0.25像素就可以了。
有这种错误的典型是JC的一系列动画,从LB、LBRF、LBEX,到龙虎,到魔禁超炮,到夏娜全部都有这个问题。

有关chroma subsampling更多的问题可以参考这贴

Re: 想问一下Chroma Shift

发表于 : 2014-09-10 9:22
望月凝香
那么除了经验(如JC)有什么分析chroma shift的方法么?对于那些老DVD的严重shift肉眼判断即可,但是对于0.25pix的shift经验不足啊……

Re: 想问一下Chroma Shift

发表于 : 2014-09-10 20:37
mawen1250
PointResize到400%(AvsPmod里直接右键就有),然后做对比慢慢试

Re: 想问一下Chroma Shift

发表于 : 2014-09-11 12:52
望月凝香
……
谢谢了。

Re: 想问一下Chroma Shift

发表于 : 2014-09-18 19:22
alexz220
mawen1250 写了:[syntax="avisynth"]# Parameters for chroma shift, example for converting MPEG-1 chroma placement to MPEG-2 chroma placement
U_Horizontal_Shift = -0.25
U_Vertical_Shift = 0
V_Horizontal_Shift = -0.25
V_Vertical_Shift = 0

# 8bit YUV input

# Separate planes
Y = last
U = UToY8()
V = VToY8()

# Use resizer to achieve sub-pixel precision shift for each plane
U = U.Spline16Resize(U.Width(), U.Height(), U_Horizontal_Shift, U_Vertical_Shift)
V = V.Spline16Resize(V.Width(), V.Height(), V_Horizontal_Shift, V_Vertical_Shift)

# Merge planes back to YUV format
YToUV(U, V, Y)[/syntax]
我只是说了处理思路而已,具体实现靠avs内置滤镜就可以,如果我自己的话会用Dither_resize16做16bit精度的处理。

上面的例子里的参数设置是针对源制作时错误地使用MPEG-1 chroma placement的情况(而SD、HD的标准,以及播放器都是按照MPEG-2 chroma placement进行chroma subsampling和chroma upsampling的),由于MPEG-1的chroma是center align而MPEG-2的chroma是left align,所以播放的结果是chroma向左偏移0.25像素(4:2:x下对应luma的0.5像素),那么用resize向右移0.25像素就可以了。
有这种错误的典型是JC的一系列动画,从LB、LBRF、LBEX,到龙虎,到魔禁超炮,到夏娜全部都有这个问题。

有关chroma subsampling更多的问题可以参考这贴
求教16bit处理脚本,是U = U.U16.Dither_resize16(U.Width(), U.Height(), U_Horizontal_Shift, U_Vertical_Shift).DitherPost,
还是16bit下merge planes(16bit版YtoUV?)?