图像与像素

图像由像素组成,像素有不同的格式和大小,以常见的RGB888为例,该格式表示每个像素由R,G,B三个分量构成,每个分量的位深是8bit,这样一个像素就占用24bit空间,除此之外还有RGB565(16bit),RGBA(32bit)等格式。

颜色空间

表示对色彩的组织方式,决定如何对颜色进行编码。在给定颜色空间内,任何一种颜色都可以转换成一个对应的数字编码。

参考链接:颜色空间 - 可可西 - 博客园

RGB

基于人眼感光的生理特性(视杆细胞和三种视锥细胞),将颜色分成红(Red)、绿(Green)、蓝(Blue)三个分量来表示,通过三个分量叠加形成不同的颜色。

RGBA

在RGB基础上增加Alpha通道,表示不透明度参数,Alpha为0时,表示完全透明,Alpha越大越不透明。RGBA适用于图像叠加场景,由于透明度的存在,使得图像叠加之后不会完全覆盖,有利于数码合成和渲染。

纯白色图叠加透明图

CMYK

印刷四分色模式,用于印刷行业。光线叠加的原理是越叠越亮,然而打印机打印是油墨,颜料的叠加是颜色越多越黑 。RGB对应加色模式,CMYK对应减色模式。

C:Cyan = 青色
M:Magenta = 洋红色,又称为“品红色”
Y:Yellow = 黄色
K:blacK = 黑色

YUV

因黑白电视到彩色电视过渡而发明,原理是人眼对亮度更敏感,而对颜色相对不敏感,实现方式是将颜色分成亮度信号与色度信号,其中Y代表亮度(Luminance),UV代表色度(Chrominance)。YUV常用于图像采集与编码。

HSL与HSV/HSB

HSL(H是色相 -- Hue,S是饱和度 -- Saturation,L是亮度 -- Lightness) 注:windows的画图软件使用的是该模型。

HSV(H是色相 -- Hue,S是饱和度 -- Saturation,V是明度 -- Value),又称HSB(B -- Brightness)   注:Adobe Photoshop使用的是该模型。

H是色相 ,色彩的外相,代表人眼能感知的色彩的范围,可以理解为纯色的范围。色相一般用色相环表示,如下(黑色、白色、灰色没有色相):

S是饱和度,表示是相同色相、亮度下色彩的纯度变化,数值越大,颜色中的灰色就越小,颜色越纯,数值越小,颜色越灰,直致完全变成灰色。

L(亮度)、V(明度)是亮度,表示色彩的明暗,数值越小,色彩越暗,数值越大,色彩越亮。在HSL中,亮度100%时是纯白色,在HSV中,亮度100%代表纯色。

YUV图像格式

参考链接:

YUV格式介绍以及与RGB转换关系

首先说一说YUV颜色模型,单单就YUV颜色模型来说,就有很多中叫法,而且总是让人颇感困惑。一般来讲,我们把YUV、Y`UV、YCbCr、YPbPr包含在YUV颜色模型的范围内,其中Y都表示亮度,UV表示两个色度分量,但是具体的颜色模型的用途又各不相同,当然,他们与RGB的互转公式也就不尽相同。那就先说说这些不同叫法的YUV的用途和由来。在电视系统发展的早期,YUV和Y`UV都是颜色信息的模拟信号编码形式,虽然Y和Y`都表示亮度,但是两种亮度的意义却天差地别,Y用来代指luminance,表示的是自然颜色的亮度,而Y`代指luma,表示的是经过伽马压缩之后电信号的强度。在现在的计算机系统中,YUV一般用来代指YCbCr,用来表示文件的编码格式,用于数字视频的编码,而YPbPr颜色模型常常用在模拟分量视频中。所以YUV颜色模型到RGB颜色模型的转换,应该对应两种方式,分别是模拟YUV->模拟RGB、数字YUV->数字RGB。不过因为标清、高清、以及超清幅面,YUV转RGB的权重值各不相同,需要将模拟信号和数字信号再做一次幅面划分,就出现了2*3 = 6,6中转换公式。

Gamma校正,指CRT显示器中电子束生成的图像亮度与输入电压并不成正比,为了达到线性亮度,就必须对输入电压进行校正。

  • 音视频开发领域中的"YUV"图像指的就是YCbCr。
  • 不同的标准下YCbCr与RGB的转换公式不一样。

YUV采样格式

YUV有不同的采样格式,因为人眼对亮度敏度而对色度相对不敏度,所以可以适当减少对UV分量的采样,达到节省带宽的效果。

YUV444采样

这是YUV的无损采样,对每个像素点都采集一次Y分量和UV分量,按采样深度是8bit计算,采样之后一个像素占用24bit。

YUV422采样

每两个Y分量采集一次UV分量,这两个Y分量共用一组UV信号,一个像素点采样之后平均只占用16bit。

YUV420采样

每四个Y分量采集一次UV分量,实际操作时是每一行扫描只采集U或V分量的一种,相邻的两行两列4个像素点共用一组UV分量,一个像素点平均只占用12bit。

YUV411采样

较少使用,与YUV420类似,每四个Y分量共用一组UV分量,区别是YUV411是水平方向的4个Y共用一对UV。

一张宽高为w * h的图片,按不同YUV采样的数据量大小:

  • YUV444: w * h * 3
  • YUV422: w * h * 2
  • YUV420: w * h * 1.5

相比于YUV444采样,YUV420采样减少了一半数据大小。

YUV存储格式

包括以下三种存储格式:

  • 平面格式(Planar)
    • 先连续存储所有的Y分量,然后存储U分量,最后是V分量。
  • 打包格式(Packed)
    • YUV分量连接交替存储。
  • 半平面格式(Semi-Planar)
    • Y分量连续存储,UV分量交替存储。

每种采样方式下都可以有这三种存储格式,导致组合之后YUV有众多的存储格式。
















  • 无标签