Re: 【test】4:2:2 comparison
发表于 : 2012-04-25 18:40
请问下为何要转到rgb呢?06_taro 写了: 順便寫一個avs內16bit下420->422的範例,至少這樣精度應該還是夠高的,雖然是否準確還要看情況:
[syntax lang="avisynth" lines="f"]# Adjust these settings according to your source clip
matrix = "709"
tv_range = true
chroma_p = "MPEG2"
#
Dither_convert_yuv_to_rgb(matrix=matrix,
\ tv_range=tv_range,
\ cplace=chroma_p,
\ chromak="bicubic",
\ output="rgb48y")
r = SelectEvery(3, 0)
g = SelectEvery(3, 1)
b = SelectEvery(3, 2)
Dither_convert_rgb_to_yuv(r, g, b,
\ matrix=matrix,
\ tv_range=tv_range,
\ cplace=chroma_p,
\ chromak="bicubic",
\ lsb=true, output="YV16")
[/syntax]
不能直接 YUV420->YUV444->YUV422吗?
虽然在16bit下YUV-RGB-YUV 没有什么损失
——————————————————————————————————
444->420->444和444->420->444->422->444
显然都是不能还原出原来444的效果
后者由于涉及多次采样,重采样,效果也许比前者还差
如果说有损压缩编码422比420更有效率
那还不如直接用444来压,播放时也不用重采样了(原始分辨率),
不过444比起420,编码速度下降20%,而且对444对显卡的要求比起420高很多倍
(集显HD4250,10bit,1080P, 用madvr渲染,420 40fps 左右,422 25fps 左右,444 5fps 左右)
不过在某处看到有人说,
444和422比起420,在保持主观质量不变的前提下可以减小码率
不知道原理是什么,也好像还没人证明过
做了些测试,源是rgb32,
在avs里转成10bit YUV 444,422和420
420和422默认的chroma-qp-offset和444的不一样
压444时把chroma-qp-offset改为-6(开psy)
x264 crf相同,其他参数也相同,压出来文件的大小总是444>422>420
不过实验样本较少,也不能说明什么
觉得在源是420的情况下,在相同码率有损编码的情况下,
除非422或444出现的瑕疵比420明显减少(或许反而还会增多),
否则422或444只是增加压制的时间和后期播放的负担
用最简单的最邻近插值法做420->444
由于Y没抽样,最终还原出的画面除了红色边缘,也不会看到很明显的锯齿
用其他插值法,不产生锯齿,也会产生ringing
是要锯齿还是ringring,按个人喜好
最后上一些图