《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Android的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
基于Android的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第7期
李 昂, 宋海聲, 蘇小蕓
西北師范大學(xué) 物理與電子工程學(xué)院,甘肅 蘭州730070
摘要: 提出了一種基于Android平臺的視頻監(jiān)控系統(tǒng)方法。闡述了系統(tǒng)的結(jié)構(gòu)框架,介紹了Android操作系統(tǒng)及其應(yīng)用層的開發(fā),重點描述了PDA端視頻處理的實現(xiàn)。系統(tǒng)采用Blackfin533芯片實現(xiàn)對視頻的H.264編碼,并應(yīng)用快速模式選擇算法優(yōu)化編碼過程,可使通信模塊和數(shù)據(jù)處理模塊通過Android平臺代碼完成。在3G無線網(wǎng)絡(luò)環(huán)境下,實現(xiàn)了后臺對遠端的實時視頻監(jiān)控。測試表明,延遲可控制在5 s以內(nèi)。
中圖分類號: TP39
文獻標識碼: A
文章編號: 0258-7998(2012)07-0138-02
Design and implementation of video monitoring system based on Android
Li Ang, Song Haisheng, Su Xiaoyun
College of Physics and Electronic Engineering, Northwest Normal University, Lanzhou 730070,China
Abstract: An idea and program of video monitoring system based on Android is presented.This paper introduces the system architecture and Android operating system and development of application layer.It emphatically discusses the ideas and methods of PDA video processing.It uses Blackfin533 for H.264 data decoding and fast mode selection algorithm for optimal coding, The communication module and data processing module are realized through the Android platform code. It achieves the remote real-time video surveillance from backstage in 3G wireless networks.Through testing, the delay is controlled in less than 5 seconds.
Key words : Android; H.264 decoding;fast mode selection algorithm

    目前視頻監(jiān)控系統(tǒng)正朝著數(shù)字化、網(wǎng)絡(luò)化、功能綜合化的方向不斷發(fā)展。傳統(tǒng)的視頻監(jiān)控系統(tǒng)大多通過線纜或光纖將視頻信號傳輸?shù)奖O(jiān)控中心,但由于網(wǎng)線的限制,不利于監(jiān)控系統(tǒng)的迅速搭建。隨著無線網(wǎng)絡(luò)特別是3G網(wǎng)絡(luò)的普及,視頻監(jiān)控系統(tǒng)面臨著更加廣闊和自由的空間[1]。

    3G網(wǎng)絡(luò)在移動環(huán)境下支持的帶寬有限,而視頻監(jiān)控系統(tǒng)的實時性要求盡可能清晰流暢地傳輸視頻信號,因此需要在保證視頻信號不失真的情況下,進行最大可能的壓縮。H.264標準采用了高精度、多模式預(yù)測技術(shù)提高壓縮比以降低碼流[2],可廣泛應(yīng)用于遠程監(jiān)控、電視會議以及可視電話等領(lǐng)域。
    本文介紹了一種基于Android系統(tǒng)的視頻監(jiān)控系統(tǒng),利用PDA結(jié)合H.264編碼技術(shù)和3G無線網(wǎng)絡(luò)通信技術(shù)實現(xiàn)了對遠程視頻的實時監(jiān)控。
1 系統(tǒng)概述
    如圖1所示,系統(tǒng)采用C/S架構(gòu),硬件部分包括帶攝像頭的PDA、H.264編碼器和后臺監(jiān)控計算機。系統(tǒng)的關(guān)鍵技術(shù)是編碼器的設(shè)計,將拍攝到的模擬信號轉(zhuǎn)換成數(shù)字信號,通過H.264編碼器進行編碼壓縮,最后利用3G無線網(wǎng)絡(luò)將壓縮后的數(shù)據(jù)傳送到后臺監(jiān)控計算機完成實時顯示。后臺計算機還可以通過3G網(wǎng)絡(luò)向PDA發(fā)送控制命令,實現(xiàn)云臺控制等相關(guān)操作。本文主要介紹PDA端的設(shè)計與實現(xiàn)。

2 Android操作系統(tǒng)
    Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要用于便攜設(shè)備。Android擁有一個提供Java編程語言功能的核心庫。每個Java編寫的應(yīng)用程序都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設(shè)計成一個可以同時高效運行多個虛擬系統(tǒng)的設(shè)備,這樣的特點使得Android系統(tǒng)能夠很好地適應(yīng)手機特殊的運行環(huán)境。通過在Eclipse上安裝Android SDK插件,可以輕松搭建Android開發(fā)平臺,在該平臺編譯的代碼可自動生成APK文件,直接進行安裝使用[3]。
3 PDA端視頻處理的實現(xiàn)
    基于Android的視頻監(jiān)控系統(tǒng)最重要的部分就是PDA以及外設(shè)的設(shè)計和視頻的處理。PDA有限的內(nèi)存要求這部分的實現(xiàn)盡量做到低功耗、高性能,達到算法和軟件的最優(yōu)化。
    由于DSP芯片具有極強的可編程性,方便后期進行編碼的比較和優(yōu)化。因此編碼器采用ADI公司推出的DSP芯片Blackfin533。該芯片集成了大量的外設(shè)和存儲器接口,在結(jié)構(gòu)上對C/C++進行了優(yōu)化,能夠達到很高的代碼密度,可以滿足H.264編碼的實時要求。
3.1 H.264算法的優(yōu)化選擇
    與以往的視頻編碼標準(如H.263和Mpeg系列)只采用一種或兩種宏塊編碼模式不同,H.264采用從16×16到4×4的七種宏塊編碼模式,使得H.264相比H.263節(jié)省了大約50%的碼率。但同時面臨著可觀的運算量消耗[4]。為了達到實時編碼,如何實現(xiàn)快速的模式選擇算法成為解決問題的關(guān)鍵[5-6]。H.264/AVC的宏塊編碼模式大量應(yīng)用了遍歷,使得運算量過大,適當?shù)販p少遍歷的模式或者提前終止遍歷就可以提高編碼的速度[7]。而減少無效遍歷的關(guān)鍵在于限制遍歷的范圍和制定可靠的終止準則。
     Curr為當前待編碼的宏塊,A、B、C、D分別為四個方向的相鄰宏塊,A_cost、B_cost、C_cost和D_cost分別為A、B、C、D的編碼代價,門限T利用式(1)計算得出:
    T=(5×A_cost+5×B_cost+4×C_cost+2×A_cost)>>4                  (1)
    Curr分別按照4個相鄰宏塊和自身宏塊的模式編碼,比較其代價值得到最優(yōu)編碼。圖2所示為對宏塊A和B的優(yōu)化編碼流程圖(對宏塊C和D的編碼類似)。通過測試比較及優(yōu)化算法的處理,視頻在保真的情況下,有效地降低了壓縮比,提高了算法的運算速度。

3.2 軟件的設(shè)計
    Android平臺實現(xiàn)主要包括通信模塊和數(shù)據(jù)處理模塊。
    通信模塊采用了Socket網(wǎng)絡(luò)通信技術(shù)進行UDB通信。通信之前的準備工作是完成Socket的創(chuàng)建,同時綁定Socket和端口號,設(shè)置開始監(jiān)聽端口。監(jiān)聽開始后,主程序循環(huán)監(jiān)聽、接收請求信號,同時創(chuàng)建新的客戶連接Socket以及相應(yīng)的通信進程。
    數(shù)據(jù)處理模塊主要是對視頻流數(shù)據(jù)的提取和傳導(dǎo)。開啟攝像頭后,在視頻預(yù)覽時截取視頻流每一幀的數(shù)據(jù)。把截取到的數(shù)據(jù)傳輸?shù)綉?yīng)用層進行圖像繪制,通過外設(shè)傳輸?shù)紻SP芯片進行視頻編碼,編碼后將數(shù)據(jù)通過網(wǎng)絡(luò)傳送到后臺監(jiān)控室。Android應(yīng)用層[8]的核心代碼如下:
    p0=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
                                                                // 創(chuàng)建socket
    bind(p0,(struct sockaddr *)&(addr_org),sizeof(struct sock-
          addr_in));                        // 綁定IP和端口
    sendto(p0, SendDataBuff, ulLen, 0, (struct sockaddr *)&
        (addr_dst), sizeof(sockaddr_in));
            // 向指定IP發(fā)送SendDataBuff中的視頻數(shù)據(jù)
     public ImageSurfaceView(Context context, AttributeSet attrs)
         {paint = new Paint(); paint.setColor(Color.WHITE);
        paint.setAntiAlias(true);
        …… setFocusable(true);}    //初始化SurfaceView類
        public void surfaceCreated(SurfaceHolder holder) {……
        screenH = this.getHeight();screenW = this.getWidth
        ();handler.post(imageRunnable);}
                    //創(chuàng)建SurfaceView用于顯示捕捉的圖像
     Camera openCamera() {}                 //打開攝像頭
    android.hardware.camera.PreviewCallback 
                     //用來調(diào)用每幀圖像數(shù)據(jù)data的接口
    DSP芯片中軟件設(shè)計的主要目的是提高運算速度和效率。宏塊編碼采用不同位置獨立編碼,編程時盡可能地將判斷轉(zhuǎn)移到循環(huán)外,杜絕了大量幀內(nèi)和幀間宏塊的重復(fù)判斷。利用快速的模式選擇算法對宏塊進行編碼,進一步提高了編碼效率。使用Blackfin533芯片專用的視頻指令SAA求取絕對差值求和函數(shù)SAD(),在很大程度上提高了運算速度。具體SAA的使用代碼如下:
     for(i=0;i<16*16;i++)
       sad+=abs( *pSrc++ - *pRef++);
       LSETUP(sad_START,sad_END) LC0=P1; 
       sad_START:
       r3 = [i1++]; 
     SAA(r1:0,r3:2) || r1= [i0++] || r2= [i1++];    
     SAA(r1:0,r3:2)(R) || r0= [i0++] || r3= [i1++];    
     SAA(r1:0,r3:2) || r1= [i0++] || r2= [i1++];
          sad_END:SAA(r1:0,r3:2)(R) || r0=[i0++] || r2=
        [i1++]
4 實現(xiàn)結(jié)果
    圖3為系統(tǒng)在HTC G14手機和后臺計算機中利用聯(lián)通3G網(wǎng)絡(luò)實驗的結(jié)果。手機拍攝預(yù)覽的視頻顯示在計算機上;后臺可選擇監(jiān)視某一臺手機的視野,還可以通過發(fā)送命令放大或縮小視野的范圍,整個過程不受距離限制。經(jīng)過多次測試,PDA端與后臺在同一幀的顯示僅存在3 s~5 s的延遲。

 

 

    目前,基于Android的視頻監(jiān)控系統(tǒng)已在實驗室測試使用,基本完成了后臺計算機對PDA端攝像頭視野的實時監(jiān)控功能。系統(tǒng)利用了3G網(wǎng)絡(luò)數(shù)據(jù)高傳輸速度中和Android系統(tǒng)開發(fā)便利的優(yōu)勢,優(yōu)化了H.264編碼方法和軟件編程。整個系統(tǒng)從軟件到硬件,開發(fā)成本低,實際使用方便。隨著網(wǎng)絡(luò)技術(shù)和視頻編碼技術(shù)的不斷發(fā)展,移動視頻監(jiān)控有望在未來成為監(jiān)控系統(tǒng)的主流發(fā)展方向。

參考文獻
[1] 曹曉芳,王超,李杰.一種基于Android智能手機的遠程視頻監(jiān)控的設(shè)計[J].電子器件,2011,34(6):709-712.
[2] 李文新,李宇光,胡延蘇,等.嵌入式無線局域網(wǎng)中H.264視頻傳輸?shù)腝oS研究[J].計算機科學(xué),2011,38(5):83-85.
[3] 耿東久,索岳,陳渝,等.基于Android手機的遠程訪問和控制系統(tǒng)[J].計算機應(yīng)用,2011,31(2):559-561.
[4] 西剎子.安防天下&mdash;&mdash;智能網(wǎng)絡(luò)視頻監(jiān)控技術(shù)詳解與實踐[M].北京:清華大學(xué)出版社,2010.
[5] 閆健恩,許海燕,林建秋.基于ADSP-Blackfin533的H.264視頻編碼器的實現(xiàn)[J].微計算機信息,2006(5):27-29.
[6] 顧梅花,余寧梅,寇立康,等.H.264快速模式選擇算法中的提前終止策略[J].中國圖像圖形學(xué)報,2011,16(3):305-309.
[7] 盧光輝.P幀快速模式選擇算法[J].電子科技大學(xué)學(xué)報,2010,39(3):397-401.
[8] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。