YUV 420、YCbCr 422、RGB 444以及色度二次采样

学习完YUV相关的知识点,现谈谈自己对这方面的理解。

计算机里面,R、G、B也被称为“基色分量”。它们的取值,分别从0到255,一共256个等级(256是2的8次方)。所以,任何颜色,都可以用R、G、B三个值的组合表示。而且只有RGB格式的数据才能在屏幕或显示器上显示出来。

既然只有RGB格式信号才可以在显示器上显示出来,为什么还需要其他格式的信号(比如YUV)?带着这个问题让我们一起回顾一下RGB与YUV。

RGB

RGB 模型是目前常用的一种彩色信息表达方式,每一种颜色都是红、绿、蓝三种颜色的混合,在这种模式下通过叠加颜色生成其他的颜色值,因而适合于显示器等发光体的显示。

image.png

image.png RGB 颜色空间可以看作是三维直角颜色坐标系中的一个正立方体。如上右图所示。红绿蓝三色在立方体的三个顶点上;洋红、青、黄色在立方体的立方体的另外三个顶点;黑色在坐标原点;而白色在离原点最远的定点上。在连接黑色与白色的对角线上,是亮度等量的三基色混合而成的灰色,该线称为灰色线。

下图是RGB如何形成图像的

image.png 那么对于一张1920 * 1080的图片,如果采用RGBA编码格式,这一张图片加载到内存并在设备中显示时,所占用的内存大小就是:

1920 * 1080 * 4 /1024 / 1024 = 7.9M`

YUV

YUV就是另外一种颜色数字化表示方式,常用与视频通信系统中。其中Y代表亮度(Luma),U和V代表色度(Chroma)。YUV与YCbCr可统称为YUV(具体原因可以查阅相关方面的资料)。下图演示了RGB 和YUV的关系,以及Y对UV的影响

image.png

由于人眼对色度的敏感程度要低于对亮度的敏感程度,因而可以在使用YUV的时候, 保证Y分量的前提下,可以舍弃一部分UV分量,来减少对带宽的需求,却也并不会太影响图像的质量。这就是YUV相对于RGB的优势,所以才会引入YUV的使用

下图是YUV如何形成图像的

image.png

YUV常用采样方式

主流的YUV采样方式有如下三种:

  • YUV444
  • YUV422
  • YUV420

    YUV444

image.png

YUV422

image.png

YUV420

image.png 其中YUV420最常用,YUV420包含YUV420p与YUV420sp, 区别在于plane数量分别为3和2。 根据uv分量的顺序不同YUV420p分为YV12和YU12,,YUV420sp分为NV12和NV21。 YUV420sp中uv分量是杂糅在一个plane中以uvuv或者vuvu的顺序存储在第二个plane中。

JPEG编码器是一种常用的图像压缩算法,它通过将所提取图像的RGB像素值转化为YCbCr或者YUV色彩空间,并对色度图像进行处理来实现。其编码过程主要包括以下步骤: 1. RGBYCbCrYUV的转换:将RGB色彩空间中的像素值转换为亮度(Y)色度(CbCr)分量。通过线性组合来完成转换,其中Y表示亮度,CbCr表示色度,分别代表蓝色红色与亮度之间的差别。 2. 色度图像的降采样:对CbCr色度分量进行降采样,以减少色度信息的冗余。一般采用4:2:0的采样格式,即CbCr分量的水平垂直方向上每4个像素只保留一个。 3. 块分割变换:将图像分成8x8的小块,对每个小块进行离散余弦变换(DCT)。DCT能够将图像中的空域信息转换为频域信息,对于图像压缩来说非常有效。 4. 量化:对DCT变换后的系数进行量化。量化可以减少高频分量的信息量,因为人眼对高频细节不太敏感。量化过程中使用的量化表决定了不同频率分量的减少程度。 5. 霍夫曼编码:使用变长编码对量化后的DCT系数进行编码。通过使用更短的码字来表示高频分量出现频率较低的系数,以进一步减小数据的体积。 总体而言,JPEG编码器通过将RGB像素值转换为YCbCrYUV色彩空间,并对色度图像进行降采样、DCT变换、量化霍夫曼编码等步骤,实现对图像的压缩。这种编码方式在存储传输图像时起到了极大的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值