視頻數據采集軟件論文
時間:2022-08-02 03:24:00
導語:視頻數據采集軟件論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
【摘要】介紹了視頻數據的采集、多路視頻數據間的切換、視頻數據的保存及基于C/S結構的實時視頻數據傳輸與顯示,在對四路飛行視頻數據進行實時采集的運行時,各項需求已達到要求
多路視頻數據實時采集的軟件實現
常永亮(飛行試驗研究院測試所陜西西安710089)
【摘要】介紹了視頻數據的采集、多路視頻數據間的切換、視頻數據的保存及基于C/S結構的實時視頻數據傳輸與顯示,在對四路飛行視頻數據進行實時采集的運行時,各項需求已達到要求。
【關鍵詞】視頻數據、Divx編碼、RTP/RTCP協議、TCP/UDP協議、媒體流、幀
1引言
隨著信息技術的不斷發展,人們將計算機技術引入視頻采集、視頻處理領域,用計算機處理視頻信息和用數字傳輸視頻數據在很多領域已有廣泛的應用,在我們的飛機試飛中也被大量的應用。
視頻圖像采集的方法較多,基本可分為2大類:數字信號采集和模擬信號采集。前者采用圖像采集芯片組完成圖像的采集、幀存儲器地址生成以及圖像數據的刷新;除了要對采集模式進行設定外,主處理器不參與采集過程,我們只要在相應的幀存儲器地址取出采集到的視頻數據即可得到相應的視頻數據,這種方法,無論在功能、性能、可靠性、速度等各方面都得到了顯著的提高,但成本高。后者采用通用視頻A/D轉換器實現圖像的采集,其特點是數據采集占用CPU的時間,對處理器的速度要求高,成本低、易于實現,能夠滿足某些圖像采集系統的需要。
此系統要求每秒采最大25幀(設為可調),客戶端實時顯示最大25幀(設為可調),保存為MPEG4格式,畫面要求為最大分辯率為1024X768。
多路視頻實時采集使用的是VisionRGB-PRO卡(英國Datapath公司),此卡可同時實時采集兩路視頻數據,基本達到了本系統的要求,再用一臺VGA矩陣切換器將前端數據源的四路視頻數據進行人為切換采集。
2硬件環境的構建(硬件框架)
圖一系統硬件框架圖
上圖為整個采集系統的硬件框架。
此采集系統主要實現對前端四路視頻數據的人為切換式實時采集,在服務器端可同時采集和儲存兩路視頻數據(在此只用一個視頻采集卡),也可以一次只采集一路視頻數據,再經網絡實時傳輸到客戶端顯示,服務器端也實時顯示所采集的視頻。
在進行視頻切換方面可在服務器端或客戶端自行切換,在服務器端可通過串行口操作VGA矩陣切換進行相應的視頻輸入輸出口的切換,在客戶端可通過網絡-服務器程序相應模塊-串行口-VGA矩陣切換進行相應的視頻輸入輸出口的切換。
3軟件實現概述
3.1服務器端的實現
圖二服務器端程序流程圖
上圖為服務器端實時采集視頻的程序流程圖。視頻數據量較大,這就要求視頻數據處理系統具有實時采集,大容量存儲和實時處理的特點。在服務器端的實現是整個系統的關鍵,在此也承擔了大量的工作,因此對軟件和硬件方面要求也很高就成為必然。
軟件要實現對視頻數據的實時采集(最多兩路)、控制視頻接口、把視頻數據實時編碼保存并發送到多個客戶端。以上就是要在服務器上實現的主要功能。
在采集方面最主要的是要有實時性,在此以事件驅動的方法從端口獲取數據,采集到視頻數據流在桌面顯示的同時再編碼保存,視頻采集的數據要經軟件的相應模塊將其設為位圖型式的視頻幀,以利于在服務器端的顯示和編碼保存,在此采用Divx編碼,Divx編碼后形成以幀為格式的MPEG4流。Divx解碼也是以幀的格式解壓,因此有利于向客戶端發送數據時以幀為單位發送視頻數據流。
此處用到Divx編碼就不得不把Divx編碼作簡要的介紹。
DivX由DivXNetworks公司開發的,即為我們通常所說的DVDrip格式,它采用了MPEG4的壓縮算法同時又綜合了MPEG-4與MP3各方面的技術,也就是使用DivX壓縮技術對DVD盤片的視頻圖像進行高質量壓縮,同時用MP3或AC3對音頻進行壓縮,然后再將視頻與音頻合成并加上相應的外掛字幕文件而形成的視頻格式。其畫質直逼DVD并且體積只有DVD的數分之一。這種編碼對機器的要求也不高,所以DivX視頻編碼技術可以說是一種對DVD造成威脅最大的新生視頻壓縮格式,實際上Divx=(視頻)MPEG4+(音頻)MP3。
媒體流分為四個流:視頻流、音頻流、文本流、MIDI流,用視頻卡采集的是兩路視頻流,保存時每路視頻流多加了一個文本流,文本流主要應客戶要求加入的服務器時間和一些人為輸入的文本信息,在記錄兩個媒體流時一般有兩種記錄方法,在此采用的是將視頻流和文本流記到一個文件中的方式,這樣有利于文件以后的保存和查閱。
在采集軟件實現方面主要應用了相應的SDK(Softwaredevelopmentkit)和API(應用編程接口),還可用VFW(VideoforWindows)。但后一種方法實現簡單單路視頻采集卡可以,對于多路視頻的采集用第一種方法更加靈活,但實現比第二種復雜的多。在服務器實現軟件方面主要有以下幾大塊:一是采集;二是保存;三是向客戶端發送;四是串口的通行;五圖像的形成;六是桌面顯示;七是對圖像亮度、顏色、位置等的調整;采集通道、采樣率、采集時間的選擇;等等。
在服務器端各方面協調工作是關鍵,程序啟動首先默認上次設定的視頻采集卡通道,如有視頻數據就顯示、保存,如果沒有視頻數據就等待,如果要調整視頻采集卡通道可用串口給VGA矩陣切換器發送相應的命令讓VGA矩陣切換器進行相應的輸入輸出通道切換。也可經客戶端經網絡到服務器串口到VGA矩陣切換器進行VGA矩陣切換器相應的輸入輸出通道切換(在后面介紹客戶端時再介紹)。每次切換后將自動保存原視頻文件,如切換后有視頻數據將自動重新生成一個新的視頻文件。
在服務器桌面顯示的畫面是沒經任何編碼處理的,但網絡傳輸和保存的視頻數據是經Divx編碼的,這樣有力的減輕了網絡間傳輸和服務器的負擔。
用局域網實時傳輸視頻數據已在一些領域大量的應用,局域網以有線局域網居多,因為有線局域網技術成熟、傳輸速度快,但是長時間傳輸大量視頻數據時也會引起傳輸速率不穩定,引起數據堵塞,會導致視頻傳輸的質量大幅度下降,容易引起畫面的重影、抖動、花屏、延遲等現象。
為了在局域網上有效的、高質量的實時傳輸媒體流,需要多種技術的支持,包括網絡傳輸層協議的選擇、編(解)碼技術,網絡傳輸層質量控制技術等等。
實時傳輸協議RTP是針對Internet上多媒體數據流的一個傳輸協議,實時傳輸控制協議RTCP負責管理傳輸質量在當前應用進程之間交換控制信息,RTP/RTCP協議只適合服務器端和客戶端相對動態的實時多媒體數據流傳輸。但是,對于圖像采集速度固定的實時視頻采集,有時會引起采集的數據來不及壓縮而直接丟棄而達不到實時的要求,所以沒有采用RTP/RTCP協議,而是從發送端出發,實時判斷網絡狀況,采用暫停發送的控制策略進行實時傳輸。
網絡傳輸層質量控制技術采用的是TCP/UDP協議,UDP是一種不可靠的、無連接的協議,UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環境。它不提供檢錯和糾錯功能,一旦網絡出現堵塞時,大量的數據報文會丟失。對于Divx編解碼技術,是以幀為單位進行編解碼的,分為關鍵幀和非關鍵幀。在傳輸過程中,由于壓縮率比較高,只要一幀中錯一比特位,將影響其后的更多的比特位,直接造成圖像的模糊、花屏等現象。只有等到下一次關鍵幀的到來才有可能恢復圖像的清晰。為了保證傳輸的正確性,自己需要在應用層制定協議。如此一來,只能選擇使用TCP來進行網絡通信,TCP的目的是提供可靠的數據傳輸,并在相互進行通信的設備或服務之間保持一個虛擬連接。TCP在數據包接收無序、丟失或在交付期間被破壞時,負責數據恢復。它通過為其發送的每個數據包提供一個序號來完成此恢復。再輔助以暫停發送的控制策略,較好的解決局域網中實時視頻傳輸容易引起的重影、抖動、花屏的問題。
為了達到視頻傳輸的實時性,總的思想是最少的發送冗余信息,最大程度上發送最新的視頻。
在服務器端視頻采集采用從VisionRGB視頻采集卡捕獲視頻圖像,得到的是位圖型式的視頻幀,然后用Divx編碼進行壓縮,通過Winsock實現壓縮后的視頻數據在局域網中的實時傳輸,在客戶端接收完的數據交給Divx解碼器解壓,最后實現視頻顯示。如圖三所示:
圖三網絡間傳輸流程圖
如果局域網通信速率很高且狀態穩定,則進行實時視頻傳輸就可以達到非常好的效果。但是在網絡出現異常時會導致數據傳輸率不穩定或明顯下降,造成發送端數據積壓。此時就要采取一定的策略來控制發送端(服務器端),以達到實時性的要求,暫停發送策略很好的解決了這一現象。使用此策略有時會有丟幀的現象(100M局域網沒有發現丟幀現象),但就客戶端的要求是滿足的,在服務器端的采集、顯示、保存不受暫停發送策略的影響,也就是不會有丟幀的現象,雖然應用了暫停發送策略,但已經能夠滿足在客戶端實時監控需求了。
3.2客戶端的實現
在上面講服務器端的實現時已經大概講到客戶端的實現,因為只要把服務器端實現好客戶端實現難點就小的多。如圖四所示:
圖四客戶端程序流程圖
在客戶端也可以自行選擇要采集的通道,但對服務器端的采樣率等都不能通過客戶端進行設置,實現客戶端時主要是要實時監聽和服務器網絡連接狀態和判斷接受的視頻數據是否正常是否啟用暫停發送策略等。每秒接收的幀數可自行調節,但不能大于服務器端每秒采集的幀數。
在客戶端還要實時Divx解碼,如果不解碼就無法顯示,Divx解碼速度是完全可以達到實時顯示的要求。Divx解碼和顯示在不同的兩個線程中實現的,這樣做主要是為了顯示流暢。可以在兩個不同客戶端顯示兩個不同的視頻通道采集的數據。
4結論
本系統作為電視跟蹤系統的一部分,負責多路視頻數據的實時采集、存儲和視頻編解碼算法的實現、基于C/S結構的實時視頻數據傳輸顯示,在通過各種測試后在試運行期間已達到本系統的預期要求,本系統還支持事后的視頻回放。
本系統的開發難點和重點在服務器端,服務器端的開發直接影響到整個系統開發。
參考文獻
[1]《Windows核心編程》Microsoft公司〔美〕著
[2]《Windows多媒體編程基礎》作者:張靜,梁澍編
[3]《Windows網絡編程》Microsoft公司〔美〕著
- 上一篇:網絡安全技術概述論文
- 下一篇:數據繪圖處理軟件設計論文