李 昂,宋海聲,蘇小蕓
(西北師范大學 物理與電子工程學院,甘肅 蘭州 730070)
目前視頻監控系統正朝著數字化、網絡化、功能綜合化的方向不斷發展。傳統的視頻監控系統大多通過線纜或光纖將視頻信號傳輸到監控中心,但由于網線的限制,不利于監控系統的迅速搭建。隨著無線網絡特別是3G網絡的普及,視頻監控系統面臨著更加廣闊和自由的空間[1]。
3G網絡在移動環境下支持的帶寬有限,而視頻監控系統的實時性要求盡可能清晰流暢地傳輸視頻信號,因此需要在保證視頻信號不失真的情況下,進行最大可能的壓縮。H.264標準采用了高精度、多模式預測技術提高壓縮比以降低碼流[2],可廣泛應用于遠程監控、電視會議以及可視電話等領域。
本文介紹了一種基于Android系統的視頻監控系統,利用PDA結合H.264編碼技術和3G無線網絡通信技術實現了對遠程視頻的實時監控。
如圖1所示,系統采用C/S架構,硬件部分包括帶攝像頭的PDA、H.264編碼器和后臺監控計算機。系統的關鍵技術是編碼器的設計,將拍攝到的模擬信號轉換成數字信號,通過H.264編碼器進行編碼壓縮,最后利用3G無線網絡將壓縮后的數據傳送到后臺監控計算機完成實時顯示。后臺計算機還可以通過3G網絡向PDA發送控制命令,實現云臺控制等相關操作。本文主要介紹PDA端的設計與實現。

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

Curr分別按照4個相鄰宏塊和自身宏塊的模式編碼,比較其代價值得到最優編碼。圖2所示為對宏塊A和B的優化編碼流程圖(對宏塊C和D的編碼類似)。通過測試比較及優化算法的處理,視頻在保真的情況下,有效地降低了壓縮比,提高了算法的運算速度。
Android平臺實現主要包括通信模塊和數據處理模塊。
通信模塊采用了Socket網絡通信技術進行UDB通信。通信之前的準備工作是完成Socket的創建,同時綁定Socket和端口號,設置開始監聽端口。監聽開始后,主程序循環監聽、接收請求信號,同時創建新的客戶連接Socket以及相應的通信進程。
數據處理模塊主要是對視頻流數據的提取和傳導。開啟攝像頭后,在視頻預覽時截取視頻流每一幀的數據。把截取到的數據傳輸到應用層進行圖像繪制,通過外設傳輸到DSP芯片進行視頻編碼,編碼后將數據通過網絡

傳送到后臺監控室。Android應用層[8]的核心代碼如下:

DSP芯片中軟件設計的主要目的是提高運算速度和效率。宏塊編碼采用不同位置獨立編碼,編程時盡可能地將判斷轉移到循環外,杜絕了大量幀內和幀間宏塊的重復判斷。利用快速的模式選擇算法對宏塊進行編碼,進一步提高了編碼效率。使用Blackfin533芯片專用的視頻指令SAA求取絕對差值求和函數SAD(),在很大程度上提高了運算速度。具體SAA的使用代碼如下:

圖3為系統在HTC G14手機和后臺計算機中利用聯通3G網絡實驗的結果。手機拍攝預覽的視頻顯示在計算機上;后臺可選擇監視某一臺手機的視野,還可以通過發送命令放大或縮小視野的范圍,整個過程不受距離限制。經過多次測試,PDA端與后臺在同一幀的顯示僅存在3 s~5 s的延遲。

目前,基于Android的視頻監控系統已在實驗室測試使用,基本完成了后臺計算機對PDA端攝像頭視野的實時監控功能。系統利用了3G網絡數據高傳輸速度中和Android系統開發便利的優勢,優化了H.264編碼方法和軟件編程。整個系統從軟件到硬件,開發成本低,實際使用方便。隨著網絡技術和視頻編碼技術的不斷發展,移動視頻監控有望在未來成為監控系統的主流發展方向。
[1]曹曉芳,王超,李杰.一種基于Android智能手機的遠程視頻監控的設計[J].電子器件,2011,34(6):709-712.
[2]李文新,李宇光,胡延蘇,等.嵌入式無線局域網中 H.264視頻傳輸的 QoS研究[J].計算機科學,2011,38(5):83-85.
[3]耿東久,索岳,陳渝,等.基于 Android手機的遠程訪問和控制系統[J].計算機應用,2011,31(2):559-561.
[4]西剎子.安防天下——智能網絡視頻監控技術詳解與實踐[M].北京:清華大學出版社,2010.
[5]閆健恩,許海燕,林建秋.基于 ADSP-Blackfin533的 H.264視頻編碼器的實現[J].微計算機信息,2006(5):27-29.
[6]顧梅花,余寧梅,寇立康,等.H.264快速模式選擇算法中的提前終止策略[J].中國圖像圖形學報,2011,16(3):305-309.
[7]盧光輝.P幀快速模式選擇算法[J].電子科技大學學報,2010,39(3):397-401.
[8]韓超,梁泉.Android系統原理及開發要點詳解[M].北京:電子工業出版社,2010.