【特別說明】
重點參考手冊:
【1】ISP_3A 開發指南
【2】HIISP開發參考
【3】HIMPP IPC V2.0 媒體處理軟件開發參考
1.關於RGB
RGB的不同值只是記錄了不同顏色的亮度值;
如:0x00125897 和 0x00545897,紅色的亮度值不同;
2.海思代碼編程規范:
2.1 關於枚舉:
所有的枚舉都是大寫字母加下划線的方式,最后字母是E,代表是一個枚舉類型如:PLAYLOAD_TYPE_E;
2.2 關於結構體
在結構體的定義末尾是以“S”結尾的。
2.3 變量的開頭
2.3.1 如果變量是枚舉類型的,則以小寫的“en”開頭,如“en”;
2.3.2 結構體變量-以st開頭
2.3.4 結尾描述符-Butt
Butt的值會順延增加,但是不能夠使用
3.VI解析
3.1 MPP初始化
初始化的工作主要是對VB的設置,這是重點需要計算的內容;
其他的按照流程計算就行;
3.2 RGB_BAYER-最原始的RGB RAW格式的圖像
【說明】在選擇YUV422還是選擇YUV420沒有嚴格的限制,只是根據圖像的色彩還原度不同,YUV422的色彩還原度更高,但是對於系統的內存開銷會比較大;
【★★★-經驗值】 在行業內大多數的情況下使用的都是YUV420比較多,這是經驗內容;
3.3.Sensor初始化
【說明】主要使用SAMPLE_VI_CONFIG_S進行初始化sensor的參數;
3.4 啟動初始化內部ISP單元
【說明】主要啟動內部的ISP(Image signal process)內部單元,內部的isp被封裝成了單獨的線程,此時將此線程啟動起來。
3.5 第二步:ISP初始化
3.6 ISP線程啟動
【特別說明】海思並沒有直接將線程啟動起來,需要我們手動去啟動;
原因是:其中一些所需要的參數需要開發人員根據不同的設備進行配置;
我們按照自己的設備進行配置參數,然后配合海思提前打建好的框架進行運行就可以完成產品的功能;
3.7 小結
實際的VI部分包含三部門的內容:
【第一部分內容】sensor的接口對接部分內容
【第二部分內容】
①涉及到3A算法庫的注冊內容,這是海思提前提供了API;
②ISP部分內容,涉及到參數的設置和ISP的啟動;
【第三部分內容】 VI dev 和 channel 通道內容 ;
其中的 “ VI dev” 指的是視頻信號采集的硬件設備;
【特別說明】可以簡單理解一個dev對應一個攝像頭,一個dev對應一個chn;其他的次碼流的擴展Extchn都需要通過chn進行縮放和剪裁才能夠得到對應碼流圖像;
【硬件功能框架圖】
3.8 關於手冊-非常重要!!!
需要重點自己翻看手冊的內容,非常重要!!!
4.VPSS 解析
4.1 創建Grp和Chn
【特別說明】VI中的chn和VPSS中的chn是不同的概念;
不管是在軟件編程中還是在硬件單元中都是不同的概念;
VPSS中是一個GROP中包含了3個chn;甚至可以有更多,比如有擴展通道ExtChn等;
而VI中是一個DEV中包含了一個chn;(對於hi3518E而言);
千萬不要搞混了兩個chn;
在綁定關系中,是VI中的chn會綁定VPSS中的GROUP,而不是綁定VPSS中的chn,這點需要注意;
需要注意的是在綁定vpssGrp時候,只使用了一個vpssGrp,而使用了其中的三個chn;第0個chn和后兩個chn的創建過程;
VPSS的chn0的屬性設置:
VPSS的chn1的屬性設置:
VPSS的chn2的屬性設置:
【特別說明】對於上面的三個Chn創建是不同的;
第一個Chn創建的時候需要首先創建Grp,然后再創建Chn;
第2、3個Chn是不需要創建Grp的;因為一個Grp內可以包含有3個Chn;
4.2 Chn的屬性設置
【說明】需要查看手冊,了解不同的通道的屬性;
5.圖像編碼壓縮基本原理