《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM的嵌入式無(wú)線(xiàn)視頻監(jiān)控系統(tǒng)
基于ARM的嵌入式無(wú)線(xiàn)視頻監(jiān)控系統(tǒng)
來(lái)源:微型機(jī)與應(yīng)用2010年第16期
趙曉軍,,任明偉,,蘇海霞,曹建坤,王 飛,,陳 雷
(河北大學(xué) 電子信息與工程學(xué)院,,河北 保定071000)
摘要: 介紹了一種基于ARM9高速嵌入式處理器和H.264高效壓縮算法的嵌入式3G無(wú)線(xiàn)視頻監(jiān)控系統(tǒng),。分析了系統(tǒng)的總體結(jié)構(gòu),、硬件結(jié)構(gòu),并重點(diǎn)闡述了系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn),。實(shí)驗(yàn)結(jié)果表明,,該系統(tǒng)可以達(dá)到25幀/秒CIF圖像(320×240),實(shí)現(xiàn)了視頻流暢傳輸,。
Abstract:
Key words :

摘  要: 介紹了一種基于ARM9高速嵌入式處理器和H.264高效壓縮算法的嵌入式3G無(wú)線(xiàn)視頻監(jiān)控系統(tǒng),。分析了系統(tǒng)的總體結(jié)構(gòu),、硬件結(jié)構(gòu),并重點(diǎn)闡述了系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn),。實(shí)驗(yàn)結(jié)果表明,,該系統(tǒng)可以達(dá)到25幀/秒CIF圖像(320×240),實(shí)現(xiàn)了視頻流暢傳輸,。
關(guān)鍵詞: ARM9,;無(wú)線(xiàn)視頻監(jiān)控;H.264,;3G

    國(guó)內(nèi)外市場(chǎng)上主要推出的是數(shù)字控制的模擬視頻監(jiān)控和數(shù)字視頻監(jiān)控兩類(lèi)產(chǎn)品[1],。前者的技術(shù)發(fā)展已經(jīng)非常成熟,產(chǎn)品性能穩(wěn)定,,在實(shí)際工程中得到了廣泛應(yīng)用。后者是新近崛起的以計(jì)算機(jī)技術(shù)及圖像視頻壓縮技術(shù)為核心的新型視頻監(jiān)控系統(tǒng),,該系統(tǒng)在解決模擬視頻監(jiān)控系統(tǒng)的部分弊端的基礎(chǔ)上迅速崛起,。在互聯(lián)網(wǎng)的普遍推廣和網(wǎng)絡(luò)帶寬逐漸提高的背景下,視頻監(jiān)控技術(shù)飛速發(fā)展,,出現(xiàn)了集多媒體技術(shù),、網(wǎng)絡(luò)通信技術(shù)、嵌入式技術(shù)于一體的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),。
    目前國(guó)內(nèi)嵌入式視頻監(jiān)控系統(tǒng)的研究有了很大的發(fā)展,,但是國(guó)內(nèi)對(duì)嵌入式無(wú)線(xiàn)視頻監(jiān)控系統(tǒng)的研究還比較少。本文介紹了自主開(kāi)發(fā)的基于ARM的嵌入式無(wú)線(xiàn)視頻采集系統(tǒng)設(shè)計(jì)方案,。該方案采用S3C2410嵌入式處理器和ARMLinux操作系統(tǒng),,利用通過(guò)自行開(kāi)發(fā)的視頻服務(wù)器軟件,通過(guò)3G無(wú)線(xiàn)上網(wǎng)卡完成客戶(hù)端與視頻服務(wù)器的通信,。介紹了系統(tǒng)的硬件結(jié)構(gòu),、服務(wù)器端軟件的總體結(jié)構(gòu)、驅(qū)動(dòng)程序的構(gòu)建,、圖像的采集和壓縮以及傳輸模塊的設(shè)計(jì),,并進(jìn)行了測(cè)試。實(shí)驗(yàn)結(jié)果表明,,系統(tǒng)采用H.264編碼技術(shù)在保證視頻傳輸質(zhì)量的同時(shí)具有良好的帶寬適應(yīng)能力,。
1 系統(tǒng)總體結(jié)構(gòu)
    本系統(tǒng)由監(jiān)控現(xiàn)場(chǎng)攝像頭、嵌入式視頻服務(wù)器,、客戶(hù)端三部分組成,。監(jiān)控現(xiàn)場(chǎng)的攝像頭實(shí)現(xiàn)圖像的采集,并把采集的圖像信息通過(guò)內(nèi)部總線(xiàn)傳送給嵌入式視頻服務(wù)器,。嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)是一個(gè)基于S3C2410處理器,、H.264壓縮,、Web服務(wù)器和Linux操作系統(tǒng)的嵌入式系統(tǒng),它的主要功能是對(duì)攝像頭采集到的圖像進(jìn)行H.264壓縮編碼,,并對(duì)編碼后的圖像通過(guò)3G無(wú)線(xiàn)網(wǎng)絡(luò)進(jìn)行傳輸,。客戶(hù)端主要完成圖像的接收和解壓縮,,用戶(hù)可以通過(guò)Web瀏覽器訪問(wèn)嵌入式視頻服務(wù)器來(lái)觀看攝像頭采集到的圖像,,從而實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控。嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)總體結(jié)構(gòu)如圖1所示,。

2 系統(tǒng)硬件結(jié)構(gòu)
    系統(tǒng)硬件由圖像傳感器MI360,、3G無(wú)線(xiàn)模塊MC8630、圖像壓縮芯片ZC0301,、微處理器芯片S3C2410,、以太網(wǎng)控制芯片、SDRAM等芯片組成,。S3C2410具有低功耗,、精簡(jiǎn)而出色的全靜態(tài)設(shè)計(jì)等特點(diǎn),具備MMU存儲(chǔ)器管理功能,,擁有獨(dú)立的16 KB指令和16 KB數(shù)據(jù)緩存,,在高性能和低功耗特性方面提供了可靠的性能。無(wú)線(xiàn)模塊選用中興3G模塊 MC8630,,數(shù)據(jù)速率為前向:3.1 Mb/s max,,反向:1.8 Mb/s max。
    為了降低成本,,簡(jiǎn)化設(shè)計(jì),,本方案選用中星微的ZC0301作為視頻壓縮編碼芯片,Vimicro ZC0301主要由系統(tǒng)控制,、圖像信號(hào)處理,、次取樣和水平掃描、JPEG編碼器和USB設(shè)備控制五大功能模塊組成,。CMOS圖像傳感器選擇美光的MI360,,它采用VGA標(biāo)準(zhǔn)(30萬(wàn)像素),感光面積為1/4英寸,,有效像素649H×489H,,采用低噪聲技術(shù),噪聲等級(jí)達(dá)到CCD標(biāo)準(zhǔn),。MI360和ZC0301壓縮編碼芯片完成視頻數(shù)據(jù)的采集,、壓縮和編碼。系統(tǒng)硬件結(jié)構(gòu)如圖2所示,。

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

3.1 攝像頭驅(qū)動(dòng)程序設(shè)計(jì)
    圖像的采集工作由圖像傳感器MI360和視頻壓縮芯片ZC0301完成,,ZC0301通過(guò)USB接口和S3C2410相連,,因此驅(qū)動(dòng)程序主要是對(duì)Linux下USB驅(qū)動(dòng)程序的開(kāi)發(fā),,ZC0301的驅(qū)動(dòng)獨(dú)立開(kāi)發(fā)難度較大,主要是既要考慮圖像采集芯片的驅(qū)動(dòng),,還要考慮USB的驅(qū)動(dòng),,且Vimicro沒(méi)有公布ZC0301的詳細(xì)技術(shù)資料。Linux下ZC0301的驅(qū)動(dòng)程序有開(kāi)源代碼,,根據(jù)本系統(tǒng)的開(kāi)發(fā)平臺(tái)進(jìn)行修改,、移植、重新編譯內(nèi)核等操作可以完成ZC0301的驅(qū)動(dòng)程序,。
3.2 圖像采集模塊設(shè)計(jì)
    Video4linux(V4L)是Linux的影像串流系統(tǒng)與嵌入式影像系統(tǒng)的基礎(chǔ),,是Linux Kernel中支持影像設(shè)備的一組APIs,配合適當(dāng)?shù)囊曨l采集卡與視頻采集卡驅(qū)動(dòng)程序,,可以實(shí)現(xiàn)影像采集,、AM/FM無(wú)線(xiàn)廣播、影像CODEC,、視頻切換等功能,。Video4linux為二層式架構(gòu),上層為Video4linux驅(qū)動(dòng)程序本身,,下層架構(gòu)則是影像設(shè)備的驅(qū)動(dòng)程序,。這里用到的是Video4linux的上層驅(qū)動(dòng)程序,,即Video4linux本身所提供給程序開(kāi)發(fā)人員的APIs[3]。Video4linux視頻圖像采集流程如圖4所示,。

3.3 H.264圖像壓縮模塊設(shè)計(jì)
    H.264是ITU-T視頻編碼專(zhuān)家組(VCEG)和ISO/IEC活動(dòng)圖像編碼專(zhuān)家組(MPEG)的聯(lián)合視頻組(JVT)開(kāi)發(fā)的一個(gè)新的數(shù)字視頻編碼標(biāo)準(zhǔn)[4],。在技術(shù)上,H.264標(biāo)準(zhǔn)有很多優(yōu)勢(shì),,如統(tǒng)一的VLC符號(hào)編碼,,高精度、多模式的位移估計(jì),,基于4×4塊的整數(shù)變換,、分層的編碼語(yǔ)法等。這些措施使得H.264算法具有很高的編碼效率,,在相同的重建圖像質(zhì)量下能夠比H.263降低50%左右的碼率,。
    H.264的碼流結(jié)構(gòu)網(wǎng)絡(luò)適應(yīng)性強(qiáng),增加了差錯(cuò)恢復(fù)能力,,能夠很好地適應(yīng)IP和無(wú)線(xiàn)網(wǎng)絡(luò)[5],。H.264能以較低的數(shù)據(jù)速率傳送基于IP的視頻流,在視頻質(zhì)量,、壓縮效率和數(shù)據(jù)包恢復(fù)丟失等方面,,超越了現(xiàn)有的MPEG-2、MPEG-4和H.26x視頻通信標(biāo)準(zhǔn),,更適合窄帶傳輸,,是目前監(jiān)控系統(tǒng)最為理想的信源壓縮編碼標(biāo)準(zhǔn)。
    相對(duì)于有線(xiàn)網(wǎng)絡(luò)而言,無(wú)線(xiàn)網(wǎng)絡(luò)狀況更不穩(wěn)定,除去網(wǎng)絡(luò)流量所造成的傳輸速率的波動(dòng)外,設(shè)備的移動(dòng)速度和所在位置也會(huì)嚴(yán)重地影響到傳輸速率,。其次,無(wú)線(xiàn)信道的環(huán)境也要比有線(xiàn)信道惡劣得多,,數(shù)據(jù)的誤碼率也要高許多,而高壓縮的碼流對(duì)傳輸錯(cuò)誤非常敏感,還會(huì)造成錯(cuò)誤向后面的圖像擴(kuò)散,因此無(wú)線(xiàn)流媒體在信源和信道編碼上需要很好的容錯(cuò)技術(shù)。錯(cuò)誤恢復(fù)的工具隨著視頻壓縮編碼技術(shù)的提高在不斷改進(jìn),。舊的標(biāo)準(zhǔn)(H.261,、H.263、MPEG-2的第二部分)中,使用片和宏塊組的劃分,、幀內(nèi)編碼宏塊,、幀內(nèi)編碼片和幀內(nèi)編碼圖像來(lái)防止錯(cuò)誤的擴(kuò)散。之后改進(jìn)的標(biāo)準(zhǔn)(H.263+,,MPEG-4)中,使用多幀參考和數(shù)據(jù)分割技術(shù)來(lái)恢復(fù)錯(cuò)誤,。H.264標(biāo)準(zhǔn)在以前的基礎(chǔ)上提出了三種關(guān)鍵技術(shù)來(lái)進(jìn)行錯(cuò)誤的恢復(fù),分別是參數(shù)集合,、靈活的宏塊次序(FMO)和冗余片(RS),。FMO是H.264的一大特色,可以是一幀中的宏塊順序分割,使分割后的片的尺寸小于無(wú)線(xiàn)網(wǎng)絡(luò)的MTU尺寸,,避免在網(wǎng)絡(luò)層再進(jìn)行一次數(shù)據(jù)分割,,降低了數(shù)據(jù)傳輸?shù)念~外開(kāi)銷(xiāo)。
3.4 嵌入式Web服務(wù)器設(shè)計(jì)
    本系統(tǒng)選用適合嵌入式系統(tǒng)的Boa服務(wù)器,,它是單任務(wù)HTTP服務(wù)器,,占用空間小,另外支持動(dòng)態(tài)Web技術(shù)的CGI技術(shù),,源代碼開(kāi)放,,性能高。嵌入式Boa服務(wù)器移植到Linux系統(tǒng)中的網(wǎng)上相關(guān)資料很多,,不再贅述,。下面重點(diǎn)介紹應(yīng)用程序接口CGI程序設(shè)計(jì)。
    公共網(wǎng)關(guān)接口CGI是HTTP服務(wù)器與其他機(jī)器上的程序進(jìn)行“交談”的一種工具[6],,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上,。CGI是一個(gè)用于Web服務(wù)器與外部程序之間通信方式的標(biāo)準(zhǔn),使得外部程序能生成HTML,、圖像或其他內(nèi)容,,而服務(wù)器處理的方式與那些非外部程序生成的HTML、圖像或其他內(nèi)容的處理方式是相同的,。使用CGI的原因在于它是一個(gè)定義良好并被廣泛支持的標(biāo)準(zhǔn),,沒(méi)有CGI就不可能實(shí)現(xiàn)動(dòng)態(tài)的Web頁(yè)面,除非使用一些服務(wù)器中提供的特殊方法,。
    CGI程序入口為main()函數(shù),,函數(shù)首先執(zhí)行初始化用到的變量,然后根據(jù)提供的環(huán)境變量Environmentv獲取當(dāng)前訪問(wèn)用戶(hù)的用戶(hù)名,,判斷用戶(hù)的訪問(wèn)權(quán)限,,然后根據(jù)REQUESM得到用戶(hù)的請(qǐng)求方法,。如果是POST,,則根據(jù)Contentl獲取用戶(hù)請(qǐng)求內(nèi)容并分析;如果是GET,,則根據(jù)Querys獲取信息并分析請(qǐng)求內(nèi)容,,最后根據(jù)用戶(hù)權(quán)限做出相應(yīng)的處理;如果是其他的請(qǐng)求方法,,則返回錯(cuò)誤,,不支持該請(qǐng)求方法。流程圖如圖5所示,。

    S3C2410憑借其高性?xún)r(jià)比,、豐富的接口以及對(duì)網(wǎng)絡(luò)的強(qiáng)大支持,使其非常適合做網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的Web視頻服務(wù)器的處理器。H.264算法具有很高的編碼效率,,在相同的重建圖像質(zhì)量下,,能夠比H.263降低50%左右的碼率,。H.264的碼流結(jié)構(gòu)網(wǎng)絡(luò)適應(yīng)性強(qiáng),增加了差錯(cuò)恢復(fù)能力,,能夠很好地適應(yīng)IP和無(wú)線(xiàn)網(wǎng)絡(luò),。本系統(tǒng)支持動(dòng)態(tài)IP,可以直接連入以太網(wǎng),能夠即插即看。通過(guò)局域網(wǎng)(100 Mb/s以太網(wǎng))內(nèi)部測(cè)試,可以達(dá)到25幀/秒CIF圖像(320×240)要求,傳輸延遲0.6 s以?xún)?nèi),,編碼后的碼率150 Kbit/s,,由客戶(hù)端軟件解碼恢復(fù)后的視頻圖像清晰、流暢,、沒(méi)有抖動(dòng)現(xiàn)象,,能獲得較好的視頻質(zhì)量。
參考文獻(xiàn)
[1] 劉富強(qiáng).數(shù)字視頻監(jiān)控系統(tǒng)開(kāi)發(fā)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,,2003.
[2] 饒鳴.網(wǎng)絡(luò)攝像頭中嵌入式Web服務(wù)器的設(shè)計(jì)與性能分析[D].華中科技大學(xué),,2007:10-12.
[3] 陳俊宏.Embedded Linux嵌入式系統(tǒng)原理與實(shí)務(wù)[M].北京:中國(guó)鐵道出版社,2004.
[4] 夏祥.基于嵌入式Web技術(shù)的視頻監(jiān)控系統(tǒng)的構(gòu)建[D]. 復(fù)旦大學(xué),,2008:22-23.
[5] 胡書(shū)衛(wèi),,陸培倫.一種基于Linux的嵌入式視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)[J].安防系統(tǒng)設(shè)計(jì),2009(1):38-40.
[6] 王旭輝,,謝蕾.基于本體的多模式Web服務(wù)發(fā)現(xiàn)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),,2009,30(16):3868-3871.

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