具有請求取消能力的改善的dash客戶端和接收的制造方法
【專利摘要】一種接收機(jī),其接收媒體以用于使用所述接收機(jī)的呈現(xiàn)元件進(jìn)行播出,所述接收機(jī)能夠進(jìn)行請求并等待響應(yīng),其還能夠取消請求,可能地補(bǔ)發(fā)新的請求,以在考慮網(wǎng)絡(luò)和其它條件的情況下改善用戶體驗(yàn)。該接收機(jī)可以從多個(gè)播放速率中進(jìn)行選擇,并以該播放速率進(jìn)行請求;監(jiān)測呈現(xiàn)緩沖器,其中,所述呈現(xiàn)緩沖器存儲由呈現(xiàn)元件要消耗的媒體數(shù)據(jù);存儲緩沖器水平的指示,所述緩沖器水平對應(yīng)于所述呈現(xiàn)緩沖器被接收到的并且尚未被所述呈現(xiàn)元件消耗的所述媒體數(shù)據(jù)占用的程度;保持針對下載所選擇的媒體數(shù)據(jù)的第一區(qū)塊的發(fā)出的請求的狀態(tài);以及當(dāng)發(fā)出的請求是未解決的時(shí),基于網(wǎng)絡(luò)狀況和所述發(fā)出的請求的所述狀態(tài),確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求。
【專利說明】具有請求取消能力的改善的DASH客戶端和接收機(jī)
[0001]相關(guān)申請的交叉引用
[0002]本申請要求享受2012年2月27日提交的、題目為“Improved DASH Client andReceiver with Rate Adaptat1n and Downloading for Adaptive Video” 的美國臨時(shí)申請N0.61/603, 569的權(quán)益,故出于所有目的,作為整體以引用方式將其全部內(nèi)容并入本文。
【背景技術(shù)】
[0003]DASH指的是“動態(tài)自適應(yīng)HTTP流”。使用DASH,內(nèi)容提供商將內(nèi)容格式化成分段、片段、表現(xiàn)(representat1n)、改編(adaptat1n)等,連同相關(guān)聯(lián)的元數(shù)據(jù)(諸如MPD文件),并將所有這些存儲為通過標(biāo)準(zhǔn)HTTP服務(wù)器或者專用HTTP服務(wù)器可獲得的文件。DASH客戶端是根據(jù)需要獲得這些文件,以向該DASH客戶端的用戶提供呈現(xiàn)的接收方。
[0004]由于用戶通常在網(wǎng)絡(luò)受到約束的環(huán)境中,在很少或沒有提前通知的情況下,想要高質(zhì)量的流,因此DASH客戶端具有苛刻的限制。從而,改進(jìn)的DASH客戶端令人期望。
【發(fā)明內(nèi)容】
[0005]客戶端設(shè)備呈現(xiàn)流媒體,并包括用于對流進(jìn)行控制的流管理器、用于對內(nèi)容進(jìn)行網(wǎng)絡(luò)請求的請求加速器、耦接到流管理器和請求加速器的用于確定進(jìn)行哪些請求的源組件、網(wǎng)絡(luò)連接以及媒體播放器。請求加速器包括:用于對請求進(jìn)行緩存的請求數(shù)據(jù)緩沖器、以及用于向其可以響應(yīng)的每一個(gè)請求返回完整的響應(yīng)的邏輯。可以將流管理器、請求加速器和源組件實(shí)現(xiàn)成處理器指令或程序代碼,客戶端設(shè)備還包括程序存儲器、工作存儲器、處理器和電源。此外,客戶端設(shè)備還包括顯示器和用戶輸入設(shè)備。在源組件、流管理器和請求加速器之間對客戶端任務(wù)進(jìn)行解析,以便對數(shù)據(jù)進(jìn)行高效地流傳輸。
[0006]在各個(gè)方面,如本申請所描述的,客戶端可以執(zhí)行諸如下面的操作:確定何時(shí)維持一個(gè)表現(xiàn)或者切換到另一個(gè)表現(xiàn),確定請求哪些片段,并確保媒體播放器可以獲得充足的數(shù)據(jù)(在大多數(shù)狀況下),以便在沒有停滯的情況下繼續(xù)流媒體播放。
[0007]在一些實(shí)施例中,一種接收機(jī),其接收媒體以用于使用所述接收機(jī)的呈現(xiàn)元件進(jìn)行播出,所述接收機(jī)能夠進(jìn)行請求,等待響應(yīng),其還能夠進(jìn)行請求并取消請求,可能補(bǔ)發(fā)新的請求,均以及時(shí)的方式來在考慮網(wǎng)絡(luò)和其它條件的情況下,改善與媒體的用戶體驗(yàn)。該接收機(jī)可以從多個(gè)播放速率中進(jìn)行選擇,并以這些播放速率進(jìn)行請求;監(jiān)測所述呈現(xiàn)緩沖器,其中,所述呈現(xiàn)緩沖器至少在接收到所述媒體數(shù)據(jù)的時(shí)間和由與所述接收機(jī)相關(guān)聯(lián)的呈現(xiàn)元件消耗所述媒體數(shù)據(jù)的時(shí)間之間存儲所述媒體數(shù)據(jù);存儲緩沖器水平的指示,其中,所述緩沖器水平對應(yīng)于所述呈現(xiàn)緩沖器被接收到的并且尚未被所述呈現(xiàn)元件消耗的所述媒體數(shù)據(jù)占用的程度;保持針對下載所選擇的媒體數(shù)據(jù)的第一區(qū)塊的發(fā)出的請求的狀態(tài);以及當(dāng)發(fā)出的請求是未解決的時(shí),基于網(wǎng)絡(luò)狀況和所述發(fā)出的請求的所述狀態(tài),確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求。
[0008] 所確定的TCP接收機(jī)窗口大小可以是基于針對所述當(dāng)前TCP連接的當(dāng)前估計(jì)往返時(shí)間(“ERTT”)與一個(gè)乘數(shù)速率相乘的乘積來確定的,其中所述乘數(shù)速率位于下面二者限定的范圍之內(nèi):針對所述當(dāng)前TCP連接的目標(biāo)下載速率、以及與所述目標(biāo)下載速率相比更高預(yù)定的量的速率??梢詺v史地、或許基于在靜止周期結(jié)束時(shí)的測量值來確定所述當(dāng)前ERTT,其中在所述靜止周期期間,在所述TCP連接上沒有呈現(xiàn)活動的HTTP請求達(dá)到預(yù)定的持續(xù)時(shí)間段。針對一個(gè)TCP連接的目標(biāo)下載速率可以與下面的值成正比:所有在用的TCP連接上的當(dāng)前合計(jì)下載速率除以在用的TCP連接的數(shù)量。例如,針對一個(gè)TCP連接的目標(biāo)下載速率是下面的值的兩倍:所有在用的TCP連接上的當(dāng)前合計(jì)下載速率除以在用的TCP連接的數(shù)量。所述目標(biāo)下載速率可以與所述媒體內(nèi)容的播放速率成正比,其中所述播放速率是橫跨所有在用的TCP連接的合計(jì)速率除以在用的TCP連接的數(shù)量??梢詫⒚恳粋€(gè)媒體數(shù)據(jù)元素劃分成大小位于預(yù)定的偏差范圍之內(nèi)的多個(gè)區(qū)塊,其中這些區(qū)塊的數(shù)量是基于在用的TCP連接的數(shù)量、針對所述當(dāng)前TCP連接的當(dāng)前ERTT、當(dāng)前下載速率、和/或請求的媒體片段的大小。所述預(yù)定的偏差范圍可以是零,和/或每一個(gè)區(qū)塊可以具有大于或等于最小字節(jié)數(shù)的大小。可以將針對后續(xù)媒體數(shù)據(jù)元素的后續(xù)HTTP請求,分配給第一可用的TCP連接。
[0009]在一些實(shí)施例中,在源和接收機(jī)之間的網(wǎng)絡(luò)路徑上進(jìn)行下載包括:確定用于媒體內(nèi)容的目標(biāo)下載速率;確定與所述網(wǎng)絡(luò)路徑有關(guān)的網(wǎng)絡(luò)狀況;基于所述網(wǎng)絡(luò)狀況,確定在所述源和所述接收機(jī)之間使用的TCP連接的數(shù)量;作為針對多個(gè)HTTP請求的響應(yīng)的一部分或者全部,使用所述TCP連接中的每一個(gè)TCP連接來下載多個(gè)媒體數(shù)據(jù)元素。所述TCP連接的數(shù)量可以位于兩個(gè)和十六個(gè)之間,和/或與下面各項(xiàng)的乘積成正比:所述目標(biāo)下載速率、所述ERTT、以及估計(jì)的丟失率的平方根??梢曰谒瞿繕?biāo)下載速率來確定所述TCP接收機(jī)窗口大小。
[0010]一種接收機(jī)包括:用于從網(wǎng)絡(luò)接收數(shù)據(jù)的接收機(jī)電路;用于執(zhí)行處理的處理器;用于存儲數(shù)據(jù)的存儲器,保存與所述源和所述接收機(jī)之間的多個(gè)TCP連接有關(guān)的數(shù)據(jù),其包括用于TCP連接的TCP接收機(jī)窗口大小,其中所述源和所述接收機(jī)之間的TCP連接可以是直接連接,也可以是間接連接;用于確定針對媒體內(nèi)容的目標(biāo)下載速率的邏輯(硬件、軟件或者組合);保存下載所述媒體內(nèi)容的多個(gè)媒體數(shù)據(jù)元素的結(jié)果,其中所述媒體內(nèi)容是針對多個(gè)HTTP請求的響應(yīng)的一部分或者全部;其中,針對給定的TCP連接所確定的TCP接收機(jī)窗口大小,是至少部分地基于所述目標(biāo)下載速率的大小,對于所述至少兩個(gè)連續(xù)的HTTP請求來說,所確定的TCP接收機(jī)窗口大小在至少兩個(gè)值之間變化。
[0011]針對當(dāng)前的TCP連接的TCP接收機(jī)窗口大小,可以是針對所述當(dāng)前TCP連接的當(dāng)前估計(jì)往返時(shí)間(“ERTT”)與一個(gè)乘數(shù)速率相乘的乘積,其中所述乘數(shù)速率位于下面二者限定的范圍之內(nèi):針對所述當(dāng)前TCP連接的目標(biāo)下載速率、以及與所述目標(biāo)下載速率相比更高預(yù)定的量的速率。
[0012]接收機(jī)可以使用多個(gè)HTTP連接,將媒體請求分解成更小的區(qū)塊請求,使用TCP流控制機(jī)制來對這些連接進(jìn)行同步,并突發(fā)地請求數(shù)據(jù)。此外,接收機(jī)可以使用HTTP管道處理來保持這些連接繁忙。
[0013]可以使用用于由處理器執(zhí)行,對通過一個(gè)網(wǎng)絡(luò)路徑耦接的源和接收機(jī)之間的所述網(wǎng)絡(luò)路徑上的數(shù)據(jù)下載進(jìn)行控制的計(jì)算機(jī)可讀介質(zhì),來實(shí)現(xiàn)各個(gè)單元。該計(jì)算機(jī)可讀介質(zhì)可以是非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)。
[0014]通過本說明書,本發(fā)明的其它方面應(yīng)當(dāng)是顯而易見的。
【專利附圖】
【附圖說明】
[0015]圖1示出了 DASH部署中的包括DASH客戶端的各個(gè)組成部分,顯示了媒體記錄如何到達(dá)終端用戶,其中涉及記錄、內(nèi)容準(zhǔn)備以及內(nèi)容遞送階段。
[0016]圖2示出了具有不同組件的DASH客戶端的示例性架構(gòu),其包括流管理器、請求加速器、源組件、網(wǎng)絡(luò)連接和媒體播放器。
[0017]圖3是示出表現(xiàn)切換過程的時(shí)序圖,其中包括用于回看過程的圖3A和用于快進(jìn)過程的圖3B。
[0018]圖4是示出針對切換點(diǎn)對齊的情況的表現(xiàn)切換過程的時(shí)序圖。
[0019]圖5是示出如由速率估計(jì)器所管理的速率隨時(shí)間變化的圖,特別地,該速率估計(jì)器是自適應(yīng)于緩沖器水平的估計(jì)器(諸如Pker型速率估計(jì)器))。
[0020]圖6是示出當(dāng)使用非自適應(yīng)指數(shù)加權(quán)移動平均(“EWMA”)過濾器時(shí),速率增加對比下載時(shí)間(r時(shí)間)的圖。
[0021]圖7是示出當(dāng)使用非自適應(yīng)EWMA過濾器時(shí),速率增加對比播放時(shí)間(p時(shí)間)的圖。
[0022]圖8是示出當(dāng)使用可變窗口大小加權(quán)移動平均(“WMA”)過濾器時(shí),速率增加對比下載時(shí)間(r時(shí)間)的圖。
[0023]圖9是示出當(dāng)使用pker型過程時(shí),速率增加對比播放時(shí)間(P時(shí)間)的圖。
[0024]圖10是示出當(dāng)使用來自2.1章節(jié)的pker型過程時(shí),速率增加對比下載時(shí)間的圖。
[0025]圖11示出了速率上突然增加的pker過程的行為。
[0026]圖12示出了突然速率下降的pker過程的行為。
[0027]圖13示出了簡單(固定寬度的)移動窗口平均與指數(shù)加權(quán)移動平均的對比。
[0028]圖14是pker速率估計(jì)過程的流程圖。
[0029]圖15示出了如何根據(jù)記錄的(Tp, Tr)值的歷史連同圖16,來確定由pker過程使用的值B和Tfast。
[0030]圖16示出了對值進(jìn)行確定的方面。
[0031]圖17示出了 “水印”獲取過程的行為。
[0032]圖18示出了如可以用于選擇播放速率的lambda和mu函數(shù)的示例。
[0033]圖19示出了使用“保守”設(shè)置的(lambda,mu)函數(shù)的示例性選擇。
[0034]圖20示出了使用“中等”設(shè)置的(lambda,mu)函數(shù)的示例性選擇。
[0035]圖21示出了使用“積極”設(shè)置的(lambda,mu)函數(shù)的示例性選擇。
[0036]圖22示出了使用用于在一定程度上仿真MLB過程的過程的(lambda, mu)函數(shù)的示例性選擇。
[0037]圖23示出了用于lambda設(shè)置的并排值的示例。
[0038]圖24示出了用于mu設(shè)置的并排值的示例。
[0039]圖25示出了用于進(jìn)行速率估計(jì)、然后進(jìn)行基于速率的速率選擇、然后進(jìn)行基于緩沖器管理的速率選擇的過程。
[0040]圖26示出了在沒有請求取消的情況下的速率下降。
[0041]圖27示出了在具有請求取消的情況下的速率下降。
[0042]圖28是示出示例性請求取消過程的流程圖。
[0043]圖29示出了用于請求取消檢測的過程。
[0044]圖30是利用多個(gè)TCP連接但沒有接收緩沖器調(diào)整的獲取的行為的圖。
[0045]圖31是利用多個(gè)TCP連接并利用接收緩沖器調(diào)整的獲取的其它行為的圖。
[0046]圖32是示例性請求加速器過程的流程圖。
[0047]圖33示出了用于發(fā)現(xiàn)多個(gè)子請求,以有助于給定的片段請求的過程。
[0048]圖34示出了用于選擇各個(gè)請求的過程,其中這些請求被選定為具有計(jì)算出的大小的源請求的不相交時(shí)間間隔。
[0049]圖35示出了時(shí)間偏移以及通過時(shí)間偏移所確定的用于修復(fù)分段的片段結(jié)構(gòu)的示例。
[0050]圖36包括可以用于速率選擇中的lambda和mu的值的表。
【具體實(shí)施方式】
[0051]本申請所闡釋的DASH客戶端包括流管理器(SM)、請求加速器(RA)、源組件(SC)、網(wǎng)絡(luò)連接和媒體播放器,如圖2中所示。DASH客戶端還可以包括一個(gè)或多個(gè)媒體數(shù)據(jù)緩沖器。在一些實(shí)現(xiàn)中,RA、SC和媒體播放器均可以具有其自己的數(shù)據(jù)緩沖器,或者具有一個(gè)大型數(shù)據(jù)緩沖器的邏輯分區(qū)。在其它實(shí)現(xiàn)中,或許僅RA具有用于緩存請求的數(shù)據(jù)緩沖器,使得RA能夠向其可以響應(yīng)的每一個(gè)請求發(fā)送完整的響應(yīng),并且媒體播放器使用SC已建立的任何數(shù)據(jù)緩沖器。SM可以具有其自己的本地存儲(物理的或邏輯的),以便根據(jù)需要自己決定來存儲元數(shù)據(jù)。
[0052]圖1示出了具有DASH客戶端的DASH部署。
[0053]圖2示出了具有不同的組件的DASH客戶端的示例架構(gòu)。應(yīng)當(dāng)理解的是,SM、RA、SC和媒體播放器可以在硬件、軟件或某種組合中實(shí)現(xiàn)。因此,在將功能歸結(jié)于組件的情況下,其可以實(shí)現(xiàn)為處理器指令、程序代碼等,在這種情況下,暗含必要的硬件來執(zhí)行這些指令(程序存儲器、ROM、RAM、處理器、電源、連接器、電路板等)。在描述網(wǎng)絡(luò)功能時(shí),網(wǎng)絡(luò)連接應(yīng)當(dāng)被理解為是存在的,并且其可以是有線、光纖、無線等,并且當(dāng)暗示用戶交互時(shí),還暗含用戶接口能力(顯示器、鍵盤、觸摸板、揚(yáng)聲器、麥克風(fēng)等)。
[0054]DASH客戶端維持兩個(gè)時(shí)鐘或其邏輯等同物。一個(gè)時(shí)鐘是指示在該客戶端中運(yùn)行的本地時(shí)鐘的時(shí)間的實(shí)時(shí)時(shí)鐘電路或軟件,而另一個(gè)時(shí)鐘是呈現(xiàn)時(shí)間,其表示媒體內(nèi)容相對于其起始的呈現(xiàn)時(shí)間。在本文中,將實(shí)時(shí)時(shí)鐘時(shí)間稱為“r時(shí)間”,而“p時(shí)間”是表現(xiàn)呈現(xiàn)時(shí)間的描述符。
[0055]表現(xiàn)是針對相同的內(nèi)容,以不同的比特率或者其它差別進(jìn)行編碼的媒體流。因此,用戶通常將僅需要一個(gè)表現(xiàn),但客戶端可以根據(jù)情況和/或需求變化,從一個(gè)表現(xiàn)切換到另一個(gè)表現(xiàn)。例如,如果帶寬較高,則流客戶端可以選擇高質(zhì)量、高比特率表現(xiàn)。如果帶寬降低,則客戶端可以通過切換到較低質(zhì)量、較低比特率的表現(xiàn)來適應(yīng)這些情況。
[0056]切換點(diǎn)(或隨機(jī)接入點(diǎn))是表現(xiàn)中的一些樣本,可以從這些樣本開始對媒體樣本的解碼,而不需要該流之前的數(shù)據(jù)的知識。具體而言,在視頻表現(xiàn)中,由于樣本(幀)通常依賴于先前的幀,因此并不是每個(gè)樣本都是隨機(jī)接入點(diǎn)。當(dāng)流客戶端想要切換表現(xiàn)時(shí),其應(yīng)當(dāng)確保在切換點(diǎn)開始對新的表現(xiàn)進(jìn)行解碼,以避免做無用功。在一些情況下,在分段索引(SidX)中以信號方式將切換點(diǎn)發(fā)送給流客戶端。
[0057]表現(xiàn)組(有時(shí)簡稱為組)是可切換的表現(xiàn)的集合。一個(gè)媒體呈現(xiàn)可以包含一個(gè)以上的表現(xiàn)組。例如,針對以不同比特率的視頻表現(xiàn)可以具有一個(gè)表現(xiàn)組,并且針對音頻比特率可以具有另一個(gè)表現(xiàn)組。在DASH標(biāo)準(zhǔn)中,有時(shí)還將表現(xiàn)組稱為自適應(yīng)集。
[0058]分段是包含針對這些表現(xiàn)中的一個(gè)表現(xiàn)的至少一部分中的媒體數(shù)據(jù)的文件。片段是分段的一部分,其中,從該片段的起始P時(shí)間到該分段中的該片段的字節(jié)范圍的映射是可獲得的。有時(shí),使用術(shù)語子分段來代替片段,這些術(shù)語可以被視作為是等同的。一些媒體內(nèi)容不被分割在片段中;在這種情況下,“片段”可以指代分段其自身。
[0059]圖3是示出兩種可能的表現(xiàn)切換過程的時(shí)序圖。該切換可以是回看(第一過程;圖3A),在該情況下,通過以下方面來尋找切換到的表現(xiàn)中的切換點(diǎn):查找已經(jīng)在切換自的表現(xiàn)中請求的P時(shí)間伸縮,并選擇在P時(shí)間上從切換到的表現(xiàn)中向后選擇最靠近該伸縮的結(jié)束的前一切換點(diǎn)。第二過程(圖3B)是快進(jìn):其從在切換自的表現(xiàn)中的最后請求的P時(shí)間處開始,在P時(shí)間上向前尋找切換到的表現(xiàn)中的下一個(gè)切換點(diǎn)。
[0060]圖4是示出當(dāng)切換點(diǎn)對齊時(shí)并且當(dāng)一個(gè)切換點(diǎn)緊接在最后請求的片段之后時(shí)進(jìn)行切換的過程的時(shí)序圖。該圖描繪了回看和快進(jìn)方法二者的行為,這兩個(gè)過程在這種設(shè)置下是表現(xiàn)相同的行為。因此,當(dāng)這些切換點(diǎn)對齊時(shí),以上的任一過程都不必下載重疊的數(shù)據(jù)。
[0061]呈現(xiàn)時(shí)間是預(yù)期通常按照正常的速度,來播放或者重放媒體的時(shí)間周期。例如,30分鐘視頻呈現(xiàn)將播放30分鐘。用戶可以對進(jìn)行快進(jìn)或快退,這將改變實(shí)際花費(fèi)的時(shí)間,但應(yīng)當(dāng)理解的是,該呈現(xiàn)仍然是30分鐘視頻呈現(xiàn)。呈現(xiàn)單元在呈現(xiàn)時(shí)間上向用戶提供該呈現(xiàn)。呈現(xiàn)單元的示例包括視頻顯示和音頻顯示,或者被管道化傳輸?shù)娇梢詫ζ溥M(jìn)行呈現(xiàn)的設(shè)備的視頻/音頻流。“播放”是用于描述媒體的消費(fèi)的術(shù)語。例如,智能電話可以下載或者獲得在一個(gè)呈現(xiàn)的呈現(xiàn)時(shí)間(P時(shí)間)上表現(xiàn)該呈現(xiàn)的媒體數(shù)據(jù),對其進(jìn)行緩存,媒體播放器“消費(fèi)”該媒體,優(yōu)選地消費(fèi)是使得至少在該呈現(xiàn)時(shí)間的結(jié)束之前,該緩沖器不是完全地為空,使得當(dāng)接收機(jī)等待獲得更多的數(shù)據(jù)時(shí),用戶不會體驗(yàn)到呈現(xiàn)的停滯。當(dāng)然,“重放”或者“播放”并不暗不對媒體播放一次以上。在很多實(shí)例中,其可以是一旦被媒體被消費(fèi)一次,就不再使用該媒體。
[0062]呈現(xiàn)緩沖器是接收機(jī)、媒體播放器或者可訪問一個(gè)或二者的部件中的內(nèi)存單元。為了簡化說明,本申請交換地使用術(shù)語“呈現(xiàn)緩沖器”、“緩沖器”、“媒體緩沖器”和“播放緩沖器”,并理解其是包括已被下載但還沒播放或者消費(fèi)的數(shù)據(jù)(通常為媒體數(shù)據(jù))的邏輯緩沖器。其可以是下面的情況:將包括呈現(xiàn)緩沖器的數(shù)據(jù)劃分在一個(gè)設(shè)備中的不同組件之間,即,所下載的數(shù)據(jù)的一些部分由一個(gè)進(jìn)程(例如,該設(shè)備中的接收進(jìn)程)進(jìn)行保持,而其它部分可能已經(jīng)被傳送給另一個(gè)進(jìn)程(例如,該設(shè)備中的播放進(jìn)程)。此外,其還可以是下面的情況:可以在不同的進(jìn)程的不同緩沖器中,對包括呈現(xiàn)緩沖器的數(shù)據(jù)的至少一部分進(jìn)行至少部分地重復(fù)。在一些情況下,不是所有已被下載但仍沒有播放的數(shù)據(jù),都被視作為仍然位于呈現(xiàn)緩沖器之中,例如,在一些情況下,一旦將該媒體內(nèi)容傳遞給媒體播放器,就不再將其視作為位于呈現(xiàn)緩沖器之中。通常,已被下載但仍沒有播放的媒體數(shù)據(jù),以及被視作為不位于呈現(xiàn)緩沖器之中的媒體數(shù)據(jù)(如果有的話)的數(shù)量非常的小.
[0063]呈現(xiàn)緩沖器容納不均發(fā)接收和播放媒體,存儲所接收的媒體數(shù)據(jù),直到其被消費(fèi)為止。在媒體數(shù)據(jù)被消費(fèi)之后,可以根據(jù)配置,將其刪除或者繼續(xù)保存。在一些實(shí)現(xiàn)中,呈現(xiàn)緩沖器的大小(如通過可以在該呈現(xiàn)緩沖器中存儲的數(shù)據(jù)的字節(jié)數(shù)量所測量的)可以隨時(shí)間發(fā)生變化。例如,可以根據(jù)需要,從共享內(nèi)存中動態(tài)地分配呈現(xiàn)緩沖器。
[0064]在本申請所詳細(xì)描述的很多示例中,可以假定通過大小來示出呈現(xiàn)緩沖器的特性。在固定的存儲器大小專用于呈現(xiàn)緩沖器的情況下,可以通過能在可用的存儲器中存儲的字節(jié)數(shù)量來測量該大小。當(dāng)呈現(xiàn)緩沖器是動態(tài)分配的時(shí),針對呈現(xiàn)緩沖器的“大小”屬性可以等于目前分配給該呈現(xiàn)緩沖器的字節(jié)數(shù)量、可以分配給該呈現(xiàn)緩沖器的最大字節(jié)數(shù)量、或者某種其它適當(dāng)?shù)臏y量值。有時(shí),還依據(jù)呈現(xiàn)緩沖器中當(dāng)前可用的媒體的呈現(xiàn)播放持續(xù)時(shí)間,來測量呈現(xiàn)緩沖器的大小。
[0065]此外,呈現(xiàn)緩沖器還具有另一種特性:其“水平”或者“填充水平”。呈現(xiàn)緩沖器的水平表示在該呈現(xiàn)緩沖器中存在多少未被消費(fèi)的媒體數(shù)據(jù)(例如,使用字節(jié)或者呈現(xiàn)持續(xù)時(shí)間來測量的)??梢灶A(yù)期的是 ,隨著接收到媒體數(shù)據(jù),該水平增加,隨著媒體數(shù)據(jù)被消費(fèi),該水平下降。該水平也可以僅是一種邏輯量,例如,呈現(xiàn)緩沖器可以是不斷充滿有媒體數(shù)據(jù),但該媒體數(shù)據(jù)中的一些(例如,已被消費(fèi)的媒體數(shù)據(jù))被進(jìn)行了標(biāo)記,以便接收到新媒體數(shù)據(jù)時(shí)進(jìn)行覆蓋??梢詫σ恍┙邮諜C(jī)進(jìn)行編程,使得“空緩沖器”是存在零個(gè)未消費(fèi)的媒體數(shù)據(jù)的狀況,“滿緩沖器”是該呈現(xiàn)緩沖器的100%都填充有未消費(fèi)的媒體數(shù)據(jù)的狀況。其它接收機(jī)可以具有其它限制,使得該水平范圍處于與呈現(xiàn)緩沖器大小的0%到100%相比更小的范圍之上。在使用共享內(nèi)存,并且僅當(dāng)存儲未消費(fèi)的媒體數(shù)據(jù)時(shí),才向呈現(xiàn)緩沖器進(jìn)行分配的情況下,使用呈現(xiàn)緩沖器的這種動態(tài)分配的內(nèi)存大小作為在指示水平比率時(shí)的分母,可能沒有任何意義,這是由于根據(jù)規(guī)定,該呈現(xiàn)緩沖器始終是滿的。更適合的是,可以將該呈現(xiàn)緩沖器的水平測量成:該呈現(xiàn)緩沖器中的未消費(fèi)媒體數(shù)據(jù)的數(shù)量除以該呈現(xiàn)緩沖器的最大允許大小之比。
[0066]1、客戶端組件的概述
[0067]再次參見圖1-2,示出示例性客戶端的各種組件。
[0068]SC保持元數(shù)據(jù)(例如,關(guān)于哪些表現(xiàn)是可用的、以及其片段都是有哪些之類的信息)的跟蹤。此外,SC還負(fù)責(zé)對通過網(wǎng)絡(luò)接收的媒體數(shù)據(jù)進(jìn)行緩存,以便將其傳遞給媒體播放器。SM負(fù)責(zé)決定在什么時(shí)間點(diǎn)將下載哪些表現(xiàn),以及進(jìn)行速率切換決定。最后,給定精確的URL以及如SC所提供的字節(jié)范圍信息,RA負(fù)載下載媒體片段。
[0069]SM是負(fù)責(zé)進(jìn)行速率切換決定的軟件組件。SM的目標(biāo)之一是針對給定的情形,挑選最佳的內(nèi)容。例如,如果有大量可用的帶寬,可以實(shí)現(xiàn)高下載速率,則SM應(yīng)當(dāng)挑選高速率表現(xiàn)。如果下載速率明顯地下降,所選擇的高表現(xiàn)不再是可維持的,則SM應(yīng)當(dāng)切換到更低的表現(xiàn)速率,更適合于當(dāng)前狀況。SM應(yīng)當(dāng)足夠快地切換速率,以避免使播放緩沖器完全地耗盡(由于這將造成播放停滯),但同時(shí)嘗試不要切換的太匆忙或者太頻繁。此外,應(yīng)當(dāng)將目標(biāo)設(shè)定為請求可以通過網(wǎng)絡(luò)下載、并且在沒有停滯的情況下進(jìn)行播放的最高質(zhì)量內(nèi)容。SM在其決策過程中,可以擴(kuò)展到考慮不同于下載速率的其它因素。其可以潛在地考慮諸如電池壽命、顯示器尺寸之類的事物、以及當(dāng)關(guān)于表現(xiàn)進(jìn)行決策時(shí)的其它因素??梢詫⑦@些另外的約束作為過濾器增加到SM中,但其不影響本申請所描述的基本速率決策計(jì)算。
[0070]現(xiàn)在描述客戶端的典型、高水平操作。假定用戶請求一個(gè)特定的媒體內(nèi)容,例如,實(shí)時(shí)體育廣播、預(yù)錄制的電影、音頻流或者其它音視頻內(nèi)容或者其它內(nèi)容,其可以涉及不同于視頻和音頻的媒體類型??蛻舳嘶蛟S通過用戶接口或者計(jì)算機(jī)接口,向SM提供該請求。SM從SC進(jìn)行請求,并接收關(guān)于下面信息的指示:有哪些表現(xiàn)可用、哪些P時(shí)間跨度被哪些片段覆蓋、以及這些表現(xiàn)中的切換點(diǎn)位于什么位置。除了該信息之外,SM可以具有關(guān)于在處理的短期下載速率的某種信息(如下面所解釋的),RA將該數(shù)據(jù)報(bào)告給SC,SC將其報(bào)告或者提供給SM。
[0071]SM使用該信息,以及過去的歷史,估計(jì)可持續(xù)的速率,選擇一個(gè)表現(xiàn)中的適當(dāng)切換點(diǎn),以及從該切換點(diǎn)起始、要從該表現(xiàn)下載的媒體內(nèi)容的量。隨著下載的進(jìn)行,對媒體內(nèi)容進(jìn)行播放,SM使用提供的信息來決定速率切換是否恰當(dāng)。如果速率切換不恰當(dāng),則SM告訴SC繼續(xù)從當(dāng)前表現(xiàn)獲取片段。如果速率切換是恰當(dāng)?shù)模瑒tSM尋找潛在的切換點(diǎn),決定需要從哪些表現(xiàn)中的哪些片段進(jìn)行獲取,以進(jìn)行期望的切換。隨后,SM將該信息傳遞給SC。SC和SM之間的這種信息交換是定期進(jìn)行的(只要應(yīng)當(dāng)關(guān)于要下載的下一節(jié)做出決定)。為了做出正確的決定,SM對緩沖器水平進(jìn)行監(jiān)測,在一些情況下,SM可以決定該緩沖器是足夠的滿,在一段時(shí)間之內(nèi)不需要再下載任何片段。
[0072]—旦SM決定要下載一個(gè)片段,SC就負(fù)責(zé)獲得RA以實(shí)際地下載該片段,將所下載的片段保存在媒體緩沖器中,最后當(dāng)媒體緩沖器中的媒體數(shù)據(jù)的播放時(shí)間到了時(shí),將其傳遞給媒體播放器。
[0073]在SM告訴了 SC進(jìn)行下載之后,SM就不再活動地涉及到這些片段之中。但是,SP使在給定的片段的下載已經(jīng)開始之后,SM仍然可以改變其決定,取消其先前已發(fā)出的片段請求。這種功能在下面的情形中是有用的:事實(shí)證明下載速率極速地下降,截止到媒體緩沖器被完全地耗盡的時(shí)間,被下載的片段也不可能是可用的。如果發(fā)生這種狀況,則SM應(yīng)當(dāng)負(fù)責(zé)檢測,取消該請求,并切換到更適當(dāng)?shù)乃俾省?br>
[0074]一旦SC從SM接收到要獲取的片段句柄,就在其數(shù)據(jù)結(jié)構(gòu)中查找該URL和相應(yīng)的片段的字節(jié)范圍,使用該信息來產(chǎn)生向RA傳遞的請求。此外,SC還負(fù)責(zé)從RA獲取響應(yīng)數(shù)據(jù),將所接收的媒體片段轉(zhuǎn)換成可播放的流。最后,SC負(fù)責(zé)對元數(shù)據(jù)(例如,從MH)獲得的數(shù)據(jù)、分段索引(sidx)盒、或者蘋果的HTTP實(shí)時(shí)流(HLS)情況下的播放列表)進(jìn)行解析和保持跟蹤。
[0075]RA是從SC接收片段和元數(shù)據(jù)請求,生成相應(yīng)的HTTP請求,并通過網(wǎng)絡(luò)連接來發(fā)送這些HTTP請求,獲取相應(yīng)的響應(yīng)并將其傳遞回SC的組件。網(wǎng)絡(luò)連接可以是因特網(wǎng)連接、基于蜂窩的連接、WiFi連接或者能夠處理HTTP請求和響應(yīng)的其它網(wǎng)絡(luò)連接。該網(wǎng)絡(luò)連接可以是在單一設(shè)備的內(nèi)部,即,其可以是針對已經(jīng)在該設(shè)備中高速緩存的媒體數(shù)據(jù)的內(nèi)部接口。此外,還可以存在多種組合,即,媒體內(nèi)容中的一些可以從有線因特網(wǎng)連接下載,一些通過基于蜂窩的連接來下載,一些通過WiFi連接來下載,一些來自于本地高速緩存。在一些情況下,下載媒體數(shù)據(jù)的連接可以是混合的,即,一部分是通過蜂窩、一部分通過WiF1、一部分通過有線等。在一些實(shí)例中,具體的請求可以是不同于HTTP,但當(dāng)服務(wù)于該媒體內(nèi)容的服務(wù)器是HTTP服務(wù)器時(shí),HTTP是優(yōu)選的。
[0076]在其最簡單的形式,RA是HTTP客戶端。但是,可能期望RA與通用HTTP客戶端相比更高效。RA的一個(gè)目標(biāo)是實(shí)現(xiàn)足夠高的下載速率;其應(yīng)當(dāng)將目標(biāo)設(shè)定于:與所選定的播放媒體速率相比,下載速率要明顯地更快。另一方面,還應(yīng)當(dāng)注意不要為了原始吞吐量而使時(shí)效性受到處罰:與處于進(jìn)一步的后面位置的其它片段相比,不久將被播放的片段是更加急迫的,RA應(yīng)當(dāng)嘗試及時(shí)地接收這些片段。因此,需要為了時(shí)效性而犧牲一些吞吐量。應(yīng)當(dāng)將RA設(shè)計(jì)為在全部合理的網(wǎng)絡(luò)狀況下能進(jìn)行很好地工作。
[0077]RA的一種基本設(shè)計(jì)方案是使用一些連接和可能的FEC(前向糾錯(cuò))來獲得最佳的結(jié)果。因此,RA通常需要對一個(gè)以上的開放HTTP連接進(jìn)行管理。RA將請求派發(fā)到這些連接上。在一些環(huán)境中,RA可以將請求分割成一組更小的請求。當(dāng)接收到相應(yīng)的響應(yīng)時(shí),RA隨后將該數(shù)據(jù)重新組裝成一個(gè)相干的響應(yīng)。換言之,RA負(fù)責(zé)決定要發(fā)送的HTTP請求的顆粒度、將這些請求派發(fā)到哪些連接、以及決定要請求源片段或者修復(fù)片段的哪些部分。這些請求的顆粒度可以取決于多種事物,例如,緩沖器水平、請求的急迫性、可用連接的數(shù)量等。
[0078]RA發(fā)送出的每一個(gè)請求是針對于元數(shù)據(jù)的HTTP請求,也可以是針對于SC已傳送給該RA的片段請求的一部分或者全部。其可以是針對源媒體數(shù)據(jù)的請求,也可以是針對根據(jù)源媒體數(shù)據(jù)所生成的修復(fù)數(shù)據(jù)的請求。在大多數(shù)情況下,對于根據(jù)SC片段請求所生成的RA請求的響應(yīng),應(yīng)當(dāng)是足夠用于重建該片段請求中的所有媒體數(shù)據(jù),隨后RA可以將其傳送回SC。因此,RA負(fù)責(zé)將來自于與媒體片段請求相關(guān)聯(lián)的RA請求的響應(yīng),組合回一個(gè)針對該片段請求的響應(yīng),以提供給SC。RA執(zhí)行的這種組合可以包括FEC解碼(例如,如果存在一些針對FEC修復(fù)數(shù)據(jù)的RA請求的話)。
[0079]除了對HTTP請求進(jìn)行管理之外,RA在短期時(shí)段上、在一些采樣速率的時(shí)間片上,對下載速率進(jìn)行測量。一種示例性采樣速率是100ms,即,RA在10ms時(shí)段上對下載速率進(jìn)行測量。SM使用該使用數(shù)據(jù)來計(jì)算其下載速率估計(jì),并最終做出速率決策。其它采樣速率也是可以的。
[0080]RA不需要知道關(guān)于諸如DASH媒體呈現(xiàn)描述(MPD)或者關(guān)于分段結(jié)構(gòu)的元數(shù)據(jù)。在特定的實(shí)現(xiàn)中,RA使用HTTP棧實(shí)現(xiàn)的幾個(gè)同時(shí)實(shí)例來在一些連接上(甚至在一些情況下,在針對相似或者不同服務(wù)器的不同類型的連接上)實(shí)現(xiàn)HTTP檢索。
[0081]RA負(fù)責(zé)使SC知道何時(shí)可以接受新的請求。SC調(diào)用SM來確定要請求的下一個(gè)片段,向RA提供該適當(dāng)?shù)恼埱?。此外,RA還提供一些狀態(tài)信息。RA通??梢酝ㄟ^SC向SM提供短期的下載速率、下載所花費(fèi)的總時(shí)間。此外,SM還可以針對該信息,通過SC來間接地向RA進(jìn)行輪詢。除了該方面之外,RA還向SM通知關(guān)于各個(gè)請求已完成的百分比信息。使用SM進(jìn)行調(diào)用以獲取該信息的API,來類似地提供該信息。
[0082]在RA、SC和實(shí)際的媒體管道之間,應(yīng)當(dāng)存在非常緊急的數(shù)據(jù),故盡可能地在RA或SC中緩存很少的數(shù)據(jù)(除了故意的媒體緩沖器之外)。相同的理由對于具有各種形式的HTTP請求來說也是成立的;與通過網(wǎng)絡(luò)來發(fā)送實(shí)際相應(yīng)的HTTP請求的時(shí)間相比,SM應(yīng)當(dāng)僅只提前很短的時(shí)間,必須決定要請求的片段。一種原因在于:SM必須決定一個(gè)請求的提前量更早,保持最新的信息就越不準(zhǔn)確,因此其所做出的決策的質(zhì)量就越低。
[0083]SM一次發(fā)出一個(gè)請求。但是,如果所有先前的請求都沒有完成,SM還可以發(fā)出新請求;允許同時(shí)的請求。SC將這些請求按照SM發(fā)出其順序來傳送給RA。隨后,RA對同時(shí)處理保持注意,確保其將接收的數(shù)據(jù)返回給SC。
[0084]同時(shí)的請求使RA可以實(shí)現(xiàn)HTTP管道化。事實(shí)上,甚至利用多個(gè)連接的RA也適應(yīng)這種方案。
[0085]1.1、流管理器(SM)
[0086]響應(yīng)于用戶動作、網(wǎng)絡(luò)狀況和其它因素的組合,SM確定何時(shí)對片段進(jìn)行請求、以及對哪些片段進(jìn)行請求。當(dāng)用戶決定開始觀看內(nèi)容時(shí),SM負(fù)責(zé)針對該內(nèi)容,確定要請求的第一片段(其開始于用戶或者所提供的服務(wù)所指定的P時(shí)間)。例如,一些實(shí)時(shí)流服務(wù)可能需要所有用戶在相同的r時(shí)間觀看該媒體內(nèi)容的相同的P時(shí)間部分,而其它實(shí)時(shí)流和按需服務(wù)可以允許終端用戶或者應(yīng)用具有關(guān)于在什么r時(shí)間對什么P時(shí)間進(jìn)行播放的靈活性。當(dāng)媒體緩沖器變滿時(shí),SM臨時(shí)地暫停提供另外的片段請求。SM負(fù)責(zé)根據(jù)網(wǎng)絡(luò)狀況和其它因素(例如,顯示器的大小、剩余的電池壽命等),來決定在每一個(gè)P時(shí)間點(diǎn),按照什么質(zhì)量來播放該內(nèi)容。
[0087]當(dāng)SM認(rèn)為其適合于提供片段請求時(shí),SM可以只提供一個(gè)請求(如果RA準(zhǔn)備好接收和處理片段請求)。SC通過對RA進(jìn)行輪詢來確定這種情況,并將該信息轉(zhuǎn)發(fā)給SM。
[0088]當(dāng)RA準(zhǔn)備好接收下一個(gè)請求時(shí),SM決定是否應(yīng)當(dāng)發(fā)出新的請求,并選擇下一個(gè)片段進(jìn)行請求。SM一次針對媒體數(shù)據(jù)一個(gè)片段進(jìn)行請求,SM負(fù)責(zé)請求片段,其允許及時(shí)地和無縫地播放該內(nèi)容。表現(xiàn)中的播放改變,通常只在切換點(diǎn)處發(fā)生,在兩個(gè)連續(xù)的切換點(diǎn)之間可以存在多個(gè)片段;SM尊重該限制。
[0089]通常,SM只嘗試請求有理由認(rèn)為應(yīng)當(dāng)及時(shí)地接收以平滑播放的片段。但是,假定網(wǎng)絡(luò)狀況有時(shí)可以非??焖俚丶眲∽兓?,但并不能在所有環(huán)境中都保證這種情況。因此,SM還具有取消請求的能力。如果檢測到擁塞,SM將取消請求,如果不采取任何動作,則有很大的停滯風(fēng)險(xiǎn)。如果不采取任何動作,很可能發(fā)生停滯,例如,如果由于在發(fā)出片段請求之后不久網(wǎng)絡(luò)狀況就惡化,而造成的下載速率突然急劇地下降。
[0090]SM對表現(xiàn)R、以及大多數(shù)最近先前選擇的片段的結(jié)束P時(shí)間E保持跟蹤。通常,SM選擇請求起始P時(shí)間為的下一個(gè)片段。一些變化可以是:起始時(shí)間根據(jù)緩沖器水平和當(dāng)前播放時(shí)間來確定。
[0091]如果丟棄切換點(diǎn)處的潛在重疊,則SM產(chǎn)生旨在生成可以平滑地播放的流的請求序列。SM生成請求的順序,與RA應(yīng)當(dāng)對其劃分優(yōu)先級的順序相同(雖然不一定是問題)。其還可以是RA將所接收的數(shù)據(jù)傳遞回SC、并且SC應(yīng)當(dāng)對其進(jìn)行播放的相同順序。
[0092]如果SM決定其需要切換速率,則在通常情況下,這樣做有兩個(gè)過程。在一個(gè)過程中,SM在新的(“切換目標(biāo)”)表現(xiàn)中尋找P時(shí)間小于或等于E的切換點(diǎn)(其有時(shí)還稱為“隨機(jī)接入點(diǎn)”或“RAP”),一旦識別了這種點(diǎn),SM就開始請求該新表現(xiàn)中的片段。第二過程是尋找P時(shí)間小于或等于E的切換點(diǎn)P,并繼續(xù)請求舊的(“切換源”)表現(xiàn)中的片段,直到請求了結(jié)束時(shí)間超過P的片段為止的過程。在任一情況下,將這種切換信息發(fā)送給SC都是有用的。
[0093]應(yīng)當(dāng)注意,這兩種過程都具有必須要下載一些重疊的數(shù)據(jù)的屬性。存在著P時(shí)間的伸縮,需要在該時(shí)間,下載從其切換自的表現(xiàn)和切換到的表現(xiàn)的數(shù)據(jù)。
[0094]這些切換過程中的哪個(gè)是有利的,取決于上述情形。例如,其可以是:在一些特定的情形下,用于這些過程中的一個(gè)的重疊是不合理地大,而對于另一個(gè)來說卻是很短。在所有片段在表現(xiàn)之間都是對齊、并且所有這些片段都以RAP起始的簡單情形下,這些切換過程簡化為更簡單的方法,其中在該方法中,SM只通過從切換到的表現(xiàn)而不是從從其切換自的表現(xiàn)中請求下一個(gè)片段來進(jìn)行切換。此外,還應(yīng)當(dāng)注意,在該情況下,不需要下載重疊的數(shù)據(jù)。
[0095]1.1.KSM片段決策討稈
[0096]該節(jié)描述了 SM片段決策過程,以決定告訴SC要請求哪些片段。在這些示例中,假定一個(gè)簡單的表現(xiàn)組,但這些示例可以被擴(kuò)展為解決使用多個(gè)表現(xiàn)組的過程,例如,從視頻表現(xiàn)組中選擇一個(gè)視頻表現(xiàn),從音頻表現(xiàn)組中選擇一個(gè)音頻表現(xiàn)。
[0097]通常,SM所選擇的下一個(gè)片段的起始P時(shí)間是前一個(gè)片段請求的結(jié)束P時(shí)間。下面描述可以在SM中實(shí)現(xiàn)以便選擇要請求的下一個(gè)片段的某種詳細(xì)邏輯。
[0098]在下面的示例中,假定片段以RAP起始,并且在表現(xiàn)之間是對齊的。如果不是這種情況,則本說明書的變化也是有可能的。如果存在這些狀況,則SM的片段決策降低為速率決策,即,SM決定是停留在當(dāng)前表現(xiàn)上,還是切換到不同的表現(xiàn)。在更一般的情況下,片段不是必需在表現(xiàn)之間是對齊的,并且可以不以RAP起始,這種決策是類似的,但切換的代價(jià)更高,在切換時(shí)可以考慮該代價(jià)。
[0099]SM表現(xiàn)處理包括兩個(gè)邏輯單獨(dú)的過程:第一過程是速率估計(jì)器,其根據(jù)RA提供的短期樣本,計(jì)算近似持續(xù)的下載速率,第二過程是利用該估計(jì)來做出切換決策的決策過程。
[0100]2、諫率估計(jì)討稈
[0101]自適應(yīng)比特率流媒體客戶端通常使用下載速率估計(jì)器模塊,速率決策模塊使用該下載速率估計(jì)器模塊來選擇正確的比特率媒體。使用該方法,當(dāng)下載速率較大時(shí),可以對高質(zhì)量媒體進(jìn)行流傳輸。下載速率的改變可以觸發(fā)表現(xiàn)切換。速率估計(jì)的質(zhì)量對于流媒體客戶端的質(zhì)量具有很大的影響。
[0102]用于自適應(yīng)視頻流媒體設(shè)備的良好速率估計(jì)器應(yīng)當(dāng)具有多種屬性。首先,其應(yīng)當(dāng)具有很小的偏差,即使短期下載速率變化很大。第二,其應(yīng)當(dāng)在底層的信道上進(jìn)行快速地速率改變。當(dāng)信道速率顯著下降時(shí),該估計(jì)應(yīng)當(dāng)反映這種快速的事實(shí),使得設(shè)備可以在無需停滯的情況下,對質(zhì)量進(jìn)行相應(yīng)地調(diào)整。相應(yīng)地,應(yīng)當(dāng)快速地觀測到視頻質(zhì)量的增加,使得可以獲取更佳的質(zhì)量內(nèi)容。
[0103]滿足這兩種需求可能需要一些平衡。通常,具有很小偏差的估計(jì)器將具有較大的反應(yīng)時(shí)間,反之亦然。例如,假定可以在設(shè)備中使用的簡單估計(jì)器。該估計(jì)器對最后X秒的下載(對于某些固定的X),執(zhí)行移動平均。挑選較大的x(例如,X = 30秒),將導(dǎo)致具有很小偏差的相對平滑估計(jì),但其將只反應(yīng)為下載速率慢速地改變。如果這種估計(jì)器是用于速率決策,則最終的播放器可能由于帶寬下降而頻繁停滯,或者不能及時(shí)地切換到更高比特率(當(dāng)其可以安全地這樣做時(shí))。由于這些原因,一種實(shí)現(xiàn)可以挑選較小的X,如X = 3s。這種選擇將導(dǎo)致更快速的速率調(diào)整,但以穩(wěn)定性為代價(jià)。速率估計(jì)變化很大,因此播放器可能非??焖俚馗淖円曨l播放速率,其導(dǎo)致很差的用戶體驗(yàn)。
[0104]在圖5中,顛簸曲線是原始下載速率,其具有很多的短期波動。速率估計(jì)器是顛簸下載速率的平滑版本。在速率改變時(shí),其收斂到新的持續(xù)速率,只要速率不發(fā)生改變,則仍然類似于它。
[0105]期望的一種屬性在于:如果存在很小的緩沖器水平,則調(diào)整是快速的,其造成速率的快速調(diào)整,使得當(dāng)下載速率下降時(shí),呈現(xiàn)緩沖器在調(diào)整之前不為空。另一方面,如果在媒體緩沖器中存在很多的媒體數(shù)據(jù),則速率估計(jì)應(yīng)當(dāng)是具有更慢調(diào)整的更加平滑。與媒體緩沖器中存在很少的媒體數(shù)據(jù)相比,當(dāng)在媒體緩沖器中存在更多的媒體數(shù)據(jù)時(shí),播放速率應(yīng)當(dāng)趨向于在下載速率下降時(shí),在更長的時(shí)間段保持為較高.
[0106]下文所給出的速率估計(jì)過程(其稱為pkeiNpker過程或者pker類型過程),針對速率改變進(jìn)行快速地反應(yīng),但其還是穩(wěn)定的,滿足針對低偏差和高反應(yīng)的需求。
[0107]2.1、Dker 討稈
[0108]該節(jié)描述了本申請稱為pkeiNpker類型過程或者僅“pker過程”的速率估計(jì)過程?;舅俾使烙?jì)器將其估計(jì)唯一地基于短期速率測量值,根據(jù)該值,使用一種方法或另一種方法來計(jì)算較長的平均運(yùn)行。如上所述的基本移動窗口平均(“MWA”)是該過程的一個(gè)示例。
[0109]圖6-7示出了為了速率選擇目的,使用非自適應(yīng)(固定系數(shù))指數(shù)加權(quán)平均的效果。為了簡單起見,這些圖假定新的速率估計(jì)立即觸發(fā)新的下載選擇(即,這些片段是相對較小的),新的速率選擇僅是速率估計(jì)。
[0110]圖6示出了 r時(shí)間方面。如圖所示,X軸是下載時(shí)間(實(shí)際時(shí)間)。當(dāng)在時(shí)間Tl處發(fā)生急劇的速率增加時(shí),緩沖器非??焖俚亻_始增長,這是由于與播放的速率相比,視頻數(shù)據(jù)被更快速地下載。EWMA估計(jì)逐漸收斂到真實(shí)的速率。
[0111]圖7示出了相同事件的P時(shí)間方面。在該圖中,線702描述了在屏幕上顯示的比特率。與圖6的r時(shí)間圖片相比,這里的速率調(diào)整是更慢速的。與r時(shí)間相比的P時(shí)間的收斂速度,下降了開始中的NR/0R的因子(這是由于在該時(shí)間點(diǎn)的每一秒的下載,播放器接收了大約NR/0R秒的視頻)。因此,當(dāng)使用這種類型的速率估計(jì)器時(shí),凈效應(yīng)是媒體可以在顯著數(shù)量的P時(shí)間,按照與下載速率相比更慢的速率進(jìn)行播放。
[0112]如果為了流媒體的目的來對速率進(jìn)行估計(jì),則估計(jì)器可以利用其它有關(guān)的信息。具體而言,對媒體播放器的緩沖器感興趣,或者通常對媒體播放器的下載歷史感興趣(與當(dāng)前緩沖器中的內(nèi)容相比,對更遠(yuǎn)的過去感興趣),其包括花費(fèi)了多長的信息來下載被緩存或者已經(jīng)播放的各個(gè)媒體片段。
[0113]例如,一種實(shí)現(xiàn)可以使用MWA估計(jì)器,但根據(jù)媒體緩沖器來選擇窗口大小。
[0114]如果媒體播放器的緩沖器水平較高,則播放器不會具有立即停滯的風(fēng)險(xiǎn),所以可以使用較大的窗口來進(jìn)行長期的估計(jì),這將導(dǎo)致一個(gè)更穩(wěn)定的估計(jì)。另一方面,如果緩沖器水平較低,則播放器應(yīng)當(dāng)快速地反應(yīng),建議在這種情況下,更短的平均窗口是一種更好的選擇。
[0115]所以速率估計(jì)過程的實(shí)現(xiàn)可以使用變化的窗口寬度,其利用與當(dāng)前媒體緩沖器中的P時(shí)間的數(shù)量成比例的r時(shí)間窗口寬度(也就是說,已下載但沒有播放的當(dāng)前數(shù)量的P時(shí)間)。
[0116]另一種實(shí)現(xiàn)可以對窗口寬度進(jìn)行選擇,以便與媒體緩沖器中當(dāng)前包含的字節(jié)數(shù)量成正比。
[0117]一種實(shí)現(xiàn)還可以檢查緩沖器的內(nèi)容,而不是只檢查其水平。例如,如果確定緩沖器的很大部分是用與該相同內(nèi)容的播放持續(xù)時(shí)間相比更短的時(shí)間來下載的,則說明該下載緩沖器正在快速地增長,速率估計(jì)器因此可以推斷需要對估計(jì)進(jìn)行調(diào)整。
[0118]類似地,速率估計(jì)器可以對緩沖器水平的改變速率進(jìn)行跟蹤,將緩沖器水平的快速改變作為需要對速率估計(jì)進(jìn)行快速地調(diào)整的指示。
[0119]圖8-9示出了當(dāng)使用可變窗口大小加權(quán)移動平均(“WMA”)過濾器時(shí),與圖6_7相同的場景中的行為。在這些示例中,如同這種可變窗口大小WMA過濾器,將“pker”過程解釋為程序代碼。可以將Pker過程實(shí)現(xiàn)成由處理器執(zhí)行的程序指令。
[0120]在圖8中,線802是底層信道的速率突然從速率OR(舊速率)增加到速率NR(新速率)的情況下的Pker速率估計(jì)。為了進(jìn)行速率選擇以調(diào)整到新速率所花費(fèi)的r時(shí)間的量與0R/NR成正比。增加越大,則這種調(diào)整在實(shí)際時(shí)間中將更快速地發(fā)生。如圖所示,在時(shí)間 T2 處,BuffiT2 = 2*BuffiTl, Tfast = 0R/NR*Buff@Tl。
[0121]圖9顯示了 p時(shí)間中的播放行為。pker估計(jì)器花費(fèi)大約一個(gè)緩沖器持續(xù)時(shí)間(當(dāng)發(fā)生速率增加時(shí),處于該緩沖器中的P時(shí)間的數(shù)量)來調(diào)整到新速率,即,在媒體緩沖器具有增加到該媒體緩沖器的P時(shí)間持續(xù)量B的媒體內(nèi)容量的時(shí)間之前,Pker估計(jì)器調(diào)整到新速率,其中B是在速率增加到新速率的時(shí)間,該媒體緩沖器中的媒體內(nèi)容的P時(shí)間持續(xù)量。
[0122]現(xiàn)在將描述執(zhí)行該處理的具體過程。該處理確定其花費(fèi)多少r時(shí)間來下載播放緩沖器的最后Yt比例,其中Yt是適當(dāng)選擇的常量。例如,這可以是其下載全部的當(dāng)前播放緩沖器(Yt= I)所花費(fèi)的全部時(shí)間,或者其下載播放緩沖器的最后一半(YT = 0.5)所花費(fèi)的時(shí)間。還可以發(fā)生YT>1。使Tfast是其下載播放緩沖器的最后比例所花費(fèi)的r時(shí)間的量??梢酝ㄟ^對下載時(shí)間的前面Tfast秒上的下載速率進(jìn)行估計(jì),來計(jì)算估計(jì)的下載速率。應(yīng)當(dāng)注意,其它的Yt值也是可以的。如本申請所解釋的,不同的值可以服務(wù)于不同的目標(biāo)。
[0123]這種類型的在Tfast寬度窗口上的加窗口平均,具有檢測速率快速地增加的卓越性能。事實(shí)上,如果使用值τ〈1來確定Tfast,那么估計(jì)器具有下面的屬性:如果當(dāng)媒體緩沖器中的媒體內(nèi)容的P時(shí)間持續(xù)量是B時(shí),該速率在某個(gè)時(shí)刻增加了任何因子的倍數(shù),則在速率估計(jì)器收斂到增加的速率之前,該緩沖器將至多增長到B的有限倍數(shù)。
[0124]更詳細(xì)的速率估計(jì)方法可以對上面所提及的兩種方法進(jìn)行組合。具體而言,可以將緩沖器水平B和Tfast的最小值使用成平均的窗口寬度(即,在其上對下載速率進(jìn)行平均的r時(shí)間的量)。通常而言,可以在Yb.B和Tfast的最小值的前面r時(shí)間上,對下載速率進(jìn)行平均,其中Yb是適當(dāng)選擇的常量。這種選擇具有下面的屬性:當(dāng)存在具有停滯風(fēng)險(xiǎn)的速率下降時(shí),其將快速地反應(yīng),這是由于在這些情況下,B是最小值,在與媒體緩沖器中的媒體內(nèi)容的P時(shí)間持續(xù)量成正比的r時(shí)間上進(jìn)行平均,從而在媒體緩沖器消耗一半的時(shí)間,速率估計(jì)將是新的速率。例如,假定在速率減少的時(shí)間,媒體緩沖器中的媒體內(nèi)容持續(xù)時(shí)間是B,下載速率減少,使得在該下載速率減少之前下載速率是所選定的呈現(xiàn)的播放速率的一個(gè)比例α〈1,悲觀的是,所選定的表現(xiàn)的播放速率不會減小,直到速率估計(jì)減少到新的下載速率為止。隨后,隨著在發(fā)生速率減少時(shí),持續(xù)下載超出該時(shí)間X的r時(shí)間,則緩沖器水平是B' =Β-χ+α.χ,Β卩,從媒體緩沖器中消耗X的P時(shí)間,向該媒體緩沖器下載了 α.χ。速率估計(jì)將是此時(shí)的新速率,使得X = B',即,在此時(shí),P時(shí)間中的媒體緩沖器水平等于下載已經(jīng)處于該新速率的r時(shí)間,這是由于此時(shí),前面r時(shí)間的下載上的估計(jì)將是新速率,在該全部時(shí)間期間,下載都已處于新的速率。對于方程x = B'= B-X+α.X中的X進(jìn)行求解,得出X = B' =B/(2-a),即,當(dāng)緩沖器B'仍然至少為B/2時(shí),速率估計(jì)將達(dá)到新速率。如果在此時(shí),速率增加的非常明顯,那么Tfast將是最小值,與前面的B 時(shí)間上的平均值相比,在前面的Tfast r時(shí)間上的平均下載速率明顯更高。
[0125]現(xiàn)在基于這種構(gòu)建,來給出pker速率估計(jì)過程的一個(gè)示例的詳細(xì)描述。其使用可以從下載模塊(例如,請求加速器(RA))獲得的短期速率測量和緩沖器信息來計(jì)算估計(jì)。使用緩沖器信息來確定短期速率測量值能獲得有用的估計(jì)的窗口寬度。
[0126]圖10示出了當(dāng)下載速率急劇下降時(shí),pker速率估計(jì)器如何演進(jìn)。只要速率一下降,緩沖器水平就開始下降。速率估計(jì)也開始調(diào)整。在緩沖器水平下降到二分之一時(shí),速率估計(jì)達(dá)到新的速率(NR)。在該示例中,不進(jìn)行中間速率決策,所以緩沖器線性地下降。如果進(jìn)行了中間決策,則緩沖器水平的下降將逐漸慢慢地下降。
[0127]pker過程的設(shè)計(jì)目標(biāo)是足夠大的平均窗口來避免具有嘈雜的數(shù)字,但對于反應(yīng)來說具有足夠短的數(shù)量。Pker過程通過使用具有動態(tài)改變的窗口大小的加窗口平均來實(shí)現(xiàn)該目標(biāo)。RA在存儲器中維持幾個(gè)變量,以便由Pker過程使用,其包括B、播放緩沖器的水平(在P時(shí)間)、處理參數(shù)YB、Yt和Tfast、下載該緩沖器的最后gammaτ比例(在P時(shí)間)所花費(fèi)的r時(shí)間的節(jié)省量、以及R、在r時(shí)間的下載的最后C的持續(xù)時(shí)間上平均下載速度,其中C =1^叉(5丁卩,1^11(¥,8,^),5???是最小可接受窗口大小(其應(yīng)當(dāng)超過采樣時(shí)間周期(如,100ms))。在一些實(shí)施例中,Yb =1,Yt = 0.5,但其它值也是可以的,并導(dǎo)致性質(zhì)相似的行為(只要這兩個(gè)值是正在的,并且Υτ〈1)。較小的Yb造成Pker過程對于速率減少反應(yīng)的很快,而較小的Yt造成其對于速率增加反應(yīng)的很快。
[0128]如本申請所解釋的,為了計(jì)算在持續(xù)時(shí)間C上的下載速率,SM使用RA定期提供的下載速度信息。由于此目的,SM可以保持RA所提供的下載速度信息的歷史。進(jìn)行該平均的持續(xù)時(shí)間至多是Yb緩沖器持續(xù)時(shí)間,其有效地限制當(dāng)存在關(guān)于媒體緩沖器水平的上限時(shí),需要保持多久的歷史信息。
[0129]應(yīng)當(dāng)注意,如果所選定的播放速率近似地等于下載速率,則緩存值C具有緩沖器持續(xù)時(shí)間的量級,這是由于如果與播放該流所花費(fèi)的時(shí)間相比,對該流下載花費(fèi)相同數(shù)量的時(shí)間,則可以具有Tfast= Yt-B0對于用于下載速率估計(jì)的平滑時(shí)間間隔來說,選擇某種量級的r時(shí)間的緩沖器水平是一種自然選擇,由于其是遠(yuǎn)見量,因此流媒體客戶端必須決定是否想要避免停滯。
[0130]在一種簡單的實(shí)現(xiàn)中,平均的窗口寬度與B (視頻緩沖器中所包含的P時(shí)間的量)成正比。這種選擇能非常好地防止停滯,但具有下面的缺陷:如果下載速率是所選定的媒體的速率的k倍,則每一秒的下載導(dǎo)致k秒的P時(shí)間的媒體被下載,其造成速率估計(jì)實(shí)際調(diào)整地很慢。例如,如果k = 10,并且存在10秒的緩沖器,那么在調(diào)整之前,速率估計(jì)器將下載大約k*10s = 10s的P時(shí)間,其是一段非常長的時(shí)間。這促使向pker方法引入了 TfastS數(shù)。事實(shí)上,如果使用指數(shù)加權(quán)移動平均進(jìn)行平滑,事情可能甚至變得更差,這是由于這些過濾器具有無限沖激響應(yīng)。由于此原因,Pker過程替代地使用有限沖激響應(yīng)。簡單移動平均工作;一種實(shí)現(xiàn)還可以使用更精密的加權(quán)移動平均。
[0131]圖13示出了這最后一點(diǎn)。其示出了簡單(固定寬度)移動窗口平均與指數(shù)加權(quán)移動平均的比較。該圖示出了當(dāng)觀測到速率改變時(shí),固定窗口移動平均首先慢慢地收斂到新速率,但其將一個(gè)窗口持續(xù)時(shí)間之內(nèi)收斂。指數(shù)加權(quán)移動平均趨向于在開始時(shí)快速地移動,但在后面階段,其只是慢慢地收斂。與加窗口的移動平均不同,不在固定的窗口之內(nèi)收斂,而是利用速率改變的幅度的時(shí)間對數(shù)進(jìn)行收斂。
[0132]在Yb = I和Υτ = 0.5的情況下,pker過程可以提供各種保證。對于一種情況,如果下載速度下降任何倍數(shù),則在緩沖器收縮到其原始持續(xù)時(shí)間的一半的時(shí)間之內(nèi),將估計(jì)調(diào)整到新的下載速度。對于另一種情況,如果下載速度增加任何倍數(shù),則在Pker過程收斂到新的速率之前,對至多值得另外的P時(shí)間的一個(gè)緩沖器進(jìn)行下載。簡單明了的計(jì)算將示出類似的恒定比例擔(dān)保,持有0〈 Yb并且0〈 Υτ〈1的任何選擇。
[0133]用于計(jì)算緩沖器水平B的一種方法如下所述。使T是媒體播放器的當(dāng)前播放P時(shí)間,使Fi;1,…,F(xiàn)i;n是表現(xiàn)組i中的已經(jīng)被下載或者正在下載但還沒有播放的片段,其以增加的起始時(shí)間來排序。仍然被下載的組i的任何片段,位于Fi;1,…,F(xiàn)i;n之間。使a (Fu)是已經(jīng)被下載的片段Fu的比例,例如,已經(jīng)下載的片段Fu的字節(jié)數(shù)除以片段Fu的字節(jié)大小。RA可以計(jì)算用于各種i和j的a (Fiij)的值,并將其傳遞給SM。對于給定的組i,將下載的P時(shí)間的當(dāng)前總數(shù)量規(guī)定成如式I中所示:
【權(quán)利要求】
1.在一種接收機(jī)中,所述接收機(jī)接收媒體以用于使用所述接收機(jī)的呈現(xiàn)元件進(jìn)行播出,其中,所述播出導(dǎo)致以播放速率從呈現(xiàn)緩沖器消耗媒體,并且其中,所述接收機(jī)配置為從多個(gè)播放速率中進(jìn)行選擇,一種用于確定請求動作的方法包括: 監(jiān)測所述呈現(xiàn)緩沖器,其中,所述呈現(xiàn)緩沖器至少在接收到所述媒體數(shù)據(jù)的時(shí)間和由與所述接收機(jī)相關(guān)聯(lián)的呈現(xiàn)元件消耗所述媒體數(shù)據(jù)的時(shí)間之間存儲所述媒體數(shù)據(jù); 存儲緩沖器水平的指示,其中,所述緩沖器水平對應(yīng)于所述呈現(xiàn)緩沖器被接收到的并且尚未被所述呈現(xiàn)元件消耗的所述媒體數(shù)據(jù)占用的程度; 保持針對下載所選擇的媒體數(shù)據(jù)的第一區(qū)塊的發(fā)出的請求的狀態(tài);以及當(dāng)發(fā)出的請求是未解決的時(shí),基于網(wǎng)絡(luò)狀況和所述發(fā)出的請求的所述狀態(tài),確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求。
2.根據(jù)權(quán)利要求1所述的方法,其中,確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求還包括: 確定是否有足夠的時(shí)間來在應(yīng)當(dāng)播出所述第一媒體數(shù)據(jù)之前完成針對所述發(fā)出的請求的下載;以及 如果沒有足夠的時(shí)間,則取消所述發(fā)出的請求。
3.根據(jù)權(quán)利要求2所述的方法,其中,確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求還包括: 確定是否有足夠的時(shí)間來在要播出所選擇的媒體數(shù)據(jù)的第一區(qū)塊或所選擇的媒體數(shù)據(jù)的第二區(qū)塊之前,下載較高速率的第二區(qū)塊;以及 如果有足夠的時(shí)間,則取消所述發(fā)出的請求,并且發(fā)出針對所述第二區(qū)塊的后繼請求。
4.根據(jù)權(quán)利要求3所述的方法,其中,確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求還包括: 基于下載速率和媒體消耗速率,檢測將發(fā)生停頓; 估計(jì)當(dāng)所述呈現(xiàn)元件無法以由消耗所述媒體所指示的速率消耗媒體數(shù)據(jù)時(shí)的時(shí)間和當(dāng)所述呈現(xiàn)元件能夠恢復(fù)以由消耗所述媒體所指示的所述速率消耗媒體數(shù)據(jù)的時(shí)間之間的停頓時(shí)段; 確定繼續(xù)或取消將會對所述停頓時(shí)段產(chǎn)生的影響;以及 如果取消所述發(fā)出的請求將會縮短所述停頓時(shí)段,則取消所述發(fā)出的請求。
5.根據(jù)權(quán)利要求2所述的方法,還包括: 選擇媒體數(shù)據(jù)的第二區(qū)塊,其中,所述媒體數(shù)據(jù)的第二區(qū)塊具有起始呈現(xiàn)時(shí)間,并且該起始呈現(xiàn)時(shí)間是與所述媒體數(shù)據(jù)的第一區(qū)塊相同的起始呈現(xiàn)時(shí)間;以及請求所述媒體數(shù)據(jù)的第二區(qū)塊的下載。
6.根據(jù)權(quán)利要求1所述的方法,還包括: 選擇媒體數(shù)據(jù)的第二區(qū)塊,其中,所述媒體數(shù)據(jù)的第二區(qū)塊具有起始呈現(xiàn)時(shí)間,并且該起始呈現(xiàn)時(shí)間晚于所述媒體數(shù)據(jù)的第一區(qū)塊的起始呈現(xiàn)時(shí)間;以及請求所述媒體數(shù)據(jù)的第二區(qū)塊的下載。
7.根據(jù)權(quán)利要求6所述的方法,其中,選擇所述媒體數(shù)據(jù)的第二區(qū)塊,使得與所述媒體數(shù)據(jù)的第一區(qū)塊的所述起始呈現(xiàn)時(shí)間相比,所述媒體數(shù)據(jù)的第二區(qū)塊的起始呈現(xiàn)時(shí)間具有可用于所述接收機(jī)的最低差值。
8.根據(jù)權(quán)利要求6所述的方法,其中,選擇所述媒體數(shù)據(jù)的第二區(qū)塊,使得其播放速率是在其呈現(xiàn)時(shí)間和所述媒體數(shù)據(jù)的第一區(qū)塊的所述起始呈現(xiàn)時(shí)間之間,具有預(yù)定的最大間隙的最大播放速率。
9.根據(jù)權(quán)利要求6所述的方法,還包括: 確定是否無法及時(shí)地完成所述媒體數(shù)據(jù)的第一區(qū)塊的剩余部分的下載以進(jìn)行播放; 確定是否能夠及時(shí)地完成所述媒體數(shù)據(jù)的第二區(qū)塊的下載以進(jìn)行播放; 使得對是繼續(xù)針對所述媒體數(shù)據(jù)的第一區(qū)塊的所述發(fā)出的請求還是取消所述發(fā)出的請求并替代地請求所述媒體數(shù)據(jù)的第二區(qū)塊所述確定,基于是否無法及時(shí)地完成所述媒體數(shù)據(jù)的第一區(qū)塊的剩余部分的所述下載以進(jìn)行播放以及能夠及時(shí)地完成所述媒體數(shù)據(jù)的第二區(qū)塊的所述下載以進(jìn)行播放。
10.根據(jù)權(quán)利要求9所述的方法,其中,將所述媒體數(shù)據(jù)的第二區(qū)塊中的所述媒體數(shù)據(jù)的所述播放速率選擇為所述接收機(jī)處所支持的最高播放速率。
11.根據(jù)權(quán)利要求1所述的方法,還包括: 請求覆蓋所述呈現(xiàn)緩沖器中已經(jīng)存在的至少一些媒體數(shù)據(jù)的呈現(xiàn)時(shí)間的媒體數(shù)據(jù); 下載所請求的媒體數(shù)據(jù); 播出所請求的媒體數(shù)據(jù);以及 丟棄所述呈現(xiàn)緩沖器中已經(jīng)存在的至少一些相應(yīng)的媒體數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的方法,其中,所請求的媒體數(shù)據(jù)的所述播放速率是最大播放速率,所述最大播放速率受制于從所述呈現(xiàn)緩沖器中丟棄的相應(yīng)媒體數(shù)據(jù)的最大呈現(xiàn)持續(xù)時(shí)間的約束。
13.根據(jù)權(quán)利要求11所述的方法,其中,對所請求的媒體數(shù)據(jù)進(jìn)行選擇,使得其起始呈現(xiàn)時(shí)間是可用于所述接收機(jī)的最早起始呈現(xiàn)時(shí)間。
14.一種接收機(jī),其接收媒體以用于使用所述接收機(jī)的呈現(xiàn)元件進(jìn)行播出,所述接收機(jī)包括: 呈現(xiàn)緩沖器,以播放速率從所述呈現(xiàn)緩沖器中消耗媒體,其中,所述呈現(xiàn)緩沖器至少在接收到所述媒體數(shù)據(jù)的時(shí)間和由與所述接收機(jī)相關(guān)聯(lián)的呈現(xiàn)元件消耗所述媒體數(shù)據(jù)的時(shí)間之間存儲所述媒體數(shù)據(jù),其中,所述接收機(jī)配置為從多個(gè)播放速率中進(jìn)行選擇; 呈現(xiàn)緩沖器檢測器,其用于確定所述呈現(xiàn)緩沖器的狀態(tài); 用于緩沖器水平的指示的存儲單元,其中,所述緩沖器水平對應(yīng)于所述呈現(xiàn)緩沖器被接收到的并且尚未被所述呈現(xiàn)元件消耗的所述媒體數(shù)據(jù)占用的程度; 用于針對下載所選擇的媒體數(shù)據(jù)的第一區(qū)塊的發(fā)出的請求的狀態(tài)的存儲單元;以及用于發(fā)送請求和請求取消,使得當(dāng)發(fā)出的請求是未解決的時(shí),基于網(wǎng)絡(luò)狀況和所述發(fā)出的請求的所述狀態(tài),所述接收機(jī)取消所述請求的接口。
15.根據(jù)權(quán)利要求14所述的接收機(jī),還包括: 時(shí)鐘電路,所述接收機(jī)憑借所述時(shí)鐘電路能夠確定如果有足夠的時(shí)間來在應(yīng)當(dāng)播出所述第一媒體數(shù)據(jù)之前完成針對所述請求的下載,是繼續(xù)所述請求還是取消所述請求,但如果沒有足夠的時(shí)間,則取消所述請求。
16.根據(jù)權(quán)利要求14所述的接收機(jī),還包括: 用于媒體數(shù)據(jù)的第二區(qū)塊的存儲單元,其中,所述媒體數(shù)據(jù)的第二區(qū)塊具有起始呈現(xiàn)時(shí)間,并且該起始呈現(xiàn)時(shí)間是與所述媒體數(shù)據(jù)的第一區(qū)塊相同的起始呈現(xiàn)時(shí)間。
17.根據(jù)權(quán)利要求14所述的接收機(jī),其中,用于媒體數(shù)據(jù)的第二區(qū)塊的存儲單元,其中,所述媒體數(shù)據(jù)的第二區(qū)塊具有起始呈現(xiàn)時(shí)間,并且該起始呈現(xiàn)時(shí)間晚于所述媒體數(shù)據(jù)的第一區(qū)塊的起始呈現(xiàn)時(shí)間。
18.根據(jù)權(quán)利要求17所述的接收機(jī),其中,選擇所述媒體數(shù)據(jù)的第二區(qū)塊,使得與所述媒體數(shù)據(jù)的第一區(qū)塊的所述起始呈現(xiàn)時(shí)間相比,所述媒體數(shù)據(jù)的第二區(qū)塊的起始呈現(xiàn)時(shí)間具有可用于所述接收機(jī)的最低差值。
19.用于由處理器執(zhí)行以便接收媒體以用于使用所述接收機(jī)的呈現(xiàn)元件進(jìn)行播出的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),所述非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)在其上具有程序代碼,所述程序代碼包括: 用于播出媒體的程序代碼,以多個(gè)播放速率中所選擇的一個(gè)播放速率的播放速率從呈現(xiàn)緩沖器消耗所述媒體; 用于監(jiān)測所述呈現(xiàn)緩沖器的程序代碼,其中,所述呈現(xiàn)緩沖器至少在接收到所述媒體數(shù)據(jù)的時(shí)間和由與所述接收機(jī)相關(guān)聯(lián)的呈現(xiàn)元件消耗所述媒體數(shù)據(jù)的時(shí)間之間存儲所述媒體數(shù)據(jù); 用于存儲緩沖器水平的指示的程序代碼,其中,所述緩沖器水平對應(yīng)于所述呈現(xiàn)緩沖器被接收到的并且尚未被所述呈現(xiàn)元件消耗的所述媒體數(shù)據(jù)占用的程度; 用于保持針對下載所選擇的媒體數(shù)據(jù)的第一區(qū)塊的發(fā)出的請求的狀態(tài)的程序代碼;以及 用于當(dāng)發(fā)出的請求是未解決的時(shí),基于網(wǎng)絡(luò)狀況和所述發(fā)出的請求的狀態(tài),確定是繼續(xù)所述發(fā)出的請求還是取消所述發(fā)出的請求的程序代碼。
20.根據(jù)權(quán)利要求19所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括: 用于確定是否有足夠的時(shí)間來在應(yīng)當(dāng)播出所述第一媒體數(shù)據(jù)之前完成針對所述發(fā)出的請求的下載的程序代碼;以及 用于如果沒有足夠的時(shí)間,則取消所述發(fā)出的請求的程序代碼。
21.根據(jù)權(quán)利要求19所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括: 用于確定是否有足夠的時(shí)間來在要播出所選擇的媒體數(shù)據(jù)的第一區(qū)塊或所選擇的媒體數(shù)據(jù)的第二區(qū)塊之前,下載較高速率的第二區(qū)塊的程序代碼;以及 用于如果有足夠的時(shí)間,則取消所述發(fā)出的請求,并且發(fā)出針對所述第二區(qū)塊的后繼請求的程序代碼。
22.根據(jù)權(quán)利要求19所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括: 用于基于下載速率和媒體消耗速率,檢測將發(fā)生停頓的程序代碼; 用于估計(jì)當(dāng)所述呈現(xiàn)元件無法以由消耗所述媒體所指示的速率消耗媒體數(shù)據(jù)時(shí)的時(shí)間和當(dāng)所述呈現(xiàn)元件能夠恢復(fù)以由消耗所述媒體所指示的所述速率消耗媒體數(shù)據(jù)的時(shí)間之間的停頓時(shí)段的程序代碼; 用于確定繼續(xù)或取消將會對所述停頓時(shí)段產(chǎn)生的影響的程序代碼;以及用于如果取消所述發(fā)出的請求將會縮短所述停頓時(shí)段,則取消所述發(fā)出的請求的程序代碼。
23.根據(jù)權(quán)利要求19所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括:用于選擇媒體數(shù)據(jù)的第二區(qū)塊的程序代碼,其中,所述媒體數(shù)據(jù)的第二區(qū)塊具有起始呈現(xiàn)時(shí)間,并且該起始呈現(xiàn)時(shí)間是與所述媒體數(shù)據(jù)的第一區(qū)塊相同的起始呈現(xiàn)時(shí)間;以及 用于請求所述媒體數(shù)據(jù)的第二區(qū)塊的下載的程序代碼。
24.根據(jù)權(quán)利要求19所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括: 用于選擇媒體數(shù)據(jù)的第二區(qū)塊的程序代碼,其中,所述媒體數(shù)據(jù)的第二區(qū)塊具有起始呈現(xiàn)時(shí)間,并且該起始呈現(xiàn)時(shí)間晚于所述媒體數(shù)據(jù)的第一區(qū)塊的起始呈現(xiàn)時(shí)間;以及 用于請求所述媒體數(shù)據(jù)的第二區(qū)塊的下載的程序代碼。
25.根據(jù)權(quán)利要求24所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,選擇所述媒體數(shù)據(jù)的第二區(qū)塊,使得與所述媒體數(shù)據(jù)的第一區(qū)塊的所述起始呈現(xiàn)時(shí)間相比,所述媒體數(shù)據(jù)的第二區(qū)塊的起始呈現(xiàn)時(shí)間具有可用于所述接收機(jī)的最低差值。
26.根據(jù)權(quán)利要求24所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),其中選擇所述媒體數(shù)據(jù)的第二區(qū)塊,使得其播放速率是在其呈現(xiàn)時(shí)間和所述媒體數(shù)據(jù)的第一區(qū)塊的所述起始呈現(xiàn)時(shí)間之間,具有預(yù)定的最大間隙的最大播放速率。
27.根據(jù)權(quán)利要求24所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括: 用于確定是否無法及時(shí)地完成所述媒體數(shù)據(jù)的第一區(qū)塊的剩余部分的下載以進(jìn)行播放的程序代碼; 用于確定是否能夠及時(shí)地完成所述媒體數(shù)據(jù)的第二區(qū)塊的下載以進(jìn)行播放的程序代碼;以及 用于基于是否無法及時(shí)地完成所述媒體數(shù)據(jù)的第一區(qū)塊的剩余部分的所述下載以進(jìn)行播放以及能夠及時(shí)地完成所述媒體數(shù)據(jù)的第二區(qū)塊的所述下載以進(jìn)行播放,來確定是繼續(xù)針對所述媒體數(shù)據(jù)的第一區(qū)塊的所述發(fā)出的請求還是取消所述發(fā)出的請求并替代地請求所述媒體數(shù)據(jù)的第二區(qū)塊的程序代碼。
28.根據(jù)權(quán)利要求28所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,將所述媒體數(shù)據(jù)的第二區(qū)塊中的所述媒體數(shù)據(jù)的所述播放速率選擇為所述接收機(jī)處所支持的最高播放速率。
29.根據(jù)權(quán)利要求28所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括: 用于請求覆蓋所述呈現(xiàn)緩沖器中已經(jīng)存在的至少一些媒體數(shù)據(jù)的呈現(xiàn)時(shí)間的媒體數(shù)據(jù)的程序代碼; 用于下載所請求的媒體數(shù)據(jù)的程序代碼; 用于播出所請求的媒體數(shù)據(jù)的程序代碼;以及 用于丟棄所述呈現(xiàn)緩沖器中已經(jīng)存在的至少一些相應(yīng)的媒體數(shù)據(jù)的程序代碼。
30.根據(jù)權(quán)利要求29所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,所請求的媒體數(shù)據(jù)的所述播放速率是最大播放速率,所述最大播放速率受制于從所述呈現(xiàn)緩沖器中丟棄的相應(yīng)媒體數(shù)據(jù)的最大呈現(xiàn)持續(xù)時(shí)間的約束。
31.根據(jù)權(quán)利要求29所述的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,對所請求的媒體數(shù)據(jù)進(jìn)行選擇,使得其起始呈現(xiàn)時(shí)間是可用于所述接收機(jī)的最早起始呈現(xiàn)時(shí)間。
【文檔編號】H04L29/06GK104205770SQ201380016035
【公開日】2014年12月10日 申請日期:2013年2月26日 優(yōu)先權(quán)日:2012年2月27日
【發(fā)明者】M·G·盧比, L·C·明德 申請人:高通股份有限公司