梁瑞頭 薛丙龍 李 鵬
(湖南天冠電子信息技術(shù)有限公司,湖南 長沙 410000)
隨著網(wǎng)絡信息技術(shù)以及流媒體技術(shù)的迅速發(fā)展,數(shù)字視頻編解碼和IP 網(wǎng)絡傳輸在網(wǎng)絡視頻會議和網(wǎng)絡監(jiān)控領域已經(jīng)成為了一個主要的熱點。目前市面上針對網(wǎng)絡視頻監(jiān)控系統(tǒng)設計方案多采用嵌入解決方案,具有豐富的功能、較小的體積、易于使用和維護的特點,本文提出了一種基于華為海思Hi3531DV100 芯片的嵌入式系統(tǒng)解決方案,并詳細描述了系統(tǒng)硬件和軟件實現(xiàn)方法。
該芯片是一款專業(yè)的多媒體處理器,主要針對多路標清和多路高清DVR 產(chǎn)品應用。芯片內(nèi)設ARM A9 雙核處理器、主頻1.4GHz,集成了高性能的H.264/H.265 視頻編解碼器和高性能視頻圖像處理器,具有HDMI 和VGA 高清顯示輸出接口,同時還集成了豐富的外設接口,如UART、SPI、GPIO、SATA 和USB等。
硬件系統(tǒng)設計原理框圖見圖1。
圖1 硬件原理框圖
采用鎂光公司的DDR3 SDRAM 芯片用于系統(tǒng)內(nèi)存。Hi3531DV100 具有雙通道32位 DDRC(DDR3 SDRAM Controller),固系統(tǒng)采用四片DDR3,每片位寬16 位,單片容量為512MB,每兩片組成一個通道,每個通道32 位,總?cè)萘抗?GB,用于操作系統(tǒng)內(nèi)存和圖像處理幀存。
統(tǒng)存儲采用旺宏電子的SPI NOR FLASH,總?cè)萘?2MB,與Hi3531DV100的SPI 控制器相連,用來固化系統(tǒng)引導代碼和用戶程序代碼。
Hi3531DV100內(nèi)置GMAC(Gigabit Media Access Controller),只需外加PHY 芯片即可實現(xiàn)網(wǎng)絡通信功能。本方案PHY 芯片采用瑞昱公司的RTL8211 芯片,GMAC 和RTL8211 芯片通過RGMII(Reduced Gigabit Media Independent Interface)接口相連,接口全雙工、千兆自適應。
Hi3531DV100 通過其內(nèi)部SATA 接口外接SATA 硬盤,容量可選,用于視頻文件的存儲。
電源模塊是硬件系統(tǒng)的核心電路,本系統(tǒng)采用直流12V 供電,內(nèi)部通過DC-DC模塊產(chǎn)生DC5V、DC_CORE(0.9V)、DC_CPU(1.0V)、DC_DDR(1.5V)和DC3V3 等電壓,DC-DC 芯片采用TI 和MPS 電壓芯片方案實現(xiàn)。
視頻監(jiān)控器軟件基于linux 操作系統(tǒng)和海思提供的媒體處理軟件平臺(Media Process Platform,簡稱 MPP)進行設計,MPP支持應用軟件快速開發(fā),該平臺對應用軟件屏蔽了芯片相關的復雜的底層處理,并對應用軟件直接提供MPI(MPP Programe Interface)接口完成相應功能。
視頻監(jiān)控器軟件采用模塊化設計,包括RTSP 客戶端模塊、數(shù)據(jù)緩沖模塊、VDEC 模塊模塊、VPSS 模塊模塊、VO 模塊模塊、文件存儲模塊和視頻回放模塊,見圖2。
圖2 軟件流程圖
Rtsp (即時串流協(xié)定)主要用于流媒體應用程序,它提供如何在網(wǎng)絡上實時傳輸音頻和視頻數(shù)據(jù),并可以實現(xiàn)暫停和快進等控制功能。
該模塊作為RTSP 客戶端從網(wǎng)絡服務器或網(wǎng)絡攝像頭獲取視頻流,每接收到一幀數(shù)據(jù)后就傳送給數(shù)據(jù)緩存模塊。
數(shù)據(jù)緩存模塊負責視頻流的緩存,確保數(shù)據(jù)不溢出和播放的流暢性。該模塊基于環(huán)形隊列數(shù)據(jù)結(jié)構(gòu)設計,數(shù)據(jù)從隊列尾寫入,從隊列頭讀出,當尾指針等于頭指針時,表示環(huán)形隊列數(shù)據(jù)空,當(尾指針+1)取模隊列最大長度后等于頭指針時,表示環(huán)形隊列數(shù)據(jù)滿,見圖3。
圖3 環(huán)形隊列
Hi3531DV100 內(nèi)置視頻解碼器,該解碼器支持MPEG4、H.264 和H.265 等協(xié)議,視頻解碼單元由VFMW(Video Firmware)和視頻解碼引擎構(gòu)成,VFMW 從上層軟件接收碼流,對碼流進行解析,然后調(diào)用視頻解碼引擎產(chǎn)生解碼圖像序列。
VDEC 軟件模塊的工作是初始化視頻解碼器硬件參數(shù)并啟動解碼器工作,同時創(chuàng)建一個線程,線程采用輪詢方式從數(shù)據(jù)緩存模塊或者視頻回放模塊讀取視頻流給VFMW,再由視頻解碼引擎解碼圖像。
Hi3531DV100 集成了一個視頻處理子系統(tǒng),該子系統(tǒng)負責對輸入圖像進行處理,如去噪、去隔行、縮放、銳化等。
VPSS 軟件模塊的工作是初始化視頻處理子系統(tǒng)硬件參數(shù)并啟動硬件工作,然后VPSS 模塊從VDEC 模塊獲取解碼圖像進行處理。
Hi3531DV100 內(nèi)部集成了視頻顯示處理模塊,該模塊負責視頻圖像的輸出,視頻顯示處理模塊支持視頻層和圖像層疊加,該模塊從幀存讀取視頻數(shù)據(jù)和圖像數(shù)據(jù)進行疊加處理,然后輸出,輸出接口有HDMI 和VGA。
VO 軟件模塊的工作是初始化視頻顯示處理模塊的硬件參數(shù),并啟動硬件工作,視頻顯示處理模塊從幀存讀取圖像數(shù)據(jù)和圖形數(shù)據(jù)進行疊加處理,然后通過視頻接口輸出顯示。
RTSP 客戶端接收的視頻流為裸流,一般播放器不支持裸流播放,通常需要對裸流進行封裝,封裝格式有AVI、MP4、TS 等,這樣播放器可正常識別播放。該模塊的主要作用就是負責視頻流格式封裝,封裝后的數(shù)據(jù)存儲到硬盤,方便后續(xù)播放和管理。
基于Hi3531DV100的網(wǎng)絡視頻監(jiān)控系統(tǒng)運行后照片如圖4,系統(tǒng)測試表明:監(jiān)控畫面清淅、穩(wěn)定、無抖動,能正確監(jiān)控網(wǎng)絡攝像頭所監(jiān)控角落的視頻信息,達到既定的效果。
圖4 監(jiān)控畫面
該網(wǎng)絡視頻監(jiān)控系統(tǒng)以Hi3531DV100 為控制核心,通過RTSP 協(xié)議從網(wǎng)絡服務器或網(wǎng)絡攝像頭獲取視頻數(shù)據(jù),然后經(jīng)視頻解碼后由VDH 硬件模塊輸出顯示,同時本系統(tǒng)可本地回放記錄的視頻,通過模塊化設計,在不增加硬件資源的情況下,通過軟件擴展可增加監(jiān)控視頻路數(shù),具有較好的擴展性。