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

请教几个高色深的问题 (已解决)

用摄像机拍摄了一些素材 格式为8bit rgb TIFF 序列
因为avs里多数滤镜都是yuv色彩空间里处理的 所以这里有一些转换问题希望能请教一下各位菊苣
首先是转换为yuv 我选择了yv24 matrix为ycgco 转换用的Dither_convert_rgb_to_yuv(lsb=true,matrix="ycgco",output="yv24")
到这一步为止应该都是无损的了 得到了stack 16bit的结果 然后之后的步骤就出现了问题 首先我想使用smdegrain进行降噪 但是smdegrain的lsb_in=true是先把16bit降为8bit再来处理这样不就有损了吗 要保持无损至少要不低于10bit 这是第一个不知道怎么解决的问题 (smdegrain不支持yv24我想到的就是先把luma转化为yv12进行处理再来merge yv24的chroma 但这里都是stack 16bit 不知道直接用mergechroma有没有问题) 第二点就是我还希望使用一下g_mask来逐渐减弱对暗处的降噪强度 但是taro大写的masktools都是8bit下的用法 如果直接按照8bit的用法来使用会有问题吗? 最后还要一点问题就是如何使用8bit的滤镜同时保持16bit的精度 比如在前两个的问题都解决的前途下 得到的就是降噪后的stack 16bit结果 然后我想稍微用一点awarpsharp 正确做法之一就是先down10 (8)然后再用再编码为8bit 但是我希望还是能继续前面的无损最后编码为10bit 难道这里只能先降成8bit再升到16bit再降为10bit吗 这里又经历了一次降8bit就明显又有损了 不清楚应该怎么办 主要就是这几个问题了 希望菊苣可以回答 {:cat_16}
上次由 feisty2 在 2013-05-17 21:37,总共编辑 1 次。
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 请教几个高色深的问题

mvtools2只支持YV12和YUY2,把YV24的YUV分开来直接处理也是不行的,因为MC降噪时YUV的ME结果会互相影响(如果MAnalyse的chroma=false那么UV不会影响到Y)。一个简单hack的办法:第一个clip用原始的Y和缩到1/4的UV组成YV12进行降噪,第二个clip用放大到4倍的Y和原始的UV组成YV12进行降噪,然后取第一个clip的Y和第二个clip的UV,用UtoY8、VtoY8和YtoUV把三个平面重新合在一起。如果只需要对Y降噪的话就去掉第二步。
MDegrain只能接受8bit输入,可以16bit输出,常见降噪滤镜里也就dfttest支持16bit输入输出,但是论效果后者通常也比不上MC降噪。所以要么不降噪,要么就先用error diffusion质量好的dither方法降到8bit再给MDegrain处理,经过high bit depth的降噪处理以后diffusion的结果是能保留的。

至于mt_merge的功能,对应16bit下有Dither_merge16和Dither_merge16_8,具体请看dither tools的documents。

一定要往16bit的clip上用8bit滤镜同时保留未被处理部分的16bit信息也是有办法的,在dither的documents里也有例子,基本原理就是在8bit下使用滤镜然后用mt_lutxy比较处理前后改变的部分并以此为依据生成mask(改变的部分为255,未改变的部分为0),然后用Dither_merge16_8将原始的16bit clip和在8bit下处理后升到16bit的clip进行merge,改变的部分取后者,未改变的部分取前者。

另外还有利用Dither_limit_dif16来减小对16bit clip做8bit处理损失的办法:
source_16 = last
source_8 = last.DitherPost(mode=6)
filtered_8 = source_8.XXXFilter_8bit()
filtered_8_to_16 = filtered_8.Dither_convert_8_to_16()
source_16.Dither_limit_dif16(filtered_8_to_16, thr=1.0, elast=2.0, Y=3, U=3, V=3)
上次由 mawen1250 在 2015-04-28 21:23,总共编辑 4 次。
fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: 请教几个高色深的问题

feisty2 写了:用摄像机拍摄了一些素材 格式为8bit rgb TIFF 序列
因为avs里多数滤镜都是yuv色彩空间里处理的 所以这里有一些转换问题希望能请教一下各位菊苣
首先是转换为yuv 我选择了yv24 matrix为ycgco 转换用的Dither_convert_rgb_to_yuv(lsb=true,matrix="ycgco",output="yv24")
到这一步为止应该都是无损的了 得到了stack 16bit的结果 然后之后的步骤就出现了问题 首先我想使用smdegrain进行降噪 但是smdegrain的lsb_in=true是先把16bit降为8bit再来处理这样不就有损了吗 要保持无损至少要不低于10bit 这是第一个不知道怎么解决的问题 (smdegrain不支持yv24我想到的就是先把luma转化为yv12进行处理再来merge yv24的chroma 但这里都是stack 16bit 不知道直接用mergechroma有没有问题) 第二点就是我还希望使用一下g_mask来逐渐减弱对暗处的降噪强度 但是taro大写的masktools都是8bit下的用法 如果直接按照8bit的用法来使用会有问题吗? 最后还要一点问题就是如何使用8bit的滤镜同时保持16bit的精度 比如在前两个的问题都解决的前途下 得到的就是降噪后的stack 16bit结果 然后我想稍微用一点awarpsharp 正确做法之一就是先down10 (8)然后再用再编码为8bit 但是我希望还是能继续前面的无损最后编码为10bit 难道这里只能先降成8bit再升到16bit再降为10bit吗 这里又经历了一次降8bit就明显又有损了 不清楚应该怎么办 主要就是这几个问题了 希望菊苣可以回答 {:cat_16}
有一点借这个帖子问一下。
转换yv24这样是无损的么
Dither_convert_rgb_to_yuv(lsb=true,matrix="ycgco",output="yv24",tv_range=ture)
还是应该
Dither_convert_rgb_to_yuv(lsb=true,matrix="ycgco",output="yv24",tv_range=false)
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 请教几个高色深的问题

► 显示剧情透露 旧的回答
2015.01.27 Edit
按照ITU-R H.264/H.265标准文档中Color Matrix部分的定义,YCgCo的bit depth是在RGB阶段就确定的,转换为YCgCo时分为两种方式:
1. Y、CgCo的bit depth等于RGB的bit depth;
2. 以及Y等于RGB的bit depth、CgCo比RGB的bit depth大1。
也就是说,按照定义,从编码前,到播放后,YCgCo色彩空间在转换到RGB色彩空间之前,都不应该被进行bit depth的转换。
上次由 mawen1250 在 2015-01-27 22:16,总共编辑 2 次。
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: 请教几个高色深的问题

感谢菊苣的回答 那就先不降噪好了 其他的现在就来尝试一下
头像
Billy Herrington
帖子: 83
注册时间: 2013-01-09 9:54

Re: 请教几个高色深的问题

mawen1250 写了:一个简单hack的办法:第一个clip用原始的Y和缩到1/4的UV组成YV12进行降噪,第二个clip用放大到4倍的Y和原始的UV组成YV12进行降噪,然后取第一个clip的Y和第二个clip的UV,用UtoY8、VtoY8和YtoUV把三个平面重新合在一起。
mvtools does block-based estimation. Thus such a hack might not keep same strength/threshold for Y and UV, unless you have found a fine pel precision for each plane, which I should say is nearly impossible now, as pel must be 2^x. Anyway, not a bad idea for SD. For HD, one would rather do some hack on mvtools to make it support YV24 natively instead of using such a large block searching on luma.

Another useful idea is quite simple: do a multi-level search. Use a downsized clip as first-level, refine the vector with a larger clip as second-level, again refine the vector with a even large clip as third-level, recursively.... With such refining you can get exact same pel precision for Y and UV even you simply use luma to build the first-level and refines it on chroma, thought such a method is more reputed to be a stable vector builder for extremely grainy sources with a block-based motion estimation.

mawen1250 写了:但是在对PC Range的YCgCo进行bit depth转换时用的应该是TV Range的转换方法——bit shift,所以如果对其使用Down10、U10或U16时不应该指定tvRange=false。
Don't know where you've got this. Never documented. Any tool or any one working in this way does not necessarily mean it is correct, even if it seems to be sane.

feisty2 写了:第二点就是我还希望使用一下g_mask来逐渐减弱对暗处的降噪强度 但是taro大写的masktools都是8bit下的用法 如果直接按照8bit的用法来使用会有问题吗?
I don't think he limits his tutorial only in masktools. In that thread one of the key thoughts is merging two clips using the given value of the mask clip to control weight/alpha. There is no bit depth limitation in this thought.


Generally, YCgCo is not something good for filtering. It is known as a meaningful try rather for compression than for processing. Again as you've already made up your mind to do some lossy filtering, there is little meaning to use YCgCo just for some placebos such as the concept of lossless. And if you're really addicted to the benefits of high depth or even floating-point filtering, or some terms referring to, uh, lossless, give VapourSynth a shot, seriously.
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: 请教几个高色深的问题

嗯..降噪这里有点损失也没有办法嘛 但是mdegrain不支持16bit输入我也就没有用降噪了...损失最大的一步就没有了...其他除了warpsharp会不会带来损失不清楚 应该整个过程是完全无损的吧 最后我都是用的qp=0进行的无损编码 整个应该没有大问题吧... (反正我现在有的是硬盘空间...还有10TB的硬盘组没用...所以能无损的就无损吧...这个想法对我个人的这种情况应该没有什么问题吧...)
头像
Billy Herrington
帖子: 83
注册时间: 2013-01-09 9:54

Re: 请教几个高色深的问题

Most filters are lossy, and warsharp is definitely one of them.
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: 请教几个高色深的问题

feisty2 写了:嗯..降噪这里有点损失也没有办法嘛 但是mdegrain不支持16bit输入我也就没有用降噪了...损失最大的一步就没有了...其他除了warpsharp会不会带来损失不清楚 应该整个过程是完全无损的吧 最后我都是用的qp=0进行的无损编码 整个应该没有大问题吧... (反正我现在有的是硬盘空间...还有10TB的硬盘组没用...所以能无损的就无损吧...这个想法对我个人的这种情况应该没有什么问题吧...)
当我们说到「lossless」的时候,我们指的更多的是「原汁原味」、「完美重现」这样的意思
也就是说,「最终的文件」应该和「最初的文件」有「(几乎)完全一样」的内容,才叫做「无损」

也就是说,除了色彩空间无损转换、IVTC和无损压缩以外,任何其他的东西都可以看做是有损的。比如最典型的,降噪,锐化,调色,收线条,等等。
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: 请教几个高色深的问题

msg7086 写了:比如最典型的,降噪,锐化,调色,收线条,等等。
颜色调节里的曲线调整应该是无损的

回到 “AviSynth”