一種用于傳屏視頻的處理方法
【專利摘要】本發(fā)明公開了一種用于傳屏視頻的處理方法,該方法包括以下步驟:接收傳屏視頻數(shù)據(jù),并獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包;將數(shù)據(jù)包存入等待解碼隊列中;從等待解碼隊列中提取數(shù)據(jù)包,并判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值;若判斷的結(jié)果為是,則提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),并返回提取數(shù)據(jù)包,并判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值的步驟;若判斷的結(jié)果為否,則對數(shù)據(jù)包進行解碼。由此,本發(fā)明可以盡快的消耗等待解碼隊列中的數(shù)據(jù),防止數(shù)據(jù)堆積造成的延時增大。
【專利說明】一種用于傳屏視頻的處理方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及多媒體技術(shù)領(lǐng)域,尤其是涉及一種用于傳屏視頻的處理方法。
[0003]
【背景技術(shù)】
[0004]隨著信息技術(shù)的不斷發(fā)展,可以實現(xiàn)不同資源在不同平臺設(shè)備上進行同時共享展示,實現(xiàn)多屏互動,豐富了用戶的多媒體生活。
[0005]現(xiàn)有技術(shù)的多屏互動中的客戶端的對傳屏視頻的處理方法有以下兩種方案: 第一種方案是:首先網(wǎng)絡(luò)接收與解復(fù)用(demux)傳屏視頻數(shù)據(jù),以得到傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包,然后解碼和顯示。
[0006]其中,解碼的過程具體為對視頻傳屏數(shù)據(jù)對應(yīng)的數(shù)據(jù)包進行解碼,并進一步將解碼后的數(shù)據(jù)從YUV格式轉(zhuǎn)換為RGB格式,最后將轉(zhuǎn)換后的幀數(shù)據(jù)存入等待顯示隊列。
[0007]顯示的過程具體為從顯示隊列中取出幀數(shù)據(jù),根據(jù)當(dāng)前幀的時間戳與上一幀的時間戳計算當(dāng)前幀的顯示時間,若當(dāng)前幀可以立刻顯示則顯示當(dāng)前幀,否則休眠顯示線程直到當(dāng)前幀可以顯示為止。
[0008]第二種方案是:首先接收源屏幕設(shè)備編碼得到的包括視頻幀和音頻幀的數(shù)據(jù)幀,視頻幀包括:1幀;若檢測到當(dāng)前所接收到數(shù)據(jù)幀中的視頻幀未到達第二個I幀,則刪除當(dāng)前所接收到的數(shù)據(jù)幀;若檢測到當(dāng)前所接收到數(shù)據(jù)幀中的視頻幀是第二個I幀,則解碼當(dāng)前以及第二個I幀之后所接收到的數(shù)據(jù)幀,并將解碼后得到的映像顯示到屏幕上。由此可以有效減少傳屏映像時的延遲,讓多屏互動時可以更有效的達到實時顯示的效果。
[0009]但是第一種方案存在以下缺陷:
解碼線程處理一幀數(shù)據(jù)的耗時要高于網(wǎng)絡(luò)接收、解復(fù)用操作的耗時(特別是在傳屏視頻數(shù)據(jù)是高清視頻時耗時更大),即等待解碼隊列的數(shù)據(jù)消耗速度小于其數(shù)據(jù)產(chǎn)生速度。在現(xiàn)有技術(shù)中,若在使用多屏互動的過程中無線網(wǎng)絡(luò)出現(xiàn)波動或服務(wù)端編碼器輸出的幀率高于客戶端解碼線程的處理速度,則勢必會造成客戶端等待解碼隊列中的視頻數(shù)據(jù)堆積,視頻數(shù)據(jù)堆積越多則意味著最新的視頻越得不到顯示,即延時越大,體驗越差。進一步的,客戶端的顯示線程從等待顯示隊列中取出解碼好的幀數(shù)據(jù)后,還需要再計算當(dāng)前幀的顯示時間,并根據(jù)需要休眠顯示線程,這樣只會導(dǎo)致延時更大,體驗更差。
[0010]第二種方案存在以下缺陷:
第二種方案的核心是在客戶端傳屏播放開始階段丟棄一些視頻幀,直到收到第二個I幀才開始按正常流程解碼播放。由于其丟棄了第一個視頻幀序列(視頻幀序列時間長短不一,一般在0.5-4S之間),必然會導(dǎo)致客戶端從開始播放傳屏視頻到顯示出傳屏畫面的時間延長(延長了一個視頻幀序列的長度),即開始播放前的黑屏?xí)r間變長,不利于用戶體驗。[0011 ]同時,第二種方案只涉及傳屏視頻的開始播放階段,其無法解決上述第一種方案的播放過程中的問題,所以其同樣具有第一種方案的缺陷。
[0012]
【發(fā)明內(nèi)容】
[0013]本發(fā)明主要解決的技術(shù)問題是提供一種顯示終端及用于傳屏視頻的處理方法,既能確??蛻舳说却@示隊列中解碼好的傳屏視頻數(shù)據(jù)能盡快顯示,又不會在等待解碼隊列中產(chǎn)生傳屏視頻數(shù)據(jù)的積壓,視頻延時小,提高用戶的體驗。
[0014]為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種用于傳屏視頻的處理方法,該方法包括以下步驟:接收傳屏視頻數(shù)據(jù),并獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包;將數(shù)據(jù)包存入等待解碼隊列中;從等待解碼隊列中提取數(shù)據(jù)包,并判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值;若判斷的結(jié)果為是,則提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),并返回提取數(shù)據(jù)包,并判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值的步驟;若判斷的結(jié)果為否,則對數(shù)據(jù)包進行解碼。
[0015]其中,方法還包括:將解碼后的數(shù)據(jù)直接存入等待顯示隊列中。
[0016]其中,方法還包括:從顯示隊列中取出解碼后的數(shù)據(jù)并直接進行顯示。
[0017]其中,獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包的步驟包括:對傳屏視頻數(shù)據(jù)進行解復(fù)用,以獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包。
[0018]其中,將數(shù)據(jù)包存入等待解碼隊列中的步驟包括:將解復(fù)用后的數(shù)據(jù)包存入等待解碼隊列。
[0019]為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種顯示終端,該顯示終端包括:接收模塊,用于接收傳屏視頻數(shù)據(jù);數(shù)據(jù)包獲取模塊,用于獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包;第一存儲模塊,用于將數(shù)據(jù)包存入等待解碼隊列中;數(shù)據(jù)包提取模塊,用于從等待解碼隊列中提取數(shù)據(jù)包;判斷模塊,用于判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值;處理模塊,用于在判斷模塊判斷的結(jié)果為是時,提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),并控制數(shù)據(jù)包提取模塊繼續(xù)提取數(shù)據(jù)包,以及判斷模塊繼續(xù)判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值;在判斷模塊判斷的結(jié)果為否時,對數(shù)據(jù)包進行解碼。
[0020]其中,顯示終端進一步包括第二存儲模塊,用于將解碼后的數(shù)據(jù)直接存入等待顯示隊列中。
[0021]其中,顯示終端進一步包括顯示模塊,顯示模塊用于從顯示隊列中取出解碼后的數(shù)據(jù)并直接進行顯示。
[0022]其中,數(shù)據(jù)包獲取模塊為解復(fù)用模塊,用于對傳屏視頻數(shù)據(jù)進行解復(fù)用,以獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包。
[0023]其中,第一存儲模塊進一步用于將解復(fù)用后的數(shù)據(jù)包存入等待解碼隊列。
[0024]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明的顯示終端在判斷到傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包的數(shù)量大于預(yù)設(shè)的閾值時,只提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),只有數(shù)據(jù)包的數(shù)量小于或等于預(yù)設(shè)的閾值時才進行解碼,由此可以避免下一個數(shù)據(jù)包需要正常解碼時因為沒有參考數(shù)據(jù)導(dǎo)致花屏的情況下,又可以盡快的消耗等待解碼隊列中的數(shù)據(jù),防止數(shù)據(jù)堆積造成的延時增大。
[0025]
【附圖說明】
[0026]圖1是本發(fā)明實施例提供的一種顯示終端的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例提供的一種用于傳屏視頻的處理方法的流程圖。
[0027]
【具體實施方式】
[0028]請參閱圖1,圖1是本發(fā)明實施例提供的一種顯示終端的結(jié)構(gòu)示意圖。如圖1所示,本發(fā)明實施例提供的顯示終端10具體為多屏互動中的客戶端終端。其主要是接收服務(wù)端傳輸?shù)膫髌烈曨l數(shù)據(jù),并對該傳屏視頻數(shù)據(jù)進行解碼等操作后顯示給用戶。
[0029 ]具體而言,顯示終端1包括接收模塊11、數(shù)據(jù)包獲取模塊12、數(shù)據(jù)包提取模塊13、判斷模塊14、處理模塊15以及第一存儲模塊16。
[0030]其中,接收模塊11用于接收服務(wù)端的傳屏視頻數(shù)據(jù)。接收模塊11具體可為藍牙模塊或者天線模塊等。數(shù)據(jù)包獲取模塊12用于獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包。第一存儲模塊16用于將數(shù)據(jù)包存入等待解碼隊列中。數(shù)據(jù)包提取模塊13用于從等待解碼隊列中提取數(shù)據(jù)包。判斷模塊14用于判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值。處理模塊15用于在判斷模塊14判斷的結(jié)果為是時,提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),避免下一個數(shù)據(jù)包需要正常解碼時因為沒有參考數(shù)據(jù)導(dǎo)致花屏。處理模塊15進一步控制數(shù)據(jù)包提取模塊12繼續(xù)提取數(shù)據(jù)包,以及判斷模塊14繼續(xù)判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值。在判斷模塊14判斷的結(jié)果為否時,對數(shù)據(jù)包進行解碼。
[0031]其中,數(shù)據(jù)包的參考數(shù)據(jù)具體為下一視頻序列的參考圖像和當(dāng)前幀的預(yù)測值與預(yù)測誤差。
[0032]值得注意的是,在判斷模塊14判斷的結(jié)果為是時,處理模塊15提取了當(dāng)前的數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù)之后,即將當(dāng)前的數(shù)據(jù)包舍棄,即當(dāng)前的數(shù)據(jù)包不再進行解碼。由此可以節(jié)省了解碼的時間。
[0033]因此,在本實施例中,可以避免下一個數(shù)據(jù)包需要正常解碼時因為沒有參考數(shù)據(jù)導(dǎo)致花屏的情況下,又可以盡快的消耗等待解碼隊列中的數(shù)據(jù),防止數(shù)據(jù)堆積造成的延時增大。
[0034]進一步的,顯示終端10進一步包括第二存儲模塊18,用于將解碼后的數(shù)據(jù)直接存入等待顯示隊列中。由此可知,本實施例省去了現(xiàn)有技術(shù)中的格式轉(zhuǎn)換的步驟,因此更進一步節(jié)省了解碼的時間。
[0035]進一步的,顯示終端10進一步包括顯示模塊17,顯示模塊17用于從顯示隊列中取出解碼后的數(shù)據(jù)并直接進行顯示。由此,本實施例的顯示終端10不需要等待顯示,及時將視頻顯示給用戶,提高了用戶體驗。
[0036]本實施例中,數(shù)據(jù)包獲取模塊12具體可為解復(fù)用模塊,用于對傳屏視頻數(shù)據(jù)進行解復(fù)用處理,以獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包。其中,第一存儲模塊16進一步將解復(fù)用后的數(shù)據(jù)包存入等待解碼隊列中。
[0037]承前所述,本實施例既可盡快的消耗等待解碼隊列中的數(shù)據(jù),防止數(shù)據(jù)堆積造成的延時增大。又可及時的將解碼好的數(shù)據(jù)顯示給用戶,提高了用戶的體驗。
[0038]本申請還基于前文所述的顯示終端提供一種用于傳屏視頻的處理方法。具體請參閱圖2。
[0039]如圖2所示,本實施例的用于傳屏視頻的處理方法包括以下步驟:
步驟Si:接收傳屏視頻數(shù)據(jù),并獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包。
[0040]具體為:對傳屏視頻數(shù)據(jù)進行解復(fù)用,以獲取傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包。
[0041 ]步驟S2:將數(shù)據(jù)包存入等待解碼隊列中;
具體為將步驟SI解復(fù)用后的數(shù)據(jù)包存入等待解碼隊列中。
[0042]步驟S3:從等待解碼隊列中提取數(shù)據(jù)包,并判斷數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值。
[0043]本步驟中,若判斷的結(jié)果為是,則跳轉(zhuǎn)到步驟S4,若判斷的結(jié)果為否,則跳轉(zhuǎn)到步驟S5。
[0044]步驟S4:提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),并返回步驟S2。
[0045]其中,數(shù)據(jù)包的參考數(shù)據(jù)具體為下一視頻序列的參考圖像和當(dāng)前幀的預(yù)測值與預(yù)測誤差。
[0046]本步驟可避免下一個數(shù)據(jù)包需要正常解碼時因為沒有參考數(shù)據(jù)導(dǎo)致花屏。
[0047]值得注意的是,在本步驟中,提取了當(dāng)前的數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù)之后,即將當(dāng)前的數(shù)據(jù)包舍棄,即當(dāng)前的數(shù)據(jù)包不再進行解碼。由此可以節(jié)省了解碼的時間。
[0048]步驟S5:對數(shù)據(jù)包進行解碼。
[0049]方法還包括:將解碼后的數(shù)據(jù)直接存入等待顯示隊列中以及從顯示隊列中取出解碼后的數(shù)據(jù)并進行顯示。由此可以及時將視頻顯示給用戶,提高了用戶的體驗。
[0050]綜上所述,本發(fā)明通過在傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包的數(shù)量大于預(yù)設(shè)的閾值時,只提取數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),由此可以避免下一個數(shù)據(jù)包需要正常解碼時因為沒有參考數(shù)據(jù)導(dǎo)致花屏的情況下,又可以盡快的消耗等待解碼隊列中的數(shù)據(jù),防止數(shù)據(jù)堆積造成的延時增大。
[0051]進一步的,本發(fā)明還將解碼后的數(shù)據(jù)直接存入等待顯示隊列中以及從顯示隊列中取出解碼后的數(shù)據(jù)并進行顯示。由此可以及時將視頻顯示給用戶,提高了用戶的體驗。
[0052]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【主權(quán)項】
1.一種用于傳屏視頻的處理方法,其特征在于,所述方法包括以下步驟: 接收傳屏視頻數(shù)據(jù),并獲取所述傳屏視頻數(shù)據(jù)對應(yīng)的數(shù)據(jù)包; 將所述數(shù)據(jù)包存入等待解碼隊列中; 從所述等待解碼隊列中提取所述數(shù)據(jù)包,并判斷所述數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值; 若判斷的結(jié)果為是,則提取所述數(shù)據(jù)包中的對應(yīng)當(dāng)前視頻序列的下個數(shù)據(jù)包的參考數(shù)據(jù),并返回提取所述數(shù)據(jù)包,并判斷所述數(shù)據(jù)包的數(shù)量是否大于預(yù)設(shè)的閾值的步驟; 若判斷的結(jié)果為否,則對所述數(shù)據(jù)包進行解碼。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 將解碼后的數(shù)據(jù)直接存入等待顯示隊列中。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 從所述顯示隊列中取出所述解碼后的數(shù)據(jù)并直接進行顯示。
【文檔編號】H04N21/4402GK105847971SQ201610368583
【公開日】2016年8月10日
【申請日】2016年5月28日
【發(fā)明人】劉健文
【申請人】劉健文