camera驅動電源配置 camera驅動

2021-10-17 01:25:07 字數 2456 閱讀 1926

在手機中,我們常將camera直接稱為sensor。

一、sensor的種類

其實這個對於驅動來說基本略知就可以了,處於那種說出來要知道是在說sensor的專業名次這種程度就ok了!一般來說,sensor有兩大類,cmos和ccd。

一般來說,ccd的功耗高,拍攝質量高,造價高,他更適合在數位相機或dv中使用,而我們的手機中,在畫素要求本來就不是苛刻,但是對空間和成本有比較高要求的話,一般都會選擇cmos的攝像頭。它的工作原理很簡單,接收外界光線後轉化為電能,再透過晶元上的模-數轉換器(adc)將獲得的影像訊號轉變為數碼訊號輸出

二、sensor的輸出格式

同樣,sensor的輸出格式也不是單一的,可以分為yuv、jpeg、rgb、raw,這幾種格式。

1、yuv

「y」表示明亮度(luminance、luma),「u」和「v」則是色度、濃度(chrominance、chroma), 一般情況下sensor支援yuv422格式,即資料格式是按y-u-y-v次序輸出的。

2、jpeg

這個不用很介紹,作為一種儲存格式它是非常普遍的,但是作為sensor的輸出格式的話,一般是低解析度的,其自帶jpeg engine,可以直接輸出壓縮後的jpg格式的資料

3、rgb

傳統的紅綠藍格式,比如rgb565.通俗點說它的顏色混合方式就好像有紅、綠、藍三盞燈,當它們的光相互疊合的時候,色彩相混,而亮度卻等於兩者亮度之總和,越混合亮度越高,即加法混合。

4、raw

影象感應器將捕捉到的光源訊號轉化為數碼訊號的原始資料。raw檔案是一種記錄了數位相機感測器的原始資訊,同時記錄了由相機拍攝所產生的一些原資料(metadata,如iso的設定、快門速度、光圈值、白平衡等)的檔案。raw是未經處理、也未經壓縮的格式,可以把raw概念化為「原始影象編碼資料」或更形象的稱為「數字底片」。

好了,介紹完他們的輸出格式之後,我們有樣的疑問,我該選擇哪種格式作為輸出呢?

sensor的輸出格式一般都為yuv的,他的流程是:攝像機的原始資料應該是raw來記錄的,裡面的資料可能會是raw rgb來表示,然後sensor模組裡面自帶的isp會將資料轉換成yuv格式的輸出出來,輸出到我們的ap裡面後dsp會將yuv格式轉換成rgb的,然後在輸出到屏上,如果是拍攝出來的就要經過dsp將格式再轉換成為jpeg的儲存下來。

這就讓我們很費解,既然能夠輸出rgb格式的資料,為什麼又幾經周折,轉換來轉換去,費時費力?在這裡我們就要在**質量和處理速度上做乙個權衡。

首先,如果說資料量最小,那麼莫過於raw格式,但是,資料傳輸過來要經過一次性大量的計算才能將裡面的資訊提取出來,如果你想用,一般5m以上sensor就只輸出raw資料以保證比較快的輸出速度,後端掛乙個dsp來處理輸出的資料。其次是jpeg,資料量也很小,但是同樣要求較快的處理速度。

而rgb和yuv乙個畫素都是占用了2b的大小,但是rgb卻可以資料讀出來直接刷到屏上,為什麼要卻要選擇yuv的呢?原因在於yuv輸出亮度訊號沒有任何損失,而色偏訊號人眼並不是特別敏感,rgb565輸出格式是r5g3 g3b5會丟掉很多原始資訊,所以yuv影象質量和穩定性要比rgb565好的多。

那麼,雖然在一般平台上預設的是yuv的,並不是說他是最好的或不可更改的,我們要根據不同的情況選擇時候實時的輸出格式!

說一說架構格式,非常固定,首先在sensor_cfg.c裡面申明並定義乙個sensor_info_t結構指標,然後就可以在具體的sensor_***.c裡面實現你的驅動**!

除錯sensor常見的問題:

1.讀不到id:需要確認三個電源,power down 和reset的極性,mclk,i2c是否正常開啟。如果這些資訊確認是正確的,還不能讀到id基本可以確認是sensor的硬體問題。

2.能讀到id但是點不亮:這是最常見的情況,這個是時候已經能確認上述的硬體訊號都是正常的,先要看hs/vs/pclk的極性是否配置的正確,是否在預覽前丟了1幀以上,sensor的輸出尺寸是否正確。這些通常需要通過sensor的datasheet來檢視暫存器配置的是否正確。

3.拍照宕機:要確認是否在拍照的時候設定了set_mode(用來設定拍照時的sensor輸出資料大小的設定),memory是否足夠大?

dc_mem = frame_w*frame_h*2 *max((1 + need_rotation),(1+is_jpg)) + 1m根據這個公式算出來,在dc_product_cfg.c中進行配置。

4.花屏:如果是很多綠線的花屏的話那麼通常是hs/vs/pclk的極性配置反了或者驅動電流太小被干擾了,如果是紅藍的顏色反了的那麼是yuv輸出資料反了,在yuv_info中進行配置。

5.分屏:這個是刷屏的時候刷的不是同一幀資料,是lcd的fmark引腳沒有引出來,或者沒有配置。如果lcd沒有這個腳的話,需要估算一下刷屏的時間,然後將sensor輸出的幀率調的跟它匹配。

6.旋**預覽的在startpreview裡的rotation設定成需要的角度,拍照的在_dcamera_dosnapshot裡面將rotation設定成需要的角度,vt在傳給底層引數時將screen2sensor_angle設定為dvt_mw_rotate_90或其他角度。

展訊camera驅動除錯

camera驅動目錄 vendor sprd modules libcamera sensor sensor drv classic galaxycore gc030a kernel drivers misc sprd camera sensor csi2 csi sprd r2p0 csi dri...

Wince5 0 Camera 驅動分析

wince5.0下camera驅動程式分析 2008 01 05 19 48 28 標籤 程式 驅動wince5.0 camera 推送到技術圈 原始出處 作者資訊和本宣告。否則將追究法律責任。1.camera採集動態影象以及顯示的總流程 dma從camera存放動態影象的暫存器將資料傳輸到memo...

Camera驅動開發之降低camera noise

1.通過調整ae pline tabel,將之前該環境下使用較大的gain值,通過調整ae pline table使用比較長的 時間,比較低的sensor gain來改善。2.isp部分增加de noise的力度。室內比較亮,可以考慮de noise做的小一些。室內比較暗,可以考慮de noise做...