夏振華,張正炳
(長江大學 電信學院,湖北 荊州 434023)
近年來,隨著網(wǎng)絡帶寬、微處理器處理能力的迅速提高以及各種實用視頻信息處理技術的出現(xiàn),視頻監(jiān)控產(chǎn)品逐步脫離了傳統(tǒng)的模擬視頻監(jiān)控和基于PC的視頻監(jiān)控,向小型化、數(shù)字化、網(wǎng)絡化和終端智能化的嵌入式系統(tǒng)發(fā)展。
TI公司的TMS320DM6446(簡稱DM6446)芯片是一款ARM+DM644x的雙核芯片,是實現(xiàn)高性能視頻監(jiān)控、IPTV等網(wǎng)絡視頻應用的理想的解決方案[1]。筆者將介紹一種利用DM6446為核心,利用聯(lián)通的WCMDA進行網(wǎng)絡傳輸?shù)臒o線視頻監(jiān)控系統(tǒng),該系統(tǒng)既具有多數(shù)嵌入式監(jiān)控系統(tǒng)的體積小、成本低、維護方便、穩(wěn)定性好等優(yōu)點,同時由于采用了第三代移動通信(3G)的網(wǎng)絡傳輸方式,無須布線,傳輸速度高,監(jiān)控畫面實時性好。
基于IP的網(wǎng)絡視頻監(jiān)控系統(tǒng)包括兩大部分,視頻監(jiān)控終端和視頻監(jiān)控中心。視頻監(jiān)控終端和視頻監(jiān)控中心采用Client/Server(C/S)模式。監(jiān)控中心運行在Client模式,主動向各監(jiān)控終端發(fā)起網(wǎng)絡連接請求,各監(jiān)控點的視頻終端接受監(jiān)控中心軟件發(fā)送的網(wǎng)絡請求,并將監(jiān)控畫面通過3G無線網(wǎng)絡傳送到監(jiān)控中心進行顯示。整個系統(tǒng)的結構如圖1所示。
圖1 系統(tǒng)的結構圖
本系統(tǒng)利用TMS320DM6446芯片具有ARM和DSP雙核的特點,將監(jiān)控終端的三大核心任務:視頻采集、壓縮編碼和網(wǎng)絡傳輸分配兩個核分別處理,這樣既能利用ARM核上運行的Linux系統(tǒng)具有的完備的TCP/IP協(xié)議棧實現(xiàn)復雜的網(wǎng)絡控制命令和視頻的傳輸,又能利用DSP的強大運算能力實現(xiàn)實時的視頻編碼。系統(tǒng)的工作流程框圖如圖2所示。
圖2 工作流程框圖
由圖2可知,視頻監(jiān)控終端輸入部分由CCD攝像機通過S-Video端子接入視頻解碼器,視頻解碼器可以將攝像機得到的NTSC格式或者PAL格式的視頻信號轉換成包含有數(shù)字色差信號(YUV422)的BT656格式的視頻流,由DM6446的DSP核采集并從中提取YUV422格式的視頻信號,DSP核將YUV422格式的視頻轉換成YUV420格式,再將YUV420格式的視頻數(shù)據(jù)進行視頻壓縮編碼,編碼后的視頻在從DSP核傳送到DM6446的ARM核,運行在ARM核上的網(wǎng)絡傳輸軟件等待外部連接,一旦接收到合法的連接請求就開始向監(jiān)控中心傳送視頻畫面。視頻監(jiān)控中心向監(jiān)控終端發(fā)出連接請求,被驗證合法后可以通過網(wǎng)絡查看監(jiān)控終端所提供的監(jiān)控畫面,當然壓縮的碼流需要經(jīng)過解碼,然后再進行顯示,監(jiān)控中心還可以通過網(wǎng)絡發(fā)出一些控制命令到終端,這些控制命令控制終端運行的一些參數(shù),比如視頻圖像的壓縮比、畫面的亮度、視頻的幀率以及攝像機云臺的轉送等參數(shù)。
從圖2可以總結出,監(jiān)控終端的軟件分為兩部分:DSP端視頻采集和壓縮編碼軟件,ARM端的網(wǎng)絡傳輸和控制調(diào)參軟件。
DSP端軟件的核心任務是視頻編碼,本系統(tǒng)采用M-JPEG作為視頻壓縮編碼算法,JPEG是靜態(tài)圖像壓縮編碼方法,在監(jiān)控終端可以將視頻圖像當作單幀的靜態(tài)圖像來進行壓縮處理,在監(jiān)控中心利用解碼器將壓縮碼流單幀地解壓播放,就能實現(xiàn)動態(tài)視頻效果。下面給出本系統(tǒng)的JPEG實現(xiàn)的方法。JPEG編碼算法的流程如圖3所示。
圖3 JPEG流程圖
在圖3所示的編碼流程中,二維DCT變換在整個過程中運算量最大。通過CCS實時性分析,發(fā)現(xiàn)DCT幾乎占用進行整個編碼耗時的70%以上,因此在實現(xiàn)DCT變換的過程中,需要著重考慮算法和程序的優(yōu)化。JPEG編碼將圖像分成8×8塊,即DCT處理的基本單元是8×8的子塊[2]。因此,8點二維DCT變換定義如式(1),分解成2次一維DCT可以大大簡化運算,如式(2)~(3)
在進行DCT變換的各種快速算法中,Loeffler算法被證明已經(jīng)達到了算法極限,是最優(yōu)秀的算法,該DCT算法共使用11次乘法和29次加法[3]。它把整個DCT過程分成了4級,每級都是乘加運算[3]。DM6446非常適合做乘加,它可以達到每秒2.88×109次16位“乘加”運算,或5.76×109次8位乘加運算。本系統(tǒng)就是采用Loeffler快速算法來實現(xiàn)最為耗時的DCT變換。JPEG編碼中分塊、量化、Huffman編碼等部分實現(xiàn)起來比較簡單,耗時也很少。在充分考慮各個環(huán)節(jié)的優(yōu)化后,對系統(tǒng)的編碼速度進行測試發(fā)現(xiàn),本系統(tǒng)對352×288大小的視頻進行編碼的速度能夠達到80 f/s(幀/秒),可以滿足監(jiān)控畫面的實時性要求。
ARM端軟件的核心任務是網(wǎng)絡傳輸和參數(shù)調(diào)節(jié)。ARM是目前主流的嵌入式系統(tǒng)解決方案所選擇的芯片,大多數(shù)嵌入式系統(tǒng)都能很方便的移植運行在ARM上,DM6446包含了一塊ARM9核,可以運行Linux系統(tǒng),Linux內(nèi)核包含有功能完備的TCP/IP協(xié)議棧,因此在進行網(wǎng)絡傳輸?shù)能浖O計時,不需要自行實現(xiàn)TCP/IP協(xié)議,大大減少了代碼量[4]。ARM端軟件的工作原理是,首先利用PPP撥號程序通過WCDMA撥號接入互聯(lián)網(wǎng),等待監(jiān)控中心連接請求;接收來自DSP端編碼后的視頻數(shù)據(jù),然后在收到監(jiān)控中心的連接請求時,將這些數(shù)據(jù)通過互聯(lián)網(wǎng)傳送到監(jiān)控中心。
聯(lián)通的WCDMA是國內(nèi)3G移動通信的一種,具有技術成熟、帶寬大等優(yōu)點。目前聯(lián)通的WCDMA都采用HSDPA技術,下行速率為7.2 Mbit/s,今后還會升級到14.4 Mbit/s,完全可以滿足視頻無線傳輸?shù)膶崟r性要求。本系統(tǒng)采用的西門子WCDMA模塊MC75i支持HSDPA模式,為了保證傳輸速度DM6446與MC75i通過數(shù)據(jù)總線連接,利用它進行網(wǎng)絡傳輸時,首先需要運行在ARM核上的Linux系統(tǒng)通過PPP協(xié)議撥號接入互聯(lián)網(wǎng),然后才能進行信令和視頻碼流的傳輸。
為了實現(xiàn)局域網(wǎng)的穿透,本系統(tǒng)采用了自行設計的一個簡單的穿透協(xié)議來實現(xiàn)。具體原理是,在互聯(lián)網(wǎng)中的一臺擁有公網(wǎng)IP的機器上運行一個簡單的網(wǎng)守程序,該程序記錄監(jiān)控中心和各個監(jiān)控終端所使用的端口號和公網(wǎng)IP地址。監(jiān)控中心和各監(jiān)控終端一啟動就先向網(wǎng)守注冊自己的公網(wǎng)IP地址和端口信息,當監(jiān)控中心要向終端發(fā)起網(wǎng)絡連接時,首先向網(wǎng)守服務器發(fā)起請求信令,網(wǎng)守服務器收到監(jiān)控中心的連接請求,可以從中得知監(jiān)控中心需要與哪些監(jiān)控終端連接,接著網(wǎng)守會將選中的監(jiān)控終端的公網(wǎng)IP地址和端口發(fā)送到監(jiān)控中心,監(jiān)控中心得到這些公網(wǎng)IP地址和端口后,再次向監(jiān)控中心發(fā)起視頻連接請求,此時監(jiān)控中心會收到請求,驗證合法后,向監(jiān)控中心直接發(fā)送視頻碼流。整個工作過程如圖4所示。圖中IP1A,Port1A,IPSA,PortSA分別代表監(jiān)控終端1和監(jiān)控中心的內(nèi)網(wǎng)IP地址和內(nèi)網(wǎng)端口;IP1G,Port1G,IPSG,PortSG分別代表監(jiān)控終端和監(jiān)控中心的公網(wǎng)IP地址和公網(wǎng)端口。
圖4 網(wǎng)絡傳輸工作流程圖
雖然WCDMA網(wǎng)絡帶寬足夠滿足視頻傳輸?shù)男枨?,但從?jié)約流量費用的角度考慮,在設計系統(tǒng)時,需要盡可能地在保證圖像質(zhì)量的前提下減少網(wǎng)絡流量。視頻傳輸系統(tǒng)中網(wǎng)絡流量取決于編碼方法。在相同的編碼方法中,網(wǎng)絡流量和圖像質(zhì)量是存在著矛盾的,數(shù)據(jù)量大,圖像質(zhì)量好,數(shù)據(jù)量小,圖像質(zhì)量差。本系統(tǒng)在M-JPEG編碼基礎上增加了控制圖片質(zhì)量的參數(shù)Q,通過調(diào)節(jié)該參數(shù)可以改變圖片質(zhì)量,從而改變網(wǎng)絡數(shù)據(jù)量的大小。它的原理是通過參數(shù)Q改變量化時所用到的量化表中的量化步長來改變量化結果中“0”的數(shù)量。Q與量化表之間的關系由下列公式確定
其中,InitQtableY[i]和InitQtableUV[i]分別為標準亮度量化表和色度量化表,F(xiàn)inalQtableY[i]和FinalQtableUV[i]分別為本文系統(tǒng)用于對亮度分量和色度分量的DCT系數(shù)進行量化的量化表。從上式可以看出,Q值越大,mul_factor值越小,F(xiàn)inalQtableY[i]和FinalQtableUV[i]中各元素也越小,量化后的“0”的個數(shù)越少,壓縮后的圖像質(zhì)量就越高[4]。本系統(tǒng)中監(jiān)控中心可以設置參數(shù)Q,并將Q值通過網(wǎng)絡傳輸?shù)奖O(jiān)控終端,監(jiān)控終端根據(jù)設定的Q值實時的改變圖像質(zhì)量。表1給出了300 s在各種Q值下的流量統(tǒng)計,表中數(shù)據(jù)的測試條件為,視頻大小352×288,幀率為20 f/s。圖5給出了Q值等于95,50,25時的畫面。
表1 網(wǎng)絡流量統(tǒng)計
圖5 各種Q值畫面對比
從表1和圖5可以看出,Q=95時,每秒網(wǎng)絡數(shù)據(jù)流量較大,畫面質(zhì)量最好,Q=50時,每秒網(wǎng)絡數(shù)據(jù)流量適中,并且畫面質(zhì)量較Q=95時沒有大幅下降,Q=25時的圖像質(zhì)量明顯下降。因此本系統(tǒng)將Q的初始值設置為50,在Q=50時,網(wǎng)絡流量較小,并且畫面質(zhì)量也能滿足大多數(shù)場合的要求。
視頻監(jiān)控中心效果如圖6所示。從圖可以看出,在默認參數(shù)下,該監(jiān)控系統(tǒng)的畫面質(zhì)量令人滿意。
圖6 監(jiān)控中心效果圖
本文提出的基于3G的嵌入式視頻監(jiān)控系統(tǒng)設計方案具有穩(wěn)定性高、圖像質(zhì)量較好、網(wǎng)絡傳輸性能好等特點。該系統(tǒng)操作簡單,系統(tǒng)的監(jiān)控圖像質(zhì)量能滿足大多數(shù)用戶對畫面質(zhì)量的要求,另外,該視頻服務器對網(wǎng)絡帶寬的需求適中,完全適合局域網(wǎng)和互聯(lián)網(wǎng)上使用。
[1]唐健雄,陳力.基于TMS320DM6446的視頻會議終端硬件設計[J].電視技術,2008,32(3):93-95.
[2]鄧慧萍,張正炳,賈冬順.一種改進的2D-DCT的FPGA實現(xiàn)[J].微計算機信息,2007(35)∶214-215.
[3]LEOFFLER C,LIGTENBERG A,MOSCHYTZ G S.Practical fast 1D DCT algorithms with 11 multiplications[EB/OL].[2009-10-20].http∶//ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel2%2F805%2F6677%2F00266596.pdf%3Farnumber%3D266596&authDecision=-203.
[4]梅曉蘭,張連發(fā),梅啟斌.基于OMAP1510雙核架構的移動多媒體通信終端的設計與實現(xiàn)[J].電子技術應用,2004,30(8):20-24.