遠(yuǎn)程視頻監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  基于WEB的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的研究與設(shè)計(jì)</p><p>  The design of remote video surveillance system based on WEB</p><p>  基于WEB的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的研究與設(shè)計(jì)</p><p>  摘 要 隨著網(wǎng)絡(luò)通信技術(shù)和嵌入式技術(shù)的發(fā)展,基于嵌入式Web服務(wù)器的視頻監(jiān)控系統(tǒng)已

2、成為監(jiān)控領(lǐng)域的發(fā)展趨勢(shì),采用B/S架構(gòu)的嵌入式Web服務(wù)器,監(jiān)控者無(wú)需到現(xiàn)場(chǎng)操作,系統(tǒng)成本低廉,設(shè)備體積小巧,安裝方便,故障維護(hù)升級(jí)簡(jiǎn)單,安全可靠,滿足了現(xiàn)代消費(fèi)者的需求。</p><p>  本文針對(duì)視頻監(jiān)控設(shè)備前端一體化、小型化和便攜等相關(guān)需求,以動(dòng)態(tài)數(shù)據(jù)交互技術(shù)和移動(dòng)通信技術(shù)為基礎(chǔ),借助嵌入式系統(tǒng)的網(wǎng)絡(luò)支持,設(shè)計(jì)了一種基于Web服務(wù)器的B/S方式的遠(yuǎn)程視頻監(jiān)控系統(tǒng)。設(shè)計(jì)中以ARM7芯片和Linux系統(tǒng)為軟硬

3、件開(kāi)發(fā)平臺(tái),結(jié)合嵌入式Web技術(shù),給出了視頻監(jiān)控系統(tǒng)的總體設(shè)計(jì)方案,深入研究了各個(gè)功能模塊。目前3G無(wú)線通信網(wǎng)絡(luò)正在普及,為了滿足未來(lái)移動(dòng)監(jiān)控的需要,本系統(tǒng)數(shù)據(jù)傳輸引入了3G無(wú)線模塊的方案,為后續(xù)研究奠定了基礎(chǔ)。</p><p>  本文主要研究的嵌入式Web服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的軟件設(shè)計(jì),對(duì)現(xiàn)代視頻監(jiān)控的研究具有一定的參考價(jià)值。</p><p>  關(guān)鍵詞: 視頻監(jiān)控 嵌入式We

4、b ARM Linux 3G無(wú)線通信</p><p>  The design of remote video surveillance system based on WEB</p><p>  Abstract With the development of the communication and network technology and embedded techno

5、logy, the video surveillance system based on the embedded Web server has been the development tendency in the monitoring field. Because an embedded Web server based on B/S is usually adopted by remote monitoring system,i

6、t needn’t be operated at a special physical position.This design method can reduce the cost as well as the size of the entire system.The device is more convenient to be installed,easier </p><p>  This paper

7、aiming at satisfying the needs of the front-end integration, compact,portable in current video surveillance systems,a Web-based the B/S mode remote video monitoring system is designed.We adopt the ARM7 and Linux systems

8、as soft hardware development platform in our design.Combining with embedded Web technology. We are mainly engaged in following work. 3G wireless communication networks are currently popular, in order to meet the needs of

9、 future motion monitor,the data transmission of t</p><p>  An embedded Web server for remote video monitoring system described in this paper has a certain reference value for vehicle video motion monitoring.

10、</p><p>  Key words: Video monitoring embedded Web ARM Linux 3Gwireless communication </p><p><b>  目 錄</b></p><p><b>  第一章 緒論1</b></p>

11、<p>  1.1課題研究的背景和意義1</p><p>  1.1.1模擬視頻監(jiān)控系統(tǒng)1</p><p>  1.1.2本地?cái)?shù)字視額監(jiān)控系統(tǒng)2</p><p>  1.1.3遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)2</p><p>  1.2視頻監(jiān)控系統(tǒng)的發(fā)展趨勢(shì)3</p><p>  1.3嵌入式視頻監(jiān)控系統(tǒng)

12、常見(jiàn)設(shè)計(jì)方案4</p><p>  1.4本文的主要研究工作6</p><p>  第二章總體方案設(shè)計(jì)及平臺(tái)搭建7</p><p>  2.1 遠(yuǎn)程視頻監(jiān)控系統(tǒng)方案設(shè)計(jì)7</p><p>  2.1.1 監(jiān)控系統(tǒng)整體網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)7</p><p>  2.1.2視頻監(jiān)控系統(tǒng)硬件方案設(shè)計(jì)10</p>

13、;<p>  2.1.3視頻監(jiān)控系統(tǒng)的系統(tǒng)軟件選擇11</p><p>  2.2系統(tǒng)開(kāi)發(fā)平臺(tái)的搭建12</p><p>  2.3嵌入式Linux的移植13</p><p>  2.4本章小結(jié)14</p><p>  第三章視頻采集模塊的設(shè)計(jì)與實(shí)現(xiàn)15</p><p>  3.1 基于V4L2

14、的視頻采集模塊設(shè)計(jì)15</p><p>  3.1.1 V4L2視頻采集的數(shù)據(jù)結(jié)構(gòu)15</p><p>  3.1.2 V4L2視頻采集的流程16</p><p>  3.1.3視頻數(shù)據(jù)的存儲(chǔ)23</p><p>  3.2視頻編碼23</p><p>  3.2.1視頻編碼技術(shù)的選擇24</p>

15、;<p>  3.2.2基于FFmpeg的H.264編碼25</p><p>  3.3視頻數(shù)據(jù)庫(kù)27</p><p>  3.3.1 SQLite數(shù)據(jù)庫(kù)的設(shè)計(jì)27</p><p>  3.3.2 SQLite的編譯與移植29</p><p>  3.4本章小結(jié)30</p><p>  第四章W

16、eb服務(wù)器的搭建與數(shù)據(jù)的傳輸31</p><p>  4.1嵌入式Web服務(wù)器的構(gòu)建31</p><p>  4.1.1嵌入式Web服務(wù)器的選擇31</p><p>  4.1.2 Boa的移植和配置33</p><p>  4.1.3公共網(wǎng)關(guān)接口(CGI)技術(shù)34</p><p>  4.2 3G無(wú)線網(wǎng)絡(luò)

17、視頻傳輸36</p><p>  4.3本章小結(jié)39</p><p>  第五章總結(jié)與展望40</p><p><b>  5.1 總結(jié)40</b></p><p><b>  5.2展望41</b></p><p><b>  致謝42</b&g

18、t;</p><p><b>  參考文獻(xiàn)43</b></p><p><b>  第一章 緒論 </b></p><p>  網(wǎng)絡(luò)通信和微電子技術(shù)的快速發(fā)展和人民物質(zhì)生活水平的提高,使得人們的生產(chǎn)行為,生活方式發(fā)生了重大的變化,視頻監(jiān)控以其直觀,方面和內(nèi)容豐富等特點(diǎn)日益受到人們的重視。安防監(jiān)控從銀行到交通路口,從連鎖超

19、市到小區(qū)范圍,都會(huì)看到監(jiān)控產(chǎn)品的存在,大量犯罪案件在安防監(jiān)控產(chǎn)品的幫助下破獲。人們意識(shí)到視頻監(jiān)控對(duì)生產(chǎn)生活的安全非常重要,而網(wǎng)絡(luò)視頻監(jiān)控憑借其先進(jìn)的技術(shù)和貼近用戶習(xí)慣的使用方式,逐步走進(jìn)人們的生活當(dāng)中。</p><p>  視頻監(jiān)控系統(tǒng)在保護(hù)安全,預(yù)防犯罪方面起到不可低估的作用,監(jiān)控市場(chǎng)領(lǐng)域不斷擴(kuò)大。據(jù)權(quán)威部門統(tǒng)計(jì),1998年全國(guó)圖像監(jiān)控系統(tǒng)的市場(chǎng)總額為650億元,今年來(lái)一直保持15﹪至30﹪的速度快速增長(zhǎng)。隨著

20、攝像設(shè)備價(jià)格逐漸下降,計(jì)算機(jī)計(jì)算能力增強(qiáng)和網(wǎng)絡(luò)速度的提高,視頻監(jiān)控技術(shù)得到了快速的發(fā)展。</p><p>  1.1課題研究的背景和意義 </p><p>  視頻監(jiān)控系統(tǒng)的產(chǎn)生和發(fā)展有兩個(gè)方面的原因:一方面,隨著人們安全防范觀念的加強(qiáng),人們迫切希望通過(guò)監(jiān)控的方式來(lái)預(yù)防和減少公共場(chǎng)所的破壞及犯罪活動(dòng)。另一方面,視頻技術(shù)和網(wǎng)絡(luò)通信技術(shù)日益成熟,為它的實(shí)現(xiàn)和應(yīng)用奠定了基礎(chǔ);而計(jì)算機(jī)技術(shù)和

21、多媒體技術(shù)的迅速發(fā)展,將自動(dòng)控制和多媒體技術(shù)融入到視頻監(jiān)控系統(tǒng)中來(lái),促進(jìn)了它的普及和應(yīng)用。視頻監(jiān)控系統(tǒng)的發(fā)展大致經(jīng)歷了三個(gè)階段:a、模擬視頻監(jiān)控系統(tǒng);b、本地?cái)?shù)字視頻監(jiān)控系統(tǒng);c、遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。</p><p>  1.1.1模擬視頻監(jiān)控系統(tǒng)</p><p>  采用模擬方式傳輸,最簡(jiǎn)單的就是將圖像信號(hào)直接送入視頻電纜進(jìn)行傳輸。每一監(jiān)控點(diǎn)的視頻信號(hào)都通過(guò)一條電纜線連接到中心控制室的

22、多路切換器上,以手動(dòng)切換方式選擇監(jiān)控點(diǎn)圖像,使之顯示在監(jiān)視器上。模擬視頻監(jiān)控有以下弊端:運(yùn)行及維護(hù)成本高;視頻圖像的質(zhì)量不能在任意時(shí)刻調(diào)整;無(wú)法聯(lián)網(wǎng),只能以點(diǎn)對(duì)點(diǎn)的方式監(jiān)控現(xiàn)場(chǎng),使得布線工程量極大;檢索困難;難以做到無(wú)人值守。</p><p>  1.1.2本地?cái)?shù)字視額監(jiān)控系統(tǒng)</p><p>  進(jìn)入20世紀(jì)80年代,隨著數(shù)字化技術(shù)的發(fā)展,人們從過(guò)去的模擬處理方式轉(zhuǎn)向數(shù)字處理方式,開(kāi)始使

23、用計(jì)算機(jī)處理圖像信號(hào)。利用計(jì)算機(jī)的數(shù)據(jù)處理能力與顯示器的高清晰度,將視頻信號(hào)通過(guò)視頻采集卡采集到計(jì)算機(jī)中,顯示在顯示器上,大大提高了圖像的畫(huà)質(zhì),但是控制與切換仍采用傳統(tǒng)的單片機(jī)方式,只是計(jì)算機(jī)串口與之相連,完成控制工作。盡管它有良好的人機(jī)界面,較好的穩(wěn)定性,但它不能稱為真正的數(shù)字圖像監(jiān)控系統(tǒng)。其根本原因在于系統(tǒng)設(shè)計(jì)的出發(fā)點(diǎn)不是基于計(jì)算機(jī),而是基于傳統(tǒng)模式。大部分時(shí)間里,計(jì)算機(jī)只是充當(dāng)一個(gè)外部監(jiān)視器的角色,并且傳統(tǒng)單片機(jī)系統(tǒng)固有的弊端并沒(méi)

24、有克服,通信協(xié)議的多樣化與專用化很難統(tǒng)一,導(dǎo)致現(xiàn)有的計(jì)算機(jī)資源遠(yuǎn)遠(yuǎn)滿足不了多種設(shè)備的要求。另外計(jì)算機(jī)的運(yùn)行速度較低,而數(shù)字視頻的數(shù)據(jù)量又很大,這樣就限制了利用一臺(tái)計(jì)算機(jī)同時(shí)處理更多數(shù)字視頻信號(hào)的能力。很難組建大型監(jiān)控系統(tǒng)。</p><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ò)視頻信號(hào)采集終端

25、(也被稱為視頻服務(wù)器),網(wǎng)絡(luò)視頻信號(hào)采集終端采用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)。攝像機(jī)送來(lái)的視頻信號(hào)在網(wǎng)絡(luò)視頻信號(hào)采集終端數(shù)字化后由高效壓縮芯片壓縮,通過(guò)內(nèi)部總線送到網(wǎng)絡(luò)接口發(fā)送到網(wǎng)絡(luò)上,網(wǎng)絡(luò)上用戶可以直接用在PC機(jī)上用瀏覽器觀看網(wǎng)絡(luò)視頻信號(hào)采集終端傳送過(guò)來(lái)的攝像機(jī)所拍攝的圖像,授權(quán)用戶還可以通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)透過(guò)網(wǎng)絡(luò)視頻信號(hào)采集終端控制攝像機(jī)鏡頭和云臺(tái)的動(dòng)作或?qū)ο到y(tǒng)進(jìn)行配置操作。由于把視頻壓縮和網(wǎng)絡(luò)功能集中到一個(gè)體積很小的設(shè)備內(nèi),可以直接連入局

26、域網(wǎng),達(dá)到即插即用,省掉多種復(fù)雜的電纜,安裝方便,僅需設(shè)置一個(gè)IP地址,用戶也無(wú)需安裝任何硬件設(shè)備,僅通過(guò)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ò)視頻信號(hào)采集終端直接連入網(wǎng)絡(luò),沒(méi)有線纜長(zhǎng)度和信號(hào)衰減的限制,同時(shí)網(wǎng)絡(luò)是沒(méi)有距離概念的,徹底拋棄了地域的概念,擴(kuò)展布控區(qū)域;系統(tǒng)具有幾乎無(wú)限的無(wú)縫擴(kuò)展能力。所有設(shè)備都以IP地址進(jìn)行標(biāo)識(shí),增加設(shè)備只是意味著IP地址的擴(kuò)充;可組成非常

27、復(fù)雜的監(jiān)控網(wǎng)絡(luò)。采用基于</p><p>  1.2視頻監(jiān)控系統(tǒng)的發(fā)展趨勢(shì)</p><p>  將嵌入式系統(tǒng)技術(shù)、無(wú)線通信技術(shù)和基于TCP/IP的Internet就技術(shù)結(jié)合在一起的視頻監(jiān)控系統(tǒng)將成為監(jiān)控系統(tǒng)的未來(lái)發(fā)展方向。利用嵌入式技術(shù)采集并對(duì)現(xiàn)場(chǎng)信息進(jìn)行相應(yīng)處理,再通過(guò)無(wú)線通信方式傳輸?shù)絀nternet上,用戶通過(guò)internet來(lái)管理和使用信息。由于采用了3G等無(wú)線數(shù)據(jù)通信方式,可省去

28、有線方式下必須采用的物理布線,并且無(wú)線方式有利于對(duì)監(jiān)視點(diǎn)的合理安排,克服了傳統(tǒng)系統(tǒng)只能用于固定現(xiàn)場(chǎng)的監(jiān)視。因此,這種監(jiān)視方式在工農(nóng)業(yè)生產(chǎn)、移動(dòng)通信、家用電器自動(dòng)化等領(lǐng)域都具有相當(dāng)廣闊的應(yīng)用前景。</p><p>  目前,視頻監(jiān)控系統(tǒng)的發(fā)展趨勢(shì)可以概括為:</p><p>  1)視頻監(jiān)控?cái)?shù)字化。</p><p>  視頻監(jiān)控發(fā)展經(jīng)歷了模擬視頻監(jiān)控、半數(shù)字監(jiān)控、數(shù)字

29、監(jiān)控三個(gè)階段。對(duì)于視頻監(jiān)控,數(shù)字化存儲(chǔ)帶來(lái)的是一場(chǎng)革命性的變化。數(shù)字化是21世紀(jì)的時(shí)代特征,視頻監(jiān)控的數(shù)字化是監(jiān)控技術(shù)的必然趨勢(shì)。</p><p>  2)視頻監(jiān)控智能化。</p><p>  智能化是視頻監(jiān)控技術(shù)發(fā)展比較高級(jí)的層次。由于視頻監(jiān)控的數(shù)據(jù)量非常大,而用戶真正需要的信息只是少部分,真正需要監(jiān)視的只是發(fā)生概率很小的某些事件,如何通過(guò)海量數(shù)據(jù)獲取有價(jià)值的信息,如何從目視解釋變?yōu)闄C(jī)器

30、自動(dòng)解釋是視頻監(jiān)控技術(shù)發(fā)展的一個(gè)新方向。因?yàn)槟馨岩曨l監(jiān)控從靜態(tài)的、事后取證變成動(dòng)態(tài)的、實(shí)時(shí)預(yù)防和告警對(duì)用戶來(lái)說(shuō)明顯更加重要。實(shí)際上現(xiàn)有的大型監(jiān)控系統(tǒng)都配置自動(dòng)位移偵測(cè)、晝夜自適應(yīng)切換存儲(chǔ)、預(yù)警設(shè)置(如可疑人物照片、指紋等)等一些基本的智能化功能。</p><p>  3)視頻監(jiān)控IP化。</p><p>  視頻網(wǎng)絡(luò)、PTV等都是網(wǎng)絡(luò)快速發(fā)展的重要應(yīng)用。隨著Internet技術(shù)的發(fā)展,基于

31、IP的視頻監(jiān)控更能為人們所接受,網(wǎng)絡(luò)攝像機(jī)把壓縮的視頻信息通過(guò)TCP/IP協(xié)議,采用流媒體技術(shù)實(shí)現(xiàn)視頻在網(wǎng)上的多路復(fù)用傳輸,擁有授權(quán)的用戶可以隨時(shí)訪問(wèn)互聯(lián)網(wǎng),實(shí)現(xiàn)對(duì)整個(gè)監(jiān)控系統(tǒng)的指揮、調(diào)度、存儲(chǔ)、授權(quán)控制等功能。因此,基于IP的視頻監(jiān)控將會(huì)成為主流。</p><p>  4)視頻監(jiān)控?zé)o線化。</p><p>  隨著無(wú)線寬帶網(wǎng)絡(luò)的發(fā)展,基于3G的無(wú)線視頻應(yīng)用備受關(guān)注。當(dāng)監(jiān)控點(diǎn)分散且與監(jiān)控中

32、心距離較遠(yuǎn),或被監(jiān)控對(duì)象不固定(如出租車、運(yùn)鈔車等)時(shí),利用傳統(tǒng)有線網(wǎng)絡(luò)的視頻監(jiān)控往往成本高且難以實(shí)現(xiàn),而基于多種無(wú)線傳輸手段的移動(dòng)視頻監(jiān)控具有不可替代的優(yōu)勢(shì)。</p><p>  根據(jù)視頻網(wǎng)絡(luò)傳輸方式,遠(yuǎn)程視頻監(jiān)控系統(tǒng)可分為有線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控和無(wú)線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控兩種方式。無(wú)線視頻監(jiān)控系統(tǒng)克服有線網(wǎng)絡(luò)鋪設(shè)上投資成本高、距離受限的弊端,使遠(yuǎn)程視頻監(jiān)控系統(tǒng)的無(wú)線化逐漸成為近年來(lái)的發(fā)展趨勢(shì)。遠(yuǎn)程視頻監(jiān)控的無(wú)線化包括兩個(gè)方面

33、:</p><p>  1)監(jiān)控中心(監(jiān)控者)和被監(jiān)控對(duì)象都是可以移動(dòng)的,不受有線網(wǎng)絡(luò)束縛,監(jiān)控地點(diǎn)靈活,即監(jiān)控者和被監(jiān)控對(duì)象都可以是動(dòng)態(tài)的。</p><p>  2)視頻監(jiān)控網(wǎng)絡(luò)的無(wú)線化。</p><p>  無(wú)線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控又分為兩種:一種單獨(dú)構(gòu)建無(wú)線網(wǎng)絡(luò),基于WLAN(無(wú)線局域網(wǎng))、無(wú)線城域網(wǎng)的WiMAX技術(shù)的視頻監(jiān)控系統(tǒng)技術(shù)已經(jīng)成熟,但自己構(gòu)建網(wǎng)絡(luò)需要傳輸設(shè)

34、備、中繼站等,工作量大。另一種基于移動(dòng)通信網(wǎng)絡(luò),依托遍布全球的2G和3G無(wú)線通信網(wǎng)絡(luò),打破了距離的限制,可以實(shí)現(xiàn)全球漫游監(jiān)控。2G通信網(wǎng)絡(luò)主要是利用GPRS/CDMA/EDGE數(shù)據(jù)業(yè)務(wù)通過(guò)Internet進(jìn)行通信,GPRS/CDMA/EDGE數(shù)據(jù)傳輸理論最大值為171.2kbps/144kbps/473.6kbps。中國(guó)國(guó)產(chǎn)3G標(biāo)準(zhǔn)TD-SCDMA的通信網(wǎng)絡(luò),網(wǎng)絡(luò)數(shù)據(jù)傳輸帶寬將達(dá)到2Mbps。H.264格式的壓縮編碼視頻幀率為30fps

35、/25fpS/15fps所占用的碼率為384Kbps/256Kbps/128Kbps因此,基于3G通信網(wǎng)絡(luò)的遠(yuǎn)程視頻監(jiān)控系統(tǒng)有望實(shí)現(xiàn)實(shí)時(shí)監(jiān)控流暢視頻。</p><p>  1.3嵌入式視頻監(jiān)控系統(tǒng)常見(jiàn)設(shè)計(jì)方案</p><p>  目前,國(guó)內(nèi)外基于嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究,一般集中于嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計(jì)、嵌入式操作系統(tǒng)的研究、視頻圖像處理以及視頻圖像的網(wǎng)絡(luò)傳輸?shù)葞讉€(gè)方面。</p

36、><p>  在嵌入式視頻監(jiān)控系統(tǒng)設(shè)計(jì)方面,一般考慮系統(tǒng)的整體結(jié)構(gòu)和功能,基于B/S(瀏覽器和服務(wù)器)或者C/S(客戶端和服務(wù)器)架構(gòu),具體功能模塊采用軟件或硬件技術(shù)等。例如小型網(wǎng)絡(luò)攝像機(jī),系統(tǒng)由圖像傳感器、嵌入式處理器、圖像處理器、網(wǎng)絡(luò)接口組成,通過(guò)壓縮優(yōu)化算法和背景差分算法,可以使攝像機(jī)實(shí)現(xiàn)實(shí)時(shí)的圖像壓縮、傳輸,并能跟蹤目標(biāo),該系統(tǒng)的主要特點(diǎn)是實(shí)時(shí)性的提高;在嵌入式操作系統(tǒng)方面,除對(duì)系統(tǒng)進(jìn)行一些剪裁和移植外,一般

37、集中于嵌入式系統(tǒng)驅(qū)動(dòng)程序的研究,例如在嵌入式Linux下對(duì)視頻采集設(shè)備驅(qū)動(dòng)程序的研究等;關(guān)于視頻圖像處理的研究,一般是通過(guò)一定的圖形分析算法,實(shí)現(xiàn)目標(biāo)識(shí)別,目標(biāo)跟蹤,以及報(bào)警等功能。例如利用背景差分算法,在圖像處理中控制運(yùn)動(dòng)模塊,使攝像機(jī)可以跟蹤信息庫(kù)中的目標(biāo)網(wǎng)等;對(duì)于視頻圖像網(wǎng)絡(luò)傳輸?shù)难芯糠矫妫?,有在IP組播方式下的網(wǎng)絡(luò)視頻傳輸方案,可以大大的節(jié)約網(wǎng)絡(luò)帶寬,提高視頻的播放效率。或者采用流媒體的格式傳送視頻圖像數(shù)據(jù),可以更好的實(shí)現(xiàn)視

38、頻的傳輸及播放等。</p><p>  現(xiàn)階段,嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的解決方案主要有以下幾種:</p><p>  1)視頻采集芯片+DSP處理器</p><p>  該方案中由視頻采集芯片完成圖像的預(yù)處理,由DSP完成圖像的編碼,基于</p><p>  MPEG-4、H.264或MJPEG標(biāo)準(zhǔn)的壓縮,經(jīng)以太網(wǎng)網(wǎng)絡(luò)傳輸。方案的主要缺點(diǎn)是控

39、制不夠靈活,不適合作系統(tǒng)控制,另外,DSP通常沒(méi)有強(qiáng)大的操作系統(tǒng)支持。</p><p>  2)DSP處理器+嵌入式處理器</p><p>  該方案采用由DSP完成基于MPEG-4、H.264或MJPEG標(biāo)準(zhǔn)的圖像壓縮,在嵌</p><p>  入式處理器ARM/FPGA上運(yùn)行嵌入式操作系統(tǒng)進(jìn)行系統(tǒng)控制和網(wǎng)絡(luò)傳輸。方案的主要缺點(diǎn)是:由于有兩個(gè)主要的芯片,設(shè)計(jì)、調(diào)試

40、、使用等方面具有一定難度,且系統(tǒng)成本偏高。</p><p>  3)圖像采集芯片+嵌入式處理器</p><p>  該方案中,在嵌入式處理器上運(yùn)行嵌入式操作系統(tǒng)進(jìn)行系統(tǒng)控制和網(wǎng)絡(luò)傳輸。方案的主要缺點(diǎn)是:其應(yīng)用主要針對(duì)某一類產(chǎn)品,如數(shù)碼攝像機(jī),所以具有一定的局限性;缺乏強(qiáng)大的圖像處理能力,很難滿足高實(shí)時(shí)性要求。</p><p><b>  4)其他方案<

41、;/b></p><p>  可以采用DSP中央處理器完成圖像壓縮編碼、編碼數(shù)據(jù)網(wǎng)絡(luò)傳輸和本地存儲(chǔ),</p><p>  CPLD完成圖像采集的控制邏輯的脫機(jī)遠(yuǎn)程視頻監(jiān)控方案。</p><p>  1.4本文的主要研究工作</p><p>  1、課題研究背景和意義;</p><p>  2、嵌入式網(wǎng)絡(luò)視頻監(jiān)控系

42、統(tǒng)中的關(guān)鍵技術(shù)介紹:</p><p>  3、系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì),包括:</p><p>  1、硬件系統(tǒng)整體結(jié)構(gòu)的設(shè)計(jì); </p><p>  2、以微處理器S3C4510B為核心的主控電路及其外圍電路的設(shè)計(jì);</p><p>  4、宿主機(jī)上硬件開(kāi)發(fā)平臺(tái)的搭建。</p><p>  5、系統(tǒng)的軟件設(shè)計(jì),包括:<

43、;/p><p>  1、嵌入式Linux系統(tǒng)uCLinux的來(lái)源、特點(diǎn)以及結(jié)構(gòu)介紹:</p><p>  2、宿主機(jī)上Linux開(kāi)發(fā)環(huán)境的建立與使用;</p><p>  3、uCLinux內(nèi)核的升級(jí)、編譯方法和詳細(xì)過(guò)程:</p><p>  4、在uCLinux上添加用戶應(yīng)用程序的步驟;</p><p>  5、嵌入式W

44、EB服務(wù)器的介紹以及與其相關(guān)的各項(xiàng)技術(shù)簡(jiǎn)介;</p><p>  6、嵌入式WEB服務(wù)器各個(gè)功能模塊的實(shí)現(xiàn),包括主程序、用戶管理模塊、設(shè)備管理模塊、網(wǎng)絡(luò)管理模塊的實(shí)現(xiàn)。</p><p>  第二章總體方案設(shè)計(jì)及平臺(tái)搭建</p><p>  隨著壓縮編碼技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和嵌入式系統(tǒng)的發(fā)展以及芯片成本的下降,以嵌入式視頻服務(wù)器為核心的視頻監(jiān)測(cè)系統(tǒng)在市場(chǎng)上嶄露頭角。通

45、用的Web服務(wù)器通常用于有大量用戶并發(fā)訪問(wèn)的普通網(wǎng)站,以強(qiáng)有力的數(shù)據(jù)庫(kù)為用戶提供商業(yè)服務(wù),而嵌入式處理器能力和存儲(chǔ)容量有限,通用大型服務(wù)器無(wú)法在嵌入式設(shè)備上運(yùn)行。因此,采用功能相對(duì)簡(jiǎn)單、體積更小、消耗資源更少的嵌入式Web服務(wù)器,是近年來(lái)出現(xiàn)的一種較為先進(jìn)的方案。目前,嵌入式Web服務(wù)器的實(shí)現(xiàn)方法可以分成自主實(shí)現(xiàn)和修改移植兩種。自主設(shè)計(jì)需要自己開(kāi)發(fā)網(wǎng)絡(luò)協(xié)議,難度及工作量較大。由于Linux的開(kāi)放源碼思想和優(yōu)良的網(wǎng)絡(luò)功能,使它非常適合于嵌

46、入式Web服務(wù)器應(yīng)用中,并能為開(kāi)發(fā)者縮短開(kāi)發(fā)周期和成本,這種開(kāi)發(fā)方式是現(xiàn)在以至今后流行的開(kāi)發(fā)方法。</p><p>  2.1 遠(yuǎn)程視頻監(jiān)控系統(tǒng)方案設(shè)計(jì)</p><p>  比較前面給出的幾種嵌入式網(wǎng)絡(luò)視頻監(jiān)測(cè)系統(tǒng)的解決方案,對(duì)于網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)來(lái)說(shuō),視頻采集卡+DSP方案沒(méi)有強(qiáng)大的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧,不太適合做網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng);DSP+ARM方案中,DSP進(jìn)行圖像處理,刪進(jìn)行指令控制,

47、設(shè)</p><p>  計(jì)得當(dāng)效果不錯(cuò),但該方案采用了兩個(gè)處理器,成本提高,開(kāi)發(fā)周期長(zhǎng),設(shè)計(jì)、調(diào)試上也具有一定困難;視頻采集卡+ARM方案缺乏強(qiáng)大的圖像處理能力,不能滿足實(shí)時(shí)性要求。</p><p>  目前,嵌入式微處理器性能大大提高,3G無(wú)線通信技術(shù)日趨成熟普及,因此,</p><p>  本文方案只采用ARM核心處理器,軟件方式壓縮視頻圖像,成本低廉,適合家庭

48、應(yīng)用。</p><p>  2.1.1 監(jiān)控系統(tǒng)整體網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)</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)成系統(tǒng),就涉及到了網(wǎng)絡(luò)體系結(jié)構(gòu)的選擇問(wèn)題。網(wǎng)絡(luò)體系結(jié)構(gòu)對(duì)整個(gè)網(wǎng)絡(luò)監(jiān)控系統(tǒng)來(lái)說(shuō)是處于基礎(chǔ)地位的,合理選擇網(wǎng)絡(luò)體系結(jié)構(gòu)對(duì)系統(tǒng)運(yùn)行效率、系統(tǒng)應(yīng)用的廣泛性和可維護(hù)性都有至關(guān)重要的作用。C/S和B/S

49、結(jié)構(gòu)是當(dāng)今世界開(kāi)發(fā)模式技術(shù)架構(gòu)的兩大主流技術(shù)。C/S是美國(guó)Borland公司最早研發(fā),B/S是美國(guó)微軟公司研發(fā)。目前,這兩項(xiàng)技術(shù)已被世界各國(guó)所掌握,國(guó)內(nèi)公司以C/S和B/S技術(shù)開(kāi)發(fā)出的產(chǎn)品也很多,這兩種技術(shù)都有自己一定的市場(chǎng)份額和客戶群。</p><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)勢(shì),將任務(wù)合理地分配到Client端和S

50、erver端,降低了系統(tǒng)的通訊開(kāi)銷。目前大多數(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)用不同的模塊共享邏輯組件。因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。</p><p>  B/S(B

51、rowser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在客戶端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)【14】。</p>&

52、lt;p>  Client/Server結(jié)構(gòu)是建立在局域網(wǎng)的基礎(chǔ)上的,Browser/Server結(jié)構(gòu)是建立在廣域網(wǎng)的基礎(chǔ)上的。總結(jié)它們主要的區(qū)別如下:</p><p><b>  (1)硬件環(huán)境不同</b></p><p>  C/S一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過(guò)專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù)。</p><p

53、>  B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例如電話上網(wǎng),租用設(shè)備,信息自己管理,有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行。</p><p>  (2)對(duì)安全要求不同</p><p>  C/S通常面向相對(duì)固定的用戶群,對(duì)信息安全的控制能力很強(qiáng)。一些高度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)比較適宜,通過(guò)B/S發(fā)布部分可公開(kāi)的信息。</p><

54、p>  由于B/S建立在廣域網(wǎng)基礎(chǔ)上,對(duì)安全的控制能力相對(duì)弱,面向的是不可知的用戶群。</p><p>  (3)對(duì)程序架構(gòu)不同</p><p>  C/S程序更加注重流程,也可對(duì)權(quán)限多層次校驗(yàn),對(duì)系統(tǒng)運(yùn)行速度可以較少考慮。</p><p>  B/S對(duì)安全以及訪問(wèn)速度的多重考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上。比C/S有更高的要求,B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的

55、趨勢(shì),從微軟的.Net系列,全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng),到SUN和IBM推的JavaBean構(gòu)件技術(shù)等,使B/S更加成熟。</p><p><b>  (4)軟件重用不同</b></p><p>  C/S程序從整體性方面考慮,構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好。</p><p>  B/S的多重結(jié)構(gòu),具有構(gòu)件相對(duì)獨(dú)立的功能。&l

56、t;/p><p><b>  (5)系統(tǒng)維護(hù)不同</b></p><p>  系統(tǒng)維護(hù)是軟件生存周期中開(kāi)銷大、相當(dāng)重要的環(huán)節(jié)。</p><p>  C/S程序必須從整體考察,處理出現(xiàn)的問(wèn)題以及系統(tǒng)升級(jí)難,通常是再做一個(gè)全新的系統(tǒng)。</p><p>  B/S構(gòu)件組成方面,構(gòu)件可個(gè)別的更換,實(shí)現(xiàn)系統(tǒng)的無(wú)縫升級(jí)。系統(tǒng)維護(hù)開(kāi)銷減到

57、最小,用戶從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí)。</p><p><b>  (6)處理問(wèn)題不同</b></p><p>  C/S程序可以處理用戶面固定,并且在相同區(qū)域,安全要求高的需求,與操作系統(tǒng)相關(guān),應(yīng)該都是相同的系統(tǒng)。</p><p>  B/S建立在廣域網(wǎng)上,面向不同的用戶群,分散地域,這是C/S無(wú)法做到的,與操作系統(tǒng)平臺(tái)關(guān)系最小。<

58、;/p><p><b>  (7)用戶接口不同</b></p><p>  C/S多是建立在windows平臺(tái)上,表現(xiàn)方法有限,對(duì)程序員普遍要求較高。</p><p>  B/S建立在瀏覽器上,有更加豐富和生動(dòng)的表現(xiàn)方式與用戶交流,并且大部分難度減低,降低開(kāi)發(fā)成本。</p><p><b>  (8)信息流不同&l

59、t;/b></p><p>  C/S程序一般是典型的中央集權(quán)的機(jī)械式處理,交互性相對(duì)低。</p><p>  B/S信息流向可變化。</p><p>  綜上所述,根據(jù)C/S和B/S結(jié)構(gòu)的不同點(diǎn),比較出C/S結(jié)構(gòu)具有應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕、數(shù)據(jù)的儲(chǔ)存管理功能較為透明的優(yōu)點(diǎn),C/S結(jié)構(gòu)的劣勢(shì)是高昂的維護(hù)成本且投資大。B/S結(jié)構(gòu)維護(hù)和升級(jí)方式簡(jiǎn)單,成本低廉、

60、操作系統(tǒng)選擇更多,但有應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重的缺點(diǎn)。本文監(jiān)控系統(tǒng)具有家庭小型應(yīng)用的特點(diǎn),數(shù)據(jù)量不大,需要成本低廉、簡(jiǎn)單易用、維護(hù)方便,因此,本文的視頻監(jiān)控系統(tǒng)采用B/S結(jié)構(gòu)。</p><p>  2.1.2視頻監(jiān)控系統(tǒng)硬件方案設(shè)計(jì)</p><p><b>  1)開(kāi)發(fā)環(huán)境的簡(jiǎn)圖</b></p><p>  嵌入式系統(tǒng)通常為一個(gè)資源受限的系統(tǒng)

61、。直接在嵌入式系統(tǒng)的硬件平臺(tái)上編寫(xiě)軟件比較困難,有時(shí)甚至是不可能的。目前,一般采用的辦法是,先在通用計(jì)算機(jī)上編寫(xiě)程序,然后,通過(guò)交叉編譯,生成目標(biāo)平臺(tái)上可運(yùn)行的二進(jìn)制代碼格式,最后下載到目標(biāo)平臺(tái)上的特定位置上運(yùn)行。具體的硬件平臺(tái)連接如2.1圖所示。</p><p>  圖2.1系統(tǒng)的硬件結(jié)構(gòu)原理圖</p><p>  2.1.3視頻監(jiān)控系統(tǒng)的系統(tǒng)軟件選擇</p><p&

62、gt;  嵌入式操作系統(tǒng)已經(jīng)被廣泛應(yīng)用到大量以嵌入式處理器為硬件基礎(chǔ)的系統(tǒng)中,常見(jiàn)的嵌入式操作系統(tǒng)有:Linux、VxWorks、Windows CE、Symbian、Palm等。這些操作系統(tǒng)都各有自己強(qiáng)勁的優(yōu)勢(shì),Linux以其開(kāi)源的經(jīng)濟(jì)優(yōu)勢(shì)得到中小型企業(yè)的青睞;VxWorkS具有優(yōu)良的可靠性和卓越的實(shí)時(shí)性,系統(tǒng)和開(kāi)發(fā)環(huán)境都是專用的,開(kāi)發(fā)成本高、支持硬件數(shù)量有限,使得其多數(shù)應(yīng)用在高精尖技術(shù)領(lǐng)域中;Windows CE有著全球最大的操作系

63、統(tǒng)廠商Microsoft強(qiáng)大的技術(shù)后盾,市場(chǎng)份額越來(lái)越多:Symbian操作系統(tǒng)是全球最大的手機(jī)開(kāi)發(fā)制造商N(yùn)OKIA的手機(jī)操作系統(tǒng),廣泛應(yīng)用于高端智能手機(jī)上:Palm是專門為掌上電腦開(kāi)發(fā)的OS,占用內(nèi)存少,具有極強(qiáng)的開(kāi)放性【9】。</p><p>  本系統(tǒng)的嵌入式設(shè)備考慮到源代碼的學(xué)習(xí)性和家用設(shè)備成本問(wèn)題,采用了開(kāi)放源代碼、高性能可剪裁內(nèi)核、網(wǎng)絡(luò)功能優(yōu)秀的Linux系統(tǒng)。本系統(tǒng)Linux內(nèi)核采用了2.6.12版

64、本,與2.4.x版本相比,Linux2.6內(nèi)核對(duì)系統(tǒng)的穩(wěn)定性、統(tǒng)一的設(shè)備模型、即插即用支持、大數(shù)量的蝴支持、擴(kuò)展性、文件系統(tǒng)等方面進(jìn)行了改進(jìn),尤其是搶占式內(nèi)核、I/O性能的改進(jìn)提高了系統(tǒng)的實(shí)時(shí)性。這將顯著提高交互式和多媒體應(yīng)用程序的性能。</p><p>  因此,本文的嵌入式視頻監(jiān)控系統(tǒng)的總體架構(gòu)圖如圖2.2所示。</p><p>  圖2.2基于嵌入式Web服務(wù)器視頻監(jiān)控系統(tǒng)總體架構(gòu)圖

65、</p><p>  2.2系統(tǒng)開(kāi)發(fā)平臺(tái)的搭建</p><p>  有的嵌入式操作系統(tǒng)的處理能力和存儲(chǔ)能力較弱,不能在它上面安裝開(kāi)發(fā)軟件;有的嵌入式操作系統(tǒng)的處理器結(jié)構(gòu)特殊,沒(méi)有可以在上面運(yùn)行的開(kāi)發(fā)工具。所以,在嵌入式系統(tǒng)開(kāi)發(fā)時(shí),通常需要采取交叉開(kāi)發(fā)的方式進(jìn)行。交叉開(kāi)發(fā)環(huán)境的模型如圖2.3所示。</p><p>  圖2.3交叉編譯環(huán)境模型</p>&

66、lt;p>  TARGET是嵌入式系統(tǒng),HOST是開(kāi)發(fā)主機(jī)。在開(kāi)發(fā)主機(jī)上可以安裝開(kāi)發(fā)工具,編輯、編譯目標(biāo)系統(tǒng),然后在目標(biāo)板上運(yùn)行。這種在主機(jī)環(huán)境下開(kāi)發(fā),在目標(biāo)板上運(yùn)行的開(kāi)發(fā)模式稱為交叉開(kāi)發(fā)。</p><p>  2.3嵌入式Linux的移植</p><p>  從軟件的角度來(lái)看,一個(gè)嵌入式Linux的系統(tǒng)通??煞譃樗膫€(gè)層次,如圖2.4</p><p><

67、b>  所示:</b></p><p>  圖2.4嵌入式系統(tǒng)的軟件體系結(jié)構(gòu)</p><p>  這四個(gè)層次自下而上為:</p><p>  1)引導(dǎo)加載程序。包括固化在固件(firmware)中的Boot代碼(可選)和Boot Loader兩大部分。</p><p>  2)操作系統(tǒng)內(nèi)核。如Linux內(nèi)核,通常包含內(nèi)核的啟

68、動(dòng)參數(shù)。</p><p>  3)文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上的文件系統(tǒng)。在嵌</p><p>  入式系統(tǒng)中,通常用Ramdisk來(lái)作為文件系統(tǒng)。</p><p>  4)用戶應(yīng)用程序。針對(duì)特定用戶的專用應(yīng)用程序。有時(shí)在用戶應(yīng)用程序和內(nèi)核</p><p>  層之間可能還會(huì)包括一個(gè)嵌入式圖形用戶界面。</p&

69、gt;<p><b>  2.4本章小結(jié)</b></p><p>  本章對(duì)遠(yuǎn)程視頻監(jiān)控系統(tǒng)總體方案進(jìn)行了設(shè)計(jì),搭建了主機(jī)開(kāi)發(fā)環(huán)境和嵌入式開(kāi)發(fā)環(huán)境,對(duì)嵌入式Linux系統(tǒng)的Bootloader、kemel和根文件系統(tǒng)進(jìn)行修改和移植。</p><p>  第三章視頻采集模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  視頻數(shù)據(jù)的采集是視頻監(jiān)控系

70、統(tǒng)實(shí)現(xiàn)的第一步,也是視頻壓縮和視頻傳輸?shù)幕A(chǔ)。本監(jiān)控系統(tǒng)由多個(gè)功能模塊構(gòu)成,視頻服務(wù)器主要涉及到三部分功能,一部分是基于V4L2的圖像采集,一部分是建立嵌入式Web服務(wù)器,設(shè)計(jì)CGI程序,實(shí)現(xiàn)用戶遠(yuǎn)程通過(guò)Web頁(yè)面控制視頻采集傳輸?shù)墓δ?,另外部分是建立視頻數(shù)據(jù)庫(kù)。本章主要對(duì)Linux下采用V4L2標(biāo)準(zhǔn)的USB攝像頭驅(qū)動(dòng)程序的圖像采集過(guò)程進(jìn)行介紹,并采用FFmpeg對(duì)視頻圖像進(jìn)行H.264格式的壓縮編碼,同時(shí)建立視頻數(shù)據(jù)庫(kù),以便瀏覽器端對(duì)

71、圖像數(shù)據(jù)操作。</p><p>  3.1 基于V4L2的視頻采集模塊設(shè)計(jì)</p><p>  V4L(Video for Linux)是在linux內(nèi)核中關(guān)于視頻設(shè)備的API接口,涉及開(kāi)關(guān)視頻設(shè)備、采集并處理視頻圖像信息。V4L從2.1.x版本的內(nèi)核中開(kāi)始出現(xiàn)。V4L2(Video for Linux Two)是V4L接口標(biāo)準(zhǔn)的改進(jìn)版本,修復(fù)了第一代的部分設(shè)計(jì)bug。從2.5.x開(kāi)始,V

72、4L2就被集成到了內(nèi)核里。V4L2是音頻、視頻和其他輸出設(shè)備的內(nèi)核接口。與V4L相比,它的擴(kuò)展性和靈活性都得到了極大的提高,并且支持的硬件設(shè)備也更多,但由于它對(duì)V4L做了徹底的改造,使得它與V4L并不兼容.</p><p>  USB攝像頭在Linux中屬于字符設(shè)備,成功加載了USB攝像頭驅(qū)動(dòng)程序后,插</p><p>  入攝像頭就會(huì)生成設(shè)備文件“/dev/video()”。因此,在應(yīng)用

73、程序中通過(guò)讀寫(xiě)該文件取得攝像頭采集的圖像數(shù)據(jù)。</p><p>  對(duì)于USB口攝像頭,其驅(qū)動(dòng)程序中需要提供基本的I/O操作接口函數(shù)open()、</p><p>  read()、write()、close()的實(shí)現(xiàn),對(duì)中斷的處理實(shí)現(xiàn),內(nèi)存映射功能以及對(duì)I/O通道的控制接口函數(shù)ioctl()的實(shí)現(xiàn)等,并把它們定義在struct file_operations中。這樣當(dāng)應(yīng)用程序?qū)υO(shè)備文件進(jìn)

74、行諸如open()等系統(tǒng)調(diào)用操作時(shí),Linux內(nèi)核將通過(guò)file operations結(jié)構(gòu)訪問(wèn)驅(qū)動(dòng)程序提供的函數(shù)。</p><p>  3.1.1 V4L2視頻采集的數(shù)據(jù)結(jié)構(gòu)</p><p>  在Linux系統(tǒng)的/usr/include/linux/videodev2.h中定義了v412常用的數(shù)據(jù)結(jié)構(gòu):</p><p>  struct v4l2_requestb

75、uffers reqbufs; //向驅(qū)動(dòng)申請(qǐng)幀緩沖的請(qǐng)求,里面包含申請(qǐng)的個(gè)數(shù)</p><p>  struct v4l2-capability cap; //這個(gè)設(shè)備的功能,比如是否是視頻輸入設(shè)備</p><p>  struct v4l2_input input; //視頻輸入</p><p>  struct v4l2_standard; //視頻的制

76、式,比如PAL,NTSC</p><p>  struct v4l2_format fmt: //幀的格式,比如寬度,高度等</p><p>  struct v412_buffer buf; //代表驅(qū)動(dòng)中的一幀</p><p>  v4l2_std_id stdid; //視頻制式,例如:V4L2_STD_PAI_B</p><p

77、>  struct v4l2_querytrl; //查詢的控制</p><p>  struct v4l2_control control; //具體控制的值</p><p>  3.1.2 V4L2視頻采集的流程</p><p>  Linux下基于V4L2 API接口進(jìn)行圖像采集的程序?qū)崿F(xiàn)流程圖如圖3.1.2所示:</p><

78、p>  圖3.1視頻圖像采集流程圖</p><p>  具體的視頻采集主要步驟為:</p><p><b>  1)打開(kāi)視頻設(shè)備</b></p><p>  在Linux中,把視頻設(shè)備看作設(shè)備文件,即/dev,video0。通過(guò)調(diào)用open()函數(shù)來(lái)實(shí)現(xiàn),open()函數(shù)帶有三個(gè)參數(shù),第一個(gè)為設(shè)備文件名,第二個(gè)則是打開(kāi)的類型。</p

79、><p>  用非阻塞模式打開(kāi)攝像頭設(shè)備:</p><p>  int cameraFd;</p><p>  cameraFd=open(“/dev/video0”,O_RDWR |O_NONBLOCK,O);</p><p>  如果用阻塞模式打開(kāi)攝像頭設(shè)備,則:</p><p>  cameraFd=open(“/d

80、ev/video0”,O_RDWR,0);</p><p>  應(yīng)用程序能夠使用阻塞模式或非阻塞模式打開(kāi)視頻設(shè)備,如果使用非阻塞模式調(diào)用視頻設(shè)備,即使尚未捕獲到信息,驅(qū)動(dòng)依舊會(huì)把緩存(DQBUFF)里的東西返回給應(yīng)用程序。</p><p>  2)設(shè)定屬性及采集方式</p><p>  打開(kāi)視頻設(shè)備后,可以設(shè)置該視頻設(shè)備的屬性,例如裁剪、縮放等。這一步是可選的。在L

81、inux編程中,一般使用ioctl函數(shù)來(lái)對(duì)設(shè)備的I/O通道進(jìn)行管理:</p><p>  Extem int ioctl(int_fd,unsigned long int_requst,...)_THROW;</p><p>  _fd:設(shè)備的ID,例如剛才用open函數(shù)打開(kāi)視頻通道后返回的camer Fd;</p><p>  _request:具體的命令標(biāo)志符

82、。</p><p>  在進(jìn)行V4L2開(kāi)發(fā)中,一般會(huì)用到以下的命令標(biāo)志符:</p><p>  VIDIOC_REQBUFS:分配內(nèi)存</p><p>  VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的數(shù)據(jù)緩存轉(zhuǎn)換成物理地</p><p><b>  址</b></p><p&

83、gt;  VIDIOC_QUERYCAP:查詢驅(qū)動(dòng)功能</p><p>  VIDIOC_ENUM_FMT:獲取當(dāng)前驅(qū)動(dòng)支持的視頻格式</p><p>  VIDIOC_S_FMT:設(shè)置當(dāng)前驅(qū)動(dòng)的頻捕獲格式</p><p>  VIDIOC_DQBUF:把數(shù)據(jù)放回緩存隊(duì)列</p><p>  VIDIOC_STREAMON:開(kāi)始視頻顯示函數(shù)&

84、lt;/p><p>  VIDIOC_STREAMOFF:結(jié)束視頻顯示函數(shù)</p><p>  VIDIOC_QUERYSTD:檢查當(dāng)前視頻設(shè)備支持的標(biāo)準(zhǔn),例如PAL或NTSC。</p><p>  這些IO調(diào)用,有些是必須的,有些是可選擇的。</p><p> ?、俨楫?dāng)前視頻設(shè)備支持的標(biāo)準(zhǔn)</p><p>  在亞洲,一

85、般使用PAL(720x576)制式的攝像頭,而歐洲一般使用NTSC(720x480),使用VIDIOC_QUERYSTD來(lái)檢測(cè):</p><p>  v412_std_id std;</p><p><b>  do{</b></p><p>  ret=ioctl(fd,VIDl0C_QUERYSTD,&std);</p>

86、<p>  }wllile(ret==-1&&errno==EAGAIN);</p><p>  switch(std){</p><p>  case V4L2_STD_NYSC:</p><p>  case V4L2_STD_PAL:</p><p><b>  }</b></p

87、><p><b>  ②捕獲格式</b></p><p>  當(dāng)檢測(cè)完視頻設(shè)備支持的標(biāo)準(zhǔn)后,還需要設(shè)定視頻捕獲格式:</p><p>  struct v4l2_format fmt;</p><p>  memset(&fmt,0,sizeof(fmt));</p><p>  fmt.ty

88、pe=V4L2_BUF_TYPE_VIDEO_CAPTURE;</p><p>  fmt.fmt.pix.width=720;</p><p>  fmt.fmt.pix.height=576;</p><p>  fmt.fmt.pix.pixelformat=V4L2_PIX_FMT_YUYV;</p><p>  fmt.fmt.pi

89、x.field=V4L2_FIELD_INTERLACED;</p><p>  if(ioctl(fd,VIDIOC_S_FMT,&fmt)==-1){</p><p><b>  return-l;</b></p><p><b>  }</b></p><p>  v4l2_forma

90、t結(jié)構(gòu)體定義如下:</p><p>  struct v4l2_format </p><p><b>  {</b></p><p>  enum v412_buf_type ; ∥數(shù)據(jù)流類型,必須永遠(yuǎn)是</p><p>  ∥v4L2_BUF_VIDEO_CAPTURE</p><p><

91、;b>  union</b></p><p><b>  {</b></p><p>  struct V412_pix_format pix;</p><p>  struct V412_window win;</p><p>  struct V412_vbi_format vbi;</p&g

92、t;<p>  _u8 raw_data[200];</p><p><b>  }fmt;</b></p><p><b>  };</b></p><p>  struct v412_pix_format</p><p><b>  {</b></p&g

93、t;<p>  _u32 width; //寬,必須是16的倍數(shù)</p><p>  _u32 height; //高,必須是16的倍數(shù)</p><p>  _u322 pixelformat;//視頻數(shù)據(jù)存儲(chǔ)類型,例如是YUV4:2:2還是I沁B</p><p>  enum v412_field field;</p><p>

94、;  _u32 bytesperline;</p><p>  _u32 sizeimage;</p><p>  enum v4l2_colorspace colorspace;</p><p>  _u32 priv;</p><p><b>  };</b></p><p><b>

95、; ?、鄯峙鋬?nèi)存</b></p><p><b>  視頻捕獲分配內(nèi)存:</b></p><p>  struct v412_requestbuffers req;</p><p>  if(ioctl(fd,VIDIOC_REQBUFS,&req)==- 1){</p><p>  return -

96、1;</p><p><b>  }</b></p><p>  v412_requestbuffers定義如下:</p><p>  struct V412_requestbuffers</p><p><b>  {</b></p><p>  _u32 count;

97、//緩存數(shù)量,也就是說(shuō)在緩存隊(duì)列里保持多少?gòu)堈掌?lt;/p><p>  enum v412_buf_type type; //數(shù)據(jù)流類型,必須永遠(yuǎn)是</p><p>  //V4L2_BUF_TYPE_VIDEO_CAPTURE</p><p>  enum v412_memory memory; //V4L2_MEMORY_MMAP或</p><

98、p>  //V4L2 MEMORY_USERPTR</p><p>  _u32 reserved[2];</p><p><b>  };</b></p><p> ?、塬@取并記錄緩存的物理空間</p><p>  使用VIDIOC_REQBUFS,我們獲取了req.count個(gè)緩存,下一步通過(guò)調(diào)用VIDIOC_

99、QUERYBUF命令來(lái)獲取這些緩存的地址,然后使用mmap函數(shù)轉(zhuǎn)換成應(yīng)用</p><p>  程序中的絕對(duì)地址,如圖3.2所示,最后把這段緩存放入緩存隊(duì)列:</p><p>  圖3.2mmap函數(shù)地址傳喚</p><p><b> ?、菀曨l采集方式</b></p><p>  操作系統(tǒng)一般把系統(tǒng)使用的內(nèi)存劃分成用戶空間

100、和內(nèi)核空間,分別由應(yīng)用程序管理和操作系統(tǒng)管理。應(yīng)用程序可以直接訪問(wèn)內(nèi)存的地址,而內(nèi)核空間存放的是供內(nèi)核訪問(wèn)的代碼和數(shù)據(jù),用戶不能直接訪問(wèn)。v412捕獲的數(shù)據(jù),最初是存放在內(nèi)核空間的,這意味著用戶不能直接訪問(wèn)該段內(nèi)存,必須通過(guò)某些手段來(lái)轉(zhuǎn)換地址。</p><p>  Linux系統(tǒng)下有三種視頻采集方式:使用read、write方式,mmap內(nèi)存映射</p><p>  方式和用戶指針模式。&

101、lt;/p><p>  read、write方式: 通過(guò)內(nèi)核緩沖區(qū)來(lái)讀取數(shù)據(jù),在用戶空間和內(nèi)核空間不斷拷貝數(shù)據(jù),占用了大量用戶內(nèi)存空間,效率不高。</p><p>  mmap內(nèi)存映射方式:mmap系統(tǒng)調(diào)用使得進(jìn)程之間通過(guò)映射同一文件實(shí)現(xiàn)內(nèi)存共享,訪問(wèn)時(shí)只需要指針而不用調(diào)用文件操作函數(shù)。通過(guò)把設(shè)備文件映射到內(nèi)存中,加速了I/o訪問(wèn)。這是一種有效的方式。上面的mmap函數(shù)就是使用這種方式。<

102、;/p><p>  用戶指針模式:內(nèi)存片段由應(yīng)用程序自己分配。這點(diǎn)需要在v412_ requestbuffers里將memory字段設(shè)置成V4L2_MEMORY_USERPTR.</p><p>  因此,本文在程序?qū)崿F(xiàn)中采用了內(nèi)存映射方式截取視頻圖像樣,捕獲到的視頻數(shù)據(jù)被映射到內(nèi)存區(qū)域,該映射內(nèi)容區(qū)可讀寫(xiě)并且可供不同進(jìn)程共享。要對(duì)視頻數(shù)據(jù)進(jìn)行壓縮等處理工作則可通過(guò)訪問(wèn)內(nèi)存映射區(qū)域進(jìn)行。<

103、;/p><p><b>  3)處理采集數(shù)據(jù)</b></p><p>  V4L2有一個(gè)數(shù)據(jù)緩存,存放req.count數(shù)量的緩存數(shù)據(jù)。數(shù)據(jù)緩存采用FIFO的方式,當(dāng)應(yīng)用程序調(diào)用緩存數(shù)據(jù)時(shí),緩存隊(duì)列將最先采集到的視頻數(shù)據(jù)緩存送出,并重新采集一張視頻數(shù)據(jù)。這個(gè)過(guò)程需要用到兩個(gè)ioctl命令,VIDIOC_DQBUF和VIDIOC_QBUF:</p><p

104、>  struct v412_buffer buf;</p><p>  memset(&buf,O,sizeof(buf));</p><p>  buf.type=V4L2_BUF_TYPE_VIDEO_CAPATURE;</p><p>  buf.memory=V4L2_MEMORY_MMAP;</p><p>  bu

105、f.index=0:</p><p><b>  //讀取緩存</b></p><p>  if(ioctl(cameraFd,VIDIOC_dqbuf, &buf)== -1)</p><p><b>  {</b></p><p><b>  return-1;</b&g

106、t;</p><p><b>  }</b></p><p>  //????視頻處理算法</p><p>  //重新放入緩存隊(duì)列</p><p>  if(ioctl(cameraFd,VIDIOC_QBUF,&buf)==-1){</p><p><b>  return-

107、l;</b></p><p><b>  }</b></p><p><b>  4)關(guān)閉視頻設(shè)備</b></p><p>  使用close函數(shù)關(guān)閉一個(gè)視頻設(shè)備:</p><p>  close(cameraFd);</p><p>  本課題的視頻采集圖像效果

108、,如圖3.3示。</p><p>  3.1.3視頻數(shù)據(jù)的存儲(chǔ)</p><p>  由于保存文件是保存在USB硬盤上,也就是需要不停的讀寫(xiě)I/O設(shè)備,這樣的操作需要耗費(fèi)大量的時(shí)間和資源,因此保存視頻文件模塊也是利用一個(gè)單獨(dú)線程來(lái)實(shí)現(xiàn)以提高程序的執(zhí)行效率。對(duì)于用戶而言,存儲(chǔ)的圖像能達(dá)到記錄的目的即可,對(duì)連續(xù)性的要求并不高,所以本系統(tǒng)以約10幀/秒的速度進(jìn)行存儲(chǔ),以此達(dá)到節(jié)省存儲(chǔ)空間的目的。存

109、儲(chǔ)速率的控制是通過(guò)定時(shí)器來(lái)完成的。</p><p>  同樣,此功能模塊也有自己的循環(huán)緩沖區(qū)存放壓縮后的視頻數(shù)據(jù),該線程不斷從該緩沖區(qū)讀取JPEG數(shù)據(jù),通過(guò)調(diào)用avilib庫(kù)的相關(guān)函數(shù)把這些視頻數(shù)據(jù)保存為avi格式的文件。對(duì)于“avi"格式文件,目前大多數(shù)播放器都能播放該格式的視頻文件。</p><p><b>  3.2視頻編碼</b></p>

110、<p>  通過(guò)USB攝像頭獲取的視頻圖像數(shù)據(jù)量較大,而網(wǎng)絡(luò)帶寬有限,不適合網(wǎng)絡(luò)實(shí)時(shí)傳輸,為了使視頻圖像在現(xiàn)有的網(wǎng)絡(luò)上有較高的傳輸速率和較好的視頻質(zhì)量和有效的存儲(chǔ)視頻數(shù)據(jù),需要將原始的視頻圖像進(jìn)行壓縮編碼。</p><p>  3.2.1視頻編碼技術(shù)的選擇</p><p>  傳統(tǒng)的視頻壓縮編碼都是以香農(nóng)信息論為基礎(chǔ),用統(tǒng)計(jì)概率模型來(lái)描述信源,編碼實(shí)體是像素或像素塊。這種基于

111、數(shù)理統(tǒng)計(jì)、旨在消除視頻數(shù)據(jù)相關(guān)冗余的編碼技術(shù)被稱為第一代視頻編碼技術(shù),JPEG、MPEG-1、H.261、H.263是其典型代表。第一代視頻編碼技術(shù)沒(méi)有考慮接受者特性、視頻信息的重要程度和具體含義,只是以去除數(shù)據(jù)的冗余為出發(fā)點(diǎn),是一種較低層次的編碼技術(shù)。由此,出現(xiàn)了基于內(nèi)容的第二代視頻編碼技術(shù),它是以去除視頻內(nèi)容的冗余為出發(fā)點(diǎn),在視頻編碼時(shí)充分考慮了人眼的視覺(jué)特性影像。</p><p>  目前監(jiān)控中主要采用MJ

112、PEG、MPEG-1/2、MPEG4(SP/ASP)、H.264/AVC等幾種視頻編碼技術(shù)。用戶關(guān)心的主要要素有:清晰度、存儲(chǔ)量(帶寬)、穩(wěn)定性和價(jià)格。</p><p><b>  1)MJPEG</b></p><p>  MJPEG(Motion JPEG)壓縮技術(shù),主要是基于靜態(tài)視頻壓縮發(fā)展起來(lái)的技術(shù),它的主要特點(diǎn)是基本不考慮視頻流中不同幀之間的變化,只單獨(dú)對(duì)某

113、一幀進(jìn)行壓縮。MJPEG壓縮技術(shù)可以獲取清晰度很高的視頻圖像,可以動(dòng)態(tài)調(diào)整幀率、分辨率。但由于沒(méi)有考慮到幀間變化,造成大量冗余信息被重復(fù)存儲(chǔ),因此單幀視頻的占用空間較大,目前流行的MJPEG技術(shù)最好的也只能做到3K字節(jié)/幀,通常要8~20K。</p><p>  2)MPEG-1/2</p><p>  MPEG-l標(biāo)準(zhǔn)主要針對(duì)SIF標(biāo)準(zhǔn)分辨率(NTSC制為352x240;PAL制為352

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論