專利名稱:一種基于mimo-ofdm系統(tǒng)的實(shí)時(shí)視頻傳輸?shù)膶?shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于MIMO-OF匿系統(tǒng)的實(shí)時(shí)視頻傳輸?shù)膶?shí)現(xiàn)方法,屬于視頻傳輸 技術(shù)領(lǐng)域。
背景技術(shù):
MIMO-OFDM系統(tǒng)是多輸入多輸出正交頻分復(fù)用系統(tǒng)的英文縮寫(xiě)。隨著現(xiàn)代科學(xué)技 術(shù)的蓬勃發(fā)展,用戶對(duì)各種無(wú)線業(yè)務(wù)的需求越來(lái)越多,從而提高數(shù)據(jù)傳輸速率的任務(wù)迫在 眉睫。近年來(lái),為了滿足用戶的這一需求,通信系統(tǒng)先后經(jīng)歷了單輸入單輸出(SISO)、單 輸入多輸出(SMO)、多輸入單輸出(MISO)技術(shù)的發(fā)展后,直到1998年,MMO通信系統(tǒng)以 其高速的傳輸速率以及減輕多徑衰落、消除共道干擾、減少發(fā)射功率等多種性能而備受?chē)?guó) 內(nèi)外著名研究機(jī)構(gòu)和學(xué)者們的青睞,但目前尚未發(fā)現(xiàn)基于多輸入多輸出正交頻分復(fù)用系統(tǒng) (MIMO-OFDM)的實(shí)時(shí)視頻傳輸?shù)脑O(shè)計(jì)方法。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于MIMO-OFDM系統(tǒng)的實(shí)時(shí)視頻傳輸?shù)脑O(shè) 計(jì)方法。 —種基于MIMO-OF匿系統(tǒng)的實(shí)時(shí)視頻傳輸設(shè)備,所述的實(shí)時(shí)視頻傳輸設(shè)備包括服
務(wù)器端計(jì)算機(jī)、客戶端計(jì)算機(jī)、攝像頭以及用于MMO-OF匿系統(tǒng)的開(kāi)發(fā)板,其中服務(wù)器端計(jì)
算機(jī)與攝像頭連接,服務(wù)器端及客戶端上都裝有用于MMO-OFmi系統(tǒng)的開(kāi)發(fā)板。 所述的開(kāi)發(fā)板是由寫(xiě)入程序的FPGA V4芯片為核心的電路板。 —種基于MIMO-OF匿系統(tǒng)的實(shí)時(shí)視頻傳輸?shù)膶?shí)現(xiàn)方法,包括視頻傳輸服務(wù)器端和
視頻傳輸客戶端的實(shí)現(xiàn)方法,視頻傳輸服務(wù)器端的實(shí)現(xiàn)方法如下 1)初始化視頻采集模塊、視頻壓縮模塊、視頻數(shù)據(jù)包和隨機(jī)序列包以及固定序列 包形成模塊、計(jì)算機(jī)同硬件間傳送數(shù)據(jù)模塊;
2)設(shè)定視頻捕捉頻率;
3)選擇壓縮方式; 4)設(shè)定視頻數(shù)據(jù)包和隨機(jī)序列包以及固定序列包緩沖區(qū)的大小為1024字節(jié);
5)設(shè)定計(jì)算機(jī)同硬件間傳送數(shù)據(jù)緩沖區(qū)的大小為1024*100字節(jié);
6)打開(kāi)MIMO-OFDM硬件系統(tǒng)并使系統(tǒng)復(fù)位; 7)開(kāi)啟視頻數(shù)據(jù)壓縮任務(wù)、視頻數(shù)據(jù)包和隨機(jī)序列數(shù)據(jù)包以及固定序列數(shù)據(jù)包形 成任務(wù)、計(jì)算機(jī)同硬件間傳送數(shù)據(jù)任務(wù); 上述每個(gè)任務(wù)是一個(gè)獨(dú)立運(yùn)行的線程,程序開(kāi)始運(yùn)行時(shí),設(shè)置線程為掛起狀態(tài);當(dāng)
用戶需要各任務(wù)進(jìn)行工作時(shí),用戶通過(guò)用戶界面程序中開(kāi)啟任務(wù)的按鈕設(shè)置線程為執(zhí)行狀
態(tài),此時(shí)各任務(wù)開(kāi)始工作; 視頻數(shù)據(jù)壓縮任務(wù)的執(zhí)行流程是 (1)開(kāi)始;
(2)是否有視頻數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,等待;
(3)用所選用的壓縮方式對(duì)視頻數(shù)據(jù)進(jìn)行壓縮; 視頻數(shù)據(jù)包和隨機(jī)序列數(shù)據(jù)包以及固定序列數(shù)據(jù)包形成任務(wù)的執(zhí)行流程是
(1)開(kāi)始; (2)是否有壓縮后視頻數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(4); (3)根據(jù)硬件需求,將壓縮后視頻幀分割成大小為1024字節(jié)的數(shù)據(jù)包,并在每個(gè)
包的包頭加上控制信息,該控制信息指明該包為視頻數(shù)據(jù)包;將數(shù)據(jù)包存儲(chǔ)到計(jì)算機(jī)同硬
件間傳送數(shù)據(jù)緩沖區(qū)中;如果緩沖區(qū)沒(méi)有空閑存儲(chǔ)區(qū),則覆蓋最近填充的數(shù)據(jù); (4)將固定序列分割成大小為1024字節(jié)的數(shù)據(jù)包,并在包頭加上控制信息,該控
制信息指明該包為固定序列數(shù)據(jù)包;將數(shù)據(jù)包存儲(chǔ)到計(jì)算機(jī)同硬件間傳送數(shù)據(jù)緩沖區(qū)中;
如果緩沖區(qū)沒(méi)有空閑存儲(chǔ)區(qū),丟棄數(shù)據(jù);轉(zhuǎn)到(2); 計(jì)算機(jī)同硬件間傳送數(shù)據(jù)任務(wù)的執(zhí)行流程是 (1)開(kāi)始; (2)是否有準(zhǔn)備傳送的數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,等待;
(3)將計(jì)算機(jī)中準(zhǔn)備傳送的數(shù)據(jù)傳送到硬件系統(tǒng)中; (4)判斷數(shù)據(jù)是否傳送完?如果是,轉(zhuǎn)到(2)等待下一個(gè)數(shù)據(jù)包;如果否,轉(zhuǎn)到 (3),繼續(xù)傳送; 視頻傳輸客戶端的實(shí)現(xiàn)方法如下 1)初始化查找視頻數(shù)據(jù)模塊和固定序列數(shù)據(jù)模塊、視頻幀組裝模塊、視頻解壓和 顯示模塊; 2)設(shè)定視頻數(shù)據(jù)模塊和固定序列數(shù)據(jù)模塊循環(huán)隊(duì)列緩沖區(qū)大小為1024*14字節(jié);
3)設(shè)定視頻幀組裝模塊緩沖區(qū)大小為1024*24字節(jié);
4)打開(kāi)MMO-OFDM硬件系統(tǒng)并使系統(tǒng)復(fù)位; 5)開(kāi)啟數(shù)據(jù)接收任務(wù)以及查找視頻數(shù)據(jù)和固定序列數(shù)據(jù)任務(wù)、視頻幀組裝任務(wù)以 及視頻解壓和顯示任務(wù)、固定序列分析系統(tǒng)性能任務(wù); 上述每個(gè)任務(wù)是一個(gè)獨(dú)立運(yùn)行的線程,程序開(kāi)始運(yùn)行時(shí),設(shè)置線程為掛起狀態(tài);當(dāng) 用戶需要各任務(wù)進(jìn)行工作時(shí),用戶通過(guò)用戶界面程序中開(kāi)啟任務(wù)的按鈕設(shè)置線程為執(zhí)行狀 態(tài),此時(shí)各任務(wù)開(kāi)始進(jìn)行工作; 數(shù)據(jù)接收任務(wù)以及查找視頻數(shù)據(jù)和固定序列數(shù)據(jù)任務(wù)的執(zhí)行流程如下
(1)開(kāi)始; (2)等待是否有數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,等待; (3)是否是所發(fā)送數(shù)據(jù)包?如果是,轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(2); (4)根據(jù)包頭信息判斷該數(shù)據(jù)包是視頻數(shù)據(jù)包還是固定序列數(shù)據(jù)包或者隨機(jī)序列
數(shù)據(jù)包?如果是視頻數(shù)據(jù)包,轉(zhuǎn)到下一步;如果是固定序列數(shù)據(jù)包,轉(zhuǎn)到(6);如果是隨機(jī)
序列數(shù)據(jù)包,將數(shù)據(jù)丟棄;轉(zhuǎn)到(2); (5)檢測(cè)視頻數(shù)據(jù)循環(huán)隊(duì)列緩沖區(qū)是否有空的隊(duì)列存放視頻數(shù)據(jù)?如果有,將視 頻數(shù)據(jù)存到視頻數(shù)據(jù)隊(duì)列;如果沒(méi)有,將數(shù)據(jù)丟棄;轉(zhuǎn)到(2); (6)固定序列循環(huán)隊(duì)列緩沖區(qū)是否有空的隊(duì)列存放固定序列數(shù)據(jù)?如果有,將固 定序列數(shù)據(jù)存儲(chǔ)到固定序列數(shù)據(jù)隊(duì)列;如果沒(méi)有,將數(shù)據(jù)丟棄;轉(zhuǎn)到(2);
視頻幀組裝任務(wù)以及視頻解壓和顯示任務(wù)流程如下
(1)開(kāi)始; (2)判斷視頻數(shù)據(jù)循環(huán)隊(duì)列緩沖區(qū)是否有數(shù)據(jù);
(3)若有數(shù)據(jù),保存數(shù)據(jù),轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(2);
(4)幀是否開(kāi)始?如果是,轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(6);
(5)幀是否完整?如果是,轉(zhuǎn)到(9);否則,轉(zhuǎn)到(2);
(6)尋找?guī)_(kāi)始標(biāo)志; (7)是否有幀開(kāi)始標(biāo)志?如果有,轉(zhuǎn)到(5);如果沒(méi)有,轉(zhuǎn)到下一步;
(8)保留視頻幀緩沖區(qū)最后三個(gè)字節(jié)數(shù)據(jù),轉(zhuǎn)到(2);
(9)將視頻幀復(fù)制到譯碼緩沖區(qū);
(10)該幀緩沖區(qū)狀態(tài)復(fù)位;
(11)譯碼顯示; (12)將該幀數(shù)據(jù)后面數(shù)據(jù)復(fù)制到緩沖區(qū)區(qū)首,轉(zhuǎn)到(6);
固定序列分析系統(tǒng)性能任務(wù)流程如下
(1)開(kāi)始; (2)等待固定序列數(shù)據(jù)循環(huán)隊(duì)列緩沖區(qū)是否有數(shù)據(jù); (3)若有數(shù)據(jù),保存數(shù)據(jù),轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(2); (4)同接收端保存的固定序列數(shù)據(jù)比較,對(duì)系統(tǒng)的各種性能進(jìn)行分析; (5)轉(zhuǎn)到(2)。 本發(fā)明的服務(wù)器端和客戶端程序可以通過(guò)MM0-0F匿硬件系統(tǒng)實(shí)時(shí)的傳輸視頻。 不僅能夠顯示傳輸?shù)囊曨l數(shù)據(jù),而且可以利用傳輸?shù)囊曨l數(shù)據(jù)空暇時(shí)間傳輸固定數(shù)據(jù)序 列,從而能夠在客戶端對(duì)該系統(tǒng)其他的性能進(jìn)行分析,比如分析系統(tǒng)的誤碼率、顯示星座 圖。特別地,當(dāng)算法研究人員在驗(yàn)證自己的算法的時(shí)候,可以通過(guò)真實(shí)的信道環(huán)境并結(jié)合上 述應(yīng)用程序的系統(tǒng)性能部分,來(lái)驗(yàn)證自己的算法,相比之下,要比單獨(dú)用Matlab仿真,更具 有可靠性。 該系統(tǒng)包括服務(wù)器端視頻數(shù)據(jù)的采集、計(jì)算機(jī)同F(xiàn)PGA硬件系統(tǒng)間數(shù)據(jù)傳遞以及 視頻數(shù)據(jù)的無(wú)線傳輸和客戶端的視頻顯示等過(guò)程。服務(wù)器端首先將采集到的視頻數(shù)據(jù)按照 設(shè)定的壓縮標(biāo)準(zhǔn)進(jìn)行壓縮,形成視頻數(shù)據(jù)的幀序列。為了適應(yīng)硬件系統(tǒng)的要求,每個(gè)視頻數(shù) 據(jù)幀都被切割成較小的視頻數(shù)據(jù)包,再加上相應(yīng)的控制信息,通過(guò)硬件系統(tǒng)發(fā)送到客戶端。 由于硬件系統(tǒng)具有較高的數(shù)據(jù)傳輸速率,使得連續(xù)兩個(gè)視頻數(shù)據(jù)包間會(huì)插入一些和視頻數(shù) 據(jù)幀無(wú)關(guān)的隨機(jī)序列數(shù)據(jù)包或者固定序列數(shù)據(jù)包,因此在客戶端通過(guò)硬件系統(tǒng)接收到服務(wù) 器端發(fā)送的數(shù)據(jù)包后,根據(jù)包中的控制信息進(jìn)行數(shù)據(jù)的分離,隨機(jī)序列包丟棄,固定序列數(shù) 據(jù)包用來(lái)對(duì)系統(tǒng)的性能進(jìn)行分析,而視頻數(shù)據(jù)包則用來(lái)組裝視頻幀,檢測(cè)到接收了一個(gè)完 整的視頻數(shù)據(jù)幀后,便對(duì)該視頻數(shù)據(jù)幀進(jìn)行譯碼和顯示。 由于硬件系統(tǒng)的不穩(wěn)定性,特別是通過(guò)無(wú)線傳輸?shù)囊曨l數(shù)據(jù),不可避免會(huì)發(fā)生誤 碼。目前由于軟硬件的局限性以及為了保證視頻數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,在客戶端,當(dāng)檢測(cè)到不 可恢復(fù)的錯(cuò)誤時(shí),客戶端會(huì)將該幀的整個(gè)數(shù)據(jù)丟掉,從而兼顧了視頻的實(shí)時(shí)性和圖像的流 暢性,但同時(shí)也以犧牲圖像的清晰度為代價(jià)。
圖1為本發(fā)明的結(jié)構(gòu)框圖。 圖2是本發(fā)明的軟件流程圖。 圖3為服務(wù)器端視頻數(shù)據(jù)壓縮任務(wù)流程圖。 圖4視頻數(shù)據(jù)包和隨機(jī)序列數(shù)據(jù)包以及固定序列數(shù)據(jù)包形成任務(wù)的流程圖。 圖5計(jì)算機(jī)同硬件間傳送數(shù)據(jù)任務(wù)的流程圖。 圖6為客戶端數(shù)據(jù)接收任務(wù)以及查找視頻數(shù)據(jù)和固定序列數(shù)據(jù)任務(wù)流程圖。 圖7為客戶端視頻幀組裝任務(wù)以及視頻解壓和顯示任務(wù)流程圖。 其中,1、攝像頭,2、服務(wù)器端計(jì)算機(jī),3、MIM0-0FDM實(shí)時(shí)系統(tǒng),4、客戶端計(jì)算機(jī)。
具體實(shí)施方案 下面將結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方案做進(jìn)一步的詳細(xì)說(shuō)明。 圖1是對(duì)該發(fā)明的總體結(jié)構(gòu)框圖。主要分為四部分?jǐn)z像頭、服務(wù)器端、MIMO-OFDM
實(shí)時(shí)傳輸系統(tǒng)和客戶端。其中,攝像頭用來(lái)捕捉視頻數(shù)據(jù)。服務(wù)器端用來(lái)對(duì)發(fā)送的數(shù)據(jù)進(jìn)
行處理。MIMO-OFDM用來(lái)通過(guò)無(wú)線系統(tǒng)傳輸視頻數(shù)據(jù)??蛻舳擞脕?lái)對(duì)接收到的視頻數(shù)據(jù)進(jìn)
行處理并顯示視頻。 圖2是本發(fā)明的軟件流程圖。主要分為兩部分服務(wù)器端和客戶端。其中,服 務(wù)器端完成視頻的采集、視頻壓縮、視頻數(shù)據(jù)包形成、固定數(shù)據(jù)包形成以及將數(shù)據(jù)傳遞給 MIMO-OFDM系統(tǒng)。為了在接收端能夠方便的提取出一幀,提出下圖所示的格式組建視頻幀。
幀開(kāi)始標(biāo)志幀大小幀編號(hào)幀類型幀數(shù)據(jù) 各字段的意義如下幀開(kāi)始標(biāo)志,標(biāo)志著一幀的開(kāi)始,占用4個(gè)字節(jié)的空間,在本 發(fā)明中,采用的是0x0001 ;幀大小,表示整個(gè)幀的大小,占用4個(gè)字節(jié)的空間;幀編號(hào),表示 發(fā)送端所發(fā)送的幀的序號(hào),占用一個(gè)字節(jié)的空間;幀類型,標(biāo)志此幀是否是關(guān)鍵幀,占用一 個(gè)字節(jié)的空間;幀數(shù)據(jù),存放壓縮后一個(gè)幀的完整數(shù)據(jù)。 由于硬件系統(tǒng)的需求,一個(gè)大的視頻幀需要分為多個(gè)小的數(shù)據(jù)包,分別加上控制
信息進(jìn)行傳輸。以下圖所示的格式組建視頻數(shù)據(jù)包。
包頭信息包的總數(shù)包的序號(hào)校驗(yàn)信息包中所包含的數(shù)據(jù) 各字段的意義如下包頭信息,包含了此包是視頻數(shù)據(jù)包還是固定序列數(shù)據(jù)包的 判斷信息,占用四個(gè)字節(jié)的空間;包的總數(shù),表示該視頻幀數(shù)據(jù)或固定序列數(shù)據(jù)所能夠組成 的包的個(gè)數(shù),占用一個(gè)字節(jié)的空間;包的序號(hào),對(duì)組成的每個(gè)包數(shù)據(jù)加上序號(hào),占用一個(gè)字 節(jié)的空間;校驗(yàn)信息,該包中所包含數(shù)據(jù)的奇偶校驗(yàn)信息,占用一個(gè)字節(jié)的空間;包中所包 含的數(shù)據(jù),表示已經(jīng)分割的視頻幀的數(shù)據(jù)或者固定序列的數(shù)據(jù)。
圖3是服務(wù)器端視頻數(shù)據(jù)壓縮任務(wù)流程圖。 圖4是視頻數(shù)據(jù)包和隨機(jī)序列數(shù)據(jù)包以及固定序列數(shù)據(jù)包形成任務(wù)的流程圖。 圖5計(jì)算機(jī)同硬件間傳送數(shù)據(jù)任務(wù)的流程圖。實(shí)時(shí)視頻傳輸為了達(dá)到實(shí)時(shí)效果,
需要不斷的將壓縮好的數(shù)據(jù)發(fā)送到客戶端,所以服務(wù)器端采用了多線程的技術(shù),該發(fā)送線程同視頻采集和視頻壓縮等線程來(lái)切割CPU的時(shí)間片來(lái)完成相應(yīng)的功能,從而提高了程序 的執(zhí)行效率。 圖6是客戶端接收數(shù)據(jù)線程的流程圖。該部分也是采用了多線程的技術(shù)。在該任 務(wù)中,完成了從MM0-0F匿系統(tǒng)接收數(shù)據(jù),并將數(shù)據(jù)包按照包頭信息分為是視頻數(shù)據(jù)包還 是固定序列數(shù)據(jù)包的功能。 圖7是客戶端組裝視頻幀以及解壓和顯示視頻的流程圖。該部分為接收端最重要 的部分。完成的功能是從視頻數(shù)據(jù)流中提取出完整的一幀數(shù)據(jù),然后進(jìn)行解壓和顯示。該 方法的思想是首先從視頻流中尋找?guī)拈_(kāi)始標(biāo)志,再?gòu)暮竺娴臄?shù)據(jù)中提取出幀的大小,然 后從視頻數(shù)據(jù)流中讀入該幀剩余的數(shù)據(jù),直到提取出完整的一幀。然后再尋找下一幀的開(kāi) 始標(biāo)志,如此往復(fù)。
權(quán)利要求
一種基于MIMO-OFDM系統(tǒng)的實(shí)時(shí)視頻傳輸設(shè)備,所述的實(shí)時(shí)視頻傳輸設(shè)備包括服務(wù)器端計(jì)算機(jī)、客戶端計(jì)算機(jī)、攝像頭以及用于MIMO-OFDM系統(tǒng)的開(kāi)發(fā)板,其中服務(wù)器端計(jì)算機(jī)與攝像頭連接,其特征在于,服務(wù)器端及客戶端上都裝有用于MIMO-OFDM系統(tǒng)的開(kāi)發(fā)板。
2. 如權(quán)利要求1所述的一種基于MIM0-0FDM系統(tǒng)的實(shí)時(shí)視頻傳輸設(shè)備,其特征在于,所 述的開(kāi)發(fā)板是由寫(xiě)入程序的FPGA V4芯片為核心的電路板。
3. —種基于MM0-0F匿系統(tǒng)的實(shí)時(shí)視頻傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,包括視頻傳輸 服務(wù)器端和視頻傳輸客戶端的實(shí)現(xiàn)方法,視頻傳輸服務(wù)器端的實(shí)現(xiàn)方法如下1) 初始化視頻采集模塊、視頻壓縮模塊、視頻數(shù)據(jù)包和隨機(jī)序列包以及固定序列包形 成模塊、計(jì)算機(jī)同硬件間傳送數(shù)據(jù)模塊;2) 設(shè)定視頻捕捉頻率;3) 選擇壓縮方式;4) 設(shè)定視頻數(shù)據(jù)包和隨機(jī)序列包以及固定序列包緩沖區(qū)的大小為1024字節(jié);5) 設(shè)定計(jì)算機(jī)同硬件間傳送數(shù)據(jù)緩沖區(qū)的大小為1024*100字節(jié);6) 打開(kāi)MM0-0F匿硬件系統(tǒng)并使系統(tǒng)復(fù)位;7) 開(kāi)啟視頻數(shù)據(jù)壓縮任務(wù)、視頻數(shù)據(jù)包和隨機(jī)序列數(shù)據(jù)包以及固定序列數(shù)據(jù)包形成任務(wù)、計(jì)算機(jī)同硬件間傳送數(shù)據(jù)任務(wù);上述每個(gè)任務(wù)是一個(gè)獨(dú)立運(yùn)行的線程,程序開(kāi)始運(yùn)行時(shí),設(shè)置線程為掛起狀態(tài);當(dāng)用戶需要各任務(wù)進(jìn)行工作時(shí),用戶通過(guò)用戶界面程序中開(kāi)啟任務(wù)的按鈕設(shè)置線程為執(zhí)行狀態(tài), 此時(shí)各任務(wù)開(kāi)始工作;視頻數(shù)據(jù)壓縮任務(wù)的執(zhí)行流程是(1) 開(kāi)始;(2) 是否有視頻數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,等待;(3) 用所選用的壓縮方式對(duì)視頻數(shù)據(jù)進(jìn)行壓縮;視頻數(shù)據(jù)包和隨機(jī)序列數(shù)據(jù)包以及固定序列數(shù)據(jù)包形成任務(wù)的執(zhí)行流程是(1) 開(kāi)始;(2) 是否有壓縮后視頻數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(4);(3) 根據(jù)硬件需求,將壓縮后視頻幀分割成大小為1024字節(jié)的數(shù)據(jù)包,并在每個(gè)包的 包頭加上控制信息,該控制信息指明該包為視頻數(shù)據(jù)包;將數(shù)據(jù)包存儲(chǔ)到計(jì)算機(jī)同硬件間 傳送數(shù)據(jù)緩沖區(qū)中;如果緩沖區(qū)沒(méi)有空閑存儲(chǔ)區(qū),則覆蓋最近填充的數(shù)據(jù);(4) 將固定序列分割成大小為1024字節(jié)的數(shù)據(jù)包,并在包頭加上控制信息,該控制信 息指明該包為固定序列數(shù)據(jù)包;將數(shù)據(jù)包存儲(chǔ)到計(jì)算機(jī)同硬件間傳送數(shù)據(jù)緩沖區(qū)中;如果 緩沖區(qū)沒(méi)有空閑存儲(chǔ)區(qū),丟棄數(shù)據(jù);轉(zhuǎn)到(2);計(jì)算機(jī)同硬件間傳送數(shù)據(jù)任務(wù)的執(zhí)行流程是(1) 開(kāi)始;(2) 是否有準(zhǔn)備傳送的數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,等待;(3) 將計(jì)算機(jī)中準(zhǔn)備傳送的數(shù)據(jù)傳送到硬件系統(tǒng)中;(4) 判斷數(shù)據(jù)是否傳送完?如果是,轉(zhuǎn)到(2)等待下一個(gè)數(shù)據(jù)包;如果否,轉(zhuǎn)到(3),繼 續(xù)傳送;視頻傳輸客戶端的實(shí)現(xiàn)方法如下1) 初始化查找視頻數(shù)據(jù)模塊和固定序列數(shù)據(jù)模塊、視頻幀組裝模塊、視頻解壓和顯示 模塊;2) 設(shè)定視頻數(shù)據(jù)模塊和固定序列數(shù)據(jù)模塊循環(huán)隊(duì)列緩沖區(qū)大小為1024*14字節(jié);3) 設(shè)定視頻幀組裝模塊緩沖區(qū)大小為1024*24字節(jié);4) 打開(kāi)MM0-0F匿硬件系統(tǒng)并使系統(tǒng)復(fù)位;5) 開(kāi)啟數(shù)據(jù)接收任務(wù)以及查找視頻數(shù)據(jù)和固定序列數(shù)據(jù)任務(wù)、視頻幀組裝任務(wù)以及視頻解壓和顯示任務(wù)、固定序列分析系統(tǒng)性能任務(wù);上述每個(gè)任務(wù)是一個(gè)獨(dú)立運(yùn)行的線程,程序開(kāi)始運(yùn)行時(shí),設(shè)置線程為掛起狀態(tài);當(dāng)用戶需要各任務(wù)進(jìn)行工作時(shí),用戶通過(guò)用戶界面程序中開(kāi)啟任務(wù)的按鈕設(shè)置線程為執(zhí)行狀態(tài), 此時(shí)各任務(wù)開(kāi)始進(jìn)行工作;數(shù)據(jù)接收任務(wù)以及查找視頻數(shù)據(jù)和固定序列數(shù)據(jù)任務(wù)的執(zhí)行流程如下(1) 開(kāi)始;(2) 等待是否有數(shù)據(jù)?如果有,轉(zhuǎn)到下一步;否則,等待;(3) 是否是所發(fā)送數(shù)據(jù)包?如果是,轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(2);(4) 根據(jù)包頭信息判斷該數(shù)據(jù)包是視頻數(shù)據(jù)包還是固定序列數(shù)據(jù)包或者隨機(jī)序列數(shù)據(jù) 包?如果是視頻數(shù)據(jù)包,轉(zhuǎn)到下一步;如果是固定序列數(shù)據(jù)包,轉(zhuǎn)到(6);如果是隨機(jī)序列 數(shù)據(jù)包,將數(shù)據(jù)丟棄;轉(zhuǎn)到(2);(5) 檢測(cè)視頻數(shù)據(jù)循環(huán)隊(duì)列緩沖區(qū)是否有空的隊(duì)列存放視頻數(shù)據(jù)?如果有,將視頻數(shù) 據(jù)存到視頻數(shù)據(jù)隊(duì)列;如果沒(méi)有,將數(shù)據(jù)丟棄;轉(zhuǎn)到(2);(6) 固定序列循環(huán)隊(duì)列緩沖區(qū)是否有空的隊(duì)列存放固定序列數(shù)據(jù)?如果有,將固定序 列數(shù)據(jù)存儲(chǔ)到固定序列數(shù)據(jù)隊(duì)列;如果沒(méi)有,將數(shù)據(jù)丟棄;轉(zhuǎn)到(2);視頻幀組裝任務(wù)以及視頻解壓和顯示任務(wù)流程如下(1) 開(kāi)始;(2) 判斷視頻數(shù)據(jù)循環(huán)隊(duì)列緩沖區(qū)是否有數(shù)據(jù);(3) 若有數(shù)據(jù),保存數(shù)據(jù),轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(2);(4) 幀是否開(kāi)始?如果是,轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(6);(5) 幀是否完整?如果是,轉(zhuǎn)到(9);否則,轉(zhuǎn)到(2);(6) 尋找?guī)_(kāi)始標(biāo)志;(7) 是否有幀開(kāi)始標(biāo)志?如果有,轉(zhuǎn)到(5);如果沒(méi)有,轉(zhuǎn)到下一步;(8) 保留視頻幀緩沖區(qū)最后三個(gè)字節(jié)數(shù)據(jù),轉(zhuǎn)到(2);(9) 將視頻幀復(fù)制到譯碼緩沖區(qū);(10) 該幀緩沖區(qū)狀態(tài)復(fù)位;(11) 譯碼顯示;(12) 將該幀數(shù)據(jù)后面數(shù)據(jù)復(fù)制到緩沖區(qū)區(qū)首,轉(zhuǎn)到(6); 固定序列分析系統(tǒng)性能任務(wù)流程如下(1) 開(kāi)始;(2) 等待固定序列數(shù)據(jù)循環(huán)隊(duì)列緩沖區(qū)是否有數(shù)據(jù);(3) 若有數(shù)據(jù),保存數(shù)據(jù),轉(zhuǎn)到下一步;否則,轉(zhuǎn)到(2);(4) 同接收端保存的固定序列數(shù)據(jù)比較,對(duì)系統(tǒng)的各種性能進(jìn)行分析;(5)轉(zhuǎn)到(2)。
全文摘要
一種基于MIMO-OFDM系統(tǒng)的實(shí)時(shí)視頻傳輸?shù)膶?shí)現(xiàn)方法,實(shí)時(shí)視頻傳輸設(shè)備包括服務(wù)器端計(jì)算機(jī)、客戶端計(jì)算機(jī)、攝像頭以及用于MIMO-OFDM系統(tǒng)的開(kāi)發(fā)板,其中服務(wù)器端計(jì)算機(jī)與攝像頭連接,服務(wù)器端及客戶端上都裝有用于MIMO-OFDM系統(tǒng)的開(kāi)發(fā)板。開(kāi)發(fā)板是由寫(xiě)入程序的FPGA V4芯片為核心的電路板。實(shí)時(shí)視頻傳輸?shù)膶?shí)現(xiàn)方法,包括視頻傳輸服務(wù)器端和視頻傳輸客戶端的實(shí)現(xiàn)方法。本發(fā)明的服務(wù)器端和客戶端程序可以通過(guò)MIMO-OFDM硬件系統(tǒng)實(shí)時(shí)的傳輸視頻。不僅能夠顯示傳輸?shù)囊曨l數(shù)據(jù),而且可以利用傳輸?shù)囊曨l數(shù)據(jù)空暇時(shí)間傳輸固定數(shù)據(jù)序列,從而能夠在客戶端對(duì)該系統(tǒng)其他的性能進(jìn)行分析,比如分析系統(tǒng)的誤碼率、顯示星座圖。
文檔編號(hào)H04L27/26GK101729879SQ200910231499
公開(kāi)日2010年6月9日 申請(qǐng)日期2009年12月15日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者劉朝娜, 孫健, 岑楠, 徐超, 王鳳菊, 王恒, 袁東風(fēng), 賈會(huì)超 申請(qǐng)人:山東大學(xué)