**:
一.光源篇
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. 硬體工具
下圖列出了所需的工具以及用途說明:
3. 輔助工具
benchmark所需樣機,等。
三.工作流程篇
這裡的流程是根據我們公司實際情況,結合自己除錯所做的簡單總結。
1. 工作流程圖:
2. 除錯測試流程圖:
圖三 除錯測試互動流程圖
3. 效果優化以及測試
四.**篇
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一致,比如,大多數情況下,***d和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 模組全注釋
示例如下:
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
Android 高通平台Camera除錯
1.af除錯部分 1 通過屬性控制 af log控制 setprop persist.vendor.camera.loginfomask 0x8000000 af info level log setprop persist.vendor.camera.lo erbosemask 0x8000000...
高通功耗除錯5之Camera功耗除錯
1.刪除掉所有不必要的log,camera應用場景的時候因為log過多會導致系統功耗上公升很多。要減少不必要log 輸出,或者直接disable logd。2.綜合考量功耗和效能,比如對於fps,可以低於30fps以取得更低功耗。需要找camera vendor提供更低幀率 的設定。對於sensor...
高通平台Camera 框架簡介
接觸高通平台 camera 不長時間,了解的不夠深入,下面個人所了解內容的是基於高通平台的 camera 有的地方能描述不一定會很清楚,以後會慢慢補充!一 框架介紹 package framwork jni camera.cpp cameraclient cameraservice hal kern...