基于DSP和CDMA 2000的實(shí)時(shí)視頻無線傳輸系統(tǒng)設(shè)計(jì)
摘要:為了實(shí)現(xiàn)基于TMS320DM365編碼的實(shí)時(shí)視頻流通過CDMA2000 EVDO網(wǎng)絡(luò)傳輸后能夠流暢播放的功能,同時(shí)緩解視頻傳輸延遲和馬賽克現(xiàn)象,文中通過對(duì)CDMA2000 EVDO網(wǎng)絡(luò)傳輸過程中數(shù)據(jù)丟包率和時(shí)間抖動(dòng)等參數(shù)的分析和論證,提出了在視頻編碼發(fā)送端進(jìn)行速率整形以適應(yīng)網(wǎng)絡(luò)帶寬的方法。該方法主要是在視頻數(shù)據(jù)編碼完成后,通過CDMA2000 EVDO網(wǎng)絡(luò)發(fā)送時(shí),對(duì)發(fā)送數(shù)據(jù)的速率做出了兩次平滑調(diào)整。其結(jié)果表明,該方法能有效的改善傳輸視頻的質(zhì)量,提升視頻的流暢性。
本文引用地址:http://cafeforensic.com/article/249695.htm現(xiàn)有CDMA2000 EVDO網(wǎng)絡(luò)的帶寬完全可以滿足經(jīng)過壓縮編碼后的實(shí)時(shí)視頻數(shù)據(jù)的傳輸,但由于視頻監(jiān)控領(lǐng)域?qū)崟r(shí)性的要求,須采用UDP/ IP協(xié)議,它是面向非連接的,不可靠的傳輸服務(wù);同時(shí),CDMA2000 EVDO網(wǎng)絡(luò)自身具有波動(dòng)性比較大、誤碼率高、傳輸延遲等諸多特點(diǎn);經(jīng)過傳輸?shù)囊曨l通常會(huì)出現(xiàn)延遲大,出現(xiàn)馬賽克等質(zhì)量問題。因此,有必要對(duì)CDMA2000 EVDO網(wǎng)絡(luò)的特性進(jìn)行有效評(píng)估,來指導(dǎo)視頻編碼發(fā)送端視頻流的動(dòng)態(tài)調(diào)節(jié),從而達(dá)到降低丟包率,實(shí)現(xiàn)視頻流暢播放的目的。
筆者依據(jù)CDMA2000 EVDO網(wǎng)絡(luò)的諸多特點(diǎn)和參考RTP協(xié)議來制定出評(píng)估CDMA2000 EVDO網(wǎng)絡(luò)特性的相關(guān)參數(shù),再經(jīng)過大量的實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)、分析和論證,得出該網(wǎng)絡(luò)的特性。提出了在視頻編碼發(fā)送端進(jìn)行速率整形以匹配網(wǎng)絡(luò)帶寬的策略,并利用TMS320DM365的開發(fā)平臺(tái),對(duì)經(jīng)過H.264編碼的視頻流進(jìn)行了實(shí)時(shí)傳輸?shù)臏y(cè)試。
1 CDMA2000 EVDO網(wǎng)絡(luò)特性參數(shù)分析
相比有線網(wǎng)路,CDMA2000 EVDO網(wǎng)絡(luò)具有一定的特殊性,因此衡量其網(wǎng)絡(luò)特性也就相對(duì)比較復(fù)雜。這里主要依據(jù)RTP(real—time proto eol)協(xié)議RFC3550給出部分參數(shù),諸如丟包率、時(shí)間抖動(dòng);同時(shí),從視頻傳輸?shù)慕嵌榷x部分與網(wǎng)絡(luò)特性相關(guān)的參數(shù),以下給出解釋。
1)丟包間隔
丟包間隔=當(dāng)前包序列號(hào)-前一次包的序列號(hào)
丟包的間隔用來衡量網(wǎng)絡(luò)實(shí)時(shí)的狀態(tài),正常情況下丟包間隔應(yīng)該為1,而丟包間隔越大,也就說明數(shù)據(jù)包丟失的越厲害。
2)數(shù)據(jù)流量
數(shù)據(jù)流量=收到的包個(gè)數(shù)/收到的時(shí)間間隔
對(duì)于數(shù)據(jù)流量的統(tǒng)計(jì)可以說明網(wǎng)絡(luò)的帶寬狀況,實(shí)時(shí)反映了傳輸速率。這里,可以把時(shí)間間隔作為恒定參量,來統(tǒng)計(jì)收到的數(shù)據(jù)包數(shù),或者把收到的數(shù)據(jù)包數(shù)作為恒定參量,來統(tǒng)計(jì)時(shí)間間隔,而該文主要采用了后一種辦法。
對(duì)于網(wǎng)絡(luò)特性參數(shù)的測(cè)試,可以利用依據(jù)RTP協(xié)議編寫的函數(shù)庫(kù)jrtplib-3.7.1和jrtpthread-1.2.1,該函數(shù)庫(kù)具有很好的兼容性,可以在多種操作系統(tǒng)中應(yīng)用。這里主要將其應(yīng)用在基于達(dá)芬奇架構(gòu)的TMS320DM365開發(fā)平臺(tái)上和VC2008開發(fā)軟件中。
2 CDMA2000 EVDO網(wǎng)絡(luò)測(cè)試數(shù)據(jù)分析
2.1 實(shí)驗(yàn)硬件平臺(tái)
客戶端:TMS320DM365開發(fā)平臺(tái)+CDMA2000 EVDO模塊(MC8630)
服務(wù)器:VC2008開發(fā)軟件和有線網(wǎng)絡(luò)
2.2 實(shí)驗(yàn)數(shù)據(jù)測(cè)試
測(cè)試條件:在同一時(shí)間段內(nèi)進(jìn)行連續(xù)測(cè)量,數(shù)據(jù)流量為每收到100個(gè)數(shù)據(jù)包計(jì)算一次,時(shí)間抖動(dòng)為每?jī)蓚€(gè)數(shù)據(jù)包計(jì)算一次,丟包率為收到數(shù)據(jù)包后每5 s計(jì)算一次,數(shù)據(jù)包大小為1 kB。
1)網(wǎng)絡(luò)傳輸數(shù)據(jù)的實(shí)時(shí)統(tǒng)計(jì)分析,如圖1至圖4所示。其中圖1和圖2是在平均數(shù)據(jù)流量為86.3 kB/s的條件下測(cè)試所得,圖3和圖4是在平均數(shù)據(jù)流量為32.6 kB/s的條件下測(cè)試所得。
從圖1和圖2可以看出,時(shí)間抖動(dòng)和丟包間隔是同步變化的,而且時(shí)間抖動(dòng)比較劇烈,數(shù)據(jù)包丟失的也較多。
從圖3和圖4可以看出,時(shí)間抖動(dòng)變化比較緩和,丟失的數(shù)據(jù)包也相對(duì)較少。
2)網(wǎng)絡(luò)傳輸數(shù)據(jù)的整體對(duì)比,如表1所示。
從表1中可以看出,網(wǎng)絡(luò)傳輸過程中的平均數(shù)據(jù)流量越高,平均時(shí)間抖動(dòng)就越大,平均丟包率也越高。而當(dāng)平均數(shù)據(jù)流量降至32.6 kB/s時(shí),平均丟包率已經(jīng)降至1%以下。
綜合以上實(shí)驗(yàn)數(shù)據(jù),可以得出如下結(jié)論:發(fā)送數(shù)據(jù)速率(即數(shù)據(jù)流量)是決定CDMA2000 EVDO網(wǎng)絡(luò)傳輸特性的關(guān)鍵因素。而且,當(dāng)前網(wǎng)絡(luò)帶寬一定的前提下,發(fā)送數(shù)據(jù)速率越高,時(shí)間抖動(dòng)就越大,丟包率就越高;反之亦然。
3 基于TMS320DM365平臺(tái)的速率整形
3.1 TMS320DM365平臺(tái)的硬件編碼特性分析
TMS320DM365是TI的DaVinci系列的雙核處理器,采用DSP進(jìn)行硬件視頻編碼,將輸入的BT.656格式的視頻流編碼為標(biāo)準(zhǔn)的H.264碼流輸出,該碼流會(huì)伴隨著I幀或P幀的產(chǎn)生而出現(xiàn)頻繁的數(shù)據(jù)抖動(dòng)。而根據(jù)以上實(shí)驗(yàn)總結(jié)的CDMA2000EVDO網(wǎng)絡(luò)的傳輸特性,當(dāng)這種抖動(dòng)的碼流直接通過網(wǎng)絡(luò)傳輸?shù)臅r(shí)候,一旦瞬時(shí)碼流超過網(wǎng)絡(luò)所能承受的帶寬,將會(huì)面臨很高的丟包率。實(shí)驗(yàn)證明,這種情況下,碼流的丟包會(huì)達(dá)到60%以上,時(shí)間抖動(dòng)也會(huì)超過10000(單位是RTP時(shí)間戳單位)。因此,有必要對(duì)該碼流進(jìn)行速率整形,使其平滑后再通過CDMA2000 EVDO網(wǎng)絡(luò)傳輸。
3.2 H.264碼流速率整形參數(shù)分析
TMS320DM365開發(fā)平臺(tái)上控制輸出碼流大小的參數(shù)主要有幀率、GOP、圖像質(zhì)量和圖像格式。其中,對(duì)碼流速率整形起著重要作用的參數(shù)是幀率和COP。幀率,決定著視頻圖像的播放速率。幀率越高,其圖像幀之間的間隔就越小,編碼后的數(shù)據(jù)速率就越大。GOP,是指圖像組,即每組圖像中包含多少個(gè)P幀和I幀。這兩個(gè)參數(shù)共同決定了編碼后輸出的H.264碼流的數(shù)據(jù)速率和I幀的時(shí)間間隔。于是,可以應(yīng)用這組參數(shù)對(duì)需要傳輸?shù)拇a流予以速率整形。
3.3 速率整形的實(shí)現(xiàn)過程
該過程如圖5所示,其主要實(shí)現(xiàn)兩個(gè)部分的功能。
1)發(fā)送時(shí)間間隔的初步估計(jì),主要是利用兩個(gè)或多個(gè)I幀之間的時(shí)間間隔除以統(tǒng)計(jì)的包數(shù),得到平均時(shí)間來作為發(fā)送的時(shí)間間隔。但是,考慮到在不同視頻模式切換的過程中,會(huì)產(chǎn)生時(shí)間突變,這樣,得到的時(shí)間間隔就不夠精確,從而引起發(fā)送數(shù)據(jù)量的突變,使得模式切換時(shí)過度不夠平滑。所以,需要進(jìn)一步修正時(shí)間間隔。
2)修正時(shí)間間隔主要依賴于發(fā)送緩沖區(qū)中暫存的數(shù)據(jù)量。首先為發(fā)送緩沖區(qū)中的暫存數(shù)據(jù)量設(shè)定上下限Min_buf和Max_buf;然后對(duì)該數(shù)據(jù)量進(jìn)行判斷,當(dāng)數(shù)據(jù)量處于Min_buf和Max_buf之間時(shí),說明發(fā)送數(shù)據(jù)正常,就可以使用初步估計(jì)的時(shí)間間隔;當(dāng)數(shù)據(jù)量低于下限Min_buf時(shí),說明發(fā)送數(shù)據(jù)的速率過快,就需要將初步估計(jì)的時(shí)間延時(shí),以降低發(fā)送速率,從而使緩沖區(qū)里的數(shù)據(jù)量恢復(fù)到正常范圍,反之,當(dāng)數(shù)據(jù)量高于上限Max_buf時(shí),則需要縮短初步估計(jì)的時(shí)間。
3.4 速率整形結(jié)果測(cè)試和分析
經(jīng)過初步速率整形之后,對(duì)視頻編碼發(fā)送端的數(shù)據(jù)速率進(jìn)行測(cè)試。
測(cè)試條件為:圖像格式CIF,幀率15 f/s,GOP=15,圖像質(zhì)量為A。
測(cè)試結(jié)果如圖6所示。
c語言相關(guān)文章:c語言教程
cdma相關(guān)文章:cdma原理
評(píng)論