欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種動態(tài)調(diào)整FEC冗余度的流媒體傳輸方法與流程

文檔序號:11147249閱讀:2384來源:國知局
一種動態(tài)調(diào)整FEC冗余度的流媒體傳輸方法與制造工藝

本發(fā)明涉及流媒體技術(shù)領(lǐng)域,具體涉及一種動態(tài)調(diào)整FEC冗余度的流媒體傳輸方法。



背景技術(shù):

流媒體(Streaming Media)指在互聯(lián)網(wǎng)中使用流式傳輸技術(shù)的連續(xù)時基媒體,如:音頻、視頻或多媒體文件。流媒體的出現(xiàn)極大地方便了人們的工作和生活。由于網(wǎng)絡(luò)流媒體的傳輸需要實時和低延時等特點,目前很大部分都是通過實時傳輸協(xié)議RTP(Real-time Transport Protocol)來傳輸流媒體。實時傳輸協(xié)議RTP(Real-time Transport Protocol)是一個網(wǎng)絡(luò)傳輸協(xié)議,RTP用來為IP網(wǎng)上的語音、圖像、傳真等多種需要實時傳輸?shù)亩嗝襟w數(shù)據(jù)提供端到端的實時傳輸服務(wù)。RTP為Internet上端到端的實時傳輸提供時間信息和流同步,但并不保證服務(wù)質(zhì)量。RTP通常采用UDP來實現(xiàn)數(shù)據(jù)在IP網(wǎng)絡(luò)上的傳輸。因為UDP協(xié)議的傳輸過程沒有重傳機制,所以很容易造成傳輸數(shù)據(jù)的延時或者丟失。流媒體在傳輸過程中的數(shù)據(jù)丟失往往會造成視頻花屏,畫面靜止,音視頻不同步,聲音卡頓,播放的不流暢等問題。由于RTP的不可靠性,需要加入一種處理機制,在很多的應(yīng)用中一般采用加入FEC包,F(xiàn)EC(Forward Error Correction)前向糾錯是一種通過在信息源增加冗余信息實現(xiàn)丟包恢復(fù)的一種措施?,F(xiàn)有的向前糾錯技術(shù)中,F(xiàn)EC的編碼冗余度一般采用固定值,編碼冗余度不能根據(jù)具體的網(wǎng)絡(luò)環(huán)境做出對應(yīng)的調(diào)整,這樣占用的網(wǎng)絡(luò)帶寬較高。



技術(shù)實現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的不足,提供一種動態(tài)調(diào)整FEC冗余度的流媒體傳輸方法,克服現(xiàn)有技術(shù)流媒體傳輸過程中FEC的編碼冗余度采用固定值,F(xiàn)EC編碼冗余度不能根據(jù)具體網(wǎng)絡(luò)環(huán)境做出調(diào)整,占用網(wǎng)絡(luò)帶寬較高的缺陷。

本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案為:

一種動態(tài)調(diào)整FEC冗余度的流媒體傳輸方法,包括步驟:

A1、流媒體發(fā)送端根據(jù)初始FEC編碼冗余度Z0,對M個RTP報文數(shù)據(jù)包進行FEC編碼,形成FEC糾錯數(shù)據(jù)包;

A2、將所述RTP報文數(shù)據(jù)包和所述FEC糾錯數(shù)據(jù)包發(fā)送到流媒體接收端;

A3、流媒體接收端接收到所述RTP報文數(shù)據(jù)包和所述FEC糾錯數(shù)據(jù)包后,如果確認(rèn)出現(xiàn)丟包,則利用所述FEC糾錯數(shù)據(jù)包和所述RTP報文數(shù)據(jù)包恢復(fù)丟失的RTP報文;

A4、流媒體接收端將當(dāng)前RTP報文信息和丟包信息通過UDP協(xié)議方式發(fā)送到流媒體發(fā)送端;

A5、流媒體發(fā)送端根據(jù)所述當(dāng)前RTP報文信息和所述丟包信息計算實時丟包率P,根據(jù)公式計算并確定下一次傳送M個RTP報文數(shù)據(jù)包時的FEC糾錯數(shù)據(jù)包數(shù)量N,其中N取最小整數(shù)。

根據(jù)本發(fā)明的實施例,所述步驟A1包括步驟:所述FEC糾錯數(shù)據(jù)包的數(shù)量由公式確定。

根據(jù)本發(fā)明的實施例,所述步驟A5包括步驟:所述實時丟包率P按照公式

計算得到,其中rtp_num為當(dāng)前接收到的RTP報文數(shù)據(jù)包數(shù)量,rtp_start為RTP報文數(shù)據(jù)包的起始編號,rtp_end為RTP報文數(shù)據(jù)包的結(jié)束編號,fec_start為FEC糾錯數(shù)據(jù)包的起始編號,fec_end為FEC糾錯數(shù)據(jù)包的結(jié)束編號,fec_num為當(dāng)前接收到的FEC糾錯數(shù)據(jù)包數(shù)量。

實施本發(fā)明的技術(shù)方案,具有以下有益效果:本發(fā)明不僅能利用FEC向前糾錯技術(shù)自動糾正RTP網(wǎng)絡(luò)傳輸過程中的丟包,并且能根據(jù)實時傳輸丟包率和最少占用網(wǎng)絡(luò)帶寬的原則動態(tài)調(diào)節(jié)RTP數(shù)據(jù)的FEC編碼的冗余度,提高了流媒體的傳輸質(zhì)量。

附圖說明

下面通過參考附圖并結(jié)合實例具體地描述本發(fā)明,本發(fā)明的優(yōu)點和實現(xiàn)方式將會更加明顯,其中附圖所示內(nèi)容僅用于對本發(fā)明的解釋說明,而不構(gòu)成對本發(fā)明的任何意義上的限制,在附圖中:

圖1為本發(fā)明流媒體發(fā)送端和接收端的數(shù)據(jù)交互過程示意圖;

圖2為本發(fā)明流媒體發(fā)送端的處理流程圖;

圖3為本發(fā)明流媒體接收端的處理流程圖;

圖4為本發(fā)明流媒體接收端通過UDP反饋給發(fā)送端的數(shù)據(jù)組織結(jié)構(gòu)圖。

具體實施方式

本發(fā)明動態(tài)調(diào)整FEC冗余度的流媒體傳輸方法,包括步驟:

A1、流媒體發(fā)送端根據(jù)初始FEC編碼冗余度Z0,對M個RTP報文數(shù)據(jù)包進行FEC編碼,形成FEC糾錯數(shù)據(jù)包;

A2、將所述RTP報文數(shù)據(jù)包和所述FEC糾錯數(shù)據(jù)包發(fā)送到流媒體接收端;

A3、流媒體接收端接收到所述RTP報文數(shù)據(jù)包和所述FEC糾錯數(shù)據(jù)包后,如果確認(rèn)出現(xiàn)丟包,則利用所述FEC糾錯數(shù)據(jù)包和所述RTP報文數(shù)據(jù)包恢復(fù)丟失的RTP報文;

A4、流媒體接收端將當(dāng)前RTP報文信息和丟包信息通過UDP協(xié)議方式發(fā)送到流媒體發(fā)送端;

A5、流媒體發(fā)送端根據(jù)所述當(dāng)前RTP報文信息和所述丟包信息計算實時丟包率P,根據(jù)公式計算并確定下一次傳送M個RTP報文數(shù)據(jù)包時的FEC糾錯數(shù)據(jù)包數(shù)量N,其中N取最小整數(shù)。

根據(jù)本發(fā)明的實施例,所述步驟A1包括步驟:所述FEC糾錯數(shù)據(jù)包的數(shù)量由公式確定。

根據(jù)本發(fā)明的實施例,所述步驟A5包括步驟:所述實時丟包率P按照公式

計算得到,其中rtp_num為當(dāng)前接收到的RTP報文數(shù)據(jù)包數(shù)量,rtp_start為RTP報文數(shù)據(jù)包的起始編號,rtp_end為RTP報文數(shù)據(jù)包的結(jié)束編號,fec_start為FEC糾錯數(shù)據(jù)包的起始編號,fec_end為FEC糾錯數(shù)據(jù)包的結(jié)束編號,fec_num為當(dāng)前接收到的FEC糾錯數(shù)據(jù)包數(shù)量。

如圖1、圖2、圖3和圖4所示,

S1:流媒體發(fā)送端根據(jù)初始FEC編碼冗余度Z0,對M個RTP報文數(shù)據(jù)包進行FEC編碼,形成FEC糾錯數(shù)據(jù)包;

S2:將RTP報文數(shù)據(jù)包和FEC糾錯數(shù)據(jù)包發(fā)送到流媒體接收端;

S3:流媒體發(fā)送端接收流媒體接收端發(fā)送的反饋數(shù)據(jù),并且算出流媒體接收端的實時丟包率P;

S4:根據(jù)計算得到的實時丟包率P,計算FEC編碼冗余度Z,根據(jù)關(guān)系式(為了最少占用網(wǎng)絡(luò)帶寬,傳輸數(shù)據(jù)的冗余度最小,N取符合不等式條件的最小整數(shù))可以得到關(guān)系式(N取最小整數(shù))計算得出對接下來M個RTP數(shù)據(jù)包進行FEC編碼需要的N個FEC糾錯包;

S5:對接下來讀取的M個RTP報文數(shù)據(jù)包進行FEC編碼,得到N個FEC糾錯數(shù)據(jù)包,接著執(zhí)行S2。

流媒體接收端:

S6:流媒體接收端接收RTP報文數(shù)據(jù)包和FEC糾錯數(shù)據(jù)包;

S7:對RTP報文數(shù)據(jù)包和FEC糾錯數(shù)據(jù)包解封裝;

S8:如果確認(rèn)出現(xiàn)丟包,則利用FEC糾錯數(shù)據(jù)包和RTP報文數(shù)據(jù)包恢復(fù)丟失的RTP報文;

S9:流媒體接收端統(tǒng)計當(dāng)前RTP報文信息和丟包信息,采用UDP傳輸方式發(fā)送到流媒體發(fā)送端。

進一步講述S9中流媒體接收端反饋的丟包信息的反饋方式:

S10:從接收到的RTP報文數(shù)據(jù)包可以得到當(dāng)前接收到的RTP報文數(shù)據(jù)包的個數(shù)rtp_num,從解封裝后的FEC編碼數(shù)據(jù)可以得到當(dāng)前參與FEC編碼的RTP報文數(shù)據(jù)包的起始編號rtp_start、結(jié)束編號rtp_end、該組的FEC糾錯數(shù)據(jù)包的起始編號fec_start、結(jié)束編號fec_end、收到的FEC糾錯數(shù)據(jù)包個數(shù)fec_num,然后把六個數(shù)據(jù)按照rtp_start,rtp_end,fec_start,fec_end,rtp_num,fec_num的順序排列,每個占16bit大小的格式,用UDP協(xié)議的方式發(fā)送給流媒體接收端,當(dāng)流媒體接收端接收到反饋的UDP報文后,從里面依次讀取出rtp_start,rtp_end,fec_start,fec_end,rtp_num,fec_num,則可以計算得到當(dāng)前接收端的實時丟包率

如圖1所示,流媒體發(fā)送端通過RTP發(fā)送原始碼流和對應(yīng)的FEC數(shù)據(jù)到流媒體數(shù)據(jù)接收端,流媒體接收端接收數(shù)據(jù),并且根據(jù)接收到的數(shù)據(jù)進行FEC向前糾錯解碼恢復(fù)傳輸過程中丟失的數(shù)據(jù)包,同時采用UDP的方式把當(dāng)前的RTP接收狀況反饋給流媒體發(fā)送端,流媒體發(fā)送端根據(jù)接收到的反饋信息得到接收端的丟包率P并且動態(tài)調(diào)整當(dāng)前FEC編碼冗余度Z,根據(jù)更新的Z來確定接下來要編碼的一組原始RTP數(shù)據(jù)對應(yīng)FEC數(shù)據(jù)的個數(shù),實現(xiàn)在丟包率為P的網(wǎng)絡(luò)環(huán)境下,可以通過FEC向前糾錯解碼實現(xiàn)丟包的恢復(fù)。

圖2是流媒體發(fā)送端的具體處理流程:

S201:流媒體發(fā)送端以最初始FEC編碼冗余度Z0,讀取一組M個原始RTP1數(shù)據(jù)包并進行FEC編碼得出當(dāng)前組的N0個FEC糾錯包,其中Z0、M和N0符合關(guān)系式所以其中N0為整數(shù);

S202:把這N0個FEC包FEC1封裝成另外一路RTP包RTPFEC,并且發(fā)送RTP1數(shù)據(jù)包和RTPFEC數(shù)據(jù)包到流媒體接收端;

S203:流媒體發(fā)送端接收到流媒體接收端反饋的針對發(fā)送RTP1數(shù)據(jù)包和RTPFEC數(shù)據(jù)包的RTP報文信息和丟包信息統(tǒng)計出丟包率P1

S204:根據(jù)計算得到的P1去計算接下來發(fā)送的RTP2原始包所需的FEC糾錯包的數(shù)量N1,根據(jù)關(guān)系式(為了最少占用網(wǎng)絡(luò)帶寬,傳輸數(shù)據(jù)的冗余度最小,N取符合條件的最小整數(shù))得到關(guān)系式(N取最小整數(shù))計算得出N1,對接下來讀取M個原始RTP2數(shù)據(jù)進行FEC編碼得出N1個FEC糾錯包;

S205:接著執(zhí)行S202。

圖3是流媒體接收端的具體處理流程:

S301:流媒體接收端接收到RTP1-R和RTPFEC-R(由于網(wǎng)絡(luò)丟包的存在不一定是原來的RTP1和RTPFEC);

S302:根據(jù)接收到的RTPFEC-R解封裝得到FEC1-R;

S303:把RTP1-R和FEC1-R用FEC解碼方法去嘗試解碼得到原始發(fā)送的RTP1,如果能正常解碼則把RTP1送到流媒體處理模塊,如果解碼失敗則把RTP1-R送到流媒體處理模塊;

S305:得到RTP1-R和RTPFEC-R之后,流媒體接收端需統(tǒng)計當(dāng)前組RTP1數(shù)據(jù)和RTPFEC-R的丟包信息,用UDP的傳輸方式發(fā)送給到流媒體發(fā)送端;

S306:繼續(xù)執(zhí)行S301。

圖4描述的是S305流媒體接收端通過UDP反饋的相關(guān)數(shù)據(jù)安排方式:

S401:從RTP1-R可以得到當(dāng)前接收到的RTP數(shù)據(jù)的個數(shù)rtp_num,從RTPFEC-R可以得到當(dāng)前參與FEC編碼的RTP數(shù)據(jù)的起始編號rtp_start、結(jié)束編號rtp_end、該組的FEC的起始編號fec_start、結(jié)束編號fec_end、接收到的FEC數(shù)據(jù)個數(shù)fec_num,然后把四個數(shù)據(jù)按照rtp_start、rtp_end、fec_start、fec_end、rtp_num、fec_num的順序排列,每個字段占16bit大小的格式用UDP的方式發(fā)送給流媒體接收端。當(dāng)流媒體接收端接收到反饋的UDP報文后,從里面依次讀取出rtp_start,rtp_end,fec_start,fec_end,rtp_num,fec_num,則可以計算得到當(dāng)前接收端的實時丟包率

本領(lǐng)域技術(shù)人員不脫離本發(fā)明的實質(zhì)和精神,可以有多種變形方案實現(xiàn)本發(fā)明,以上所述僅為本發(fā)明較佳可行的實施例而已,并非因此局限本發(fā)明的權(quán)利范圍,凡運用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變化,均包含于本發(fā)明的權(quán)利范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
布拖县| 邹城市| 靖边县| 太仓市| 两当县| 雷波县| 德安县| 唐山市| 江津市| 石家庄市| 乌恰县| 南靖县| 晋州市| 斗六市| 成武县| 澄江县| 新余市| 抚远县| 肥东县| 新巴尔虎右旗| 望谟县| 景泰县| 胶南市| 武平县| 交城县| 怀柔区| 和顺县| 慈溪市| 胶州市| 天气| 岢岚县| 乐昌市| 仁怀市| 灵璧县| 玉环县| 定边县| 呼图壁县| 扎赉特旗| 岳普湖县| 获嘉县| 溆浦县|