RGB、YUV像素基础知识及处理数据
RGB、YUV像素基礎(chǔ)知識(shí)及處理數(shù)據(jù)
目錄
轉(zhuǎn)載自Gemfield的知乎文章:從YUV到RGB
轉(zhuǎn)載自雷神的博客:視音頻數(shù)據(jù)處理入門:RGB、YUV像素?cái)?shù)據(jù)處理
1. RGB
1. RGB基本概述
RGB色彩模式是工業(yè)界的一種顏色標(biāo)準(zhǔn),是通過對(duì)紅?、綠(G)、藍(lán)(B)三個(gè)顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍(lán)三個(gè)通道的顏色,這個(gè)標(biāo)準(zhǔn)幾乎包括了人類視力所能感知的所有顏色,是運(yùn)用最廣的顏色系統(tǒng)之一。
通常情況下,RGB各有256級(jí)亮度,用數(shù)字表示為從0、1、2…直到255,所以每一個(gè)顏色用1個(gè)字節(jié)=8bit就可以完全在計(jì)算機(jī)內(nèi)部表示出來。按照計(jì)算,256級(jí)的RGB色彩總共能組合出約1678萬種色彩,即256×256×256=16777216。通常也被簡(jiǎn)稱為1600萬色或千萬色,也稱為24位色(2的24次方)。
比如一張1080p的圖片,代表著有 1920 * 1080 個(gè)像素點(diǎn)。如果采用 RGB 編碼方式,每個(gè)像素點(diǎn)都有紅、綠、藍(lán)三個(gè)原色,其中每個(gè)原色占用 1 個(gè)字節(jié),每個(gè)像素占用3個(gè)字節(jié),則一張1080p的圖片就占用 1920 * 1280 * 3 / 1024 / 1024 = 7.03125MB 存儲(chǔ)空間。比如著名的BMP位圖就是這樣保存圖片的(所謂的RGB888格式,或者24位位圖格式)。
圖片的信息量有7.03125MB并不代表對(duì)應(yīng)的圖片文件的大小就是7.03125MB,因?yàn)閮牲c(diǎn):
總體上圖片文件肯定是變小了。而壓縮又主要分為兩種:
2. RGB的格式
簡(jiǎn)單來講,RGB在計(jì)算機(jī)中的表示主要分為兩大類,一種是索引形式,一種是像素形式。
3. RGB圖片中的CHW和BGR概念
2. YUV
1. YUV基本概述
大家已經(jīng)知道的是,YUV 編碼采用了明亮度和色度表示每個(gè)像素的顏色。其中Y表示明亮度(Luminance、Luma),也就是灰階值。U、V 表示色度(Chrominance 或 Chroma)。Y’UV是工程師希望在黑白基礎(chǔ)結(jié)構(gòu)中使用彩色電視時(shí)發(fā)明的。他們需要一種與黑白(B&W)電視兼容的信號(hào)傳輸方法,同時(shí)又能增加色彩。亮度分量已經(jīng)以黑白信號(hào)形式存在,于是他們添加了UV信號(hào)作為解決方案。
Y’UV模型根據(jù)一個(gè)亮度分量(Y’)和兩個(gè)色度分量(分別稱為U(藍(lán)色投影)和V(紅色投影))定義了色彩空間。Y’UV顏色模型用于PAL 復(fù)合彩色視頻(不包括PAL-N)標(biāo)準(zhǔn)中。先前的黑白系統(tǒng)僅使用亮度(Y’)信息。顏色信息(U和V)是通過副載波單獨(dú)添加的,因此黑白接收器仍然能夠以接收器的本機(jī)黑白格式接收和顯示彩色圖片。
Y’代表亮度分量(亮度),U和V代表色度(顏色)分量;術(shù)語Y’UV,YUV,YCbCr,YPbPr等的范圍有時(shí)是模棱兩可和重疊的。歷史上,術(shù)語YUV和Y’UV用于電視系統(tǒng)中顏色信息的特定模擬編碼,而YCbCr用于顏色信息的數(shù)字編碼,適用于視頻和靜止圖像壓縮和傳輸,例如MPEG和JPEG。如今,術(shù)語YUV在計(jì)算機(jī)行業(yè)中通常用于描述使用YCbCr編碼的文件格式。
YUV不是一種格式,而是有多種細(xì)分格式。從存儲(chǔ)格式維度和采樣格式維度來分別介紹下。
2. YUV的存儲(chǔ)格式
3. YUV的采樣格式
4. 主流的YUV420格式
5. YUV到RGB的轉(zhuǎn)換
1. Y’UV420p(和Y’V12或YV12)到RGB888的轉(zhuǎn)換
Y’UV420p是平面格式,這意味著Y’,U和V值組合在一起而不是散布在一起。這樣做的原因是,通過將U和V值分組在一起,圖像變得更加可壓縮。當(dāng)給定Y’UV420p格式的圖像數(shù)組時(shí),所有Y’值首先出現(xiàn),然后是所有U值,最后是所有V值。
Y’V12格式本質(zhì)上與Y’UV420p相同,但是它切換了U和V數(shù)據(jù):Y’值后跟V值,最后是U值。只要注意從適當(dāng)?shù)奈恢锰崛和V值,就可以使用相同的算法處理Y’UV420p和Y’V12。
與大多數(shù)Y’UV格式一樣,Y’值與像素一樣多。在X為像素?cái)?shù),則數(shù)組中的前X個(gè)元素是對(duì)應(yīng)于每個(gè)單獨(dú)像素的Y’值。但是,U和V值只有Y的四分之一,這意味著每個(gè)U和V元素均適用于四個(gè)像素。
如上圖所示,Y’UV420中的Y’,U和V分量分別在順序塊中編碼。為每個(gè)像素存儲(chǔ)一個(gè)Y’值,而為每個(gè)2×2正方形像素塊分別存儲(chǔ)一個(gè)U值和一個(gè)V值。上圖中使用相同的顏色顯示了相應(yīng)的Y’,U和V值。從設(shè)備逐行讀取字節(jié)流,Y’塊位于位置0,U塊位于x×y(在此示例中為6×4 = 24),V塊位于位置x ×y +(x×y)/ 4(這里6×4 +(6×4)/ 4 = 30)。
3. RGB、YUV像素?cái)?shù)據(jù)處理
視音頻數(shù)據(jù)處理入門:RGB、YUV像素?cái)?shù)據(jù)處理
總結(jié)
以上是生活随笔為你收集整理的RGB、YUV像素基础知识及处理数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视音频数据处理入门
- 下一篇: PCM音频基础知识及采样数据处理