1. 程式人生 > >RAW RGB與RGB

RAW RGB與RGB

網上關於RGB Raw data的介紹的比較混亂,現整理了一下給大家發出來,

先看看網上的一種說法“攝像頭的資料輸出格式一般分為CCIR601、CCIR656、RAW RGB等格式,此處說的RGB格式應該就是CCIR601或CCIR656格式。而RAW RGB格式與一般的RGB格式是有區別的。”

大嘴評述:這裡的攝像頭嚴格來說應該是感測器(sensor),個人覺得CCIR601和CCIR656更應該看做是一種標準和計算方式,而不應該是資料格式,這裡我覺得有些誤導,不必生就,具體關於CCIR601和CCIR656感興趣的朋友請自行查閱資料,這裡只做簡單介紹。

我們知道,Sensor的感光原理是通過一個一個的感光點對光進行取樣和量化,但在Sensor中,每一個感光點只能感光RGB中的一種顏色。所以,通常所說的30萬畫素或130萬畫素等,指的是有30萬或130萬個感光點。每一個感光點只能感光一種顏色。

但是,要還原一個真正影象,需要每一個點都有RGB三種顏色,所以,對於CCIR601或656的格式,在Sensor模組的內部會有一個ISP模組,會將Sensor採集到的資料進行插值和特效處理,例如:如果一個感光點感應的顏色是R,那麼,ISP模組就會根據這個感光點周圍的G、B感光點的數值來計算出此點的G、B值,那麼,這一點的RGB值就被還原了,然後在編碼成601或656的格式傳送給Host。

而RGB RAW格式的Sensor則是將每個感光點感應到的RGB數值直接傳送給Host,由Host來進行插值和特效處理。由此可見RGB RAW DATA才是真正的原始資料。

RGB RAW DATA是指原始的資料,單個pixle只能感應一種顏色。

如果這個原始資料的排列格式是 RGRG/GBGB排列的,我們叫做 Bayer pattern(這個最最常見)。所以 Bayer RGB是屬於 RGB RAW data的,但是 RGB RAW data不一定是bayer pattern,不同廠家的sensor,其RGB RAW DATA排列是不同的, 不過對於我們來說不必過於關心掃描格式,反正廠家都會提供API.

下圖是找到了一個從14bit RGB RAW DATA獲取10bitRGB RAW DATA的簡單示意流程圖,

【10bit Raw RGB: 就是說用10bit 去表示一個R, G, 或者B, 通常的都是用8bit 的. 所以你後面處理時要把它轉換為8bit 的, 比較簡單的方法就是將低兩位去掉, 因為低兩位的訊號代表範圍很小(0~3), 所以可以忽略不計的. 當然, 你也可以根據轉換表去轉換, 那比較複雜.】

感測器原始影象格式:Bayer <wbr>RGB <wbr>和RGB <wbr>RAW