跳至主要内容

RGB and YCbCr Color Space

In brief, color space is a model representing color information, and there are many color spaces. RGB color space is more familiar to us. These are the three additive primary colors of light, any color may be reproduced by combining varying proportions of red, green and blue light. Because the three components have roughly equal importance to the final color, RGB system usually represents each component with the same precision (same number of bits).

However, RGB is not necessarily the most efficient representation of color. The human visual system is less sensitive to color than to luminance (brightness), but RGB color space does not provide an easy way to take advantage of this since each component is equally important, and the luminance is present in all three color components. It is possible to represent a color image more efficiently by separating the luminance from the color information.

Here comes the YCbCr color space. Y represents luminance component (i.e. brightness), and is a weighted average of R, G, and B.

Y = kr*R + kg*G + kb*B (Note that: kr + kg + kb = 1)

Cb = B – Y

Cr = R – Y

Cb and Cr are chrominance components which represent the variation between the color intensity and the background luminance of the image. In the equation, kr, kg and kb are coefficients pre-defined, and their values are related to the experiment result of our visual system. I have seen two versions about this set of coefficients, though they are slightly different, they still have similar scales, which can only lead to slightly different visual results that may not be perceived.

We can use equation above to convert RGB to YCbCr, on the contrary, we can also convert it back to RGB. The player we will build need this conversion.

ITU-R recommendation BT.601 defines kb = 0.114 and kr = 0.299. Substituting into equations above gives the following widely-used conversion equations:

(RGB->YCbCr)

Y = 0.299R + 0.587G + 0.114B

Cb = 0.564(B-Y)

Cr = 0.713(R-Y)

(YCbCr->RGB)

R = Y + 1.402*Cr

G = Y – 0.344*Cb – 0.714*Cr

B = Y + 1.772*Cb

part of materials in this section are referrenced from the book "H.264 and MPEG-4 video compression" by Iain E.G. Richardson

评论

此博客中的热门博文

反转剧

这两天明显感到天气转冷,呱呱的家里也已经下起了大雪,南京则是阴冷潮湿,让人没有了出行的欲望。没想到躲在被子里看反转剧也成了度过寒冬的一剂良药。在PPLive越来越让人失望的时候,PPStream横空出世,虽然广告仍是少不了的主题,但从视频质量和播放连续性上来说都超过PPLive,实为居家必备之良品(由此可见,新事物一定会战胜旧事物......)。韩国的反转剧最近似乎比较流行,称之为反转剧就在于其结果总是让人出乎意料,不合常理,其间又不乏各种搞怪搞笑的镜头,各种当红帅哥美女也一定让DDMM们爱不释手,20~30分钟一集的剧情一改韩剧拖沓的风貌,想看就看,容易切入。 反转剧,今天你看了吗?

羊头与狗肉?

昨天买了一个路由器, 顺带两根网线。我非常自信地跟售货员说:我要两根交叉线!因为在网络里要把路由器当作一台计算机,计算机与Hub,交换机相连时用直通线,与路由器则要交叉线,这可是在IP Training里的,难道有错?售货员非常不屑地望着我:你是要接路由器吧?我说是啊,她说:那就得用直通线。噢,My God,理论与实际有这么大的差距么? 半信半疑地拿回家,开始装东东,ping通了路由器,证明售货员是对的。进入路由器的设置,被一堆设置弄得云里雾里,捣鼓了半天,感觉这不像是路由器,更像一个混血产品:宽带自动拨号+DHCP服务+防火墙+静态路由。Oh My,我倒宁愿认为这是个交换机而已,在一个交换机才50来块钱,加点东东就到近100块了。买的是羊头还是狗肉?我不知道。 P.S. 昨天中午送走了老妈三人组,在车开的那一刻,老妈竟隔着窗户奇迹般地来了几个飞吻,这让我和呱都乐开了,也免去了离别的伤感。但是回到家,原来热热闹闹的屋子变得冷冷清清,孤单地,我们再次上路。

夜宴

忙和了一整天,在家做了一餐饭,邀同事们吃了一顿,这种感觉真好。 据说,只是据说...我可以去开馆子了,哈哈哈哈...... 可惜,等我想到要拍下来的时候,已经只剩盘底了...... ^_^!!