国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實(shí)時(shí)視頻數(shù)據(jù)傳輸中接收端緩存區(qū)的設(shè)計(jì)

2010-07-13 06:01蓋曉娜陳名松曾欣旖
電子設(shè)計(jì)工程 2010年2期
關(guān)鍵詞:緩沖區(qū)接收端指針

蓋曉娜,陳名松,曾欣旖

(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)

Internet是人們學(xué)習(xí)、生活、工作中獲取和傳輸信息的重要途徑,而網(wǎng)絡(luò)應(yīng)用對(duì)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性提出更高要求,因此,需要新型高速的網(wǎng)絡(luò)協(xié)議支持。RTP/RTCP協(xié)議、RTSP協(xié)議、RSVP協(xié)議協(xié)同合作,共同完成網(wǎng)絡(luò)實(shí)時(shí)多媒體應(yīng)用的數(shù)據(jù)傳輸和控制、資源預(yù)留以及服務(wù)質(zhì)量保證等工作。其中RTP/RTCP協(xié)議是實(shí)時(shí)視頻傳輸重要的協(xié)議之一。實(shí)時(shí)視頻數(shù)據(jù)的傳輸過程中,如果接收端讀數(shù)據(jù)者和寫數(shù)據(jù)者的速度不同,則會(huì)造成讀寫負(fù)荷不均衡,導(dǎo)致數(shù)據(jù)丟失或系統(tǒng)出錯(cuò)。而緩沖技術(shù)可解決數(shù)據(jù)讀寫速率不一致的矛盾,提高實(shí)時(shí)傳輸系統(tǒng)的工作效率[1]。

1 RTP/RTCP協(xié)議

實(shí)時(shí)傳輸協(xié)議 RTP(Real-time Transport Protocol)是應(yīng)用于Internet上針對(duì)多媒體數(shù)據(jù)流的一種傳輸協(xié)議。RTP定義為在一對(duì)一或一對(duì)多的傳輸情況下工作,用于提供時(shí)間信息和實(shí)現(xiàn)流同步[2]。RTP協(xié)議采用應(yīng)用幀原理,只提供基本的協(xié)議框架,開發(fā)者可以針對(duì)具體應(yīng)用進(jìn)行擴(kuò)展。該協(xié)議位于UDP協(xié)議之上,在功能上獨(dú)立于其下面的傳輸層和網(wǎng)絡(luò)層,但不能單獨(dú)作為一個(gè)層次存在,通常是利用UDP協(xié)議對(duì)實(shí)時(shí)音視頻數(shù)據(jù)進(jìn)行組播或單播,從而實(shí)現(xiàn)多點(diǎn)或單點(diǎn)音視頻數(shù)據(jù)的傳輸。

實(shí)時(shí)傳輸控制協(xié)議RTCP(Real-time Control Protocol)是RTP協(xié)議的控制部分,用于擁塞控制和流控制。在RTP會(huì)話期間,會(huì)話中的每個(gè)用戶定期發(fā)送RTCP包反饋統(tǒng)計(jì)信息(如發(fā)包數(shù)、丟包數(shù)、時(shí)延等),發(fā)送方據(jù)此調(diào)節(jié)發(fā)送速率。RTP和RTCP配合使用,為音視頻數(shù)據(jù)的實(shí)時(shí)傳輸提供Qos保障[3]。

2 實(shí)時(shí)視頻傳輸系統(tǒng)的結(jié)構(gòu)

圖1是實(shí)時(shí)視頻傳輸系統(tǒng)的結(jié)構(gòu)框圖。視頻數(shù)據(jù)傳輸時(shí)的視頻幀較大,而RTP對(duì)所傳送報(bào)文的大小有限制,因此需對(duì)其進(jìn)行拆幀封裝。實(shí)際工作中,通常把1 KB作為視頻數(shù)據(jù)傳輸?shù)腗TU值,將大于MTU值的視頻數(shù)據(jù)進(jìn)行分割(即切幀)后封裝打包。發(fā)送端服務(wù)器將壓縮打包后的視頻數(shù)據(jù)按照RTP的報(bào)文格式裝入RTP報(bào)文的數(shù)據(jù)負(fù)載段,同時(shí)配置RTP報(bào)文頭部的時(shí)間戳、同步信息、序列號(hào)等重要參數(shù),此時(shí)的數(shù)據(jù)報(bào)已具有時(shí)間特征,即已被“流化”[4]。在UDP/TCP層,RTP報(bào)文作為負(fù)載數(shù)據(jù)裝入U(xiǎn)DP/TCP報(bào)文中,由IP層完成最后的報(bào)文頭部配置,實(shí)現(xiàn)網(wǎng)絡(luò)傳輸。

圖1 實(shí)時(shí)視頻傳輸系統(tǒng)的結(jié)構(gòu)

由于網(wǎng)絡(luò)是動(dòng)態(tài)變化的,各數(shù)據(jù)包的傳輸路徑不同,到達(dá)接收端的時(shí)間也不同,有可能后發(fā)送的先到達(dá)。所以接收端需重組視頻切幀,重組過程必須是對(duì)發(fā)送端的報(bào)文封裝和打包標(biāo)準(zhǔn)進(jìn)行逆變換。在重組過程中采取緩沖技術(shù)以減少延遲和抖動(dòng)的影響。接收端綜合RTP數(shù)據(jù)包和SR包計(jì)算出數(shù)據(jù)包的到達(dá)時(shí)延和丟失率,形成RTCP包(RR包)反饋給發(fā)送端,發(fā)送端根據(jù)RR包提供的網(wǎng)絡(luò)信息調(diào)整發(fā)送策略[5]。

3 實(shí)時(shí)緩沖區(qū)的設(shè)計(jì)與實(shí)現(xiàn)

在接收端采用環(huán)形緩沖區(qū)重組視頻幀。環(huán)形緩沖區(qū)通常有1個(gè)讀指針和1個(gè)寫指針。其中,讀指針指向環(huán)形緩沖區(qū)中可讀取的數(shù)據(jù),寫指針指向環(huán)形緩沖區(qū)中可寫入的緩沖區(qū)。通過移動(dòng)讀指針和寫指針實(shí)現(xiàn)緩沖區(qū)的數(shù)據(jù)讀取和寫入。通常情況下,環(huán)形緩沖區(qū)的讀寫指針同一時(shí)刻不會(huì)在同一內(nèi)存區(qū)操作,因此讀寫數(shù)據(jù)過程中不會(huì)出現(xiàn)因收到的報(bào)文無法及時(shí)寫入而丟棄的現(xiàn)象,無需采用互斥同步處理。但應(yīng)注意要對(duì)判定滿幀操作指針與寫線程操作之間進(jìn)行一些同步處理,因?yàn)橐曨l緩存區(qū)的讀線程中涉及到對(duì)視頻滿幀的判斷,有可能與寫線程發(fā)生沖突。但該同步處理不會(huì)影響緩存區(qū)的工作效率,因?yàn)榕卸M幀操作的時(shí)間比讀寫指針操作時(shí)間短。

如圖2所示,寫指針從時(shí)刻1寫入數(shù)據(jù),到時(shí)刻2儲(chǔ)存滿幀。滿幀判定指針從讀指針處開始,不斷循環(huán)判斷是否滿幀,具體判定方法如下:首先,分別設(shè)計(jì)視頻幀頭部起始和幀尾部分為4字節(jié)的0X00000000和4字節(jié)的0XFFFFFFFF,作為視頻數(shù)據(jù)開始和結(jié)束標(biāo)志。判定指針先判定讀指針后4字節(jié)是否為0X00000000,若是則判定為幀起始處,繼續(xù)讀2字節(jié)的數(shù)據(jù),可推算出該視頻幀的實(shí)際長度等于該數(shù)據(jù)減去16字節(jié)的幀頭幀尾。根據(jù)幀實(shí)際長度移動(dòng)判定指針到幀尾部,判定是否為0XFFFFFFFF。如果是則判定為滿幀,可直接從讀指針位置讀取視頻幀信息。在寫數(shù)據(jù)包中,如果接收到亂序數(shù)據(jù)包,則直接丟棄,同時(shí)寫指針返回到本幀起始位置。

圖2 環(huán)形視頻緩沖區(qū)

圖2中,如果在時(shí)刻3收到亂序報(bào)文,則直接丟棄該報(bào)文,寫指針返回時(shí)刻2,等到下一切幀的0報(bào)文到達(dá)后重新開始寫入。在寫指針到達(dá)緩沖區(qū)尾部時(shí)刻4時(shí),可繼續(xù)將剩余的視頻數(shù)據(jù)填充到緩沖區(qū)頭部,依此類推[6]緩沖區(qū)讀寫線程軟件流程如圖3所示。

圖3 緩沖區(qū)讀寫線程軟件流程

4 結(jié)束語

在通信程序中,環(huán)形緩沖區(qū)經(jīng)常被用作數(shù)據(jù)結(jié)構(gòu)來存放通信中發(fā)送和接收的數(shù)據(jù)。其讀寫指針在同一時(shí)刻不會(huì)操作于同一內(nèi)存區(qū),無需采用互斥同步處理,環(huán)形緩沖區(qū)可有效利用存儲(chǔ)器空間,在實(shí)時(shí)傳輸中具有重要作用。

[1]黃毅封.支持阻塞和非阻塞模型且線程安全的環(huán)形緩沖的設(shè)計(jì)與實(shí)現(xiàn)—環(huán)形緩沖,攻克高級(jí)緩沖技術(shù)的關(guān)鍵[J].電腦編程技巧與維護(hù),2003(11):2-3.

[2]Colin Perkins.RTP:audio and video for the internet[M].New york:Addison,2003.

[3]Schulzrinne H, Casner S,F(xiàn)rederick R,et al.VRTP:a transport protocol for real-time applications[J].RFC 1889,1996(1):256-258.

[4]李燕嶺,馬瑞芳,左 力.基于RTP/RTCP的實(shí)時(shí)視頻數(shù)據(jù)傳輸模型及實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2005,23(8):138-142.

[5]許花榮,李名世.基于RTP的實(shí)時(shí)視頻傳輸系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(4):876-878

[6]陳 鋒.基于VOIP的PDA可視電話終端的設(shè)計(jì)與實(shí)現(xiàn)[D].桂林:桂林電子科技大學(xué),2009.

猜你喜歡
緩沖區(qū)接收端指針
基于擾動(dòng)觀察法的光通信接收端優(yōu)化策略
頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
一種設(shè)置在密閉結(jié)構(gòu)中的無線電能傳輸系統(tǒng)
基于多接收線圈的無線電能傳輸系統(tǒng)優(yōu)化研究
基于網(wǎng)絡(luò)聚類與自適應(yīng)概率的數(shù)據(jù)庫緩沖區(qū)替換*
為什么表的指針都按照順時(shí)針方向轉(zhuǎn)動(dòng)
關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
初涉緩沖區(qū)
ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
南京市| 安乡县| 西乌珠穆沁旗| 彰化市| 都江堰市| 云安县| 晋中市| 庆阳市| 庄河市| 城口县| 内丘县| 洛宁县| 大姚县| 花莲县| 黑龙江省| 周口市| 怀集县| 卢氏县| 新野县| 泰宁县| 醴陵市| 丹凤县| 沙坪坝区| 翁源县| 靖江市| 托里县| 寿光市| 吐鲁番市| 泸州市| 安图县| 新宾| 潼南县| 邳州市| 扶风县| 浮梁县| 安顺市| 高邮市| 湖南省| 毕节市| 浪卡子县| 浮山县|