• 未分类

音视频入门01认识RGB

音视频入门文章目录

RGB 简介

RGB 色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB 即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

RGB格式

RGB16 格式

RGB16 数据格式主要有两种:RGB565 和 RGB555。

1. RGB565

每个像素用 16 比特位表示,占 2 个字节,RGB 分量分别使用 5 位、6 位、5 位。

高字节 低字节
R R R R R G G G G G G B B B B B

得到 RGB565 各分量的值:

#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (color & RGB565_MASK_RED) >> 11; // 取值范围0-31
G = (color & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = color & RGB565_MASK_BLUE; // 取值范围0-31


#define RGB(r,g,b) (unsigned int)( (r|0x08 << 11) | (g|0x08 << 6) | b|0x08 )
#define RGB(r,g,b) (unsigned int)( (r|0x08 << 10) | (g|0x08 << 5) | b|0x08 )

2. RGB555

每个像素用 16 比特位表示,占 2 个字节,RGB 分量都使用 5 位(最高位不用)。

高字节 低字节
X R R R R R G G G G G B B B B B (X表示不用,可以忽略)

得到 RGB555 各分量的值:

#define RGB555_MASK_RED 0x7C00
#define RGB555_MASK_GREEN 0x03E0
#define RGB555_MASK_BLUE 0x001F
R = (color & RGB555_MASK_RED) >> 10; // 取值范围0-31
G = (color & RGB555_MASK_GREEN) >> 5; // 取值范围0-31
B = color & RGB555_MASK_BLUE; // 取值范围0-31

RGB24 格式

RGB24 图像每个像素用 24 比特位表示,占 3 个字节,注意:在内存中 RGB 各分量的排列顺序为:BGR BGR BGR ……

高字节 低字节
B B B B B B B B G G G G G G G G R R R R R R R R

得到 RGB 各分量的值:

B = (color & 0xFF0000) >> 16;
G = (color & 0x00FF00) >> 8;
R = color & 0x0000FF;

RGB32 格式

RGB32 图像每个像素用 32 比特位表示,占 4 个字节,R,G,B 分量分别用 8 个 bit 表示,存储顺序为 B,G,R,最后 8 个字节保留。注意:在内存中 RGB 各分量的排列顺序为:BGRX BGRX BGRX ……

高字节 低字节
B B B B B B B B G G G G G G G G R R R R R R R R X X X X X X X X (X表示不用,保留字节)

得到 RGBX 各分量的值:

B = (color & 0xFF000000) >> 24;
G = (color & 0x00FF0000) >> 16;
R = (color & 0x0000FF00) >> 8;
X = color & 0x000000FF;

ARGB32

本质就是带 alpha 通道的 RGB24,与 RGB32 的区别在与,保留的 8 个 bit 用来表示透明,也就是 alpha 的值。

高字节 低字节
B B B B B B B B G G G G G G G G R R R R R R R R A A A A A A A A

得到 RGBA 各分量的值:

B = (color & 0xFF000000) >> 24;
G = (color & 0x00FF0000) >> 16;
R = (color & 0x0000FF00) >> 8;
A = color & 0x000000FF;

百度百科 RGB
图解RGB565、RGB555、RGB16、RGB24、RGB32、ARGB32等格式的区别
视音频数据处理入门:RGB、YUV像素数据处理

联系作者:


【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据