音视频色彩:RGB/YUV

目录

1.RGB

1.1介绍

1.2分类

1.2.1RGB16

1)RGB565RGB565)

2)RGB555RGB555)

1.2.2RGB24

1.2.3RGB222

2.YUV

2.1介绍

2.2分类

[2.2.1 YUV444](#2.2.1 YUV444)

[2.2.2 YUV 422](#2.2.2 YUV 422)

[2.2.3 YUV 420](#2.2.3 YUV 420)

2.3存储格式

[2.3.1 YUYV](#2.3.1 YUYV)

[2.3.2 UYVY](#2.3.2 UYVY)

[2.3.3 YUV 422P](#2.3.3 YUV 422P)

[2.3.4 YUV420P/YUV420SP](#2.3.4 YUV420P/YUV420SP)

[2.3.5 YU12 和 YU21](#2.3.5 YU12 和 YU21)

[2.3.6 NV12 和 NV21](#2.3.6 NV12 和 NV21)

[3. YUV 与 RGB 转换](#3. YUV 与 RGB 转换)


1.RGB

1.1介绍

RGB是一种颜色标准,指的是R(red)红色、G(green)绿色、B(blue)蓝色这三种颜色,所有的颜色是通过对这三种颜色通道的变化以及相互之间的叠加来得到的,是目前运用最广的颜色系统之一。

1.2分类

1.2.1RGB16

RGB16就是用16位(2个字节)作为一个存储单元,实现一个RGB像素的存储

1)RGB565

RGB565就是R占比5位,G占比6位,B占比5位

复制代码
高字节     ------->     低字节
R R R R R G G G G G G B B B B B
2)RGB555

RGB555就是最高位不使用,R占比5位、G占比5位、B占比5位

复制代码
高字节      ------->     低字节
空 R R R R R G G G G G B B B B B

1.2.2RGB24

与RGB16不同,RGB24将RGN分为3份,每一份占比8位,先排列B,再排列G,最后排列R

复制代码
高字节              ------->             低字节
B B B B B B B B G G G G G G G G R R R R R R R R 空 空 空 空 空 空 空 空

1.2.3RGB222

RGB222是一种8位的RGB格式,各分量占用2bit位,剩下的2bit位不用,这种格式一般用于灰度图。

2.YUV

2.1介绍

1)YUV是指亮度参量和色度参量分开表示的像素格式.

其中"Y"表示明亮度(Luminance或Luma),也就是灰度值;

而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

2)YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。

一般人们所讲的YUV大多是指YCbCr。

2.2分类

叉子表示Y;圆圈表示UV

2.2.1 YUV444

YUV 4:4:4 表示 Y、U、V 三分量采样率相同,即每个像素的三分量信息完整,都是 8bit,每个像素占用 3 个字节。

复制代码
四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
映射出的像素点为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

2.2.2 YUV 422

YUV 4:2:2 表示 UV 分量的采样率是 Y 分量的一半

复制代码
四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样的码流为: Y0 U0 Y1 V1 Y2 U2 Y3 U3
映射出的像素点为:[Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

其中,每采样一个像素点,都会采样其 Y 分量,而 U、V 分量都会间隔采集一个,映射为像素点时,第一个像素点和第二个像素点共用了 U0、V1 分量,以此类推。从而节省了图像空间。

比如一张 1920 * 1280 大小的图片,采用 YUV 4:2:2 采样时的大小为:

(1920 * 1280 * 8 + 1920 * 1280 * 0.5 * 8 * 2 ) / 1024 / 1024 = 4.68M

可以看出,比 RGB 节省了三分之一的存储空间。

2.2.3 YUV 420

YUV 4:2:0 并不意味着不采样 V 分量。它指的是对每条扫描线来说,只有一种色度分量以 2:1 的采样率存储,相邻的扫描行存储不同的色度分量。也就是说,如果第一行是 4:2:0,下一行就是 4:0:2,在下一行就是 4:2:0,以此类推。

复制代码
图像像素为:
[Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]
[Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]
​
采样的码流为:
Y0 U0 Y1 Y2 U2 Y3 
Y5 V5 Y6 Y7 V7 Y8
​
映射出的像素点为:
[Y0 U0 V5]、[Y1 U0 V5]、[Y2 U2 V7]、[Y3 U2 V7]
[Y5 U0 V5]、[Y6 U0 V5]、[Y7 U2 V7]、[Y8 U2 V7]

其中,每采样一个像素点,都会采样 Y 分量,而 U、V 分量都会隔行按照 2:1 进行采样。

一张 1920 * 1280 大小的图片,采用 YUV 4:2:0 采样时的大小为:

(1920 * 1280 * 8 + 1920 * 1280 * 0.25 * 8 * 2 ) / 8 / 1024 / 1024 = 3.51M

2.3存储格式

2.3.1 YUYV

YUYV 格式属于 YUV422,采用打包格式进行存储,Y 和 UV 分量按照 2:1 比例采样,每个像素都采集 Y 分量,每隔一个像素采集它的 UV 分量。

Y0 U0 Y1 V0 Y2 U2 Y3 V2

2.3.2 UYVY

UYVY 也是 YUV422 采样的存储格式中的一种,只不过与 YUYV 排列顺序相反。

U0 Y0 V0 Y1 U2 Y2 V2 Y3

2.3.3 YUV 422P

YUV422P 属于 YUV422 的一种,它是一种 planer 模式,即 Y、U、V 分别存储。

2.3.4 YUV420P/YUV420SP

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

同样,YUV420SP 也是基于 planar 平面模式存储,与 YUV420P 的区别在于它的 U、V 分量是按照 UV 或者 VU 交替顺序进行存储。

2.3.5 YU12 和 YU21

YU12 和 YV12 格式都属于 YUV 420P 类型,即先存储 Y 分量,再存储 U、V 分量,区别在于:YU12 是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U 。

2.3.6 NV12 和 NV21

NV12 和 NV21 格式都属于 YUV420SP 类型。它也是先存储了 Y 分量,但接下来并不是再存储所有的 U 或者 V 分量,而是把 UV 分量交替连续存储。

NV12 是 IOS 中有的模式,它的存储顺序是先存 Y 分量,再 UV 进行交替存储。

NV21 是 安卓 中有的模式,它的存储顺序是先存 Y 分量,在 VU 交替存储。

3. YUV 与 RGB 转换

相关推荐
开开心心就好2 小时前
微软官方出品:免费数据恢复工具推荐
网络·笔记·microsoft·pdf·word·音视频·symfony
懷淰メ2 小时前
python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)
后端·python·django·音视频·pyqt·抖音·前后端
小马过河R2 小时前
AIGC首帧图尾帧图生成视频案例教程
aigc·音视频·ai视频
causaliy2 小时前
实践六:防盗链知识点——视频
爬虫·音视频
戴草帽的大z3 小时前
使用V4L2工具验证RK3588平台视频设备节点数据有效性
ffmpeg·音视频·rk3588·nv12·v4l2-ctl
音视频牛哥4 小时前
从 RTSP/RTP/RTCP 到系统级时间闭环:跨平台低延迟RTSP播放架构解析
计算机视觉·机器人·音视频·rtsp播放器·linux rtsp播放器·windows rtsp播放器·安卓播放rtsp流
电子科技圈4 小时前
XMOS与飞腾云联袂以模块化方案大幅加速音频产品落地
经验分享·嵌入式硬件·mcu·自然语言处理·音视频·腾讯会议·游戏机
美摄科技4 小时前
H5短视频SDK,赋能Web端视频创作革命
前端·音视频
Tracy9734 小时前
XMSRC4194_VC1:4通道192KHz ASRC音频采样率转换器产品介绍
嵌入式硬件·音视频·智能硬件·xmos模组固件
EasyCVR16 小时前
智能守护校园:视频汇聚平台EasyCVR如何构建校园消防安全新防线
音视频