JPG-JPEG(JFIF)文件解码—YCbCr与RGB

YCbCr,是色彩空间的一种,通常会用于影片中的影像连续处理,或是数字摄影系统中。Y为颜色的亮度luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。Y就是所谓的流明luminance),表示光的浓度且为非线性,使用伽马修正(gamma correction)编码处理。

Y'CbCr不是一种绝对的色彩空间,是一种针对RGB资讯所做的编码。真正的颜色显示是根据实际RGB色盘(colorant)来决定的。因此Y'CbCr所表示的值只有在标准RGB色盘或是ICC数据(ICC profile)有提供的时候才能计算。

YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。YCbCr的Y与YUV中的Y含义一致,Cb和Cr与UV同样都指色彩,Cb指蓝色色度,Cr指红色色度,在应用上很广泛,JPEG、MPEG、DVD、摄影机数字电视等皆采此一格式。因此一般俗称的YUV大多是指YCbCr。

以下是转化时用到的常量:

Cred = 0.299

Cgreen = 0.587

Cblue = 0.114

一、YCbCr 转 RGB

R = Cr * (2 - 2*Cred) + Y + 128

B = Cb * (2 - 2*Cblue)+ Y + 128

G = (Y - B * Cblue - R * Cred) / Cgreen

快速转换:

R = Y + 1.14 * Cr + 128

B = Y + 2.032 * Cb + 128

G = Y - 0.395 * Cb - 0.581 * C人 + 128


二、RGB 转 YCbCr

Y = Cred * R + Cgreen * G + Cblue * B
Cb = (B - Y) / (2 - 2*Cblue)
Cr = (R - Y) / (2 - 2*Cred)

快速转换:
Y = 0.299 * R + 0.587 * G + 0.114 * B
Cb = -0.147 * R - 0.289 * G + 0.436 * B
Cr = 0.615 * R - 0.515 * G - 0.100 * B

你可能感兴趣的:(Notice)