優(yōu)化視頻組的流傳輸?shù)闹谱鞣椒?br>
【專利摘要】用于優(yōu)化視頻組的流傳輸?shù)姆椒安贾?。允許視頻流(312/314)的吞吐量通過公共鏈路(306)通往至少兩個不同的目的地(308/310)。確定每一個視頻流(322/324)的有效流速率并且估計每一個視頻流的播放引導(dǎo)。通過動態(tài)地改變(326/328)視頻流的有效流速率來均衡播放引導(dǎo)。
【專利說明】優(yōu)化視頻組的流傳輸
【背景技術(shù)】
[0001]視頻流傳輸(streaming)的使用正在迅速增長。流傳輸?shù)囊曨l傾向于被壓縮,并且具有可變比特率(VBR, Variable Bit Rate)。網(wǎng)絡(luò)邊際(Edge-of-network)月艮務(wù)器經(jīng)常用于例如通過對終端用戶提供經(jīng)高速緩存的視頻的高速緩存代理服務(wù)器,流傳輸大量的視頻。許多流行的視頻流傳輸服務(wù)使用傳輸控制協(xié)議(TCP, Transmission ControlProtocol)作為傳送協(xié)議,這是因為它提供可靠性、擁塞控制以及防火墻穿越。由TCP分配使得競爭流分享同一個瓶頸鏈路或者回程的有效率取決于該流的網(wǎng)絡(luò)特性,例如丟失率以及往返時間(RTT, Round Trip Time)。然而,視頻服務(wù)供應(yīng)商典型地尋求以根據(jù)終端用戶的經(jīng)驗質(zhì)量特性(例如視頻播放器緩沖底流(under-flows)次數(shù)(即,視頻播放停止的次數(shù)))來分享瓶頸鏈路。這樣,與其他傳統(tǒng)的解決方案一樣,很少導(dǎo)致最佳的流傳輸并且能夠有效地限制最終確實被傳送的流的數(shù)量、速率以及質(zhì)量。
【發(fā)明內(nèi)容】
[0002]概括而言,本發(fā)明的一個方面提供一種方法,包括:允許視頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地;確定每一個視頻流的有效流速率;估計每一個視頻流的播放弓I導(dǎo);以及通過動態(tài)地改變視頻流的有效流速率來均衡播放弓I導(dǎo)。
[0003]本發(fā)明的另一個方面提供一種裝置,包括:至少一個處理器;以及計算機可讀存儲介質(zhì),具有計算機可讀程序代碼,所述計算機可讀程序代碼能夠被所述至少一個處理器執(zhí)行,所述計算機可讀程序代碼包括:配置來允許視頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地的計算機可讀程序代碼;配置來確定每一個視頻流的有效流速率的計算機可讀程序代碼;配置來估計每一個視頻流的播放引導(dǎo)的計算機可讀程序代碼;以及配置來通過動態(tài)地改變視頻流的有效流速率來均衡播放引導(dǎo)的計算機可讀程序代碼。
[0004]本發(fā)明的另外的方面提供一種計算機程序產(chǎn)品,包括:計算機可讀存儲介質(zhì),具有計算機可讀程序代碼,所述計算機可讀程序代碼包括:配置來允許視頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地的計算機可讀程序代碼;配置來確定每一個視頻流的有效流速率的計算機可讀程序代碼;配置來估計每一個視頻流的播放引導(dǎo)的計算機可讀程序代碼;以及配置來通過動態(tài)地改變視頻流的有效流速率來均衡播放引導(dǎo)的計算機可讀程序代碼。
[0005]為了更好地理解本發(fā)明的示例性實施例以及其他的和進一步的特征以及其優(yōu)點,結(jié)合附圖而參考下列的描述,并且在附屬的權(quán)利要求中將指出本發(fā)明的實施例所請求的范圍。
【專利附圖】
【附圖說明】
[0006]圖1示意性地圖解傳統(tǒng)視頻流傳輸布置。
[0007]圖2示意性地圖解視頻流傳輸布置中的播放緩沖的內(nèi)容(inclusion)。
[0008]圖3示意性地圖解視頻流傳輸布置中的視頻組優(yōu)化器的內(nèi)容。[0009]圖4更加一般性地闡明用于優(yōu)化視頻組的流傳輸?shù)奶幚怼?br>
[0010]圖5圖解計算機系統(tǒng)。
【具體實施方式】
[0011]將容易理解,除了所描述的示例性實施例之外,有可能以種類廣泛的不同配置來布置并且設(shè)計如在此總體描述以及在附圖圖解的本發(fā)明的實施例的元件。因此,下面對于如附圖中表示的本發(fā)明的實施例的更詳細的描述,并沒有意圖限制請求保護的本發(fā)明的實施例的范圍,而僅僅代表本發(fā)明的示例性實施例。
[0012]遍及本說明書提到的“ 一個實施例”或者“實施例”(或者類似表達)意指結(jié)合實施例描述的特定特征、結(jié)構(gòu)或者特性包括在本發(fā)明的至少一個實施例中。因此,遍及本說明書各處出現(xiàn)的短語“在一個實施例中”或者“在實施例中”或者類似表達并不必然地均指同一個實施例。
[0013]并且,所描述的特征、結(jié)構(gòu)或者特性可以在至少一個實施例中以任何合適的方式組合。為了使得本發(fā)明的實施例被理解地更充分,在下面的描述中提供了許多具體細節(jié)。相關(guān)領(lǐng)域技術(shù)人員將理解,本發(fā)明的各種實施例可以不經(jīng)至少一個具體細節(jié)或者通過其他方法、元件、材料等來實施。在其他示例中,為了避免本發(fā)明的各方面變得模糊,沒有示出或者詳細描述公知的結(jié)構(gòu)、材料或者操作。
[0014]現(xiàn)在,描述轉(zhuǎn)向附圖。通過參考附圖將最好地理解圖解的本發(fā)明的實施例。下面的描述意圖僅通過示例簡單地圖示如這里請求保護的本發(fā)明的某些所選擇的示例性實施例。
[0015]應(yīng)當(dāng)注意,附圖中的流程圖以及框圖圖解根據(jù)本發(fā)明的各種實施例的系統(tǒng)、裝置、方法以及計算機程序產(chǎn)品的可能實現(xiàn)的架構(gòu)、功能以及操作。在此,流程圖或者框圖中的每一個方框可能表示包括至少一個用于實現(xiàn)指定的邏輯功能的可執(zhí)行指令的模塊、片段或者部分代碼。還應(yīng)當(dāng)注意,在一些替代性實現(xiàn)中,方框所示的功能可能不按照附圖中表示的順序出現(xiàn)。例如,所示的兩個連續(xù)的方框可能實際上被同時執(zhí)行,或者這些方框可能有時被以相反的順序執(zhí)行,這取決于相關(guān)的功能性。此外還應(yīng)當(dāng)注意,可以由執(zhí)行指定功能或動作的專用的基于硬件的系統(tǒng)或者專用的硬件及計算機指令的組合來實現(xiàn)方框圖以及/或者流程圖的圖表中的每一個方框、以及方框圖以及/或者流程圖的圖表中的方框的組合。
[0016]現(xiàn)在,公開轉(zhuǎn)向圖1-3。應(yīng)當(dāng)理解,在此廣泛地圖解的處理、布置以及產(chǎn)品可以在或者根據(jù)實質(zhì)上任何合適的計算機系統(tǒng)或者計算機系統(tǒng)組中執(zhí)行,這可能作為解釋性并且非限制性的示例包括例如圖5中的12’表示的系統(tǒng)或者服務(wù)器。根據(jù)示例性實施例,大多數(shù)(即使不是全部的)在圖1-3中討論的處理步驟、元件以及輸出可以通過一個處理單元或者多個處理單元以及系統(tǒng)存儲器(諸如在圖5中的16’以及28’中分別表示的那些)執(zhí)行或者利用,不論是在服務(wù)器計算機、客戶端計算機、分布式網(wǎng)絡(luò)中的節(jié)點計算機還是任何它們的組合。
[0017]為了使得更簡單地進一步參照圖1至圖3,引用編號通過在前面標(biāo)注100的倍數(shù)來表示與圖1-3中在先前的至少一個圖中出現(xiàn)的至少一個元件或者元素實質(zhì)上相似或者類似的元件或者元素。
[0018]根據(jù)本發(fā)明的至少一個實施例,這里廣泛地預(yù)期一種系統(tǒng)以及方法來管理TCP上的視頻流傳輸?shù)慕K端用戶的體驗質(zhì)量(QoE, Quality of Experience)。例如通過改變RTT來逐漸改變流的網(wǎng)絡(luò)特性,以避免例如因TCP超時導(dǎo)致的TCP吞吐量上的突然下跌。一個重要優(yōu)勢是無需在用戶端或者在TCP/IP (傳輸控制協(xié)議/因特網(wǎng)協(xié)議)協(xié)議棧做任何修改。圖1示出了傳統(tǒng)的視頻流傳輸布置。如所示,視頻服務(wù)器102通過瓶頸鏈路106連接到路由器/基站104,其中瓶頸鏈路106配置來通過TCP協(xié)議來使得至少兩個視頻流分發(fā)到終端用戶。示出了兩個這樣的用戶108/110。
[0019]作為背景,本發(fā)明的至少一個實施例的上下文中,TCP流的有效速率在Computer Networking:A Top-Down Approach,Fifth Edition(Tames F,Kurose 和 KeithW.ROSS, Addison-ffesley2010)中被討論。正如在這里的討論,對于給定的流,TCP有效速率與往返時間(RTT)以及丟失率的平方根V P反向相關(guān)。更具體地,
[0020]有效TCP 速率& c/ (RTT.V P)
[0021]其中,c是給定的連接的常數(shù)。在這個假設(shè)下,瓶頸鏈路106上的多個競爭的TCP流將根據(jù)其RTT以及P分享鏈路,并且只有在所有流的RTT.V P相等的情況下均等地分享帶寬。而且,如果發(fā)生了 TCP片段的超時,流速率會突然下跌。流的超時值動態(tài)地更新為EstimatedRTT+4.DevRTT,其中EstimatedRTT以及DevRTT為對于流中之前的TCP片段、測量RTT值的指數(shù)加權(quán)移動平均數(shù)以及它們的偏差。
[0022]根據(jù)本發(fā)明的至少一個實施例,在認識到維持給定的終端用戶對于VBR視頻所需的速率隨著時間可能改變的基礎(chǔ)上,使用基于播放引導(dǎo)(playout)的QoE估計。本質(zhì)上,視頻流的播放引導(dǎo)是用戶能夠不接收附加的視頻數(shù)據(jù)而播放其緩沖的時間量,視頻的重放曲線指定從播放開始起時間t時的該視頻的累計數(shù)據(jù)需求。在任何時間點的視頻流的播放引導(dǎo)越小,其對于停止的脆弱性越大。因此,圖2示出了根據(jù)本發(fā)明的至少一個實施例的上下文,不同TCP流212和214通過瓶頸鏈路206分別去往不同的用戶208和210。而且還示出了每一個用戶208和210 —般都包括播放緩沖216和218。
[0023]根據(jù)本發(fā)明的至少一個實施例,這里廣泛地預(yù)期動態(tài)地改變多個視頻流分享鏈路的有效TCP速率以使得播放引導(dǎo)能夠在流之間均等的布置。為此,如圖3所示,提供了視頻組優(yōu)化器(VGO) 320、或者在邊緣接近視頻服務(wù)器302并且測量TCP流312/314的RTT以及每一個流(如在322,324表示)的有效TCP速率的系統(tǒng)。由于VG0320與視頻服務(wù)器302相鄰,因此它能夠近似于通過視頻服務(wù)器302觀察的RTT以及速率。假設(shè)視頻的重放曲線在VG0320可用并且視頻服務(wù)器302可以以離線的方式與VG0320分享重放曲線,關(guān)聯(lián)的曲線一般不需要很大的存儲空間。
[0024]進一步地,根據(jù)本發(fā)明的至少一個實施例,對于每一個視頻流,VG0320基于視頻傳輸?shù)钠鹗紩r間以及重放曲線、以及通過流傳輸?shù)臄?shù)據(jù)量持續(xù)地估計每一個視頻的引導(dǎo)。VGP還基于對于每一個片段測量的RTT持續(xù)地估計流超時值(通過遵循下面的IETFRFC2988)。(TCP實現(xiàn)中典型地遵循了該IETF標(biāo)準(zhǔn),并且該IETF標(biāo)準(zhǔn)用于估計超時值。為了解背景目的,請查看“Computing TCP’s Retransmission Timer, RFC2988” [V.Paxson 和M.Allman, Internet Engineering Task Force {IETF},2000])。使用該計算的播放引導(dǎo)、每一個視頻流的當(dāng)前有效速率以及超時值,通過使用例如在下面描述的方法,VG0320分別為每一個流312/314的TCP ACK (確認)引入延遲326和328。
[0025]根據(jù)本發(fā)明的至少一個實施例,以每Φ秒反復(fù)處理而執(zhí)行下面描述的方法步驟。對于每一個視頻流,確定并且記錄發(fā)送的視頻數(shù)據(jù)的量。對于每一個視頻k,計算播放引導(dǎo)ld_k以及TCP超時to_k。對于每一個視頻流k,使用該測量的TCP速率以及RTT_k,計算常數(shù)(3_1^/ V P (其中假設(shè)對于每一個反復(fù)丟失率p_k為常數(shù))。對于每一個視頻,當(dāng)對于下一個Λ秒向每一個視頻提供當(dāng)前速率時,確定該新的播放引導(dǎo)pl_k。對于該視頻計算最小以及最大的期望引導(dǎo)(例如分別為median Iead-D(中間引導(dǎo)-D)以及median lead+D(中間引導(dǎo)+D),其中D為常數(shù))。
[0026]根據(jù)本發(fā)明的至少一個實施例,對于每一個(引導(dǎo)pl_k〈最小期望引導(dǎo)ml)的視頻k,計算延遲d_k以及關(guān)聯(lián)的速率r_k = c_k/ ((RTT_k+d_k).V p_k),使得當(dāng)為下一個Δ秒的視頻流分配速率r_k時,該視頻的播放引導(dǎo)會上升到ml。(應(yīng)當(dāng)理解這里d_k甚至可以為負數(shù))。然后,d_k的值的新值被設(shè)置為max(0,d_k)。在另一方面,對于每一個(引導(dǎo)pl_k>最大期望引導(dǎo)m2)的視頻k,計算延遲d_k以及關(guān)聯(lián)的速率(r_k = c_k/(RTT_k+d_k).V p_k),使得當(dāng)為下一個Δ秒的視頻流分配速率r_k時,該視頻的播放引導(dǎo)會下降到m2。然后,d_k的新值被 設(shè)置為min(d_k,to_k-RTT_k)。為了避免超時,新的RTT不應(yīng)超過to—k。
[0027]根據(jù)本發(fā)明的至少一個實施例,在剩余的可能發(fā)生的情形中,即對于每一個(最小期望引導(dǎo)≤引導(dǎo)pl_k<最大期望引導(dǎo))的視頻k,延遲d_k保持不變。由此,對于每一個視頻k,在VG0320中為延遲隊列中的視頻流的每一個TCP ACK引入延遲d_k。
[0028]在考慮上述步驟時,根據(jù)本發(fā)明的至少一個實施例,應(yīng)當(dāng)注意p_k的值可以在反復(fù)過程中改變。而且,Λ以及Φ為可調(diào)參數(shù)并且Φ〈 Λ。作為解釋性并且非限制性的示例,Φ可以在約10-15秒的范圍內(nèi),而Λ可以在約2-3分的范圍內(nèi)。
[0029]圖4更加總體地闡述根據(jù)本發(fā)明的至少一個實施例的用于優(yōu)化視頻組的流傳輸?shù)奶幚?。?yīng)當(dāng)理解,可以在任何本質(zhì)上合適的計算機系統(tǒng)或者計算機系統(tǒng)組中實現(xiàn)例如在圖4中廣泛解釋的處理,作為解釋性而非限制性的示例,計算機系統(tǒng)或者計算機系統(tǒng)組可以包括例如圖5中的12’表示的系統(tǒng)。根據(jù)示例性實施例,可以通過一個或多個處理單元和系統(tǒng)存儲器(例如圖5中的16’和28’分別表示的那些)執(zhí)行大多數(shù)(即使不是所有的)結(jié)合圖4討論的處理步驟。
[0030]正如圖4所示,允許視頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地(402)。確定每一個視頻流的有效流速率(404),并且估計每一個視頻流的播放引導(dǎo)(406)。通過動態(tài)地改變視頻流的有效流速率來均衡播放引導(dǎo)(408)。
[0031]現(xiàn)在參照圖5,示意性地示出了云計算節(jié)點的示例。云計算節(jié)點10’僅僅是云計算節(jié)點的一個合適的示例,并且沒有意圖對于在此描述的本發(fā)明的實施例的功能性或使用范圍進行任何限制。無論如何,云計算節(jié)點10’能夠被執(zhí)行并且/或者實現(xiàn)這里闡述的任何功能性。根據(jù)本發(fā)明的實施例,計算節(jié)點10’甚至可以不必為云網(wǎng)絡(luò)的一部分,而可以是另一種類型的分布式或者其他網(wǎng)絡(luò)的一部分或者可以代表單機節(jié)點。為了討論以及解釋的目的,節(jié)點10’在此不同地被稱為“云計算節(jié)點”。
[0032]在云計算節(jié)點10’中,存在計算機系統(tǒng)/服務(wù)器12’,其與很多其他通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或者配置共同操作??梢赃m合于與計算機系統(tǒng)/服務(wù)器12’一起使用的公知的計算系統(tǒng)、環(huán)境以及/或者配置的示例包括但不限于:個人計算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、薄(thin)客戶端、厚(thick)客戶端、手持或者膝上型裝置、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程家用電器、網(wǎng)絡(luò)PC、微計算機系統(tǒng)、大型機計算機系統(tǒng)以及包括上述任何系統(tǒng)或裝置的分布式云計算環(huán)境等。
[0033]計算機系統(tǒng)/服務(wù)器12’可能在例如被計算機系統(tǒng)執(zhí)行的程序模塊的計算機系統(tǒng)可執(zhí)行指令的總體上下文中描述??傮w地,程序模塊可以包括執(zhí)行特定任務(wù)或者實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、元件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計算機系統(tǒng)/服務(wù)器12’可以在分布式云計算環(huán)境中實施,由通過通信網(wǎng)絡(luò)連接的遠程處理裝置執(zhí)行任務(wù)。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲器存儲裝置在內(nèi)的本地以及遠程的計算機系統(tǒng)存儲介質(zhì)這兩者。
[0034]如圖5所示,云計算節(jié)點10中的計算機系統(tǒng)/服務(wù)器12’以通用計算裝置的形式示出。計算機系統(tǒng)/服務(wù)器12’的元件可以包括但不限于:至少一個處理器或者處理單元16’、系統(tǒng)存儲器28’以及總線18’,其將包括系統(tǒng)存儲器28’的多種系統(tǒng)元件耦接到處理器16,。
[0035]總線18’表示總線結(jié)構(gòu)的一些類型中的任何一種的至少一個,包括使用多種總線架構(gòu)中的任何一種的存儲器總線或者存儲器控制器、外圍總線、加速圖像端口以及處理器或者本地總線。作為示例而非限制,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、加強的ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)本地總線以及周邊元件互連(PCI)總線。
[0036]計算機系統(tǒng)/服務(wù)器12’典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這種介質(zhì)可以是能夠被計算機系統(tǒng)/服務(wù)器12’訪問的任何可用的介質(zhì),并且包括易失性和非易失性介質(zhì)、也包括可移除和不可移除介質(zhì)。
[0037]系統(tǒng)存儲器28’可以包括易失性存儲器的形式的計算機可讀介質(zhì),如隨機訪問存儲器(RAM)30’以及/或者高速緩存32’。計算機系統(tǒng)/服務(wù)器12’可以進一步包括其他移除/不可移除、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅僅作為示例,可以提供存儲系統(tǒng)34’而用于從不可移除、非易失磁介質(zhì)(未圖示并且典型地稱為“硬驅(qū)動”)讀取并且向其寫入。雖然沒有示出,但可以提供用于從可移除、非易失磁盤(例如“軟盤”)讀取并向其寫入的磁盤驅(qū)動、以及用于從例如CD-ROM、DVD-ROM或者其他光學(xué)介質(zhì)的可移除、非易失光盤讀取或者向其寫入的光盤驅(qū)動。在這些例子中,每一個都可以通過至少一個數(shù)據(jù)介質(zhì)接口連接到總線18’。正如在下面進一步描寫以及描述,存儲器28’可以包括至少一個具有一組(例如至少一個)程序模塊的程序產(chǎn)品,配置來實施本發(fā)明的實施例的功能。
[0038]作為示例而非限制,具有一組(至少一個)程序模塊42’的程序/應(yīng)用40’可以與操作系統(tǒng)、至少一個應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù)一起存儲在存儲器28’中。操作系統(tǒng)、至少一個應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù)的每一個或者它們的一些組合可以包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42’一般實現(xiàn)如在此描述的本發(fā)明的實施例的功能以及/或者方法。
[0039]計算機系統(tǒng)/服務(wù)器12’還可以與至少一個例如鍵盤、指向裝置(pointingdevice)、顯示器24’等的外部設(shè)備14’、至少一個能夠使得用戶與計算機系統(tǒng)/服務(wù)器12’交互的裝置、以及/或者任何能夠使得計算機系統(tǒng)/服務(wù)器12’與至少一個其他計算裝置通信的裝置(如網(wǎng)卡、調(diào)制解調(diào)器等)進行通信。這樣的通信可以通過I/O接口 22’進行。此外,計算機系統(tǒng)/服務(wù)器12’可以通過網(wǎng)絡(luò)適配器20’與至少一個例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)以及/或者公共網(wǎng)絡(luò)(例如因特網(wǎng))等的網(wǎng)絡(luò)進行通信。正如所述,網(wǎng)絡(luò)適配器20’通過總線18’與計算機系統(tǒng)/服務(wù)器12’的其他元件進行通信。應(yīng)當(dāng)理解,雖然沒有示出,但是計算機系統(tǒng)/服務(wù)器12’可以結(jié)合其他硬件以及/或者軟件組件而使用。示例包括但不限于:微代碼、裝置驅(qū)動器、冗余處理單元、外盤驅(qū)動序列、RAID系統(tǒng)、帶驅(qū)動以及數(shù)據(jù)存檔存儲系統(tǒng)等。
[0040]應(yīng)注意,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各個方面還可以實現(xiàn)為在至少一個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0041]可以采用至少一個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有至少一個導(dǎo)線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件的上下文中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0042]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0043]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0044]可以以至少一種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明各方面的操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java?、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(設(shè)備)上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0045]這里,參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0046]也可以把這些計算機程序指令存儲在計算機可讀介質(zhì)中,這些指令使得計算機、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)。
[0047]計算機程序指令還可以加載到計算機、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,以使得在計算機、其他可編程裝置、或其他設(shè)備上執(zhí)行一系列的操作步驟以產(chǎn)生計算機執(zhí)行的處理,從而在計算機或者其他可編程裝置上執(zhí)行的指令提供實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的處理。
[0048]已經(jīng)為了圖示和描述的目的而呈現(xiàn)了本公開,而沒有窮盡或者限制的意圖。許多修改和變化對于本領(lǐng)域普通技術(shù)人員將是明顯的。選擇并且描述實施例的目的在于,解釋原理以及實際應(yīng)用,并且使得本領(lǐng)域其他普通技術(shù)人員能夠理解可以作為預(yù)期的特定的使用而對各種實施例進行的各種修改。
[0049]盡管這里已經(jīng)結(jié)合附圖描述了本發(fā)明的解釋性實施例,但應(yīng)當(dāng)理解,本發(fā)明的實施例不限于這些精確的實施例,并且本領(lǐng)域技術(shù)人員可以在不超出公開的范圍或者精神的前提下對此進行各種其他改變和修改。
【權(quán)利要求】
1.一種方法,包括: 允許視頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地; 確定每一個視頻流的有效流速率; 估計每一個視頻流的播放引導(dǎo); 通過動態(tài)地改變視頻流的有效流速率來均衡播放引導(dǎo)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述估計包括確定每一個視頻流的往返時間。
3.根據(jù)權(quán)利要求2所述的方法,其中所述估計進一步包括獲取每一個視頻流的重放曲線。
4.根據(jù)權(quán)利要求2所述的方法,其中所述估計進一步包括確定每一個視頻流的起始時間。
5.根據(jù)權(quán)利要求2所述的方法,其中所述估計進一步包括基于測量的往返時間估計每一個視頻流的超時值。
6.根據(jù)權(quán)利要求5所述的方法,其中所述均衡包括向至少一個視頻流中引入延遲。
7.根據(jù)權(quán)利要求6所述的方法,其中所述延遲基于每一個視頻流的估計的超時值、測量的往返時間以及確定的有效流速率。
8.根據(jù)權(quán)利要求5所述的方法,其中所述超時值的估計包括持續(xù)地估計每一個視頻流的超時值。
9.根據(jù)權(quán)利要求1所述的方法,其中所述均衡包括向至少一個視頻流中引入延遲。
10.根據(jù)權(quán)利要求1所述的方法,其中所述估計包括持續(xù)地估計每一個視頻流的播放引導(dǎo)。
11.根據(jù)權(quán)利要求1所述的方法,進一步包括建立以下組中的至少一項,所述組包括最小期望播放引導(dǎo)以及最大期望播放引導(dǎo)。
12.根據(jù)權(quán)利要求11所述的方法,其中所述均衡包括調(diào)整估計的播放引導(dǎo)以與所述組中的一項匹配,所述組包括最小期望播放引導(dǎo)以及最大期望播放引導(dǎo)。
13.一種裝置,包括:至少一個處理器;以及計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)具有計算機可讀程序代碼,所述計算機可讀程序代碼能夠被至少一個處理器執(zhí)行,所述計算機可讀程序代碼包括: 配置來允許視頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地的計算機可讀程序代碼; 配置來確定每一個視頻流的有效流速率的計算機可讀程序代碼; 配置來估計每一個視頻流的播放引導(dǎo)的計算機可讀程序代碼;以及 配置來通過動態(tài)地改變視頻流的有效流速率來均衡播放引導(dǎo)的計算機可讀程序代碼。
14.一種計算機程序產(chǎn)品,包括: 計算機可讀存儲介質(zhì),其中具有計算機可讀程序代碼,所述計算機可讀程序代碼包括: 配置來允許頻流的吞吐量通過公共鏈路通往至少兩個不同的目的地的計算機可讀程序代碼; 配置來確定每一個視頻流的有效流速率的計算機可讀程序代碼; 配置來估計每一個視頻流的播放引導(dǎo)的計算機可讀程序代碼;以及配置來通過動態(tài)地改變視頻流的有效流速率來均衡播放引導(dǎo)的計算機可讀程序代碼。
15.根據(jù)權(quán)利要求14所述的計算機產(chǎn)品,其中配置來估計的所述計算機可讀代碼包括確定每一個視頻流的往返時間。
16.根據(jù)權(quán)利要求15所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼進一步配置來獲取每一個視頻流的重放曲線。
17.根據(jù)權(quán)利要求15所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼進一步配置來估計每一個視頻流的起始時間。
18.根據(jù)權(quán)利要求15所述的計算機產(chǎn)品,其中所述計算機可讀代碼進一步配置來基于測量的往返時間估計每一個視頻流的超時值。
19.根據(jù)權(quán)利要求14所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼配置來向至少一個視頻流中引入延遲。
20.根據(jù)權(quán)利要求15所述的計算機產(chǎn)品,其中所述延遲基于每一個視頻流的估計的超時值、測量的往返時間以及確定的有效流速率。
21.根據(jù)權(quán)利要求18所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼配置來持續(xù)地估計每一個視頻流的超時值。
22.根據(jù)權(quán)利要求14所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼配置來向至少一個視頻流中引入延遲。
23.根據(jù)權(quán)利要求14所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼配置來持續(xù)地估計每一個視頻流的播放引導(dǎo)。
24.根據(jù)權(quán)利要求14所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼進一步配置來建立下述組中的至少一項, 所述組包括最小期望播放引導(dǎo)以及最大期望播放引導(dǎo)。
25.根據(jù)權(quán)利要求24所述的計算機產(chǎn)品,其中所述計算機可讀程序代碼配置來調(diào)整估計的播放引導(dǎo)以與所述組中的一項匹配,所述組包括最小期望播放引導(dǎo)以及最大期望播放引導(dǎo)。
【文檔編號】G06F15/173GK103946835SQ201280056195
【公開日】2014年7月23日 申請日期:2012年11月7日 優(yōu)先權(quán)日:2011年11月15日
【發(fā)明者】V.阿雅, M.切特盧爾, P.杜塔, S.卡雅納拉曼, K.K.科高恩卡, R.V.波拉瓦拉普 申請人:國際商業(yè)機器公司