視頻數(shù)據(jù)采集軟件論文

時間:2022-08-02 03:24:00

導(dǎo)語:視頻數(shù)據(jù)采集軟件論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

視頻數(shù)據(jù)采集軟件論文

【摘要】介紹了視頻數(shù)據(jù)的采集、多路視頻數(shù)據(jù)間的切換、視頻數(shù)據(jù)的保存及基于C/S結(jié)構(gòu)的實時視頻數(shù)據(jù)傳輸與顯示,在對四路飛行視頻數(shù)據(jù)進(jìn)行實時采集的運行時,各項需求已達(dá)到要求

多路視頻數(shù)據(jù)實時采集的軟件實現(xiàn)

常永亮(飛行試驗研究院測試所陜西西安710089)

【摘要】介紹了視頻數(shù)據(jù)的采集、多路視頻數(shù)據(jù)間的切換、視頻數(shù)據(jù)的保存及基于C/S結(jié)構(gòu)的實時視頻數(shù)據(jù)傳輸與顯示,在對四路飛行視頻數(shù)據(jù)進(jìn)行實時采集的運行時,各項需求已達(dá)到要求。

【關(guān)鍵詞】視頻數(shù)據(jù)、Divx編碼、RTP/RTCP協(xié)議、TCP/UDP協(xié)議、媒體流、幀

1引言

隨著信息技術(shù)的不斷發(fā)展,人們將計算機技術(shù)引入視頻采集、視頻處理領(lǐng)域,用計算機處理視頻信息和用數(shù)字傳輸視頻數(shù)據(jù)在很多領(lǐng)域已有廣泛的應(yīng)用,在我們的飛機試飛中也被大量的應(yīng)用。

視頻圖像采集的方法較多,基本可分為2大類:數(shù)字信號采集和模擬信號采集。前者采用圖像采集芯片組完成圖像的采集、幀存儲器地址生成以及圖像數(shù)據(jù)的刷新;除了要對采集模式進(jìn)行設(shè)定外,主處理器不參與采集過程,我們只要在相應(yīng)的幀存儲器地址取出采集到的視頻數(shù)據(jù)即可得到相應(yīng)的視頻數(shù)據(jù),這種方法,無論在功能、性能、可靠性、速度等各方面都得到了顯著的提高,但成本高。后者采用通用視頻A/D轉(zhuǎn)換器實現(xiàn)圖像的采集,其特點是數(shù)據(jù)采集占用CPU的時間,對處理器的速度要求高,成本低、易于實現(xiàn),能夠滿足某些圖像采集系統(tǒng)的需要。

此系統(tǒng)要求每秒采最大25幀(設(shè)為可調(diào)),客戶端實時顯示最大25幀(設(shè)為可調(diào)),保存為MPEG4格式,畫面要求為最大分辯率為1024X768。

多路視頻實時采集使用的是VisionRGB-PRO卡(英國Datapath公司),此卡可同時實時采集兩路視頻數(shù)據(jù),基本達(dá)到了本系統(tǒng)的要求,再用一臺VGA矩陣切換器將前端數(shù)據(jù)源的四路視頻數(shù)據(jù)進(jìn)行人為切換采集。

2硬件環(huán)境的構(gòu)建(硬件框架)

圖一系統(tǒng)硬件框架圖

上圖為整個采集系統(tǒng)的硬件框架。

此采集系統(tǒng)主要實現(xiàn)對前端四路視頻數(shù)據(jù)的人為切換式實時采集,在服務(wù)器端可同時采集和儲存兩路視頻數(shù)據(jù)(在此只用一個視頻采集卡),也可以一次只采集一路視頻數(shù)據(jù),再經(jīng)網(wǎng)絡(luò)實時傳輸?shù)娇蛻舳孙@示,服務(wù)器端也實時顯示所采集的視頻。

在進(jìn)行視頻切換方面可在服務(wù)器端或客戶端自行切換,在服務(wù)器端可通過串行口操作VGA矩陣切換進(jìn)行相應(yīng)的視頻輸入輸出口的切換,在客戶端可通過網(wǎng)絡(luò)-服務(wù)器程序相應(yīng)模塊-串行口-VGA矩陣切換進(jìn)行相應(yīng)的視頻輸入輸出口的切換。

3軟件實現(xiàn)概述

3.1服務(wù)器端的實現(xiàn)

圖二服務(wù)器端程序流程圖

上圖為服務(wù)器端實時采集視頻的程序流程圖。視頻數(shù)據(jù)量較大,這就要求視頻數(shù)據(jù)處理系統(tǒng)具有實時采集,大容量存儲和實時處理的特點。在服務(wù)器端的實現(xiàn)是整個系統(tǒng)的關(guān)鍵,在此也承擔(dān)了大量的工作,因此對軟件和硬件方面要求也很高就成為必然。

軟件要實現(xiàn)對視頻數(shù)據(jù)的實時采集(最多兩路)、控制視頻接口、把視頻數(shù)據(jù)實時編碼保存并發(fā)送到多個客戶端。以上就是要在服務(wù)器上實現(xiàn)的主要功能。

在采集方面最主要的是要有實時性,在此以事件驅(qū)動的方法從端口獲取數(shù)據(jù),采集到視頻數(shù)據(jù)流在桌面顯示的同時再編碼保存,視頻采集的數(shù)據(jù)要經(jīng)軟件的相應(yīng)模塊將其設(shè)為位圖型式的視頻幀,以利于在服務(wù)器端的顯示和編碼保存,在此采用Divx編碼,Divx編碼后形成以幀為格式的MPEG4流。Divx解碼也是以幀的格式解壓,因此有利于向客戶端發(fā)送數(shù)據(jù)時以幀為單位發(fā)送視頻數(shù)據(jù)流。

此處用到Divx編碼就不得不把Divx編碼作簡要的介紹。

DivX由DivXNetworks公司開發(fā)的,即為我們通常所說的DVDrip格式,它采用了MPEG4的壓縮算法同時又綜合了MPEG-4與MP3各方面的技術(shù),也就是使用DivX壓縮技術(shù)對DVD盤片的視頻圖像進(jìn)行高質(zhì)量壓縮,同時用MP3或AC3對音頻進(jìn)行壓縮,然后再將視頻與音頻合成并加上相應(yīng)的外掛字幕文件而形成的視頻格式。其畫質(zhì)直逼DVD并且體積只有DVD的數(shù)分之一。這種編碼對機器的要求也不高,所以DivX視頻編碼技術(shù)可以說是一種對DVD造成威脅最大的新生視頻壓縮格式,實際上Divx=(視頻)MPEG4+(音頻)MP3。

媒體流分為四個流:視頻流、音頻流、文本流、MIDI流,用視頻卡采集的是兩路視頻流,保存時每路視頻流多加了一個文本流,文本流主要應(yīng)客戶要求加入的服務(wù)器時間和一些人為輸入的文本信息,在記錄兩個媒體流時一般有兩種記錄方法,在此采用的是將視頻流和文本流記到一個文件中的方式,這樣有利于文件以后的保存和查閱。

在采集軟件實現(xiàn)方面主要應(yīng)用了相應(yīng)的SDK(Softwaredevelopmentkit)和API(應(yīng)用編程接口),還可用VFW(VideoforWindows)。但后一種方法實現(xiàn)簡單單路視頻采集卡可以,對于多路視頻的采集用第一種方法更加靈活,但實現(xiàn)比第二種復(fù)雜的多。在服務(wù)器實現(xiàn)軟件方面主要有以下幾大塊:一是采集;二是保存;三是向客戶端發(fā)送;四是串口的通行;五圖像的形成;六是桌面顯示;七是對圖像亮度、顏色、位置等的調(diào)整;采集通道、采樣率、采集時間的選擇;等等。

在服務(wù)器端各方面協(xié)調(diào)工作是關(guān)鍵,程序啟動首先默認(rèn)上次設(shè)定的視頻采集卡通道,如有視頻數(shù)據(jù)就顯示、保存,如果沒有視頻數(shù)據(jù)就等待,如果要調(diào)整視頻采集卡通道可用串口給VGA矩陣切換器發(fā)送相應(yīng)的命令讓VGA矩陣切換器進(jìn)行相應(yīng)的輸入輸出通道切換。也可經(jīng)客戶端經(jīng)網(wǎng)絡(luò)到服務(wù)器串口到VGA矩陣切換器進(jìn)行VGA矩陣切換器相應(yīng)的輸入輸出通道切換(在后面介紹客戶端時再介紹)。每次切換后將自動保存原視頻文件,如切換后有視頻數(shù)據(jù)將自動重新生成一個新的視頻文件。

在服務(wù)器桌面顯示的畫面是沒經(jīng)任何編碼處理的,但網(wǎng)絡(luò)傳輸和保存的視頻數(shù)據(jù)是經(jīng)Divx編碼的,這樣有力的減輕了網(wǎng)絡(luò)間傳輸和服務(wù)器的負(fù)擔(dān)。

用局域網(wǎng)實時傳輸視頻數(shù)據(jù)已在一些領(lǐng)域大量的應(yīng)用,局域網(wǎng)以有線局域網(wǎng)居多,因為有線局域網(wǎng)技術(shù)成熟、傳輸速度快,但是長時間傳輸大量視頻數(shù)據(jù)時也會引起傳輸速率不穩(wěn)定,引起數(shù)據(jù)堵塞,會導(dǎo)致視頻傳輸?shù)馁|(zhì)量大幅度下降,容易引起畫面的重影、抖動、花屏、延遲等現(xiàn)象。

為了在局域網(wǎng)上有效的、高質(zhì)量的實時傳輸媒體流,需要多種技術(shù)的支持,包括網(wǎng)絡(luò)傳輸層協(xié)議的選擇、編(解)碼技術(shù),網(wǎng)絡(luò)傳輸層質(zhì)量控制技術(shù)等等。

實時傳輸協(xié)議RTP是針對Internet上多媒體數(shù)據(jù)流的一個傳輸協(xié)議,實時傳輸控制協(xié)議RTCP負(fù)責(zé)管理傳輸質(zhì)量在當(dāng)前應(yīng)用進(jìn)程之間交換控制信息,RTP/RTCP協(xié)議只適合服務(wù)器端和客戶端相對動態(tài)的實時多媒體數(shù)據(jù)流傳輸。但是,對于圖像采集速度固定的實時視頻采集,有時會引起采集的數(shù)據(jù)來不及壓縮而直接丟棄而達(dá)不到實時的要求,所以沒有采用RTP/RTCP協(xié)議,而是從發(fā)送端出發(fā),實時判斷網(wǎng)絡(luò)狀況,采用暫停發(fā)送的控制策略進(jìn)行實時傳輸。

網(wǎng)絡(luò)傳輸層質(zhì)量控制技術(shù)采用的是TCP/UDP協(xié)議,UDP是一種不可靠的、無連接的協(xié)議,UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境。它不提供檢錯和糾錯功能,一旦網(wǎng)絡(luò)出現(xiàn)堵塞時,大量的數(shù)據(jù)報文會丟失。對于Divx編解碼技術(shù),是以幀為單位進(jìn)行編解碼的,分為關(guān)鍵幀和非關(guān)鍵幀。在傳輸過程中,由于壓縮率比較高,只要一幀中錯一比特位,將影響其后的更多的比特位,直接造成圖像的模糊、花屏等現(xiàn)象。只有等到下一次關(guān)鍵幀的到來才有可能恢復(fù)圖像的清晰。為了保證傳輸?shù)恼_性,自己需要在應(yīng)用層制定協(xié)議。如此一來,只能選擇使用TCP來進(jìn)行網(wǎng)絡(luò)通信,TCP的目的是提供可靠的數(shù)據(jù)傳輸,并在相互進(jìn)行通信的設(shè)備或服務(wù)之間保持一個虛擬連接。TCP在數(shù)據(jù)包接收無序、丟失或在交付期間被破壞時,負(fù)責(zé)數(shù)據(jù)恢復(fù)。它通過為其發(fā)送的每個數(shù)據(jù)包提供一個序號來完成此恢復(fù)。再輔助以暫停發(fā)送的控制策略,較好的解決局域網(wǎng)中實時視頻傳輸容易引起的重影、抖動、花屏的問題。

為了達(dá)到視頻傳輸?shù)膶崟r性,總的思想是最少的發(fā)送冗余信息,最大程度上發(fā)送最新的視頻。

在服務(wù)器端視頻采集采用從VisionRGB視頻采集卡捕獲視頻圖像,得到的是位圖型式的視頻幀,然后用Divx編碼進(jìn)行壓縮,通過Winsock實現(xiàn)壓縮后的視頻數(shù)據(jù)在局域網(wǎng)中的實時傳輸,在客戶端接收完的數(shù)據(jù)交給Divx解碼器解壓,最后實現(xiàn)視頻顯示。如圖三所示:

圖三網(wǎng)絡(luò)間傳輸流程圖

如果局域網(wǎng)通信速率很高且狀態(tài)穩(wěn)定,則進(jìn)行實時視頻傳輸就可以達(dá)到非常好的效果。但是在網(wǎng)絡(luò)出現(xiàn)異常時會導(dǎo)致數(shù)據(jù)傳輸率不穩(wěn)定或明顯下降,造成發(fā)送端數(shù)據(jù)積壓。此時就要采取一定的策略來控制發(fā)送端(服務(wù)器端),以達(dá)到實時性的要求,暫停發(fā)送策略很好的解決了這一現(xiàn)象。使用此策略有時會有丟幀的現(xiàn)象(100M局域網(wǎng)沒有發(fā)現(xiàn)丟幀現(xiàn)象),但就客戶端的要求是滿足的,在服務(wù)器端的采集、顯示、保存不受暫停發(fā)送策略的影響,也就是不會有丟幀的現(xiàn)象,雖然應(yīng)用了暫停發(fā)送策略,但已經(jīng)能夠滿足在客戶端實時監(jiān)控需求了。

3.2客戶端的實現(xiàn)

在上面講服務(wù)器端的實現(xiàn)時已經(jīng)大概講到客戶端的實現(xiàn),因為只要把服務(wù)器端實現(xiàn)好客戶端實現(xiàn)難點就小的多。如圖四所示:

圖四客戶端程序流程圖

在客戶端也可以自行選擇要采集的通道,但對服務(wù)器端的采樣率等都不能通過客戶端進(jìn)行設(shè)置,實現(xiàn)客戶端時主要是要實時監(jiān)聽和服務(wù)器網(wǎng)絡(luò)連接狀態(tài)和判斷接受的視頻數(shù)據(jù)是否正常是否啟用暫停發(fā)送策略等。每秒接收的幀數(shù)可自行調(diào)節(jié),但不能大于服務(wù)器端每秒采集的幀數(shù)。

在客戶端還要實時Divx解碼,如果不解碼就無法顯示,Divx解碼速度是完全可以達(dá)到實時顯示的要求。Divx解碼和顯示在不同的兩個線程中實現(xiàn)的,這樣做主要是為了顯示流暢??梢栽趦蓚€不同客戶端顯示兩個不同的視頻通道采集的數(shù)據(jù)。

4結(jié)論

本系統(tǒng)作為電視跟蹤系統(tǒng)的一部分,負(fù)責(zé)多路視頻數(shù)據(jù)的實時采集、存儲和視頻編解碼算法的實現(xiàn)、基于C/S結(jié)構(gòu)的實時視頻數(shù)據(jù)傳輸顯示,在通過各種測試后在試運行期間已達(dá)到本系統(tǒng)的預(yù)期要求,本系統(tǒng)還支持事后的視頻回放。

本系統(tǒng)的開發(fā)難點和重點在服務(wù)器端,服務(wù)器端的開發(fā)直接影響到整個系統(tǒng)開發(fā)。

參考文獻(xiàn)

[1]《Windows核心編程》Microsoft公司〔美〕著

[2]《Windows多媒體編程基礎(chǔ)》作者:張靜,梁澍編

[3]《Windows網(wǎng)絡(luò)編程》Microsoft公司〔美〕著