一.光源篇windows
1.標準光源
標準光源是指模擬各類環境光線下的人造光源,讓生產工廠或實驗室非現場也能得到與這些特定環境下的光源基本一致的照明效果。標準光源一般安裝在標準光源箱內,主要用於檢測物品的顏色誤差。
人造的標準光源主要有以下10種類型:數組
2. 真實光源(場景)
在實驗室模擬的光源只是便於測試進而對其進行了簡化,而在實際中場景和光源每每更加複雜。
a. 室外場景
陽光直射,陰影/多雲,半陰影,黃昏/傍晚,夜晚,雪天等等;
b. 室內場景
日光燈,A光源,混合光源,弱光,暗室等等。微信
在調試的時候必定要牢記標準光源,要明確知道某種場景對應某種標準光源,只有這樣,調試的時候才能駕輕就熟,不至於找不到方向。
二.工具篇
熟話說,工欲善其事必先利其器,下面介紹調試的工具:
1. 軟件工具
a. 調試工具:
在調試的時候Chromatix tools 的PC版或是Mobile版本是必備的, PC版本功能很強大,能夠調試的很細節,可是比較繁瑣,對調試設備的要求高;Mobile 版本通常適合初步調試,只是截取了PC版功能調試的一部分,固然最大的好處是所見即所得;建議在調試的時候,兩個工具能結合使用,發揮各自所長。
b. 編譯工具:
無論使用PC 仍是Mobile工具,最終都要經過Chromatix tools PC端軟件生成頭文件,而此工具目前只有windows版本,爲了不不一樣平臺之間切換,浪費時間,通常最好在windows下編譯,而後push到手機中。此編譯工具網上不少,找一個最適合本身的使用。
2. 硬件工具
下圖列出了所需的工具以及用途說明:app
3. 輔助工具
Benchmark所需樣機,圖片等。
三.工做流程篇
這裏的流程是根據咱們公司實際狀況,結合本身調試所作的簡單總結。
1. 工做流程圖:
2. 調試測試流程圖:
圖三 調試測試互動流程圖
3. 效果優化以及測試ide
四.代碼篇
1. 代碼備份
Camera 在優化的過程當中,每每要優化十多個階段,每一個階段的代碼必定要有所備份,強烈建議用GIT 備份,追蹤能力強,還原簡單,若每一個階段的修改都加了備註,更加會一目瞭然;而SVN追蹤太差,還原能力太弱,在這種頻繁更新的代碼上可操做性會大打折扣;也有的同窗習慣用複製複製複製,到最後本身都不知因此。
2.命名規則
a.新添加模組
大致上,新添加模組命名規則以IC名稱+模組廠+先後攝 (後攝爲main,前攝省略)爲主,例如:
前攝:gc2365_byd;
後攝:gc2365_byd_man;
b.宏命名規則
由所有大寫,下劃線,數字組成;單詞要能基本表達功能說明,
例如:差值30W到200W #define INTERPOLATION_03M_TO_2M
差值200W到500W #define INTERPOLATION_2M_TO_5M
量產項目後期維護,保持老的規則,新項目嚴格按照新命名規格。
3.代碼整理
在具體項目的時候,每每是同一個IC,不用模組廠家會打樣;而同一個模組,不一樣項目會用,這樣就形成了代碼之間混用,進而混亂。
針對這些狀況,在整理代碼的時候,必定要遵循命名規則;同時兼顧項目分支,好比同一個模組,在不一樣項目上使用,可能參數會有差異,這樣就能夠經過項目分支來解決。
4. 代碼同步及更新
調試過的模組要及時更新,在不一樣項目、平臺間要及時同步,保證代碼一致性和及時性。
效果一旦確認,代碼上庫後,除非重大bug或是測試部提出的bug,就不要隨意修改,省得混亂不堪。
五.規格書篇
1. IC datasheet
IC Datasheet 是對IC 作了詳細的使用說明的,咱們調試模組的時候,先要對照datasheet,檢查幾個簡單要點:
適配電壓;
IIC地址,Driver ID;
數據位/MIPI設置;
最大支持的曝光gain值;
更高階一點的,驅動能力,mirror/flip等等。
2. 模組規格書
檢查模組規格書和代碼中電源、地址、ID、MIPI數組等的指標設置是否和IC datasheet 一致,如若不一致,搞清楚緣由;不是必須得100%和IC datasheet一致,好比,大多數狀況下,DVDD和IOVDD都須要1.8v電壓,在作模組的時候,這兩個就能夠接一塊兒。
檢查模組規格書是否和原理圖一致。
不一致的時候,必定要和模組廠,IC原廠,硬件人員溝通,消除疑惑。
3.來料整理
這個小標題並不是是指生產來料,而是指從外界獲取的資料。
通常來說,咱們會從模組廠獲取模組規格書,PCB,原理圖;從IC原廠哪裏獲取IC datasheet,驅動源碼。全部這些資料,必定要整理成單獨的文件夾,方便查詢。工具
六.驅動篇
因爲Chromatix參數文件變更很大,本驅動規則說明以驅動配置爲基準。
1. 代碼添加規則
a. device-vendor.mk
此mak中須要添加camera驅動文件名稱,原則上sensor驅動 和效果參數,包括AF參數、驅動要放在一塊兒,這樣總體性就很好,不至於散亂,以下:
# kingsun beck add
MM_CAMERA += libactuator_dw9714_byd_8m
MM_CAMERA += libactuator_dw9714_byd_8m_camcorder
MM_CAMERA += libactuator_dw9714_byd_8m_camera
MM_CAMERA += libmmcamera_ov8856_byd_main
MM_CAMERA += libchromatix_ov8856_byd_main_common
MM_CAMERA += libchromatix_ov8856_byd_main_preview
MM_CAMERA += libchromatix_ov8856_byd_main_default_video
MM_CAMERA += libchromatix_ov8856_byd_main_snapshot學習
b. sensor_init.c
在此文件中加載camera模組,以下所示:測試
#define BOARD_SENSORS \
"ov8856_byd_main", \
"gc5005_cxt_main", \
"hi553_byd", \
"gc2365_byd_main", \
"gc2365_byd", \
"gc0339_8909",優化
如上例所示,應秉承由大像素到小像素,由後攝到前攝的原則。
2. 註釋規則
a. 經常使用註釋
如修改鏡像,就能夠添加:/*bk20160706 modified for camera mirro/flip*/
總之,要求用語明確,具備可追溯性。
b. Camera 模組全註釋
示例以下:debug
F4_6.0:
front 30-to-200W GC0339 0x42 0xc8 chengxiang FF C00300A
back 200-to-500W GC2365 0x6e 0x2365 helitai FF UGX2432M
F6_6.0:
front 500-to-800W HI553 0x40 0x0553 helitai FF BOCP553-HI8310M
back 800-to-1200W GC8024 0x6e 0x8024 chengxiang FF C00303A
原則上要求明確,項目,先後攝,差值,模組IC,地址,ID,模組廠,定焦/聚焦,模組名稱等信息。
3. Xxx_lib.c 基本配置
a. 上電規則
先系統電壓,再控制信號。
b. Camera 方向
Camera的方向關係到成像的方向,不只僅是camera 應用,不少用到攝像頭的應用都會應用獲得,如QQ,微信,易信等等;也許你設置成270,camera應用預覽方向是對了,可是別的應用就不必定了,因此必須按照規則設置。
規則以下:
後攝:.sensor_mount_angle = 90
前攝:.sensor_mount_angle = 270
c. 曝光設置
在sensor_lib_ptr 結構體中,必須註釋掉.sync_exp_gain = 1,不然會有曝光異常。
4. 冗餘代碼
Debug所用的冗餘代碼,要及時清理;若是是後續還有debug用的,建議加入宏來管控。
5. camera缺省值設置
設置以下:
a. hal層 硬件抽象層HAL(初始化,第三方等沒有顯式調用的時候生效),代碼位置以下: hardware/qcom/camera/QCamera2/HAL/QCameraParameters.cpp b. SnapdragonCamera應用 咱們的源代碼應用SnapdragonCamera (顯式調用生效),代碼位置以下: packages/apps/SnapdragonCamera/res/value/qcomstrings.xml (qcomarrays.xml定義值) 六.如何快速檢驗camera 在項目進度的壓力下,通常每每要先確認模組是否可用,因此必定要學會如何快速檢驗camera,方便採購。 在把sensor點亮,預覽正常的狀況下,檢查: 1. 清晰度: 若是畫面很模糊的話,通常來說,經過調試參數也不會好太多,換模組試試,若是換了多顆模組仍是如此,那就聯繫模組廠,果斷換鏡頭。 2. 炫光: 在室內對着燈管或是白熾燈轉動手機不一樣角度,看看是否有炫光,炫光是否嚴重。 3. 鏡頭畸變: 看菱角分明的物體或是特定測試圖紙,看是否有畸變。 4. Camera開孔是否匹配: 檢查預覽窗體是否有被觸摸蓋板遮擋,和結構或是硬件確認問題。 5. 電噪: 手離鏡頭一到二釐米,擋住鏡頭,看是否有電噪;若是有的話,找硬件確認電源穩定性;若是硬件沒有問題,看是否模組有問題,和模組廠溝通解決。 6. DVDD是否正確: 手離鏡頭一到二釐米,擋住鏡頭,看是否有橫條紋,若是有通常是DVDD不對,請硬件幫忙確認。