【0008】海思官方編碼例程及內容解析


【特別說明】

  重點參考手冊:

   【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.圖像編碼壓縮基本原理

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM