下面給出基于Hi3559AV100的視頻采集整體設計,具體設計將在后續給出:
圖形采集端整體設計
Hi3559AV100軟體程式按結構劃分可分為4層,第一層是硬體驅動層,第二層是作業系統層,第三層是媒體軟體處理平臺(MPP,MediaProcessPlatform),第四層是應用層,其系統層次結構如圖1所示:

圖1 Hi35xx典型系統層次結構
硬體驅動層指Hi3559AV100的相關硬體處理單元的驅動程式,負責為作業系統以及上層軟體提供設備的操作介面,在嵌入式處理器Hi3559中,海思對Hi3559芯片內部的硬體處理單元提供了相應的驅動,包括GMAC、I2C、USB、串口等硬體驅動,能夠大大縮短開發時間,降低開發難度,
作業系統層采用裁剪的Linux內核HiLinux,作業系統層提供了媒體處理平臺的所需的基礎函式,以支持媒體處理平臺在作業系統上正常運行,
媒體軟體處理平臺(MPP,Media Process Platform)是海思半導體有限公司提供的軟體處理系統,主要分為視頻輸入(VI)、視頻處理子系統(VPSS Video processing subsystem)、視頻編碼(VENC)、視頻解碼(VDEC)、視頻輸出(VO)、區域管理(REGION)等模塊,MPP對應用層屏蔽了芯片相關的底層處理,應用軟體可以直接使用MPP提供MPI(MPPProgrameInterface)介面完成相應功能,
在之后的影像視頻開發中,主要使用了MPP中的VDEC、VPSS、VO模塊來實作視頻解碼傳輸、視頻影像處理、以及視頻輸出的功能,
Hi3559中的軟體程式設計包括視頻采集、視頻影像處理、區域管理、視頻壓縮以及視頻傳輸程式,其中,視頻解碼傳輸、視頻影像處理、視頻壓縮、視頻輸出分別通過MPP中的VDEC、VPSS、VO模塊實作,
Hi3559程式設計流程如圖2所示,從SD card將.h264、.h265等視頻流送入到VDEC,然后VDEC系結VPSS,利用VPSS模塊對視頻流做壓縮等操作,之后VPSS系結VO,VPSS資料輸入至VO,最后通過HDMI輸出,

圖2 Hi3559程式設計流程
系統控制根據 Hi35xx 芯片特性,完成硬體各個部件的復位、基本初始化作業,同時負責完成 MPP(Media Process Platform 媒體處理平臺)系統各個業務模塊的初始化、去初始化以及管理 MPP 系統各個業務模塊的作業狀態、提供當前 MPP 系統的版本資訊、提供大塊物理記憶體管理等功能,應用程式啟動 MPP 業務前,必須完成 MPP 系統初始化作業,同理,應用程式退出MPP 業務后,也要完成 MPP 系統去初始化作業,釋放資源, 視頻快取池主要向媒體業務提供大塊物理記憶體管理功能,負責記憶體的分配和回收,充分發揮記憶體快取池的作用,讓物理記憶體資源在各個媒體處理模塊中合理使用,一組大小相同、物理地址連續的快取塊組成一個視頻快取池,必須在系統初始化之前配置公共視頻快取池,根據業務的不同,公共快取池的數量、快取塊的大小和數量不同, 所的視頻輸入通道都可以從公共視頻快取池中獲取視頻快取塊用于保存采集的影像,如圖3中所示 VI 從公共視頻快取池 B 中獲取視頻快取塊 Bm,快取塊 Bm 經 VI發送給 VPSS,輸入快取塊 Bm 經過 VPSS 處理之后被釋放回公共視頻快取池,假設VPSS 通道的作業模式是 USER,則 VPSS 通道 0 從公共視頻快取池 B 中獲取快取塊 Bi作為輸出影像快取 buffer 發送給 VENC,VPSS 通道 1 從公共視頻快取池 B 中獲取快取塊 Bk 作為輸出影像快取 buffer 發送給 VO,Bi 經 VENC 編碼完之后釋放回公共視頻快取池,Bk 經 VO 顯示完之后釋放回公共視頻快取池,
圖3 典型的公共視頻快取池資料流圖 VDEC 模塊提供驅動視頻解碼硬體作業的 MPI 介面,實作視頻解碼功能,碼流方式采用按幀發送(VIDEO_MODE_FRAME),用戶每次發送完整一幀碼流到解碼器,每呼叫一次發送介面,解碼器就認為該幀碼流已經結束,開始解碼影像,因此需保證每次呼叫發送介面發送的碼流必須為一幀,否則會出現解碼錯誤,通過該發送方式可以達到快速解碼的目的,在模式 VIDEO_MODE_FRAME 下發送碼流時,解碼輸出的影像時間戳 PTS 為發送碼流介面(HI_MPI_VDEC_SendStream)中用戶送入的 PTS,解碼器不會更改此值;如果用戶配置的 PTS 值為 0,則表示用戶不進行幀率控制,而是由視頻輸出模塊(VO)進行幀率控制;如果用戶送入的 PTS 值為-1,則表示此影像不會被視頻輸出模塊(VO)顯示;如果是其他值,則表示視頻輸出模塊(VO)根據用戶 設定的 PTS 值進行幀率控制, VPSS(Video Process Sub-System)是視頻處理子系統,支持的具體影像處理功能包括FRC(Frame Rate Control)、CROP、Sharpen、3DNR、Scale、像素格式轉換、LDC、Spread、固定角度旋轉、任意角度旋轉、魚眼校正、Cover/Coverex、Overlayex、Mosaic、Mirror/Flip、HDR、Aspect Ratio、壓縮解壓等,
圖4 VPSS背景關系關系
圖5 Hi3559AV100 VPSS 的資料流圖 VO(Video Output,視頻輸出)模塊主動從記憶體相應位置讀取視頻和圖形資料,并通過相應的顯示設備輸出視頻和圖形, 后面將出一系列基于Hi3559AV100平臺的整個開發隨筆,供大家參考,
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/256269.html
標籤:其他
上一篇:Hi3559AV100板載開發系列-pthread_create()下V4L2介面MJPEG像素格式的VIDIOC_DQBUF error問題解決-采用阻塞方式下select監聽
下一篇:Jenkins 構建及回滾任務
