菜鸟修炼笔记-音视频开发基础知识-色彩空间

前言

前面的博文中多次提到色彩空间(或者颜色空间)。对此,我们只知道常用的色彩空间有RGB和YUV两种。

但是,它们的作用是什么呢?它们的具体区别是什么呢?它们的使用方法是什么?它们之间的关系是什么呢?

为了解决这些问题,本文整理了色彩空间的相关资料,来整体了解一下色彩空间,并尝试回答以上问题。

一。RGB和YUV的区别和联系

1. RGB的基础定义

RGB的颜色模式应该是我们最熟悉的一种,在现在的电子设备中应用广泛。通过R G B三种基础色,可以混合出所有的颜色。

2. YUV的基础定义

YUV是一种亮度与色度分离的色彩格式,三个字母的意义分别为:
(1)Y:亮度,就是灰度值。除了表示亮度信号外,还含有较多的绿色通道量。单纯的 Y 分量可以显示出完整的黑白图像。
(2)U:蓝色通道与亮度的差值。
(3)V:红色通道与亮度的差值。
其中,U、V 分量分别表示蓝 (blue)、红 (red) 分量信号,只含有色度信息,所以 YUV 也称为 YCbCr,其中,Cb、Cr的含义等同于U、V,C 可以理解为 component 或者 color。

3. RGB和YUV的换算

Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
——————————————————
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U

二。YUV详解

1. 采样格式

采样格式即在对视频数据进行采样时的格式,是在获取原始图像数据时采用的策略。

采样格式主要包括三种:YUV444、YUV422和YUV420。

1.1 YUV444:

YUV 4:4:4采样,每一个Y对应一组UV分量。
在这里插入图片描述

1.2 YUV422:

YUV 4:2:2采样,每两个Y共用一组UV分量。

在这里插入图片描述

1.3 YUV420:

YUV 4:2:0采样,每四个Y共用一组UV分量。(最常用)
在这里插入图片描述

1.4 YUV各种采样格式的比较

我们以一张大小为1280*720的图像为例:

在RGB 图像中,每个像素点都有红、绿、蓝三个原色,
其中每种原色都占用 8 bit,也就是一个字节,
那么一个像素点也就占用 24 bit,也就是三个字节。
一张 1280 * 720 大小的图片,
就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存储空间。

(1)【使用YUV4:4:4格式采样的大小】

YUV4:4:4格式意味着Y、U、V三个分量的采集比例相同,
因此在生成的图像里,每个像素的三个分量信息完整,
都是8bit,也就是一个字节。
那么它的采样大小为
3 * 1280 * 720 / 1024 / 1024 = 2.63MB
与原始RGB图像相比大小是一样的。

(2)【使用YUV4:2:2格式采样的大小】

YUV4:2:2格式的采样特征是在每相临的两个像素,
一个丢弃U分量,一个丢弃V分量,那么它的采样大小为:
(8 + 8) * 1280 * 720 / 8 / 1024 / 1024 = 1.76MB
可以看到 YUV 4:2:2 采样的图像比 RGB 模型图像节省了三分之一的存储空间,
在传输时占用的带宽也会随之减少。

(3)【使用YUV4:2:0格式采样的大小】

YUV4:2:0格式的采样特征是所有像素都保留Y分量,
同一行的像素只保留U分量,或者是V分量,
同一行中相临的两个像素只保留同一个Y分量或者U分量。
那么它的采样大小为:
(8 * 1280 * 720 + 8 * 1280 * 720 / 2 / 2 + 8 * 1280 * 720 / 2 / 2) / 8 / 1024 / 1024 = 1.32MB
可以看到 YUV 4:2:0 采样的图像比 RGB 模型图像节省了一半的存储空间,
因此它也是比较主流的采样方式。

YUV420属于planar存储方式,但是又分两种类型:
(1)YUV420P:三平面存储。数据组成为YYYYYYYYUUVV(如I420)或YYYYYYYYVVUU(如YV12)。
(2)YUV420SP:两平面存储。分为两种类型YYYYYYYYUVUV(如NV12)或YYYYYYYYVUVU(如NV21)

2. 存储格式

存储格式既是存储图像数据的方式,YUV存储格式主要分为packed和packed 两种模式。

2.1 packed:

每个像素点的 Y、U、V 连续交叉存储。见下图。
在这里插入图片描述

2.2 planar:

先存储所有Y,紧接着存储所有U,最后是V。见下图。
在这里插入图片描述

3. YUV格式

不同的采样格式与存储格式相组合就得到多种不同的YUV格式。这些格式的采样格式主要是基于YUV 4:2:2 和 YUV 4:2:0两种。

3.1 YUYV格式(YUV 4:2:2+packed)

YUV 4:2:2 采样规定了 Y 和 UV 分量按照 2: 1 的比例采样,两个 Y 分量公用一组 UV 分量。
Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….
排列顺序如下:

在这里插入图片描述

3.2 UYVY格式(YUV 4:2:2+packed)

它的顺序和 YUYV 相反,先采样 U 分量再采样 Y 分量。
和YUYV 一样,Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….
排列顺序如下:

在这里插入图片描述

3.3 YUV422P/I422格式(YUV 4:2:2+Planar )

和上面两种格式一样,这个格式也是Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….
不同的是,此格式存储时,先存储所有的 Y 分量,再存储所有的 U 分量,再存储所有的 V 分量。

3.4 YUV420P类型(YUV 4:2:0+Planar )

YUV420P是基于Planar 平面格式进行存储的,先存储所有的 Y 分量后, 会先存储所有的 U 分量或者 V 分量。

格式如下图:
在这里插入图片描述
其在码流中的表现形式为:
在这里插入图片描述

 这种类型又分为两种具体的格式:YU12(又称为I420)和YV12格式,
 两种格式都是先存储完Y分量,再存储U、V分量,
 不同的是:YU12是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U。

3.5 YUV420SP类型(YUV 4:2:0+Planar )

和YUV420P类型一样,YUV420SP也是基于 Planar 平面格式 进行存储的,不同的是:YUV420SP存储完所有的Y分量之后,就按照 UV 或者 VU 的交替顺序进行存储了。

格式如下图:
在这里插入图片描述
其在码流中的表现形式为:
在这里插入图片描述

 这种类型也分为两种具体的格式:NV12和NV21格式,
 两种格式都是先存储完Y分量,再把 UV 分量交替连续存储,
 不同的是,NV12是先存Y分量,再UV进行交替存储。而NV21则是VU交替存储。

三。总结

由上面的整理和分析可以尝试回答前言中的问题:

(1)RGB和YUV的作用是什么:
它们描述的是采样和存储图像数据的格式,根据这些格式,我们可以进行格式转换,可以压缩图像数据,从而在图像不失真的情况下压缩图像数据。
(2)YUV各个格式的具体区别是什么呢:
它们的主要区别就在于采样的方式或者存储的方式,又由于不同的采样方式和存储方式,它们在数据大小和图像的真实度上都各不相同。
(3)RGB和YUV的使用方法是什么?
它们都是一种采样和存储图像的格式,在采样时根据相应的格式进行采样得到图像的数据,然后将这些数据根据对应的存储方式进行存储,从而得到能够满足不同需求(比如数据量小、真实度高等需求)的视频数据。
(4)RGB和YUV之间的关系是什么呢?
两者都是采样和存储图像的格式,但是它们的原理不同。而同时,它们可以通过一定的公式进行互换。

四。参考资料

  1. 【Android音视频开发打怪升级:音视频硬解码篇】一、音视频基础知识
  2. 音视频编解码: YUV采样格式中的YUV444,YUV422,YUV420理解
  3. 音视频编解码: YUV存储格式中的YUV420P,YUV420SP,NV12, NV21理解(转)
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值