版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于WEB的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的研究與設(shè)計</p><p> 摘 要 隨著網(wǎng)絡(luò)通信技術(shù)和嵌入式技術(shù)的發(fā)展,基于嵌入式Web服務(wù)器的視頻監(jiān)控系統(tǒng)已成為監(jiān)控領(lǐng)域的發(fā)展趨勢,采用B/S架構(gòu)的嵌入式Web服務(wù)器,監(jiān)控者無需到現(xiàn)場操作,系統(tǒng)成本低廉,設(shè)備體積小巧,安裝方便,故障維護(hù)升級簡單,安全可靠,滿足了現(xiàn)代消費者的需求。</p><p> 本文針對視頻監(jiān)控設(shè)備前端一體化、
2、小型化和便攜等相關(guān)需求,以動態(tài)數(shù)據(jù)交互技術(shù)和移動通信技術(shù)為基礎(chǔ),借助嵌入式系統(tǒng)的網(wǎng)絡(luò)支持,設(shè)計了一種基于Web服務(wù)器的B/S方式的遠(yuǎn)程視頻監(jiān)控系統(tǒng)。設(shè)計中以ARM7芯片和Linux系統(tǒng)為軟硬件開發(fā)平臺,結(jié)合嵌入式Web技術(shù),給出了視頻監(jiān)控系統(tǒng)的總體設(shè)計方案,深入研究了各個功能模塊。目前3G無線通信網(wǎng)絡(luò)正在普及,為了滿足未來移動監(jiān)控的需要,本系統(tǒng)數(shù)據(jù)傳輸引入了3G無線模塊的方案,為后續(xù)研究奠定了基礎(chǔ)。</p><p&g
3、t; 本文主要研究的嵌入式Web服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的軟件設(shè)計,對現(xiàn)代視頻監(jiān)控的研究具有一定的參考價值。</p><p> 關(guān)鍵詞: 視頻監(jiān)控 嵌入式Web ARM Linux 3G無線通信</p><p> The design of remote video surveillance system based on WEB</p><p>
4、 Abstract With the development of the communication and network technology and embedded technology, the video surveillance system based on the embedded Web server has been the development tendency in the monitoring fiel
5、d. Because an embedded Web server based on B/S is usually adopted by remote monitoring system,it needn’t be operated at a special physical position.This design method can reduce the cost as well as the size of the entire
6、 system.The device is more convenient to be installed,easier </p><p> This paper aiming at satisfying the needs of the front-end integration, compact,portable in current video surveillance systems,a Web-bas
7、ed the B/S mode remote video monitoring system is designed.We adopt the ARM7 and Linux systems as soft hardware development platform in our design.Combining with embedded Web technology. We are mainly engaged in followin
8、g work. 3G wireless communication networks are currently popular, in order to meet the needs of future motion monitor,the data transmission of t</p><p> An embedded Web server for remote video monitoring sy
9、stem described in this paper has a certain reference value for vehicle video motion monitoring.</p><p> Key words: Video monitoring embedded Web ARM Linux 3Gwireless communication </p>
10、<p><b> 目 錄</b></p><p><b> 第一章 緒論1</b></p><p> 1.1課題研究的背景和意義1</p><p> 1.1.1模擬視頻監(jiān)控系統(tǒng)1</p><p> 1.1.2本地數(shù)字視額監(jiān)控系統(tǒng)2</p><p&g
11、t; 1.1.3遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)2</p><p> 1.2視頻監(jiān)控系統(tǒng)的發(fā)展趨勢3</p><p> 1.3嵌入式視頻監(jiān)控系統(tǒng)常見設(shè)計方案4</p><p> 1.4本文的主要研究工作6</p><p> 第二章總體方案設(shè)計及平臺搭建7</p><p> 2.1 遠(yuǎn)程視頻監(jiān)控系統(tǒng)方案設(shè)計7
12、</p><p> 2.1.1 監(jiān)控系統(tǒng)整體網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計7</p><p> 2.1.2視頻監(jiān)控系統(tǒng)硬件方案設(shè)計10</p><p> 2.1.3視頻監(jiān)控系統(tǒng)的系統(tǒng)軟件選擇11</p><p> 2.2系統(tǒng)開發(fā)平臺的搭建12</p><p> 2.3嵌入式Linux的移植13</p>
13、<p> 2.4本章小結(jié)14</p><p> 第三章視頻采集模塊的設(shè)計與實現(xiàn)15</p><p> 3.1 基于V4L2的視頻采集模塊設(shè)計15</p><p> 3.1.1 V4L2視頻采集的數(shù)據(jù)結(jié)構(gòu)15</p><p> 3.1.2 V4L2視頻采集的流程16</p><p> 3.
14、1.3視頻數(shù)據(jù)的存儲23</p><p> 3.2視頻編碼23</p><p> 3.2.1視頻編碼技術(shù)的選擇24</p><p> 3.2.2基于FFmpeg的H.264編碼25</p><p> 3.3視頻數(shù)據(jù)庫27</p><p> 3.3.1 SQLite數(shù)據(jù)庫的設(shè)計27</p>
15、;<p> 3.3.2 SQLite的編譯與移植29</p><p> 3.4本章小結(jié)30</p><p> 第四章Web服務(wù)器的搭建與數(shù)據(jù)的傳輸31</p><p> 4.1嵌入式Web服務(wù)器的構(gòu)建31</p><p> 4.1.1嵌入式Web服務(wù)器的選擇31</p><p> 4
16、.1.2 Boa的移植和配置33</p><p> 4.1.3公共網(wǎng)關(guān)接口(CGI)技術(shù)34</p><p> 4.2 3G無線網(wǎng)絡(luò)視頻傳輸36</p><p> 4.3本章小結(jié)39</p><p> 第五章總結(jié)與展望40</p><p><b> 5.1 總結(jié)40</b>
17、</p><p><b> 5.2展望41</b></p><p><b> 致謝42</b></p><p><b> 參考文獻(xiàn)43</b></p><p><b> 第一章 緒論 </b></p><p> 網(wǎng)絡(luò)
18、通信和微電子技術(shù)的快速發(fā)展和人民物質(zhì)生活水平的提高,使得人們的生產(chǎn)行為,生活方式發(fā)生了重大的變化,視頻監(jiān)控以其直觀,方面和內(nèi)容豐富等特點日益受到人們的重視。安防監(jiān)控從銀行到交通路口,從連鎖超市到小區(qū)范圍,都會看到監(jiān)控產(chǎn)品的存在,大量犯罪案件在安防監(jiān)控產(chǎn)品的幫助下破獲。人們意識到視頻監(jiān)控對生產(chǎn)生活的安全非常重要,而網(wǎng)絡(luò)視頻監(jiān)控憑借其先進(jìn)的技術(shù)和貼近用戶習(xí)慣的使用方式,逐步走進(jìn)人們的生活當(dāng)中。</p><p> 視
19、頻監(jiān)控系統(tǒng)在保護(hù)安全,預(yù)防犯罪方面起到不可低估的作用,監(jiān)控市場領(lǐng)域不斷擴(kuò)大。據(jù)權(quán)威部門統(tǒng)計,1998年全國圖像監(jiān)控系統(tǒng)的市場總額為650億元,今年來一直保持15﹪至30﹪的速度快速增長。隨著攝像設(shè)備價格逐漸下降,計算機(jī)計算能力增強(qiáng)和網(wǎng)絡(luò)速度的提高,視頻監(jiān)控技術(shù)得到了快速的發(fā)展。</p><p> 1.1課題研究的背景和意義 </p><p> 視頻監(jiān)控系統(tǒng)的產(chǎn)生和發(fā)展有兩個方面的
20、原因:一方面,隨著人們安全防范觀念的加強(qiáng),人們迫切希望通過監(jiān)控的方式來預(yù)防和減少公共場所的破壞及犯罪活動。另一方面,視頻技術(shù)和網(wǎng)絡(luò)通信技術(shù)日益成熟,為它的實現(xiàn)和應(yīng)用奠定了基礎(chǔ);而計算機(jī)技術(shù)和多媒體技術(shù)的迅速發(fā)展,將自動控制和多媒體技術(shù)融入到視頻監(jiān)控系統(tǒng)中來,促進(jìn)了它的普及和應(yīng)用。視頻監(jiān)控系統(tǒng)的發(fā)展大致經(jīng)歷了三個階段:a、模擬視頻監(jiān)控系統(tǒng);b、本地數(shù)字視頻監(jiān)控系統(tǒng);c、遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。</p><p> 1
21、.1.1模擬視頻監(jiān)控系統(tǒng)</p><p> 采用模擬方式傳輸,最簡單的就是將圖像信號直接送入視頻電纜進(jìn)行傳輸。每一監(jiān)控點的視頻信號都通過一條電纜線連接到中心控制室的多路切換器上,以手動切換方式選擇監(jiān)控點圖像,使之顯示在監(jiān)視器上。模擬視頻監(jiān)控有以下弊端:運行及維護(hù)成本高;視頻圖像的質(zhì)量不能在任意時刻調(diào)整;無法聯(lián)網(wǎng),只能以點對點的方式監(jiān)控現(xiàn)場,使得布線工程量極大;檢索困難;難以做到無人值守。</p>
22、<p> 1.1.2本地數(shù)字視額監(jiān)控系統(tǒng)</p><p> 進(jìn)入20世紀(jì)80年代,隨著數(shù)字化技術(shù)的發(fā)展,人們從過去的模擬處理方式轉(zhuǎn)向數(shù)字處理方式,開始使用計算機(jī)處理圖像信號。利用計算機(jī)的數(shù)據(jù)處理能力與顯示器的高清晰度,將視頻信號通過視頻采集卡采集到計算機(jī)中,顯示在顯示器上,大大提高了圖像的畫質(zhì),但是控制與切換仍采用傳統(tǒng)的單片機(jī)方式,只是計算機(jī)串口與之相連,完成控制工作。盡管它有良好的人機(jī)界面,較好的
23、穩(wěn)定性,但它不能稱為真正的數(shù)字圖像監(jiān)控系統(tǒng)。其根本原因在于系統(tǒng)設(shè)計的出發(fā)點不是基于計算機(jī),而是基于傳統(tǒng)模式。大部分時間里,計算機(jī)只是充當(dāng)一個外部監(jiān)視器的角色,并且傳統(tǒng)單片機(jī)系統(tǒng)固有的弊端并沒有克服,通信協(xié)議的多樣化與專用化很難統(tǒng)一,導(dǎo)致現(xiàn)有的計算機(jī)資源遠(yuǎn)遠(yuǎn)滿足不了多種設(shè)備的要求。另外計算機(jī)的運行速度較低,而數(shù)字視頻的數(shù)據(jù)量又很大,這樣就限制了利用一臺計算機(jī)同時處理更多數(shù)字視頻信號的能力。很難組建大型監(jiān)控系統(tǒng)。</p>&l
24、t;p> 1.1.3遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)</p><p> 第三代視頻監(jiān)控系統(tǒng)——遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的關(guān)鍵設(shè)備是網(wǎng)絡(luò)視頻信號采集終端(也被稱為視頻服務(wù)器),網(wǎng)絡(luò)視頻信號采集終端采用嵌入式實時多任務(wù)操作系統(tǒng)。攝像機(jī)送來的視頻信號在網(wǎng)絡(luò)視頻信號采集終端數(shù)字化后由高效壓縮芯片壓縮,通過內(nèi)部總線送到網(wǎng)絡(luò)接口發(fā)送到網(wǎng)絡(luò)上,網(wǎng)絡(luò)上用戶可以直接用在PC機(jī)上用瀏覽器觀看網(wǎng)絡(luò)視頻信號采集終端傳送過
25、來的攝像機(jī)所拍攝的圖像,授權(quán)用戶還可以通過計算機(jī)網(wǎng)絡(luò)透過網(wǎng)絡(luò)視頻信號采集終端控制攝像機(jī)鏡頭和云臺的動作或?qū)ο到y(tǒng)進(jìn)行配置操作。由于把視頻壓縮和網(wǎng)絡(luò)功能集中到一個體積很小的設(shè)備內(nèi),可以直接連入局域網(wǎng),達(dá)到即插即用,省掉多種復(fù)雜的電纜,安裝方便,僅需設(shè)置一個IP地址,用戶也無需安裝任何硬件設(shè)備,僅通過PC機(jī)用瀏覽器即可觀看。數(shù)字網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)與其它監(jiān)控系統(tǒng)的比較:布控區(qū)域廣闊。數(shù)字網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的網(wǎng)絡(luò)視頻信號采集終端直接連入網(wǎng)絡(luò),沒有線纜
26、長度和信號衰減的限制,同時網(wǎng)絡(luò)是沒有距離概念的,徹底拋棄了地域的概念,擴(kuò)展布控區(qū)域;系統(tǒng)具有幾乎無限的無縫擴(kuò)展能力。所有設(shè)備都以IP地址進(jìn)行標(biāo)識,增加設(shè)備只是意味著IP地址的擴(kuò)充;可組成非常復(fù)雜的監(jiān)控網(wǎng)絡(luò)。采用基于</p><p> 1.2視頻監(jiān)控系統(tǒng)的發(fā)展趨勢</p><p> 將嵌入式系統(tǒng)技術(shù)、無線通信技術(shù)和基于TCP/IP的Internet就技術(shù)結(jié)合在一起的視頻監(jiān)控系統(tǒng)將成為監(jiān)控
27、系統(tǒng)的未來發(fā)展方向。利用嵌入式技術(shù)采集并對現(xiàn)場信息進(jìn)行相應(yīng)處理,再通過無線通信方式傳輸?shù)絀nternet上,用戶通過internet來管理和使用信息。由于采用了3G等無線數(shù)據(jù)通信方式,可省去有線方式下必須采用的物理布線,并且無線方式有利于對監(jiān)視點的合理安排,克服了傳統(tǒng)系統(tǒng)只能用于固定現(xiàn)場的監(jiān)視。因此,這種監(jiān)視方式在工農(nóng)業(yè)生產(chǎn)、移動通信、家用電器自動化等領(lǐng)域都具有相當(dāng)廣闊的應(yīng)用前景。</p><p> 目前,視頻
28、監(jiān)控系統(tǒng)的發(fā)展趨勢可以概括為:</p><p> 1)視頻監(jiān)控數(shù)字化。</p><p> 視頻監(jiān)控發(fā)展經(jīng)歷了模擬視頻監(jiān)控、半數(shù)字監(jiān)控、數(shù)字監(jiān)控三個階段。對于視頻監(jiān)控,數(shù)字化存儲帶來的是一場革命性的變化。數(shù)字化是21世紀(jì)的時代特征,視頻監(jiān)控的數(shù)字化是監(jiān)控技術(shù)的必然趨勢。</p><p> 2)視頻監(jiān)控智能化。</p><p> 智能化是
29、視頻監(jiān)控技術(shù)發(fā)展比較高級的層次。由于視頻監(jiān)控的數(shù)據(jù)量非常大,而用戶真正需要的信息只是少部分,真正需要監(jiān)視的只是發(fā)生概率很小的某些事件,如何通過海量數(shù)據(jù)獲取有價值的信息,如何從目視解釋變?yōu)闄C(jī)器自動解釋是視頻監(jiān)控技術(shù)發(fā)展的一個新方向。因為能把視頻監(jiān)控從靜態(tài)的、事后取證變成動態(tài)的、實時預(yù)防和告警對用戶來說明顯更加重要。實際上現(xiàn)有的大型監(jiān)控系統(tǒng)都配置自動位移偵測、晝夜自適應(yīng)切換存儲、預(yù)警設(shè)置(如可疑人物照片、指紋等)等一些基本的智能化功能。&l
30、t;/p><p> 3)視頻監(jiān)控IP化。</p><p> 視頻網(wǎng)絡(luò)、PTV等都是網(wǎng)絡(luò)快速發(fā)展的重要應(yīng)用。隨著Internet技術(shù)的發(fā)展,基于IP的視頻監(jiān)控更能為人們所接受,網(wǎng)絡(luò)攝像機(jī)把壓縮的視頻信息通過TCP/IP協(xié)議,采用流媒體技術(shù)實現(xiàn)視頻在網(wǎng)上的多路復(fù)用傳輸,擁有授權(quán)的用戶可以隨時訪問互聯(lián)網(wǎng),實現(xiàn)對整個監(jiān)控系統(tǒng)的指揮、調(diào)度、存儲、授權(quán)控制等功能。因此,基于IP的視頻監(jiān)控將會成為主流。
31、</p><p> 4)視頻監(jiān)控?zé)o線化。</p><p> 隨著無線寬帶網(wǎng)絡(luò)的發(fā)展,基于3G的無線視頻應(yīng)用備受關(guān)注。當(dāng)監(jiān)控點分散且與監(jiān)控中心距離較遠(yuǎn),或被監(jiān)控對象不固定(如出租車、運鈔車等)時,利用傳統(tǒng)有線網(wǎng)絡(luò)的視頻監(jiān)控往往成本高且難以實現(xiàn),而基于多種無線傳輸手段的移動視頻監(jiān)控具有不可替代的優(yōu)勢。</p><p> 根據(jù)視頻網(wǎng)絡(luò)傳輸方式,遠(yuǎn)程視頻監(jiān)控系統(tǒng)可分為
32、有線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控和無線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控兩種方式。無線視頻監(jiān)控系統(tǒng)克服有線網(wǎng)絡(luò)鋪設(shè)上投資成本高、距離受限的弊端,使遠(yuǎn)程視頻監(jiān)控系統(tǒng)的無線化逐漸成為近年來的發(fā)展趨勢。遠(yuǎn)程視頻監(jiān)控的無線化包括兩個方面:</p><p> 1)監(jiān)控中心(監(jiān)控者)和被監(jiān)控對象都是可以移動的,不受有線網(wǎng)絡(luò)束縛,監(jiān)控地點靈活,即監(jiān)控者和被監(jiān)控對象都可以是動態(tài)的。</p><p> 2)視頻監(jiān)控網(wǎng)絡(luò)的無線化。</p
33、><p> 無線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控又分為兩種:一種單獨構(gòu)建無線網(wǎng)絡(luò),基于WLAN(無線局域網(wǎng))、無線城域網(wǎng)的WiMAX技術(shù)的視頻監(jiān)控系統(tǒng)技術(shù)已經(jīng)成熟,但自己構(gòu)建網(wǎng)絡(luò)需要傳輸設(shè)備、中繼站等,工作量大。另一種基于移動通信網(wǎng)絡(luò),依托遍布全球的2G和3G無線通信網(wǎng)絡(luò),打破了距離的限制,可以實現(xiàn)全球漫游監(jiān)控。2G通信網(wǎng)絡(luò)主要是利用GPRS/CDMA/EDGE數(shù)據(jù)業(yè)務(wù)通過Internet進(jìn)行通信,GPRS/CDMA/EDGE數(shù)據(jù)傳輸
34、理論最大值為171.2kbps/144kbps/473.6kbps。中國國產(chǎn)3G標(biāo)準(zhǔn)TD-SCDMA的通信網(wǎng)絡(luò),網(wǎng)絡(luò)數(shù)據(jù)傳輸帶寬將達(dá)到2Mbps。H.264格式的壓縮編碼視頻幀率為30fps/25fpS/15fps所占用的碼率為384Kbps/256Kbps/128Kbps因此,基于3G通信網(wǎng)絡(luò)的遠(yuǎn)程視頻監(jiān)控系統(tǒng)有望實現(xiàn)實時監(jiān)控流暢視頻。</p><p> 1.3嵌入式視頻監(jiān)控系統(tǒng)常見設(shè)計方案</p>
35、;<p> 目前,國內(nèi)外基于嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究,一般集中于嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計、嵌入式操作系統(tǒng)的研究、視頻圖像處理以及視頻圖像的網(wǎng)絡(luò)傳輸?shù)葞讉€方面。</p><p> 在嵌入式視頻監(jiān)控系統(tǒng)設(shè)計方面,一般考慮系統(tǒng)的整體結(jié)構(gòu)和功能,基于B/S(瀏覽器和服務(wù)器)或者C/S(客戶端和服務(wù)器)架構(gòu),具體功能模塊采用軟件或硬件技術(shù)等。例如小型網(wǎng)絡(luò)攝像機(jī),系統(tǒng)由圖像傳感器、嵌入式處理器、圖像處理
36、器、網(wǎng)絡(luò)接口組成,通過壓縮優(yōu)化算法和背景差分算法,可以使攝像機(jī)實現(xiàn)實時的圖像壓縮、傳輸,并能跟蹤目標(biāo),該系統(tǒng)的主要特點是實時性的提高;在嵌入式操作系統(tǒng)方面,除對系統(tǒng)進(jìn)行一些剪裁和移植外,一般集中于嵌入式系統(tǒng)驅(qū)動程序的研究,例如在嵌入式Linux下對視頻采集設(shè)備驅(qū)動程序的研究等;關(guān)于視頻圖像處理的研究,一般是通過一定的圖形分析算法,實現(xiàn)目標(biāo)識別,目標(biāo)跟蹤,以及報警等功能。例如利用背景差分算法,在圖像處理中控制運動模塊,使攝像機(jī)可以跟蹤信息
37、庫中的目標(biāo)網(wǎng)等;對于視頻圖像網(wǎng)絡(luò)傳輸?shù)难芯糠矫?,例如,有在IP組播方式下的網(wǎng)絡(luò)視頻傳輸方案,可以大大的節(jié)約網(wǎng)絡(luò)帶寬,提高視頻的播放效率。或者采用流媒體的格式傳送視頻圖像數(shù)據(jù),可以更好的實現(xiàn)視頻的傳輸及播放等。</p><p> 現(xiàn)階段,嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的解決方案主要有以下幾種:</p><p> 1)視頻采集芯片+DSP處理器</p><p> 該方案中
38、由視頻采集芯片完成圖像的預(yù)處理,由DSP完成圖像的編碼,基于</p><p> MPEG-4、H.264或MJPEG標(biāo)準(zhǔn)的壓縮,經(jīng)以太網(wǎng)網(wǎng)絡(luò)傳輸。方案的主要缺點是控制不夠靈活,不適合作系統(tǒng)控制,另外,DSP通常沒有強(qiáng)大的操作系統(tǒng)支持。</p><p> 2)DSP處理器+嵌入式處理器</p><p> 該方案采用由DSP完成基于MPEG-4、H.264或MJP
39、EG標(biāo)準(zhǔn)的圖像壓縮,在嵌</p><p> 入式處理器ARM/FPGA上運行嵌入式操作系統(tǒng)進(jìn)行系統(tǒng)控制和網(wǎng)絡(luò)傳輸。方案的主要缺點是:由于有兩個主要的芯片,設(shè)計、調(diào)試、使用等方面具有一定難度,且系統(tǒng)成本偏高。</p><p> 3)圖像采集芯片+嵌入式處理器</p><p> 該方案中,在嵌入式處理器上運行嵌入式操作系統(tǒng)進(jìn)行系統(tǒng)控制和網(wǎng)絡(luò)傳輸。方案的主要缺點是:
40、其應(yīng)用主要針對某一類產(chǎn)品,如數(shù)碼攝像機(jī),所以具有一定的局限性;缺乏強(qiáng)大的圖像處理能力,很難滿足高實時性要求。</p><p><b> 4)其他方案</b></p><p> 可以采用DSP中央處理器完成圖像壓縮編碼、編碼數(shù)據(jù)網(wǎng)絡(luò)傳輸和本地存儲,</p><p> CPLD完成圖像采集的控制邏輯的脫機(jī)遠(yuǎn)程視頻監(jiān)控方案。</p>
41、<p> 1.4本文的主要研究工作</p><p> 1、課題研究背景和意義;</p><p> 2、嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)中的關(guān)鍵技術(shù)介紹:</p><p> 3、系統(tǒng)的硬件結(jié)構(gòu)設(shè)計,包括:</p><p> 1、硬件系統(tǒng)整體結(jié)構(gòu)的設(shè)計; </p><p> 2、以微處理器S3C4510B為
42、核心的主控電路及其外圍電路的設(shè)計;</p><p> 4、宿主機(jī)上硬件開發(fā)平臺的搭建。</p><p> 5、系統(tǒng)的軟件設(shè)計,包括:</p><p> 1、嵌入式Linux系統(tǒng)uCLinux的來源、特點以及結(jié)構(gòu)介紹:</p><p> 2、宿主機(jī)上Linux開發(fā)環(huán)境的建立與使用;</p><p> 3、uCL
43、inux內(nèi)核的升級、編譯方法和詳細(xì)過程:</p><p> 4、在uCLinux上添加用戶應(yīng)用程序的步驟;</p><p> 5、嵌入式WEB服務(wù)器的介紹以及與其相關(guān)的各項技術(shù)簡介;</p><p> 6、嵌入式WEB服務(wù)器各個功能模塊的實現(xiàn),包括主程序、用戶管理模塊、設(shè)備管理模塊、網(wǎng)絡(luò)管理模塊的實現(xiàn)。</p><p> 第二章總體方
44、案設(shè)計及平臺搭建</p><p> 隨著壓縮編碼技術(shù)、計算機(jī)網(wǎng)絡(luò)技術(shù)和嵌入式系統(tǒng)的發(fā)展以及芯片成本的下降,以嵌入式視頻服務(wù)器為核心的視頻監(jiān)測系統(tǒng)在市場上嶄露頭角。通用的Web服務(wù)器通常用于有大量用戶并發(fā)訪問的普通網(wǎng)站,以強(qiáng)有力的數(shù)據(jù)庫為用戶提供商業(yè)服務(wù),而嵌入式處理器能力和存儲容量有限,通用大型服務(wù)器無法在嵌入式設(shè)備上運行。因此,采用功能相對簡單、體積更小、消耗資源更少的嵌入式Web服務(wù)器,是近年來出現(xiàn)的一種較
45、為先進(jìn)的方案。目前,嵌入式Web服務(wù)器的實現(xiàn)方法可以分成自主實現(xiàn)和修改移植兩種。自主設(shè)計需要自己開發(fā)網(wǎng)絡(luò)協(xié)議,難度及工作量較大。由于Linux的開放源碼思想和優(yōu)良的網(wǎng)絡(luò)功能,使它非常適合于嵌入式Web服務(wù)器應(yīng)用中,并能為開發(fā)者縮短開發(fā)周期和成本,這種開發(fā)方式是現(xiàn)在以至今后流行的開發(fā)方法。</p><p> 2.1 遠(yuǎn)程視頻監(jiān)控系統(tǒng)方案設(shè)計</p><p> 比較前面給出的幾種嵌入式網(wǎng)絡(luò)
46、視頻監(jiān)測系統(tǒng)的解決方案,對于網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)來說,視頻采集卡+DSP方案沒有強(qiáng)大的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧,不太適合做網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng);DSP+ARM方案中,DSP進(jìn)行圖像處理,刪進(jìn)行指令控制,設(shè)</p><p> 計得當(dāng)效果不錯,但該方案采用了兩個處理器,成本提高,開發(fā)周期長,設(shè)計、調(diào)試上也具有一定困難;視頻采集卡+ARM方案缺乏強(qiáng)大的圖像處理能力,不能滿足實時性要求。</p><p>
47、 目前,嵌入式微處理器性能大大提高,3G無線通信技術(shù)日趨成熟普及,因此,</p><p> 本文方案只采用ARM核心處理器,軟件方式壓縮視頻圖像,成本低廉,適合家庭應(yīng)用。</p><p> 2.1.1 監(jiān)控系統(tǒng)整體網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計</p><p> 嵌入式網(wǎng)絡(luò)監(jiān)控系統(tǒng)是以嵌入式設(shè)備作為Web服務(wù)器接入Internet網(wǎng)絡(luò)的.嵌入式設(shè)備連接到網(wǎng)絡(luò)后,以何種網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)
48、成系統(tǒng),就涉及到了網(wǎng)絡(luò)體系結(jié)構(gòu)的選擇問題。網(wǎng)絡(luò)體系結(jié)構(gòu)對整個網(wǎng)絡(luò)監(jiān)控系統(tǒng)來說是處于基礎(chǔ)地位的,合理選擇網(wǎng)絡(luò)體系結(jié)構(gòu)對系統(tǒng)運行效率、系統(tǒng)應(yīng)用的廣泛性和可維護(hù)性都有至關(guān)重要的作用。C/S和B/S結(jié)構(gòu)是當(dāng)今世界開發(fā)模式技術(shù)架構(gòu)的兩大主流技術(shù)。C/S是美國Borland公司最早研發(fā),B/S是美國微軟公司研發(fā)。目前,這兩項技術(shù)已被世界各國所掌握,國內(nèi)公司以C/S和B/S技術(shù)開發(fā)出的產(chǎn)品也很多,這兩種技術(shù)都有自己一定的市場份額和客戶群。</p
49、><p> C/S(Clien/Server)結(jié)構(gòu)即客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),C/S結(jié)構(gòu)充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理地分配到Client端和Server端,降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client Server應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件。因
50、此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。</p><p> B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在客戶端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)
51、器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本(TCO)【14】。</p><p> Client/Server結(jié)構(gòu)是建立在局域網(wǎng)的基礎(chǔ)上的,Browser/Server結(jié)構(gòu)是建立在廣域網(wǎng)的基礎(chǔ)上的??偨Y(jié)它們主要的區(qū)別如下:</p><p><b> (1)硬件環(huán)境不同</
52、b></p><p> C/S一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù)。</p><p> B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例如電話上網(wǎng),租用設(shè)備,信息自己管理,有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行。</p><p> (2)對安全要求不同</p>
53、<p> C/S通常面向相對固定的用戶群,對信息安全的控制能力很強(qiáng)。一些高度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)比較適宜,通過B/S發(fā)布部分可公開的信息。</p><p> 由于B/S建立在廣域網(wǎng)基礎(chǔ)上,對安全的控制能力相對弱,面向的是不可知的用戶群。</p><p> (3)對程序架構(gòu)不同</p><p> C/S程序更加注重流程,也可對權(quán)限多層次校驗,
54、對系統(tǒng)運行速度可以較少考慮。</p><p> B/S對安全以及訪問速度的多重考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上。比C/S有更高的要求,B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢,從微軟的.Net系列,全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng),到SUN和IBM推的JavaBean構(gòu)件技術(shù)等,使B/S更加成熟。</p><p><b> (4)軟件重用不同</b></p>
55、<p> C/S程序從整體性方面考慮,構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好。</p><p> B/S的多重結(jié)構(gòu),具有構(gòu)件相對獨立的功能。</p><p><b> (5)系統(tǒng)維護(hù)不同</b></p><p> 系統(tǒng)維護(hù)是軟件生存周期中開銷大、相當(dāng)重要的環(huán)節(jié)。</p><p> C/S程序必
56、須從整體考察,處理出現(xiàn)的問題以及系統(tǒng)升級難,通常是再做一個全新的系統(tǒng)。</p><p> B/S構(gòu)件組成方面,構(gòu)件可個別的更換,實現(xiàn)系統(tǒng)的無縫升級。系統(tǒng)維護(hù)開銷減到最小,用戶從網(wǎng)上自己下載安裝就可以實現(xiàn)升級。</p><p><b> (6)處理問題不同</b></p><p> C/S程序可以處理用戶面固定,并且在相同區(qū)域,安全要求高的
57、需求,與操作系統(tǒng)相關(guān),應(yīng)該都是相同的系統(tǒng)。</p><p> B/S建立在廣域網(wǎng)上,面向不同的用戶群,分散地域,這是C/S無法做到的,與操作系統(tǒng)平臺關(guān)系最小。</p><p><b> (7)用戶接口不同</b></p><p> C/S多是建立在windows平臺上,表現(xiàn)方法有限,對程序員普遍要求較高。</p><p
58、> B/S建立在瀏覽器上,有更加豐富和生動的表現(xiàn)方式與用戶交流,并且大部分難度減低,降低開發(fā)成本。</p><p><b> (8)信息流不同</b></p><p> C/S程序一般是典型的中央集權(quán)的機(jī)械式處理,交互性相對低。</p><p> B/S信息流向可變化。</p><p> 綜上所述,根據(jù)C
59、/S和B/S結(jié)構(gòu)的不同點,比較出C/S結(jié)構(gòu)具有應(yīng)用服務(wù)器運行數(shù)據(jù)負(fù)荷較輕、數(shù)據(jù)的儲存管理功能較為透明的優(yōu)點,C/S結(jié)構(gòu)的劣勢是高昂的維護(hù)成本且投資大。B/S結(jié)構(gòu)維護(hù)和升級方式簡單,成本低廉、操作系統(tǒng)選擇更多,但有應(yīng)用服務(wù)器運行數(shù)據(jù)負(fù)荷較重的缺點。本文監(jiān)控系統(tǒng)具有家庭小型應(yīng)用的特點,數(shù)據(jù)量不大,需要成本低廉、簡單易用、維護(hù)方便,因此,本文的視頻監(jiān)控系統(tǒng)采用B/S結(jié)構(gòu)。</p><p> 2.1.2視頻監(jiān)控系統(tǒng)硬件
60、方案設(shè)計</p><p><b> 1)開發(fā)環(huán)境的簡圖</b></p><p> 嵌入式系統(tǒng)通常為一個資源受限的系統(tǒng)。直接在嵌入式系統(tǒng)的硬件平臺上編寫軟件比較困難,有時甚至是不可能的。目前,一般采用的辦法是,先在通用計算機(jī)上編寫程序,然后,通過交叉編譯,生成目標(biāo)平臺上可運行的二進(jìn)制代碼格式,最后下載到目標(biāo)平臺上的特定位置上運行。具體的硬件平臺連接如2.1圖所示。&
61、lt;/p><p> 圖2.1系統(tǒng)的硬件結(jié)構(gòu)原理圖</p><p> 2.1.3視頻監(jiān)控系統(tǒng)的系統(tǒng)軟件選擇</p><p> 嵌入式操作系統(tǒng)已經(jīng)被廣泛應(yīng)用到大量以嵌入式處理器為硬件基礎(chǔ)的系統(tǒng)中,常見的嵌入式操作系統(tǒng)有:Linux、VxWorks、Windows CE、Symbian、Palm等。這些操作系統(tǒng)都各有自己強(qiáng)勁的優(yōu)勢,Linux以其開源的經(jīng)濟(jì)優(yōu)勢得到中小
62、型企業(yè)的青睞;VxWorkS具有優(yōu)良的可靠性和卓越的實時性,系統(tǒng)和開發(fā)環(huán)境都是專用的,開發(fā)成本高、支持硬件數(shù)量有限,使得其多數(shù)應(yīng)用在高精尖技術(shù)領(lǐng)域中;Windows CE有著全球最大的操作系統(tǒng)廠商Microsoft強(qiáng)大的技術(shù)后盾,市場份額越來越多:Symbian操作系統(tǒng)是全球最大的手機(jī)開發(fā)制造商NOKIA的手機(jī)操作系統(tǒng),廣泛應(yīng)用于高端智能手機(jī)上:Palm是專門為掌上電腦開發(fā)的OS,占用內(nèi)存少,具有極強(qiáng)的開放性【9】。</p>
63、<p> 本系統(tǒng)的嵌入式設(shè)備考慮到源代碼的學(xué)習(xí)性和家用設(shè)備成本問題,采用了開放源代碼、高性能可剪裁內(nèi)核、網(wǎng)絡(luò)功能優(yōu)秀的Linux系統(tǒng)。本系統(tǒng)Linux內(nèi)核采用了2.6.12版本,與2.4.x版本相比,Linux2.6內(nèi)核對系統(tǒng)的穩(wěn)定性、統(tǒng)一的設(shè)備模型、即插即用支持、大數(shù)量的蝴支持、擴(kuò)展性、文件系統(tǒng)等方面進(jìn)行了改進(jìn),尤其是搶占式內(nèi)核、I/O性能的改進(jìn)提高了系統(tǒng)的實時性。這將顯著提高交互式和多媒體應(yīng)用程序的性能。</p
64、><p> 因此,本文的嵌入式視頻監(jiān)控系統(tǒng)的總體架構(gòu)圖如圖2.2所示。</p><p> 圖2.2基于嵌入式Web服務(wù)器視頻監(jiān)控系統(tǒng)總體架構(gòu)圖</p><p> 2.2系統(tǒng)開發(fā)平臺的搭建</p><p> 有的嵌入式操作系統(tǒng)的處理能力和存儲能力較弱,不能在它上面安裝開發(fā)軟件;有的嵌入式操作系統(tǒng)的處理器結(jié)構(gòu)特殊,沒有可以在上面運行的開發(fā)工具
65、。所以,在嵌入式系統(tǒng)開發(fā)時,通常需要采取交叉開發(fā)的方式進(jìn)行。交叉開發(fā)環(huán)境的模型如圖2.3所示。</p><p> 圖2.3交叉編譯環(huán)境模型</p><p> TARGET是嵌入式系統(tǒng),HOST是開發(fā)主機(jī)。在開發(fā)主機(jī)上可以安裝開發(fā)工具,編輯、編譯目標(biāo)系統(tǒng),然后在目標(biāo)板上運行。這種在主機(jī)環(huán)境下開發(fā),在目標(biāo)板上運行的開發(fā)模式稱為交叉開發(fā)。</p><p> 2.3嵌
66、入式Linux的移植</p><p> 從軟件的角度來看,一個嵌入式Linux的系統(tǒng)通??煞譃樗膫€層次,如圖2.4</p><p><b> 所示:</b></p><p> 圖2.4嵌入式系統(tǒng)的軟件體系結(jié)構(gòu)</p><p> 這四個層次自下而上為:</p><p> 1)引導(dǎo)加載程序。
67、包括固化在固件(firmware)中的Boot代碼(可選)和Boot Loader兩大部分。</p><p> 2)操作系統(tǒng)內(nèi)核。如Linux內(nèi)核,通常包含內(nèi)核的啟動參數(shù)。</p><p> 3)文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上的文件系統(tǒng)。在嵌</p><p> 入式系統(tǒng)中,通常用Ramdisk來作為文件系統(tǒng)。</p>&l
68、t;p> 4)用戶應(yīng)用程序。針對特定用戶的專用應(yīng)用程序。有時在用戶應(yīng)用程序和內(nèi)核</p><p> 層之間可能還會包括一個嵌入式圖形用戶界面。</p><p><b> 2.4本章小結(jié)</b></p><p> 本章對遠(yuǎn)程視頻監(jiān)控系統(tǒng)總體方案進(jìn)行了設(shè)計,搭建了主機(jī)開發(fā)環(huán)境和嵌入式開發(fā)環(huán)境,對嵌入式Linux系統(tǒng)的Bootloade
69、r、kemel和根文件系統(tǒng)進(jìn)行修改和移植。</p><p> 第三章視頻采集模塊的設(shè)計與實現(xiàn)</p><p> 視頻數(shù)據(jù)的采集是視頻監(jiān)控系統(tǒng)實現(xiàn)的第一步,也是視頻壓縮和視頻傳輸?shù)幕A(chǔ)。本監(jiān)控系統(tǒng)由多個功能模塊構(gòu)成,視頻服務(wù)器主要涉及到三部分功能,一部分是基于V4L2的圖像采集,一部分是建立嵌入式Web服務(wù)器,設(shè)計CGI程序,實現(xiàn)用戶遠(yuǎn)程通過Web頁面控制視頻采集傳輸?shù)墓δ埽硗獠糠质墙?/p>
70、立視頻數(shù)據(jù)庫。本章主要對Linux下采用V4L2標(biāo)準(zhǔn)的USB攝像頭驅(qū)動程序的圖像采集過程進(jìn)行介紹,并采用FFmpeg對視頻圖像進(jìn)行H.264格式的壓縮編碼,同時建立視頻數(shù)據(jù)庫,以便瀏覽器端對圖像數(shù)據(jù)操作。</p><p> 3.1 基于V4L2的視頻采集模塊設(shè)計</p><p> V4L(Video for Linux)是在linux內(nèi)核中關(guān)于視頻設(shè)備的API接口,涉及開關(guān)視頻設(shè)備、采
71、集并處理視頻圖像信息。V4L從2.1.x版本的內(nèi)核中開始出現(xiàn)。V4L2(Video for Linux Two)是V4L接口標(biāo)準(zhǔn)的改進(jìn)版本,修復(fù)了第一代的部分設(shè)計bug。從2.5.x開始,V4L2就被集成到了內(nèi)核里。V4L2是音頻、視頻和其他輸出設(shè)備的內(nèi)核接口。與V4L相比,它的擴(kuò)展性和靈活性都得到了極大的提高,并且支持的硬件設(shè)備也更多,但由于它對V4L做了徹底的改造,使得它與V4L并不兼容.</p><p>
72、 USB攝像頭在Linux中屬于字符設(shè)備,成功加載了USB攝像頭驅(qū)動程序后,插</p><p> 入攝像頭就會生成設(shè)備文件“/dev/video()”。因此,在應(yīng)用程序中通過讀寫該文件取得攝像頭采集的圖像數(shù)據(jù)。</p><p> 對于USB口攝像頭,其驅(qū)動程序中需要提供基本的I/O操作接口函數(shù)open()、</p><p> read()、write()、cl
73、ose()的實現(xiàn),對中斷的處理實現(xiàn),內(nèi)存映射功能以及對I/O通道的控制接口函數(shù)ioctl()的實現(xiàn)等,并把它們定義在struct file_operations中。這樣當(dāng)應(yīng)用程序?qū)υO(shè)備文件進(jìn)行諸如open()等系統(tǒng)調(diào)用操作時,Linux內(nèi)核將通過file operations結(jié)構(gòu)訪問驅(qū)動程序提供的函數(shù)。</p><p> 3.1.1 V4L2視頻采集的數(shù)據(jù)結(jié)構(gòu)</p><p> 在Li
74、nux系統(tǒng)的/usr/include/linux/videodev2.h中定義了v412常用的數(shù)據(jù)結(jié)構(gòu):</p><p> struct v4l2_requestbuffers reqbufs; //向驅(qū)動申請幀緩沖的請求,里面包含申請的個數(shù)</p><p> struct v4l2-capability cap; //這個設(shè)備的功能,比如是否是視頻輸入設(shè)備</p>
75、<p> struct v4l2_input input; //視頻輸入</p><p> struct v4l2_standard; //視頻的制式,比如PAL,NTSC</p><p> struct v4l2_format fmt: //幀的格式,比如寬度,高度等</p><p> struct v412_buffer buf; //
76、代表驅(qū)動中的一幀</p><p> v4l2_std_id stdid; //視頻制式,例如:V4L2_STD_PAI_B</p><p> struct v4l2_querytrl; //查詢的控制</p><p> struct v4l2_control control; //具體控制的值</p><p> 3.1
77、.2 V4L2視頻采集的流程</p><p> Linux下基于V4L2 API接口進(jìn)行圖像采集的程序?qū)崿F(xiàn)流程圖如圖3.1.2所示:</p><p> 圖3.1視頻圖像采集流程圖</p><p> 具體的視頻采集主要步驟為:</p><p><b> 1)打開視頻設(shè)備</b></p><p&g
78、t; 在Linux中,把視頻設(shè)備看作設(shè)備文件,即/dev,video0。通過調(diào)用open()函數(shù)來實現(xiàn),open()函數(shù)帶有三個參數(shù),第一個為設(shè)備文件名,第二個則是打開的類型。</p><p> 用非阻塞模式打開攝像頭設(shè)備:</p><p> int cameraFd;</p><p> cameraFd=open(“/dev/video0”,O_RDWR
79、|O_NONBLOCK,O);</p><p> 如果用阻塞模式打開攝像頭設(shè)備,則:</p><p> cameraFd=open(“/dev/video0”,O_RDWR,0);</p><p> 應(yīng)用程序能夠使用阻塞模式或非阻塞模式打開視頻設(shè)備,如果使用非阻塞模式調(diào)用視頻設(shè)備,即使尚未捕獲到信息,驅(qū)動依舊會把緩存(DQBUFF)里的東西返回給應(yīng)用程序。&l
80、t;/p><p> 2)設(shè)定屬性及采集方式</p><p> 打開視頻設(shè)備后,可以設(shè)置該視頻設(shè)備的屬性,例如裁剪、縮放等。這一步是可選的。在Linux編程中,一般使用ioctl函數(shù)來對設(shè)備的I/O通道進(jìn)行管理:</p><p> Extem int ioctl(int_fd,unsigned long int_requst,...)_THROW;</p>
81、;<p> _fd:設(shè)備的ID,例如剛才用open函數(shù)打開視頻通道后返回的camer Fd;</p><p> _request:具體的命令標(biāo)志符。</p><p> 在進(jìn)行V4L2開發(fā)中,一般會用到以下的命令標(biāo)志符:</p><p> VIDIOC_REQBUFS:分配內(nèi)存</p><p> VIDIOC_QUER
82、YBUF:把VIDIOC_REQBUFS中分配的數(shù)據(jù)緩存轉(zhuǎn)換成物理地</p><p><b> 址</b></p><p> VIDIOC_QUERYCAP:查詢驅(qū)動功能</p><p> VIDIOC_ENUM_FMT:獲取當(dāng)前驅(qū)動支持的視頻格式</p><p> VIDIOC_S_FMT:設(shè)置當(dāng)前驅(qū)動的頻捕獲
83、格式</p><p> VIDIOC_DQBUF:把數(shù)據(jù)放回緩存隊列</p><p> VIDIOC_STREAMON:開始視頻顯示函數(shù)</p><p> VIDIOC_STREAMOFF:結(jié)束視頻顯示函數(shù)</p><p> VIDIOC_QUERYSTD:檢查當(dāng)前視頻設(shè)備支持的標(biāo)準(zhǔn),例如PAL或NTSC。</p>&l
84、t;p> 這些IO調(diào)用,有些是必須的,有些是可選擇的。</p><p> ?、俨楫?dāng)前視頻設(shè)備支持的標(biāo)準(zhǔn)</p><p> 在亞洲,一般使用PAL(720x576)制式的攝像頭,而歐洲一般使用NTSC(720x480),使用VIDIOC_QUERYSTD來檢測:</p><p> v412_std_id std;</p><p>&
85、lt;b> do{</b></p><p> ret=ioctl(fd,VIDl0C_QUERYSTD,&std);</p><p> }wllile(ret==-1&&errno==EAGAIN);</p><p> switch(std){</p><p> case V4L2_STD_
86、NYSC:</p><p> case V4L2_STD_PAL:</p><p><b> }</b></p><p><b> ?、诓东@格式</b></p><p> 當(dāng)檢測完視頻設(shè)備支持的標(biāo)準(zhǔn)后,還需要設(shè)定視頻捕獲格式:</p><p> struct v4l2
87、_format fmt;</p><p> memset(&fmt,0,sizeof(fmt));</p><p> fmt.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;</p><p> fmt.fmt.pix.width=720;</p><p> fmt.fmt.pix.height=576;<
88、;/p><p> fmt.fmt.pix.pixelformat=V4L2_PIX_FMT_YUYV;</p><p> fmt.fmt.pix.field=V4L2_FIELD_INTERLACED;</p><p> if(ioctl(fd,VIDIOC_S_FMT,&fmt)==-1){</p><p><b>
89、return-l;</b></p><p><b> }</b></p><p> v4l2_format結(jié)構(gòu)體定義如下:</p><p> struct v4l2_format </p><p><b> {</b></p><p> enum v41
90、2_buf_type ; ∥數(shù)據(jù)流類型,必須永遠(yuǎn)是</p><p> ∥v4L2_BUF_VIDEO_CAPTURE</p><p><b> union</b></p><p><b> {</b></p><p> struct V412_pix_format pix;</p>
91、;<p> struct V412_window win;</p><p> struct V412_vbi_format vbi;</p><p> _u8 raw_data[200];</p><p><b> }fmt;</b></p><p><b> };</b>&
92、lt;/p><p> struct v412_pix_format</p><p><b> {</b></p><p> _u32 width; //寬,必須是16的倍數(shù)</p><p> _u32 height; //高,必須是16的倍數(shù)</p><p> _u322 pixelform
93、at;//視頻數(shù)據(jù)存儲類型,例如是YUV4:2:2還是I沁B</p><p> enum v412_field field;</p><p> _u32 bytesperline;</p><p> _u32 sizeimage;</p><p> enum v4l2_colorspace colorspace;</p>
94、<p> _u32 priv;</p><p><b> };</b></p><p><b> ?、鄯峙鋬?nèi)存</b></p><p><b> 視頻捕獲分配內(nèi)存:</b></p><p> struct v412_requestbuffers req;&l
95、t;/p><p> if(ioctl(fd,VIDIOC_REQBUFS,&req)==- 1){</p><p> return -1;</p><p><b> }</b></p><p> v412_requestbuffers定義如下:</p><p> struct V41
96、2_requestbuffers</p><p><b> {</b></p><p> _u32 count; //緩存數(shù)量,也就是說在緩存隊列里保持多少張照片</p><p> enum v412_buf_type type; //數(shù)據(jù)流類型,必須永遠(yuǎn)是</p><p> //V4L2_BUF_TYPE_V
97、IDEO_CAPTURE</p><p> enum v412_memory memory; //V4L2_MEMORY_MMAP或</p><p> //V4L2 MEMORY_USERPTR</p><p> _u32 reserved[2];</p><p><b> };</b></p>&
98、lt;p> ?、塬@取并記錄緩存的物理空間</p><p> 使用VIDIOC_REQBUFS,我們獲取了req.count個緩存,下一步通過調(diào)用VIDIOC_QUERYBUF命令來獲取這些緩存的地址,然后使用mmap函數(shù)轉(zhuǎn)換成應(yīng)用</p><p> 程序中的絕對地址,如圖3.2所示,最后把這段緩存放入緩存隊列:</p><p> 圖3.2mmap函數(shù)地址
99、傳喚</p><p><b> ?、菀曨l采集方式</b></p><p> 操作系統(tǒng)一般把系統(tǒng)使用的內(nèi)存劃分成用戶空間和內(nèi)核空間,分別由應(yīng)用程序管理和操作系統(tǒng)管理。應(yīng)用程序可以直接訪問內(nèi)存的地址,而內(nèi)核空間存放的是供內(nèi)核訪問的代碼和數(shù)據(jù),用戶不能直接訪問。v412捕獲的數(shù)據(jù),最初是存放在內(nèi)核空間的,這意味著用戶不能直接訪問該段內(nèi)存,必須通過某些手段來轉(zhuǎn)換地址。<
100、;/p><p> Linux系統(tǒng)下有三種視頻采集方式:使用read、write方式,mmap內(nèi)存映射</p><p> 方式和用戶指針模式。</p><p> read、write方式: 通過內(nèi)核緩沖區(qū)來讀取數(shù)據(jù),在用戶空間和內(nèi)核空間不斷拷貝數(shù)據(jù),占用了大量用戶內(nèi)存空間,效率不高。</p><p> mmap內(nèi)存映射方式:mmap系統(tǒng)調(diào)用
101、使得進(jìn)程之間通過映射同一文件實現(xiàn)內(nèi)存共享,訪問時只需要指針而不用調(diào)用文件操作函數(shù)。通過把設(shè)備文件映射到內(nèi)存中,加速了I/o訪問。這是一種有效的方式。上面的mmap函數(shù)就是使用這種方式。</p><p> 用戶指針模式:內(nèi)存片段由應(yīng)用程序自己分配。這點需要在v412_ requestbuffers里將memory字段設(shè)置成V4L2_MEMORY_USERPTR.</p><p> 因此,
102、本文在程序?qū)崿F(xiàn)中采用了內(nèi)存映射方式截取視頻圖像樣,捕獲到的視頻數(shù)據(jù)被映射到內(nèi)存區(qū)域,該映射內(nèi)容區(qū)可讀寫并且可供不同進(jìn)程共享。要對視頻數(shù)據(jù)進(jìn)行壓縮等處理工作則可通過訪問內(nèi)存映射區(qū)域進(jìn)行。</p><p><b> 3)處理采集數(shù)據(jù)</b></p><p> V4L2有一個數(shù)據(jù)緩存,存放req.count數(shù)量的緩存數(shù)據(jù)。數(shù)據(jù)緩存采用FIFO的方式,當(dāng)應(yīng)用程序調(diào)用緩存數(shù)
103、據(jù)時,緩存隊列將最先采集到的視頻數(shù)據(jù)緩存送出,并重新采集一張視頻數(shù)據(jù)。這個過程需要用到兩個ioctl命令,VIDIOC_DQBUF和VIDIOC_QBUF:</p><p> struct v412_buffer buf;</p><p> memset(&buf,O,sizeof(buf));</p><p> buf.type=V4L2_BUF_T
104、YPE_VIDEO_CAPATURE;</p><p> buf.memory=V4L2_MEMORY_MMAP;</p><p> buf.index=0:</p><p><b> //讀取緩存</b></p><p> if(ioctl(cameraFd,VIDIOC_dqbuf, &buf)==
105、-1)</p><p><b> {</b></p><p><b> return-1;</b></p><p><b> }</b></p><p> //????視頻處理算法</p><p> //重新放入緩存隊列</p>
106、<p> if(ioctl(cameraFd,VIDIOC_QBUF,&buf)==-1){</p><p><b> return-l;</b></p><p><b> }</b></p><p><b> 4)關(guān)閉視頻設(shè)備</b></p><p>
107、; 使用close函數(shù)關(guān)閉一個視頻設(shè)備:</p><p> close(cameraFd);</p><p> 本課題的視頻采集圖像效果,如圖3.3示。</p><p> 3.1.3視頻數(shù)據(jù)的存儲</p><p> 由于保存文件是保存在USB硬盤上,也就是需要不停的讀寫I/O設(shè)備,這樣的操作需要耗費大量的時間和資源,因此保存視頻文件
108、模塊也是利用一個單獨線程來實現(xiàn)以提高程序的執(zhí)行效率。對于用戶而言,存儲的圖像能達(dá)到記錄的目的即可,對連續(xù)性的要求并不高,所以本系統(tǒng)以約10幀/秒的速度進(jìn)行存儲,以此達(dá)到節(jié)省存儲空間的目的。存儲速率的控制是通過定時器來完成的。</p><p> 同樣,此功能模塊也有自己的循環(huán)緩沖區(qū)存放壓縮后的視頻數(shù)據(jù),該線程不斷從該緩沖區(qū)讀取JPEG數(shù)據(jù),通過調(diào)用avilib庫的相關(guān)函數(shù)把這些視頻數(shù)據(jù)保存為avi格式的文件。對于
109、“avi"格式文件,目前大多數(shù)播放器都能播放該格式的視頻文件。</p><p><b> 3.2視頻編碼</b></p><p> 通過USB攝像頭獲取的視頻圖像數(shù)據(jù)量較大,而網(wǎng)絡(luò)帶寬有限,不適合網(wǎng)絡(luò)實時傳輸,為了使視頻圖像在現(xiàn)有的網(wǎng)絡(luò)上有較高的傳輸速率和較好的視頻質(zhì)量和有效的存儲視頻數(shù)據(jù),需要將原始的視頻圖像進(jìn)行壓縮編碼。</p><
110、;p> 3.2.1視頻編碼技術(shù)的選擇</p><p> 傳統(tǒng)的視頻壓縮編碼都是以香農(nóng)信息論為基礎(chǔ),用統(tǒng)計概率模型來描述信源,編碼實體是像素或像素塊。這種基于數(shù)理統(tǒng)計、旨在消除視頻數(shù)據(jù)相關(guān)冗余的編碼技術(shù)被稱為第一代視頻編碼技術(shù),JPEG、MPEG-1、H.261、H.263是其典型代表。第一代視頻編碼技術(shù)沒有考慮接受者特性、視頻信息的重要程度和具體含義,只是以去除數(shù)據(jù)的冗余為出發(fā)點,是一種較低層次的編碼技
111、術(shù)。由此,出現(xiàn)了基于內(nèi)容的第二代視頻編碼技術(shù),它是以去除視頻內(nèi)容的冗余為出發(fā)點,在視頻編碼時充分考慮了人眼的視覺特性影像。</p><p> 目前監(jiān)控中主要采用MJPEG、MPEG-1/2、MPEG4(SP/ASP)、H.264/AVC等幾種視頻編碼技術(shù)。用戶關(guān)心的主要要素有:清晰度、存儲量(帶寬)、穩(wěn)定性和價格。</p><p><b> 1)MJPEG</b>
112、</p><p> MJPEG(Motion JPEG)壓縮技術(shù),主要是基于靜態(tài)視頻壓縮發(fā)展起來的技術(shù),它的主要特點是基本不考慮視頻流中不同幀之間的變化,只單獨對某一幀進(jìn)行壓縮。MJPEG壓縮技術(shù)可以獲取清晰度很高的視頻圖像,可以動態(tài)調(diào)整幀率、分辨率。但由于沒有考慮到幀間變化,造成大量冗余信息被重復(fù)存儲,因此單幀視頻的占用空間較大,目前流行的MJPEG技術(shù)最好的也只能做到3K字節(jié)/幀,通常要8~20K。<
113、/p><p> 2)MPEG-1/2</p><p> MPEG-l標(biāo)準(zhǔn)主要針對SIF標(biāo)準(zhǔn)分辨率(NTSC制為352x240;PAL制為352x288)</p><p> 的圖像進(jìn)行壓縮.壓縮位率主要目標(biāo)為1.5Mb/S.較MJPEG技術(shù),MPEGI在實時壓縮、每幀數(shù)據(jù)量、處理速度上有顯著的提高。但MPEGl也有較多不利地方:存儲容量還是過大、清晰度不夠高和網(wǎng)絡(luò)傳
114、輸困難。</p><p> MPEG-2在MPEG.1基礎(chǔ)上進(jìn)行了擴(kuò)充和提升,和MPEG.1向下兼容,主要針</p><p> 對存儲媒體、數(shù)字電視、高清晰等應(yīng)用領(lǐng)域,分辨率為:低(352x288),中(720x480),次高(1440x1080),高(1920x1080)。MPEG-2視頻相對MPEG-1提升了分辨率,滿足了用戶高清晰的要求,但由于壓縮性能沒有多少提高,使得存儲容量還
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于Web的遠(yuǎn)程數(shù)字視頻監(jiān)控系統(tǒng)的設(shè)計與研究.pdf
- 基于web的遠(yuǎn)程視頻監(jiān)控平臺的設(shè)計與實現(xiàn).pdf
- 基于web的遠(yuǎn)程監(jiān)控系統(tǒng)
- 基于Web服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的研究與實現(xiàn).pdf
- 基于ios的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
- 基于ARM的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的研究與設(shè)計.pdf
- 基于Web的遠(yuǎn)程監(jiān)控系統(tǒng)的研究與應(yīng)用.pdf
- 基于WEB的遠(yuǎn)程監(jiān)控系統(tǒng)的研究與實現(xiàn).pdf
- 基于android的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
- 基于WEB的遠(yuǎn)程學(xué)習(xí)監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于Web的設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于Web的紅外遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于視頻圖像的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計.pdf
- 基于android的遠(yuǎn)程視頻監(jiān)控系統(tǒng)
- 基于arm的遠(yuǎn)程視頻監(jiān)控系統(tǒng)
- 基于java的遠(yuǎn)程視頻監(jiān)控系統(tǒng)
- 基于android的遠(yuǎn)程視頻監(jiān)控系統(tǒng)
- 基于Web家居遠(yuǎn)程監(jiān)控系統(tǒng)web service的設(shè)計.pdf
- 基于SIP的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于Android的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).doc
評論
0/150
提交評論