陳泳安 何昌東 金龍 趙瑩瑩 李翔飛
【摘要】為解決現有無線視頻技術的傳輸視頻圖像質量差,傳輸容量小,傳輸速度慢等缺點。設計了以ARM9系列的S3C2440為核心控制器,結合了外部LCD顯示模塊、USB攝像頭接口模塊以及GPRS通信模塊,并在LINUX操作系統下完成上述模塊的內核移植。針對傳統的圖像壓縮算法有嚴重失真的問題,對H.264圖像壓縮算法進行了研究,該算法利用熵編碼技術解決了圖像壓縮慢和失真嚴重的問題。從而實現了無線視頻傳輸過程中圖像質量的高清晰、快速以及近無損傳輸;以及操作系統的方便快捷移植。
【關鍵詞】S3C2440;無線傳輸;嵌入式Linux;GPRS;H.264
引言
通訊技術與嵌入式技術的發展,將人類社會帶入到了一個以信息化為核心的嶄新紀元。信息社會的重要特征是人們對各種信息能夠方便、靈活的獲取以及在這個基礎上對各種信息的充分應用。由于視頻圖像文件包含的信息量大、可見性高,在信息社會得到了廣泛的應用。因此如何對圖像進行高質量的獲取、有效傳輸和理解將是一個核心的研究領域。
目前,各種應急通信以及復雜環境下的通信方案設計對無線通信技術的需求越來愈多,各個頻段、各種調制和通信方式的通信技術紛紛出現以應對這一情況。基于傳統的有線視頻監控系統存在著顯著的缺陷,例如:欠缺矯捷性、擴展和調整不便利、缺乏移動性等等。而基于ARM平臺的視頻圖像無線數字傳輸方式,具有體積小、功耗低、實時性好及傳輸可靠、資源豐富、功耗低、價格低廉等優點[1],在安防、會議和無線數字電視上的到了極大地推廣應用。
1.系統總體方案的設計
目前,多數無線視頻傳輸系統的體積較大,核心處理模塊構造簡單,只有簡單的控制視頻采集與視頻傳輸的功能,而視頻壓縮編碼多是通過視頻采集設備進行的,上位機接收端接收的視頻信息較為模糊,且系統缺乏智能化的功能和人性化的設計。現如今無線視頻傳輸在安防系統上有著重要的作用,視頻圖像不清晰或者數據缺失都會造成信息的遺漏,所以本文設計的無線視頻傳輸系統方案研究正是考慮到這些因素來設計的,其系統結構框圖如圖1所示。
無線視頻傳輸系統的運作流程主要概述為:系統上電后事先插接好的USB攝像頭采集設備、LCD觸摸屏設備、存儲模塊和GPRS模塊通電開始準備運行,并發送給核心處理器工作狀態信號。主控模塊接收到信號后,通過硬件系統核心處理模塊發出命令開始采集視頻圖像數據,LCD觸摸屏啟動并進入登錄界面。采集到的數據可通過液晶屏進行預播放,同時系統中基于H.264的軟件編碼系統開始編碼操作,編碼處理的數據在存儲中緩沖并進行傳輸的準備工作。嵌入式系統核心模塊發出傳輸地址和傳輸信號,GPRS模塊開始工作,將存儲緩沖區中編碼壓縮好的數據通過無線網絡發送至上位機終端,經解碼解壓顯示播放[2]。
2.控制系統硬件電路的設計
無線視頻傳輸系統的硬件平臺主要有以下幾部分組成,核心芯片為S3C440的ARM最小系統電路、USB攝像頭接口電路、GPRS無線通信電路、LCD顯示設備電路和電源電路。下面詳細介紹各模塊的硬件電路設計及功能實現。
GPRS通信模塊硬件電路設計:
選用Siemens公司生產的型號為MC35i的GPRS模塊,該模塊的連接接口為9針標準RS-232接口,通過MAX232電平轉換芯片和S3C2440的UART1口相連,進行全雙工通信[3]。GPRS通信模塊硬件電路設計如圖2所示。
3.系統軟件開發設計
本課題設計的無線視頻傳輸系統的軟件部分主要由四部分組成:bootloader的移植,Linux內核移植,根文件系統的制作,底層硬件的驅動[4]。
3.1 USB設備驅動移植
嵌入式Linux系統在USB驅動設備啟動,驅動程序首先要在系統內核中進行注冊,并提供設備相關的信息,如修改設備的類型和它所支持的操作等。一般來說,USB設備在系統上熱插拔的操作都會通過usb_driver結構體傳遞。USB驅動程序中必不可少的主要結構體為struct usb_driver,它向USB核心代碼描述了USB 驅動程序。
在USB驅動操作中探測函數probe()和斷開函數disconnect()為必須執行函數。在設備插入和拔出時分別被檢測命令調用,作用為初始化設備和釋放軟件資源。而注冊和注銷usb_driver分別通過以下兩個函數來完成:
int usb_register(struct usb_driver *new_driver)
void usb_deregister(struct usb_driver *driver)
USB從意義上來說只是一條總線,當USB驅動運行時,設備本身的各個驅動由USB與主機相連接收或發出命令。所以usb_driver在驅動代碼中只起到了牽線作用,而設備真正的注冊和注銷直接發生在模塊加載和卸載的相關函數中。
3.2 H.264熵編碼技術
熵編碼是無損壓縮編碼,它生成的碼流可以經解碼無失真的恢復出原始數據,是將特定的數據編碼成定長的或可變長二進制碼字的一種編碼方法,H.264標準中的熵編碼過程,包含基于內容自適應的變長編碼(CAVLC:Context-based Adaptive Variable Length Coding)過程、基于內容自適應的二進制算術編碼(CABAC:Context-based Adaptive Binary Arithmetic Coding)過程和指數哥倫布熵編碼(Exp-Golomb)過程[5]。各部分的分析如下:
指數哥倫布熵編碼用于對句法元素的編碼,把所有句法元素映像到統一的可擴展碼字表,不單獨對每個句法元素設計不同的碼字表,有助于降低編解碼的復雜度[5]。指數哥倫布熵編碼過程中,碼流中參考幀索引、量化步長、宏塊類型、運動矢量差值和幀內預測模式等信息為其壓縮編碼的主要對象。其編碼的碼字構造為:
3.3 幀間預測技術
與幀內預測模塊相同,幀間預測模塊也分為兩個部分:指數哥倫布熵解碼和針對當前塊亮度、色度分量進行的1/4和1/8精度的內插計算,在編碼過程中對幀與幀之間沒有明顯變化的圖像內容進行編解碼對資源會造成浪費,高效的對所需要的內容進行編解碼是幀間預測技術的優勢[47]。
在幀間預測方法中,參考圖像為先前已編碼幀的圖像,在幀間模式運行時,系統利用參考圖像對當前圖像進行預測,此時當前圖像的抽樣值為參考圖像的抽樣點通過運動矢量的補償值,參考幀的選擇和模式判定公式如下:
S為當前塊像素,mv為當前矢量,pred為預測矢量,ref為參考幀,r(ref,mv)為參考塊像素,SA(T)D為當前塊和參考塊像素差值的絕對值,c為重建塊,R為對宏編碼的比特,SSD為當前塊和重建塊的差值平方和。這種方法能夠降低圖像的時域相關性,提高了視頻圖像的壓縮效率。H.264標準中使用塊結構運動補償,支持多種塊結構預測,運算精度能精確到1/4像素。
圖3 上位機接收視頻實時顯示
4.試驗結果分析
系統采集的視頻圖像信息通過無限傳輸后在上位機接收端的播放器上播放情況如圖3 所示。圖中所看到的視頻畫面分辨率為720×576,系統H.264軟件編碼率為400kbps,幀率為30fps。
5.結論
借鑒原有編碼技術,本設計使用新的壓縮方法在最大程度上減少了視頻數據的丟失,同時在原有的硬件基礎上添加了智能控制系統。
本設計的智能系統具有良好的適應能力,能夠在一些比較復雜的環境下工作,其中采用的LCD觸摸顯示屏在人為操作時更加簡便也更加智能,極大地簡化了操作過程。本設計的無線視頻傳輸系統融合了嵌入式系統和當下最為普及的GPRS技術解決了一些復雜環境下視頻傳輸的實際需求。
參考文獻
[1]傅中君.嵌入式GPRS無線通信模塊的設計與實現[J].計算機工程與應用.2009,14(23)2162-165.
[2]翟戰強,蔡少華.基于GPRS/GPS/GIS的車輛導航與監控系統[J].測繪通報,2004,26(15)34-36.
[3]楊磊,蔣念平.嵌入式Linux下USB主控制器驅動設計[J].信息技術,2013,13(36)121-123.
[4]黃倩,閔華松.基于ARM的移動視頻監控系統[J].現代電子技術,2010,33(1):148-152.
[5]郭知明,楊世風.基于GPRS技術的城市管網監測系統的研究[J].國外電子測量技術,2009,28(12):81-83.
作者簡介:陳泳安(1988—),男,中北大學計算機與控制工程學院碩士研究生,主要從事嵌入式系統開發工作。