專利名稱:用于控制可變位速率數(shù)據(jù)的數(shù)據(jù)包傳輸?shù)募夹g(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)的通信,更具體地說,涉及用于控制流式數(shù)據(jù) 包傳輸?shù)募夹g(shù)。
背景技術(shù):
正在有越來越多的數(shù)據(jù)通過諸如基于包的網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)的 通信基礎(chǔ)設(shè)施來從服務(wù)器傳輸?shù)娇蛻舳恕?一個(gè)正越來越普及的特定 應(yīng)用是多媒體流。但是,在廣泛采用這些服務(wù)之前必須在提供可靠 數(shù)據(jù)流方面做出改進(jìn)。例如,因?yàn)镮P網(wǎng)絡(luò)和用戶的客戶端裝置之間 的數(shù)據(jù)傳輸鏈路速率往往會(huì)波動(dòng),所以到用戶的數(shù)據(jù)遞送中的任何 干擾都會(huì)導(dǎo)致到終端用戶的播放嚴(yán)重降級(jí),即導(dǎo)致用戶看到的媒體 質(zhì)量降級(jí)。具體來說,重要的是,隨著播放(即,多媒體應(yīng)用程序 或播放器對(duì)多媒體文件的顯示)的進(jìn)行,在客戶端裝置處要有足夠 的數(shù)據(jù)包來源供多媒體應(yīng)用程序提取。在許多情況下,包傳輸速率不可改變,因?yàn)樵撍俾嗜Q于通信 鏈路的帶寬(或者至少改變包傳輸速率不切實(shí)際)。但是,將數(shù)據(jù) 饋送到用戶的輸出裝置的速率通常一定是變化的。通常,對(duì)于流應(yīng) 用,利用"流切換"來實(shí)現(xiàn)這樣的調(diào)整。在流切換的情況下,以不 同的位速率將相同的媒體內(nèi)容(如特定的視頻序列)預(yù)先編碼并將 其存儲(chǔ)在服務(wù)器中。因此,可以獲得同一流的不同版本。在傳輸過 程中,服務(wù)器基于網(wǎng)絡(luò)中的當(dāng)前可用帶寬和客戶端緩沖器的狀態(tài)來 選擇具有最合適的數(shù)據(jù)位速率的特定版本。服務(wù)器采用的切換邏輯 決定是否以及何時(shí)切換到另一流版本。在所謂的"向下切換,,的情 形中,將流切換到具有更低編碼位速率的版本。在"向上切換"的
情形中,則切換到具有更高編碼位速率的版本。在許多實(shí)施中,切 換標(biāo)準(zhǔn)采用關(guān)于客戶端緩沖器狀態(tài)定義的預(yù)定閾值。在一個(gè)實(shí)例中, 閾值基于緩沖器填充程度,填充程度表示客戶端緩沖器內(nèi)的數(shù)據(jù)量, 其單位是字節(jié)。在另一個(gè)實(shí)例中,閾值基于存儲(chǔ)在客戶端緩沖器中的媒體的播放長(zhǎng)度(PT),播放長(zhǎng)度PT表示向用戶播放客戶端緩沖器內(nèi)已有的數(shù)據(jù)將要花費(fèi)的時(shí)間量,其單位是秒。本文描述涉及播 放長(zhǎng)度的實(shí)例,但也可以改用緩沖器填充程度或其它合適的參數(shù)。 用于判定客戶端緩沖器的狀態(tài)的 一 些常規(guī)技術(shù)是利用實(shí)時(shí)傳輸控制協(xié)議(RTCP)接收方報(bào)告(RR)內(nèi)的信息。關(guān)于客戶端緩沖器 內(nèi)的下一個(gè)序列號(hào)(NSN)或最早緩沖的序列號(hào)(OBSN)和客戶端 緩沖器內(nèi)接收的最高序列號(hào)(HRSN)的信息與RR包含在一起,并 且當(dāng)在從HRSN到NSN/OBSN范圍內(nèi)的每個(gè)包的大小都已知時(shí),利 用該信息來確定已用緩沖器空間。如果客戶端緩沖器內(nèi)的自由空間 低于優(yōu)選的客戶端緩沖器填充程度,則選擇不同流版本。例如,如 果緩沖器播放長(zhǎng)度(PT)降到預(yù)定最小閾值(PTDOWN)以下,則會(huì) 出現(xiàn)緩沖器漏泄的風(fēng)險(xiǎn),即客戶端緩沖器變成空的,使得沒有數(shù)據(jù) 流向用戶。這導(dǎo)致播放凍結(jié),其中通常會(huì)停在向用戶顯示的最后一 個(gè)圖像,直到可以向客戶端緩沖器中添加足夠量的額外數(shù)據(jù)以便重 新開始將流傳輸給用戶所用的輸出裝置,即需要"重新緩沖"客戶 端緩沖器。站在用戶的立場(chǎng)上,重新緩沖極其討厭。為了避免由于客戶端緩沖器漏泄引起的可能的重新緩沖,服務(wù) 器檢測(cè)客戶端緩沖器內(nèi)的播放長(zhǎng)度(PT)何時(shí)降到閾值PTD。,以下, 然后調(diào)整位速率(即,選擇具有不同位速率的流版本),以試圖防 止客戶端緩沖器漏光。更具體地說,服務(wù)器執(zhí)行向下切換,即切換 到更低位速率流。之所以執(zhí)行向下切換而不是向上切換是因?yàn)?,?戶端緩沖器漏泄的最可能的原因是服務(wù)器和客戶端緩沖器之間的鏈 路速率小于預(yù)期速率,即有效帶寬小于當(dāng)前使用的位速率所需的帶 寬。結(jié)果,客戶端緩沖器接收數(shù)據(jù)的速率與客戶端緩沖器將數(shù)據(jù)饋 送給用戶的輸出裝置的速率不相同。因此,本應(yīng)填充有足夠數(shù)據(jù)的 客戶端緩沖器發(fā)生漏泄。通過切換到更低位速率,客戶端緩沖器在 更低速率下將數(shù)據(jù)饋送給顯示器,從而允許有更多的時(shí)間從服務(wù)器 接收數(shù)據(jù),并且因此防止客戶端緩沖器漏光。站在用戶的立場(chǎng)上, 媒體流的質(zhì)量會(huì)因?yàn)橄蛳虑袚Q而下降,例如視頻流的顯示圖像的大 小變小,圖像的分辨率變小,或者圖像中看到更高的失真。但是,這對(duì)于重新緩沖過程中發(fā)生的前述播^:凍結(jié)來說卻是優(yōu)選的。另 一方面,如果緩沖器播放長(zhǎng)度(PT )超過預(yù)定最大閾值(PTUP ),則會(huì)出現(xiàn)緩沖器溢出的風(fēng)險(xiǎn),即客戶端緩沖器變得如此滿以至于沒 有空間留給額外的包。服務(wù)器通常不會(huì)重新發(fā)送客戶端緩沖器已經(jīng) 接收但沒有存儲(chǔ)在客戶端緩沖器中的任何包,并且因此不會(huì)簡(jiǎn)單地 將那些包的數(shù)據(jù)轉(zhuǎn)發(fā)給用戶的輸出裝置。 一旦客戶端緩沖器能夠再 次存儲(chǔ)包,數(shù)據(jù)流便從新的包重新開始。因此,站在用戶的立場(chǎng)上, 因?yàn)榱骱?jiǎn)單地向前跳轉(zhuǎn),所以會(huì)存在內(nèi)容的突然丟失。在影片或電 影的情況下,會(huì)丟失對(duì)話,從而妨礙用戶看懂故事。在音樂的情況 下,歌曲會(huì)筒單地向前跳轉(zhuǎn)。將明白,同樣站在用戶的立場(chǎng)上,這 相當(dāng)令人討厭。為了避免由于客戶端緩沖器溢出而引起的流破裂,服務(wù)器檢測(cè)客戶端緩沖器內(nèi)的播放長(zhǎng)度(PT)何時(shí)超過閾值PTUP,然后執(zhí)行向 上切換,即切換到更高位速率流。之所以執(zhí)行向上切換而不是向下 切換是因?yàn)椋蛻舳司彌_器變滿的最可能的原因是服務(wù)器和客戶端 緩沖器之間的鏈路速率大于預(yù)期速率,即有效帶寬大于當(dāng)前使用的 位速率所需的帶寬。結(jié)果,客戶端緩沖器接收數(shù)據(jù)的速率高于客戶 端緩沖器將數(shù)據(jù)饋送給用戶的輸出裝置的速率。因此,客戶端緩沖 器溢出。通過切換到更高位速率,客戶,緩沖器在更高速率下將數(shù) 據(jù)饋送給輸出裝置,從而防止客戶端緩沖器溢出。站在用戶的立場(chǎng) 上,媒體流的質(zhì)量因?yàn)橄蛏锨袚Q而得到改善,例如視頻流的顯示圖 像的大小變大,或圖像的分辨率變大。因此,向上切換有助于防止
流中斷,并改善了媒體質(zhì)量,這兩者都對(duì)用戶有益。用于4丸行向上切換和向下切換的筒單邏輯可以如下表示 If PT > PTup then才丸4亍向上切才奐 else if PT < PT down執(zhí)行向下切換 end If.這些閾值的適當(dāng)選擇對(duì)于用戶的總的媒體印象來說是至關(guān)重要 的。在太遲執(zhí)行向下切換的情況下,將發(fā)生重新緩沖事件。在太遲 執(zhí)行向上切換的情況下,用戶會(huì)接收到比所需質(zhì)量差的媒體,并且 如上所述,會(huì)因?yàn)榫彌_器溢出而出現(xiàn)數(shù)據(jù)流破裂。類似地,如果太 早執(zhí)行向下切換,則用戶接收到比所需質(zhì)量差的媒體。如果太早執(zhí) 行向上切換,則不久可能需要向下切換,從而導(dǎo)致媒體質(zhì)量令人討 厭地波動(dòng)。為了避免這些問題,潛在地可以使用多個(gè)向下切換閾值 和多個(gè)向上切換閾值。當(dāng)播放長(zhǎng)度朝向緩沖器漏泄方向減小時(shí),會(huì) 遇到一系列向下切換閾值,每個(gè)閾值觸發(fā)一次向下切換。反之,當(dāng) 播放長(zhǎng)度朝向緩沖器溢出方向增大時(shí),會(huì)遇到 一 系列向上切換閾值, 每個(gè)閾值觸發(fā)一次向上切換。但是,在已經(jīng)發(fā)生切換并且已經(jīng)傳輸具有新位速率的流之后, 在切換對(duì)客戶端緩沖器的播放長(zhǎng)度產(chǎn)生影響之前需要一定的時(shí)間。 首先,在包含編碼成新速率的數(shù)據(jù)的第 一個(gè)包到達(dá)客戶端緩沖器之 前,存在傳輸延遲。在此期間,存儲(chǔ)在客戶端緩沖器中的媒體的播 放長(zhǎng)度不受新速率的影響。但是,如果播放長(zhǎng)度朝向可能的緩沖器 溢出方向增大,則它可能繼續(xù)增大。反之,如果播放長(zhǎng)度朝向可能 的緩沖器漏泄方向減小,則它可能繼續(xù)減小。而且,即使在第一個(gè) 包依據(jù)新的位速率到達(dá)之后,播放長(zhǎng)度也只是首先緩慢地改變。例 如,仍有一些包與客戶端緩沖器尚未接收到的之前的位速率下的數(shù) 據(jù)一起發(fā)送。因此,切換條件通常仍然有效,并且數(shù)個(gè)切換跟在笫
一次切換之后,這通常不必要。在第一次向下切換的情形中,可以 執(zhí)行數(shù)個(gè)進(jìn)一 步的向下切換,以便導(dǎo)致流位速率遠(yuǎn)低于所需速率。 通常,直到選定最低流位速率才停止向下切換。這種行為導(dǎo)致對(duì)于 用戶來說不一定低的媒體流質(zhì)量。在向上切換的情況下,可以發(fā)生 數(shù)個(gè)進(jìn)一步的向上切換,從而導(dǎo)致流位速率過高,其流位速率通常 會(huì)到達(dá)可能的最高速率。這導(dǎo)致流位速率與當(dāng)前的可用網(wǎng)絡(luò)帶寬相 比高得太多,從而會(huì)觸發(fā)一系列的向下切換。結(jié)果,用戶看到流質(zhì)量令人討厭地頻繁變化。此外,如果選擇 了過高的位速率,則通常不能足夠快速地執(zhí)行隨后的向下切換,從 而導(dǎo)致令人討厭的重新緩沖事件和播放凍結(jié)。類似地,如果選擇了 過低的位速率,則通常不能足夠快速地執(zhí)行隨后的向上切換,從而 導(dǎo)致令人討厭的緩沖器溢出和相關(guān)的數(shù)據(jù)丟失。即使在只有單個(gè)向 上切換閾值和單個(gè)向下切換閾值的情況下,仍會(huì)出現(xiàn)這些種類的問 題,尤其是如果將閾值設(shè)置得太靠近。當(dāng)傳輸具有可變位速率的媒體內(nèi)容時(shí),會(huì)發(fā)生甚至更多的問題。 按照慣例,多Jf某體流的每個(gè)預(yù)先編碼的版本具有單個(gè)位速率,并且 因此,流的位速率只有在服務(wù)器切換到真有更快或更慢速率的不同 流時(shí)才發(fā)生改變,這在上文已經(jīng)描述過。但是,在一些情況下,比 較合適的是提供具有變化位速率的流,尤其是為了適應(yīng)大媒體文件 的存儲(chǔ)和傳輸。換句話說,每個(gè)流版本的某些部分可以具有一種位 速率,而其它部分可以具有另一種位速率。優(yōu)選地,特定流版本的 各個(gè)部分的位速率是基于各個(gè)部分的內(nèi)容進(jìn)行選擇的。例如,流的 一部分可以相對(duì)靜止,以便允許低位速率充分地捕獲內(nèi)容。此后, 可能需要更高的位速率來充分地捕獲更動(dòng)態(tài)的內(nèi)容。通過基于多々某 體流的每個(gè)部分的動(dòng)態(tài)內(nèi)容來設(shè)置該多^某體流的那個(gè)部分的位速 率,可以減小總的文件大小,同時(shí)仍能充分地傳達(dá)內(nèi)容。當(dāng)對(duì)可變位速率流應(yīng)用常規(guī)流切換技術(shù)時(shí),會(huì)出現(xiàn)各種問題。 具體來說,流的變化的位速率會(huì)加重前述問題,從而導(dǎo)致甚至更頻 繁的不必要的切換,對(duì)用戶造成進(jìn)一步的煩惱,并且通常會(huì)浪費(fèi)帶 寬。因此,需要一種用于控制可變位速率數(shù)據(jù)的流切換以便向用戶 提供更穩(wěn)定且更可靠的內(nèi)容的改進(jìn)技術(shù),本發(fā)明便是主要針對(duì)此目的。發(fā)明內(nèi)容本發(fā)明可以在用于控制從服務(wù)器到具有客戶端緩沖器的客戶端 的可變位速率數(shù)據(jù)的包傳輸?shù)姆椒ㄖ袑?shí)施,其中服務(wù)器基于客戶端 緩沖器的狀態(tài)在所傳輸?shù)目勺兾凰俾蕯?shù)據(jù)流的不同版本之間切換。 根據(jù)該方法,選擇可變位速率數(shù)據(jù)流的初始版本用于傳輸,并追蹤表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值(PT)。確定流的選定版本內(nèi)有 待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速率(br)。然后,服務(wù)器 基于表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值(PT)結(jié)合有待傳輸?shù)目勺?位速率數(shù)據(jù)的一部分的位速率(br)來控制到具有不同平均位速率 的不同流版本的切換。在 一 個(gè)實(shí)例中,確定待傳輸?shù)臄?shù)據(jù)的下 一 個(gè)連續(xù)部分的位速率 (brnext)。如果brnext超過平均位速率(brave),則執(zhí)行延遲切 換到具有一般更高位速率的流版本的控制切換步驟,即延遲向上切 換。在另一個(gè)實(shí)例中,如果BR^xT超過平均位速率(BRAVE),則執(zhí) 行加快切換到具有一般更低位速率的流版本的控制切換步驟,即加 快向下切換。在又一個(gè)實(shí)例中,如果BRwext低于平均位速率(BRAVE),則執(zhí) 行加快切換到具有一般更高位速率的流版本的控制切換步驟,即加 快向上切換。在一個(gè)優(yōu)選實(shí)施中,服務(wù)器基于客戶端緩沖器的當(dāng)前狀態(tài)通過 對(duì)客戶端緩沖器內(nèi)已有的數(shù)據(jù)應(yīng)用 一個(gè)或多個(gè)閾值來控制到流的不ii 同版本的切換。該控制切換步驟是通過以下方法來執(zhí)行的基于待 傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速率(BR)來動(dòng)態(tài)地調(diào)整所述 一個(gè)或多個(gè)闊值;然后,通過對(duì)表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值 (PT )應(yīng)用所述一個(gè)或多個(gè)可調(diào)闞值來確定是否切換到流的不同版 本。在該優(yōu)選實(shí)施的一個(gè)實(shí)例中,所述一個(gè)或多個(gè)閾值包括向上切 換閾值(PTUP)和向下切換閾值(PTD0WN)。動(dòng)態(tài)調(diào)整所述一個(gè)或 多個(gè)閾值的步驟是通過以下方法來執(zhí)行的確定可變位速率數(shù)據(jù)的 平均位速率(BRAVE);然后,基于待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的下一 個(gè)部分的位速率(BRnext)和可變位速率數(shù)據(jù)的平均位速率(BRAVE) 的比較選擇性地調(diào)整向上切換和向下切換閾值(PTup和PTDQWN)。 選擇性地調(diào)整向上切換和向下切換閾值的步驟包括當(dāng)可變位速率 數(shù)據(jù)的下一個(gè)部分的位速率(BRNEXT)超過平均位速率(BRAVE)時(shí) 增大向上切換和向下切換閾值(PTup和PTDQWN)的步驟。選擇性地 調(diào)整向上切換和向下切換閾值的步驟還包括當(dāng)可變位速率數(shù)據(jù)的 下一個(gè)部分的位速率(BRNEXT)低于平均位速率(BRAVE)并且向上 切換閾值(PTup)超過向下切換閾值(PTDOWN)時(shí)減小向上切換閾 值(PTup)的步驟。換句話說,如果PTup降到PTd。wn以下,則不向 下調(diào)整PT,在該優(yōu)選實(shí)施中,當(dāng)可變位速率數(shù)據(jù)的下一個(gè)部分的位速率 (BR )超過平均位速率(BRAVE )時(shí)增大向上切換和向下切換閾值(PTUP 和PTd。wn)的步驟是通過以下方法來執(zhí)行的確定可變位速率數(shù)據(jù) 的下一個(gè)部分的位速率(BRneh);接著,計(jì)算可變位速率數(shù)據(jù)的下 一個(gè)部分的位速率(BROTXT)與平均位速率(BRAVE)之比(F)。 然后,將向上切換和向下切換閾值(PTUP和PTDQWN)乘以該比值(F ), 從而增大閾值。減小向上切換閾值(PTUP)的步驟也是通過以下方法 來執(zhí)行的確定可變位速率數(shù)據(jù)的下一個(gè)部分的位速率(BRNEXT); 接著,計(jì)算可變位速率數(shù)據(jù)的下一個(gè)部分的位速率(BRNEXT)與平均
該比值(F),從而減小閾值。接著,選擇減小后的向上切換閾值(PTUP*F)和向下切換閾值(PTD0WN)中的較大者作為新的向上切 換閾值。在各種實(shí)施中,表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值表示數(shù)據(jù)的 播放長(zhǎng)度(PT)或緩沖器填充程度。平均位速率(BRAVE)可以表示 所傳輸?shù)牧鞯恼麄€(gè)版本的平均位速率,或者可以表示所傳輸?shù)牧鞯?版本內(nèi)已經(jīng)傳輸?shù)臄?shù)據(jù)的平均位速率。取決于實(shí)施,客戶端可以是諸如移動(dòng)電話的移動(dòng)通信終端,另 外或者作為備選,服務(wù)器可以集成到移動(dòng)通信終端中,從而使服務(wù) 器和網(wǎng)絡(luò)之間的鏈路是無線鏈路。另外,根據(jù)本發(fā)明的方法可以由 布置在服務(wù)器和客戶端之間的一個(gè)或多個(gè)中間網(wǎng)絡(luò)節(jié)點(diǎn)(如代理) 來執(zhí)行。該方法還可用于具有由該客戶端緩沖器(或多個(gè)客戶端緩 沖器,這取決于客戶端的配置)緩沖的多個(gè)數(shù)據(jù)流的架構(gòu)中。本發(fā)明還可在計(jì)算機(jī)程序產(chǎn)品中實(shí)施,該計(jì)算機(jī)程序產(chǎn)品可以 存儲(chǔ)在計(jì)算機(jī)可讀記錄介質(zhì)上,該計(jì)算機(jī)程序產(chǎn)品包括多個(gè)程序代 碼部分,這些程序代碼部分用于在該計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)系統(tǒng) 上運(yùn)行時(shí)執(zhí)行上述方法的任一 步驟。本發(fā)明還可包括具有計(jì)算機(jī)處理器和耦合到該處理器的存儲(chǔ)器 的設(shè)備,其中存儲(chǔ)器中編碼有一個(gè)或多個(gè)程序,這個(gè)或這些程序可 以執(zhí)行上述方法的任一 步驟。在又一個(gè)實(shí)施例中,本發(fā)明涉及用于控制從服務(wù)器到具有客戶 端緩沖器的客戶端的可變位速率數(shù)據(jù)的包傳輸?shù)脑O(shè)備,其中服務(wù)器 基于客戶端緩沖器的狀態(tài)在所傳輸?shù)目勺兾凰俾蕯?shù)據(jù)流的不同版本 之間切換。該設(shè)備包括預(yù)期可變位速率流傳輸控制器,用于選擇 可變位速率數(shù)據(jù)流的初始版本進(jìn)行傳輸;客戶端緩沖器監(jiān)視器,用 于追蹤表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值;可變位速率確定單元, 用于確定選定的流版本內(nèi)有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的 一部分的位 速率(BR);并且其中,預(yù)期可變位速率流傳輸控制器接著基于表
速率(BR);并且其中,預(yù)期可變位速率流傳輸控制器接著基于表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值(PT)結(jié)合有待傳輸?shù)目勺兾凰俾?數(shù)據(jù)的一部分的位速率(BR)來控制到具有不同平均位速率的不同流版本的切換。該設(shè)備可以配置成固定或移動(dòng)網(wǎng)絡(luò)組件,如網(wǎng)絡(luò)服務(wù)器和/或無 線終端。另外,該設(shè)備可以由諸如代理的中間網(wǎng)絡(luò)節(jié)點(diǎn)組成。
在下文中,將參照如圖所示的實(shí)例性實(shí)施例描述本發(fā)明,圖中圖1是可用于理解和實(shí)施本發(fā)明的通信系統(tǒng)的示意圖;圖2是提供對(duì)本發(fā)明的方法實(shí)施例的概述的過程流程圖;圖3是示出可變位速率數(shù)據(jù)流的各種版本的圖,其中特別示出各個(gè)流版本的不同的平均位速率;圖4是單個(gè)可變位速率數(shù)據(jù)流的框圖,其中特別示出該流的各個(gè)部分的位速率;圖5是示出本發(fā)明的可變位速率邏輯的實(shí)例性實(shí)施的過程流程圖;圖6是客戶端緩沖器的框圖,其中特別示出本發(fā)明所用的各個(gè) 閾值;以及圖7是示出本發(fā)明的服務(wù)器組件的實(shí)例性設(shè)備實(shí)施的框圖。
具體實(shí)施方式
在以下描述中,為了說明而不是限制的目的,闡述了具體細(xì)節(jié), 如特定步驟序列和各種配置,以便充分理解本發(fā)明。本領(lǐng)域的技術(shù) 人員將了解,可以在不偏離這些具體細(xì)節(jié)的情況下,在其它實(shí)施例 中實(shí)踐本發(fā)明。此外,本領(lǐng)域的技術(shù)人員將了解,可以利用連同程 序控制的微處理器或通用計(jì)算機(jī)起作用的軟件和/或利用專用集成電 路(ASIC)來實(shí)施如下所述的功能。還將了解,盡管主要將本發(fā)明
理器和耦合到該處理器的存儲(chǔ)器的系統(tǒng)或設(shè)備中實(shí)施本發(fā)明,其中 存儲(chǔ)器中編碼有一個(gè)或多個(gè)程序,這個(gè)或這些程序可以執(zhí)行本文所 7^開的方法。 '圖1示出可以與本發(fā)明一起使用的示例架構(gòu)100,該架構(gòu)100包括可以經(jīng)由諸如IP網(wǎng)絡(luò)110的通信路徑耦合到客戶端115的服務(wù)器 105。該服務(wù)器包括媒體內(nèi)容模塊120,該媒體內(nèi)容模塊120經(jīng)由 RTP/UDP模塊125利用諸如UTDP上的RTP (實(shí)時(shí)傳輸協(xié)議)或用于 管理多媒體數(shù)據(jù)的實(shí)時(shí)傳輸?shù)钠渌鼣?shù)據(jù)傳輸協(xié)議(利用諸如UDP (用 戶數(shù)據(jù)報(bào)協(xié)議)的傳輸層協(xié)議)的流式標(biāo)準(zhǔn)來訪問和傳輸某個(gè)d^某體 內(nèi)容(如多々某體數(shù)據(jù)文件)。將包傳輸結(jié)">共網(wǎng)絡(luò)130 (如因特網(wǎng), 但是,當(dāng)服務(wù)器直接耦合到運(yùn)營商網(wǎng)絡(luò)135時(shí),不需要外部公共網(wǎng) 絡(luò)),公共網(wǎng)絡(luò)130將包遞送給與它耦合的運(yùn)營商網(wǎng)絡(luò)135,如移動(dòng) 通信運(yùn)營商"有線,,網(wǎng)絡(luò)。運(yùn)營商網(wǎng)絡(luò)135包括提供服務(wù)器105和客戶端115之間的通信 鏈路的核心網(wǎng)絡(luò)140。核心網(wǎng)絡(luò)140視情況可以具有緩沖器,核心網(wǎng) 絡(luò)140提供從RTP/UDP模塊125接收的包用于在無線接入網(wǎng)(RAN ) 145內(nèi)的緩沖器(如SGSN或RNC中的緩沖器)中進(jìn)行緩沖,然后 通過無線發(fā)射器150傳輸這些包。核心網(wǎng)絡(luò)140的緩沖器(如果利 用緩沖)和RAN 145串聯(lián)布置,它們構(gòu)成網(wǎng)絡(luò)緩沖器??蛻舳?15在客戶端緩沖器155中接收由無線發(fā)射器150傳輸 的包。這些包從客戶端緩沖器155傳送到RTP/UDP模塊160,用于 遞送給媒體應(yīng)用模塊165 (或多媒體播放器)并供其使用。為了本申 請(qǐng)的目的,短語"包傳輸速率"將指從服務(wù)器105到IP網(wǎng)絡(luò)110的 包傳輸速率,短語"鏈路速率"將指從IP網(wǎng)絡(luò)110到客戶端115的 包傳輸速率,并且短語"內(nèi)容速率"應(yīng)指數(shù)據(jù)從客戶端緩沖器115 傳送到媒體應(yīng)用模塊165以便供媒體應(yīng)用模塊165播放的速率。參照?qǐng)D2,示出本發(fā)明的方法實(shí)施例200,它可以由例如圖1中 的系統(tǒng)來執(zhí)行。該方法優(yōu)選由諸如圖1中的服務(wù)器105的服務(wù)器來
實(shí)施,但也可以由任何其它合適的網(wǎng)絡(luò)組件來實(shí)施。在以下描述中, 將假定,由服務(wù)器來實(shí)施該方法的各個(gè)步驟。在步驟202開始,服 務(wù)器選擇可變位速率數(shù)據(jù)流的初始版本用于傳輸。該流的初始版本 是根椐另外的常規(guī)技術(shù)從一組具有 一般不同的預(yù)先編碼的傳輸速率的不同流版本中選擇的。例如,第一個(gè)流可以從1兆位(Mbit) /秒 的位速率開始,而第二個(gè)流可以從2 Mbit/秒的位速率開始。因?yàn)榱?本身具有可變位速率,所以每個(gè)流版本同樣具有可變位速率。因此, 不管選擇哪個(gè)流版本,流內(nèi)編碼的數(shù)據(jù)的位速率都將改變。例如, 第一個(gè)流版本可以在十秒鐘后切換到2Mbits/秒的位速率,而第二個(gè) 流版本可以在10秒鐘后切換到3Mbits/秒的位速率,即兩個(gè)流版本都 具有在10秒鐘后增加1Mbit/sec的預(yù)先編碼的位速率。圖3示出單個(gè)位流的三個(gè)實(shí)例性版本。每個(gè)流版本具有隨時(shí)間 變化的位速率。這些版本都相互同步,即,位速率都同時(shí)增加或都 同時(shí)減小。但是,各個(gè)流版本的平均位速率各不相同。服務(wù)器通過 在不同的流版本之間切換來執(zhí)行向上切換和向下切換。在圖3的實(shí) 例中,只示出三個(gè)流版本。通常,會(huì)預(yù)先存儲(chǔ)更多版本。而且,在 該實(shí)例中,最高位速率流版本205的最低位速率處在高于下一個(gè)流 版本207的最高位速率的速率。類似地,流版本205的最低位速率 處在高于版本209的最高位速率的速率。但是,事實(shí)不需要如此。 通常,位速率會(huì)有至少一定的重疊。而且,在該實(shí)例中,將速率變 化示為平滑,即,速率平滑地增大到峰值,然后平滑地減小。事實(shí) 也不需要如此。在許多實(shí)例中,位速率不連續(xù)地改變,即,速率從 一個(gè)等級(jí)(如lMbit/sec)跳到不同等級(jí)(如2Mbit/sec)。返回到圖2,在步驟202,通過從選定的流版本中獲取預(yù)先編碼 的數(shù)據(jù)并將那個(gè)預(yù)先編碼的數(shù)據(jù)放到數(shù)據(jù)包中、然后在預(yù)定包傳輸 速率下將這些數(shù)據(jù)包傳輸?shù)娇蛻舳?,來將選定的流版本從服務(wù)器傳 輸?shù)娇蛻舳恕W⒁?,所傳輸?shù)牧鲀?nèi)的可變位速率數(shù)據(jù)的位速率的任 何改變通常都不要求改變包傳輸速率,包傳輸速率是基于帶寬考慮
因素確定的。類似地, 一個(gè)流版本相對(duì)于另一個(gè)版本的選擇通常不 需要改變包傳輸速率。在步驟204,服務(wù)器追蹤表示客戶端緩沖器內(nèi)當(dāng)前的數(shù)據(jù)量的值。這也可以根據(jù)其它常規(guī)技術(shù)來執(zhí)行。在一個(gè)實(shí)例中,如果根據(jù)RTCP協(xié)議來實(shí)現(xiàn)客戶端緩沖器,則服務(wù)器從客戶端緩沖器接收反 饋,該反饋包括據(jù)以確定客戶端緩沖器內(nèi)的數(shù)據(jù)量的NSN/OBSN和 HRSN數(shù)據(jù)字段。上文提到,客戶端緩沖'器內(nèi)的數(shù)據(jù)量可以用例如播 放長(zhǎng)度(PT)、客戶端緩沖器的填充程度或其它合適的值來表示。 在以下描述中,將使用播放長(zhǎng)度(PT)來描述實(shí)例。在步驟206,服務(wù)器確定有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的 位速率(BR)。優(yōu)選地,服務(wù)器檢查到有待傳輸?shù)氖菙?shù)據(jù)的下一個(gè) 連續(xù)部分,即,服務(wù)器確定表示待傳輸?shù)臄?shù)據(jù)的下一個(gè)部分的位速 率的值(BRNEXT)。下一個(gè)數(shù)據(jù)部分可以用例如值預(yù)定秒數(shù)的有待傳 輸?shù)臄?shù)據(jù)來定義,或者可以將它定義成當(dāng)前傳輸?shù)臄?shù)據(jù)中在數(shù)據(jù)發(fā) 生下一次預(yù)設(shè)變化之前的那個(gè)數(shù)據(jù)部分。例如,如果預(yù)先編碼的可 變位速率數(shù)據(jù)流在切換到另 一個(gè)位速率之前將保留它的當(dāng)前位速率 下一個(gè)12秒,則下一個(gè)數(shù)據(jù)部分包括值下一個(gè)12秒的數(shù)據(jù)。圖4示出所傳輸?shù)目勺兾凰俾蕯?shù)據(jù)流的實(shí)例性版本208。該流包 括具有表示成BR#1、 BR#2、 BR約、BR#4等不同位速率的部分。BR#1 和BR#3兩者可以是例如1Mbit/秒,而BR^和BR#4兩者可以是例如 2Mbit/秒。由圖可見,這些部分可以具有不同長(zhǎng)度,即持續(xù)時(shí)間。在 該實(shí)例中,箭頭210表示流內(nèi)對(duì)應(yīng)于當(dāng)前傳輸?shù)臄?shù)據(jù)的點(diǎn)。因此, 下一個(gè)數(shù)據(jù)部分是在點(diǎn)210處開始的數(shù)據(jù)。那個(gè)數(shù)據(jù)的速率是BR"。 如果用當(dāng)前傳輸?shù)臄?shù)據(jù)中在數(shù)據(jù)發(fā)生下一次預(yù)設(shè)變化之前的那個(gè)數(shù) 據(jù)部分來定義下一個(gè)數(shù)據(jù)部分,則BRNEXT就是BR#2。相反,如果用 值預(yù)定秒數(shù)的待傳輸?shù)臄?shù)據(jù)來定義下一個(gè)數(shù)據(jù)部分,則下一個(gè)數(shù)據(jù) 部分可以涵蓋兩個(gè)或兩個(gè)以上不同的位速率。在此情況下,服務(wù)器 可以配置成簡(jiǎn)單地選擇那些位速率中的第一個(gè)位速率作為BRNEXT, 可以配置成簡(jiǎn)單地選擇那些位速率中的第 一個(gè)位速率作為BRNEXT ,或者可以配置成計(jì)算那個(gè)預(yù)定時(shí)期內(nèi)的平均位速率BRAVE作為 BRNEXT。在任一情況下,在圖2中的步驟206,確定表示有待傳輸?shù)?某一數(shù)據(jù)部分的位速率的值。在圖2中的步驟212,服務(wù)器接著基于表示客戶端緩沖器內(nèi)當(dāng)前 的數(shù)據(jù)量的值(PT)和有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速 率(BR)來控制到具有不同平均位速率的不同流版本的切換,例如, 服務(wù)器基于PT和BI^EXT控制向上切換和向下切換。通過除了 PT外 還考慮有待傳輸?shù)臄?shù)據(jù)的位速率,服務(wù)器能夠避免在只采用固定速 率切換閾值的常規(guī)系統(tǒng)中出現(xiàn)的許多不必要的速率切換。優(yōu)選地,如果BR仰xT超過BRAVE,則延遲由于客戶端緩沖器的 狀態(tài)改變而引起的任何向上切換。換句,說,如果客戶端緩沖器內(nèi) 的播放長(zhǎng)度的任何增大會(huì)另外觸發(fā)切換到具有一般更高傳輸速率的 不同流版本,則延遲該切換。如果服務(wù)器在可變位速率無論如何都 會(huì)增大的流中的點(diǎn)之前執(zhí)行向上切換,則向上切換可能會(huì)起相反作 用,并且可能需要補(bǔ)償?shù)南蛳虑袚Q。在這方面,通過在可變位速率 流的位速率增大的流中的點(diǎn)之前執(zhí)行向上切換,因此會(huì)一個(gè)接一個(gè) 地出現(xiàn)兩個(gè)位速率增大。結(jié)果,位速率接著可能高于所需位速率, 從而可能觸發(fā)補(bǔ)償?shù)南蛳虑袚Q以便防止可能的緩沖器漏泄。通過在 可變位速率數(shù)據(jù)的位速率無論如何都會(huì)增大的情形中改為延遲向上 切換,服務(wù)器可能同時(shí)避免不必要的向上切換和隨后的補(bǔ)償向下切 換,從而向終端用戶提供一致性更高的力某體質(zhì)量。同樣優(yōu)選地,如果BR^^超過BRAVE,則加快由于客戶端緩沖 器的狀態(tài)改變而引起的任何向下切換。換句話說,如果客戶端緩沖 器內(nèi)的播放長(zhǎng)度的減小會(huì)另外觸發(fā)到具有 一般更低傳輸速率的不同 流版本的切換,則當(dāng)可變位速率會(huì)增大時(shí),加快該切換。通過在所 傳輸?shù)臄?shù)據(jù)的位速率會(huì)增大的情形中加快向下切換,服務(wù)器從而有 助于防止可能的重新緩沖事件。另一方面,如果服務(wù)器沒有預(yù)計(jì)到 向下切換閾值(PTd。,)以下而觸發(fā)的向下切換可能會(huì)太遲而無法 防止重新緩沖,已知增大的流位速率本身將加速緩沖器漏泄。優(yōu)選地,如果BRNEXT改為低于BRAVE,則加快由于客戶端緩沖 器的狀態(tài)改變而引起的任何向上切換。換句話說,如果客戶端緩沖 器內(nèi)的播放長(zhǎng)度的增大會(huì)另外觸發(fā)切換到具有一般更高傳輸速率的 不同流版本,則當(dāng)可變位速率會(huì)減小時(shí),加快該切換。通過在所傳 輸?shù)臄?shù)據(jù)的位速率會(huì)減小的情形中加快向上切換,服務(wù)器從而有助 于防止可能的溢出事件。另一方面,如果服務(wù)器沒有預(yù)計(jì)到可變位 速率數(shù)據(jù)內(nèi)的位速率的減小,則由于播放長(zhǎng)度超過常規(guī)的固定向上 切換閾值(PTup)而觸發(fā)的向上切換可能會(huì)太遲而無法防止緩沖器溢 出,已知減小的流位速率本身將加速緩沖器溢出。此外,加快的向 上切換更迅速地向用戶提供改善的媒體質(zhì)量。但是,注意,當(dāng)BRwj^低于BR^e時(shí),優(yōu)選不延遲(也不加快) 由于客戶端緩沖器的狀態(tài)改變而引起的任何向下切換。確切地說, 在那種情況下,優(yōu)選基于常規(guī)的固定向下切換閾值(PTDQWN)來觸 發(fā)向下切換。盡管鑒于可變位速率數(shù)據(jù)的位速率無論如何不久都會(huì) 減小的事實(shí),會(huì)潛在地延遲向下切換,但是在本發(fā)明的優(yōu)選實(shí)施中 沒有這樣做,以避免緩沖器漏泄的危險(xiǎn)。現(xiàn)在轉(zhuǎn)到圖5,將描述用于圖2中的步驟212的可變位速率邏輯 的優(yōu)選實(shí)施。在步驟300開始,服務(wù)器確定PTup和PTd。,的但。PTup和PlD。wN可以是預(yù)定的固定向上切換和向下切換閾值,并且可以根據(jù)其它常規(guī)技術(shù)設(shè)置。在步驟302,服務(wù)器確定BR^xt和BR^e的 值。BRNEXT可以通過檢查存儲(chǔ)在服務(wù)器內(nèi)或另外可供服務(wù)器訪問的 與待傳輸?shù)臄?shù)據(jù)相關(guān)的編碼位速率來確定。在一個(gè)實(shí)例中,BRave是 通過檢查已經(jīng)傳輸?shù)臄?shù)據(jù)的編碼位速率的記錄(以及傳輸包含編碼 成各種位速率的數(shù)據(jù)的包的持續(xù)時(shí)間)計(jì)算獲得的。可以利用其它 例行算法來計(jì)算實(shí)際平均值。在第二個(gè)實(shí)例中,可以預(yù)先計(jì)算和存 儲(chǔ)整個(gè)流的BR^e值(當(dāng)在流會(huì)話開始之前編碼各個(gè)流時(shí),可以在
播放之前確定各個(gè)流的各個(gè)BR^E值)。換句話說,在這第二個(gè)實(shí)例中,BRAVE不只是已經(jīng)傳輸?shù)哪莻€(gè)數(shù)據(jù)部分的平均位速率,而是表 示整個(gè)流的平均值,即BRave是如例如圉3所示的平均位速率。在步驟304,服務(wù)器計(jì)算值F, F表示BR肌xt和BR^e之比,即 F=BRNEXT/BRAVE。因此,如果BR肌xT超過BR^e,則F大于1.0。如 果BI^vE超過BRNEXT,則F小于1.0。在BRj^t等于BRAVE的情況 下,則F等于1.0。如果尚未傳輸任何數(shù)據(jù)(使得BRAVE沒有當(dāng)前值), 則簡(jiǎn)單地將F設(shè)為1.0。如果當(dāng)前數(shù)據(jù)流內(nèi)沒有要傳輸?shù)臄?shù)據(jù),使得 BR^xT沒有當(dāng)前值,則同樣優(yōu)選將F重設(shè)為1.0,以便與將要傳輸?shù)?下一個(gè)數(shù)據(jù)流一起使用。在步驟306,服務(wù)器將可調(diào)向上切換閾值(PTup.,)設(shè)置成等 于PTup乘以F,即PTu^F;同時(shí)將可調(diào)向下切換閾值(PTDC)WN.ADJ) 設(shè)置成等于PTd。wn乘以F,即PTDC)WN*F。因此,如果BR仰xT超過 BRAVE,則PT,扁大于PTup,并且PT。o麗-認(rèn)也大于PTDo麗。反之, 如果BR磁t小于BR謹(jǐn),則PTup-扁小于PTup,并且P丁d。麗-層也小于PTdo雨。這些閾值如圖6所示,圖6提供了圖1中的客戶端緩沖器115 的框圖表示。在圖6的實(shí)例中,可調(diào)閾值大于對(duì)應(yīng)的固定閾值。注 意,會(huì)潛在地出現(xiàn)這樣的情形,其中PTup.扁經(jīng)計(jì)算可以大于客戶端 緩沖器的最大值(MAX)。如果BRNEXT比BRAVE大得足夠多,導(dǎo)致 F為高值,則會(huì)出現(xiàn)這種情形。如果出現(xiàn)這樣情形,則簡(jiǎn)單地將PTup.mj 設(shè)置成等于MAX或某個(gè)其它更小的默認(rèn)值。在極不可能的情況下, 由于F值極高,所以PTo。,.a^經(jīng)計(jì)算也大于MAX,那么在此情況 下,優(yōu)選也將PTD。wNAD;設(shè)置成某個(gè)默認(rèn)值,該默認(rèn)值小于PTUP_ADJ 的所設(shè)默認(rèn)值,從而確保PTDQ鄉(xiāng)-扁仍小于PTup-扁。轉(zhuǎn)到圖5,在步驟308,服務(wù)器開始確定PT的值,即在圖2中 的步驟204處追蹤的包含在客戶端緩沖器內(nèi)的已有數(shù)據(jù)的當(dāng)前播放 長(zhǎng)度的值。如果在判定步驟310, PT大于PIdo,并且PT也大于 PTup.ad:,則在步驟312觸發(fā)向上切換。如果否,則執(zhí)行判定步驟314, 其中如果PT小于PTo。麗或PT小于PTd。,-細(xì),則在步驟316觸發(fā) 向下切才奐。判定步驟310和316的邏輯可以表示如下 If PT > PTdown AND PT > PTl)p-ad〕 then才丸4亍向上切換elseIf PT < PT, OR PT < PT,掘執(zhí)行向下切換end if其中,如上文提到的, PTUP—Am=PTUP*F;并且r丄down-adj=f丄down f °因此,如果客戶端緩沖器的當(dāng)前播放長(zhǎng)度(PT)超過可調(diào)向上 切換閾值(PTup.扁),并且假定PT也超過PTDO,,則觸發(fā)向上切 換。后一條件防止在向下切換可能更合適的情況下不合適的向上切發(fā)向上切換,服務(wù)器因而考慮到客戶端緩沖器的當(dāng)前狀態(tài)(由PT表 示),同時(shí)也預(yù)計(jì)到可變位速率數(shù)據(jù)流內(nèi)的位速率的變化(通過調(diào) 整向上切換閾值)。這有助于防止其它不合適的向上切換??紤]其中可調(diào)向上切換閾值最初完全等于固定向上切換閾值的 實(shí)例。因此,如果客戶端緩沖器的播放長(zhǎng)度超過那個(gè)閾值等級(jí),則 執(zhí)行向上切換。如果可變位速率數(shù)據(jù)的位速率接著會(huì)增大,則可調(diào) 向上切換閾值將增大,從而大于固定閾值。在此情形下,只有在播 放長(zhǎng)度超過新的更高閾值時(shí)才會(huì)執(zhí)行進(jìn)一步的向上切換。換句話說, 因?yàn)楸仨毘^更高閾值,所以更難觸發(fā)向上切換,從而在保證延遲
的情形延遲進(jìn)一步的向上切換,這在上文中已經(jīng)結(jié)合圖1進(jìn)行過論 述。現(xiàn)在考慮這樣一個(gè)實(shí)例,其中再次在最初將可調(diào)向上切換閾值 設(shè)置成等于固定向上切換閾值,但是其中可變位速率數(shù)據(jù)的位速率 改為會(huì)減小。在此情形下,可調(diào)向上切換閾值將低于固定闊值。在 此情形下,向上切換的觸發(fā)變得容易,從而在保證加快的情形中加 快進(jìn)一步的向上切換,這在上文中也已論述過?,F(xiàn)在轉(zhuǎn)到向下切換,如果客戶端緩沖器的當(dāng)前播放長(zhǎng)度(pt) 降到固定闊值ptd。,或可調(diào)向下切換閾值(PTd。,.^j)以下,則觸 發(fā)向下切換。換句話說,如果pt降到兩個(gè)向下切換閾值中的較大者 以下,則觸發(fā)向下切換。仍然利用固定閾值來觸發(fā)向下切換,以便 防止向下切換延遲,從而有助于防止重新緩沖事件的發(fā)生。但是, 也可以加快向下切換,這在pt降到可調(diào)向下切換閾值以下時(shí)發(fā)生。 如上文所提到的,可調(diào)向下切換閾值可以高于或低于固定向下切換 閾值。如果它低于固定閾值,則它是多余的,因?yàn)闊o論如何都可利 用固定闊值來立即觸發(fā)向下切換。但是,如果可調(diào)向下切換閾值超 過固定向下切換闊值,則可調(diào)向下切換閾值可以觸發(fā)加快的向下切 換,即向下切換的觸發(fā)變得容易,從而在保證加快的情形下加快進(jìn) 一步的向下切換,這在上文也已論述過。如果判定步驟310和314的條件沒有一個(gè)是真的,則處理返回 到步驟302,在步驟302,更新BR肌xt和BRAVE的值以便反映其中的 任何變化,調(diào)整可調(diào)閾值,并輸入PT的最新值以應(yīng)用于各個(gè)閾值。因此,上文描述了用于通過在預(yù)先編碼的流的不同版本中進(jìn)行 切換來調(diào)整基于包的系統(tǒng)中的總的數(shù)據(jù)傳輸速率的技術(shù)的實(shí)例性方 法實(shí)施。包傳輸速率通常不變,因?yàn)樗Q于通信鏈路的帶寬。但 是,在其它實(shí)施中,也可以利用例如自適應(yīng)技術(shù)來改變包傳輸速率。盡管主要參照方法實(shí)施描述了本發(fā)明,但設(shè)備實(shí)施也是本發(fā)明 的一部分。圖7在高層示出實(shí)例性設(shè)備實(shí)施。簡(jiǎn)單來說,網(wǎng)絡(luò)組件400 可以是圖1中的服務(wù)器105的一部分,它包括用于選擇(202)可變
可以是圖1中的服務(wù)器105的一部分,它包括用于選擇(202)可變 位速率數(shù)據(jù)流的初始版本進(jìn)行傳輸?shù)念A(yù)期可變位速率流傳輸控制器(402 )??蛻舳司彌_器監(jiān)視器(404 )追蹤表示客戶端緩沖器內(nèi)的 數(shù)據(jù)量的值??勺兾凰俾蚀_定單元(406)確定選定的流版本內(nèi)有待 傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速率(BR)。然后,預(yù)期可變 位速率流傳輸控制器(402)基于表示客戶端緩沖器內(nèi)的數(shù)據(jù)量的值(PT)結(jié)合有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速率(BR)來 控制到具有不同平均位速率的不同流版本的切換,即,控制器402 預(yù)計(jì)可變位速率流的位速率變化,并相應(yīng)地控制向上切換和向下切 換。本領(lǐng)域的技術(shù)人員明白,本發(fā)明及其相關(guān)技術(shù)通過避免客戶端 緩沖器溢出來提供終端用戶對(duì)諸如多媒體流的應(yīng)用程序的增強(qiáng)的感 覺體驗(yàn)。此外,本領(lǐng)域的技術(shù)人員還將明白,可以利用許多不同的 技術(shù)來確定客戶端緩沖器的填充程度,包括基于RR和發(fā)送方報(bào)告內(nèi) 的數(shù)據(jù)的估算法,并且還將明白,本發(fā)明可以同時(shí)與多個(gè)數(shù)據(jù)包流 并行實(shí)施,這些數(shù)據(jù)包流經(jīng)緩沖后傳輸?shù)揭粋€(gè)或多個(gè)客戶端。本領(lǐng)域的技術(shù)人員還將明白,本發(fā)明可以在且可以由各種類型 的網(wǎng)絡(luò)組件實(shí)施,如網(wǎng)絡(luò)終端、網(wǎng)絡(luò)節(jié)點(diǎn)等。具體來說,本發(fā)明可 以由移動(dòng)終端、代理(這可以劃分傳輸路徑)和固定終端來實(shí)現(xiàn)。盡管就具體實(shí)施例描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員將明白, 本發(fā)明不限于本文所描述和示出的具體實(shí)施例。因此,盡管關(guān)于它 的優(yōu)選實(shí)施例描述了本發(fā)明,但應(yīng)了解,本公開只是說明性的。因 此,希望本發(fā)明只是受隨附權(quán)利要求的范圍的限制。
權(quán)利要求
1.一種用于控制從服務(wù)器(105)到具有客戶端緩沖器(155)的客戶端(115)的可變位速率數(shù)據(jù)的包傳輸?shù)姆椒?,其中,所述服?wù)器基于所述客戶端緩沖器的狀態(tài)在所傳輸?shù)目勺兾凰俾蕯?shù)據(jù)流的不同版本之間切換,所述方法包括以下步驟選擇(202)可變位速率數(shù)據(jù)流的初始版本進(jìn)行傳輸;追蹤(204)表示所述客戶端緩沖器內(nèi)的數(shù)據(jù)量的值(PT);確定(206)所述流的選定版本內(nèi)有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速率(BR);以及基于表示所述客戶端緩沖器內(nèi)的數(shù)據(jù)量的所述值(PT)結(jié)合有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的所述部分的位速率(BR)來控制(212)到所述流的具有不同平均位速率的不同版本的切換。
2. 如權(quán)利要求1所述的方法,其特征在于,控制切換(212)步 驟包括以下步驟如果待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的下一個(gè)部分的位速率(BRNEXT ) 超過平均位速率(BRAVE),則延遲(310)切換到所述流的具有一 般更高位速率的版本。
3. 如權(quán)利要求1所述的方法,其特征在于,控制切換(212)步 驟包括以下步驟如果待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的下一個(gè)部分的位速率(BRNEXT ) 超過平均位速率(BRAVE),則加快(314)切換到所述流的具有一 般更低位速率的版本。
4. 如權(quán)利要求1所述的方法,其特征在于,控制切換(212)步 驟包括以下步驟如果待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的下一個(gè)部分的位速率(BRNEXT ) 低于平均位速率(BRAVE),則加快切換(310)到所述流的具有一 般更高位速率的版本。
5. 如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器(105) 基于所述客戶端緩沖器(155)的當(dāng)前狀態(tài)通過對(duì)所述客戶端緩沖器 中已有的數(shù)據(jù)應(yīng)用 一個(gè)或多個(gè)閾值來控制到所述流的不同版本的切 換,并且其中控制切換(212)步驟包括基于有待傳輸?shù)乃隹勺兾凰俾蕯?shù)據(jù)的所述部分的位速率(BR) 動(dòng)態(tài)地調(diào)整(306 )所述一個(gè)或多個(gè)閾值;以及基于所述客戶端緩沖器(155)的當(dāng)前狀態(tài)通過對(duì)表示所述客戶 端緩沖器(155)內(nèi)的數(shù)據(jù)量的所述值(PT)應(yīng)用一個(gè)或多個(gè)可調(diào)閾 值來確定是否切換到所述流的不同版本。
6. 如權(quán)利要求5所述的方法,其特征在于,所述一個(gè)或多個(gè)閾 值包括向上切換閾值(PTUP)和向下切換閾值(PTDQWN)中的至少 一個(gè)閾值。
7. 如權(quán)利要求6所述的方法,其特征在于,動(dòng)態(tài)調(diào)整(306)所 述一個(gè)或多個(gè)閾值的步驟包括以下步驟確定所述可變位速率數(shù)據(jù)的平均位速率(BRAVE);以及 基于待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的下一個(gè)部分的位速率(BRNEXT ) 與所述可變位速率數(shù)據(jù)的平均位速率(BRAVE)的比較選擇性地調(diào)整 (306)所迷向上切換和向下切換閾值(PTUP, PTDOWN)。
8. 如權(quán)利要求7所述的方法,其特征在于,選擇性地調(diào)整(306) 所述向上切換和向下切換閾值(PTup, PTDQWN)的步驟包括以下步 驟如果可變位速率數(shù)據(jù)的下一個(gè)部分的位速率(BRNEXT)超過所述 平均位速率(BRAVE),則增大(306)所述向上切換和向下切換閾 值;以及如果所述可變位速率數(shù)據(jù)的下一個(gè)部分的位速率(BRne^)低于 所述平均位速率(BRAVE),并且如果所述向上切換閾值超過所述向 下切換閾值,則減小(306)所述向上切換閾值。
9. 如權(quán)利要求8所述的方法,其特征在于,如果可變位速率數(shù) 據(jù)的下一個(gè)部分的位速率超過所述平均位速率則增大所述向上切換和向下切換閾值(PTup, PTTOWN)的步驟包括以下步驟 確定(302)可變位速率數(shù)據(jù)的下一個(gè)部分的位速率; 計(jì)算(304)可變位速率數(shù)據(jù)的下一個(gè)部分的位速率和所述平均位速率之比(F);以及將所述向上切換和向下切換閾值(PTW, PTD0WN)乘以(306 )所述比值,從而增大所述閾值。
10. 如權(quán)利要求8所述的方法,其特征在于,減小所述向上切換 閾值(PTW)的步驟包括以下步驟確定(302)可變位速率數(shù)據(jù)的下一個(gè)部分的位速率; 計(jì)算(304 )可變位速率數(shù)據(jù)的下一個(gè)部分的位速率和所述平均 位速率之比(F);將所述向上切換閾值乘以(306)所述比值,從而減小所述閾值;以及選擇(310)減小后的向上切換閾值和所述向下切換閾值中的較 大者作為新的向上切換閾值。
11. 如權(quán)利要求2-12中任一權(quán)利要求所述的方法,其特征在于, 所述平均位速率(BRAVE)表示所傳輸?shù)牧鞯恼麄€(gè)版本的平均位速率。
12. 如權(quán)利要求2-12中任一權(quán)利要求所述的方法,其特征在于, 所述平均位速率(BRAVE)表示所傳輸?shù)牧靼姹緝?nèi)已經(jīng)傳輸?shù)臄?shù)據(jù)的 平均位速率。
13. 如前述權(quán)利要求中任一權(quán)利要求所述的方法,其特征在于, 與所述客戶端緩沖器內(nèi)的數(shù)據(jù)相關(guān)的所述值表示所述數(shù)據(jù)的播放長(zhǎng) 度(PT)。
14. 如前述權(quán)利要求中任一權(quán)利要求所述的方法,其特征在于, 與所述客戶端緩沖器內(nèi)的數(shù)據(jù)相關(guān)的所述值表示所述數(shù)據(jù)的緩沖器 填充程度。
15. —種計(jì)算機(jī)程序產(chǎn)品,包括程序代碼部分,所述程序代碼部 分用于在所述計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)系統(tǒng)上運(yùn)行時(shí)執(zhí)行如前述權(quán) 利要求中任一權(quán)利要求所述的步驟。
16. 如權(quán)利要求15所迷的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述 計(jì)算機(jī)程序產(chǎn)品存儲(chǔ)在計(jì)算機(jī)可讀記錄介質(zhì)上。
17. —種設(shè)備,包括計(jì)算機(jī)處理器和耦合到所述處理器的存儲(chǔ) 器,其中所述存儲(chǔ)器中編碼有一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程 序可以執(zhí)行如權(quán)利要求1-14中任一權(quán)利要求所述的步驟。
18. —種用于控制從服務(wù)器(105)到具有客戶端緩沖器(155) 的客戶端(115)的可變位速率數(shù)據(jù)的包傳輸?shù)脑O(shè)備(400 ),其特 征在于,所述服務(wù)器基于所述客戶端緩沖器的狀態(tài)在所傳輸?shù)目勺?位速率數(shù)據(jù)流的不同版本之間切換,所述設(shè)備包括預(yù)期可變位速率流傳輸控制器(402 ),用于選擇(202 )可變 位速率數(shù)據(jù)流的初始版本進(jìn)行傳輸;客戶端緩沖器監(jiān)視器(404),用于追蹤表示所述客戶端緩沖器 內(nèi)的數(shù)據(jù)量的值;可變位速率確定單元(406),用于確定所述流的選定的版本內(nèi) 有待傳輸?shù)目勺兾凰俾蕯?shù)據(jù)的一部分的位速率(BR);并且其中,所述預(yù)期可變位速率流傳輸控制器(402)接著基于表示 所述客戶端緩沖器內(nèi)的數(shù)據(jù)量的所述值(PT)結(jié)合有待傳輸?shù)目勺?位速率數(shù)據(jù)的所述部分的位速率(BR)來控制到所述流的具有不同 平均位速率的不同版本的切換。
全文摘要
公開一種用于根據(jù)等待模式和動(dòng)態(tài)模式控制從服務(wù)器到具有客戶端緩沖器的客戶端的數(shù)據(jù)包傳輸?shù)募夹g(shù)。在包含編碼成具有當(dāng)前位速率的數(shù)據(jù)的包到達(dá)客戶端緩沖器之前,執(zhí)行等待模式;否則執(zhí)行動(dòng)態(tài)模式。在等待模式中,允許向下切換到更低位速率,但禁止向上切換到更高位速率。在動(dòng)態(tài)模式中,允許向上切換和向下切換,其中當(dāng)包含編碼成具有當(dāng)前位速率的數(shù)據(jù)的包第一次到達(dá)客戶端緩沖器時(shí),部分地基于包含在客戶端緩沖器內(nèi)的數(shù)據(jù)量來控制對(duì)包的位速率的調(diào)整。這兩種模式有助于避免不必要的速率切換。
文檔編號(hào)H04L12/56GK101156388SQ200580049403
公開日2008年4月2日 申請(qǐng)日期2005年4月11日 優(yōu)先權(quán)日2005年4月11日
發(fā)明者C·普盧姆, M·卡姆普曼 申請(qǐng)人:艾利森電話股份有限公司