视频色彩空间RGB、YUV、YCbCr、YV12

  RGB、YUV和YCbCr都是人为规定的彩色模型或颜色空间(有时也叫彩色系统或彩色空间)。它的用途是在某些标准下用通常可接受的方式对彩色加以描述。本质上,彩色模型是坐标系统和子空间的阐述。

RGB

  RGB图像具有三个通道R、G、B,分别对应红、绿、蓝三个分量,由三个分量的值决定颜色;通常,会给RGB图像加一个通道alpha,即透明度,于是共有四个分量共同控制颜色。RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开。它是最通用的面向硬件的彩色模型。该模型用于彩色监视器和一大类彩色视频摄像。

YUY

  YUV模型是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间,在 YUV空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。

  YUV使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。

  Y 通道描述Luma 信号,它与亮度信号有一点点不同,值的范围介于亮和暗之间。 Luma 是黑白电视可以看到的信号。U (Cb) 和 V (Cr)通道从红 (U) 和蓝 (V) 中提取亮度值来减少颜色信息量。这些值可以从新组合来决定红,绿和蓝的混合信号。

  将亮度参量Y和色度参量U/V分开表示的像素格式,主要用于优化彩色视频信号的传输。YUV像素格式来源于RGB像素格式,通过公式运算,YUV三分量可以还原出RGB,YUV转RGB的公式如下:

  • R = Y + 1.403V
  • G = Y - 0.344U - 0.714V
  • B = Y + 1.770U

  YUV相比于RGB格式最大的好处是可以做到在保持图像质量降低不明显的前提下,减小文件大小。TUV格式之所以能够做到,是因为进行了采样操作。

YCbCr

   YCbCr是YUV模型的具体实现,YCbCr 是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分,其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV家族中, YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。

  YUV(YCbCr)采样格式:主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2 x 2 个点保存一个 Cr和Cb值,图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned) 模型, 每个点需要8x3=24 bits, 而现在仅需要 8+(8/4)+(8/4)=12bits,平均每个点占12bits。这样就把图像的数据压缩了一半。

  UHD BD大多采用YCbCr 4:2:0,等于色彩的信号量已经被减化了,然后有些厂商会标榜播放机或电视机具备“支援YCbCr 4:4:4输出”的能力,简单说,就是利用数字演算方式,将影像信号还原成YCbCr 4:4:4的完整形态。其实不只是色取样,现在也有不少器材能提升色彩的“色深“,将8bit提升成10bit,甚至是12bit,优化色彩的层次表现。

色彩取样比例

  色彩取样比例(Chroma Subsampling),在YUV和YCbCr中,Y代表亮度(Luma),CbCr 则为色差(Chrominance),简称“色取样”。用更简单的话来说,组成影像的每一个画素都应该有独立的亮度信号Y与色度信号CbCr,但业界为了缩减影像的资料量(以利储存和传输,加上人眼对于色彩的变化比较不敏感,所以工程师就从色度信号上动手脚,减低信号容量。

  YUV码流的存储格式与其采样方式密切相关,主流的采样方式有三种:YUV 4:4:4(YUV444),YUV 4:2:2(YUV422),YUV 4:2:0(YUV420)。

  YCbCr 4:4:4就是指最完整,没有省略前的状态。而YCbCr 4:2:2,就是亮度Y不变,而色度信号简化成“横向相邻的两个点只取一个记录”的状态。而YCbCr 4:2:0更进一步,色度信号简化成“上下左右相邻四个点只取一个记录”的状态。

  若以以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量,则这三种采样方式如下:

即:

  • YUV 4:4:4采样,每一个Y对应一组UV分量。
  • YUV 4:2:2采样,每两个Y共用一组UV分量。
  • YUV 4:2:0采样,每四个Y共用一组UV分量。

YUV常见格式

YUV存储可以分为两种:packed(打包)和planar(平面);

  • packed:Y、U、V分量穿插着排列,三个分量存在一个Byte型数组里;

  • planar:Y、U、V分量分别存在三个Byte型数组中;

YUV常见像素格式

  • YUV422:YUYV、YVYU、UYVY、VYUY
  • YUV420p: I420、YV12
  • YUV420sp: NV12、NV21

对于一个6*4的图像,这四种像素格式的存储方式如下

I420、YV12三个分量均为平面格式,即分别存在三个Byte型数组中;NV12、NV21的存储格式为Y平面,UV打包,即Y信息存储在一个数组中,UV信息存储在一个矩阵中。

posted @ 2019-08-17 11:15  光何  阅读(4080)  评论(0编辑  收藏  举报