音视频基础知识-RGB

音视频基础知识-RGB

1)RGB基础知识

1.RGB简介

RGB色彩就是常说的光学三原色,R代表Red(红色),G代表Green(绿色),B代表Blue(蓝色)。, 每一种颜色值的范围是0~255,所以每一个颜色用1个字节=8个bit便可完全在计算机内部表示出来。而R, G, B不同的组合几乎产生了所有的颜色,当然自然界中的颜色比这些要远远丰富很多,采用R, G, B的方式,如果以24色深表示的话,在计算机中可表示的颜色数量有2^8* 2 ^8 * 2 ^8 = 16777216中颜色。
在这里插入图片描述

2.常见颜色和透明度
  • 颜色
颜色名称红色值 Red绿色值 Green蓝色值 Blue
黑色000
蓝色00255
绿色02550
青色0255255
红色25500
亮紫色(洋红色)2550255
黄色2552550
白色255255255
  • 常用阶次透明度16进制对照表
透明度16进制表示
100%00
95%0D
90%1A
85%26
80%33
75%40
70%4D
65%59
60%66
55%73
50%80
45%8C
40%99
35%A6
30%B3
25%BF
20%CC
15%D9
10%E6
5%F2
0%FF
3.高位字节和低位字节

计算机内存中一个字节的位相当于二进制数的位,这意味着最低有效位表示1,倒数第二个有效位表示2×1或2,倒数第三个有效位表示2×2×1或4,依此类推。如果用内存中的两个字节表示一个16位的数,那么其中的一个字节将存放最低的8位有效位,而另一个字节将存放最高的8位有效位,见图。存放最低的8位有效位的字节被称为最低有效位字节或低位字节,而存放最高的8位有效位的字节被称为最高有效位字节或高位字节。
在这里插入图片描述

4.RGB格式
1.像素格式

RGB 像素格式中的 bit 存储的是每一个像素点的 R,G,B 值。

1.RGB16格式

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

  • RGB565
    一个像素用16个bit = 2个字节表示 ,R=5、G=6、B=5。其中, 低字节的前5位用来表示B(BLUE),低字节的后三位+高字节的前三位用来表示G(Green),高字节的后5位用来表示R(RED)。
    在这里插入图片描述
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = wPixel & 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 )
  • RGB555
    一个像素用16个bit = 2个字节,但是最高位不用,R=5 G=5 B=5
    在这里插入图片描述
#define RGB555_MASK_RED 0x7C00
#define RGB555_MASK_GREEN 0x03E0
#define RGB555_MASK_BLUE 0x001F
R = (wPixel & RGB555_MASK_RED) >> 10; // 取值范围0-31
G = (wPixel & RGB555_MASK_GREEN) >> 5; // 取值范围0-31
B = wPixel & RGB555_MASK_BLUE; // 取值范围0-31
2.RGB24(RGB888)

一个像素用24个bit = 3个字节来表示,R=8 G=8 B=8
在这里插入图片描述

根据RGB565的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为int. 那么则有:

R = color & 0x0000FF00; 
 
G = color & 0x00FF0000; 
 
B = color & 0xFF000000;
3.RGB32

一个像素用32个bit = 4个字节 来表示,R=8 G=8 B=8,存储顺序为B, G, R,最后8个字节保留。
在这里插入图片描述

 根据RGB565的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为short. 那么则有:

R = color & 0x0000FF00; 
 
G = color & 0x00FF0000; 
 
B = color & 0xFF000000; 
 
A = color & 0x000000FF;

2)参考资料

像素格式RGB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值