基于比例積分控制的http流送客戶端自適應(yīng)算法
【技術(shù)領(lǐng)域】
[0001]本公開一般地涉及計算機網(wǎng)絡(luò),并且更具體地涉及超文本傳輸協(xié)議(HTTP)流送客戶端自適應(yīng)算法。
【背景技術(shù)】
[0002]現(xiàn)今互聯(lián)網(wǎng)視頻內(nèi)容的一大部分是在web瀏覽器中通過自適應(yīng)超文本傳輸協(xié)議(HTTP)流送而被消耗的。該技術(shù)由許多商業(yè)開發(fā)的系統(tǒng)支持。由客戶端設(shè)備(例如,計算機、膝上型計算機、平板電腦、智能手機等)驅(qū)動的視頻傳送機制可以基于變化的網(wǎng)絡(luò)條件(例如,可用帶寬和CHJ資源)來逐段地、動態(tài)地改變其請求的視頻的速率和質(zhì)量。
[0003]盡管自適應(yīng)流送方法對可以容易地對最后一英里“瓶頸”鏈路的改變進行響應(yīng)的單個自適應(yīng)HTTP流送客戶端是有效的,但當(dāng)具有當(dāng)前被部署的速率自適應(yīng)邏輯的多個客戶端競爭共享的帶寬時,許多技術(shù)問題出現(xiàn)了。在該情境下,來自個體客戶端設(shè)備的視頻源速率請求經(jīng)常隨著時間的推移未能收斂到其基礎(chǔ)的公平份額的帶寬。這種情況(通俗地,叫做“多客戶端震蕩問題”)導(dǎo)致所接收的視頻流中的恒定質(zhì)量震蕩。
【附圖說明】
[0004]本文中的實施例可以通過參考以下說明并結(jié)合附圖而被更好地理解,其中相似標(biāo)號指示相同的或功能上相似的元件,其中:
[0005]圖1示出了示例視頻通信網(wǎng)絡(luò);
[0006]圖2示出了示例客戶端節(jié)點/視頻設(shè)備;
[0007]圖3示出了示例自適應(yīng)HTTP流送架構(gòu);
[0008]圖4示出了具有單個客戶端設(shè)備的示例自適應(yīng)HTTP流送網(wǎng)絡(luò);
[0009]圖5示出了受多客戶端震蕩問題影響的網(wǎng)絡(luò)性能的示例;
[0010]圖6示出了在基于比例積分控制的HTTP流送客戶端自適應(yīng)算法下的網(wǎng)絡(luò)性能的示例;以及
[0011]圖7示出了針對網(wǎng)絡(luò)中具有多個客戶端設(shè)備的自適應(yīng)HTTP流送的示例簡化過程。
【具體實施方式】
[0012]挺述
[0013]根據(jù)本公開的一個或多個實施例,HTTP流送會話可以在網(wǎng)絡(luò)中的客戶端設(shè)備處被發(fā)起??蛻舳嗽O(shè)備可以具有緩沖器,并且可以被配置為通過HTTP來從HTTP服務(wù)器請求和接收一個或多個數(shù)據(jù)段。第一數(shù)據(jù)段可以以第一數(shù)據(jù)源速率被請求并且隨后被接收。第一數(shù)據(jù)段可以被存儲在緩沖器中。第二數(shù)據(jù)源速率然后可以基于緩沖器中的存儲水平而被計算,并且第二數(shù)據(jù)段可以以第二數(shù)據(jù)源速率被請求。
[0014]詳細(xì)說明
[0015]圖1是示例通信網(wǎng)絡(luò)100的示意框圖,該示例通信網(wǎng)絡(luò)100示意性地包括節(jié)點/設(shè)備(例如,被配置為將視頻分發(fā)到一個或多個機頂盒(STB)120和/或一個或多個計算機125(比如,125a和125b)的視頻分發(fā)源110)。例如,視頻可以被源110分發(fā)在任意數(shù)量的可用介質(zhì)中(比如,經(jīng)由廣域網(wǎng)(WAN) 130、通過有線網(wǎng)絡(luò)140、無線(OTA)傳輸145或衛(wèi)星傳輸150等的IP(互聯(lián)網(wǎng)協(xié)議)視頻)。此外,在某些實施例中,如本領(lǐng)域技術(shù)人員將認(rèn)識的,計算機(例如,個人計算機或“PC”)可以通過WAN 130將視頻分發(fā)到其他接收設(shè)備。例如,兩個或更多個計算機可以參與視頻共享應(yīng)用(視頻聊天、線上會議等)。本領(lǐng)域的技術(shù)人員將理解,任意數(shù)量的節(jié)點、設(shè)備、鏈路等可以被用在通信網(wǎng)絡(luò)100中,并且本文中所示的圖示是為了簡單起見。
[0016]注意,機頂盒(STB)120可以包括轉(zhuǎn)換器盒(例如,通用介質(zhì)服務(wù)器或“UMS”),該轉(zhuǎn)換器盒被空中設(shè)備(天線)、視頻數(shù)字用戶線(DSL)、IP、線纜和/或衛(wèi)星服務(wù)提供商用來將(來自視頻分發(fā)源110的)專有信號轉(zhuǎn)換成針對STB用戶的音頻和/或視頻(A/V)輸出(例如,電視和/或監(jiān)視器的圖像)。相似地,計算機125還可以被配置為將這些信號轉(zhuǎn)換成用于在相關(guān)聯(lián)的監(jiān)視器上顯示的A/V流(這些信號主要是DSL或IP信號,而其他信號還可以被所提供的合適的設(shè)備和配置轉(zhuǎn)換)。
[0017]圖2是可以與本文中所描述的一個或多個實施例一起被使用的示例客戶端節(jié)點/設(shè)備200(例如,如圖1中能夠處理本文中所描述的視頻的任意節(jié)點/設(shè)備,比如視頻分發(fā)接收器120和/或計算機125)的示意框圖。該設(shè)備可以包括由系統(tǒng)總線250互連的一個或多個通信接口 210、至少一個處理器220和存儲器240。
[0018](—個或多個)通信接口210包含用于通過網(wǎng)絡(luò)100的各種傳輸介質(zhì)來傳送數(shù)據(jù)(例如,視頻)的機械線路、電子電路和信令電路。例如,如以上所標(biāo)注的以及如本領(lǐng)域技術(shù)人員將理解的,接口可以被配置為使用適用于傳輸介質(zhì)的各種不同的通信協(xié)議來發(fā)送和/或接收數(shù)據(jù)。還需注意,該設(shè)備可以具有第一通信接口 210a(例如,用于通過WAN 130進行通信的互聯(lián)網(wǎng)協(xié)議(IP)接口)和第二通信接口 210b(例如,針對如監(jiān)視器或其他顯示設(shè)備)的視頻輸出接口)。
[0019]存儲器240包括多個可由處理器220尋址的存儲位置以用于存儲與本文中所描述的實施例相關(guān)聯(lián)的軟件程序和數(shù)據(jù)結(jié)構(gòu)。處理器220可以包括適于執(zhí)行軟件程序和操縱數(shù)據(jù)結(jié)構(gòu)245(例如,表、值等)的必要元件或邏輯(例如,明確示出的視頻緩沖器247(比如,單個緩沖器或單獨TCP接收緩沖器和視頻解碼器緩沖器的代表))。操作系統(tǒng)242(其某些部分通常位于存儲器240中并且由處理器執(zhí)行)通過調(diào)用支持設(shè)備上運行的軟件進程和/或服務(wù)的操作來對設(shè)備進行功能組織。這些軟件進程和/或服務(wù)可以包括用作本文中所描述的示意性視頻處理進程246和自適應(yīng)比特率(ABR)處理248。其他進程(例如,允許通過IP網(wǎng)絡(luò)進行通信的路由進程)為了簡單起見未被示出。
[0020]對本領(lǐng)域的技術(shù)人員顯而易見的是,其他處理器和存儲器類型(包括各種計算機可讀介質(zhì))可以被用于存儲和執(zhí)行適于本文中所描述技術(shù)的程序指令。此外,盡管說明書示出了各種處理,但明確地認(rèn)識到各種處理可以被實施為被配置為根據(jù)本文中的技術(shù)(例如,根據(jù)相似處理的功能)進行操作的模塊。此外,盡管處理可能已經(jīng)被單獨或組合示出,但本領(lǐng)域的技術(shù)人員將認(rèn)識到處理可以是其他處理內(nèi)的例程或模塊或者相應(yīng)地其他獨立處理。
[0021]如以上所提到的,現(xiàn)今互聯(lián)網(wǎng)視頻內(nèi)容的一大部分在web瀏覽器中通過自適應(yīng)HTTP流送而被消耗。該技術(shù)由許多商業(yè)開發(fā)的系統(tǒng)支持。由客戶端設(shè)備(例如,計算機、膝上型計算機、平板電腦、智能手機等)驅(qū)動的視頻傳送機制可以基于變化的網(wǎng)絡(luò)條件(例如,可用帶寬和CPU資源)來逐段地、動態(tài)地改變其請求的視頻的速率和質(zhì)量。例如,當(dāng)經(jīng)歷臨時的網(wǎng)絡(luò)擁塞時,客戶端設(shè)備可以切換到更低質(zhì)量版本的視頻以避免緩沖器下溢(underflow)。然后,當(dāng)連接速度恢復(fù)時,客戶端設(shè)備可以切換回到更高的質(zhì)量。
[0022]在這點上,圖3示出了示例自適應(yīng)HTTP流送架構(gòu)。架構(gòu)300包括媒體捕獲階段300,在該階段媒體內(nèi)容可以被預(yù)存儲在源處或者在源處被現(xiàn)場捕獲。多個質(zhì)量版本的媒體內(nèi)容(例如,多個比特率版本)可以通過合適的處理操作(例如,轉(zhuǎn)碼)來生成。此外,每個媒體文件可以被分解成許多小的數(shù)