|
嵌入式實(shí)戰(zhàn)培訓(xùn)機(jī)構(gòu)_IPV6在嵌入式視頻監(jiān)控系統(tǒng)中的應(yīng)用,
目前,以網(wǎng)絡(luò)為基礎(chǔ)的數(shù)字視頻監(jiān)控系統(tǒng)是視頻監(jiān)控系統(tǒng)發(fā)展的主流,而隨著微處理器技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的進(jìn)步,相比傳統(tǒng)視頻監(jiān)控系統(tǒng),嵌入式視頻監(jiān)控系統(tǒng)具有體積小、實(shí)時(shí)性強(qiáng)、性價(jià)比高#可靠性高、組網(wǎng)方便、可遠(yuǎn)程監(jiān)控等優(yōu)點(diǎn),因而更適用于工業(yè)控制#銀行#政府部門的安防系統(tǒng)中;谇度爰夹g(shù)的監(jiān)控系統(tǒng)不需處理模擬視頻信號(hào)的PC,而是把攝像機(jī)輸出的模擬視頻信號(hào)通過嵌入式視頻編碼器直接轉(zhuǎn)換成IP數(shù)字信號(hào)。嵌入式視頻編碼器具備視頻編碼處理、網(wǎng)絡(luò)通信、自動(dòng)控制等強(qiáng)大功能,直接支持網(wǎng)絡(luò)視頻傳輸和網(wǎng)絡(luò)管理,使得監(jiān)控范圍達(dá)到前所未有的廣度。除了編碼器外,還有嵌入式解碼器、控制器、錄像服務(wù)器等獨(dú)立的硬件模塊,它們可單獨(dú)安裝,不同廠家設(shè)備可實(shí)現(xiàn)互連。如何使嵌入式視頻監(jiān)控系統(tǒng)與 IPv6技術(shù)相結(jié)合是當(dāng)前監(jiān)控系統(tǒng)研究的一個(gè)重要方向。
1 視頻監(jiān)控系統(tǒng)總體設(shè)計(jì)
2 1系統(tǒng)結(jié)構(gòu)
系統(tǒng)總體結(jié)構(gòu)如圖1所示。攝像頭和視頻服務(wù)器組合在一起稱為視頻服務(wù)端或網(wǎng)絡(luò)攝像機(jī),每個(gè)視頻服務(wù)端分配一個(gè)獨(dú)立IPv6后通過雙絞線接入網(wǎng)絡(luò),客戶端通過IP網(wǎng)絡(luò)直接訪問和控制視頻服務(wù)端。攝像頭和麥克風(fēng)將采集的模擬音視頻信號(hào)送入內(nèi)部嵌入式Linux操作系統(tǒng)的視頻服務(wù)器,并通過雙絞線接入網(wǎng)絡(luò)。模擬信號(hào)被送入編碼器編碼成MPEG-4的視頻流和ADPCM的音頻流,從編碼器出來的音視頻流再被分為兩路,一路送入本地的視頻監(jiān)視器,另一路通過網(wǎng)絡(luò)發(fā)送到客戶端?蛻舳税逊⻊(wù)器端傳來音視頻數(shù)據(jù)分為兩路,一路進(jìn)行客戶端存儲(chǔ),另一路啟動(dòng)irectShow流水線,將視頻信號(hào)和音頻信號(hào)分離,分別送入各自的解碼器(視頻信號(hào)采用MPEG-4解碼器解碼)。最后,解碼后的音視頻信號(hào)被送入對(duì)應(yīng)的設(shè)備進(jìn)行實(shí)時(shí)預(yù)覽。
編碼器(encoder)是將信號(hào)(如比特流)或數(shù)據(jù)進(jìn)行編制、轉(zhuǎn)換為可用以通訊、傳輸和存儲(chǔ)的信號(hào)形式的設(shè)備。編碼器把角位移或直線位移轉(zhuǎn)換成電信號(hào),前者成為碼盤,后者稱碼尺。按照讀出方式編碼器可以分為接觸式和非接觸式兩種。接觸式采用電刷輸出,一電刷接觸導(dǎo)電區(qū)或絕緣區(qū)來表示代碼的狀態(tài)是“1“還是“0“;非接觸式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件時(shí)以透光區(qū)和不透光區(qū)來表示代碼的狀態(tài)是“1“還是“0“,通過“1“和“0“的二進(jìn)制編碼來將采集來的物理信號(hào)轉(zhuǎn)換為機(jī)器碼可讀取的電信號(hào)用以通訊、傳輸和儲(chǔ)存。
1.2系統(tǒng)設(shè)計(jì)思路
系統(tǒng)工作需要硬件和軟件協(xié)調(diào)土作共同實(shí)現(xiàn)。攝像頭采集視頻、麥克風(fēng)采集音頻,由服務(wù)器端采集卡完成音視頻的采集和壓縮,通過調(diào)用驅(qū)動(dòng)程序讀取采集和壓縮后的音視頻數(shù)據(jù)到緩存。緩存區(qū)中的音視頻數(shù)據(jù)發(fā)送傳輸都由服務(wù)器端軟件實(shí)現(xiàn)。
服務(wù)器端軟件讀出緩沖區(qū)的數(shù)據(jù),啟動(dòng)發(fā)送模塊,發(fā)送時(shí)采用RTP協(xié)議打包,模塊讀取緩沖區(qū)中的視頻流是以一幀為最小單位,由于按一幀打包時(shí)數(shù)據(jù)長(zhǎng)度比較大小適合在網(wǎng)絡(luò)中傳輸,所以需要在打包前將幀分割成幾段以適合網(wǎng)絡(luò)傳輸。按照RTP協(xié)議打包好的數(shù)據(jù),通過UDP傳輸?shù)娇蛻舳,如果是單用戶采用單播,如果是多用戶則采用多播。
B/S(Browser/Server,瀏覽器/服務(wù)器)模式又稱B/S結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S模式應(yīng)用的擴(kuò)展。在這種結(jié)構(gòu)下,用戶工作界面是通過IE瀏覽器來實(shí)現(xiàn)的。B/S模式最大的好處是運(yùn)行維護(hù)比較簡(jiǎn)便,能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的數(shù)據(jù);最大的缺點(diǎn)是對(duì)企業(yè)外網(wǎng)環(huán)境依賴性太強(qiáng),由于各種原因引起企業(yè)外網(wǎng)中斷都會(huì)造成系統(tǒng)癱瘓。服務(wù)器采集音視頻流并壓縮,通過網(wǎng)絡(luò)發(fā)送到客戶端,客戶端解碼還原出清晰的圖像是視頻監(jiān)控的基本功能。
2. 視頻監(jiān)控硬件原理及設(shè)計(jì)
本系統(tǒng)是在GX-ARM9-S3C2410核心模塊上進(jìn)行開發(fā)。該嵌入式監(jiān)控視頻服務(wù)器的設(shè)計(jì)主要是指根據(jù)系統(tǒng)要求實(shí)現(xiàn)的功能,選定主控制芯片和專用音視頻壓縮芯片,并確定其外圍電路,實(shí)現(xiàn)聲音圖像采集、壓縮、輸出等功能。由于作者主要完成系統(tǒng)的軟件部分,這里只對(duì)硬件部分做簡(jiǎn)要介紹。硬件模塊結(jié)構(gòu)設(shè)計(jì)如圖4.2所示:
2.1音視頻壓縮 /解壓縮模塊
該模塊的質(zhì)量直接關(guān)系到系統(tǒng)的圖像和聲音以及傳輸質(zhì)量,是系統(tǒng)硬件的重要部件之一。因此模塊選用了 VW2010,它是 VWEB公司開發(fā)的實(shí)時(shí) MPEG4音視頻壓縮 /解壓縮芯片((Encoder/Decoder),該芯片內(nèi)集成有 3個(gè)信號(hào)處理 /控制單元,包括一個(gè)視頻編碼 (壓縮)器、一個(gè)視頻解碼 (解壓)器和一個(gè)片內(nèi) CPU(內(nèi)部擴(kuò)展一個(gè)音頻編碼 DSP C Digital Signal Processors、一個(gè)音頻解碼 DSP、一個(gè)多路復(fù)合單元和一個(gè)多路解復(fù)合單元 ):具有可編程、高性能和低功耗等特點(diǎn)。
2.2音視頻采集、 A/D模塊
該模塊將攝像頭采集到的模擬視頻信號(hào)發(fā)送到模塊中的視頻 A/D轉(zhuǎn)換芯片進(jìn)行視頻數(shù)字化處理,同時(shí)將麥克風(fēng)采集到的模擬音頻送入音頻 A/D轉(zhuǎn)換芯片進(jìn)行音頻數(shù)字化處理。采用 Philips的 SAA7115H,它是 9bit視頻 A/D轉(zhuǎn)換器,支持 NTSC/PAL/SECAM制式,輸出數(shù)字的視頻信號(hào)符合 ITU601和 ITU-8656標(biāo)準(zhǔn)。系統(tǒng)的音頻模塊主要是以一塊音頻 A/D轉(zhuǎn)換芯片 PCM 1800以及與之配套的模擬音頻輸入輸出電路構(gòu)成。
2.3網(wǎng)絡(luò)傳輸模塊
模塊選用的網(wǎng)絡(luò)接口芯片是 Realte公司的 RTL8201BL.它是具有 lOM/100Mps自適應(yīng)功能的以太網(wǎng)收發(fā)控制器,是目前應(yīng)用最為廣泛的一種網(wǎng)絡(luò)接口芯片。系統(tǒng)將壓縮后的音視頻數(shù)據(jù)打包,通過網(wǎng)絡(luò)接口發(fā)送到網(wǎng)絡(luò)中,其電路圖如圖 3所示。
3. 軟件總體結(jié)構(gòu)與設(shè)計(jì)嵌入式設(shè)計(jì)DIY, 嵌入式樹莓題, 嵌入式噴頭型號(hào), 嵌入式ac軟件, 嵌入式系統(tǒng)可信計(jì)算, 什么是嵌入式監(jiān)管, 常見嵌入式系統(tǒng)實(shí)例, 嵌入式培訓(xùn)有必要么, 嵌入式生產(chǎn)者消費(fèi)者, 嵌入式收銀軟件, RTC時(shí)鐘嵌入式, 嵌入式編程工資, 嵌入式師學(xué)習(xí), 墻壁式+嵌入式, 嵌入式程序結(jié)構(gòu)圖, 嵌入式開發(fā)長(zhǎng)期培訓(xùn), 嵌入式分辨率與字體, 2016嵌入式真題, 科半嵌入式臺(tái)上盆, 天大測(cè)控嵌入式, 藍(lán)橋杯嵌入式競(jìng)賽, 做嵌入式累不, 嵌入式hal,
系統(tǒng)軟件設(shè)計(jì)包括服務(wù)器端和客戶端軟件設(shè)計(jì)。服務(wù)器端軟件主要實(shí)現(xiàn)采集音視頻、壓縮編碼、打包發(fā)送到網(wǎng)絡(luò)?蛻舳塑浖饕獙(shí)現(xiàn)接受服務(wù)器發(fā)送過來的音視頻壓縮包,然后對(duì)數(shù)據(jù)拼接解碼、播放,如圖 4所示。
3.1MPEG-4視頻流的 RTP組包處理
MPEG4于1998年11月公布,原預(yù)計(jì)1999年1月投入使用的國(guó)際標(biāo)準(zhǔn)MPEG4不僅是針對(duì)一定比特率下的視頻、音頻編碼,更加注重多媒體系統(tǒng)的交互性和靈活性。MPEG專家組的專家們正在為MPEG-4的制定努力工作。MPEG-4標(biāo)準(zhǔn)主要應(yīng)用于視像電話(VideoPhone),視像電子郵件(VideoEmail)和電子新聞(ElectronicNews)等,其傳輸速率要求較低,在4800-64000bits/sec之間,分辨率為176X144.MPEG-4利用很窄的帶寬,通過幀重建技術(shù),壓縮和傳輸數(shù)據(jù),以求以最少的數(shù)據(jù)獲得最佳的圖像質(zhì)量。
VOP是一個(gè)VO在特定時(shí)刻的快照,反映了該時(shí)刻VO的形狀、紋理和運(yùn)動(dòng)參數(shù),一般來說,一個(gè)VOP是一個(gè)任意形狀的圖像。
要通過 RTP傳輸 MPEG-4視頻流,需要對(duì)其進(jìn)行打包 (Packetization)處理。加上時(shí)間、同步等信息。MPEG-4對(duì)每個(gè) voP獨(dú)立進(jìn)行編 / 解碼。因此以 VOP為單位進(jìn)行打包,既提高了效率又充分利用了 MPEG-4的編碼特性。為了不造成 IP碎片,包長(zhǎng)還須有一個(gè)限制,就是不能超過該網(wǎng)絡(luò)路徑的 MTU(Maxium Transit Unit)?紤]到傳輸?shù)母咝院蛠G包的魯棒性,我們?nèi)“L(zhǎng)為當(dāng)前 VOP大小與路徑 MTU值的較小值,采用如下組包機(jī)制:
1 VOP能放入單個(gè) RTP包,就把此 VOP單獨(dú)放入一個(gè) RTP包中;
2 VOP分段,放入多個(gè) RTP包,此時(shí)須把 VOP頭部信息復(fù)制到每個(gè) RTP包,以去除包間的相關(guān)性,達(dá)到丟包的魯棒性 :為減小包數(shù),降低開銷,一包中能放入多少宏塊就盡可能多地放入多少宏塊,但即使最后一個(gè)包中仍有剩余空間,也小能把另一 VOP中的宏塊放入此包中,算法流程如圖 5所示。
3.2服務(wù)器端視頻發(fā)送和客戶端視頻接收
在基于DirectShow的視頻發(fā)送端中,其過濾器圖分別由 Video Capture Filter,Video Codec和 RTP Video Renderer Filter按順序連接成一條“流水線“協(xié)同工作,他們分別完成源過濾器、轉(zhuǎn)換過濾器和呈現(xiàn)過濾器的工作。 Video Capture Filter負(fù)責(zé)視頻數(shù)據(jù)采集, Video Codec負(fù)責(zé)視頻數(shù)據(jù)的壓縮,最后由 RTP Video RendererFilter將壓縮的視頻數(shù)據(jù)封裝 RTP包發(fā)送到網(wǎng)絡(luò)上。過濾器之間的數(shù)據(jù)發(fā)送采用推模式。
視頻發(fā)送實(shí)現(xiàn)過程如下:
1)初始化 coM組件,初始化 DirectShow,包括建立 GraphManager接口、建立 GraphBuilder接口(它的 CLSID為 CLSID_ FilterGraph)、建立 BasicFilter接口,并將 VWSource Filter (VW210), Sputter Filter(音視頻分離過濾器)、Codec Fil-ter(TopStepdVideo)和 RTPVren}lter (RTP傳輸呈現(xiàn)過濾器)加到 GraphBuilder.
2)通過系統(tǒng)設(shè)各列舉接口找到系統(tǒng)中默認(rèn)的視頻捕獲設(shè)備,并添加到 GraphBuilder中,查詢 GraphBuilder獲得媒體事件接口和媒體控制接口,連接各個(gè)過濾器,設(shè)置 RTP Vrenflter參數(shù)。
3)通過 GraphManager的控制接口,運(yùn)行過濾器圖,捕獲并發(fā)送圖象。
4)等待運(yùn)行結(jié)束消息,釋放各個(gè)接口,關(guān)閉 COM組件。視頻發(fā)送實(shí)現(xiàn)過程中圖像傳輸?shù)膶?shí)現(xiàn)最為關(guān)健,當(dāng)視頻發(fā)送端響應(yīng)網(wǎng)絡(luò)客戶端發(fā)出的視頻數(shù)據(jù)請(qǐng)求后,馬上啟動(dòng)視頻數(shù)據(jù)發(fā)送線程,開始采集 MPEG視頻數(shù)據(jù)并源源不斷地寫入到發(fā)送緩沖區(qū)中。它的實(shí)現(xiàn)原理是:位于源過濾器 VWSource Filter(VW210卡)將從攝像頭獲取的模擬視頻圖像首先進(jìn)行A/D轉(zhuǎn)換,然后將采集到的視頻數(shù)據(jù)交給下游的 MPEG Stream Spatter filter,由它對(duì)獲得的數(shù)據(jù)進(jìn)行解析后轉(zhuǎn)交給其下游的變換過濾器 Video Coder filter進(jìn)行 MPEG編碼,然后將編碼后的 MPEG視頻數(shù)據(jù)寫入發(fā)送緩沖區(qū),這部分都由 VW210卡完成。如果選擇本地存盤則過濾器圖連接到此結(jié)束,將視頻數(shù)據(jù)直接寫入磁盤。視頻接收端程序流程如下圖 7所示:
4結(jié)論
本文創(chuàng)新點(diǎn):本視頻監(jiān)控系統(tǒng)是基于 ARM嵌入式核心處理器的硬件平臺(tái),其中嵌入式系統(tǒng)中移植 TCP/IPv6協(xié)議,在原有 MPEG4視頻編碼基礎(chǔ)上采用了新的運(yùn)動(dòng)估計(jì)優(yōu)先估計(jì)矢量分布概率算法進(jìn)行優(yōu)化,同時(shí)對(duì)視頻傳輸算法也作了相應(yīng)的改進(jìn)。系統(tǒng)結(jié)合了流媒體技術(shù),IPv6技術(shù),嵌入式技術(shù)等優(yōu)點(diǎn),實(shí)驗(yàn)證明該系統(tǒng)視頻監(jiān)控方而取得了良好效果。
QICK |
|