色彩格式之RGB与YUV
来源:互联网 发布:拼多多客服软件 编辑:程序博客网 时间:2024/06/17 23:58
一. RGB色彩模型
1.1 色彩模型原理
已有的研究结论表明, 自然界的任意颜色由三种基本颜色混合而成。三基色为: 红(Red),绿(Green), 蓝(Blue)组成, 这是RGB 色彩模型的原理。所以,描述一个颜色可以用R、G、B颜色分量表示.
1.2 色彩空间
色彩空间又称色域,就是某种技术系统所能定义的色彩范围。
计算机领域中,用数字量化的方式表示颜色。以颜色格式RGB888为例,RGB888表示R、G、B每个分量用8bit表示,每个分量的范围就是0~255.所能表示的颜色总数为2^24=16M。它的色彩空间大小是16M。计算机领域中,用像素深度描述,即每像素占的bit数。
1.3 常用颜色格式
计算机系统中,RGB色彩模型常用的格式有RGB565, RGB666, RGB888等。RGB565表示R占5bit,G占6bit,B占5bit;其他格式依此类推。有些时候还会增加Alpha值,在此不多做陈述。
RGB565比RGB888 每pixel所需的存储空间小,占用的带宽也小,同时表示的色域也小。各有适合的应用场景。相互之间是可以兼容的,但是从高色域转到低色域会有色域的损失。
1.4 存储格式
1.5 真彩色/伪彩色/直彩色
真彩色,是指存储时用的R、G、B三基色分量即是显示时用的R,G,B三基色分量;
伪彩色,是指存储时用色彩偏移作为索引,经过查表转换新的R、G、B三基色分量;
直彩色,是指存储时用的R、G、B三基色分量,每个分量分别作为索引,查表转换为显示时用的R,G,B三基色分量;
二. YUV 色彩模型
2.1 色彩模型
已有的研究结论表明,色彩可以用亮度,色调,色彩饱和度来描述。
亮度,色光的明暗程度,用黑色(0%)~白色(100%)度量; 色调,物体反色或者透过物体的颜色,用0~360度的标准色轮度量; 饱和度, 色调中灰色成分所占的比例;
YUV(又成YCrCb)色彩模型,用亮度信号Y和两个色差信号R-Y(U),B-Y(V)表示。Cr描述颜色中红色信号与颜色中亮度信号值之间的差异,Cb描述颜色中蓝色信号与颜色中亮度信号值之间的差异。
2.2 常用的颜色格式
常常听到的YUV格式有YUV444, YUV422, YUV420, YUV411, YUV420P等等。重点描述YUV422, YUV420, YUV420P三种格式。
那YUV格式名字的含义是什么? 444/422/420描述的是Y,U,V三个分量的采样比率。
formatY与UV比率(水平分量)U与V比率(垂直分量)YUV4441:1:11:1YUV4222:11:1YUV4202:11:0或者0:1 重要说明:
1.YUV420并不意味着只有Y,U分量,没有V分量;对于每行扫描来讲,如果某行Y,U,V分量的比率是4:2:0,那么相邻行Y,U,V分量的比率是4:0:2
下面以 宏块2X2像素阵列为例, 可以分析下YUV444, YUV422, YUV420是如何采样的, 码流如何还原到每个像素?
YUV444
原始像素:Y00 U00 V00 Y01 U01 V01 Y02 U02 V02 Y03 U03 V03 <- first line
Y10 U10 V10 Y11 U11 V11 Y12 U12 V12 Y12 U12 V12 <- second line
码流存放: Y00 U00 V00 Y01 U01 V01 Y02 U02 V02 Y03 U03 V03
Y10 U10 V10 Y11 U11 V11 Y12 U12 V12 Y12 U12 V12
像素映射: Y00 U00 V00 Y01 U01 V01 Y02 U02 V02 Y03 U03 V03
Y10 U10 V10 Y11 U11 V11 Y12 U12 V12 Y12 U12 V12
YUV422
原始像素:Y00 U00 V00 Y01 U01 V01 Y02 U02 V02 Y03 U03 V03 <- first line
Y10 U10 V10 Y11 U11 V11 Y12 U12 V12 Y12 U12 V12 <- second line
码流存放: Y00 U00 Y01 V01 Y02 U02 Y03 V03
Y10 U10 Y11 V11 Y12 U12 Y12 V13
像素映射: Y00 U00 V01 Y01 U00 V01 Y02 U02 V03 Y03 U02 V03
Y10 U10 V11 Y11 U10 V11 Y12 U12 V13 Y12 U12 V13
YUV420
原始像素:Y00 U00 V00 Y01 U01 V01 Y02 U02 V02 Y03 U03 V03 <- first line
Y10 U10 V10 Y11 U11 V11 Y12 U12 V12 Y12 U12 V12 <- second line
码流存放: Y00 U00 Y01 Y02 U02 Y03
Y10 V10 Y11 Y12 V12 Y12
像素映射: Y00 U00 V10 Y01 U00 V10 Y02 U02 V12 Y03 U02 V12
Y10 U00 V10 Y11 U00 V10 Y12 U02 V12 Y12 U02 V12
2.3 存储格式
YUV通常的储存格式packed(包)和panar(平面)模式
packet mode(YUV): Y, U, V连续交叉存储;
panar mode(YUV): 先连续存储所有的Y, 再连续存储所有的U,再连续存储所有的V。
三. RGB和YUV的优缺点
YUV相比与RGB的一个大优点是可以减少占用的带宽小。以RGB888, YUV422, YUV420作比较:
format带宽(bit) RGB88824/pixel YUV42216/pixel (32bit/2pixel) YUV4206/pixel (24bit/4pixel) RGB888转到YUV4222, 带宽缩小1/2。 YUV422转换到YUV420, 带宽缩小1/2. 但是效果损失不一样,后者损失更大。
四. 参考信息
http://baike.so.com/doc/5509659.html
http://en.wikipedia.org/wiki/Chroma_subsampling#4:2:0
http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html
- 色彩格式之RGB与YUV
- YUV色彩模型 & YUV与RGB的转换公式 & YUV420的存储格式
- 色彩空间:RGB、YUV与YCbCr
- RGB与YUV格式简介
- YUV与RGB格式转换
- YUV与RGB格式转换
- YUV与RGB格式转换
- YUV与RGB格式转换
- YUV与RGB格式转换
- YUV格式与RGB格式的换算
- H264基本概念之 色彩空间(RGB vs YUV)
- H264基本概念之 色彩空间(RGB vs YUV)
- H264基本概念之 色彩空间(RGB vs YUV)
- H264基本概念之 色彩空间(RGB vs YUV)
- RGB转YUV色彩空间
- 视频与图像RGB/YUV格式详解
- 视频与图像RGB/YUV格式详解
- 视频与图像RGB/YUV格式详解
- UVa 11621 - Small Factors
- SQL小技巧:行列互转,换行,根据条件显示不同内容
- List vs IEnumerable vs IQueryable vs ICollection vs IDictionary
- [ffmpeg 扩展第三方库编译系列] 关于 mingw32 下编译libcaca
- App项目设计开发完整流程
- 色彩格式之RGB与YUV
- nice命令
- leetcode - Sudoku Solver
- POJ2368(巴什博奕变形)
- 金现代工作,常用到的sql语句
- 自动轮播,类似字幕或图片自动滚动播放
- HDU steps 1.3.4 shǎ崽 OrOrOrOrz (int数组快排实现)
- POJ-1986-Distance Queries 解题报告
- 第9周 项目5 程序填充题(2)