《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM9的嵌入式3G無線視頻監(jiān)控系統(tǒng)設計
基于ARM9的嵌入式3G無線視頻監(jiān)控系統(tǒng)設計
中電網(wǎng)
摘要: 本文介紹了自主開發(fā)的基于ARM的嵌入式無線視頻采集系統(tǒng)設計方案。該方案采用S3C2410嵌入式處理器和ARMLinux操作系統(tǒng),利用通過自行開發(fā)的視頻服務器軟件,通過3G無線上網(wǎng)卡完成客戶端與視頻服務器的通信。介紹了系統(tǒng)的硬件結構、服務器端軟件的總體結構、驅(qū)動程序的構建、圖像的采集和壓縮以及傳輸模塊的設計,并進行了測試。實驗結果表明,系統(tǒng)采用H.264編碼技術在保證視頻傳輸質(zhì)量的同時具有良好的帶寬適應能力。
Abstract:
Key words :

國內(nèi)外市場上主要推出的是數(shù)字控制的模擬視頻監(jiān)控和數(shù)字視頻監(jiān)控兩類產(chǎn)品。前者的技術發(fā)展已經(jīng)非常成熟,產(chǎn)品性能穩(wěn)定, 在實際工程中得到了廣泛應用。

后者是新近崛起的以計算機技術及圖像視頻壓縮技術為核心的新型視頻監(jiān)控系統(tǒng), 該系統(tǒng)在解決模擬視頻監(jiān)控系統(tǒng)的部分弊端的基礎上迅速崛起。在互聯(lián)網(wǎng)的普遍推廣和網(wǎng)絡帶寬逐漸提高的背景下,視頻監(jiān)控技術飛速發(fā)展, 出現(xiàn)了集多媒體技術、網(wǎng)絡通信技術、嵌入式技術于一體的嵌入式網(wǎng)絡視頻監(jiān)控系統(tǒng)。

目前國內(nèi)嵌入式視頻監(jiān)控系統(tǒng)的研究有了很大的發(fā)展, 但是國內(nèi)對嵌入式無線視頻監(jiān)控系統(tǒng)的研究還比較少。本文介紹了自主開發(fā)的基于ARM 的嵌入式無線視頻采集系統(tǒng)設計方案。該方案采用S3C2410 嵌入式處理器和ARMLinux 操作系統(tǒng), 利用通過自行開發(fā)的視頻服務器軟件,通過3G 無線上網(wǎng)卡完成客戶端與視頻服務器的通信。介紹了系統(tǒng)的硬件結構、服務器端軟件的總體結構、驅(qū)動程序的構建、圖像的采集和壓縮以及傳輸模塊的設計,并進行了測試。實驗結果表明, 系統(tǒng)采用H.264 編碼技術在保證視頻傳輸質(zhì)量的同時具有良好的帶寬適應能力。

1 系統(tǒng)總體結構

本系統(tǒng)由監(jiān)控現(xiàn)場攝像頭、嵌入式視頻服務器、客戶端三部分組成。監(jiān)控現(xiàn)場的攝像頭實現(xiàn)圖像的采集,并把采集的圖像信息通過內(nèi)部總線傳送給嵌入式視頻服務器。嵌入式遠程視頻監(jiān)控系統(tǒng)是一個基于S3C2410處理器、H.264 壓縮、Web 服務器和Linux 操作系統(tǒng)的嵌入式系統(tǒng), 它的主要功能是對攝像頭采集到的圖像進行H.264 壓縮編碼, 并對編碼后的圖像通過3G 無線網(wǎng)絡進行傳輸。客戶端主要完成圖像的接收和解壓縮, 用戶可以通過Web 瀏覽器訪問嵌入式視頻服務器來觀看攝像頭采集到的圖像,從而實現(xiàn)遠程視頻監(jiān)控。嵌入式遠程視頻監(jiān)控系統(tǒng)總體結構如圖1 所示。

嵌入式遠程視頻監(jiān)控系統(tǒng)總體結構

圖1 嵌入式遠程視頻監(jiān)控系統(tǒng)總體結構

2 系統(tǒng)硬件結構

系統(tǒng)硬件由圖像傳感器MI360 、3G 無線模塊MC8630 、圖像壓縮芯片ZC0301 、微處理器芯片S3C2410 、以太網(wǎng)控制芯片、SDRAM 等芯片組成。S3C2410 具有低功耗、精簡而出色的全靜態(tài)設計等特點,具備MMU 存儲器管理功能, 擁有獨立的16 KB 指令和16 KB 數(shù)據(jù)緩存,在高性能和低功耗特性方面提供了可靠的性能。無線模塊選用中興3G 模塊MC8630, 數(shù)據(jù)速率為前向:3.1 Mb/smax,反向:1.8 Mb/s max 。

為了降低成本, 簡化設計, 本方案選用中星微的ZC0301 作為視頻壓縮編碼芯片,Vimicro ZC0301 主要由系統(tǒng)控制、圖像信號處理、次取樣和水平掃描、JPEG 編碼器和USB 設備控制五大功能模塊組成。CMOS 圖像傳感器選擇美光的MI360 , 它采用VGA 標準(30 萬像素) ,感光面積為1/4 英寸, 有效像素649H ×489H, 采用低噪聲技術,噪聲等級達到CCD 標準。MI360 和ZC0301 壓縮編碼芯片完成視頻數(shù)據(jù)的采集、壓縮和編碼。系統(tǒng)硬件結構如圖2 所示。

嵌入式監(jiān)控系統(tǒng)硬件結構

圖2 嵌入式監(jiān)控系統(tǒng)硬件結構

3 系統(tǒng)軟件結構

本嵌入式遠程視頻監(jiān)控系統(tǒng)軟件由攝像頭驅(qū)動模塊、圖像采集模塊、H.264 圖像壓縮模塊、嵌入式Web 服務器組成。攝像頭驅(qū)動模塊實現(xiàn)攝像頭在Linux 操作系統(tǒng)下的正常工作, 并為應用程序提供接口。圖像采集程序獲取攝像頭傳送過來的圖像信息并進行暫存。H.264壓縮模塊完成對原始圖像的編碼處理。嵌入式Web 服務器實現(xiàn)圖像數(shù)據(jù)處理與網(wǎng)絡傳輸。嵌入式Web 服務器一般由5 個主要模塊組成: 嵌入式HTTP 引擎、安全模塊、應用程序接口、文件系統(tǒng)和配置模塊[ 2]。由于開發(fā)平臺采用的嵌入式操作系統(tǒng)為ARMLinux , 具有成熟的文件系統(tǒng), 提供文件訪問的接口, 可以直接使用文件系統(tǒng)提供的讀寫接口訪問嵌入式Web 資源文件, 不需要另外設計文件系統(tǒng)。嵌入式視頻監(jiān)控系統(tǒng)軟件體系結構如圖3 所示。

嵌入式視頻監(jiān)控系統(tǒng)軟件體系結構

圖3 嵌入式視頻監(jiān)控系統(tǒng)軟件體系結構

3.1 攝像頭驅(qū)動程序設計

圖像的采集工作由圖像傳感器MI360 和視頻壓縮芯片ZC0301 完成,ZC0301 通過USB 接口和S3C2410 相連,因此驅(qū)動程序主要是對Linux 下USB 驅(qū)動程序的開發(fā),ZC0301 的驅(qū)動獨立開發(fā)難度較大, 主要是既要考慮圖像采集芯片的驅(qū)動, 還要考慮USB 的驅(qū)動, 且Vimicro 沒有公布ZC0301 的詳細技術資料。Linux 下ZC0301 的驅(qū)動程序有開源代碼, 根據(jù)本系統(tǒng)的開發(fā)平臺進行修改、移植、重新編譯內(nèi)核等操作可以完成ZC0301 的驅(qū)動程序。

3.2 圖像采集模塊設計

Video4linux(V4L) 是Linux 的影像串流系統(tǒng)與嵌入式影像系統(tǒng)的基礎,是Linux Kernel 中支持影像設備的一組APIs , 配合適當?shù)囊曨l采集卡與視頻采集卡驅(qū)動程序,可以實現(xiàn)影像采集、AM/FM 無線廣播、影像CODEC、視頻切換等功能。Video4linux 為二層式架構, 上層為Video4linux 驅(qū)動程序本身, 下層架構則是影像設備的驅(qū)動程序。這里用到的是Video4linux 的上層驅(qū)動程序, 即Video4linux 本身所提供給程序開發(fā)人員的APIs 。

Video4linux 視頻圖像采集流程如圖4 所示。

Video4linux 視頻圖像采集流程圖

圖4 Video4linux 視頻圖像采集流程圖

3.3 H.264 圖像壓縮模塊設計

H.264 是ITU-T 視頻編碼專家組(VCEG) 和ISO/IEC活動圖像編碼專家組(MPEG) 的聯(lián)合視頻組(JVT) 開發(fā)的一個新的數(shù)字視頻編碼標準。在技術上,H.264 標準有很多優(yōu)勢,如統(tǒng)一的VLC 符號編碼,高精度、多模式的位移估計,基于4×4 塊的整數(shù)變換、分層的編碼語法等。這些措施使得H.264 算法具有很高的編碼效率, 在相同的重建圖像質(zhì)量下能夠比H.263 降低50%左右的碼率。

H.264 的碼流結構網(wǎng)絡適應性強, 增加了差錯恢復能力, 能夠很好地適應IP 和無線網(wǎng)絡。H.264 能以較低的數(shù)據(jù)速率傳送基于IP 的視頻流, 在視頻質(zhì)量、壓縮效率和數(shù)據(jù)包恢復丟失等方面,超越了現(xiàn)有的MPEG-2、MPEG-4 和H.26x 視頻通信標準, 更適合窄帶傳輸,是目前監(jiān)控系統(tǒng)最為理想的信源壓縮編碼標準。

相對于有線網(wǎng)絡而言,無線網(wǎng)絡狀況更不穩(wěn)定,除去網(wǎng)絡流量所造成的傳輸速率的波動外, 設備的移動速度和所在位置也會嚴重地影響到傳輸速率。其次, 無線信道的環(huán)境也要比有線信道惡劣得多,數(shù)據(jù)的誤碼率也要高許多,而高壓縮的碼流對傳輸錯誤非常敏感, 還會造成錯誤向后面的圖像擴散, 因此無線流媒體在信源和信道編碼上需要很好的容錯技術。錯誤恢復的工具隨著視頻壓縮編碼技術的提高在不斷改進。舊的標準(H.261、H.263、MPEG-2 的第二部分)中,使用片和宏塊組的劃分、幀內(nèi)編碼宏塊、幀內(nèi)編碼片和幀內(nèi)編碼圖像來防止錯誤的擴散。之后改進的標準(H.263+,MPEG-4)中,使用多幀參考和數(shù)據(jù)分割技術來恢復錯誤。H.264 標準在以前的基礎上提出了三種關鍵技術來進行錯誤的恢復, 分別是參數(shù)集合、靈活的宏塊次序(FMO)和冗余片(RS)。FMO 是H.264 的一大特色,可以是一幀中的宏塊順序分割,使分割后的片的尺寸小于無線網(wǎng)絡的MTU 尺寸,避免在網(wǎng)絡層再進行一次數(shù)據(jù)分割,降低了數(shù)據(jù)傳輸?shù)念~外開銷。

3.4 嵌入式Web 服務器設計

本系統(tǒng)選用適合嵌入式系統(tǒng)的Boa 服務器, 它是單任務HTTP 服務器, 占用空間小, 另外支持動態(tài)Web 技術的CGI 技術, 源代碼開放, 性能高。嵌入式Boa 服務器移植到Linux 系統(tǒng)中的網(wǎng)上相關資料很多, 不再贅述。

下面重點介紹應用程序接口CGI 程序設計。

公共網(wǎng)關接口CGI 是HTTP 服務器與其他機器上的程序進行“ 交談” 的一種工具, 其程序須運行在網(wǎng)絡服務器上。CGI 是一個用于Web 服務器與外部程序之間通信方式的標準, 使得外部程序能生成HTML、圖像或其他內(nèi)容,而服務器處理的方式與那些非外部程序生成的HTML、圖像或其他內(nèi)容的處理方式是相同的。使用CGI的原因在于它是一個定義良好并被廣泛支持的標準, 沒有CGI 就不可能實現(xiàn)動態(tài)的Web 頁面, 除非使用一些服務器中提供的特殊方法。

CGI 程序入口為main () 函數(shù), 函數(shù)首先執(zhí)行初始化用到的變量, 然后根據(jù)提供的環(huán)境變量Environmentv 獲取當前訪問用戶的用戶名, 判斷用戶的訪問權限, 然后根據(jù)REQUESM 得到用戶的請求方法。如果是POST, 則根據(jù)Contentl 獲取用戶請求內(nèi)容并分析;如果是GET, 則根據(jù)Querys 獲取信息并分析請求內(nèi)容, 最后根據(jù)用戶權限做出相應的處理;如果是其他的請求方法, 則返回錯誤, 不支持該請求方法。流程圖如圖5 所示。

CGI 程序處理流程

圖5 CGI 程序處理流程

S3C2410 憑借其高性價比、豐富的接口以及對網(wǎng)絡的強大支持, 使其非常適合做網(wǎng)絡視頻監(jiān)控系統(tǒng)的Web視頻服務器的處理器。H.264 算法具有很高的編碼效率, 在相同的重建圖像質(zhì)量下, 能夠比H.263 降低50%左右的碼率。H.264 的碼流結構網(wǎng)絡適應性強, 增加了差錯恢復能力,能夠很好地適應IP 和無線網(wǎng)絡。本系統(tǒng)支持動態(tài)IP, 可以直接連入以太網(wǎng), 能夠即插即看。通過局域網(wǎng)(100 Mb/s 以太網(wǎng)) 內(nèi)部測試, 可以達到25 幀/秒CIF 圖像(320×240) 要求, 傳輸延遲0.6 s 以內(nèi), 編碼后的碼率150 Kbit/s , 由客戶端軟件解碼恢復后的視頻圖像清晰、流暢、沒有抖動現(xiàn)象, 能獲得較好的視頻質(zhì)量。

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