对于每个取样点的 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
Quote: https://bbs.et8.net/bbs/showthread.php?t=501147
分享到:
相关推荐
Ycbcr444转RGB888,图像处理,视频格式转换
该程序支持RGB24bits深度直接转成YUV422./*Y = 0.257*R+0.564*G+0.098*B+16Cb = -0.148*R-0.291*G+0.439*B+128Cr = 0.439*R-0.368*G-0.071*B+128Y = (66 * R(d) / 256) + (144 * G(d) / 256) + (25 * B(d) / 256) + ...
RGB888_YCbCr444
该工具可以根据鼠标的位置来显示该位置的的YUV(YCbCr)RGB值。值可以随着鼠标的移动而相应改变
YCbCr与RGB间转换公式推导.解释不通推导致的公式系数变化情况。
实现RGB24与YUV42互转;实现Ycbcr与RGB互转
RGB TO YCBCR RGB TO YCBCR RGB TO YCBCR RGB TO YCBCR RGB TO YCBCR RGB TO YCBCR RGB TO YCBCR
YUV和RGB 色彩空间 什么是YCbCr ;YUV420P 和 YUV420SP 的区别;YUV和RGB的区别和互相转换
RGB -> YCbCr RGB -> XYZ 选做: 自己实现对 BMP 文件头的读取,并解析 BMP 图像文件。 (2.5 Points) 补充说明 程序从命令行中读取文件路径,并输出 4 个文件,文件名如下: 图像原始文件名-学号-YIQ.bmp 图像原始...
(4 Points) RGB -> YIQ RGB -> HSI RGB -> YCbCr RGB -> XYZ 选做: 自己实现对 BMP 文件头的读取,并解析 BMP 图像文件。 (2.5 Points) 补充说明 程序从命令行中读取文件路径,并输出 4 个文件,文件名如下: ...
\RGB、Lab、YUV、HSI、HSV等颜色空间的区别 如RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上...
图像由RGB空间转换成Ycbcr空间的函数
读入YUV文件一帧图像数据,转换为RGB并显示各分量
dsp程序YCbCr-RGB,直接下载可用
主要功能是实现rgb至ycbcr的转换,将数据存储下来供modelsim仿真用。
RGB_YUV_YCbCr差异1
介绍视频处理过程中涉及到的两个颜色空间:RGB和YCbCr,以及他们之间的转换。用查表法优化媒体播放软件中YCbCr到RGB的转换,以达到提高转换速度,减少计算量,提高视频解码整体性能的Ifl的。
数字RGB与YCbCr颜色空间转换的精度.pdf 图书馆数据库资源
RGB转YUV代码和另外上传的YUV转RGB代码相对应!纯C实现
上边仅给出了理论上的示例,在实际数据存储中是有可能是不同的,下面给出几种具体的存储形式:(1) YUV 4:4:4YUV三个信道的抽样率相同,因此在生成的图像里