專利名稱:一種控制緩存溢出的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種控制緩存溢出的方法及裝置。
背景技術(shù):
流媒體視頻業(yè)務(wù)是第三代移動通信(3G)的一項重要應(yīng)用。目前,3G網(wǎng) 絡(luò)可以提供豐富的流媒體視頻業(yè)務(wù),包括流媒體視頻點播業(yè)務(wù)和流媒體視頻 直播業(yè)務(wù)。隨著3G的不斷發(fā)展,流媒體視頻業(yè)務(wù)越來越受到用戶的青睞。
由于3G網(wǎng)絡(luò)的不穩(wěn)定性,例如3G網(wǎng)絡(luò)受多經(jīng)、弱覆蓋等影響,信號 的誤碼率增大,數(shù)據(jù)重傳的次數(shù)增加,導(dǎo)致一段時間內(nèi)傳輸鏈路吞吐率過大, 網(wǎng)路節(jié)點堆積了大量流媒體視頻業(yè)務(wù)數(shù)據(jù)幀。當堆積的流媒體視頻業(yè)務(wù)數(shù)據(jù) 幀過多,超過了網(wǎng)絡(luò)節(jié)點緩存的負荷,就會產(chǎn)生緩存溢出,丟棄此時到達的 部分流媒體視頻業(yè)務(wù)數(shù)據(jù)幀。
現(xiàn)有控制緩存溢出的方法包括緩存隊列長度管理技術(shù)以及隨機早期檢 測技術(shù)。緩存隊列長度管理技術(shù)是對每個緩存隊列設(shè)定一個最大長度,并且 通常以流媒體視頻業(yè)務(wù)視頻幀的個數(shù)為單位,當隊列長度小于最大長度時, 網(wǎng)絡(luò)節(jié)點接收到達的所有流媒體視頻業(yè)務(wù)視頻幀, 一旦隊列長度達到最大長 度,就拒絕接收隨后到達的流媒體視頻業(yè)務(wù)視頻幀。但是若隊列中有的流媒 體視頻業(yè)務(wù)視頻幀因為被發(fā)送而離開隊列,導(dǎo)致隊列長度小于最大長度,網(wǎng) 絡(luò)節(jié)點會繼續(xù)接收到達的流媒體視頻業(yè)務(wù)視頻幀。
隨機早期檢測技術(shù)根據(jù)緩存內(nèi)流媒體視頻業(yè)務(wù)視頻幀的情況動態(tài)控制緩 存溢出。隨機早期檢測技術(shù)不是簡單地當緩存滿了才丟棄流媒體視頻業(yè)務(wù)視 頻幀,而是以一定的概率丟棄到達的流媒體視頻業(yè)務(wù)視頻幀。具體來說,當 緩存內(nèi)的流媒體視頻業(yè)務(wù)視頻幀較少,則到達的流媒體視頻業(yè)務(wù)視頻幀不大 可能被丟掉,當緩存內(nèi)的流媒體視頻業(yè)務(wù)視頻幀較多,則表示當前發(fā)生了擁 塞,到達的流媒體視頻業(yè)務(wù)視頻幀很有可能被丟掉。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)上述兩種現(xiàn)有方法至少存在如下缺 點當發(fā)生緩存溢出時,對流i某體視頻業(yè)務(wù)視頻幀不加分辨就直接丟棄,如
果丟棄的視頻幀攜帶有重要信息,就會嚴重影響流媒體視頻業(yè)務(wù)的業(yè)務(wù)質(zhì)量。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供了一種控制緩存溢出的方法及裝置,以解 決現(xiàn)有技術(shù)對流媒體視頻業(yè)務(wù)視頻幀不加分辨就直接丟棄的問題。
一種控制緩存溢出的方法,所述方法包括
判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;
若所述緩存隊列中所述緩存數(shù)據(jù)量大于預(yù)設(shè)門限值,根據(jù)所述緩存隊列 中視頻幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀。
一種控制緩存溢出的裝置,所述裝置包括
判斷單元,用于判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;
控制單元,用于若所述判斷單元判斷所述緩存隊列中所述緩存數(shù)據(jù)量大 于預(yù)設(shè)門限值,根據(jù)所述緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范 圍小的視頻幀。
可以看出當緩存隊列負荷過大,達到溢出門限時,根據(jù)視頻幀的類型 和位置有選擇地控制緩存溢出,從而提高了流媒體視頻業(yè)務(wù)的業(yè)務(wù)質(zhì)量,有 效減少了畫面中的馬賽克、跳躍等現(xiàn)象。
圖1為本發(fā)明方法實施例的流程圖一; 圖2為本發(fā)明方法實施例的流程圖二; 圖3為本發(fā)明裝置實施例的結(jié)構(gòu)圖一; 圖4為本發(fā)明裝置實施例的結(jié)構(gòu)圖二。
具體實施例方式
為使本發(fā)明的上述特征、優(yōu)點更加明顯易懂,下面結(jié)合具體實施方式
對 本發(fā)明進行詳細說明。
本發(fā)明實施例可以適用于各種視頻幀,例如,可以適用于音視頻混合編
碼的視頻幀,也可以適用于視頻單獨編碼的視頻幀,并不限定其類型。本發(fā) 明實施例所提到的緩存,可以適用于各種端到端的網(wǎng)絡(luò),可以適用于各種網(wǎng) 元的各個層次,并不限定其應(yīng)用范圍。
請參考圖1,示出了本發(fā)明的方法實施例流程圖一,包括
步驟101:判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;
步驟102:若所述緩存隊列中所述緩存數(shù)據(jù)量大于預(yù)設(shè)門限值,根據(jù)所述 緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀。
本發(fā)明實施例中所述的緩存數(shù)據(jù)量,例如,可以是包的個數(shù),也可以是 視頻幀的個數(shù),也可以是緩存空間大小(bit),本發(fā)明實施例并不限定其具體 表現(xiàn)形式。
下面結(jié)合具體實施例對圖1所示各步驟進行詳細說明。
視頻幀是流媒體視頻業(yè)務(wù)最小的單位,按照類型可以分為I幀、P幀、B 幀。 一個畫面組是以I幀為起始幀的一組I幀、P幀、B幀的組合。I幀是幀 內(nèi)編碼,P幀和B幀是幀間編碼。B幀編碼時參考了與其前后相鄰的I幀或P 幀,P幀的編碼參考了與其前向相鄰的I幀或者P幀。接收端解碼時,由于I 幀是幀內(nèi)編碼,因此I幀可以根據(jù)編碼信息獨自解碼,而P幀和B幀必須獲 得其參考幀才可以進行解碼。
根據(jù)I幀、P幀、B幀的編碼特性,在接收端,當I幀、P幀、B幀發(fā)生 錯誤時,例如I幀、P幀或者B幀被丟棄,I幀、P幀、B幀按照相互影響程 度進行排列,為I幀> P幀> B幀。即由于P幀和B幀的編碼均需要參考I 幀,所以I幀對P幀和B幀的影響程度最大,影響一個畫面組的所有P幀及B 幀;由于I幀和P幀的編碼均不需要參考B幀,所以B幀對I幀和P幀的影 響程度最小,只影響B(tài)幀自身;而P幀對I幀和B幀的影響程度介于I幀和B 幀之間,并且耳又決于P幀在一個畫面組中的位置,P幀影響與其前向相鄰的連 續(xù)B幀直至一個畫面組中結(jié)尾的所有P幀和B幀。
由于I幀對P幀和B幀影響程度最大,所以,I幀對流媒體視頻業(yè)務(wù)的質(zhì) 量影響程度最大,同樣,由于B幀對I幀和P幀影響程度最小,所以,B幀 對流媒體視頻業(yè)務(wù)的質(zhì)量影響程度最小。
本發(fā)明實施例以視頻幀的上述特性為出發(fā)點,根據(jù)I幀、P幀、B幀相互 之間的影響程度,當緩存隊列中緩存數(shù)據(jù)量大于預(yù)設(shè)門限值時,啟動緩存溢
出控制,首先丟棄只影響自身的幀,即B幀。當B幀被丟棄完時,若緩存隊
列中緩存數(shù)據(jù)量仍然大于預(yù)設(shè)門限值,再丟棄p幀,直至緩存隊列中緩存數(shù)
據(jù)量不大于預(yù)設(shè)的門限值為止。請參考圖2,為本發(fā)明方法實施例的流程圖二, 具體可以包括以下步驟
步驟201:判斷緩存隊列的緩存數(shù)據(jù)量是否大于預(yù)設(shè)的門限值N,如果大 于,則進入步驟202,否則,繼續(xù)執(zhí)行該步驟;
步驟202:判斷緩存隊列中是否有B幀,若有,則進入步驟203,否則, 進入步驟204;
步驟203:丟棄緩存隊列中的最后一個B幀,返回步驟201;
在步驟203中,由于B幀只影響自身,所以從刪除B幀開始,在此,僅 以刪除最后一個B幀為例進行說明。
步驟204:判斷緩存隊列中是否有I幀,若有,則進入步驟205,否則, 進入步驟206;
在步驟204中,緩存隊列中可以有一個I幀,也可以有多個I幀。
步驟205:丟棄緩存隊列中與I幀前向相鄰的P幀,返回步驟201;
當緩存隊列中有一個I幀時,則刪除與該I幀前向相鄰的P幀。當緩存隊列 中有多個I幀時,則按照I幀在緩存隊列中從后向前的順序,依次刪除各I幀前 向相鄰的P幀。
步驟206:丟棄緩存隊列中的最后一個P幀,返回步驟201。
在步驟205與步驟206中,由于P幀影響與其前向相鄰的連續(xù)B幀直至一個 畫面組中結(jié)尾的所有P幀和B幀,在沒有B幀的情況下,P幀影響一個畫面組中 從該P幀至該P幀所在畫面組結(jié)尾所有的P幀,所以,需要乂人畫面組中最后一個 P幀開始刪除,減少對該畫面組中的其它P幀的影響,降低緩存溢出對流媒體 時頻業(yè)務(wù)質(zhì)量的影響。
以上對本發(fā)明方法實施例進行了詳細說明,可以看出,當緩存隊列中緩 存數(shù)據(jù)量大于預(yù)設(shè)門限值時,根據(jù)緩存隊列中視頻幀的類型和位置有選擇地 進行丟棄,從只影響自身的B幀開始丟棄,而對其它幀影響最大的I幀始終不 了-丟棄,從而提高了孤7禾體視頻業(yè)務(wù)的業(yè)務(wù)質(zhì)量,有效減少了畫面中的馬賽 克、跳躍等現(xiàn)象。
請參考圖3,為本發(fā)明裝置實施例結(jié)構(gòu)圖一,包括
判斷單元301,用于判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;
控制單元302,若所述判斷單元判斷所述緩存隊列中所述緩存數(shù)據(jù)量大于 預(yù)設(shè)門限值,根據(jù)所述緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范圍 小的纟見頻幀。
請參考圖4,為本發(fā)明裝置實施例結(jié)構(gòu)圖二。圖4在圖3的基礎(chǔ)上,結(jié)合步 驟201至步驟206,控制單元可以至少包括以下模塊之一
第一控制模塊302-l,用于當所述緩存隊列中有B幀時,丟棄所述B幀;
第二控制模塊302-2,用于當所述緩存隊列中有I幀但沒有B幀時,丟棄 與所述I幀前向相鄰的P幀;
第三控制模塊302-3,用于當所述緩存隊列中沒有I幀且沒有B幀時,丟 棄所述緩存隊列中最后一個P幀。
下面結(jié)合步驟201至步驟206對圖4中各單元以及模塊執(zhí)行的操作進行 詳細說明。
當判斷單元301判斷出緩存隊列中緩存數(shù)據(jù)量大于預(yù)設(shè)門限值時,第一控 制模塊302-l判斷所述緩存隊列中是否有B幀,如果有B幀,丟棄緩存隊列中的 最后一個B幀。
或者,當判斷單元301判斷出緩存隊列中緩存數(shù)據(jù)量大于預(yù)設(shè)門限值時, 第二控制模塊302-2判斷出緩存隊列中有I幀但是沒有B幀時,丟棄與I幀前向相 鄰的P幀。同樣需要指出的是,當緩存隊列中有一個I幀時,第二控制模塊302-2 丟棄與該I幀前向相鄰的P幀。當緩存隊列中有多個I幀時,第二控制^t塊302-2 按照I幀在緩存隊列中從后向前的順序,依次丟棄各I幀前向相鄰的P幀。
或者,當判斷單元301判斷出緩存隊列中緩存數(shù)據(jù)量大于預(yù)設(shè)門限值時,
第三控制模塊302-3判斷出緩存隊列中沒有I幀并且沒有B幀時,丟棄緩存隊列
中最后一個p幀。
本發(fā)明裝置實施例提供的裝置可以包括各網(wǎng)絡(luò)節(jié)點以及終端,其中,網(wǎng)
絡(luò)節(jié)點可以包括基站控制器BSC、無線網(wǎng)絡(luò)控制器RNC、網(wǎng)關(guān)GPRS支持節(jié)點 GGSN、網(wǎng)關(guān)GW或者傳輸節(jié)點。終端可以包括固定終端或者移動終端,具體 可以為用戶設(shè)備UE、個人電腦PC。
可以看出,由于控制單元可以根據(jù)視頻幀的類型和視頻幀在緩存隊列中 的位置、有選擇地對緩存隊列中的視頻幀進行刪除,具體為,刪除對其它視 頻幀影響最小或者較小的視頻幀,而不刪除對其它視頻幀影響最大的視頻幀, 進而,提高了流媒體視頻業(yè)務(wù)的業(yè)務(wù)質(zhì)量,有效減少了畫面中的馬賽克、跳 躍等現(xiàn)象。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù) 語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定 要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而 且,術(shù)語"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的包含, 從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素, 而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、 物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一 個......"限定的要素,并不排除在包括所述要素的過程、方法、物品或者
設(shè)備中還存在另外的相同要素。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本 發(fā)明可借助軟件加必需的硬件平臺的方式來實現(xiàn),當然也可以全部通過硬 件來實施,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā) 明的技術(shù)方案對背景技術(shù)做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁 碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機, 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分 所述的方法。
以上對本發(fā)明所提供的 一 種控制緩存溢出的方法及裝置進行了詳細介
實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于
本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍 上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1、一種控制緩存溢出的方法,其特征在于,所述方法包括判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;若所述緩存隊列中所述緩存數(shù)據(jù)量大于預(yù)設(shè)門限值,根據(jù)所述緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述緩存隊列中視頻 幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀包括當所述緩存隊列中有B幀時,丟棄所述B幀。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述緩存隊列中視頻 幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀包括當所述緩存隊列中有I幀但沒有B幀時,丟棄與所述I幀前向相鄰的P幀。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,當所述緩存隊列中有I幀 但沒有B幀時,丟棄與所述I帕前向相鄰的P幀包括當所述緩存隊列中有一個I幀時,丟棄與所述I幀前向相鄰的P幀;或者, 當所述緩存隊列中有至少兩個I幀時,按照所述至少兩個I幀在所述緩存隊列 中從后向前的順序,依次丟棄所述至少兩個I幀前向相鄰的P幀。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述緩存隊列中視頻 幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀包括當所述緩存隊列中沒有I幀且沒有B幀時,丟棄所述緩存隊列中最后一 個P幀。
6、 一種控制緩存溢出的裝置,其特征在于,所述裝置包括判斷單元,用于判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;控制單元,用于若所述判斷單元判斷所述緩存隊列中所述緩存數(shù)據(jù)量大 于預(yù)設(shè)門限值,根據(jù)所述緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范 圍小的視頻幀。
7、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述控制單元至少包括下述模塊之一第一控制模塊,用于當所述緩存隊列中有B幀時,丟棄所述B幀;第二控制模塊,用于當所述緩存隊列中有I幀但沒有B幀時,丟棄與所 述I幀前向相鄰的P幀;第三控制模塊,用于當所述緩存隊列中沒有I幀且沒有B幀時,丟棄所 述緩存隊列中最后一個P幀。
8、 根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述裝置具體為網(wǎng) 絡(luò)節(jié)點或終端。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述網(wǎng)絡(luò)節(jié)點具體為基 站控制器BSC、無線網(wǎng)絡(luò)控制器RNC、網(wǎng)關(guān)通用無線分組業(yè)務(wù)GPRS支持節(jié) 點GGSN、網(wǎng)關(guān)或者傳輸節(jié)點。
全文摘要
本發(fā)明公開了一種控制緩存溢出的方法及裝置。本發(fā)明提供的方法包括判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值;若所述緩存隊列中所述緩存數(shù)據(jù)量大于預(yù)設(shè)門限值,根據(jù)所述緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀。本發(fā)明提供的裝置包括判斷單元以及控制單元,其中,判斷單元用于判斷緩存隊列中緩存數(shù)據(jù)量是否大于預(yù)設(shè)門限值,控制單元用于若所述緩存隊列中所述緩存數(shù)據(jù)量大于預(yù)設(shè)門限值,根據(jù)所述緩存隊列中視頻幀的類型和位置,丟棄錯誤擴散范圍小的視頻幀。通過本發(fā)明,提高了流媒體視頻業(yè)務(wù)的業(yè)務(wù)質(zhì)量,有效減少了畫面中的馬賽克、跳躍等現(xiàn)象。
文檔編號H04L29/08GK101360058SQ20081021564
公開日2009年2月4日 申請日期2008年9月8日 優(yōu)先權(quán)日2008年9月8日
發(fā)明者周素萍, 斌 李, 谷安文, 陳玉芳 申請人:華為技術(shù)有限公司