RGB/YUV/YCbCr--关于显示,颜色你需要了解的一些事
工作中常听说RGB/YUV/YCbCr 这样一些名词,概念上似乎很混淆?这里是一个简介,部分内容来自wiki,理解不对的地方欢迎指正。
A:首先两个基本概念:
Color model和Color Space.
1. Color Model: 为了表达人眼观察到的颜色,人们从数学模型上定义了一系列不同的color model,我们常见的有RGB,CMYK,YUV,YPbPr/YCbCr。
2. Color Space:为了把这样的Color Model数学模型投射到相应的数学表达,根据对于颜色数据的不同处理方式,存储格式等等,产生了不同的Color Space。
本文主要介绍Color Model。Color Space常常涉及到许多具体的数学操作。两者在概念上有时候也会混淆一谈,倒也无所谓,基本上只有行业内人士才需要严格区分概念。
详细可以参考wiki: http://en.wikipedia.org/wiki/Color_space
B: 常用的Color Model简介:
http://en.wikipedia.org/wiki/Color_models
- RGB在计算机显示中广泛采用(比如LCD,LED),其原色(Primary color)为RGB,是一种加性color model。意思是它是用哪几种光源来投射合成颜色的。几种光源(在纯黑背景上)被混合在一起。也有采用RGBA格式(GPU里面), Alpha代表透明度。
- CMYK在印刷工业中广泛使用,其原色(Primary color)为 cyan, magenta, yellow, key (black)。是一种减性color model。意思是它是用几种墨水混合来表达被(白色背景)反射出来的颜色,以合成人眼需要识别的颜色。
- YIQ在 NTSC 电视系统里面广泛使用。Y为亮度信息,IQ为色度信息。
- YUV在PAL电视系统,以及很多Video 捕捉系统里面使用。Y为亮度信息,UV为色差(Chroma)信息。U/V分别等于blue–luminance/red–luminance。
注:Y’UV vs YUV
(1)Y表示辉度信息(luminance)—或者说是亮度的感知信息
(2)Y’ 表示亮度(Luma)信息—或者说是电子化的亮度信息(和显示系统的硬件信号,比如电压直接相关),
(3)因为人眼对于亮度的感知与实际的显示亮度不是成正比关系的,并不是说亮度增加一倍,人眼感知的亮度就会增加一倍,二者之间有非线性的关系。这个装换就是Gamma矫正。http://en.wikipedia.org/wiki/Gamma_compression
- YPbPr/YCbCr: 是YUV坐标归一化后的一种color model,视频系统里面广泛采用。YPbPr是YCbCr的模拟版本,二者实际上是一回事,只是用于模拟和数字格式而已。
C:各种颜色模式之间的恩恩怨怨:
- YIQ和YUV之间的关系: YIQ color space 相对YUV color space旋转 33°。
- YUV与YPbPr/YCbCr:历史上,YUV被用于电视系统PAL (NTSC里面使用YIQ,是YUV color space的变种,见上文 )的颜色信号的模拟编码;YPbPr/YCbCr 则被用于视频和静态图像处理系统中的颜色编码(例如MPEG/JPEG)。如今,随着两种系统在网络时代的融合,YUV常常被混用于描述被YCbCr编码之后的文件格式 (比如,从ISP输出的数据格式)。
- 在DVD时代,很多DVD厂商拿YPbPr来表达“逐行扫描”,YCbCr来表达“隔行扫描”,这里无论YPbPr还是YCbCr都是和CRT的扫描方式有关,都是模拟信号--其实和Color model完全不是一码事。属于偷换概念。
D:实际应用举例
现在移动终端中常用到的Camera Sensor,Spec.一般会指明支持哪些Color format.常常看到类似RGB,或者RGB888,YUV,或者YUV422,YUV420之类的输出格式表示:
RGB888:指的是输出信号用RGB格式,RGB的颜色深度均为8(即一个Pixel的颜色需要3X8=24bit来表示)。传统上有人称为RGB接口,并口,PPI口(输出简单,就是8或者16或者24根信号线)等等。不过MIPI口也是可以支持的。
RGB 格式的缺点是三种颜色的权重是类似的,因此信息很难压缩也不适合在带宽受限系统中传输—但是很适合pixel-by-pixel的画图板式操作,所以在显示系统里面被大量使用—比如Mobile display。对于
YUV422: 比较传统的YUV格式是YUV444,表示每个YUV分量均由4bit来表示。不过,犹豫人眼对于亮度信息(Y)的敏感度大于对于色度信息(UV)的敏感度,因此为了减少信息带宽,在对于视觉要求不高的应用中,部分色度信息可以被减少—称为色度抽样(Chroma subsampling),这样就有了YUV422,甚至是YUV420。
http://en.wikipedia.org/wiki/Chroma_subsampling
RAW data:
RAW data在影像学上只是一种概念,没有统一的标准,其基本思想是把原始的图像数据用尽可能靠近sensor感光输出的信号储存起来供后续处理。相对比较通用的RAW格式为DNG (Adobe). 对于移动设备中常用的CMOS sensor,多数不提供RAW data的输出(这一般是单反的feature)。一般会用Bayer格式,这个名字来自Bayer 滤镜,指的是一束光线投射到sensor上并产生相应的输出信号的透镜。输出的格式通是RGBG,GRGB or RGGB.之所以有两个G分量,一方面最小的感光面用矩形在几何上比较好安排(因此有4个感光分量),另一方面人眼对于绿色的敏感度更高一些。
http://en.wikipedia.org/wiki/Bayer_filter
http://en.wikipedia.org/wiki/Raw_image_format
RGB/YUV/YCbCr--关于显示,颜色你需要了解的一些事相关推荐
- 常见色域基础知识与色域转换公式(YUV/YCbCr/YIQ/RGB/R‘G‘B‘/CMYK)
目录 常见色域基础知识与色域转换公式(YUV/YCbCr/YIQ/RGB/R'G'B'/CMYK) 色域基础知识 RGB 色域 YUV/YIQ色域 CMYK色域 色域转换原理 色域转换公式 常见色域基 ...
- 色差输出 S-Video YUV YCbCr YPvPr RGB VGA WXGA
色差输出 S-Video YUV YCbCr YPvPr RGB VGA WXGA 色差输出 色差信号y,r-y,b- y信号一般通称为y, cr,cb; 习惯上y,cr,cb为数字(pcm)的色差信 ...
- SPDIF 色差输出 视频输出 S-Video YUV YCbCr YPbPr RGB VGA WXGA 分别的详细介绍 视频方式接口简介
SPDIF 色差输出 视频输出 S-Video YUV YCbCr YPbPr RGB VGA WXGA 分别的详细介绍 视频方式接口简介 2008年04月05日 星期六 00:27 SPDIF 数字 ...
- 【颜色空间转换大集合】RGB到YIQ,RGB到HSI和HSI到RGB,RGB到YcbCr,RGB到XYZ颜色转换matlab代码的Demo,含详细的解释
废话不说,先上图, 实现方式:matlab 实现功能: 实验目标 了解图像颜色空间的转换关系. 了解图像的文件结构. 实验内容 完成如下颜色空间的转换.(4 Points) RGB -> YIQ ...
- C#制作一个图片查看器,具有滚轮放大缩小,鼠标拖动,图像像素化,显示颜色RGB信息功能
目录 前言 一.界面设计 二.关键技术 1.把图片拖入到窗体并显示 2.实现图像缩放的功能 3.实现图像的移动效果 4.实时显示当前鼠标处的RGB值 5. 右击功能的实现 6.效果展示 总结 前言 使 ...
- YUV/YCbCr/YPbPr
先记着几个重要结论(记住后就没那么纠结了): 1.YCbCr 有时会称为YCC. Y'CbCr 在模拟分量视频(analog component video)中也常被称为YPbPr. 2.一般人们所讲 ...
- yuv,ycbcr,ypbpr,yiq itu-r bt.656 itu-r bt.601
YUV,是一种颜色编码方法. YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠. " ...
- 分量视频 Y'UV, YUV, YCbCr,YPbPr
对一种颜色进行编码的方法统称为"颜色空间"或"色域",RGB和YUV,都是颜色空间的种类, Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YU ...
- RGB转YCbCr算法 之Matlab FPGA实现介绍
1.引言 虽然现在RGB是计算机视觉最基本的三原色组成结构,但是YCbCr也有非常重要的角色,甚至却之不可,理由如下: 1)很多机器视觉,图像处理/检测识别算法,不关注色彩,只需要在灰度域处理即可: ...
最新文章
- 七段数码管段码表共阳_常用数字电路之显示篇数码管
- 四川大学线下编程比赛第一题:数字填充
- 兼容IE低版本的文件上传解决方案
- SQL--Chapter1_Overview of SQL Server
- TestNG和Maven配置指南
- db2设置数据库增量备份_DB2在线增量备份 还原增量备份及前滚恢复
- python字符串用空格切片_Python切片操作去除字符串首尾的空格
- html5两条直线,Html5新特性用canvas标签画多条直线附效果截图
- 文字投影_DLP投影仪指标含义汇总(文字稿)
- 前后端开源的一款简单的微信个人博客小程序
- iOS UI08_TableView界面传值
- Python自动化结算工资和统计报表
- AppStore下载安装失败
- python 常微分方程 画向量场_千里积于跬步——流,向量场,和微分方程[转载]...
- 阿里巴巴高级Java面试题(首发,70道)
- css之子元素选择器、属性选择器、伪元素选择器
- Rust语言——Package、Crate、Module
- skfuzzy.cmeans与sklearn.KMeans聚类效果对比以及使用方法
- CGdiObject::DeleteObject的说法
- LCD fb driver for linux 参数计算