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