目录

常见色域基础知识与色域转换公式(YUV/YCbCr/YIQ/RGB/R'G'B'/CMYK)

色域基础知识

RGB 色域

YUV/YIQ色域

CMYK色域

色域转换原理

色域转换公式


常见色域基础知识与色域转换公式(YUV/YCbCr/YIQ/RGB/R'G'B'/CMYK)

所谓色域(Color Space)就是一种颜色的表示方法,针对不同的显示设备不同的系统,往往有不同的表示方法。目前被广泛使用的色域可以被分为三大类:RGB、YIQ/YUV/YCrCb、CMYK。

※RGB应用最广泛;R'G'B'是RGB色域的Gamma矫正版;

※YUV,YCrCb和YIQ被广泛应用于电视、视频系统中;

※CMYK则主要被应用于彩色打印系统中。

注:还有一种叫做Studio RGB的版本,其RGB值范围为16-235,而标准的8-bit RGB或者R'G'B'的值范围为0-255。

注:此外,还有CMOS图像传感器中常用的RAW(Bayer)格式,这在我之前的文章中介绍过,这里就不重复了。

然而,上诉任何一种色域都没有办法直接表示色彩色调(intuitive notions of hue)、饱和度(saturation)和亮度(brightness)。关于如何通过RGB色域计算获得这些值,请自行查阅关于HSI/HSV色域的相关内容。

RGB作为最为基本的色域(绝大部分的图像传感器和扫描仪的直接输出都是RGB色域),任何其他的色域都可以通过RGB值经过一系列计算获得。

注:本文在简单介绍各种色域的主要特征和主要应用背景后,将继续介绍各种色域之间的转换原理,并在最后直接提供转换公式,以方便大家使用。

色域基础知识

RGB 色域

顾名思义,RGB色域由红色(Red)、绿色(Green)和蓝色(Blue)的光学三原色组成。任何其他颜色的光线都可以由光学三原色按照特定比列组合而成。由于其易于在显示系统中实现,因此被广泛应用于电子成像系统、计算机图像显示和数字图像处理系统中。然而,将相机输出的RGB图像直接送到显示器上显示,效果却并不能令人满意。在不同厂家/型号的显示器上的显示效果也有着较大的差异,这主要是由于LCD显示器的非线性失真导致的。为了解决这个问题,一种非线性RGB编码(即Gamma矫正)应运而生。经过Gamma矫正之后的色域通常被称为R'G'B'色域或者Studio RGB色域。

RGB色域主要缺点是,它是一种“原始的”,未压缩的色域,相比于YUV色域其所需的数据带宽更高。

YUV/YIQ色域

YUV色域被广泛应用于PAL、NTSC和SECAM电视(视频)系统中。其中,Y表示明亮程度(luma)信息,而U和V则表示色彩浓度信息(chroma)。这样做的直接好处就是,对于黑白电视(视频)系统,只需要传输Y就可以了。

Y的范围为0-255,U的范围为0~±112,V的范围为0~±157,I的范围为0~±152,Q的范围为0~±134。

注:Luma和Brightness不是同一个概念。Luma表示色彩的明亮程度,而Brightness表示的光线的明亮程度(通常是背光)。

YIQ是NTSC电视系统所使用的色域,Y还是表示(色彩)明亮程度,I(即In-Phase)表示从橙色到青色的色彩,而Q(即Quadrature-Phase)表示的是从紫色到黄绿色的色彩。

YCrCb(YCbCr)色域

YCbCr是YUV的演进版本(系数有些变化,同时增加了偏置),但是在实际中,往往是把YUV和YCbCr认为是同一种是色域。比如YCbCr444/422/420往往和YUV444/422/420指的是同一种色域。以8bits的数据为例,RGB像素值的表示范围为0~255,而YCbCr/YUV确是限定范围的,Y的范围是16~235,而Cb/Cr的范围是16~240,如下图所示:

YUV444、YUV422和YUV420的采样图示如下:

其中黑色的点为Y的采样点,圆圈为UV的采样点。显然YUV444和RGB的采样点是完全一致的,而YUV422和YUV420相对于RGB是有一定程度的“压缩”的。

注:其中YUV420的采样为H.261/H.263/MPEG-1的版本,对于MPEG-2/MPEG-4.2/MPEG-4.10(H.264)和SMPTE421M(VC-1)来说,其采样图示如下:

CMYK色域

CMYK也称作印刷色彩模式。它和RGB相比最大不同是,RGB模式是发光的色彩模式,你在一间黑暗的房间内仍然可以看见萤幕上的内容。CMYK是一种依靠反光的色彩模式,我们能阅读报纸的内容是为什么呢?是因阳光或灯光照射到报纸上,再把内容反射到我们的眼中。CMYK是需要有外界光源的情况下才可以看到的。所以在黑暗房间内是无法阅读的。只要是在印刷品上看到的图像,就是CMYK模式表现的。比如期刊、杂志、报纸、宣传画册等,都是运用了CMYK模式。

CMY是3种印刷油墨名称的首字母:青色Cyan、品红色Magenta、黄色Yellow。而K取的是black最后一个字母,为了避免与蓝色混淆而用K。从理论上讲,只需要CMY三种油墨就足够,把CMY加在一起就应该得到黑色。但是高纯度的油墨暂时还不能实现,CMY相加的结果是暗红色。因此,为了确保黑色的输出,还需要加入一种专门的黑墨来调和。

色域转换原理

比较有意思的是,YUV(YCbCr)与RGB之间的转换原理并非是通过数学理论推导出来的,而是基于生物仿真学(Biometric)实验结果的:

公式中的CA、CB的值在不同的标准中稍微有一点区别。具体请参考ITU601.SDTV,ITU709.PAL/NTSC。

加上Cb/Cr,写成矩阵的形式:

进一步,可以写为:

其中CC,CD为:

逆向形式为:

色域转换公式

以下所有转YUV/YCbCr的公式输出的结果均为YUV/YCbCr444的格式,如需要转换为YUV422或者YUV420,则需要对UV(CbCr)分量做进一步处理。对于YUV422,可以直接丢弃每行的第二的采样点的UV值;对于YUV420,建议将相邻的四个采样点UV值取平均,以获得新的UV值。

注:以下公式中,R'G'B'默认只的是带有Gamma矫正后的Computer RGB(即Computer R'G'B'),其值的范围为0~255。实际上Gamma矫正并不会改变RGB值的范围,因此这些公式对于没有Gamma矫正的Computer RGB同样适用。同理,Studio RGB的指的是不带有Gamma矫正的版本,其值的范围为16-235,而其带有Gamma矫正的版本的值的范围仍然是16-235。因此,Studio RGB对应的公式,对于Studio R'G'B'同样适用。

Computer R'G'B'转YCbCr:SDTV(IUT601)公式

Computer R'G'B'转YCbCr:HDTV(IUT709)公式

Studio RGB转YCbCr:SDTV(IUT601)公式

Studio RGB转YCbCr:HDTV(IUT709)公式

Computer R'G'B'转换YUV公式

Computer R'G'B'转YIQ公式

YCbCr:SDTV(ITU601)转Computer R'G'B'公式

YCbCr:HDTV(ITU709)转Computer R'G'B'公式

YCbCr:SDTV(ITU601)转Studio RGB公式

YCbCr:HDTV(ITU709)转Studio RGB公式

YUV转Computer R'G'B'公式

YIQ转Computer R'G'B'公式

YIQ转YUV公式

注:上述各公式中的偏置值均是基于8bits数计算的,如果是10bits或者更高bits,则应按比例增加该偏置值。

CMYK转RGB公式

主要参考资料

1、IUT. BT601

2、IUT.BT709

3、Xilinx. Color-Space Converter: YCrCb to RGB, Application Note. XAPP931

4、Lattice.  Color Space Converter IP Core User Guide, IPUG. IPUG63

常见色域基础知识与色域转换公式(YUV/YCbCr/YIQ/RGB/R‘G‘B‘/CMYK)相关推荐

  1. [视频图像处理]1. 色域基础知识与色域转换公式

    常见色域基础知识与色域转换公式 所谓色域(Color Space)就是一种颜色的表示方法,针对不同的显示设备不同的系统,往往有不同的表示方法.目前被广泛使用的色域可以被分为三大类:RGB.YIQ/YU ...

  2. 色差输出 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)的色差信 ...

  3. SPDIF 色差输出 视频输出 S-Video YUV YCbCr YPbPr RGB VGA WXGA 分别的详细介绍 视频方式接口简介

    SPDIF 色差输出 视频输出 S-Video YUV YCbCr YPbPr RGB VGA WXGA 分别的详细介绍 视频方式接口简介 2008年04月05日 星期六 00:27 SPDIF 数字 ...

  4. r语言工作路径linux,R语言实用基础知识_工作路径-注释-安装和卸载R包_2019-12-01...

    R语言的实用基础知识有很多,都是我在工作和学习中所整理的,有的是看书整理的,也有的是从网络上的各种博客.各种资源获取的,所以我采用日更的方式进行支持整理和更新,希望能够帮到屏幕前的你! 今天是我日更的 ...

  5. java.util 常见_Java基础知识-java.util.concurrent包下常见类的使用

    一,Condition 一个场景,两个线程数数,同时启动两个线程,线程A数1.2.3,然后线程B数4.5.6,最后线程A数7.8.9,程序结束,这涉及到线程之间的通信. public classCon ...

  6. 视频图像处理基础知识5(RGB与Ycbcr相互转换公式 )【转】

    转自:http://blog.csdn.net/Times_poem/article/details/51471438 版权声明:本文为博主原创文章,未经博主允许不得转载. 需求说明:视频处理算法基本 ...

  7. 视频图像处理基础知识5(RGB与Ycbcr相互转换公式 )

    需求说明:视频处理算法基本知识       第一部分:有参考出处的RGB与Ycbcr相互转换       第二部分:简单直接的RGB与Ycbcr相互转换       第三部分:优化乘法的RGB与Ycb ...

  8. MTK Camera 基础知识

    文章目录 数字成像系统流程综述 曝光 对焦马达 镜头(lens) MIPI数据与RAW数据的转换(未完待续) ISP的主要内容和Bayer Raw的处理 RGB.YUV和YCbCr三种颜色空间 补充 ...

  9. 关于计算机图像基础知识的整理

    1.色彩深度: 1位:2种颜色,单色光,黑白二色,用于compact Macintoshes. 2位:4种颜色,CGA,用于gray-scale早期的NeXTstation及color Macinto ...

最新文章

  1. 英国最新报告:40% AI公司其实没用任何AI技术
  2. 采购部管理--餐饮原料的验收管理
  3. Visual Studio Code 配置指南
  4. #define宏定义中的#,##,@#,\
  5. 在ASP.Net Core和JAVA中,使用Azure配置密钥——Key Vault
  6. JavaSE学习--单例设计模式
  7. Java实战项目,附带源码+视频教程,收藏!
  8. 财智6出免费版本了,不需要在找破解了哈哈!
  9. 如何用matlab解决数学建模中的报童问题
  10. 全国计算机三级网络技术题库南开,计算机三级网络技术机题库_及答案(南开100题).doc...
  11. torch.randn用法
  12. 中国浙江省动漫产业发展方向探析及投资决策建议报告2021-2027年
  13. spring-cloud服务监控
  14. 从海外客户端Bidding看,移动开发者应如何应对竞价模式变化?
  15. Cpulimit---控制cpu百分比
  16. html页面转盘如何实现,html5制作转盘的详解及实例
  17. Java 作业题 输入年份求生肖
  18. OS前沿论文 ; http://pdos.csail.mit.edu/
  19. 一款android上的纸牌类小游戏
  20. Powershell管理系列(三)2012 AD域用户UPN名称还原

热门文章

  1. kali linux安装教程从官网开始。
  2. 科研新手该如何找到合适的文献?| 开启科研之路(王威教授)
  3. 排序算法之归并排序及Java实现
  4. 2019年寒假 纪中培训总结
  5. Dynamics 365 OP V9.1启用邮箱失败问题
  6. 【思想】《人生效率手册》
  7. MySQL查看数据库状态命令详解
  8. 编程c语言随机函数,C语言产生随机数需要了解的几个函数
  9. CSS中英文换行问题
  10. FreeFileSync命令用法