RGB 转换至 YCbCr (YUV) 的计算公式

原文地址:http://qiuye.iteye.com/blog/626462

对于每个取样点的 R,G,B 值, 在转换到 YUV colour space 时, 首先定义画面的平均亮度值(Luminance), Y, 其计算公式为:


Y = kr*R + kg*G + kb*B
kr, kg, kb 为 weighting factors (加权因数), kr + kg + kb = 1 恒定.
(其中, ITU-R BT.601 定义 kb = 0.114 和 kr = 0.299)

然后定义 Cr, Cg, Cb 为颜色强度 (colour intensity) 与这个 luminance 的差值:

Cb = B − Y
Cr = R − Y
Cg = G − Y

这时对于一个取样点, 完整的信息被保存于 Y, Cb, Cr, Cg 四个变量里, 此时相对于 RGB colour space 的三个变量值, 这样的计算公式还没有优势.

但由于 Cb + Cr + Cg 是个常数, 我们可以用其中两个变量来表达原来所需的三个, 并且在数据的贮存和传输中也只需使用其中的两个变量. 这样, 就完成了定义 YCbCr colour space 中的三个变量了: Y, Cb, Cr.

一个在 RGB colour space 中取样值的三个变量 R, G, B 在转换为 YCbCr 的公式于是重新 定义/转化 为:

Y = kr*R + (1 − kb − kr )*G + kb*B........ (1)
Cb = 0.5(1 − kb) / (B − Y )
Cr = 0.5(1 − kr) / (R − Y )
然后再用公式 (1) 代换 Y, 得到仅含 R,G,B 的 Cb, Cr 函数 (kr,kb 视为常数)

作简单的代数也可以求出从 YCbCr 转换至 RGB 的公式:

R = Y + (1 - kr)*Cr/0.5
G = Y - [kb*(1 - kb)*Cb]/ [0.5*(1 - kb - kr)] - [kr*(1 - kr)*Cr]/ [0.5*(1 - kb - kr)]
B = Y + (1 - kb)*Cb/0.5

代入 ITU-R BT.601 定义的 kb = 0.114 和 kr = 0.299
那么 RGB ---> YCbCr 的公式为:

Y = 0.299R + 0.587G + 0.114B........ (2)
Cb = 0.564(B − Y )
Cr = 0.713(R − Y )
同样地, 然后再用公式 (2) 代换 Y, 得到仅含 R,G,B 的 Cb, Cr 函数 (kr,kb 视为常数)

YCbCr ---> RGB 的公式为:

R = Y + 1.402Cr
G = Y − 0.344Cb − 0.714Cr
B = Y + 1.772Cb
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JPEG编码器是一种常用的图像压缩算法,它通过将所提取图像的RGB像素值化为YCbCr或者YUV色彩空间,并对色度图像进行处理来实现。其编码过程主要包括以下步骤: 1. RGBYCbCrYUV转换:将RGB色彩空间中的像素值转换为亮度(Y)和色度(Cb和Cr)分量。通过线性组合来完成转换,其中Y表示亮度,Cb和Cr表示色度,分别代表蓝色和红色与亮度之间的差别。 2. 色度图像的降采样:对Cb和Cr色度分量进行降采样,以减少色度信息的冗余。一般采用4:2:0的采样格式,即Cb和Cr分量的水平和垂直方向上每4个像素只保留一个。 3. 块分割和变换:将图像分成8x8的小块,对每个小块进行离散余弦变换(DCT)。DCT能够将图像中的空域信息转换为频域信息,对于图像压缩来说非常有效。 4. 量化:对DCT变换后的系数进行量化。量化可以减少高频分量的信息量,因为人眼对高频细节不太敏感。量化过程中使用的量化表决定了不同频率分量的减少程度。 5. 霍夫曼编码:使用变长编码对量化后的DCT系数进行编码。通过使用更短的码字来表示高频分量和出现频率较低的系数,以进一步减小数据的体积。 总体而言,JPEG编码器通过将RGB像素值转换YCbCrYUV色彩空间,并对色度图像进行降采样、DCT变换、量化和霍夫曼编码等步骤,实现对图像的压缩。这种编码方式在存储和传输图像时起到了极大的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值