在FPGA中實現3A演算法的方案

2021-10-08 14:48:30 字數 1088 閱讀 2044

isp是涉及影象感測器視覺領域所必需的乙個環節,而3a演算法在isp流程中是比較基礎和重要的乙個組成。3a演算法是指ae自動**,awb自動白平衡和af自動對焦。3a演算法的硬體解決方案包括專用isp晶元,整合3a演算法的各種soc晶元,fpga+arm/dsp等。

在基於硬體的影象處理領域,fpga使用廣泛,有很多ip廠商都設計了成熟的isp ip核,其中都包括自動**和自動白平衡,而自動對焦則涉及較少。通過對比發現,對於3a演算法的實現方案具有乙個共同特點:在fpga中僅實現對影象的各類引數統計,然後通過cpu(arm、mcu、dsp等)獲取這些統計引數,通過特定的3a演算法利用統計引數計算,實現感測器的**時間調節、影象的白平衡調節及鏡頭焦距調節。究其原因,也不難理解,由於3a演算法種類很多,效果和效能各異,很多演算法計算原理都比較複雜,不適合在fpga中實現,對於實時性要求不高的場景,通過cpu來計算完全可以滿足使用需求。

下面列舉幾個廠商的實現方案框圖。

1、omnitek(現被intel收購)

4、公尺爾科技

顯然,以上的方案非常適合在zynq,zynq ultrascale+這類整合arm和fpga的soc晶元來實現。fpga部分做影象引數統計,arm部分做3a演算法實現。

3a演算法需要統計哪些影象引數?以xylon的isp ip核為例,從ip核手冊中可以找到自動**和自動白平衡所需統計的影象引數如下:

可以參照上圖的內容在fpga中設計乙個影象引數統計模組。 

Linux安全模型中的3A

uid user id gid group id 建立使用者時會自動建立同名的使用者組 乙個程式訪問乙個檔案,需要看執行程式的使用者身份來決定是否可以訪問該檔案。根據規定,普通使用者的uid必須大於499且不能和已存在的uid重複。但是我們通過看useradd 選項可以發現 o,non unique...

用Bresenham演算法在FPGA上實現小數分頻器

最近朋友問了乙個問題,輸入時鐘是33mhz,要分出一路2.048mhz的時鐘來,要求相位抖動盡可能小。我想到可以用計算機圖形學中繪製直線的bresenham演算法來解決,獲得成功。輸入時鐘是33000khz,輸出時鐘是2048khz,好比從原點畫一條到 33000,2048 的直線,用輸入時鐘驅動畫...

用Bresenham演算法在FPGA上實現小數分頻器

最近朋友問了乙個問題,輸入時鐘是33mhz,要分出一路2.048mhz的時鐘來,要求相位抖動盡可能小。我想到可以用計算機圖形學中繪製直線的bresenham演算法來解決,獲得成功。輸入時鐘是33000khz,輸出時鐘是2048khz,好比從原點畫一條到 33000,2048 的直線,用輸入時鐘驅動畫...