專利名稱:一種多媒體數(shù)據(jù)的緩存控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體通信技術(shù)領(lǐng)域,具體涉及一種多媒體數(shù)據(jù)的緩存方法。
背景技術(shù):
多媒體緩存技術(shù)是多媒體通信中一個(gè)關(guān)鍵技術(shù),緩存的控制主要是在多媒體編解碼系統(tǒng)中控制緩沖器的多媒體數(shù)據(jù)流輸入輸出達(dá)到一致。例如在互聯(lián)網(wǎng)傳輸?shù)亩嗝襟w數(shù)據(jù)在傳輸中被分解為許多包,由于網(wǎng)絡(luò)是動(dòng)態(tài)變化的,各個(gè)包選擇的路由可能不盡相同,故到達(dá)客戶端的時(shí)間延遲也就不等,甚至先發(fā)的數(shù)據(jù)包有可能后到。為此,使用緩存系統(tǒng)來彌補(bǔ)延遲和抖動(dòng)的影響,并保證數(shù)據(jù)包的順序正確,從而使媒體數(shù)據(jù)能連續(xù)輸出,而不會(huì)因?yàn)榫W(wǎng)絡(luò)暫時(shí)擁塞使播放出現(xiàn)停頓。
在現(xiàn)有的流媒體技術(shù)中,當(dāng)網(wǎng)絡(luò)下載速度大于播放速度時(shí),為了避免下載的數(shù)據(jù)覆蓋緩存中還未播放的數(shù)據(jù),可以停止流媒體的下載,等到緩存中有空余緩存塊時(shí)再去下載流媒體。這種緩存方法在播放流媒體時(shí)可以保證媒體數(shù)據(jù)連續(xù)播放,而不會(huì)出現(xiàn)數(shù)據(jù)丟失。但在播放多媒體廣播的數(shù)據(jù)時(shí),如果在終端出現(xiàn)短暫的暫停狀態(tài)時(shí),或者終端執(zhí)行其他任務(wù)導(dǎo)致多媒體處理能力降低而來不及播放緩存中的多媒體數(shù)據(jù)時(shí),就會(huì)出現(xiàn)數(shù)據(jù)丟失的問題,因?yàn)槎嗝襟w廣播中的多媒體數(shù)據(jù)是以廣播方式播出的,終端如果不及時(shí)接收就再也不能獲得這些數(shù)據(jù)了。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的就是提供一種方法,在緩沖器的數(shù)據(jù)輸入流量和輸出流量不一致時(shí),特別是瞬時(shí)輸入流量大于輸出流量時(shí),緩沖器緩存多媒體數(shù)據(jù)的方法,使終端不間斷接收多媒體數(shù)據(jù),避免出現(xiàn)數(shù)據(jù)丟失的問題。
本發(fā)明的技術(shù)方案如下一種多媒體數(shù)據(jù)的緩存控制方法,包括以下步驟(1)設(shè)定一個(gè)表征視頻幀屬性的參數(shù),并設(shè)定該參數(shù)的一個(gè)動(dòng)態(tài)門限和一個(gè)截止門限,用于控制緩沖器中的每個(gè)視頻幀的碼率;(2)當(dāng)緩沖器中已有的視頻幀加上待輸入的視頻幀的碼流總長度大于緩沖器的存儲(chǔ)空間時(shí),調(diào)節(jié)動(dòng)態(tài)門限,降低所有的視頻幀或部分視頻幀的碼率,直到將待輸入的視頻幀存入緩沖器或者動(dòng)態(tài)門限達(dá)到所設(shè)定的截止門限為止。
所述的參數(shù)可以是表示視頻幀的碼率的參數(shù),可以是比特率或者是碼流長度。
所述的參數(shù)還可以是一個(gè)表示視頻幀的圖像質(zhì)量的參數(shù),可以是均方差、峰值信噪比或者碼流的率失真斜率。
視頻的圖像質(zhì)量與參數(shù)值的關(guān)系可以為單調(diào)增的關(guān)系,此時(shí)動(dòng)態(tài)門限的初值設(shè)為所有視頻幀中的參數(shù)值的最大值,截止門限為動(dòng)態(tài)門限的下限;所述的調(diào)節(jié)動(dòng)態(tài)門限的操作是減小動(dòng)態(tài)門限的值。
視頻的圖像質(zhì)量與參數(shù)值的關(guān)系還可以為單調(diào)減的關(guān)系,此時(shí)動(dòng)態(tài)門限的初值設(shè)為所有視頻幀中的參數(shù)值的最小值,截止門限為動(dòng)態(tài)門限的上限;所述的調(diào)節(jié)動(dòng)態(tài)門限的操作是增大動(dòng)態(tài)門限的值。
所述的降低所有視頻幀或部分視頻幀的碼率,是指將視頻幀的碼流長度截短到某個(gè)截取點(diǎn),丟棄截取點(diǎn)以后的碼流數(shù)據(jù),其中,該截取點(diǎn)處對(duì)應(yīng)的參數(shù)值接近動(dòng)態(tài)門限。此時(shí),已有的視頻幀和輸入的視頻幀都存入緩沖器,而且緩沖器沒有額外的空閑空間。
所述的動(dòng)態(tài)門限的調(diào)節(jié)方法是,預(yù)先設(shè)定一個(gè)步長,逐步增大或減小動(dòng)態(tài)門限來調(diào)節(jié)。
所述的動(dòng)態(tài)門限的調(diào)節(jié)方法,也可按照二分法進(jìn)行調(diào)節(jié)。
本發(fā)明的方法與現(xiàn)有技術(shù)相比,當(dāng)緩沖器的瞬時(shí)數(shù)據(jù)輸入流量大于輸出流量時(shí),緩沖器可以緩存更多的視頻幀。例如流媒體瞬時(shí)下載速度大于播放速度時(shí),可以不必暫停下載,就能緩存更多的視頻幀而不會(huì)造成視頻數(shù)據(jù)的覆蓋,而且還能夠保證視頻圖像質(zhì)量的穩(wěn)定性。同樣在播放多媒體廣播時(shí),也起到類似的作用。
圖1是說明按照本發(fā)明的在用碼率作為調(diào)節(jié)門限時(shí)的一個(gè)實(shí)施例的緩存控制流程圖。
圖2是說明按照本發(fā)明的實(shí)施例的緩沖器緩存更多視頻幀的示意圖。
具體實(shí)施例方式
圖1是本發(fā)明控制緩沖器緩存視頻流的一個(gè)實(shí)施例的流程圖,其中控制的門限參數(shù)選擇碼率,具體步驟如下步驟101首先判斷是否進(jìn)行緩沖,如果進(jìn)行緩沖,執(zhí)行步驟102,否則結(jié)束。進(jìn)行緩沖的一個(gè)條件是當(dāng)有新的視頻幀待輸入并且待輸入的視頻幀可以壓入緩沖器。例如當(dāng)新的視頻幀輸入時(shí),能夠在視頻幀的碼率不小于碼率截止門限的條件下,壓縮所有的視頻幀(緩沖器中已存的視頻幀以及新輸入的視頻幀),以便新的視頻幀能存入緩沖器?;蛘吡硪粋€(gè)條件是一直有視頻幀在輸出,不斷騰出空閑空間,以便待輸入的視頻幀可以存入緩沖器。如果視頻幀源源不斷地輸入,但沒有視頻幀從緩沖器中輸出;或者待輸入的視頻幀加上緩沖器已有的視頻幀不能再壓縮了(即碼率小于碼率截止門限,視頻質(zhì)量讓人不能再接受),這個(gè)時(shí)候緩沖功能將不能正常進(jìn)行,有些視頻數(shù)據(jù)將丟失。
步驟102判斷是否有視頻幀輸入,如果有,執(zhí)行步驟103,否則執(zhí)行步驟107。
步驟103判斷緩沖器的空閑空間是否足夠存儲(chǔ)待輸入的視頻幀,如果可以,執(zhí)行步驟106,否則執(zhí)行步驟104。
步驟104判斷視頻幀是否可以壓縮,如果是,執(zhí)行步驟105;否則執(zhí)行步驟107。這里判斷的視頻幀不僅指待輸入的視頻幀,還包括緩沖器已有的視頻幀,只有壓縮已有的視頻幀才能騰出更多的緩存空間。判斷的標(biāo)準(zhǔn)就是比較它們的碼率和截止門限,如果不都小于截止門限,那么就可以壓縮了。
步驟105設(shè)定動(dòng)態(tài)門限和截止門限,動(dòng)態(tài)門限初值設(shè)為所有視頻幀碼率的最大值,截止門限值設(shè)定為低于該值時(shí)圖像質(zhì)量無法接受。降低動(dòng)態(tài)門限,丟棄所有視頻幀(緩沖器中原有的視頻幀以及待輸入的視頻幀)中碼率大于動(dòng)態(tài)門限的那部分視頻數(shù)據(jù),直到待輸入的視頻幀能夠存入緩沖器或者動(dòng)態(tài)門限降低到截止門限為止。也就是說將視頻幀的碼流長度截短到某個(gè)截取點(diǎn),丟棄截取點(diǎn)以后的碼流數(shù)據(jù)(即只影響視頻圖像質(zhì)量細(xì)節(jié)的碼流數(shù)據(jù)),其中,該截取點(diǎn)處對(duì)應(yīng)的參數(shù)值接近動(dòng)態(tài)門限,此時(shí),已有的視頻幀和待輸入的視頻幀都能夠存入緩沖器,而且緩沖器沒有額外的空閑空間。這個(gè)步驟中的動(dòng)態(tài)門限的調(diào)節(jié)方法,可以預(yù)先設(shè)定一個(gè)步長,逐步降低動(dòng)態(tài)門限來調(diào)節(jié),也可以按照二分法進(jìn)行調(diào)節(jié)。
步驟106將符合要求的輸入的視頻幀存入緩沖器。
步驟107判斷緩沖器是否輸出視頻數(shù)據(jù)。如果是,執(zhí)行步驟108,否則返回步驟101。
步驟108從緩沖器輸出一部分視頻幀,騰出空閑空間。例如輸出緩沖器中原有視頻幀的第一幀數(shù)據(jù)。最后返回步驟101繼續(xù)進(jìn)行后面的緩沖。
圖2是說明按照本發(fā)明的實(shí)施例的緩沖器緩存更多視頻幀的示意圖。如圖2所示,如果緩沖器總的空間為L字節(jié),其中已經(jīng)存放了K幀的視頻幀數(shù)據(jù),當(dāng)?shù)贙+1幀(長度為M字節(jié))輸入時(shí),通過調(diào)節(jié)碼率的動(dòng)態(tài)門限,降低其中一部分視頻幀的碼率(減少視頻幀的碼流長度),以致第K+1幀也存入到緩沖器中。
上述的緩存方法可以用于視頻編解碼系統(tǒng)。例如當(dāng)流媒體的瞬時(shí)下載速度大于播放速度時(shí),通過上述方法可以便于緩沖器緩存更多的視頻幀而不必停止下載過程。在變碼率的視頻編碼系統(tǒng)中,采用信噪比等表示視頻質(zhì)量的參數(shù)作為動(dòng)態(tài)門限,可以保證視頻圖像質(zhì)量的穩(wěn)定性,獲得較好的主觀效果。在多媒體廣播播放過程中,如果出現(xiàn)短暫的播放暫停,也能實(shí)現(xiàn)節(jié)目的連續(xù)觀看。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種多媒體數(shù)據(jù)的緩存控制方法,包括以下步驟(1)設(shè)定一個(gè)表征視頻幀屬性的參數(shù),并設(shè)定該參數(shù)的一個(gè)動(dòng)態(tài)門限和一個(gè)截止門限,用于控制緩沖器中的每個(gè)視頻幀的碼率;(2)當(dāng)緩沖器中已有的視頻幀加上待輸入的視頻幀的碼流總長度大于緩沖器的存儲(chǔ)空間時(shí),調(diào)節(jié)動(dòng)態(tài)門限,降低所有的視頻幀或部分視頻幀的碼率,直到將待輸入的視頻幀存入緩沖器或者動(dòng)態(tài)門限達(dá)到所設(shè)定的截止門限為止。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟(1)中所述的參數(shù)是表示視頻幀的碼率的參數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述的參數(shù)是比特率或者是碼流長度。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟(1)中所述的參數(shù)是表示視頻幀的圖像質(zhì)量的參數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述的參數(shù)是均方差或峰值信噪比或碼流的率失真斜率。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于所述視頻的圖像質(zhì)量與參數(shù)值的關(guān)系為單調(diào)增的關(guān)系,動(dòng)態(tài)門限的初值設(shè)為所有視頻幀中的參數(shù)值的最大值;截止門限為動(dòng)態(tài)門限的下限;所述的調(diào)節(jié)動(dòng)態(tài)門限的操作是減小動(dòng)態(tài)門限的值。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于所述視頻的圖像質(zhì)量與參數(shù)值的關(guān)系為單調(diào)減的關(guān)系,動(dòng)態(tài)門限的初值設(shè)為所有視頻幀中的參數(shù)值的最小值;截止門限為動(dòng)態(tài)門限的上限;所述的調(diào)節(jié)動(dòng)態(tài)門限的操作是增大動(dòng)態(tài)門限的值。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(2)中降低所有的視頻幀或一部分視頻幀的碼率,是指將視頻幀的碼流長度截短到某個(gè)截取點(diǎn),丟棄截取點(diǎn)以后的碼流數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(2)中調(diào)節(jié)動(dòng)態(tài)門限的方法是,預(yù)先設(shè)定一個(gè)步長,逐步增大或減小動(dòng)態(tài)門限來調(diào)節(jié)。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(2)中調(diào)節(jié)動(dòng)態(tài)門限的方法是,按照二分法進(jìn)行調(diào)節(jié)。
全文摘要
一種多媒體數(shù)據(jù)的緩存控制方法,包括以下步驟(1)設(shè)定一個(gè)表征視頻幀屬性的參數(shù),并設(shè)定該參數(shù)的一個(gè)動(dòng)態(tài)門限和一個(gè)截止門限,用于控制緩沖器中的每個(gè)視頻幀的碼率;(2)當(dāng)緩沖器中已有的視頻幀加上待輸入的視頻幀的碼流總長度大于緩沖器的存儲(chǔ)空間時(shí),調(diào)節(jié)動(dòng)態(tài)門限,降低所有的視頻幀或一部分視頻幀的碼率,直到將待輸入的視頻幀存入緩沖器或者動(dòng)態(tài)門限達(dá)到所設(shè)定的截止門限為止。本發(fā)明在緩沖器的數(shù)據(jù)輸入流量和輸出流量不一致時(shí),特別是瞬時(shí)輸入流量大于輸出流量時(shí),能緩存更多的視頻幀而不會(huì)造成視頻數(shù)據(jù)的覆蓋,而且還能夠保證視頻圖像質(zhì)量的穩(wěn)定性。
文檔編號(hào)H04N7/26GK1960486SQ20061014100
公開日2007年5月9日 申請(qǐng)日期2006年9月28日 優(yōu)先權(quán)日2006年9月28日
發(fā)明者陳軍 申請(qǐng)人:中興通訊股份有限公司