1、 數字寬動態
在做數字寬動態時,我想到了3種實現的方法,分別如下:
a、 調節gamma曲線來實現
b、 調節gbce曲線來實現
c、 直方圖均衡化
下面就拿gbce來簡單的講解一下:
gbce曲線如下:
曲線暗部斜率越多,那麼影象暗部提高亮度越高;
中部斜率越大,影象的通透性越好;
亮部斜率越大,影象亮部抑制亮度越強;
通過調節曲線,生成gbce表,分別調節幾組table表,用來作為不同的寬動態等級,然後融合到原始碼裡面。在issdrv_alg2aapi.c裡面的issalg_captaprocessti函式進行修改。
我的是新增乙個函式update_gbce(output_params.iss_drv_config,ti2a_output_params.sensorgain);
2、sensor寬動態
由於專案的需要,需把寬動態的功能實現,於是結合sony提供imx185的寬動態暫存器配置說明文件和sdk3.8原始碼進行相關配置。
1、 配置sensor端暫存器為wdr模式,這個按照sony提供的imx185寬動態暫存器配置說明文件來配置(必須嚴格按照文件來配置)。
2、 設定ae**比為16:1
3、 修改2a相關wdr相關引數
4、 設定isp裡面wdr模組為highquality(這個在isp入口函式處修改,也可以在引數配置檔案裡面修改),配置isp裡面wdr link處理引數(解壓縮資料引數);sdk3.8原始碼不支援wdr與線性模式的實時卻換(每次切換都得重起isp),我們可以修改是否呼叫wdr庫來實現這一功能;
5、 在編譯時一定得把wdr_on改為yes,這個在rule.make裡面修改
開啟wdr之後出現問題:
1、 影象清晰度受損比較大,整體影象給人一種濛濛的感覺,白平衡好像有點不對,影象整體偏綠(偏冷色)。
2、 影象在高亮度和低亮度處會泛紅
3、 丟幀嚴重,配置為25幀的,結果只剩下10幀左右
泛紅可以通過調節相關的sensor暫存器和**步長得到相應的緩解,丟幀(由於比較急,可以幀率配置為50幀,以滿足專案所需的25幀需求,但這不是最終的解決辦法);白平衡重做了很多次,都沒有解決影象白的地方不白的現象。不知道是不是rgb中的幾個分量沒設定好,還是怎麼樣,到目前為此,上面的幾個問題,一直還沒得到完美的解決辦法。
wdr的實現有想過不是用原廠提供的wdr庫,自己去實現
1、 軟體實現,在cameralink裡面把資料流提取來進行兩幀合成一幀,可是這樣需要消耗大量的系統資源,處理時間等,行不通。
2、 加一片fpga晶元,加一片fpga晶元的話那是最好的了,處理速度和效果都很好,而且還能實現其他的很多功能,但增加成本。
DM8127降噪調節 MCTNF調節
sdk3.8release版提供的mctnf 功能存在乙個bug,就是開啟mctnf時,畫面會有橫條紋出現,最新的版本中已經解決掉這個問題。我拿到的是比較老的版本,所以得修改一下原始碼,在source ipnc rdk ipnc mcfw mcfw src bios6 links m3video m...
DM8127 彩轉黑的實現
最近在做dm8127專案,客戶要求具備彩轉黑 黑轉彩功能 dm8127 sdk demo上沒有此功能 思索很久不知道從何下手,後來經過海量資料查閱,終於有了思路。既然是彩轉黑,那麼我把資料流 yuv資料 裡面的色彩分量 uv分量 給弄掉,只保留亮度分量 y分量 不就能夠實現彩轉黑了嘛!黑轉彩就不用說...
imx6PWM學習筆記1
使用zlg的m6708開發板時 核心kernel3.0.15 由於自帶得開開發板系統只有一路pwm,並且該路pwm已經給了lcd作背光調節,為此接下來學習如何將其他io口修改為pwm輸出。首先參考emb hao的部落格 linux系統pwm驅動 在linux核心中有乙個規律,linux核心開發者把通...