1. 程式人生 > >【VS開發】【影象處理】RGB各種格式

【VS開發】【影象處理】RGB各種格式

RGB格式

RGB組合格式

名字

RGB組合格式

描述

此格式用來匹配PC圖形幀快取。每個畫素佔據8,16,24或32個位,他們都是組合畫素格式,其意為在記憶體中所有畫素資料都是相鄰排列的。當使用這些格式之一時,驅動應該上報顏色空間為V4L2_COLORSPACE_SRGB。

表2.6 組合RGB影象格式

定義 Byte 0 Byte 1 Byte 2 Byte 3
V4L2_PIX_FMT_RGB332 RGB1 r2 r1 r0 g2 g1 g0 b1 b0 - - -
V4L2_PIX_FMT_RGB444 R444 g3 g2 g1 g0 b3 b2 b1 b0 a3 a2 a1 a0 r3 r2 r1 r0 - -
V4L2_PIX_FMT_RGB555 RGBO g2 g1 g0 b4 b3 b2 b1 b0 a r4 r3 r2 r1 r0 g4 g3 - -
V4L2_PIX_FMT_RGB565 RGBP g2 g1 g0 b4 b3 b2 b1 b0 r4 r3 r2 r1 r0 g5 g4 g3 - -
V4L2_PIX_FMT_RGB555X RGBQ a r4 r3 r2 r1 r0 g4 g3 g2 g1 g0 b4 b3 b2 b1 b0 - -
V4L2_PIX_FMT_RGB565X RGBR r4 r3 r2 r1 r0 g5 g4 g3 g2 g1 g0 b4 b3 b2 b1 b0 - -
V4L2_PIX_FMT_BGR666 BGRH b5 b4 b3 b2 b1 b0 g5 g4 g3 g2 g1 g0 r5 r4 r3 r2 r1 r0 -
V4L2_PIX_FMT_BGR24 BGR3 b7 b6 b5 b4 b3 b2 b1 b0 g7 g6 g5 g4 g3 g2 g1 g0 r7 r6 r5 r4 r3 r2 r1 r0 -
V4L2_PIX_FMT_RGB24 RGB3 r7 r6 r5 r4 r3 r2 r1 r0 g7 g6 g5 g4 g3 g2 g1 g0 b7 b6 b5 b4 b3 b2 b1 b0 -
V4L2_PIX_FMT_BGR32 RGR4 b7 b6 b5 b4 b3 b2 b1 b0 g7 g6 g5 g4 g3 g2 g1 g0 r7 r6 r5 r4 r3 r2 r1 r0 a7 a6 a5 a4 a3 a2 a1 a0
V4L2_PIX_FMT_RGB32 RGB4 a7 a6 a5 a4 a3 a2 a1 a0 r7 r6 r5 r4 r3 r2 r1 r0 g7 g6 g5 g4 g3 g2 g1 g0 b7 b6 b5 b4 b3 b2 b1 b0

第7位是符號位,a(alpha)的值在讀取驅動時並未定義,所以編寫驅動時忽略它吧,除非是在Overlay或輸出Overlay時候協商了透明度,又或是在使用V4L2_CID_ALPHA_COMPONENT控制視訊捕捉時候設定透明度部分。

例2.2 V4L2_PIX_FMT_BGR24 4 x 4畫素影象

start + 00:    B00    G00    R00    B01    G01    R01    B02    G02    R02    B03    G03    R03
start + 12:    B10    G10    R10    B11    G11    R11    B12    G12    R12    B13    G13    R13
start + 24:    B20    G20    R20    B21    G21    R21    B22    G22    R22    B23    G23    R23
start + 36:    B30    G30    R30    B31    G31    R31    B32    G32    R32    B33    G33    R33

V4L2_PIX_FMT_SBGGR8('BA81')

名字

V4L2_PIX_FMT_SBGGR8 貝爾RGB格式

描述

這一般是數字相機的本地格式,與CCD裝置的感測器陣列對應。每個畫素只有一個值或是紅色、綠色、藍色,丟失的部分必須由相鄰畫素插值而來。第一行從左到右由藍色和綠色組成,第二行是綠色和紅色,每兩行/列以此類推。

例2.3 V4L2_PIX_FMT_SBGGR8 4 x 4畫素影象

start + 0:    B00    G01    B02    G03
start + 4:    G10    R11    G12    R13
start + 8:    B20    G21    B22    G23
start +12:    G30    R31    G32    R33

V4L2_PIX_FMT_SGBRG8 ('GBRG')

名字

V4L2_PIX_FMT_SGBRG8 貝爾RGB格式

描述

貝爾格式描述基本相同,只是畫素排列規則不同。此格式是第一行從做到有包含綠色和藍色,第二行是紅色和綠色,每兩行/列依此類推。

例2.4 V4L2_PIX_FMT_SGBRG8 4 x 4畫素影象

start + 0:    G00    B01    G02    B03
start + 4:    R10    G11    R12    G13
start + 8:    G20    B21    G22    B23
start +12:    R30    G31    R32    G33

V4L2_PIX_FMT_SGRBG8 ('GRBG')

名字

V4L2_PIX_FMT_SGRBG8 貝爾RGB格式

描述

第一行從左到右包含綠色和藍色,第二行包含紅色和綠色,每兩行/列依此類推。

例2.5 V4L2_PIX_FMT_SGRBG8 4 x 4畫素影象

start + 0:    G00    R01    G02    R03
start + 4:    R10    B11    R12    B13
start + 8:    G20    R21    G22    R23
start +12:    R30    B31    R32    B33

V4L2_PIX_FMT_SRGGB8 ('RGGB')

名字

V4L2_PIX_FMT_SRGGB8 貝爾RGB格式

描述

第一行從左到右包含紅色和綠色,第二行包含綠色和藍色,每兩行/列依此類推。

例2.6 V4L2_PIX_FMT_SRGGB8 4 x 4畫素影象

start + 0:    R00    G01    R02    G03
start + 4:    G10    B11    G12    B13
start + 8:    R20    G21    R22    G23
start +12:    G30    B31    G32    B33

V4L2_PIX_FMT_SBGGR16 ('BYR2')

名字

V4L2_PIX_FMT_SBGGR16 貝爾RGB格式

描述

此格式與V4L2_PIX_FMT_SBGGR8很相似,不同是每個畫素擁有16位深度。低資料儲存在小地址記憶體中(低位機)。實際取樣精度可能會比16位低,必須每個畫素10位,值範圍0~1023(如MT9T001)。

例2.7 V4L2_PIX_FMT_SBGGR16 4 x 4畫素影象

start + 0:    B00low    B00high    G01low    G01high    B02low    B02high    G03low    G03high
start + 8:    G10low    G10high    R11low    R11high    G12low    G12high    R13low    R13high
start +16:    B20low    B20high    G21low    G21high    B22low    B22high    G23low    G23high
start +24:    G30low    G30high    R31low    R31high    G32low    G32high    R33low    R33high

V4L2_PIX_FMT_SRGGB10 ('RG10'), V4L2_PIX_FMT_SGRBG10 ('BA10'), V4L2_PIX_FMT_SGBRG10 ('GB10'), V4L2_PIX_FMT_SBGGR10 ('BG10')

名字

V4L2_PIX_FMT_SRGGB10 ('RG10'), V4L2_PIX_FMT_SGRBG10 ('BA10'), V4L2_PIX_FMT_SGBRG10 ('GB10'), V4L2_PIX_FMT_SBGGR10 ('BG10') 10bit貝爾格式擴充套件的16位格式

描述

這4個畫素格式是每個顏色10位的raw sRGB/貝爾格式。每個顏色部分都儲存在16位欄位中,高6位是不用的,填充0。每n畫素行包含n/2個綠色取樣和n/2個藍色取樣或紅色取樣,紅色和藍色行交替。位元組以低位機序列儲存。他們通常是來描述如GRGR...BGBG...或RGRG...GBGB...等等。以下是其中的一個例子。

例2.8 V4L2_PIX_FMT_SBGGR10 4 x 4畫素影象

每個代表一個位元組,高位元組的高6位為0
start + 0:    B00low    B00high    G01low    G01high    B02low    B02high    G03low    G03high
start + 8:    G10low    G10high    R11low    R11high    G12low    G12high    R13low    R13high
start +16:    B20low    B20high    G21low    G21high    B22low    B22high    G23low    G23high
start +24:    G30low    G30high    R31low    R31high    G32low    G32high    R33low    R33high

V4L2_PIX_FMT_SBGGR10ALAW8 ('aBA8'), V4L2_PIX_FMT_SGBRG10ALAW8 ('aGA8'), V4L2_PIX_FMT_SGRBG10ALAW8 ('agA8'), V4L2_PIX_FMT_SRGGB10ALAW8 ('aRA8')

名字

V4L2_PIX_FMT_SBGGR10ALAW8 , V4L2_PIX_FMT_SGBRG10ALAW8 , V4L2_PIX_FMT_SGRBG10ALAW8 , V4L2_PIX_FMT_SRGGB10ALAW8 10位貝爾格式壓縮至8位。

描述

這些格式是每個顏色10位的raw sRGB/貝爾格式壓縮到8位,使用A-LAW演算法。每個顏色部分在記憶體中佔據8位,其他與V4L2_PIX_FMT_SRGGB8特性類似。

V4L2_PIX_FMT_SBGGR10DPCM8 ('bBA8'), V4L2_PIX_FMT_SGBRG10DPCM8 ('bGA8'), V4L2_PIX_FMT_SGRBG10DPCM8 ('BD10'), V4L2_PIX_FMT_SRGGB10DPCM8 ('bRA8')

名字

V4L2_PIX_FMT_SBGGR10DPCM8, V4L2_PIX_FMT_SGBRG10DPCM8, V4L2_PIX_FMT_SGRBG10DPCM8, V4L2_PIX_FMT_SRGGB10DPCM8 10位貝爾格式壓縮至8位。

描述

使用DPCM將每個顏色部分壓縮至8位。DPCM調整是有損耗的,每個顏色在記憶體中佔用8位,其他部分與V4L2_PIX_FMT_SRGGB10 ('RG10'), V4L2_PIX_FMT_SGRBG10 ('BA10'), V4L2_PIX_FMT_SGBRG10 ('GB10'), V4L2_PIX_FMT_SBGGR10 ('BG10')類似。

V4L2_PIX_FMT_SRGGB12 ('RG12'), V4L2_PIX_FMT_SGRBG12 ('BA12'), V4L2_PIX_FMT_SGBRG12 ('GB12'), V4L2_PIX_FMT_SBGGR12 ('BG12')

名字

V4L2_PIX_FMT_SRGGB12, V4L2_PIX_FMT_SGRBG12, V4L2_PIX_FMT_SGBRG12, V4L2_PIX_FMT_SBGGR12 12位貝爾格式擴充套件為16位

描述

每個顏色12位的raw sRGB/貝爾格式,每個顏色部分被儲存在16位的欄位中,高6位為0。每個n畫素行包含n/2個綠色取樣及n/2個藍色或紅色取樣,紅、藍行交替。位元組按低位機順序儲存在記憶體中,通常用來描述如GEGE...BGBG...或RGRG...RBRB...等。下邊是其中一個的例子。

例2.9 V4L2_PIX_FMT_SBGGR12 4 x 4畫素圖片

start + 0:    B00low    B00high    G01low    G01high    B02low    B02high    G03low    G03high
start + 8:    G10low    G10high    R11low    R11high    G12low    G12high    R13low    R13high
start +16:    B20low    B20high    G21low    G21high    B22low    B22high    G23low    G23high
start +24:    G30low    G30high    R31low    R31high    G32low    G32high    R33low    R33high