音視頻入門-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像素數據處理

聯繫作者:
聯繫作者


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章