一種實時視頻通信傳輸控制方法
【專利摘要】本發(fā)明提供一種實時視頻通信傳輸控制方法,所述方法是基于不完全幀解碼實現(xiàn)的,包括如下步驟:步驟10.接收端接收到發(fā)送端發(fā)送的數(shù)據(jù),進行不完全幀解碼控制;步驟20.在解碼過程中統(tǒng)計監(jiān)測參數(shù),并把監(jiān)測參數(shù)反饋給發(fā)送端;步驟30.發(fā)送端根據(jù)反饋結(jié)果,重新調(diào)整編碼過程參數(shù),將待發(fā)送數(shù)據(jù)進行編碼,通過網(wǎng)絡(luò)傳輸發(fā)送給接收端。本發(fā)明針對性地以解碼過程實時幀監(jiān)測和反饋為起始,通過反饋幀監(jiān)測參數(shù),調(diào)整發(fā)送端編碼過程參數(shù),形成解碼端和編碼端之間持續(xù)負反饋,能夠有效降低網(wǎng)絡(luò)丟包和抖動,使得視頻通信快速適應(yīng)當前可用帶寬,減少視頻馬賽克、畫面色彩錯亂和卡頓等問題,提升用戶體驗。
【專利說明】一種實時視頻通信傳輸控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種視頻通信領(lǐng)域,尤其涉及一種實時視頻通信傳輸控制方法。
【背景技術(shù)】
[0002]當前,IP網(wǎng)絡(luò)技術(shù)空前發(fā)展,在復雜的網(wǎng)絡(luò)條件下,實時視頻通信應(yīng)用受到很大的挑戰(zhàn),丟包和抖動隨機變化,網(wǎng)絡(luò)資源共享和管控導致視頻通信的可用帶寬不足,這些因素會導致嚴重的視頻馬賽克、畫面色彩錯亂和卡頓,是用戶的體驗變差,使得實時視頻通信應(yīng)用的易用性降低。為解決上述問題,目前出現(xiàn)很多的實時視頻通信系統(tǒng)采用端到端的控制方法,根據(jù)RFC3550協(xié)議中反饋的丟包率,控制發(fā)送端編碼和發(fā)送比特率,以降低網(wǎng)絡(luò)丟包和抖動,從而達到提升用戶視頻體驗的目的,這種以發(fā)送端編碼控制為主體的視頻通信控制方法不能把編碼過程和解碼過程納入到一個整體,進行綜合考慮,缺乏精確性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題,在于提供一種實時視頻通信傳輸控制方法,有效降低幀抖動和幀丟失率,實現(xiàn)緩解或消除視頻馬賽克、畫面色彩錯亂和卡頓等問題,從而改善用戶體驗,提升視頻通信應(yīng)用的易用性。
[0004]本發(fā)明是這樣實現(xiàn)的:一種實時視頻通信傳輸控制方法,所述方法是基于不完全幀解碼實現(xiàn)的,包括如下步驟:
步驟10、接收端接收到發(fā)送端發(fā)送的數(shù)據(jù),進行不完全幀解碼控制;
步驟20、在解碼過程中統(tǒng)計監(jiān)測參數(shù),并把監(jiān)測參數(shù)反饋給發(fā)送端;
步驟30、發(fā)送端根據(jù)反饋結(jié)果,重新調(diào)整編碼過程參數(shù),將待發(fā)送數(shù)據(jù)進行編碼,通過網(wǎng)絡(luò)傳輸發(fā)送給接收端。
[0005]進一步的,所述步驟10中不完整幀解碼控制:每一幀包括多個Slice,在接收到一幀數(shù)據(jù)時,過濾不完整Slice,判斷幀是否為空,若幀為空則丟棄幀,若幀不為空,則進一步判斷巾貞是否完整;
若幀不完整則判斷解碼關(guān)鍵參數(shù)是否缺失,若缺失則丟棄,若不缺失則進行解碼;若幀完整則判斷解碼關(guān)鍵參數(shù)是否缺失,若不缺失則進行解碼,若缺失則判斷幀是否為關(guān)鍵幀;若為關(guān)鍵幀則進行解碼,若不是關(guān)鍵幀則丟棄;其中,關(guān)鍵參數(shù)包括圖像分辨率和Slice模式。
[0006]進一步的,所述步驟20進一步包括:
步驟21、在解碼過程中監(jiān)測解碼參數(shù),監(jiān)測參數(shù)包括幀丟失率,解碼幀比特率和幀抖動;
步驟22、對監(jiān)測參數(shù)中的幀丟失率和幀抖動的變化進行判斷,若幀丟失率達到一第一丟失率閾值或者幀抖動達到一第一抖動閾值時,向發(fā)送端反饋當前監(jiān)測參數(shù),否則,以一定周期性反饋監(jiān)測參數(shù)。
[0007]進一步的,所述監(jiān)測參數(shù)中幀丟失率為單位時間窗口內(nèi)不完全幀數(shù)目與總幀數(shù)的比率,解碼幀比特率為單位時間窗口內(nèi)接收的所有幀數(shù)據(jù)的比特數(shù)之和,兩幀數(shù)據(jù)幀O和幀I發(fā)送時間戳記為T0,Tl,這兩幀數(shù)據(jù)到達的時間分別為to,tl,則幀抖動為:(tl -to) - (Tl - TO)。
[0008]進一步的,所述步驟30中重新調(diào)整編碼過程參數(shù)的具體方式為:根據(jù)接收端反饋的監(jiān)測參數(shù),若幀丟失率超過第一丟失率閾值或幀抖動超過第一抖動閾值,則降低編碼發(fā)送比特率至解碼幀比特率,若反饋的幀丟失率小于一第二丟失率閾值且?guī)秳有∮谝坏诙秳娱撝?,則以一步長S增加編碼的發(fā)送比特率;
在每次編碼比特率上升或下降時,根據(jù)編碼參數(shù)映射關(guān)系,得出與新比特率對應(yīng)的新編碼分辨率,若新分辨率與當前分辨率不同,則更新編碼分辨率;
在調(diào)整編碼發(fā)送比特率后,若幀丟失率仍無法消除且當前編碼模式為單一 Slice模式,則更改編碼模式為多Slice模式;
在每次減少或增加編碼發(fā)送比特率后,均觀察若干反饋周期,這些周期為評判周期;對于下降調(diào)整,評判周期內(nèi),若幀丟失率或幀抖動隨之下降,則評判周期結(jié)束后,進行下一次調(diào)整,直到幀丟失率小于第二丟失率閾值且?guī)秳有∮诘诙秳娱撝担陆嫡{(diào)整過程結(jié)束,若幀丟失率或幀抖動未隨之下降,則為無效下降,累加無效下降次數(shù),當無效下降次數(shù)大于一定值時,則下降調(diào)整過程結(jié)束;對于上升調(diào)整,若評判周期內(nèi),幀丟失率小于第二丟失率閾值且?guī)秳有∮诘诙秳娱撝?,則評判周期結(jié)束后,進行下一次上升調(diào)整;若評判周期內(nèi),幀丟失率和幀抖動分別大于各自的第一閾值,則上升調(diào)整過程結(jié)束。
[0009]本發(fā)明具有如下優(yōu)點:本發(fā)明針對性地以解碼過程實時幀監(jiān)測和反饋為起始,通過反饋幀監(jiān)測參數(shù),調(diào)整發(fā)送端編碼過程參數(shù),從而改善解碼過程的幀監(jiān)測狀態(tài),該監(jiān)測結(jié)果會再次反饋到編碼過程,如此形成解碼端和編碼端之間持續(xù)負反饋,這種把解碼過程和編碼過程統(tǒng)一起來的整體控制策略,能夠有效降低網(wǎng)絡(luò)丟包和抖動,使得視頻通信快速適應(yīng)當前可用帶寬,減少視頻馬賽克、畫面色彩錯亂和卡頓等問題,提升用戶體驗。
【專利附圖】
【附圖說明】
[0010]下面參照附圖結(jié)合實施例對本發(fā)明作進一步的說明。
[0011]圖1為本發(fā)明方法執(zhí)行流程圖。
[0012]圖2為本發(fā)明解碼控制過程流程圖。
[0013]圖3為本發(fā)明編碼控制過程流程圖。
【具體實施方式】
[0014]請參考圖1至圖3,一種實時視頻通信傳輸控制方法,所述方法是基于不完全幀解碼實現(xiàn)的,包括如下步驟:
步驟10、接收端接收到發(fā)送端發(fā)送的一幀數(shù)據(jù),進行不完全幀解碼控制,解碼控制是對解碼效果進行反饋,為發(fā)送端的編碼過程控制提供依據(jù),所述不完全幀解碼控制具體方式為:每一幀數(shù)據(jù)包括多個Slice,在接收到一幀數(shù)據(jù)時,過濾不完整Slice,判斷該幀是否為空,若幀為空則丟棄幀,若幀不為空,則進一步判斷幀是否完整;
若幀不完整則判斷解碼關(guān)鍵參數(shù)是否缺失,若缺失則丟棄,若不缺失則進行解碼;若幀完整則判斷解碼關(guān)鍵參數(shù)是否缺失,若不缺失則進行解碼,若缺失則判斷幀是否為關(guān)鍵幀;若為關(guān)鍵幀則進行解碼,若不是關(guān)鍵幀則丟棄;其中,關(guān)鍵參數(shù)包括圖像分辨率和Slice模式;
步驟20、在解碼過程中統(tǒng)計監(jiān)測參數(shù),并把監(jiān)測參數(shù)反饋給發(fā)送端,該步驟進一步包括:
步驟21、在解碼過程中監(jiān)測解碼參數(shù),監(jiān)測參數(shù)包括幀丟失率Li,解碼幀比特率Bi和幀抖動Ji ;
所述監(jiān)測參數(shù)中幀丟失率Li為單位時間窗口內(nèi)不完全幀數(shù)目與總幀數(shù)的比率,解碼幀比特率Bi為單位時間窗口內(nèi)接收的所有幀數(shù)據(jù)的比特數(shù)之和,兩幀數(shù)據(jù)幀O和幀I發(fā)送時間戳記為T0,Tl,這兩幀數(shù)據(jù)到達的時間分別為t0,tl,則幀抖動1為:(tl - t0)- (Tl-TO)
步驟22、對監(jiān)測參數(shù)中的幀丟失率Li和幀抖動Ji的變化進行判斷,若幀丟失率Li達到一第一丟失率閾值Ln或者巾貞抖動Ji達到一第一抖動閾值Jn時,即當前網(wǎng)絡(luò)狀態(tài)正發(fā)送明顯變化,向發(fā)送端反饋當前監(jiān)測參數(shù),促使編碼端調(diào)整相關(guān)編碼參數(shù),否則,在網(wǎng)絡(luò)狀態(tài)平穩(wěn)時,即可以帶寬尚有利用空間,以一定周期性反饋監(jiān)測參數(shù),觸發(fā)編碼參數(shù)不斷調(diào)整,充分利用當前帶寬,視頻質(zhì)量不斷改善;
步驟30、發(fā)送端根據(jù)反饋結(jié)果,重新調(diào)整編碼過程參數(shù),將待發(fā)送數(shù)據(jù)進行編碼,通過網(wǎng)絡(luò)傳輸發(fā)送給接收端,所述重新調(diào)整編碼過程參數(shù)的具體方式為:根據(jù)接收端反饋的監(jiān)測參數(shù),若解碼端反饋幀丟失率Li或幀抖動Ji明顯增大,即若幀丟失率Li超過第一丟失率閾值Ln或幀抖動Ji超過第一抖動閾值JN,則降低編碼發(fā)送比特率至解碼幀比特率Bi ;若解碼端反饋幀丟失率Li和幀抖動Ji均很小,即若反饋的幀丟失率Li小于一第二丟失率閾值Lg且?guī)秳覬i小于一第二抖動閾值Je,則以一步長S增加編碼的發(fā)送比特率,步長S可調(diào)整比特率上升速度,這里選擇S=50*1024比特;
在每次編碼比特率上升或下降時,根據(jù)編碼參數(shù)映射關(guān)系,得出與新比特率對應(yīng)的新編碼分辨率,若新分辨率與當前分辨率不同,則更新編碼分辨率;
在調(diào)整編碼發(fā)送比特率后,若幀丟失率Li仍無法消除且當前編碼模式為單一 Slice模式,則更改編碼模式為多Slice模式,因為多Slice模式更適合丟包網(wǎng)絡(luò)環(huán)境,在傳輸過程中,以Slice為傳輸單兀,若一巾貞中多個slice在傳輸過程中有部分Slice丟失,其余的Slice還可以解碼顯示;
在每次減少或增加編碼發(fā)送比特率后,均觀察若干反饋周期,這些周期為評判周期CN,Cn值取5 ;對于下降調(diào)整,評判周期內(nèi),若幀丟失率Li或幀抖動Ji隨之下降,則說明調(diào)整有效,評判周期結(jié)束后,進行下一次調(diào)整,直到幀丟失率Li小于第二丟失率閾值Le且?guī)秳覬i小于第二抖動閾值Je,下降調(diào)整過程結(jié)束,若幀丟失率Li或幀抖動Ji未隨之下降,則為無效下降,累加無效下降次數(shù),當無效下降次數(shù)大于一定值Dn時,則下降調(diào)整過程結(jié)束,Dn值取3 ;
對于上升調(diào)整,若評判周期內(nèi),幀丟失率Li小于第二丟失率閾值Le且?guī)秳覬i小于第二抖動閾值Je,則評判周期結(jié)束后,進行下一次上升調(diào)整;若評判周期內(nèi),幀丟失率Li和幀抖動Ji分別大于Le和Je,則上升調(diào)整過程結(jié)束。
[0015]另外,根據(jù)不同網(wǎng)絡(luò)參數(shù)對視頻接收的用戶體驗的影響,來確定編碼控制過程中的各閾值,若選取Le〈2%,Jg<30毫秒,該網(wǎng)絡(luò)條件下,接收視頻較流暢,畫面質(zhì)量較好,不會對用戶體驗產(chǎn)生明顯影響;若選取Ln>=8%,,Jn >=80毫秒,在該網(wǎng)絡(luò)條件下,馬賽克現(xiàn)象嚴重,畫面質(zhì)量較差,應(yīng)及時采取相應(yīng)措施,比如降低幀丟失率Li和幀抖動Ji,改善視頻質(zhì)量。
[0016]雖然以上描述了本發(fā)明的【具體實施方式】,但是熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員應(yīng)當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當涵蓋在本發(fā)明的權(quán)利要求所保護的范圍內(nèi)。
【權(quán)利要求】
1.一種實時視頻通信傳輸控制方法,其特征在于:所述方法是基于不完全幀解碼實現(xiàn)的,包括如下步驟: 步驟10、接收端接收到發(fā)送端發(fā)送的數(shù)據(jù),進行不完全幀解碼控制; 步驟20、在解碼過程中統(tǒng)計監(jiān)測參數(shù),并把監(jiān)測參數(shù)反饋給發(fā)送端; 步驟30、發(fā)送端根據(jù)反饋結(jié)果,重新調(diào)整編碼過程參數(shù),將待發(fā)送數(shù)據(jù)進行編碼,通過網(wǎng)絡(luò)傳輸發(fā)送給接收端。
2.根據(jù)權(quán)利要求1所述的一種實時視頻通信傳輸控制方法,其特征在于:所述步驟10中不完整幀解碼控制為:每一幀包括多個Slice,在接收到一幀數(shù)據(jù)時,過濾不完整Slice,判斷幀是否為空,若幀為空則丟棄幀,若幀不為空,則進一步判斷幀是否完整; 若幀不完整則判斷解碼關(guān)鍵參數(shù)是否缺失,若缺失則丟棄,若不缺失則進行解碼;若幀完整則判斷解碼關(guān)鍵參數(shù)是否缺失,若不缺失則進行解碼,若缺失則判斷幀是否為關(guān)鍵幀;若為關(guān)鍵幀則進行解碼,若不是關(guān)鍵幀則丟棄;其中,關(guān)鍵參數(shù)包括圖像分辨率和Slice模式。
3.根據(jù)權(quán)利要求1所述的一種實時視頻通信傳輸控制方法,其特征在于:所述步驟20進一步包括: 步驟21、在解碼過程中監(jiān)測解碼參數(shù),監(jiān)測參數(shù)包括幀丟失率,解碼幀比特率和幀抖動; 步驟22、對監(jiān)測參數(shù)中的幀丟失率和幀抖動的變化進行判斷,若幀丟失率達到一第一丟失率閾值或者幀抖動達到一第一抖動閾值時,向發(fā)送端反饋當前監(jiān)測參數(shù),否則,以一定周期性反饋監(jiān)測參數(shù)。
4.根據(jù)權(quán)利要求3所述的一種實時視頻通信傳輸控制方法,其特征在于:所述監(jiān)測參數(shù)中幀丟失率為單位時間窗口內(nèi)不完全幀數(shù)目與總幀數(shù)的比率,解碼幀比特率為單位時間窗口內(nèi)接收的所有幀數(shù)據(jù)的比特數(shù)之和,兩幀數(shù)據(jù)幀O和幀I發(fā)送時間戳記為T0,Tl,這兩幀數(shù)據(jù)到達的時間分別為to,tl,則幀抖動為:(t1- to) - (Tl - TO)。
5.根據(jù)權(quán)利要求4所述的一種實時視頻通信傳輸控制方法,其特征在于:所述步驟30中重新調(diào)整編碼過程參數(shù)的具體方式為:根據(jù)接收端反饋的監(jiān)測參數(shù),若幀丟失率超過第一丟失率閾值或幀抖動超過第一抖動閾值,則降低編碼發(fā)送比特率至解碼幀比特率,若反饋的幀丟失率小于一第二丟失率閾值且?guī)秳有∮谝坏诙秳娱撝?,則以一步長S增加編碼的發(fā)送比特率; 在每次編碼比特率上升或下降時,根據(jù)編碼參數(shù)映射關(guān)系,得出與新比特率對應(yīng)的新編碼分辨率,若新分辨率與當前分辨率不同,則更新編碼分辨率; 在調(diào)整編碼發(fā)送比特率后,若幀丟失率仍無法消除且當前編碼模式為單一 Slice模式,則更改編碼模式為多Slice模式; 在每次減少或增加編碼發(fā)送比特率后,均觀察若干反饋周期,這些周期為評判周期;對于下降調(diào)整,評判周期內(nèi),若幀丟失率或幀抖動隨之下降,則評判周期結(jié)束后,進行下一次調(diào)整,直到幀丟失率小于第二丟失率閾值且?guī)秳有∮诘诙秳娱撝担陆嫡{(diào)整過程結(jié)束,若幀丟失率或幀抖動未隨之下降,則為無效下降,累加無效下降次數(shù),當無效下降次數(shù)大于一定值時,則下降調(diào)整過程結(jié)束;對于上升調(diào)整,若評判周期內(nèi),幀丟失率小于第二丟失率閾值且?guī)秳有∮诘诙秳娱撝?,則評判周期結(jié)束后,進行下一次上升調(diào)整;若評判周期內(nèi),幀丟失率和幀抖動分別大于各自的第一閾值,則上升調(diào)整過程結(jié)束。
【文檔編號】H04N7/14GK104253967SQ201410500673
【公開日】2014年12月31日 申請日期:2014年9月26日 優(yōu)先權(quán)日:2014年9月26日
【發(fā)明者】梁二振 申請人:廈門億聯(lián)網(wǎng)絡(luò)技術(shù)股份有限公司