版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于WEB的遠程視頻監(jiān)控系統(tǒng)的研究與設(shè)計</p><p> The design of remote video surveillance system based on WEB</p><p> 基于WEB的遠程視頻監(jiān)控系統(tǒng)的研究與設(shè)計</p><p> 摘 要 隨著網(wǎng)絡(luò)通信技術(shù)和嵌入式技術(shù)的發(fā)展,基于嵌入式Web服務器的視頻監(jiān)控系統(tǒng)已
2、成為監(jiān)控領(lǐng)域的發(fā)展趨勢,采用B/S架構(gòu)的嵌入式Web服務器,監(jiān)控者無需到現(xiàn)場操作,系統(tǒng)成本低廉,設(shè)備體積小巧,安裝方便,故障維護升級簡單,安全可靠,滿足了現(xiàn)代消費者的需求。</p><p> 本文針對視頻監(jiān)控設(shè)備前端一體化、小型化和便攜等相關(guān)需求,以動態(tài)數(shù)據(jù)交互技術(shù)和移動通信技術(shù)為基礎(chǔ),借助嵌入式系統(tǒng)的網(wǎng)絡(luò)支持,設(shè)計了一種基于Web服務器的B/S方式的遠程視頻監(jiān)控系統(tǒng)。設(shè)計中以ARM7芯片和Linux系統(tǒng)為軟硬
3、件開發(fā)平臺,結(jié)合嵌入式Web技術(shù),給出了視頻監(jiān)控系統(tǒng)的總體設(shè)計方案,深入研究了各個功能模塊。目前3G無線通信網(wǎng)絡(luò)正在普及,為了滿足未來移動監(jiān)控的需要,本系統(tǒng)數(shù)據(jù)傳輸引入了3G無線模塊的方案,為后續(xù)研究奠定了基礎(chǔ)。</p><p> 本文主要研究的嵌入式Web服務器的遠程視頻監(jiān)控系統(tǒng)的軟件設(shè)計,對現(xiàn)代視頻監(jiān)控的研究具有一定的參考價值。</p><p> 關(guān)鍵詞: 視頻監(jiān)控 嵌入式We
4、b ARM Linux 3G無線通信</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本地數(shù)字視額監(jiān)控系統(tǒng)2</p><p> 1.1.3遠程網(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)
12、常見設(shè)計方案4</p><p> 1.4本文的主要研究工作6</p><p> 第二章總體方案設(shè)計及平臺搭建7</p><p> 2.1 遠程視頻監(jiān)控系統(tǒng)方案設(shè)計7</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>
13、;<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><p> 2.4本章小結(jié)14</p><p> 第三章視頻采集模塊的設(shè)計與實現(xiàn)15</p><p> 3.1 基于V4L2
14、的視頻采集模塊設(shè)計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ù)的存儲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ù)庫27</p><p> 3.3.1 SQLite數(shù)據(jù)庫的設(shè)計27</p><p> 3.3.2 SQLite的編譯與移植29</p><p> 3.4本章小結(jié)30</p><p> 第四章W
16、eb服務器的搭建與數(shù)據(jù)的傳輸31</p><p> 4.1嵌入式Web服務器的構(gòu)建31</p><p> 4.1.1嵌入式Web服務器的選擇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ǎ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> 參考文獻43</b></p><p><b> 第一章 緒論 </b></p><p> 網(wǎng)絡(luò)通信和微電子技術(shù)的快速發(fā)展和人民物質(zhì)生活水平的提高,使得人們的生產(chǎn)行為,生活方式發(fā)生了重大的變化,視頻監(jiān)控以其直觀,方面和內(nèi)容豐富等特點日益受到人們的重視。安防監(jiān)控從銀行到交通路口,從連鎖超
19、市到小區(qū)范圍,都會看到監(jiān)控產(chǎn)品的存在,大量犯罪案件在安防監(jiān)控產(chǎn)品的幫助下破獲。人們意識到視頻監(jiān)控對生產(chǎn)生活的安全非常重要,而網(wǎng)絡(luò)視頻監(jiān)控憑借其先進的技術(shù)和貼近用戶習慣的使用方式,逐步走進人們的生活當中。</p><p> 視頻監(jiān)控系統(tǒng)在保護安全,預防犯罪方面起到不可低估的作用,監(jiān)控市場領(lǐng)域不斷擴大。據(jù)權(quán)威部門統(tǒng)計,1998年全國圖像監(jiān)控系統(tǒng)的市場總額為650億元,今年來一直保持15﹪至30﹪的速度快速增長。隨著
20、攝像設(shè)備價格逐漸下降,計算機計算能力增強和網(wǎng)絡(luò)速度的提高,視頻監(jiān)控技術(shù)得到了快速的發(fā)展。</p><p> 1.1課題研究的背景和意義 </p><p> 視頻監(jiān)控系統(tǒng)的產(chǎn)生和發(fā)展有兩個方面的原因:一方面,隨著人們安全防范觀念的加強,人們迫切希望通過監(jiān)控的方式來預防和減少公共場所的破壞及犯罪活動。另一方面,視頻技術(shù)和網(wǎng)絡(luò)通信技術(shù)日益成熟,為它的實現(xiàn)和應用奠定了基礎(chǔ);而計算機技術(shù)和
21、多媒體技術(shù)的迅速發(fā)展,將自動控制和多媒體技術(shù)融入到視頻監(jiān)控系統(tǒng)中來,促進了它的普及和應用。視頻監(jiān)控系統(tǒng)的發(fā)展大致經(jīng)歷了三個階段:a、模擬視頻監(jiān)控系統(tǒng);b、本地數(shù)字視頻監(jiān)控系統(tǒng);c、遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。</p><p> 1.1.1模擬視頻監(jiān)控系統(tǒng)</p><p> 采用模擬方式傳輸,最簡單的就是將圖像信號直接送入視頻電纜進行傳輸。每一監(jiān)控點的視頻信號都通過一條電纜線連接到中心控制室的
22、多路切換器上,以手動切換方式選擇監(jiān)控點圖像,使之顯示在監(jiān)視器上。模擬視頻監(jiān)控有以下弊端:運行及維護成本高;視頻圖像的質(zhì)量不能在任意時刻調(diào)整;無法聯(lián)網(wǎng),只能以點對點的方式監(jiān)控現(xiàn)場,使得布線工程量極大;檢索困難;難以做到無人值守。</p><p> 1.1.2本地數(shù)字視額監(jiān)控系統(tǒng)</p><p> 進入20世紀80年代,隨著數(shù)字化技術(shù)的發(fā)展,人們從過去的模擬處理方式轉(zhuǎn)向數(shù)字處理方式,開始使
23、用計算機處理圖像信號。利用計算機的數(shù)據(jù)處理能力與顯示器的高清晰度,將視頻信號通過視頻采集卡采集到計算機中,顯示在顯示器上,大大提高了圖像的畫質(zhì),但是控制與切換仍采用傳統(tǒng)的單片機方式,只是計算機串口與之相連,完成控制工作。盡管它有良好的人機界面,較好的穩(wěn)定性,但它不能稱為真正的數(shù)字圖像監(jiān)控系統(tǒng)。其根本原因在于系統(tǒng)設(shè)計的出發(fā)點不是基于計算機,而是基于傳統(tǒng)模式。大部分時間里,計算機只是充當一個外部監(jiān)視器的角色,并且傳統(tǒng)單片機系統(tǒng)固有的弊端并沒
24、有克服,通信協(xié)議的多樣化與專用化很難統(tǒng)一,導致現(xiàn)有的計算機資源遠遠滿足不了多種設(shè)備的要求。另外計算機的運行速度較低,而數(shù)字視頻的數(shù)據(jù)量又很大,這樣就限制了利用一臺計算機同時處理更多數(shù)字視頻信號的能力。很難組建大型監(jiān)控系統(tǒng)。</p><p> 1.1.3遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)</p><p> 第三代視頻監(jiān)控系統(tǒng)——遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的關(guān)鍵設(shè)備是網(wǎng)絡(luò)視頻信號采集終端
25、(也被稱為視頻服務器),網(wǎng)絡(luò)視頻信號采集終端采用嵌入式實時多任務操作系統(tǒng)。攝像機送來的視頻信號在網(wǎng)絡(luò)視頻信號采集終端數(shù)字化后由高效壓縮芯片壓縮,通過內(nèi)部總線送到網(wǎng)絡(luò)接口發(fā)送到網(wǎng)絡(luò)上,網(wǎng)絡(luò)上用戶可以直接用在PC機上用瀏覽器觀看網(wǎng)絡(luò)視頻信號采集終端傳送過來的攝像機所拍攝的圖像,授權(quán)用戶還可以通過計算機網(wǎng)絡(luò)透過網(wǎng)絡(luò)視頻信號采集終端控制攝像機鏡頭和云臺的動作或?qū)ο到y(tǒng)進行配置操作。由于把視頻壓縮和網(wǎng)絡(luò)功能集中到一個體積很小的設(shè)備內(nèi),可以直接連入局
26、域網(wǎng),達到即插即用,省掉多種復雜的電纜,安裝方便,僅需設(shè)置一個IP地址,用戶也無需安裝任何硬件設(shè)備,僅通過PC機用瀏覽器即可觀看。數(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ò),沒有線纜長度和信號衰減的限制,同時網(wǎng)絡(luò)是沒有距離概念的,徹底拋棄了地域的概念,擴展布控區(qū)域;系統(tǒng)具有幾乎無限的無縫擴展能力。所有設(shè)備都以IP地址進行標識,增加設(shè)備只是意味著IP地址的擴充;可組成非常
27、復雜的監(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)控系統(tǒng)的未來發(fā)展方向。利用嵌入式技術(shù)采集并對現(xiàn)場信息進行相應處理,再通過無線通信方式傳輸?shù)絀nternet上,用戶通過internet來管理和使用信息。由于采用了3G等無線數(shù)據(jù)通信方式,可省去
28、有線方式下必須采用的物理布線,并且無線方式有利于對監(jiān)視點的合理安排,克服了傳統(tǒng)系統(tǒng)只能用于固定現(xiàn)場的監(jiān)視。因此,這種監(jiān)視方式在工農(nóng)業(yè)生產(chǎn)、移動通信、家用電器自動化等領(lǐng)域都具有相當廣闊的應用前景。</p><p> 目前,視頻監(jiān)控系統(tǒng)的發(fā)展趨勢可以概括為:</p><p> 1)視頻監(jiān)控數(shù)字化。</p><p> 視頻監(jiān)控發(fā)展經(jīng)歷了模擬視頻監(jiān)控、半數(shù)字監(jiān)控、數(shù)字
29、監(jiān)控三個階段。對于視頻監(jiān)控,數(shù)字化存儲帶來的是一場革命性的變化。數(shù)字化是21世紀的時代特征,視頻監(jiān)控的數(shù)字化是監(jiān)控技術(shù)的必然趨勢。</p><p> 2)視頻監(jiān)控智能化。</p><p> 智能化是視頻監(jiān)控技術(shù)發(fā)展比較高級的層次。由于視頻監(jiān)控的數(shù)據(jù)量非常大,而用戶真正需要的信息只是少部分,真正需要監(jiān)視的只是發(fā)生概率很小的某些事件,如何通過海量數(shù)據(jù)獲取有價值的信息,如何從目視解釋變?yōu)闄C器
30、自動解釋是視頻監(jiān)控技術(shù)發(fā)展的一個新方向。因為能把視頻監(jiān)控從靜態(tài)的、事后取證變成動態(tài)的、實時預防和告警對用戶來說明顯更加重要。實際上現(xiàn)有的大型監(jiān)控系統(tǒng)都配置自動位移偵測、晝夜自適應切換存儲、預警設(shè)置(如可疑人物照片、指紋等)等一些基本的智能化功能。</p><p> 3)視頻監(jiān)控IP化。</p><p> 視頻網(wǎng)絡(luò)、PTV等都是網(wǎng)絡(luò)快速發(fā)展的重要應用。隨著Internet技術(shù)的發(fā)展,基于
31、IP的視頻監(jiān)控更能為人們所接受,網(wǎng)絡(luò)攝像機把壓縮的視頻信息通過TCP/IP協(xié)議,采用流媒體技術(shù)實現(xiàn)視頻在網(wǎng)上的多路復用傳輸,擁有授權(quán)的用戶可以隨時訪問互聯(lián)網(wǎng),實現(xiàn)對整個監(jiān)控系統(tǒng)的指揮、調(diào)度、存儲、授權(quán)控制等功能。因此,基于IP的視頻監(jiān)控將會成為主流。</p><p> 4)視頻監(jiān)控無線化。</p><p> 隨著無線寬帶網(wǎng)絡(luò)的發(fā)展,基于3G的無線視頻應用備受關(guān)注。當監(jiān)控點分散且與監(jiān)控中
32、心距離較遠,或被監(jiān)控對象不固定(如出租車、運鈔車等)時,利用傳統(tǒng)有線網(wǎng)絡(luò)的視頻監(jiān)控往往成本高且難以實現(xiàn),而基于多種無線傳輸手段的移動視頻監(jiān)控具有不可替代的優(yōu)勢。</p><p> 根據(jù)視頻網(wǎng)絡(luò)傳輸方式,遠程視頻監(jiān)控系統(tǒng)可分為有線網(wǎng)絡(luò)遠程監(jiān)控和無線網(wǎng)絡(luò)遠程監(jiān)控兩種方式。無線視頻監(jiān)控系統(tǒng)克服有線網(wǎng)絡(luò)鋪設(shè)上投資成本高、距離受限的弊端,使遠程視頻監(jiān)控系統(tǒng)的無線化逐漸成為近年來的發(fā)展趨勢。遠程視頻監(jiān)控的無線化包括兩個方面
33、:</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><p> 無線網(wǎng)絡(luò)遠程監(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è)
34、備、中繼站等,工作量大。另一種基于移動通信網(wǎng)絡(luò),依托遍布全球的2G和3G無線通信網(wǎng)絡(luò),打破了距離的限制,可以實現(xiàn)全球漫游監(jiān)控。2G通信網(wǎng)絡(luò)主要是利用GPRS/CDMA/EDGE數(shù)據(jù)業(yè)務通過Internet進行通信,GPRS/CDMA/EDGE數(shù)據(jù)傳輸理論最大值為171.2kbps/144kbps/473.6kbps。中國國產(chǎn)3G標準TD-SCDMA的通信網(wǎng)絡(luò),網(wǎng)絡(luò)數(shù)據(jù)傳輸帶寬將達到2Mbps。H.264格式的壓縮編碼視頻幀率為30fps
35、/25fpS/15fps所占用的碼率為384Kbps/256Kbps/128Kbps因此,基于3G通信網(wǎng)絡(luò)的遠程視頻監(jiān)控系統(tǒng)有望實現(xiàn)實時監(jiān)控流暢視頻。</p><p> 1.3嵌入式視頻監(jiān)控系統(tǒng)常見設(shè)計方案</p><p> 目前,國內(nèi)外基于嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究,一般集中于嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計、嵌入式操作系統(tǒng)的研究、視頻圖像處理以及視頻圖像的網(wǎng)絡(luò)傳輸?shù)葞讉€方面。</p
36、><p> 在嵌入式視頻監(jiān)控系統(tǒng)設(shè)計方面,一般考慮系統(tǒng)的整體結(jié)構(gòu)和功能,基于B/S(瀏覽器和服務器)或者C/S(客戶端和服務器)架構(gòu),具體功能模塊采用軟件或硬件技術(shù)等。例如小型網(wǎng)絡(luò)攝像機,系統(tǒng)由圖像傳感器、嵌入式處理器、圖像處理器、網(wǎng)絡(luò)接口組成,通過壓縮優(yōu)化算法和背景差分算法,可以使攝像機實現(xiàn)實時的圖像壓縮、傳輸,并能跟蹤目標,該系統(tǒng)的主要特點是實時性的提高;在嵌入式操作系統(tǒng)方面,除對系統(tǒng)進行一些剪裁和移植外,一般
37、集中于嵌入式系統(tǒng)驅(qū)動程序的研究,例如在嵌入式Linux下對視頻采集設(shè)備驅(qū)動程序的研究等;關(guān)于視頻圖像處理的研究,一般是通過一定的圖形分析算法,實現(xiàn)目標識別,目標跟蹤,以及報警等功能。例如利用背景差分算法,在圖像處理中控制運動模塊,使攝像機可以跟蹤信息庫中的目標網(wǎng)等;對于視頻圖像網(wǎng)絡(luò)傳輸?shù)难芯糠矫妫?,有在IP組播方式下的網(wǎng)絡(luò)視頻傳輸方案,可以大大的節(jié)約網(wǎng)絡(luò)帶寬,提高視頻的播放效率?;蛘卟捎昧髅襟w的格式傳送視頻圖像數(shù)據(jù),可以更好的實現(xiàn)視
38、頻的傳輸及播放等。</p><p> 現(xiàn)階段,嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的解決方案主要有以下幾種:</p><p> 1)視頻采集芯片+DSP處理器</p><p> 該方案中由視頻采集芯片完成圖像的預處理,由DSP完成圖像的編碼,基于</p><p> MPEG-4、H.264或MJPEG標準的壓縮,經(jīng)以太網(wǎng)網(wǎng)絡(luò)傳輸。方案的主要缺點是控
39、制不夠靈活,不適合作系統(tǒng)控制,另外,DSP通常沒有強大的操作系統(tǒng)支持。</p><p> 2)DSP處理器+嵌入式處理器</p><p> 該方案采用由DSP完成基于MPEG-4、H.264或MJPEG標準的圖像壓縮,在嵌</p><p> 入式處理器ARM/FPGA上運行嵌入式操作系統(tǒng)進行系統(tǒng)控制和網(wǎng)絡(luò)傳輸。方案的主要缺點是:由于有兩個主要的芯片,設(shè)計、調(diào)試
40、、使用等方面具有一定難度,且系統(tǒng)成本偏高。</p><p> 3)圖像采集芯片+嵌入式處理器</p><p> 該方案中,在嵌入式處理器上運行嵌入式操作系統(tǒng)進行系統(tǒng)控制和網(wǎng)絡(luò)傳輸。方案的主要缺點是:其應用主要針對某一類產(chǎn)品,如數(shù)碼攝像機,所以具有一定的局限性;缺乏強大的圖像處理能力,很難滿足高實時性要求。</p><p><b> 4)其他方案<
41、;/b></p><p> 可以采用DSP中央處理器完成圖像壓縮編碼、編碼數(shù)據(jù)網(wǎng)絡(luò)傳輸和本地存儲,</p><p> CPLD完成圖像采集的控制邏輯的脫機遠程視頻監(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è)計,包括:</p><p> 1、硬件系統(tǒng)整體結(jié)構(gòu)的設(shè)計; </p><p> 2、以微處理器S3C4510B為核心的主控電路及其外圍電路的設(shè)計;</p><p> 4、宿主機上硬件開發(fā)平臺的搭建。</p><p> 5、系統(tǒng)的軟件設(shè)計,包括:<
43、;/p><p> 1、嵌入式Linux系統(tǒng)uCLinux的來源、特點以及結(jié)構(gòu)介紹:</p><p> 2、宿主機上Linux開發(fā)環(huán)境的建立與使用;</p><p> 3、uCLinux內(nèi)核的升級、編譯方法和詳細過程:</p><p> 4、在uCLinux上添加用戶應用程序的步驟;</p><p> 5、嵌入式W
44、EB服務器的介紹以及與其相關(guān)的各項技術(shù)簡介;</p><p> 6、嵌入式WEB服務器各個功能模塊的實現(xiàn),包括主程序、用戶管理模塊、設(shè)備管理模塊、網(wǎng)絡(luò)管理模塊的實現(xiàn)。</p><p> 第二章總體方案設(shè)計及平臺搭建</p><p> 隨著壓縮編碼技術(shù)、計算機網(wǎng)絡(luò)技術(shù)和嵌入式系統(tǒng)的發(fā)展以及芯片成本的下降,以嵌入式視頻服務器為核心的視頻監(jiān)測系統(tǒng)在市場上嶄露頭角。通
45、用的Web服務器通常用于有大量用戶并發(fā)訪問的普通網(wǎng)站,以強有力的數(shù)據(jù)庫為用戶提供商業(yè)服務,而嵌入式處理器能力和存儲容量有限,通用大型服務器無法在嵌入式設(shè)備上運行。因此,采用功能相對簡單、體積更小、消耗資源更少的嵌入式Web服務器,是近年來出現(xiàn)的一種較為先進的方案。目前,嵌入式Web服務器的實現(xiàn)方法可以分成自主實現(xiàn)和修改移植兩種。自主設(shè)計需要自己開發(fā)網(wǎng)絡(luò)協(xié)議,難度及工作量較大。由于Linux的開放源碼思想和優(yōu)良的網(wǎng)絡(luò)功能,使它非常適合于嵌
46、入式Web服務器應用中,并能為開發(fā)者縮短開發(fā)周期和成本,這種開發(fā)方式是現(xiàn)在以至今后流行的開發(fā)方法。</p><p> 2.1 遠程視頻監(jiān)控系統(tǒng)方案設(shè)計</p><p> 比較前面給出的幾種嵌入式網(wǎng)絡(luò)視頻監(jiān)測系統(tǒng)的解決方案,對于網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)來說,視頻采集卡+DSP方案沒有強大的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧,不太適合做網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng);DSP+ARM方案中,DSP進行圖像處理,刪進行指令控制,
47、設(shè)</p><p> 計得當效果不錯,但該方案采用了兩個處理器,成本提高,開發(fā)周期長,設(shè)計、調(diào)試上也具有一定困難;視頻采集卡+ARM方案缺乏強大的圖像處理能力,不能滿足實時性要求。</p><p> 目前,嵌入式微處理器性能大大提高,3G無線通信技術(shù)日趨成熟普及,因此,</p><p> 本文方案只采用ARM核心處理器,軟件方式壓縮視頻圖像,成本低廉,適合家庭
48、應用。</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服務器接入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ǎng)絡(luò)體系結(jié)構(gòu)對整個網(wǎng)絡(luò)監(jiān)控系統(tǒng)來說是處于基礎(chǔ)地位的,合理選擇網(wǎng)絡(luò)體系結(jié)構(gòu)對系統(tǒng)運行效率、系統(tǒng)應用的廣泛性和可維護性都有至關(guān)重要的作用。C/S和B/S
49、結(jié)構(gòu)是當今世界開發(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><p> C/S(Clien/Server)結(jié)構(gòu)即客戶機和服務器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),C/S結(jié)構(gòu)充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理地分配到Client端和S
50、erver端,降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的Web應用發(fā)展,Web和Client Server應用都可以進行同樣的業(yè)務處理,應用不同的模塊共享邏輯組件。因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。這也就是目前應用系統(tǒng)的發(fā)展方向。</p><p> B/S(B
51、rowser/Server)結(jié)構(gòu)即瀏覽器和服務器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在客戶端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(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)之間再通過專門服務器提供連接和數(shù)據(jù)交換服務。</p><p
53、> B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例如電話上網(wǎng),租用設(shè)備,信息自己管理,有比C/S更強的適應范圍,一般只要有操作系統(tǒng)和瀏覽器就行。</p><p> (2)對安全要求不同</p><p> C/S通常面向相對固定的用戶群,對信息安全的控制能力很強。一些高度機密的信息系統(tǒng)采用C/S結(jié)構(gòu)比較適宜,通過B/S發(fā)布部分可公開的信息。</p><
54、p> 由于B/S建立在廣域網(wǎng)基礎(chǔ)上,對安全的控制能力相對弱,面向的是不可知的用戶群。</p><p> (3)對程序架構(gòu)不同</p><p> C/S程序更加注重流程,也可對權(quán)限多層次校驗,對系統(tǒng)運行速度可以較少考慮。</p><p> B/S對安全以及訪問速度的多重考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上。比C/S有更高的要求,B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的
55、趨勢,從微軟的.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)件相對獨立的功能。&l
56、t;/p><p><b> (5)系統(tǒng)維護不同</b></p><p> 系統(tǒng)維護是軟件生存周期中開銷大、相當重要的環(huán)節(jié)。</p><p> C/S程序必須從整體考察,處理出現(xiàn)的問題以及系統(tǒng)升級難,通常是再做一個全新的系統(tǒng)。</p><p> B/S構(gòu)件組成方面,構(gòu)件可個別的更換,實現(xiàn)系統(tǒng)的無縫升級。系統(tǒng)維護開銷減到
57、最小,用戶從網(wǎng)上自己下載安裝就可以實現(xiàn)升級。</p><p><b> (6)處理問題不同</b></p><p> C/S程序可以處理用戶面固定,并且在相同區(qū)域,安全要求高的需求,與操作系統(tǒng)相關(guān),應該都是相同的系統(tǒng)。</p><p> B/S建立在廣域網(wǎng)上,面向不同的用戶群,分散地域,這是C/S無法做到的,與操作系統(tǒng)平臺關(guān)系最小。<
58、;/p><p><b> (7)用戶接口不同</b></p><p> C/S多是建立在windows平臺上,表現(xiàn)方法有限,對程序員普遍要求較高。</p><p> B/S建立在瀏覽器上,有更加豐富和生動的表現(xiàn)方式與用戶交流,并且大部分難度減低,降低開發(fā)成本。</p><p><b> (8)信息流不同&l
59、t;/b></p><p> C/S程序一般是典型的中央集權(quán)的機械式處理,交互性相對低。</p><p> B/S信息流向可變化。</p><p> 綜上所述,根據(jù)C/S和B/S結(jié)構(gòu)的不同點,比較出C/S結(jié)構(gòu)具有應用服務器運行數(shù)據(jù)負荷較輕、數(shù)據(jù)的儲存管理功能較為透明的優(yōu)點,C/S結(jié)構(gòu)的劣勢是高昂的維護成本且投資大。B/S結(jié)構(gòu)維護和升級方式簡單,成本低廉、
60、操作系統(tǒng)選擇更多,但有應用服務器運行數(shù)據(jù)負荷較重的缺點。本文監(jiān)控系統(tǒng)具有家庭小型應用的特點,數(shù)據(jù)量不大,需要成本低廉、簡單易用、維護方便,因此,本文的視頻監(jiān)控系統(tǒng)采用B/S結(jié)構(gòu)。</p><p> 2.1.2視頻監(jiān)控系統(tǒng)硬件方案設(shè)計</p><p><b> 1)開發(fā)環(huán)境的簡圖</b></p><p> 嵌入式系統(tǒng)通常為一個資源受限的系統(tǒng)
61、。直接在嵌入式系統(tǒng)的硬件平臺上編寫軟件比較困難,有時甚至是不可能的。目前,一般采用的辦法是,先在通用計算機上編寫程序,然后,通過交叉編譯,生成目標平臺上可運行的二進制代碼格式,最后下載到目標平臺上的特定位置上運行。具體的硬件平臺連接如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)被廣泛應用到大量以嵌入式處理器為硬件基礎(chǔ)的系統(tǒng)中,常見的嵌入式操作系統(tǒng)有:Linux、VxWorks、Windows CE、Symbian、Palm等。這些操作系統(tǒng)都各有自己強勁的優(yōu)勢,Linux以其開源的經(jīng)濟優(yōu)勢得到中小型企業(yè)的青睞;VxWorkS具有優(yōu)良的可靠性和卓越的實時性,系統(tǒng)和開發(fā)環(huán)境都是專用的,開發(fā)成本高、支持硬件數(shù)量有限,使得其多數(shù)應用在高精尖技術(shù)領(lǐng)域中;Windows CE有著全球最大的操作系
63、統(tǒng)廠商Microsoft強大的技術(shù)后盾,市場份額越來越多:Symbian操作系統(tǒng)是全球最大的手機開發(fā)制造商NOKIA的手機操作系統(tǒng),廣泛應用于高端智能手機上:Palm是專門為掌上電腦開發(fā)的OS,占用內(nèi)存少,具有極強的開放性【9】。</p><p> 本系統(tǒng)的嵌入式設(shè)備考慮到源代碼的學習性和家用設(shè)備成本問題,采用了開放源代碼、高性能可剪裁內(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)核對系統(tǒng)的穩(wěn)定性、統(tǒng)一的設(shè)備模型、即插即用支持、大數(shù)量的蝴支持、擴展性、文件系統(tǒng)等方面進行了改進,尤其是搶占式內(nèi)核、I/O性能的改進提高了系統(tǒng)的實時性。這將顯著提高交互式和多媒體應用程序的性能。</p><p> 因此,本文的嵌入式視頻監(jiān)控系統(tǒng)的總體架構(gòu)圖如圖2.2所示。</p><p> 圖2.2基于嵌入式Web服務器視頻監(jiān)控系統(tǒng)總體架構(gòu)圖
65、</p><p> 2.2系統(tǒng)開發(fā)平臺的搭建</p><p> 有的嵌入式操作系統(tǒng)的處理能力和存儲能力較弱,不能在它上面安裝開發(fā)軟件;有的嵌入式操作系統(tǒng)的處理器結(jié)構(gòu)特殊,沒有可以在上面運行的開發(fā)工具。所以,在嵌入式系統(tǒng)開發(fā)時,通常需要采取交叉開發(fā)的方式進行。交叉開發(fā)環(huán)境的模型如圖2.3所示。</p><p> 圖2.3交叉編譯環(huán)境模型</p>&
66、lt;p> TARGET是嵌入式系統(tǒng),HOST是開發(fā)主機。在開發(fā)主機上可以安裝開發(fā)工具,編輯、編譯目標系統(tǒng),然后在目標板上運行。這種在主機環(huán)境下開發(fā),在目標板上運行的開發(fā)模式稱為交叉開發(fā)。</p><p> 2.3嵌入式Linux的移植</p><p> 從軟件的角度來看,一個嵌入式Linux的系統(tǒng)通常可分為四個層次,如圖2.4</p><p><
67、b> 所示:</b></p><p> 圖2.4嵌入式系統(tǒng)的軟件體系結(jié)構(gòu)</p><p> 這四個層次自下而上為:</p><p> 1)引導加載程序。包括固化在固件(firmware)中的Boot代碼(可選)和Boot Loader兩大部分。</p><p> 2)操作系統(tǒng)內(nèi)核。如Linux內(nèi)核,通常包含內(nèi)核的啟
68、動參數(shù)。</p><p> 3)文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上的文件系統(tǒng)。在嵌</p><p> 入式系統(tǒng)中,通常用Ramdisk來作為文件系統(tǒng)。</p><p> 4)用戶應用程序。針對特定用戶的專用應用程序。有時在用戶應用程序和內(nèi)核</p><p> 層之間可能還會包括一個嵌入式圖形用戶界面。</p&
69、gt;<p><b> 2.4本章小結(jié)</b></p><p> 本章對遠程視頻監(jiān)控系統(tǒng)總體方案進行了設(shè)計,搭建了主機開發(fā)環(huán)境和嵌入式開發(fā)環(huán)境,對嵌入式Linux系統(tǒng)的Bootloader、kemel和根文件系統(tǒng)進行修改和移植。</p><p> 第三章視頻采集模塊的設(shè)計與實現(xiàn)</p><p> 視頻數(shù)據(jù)的采集是視頻監(jiān)控系
70、統(tǒng)實現(xiàn)的第一步,也是視頻壓縮和視頻傳輸?shù)幕A(chǔ)。本監(jiān)控系統(tǒng)由多個功能模塊構(gòu)成,視頻服務器主要涉及到三部分功能,一部分是基于V4L2的圖像采集,一部分是建立嵌入式Web服務器,設(shè)計CGI程序,實現(xiàn)用戶遠程通過Web頁面控制視頻采集傳輸?shù)墓δ?,另外部分是建立視頻數(shù)據(jù)庫。本章主要對Linux下采用V4L2標準的USB攝像頭驅(qū)動程序的圖像采集過程進行介紹,并采用FFmpeg對視頻圖像進行H.264格式的壓縮編碼,同時建立視頻數(shù)據(jù)庫,以便瀏覽器端對
71、圖像數(shù)據(jù)操作。</p><p> 3.1 基于V4L2的視頻采集模塊設(shè)計</p><p> V4L(Video for Linux)是在linux內(nèi)核中關(guān)于視頻設(shè)備的API接口,涉及開關(guān)視頻設(shè)備、采集并處理視頻圖像信息。V4L從2.1.x版本的內(nèi)核中開始出現(xiàn)。V4L2(Video for Linux Two)是V4L接口標準的改進版本,修復了第一代的部分設(shè)計bug。從2.5.x開始,V
72、4L2就被集成到了內(nèi)核里。V4L2是音頻、視頻和其他輸出設(shè)備的內(nèi)核接口。與V4L相比,它的擴展性和靈活性都得到了極大的提高,并且支持的硬件設(shè)備也更多,但由于它對V4L做了徹底的改造,使得它與V4L并不兼容.</p><p> USB攝像頭在Linux中屬于字符設(shè)備,成功加載了USB攝像頭驅(qū)動程序后,插</p><p> 入攝像頭就會生成設(shè)備文件“/dev/video()”。因此,在應用
73、程序中通過讀寫該文件取得攝像頭采集的圖像數(shù)據(jù)。</p><p> 對于USB口攝像頭,其驅(qū)動程序中需要提供基本的I/O操作接口函數(shù)open()、</p><p> read()、write()、close()的實現(xiàn),對中斷的處理實現(xiàn),內(nèi)存映射功能以及對I/O通道的控制接口函數(shù)ioctl()的實現(xiàn)等,并把它們定義在struct file_operations中。這樣當應用程序?qū)υO(shè)備文件進
74、行諸如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> 在Linux系統(tǒng)的/usr/include/linux/videodev2.h中定義了v412常用的數(shù)據(jù)結(jié)構(gòu):</p><p> struct v4l2_requestb
75、uffers reqbufs; //向驅(qū)動申請幀緩沖的請求,里面包含申請的個數(shù)</p><p> struct v4l2-capability cap; //這個設(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ū)動中的一幀</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接口進行圖像采集的程序?qū)崿F(xiàn)流程圖如圖3.1.2所示:</p><
78、p> 圖3.1視頻圖像采集流程圖</p><p> 具體的視頻采集主要步驟為:</p><p><b> 1)打開視頻設(shè)備</b></p><p> 在Linux中,把視頻設(shè)備看作設(shè)備文件,即/dev,video0。通過調(diào)用open()函數(shù)來實現(xiàn),open()函數(shù)帶有三個參數(shù),第一個為設(shè)備文件名,第二個則是打開的類型。</p
79、><p> 用非阻塞模式打開攝像頭設(shè)備:</p><p> int cameraFd;</p><p> cameraFd=open(“/dev/video0”,O_RDWR |O_NONBLOCK,O);</p><p> 如果用阻塞模式打開攝像頭設(shè)備,則:</p><p> cameraFd=open(“/d
80、ev/video0”,O_RDWR,0);</p><p> 應用程序能夠使用阻塞模式或非阻塞模式打開視頻設(shè)備,如果使用非阻塞模式調(diào)用視頻設(shè)備,即使尚未捕獲到信息,驅(qū)動依舊會把緩存(DQBUFF)里的東西返回給應用程序。</p><p> 2)設(shè)定屬性及采集方式</p><p> 打開視頻設(shè)備后,可以設(shè)置該視頻設(shè)備的屬性,例如裁剪、縮放等。這一步是可選的。在L
81、inux編程中,一般使用ioctl函數(shù)來對設(shè)備的I/O通道進行管理:</p><p> Extem int ioctl(int_fd,unsigned long int_requst,...)_THROW;</p><p> _fd:設(shè)備的ID,例如剛才用open函數(shù)打開視頻通道后返回的camer Fd;</p><p> _request:具體的命令標志符
82、。</p><p> 在進行V4L2開發(fā)中,一般會用到以下的命令標志符:</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ū)動功能</p><p> VIDIOC_ENUM_FMT:獲取當前驅(qū)動支持的視頻格式</p><p> VIDIOC_S_FMT:設(shè)置當前驅(qū)動的頻捕獲格式</p><p> VIDIOC_DQBUF:把數(shù)據(jù)放回緩存隊列</p><p> VIDIOC_STREAMON:開始視頻顯示函數(shù)&
84、lt;/p><p> VIDIOC_STREAMOFF:結(jié)束視頻顯示函數(shù)</p><p> VIDIOC_QUERYSTD:檢查當前視頻設(shè)備支持的標準,例如PAL或NTSC。</p><p> 這些IO調(diào)用,有些是必須的,有些是可選擇的。</p><p> ?、俨楫斍耙曨l設(shè)備支持的標準</p><p> 在亞洲,一
85、般使用PAL(720x576)制式的攝像頭,而歐洲一般使用NTSC(720x480),使用VIDIOC_QUERYSTD來檢測:</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> 當檢測完視頻設(shè)備支持的標準后,還需要設(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ù)流類型,必須永遠是</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ù)存儲類型,例如是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ù)量,也就是說在緩存隊列里保持多少張照片</p><p> enum v412_buf_type type; //數(shù)據(jù)流類型,必須永遠是</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個緩存,下一步通過調(diào)用VIDIOC_
99、QUERYBUF命令來獲取這些緩存的地址,然后使用mmap函數(shù)轉(zhuǎn)換成應用</p><p> 程序中的絕對地址,如圖3.2所示,最后把這段緩存放入緩存隊列:</p><p> 圖3.2mmap函數(shù)地址傳喚</p><p><b> ?、菀曨l采集方式</b></p><p> 操作系統(tǒng)一般把系統(tǒng)使用的內(nèi)存劃分成用戶空間
100、和內(nèi)核空間,分別由應用程序管理和操作系統(tǒng)管理。應用程序可以直接訪問內(nèi)存的地址,而內(nèi)核空間存放的是供內(nèi)核訪問的代碼和數(shù)據(jù),用戶不能直接訪問。v412捕獲的數(shù)據(jù),最初是存放在內(nèi)核空間的,這意味著用戶不能直接訪問該段內(nèi)存,必須通過某些手段來轉(zhuǎn)換地址。</p><p> Linux系統(tǒng)下有三種視頻采集方式:使用read、write方式,mmap內(nèi)存映射</p><p> 方式和用戶指針模式。&
101、lt;/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)用使得進程之間通過映射同一文件實現(xiàn)內(nèi)存共享,訪問時只需要指針而不用調(diào)用文件操作函數(shù)。通過把設(shè)備文件映射到內(nèi)存中,加速了I/o訪問。這是一種有效的方式。上面的mmap函數(shù)就是使用這種方式。<
102、;/p><p> 用戶指針模式:內(nèi)存片段由應用程序自己分配。這點需要在v412_ requestbuffers里將memory字段設(shè)置成V4L2_MEMORY_USERPTR.</p><p> 因此,本文在程序?qū)崿F(xiàn)中采用了內(nèi)存映射方式截取視頻圖像樣,捕獲到的視頻數(shù)據(jù)被映射到內(nèi)存區(qū)域,該映射內(nèi)容區(qū)可讀寫并且可供不同進程共享。要對視頻數(shù)據(jù)進行壓縮等處理工作則可通過訪問內(nèi)存映射區(qū)域進行。<
103、;/p><p><b> 3)處理采集數(shù)據(jù)</b></p><p> V4L2有一個數(shù)據(jù)緩存,存放req.count數(shù)量的緩存數(shù)據(jù)。數(shù)據(jù)緩存采用FIFO的方式,當應用程序調(diào)用緩存數(shù)據(jù)時,緩存隊列將最先采集到的視頻數(shù)據(jù)緩存送出,并重新采集一張視頻數(shù)據(jù)。這個過程需要用到兩個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> //重新放入緩存隊列</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)閉一個視頻設(shè)備:</p><p> close(cameraFd);</p><p> 本課題的視頻采集圖像效果
108、,如圖3.3示。</p><p> 3.1.3視頻數(shù)據(jù)的存儲</p><p> 由于保存文件是保存在USB硬盤上,也就是需要不停的讀寫I/O設(shè)備,這樣的操作需要耗費大量的時間和資源,因此保存視頻文件模塊也是利用一個單獨線程來實現(xiàn)以提高程序的執(zhí)行效率。對于用戶而言,存儲的圖像能達到記錄的目的即可,對連續(xù)性的要求并不高,所以本系統(tǒng)以約10幀/秒的速度進行存儲,以此達到節(jié)省存儲空間的目的。存
109、儲速率的控制是通過定時器來完成的。</p><p> 同樣,此功能模塊也有自己的循環(huán)緩沖區(qū)存放壓縮后的視頻數(shù)據(jù),該線程不斷從該緩沖區(qū)讀取JPEG數(shù)據(jù),通過調(diào)用avilib庫的相關(guān)函數(shù)把這些視頻數(shù)據(jù)保存為avi格式的文件。對于“avi"格式文件,目前大多數(shù)播放器都能播放該格式的視頻文件。</p><p><b> 3.2視頻編碼</b></p>
110、<p> 通過USB攝像頭獲取的視頻圖像數(shù)據(jù)量較大,而網(wǎng)絡(luò)帶寬有限,不適合網(wǎng)絡(luò)實時傳輸,為了使視頻圖像在現(xiàn)有的網(wǎng)絡(luò)上有較高的傳輸速率和較好的視頻質(zhì)量和有效的存儲視頻數(shù)據(jù),需要將原始的視頻圖像進行壓縮編碼。</p><p> 3.2.1視頻編碼技術(shù)的選擇</p><p> 傳統(tǒng)的視頻壓縮編碼都是以香農(nóng)信息論為基礎(chǔ),用統(tǒng)計概率模型來描述信源,編碼實體是像素或像素塊。這種基于
111、數(shù)理統(tǒng)計、旨在消除視頻數(shù)據(jù)相關(guān)冗余的編碼技術(shù)被稱為第一代視頻編碼技術(shù),JPEG、MPEG-1、H.261、H.263是其典型代表。第一代視頻編碼技術(shù)沒有考慮接受者特性、視頻信息的重要程度和具體含義,只是以去除數(shù)據(jù)的冗余為出發(fā)點,是一種較低層次的編碼技術(shù)。由此,出現(xiàn)了基于內(nèi)容的第二代視頻編碼技術(shù),它是以去除視頻內(nèi)容的冗余為出發(fā)點,在視頻編碼時充分考慮了人眼的視覺特性影像。</p><p> 目前監(jiān)控中主要采用MJ
112、PEG、MPEG-1/2、MPEG4(SP/ASP)、H.264/AVC等幾種視頻編碼技術(shù)。用戶關(guān)心的主要要素有:清晰度、存儲量(帶寬)、穩(wěn)定性和價格。</p><p><b> 1)MJPEG</b></p><p> MJPEG(Motion JPEG)壓縮技術(shù),主要是基于靜態(tài)視頻壓縮發(fā)展起來的技術(shù),它的主要特點是基本不考慮視頻流中不同幀之間的變化,只單獨對某
113、一幀進行壓縮。MJPEG壓縮技術(shù)可以獲取清晰度很高的視頻圖像,可以動態(tài)調(diào)整幀率、分辨率。但由于沒有考慮到幀間變化,造成大量冗余信息被重復存儲,因此單幀視頻的占用空間較大,目前流行的MJPEG技術(shù)最好的也只能做到3K字節(jié)/幀,通常要8~20K。</p><p> 2)MPEG-1/2</p><p> MPEG-l標準主要針對SIF標準分辨率(NTSC制為352x240;PAL制為352
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 視頻監(jiān)控系統(tǒng)畢業(yè)設(shè)計
- 泵站遠程監(jiān)控系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計--視頻監(jiān)控系統(tǒng)的設(shè)計
- 視頻監(jiān)控畢業(yè)設(shè)計
- 視頻監(jiān)控畢業(yè)設(shè)計
- 小區(qū)視頻監(jiān)控系統(tǒng)方案畢業(yè)設(shè)計
- 遠程移動視頻監(jiān)控系統(tǒng)設(shè)計.pdf
- 畢業(yè)設(shè)計--gps+gsm遠程定位監(jiān)控系統(tǒng)
- 視頻監(jiān)控系統(tǒng)的客戶端設(shè)計—畢業(yè)設(shè)計
- 視頻監(jiān)控系統(tǒng)研究與畢業(yè)設(shè)計.doc
- 遠程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于視頻圖像的遠程監(jiān)控系統(tǒng)設(shè)計.pdf
- 遠程監(jiān)控系統(tǒng)中視頻采集模塊設(shè)計.pdf
- 遠程視頻監(jiān)控系統(tǒng)外文翻譯
- 遠程視頻監(jiān)控系統(tǒng)外文翻譯
- 電梯遠程視頻監(jiān)控系統(tǒng).pdf
- 畢業(yè)設(shè)計視頻監(jiān)控系統(tǒng)的客戶端設(shè)計.doc
- 遠程視頻監(jiān)控系統(tǒng)設(shè)計方案和對策
- 基于FPGA的遠程視頻監(jiān)控系統(tǒng)設(shè)計.pdf
- 嵌入式遠程視頻監(jiān)控系統(tǒng)設(shè)計.pdf
評論
0/150
提交評論