專利名稱:快速頻道切換中快速推送單播流的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IPTV (Internet Protocol Television,網(wǎng)絡(luò)協(xié)議電視)快速頻道切換 領(lǐng)域,特別涉及一種快速頻道切換中快速推送單播流的方法和裝置。
背景技術(shù):
和傳統(tǒng)的數(shù)字電視相比,IPTV存在頻道切換時間長的缺點,快速頻道切換方法可 以縮短頻道切換時延。在快速頻道切換過程中,服務(wù)器接收到STBGet Top Box,機(jī)頂盒)發(fā)送的快速頻 道切換請求后,從最新I幀(intra picture,內(nèi)部幀)的前一個I幀開始快速推送單播流?,F(xiàn)有技術(shù)從最新I幀的前一個I幀開始快速推送單播流,突發(fā)流量較大,增加了帶 寬需求;并且STB從最新I幀的前一個I幀開始解碼,因此畫面內(nèi)容比最新的頻道內(nèi)容要 早,即快速頻道切換后的內(nèi)容比最新的頻道內(nèi)容滯后。需要將STB播放的頻道內(nèi)容從最新 I幀的前一個I幀同步到最新的頻道內(nèi)容,增加同步處理時間。
發(fā)明內(nèi)容
為了減少突發(fā)流量和頻道內(nèi)容同步處理時間,本發(fā)明實施例提供了一種快速頻道 切換中快速推送單播流的方法和裝置。所述技術(shù)方案如下一種快速頻道切換中快速推送單播流的方法,所述方法包括獲取終端的組播加入時延;根據(jù)所述終端的組播加入時延、解碼速率、單播推送速率和解碼所需最低緩存數(shù) 據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;根據(jù)報文緩存狀態(tài),判斷所述最新I幀是否完整到達(dá);如果所述最新I幀完整到達(dá),并且從所述最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于 所述最小值,從所述最新I幀開始快速推送單播流。一種快速頻道切換中快速推送單播流的裝置,所述裝置包括獲取模塊,用于獲取終端的組播加入時延;確定模塊,用于根據(jù)所述終端的組播加入時延、解碼速率、單播推送速率和解碼所 需最低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;判斷模塊,用于根據(jù)報文緩存狀態(tài),判斷所述最新I幀是否完整到達(dá);推送模塊,用于如果所述最新I幀完整到達(dá),并且從所述最新I幀開始已到達(dá)的數(shù) 據(jù)量大于等于所述最小值,從所述最新I幀開始快速推送單播流。本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是通過根據(jù)終端的組播加入時延、解碼速率、單播推送速率和解碼所需最低緩存數(shù) 據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;當(dāng)最新I幀完整到 達(dá)、并且從最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于最小值時,從最新I幀開始快速推送單播 流,相對于固定從最新I幀的前一個I幀開始快速推送單播流,在減小突發(fā)流量的同時,保證終端緩存不會因組播加入時延過大而下溢,從而在保證終端播放畫面的質(zhì)量的同時,降 低了帶寬需求和頻道內(nèi)容的同步處理時間。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中 所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實 施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。圖1是本發(fā)明實施例1中提供的快速頻道切換中快速推送單播流的方法流程圖;圖2是本發(fā)明實施例2中提供的快速頻道切換中快速推送單播流的方法流程圖;圖3是本發(fā)明實施例2中提供的RTCP XR擴(kuò)展消息示意圖;圖4是本發(fā)明實施例2中提供的快速頻道切換的信息交互圖;圖5是本發(fā)明實施例2中提供的報文緩存狀態(tài)示意圖;圖6是本發(fā)明實施例3中提供的快速頻道切換中快速推送單播流的裝置結(jié)構(gòu)示意 圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方 式作進(jìn)一步地詳細(xì)描述。實施例1參見圖1,本實施例提供了一種快速頻道切換中快速推送單播流的方法,該方法包 括101 獲取終端的組播加入時延。其中,終端可以是STB,個人電腦,電視,或者手機(jī)、平板電腦等移動終端,本實施例 并不限定。102:根據(jù)該終端的組播加入時延、解碼速率、單播推送速率和解碼所需最低緩存 數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值。該快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值用于保證終端的緩 存中的數(shù)據(jù)量在經(jīng)過上述組播加入時延之后仍然大于上述解碼所需最低緩存數(shù)據(jù)量。上述 解碼所需最低緩存數(shù)據(jù)量可以為零。103 根據(jù)報文緩存狀態(tài),判斷該最新I幀是否完整到達(dá)。104 如果該最新I幀完整到達(dá),并且從該最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于 該最小值,從該最新I幀開始快速推送單播流。快速頻道切換過程中,服務(wù)器接收到終端發(fā)送的快速頻道切換請求后快速推送單 播流。所謂快速推送單播流是指推送單播流的速率大于原始速率,舉例來說,為原始速率 的1.3倍。終端接收單播流并對單播流進(jìn)行解碼,解碼速度基本相當(dāng)于原始速率。當(dāng)服務(wù) 器發(fā)現(xiàn)單播流追上(catch)組播流時,開始慢速推送單播流,并向終端發(fā)送組播報文同步 消息。所謂慢速推送單播流是指推送單播流的速率小于原始速率,舉例來說,為原始速率的 0. 3倍速。服務(wù)器之所以慢速推送單播流,是為了給終端將要接收到的組播流留出足夠的帶寬,因此慢速推送的速率通常為快速推送的速率減原始速率,當(dāng)然,其他速率和方式,例 如繼續(xù)快速推送單播流,也是可以的。當(dāng)終端收到組播報文同步消息后,向組播復(fù)制點發(fā)送 IGMP (Internet Group Management Protocol,因特網(wǎng)組管理協(xié)議)Join (加入)消息以請 求加入組播,準(zhǔn)備接收組播流。由于解碼速率大于慢速推送速率,終端解碼并播放畫面過程 中會不斷消耗緩存中的數(shù)據(jù),如果從發(fā)出IGMP Join消息(因為服務(wù)器開始慢速推送單播 流時,同時發(fā)送組播報文同步消息,所以通常終端發(fā)出IGMP Join消息時,也是開始接收慢 速推送的單播流的時刻)到終端接收到組播流之間的時延,即組播加入時延過大,緩存中 的數(shù)據(jù)量可能下溢(underflow),即減少到門限閾值以下甚至被完全清空,解碼器沒有足夠 數(shù)據(jù)用以解碼,從而播放畫面會出現(xiàn)停頓或花屏的現(xiàn)象。本實施例通過根據(jù)終端的組播加入時延、解碼速率、單播推送速率和解碼所需最 低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;當(dāng)最新I 幀完整到達(dá)、并且從最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于最小值時,從最新I幀開始快速 推送單播流,相對于固定從最新I幀的前一個I幀開始快速推送單播流,在減小突發(fā)流量的 同時,保證終端緩存不會因組播加入時延過大而下溢,從而在保證終端播放畫面的質(zhì)量的 同時,降低了帶寬需求和頻道內(nèi)容的同步處理時間。實施例2本實施例是在實施例1的基礎(chǔ)上改進(jìn)而來,參見圖2,一種快速頻道切換中快速推 送單播流的方法包括201 服務(wù)器獲取終端的組播加入時延;具體的,接收終端發(fā)送的RTCP (Real-time Transport Control Protocol,實時傳 輸控制協(xié)議)XR(Extended R印ort,擴(kuò)展報告)擴(kuò)展消息,該RTCP XR擴(kuò)展消息攜帶終端的 組播加入時延(IGMPJoinDelay)的相關(guān)信息。組播加入時延的相關(guān)信息可以是組播加入時 延,也可以是終端發(fā)送組播加入消息的時間和終端接收到第一個組播報文的時間,根據(jù)終 端發(fā)送組播加入消息的時間和終端接收到第一個組播報文的時間計算得到組播加入時延, 即終端發(fā)送組播加入消息的時間和終端接收到第一個組播報文的時間之間的時間間隔為 組播加入時延。上述的終端的組播加入時延為終端根據(jù)歷史數(shù)據(jù)獲得的。圖3所示為RTCP )(R擴(kuò)展消息的一個示例,其中,擴(kuò)展的字段包括=IGMPanternet Group Management Protocol,因特網(wǎng)組管理協(xié)議)Join Delay,即組播加入時延;或者,擴(kuò) 展的字段包括time of send igmp join禾口 time of first multicast burst,艮口終端發(fā)送 組播加入消息的時間和終端接收到第一個組播報文的時間。也可以同時包括上述三個擴(kuò)展 字段。202:服務(wù)器根據(jù)該終端的組播加入時延、解碼速率、單播推送速率和解碼所需最 低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;具體的,根據(jù)Vi(min) = (nX-sX) X T3+cB,確定快速單播流起始位置到最新報文位 置之間數(shù)據(jù)量的最小值Vi(min);其中,Vi0llin)為快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值,nX為解 碼速率,X為片源平均速率,η為解碼倍率,SX為單播推送速率,S為推送倍率,具體到服務(wù) 器在單播流追上組播流時開始慢速推送單播流的情況下,s為慢推倍率(設(shè)為b)即b < 1, 具體到服務(wù)器在單播流追上組播流時仍然快速推送單播直到組播復(fù)制點發(fā)送組播流的情況下,s為快推倍率(設(shè)為a)即a > 1,T3為該終端的組播加入時延,cB為終端解碼所需 最低緩存數(shù)據(jù)量,c為緩存系數(shù),B為視頻緩存檢驗器能夠緩存的最大數(shù)據(jù)量。圖4所示為快速頻道切換的信息交互圖,包括301 終端在時刻1向服務(wù)器發(fā)送FCCO^st Channel change,快速頻道切換)請 求。302 服務(wù)器在時刻2接收到該FCC請求,并開始向終端快速推送單播流,并在單播 流追上組播流時,即時刻3開始向終端慢速推送單播流并發(fā)送組播報文同步消息。其中,時刻2與時刻3之間為服務(wù)器快速推送單播流的時間Tl。本實施例設(shè)服務(wù) 器開始慢速推送單播報文的時刻即為服務(wù)器發(fā)送組播報文同步消息的時刻。303 終端接收該同步消息,并在時刻4發(fā)送組播加入請求。其中,終端將組播加入消息發(fā)送到相應(yīng)的組播復(fù)制點,因此,組播加入時延受組播 復(fù)制點的級數(shù)、鏈路狀況、接入條件、客戶端自身條件等因素的影響。以組播復(fù)制點的級數(shù) 為例,對于已經(jīng)部署的網(wǎng)絡(luò),組播復(fù)制點的級數(shù)是一定的,各級組播復(fù)制點都會有一定的組 播加入時延,如果戶請求加入的頻道數(shù)據(jù)已經(jīng)到達(dá)最近的組播復(fù)制點,不再需要向上級組 播復(fù)制點請求頻道數(shù)據(jù),組播加入時延會比較?。蝗绻罱慕M播復(fù)制點沒有用戶請求的 頻道數(shù)據(jù),需要向上一級或者更上級的組播復(fù)制點請求頻道數(shù)據(jù),則組播加入時延會比較 大。其中,時刻4終端緩存的數(shù)據(jù)量為VI,即快速單播流趕上組播時終端緩存的數(shù)據(jù)量。304 終端在時刻5接收到FMP (First Multicast Packet,第一個組播報文)。其中,時刻3與時刻5之間的時間為服務(wù)器開始慢速推送單播報文到終端接收到 FMP的時間間隔T2,時刻4與時刻5之間的時間為組播加入時延T3。其中,時刻5終端緩存的數(shù)據(jù)量為V2,即終端收到FMP時緩存的數(shù)據(jù)量。305 終端向服務(wù)器返回攜帶FMP標(biāo)識的同步消息響應(yīng)。306 服務(wù)器接收到同步消息響應(yīng)后,在時刻6結(jié)束慢速推送單播流。其中,時刻3與時刻6之間的時間為慢速單播流時間間隔T4。本實施例設(shè)片源平均速率(原始速率)為X Mbps,解碼速率為nX Mbps, η為解碼 倍率,通常η = 1,快速單播推送速率為aX,a為快推倍率,目前a通常為1. 3,慢速單播推送 速率為bX,b為慢推倍率,目前b通常為0. 3,通常終端的VBV(Video Buffering Verifier, 視頻緩存檢驗器)能夠緩存的最大數(shù)據(jù)量B = 7995392bits = 0. 95Mbytes,終端解碼所需 最低緩存數(shù)據(jù)量為cB,c為緩存系數(shù),目前通常規(guī)定c = 1/2,當(dāng)VBV中緩存數(shù)據(jù)量低于cB 時就不能開始解碼。當(dāng)采用其他方式推定終端為其他數(shù)值,例如,采用簡化方式認(rèn)定當(dāng)終端 緩存完全清空時終端無法解碼。Vi為快速單播流起始位置到最新報文位置之間的數(shù)據(jù)量, Vi0llin)為快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值。在時刻3,單播推送的數(shù)據(jù)量比如果按照組播推送的數(shù)據(jù)量多出Vi,該多出的數(shù) 據(jù)量在終端接收到FMP之前不能問接收到的數(shù)據(jù)量bXT3之和要大于T3時間中終端解碼的 數(shù)據(jù)量nXT3,即Vi-cB+bXT3>=nXT3,Vi>= (nX_bX) XT3+cB。因此,為了保證不會出現(xiàn) 畫質(zhì)下降,Vi 最小值 Vi(min) = (nX-bX) XT3+cB。本領(lǐng)域普通技術(shù)人員可以理解,根據(jù)上述原理,對于其他的單播推送方式,例如在時刻3之后仍然快速推送單播直到組播復(fù)制點發(fā)送組播流的方式或在時刻3之后仍然快速 推送單播一定時間再改為慢速推送的方式,也可以得到其相應(yīng)的快速單播流起始位置到最 新報文位置之間數(shù)據(jù)量的最小值。例如,對于在時刻3之后仍然快速推送單播直到組播復(fù) 制點發(fā)送組播流的方式,Vi >= (nX-aX)T3+CB。其中aX為單播推送速率,具體到服務(wù)器在 單播流追上組播流時仍然快速推送單播直到組播復(fù)制點發(fā)送組播流的情況下,a為快推倍 率即a>l。此時可能造成畫質(zhì)下降的主要原因是解碼所需緩存數(shù)據(jù)量過大。同理,對于 在時刻3之后仍然快速推送單播一定時間再改為慢速推送的方式,也可以得到其Viimiri = (nX-sX)T3+cB, b < s < a。203 服務(wù)器根據(jù)報文緩存狀態(tài),判斷該最新I幀是否完整到達(dá);參見圖5所示的服務(wù)器的報文緩存狀態(tài)示意圖,斜線部分表示最新I幀,服務(wù)器的 報文緩存狀態(tài)大體分為最新I幀完整到達(dá)(狀態(tài)1)和未完整到達(dá)(狀態(tài)幻兩種狀態(tài)。最 新I幀完整到達(dá)可進(jìn)一步細(xì)分,即從最新I幀開始已到達(dá)的數(shù)據(jù)量由最新I幀組成(狀態(tài) 1-1),或者由最新I幀及其后續(xù)幀組成(狀態(tài)1-2)。204 服務(wù)器根據(jù)最新I幀是否完整到達(dá),從相應(yīng)的I幀開始快速推送單播流;具 體的,如果該最新I幀完整到達(dá),并且從該最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于該最 小值Vi Ollin),從該最新I幀開始快速推送單播流。如果最新I幀完整到達(dá),并且從最新I幀開始已到達(dá)的數(shù)據(jù)量小于最小值,則從最 新I幀之前的I幀開始快速推送單播流,其中,最新I幀之前的I幀可以是最新I幀前一個 I幀或更早的I幀。另外,為了避免由于組播加入時延過大,緩存中的數(shù)據(jù)量可能下溢使解 碼器沒有足夠數(shù)據(jù)用以解碼,造成播放畫面會出現(xiàn)停頓或花屏的現(xiàn)象,在從最新I幀之前 的I幀開始快速推送單播流之前,判斷從最新I幀之前的I幀開始已到達(dá)的數(shù)據(jù)量是否滿 足大于等于該最小值Vi (min)這一條件,如果是,則從最新I幀之前的I幀開始快速推送單播 流,如果否,則從滿足條件的最新I幀之前更早的I幀開始快速推送單播流。如果最新I幀沒有完整到達(dá),則從最新I幀之前的I幀開始快速推送單播流,其 中,最新I幀之前的I幀可以是最新I幀前一個I幀或更早的I幀。另外,為了避免由于組 播加入時延過大,緩存中的數(shù)據(jù)量可能下溢使解碼器沒有足夠數(shù)據(jù)用以解碼,造成播放畫 面會出現(xiàn)停頓或花屏的現(xiàn)象,在從最新I幀之前的I幀開始快速推送單播流之前,判斷從最 新I幀之前的I幀開始已到達(dá)的數(shù)據(jù)量是否滿足大于等于該最小值Vi(min)這一條件,如果 是,則從最新I幀之前的I幀開始快速推送單播流,如果否,則從滿足條件的最新I幀之前 更早的I幀開始快速推送單播流。其中,最新I幀之前的I幀可以是最新I幀前一個I幀或更早的I幀。本實施例通過根據(jù)終端的組播加入時延、解碼速率、單播推送速率和解碼所需最 低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;當(dāng)最新I 幀完整到達(dá)、并且從最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于最小值時,從最新I幀開始快速 推送單播流,相對于固定從最新I幀的前一個I幀開始快速推送單播流,在減小突發(fā)流量的 同時,保證終端緩存不會因組播加入時延過大而下溢,從而在保證終端播放畫面的質(zhì)量的 同時,降低了帶寬需求和頻道內(nèi)容的同步處理時間。實施例3
參見圖6,本實施例提供了一種快速頻道切換中快速推送單播流的裝置,包括獲取模塊401,用于獲取終端的組播加入時延;確定模塊402,用于根據(jù)終端的組播加入時延、解碼速率、單播推送速率和解碼所 需最低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;判斷模塊403,用于根據(jù)報文緩存狀態(tài),判斷最新I幀是否完整到達(dá);參見圖5所示的服務(wù)器的報文緩存狀態(tài)示意圖,斜線部分表示最新I幀,服務(wù)器的 報文緩存狀態(tài)大體分為最新I幀完整到達(dá)(狀態(tài)1)和未完整到達(dá)(狀態(tài)幻兩種狀態(tài)。最 新I幀完整到達(dá)可進(jìn)一步細(xì)分,即從最新I幀開始已到達(dá)的數(shù)據(jù)量由最新I幀組成(狀態(tài) 1-1),或者由最新I幀及其后續(xù)幀組成(狀態(tài)1-2)。推送模塊404,用于如果最新I幀完整到達(dá),并且從最新I幀開始已到達(dá)的數(shù)據(jù)量 大于等于最小值,從最新I幀開始快速推送單播流。其中,獲取模塊401,用于接收終端發(fā)送的實時傳輸控制協(xié)議RTCP擴(kuò)展報告)(R擴(kuò) 展消息,RTCP )(R擴(kuò)展消息攜帶終端的組播加入時延的相關(guān)信息,相關(guān)信息包括,組播加入時延,組播加入時延為終端發(fā)送組播加入消息的時間與終端接收到第一 個組播報文的時間之間的時間間隔;或者終端發(fā)送組播加入消息的時間和終端接收到第一個組播報文的時間;或者組播加入時延、終端發(fā)送組播加入消息的時間和終端接收到第一個組播報文的時 間。圖3所示為RTCP )(R擴(kuò)展消息的一個示例,其中,擴(kuò)展的字段包括=IGMPanternet Group Management Protocol,因特網(wǎng)組管理協(xié)議)join Delay,即組播加入時延;或者,擴(kuò) 展的字段包括time of send igmp join禾口 time of first multicast burst,艮口終端發(fā)送 組播加入消息的時間和終端接收到第一個組播報文的時間。也可以同時包括上述三個擴(kuò)展字段。其中,確定模塊402,具體用于根據(jù)Vi(min) = (nX-sX) XT3+cB,確定快速單播流起始位置到最新報文位置之間數(shù) 據(jù)量的最小值;其中,Vi(min)為快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值,nX為解碼速率,η為解碼倍率,X為片源平均速率,sX為單播推送速率,s為推送倍率,Τ3為所述終端的組播加入時延,cB為所述終端解碼所需最低緩存數(shù)據(jù)量,c為緩存系數(shù),B為所述終端的視頻緩存 檢驗器能夠緩存的最大數(shù)據(jù)量?;趫D4所示的快速頻道切換的信息交互圖,本實施例設(shè)片源平均速率(原始速 率)為X Mbps,解碼速率為nX Mbps,n為解碼倍率,通常η = 1,快速單播推送速率為aX,a 為快推倍率,目前a通常為1.3,慢速單播推送速率為bX,b為慢推倍率,目前b通常為0.3, 通常終端的VBV (Video Buffering Verifier,視頻緩存檢驗器)能夠緩存的最大數(shù)據(jù)量B =7995392bits = 0. 95Mbytes,終端解碼所需最低緩存數(shù)據(jù)量為cB,c為緩存系數(shù),目前通 常規(guī)定c = 1/2,當(dāng)VBV中緩存數(shù)據(jù)量低于cB時就不能開始解碼。當(dāng)采用其他方式推定終 端為其他數(shù)值,例如,采用簡化方式認(rèn)定當(dāng)終端緩存完全清空時終端無法解碼。Vi為快速單播流起始位置到最新報文位置之間的數(shù)據(jù)量,Vi0llin)為快速單播流起始位置到最新報文位 置之間數(shù)據(jù)量的最小值。在時刻3,單播推送的數(shù)據(jù)量比如果按照組播推送的數(shù)據(jù)量多出Vi,該多出的數(shù) 據(jù)量在終端接收到FMP之前不能問接收到的數(shù)據(jù)量bXT3之和要大于T3時間中終端解碼的 數(shù)據(jù)量nXT3,即Vi-cB+bXT3>=nXT3,Vi>= (nX_bX) XT3+cB。因此,為了保證不會出現(xiàn) 畫質(zhì)下降,Vi 最小值 Vi(min) = (nX-bX) XT3+cB。本領(lǐng)域普通技術(shù)人員可以理解,根據(jù)上述原理,對于其他的單播推送方式,例如在 時刻3之后仍然快速推送單播直到組播復(fù)制點發(fā)送組播流的方式或在時刻3之后仍然快速 推送單播一定時間再改為慢速推送的方式,也可以得到其相應(yīng)的快速單播流起始位置到最 新報文位置之間數(shù)據(jù)量的最小值。例如,對于在時刻3之后仍然快速推送單播直到組播復(fù) 制點發(fā)送組播流的方式,Vi >= (nX-aX)T3+CB。其中aX為單播推送速率,具體到服務(wù)器在 單播流追上組播流時仍然快速推送單播直到組播復(fù)制點發(fā)送組播流的情況下,a為快推倍 率即a>l。此時可能造成畫質(zhì)下降的主要原因是解碼所需緩存數(shù)據(jù)量過大。同理,對于 在時刻3之后仍然快速推送單播一定時間再改為慢速推送的方式,也可以得到其Viimiri = (nX-sX)T3+cB, b < s < a。進(jìn)一步的,推送模塊404,還用于如果最新I幀完整到達(dá),并且從最新I幀開始已 到達(dá)的數(shù)據(jù)量小于最小值,則從最新I幀之前的I幀開始快速推送單播流。其中,最新I幀 之前的I幀可以是最新I幀前一個I幀或更早的I幀。另外,為了避免由于組播加入時延 過大,緩存中的數(shù)據(jù)量可能下溢使解碼器沒有足夠數(shù)據(jù)用以解碼,造成播放畫面會出現(xiàn)停 頓或花屏的現(xiàn)象,在從最新I幀之前的I幀開始快速推送單播流之前,判斷從最新I幀之前 的I幀開始已到達(dá)的數(shù)據(jù)量是否滿足大于等于該最小值Vi(min)這一條件,如果是,則從最新 I幀之前的I幀開始快速推送單播流,如果否,則從滿足條件的最新I幀之前更早的I幀開 始快速推送單播流。進(jìn)一步的,推送模塊404,還用于如果最新I幀沒有完整到達(dá),則從最新I幀之前 的I幀開始快速推送單播流。其中,最新I幀之前的I幀可以是最新I幀前一個I幀或更 早的I幀。另外,為了避免由于組播加入時延過大,緩存中的數(shù)據(jù)量可能下溢使解碼器沒有 足夠數(shù)據(jù)用以解碼,造成播放畫面會出現(xiàn)停頓或花屏的現(xiàn)象,在從最新I幀之前的I幀開始 快速推送單播流之前,判斷從最新I幀之前的I幀開始已到達(dá)的數(shù)據(jù)量是否滿足大于等于 該最小值Vi(min)這一條件,如果是,則從最新I幀之前的I幀開始快速推送單播流,如果否, 則從滿足條件的最新I幀之前更早的I幀開始快速推送單播流。本實施例提供的裝置,與方法實施例中的服務(wù)器屬于同一構(gòu)思,具體實現(xiàn)過程詳 見方法實施例,這里不再贅述。本實施例通過根據(jù)終端的組播加入時延、解碼速率、單播推送速率和解碼所需最 低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;當(dāng)最新I 幀完整到達(dá)、并且從最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于最小值時,從最新I幀開始快速 推送單播流,相對于固定從最新I幀的前一個I幀開始快速推送單播流,在減小突發(fā)流量的 同時,保證終端緩存不會因組播加入時延過大而下溢,從而在保證終端播放畫面的質(zhì)量的 同時,降低了帶寬需求和頻道內(nèi)容的同步處理時間。以上實施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過軟件編程實現(xiàn),其軟件程序存儲在可讀取的存儲介質(zhì)中,存儲介質(zhì)例如計算機(jī)中的硬盤、光盤或軟盤。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍 為準(zhǔn)。
權(quán)利要求
1.一種快速頻道切換中快速推送單播流的方法,其特征在于,所述方法包括 獲取終端的組播加入時延;根據(jù)所述終端的組播加入時延、解碼速率、單播推送速率和解碼所需最低緩存數(shù)據(jù)量, 確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值; 根據(jù)報文緩存狀態(tài),判斷所述最新I幀是否完整到達(dá);如果所述最新I幀完整到達(dá),并且從所述最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于所述 最小值,從所述最新I幀開始快速推送單播流。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取終端的組播加入時延包括 接收終端發(fā)送的實時傳輸控制協(xié)議RTCP擴(kuò)展報告)(R擴(kuò)展消息,所述RTCP XR擴(kuò)展消息攜帶所述終端的組播加入時延的相關(guān)信息,所述相關(guān)信息包括,組播加入時延,所述組播加入時延為所述終端發(fā)送組播加入消息的時間與所述終端接 收到第一個組播報文的時間之間的時間間隔;或者所述終端發(fā)送組播加入消息的時間和所述終端接收到第一個組播報文的時間;或者 組播加入時延、所述終端發(fā)送組播加入消息的時間和所述終端接收到第一個組播報文 的時間。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述終端的組播加入時延、解碼 速率、單播推送速率和解碼所需最低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位 置之間數(shù)據(jù)量的最小值包括根據(jù)Vi(min) = (nX-SX)XT3+cB,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量 的最小值;其中,Vi(min)為快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值, nX為解碼速率,η為解碼倍率,X為片源平均速率, sX為單播推送速率,s為推送倍率, Τ3為所述終端的組播加入時延,cB為所述終端解碼所需最低緩存數(shù)據(jù)量,c為緩存系數(shù),B為所述終端的視頻緩存檢驗 器能夠緩存的最大數(shù)據(jù)量。
4.根據(jù)權(quán)利要求1至3任一所述的方法,其特征在于,所述根據(jù)報文緩存狀態(tài),判斷所 述最新I幀是否完整到達(dá)之后,還包括如果所述最新I幀完整到達(dá),并且從所述最新I幀開始已到達(dá)的數(shù)據(jù)量小于所述最小 值,則從所述最新I幀之前的I幀開始快速推送單播流。
5.根據(jù)權(quán)利要求1至3任一所述的方法,其特征在于,所述根據(jù)報文緩存狀態(tài),判斷所 述最新I幀是否完整到達(dá)之后,還包括如果所述最新I幀沒有完整到達(dá),則從所述最新I幀之前的I幀開始快速推送單播流。
6.一種快速頻道切換中快速推送單播流的裝置,其特征在于,所述裝置包括 獲取模塊,用于獲取終端的組播加入時延;確定模塊,用于根據(jù)所述終端的組播加入時延、解碼速率、單播推送速率和解碼所需最 低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值; 判斷模塊,用于根據(jù)報文緩存狀態(tài),判斷所述最新I幀是否完整到達(dá); 推送模塊,用于如果所述最新I幀完整到達(dá),并且從所述最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于所述最小值,從所述最新I幀開始快速推送單播流。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述獲取模塊,用于接收終端發(fā)送的實時 傳輸控制協(xié)議RTCP擴(kuò)展報告)(R擴(kuò)展消息,所述RTCP XR擴(kuò)展消息攜帶所述終端的組播加 入時延的相關(guān)信息,所述相關(guān)信息包括,組播加入時延,所述組播加入時延為所述終端發(fā)送組播加入消息的時間與所述終端接 收到第一個組播報文的時間之間的時間間隔;或者所述終端發(fā)送組播加入消息的時間和所述終端接收到第一個組播報文的時間;或者 組播加入時延、所述終端發(fā)送組播加入消息的時間和所述終端接收到第一個組播報文 的時間。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述確定模塊,具體用于根據(jù)Vi(min) = (nX-SX)XT3+cB,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量 的最小值;其中,Vi(min)為快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值, nX為解碼速率,η為解碼倍率,X為片源平均速率, sX為單播推送速率,s為推送倍率, Τ3為所述終端的組播加入時延,cB為所述終端解碼所需最低緩存數(shù)據(jù)量,c為緩存系數(shù),B為所述終端的視頻緩存檢驗 器能夠緩存的最大數(shù)據(jù)量。
9.根據(jù)權(quán)利要求6-8任一權(quán)利要求所述的裝置,其特征在于,所述推送模塊,還用于 如果所述最新I幀完整到達(dá),并且從所述最新I幀開始已到達(dá)的數(shù)據(jù)量小于所述最小值,則從所述最新I幀之前的I幀開始快速推送單播流。
10.根據(jù)權(quán)利要求6-8任一權(quán)利要求所述的裝置,其特征在于,所述推送模塊,還用于 如果所述最新I幀沒有完整到達(dá),則從所述最新I幀之前的I幀開始快速推送單播流。
全文摘要
本發(fā)明公開了一種快速頻道切換中快速推送單播流的方法和裝置,屬于IPTV快速頻道切換領(lǐng)域。所述方法包括獲取終端的組播加入時延;根據(jù)終端的組播加入時延、解碼速率、單播推送速率和解碼所需最低緩存數(shù)據(jù)量,確定快速單播流起始位置到最新報文位置之間數(shù)據(jù)量的最小值;根據(jù)報文緩存狀態(tài),判斷最新I幀是否完整到達(dá);如果最新I幀完整到達(dá),并且從最新I幀開始已到達(dá)的數(shù)據(jù)量大于等于最小值,從最新I幀開始快速推送單播流。所述裝置包括獲取、確定、判斷和推送模塊。本發(fā)明通過上述方案,在減小突發(fā)流量的同時,保證終端緩存不會因組播加入時延過大而下溢,從而在保證終端播放畫面的質(zhì)量的同時,降低了帶寬需求和頻道內(nèi)容的同步處理時間。
文檔編號H04N21/236GK102137275SQ20101060278
公開日2011年7月27日 申請日期2010年12月20日 優(yōu)先權(quán)日2010年12月20日
發(fā)明者于田昌, 吳杏芬, 鄭合文, 黃治平 申請人:華為技術(shù)有限公司