1. 程式人生 > >海思HI35xx平臺軟體開發快速入門之背景知識

海思HI35xx平臺軟體開發快速入門之背景知識

前言:

  安防領域最近幾年可謂暗流湧動,作為安防業的雙寡頭,大華股份與海康威視憑藉行業的東風,兩家公司的成長速度異常強勁,在國際市場上已經和應用廠家進行廝殺。 2015年兩家公司雙雙晉升“全球安放50強”,海康排名第二,大華排名第五。以華為海思為代表國產晶片解決方案不斷走強,在國際競爭中優勢凸顯,在後端NVR高階產品線先後推出了海思3531、海思3535、海思3536,同時針對低端的產品線也不斷豐富和完善,比如優化後的海思3515A、3520D等,而在前端IPC領域則推出了諸如海思3516C、海思3518E等晶片,產品系列涵蓋不同的應用場景,在出貨量方面領先於老牌廠商TI、安霸。海思之所以能夠在短時間內一躍成為安防領域晶片最大的供應商,取決於海思非常注重晶片應用層面的支援以及低成本優勢,它提供的音視訊軟體HIMPP API使得下游廠商能夠快速開發出自己個性化的產品。去年音視訊編解碼晶片國內出貨佔比圖如下所示:


    在音視訊處理領域,海思晶片佔有全球市場的很大份額,我們很有必要了解如何在海思HI35xx平臺進行音視訊編解碼程式設計快速入門。在使用海思晶片開發時,程式開發模型主要是圍繞HIMPP(Hisi Media Process Platform)提供的API進行。這裡圍繞主角HIMPP詳細介紹與它相關的專業詞彙與背景知識,對HIMPP有充分了解之後,我們就可以利用它實現音視訊編解碼等業務邏輯。

HIMPP平臺架構簡介:

     海思提供的媒體處理軟體平臺(Hisi Media Process Platform,簡稱HIMPP),可支援軟體快速開發。該平臺對應用軟體遮蔽了晶片相關複雜的底層原理,並對應用軟體直接提供MPI(MPPProgram Interface)介面完成相應功能。該平臺支援應用軟體快速開發以下功能:輸入視訊捕獲、H.264/MJPEG/JPEG/MPEG4編碼、H.264/MJPEG/JPEG/MPEG4解碼、視訊輸出顯示、視訊影象前處理(包括去燥、增強、銳化、Deinterlace)、編碼碼流疊加OSD、視訊偵測分析、智慧分析、音訊捕獲及輸出、音訊編解碼等功能。HIMPP平臺主要是銜接了作業系統層與應用層,典型軟體架構體系示意圖如下:

HIMPP平臺典型架構主要分以下幾個層次:

1、硬體層

  硬體層由Hi35xx晶片加上必要的外圍器件構成。外圍器件包括Flash、DDR(Double Data-Rate)、視訊Sensor或AD、音訊AD等。

2、作業系統層

  基於Linux3.10.y的作業系統。

3、媒體處理平臺層

  基於作業系統層,控制晶片完成相應的媒體處理功能。它對應用層遮蔽了硬體處理希捷,併為應用層提供API介面完成相應功能。

4、其他驅動層

  除了媒體處理平臺外,海思為HI35xx晶片的其他硬體處理單元提供了相應的驅動,包括GMAC、SDIO、I2C、USB、SSP等驅動。

5、應用層

  基於海思媒體處理平臺及其他驅動,由使用者開發的應用軟體系統。

  小結一下,從這個HIMPP平臺典型架構中可以看出,在海思HI35xx平臺音視訊編解碼程式設計我們只需要關心應用層邏輯和媒體軟體處理平臺就好了。關於應用層如何實現在後續博文詳解,或者,本文主要講述HIMPP平臺處理流程,以快速入門海思HI35xx平臺音視訊編解碼程式設計。

HIMPP平臺業務邏輯處理流程:

為了方便描述,直接上圖,海思媒體處理平臺主要流程圖如下:

  這裡還有必要了解一下與HIMPP內容相關的專業名詞,主要部分分為視訊輸入(VI)、視訊處理(VPSS)、視訊編碼(VENC)、視訊解碼(VDEC)、視訊輸出(VO)、視訊偵測分析(VDA)、音視訊輸入(AI)、音視訊輸出(AO)、音訊編碼(AENC)、音視訊解碼(ADEC)、區域管理(REGION)等模組。

  海思媒體處理平臺主要流程分為視訊處理及音訊處理兩條路線,視訊處理路線起點包括AD和HARD DISK兩種,這很容易理解,AD即前端對COMS或CDD感測器進行AD採集得到最原始的影象資料,至於如何採集並編碼為H264或H265資料,HIMPP已經幫我們做好了,直接呼叫API就好,接著將H264或H265資料推至VI,這個模型適合實時預覽應用場景開發;而HARD DISK則源於我們已經儲存在硬碟的錄好視訊檔案,我們需要的操作是讀取檔案然後將資料推至VDEC進行解碼,這個模型則適合監控回放場景開發。VPSS作為編解碼的中轉站,可以實現對影象資料進行處理,其中最重要的就是不同解析度的裁剪以及抓拍,呼叫VPSS相關的API可以實現對影象視訊進行操控,經過VPSS可以輸出到REGION、VDA、VO處理,這裡重點講述VO,VO作為聯絡視訊流與顯示的紐帶,它接收VPSS的資料然後推送至HDMI或VGA進行顯示。VO是多圖層裝置,基於此可以時間使用者GUI操作與視訊層分離,也可以實現畫中畫等功能,VO的配置還包括影象輸出重新整理頻率、影象顏色效果等。

  音訊的處理流程就比較簡單,錄音路線則由麥等模擬裝置輸入到AI,接著推送到AENC進行音訊編碼,如常用的G711、G726、ADPCM等格式。播放路線則反過來,由錄音檔案提供聲音源,經過ADEC進行解碼後形成音訊流資料,再推送至AO進行播放。音訊的操作相對就簡單很多,我們一般只關心音訊取樣頻率的控制和音量調節等API,比如配置AI進行8K/16K/24K/32K/48K頻率8位取樣等。

  小結,海思HI35xx平臺音視訊編解碼程式設計一定要熟悉HIMPP各個模組的功用,並十分熟悉音視訊處理流程,程式中也是嚴格按照此流程進行設計的。後續我們將結合例項講解HIMPP API的使用。

總結: 

    在以影象為基礎的安防監控、人臉識別、智慧樓宇、智慧城市、天網等越來越普及,快速掌握海思HI35xx平臺音視訊編解碼程式設計變得尤為重要。今天是五四青年節,梳理一下知識,以作備忘,原創不易,轉載說明出處。