『漫游』酷论坛>『影音数码技术学习交流』>[请教]关于色彩空间的 ..

大虾@2006-04-02 15:23

我很早以前翻译的东西
引用

颜色格式
在最近十年中,视频工程师发现人眼对色度的敏感程度要低于对亮度的敏感程度。在生理学中,有一条规律,那就是人类视网膜上的视网膜杆细胞要多于视网膜锥细胞,说得通俗一些,视网膜杆细胞的作用就是识别亮度,而视网膜锥细胞的作用就是识别色度。所以,你的眼睛对于亮和暗的分辨要比对颜色的分辨精细一些。正是因为这个,在我们的视频存储中,没有必要存储全部颜色信号。既然眼睛看不见,那为什么要浪费存储空间(或者说是金钱)来存储它们呢?
像Beta 或VHS 之类的消费用录像带就得益于将录像带上的更多带宽留给黑—白信号(被称作“亮度”),将稍少的带宽留给彩色信号(被称作“色度”)。
亮度信号经常被称作Y,色度信号是由两个互相独立的信号组成,但是色度信号经常被调制在一起构成波形存储在磁带上。视颜色系统和格式不同,两种色度信号经常被称作U和V 或Pb 和Pr 或Cb 和Cr。这些都是由不同的编码格式所产生的,但是实际上,他们的概念基本相同。在DVD 中,色度信号被存储成Cb 和Cr(C 代表颜色,b 代表蓝色,r 代表红色)。
译注:C=Color,b=blue,r=red.
在MPEG2(也就是DVD 使用的压缩格式)当中,Y、Cb、Cr 信号是分开储存的(这就是为什么分量视频传输需要三条电缆)。其中Y 信号是黑白信号,是以全分辨率存储的。但是,由于人眼对于彩色信息的敏感度较低,色度信号并不是用全分辨率存储的。
译注:全分辨率=full resolution
色度信号分辨率最高的格式是4:4:4,也就是说,每4 点Y 采样,就有相对应的4 点Cb 和4 点Cr。换句话说,在这种格式中,色度信号的分辨率和亮度信号的分辨率是相同的。
这种格式主要应用在视频处理设备内部,避免画面质量在处理过程中降低。当图像被存储到Master Tape,比如D1 或者D5,的时候,颜色信号通常被削减为4:2:2。
译注: Master Tape=原版影片,母带。
其次就是4:2:2,就是说,每4 点Y 采样,就有2 点Cb 和2 点Cr。在这种格式中,色度信号的扫描线数量和亮度信号一样多,但是每条扫描线上的色度采样点数却只有亮度信号的一半。当4:2:2 信号被解码的时候,“缺失”的色度采样,通常由一定的内插补点算法通过它两侧的色度信息运算补充。
色度信号分辨率最低的格式,也就是DVD 所使用的格式,就是4:2:0 了。事实上4:2:0是一个混乱的称呼,按照字面上理解,4:2:0 应该是每4 点Y 采样,就有2 点Cb 和0 点Cr,但事实上完全不是这样。事实上,4:2:0 的意思是,色度采样在每条横向扫描线上只有亮度采样的一半,扫描线的条数上,也只有亮度的一半!换句话说,无论是横向还是纵向,色度信号的分辨率都只有亮度信号的一半。举个例子,如果整张画面的尺寸是720*480,那么亮度信号是720*480,色度信号只有360*240。在4:2:0 中,“缺失”的色度采样不单单要由左右相邻的采样通过内插补点计算补充,整行的色度采样也要通过它上下两行的色度采样通过内插补点运算获得。这样做的原因是为了最经济有效地利用DVD 的存储空间。诚然,4:4:4的效果很棒,但是如果要用4:4:4 存储一部电影,我们的DVD 盘的直径至少要有两英尺!
我们的难题到这里就出现了。在播放的时候,我们需要将4:2:0 通过内插补点的方式还原回4:4:4 或者4:2:2。还原的方法有两种——用于交错画面的,和用于非交错画面的。


可见,4:2:0还是有其道理的。
接下来就是小v的问题。因为YV12去掉了一半的颜色信号,再加上人眼对于红色相对比较敏感,所以说会出现看上去有锯齿的现象。
VD因为不支持YV12,必须经过RGB(是32还是24我就不清楚了,不过我记得某人说过是24来的?),所以你在预览窗口看到的图象是很漂亮、没有锯齿的图象。话说回来,那个“属性”里面的东西……貌似是输入的属性,至于VD/VDM在预览窗里面输出些什么东西,我也不清楚 囧。从你顶楼贴的那两张图来看,貌似锯齿都不轻……
YV12撇了一半的颜色信息没损才怪,不过,你为了预览的时候漂亮一点,而把颜色空间转换来转换去,不觉得会带来更大的损失么?
决定我们看到的效果的,是解码器->显卡的4:2:0->4:2:2->4:4:4转换的算法。如果这个算法不够好或者是使用错误(就像那篇文章中说的,交错和非交错作Up Sampling),就很可能造成很多问题(比如CUE)或者导致输出的画面不够理想,至于你选择怎样输出,则决定是了显卡做Up Sampling还是软件做Up Sampling。所以,要保证DVD->中间处理->XviD这个过程尽量减少损失、保证解码时输出最接近DVD颜色的数据进行Up Sampling就成了全程YV2的意义所在。

说到解码器,XviD的解码设定里面,是可以选择输出的颜色空间的。你不妨用XviD解码,选择RGB输出试试看效果如何。我没有这个的ISO,所以也不好说了,一切看实验结果。

另外,你把压出来的“有锯齿”的AVI交给SS大的HQMP播放试试看,看看效果是不是有问题。毕竟,走Overlay会受到太多影响,不便于得出结论。

还有,小v可以试试M2V解码、DVD2AVI解码(我废话,现在DVD2AVI的VFAPI插件输出要走RGB、M2V解码进AVS要走VFAPI也是RGB 囧),应该是没有问题的。
引用

vempx@2006-04-02 15:39

感谢大虾
我用了ss的HQMP播放,锯齿还是有的,他本人说很正常,以后改进 囧
XviD改颜色空间我会去试一下的~ XD
至于用M2V或者DVD2AVI,走了RGB先不说是否有损,不过,XviD内部储存的数据还是Y12,怎么折腾到了XviD这里还是变成了YV12,前面这些工作有意义么?

至于我在AVS里转colorspace不是为了预览里看的好看,我一直以为预览看到的就是最后得到的画面(想Word一样:)),看来错的很离谱,纠正了错误观点了,囧rz
引用

大虾@2006-04-02 15:52

引用
最初由 vempx 发布
感谢大虾
我用了ss的HQMP播放,锯齿还是有的,他本人说很正常,以后改进 囧
XviD改颜色空间我会去试一下的~ XD
至于用M2V或者DVD2AVI,走了RGB先不说是否有损,不过,XviD内部储存的数据还是Y12,怎么折腾到了XviD这里还是变成了YV12,前面这些工作有意义么?

至于我在AVS里转colorspace不是为了预览里看的好看,我一直以为预览看到的就是最后得到的画面(想Word一样:)),看来错的很离谱,纠正了错误观点了,囧rz


手动IVTC,只要经过TMPGEnc就只能走VFAPI……无论怎么弄都还是逃不出VFAPI的掌心的。
DGIndex的解码BUG多多,所以我就比较习惯用DVD2AVI了。M2V也不错,用的人也不少,只不过他那个颜色伸张还是压缩的选项我还没弄明白,实在是不敢用。所以……只剩下DVD2AVI了。
引用

vempx@2006-04-02 16:11

DVD2AVI要走VFAPI.....Orz....颜色有损吧
DGIndex不是在DVD2AVI的基础上改进的么?都有那些Bug啊?
另外如果要在AVS里通过VFAPI加载DVD2AVI出来的D2V,脚本应该怎么写?

另外最近还在苦恼一个事情,就是DVDRIP最后输出分辨率的问题
最早是按照ss大的AE=0方案来做的,在AU里切711 然后resize864 在切到848
不过现在有点疑惑了
首先要走AU就要经过VFAPI,转了一次RGB,颜色有损了,再一个就是横向不是32的倍数,会造成Overlay启动不能的危险,最早的时候还是挺稀饭848x480这个分辨率的,够大!看着够爽!细细也挺稀饭这个大分辨率的做法.不过我现在感觉困惑了Orz,为了放大,走一次RGB损颜色到底值不值啊.话说其他组的DVDRIP貌似没出过这么大分辨率的版本......
引用

大虾@2006-04-02 16:29

LoadVFAPIPlugin("F:\gk\TMPGEnc Plus-2.521.58.169\TMPGEnc.vfp","Source")
Source("12.tpr")

DVD2AVI也同理

灭哈哈哈哈~值不值得?自己衡量。自己认为值就是值,自己认为不值就是不值。我要是跟你说是什么的话,就成了把我的价值观强加给别人了。
引用

vempx@2006-04-02 16:31

倒不是值不值的问题 囧rz
顺便,M2V这个工具的全名叫什么?
引用

大虾@2006-04-02 16:36

昏死……你回帖真快,刚想说overlay的问题。
Silky写那个帖子的时候比较早,所以可能到现在有些不适用。ss说,除非显卡驱动不支持,否则只要2mod即可overlay。848*480纵、横都是16mod,所以完全没有问题。

M2V的全称是MPEG-2 VIDEO VFAPI Plug-In,vempx会日语,应该能在google上面搜索到吧。
引用

vempx@2006-04-02 16:41

嗯?? 这么说M2V也是走VFAPI咯?
Orz RGB...........
其实现在我知道了播放时的锯齿和前面颜色转换的关系不大了........
不知道走了RGB色彩损失有多大...
引用

MeteorRain@2006-04-02 16:49

引用
最初由 vempx 发布
话说其他组的DVDRIP貌似没出过这么大分辨率的版本......
我是切掉边以后直接resize到848*480的,虽然AE不一定为0,不过那点AE我如果不说,估计没人能看出来……囧
至少能避免rgb色彩空间转换,压制速度快多了,质量也有微量提升~
引用

vempx@2006-04-02 17:01

不知道大虾说的DGIndex的Bug都有哪些
假如用DVD2AVI的话 用AVS打开VFAPI,载入D2V
再用AU打开这个AVS,中间只走了一次RGB吧~
我想的是既然要做成848x480的,就干脆做成AE=0的~.....囧
引用

adamhj@2006-04-02 17:58

既然要走RGB的话,YV12的损失都可以忽略了吧- -...

我理解vempx最开始的想法是直接用avs载入d2v工程然后作IVTC的,中间全程都是YUV的才需要考虑作IVTC的时候的colorspace的问题,如果要走RGB的话..那就随意了吧..- -||||

为啥日系的视频处理软件都爱用RGB阿...因为编程起来好偷懒么...
引用

vempx@2006-04-02 18:21

差不多就是这个意思
不过现在还有几个问题
大虾说DGIndex的Bug多多,都有什么Bug啊?
另外如果用DVD2AVI来生成D2V通过VFAPI加载,则是RGB,如果要用IT的话,还要转空间到YV12或者YUY2,这个真是画蛇添足啊........
如果知道了DGIndex都有什么Bug,那么就可以决定是否再继续用它了
引用

adamhj@2006-04-02 18:52

引用
最初由 vempx 发布
差不多就是这个意思
不过现在还有几个问题
大虾说DGIndex的Bug多多,都有什么Bug啊?
另外如果用DVD2AVI来生成D2V通过VFAPI加载,则是RGB,如果要用IT的话,还要转空间到YV12或者YUY2,这个真是画蛇添足啊........
如果知道了DGIndex都有什么Bug,那么就可以决定是否再继续用它了


为啥要用vfapi加载?大虾的意思应该是说如果你要用tmpgenc作ivtc的话必须从vfapi走,但是如果你只是准备用IT的话那根本就没必要走vfapi,直接mpeg2dec加载dvd2avi的d2v工程就可以了
引用

vempx@2006-04-02 19:00

Mpeg2Dec这个我找不到 Orz
引用

wolfsoft@2006-04-02 19:14

引用
最初由 vempx 发布
Mpeg2Dec这个我找不到 Orz


http://www.avisynth.org/warpenterprises/

只支持1.77,1.9以上没有avs插件了.看来jackie是铁了心走VFAPI路线了
引用

«1234»共4页

| TOP