本站小編為你精心準備了系統設計論文:監視系統設計的運用透析參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
作者:陳澤恩單位:惠州學院教育技術中心
視頻數據的接收顯示
①視頻的硬件解碼方式。
在Android平臺之上,默認解碼的視頻格式主要存在兩種,分別是mP4格式和3gp格式。它可以通過MediaPlayer和VideoView兩種方式來對視頻解碼器進行一定程度的調用。MediaPlayer的主要作用是對音視頻媒體文件進行有效地播放,它在音頻的播放方面十分簡單,但在播放視頻時,則需要對SurfaceView進行一定程度的使用,通過它來對畫面進行顯示。而對于SurfaceView來說,它對完全的OPenGLES庫能夠有效的支持,因此相比于自定義的View來說,它能夠在繪圖方面表現出更大的優勢。除此之外,它也可以通過VideoView來播放視頻,videoviewt比MediaPlayer簡單易用,但定制性不如Mediaplayer。
②視頻的軟件解碼方式。
視頻的軟件解碼方式,需解碼H.264格式的視頻,因此,需要在Android平臺之上對解碼器進行一定程度的移植,只有這樣,才能夠有效的擴展Android對視頻格式的支持。一般情況下,要想對視頻軟件解碼方式進行有效的實現,必須要做好解碼器的移植工作,它是實現視頻軟件解碼方式的關鍵。目前狀況下,較為流行的一種方式是通過移植FFmPeg開源庫來實現H.264格式視頻的解碼。
圖片的接收
在圖片的接收方式當中,視頻解碼的功能主要是由服務器端來進行實現的,因此,Android客戶端只需要對解碼后的圖片數據進行有效的接收。然而,這當中也存在著一個問題,那就是傳輸后的數據是解碼后的圖片數據,如果與接收視頻的方式進行一定程度的比較,接收圖片的方式就對網絡寬帶有著更高的要求。隨著經濟的發展,3G技術逐漸普及,在這種環境之下,網絡寬帶的制約將會得到一定程度的緩解。
目前狀況下,在多畫面的視頻監控當中,無論是硬件解碼方式還是軟件解碼方式都存在著一定程度上的不足。而對于圖片接收方式來說,它具有操作簡單,效果優良的特點,下面通過實驗數據來說明各種方式在多畫面視頻監控中的性能。實驗的平臺為Acer平板電腦,型號為A500。在本次試驗當中,解碼的視頻數據的格式均為mp4格式,素材主要存在著三種不同的分辨率,分別為128*96,672*378,800*480。
表2顯示的是硬件解碼的性能。從上表中,我們可以發現硬件的解碼雖然可以對多路視頻進行一定程度上的顯示,但是在畫面的數量上受到一定程度的限制,具體表現在兩個方面:一方面,無論視頻分辨率多低,畫面的數量上限為5路;另一方面,畫面的樹齡與視頻分辨率存在著反比例的關系,畫面的數量會隨著視頻分辨率的增高而出現一定程度的減少。
智能監控的算法
智能視頻監控是在無專人監控的情況下,通過計算機視覺技術對視頻內容進行自動分析,對監控畫面中的變化進行檢測、跟蹤和識別,并對監控目標的行為進行分析和判斷。在智能監控的算法中,運動目標檢測是最基本的一步。運動目標檢測是指在監控畫面中檢測出變化區域并提取出運動目標。目前主流的運動目標檢測的方法有幀差法、光流法和背景減除法等。本文主要采用幀差法作為智能監控算法。
幀差法是在監控圖像中,相鄰兩幀對應位置上的像素進行差分,并通過閡值化檢測出圖像中的運動區域。首先,把前一幀圖像作為背景圖像,與前景圖像相減,隨后對結果進行二值化:背景亮度變化不大時,若差分后的像素值小于預先設定的閡值,可認為此處為背景像素;若差分后的像素值大于閡值,則認為此處有運動目標,將檢測到的區域標記為前景像素。通過標記,便可獲知運動目標在畫面中的位置。此方法的優點:相鄰兩幀的時間間隔較短,用前一幀圖像作為后一幀圖像的背景模型,有很好的實時性,背景不積累,更新速度快,算法計算量小;缺點:閡值選擇非常關鍵:過低,則不能抑制背景噪聲,容易將其誤判為運動目標;過高,則容易漏檢,將有用的運動信息忽略了。而且當運動目標面積較大或顏色一致時,幀差法容易在目標內部產生空洞,無法完整地提取運動目標。
模塊分析
在這一系統當中,主要存在著六個模塊,分別是視頻解碼模塊、網絡接口模塊、畫面顯示模塊、人機交互模塊、智能處理模塊、處理結果顯示模塊。在這六個模塊當中,視頻解碼和智能處理模塊主要是在服務器上進行實現的,其他模塊則在Android終端上進行實現。下面對在Android終端上進行實現的模塊進行簡要闡述。
①網絡接口模塊。對于HTTP,Android提供了三種HTTP通信接口,分別為標準Java接口()、APaehe接口(org.apache.http)、Android網絡接口(.http)。其中APache接口提供了非常豐富、高效的工具包。由于服務器發送的是解碼后的圖片數據,故而客戶端接收到的數據流可以組成一幅圖片。通過Android提供的BitmapFactory.decodeByteAITay()函數,可從接收到的數據流中得到Bitmap格式的對象。
②畫面顯示模塊。為了對畫面顯示進行有效的實現,需要繼承View類,重寫了onDraw()方法,其中,在onDraw()方法中所實現的內容,將在界面上顯示出來。定義一個Bitmap對象bmpl,此對象將在畫布中繪制出來(即界面顯示)。
③人機交互模塊。利用Alldroid平臺的支持多點觸的功能來實現。此模塊的任務為:通過手指的點觸,選擇感興趣的畫面,提取數據并通過網絡發送到服務器端。④處理結果顯示模塊。智能處理的結果必須要疊加在相應圖片上才能起到作用,所以畫面和處理結果的同步非常重要。
兩者經過了兩次HTTP通信,所以網絡的依賴性較大。本文保留了原始視頻的畫面,智能處理的結果只在處理區域顯示,故而服務器將處理結果和畫面分開發送。