專利名稱:一種內(nèi)存管理方法
技術領域:
本發(fā)明屬于計算4幾應用領域,尤其涉及一種內(nèi)存管理方法。
技術背景在流媒體系統(tǒng)中,IP (Internet Protocol)網(wǎng)絡是以包傳輸為基礎進行斷續(xù) 的異步傳輸。數(shù)據(jù)在IP網(wǎng)絡傳輸中被分解為許多適量大小的數(shù)據(jù)包,由于網(wǎng)絡 是動態(tài)的,各個數(shù)據(jù)包的路由選擇可能不同,因此到達接收端的時間延遲也不 相同,此時數(shù)據(jù)包的順序會由于這種延遲的變化(即網(wǎng)絡抖動)出現(xiàn)錯亂。在 視頻應用程序中,抖動表現(xiàn)為圖像閃動,而在語音傳輸中,它表現(xiàn)的效果與丟 包產(chǎn)生的效果相似,某些語句聽不清楚或錯誤。目前主要是利用緩沖機制來緩 解網(wǎng)絡抖動《1起數(shù)據(jù)包的亂序問題,使用緩存可以盡量保證數(shù)據(jù)包的順序正確。理論上緩存容量越大越能容納大的抖動,但是緩存的增大會線性地增大圖 像或語音的延時,所以應該在避免數(shù)據(jù)包抖動的情況下根據(jù)可接受延時設置抖 動緩存的容量。現(xiàn)有的一技術方案如圖1所示,假設設置一塊容量為TM (單 位KB)的內(nèi)存作為抖動緩存,Ms表示向上層應用提交的連續(xù)數(shù)據(jù)包所占該 緩存的容量,即當該緩存中連續(xù)數(shù)據(jù)包所占緩存容量達到Ms時,將該塊緩存 的使用權上交給上層應用,當上層應用處理完該塊緩存后,釋放該塊緩存的使 用權,使該緩存能被重新利用,Ms值的設置可以根據(jù)網(wǎng)絡理想情況下數(shù)據(jù)流的 傳輸速率等因素估計得到。Mp表示向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包所 占緩存的容量,即當連續(xù)和非連續(xù)的數(shù)據(jù)包所占緩存容量達到Mp時,此時即 使連續(xù)包所占緩存容量還未達到Ms,仍將容量為Mp的緩存的使用權上交給上 層應用,同樣,當上層應用處理完該塊緩存后,釋放該塊緩存的使用權。Mp 值的設置可以根據(jù)網(wǎng)絡理想情況下數(shù)據(jù)流的傳輸速率和可接受延時等因素估計
得到。以傳輸碼率為3.75Mb/s的視頻為例,假設可接受延遲為4ms,則接收端 設置的緩沖區(qū)容量至少為3.75Mb/s*4ms=15kb,此時,可設置TM、 Mp和Ms 分別為30kb、 22.5kb和15kb,假設可接受延遲為6ms,則此時,可設置TM、 Mp和Ms分別為36kb, 34kb和22.5kb。在上述方案中向上層應用遞交容量為Mp的緩存使用權后,但該塊緩存的 使用權還沒有被上層應用釋放時,網(wǎng)絡上仍然會不斷傳來數(shù)據(jù)包緩存到TM中, 如果TM中剩下的緩存全部被占用,則此時會出現(xiàn)內(nèi)存上溢的問題。內(nèi)存上溢 將導致數(shù)據(jù)包丟失,造成在i某體播放時畫面失真、斷續(xù)以及語音不連貫等。發(fā)明內(nèi)容本發(fā)明實施例的目的在于提供一種內(nèi)存管理方法,旨在解決現(xiàn)有技術中存 在的由于上層應用未釋放緩存,而網(wǎng)絡上繼續(xù)傳輸數(shù)據(jù)包造成內(nèi)存上溢的問題。本發(fā)明實施例是這樣實現(xiàn)的, 一種內(nèi)存管理方法,所述方法包括在數(shù)據(jù)接收過程中,當連續(xù)的數(shù)據(jù)包所占用的緩存容量達到Ms時,向上 層應用遞交對該塊緩存的處理權;當連續(xù)和非連續(xù)的網(wǎng)絡數(shù)據(jù)包所占用的緩存容量達到Mp時,向服務器發(fā) 送流媒體協(xié)議暫??刂浦噶顣和?shù)據(jù)包的傳輸,同時向上層應用遞交對該塊緩 存的處理權,當緩存的使用量小于等于M!時,向服務器發(fā)送流媒體協(xié)議播放控 制指令恢復數(shù)據(jù)包的傳送;其中,Mp為向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包占用的最大緩存容 量;Ms為向上層應用提交的連續(xù)數(shù)據(jù)包占用的最大緩存容量;M,為向上層應 用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包占用的最小緩存容量,且M一M^Mj。所述流媒體協(xié)議暫??刂浦噶顬閷崟r流協(xié)議的PAUSE指令;所述流媒體 協(xié)議播放控制指令為實時流協(xié)議的PLAY指令。所述Ms的值采用線性動態(tài)控制。所迷Ms通過下式計算得出
當5,, e[5t-P,5,+P], MS = MS。;當5t,<5t-P,Ms =min((l+D'5P—-pD').Ms。,Mp);當nt.>5t +P,Ms = max((l- Dt'5(D:;P)).Ms。,M,);其中,5t為前一個時間段t內(nèi)數(shù)據(jù)包到達接收端的時間間隔的平均值;5t,為當前時間段t內(nèi)數(shù)據(jù)包到達接收端的時間間隔的平均值;P表示控制強度,且 P<5t; Ms。為網(wǎng)絡理想情況下連續(xù)數(shù)據(jù)包所占用的最大緩存容量,且 MP>Mso>Mi。本發(fā)明實施例提供的內(nèi)存管理方法,在數(shù)據(jù)接收過程中通過流媒體協(xié)議控 制指令保證內(nèi)存不會溢出的同時節(jié)約了內(nèi)存使用量。同時,通過線性控制向上 層應用提交的連續(xù)數(shù)據(jù)包占用緩存的容量,緩解了緩存的輸出速率大幅度的階 越式變化,減小了上層應用程序的內(nèi)存管理復雜度。
圖1是現(xiàn)有^R術中內(nèi)存管理方法的一個示例圖;圖2是本發(fā)明實施例提供的內(nèi)存管理方法的一個示例圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實 施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例通過在客戶端接收數(shù)據(jù)的過程中發(fā)送流々某體協(xié)議控制指令有 效的防止了內(nèi)存上溢。常用的流媒體協(xié)議有實時流協(xié)議(RealTime Streaming Protocol, RTSP)以及超文本傳輸協(xié)議(Hypertext Transfer Protocol, HTTP)等。圖2示出了本發(fā)明的一個示例,假設作為抖動緩存的一塊內(nèi)存的容量為 TM, M!表示向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包所占緩存的最小容量,
Mj的值可以根據(jù)在網(wǎng)絡理想情況下使內(nèi)存不出現(xiàn)下溢,保持播放的連續(xù)性等因 素進行估計設置。與現(xiàn)有技術方案相同,Mp表示向上層應用提交的連續(xù)和非連 續(xù)的數(shù)據(jù)包所占緩存的容量,Ms表示向上層應用提交的連續(xù)數(shù)據(jù)包所占緩存 的容量,且Mp〉Ms〉Mj。在數(shù)據(jù)接收過程中,當連續(xù)的數(shù)據(jù)包所占用的緩存容量達到Ms時,向上 層應用遞交對該塊緩存的處理權,當連續(xù)的和非連續(xù)的網(wǎng)絡數(shù)據(jù)包所占用的緩 存容量達到MP時,向服務器發(fā)送流媒體協(xié)議暫??刂浦噶顣和?shù)據(jù)包的傳輸, 例如RTSP的PAUSE指令。同時向上層應用遞交對該塊緩存的處理權,當上 層應用處理完該塊緩存中的數(shù)據(jù),并釋放該塊緩存后,此時如果緩存的使用量 小于等于M!時,再通過向服務器發(fā)送流媒體協(xié)議播放控制指令恢復數(shù)據(jù)包的傳 送,例如RTSP的PLAY指令。從而通過上述流士某體協(xié)議控制指令有效的防 止了內(nèi)存上溢或下溢,同時,因為內(nèi)存不會上溢,且發(fā)送完PAUSE指令后, 還可能會收到少量幾個數(shù)據(jù)包,所以用做抖動緩存的實際內(nèi)存容量可設置為略 大于Mp,而不需要大量的冗余量(TM-Mp)用于防止內(nèi)存溢出,從而大大節(jié)約 了內(nèi)存。在本發(fā)明的一優(yōu)選實施例中,為了緩解由于網(wǎng)絡加速或延遲造成緩存的輸 出速率大幅度的階越式變化(即連續(xù)數(shù)據(jù)包所占用的緩存容量達到Ms時在網(wǎng) 絡加速狀態(tài)下所耗費的時間與在網(wǎng)絡延遲狀態(tài)下所耗費的時間相差較大)對 Ms的設定采用線性動態(tài)控制,而對Mp和1V^的設定保持不變,具體過程詳述 如下假設在數(shù)據(jù)接收過程中,第n個數(shù)據(jù)包與第n+l個數(shù)據(jù)包到達時刻的時間間隔為D。,那么,Dn=Tn+1-Tn;其中,T;表示第n個包的到達時刻,T",表示第n+l個包的到達時刻。 假設在時間段t范圍內(nèi)(t的大小可以根據(jù)需要進行取值),有M個數(shù)據(jù)包到達接收端,那么,數(shù)據(jù)包到達接收端的時間間隔的平均值&為<formula>formula see original document page 8</formula>如果在下一個同樣長時間段t,范圍內(nèi),數(shù)據(jù)包到達接收端的時間間隔的平 均值&, e[5t-P,St+P],則認為網(wǎng)絡處于平穩(wěn)狀態(tài),此時,<formula>formula see original document page 8</formula>其中,P為一表示控制強度的常量,P始終小于&,可以根據(jù)需要進行調整;Ms。為網(wǎng)絡理想情況下連續(xù)數(shù)據(jù)包所占用的最大緩存容量,可以根據(jù)網(wǎng)絡 理想情況下數(shù)據(jù)流的傳輸速率等因素估計設置,且Mp〉Mso〉N^。如果5t, < 5t -P , 則認為網(wǎng)絡處于力。速狀態(tài),此時,<formula>formula see original document page 8</formula>如果5t, > 5t +P ,則認為網(wǎng)絡處于延遲狀態(tài),此時, Ms = max((l_ D';(D::P)).Ms。,M。。通過上述對Ms的線性控制緩解了由于網(wǎng)絡加速或延遲造成緩存的輸出速 率大幅度的階越式變化,有效的降低了上層應用程序的內(nèi)存管理復雜度。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明 的寸呆護范圍之內(nèi)。
權利要求
1. 一種內(nèi)存管理方法,其特征在于,所述方法包括在數(shù)據(jù)接收過程中,當連續(xù)的數(shù)據(jù)包所占用的緩存容量達到Ms時,向上層應用遞交對該塊緩存的處理權;當連續(xù)和非連續(xù)的網(wǎng)絡數(shù)據(jù)包所占用的緩存容量達到MP時,向服務器發(fā)送流媒體協(xié)議暫??刂浦噶顣和?shù)據(jù)包的傳輸,同時向上層應用遞交對該塊緩存的處理權,當緩存的使用量小于等于MI時,向服務器發(fā)送流媒體協(xié)議播放控制指令恢復數(shù)據(jù)包的傳送;其中,MP為向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包占用的最大緩存容量;MS為向上層應用提交的連續(xù)數(shù)據(jù)包占用的最大緩存容量;MI為向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包占用的最小緩存容量,且MP>MS>MI。
2、 如權利要求1所述的內(nèi)存管理方法,其特征在于,所述流媒體協(xié)議暫停 控制指令為實時流協(xié)議的PAUSE指令;所述流媒體協(xié)議播放控制指令為實時 流協(xié)議的PLAY指令。
3、 如權利要求1或2所述的內(nèi)存管理方法,其特征在于,所述Ms的值采 用線性動態(tài)控制。
4、 如權利要求3所述的內(nèi)存管理方法,其特征在于,所述Ms通過下式計 算得出當5,. P,5t+P], MS = MS。;線.*P, (1+5^).Ms。,Mp);當5t.>5t +P,<formula>formula see original document page 2</formula>其中,n,為前一個時間段t內(nèi)數(shù)據(jù)包到達接收端的時間間隔的平均值;巧為當前時間段t內(nèi)數(shù)據(jù)包到達接收端的時間間隔的平均值;P表示控制強度,且 P<&; Ms。為網(wǎng)絡理想情況下連續(xù)數(shù)據(jù)包所占用的最大緩存容量,且Mp〉Mso〉M全文摘要
本發(fā)明提供了一種內(nèi)存管理方法,所述方法包括在數(shù)據(jù)接收過程中,當連續(xù)的數(shù)據(jù)包所占用的緩存容量達到Ms時,向上層應用遞交對該塊緩存的處理權;當連續(xù)和非連續(xù)的網(wǎng)絡數(shù)據(jù)包所占用的緩存容量達到M<sub>P</sub>時,向服務器發(fā)送流媒體協(xié)議暫停控制指令暫停數(shù)據(jù)包的傳輸,同時向上層應用遞交對該塊緩存的處理權,當緩存的使用量小于等于M<sub>I</sub>時,向服務器發(fā)送流媒體協(xié)議播放控制指令恢復數(shù)據(jù)包的傳送;M<sub>P</sub>為向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包占用的最大緩存容量;M<sub>S</sub>為向上層應用提交的連續(xù)數(shù)據(jù)包占用的最大緩存容量;M<sub>I</sub>為向上層應用提交的連續(xù)和非連續(xù)的數(shù)據(jù)包占用的最小緩存容量,且M<sub>P</sub>>M<sub>S</sub>>M<sub>I</sub>。保證內(nèi)存不會溢出的同時節(jié)約了內(nèi)存使用量。
文檔編號H04L12/56GK101212399SQ200610157798
公開日2008年7月2日 申請日期2006年12月27日 優(yōu)先權日2006年12月27日
發(fā)明者安鉆杰, 萍 紀 申請人:深圳Tcl工業(yè)研究院有限公司