專利名稱:一種保持視頻圖像連續(xù)性的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)多媒體通信技術(shù)領(lǐng)域,特別涉及一種保持視頻圖像連續(xù)性的方法和裝置。
背景技術(shù):
實時視頻查看是指用戶通過監(jiān)控設(shè)備實時觀看特定攝像頭的監(jiān)控內(nèi)容,在此業(yè)務(wù)中,數(shù)據(jù)生產(chǎn)者為視頻編碼器,負責(zé)把攝像機的圖像數(shù)據(jù)轉(zhuǎn)為IP數(shù)據(jù)包,通過IP網(wǎng)絡(luò)發(fā)送到后端;數(shù)據(jù)消費者為視頻解碼器,負責(zé)把從視頻編碼器傳來的IP數(shù)據(jù)包還原為圖像數(shù)據(jù),輸出到圖像顯示設(shè)備上。參見圖1,圖1為視頻數(shù)據(jù)報文傳輸結(jié)構(gòu)示意圖。圖1中視頻編碼器101通過網(wǎng)絡(luò)向視頻解碼器102傳輸視頻數(shù)據(jù)報文,當(dāng)遇到網(wǎng)絡(luò)擁塞的時候,會產(chǎn)生丟包,視頻解碼器 102如果沒有收到完整的視頻幀數(shù)據(jù)報文,就會產(chǎn)生卡頓、黑屏或者中斷視頻等現(xiàn)象?,F(xiàn)有技術(shù)中,解決上述問題通過丟包重傳或者冗余發(fā)包。其中,丟包重傳指如果報文丟失,則重新發(fā)送丟失的報文。該種解決方式存在的缺點是,視頻業(yè)務(wù)對于實時性要求很高,如果重新發(fā)送數(shù)據(jù)會有時延。冗余發(fā)包是指在視頻編碼器生成冗余數(shù)據(jù)報文,以便在數(shù)據(jù)丟失后,利用冗余數(shù)據(jù)來恢復(fù)數(shù)據(jù)。該種解決方式的缺點是,當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時,交換機并不能判斷哪些數(shù)據(jù)是正常報文,哪些是冗余報文,可能會同時將正常報文和冗余報文丟棄,視頻解碼器收到的數(shù)據(jù)不一定能完全恢復(fù)數(shù)據(jù)。綜上所述,現(xiàn)有技術(shù)中,當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時,在保證實時性的同時,視頻解碼器收到的數(shù)據(jù)報文不能完全恢復(fù)要查看的視頻數(shù)據(jù)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種保持視頻圖像連續(xù)性的方法和裝置,當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞的時候,在保證實時性的情況下,能夠保持視頻圖像的連續(xù)性。為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種保持視頻圖像連續(xù)性的方法,該方法包括視頻編碼器采用不同碼率分別對視頻中每一幀畫面進行編碼,并將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼器;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率;視頻解碼器按照碼率的不同對接收到的數(shù)據(jù)報文分別保存和解碼,并按照視頻畫面幀的順序進行顯示;對于每一幀畫面的顯示,如果視頻解碼器接收到所述視頻編碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則顯示該解碼后最高碼率數(shù)據(jù)報文;如果視頻解碼器未接收到因網(wǎng)絡(luò)擁塞而被丟棄的,視頻解碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則在解碼后數(shù)據(jù)報文中選擇當(dāng)前碼率最高的解碼后數(shù)據(jù)報文,并切換為顯示所述選擇出的解碼后數(shù)據(jù)報文。
一種保持視頻圖像連續(xù)性的視頻編碼器,該視頻編碼器包括編碼單元和發(fā)送單元;所述編碼單元,與所述發(fā)送單元相連,用于采用不同碼率分別對視頻中每一幀畫面進行編碼;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率;所述發(fā)送單元,用于將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼
ο一種保持視頻圖像連續(xù)性的視頻解碼器,該視頻解碼器包括接收單元、處理單元和顯示單元;所述接收單元,與所述處理單元相連,用于通過網(wǎng)絡(luò)接收到來自視頻編碼器的數(shù)據(jù)報文,所述數(shù)據(jù)報文是視頻編碼器對視頻中每一幀畫面編碼后獲得的數(shù)據(jù)報文,且每一幀畫面是采用不同碼率分別進行編碼的,各碼率的和為視頻會話協(xié)商出的所述視頻解碼器要查看的會話總碼率;所述處理單元,與所述顯示單元相連,用于將所述接收單元接收的數(shù)據(jù)報文按照碼率的不同分別保存和解碼;所述顯示單元,用于將所述處理單元解碼后數(shù)據(jù)報文按照視頻畫面幀的順序進行顯示;對于每一幀畫面的顯示,如果所述接收單元接收到所述視頻編碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則顯示該解碼后最高碼率數(shù)據(jù)報文;如果所述接收單元未接收到因網(wǎng)絡(luò)擁塞而被丟棄的當(dāng)前視頻畫面幀的最高碼率數(shù)據(jù)報文,則在解碼后數(shù)據(jù)報文中選擇碼率最高的解碼后數(shù)據(jù)報文,并切換為顯示所述選擇出的解碼后數(shù)據(jù)報文。綜上所述,本發(fā)明視頻編碼器將視頻中同一幀畫面采用不同碼率進行編碼,并通過網(wǎng)絡(luò)傳輸給視頻解碼器,當(dāng)視頻解碼器顯示收到的視頻圖像時,對于某一幀畫面如果收到視頻編碼器采用的最高碼率編碼的數(shù)據(jù)報文,則解碼并按按照視頻畫面幀的順序優(yōu)先顯示視頻編碼器采用的最高碼率編碼的解碼后的數(shù)據(jù)報文,如果因為網(wǎng)絡(luò)擁塞,視頻編碼器采用的最高碼率編碼的某幀數(shù)據(jù)報文未收到,則切換顯示收到的該幀畫面的最高碼率的數(shù)據(jù)報文。因此當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時,本發(fā)明在保證實時性的同時,能夠保持視頻圖像的連續(xù)性。
圖1為視頻數(shù)據(jù)報文傳輸結(jié)構(gòu)示意圖;圖2為本發(fā)明保持視頻圖像連續(xù)性的方法的流程圖;圖3為本發(fā)明具體實施例中保持視頻圖像連續(xù)性的方法的流程圖;圖4為動態(tài)降低r流程圖;圖5為本發(fā)明保持視頻圖像連續(xù)性的視頻編碼器結(jié)構(gòu)示意圖;圖6為本發(fā)明保持視頻圖像連續(xù)性的視頻解碼器結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明所述方案作進一步地詳細說明。參見圖2,圖2為本發(fā)明保持視頻圖像連續(xù)性的方法的流程圖。具體步驟為
步驟201,視頻編碼器采用不同碼率分別對視頻中每一幀畫面進行編碼,并將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼器;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率。步驟202,視頻解碼器按照碼率的不同對接收到的數(shù)據(jù)報文分別保存和解碼,并按照視頻畫面幀的順序進行顯示。步驟203,對于每一幀畫面的顯示,如果視頻解碼器接收到視頻編碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則顯示該解碼后最高碼率數(shù)據(jù)報文;如果視頻解碼器未接收到因網(wǎng)絡(luò)擁塞而被丟棄的,視頻解碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則在解碼后數(shù)據(jù)報文中選擇當(dāng)前碼率最高的解碼后數(shù)據(jù)報文,并切換為顯示擇出的解碼后數(shù)據(jù)報文。本發(fā)明實施例中提到的碼率可以用M來表示,對于不同碼率可以由高到低依次排序為M1;M2,...,Mi;...,Mn,其中,的A倍,A為大于等于1的數(shù),η為不同碼率的個數(shù),η為大于等于2的自然數(shù),i為小于等于η的自然數(shù)。這里之所以倍數(shù)為ri;因為Mi 與Mi+1的比值可以是一樣的,也可以是不一樣,根據(jù)需要或應(yīng)用經(jīng)驗而定,只要所有的不同碼率的和為會話總碼率即可。視頻解碼器統(tǒng)計接收數(shù)據(jù)報文的丟包率,如果丟包率低于第一預(yù)設(shè)值,頻解碼器發(fā)送修改(Modify)報文給視頻編碼器,通知視頻編碼器調(diào)高A的值;視頻解碼器收到視頻編碼器發(fā)來的已調(diào)高A值的確認報文。如果丟包率高于第二預(yù)設(shè)值時,需要降低A的值,過程同上述調(diào)高過程,這里不再贅述。本發(fā)明在顯示每幀畫面時,不僅按照最高碼率解碼后的數(shù)據(jù)報文進行顯示,還可以根據(jù)分辨率或者丟包率來切換顯示。如果當(dāng)前顯示畫面的實際分辨率小于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率到第一預(yù)設(shè)值以上時,切換為顯示碼率為Mw解碼后數(shù)據(jù)報文顯示;如果當(dāng)前顯示畫面的實際分辨率大于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率的值到第二預(yù)設(shè)值以上時,切換為顯示碼率為Mg解碼后數(shù)據(jù)報文。這里的第一預(yù)設(shè)值和第二預(yù)設(shè)值可以根據(jù)經(jīng)驗值來確定。下面描述對于丟包率的變化,如何進行切換顯示。統(tǒng)計不同碼率數(shù)據(jù)報文的丟包率,當(dāng)丟包率高于碼率為Mi視頻的可容忍丟包率, 并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mw解碼后數(shù)據(jù)報文;當(dāng)丟包率低于碼率為Mi的可容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文。在視頻解碼器收到視頻數(shù)據(jù)報文之前,首先視頻會話啟動,視頻解碼器和視頻編碼器進行協(xié)商,假設(shè)會話協(xié)商結(jié)果為視頻編碼器要求查看TMbps的視頻,即會話總碼率為 TMbps ;并且通過單通道傳輸視頻數(shù)據(jù)流。在實際應(yīng)用中,使用者可以根據(jù)具體需要來對要發(fā)送的每幀視頻畫面進行多次編碼,在本實施例中,以兩次編碼為例,來詳細說明本發(fā)明的視頻報文傳輸過程,其中,碼率較高的稱為高碼率,碼率較低的稱為低碼率。參見圖3,圖3為本發(fā)明具體實施例中保持視頻圖像連續(xù)性的方法的流程圖。具體步驟為步驟301,視頻編碼器對要傳輸?shù)囊曨l的每幀畫面采用不同碼率編碼兩次,將編碼后的高碼率數(shù)據(jù)報文和低碼率數(shù)據(jù)報文均通過網(wǎng)絡(luò)傳輸給視頻解碼器,其中,高低碼率碼率的和為視頻會話協(xié)商出的會話總碼率。本步驟中對每幀畫面編碼兩次后的數(shù)據(jù)報文添加應(yīng)用層標識,用于區(qū)分不同碼率的數(shù)據(jù)報文;為報文添加差分服務(wù)編碼點(DSCP)標簽,用于標識報文的優(yōu)先級。其中,高碼率報文打低優(yōu)先級標識,低碼率報文打高優(yōu)先級標識,根據(jù)使用者對該視頻的重視程度而定,當(dāng)使用者認為該視頻非常重要時,為本步驟中的數(shù)據(jù)報文打的優(yōu)先級標識均應(yīng)高于普通數(shù)據(jù)業(yè)務(wù)的優(yōu)先級。當(dāng)在傳輸過程中,網(wǎng)絡(luò)擁塞時,優(yōu)先丟棄高碼率報文,本發(fā)明具體實施例中根據(jù)DSCP標簽,優(yōu)先丟棄優(yōu)先級低的報文。本步驟中進行的兩次編碼,一次為高碼率,假設(shè)為HMbps,另一次為低碼率,假設(shè)為 LMbps,其中H+L = T0假設(shè)高碼率為3. 5Mbps,那么低碼率為0. 5Mbps。該步驟中的不同碼率可以事先設(shè)定,也可以通過動態(tài)調(diào)整。具體實現(xiàn)方式如下設(shè)會話總碼率為TMbps,高低碼率比值為r,則高碼率H = rXT/(l+r);低碼率L = T/(l+r)。其中,1 < r <= 100,r的范圍為根據(jù)實際經(jīng)驗和習(xí)慣獲得的較合適比例范圍, 如果r的比值更大的時候,如果網(wǎng)絡(luò)擁塞,將高碼率的報文丟棄,而低碼率的報文由于碼率太低將顯示的畫面質(zhì)量太差,這樣的高低碼率劃分將沒有太大意義。上述對r值的調(diào)整的實現(xiàn)方法參見圖4,圖4為動態(tài)降低r的流程圖。具體步驟為步驟401,視頻解碼器統(tǒng)計丟包率較低。視頻解碼器統(tǒng)計接收報文的丟包率,如果網(wǎng)絡(luò)條件很好,丟包率很低,這時候可以考慮適當(dāng)調(diào)高高碼率報文的碼率,以便提供更好的顯示質(zhì)量,丟包率的觸發(fā)條件可以以不同碼率報文的丟包容忍度為依據(jù),當(dāng)統(tǒng)計丟包率低于可容忍丟包率預(yù)設(shè)值以上,可以調(diào)高r 值。通常該處的預(yù)設(shè)值可以設(shè)為80%。步驟402,視頻解碼器向視頻編碼器發(fā)送Modify報文,通知視頻編碼器調(diào)高r值。步驟403,視頻編碼器調(diào)高r值。本步驟中的視頻編碼器收到Modify報文,Modify報文攜帶視頻解碼器ID、視頻編碼器ID和當(dāng)前畫面對應(yīng)會話ID。是否攜帶r值可選,當(dāng)攜帶r值時視頻編碼器根據(jù)當(dāng)前畫面對應(yīng)會話ID和r值直接調(diào)整對應(yīng)r值;當(dāng)報文未攜帶r值時,視頻編碼器根據(jù)當(dāng)前畫面對應(yīng)會話ID以及自身應(yīng)用情況適當(dāng)提高r值。步驟404,視頻編碼器向視頻解碼器發(fā)送已調(diào)高r值確認報文。本步驟中的確認報文攜帶視頻解碼器ID、視頻編碼器ID和當(dāng)前畫面對應(yīng)會話ID。 是否攜帶r值可選,當(dāng)攜帶r值時,視頻解碼器收到該確認報文時,根據(jù)報文攜帶的r值調(diào)整維護隊列的長度,也可以不進行調(diào)整。步驟405,視頻編碼器等待預(yù)設(shè)時間,未再收到調(diào)整r的Modify報文,用新的r值計算高低碼率的值。如果在等待時間內(nèi)再次收到Modify報文,繼續(xù)對r值調(diào)整,以最后一次調(diào)整為準, 重新計算高低碼率的值。步驟406,視頻編碼器按調(diào)整后的高低碼率值發(fā)送高低碼率數(shù)據(jù)報文給視頻解碼器。
視頻解碼器統(tǒng)計丟包率,當(dāng)網(wǎng)絡(luò)條件很差時,統(tǒng)計丟包率高于可容忍丟包率預(yù)設(shè)值以上,一般預(yù)設(shè)百分比設(shè)為50%,這時網(wǎng)絡(luò)中可能存在擁塞,高碼率報文可能已經(jīng)被交換機設(shè)備丟棄,這時候考慮降低r值。降低r值的過程同調(diào)高r值過程類似,這里不再贅述。步驟302,視頻解碼器為該次會話維護兩個隊列,收到視頻解碼器發(fā)來的每幀畫面的數(shù)據(jù)報文,根據(jù)報文攜帶的碼率不同,分別將高、低碼率的數(shù)據(jù)報文進入兩個隊列。本步驟中視頻解碼器按照應(yīng)用層標識的不同對接收到的數(shù)據(jù)報文分別進入兩個隊列。步驟303,視頻解碼器對兩個隊列的數(shù)據(jù)報文分別解碼,并按照視頻畫面幀的順序進行顯示。步驟304,對于每一幀畫面,如果收到該幀高碼率的數(shù)據(jù)報文,則顯示該幀采用高碼率編碼的解碼后的數(shù)據(jù)報文。步驟305,如果未收到高碼率的數(shù)據(jù)報文,切換為顯示該幀采用低碼率編碼的解碼后的數(shù)據(jù)報文。本步驟中,當(dāng)網(wǎng)絡(luò)擁塞時,該幀采用高碼率編碼的數(shù)據(jù)報文有丟失,視頻解碼器未收到時,切換為顯示采用低碼率編碼的數(shù)據(jù)報文。下面詳細描述一下高低碼率解碼后,優(yōu)先選擇高碼率報文切換,但是根據(jù)網(wǎng)絡(luò)情況,也可切換顯示。第一種切換顯示方式,根據(jù)畫面的實際分辨率變化進行切換。如果當(dāng)前顯示畫面的實際分辨率小于高碼率報文分辨率到一定閥值D以上,切換到低碼率報文隊列顯示;如果當(dāng)前顯示畫面的實際分辨率大于低碼率報文分辨率到一定閥值d以上,切換到高碼率報文隊列顯示。其中,D和d值的大小可以根據(jù)實際應(yīng)用情況進行設(shè)置。下面舉具體例子來詳細說明。例如,高碼率報文為720p(U80*720),低碼率報文為QCIF (176*144)。如果實際畫面為CIF(352M88),則可以選擇切換到低碼率隊列顯示。如果實際畫面為Dl (704*576),則可以選擇切換到高碼率隊列顯示。第二種切換方式,通過高低碼率報文隊列的丟包率進行切換。分別統(tǒng)計2個隊列的丟包率,高碼率視頻對于丟包率的容忍度較低,而低碼率視頻對報文丟包率容忍度較高,當(dāng)統(tǒng)計丟包率高于高碼率視頻的可容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換到低碼率報文隊列顯示。根據(jù)丟包率統(tǒng)計結(jié)果,當(dāng)丟包率低于高碼率視頻的可容忍丟包率,可選擇切換回高碼率報文隊列顯示。本實施例中,不同碼率的數(shù)據(jù)報文可以同時發(fā)送,也可以分先后發(fā)送。實際應(yīng)用中,低碼率數(shù)據(jù)報文的數(shù)據(jù)量較小,在傳輸和解碼工作上負擔(dān)較輕,視頻編碼器可以優(yōu)先發(fā)送低碼率的報文,當(dāng)視頻解碼器收到該低碼率報文開始解碼時,視頻編碼器開始混雜發(fā)送高碼率報文。視頻會話協(xié)商時,還可以協(xié)商多條數(shù)據(jù)流通道,視頻編碼器將不同碼率的數(shù)據(jù)報文通過不同數(shù)據(jù)流通道傳送給視頻解碼器。本實施例還可應(yīng)用于雙向視頻。實現(xiàn)只需在視頻編碼器端如上所述的方式設(shè)置視頻解碼器,在視頻編碼器端如上所述的方式設(shè)置視頻編碼器,數(shù)據(jù)報文傳輸方式也同上,這里不再贅述。基于上述同樣的發(fā)明構(gòu)思,本發(fā)明還提出一種保持視頻圖像連續(xù)性的視頻編碼器。參見圖5,圖5為本發(fā)明保持視頻圖像連續(xù)性的視頻編碼器的結(jié)構(gòu)示意圖。該視頻編碼器包括編碼單元501和發(fā)送單元502。編碼單元501,與發(fā)送單元502相連,用于采用不同碼率分別對視頻中每一幀畫面進行編碼;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率;發(fā)送單元502,用于將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼
ο較佳地,該視頻編碼器進一步包括標識單元503。標識單元503,與編碼單元501相連,用于為不同碼率的數(shù)據(jù)報文添加應(yīng)用層標識,使所述視頻編碼器根據(jù)收到的數(shù)據(jù)報文的應(yīng)用層標識區(qū)分不同碼率的數(shù)據(jù)報文。較佳地,標識單元503,進一步用于為不同碼率的數(shù)據(jù)報文添加DSCP標簽,該DSCP 標簽用于標識報文優(yōu)先級;當(dāng)網(wǎng)絡(luò)擁塞時,使網(wǎng)絡(luò)根據(jù)數(shù)據(jù)報文攜帶的DSCP標簽從優(yōu)先級低到高的順序優(yōu)先丟棄優(yōu)先級低的數(shù)據(jù)報文;其中,按各碼率從高到低的順序為各數(shù)據(jù)報文分別分配從低到高的優(yōu)先級。較佳地,發(fā)送單元502,進一步用于向視頻解碼器從單通道傳輸不同碼率的數(shù)據(jù)報文;該單通道傳輸為視頻會話協(xié)商出的;或,發(fā)送單元502,進一步用于向視頻解碼器從多通道傳輸不同碼率的數(shù)據(jù)報文; 該多通道傳輸為視頻會話協(xié)商出的。基于上述同樣的發(fā)明構(gòu)思,本發(fā)明還提出一種保持視頻圖像連續(xù)性的視頻解碼器。參見圖6,圖6為本發(fā)明保持視頻圖像連續(xù)性的視頻解碼器的結(jié)構(gòu)示意圖。該視頻解碼器包括接收單元601、處理單元602和顯示單元603 ;接收單元601,與處理單元602相連,用于通過網(wǎng)絡(luò)接收到來自視頻編碼器的數(shù)據(jù)報文,該數(shù)據(jù)報文是視頻編碼器對視頻中每一幀畫面編碼后獲得的數(shù)據(jù)報文,且每一幀畫面是采用不同碼率分別進行編碼的,各碼率的和為視頻會話協(xié)商出的所述視頻解碼器要查看的會話總碼率;處理單元602,與顯示單元602相連,用于將接收單元601接收的數(shù)據(jù)報文按照碼率的不同分別保存和解碼;顯示單元603,用于將處理單元602解碼后數(shù)據(jù)報文按照視頻畫面幀的順序進行顯示;對于每一幀畫面的顯示,如果接收單元601接收到所述視頻編碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則顯示該解碼后最高碼率數(shù)據(jù)報文;如果接收單元 601未接收到因網(wǎng)絡(luò)擁塞而被丟棄的當(dāng)前視頻畫面幀的最高碼率數(shù)據(jù)報文,則在解碼后數(shù)據(jù)報文中選擇碼率最高的解碼后數(shù)據(jù)報文,并切換為顯示選擇出的解碼后數(shù)據(jù)報文。較佳地,各碼率的關(guān)系為各碼率由高到低依次排序為M1, M2, ...,Mi, ...,Mn,其中,Mi為Mi+1的ri倍,r,為大于1的數(shù),η為不同碼率的個數(shù),η為大于等于2的自然數(shù),i 為小于等于η的自然數(shù)。較佳地,該視頻解碼器進一步包括統(tǒng)計單元604和調(diào)整單元605 ;統(tǒng)計單元604,與接收單元601相連,用于統(tǒng)計接收數(shù)據(jù)報文的丟包率;調(diào)整單元605,與統(tǒng)計單元604相連,用于當(dāng)統(tǒng)計單元604統(tǒng)計丟包率低于第一預(yù)設(shè)值時,向視頻解碼器發(fā)送Modify報文給視頻編碼器,通知視頻編碼器調(diào)高A值;或,用于當(dāng)所述統(tǒng)計單元統(tǒng)計丟包率高于第二預(yù)設(shè)值時,向視頻解碼器發(fā)送Modify報文給視頻編碼器,通知視頻編碼器降低A值;接收單元601,進一步用于當(dāng)調(diào)整單元605通知視頻編碼器調(diào)高巧值之后,接收到視頻編碼器發(fā)來的已調(diào)高A值的確認報文;或用于當(dāng)調(diào)整單元605通知視頻編碼器降低ri 值之后,接收到視頻編碼器發(fā)來的已降低^值的確認報文。較佳地,接收單元601,進一步用于接收視頻編碼器發(fā)來的已調(diào)高或較低A值的確認報文之后,接收到不同碼率的數(shù)據(jù)報文;該不同碼率的數(shù)據(jù)報文為用調(diào)高或降低后的^ 值重新計算的不同碼率進行編碼的數(shù)據(jù)報文。較佳地,該視頻解碼器進一步包括切換單元;切換單元606,與顯示單元601相連,用于如果當(dāng)前顯示畫面的實際分辨率小于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率到第三預(yù)設(shè)值以上時,切換為顯示碼率為Mi+1 解碼后數(shù)據(jù)報文顯示;如果當(dāng)前顯示畫面的實際分辨率大于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率的值到第四預(yù)設(shè)值以上時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文;顯示單元601,顯示切換單元606切換后的解碼后的數(shù)據(jù)報文;或,切換單元606,與統(tǒng)計單元604和顯示單元601相連,用于當(dāng)統(tǒng)計單元604統(tǒng)計不同碼率數(shù)據(jù)報文的丟包率高于碼率為Mi視頻的第一預(yù)設(shè)容忍丟包率,并持續(xù)預(yù)設(shè)時間時, 切換為顯示碼率為Mw解碼后數(shù)據(jù)報文;用于當(dāng)統(tǒng)計單元604統(tǒng)計不同碼率數(shù)據(jù)報文丟包率低于碼率為Mi視頻的第二預(yù)設(shè)容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文;顯示單元601,顯示切換單元606切換后的解碼后數(shù)據(jù)報文。較佳地,接收單元601,進一步用于從單通道收到視頻編碼器傳輸?shù)牟煌a率的數(shù)據(jù)報文;該單通道為視頻會話協(xié)商出的;或,接收單元601,進一步用于從多通道收到視頻編碼器傳輸?shù)牟煌a率的數(shù)據(jù)報文;該多通道為視頻會話協(xié)商出的。上述實施例的單元可以集成于一體,也可以分離部署;可以合并為一個單元,也可以進一步拆分成多個子單元。綜上所述,本發(fā)明的視頻編碼器采用不同碼率對視頻圖像中的每一幀環(huán)面進行編碼,并通過網(wǎng)絡(luò)傳輸給視頻解碼器,其中,各不同碼率的碼率和為會話總碼率,因此與現(xiàn)有傳輸方式相比,并未增加網(wǎng)絡(luò)的傳輸負擔(dān)。視頻解碼器收到視頻編碼器發(fā)來的編碼后的數(shù)據(jù)報文,按碼率的不同分別保存并能解碼。按照視頻畫面幀的順序進行顯示?,F(xiàn)有技術(shù)中用單一碼率傳輸該幀的數(shù)據(jù)報文,如果網(wǎng)絡(luò)擁塞時,該數(shù)據(jù)報文被丟低,則無法連續(xù)顯示視頻圖像。而本發(fā)明多個不同碼率對同一幀的畫面進行傳輸,當(dāng)網(wǎng)絡(luò)擁塞時,高碼率編碼的數(shù)據(jù)報文被丟低,較低碼率的數(shù)據(jù)報文還是會被傳輸,因此,在顯示該幀畫面時,不會出現(xiàn)卡頓、 黑屏或者中斷。因此本發(fā)明在網(wǎng)絡(luò)擁塞時,在保證視頻傳輸實時的情況下,能夠保持視頻圖像的連續(xù)性。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種保持視頻圖像連續(xù)性的方法,其特征在于,所述方法包括視頻編碼器采用不同碼率分別對視頻中每一幀畫面進行編碼,并將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼器;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率;視頻解碼器按照碼率的不同對接收到的數(shù)據(jù)報文分別保存和解碼,并按照視頻畫面幀的順序進行顯示;對于每一幀畫面的顯示,如果視頻解碼器接收到所述視頻編碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則顯示該解碼后最高碼率數(shù)據(jù)報文;如果視頻解碼器未接收到因網(wǎng)絡(luò)擁塞而被丟棄的,視頻解碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則在解碼后數(shù)據(jù)報文中選擇當(dāng)前碼率最高的解碼后數(shù)據(jù)報文,并切換為顯示所述選擇出的解碼后數(shù)據(jù)報文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述不同碼率的數(shù)據(jù)報文攜帶應(yīng)用層標識,用于區(qū)分不同碼率的數(shù)據(jù)報文;所述視頻解碼器按照碼率的不同對接收到的數(shù)據(jù)報文分別保存和解碼的方法為所述視頻解碼器根據(jù)所述數(shù)據(jù)報文攜帶的應(yīng)用層標識,區(qū)分收到的不同碼率的數(shù)據(jù)報文并分別保存和解碼。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述不同碼率的數(shù)據(jù)報文攜帶差分服務(wù)編碼點DSCP標簽,用于標識報文優(yōu)先級;其中,按各碼率從高到低的順序為不同碼率的數(shù)據(jù)報文分別分配從低到高的優(yōu)先級;當(dāng)網(wǎng)絡(luò)擁塞時,根據(jù)數(shù)據(jù)報文攜帶的DSCP標簽從優(yōu)先級低到高的順序優(yōu)先丟棄優(yōu)先級低的數(shù)據(jù)報文。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述各碼率的和為會話總碼率之后,該方法進一步包括所述各碼率的關(guān)系為各碼率由高到低依次排序為M1, M2, ...,Mi, ...,Mn,其中,Mi為 Mi+1的α倍,r,為大于1的數(shù),η為不同碼率的個數(shù),η為大于等于2的自然數(shù),i為小于等于η的自然數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法進一步包括所述視頻解碼器統(tǒng)計接收數(shù)據(jù)報文的丟包率,當(dāng)丟包率低于第一預(yù)設(shè)值,所述視頻解碼器發(fā)送修改Modify報文給所述視頻編碼器,通知所述視頻編碼器調(diào)高所述A的值;所述視頻編碼器收到所述視頻解碼器發(fā)來的調(diào)高所述^的值的通知時,調(diào)高所述A 值,并向所述視頻解碼器發(fā)送^的值已調(diào)高的確認報文;當(dāng)丟包率高于第二預(yù)設(shè)值,所述視頻解碼器發(fā)送Modify報文給所述視頻編碼器,通知所述視頻編碼器降低所述^的值;所述視頻編碼器收到所述視頻解碼器發(fā)來的降低所述^的值的通知時,降低所述A 值,并向所述視頻解碼器發(fā)送^的值已降低的確認報文。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述視頻解碼器收到所述視頻編碼器發(fā)來的已調(diào)高或降低所述^值的確認報文之后,該方法進一步包括所述視頻編碼器用調(diào)高或降低的A值重新計算不同碼率,采用重新計算的不同碼率對視頻幀中未傳輸?shù)囊曨l幀進行編碼,并通過網(wǎng)絡(luò)傳輸給所述視頻解碼器;所述視頻解碼器按照碼率的不同對接收到的所述采用重新計算的不同碼率編碼的數(shù)據(jù)報文分別保存和解碼,并按照視頻畫面幀的順序進行顯示。
7.根據(jù)權(quán)利要求4-6任意一項所述的方法,其特征在于,所述切換方法進一步包括下述方式之一或任意組合如果當(dāng)前顯示畫面的實際分辨率小于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率到第三預(yù)設(shè)值以上時,切換為顯示碼率為Mw解碼后數(shù)據(jù)報文顯示;如果當(dāng)前顯示畫面的實際分辨率大于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率的值到第四預(yù)設(shè)值以上時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文;或,所述視頻解碼器統(tǒng)計不同碼率數(shù)據(jù)報文的丟包率,當(dāng)丟包率高于碼率為Mi視頻的第一預(yù)設(shè)容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mw解碼后數(shù)據(jù)報文;當(dāng)丟包率低于碼率為Mi的第二預(yù)設(shè)容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文。
8.根據(jù)權(quán)利要求4-6任意一項所述的方法,其特征在于,所述視頻編碼器將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼器的方法為所述視頻編碼器先發(fā)送1的數(shù)據(jù)報文,當(dāng)所述視頻解碼器收到所述Mn的數(shù)據(jù)報文并開始解碼時,所述視頻編碼器混雜發(fā)其他碼率的數(shù)據(jù)報文。
9.根據(jù)權(quán)利要求1-6任意一項所述的方法,其特征在于,所述方法進一步包括所述視頻編碼器和視頻解碼器還會話協(xié)商通過單通道傳輸數(shù)據(jù)報文;所述視頻編碼器向所述視頻解碼器從單通道傳輸不同碼率的數(shù)據(jù)報文;所述視頻解碼器從單通道收到所述視頻編碼器發(fā)來的不同碼率的數(shù)據(jù)報文;或,所述視頻編碼器和視頻解碼器還會話協(xié)商通過多通道傳輸數(shù)據(jù)報文;所述視頻編碼器向所述視頻解碼器從多通道傳輸不同碼率的數(shù)據(jù)報文;所述視頻解碼器從多通道收到所述視頻編碼器發(fā)來的不同碼率的數(shù)據(jù)報文。
10.一種保持視頻圖像連續(xù)性的視頻編碼器,其特征在于,所述視頻編碼器包括編碼單元和發(fā)送單元;所述編碼單元,與所述發(fā)送單元相連,用于采用不同碼率分別對視頻中每一幀畫面進行編碼;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率;所述發(fā)送單元,用于將每一幀畫面不同碼率的數(shù)據(jù)報文通過網(wǎng)絡(luò)傳輸給視頻解碼器。
11.根據(jù)權(quán)利要求10所述的視頻編碼器,其特征在于,所述視頻編碼器進一步包括標識單元;所述標識單元,與所述編碼單元相連,用于為不同碼率的數(shù)據(jù)報文添加應(yīng)用層標識,使所述視頻編碼器根據(jù)收到的數(shù)據(jù)報文的應(yīng)用層標識區(qū)分不同碼率的數(shù)據(jù)報文。
12.根據(jù)權(quán)利要求10所述的視頻編碼器,其特征在于,所述標識單元,進一步用于為不同碼率的數(shù)據(jù)報文添加差分服務(wù)編碼點DSCP標簽,所述DSCP標簽用于標識報文優(yōu)先級;當(dāng)網(wǎng)絡(luò)擁塞時,使網(wǎng)絡(luò)根據(jù)數(shù)據(jù)報文攜帶的DSCP標簽從優(yōu)先級低到高的順序優(yōu)先丟棄優(yōu)先級低的數(shù)據(jù)報文;其中,按各碼率從高到低的順序為各數(shù)據(jù)報文分別分配從低到高的優(yōu)先級。
13.根據(jù)權(quán)利要求9-12任意一項所述的視頻編碼器,其特征在于,所述發(fā)送單元,進一步用于向所述視頻解碼器從單通道傳輸不同碼率的數(shù)據(jù)報文;所述單通道傳輸為視頻會話協(xié)商出的;或,所述發(fā)送單元,進一步用于向所述視頻解碼器從多通道傳輸不同碼率的數(shù)據(jù)報文; 所述多通道傳輸為視頻會話協(xié)商出的。
14.一種保持視頻圖像連續(xù)性的視頻解碼器,其特征在于,所述視頻解碼器包括接收單元、處理單元和顯示單元;所述接收單元,與所述處理單元相連,用于通過網(wǎng)絡(luò)接收到來自視頻編碼器的數(shù)據(jù)報文,所述數(shù)據(jù)報文是視頻編碼器對視頻中每一幀畫面編碼后獲得的數(shù)據(jù)報文,且每一幀畫面是采用不同碼率分別進行編碼的,各碼率的和為視頻會話協(xié)商出的所述視頻解碼器要查看的會話總碼率;所述處理單元,與所述顯示單元相連,用于將所述接收單元接收的數(shù)據(jù)報文按照碼率的不同分別保存和解碼;所述顯示單元,用于將所述處理單元解碼后數(shù)據(jù)報文按照視頻畫面幀的順序進行顯示;對于每一幀畫面的顯示,如果所述接收單元接收到所述視頻編碼器采用的最高碼率編碼的當(dāng)前視頻畫面幀的數(shù)據(jù)報文,則顯示該解碼后最高碼率數(shù)據(jù)報文;如果所述接收單元未接收到因網(wǎng)絡(luò)擁塞而被丟棄的當(dāng)前視頻畫面幀的最高碼率數(shù)據(jù)報文,則在解碼后數(shù)據(jù)報文中選擇碼率最高的解碼后數(shù)據(jù)報文,并切換為顯示所述選擇出的解碼后數(shù)據(jù)報文。
15.根據(jù)權(quán)利要求14所述的視頻解碼器,其特征在于,所述各碼率的關(guān)系為各碼率由高到低依次排序為M1, M2, ...,Mi, ...,Mn,其中,Mi為 Mi+1的α倍,r,為大于1的數(shù),η為不同碼率的個數(shù),η為大于等于2的自然數(shù),i為小于等于η的自然數(shù)。
16.根據(jù)權(quán)利要求15所述的視頻解碼器,特征在于,所述視頻解碼器進一步包括統(tǒng)計單元和調(diào)整單元;所述統(tǒng)計單元,與所述接收單元相連,用于統(tǒng)計接收數(shù)據(jù)報文的丟包率;所述調(diào)整單元,與所述統(tǒng)計單元相連,用于當(dāng)所述統(tǒng)計單元統(tǒng)計丟包率低于第一預(yù)設(shè)值時,向視頻解碼器發(fā)送修改Modify報文給視頻編碼器,通知視頻編碼器調(diào)高所述A值; 或,用于當(dāng)所述統(tǒng)計單元統(tǒng)計丟包率高于第二預(yù)設(shè)值時,向視頻解碼器發(fā)送Modify報文給視頻編碼器,通知視頻編碼器降低所述A值;所述接收單元,進一步用于當(dāng)所述調(diào)整單元通知視頻編碼器調(diào)高所述^值之后,接收到視頻編碼器發(fā)來的已調(diào)高所述A值的確認報文;或用于當(dāng)所述調(diào)整單元通知視頻編碼器降低所述!^值之后,接收到視頻編碼器發(fā)來的已降低所述值的確認報文
17.根據(jù)權(quán)利要求15所述的視頻解碼器,其特征在于,所述接收單元,進一步用于接收視頻編碼器發(fā)來的已調(diào)高或較低所述^值的確認報文之后,接收到不同碼率的數(shù)據(jù)報文;所述不同碼率的數(shù)據(jù)報文為用調(diào)高或降低后的所述^ 值重新計算的不同碼率進行編碼的數(shù)據(jù)報文。
18.根據(jù)權(quán)利要求15-17所述的視頻解碼器,其特征在于,所述視頻解碼器進一步包括切換單元;所述切換單元,與所述顯示單元相連,用于如果當(dāng)前顯示畫面的實際分辨率小于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率到第三預(yù)設(shè)值以上時,切換為顯示碼率為Mw解碼后數(shù)據(jù)報文顯示;如果當(dāng)前顯示畫面的實際分辨率大于碼率為Mi解碼后的數(shù)據(jù)報文顯示畫面的分辨率的值到第四預(yù)設(shè)值以上時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文; 所述顯示單元,顯示所述切換單元切換后的解碼后數(shù)據(jù)報文; 或,所述切換單元,與所述統(tǒng)計單元和所述顯示單元相連,用于當(dāng)所述統(tǒng)計單元統(tǒng)計不同碼率數(shù)據(jù)報文的丟包率高于碼率為Mi視頻的第一預(yù)設(shè)容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mw解碼后數(shù)據(jù)報文;用于當(dāng)所述統(tǒng)計單元統(tǒng)計不同碼率數(shù)據(jù)報文丟包率低于碼率為Mi視頻的第二預(yù)設(shè)容忍丟包率,并持續(xù)預(yù)設(shè)時間時,切換為顯示碼率為Mp1解碼后數(shù)據(jù)報文;所述顯示單元,顯示所述切換單元切換后的解碼后數(shù)據(jù)報文。
19.根據(jù)權(quán)利要求14-17任意一項所述的視頻解碼器,其特征在于, 所述接收單元,進一步用于從單通道收到所述視頻編碼器傳輸?shù)牟煌a率的數(shù)據(jù)報文;所述單通道為視頻會話協(xié)商出的;或,所述接收單元,進一步用于從多通道收到所述視頻編碼器傳輸?shù)牟煌a率的數(shù)據(jù)報文;所述多通道為視頻會話協(xié)商出的。
全文摘要
本發(fā)明公開了一種保持視頻圖像連續(xù)性的方法,該方法包括視頻編碼器采用不同碼率分別對視頻中每一幀畫面進行編碼,通過網(wǎng)絡(luò)傳輸給視頻解碼器;其中,各碼率的和為視頻會話協(xié)商出的會話總碼率;視頻解碼器按照碼率的不同對接收到的數(shù)據(jù)報文分別保存和解碼,并按照視頻畫面幀的順序進行顯示;對于每一幀畫面,在收到的數(shù)據(jù)報文中選擇該幀碼率最高的數(shù)據(jù)報文,進行解碼并顯示。基于上述同樣的發(fā)明構(gòu)思,本發(fā)明還提出了一種裝置,當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞的時候,在保證實時性的情況下,能夠保持視頻圖像的連續(xù)性。
文檔編號H04N7/26GK102307302SQ20111018891
公開日2012年1月4日 申請日期2011年7月6日 優(yōu)先權(quán)日2011年7月6日
發(fā)明者李飛 申請人:杭州華三通信技術(shù)有限公司