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

想问一下Chroma Shift

有没有地图炮类型Chroma Shift滤镜之类的插件,想请教一下具体使用方法
头像
dgwxx
管理猿
帖子: 771
注册时间: 2010-09-19 20:42
联系: 网站

Re: 想问一下Chroma Shift

马文那些不就挺好么
日常推 @dgwxx: 基本没什么技术的话题,欢迎没事看看消遣。
► 显示剧情透露 平庸的rip
► 显示剧情透露 “不知道”的五大理由
lwjkk666
帖子: 321
注册时间: 2012-05-29 13:43

Re: 想问一下Chroma Shift

恕我眼拙,翻了整个论坛帖子也没有找到相关资料。。。。
在wiki那边只找到ChromaShift.DLL这个插件
用了ChromaShift(C=-2,L=1)。没效果。。。
头像
望月凝香
帖子: 40
注册时间: 2013-08-07 17:04

Re: 想问一下Chroma Shift

mawen1250 写了:分平面用Resize实现subpixel精度的shift
虽然知道你说的是哪个,但是可以的话还是给个链接?最好给下函数名,方便提问者。
小小抱怨一个,坛子里的搜索不是那么好用,翻帖子太累了。读文档也是==!
我懒,表打我~
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 想问一下Chroma Shift

# 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更多的问题可以参考这贴
头像
望月凝香
帖子: 40
注册时间: 2013-08-07 17:04

Re: 想问一下Chroma Shift

那么除了经验(如JC)有什么分析chroma shift的方法么?对于那些老DVD的严重shift肉眼判断即可,但是对于0.25pix的shift经验不足啊……
头像
望月凝香
帖子: 40
注册时间: 2013-08-07 17:04

Re: 想问一下Chroma Shift

……
谢谢了。
alexz220
帖子: 115
注册时间: 2012-07-21 17:15

Re: 想问一下Chroma Shift

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?)?

回到 “AviSynth”