现在的位置: 首页 > 综合 > 正文

YUV和RGB图像格式说明

2012年01月14日 ⁄ 综合 ⁄ 共 2012字 ⁄ 字号 评论关闭

      对于进行图像处理的程序员来说,图像格式是必须了解的问题。本文不涉及压缩图像格式,只对YUV和RGB图像进行描述。

1. RGB图像和YUV图像区别

      RGB和YUV图像的区别在于色彩空间坐标系描述上不同,就如同我们用直角坐标和极坐标来描述方程一样。
      RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色. RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。
      YUV图像的坐标空间为HSL(hue,saturation,lightness/luminance)。其中H表示色相、H表示饱和度,L表示亮度。该颜色空间可以用一个圆锥来表示,如下图所示:

2. 色彩空间中图像的表示

      图像由像素组成的,在表示一个像素点时,像素点中坐标的位置不同会形成不同图像格式。如RGB和BGR。YUV和YVU。
      由于是使用计算机来存储或表示图像,连续的坐标值必须被离散化。可以使用8bit的空间来存储一个R值,也可以使用6bit的空间来存储R值。存储位数的不同也会形成不同的图像格式。如RGB24,RGB565。
      一幅图像是由多个像素组成的。由于在计算机中存储是线性的,可以被存储成(r1, g1, b1)(r2, g2, b2)...(rn, gn, bn),也可以被存成(r1,r2,...,rn)(g1,g2,...,gn)(b1,b2,...,bn)。不同像素之间坐标值的存储顺序也会形成不同的图像格式。前者被称为打包格式(packed), 后者被称为p(planar)。比如说YUV420 Planar,和YUV420 packed。通常状态下,默认的是打包格式,如YUV420。而如果是平面格式,会在其后加一个P标明,如UV420P.

      一幅图像是由多个像素组成的。图像的相邻像素点是存在相关性的,也许可以用某个像素点的坐标值来代替周围像素点的坐标值。这种不同像素点之间相关性的表示的不同方法,也会形成不同的图像格式。如YUV420和YUV422。

      YUV 的优点之一是,色度频道的采样率可比 Y 频道低,同时不会明显降低视觉质量。有一种表示法可用来描述 U 和 V 与 Y 的采样频率比例,这个表示法称为 A:B:C 表示法:
      •4:4:4 表示色度频道没有下采样。
      •4:2:2 表示 2:1 的水平下采样,没有垂直下采样。对于每两个 U 样例或 V 样例,每个扫描行都包含四个 Y 样例。
      •4:2:0 表示 2:1 的水平下采样,2:1 的垂直下采样。

      •4:1:1 表示 4:1 的水平下采样,没有垂直下采样。对于每个 U 样例或 V 样例,每个扫描行都包含四个 Y 样例。

      可以这么来记忆上述格式,A:B表示水平下采样,B:C表示垂直下采样

3. 具体格式

      具体格式见下列连接,讲的非常清楚。

      http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html

      http://blog.csdn.net/sunnylgz/article/details/7580628

      http://msdn.microsoft.com/zh-cn/library/ms867704.aspx

4. 其他

      SP: SP(Semi-Planar)指的是YUV不是分成3个平面而是分成2个平面。Y数据一个平面,UV数据合用一个平面。UV平面的数据格式是UVUVUV...。

      Interlace/Progressive:这个术语和图像格式无关,和视频采集的扫描相关。interlace指的是隔行扫描,是把一帧图像分成上下两场,上场(Top field)的数据是整个图像的奇数行(1,3,5,7...),下场(Bottom field)的数据是整个图像的偶数行(2,4,6,8...)。两场穿插组合起来变成一帧完整图像。而progressive指的是逐行扫描,一帧图像的每一行都按顺序排放。

      上采样/下采样:所谓采样就是采集模拟信号的样本。 采样是将时间上、幅值上都连续的信号,在采样脉冲的作用下,转换成时间、幅值上离散的信号。所以采样又称为波形的离散化过程。 普通的奈奎斯特采样定理的前提是频率受限于(0,f)的带限信号。
      通常采样指的是下采样,也就是对信号的抽取。其实,上采样和下采样都是对数字信号进行重采,重采的采样率与原来获得该数字信号(比如从模拟信号采样而来)的采样率比较,大于原信号的称为上采样,小于的则称为下采样。上采样的实质也就是内插或插值。
      上采样是下采样的逆过程,也称增取样(Upsampling)或内插(Interpolating)。增取样在频分多路复用中的应用是一个很好的例子。

抱歉!评论已关闭.