用于分組網(wǎng)絡(luò)上的流媒體的按需自適應(yīng)比特率管理的制作方法
【專利摘要】一種用于獲取要通過(guò)媒體網(wǎng)絡(luò)被傳送到終端的媒體數(shù)據(jù)并從該終端接收接收機(jī)報(bào)告以及使用來(lái)自接收機(jī)報(bào)告的信息估計(jì)網(wǎng)絡(luò)狀況的系統(tǒng)和方法。根據(jù)媒體網(wǎng)絡(luò)是否擁塞來(lái)確定數(shù)據(jù)路徑,其中,如果媒體網(wǎng)絡(luò)是擁塞的,則數(shù)據(jù)路徑是壓縮數(shù)據(jù)路徑,或者如果媒體網(wǎng)絡(luò)是不擁塞的,則數(shù)據(jù)路徑是直通數(shù)據(jù)路徑;并且通過(guò)所確定的數(shù)據(jù)路徑來(lái)提供媒體數(shù)據(jù)。
【專利說(shuō)明】用于分組網(wǎng)絡(luò)上的流媒體的按需自適應(yīng)比特率管理
[0001]相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求通過(guò)引用結(jié)合到本文中的2011年6月10日提交的美國(guó)臨時(shí)申請(qǐng)N0.61/495, 949 “On-demand Adaptive Bitrate Management for Streaming Media overPacket Networks” 的權(quán)益。
【背景技術(shù)】
[0002]對(duì)于分組網(wǎng)絡(luò)上的流媒體而言,速率控制是必需的。在通過(guò)容量受限的共享鏈路(比如通過(guò)蜂窩網(wǎng)絡(luò))來(lái)輸送類似于多媒體這樣的帶寬密集型內(nèi)容方面的挑戰(zhàn)是通過(guò)用比特率(bitrate)管理器來(lái)調(diào)整比特率和媒體編碼方案而對(duì)網(wǎng)絡(luò)狀況(condition)的變化進(jìn)行快速響應(yīng)以優(yōu)化用戶的觀看和收聽(tīng)體驗(yàn)。特別地,當(dāng)通過(guò)不能提供必要吞吐量的連接來(lái)傳輸媒體流時(shí),會(huì)出現(xiàn)一些不期望效果。例如,網(wǎng)絡(luò)緩沖器可溢出(overflow),導(dǎo)致引起亂碼(garbled)視頻或音頻重放(playback)的分組丟失,或者媒體播放器緩沖器可下溢(underflow),導(dǎo)致重放停頓(stall)。因此,常常將媒體壓縮以適應(yīng)減小的連接帶寬。
[0003]傳統(tǒng)比特率管理器改變每個(gè)視頻幀,以使得編碼過(guò)程的輸出適合于可用于傳輸?shù)膸?。在此類系統(tǒng)中,由“壓縮”數(shù)據(jù)路徑來(lái)處理所有媒體幀。由于視頻編碼的有狀態(tài)(stateful)性質(zhì)而需要壓縮數(shù)據(jù)路徑。也就是說(shuō),為了將輸出幀編碼,無(wú)論比特率如何,編碼器需要與正被使用的編解碼器(codec)算法相對(duì)應(yīng)的處理狀態(tài)的活(live)歷史。該方法存在的問(wèn)題是需要連續(xù)處理視頻(解碼、再編碼),即使不存在網(wǎng)絡(luò)退化。
【專利附圖】
【附圖說(shuō)明】
[0004]圖1是示例性系統(tǒng)的框圖。
[0005]圖2是例示圖1的示例性系統(tǒng)的實(shí)施例的框圖。
[0006]圖3是例示圖2的示例性系統(tǒng)中的示例性通信流的功能圖。
[0007]圖4A例示指示其中將幀序列中的媒體數(shù)據(jù)從直通(pass-through)數(shù)據(jù)路徑切換至壓縮數(shù)據(jù)路徑的示例性幀序列。
[0008]圖4B例示指示其中將幀序列中的媒體數(shù)據(jù)從壓縮數(shù)據(jù)路徑切換至直通數(shù)據(jù)路徑的示例性幀序列。
[0009]圖5是表示用于選擇對(duì)于媒體數(shù)據(jù)的數(shù)據(jù)路徑的示例性方法的流程圖。
【具體實(shí)施方式】
[0010]現(xiàn)在將對(duì)示例性實(shí)施例進(jìn)行詳細(xì)參考,并在附圖中例示其示例。在盡可能的情況下,貫穿附圖將使用相同的附圖標(biāo)記來(lái)指代相同或類似部件。
[0011]根據(jù)即時(shí)網(wǎng)絡(luò)容量來(lái)調(diào)整流媒體會(huì)話的比特率能夠是通過(guò)無(wú)線分組網(wǎng)絡(luò)來(lái)輸送流媒體所需的關(guān)鍵功能。自適應(yīng)(adaptive)比特率管理是使得能夠向終端的媒體播放器輸送自調(diào)整(self-adjusting)流或偽流會(huì)話到的綜合框架和方法。自適應(yīng)比特率管理特別包括自適應(yīng)比特率控制器,其主動(dòng)監(jiān)視自適應(yīng)比特率管理器與終端之間的當(dāng)前網(wǎng)絡(luò)擁塞水平。如果網(wǎng)絡(luò)是擁塞的,則自適應(yīng)比特率管理器使用壓縮數(shù)據(jù)路徑來(lái)處理數(shù)據(jù)。經(jīng)由壓縮數(shù)據(jù)路徑切換的媒體數(shù)據(jù)的比特率被降低至用以當(dāng)在移動(dòng)設(shè)備的媒體播放器上播放媒體時(shí)避免停頓的水平。
[0012]另外,如果網(wǎng)絡(luò)是不擁塞的,則自適應(yīng)比特率管理器經(jīng)由直通數(shù)據(jù)路徑來(lái)切換媒體數(shù)據(jù)。經(jīng)由直通數(shù)據(jù)路徑切換的媒體數(shù)據(jù)未被壓縮,由此相對(duì)于經(jīng)由壓縮數(shù)據(jù)路徑切換的數(shù)據(jù)而言要求系統(tǒng)資源的最小限度的使用。直通數(shù)據(jù)路徑還因?yàn)槠洳辉诿襟w流中產(chǎn)生任何知覺(jué)偽像(perceptual artifact)而是有利的。
[0013]能夠?qū)⒆赃m應(yīng)比特率管理應(yīng)用于能夠被用于媒體傳輸并提供傳輸進(jìn)度報(bào)告機(jī)制的所有媒體傳輸(或協(xié)議套(protocol suite))。傳輸進(jìn)度報(bào)告能夠作為整體被應(yīng)用于多媒體會(huì)話或單獨(dú)的多媒體流(音頻、視頻、文本等)。自適應(yīng)比特率管理器能夠包括這樣的能力:向發(fā)送者提供將媒體時(shí)間信息映射到由接收器接收到的字節(jié)的方式,如在RTCP的情況下明示的那樣或者如在通過(guò)ACK分組的TCP情況下暗示的那樣。
[0014]圖1是示例性系統(tǒng)的框圖。示例性系統(tǒng)100能夠是通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù)分組的任何類型的系統(tǒng)。例如,示例性系統(tǒng)能夠包括通過(guò)因特網(wǎng)訪問(wèn)來(lái)自內(nèi)容服務(wù)器的流媒體數(shù)據(jù)的移動(dòng)終端。示例性系統(tǒng)能夠特別包括終端102、網(wǎng)關(guān)104、一個(gè)或多個(gè)網(wǎng)絡(luò)106和110、自適應(yīng)比特率管理器108以及一個(gè)或多個(gè)內(nèi)容服務(wù)器112-114。
[0015]終端102是硬件部件,其包括允許終端102傳送和接收與流媒體相對(duì)應(yīng)的分組的軟件應(yīng)用。終端102提供顯示器和一個(gè)或多個(gè)軟件應(yīng)用,諸如媒體播放器,以便向終端102的用戶顯示流媒體。此外,終端102具有從因特網(wǎng)請(qǐng)求和接收諸如流媒體的數(shù)據(jù)分組之類的數(shù)據(jù)分組的能力。例如,終端102能夠用向內(nèi)容服務(wù)器112-114發(fā)送請(qǐng)求數(shù)據(jù)以用于根據(jù)網(wǎng)頁(yè)的URL獲取其特定文件或?qū)ο髷?shù)據(jù),并且網(wǎng)頁(yè)的內(nèi)容服務(wù)器能夠查詢數(shù)據(jù)庫(kù)中的對(duì)象數(shù)據(jù)并將相應(yīng)的響應(yīng)數(shù)據(jù)發(fā)送到終端102。在一些實(shí)施例中,可通過(guò)自適應(yīng)比特率管理器108來(lái)路由響應(yīng)數(shù)據(jù)。
[0016]盡管終端102能夠是有線終端,但一些實(shí)施例可優(yōu)選使用移動(dòng)終端,因?yàn)橐苿?dòng)終端更可能在將更多地受益于自適應(yīng)比特率管理器的網(wǎng)絡(luò)中。該網(wǎng)絡(luò)連接與有線網(wǎng)絡(luò)連接相比趨向于不那么穩(wěn)定,這是因?yàn)楸热缫苿?dòng)終端的位置變化,在其中移動(dòng)終端與網(wǎng)絡(luò)之間的數(shù)據(jù)速率傳輸能夠波動(dòng),且一些情況下這種波動(dòng)相當(dāng)劇烈。
[0017]網(wǎng)關(guān)104是將在一類型的網(wǎng)絡(luò)中提供的格式化數(shù)據(jù)轉(zhuǎn)換成另一類型的網(wǎng)絡(luò)所需的特定格式的設(shè)備。網(wǎng)關(guān)104例如可以是服務(wù)器、路由器、防火墻服務(wù)器、主機(jī)或代理服務(wù)器。網(wǎng)關(guān)104具有這樣的能力:將從終端102接收到的信號(hào)變換成網(wǎng)絡(luò)106能夠理解的信號(hào),且反之亦然。網(wǎng)關(guān)104可以能夠處理音頻、視頻以及T.120單獨(dú)或以任何組合形式的傳輸,并且能夠全雙工媒體轉(zhuǎn)換(translation)。
[0018]網(wǎng)絡(luò)106和110能夠包括廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)或適合于諸如因特網(wǎng)通信這樣的分組型通信的無(wú)線網(wǎng)絡(luò)的任何組合。此外,網(wǎng)絡(luò)106和110能夠包括用于在將分組傳送到其預(yù)定目的地之前存儲(chǔ)該分組的緩沖器。
[0019]自適應(yīng)比特率管理器108是提供網(wǎng)關(guān)104與內(nèi)容服務(wù)器112-114之間的通信的服務(wù)器。自適應(yīng)比特率管理器108能夠通過(guò)根據(jù)自適應(yīng)比特率管理器108與終端102之間的連接,即媒體網(wǎng)絡(luò),來(lái)調(diào)整流媒體比特率,從而優(yōu)化性能。自適應(yīng)比特率管理器108包括壓縮路徑和直通路徑兩者。當(dāng)網(wǎng)絡(luò)106擁塞時(shí),使用壓縮路徑。自適應(yīng)比特率管理器108如何確定網(wǎng)絡(luò)106是否擁塞在以下會(huì)詳細(xì)論述。否則,直通數(shù)據(jù)路徑被用來(lái)在不壓縮的情況下傳輸接收到的媒體。在一些實(shí)施例中,被提供給直通數(shù)據(jù)路徑的數(shù)據(jù)可經(jīng)受無(wú)損壓縮。例如,可應(yīng)用無(wú)損壓縮來(lái)將媒體流調(diào)整至一重放速率。以下會(huì)詳細(xì)論述壓縮路徑和直通路徑。
[0020]自適應(yīng)比特率管理器108能夠具有一個(gè)或多個(gè)處理器和用于存儲(chǔ)程序指令的至少一個(gè)存儲(chǔ)器。處理器能夠是單個(gè)或多個(gè)微處理器、現(xiàn)場(chǎng)可編程門陣列(FPGA)或能夠執(zhí)行特定指令集的數(shù)字信號(hào)處理器(DSP)。能夠?qū)⒂?jì)算機(jī)可讀指令存儲(chǔ)在有形非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)上,諸如軟盤、硬盤、CD-ROM (壓縮盤-只讀存儲(chǔ)器)以及MO (磁光盤)、DVD-R0M (數(shù)字多功能盤-只讀存儲(chǔ)器)、DVD RAM (數(shù)字多功能盤-隨機(jī)存取存儲(chǔ)器)或半導(dǎo)體存儲(chǔ)器。備選地,能夠用硬件部件或硬件與軟件的組合來(lái)實(shí)現(xiàn)所述方法,例如,比如ASIC、專用計(jì)算機(jī)或通用計(jì)算機(jī)。
[0021]內(nèi)容服務(wù)器112-114是這樣的服務(wù)器:其從終端102接收請(qǐng)求數(shù)據(jù),相應(yīng)地處理該請(qǐng)求數(shù)據(jù)并在一些實(shí)施例中通過(guò)自適應(yīng)比特率管理器108向終端102返回響應(yīng)數(shù)據(jù)。例如,內(nèi)容服務(wù)器112-114能夠是web服務(wù)器、企業(yè)服務(wù)器或任何其他類型的服務(wù)器。內(nèi)容服務(wù)器112-114能夠是負(fù)責(zé)從終端102接受請(qǐng)求(例如,HTTP、RTSP或能夠發(fā)起媒體會(huì)話的其他協(xié)議)并用流媒體來(lái)服務(wù)終端102的計(jì)算機(jī)或計(jì)算機(jī)程序。
[0022]圖2是例示圖1的示例性系統(tǒng)的實(shí)施例的框圖。終端102可特別包括媒體播放器202和緩沖器204。自適應(yīng)比特率管理器108能夠特別地包括自適應(yīng)比特率控制器206、緩沖器208、壓縮數(shù)據(jù)路徑210、媒體分組化(packetization)模塊212、直通數(shù)據(jù)路徑214以及媒體去分組化(de-packetization)模塊216。
[0023]媒體播放器202是用于播放包括視頻和/或音頻媒體文件的多媒體文件(諸如流媒體)的計(jì)算機(jī)軟件。媒體播放器202的此類流行示例能夠包括Microsoft Windows媒體播放器、Apple Quicktime播放器、RealOne播放器以及用于web嵌入式視頻的Adobe Flash插件。在一些實(shí)施例中,媒體播放器202使用編解碼器將流視頻或音頻解壓縮并將其在終端102的顯示器上重放。能夠?qū)⒚襟w播放器202用作獨(dú)立應(yīng)用或嵌入網(wǎng)頁(yè)中以創(chuàng)建與HTML內(nèi)容相交互的視頻應(yīng)用。此外,媒體播放器202能夠以媒體接收器報(bào)告的形式向自適應(yīng)比特率管理器108提供關(guān)于媒體接收的反饋。媒體接收器報(bào)告能夠包括關(guān)于用于RTP流會(huì)話的RTCP分組的信息以及關(guān)于用于偽流會(huì)話的TCP ACK的信息。
[0024]緩沖器204 (也稱為終端緩沖器204)是在將多媒體分組提供給媒體播放器202之前臨時(shí)存儲(chǔ)該多媒體分組的軟件程序和/或硬件設(shè)備。在一些實(shí)施例中,緩沖器204經(jīng)由網(wǎng)絡(luò)106從自適應(yīng)比特率管理器108接收多媒體分組。在一些實(shí)施例中,緩沖器204從除自適應(yīng)比特率管理器108之外的設(shè)備接收多媒體分組。在接收多媒體分組(或者媒體剪輯(media clip)的部分,如果是偽流的話)之后,緩沖器204能夠?qū)⒋鎯?chǔ)的多媒體分組提供給媒體播放器202。盡管圖2例示終端緩沖器204和媒體播放器202是分立部件,但本領(lǐng)域技術(shù)人員將領(lǐng)會(huì)到終端緩沖器204能夠是媒體播放器202的一部分。此外,盡管圖2僅例示單個(gè)緩沖器,但本領(lǐng)域技術(shù)人員將領(lǐng)會(huì)到能夠存在多個(gè)緩沖器,例如用于音頻媒體分組的一個(gè)或多個(gè)緩沖器和用于視頻媒體分組的一個(gè)或多個(gè)緩沖器。
[0025]直通數(shù)據(jù)路徑214是將媒體去分組化模塊216耦合到媒體分組化模塊212的傳輸通道。被切換到直通數(shù)據(jù)路徑214的媒體數(shù)據(jù)在不經(jīng)受任何壓縮的情況下被直接傳遞至媒體分組化模塊212??蓪⒚襟w數(shù)據(jù)從媒體分組化模塊212切換到直通數(shù)據(jù)路徑214。在一些實(shí)施例中,可將媒體數(shù)據(jù)從高速緩存器(未示出)切換到直通數(shù)據(jù)路徑214。
[0026]另外,在未示出的一些實(shí)施例中,當(dāng)未檢測(cè)到網(wǎng)絡(luò)擁塞時(shí),可將媒體數(shù)據(jù)直接從緩沖器208傳輸至直通數(shù)據(jù)路徑214,并且然后傳送到終端102。在本實(shí)施例中,當(dāng)不存在網(wǎng)絡(luò)擁塞時(shí),可將自適應(yīng)比特率管理器108配置成使媒體數(shù)據(jù)繞過(guò)(bypass)媒體去分組化模塊216和媒體分組化模塊212。但是一旦檢測(cè)到網(wǎng)絡(luò)擁塞,就可將自適應(yīng)比特率管理器108配置成通過(guò)媒體去分組化模塊216和媒體分組化模塊212來(lái)提供媒體數(shù)據(jù)。
[0027]壓縮數(shù)據(jù)路徑210包括音頻解碼器218、視頻解碼器220以及可變比特率編碼器222。當(dāng)媒體數(shù)據(jù)的比特率高于網(wǎng)絡(luò)106的可用帶寬時(shí),選擇壓縮數(shù)據(jù)路徑210。壓縮數(shù)據(jù)路徑210改變媒體數(shù)據(jù)的比特率,以使得其與由自適應(yīng)比特率控制器206提供的最佳會(huì)話比特率匹配。壓縮數(shù)據(jù)路徑210被配置成將媒體數(shù)據(jù)以最佳會(huì)話比特率提供給媒體分組化模塊212??蓪⒚襟w數(shù)據(jù)從媒體去分組化模塊216切換到壓縮數(shù)據(jù)路徑210。另外,在一些實(shí)施例中,可將媒體數(shù)據(jù)從高速緩存器(未示出)切換至壓縮數(shù)據(jù)路徑210。
[0028]自適應(yīng)比特率控制器206是從終端102周期性地接收諸如RTCP接收器報(bào)告或TCPACK之類的媒體接收器報(bào)告的軟件程序和/或硬件設(shè)備。自適應(yīng)比特率控制器206被配置成控制是經(jīng)由直通數(shù)據(jù)路徑214還是壓縮數(shù)據(jù)路徑210來(lái)切換數(shù)據(jù)。在自適應(yīng)比特率控制器206進(jìn)行路徑確定之后,其被配置成指令媒體去分組化模塊216將媒體數(shù)據(jù)切換至適當(dāng)?shù)臄?shù)據(jù)路徑。如下面詳細(xì)地論述的,自適應(yīng)比特率控制器206被配置成計(jì)算可在路徑確定過(guò)程中使用的一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量(estimator)。
[0029]自適應(yīng)比特率控制器206被配置成提供要在下一時(shí)段期間用于對(duì)待發(fā)送給終端102的多媒體數(shù)據(jù)進(jìn)行編碼的最佳會(huì)話比特率。如果自適應(yīng)比特率控制器206確定應(yīng)經(jīng)由壓縮數(shù)據(jù)路徑210來(lái)切換媒體數(shù)據(jù),則將自適應(yīng)比特率控制器206配置成提供最佳會(huì)話比特率和編碼參數(shù)以供在壓縮數(shù)據(jù)路徑210中使用。在一些實(shí)施例中,自適應(yīng)比特率控制器206包括用于存儲(chǔ)當(dāng)前和先前媒體接收器報(bào)告的緩沖器。為了計(jì)算最佳會(huì)話比特率,自適應(yīng)比特率控制器206使用一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量以便估計(jì)流媒體網(wǎng)絡(luò)的狀態(tài)并計(jì)算要在下一報(bào)告間隔中使用的最佳會(huì)話比特率。例如,這些網(wǎng)絡(luò)狀態(tài)估計(jì)量能夠估計(jì)媒體渡越時(shí)間(time in transit:MTT)、在終端102處接收到的比特率、往返時(shí)間估計(jì)(RTTE)以及分組丟失計(jì)數(shù)。自適應(yīng)比特率控制器206能夠使用估計(jì)量的歷史和統(tǒng)計(jì)來(lái)實(shí)現(xiàn)不同的控制算法以計(jì)算最佳會(huì)話比特率。
[0030]網(wǎng)絡(luò)狀態(tài)估計(jì)量能夠提供用于估計(jì)在任何時(shí)間點(diǎn)網(wǎng)絡(luò)有多擁塞的信息。如下面參考圖3所論述的,網(wǎng)絡(luò)狀態(tài)估計(jì)量可被自適應(yīng)比特率控制器206用來(lái)確定是應(yīng)經(jīng)由壓縮數(shù)據(jù)路徑210還是直通數(shù)據(jù)路徑214來(lái)切換媒體數(shù)據(jù)。能夠使用用于感測(cè)網(wǎng)絡(luò)擁塞的其他方法來(lái)判定何時(shí)在這些數(shù)據(jù)路徑之間進(jìn)行切換。在一些實(shí)施例中,還可將自適應(yīng)比特率控制器206配置成在確定將選擇哪個(gè)數(shù)據(jù)路徑時(shí)考慮網(wǎng)絡(luò)估計(jì)量隨時(shí)間推移的變化。
[0031]緩沖器208是在將媒體數(shù)據(jù)提供給媒體去分組化模塊216之前臨時(shí)存儲(chǔ)該媒體數(shù)據(jù)的軟件程序和/或硬件設(shè)備。在一些實(shí)施例中,緩沖器208經(jīng)由網(wǎng)絡(luò)110從一個(gè)或多個(gè)內(nèi)容服務(wù)器112-114接收媒體數(shù)據(jù)。在一些實(shí)施例中,緩沖器208從除內(nèi)容服務(wù)器112-114之外的設(shè)備接收媒體數(shù)據(jù)。在一些實(shí)施例中,緩沖器208能夠包括多路分配器(未示出)以在將媒體中繼到可變比特率編碼器222之前分離音頻和視頻軌道(track)。
[0032]多媒體去分組化模塊216是從緩沖器208接收媒體數(shù)據(jù)的軟件程序和/或硬件設(shè)備。媒體去分組化模塊216被配置成將與以分組形式被接收到的媒體數(shù)據(jù)相關(guān)聯(lián)的分組以適當(dāng)順序聚合。媒體去分組化模塊216被配置成根據(jù)從自適應(yīng)比特率控制器206接收到的控制指令將媒體數(shù)據(jù)輸出到壓縮數(shù)據(jù)路徑210或直通數(shù)據(jù)路徑214。在一些實(shí)施例中,媒體去分組化模塊216被配置成監(jiān)視媒體數(shù)據(jù)的幀類型。并且接收將媒體數(shù)據(jù)切換至不同的數(shù)據(jù)路徑的命令之后,在關(guān)鍵幀(例如,幀內(nèi)編碼幀(Intra Frame))自動(dòng)切換媒體數(shù)據(jù),如以下詳細(xì)論述的那樣。
[0033]可變比特率編碼器222是從自適應(yīng)比特率控制器206接收最佳會(huì)話比特率數(shù)據(jù)、編碼參數(shù)或兩者并向媒體分組化模塊212提供被以與由自適應(yīng)比特率控制器206提供的最佳會(huì)話比特率相匹配的比特率進(jìn)行編碼的音頻和/或視頻數(shù)據(jù)的軟件程序和/或硬件設(shè)備??勺儽忍芈示幋a器能夠特別地包括比特率分離器(splitter) 224、音頻編碼器226、視頻編碼8以及對(duì)于一些實(shí)施例而言還包括巾貞丟棄器(dropper) 230。
[0034]比特率分離器224是從自適應(yīng)比特率控制器206接收最佳會(huì)話比特率數(shù)據(jù)并分配當(dāng)在下一間隔期間對(duì)音頻和視頻媒體數(shù)據(jù)進(jìn)行編碼時(shí)要被使用的最佳比特率的軟件程序和/或硬件設(shè)備。該分配使得用于所有軌道的比特率的總和在被組合時(shí)能夠基本上等于由自適應(yīng)比特率控制器206所指定的最佳會(huì)話比特率。例如,該分配可基于預(yù)定分配、用戶偏好、最佳性能數(shù)據(jù)、相比于另一數(shù)據(jù)類型而言為一數(shù)據(jù)類型賦予特權(quán)(privileging)、要提供的音頻和視頻數(shù)據(jù)的量和/或上述各項(xiàng)的任何組合。例如,比特率分離器224可以如下方式對(duì)音頻質(zhì)量賦予特權(quán):如果指定了減小的比特率,則比特率分離器224能夠首先減小視頻比特率并盡可能多地推遲減小音頻比特率。
[0035]音頻編碼器226和視頻編碼器228是能夠從比特率分離器224 (或直接地從自適應(yīng)比特率控制器206)接收其各自的比特率分配并提供被編碼成在下一報(bào)告間隔與其各自的比特率分配的比特率相匹配的輸出(outgoing)媒體數(shù)據(jù)的軟件程序和/或硬件設(shè)備。音頻編碼器226和視頻編碼器228都能夠從緩沖器208接收其各自的媒體數(shù)據(jù)并根據(jù)來(lái)自比特率分離器224的其各自比特率分配來(lái)輸出該媒體數(shù)據(jù)。在已針對(duì)音頻和視頻兩者確定比特率之后,每個(gè)編碼器的責(zé)任是在相應(yīng)的媒體軌道中輸送最大質(zhì)量。例如,音頻編碼器226能夠通過(guò)調(diào)整譜量化和截止頻率來(lái)產(chǎn)生可變比特率。此外,視頻編碼器228能夠例如通過(guò)調(diào)整離散余弦變換(DCT)系數(shù)量化或通過(guò)引入幀丟棄來(lái)產(chǎn)生可變比特率。在必要時(shí),能夠由幀丟棄器230來(lái)執(zhí)行該幀丟棄。
[0036]幀丟棄器230是能夠在確定期望比特率小于質(zhì)量閾值之后被觸發(fā)的軟件程序和/或硬件設(shè)備。該閾值能夠是編解碼器相關(guān)的,并且表示在其以下較粗量化的使用會(huì)導(dǎo)致圖像中的不可容忍偽像的比特率值。幀丟棄器230能夠基于期望視頻比特率和正在由視頻編碼器228產(chǎn)生的比特率來(lái)動(dòng)態(tài)地確定幀丟棄率。為了補(bǔ)償編碼器輸出端處的視頻比特率的固有比特率波動(dòng),幀丟棄器230能夠通過(guò)使用覆蓋最近編碼幀的字節(jié)大小歷史的滑動(dòng)窗口來(lái)動(dòng)態(tài)地更新丟棄率。
[0037]媒體分組化模塊212是從壓縮數(shù)據(jù)路徑210或直通數(shù)據(jù)路徑214接收媒體數(shù)據(jù)并將此數(shù)據(jù)轉(zhuǎn)換成分組格式以輸送流會(huì)話的軟件程序和/或硬件設(shè)備。媒體分組化模塊212能夠?yàn)閷⑼ㄟ^(guò)單獨(dú)網(wǎng)絡(luò)信道來(lái)傳輸?shù)囊曨l和音頻數(shù)據(jù)創(chuàng)建單獨(dú)的分組,或者在單個(gè)媒體流中將音頻和視頻組合。除載送音頻和媒體數(shù)據(jù)之外,媒體分組還能夠特別地包括用于標(biāo)識(shí)內(nèi)容類型的有效載荷型標(biāo)識(shí)符、分組序列號(hào)、用于允許同步化和抖動(dòng)(jitter)計(jì)算的時(shí)間戳以及輸送監(jiān)視數(shù)據(jù)。此類數(shù)據(jù)稍后能夠在自適應(yīng)比特率控制器206從終端102接收相應(yīng)的媒體接收器報(bào)告時(shí)幫助自適應(yīng)比特率控制器206確定由網(wǎng)絡(luò)提供的服務(wù)質(zhì)量。當(dāng)將此媒體數(shù)據(jù)轉(zhuǎn)換成分組格式時(shí),媒體分組化216通過(guò)網(wǎng)絡(luò)106的網(wǎng)絡(luò)緩沖器232將媒體數(shù)據(jù)傳送到終端102的終端緩沖器204。另外,自適應(yīng)比特率管理器108將已發(fā)送媒體分組的歷史保存在音頻和視頻軌道中。該歷史數(shù)據(jù)能夠特別地包括每個(gè)分組被發(fā)送的時(shí)間、序列號(hào)以及每個(gè)媒體分組的大小。
[0038]圖3是例示圖2的系統(tǒng)中的示例性通信流的功能圖。出于解釋該示例性實(shí)施例的目的,假設(shè)終端102已接收到所請(qǐng)求媒體數(shù)據(jù)分組的媒體數(shù)據(jù)中的至少一些。此外,假設(shè)媒體數(shù)據(jù)分組包括音頻和視頻媒體數(shù)據(jù)兩者。在接收分組之后,媒體播放器202向自適應(yīng)比特率管理器108傳送(305)媒體接收器報(bào)告。
[0039]媒體接收器報(bào)告能夠是例如RTCP接收器報(bào)告或者在偽流的情況下是TCP ACK。RTCP是用于提供對(duì)于RTP流的質(zhì)量控制信息的協(xié)議,諸如由自適應(yīng)比特率管理器108的媒體分組化216提供的傳輸。更具體地,RTCP能夠在多媒體數(shù)據(jù)的輸送和封裝方面與自適應(yīng)比特率管理器108的媒體分組化模塊212合作。在一些實(shí)施例中,媒體播放器202周期性地傳送RTCP接收器報(bào)告。RTCP接收器報(bào)告能夠提供關(guān)于正在由媒體分組化216提供的服務(wù)質(zhì)量的反饋。
[0040]用于因特網(wǎng)上的流媒體的最廣泛使用的方法是由傳輸控制協(xié)議(TCP)載送的基于HTTP的偽流。TCP實(shí)現(xiàn)其自己的一般(非媒體特定)分組化協(xié)議。TCP在內(nèi)部使用ACK來(lái)提供關(guān)于接收到的TCP分組的反饋并因此提供傳輸流控制。在偽流的情況下,使用TPC ACK分組來(lái)更新先前所述的關(guān)鍵網(wǎng)絡(luò)估計(jì)量。
[0041]盡管使用TCP和RTP/RTCP作為示例性實(shí)施例來(lái)解釋自適應(yīng)比特率控制方法,但本領(lǐng)域技術(shù)人員會(huì)領(lǐng)會(huì)到這種自適應(yīng)比特率控制方法可應(yīng)用于實(shí)現(xiàn)具有排序和定時(shí)信息的媒體傳輸和具有關(guān)于接收到的分組的信息(覆蓋排序、定時(shí)、丟失率等)的媒體傳輸反饋的功能的任何協(xié)議。
`[0042]此外,在一些流實(shí)施例中,媒體接收器報(bào)告能夠是具有音頻和視頻報(bào)告數(shù)據(jù)兩者的單個(gè)報(bào)告(當(dāng)將音頻和視頻復(fù)用成單個(gè)流時(shí)),或者能夠被分離成多個(gè)報(bào)告(例如,諸如在其中RTP在單獨(dú)的流中載送音頻和視頻的RTCP情況下),例如,諸如用于音頻報(bào)告數(shù)據(jù)的接收器報(bào)告和用于視頻報(bào)告數(shù)據(jù)的另一接收器報(bào)告。媒體接收器報(bào)告數(shù)據(jù)能夠特別地包括關(guān)于終端102處最近接收到的媒體分組的序列號(hào)的數(shù)據(jù)、在媒體接收器報(bào)告中報(bào)告的由終端102接收的最后分組的時(shí)間戳、從該報(bào)告發(fā)送的比特?cái)?shù)、往返時(shí)間以及丟失分組的數(shù)目。
[0043]在接收一個(gè)或多個(gè)接收器報(bào)告之后,自適應(yīng)比特率控制器206能夠估計(jì)網(wǎng)絡(luò)的狀態(tài)以便確定是否在下一時(shí)段內(nèi)更新會(huì)話比特率。自適應(yīng)比特率控制器206能夠?qū)⑿陆邮盏慕邮掌鲌?bào)告保存在累積歷史中并記錄一個(gè)或多個(gè)分組被接收的時(shí)間。為了估計(jì)網(wǎng)絡(luò)的狀態(tài),自適應(yīng)比特率控制器206能夠?qū)?lái)自接收到的媒體接收器報(bào)告的數(shù)據(jù)、由自適應(yīng)比特率管理器108存儲(chǔ)的先前接收到的接收器報(bào)告以及由自適應(yīng)比特率管理器108存儲(chǔ)的已發(fā)送媒體分組的歷史進(jìn)行組合。自適應(yīng)比特率控制器206能夠通過(guò)使用網(wǎng)絡(luò)狀態(tài)估計(jì)量針對(duì)流和偽流會(huì)話兩者估計(jì)以下示例性數(shù)據(jù):
?媒體渡越時(shí)間(MTT),被計(jì)算為最近被發(fā)送媒體分組的時(shí)間戳與由在接收器報(bào)告中報(bào)告的播放器接收到的最后媒體分組的時(shí)間戳之間的差。對(duì)于偽流會(huì)話,自適應(yīng)比特率管理器108執(zhí)行附加步驟以計(jì)算MTT。例如,自適應(yīng)比特率管理器108保持發(fā)送到播放器的媒體剪輯中的序列號(hào)和時(shí)間戳的表格。當(dāng)接收到ACK時(shí),自適應(yīng)比特率管理器108能夠檢索對(duì)應(yīng)于ACK中的字節(jié)序列號(hào)的時(shí)間戳。使用該時(shí)間戳,自適應(yīng)比特率管理器能夠計(jì)算MTT ;
?接收到的比特率(“BRR”),被計(jì)算為:在當(dāng)前和先前接收到的接收器報(bào)告之間接收到的比特,除以在這兩個(gè)接收器報(bào)告之間經(jīng)歷的時(shí)間。通過(guò)對(duì)接收器報(bào)告中的序列號(hào)和存儲(chǔ)于自適應(yīng)比特率管理器108處的已發(fā)送字節(jié)的歷史進(jìn)行交叉參考來(lái)計(jì)算在接收器報(bào)告之間接收到的比特;
?往返時(shí)間估計(jì)(“RTTE”),其能夠通過(guò)對(duì)存儲(chǔ)于自適應(yīng)比特率管理器108處的多個(gè)較低MTT值求平均來(lái)獲得。例如,可以通過(guò)對(duì)用于該流媒體網(wǎng)絡(luò)的所有存儲(chǔ)MTT值之中最低的3個(gè)MTT值求平均來(lái)計(jì)算RTTE。此外,自適應(yīng)比特率管理器108能夠根據(jù)RTCP發(fā)送者報(bào)告內(nèi)的數(shù)據(jù)來(lái)計(jì)算RTTE。盡管例示了這些示例性實(shí)施例,但能夠使用任何方法來(lái)估計(jì)對(duì)于流媒體網(wǎng)絡(luò)的往返時(shí)間;
?分組丟失計(jì)數(shù)(“PLC”),直接從媒體接收器報(bào)告捕捉。
[0044]自適應(yīng)比特率控制器206能夠使用這些一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量來(lái)確定用于下一間隔的所估計(jì)的網(wǎng)絡(luò)擁塞水平和會(huì)話比特率。如果網(wǎng)絡(luò)具有可忽略或低水平的網(wǎng)絡(luò)擁塞,則將自適應(yīng)比特率控制器206配置成指令媒體去分組化模塊216經(jīng)由直通數(shù)據(jù)路徑214來(lái)切換媒體數(shù)據(jù)。同樣地,如果網(wǎng)絡(luò)是擁塞的,則將自適應(yīng)比特率控制器206配置成指令去分組化模塊經(jīng)由壓縮數(shù)據(jù)路徑210來(lái)切換媒體數(shù)據(jù)。
[0045]自適應(yīng)比特率控制器206被配置成允許從下一關(guān)鍵幀開(kāi)始在壓縮數(shù)據(jù)路徑210與直通數(shù)據(jù)路徑214之間切換媒體數(shù)據(jù),或者反之亦然。關(guān)鍵幀是在該處將解碼器或編碼器的狀態(tài)重置的特定類型的媒體幀。該關(guān)鍵幀(幀內(nèi)編碼幀)是存儲(chǔ)全圖像的媒體幀。數(shù)據(jù)流中的其他幀可包括例如預(yù)測(cè)幀。預(yù)測(cè)幀存儲(chǔ) 從一個(gè)幀到下一個(gè)發(fā)生的變化,因此大大地減少所存儲(chǔ)的信息量。
[0046]在非關(guān)鍵幀(例如,預(yù)測(cè)幀)處將媒體數(shù)據(jù)切換至不同的數(shù)據(jù)路徑可導(dǎo)致媒體數(shù)據(jù)的破壞。因此,自適應(yīng)比特率控制器206被配置成監(jiān)視原始媒體數(shù)據(jù)流(例如,從內(nèi)容服務(wù)器112-114到達(dá)的)的幀類型。
[0047]備選地,媒體去分組化模塊216或一些其他模塊被配置成監(jiān)視原始媒體流的幀類型。在接收到將媒體數(shù)據(jù)切換至不同數(shù)據(jù)路徑的命令之后,媒體去分組化模塊216在下一關(guān)鍵幀處自動(dòng)地切換媒體數(shù)據(jù)。
[0048]圖4A例示指示其中將媒體數(shù)據(jù)從直通數(shù)據(jù)路徑214切換至壓縮數(shù)據(jù)路徑210的示例性幀序列。幀序列示出關(guān)鍵幀I1及其相關(guān)聯(lián)的預(yù)測(cè)幀P2-P7以及關(guān)鍵幀I8及其相關(guān)聯(lián)的預(yù)測(cè)幀匕-PM。自適應(yīng)比特率控制器206在P4處檢測(cè)到網(wǎng)絡(luò)擁塞,然而,由于下一幀不是關(guān)鍵幀,所以直至I8之前不會(huì)經(jīng)由壓縮數(shù)據(jù)路徑210來(lái)切換媒體數(shù)據(jù)。同樣地,圖4B例示指示其中將媒體數(shù)據(jù)從壓縮數(shù)據(jù)路徑210切換至直通數(shù)據(jù)路徑214的示例性幀序列。自適應(yīng)比特率控制器206在P4處檢測(cè)到網(wǎng)絡(luò)擁塞已清除,然而,由于下一幀不是關(guān)鍵幀,所以直至I8之前不會(huì)經(jīng)由直通數(shù)據(jù)路徑214來(lái)切換媒體數(shù)據(jù)。
[0049]返回參考圖3,自適應(yīng)比特率控制器206通過(guò)將一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量與相應(yīng)的狀態(tài)閾值相比較來(lái)估計(jì)網(wǎng)絡(luò)擁塞以及因此媒體路徑選擇。該狀態(tài)閾值值間接地確定自適應(yīng)比特率控制器206何時(shí)指令媒體去分組化模塊(310)經(jīng)由壓縮數(shù)據(jù)路徑210來(lái)切換媒體(315)或經(jīng)由直通數(shù)據(jù)路徑214來(lái)切換數(shù)據(jù)(320)??捎晒芾韱T來(lái)設(shè)定狀態(tài)閾值的值。在一些實(shí)施例中,可由自適應(yīng)比特率控制器206來(lái)自動(dòng)地確定狀態(tài)閾值的值。當(dāng)與其相應(yīng)的網(wǎng)絡(luò)狀態(tài)閾值相比較時(shí),每個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量都可用來(lái)確定經(jīng)由哪個(gè)數(shù)據(jù)路徑來(lái)切換媒體數(shù)據(jù)。例如,可將MTT與MTT狀態(tài)閾值相比較,并且如果MTT在MTT狀態(tài)閾值以下,則可將自適應(yīng)比特率控制器206配置成指令媒體去分組化模塊216從下一關(guān)鍵幀開(kāi)始經(jīng)由直通數(shù)據(jù)路徑214來(lái)切換要被傳送到終端102的媒體數(shù)據(jù)。如果MTT在MTT狀態(tài)閾值以上,則可將自適應(yīng)比特率控制器206配置成指令媒體去分組化模塊216從下一關(guān)鍵幀開(kāi)始經(jīng)由壓縮數(shù)據(jù)路徑210來(lái)切換媒體數(shù)據(jù)。類似地,RTTE、PLC以及BRR網(wǎng)絡(luò)狀態(tài)估計(jì)量具有各自的RTTE.BRR以及PLC狀態(tài)閾值,其可用來(lái)確定是經(jīng)由壓縮數(shù)據(jù)路徑210還是經(jīng)由直通數(shù)據(jù)路徑214來(lái)切換媒體。
[0050]在一些實(shí)施例中,自適應(yīng)比特率控制器206在確定網(wǎng)絡(luò)擁塞時(shí)考慮網(wǎng)絡(luò)狀態(tài)估計(jì)量如何隨時(shí)間而變。例如,能夠?qū)⒆赃m應(yīng)比特率控制器206配置成:如果MTT值已隨時(shí)間推移而減小,則指令去分組化模塊221將媒體數(shù)據(jù)從下一關(guān)鍵幀開(kāi)始切換至直通數(shù)據(jù)路徑214。類似地,能夠?qū)⒆赃m應(yīng)比特率控制器206配置成:如果MTT值已隨時(shí)間推移而增加,則指令去分組化模塊221將媒體數(shù)據(jù)從下一關(guān)鍵幀開(kāi)始切換至壓縮數(shù)據(jù)路徑226。
[0051]在一些實(shí)施例中,自適應(yīng)比特率控制器206基于一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量隨時(shí)間推移的變化和一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)閾值而指令媒體去分組化模塊216。例如,能夠?qū)⒆赃m應(yīng)比特率控制器206配置成:如果MTT值已隨時(shí)間推移而減小且MTT值在MTT狀態(tài)閾值以下,則指令去分組化模塊221從下一關(guān)鍵幀開(kāi)始將媒體數(shù)據(jù)切換至直通數(shù)據(jù)路徑214。類似地,能夠?qū)⒆赃m應(yīng)比特率控制器206配置成:如果MTT值已隨時(shí)間推移而增加且MTT值在MTT狀態(tài)閾值以上,則指令去分組化模塊221將媒體數(shù)據(jù)從下一關(guān)鍵幀開(kāi)始切換至壓縮數(shù)據(jù)路徑226。
[0052]在一些實(shí)施例中,自適應(yīng)比特率控制器206可在壓縮數(shù)據(jù)路徑210與直通數(shù)據(jù)路徑214之間進(jìn)行選擇,無(wú)論媒體去分組化模塊216從哪里接收媒體數(shù)據(jù)。例如,媒體去分組化模塊216能夠直接從諸如內(nèi)容服務(wù)器112-114之類的HTTP服務(wù)器接收媒體。備選地,媒體去分組化模塊216能夠從高速緩存器讀取媒體數(shù)據(jù),其中,正被接收的媒體數(shù)據(jù)已被外部過(guò)程壓縮。在這種情況下,可將自適應(yīng)比特率管理器108配置成在最小的資源利用情況下經(jīng)由直通數(shù)據(jù)路徑214將已壓縮媒體數(shù)據(jù)輸送至媒體播放器。如果網(wǎng)絡(luò)狀況退化,則自適應(yīng)比特率控制器206能夠在適當(dāng)?shù)臅r(shí)間切換至壓縮數(shù)據(jù)路徑210以進(jìn)一步降低媒體比特率并避免重放停頓。因此,可根據(jù)需要使用用來(lái)壓縮視頻的資源來(lái)抵消退化的網(wǎng)絡(luò)狀況。
[0053]當(dāng)通過(guò)壓縮數(shù)據(jù)路徑210來(lái)切換數(shù)據(jù)時(shí),可使用在例如美國(guó)專利N0.7,991,904、美國(guó)專利申請(qǐng)公開(kāi)N0.2011/0283012、美國(guó)專利N0.7,987, 285或美國(guó)專利申請(qǐng)公開(kāi)N0.2011/0283015中描述的方法對(duì)媒體數(shù)據(jù)進(jìn)行編碼,上述專利文獻(xiàn)全部通過(guò)引用而被結(jié)合入本文。然后將已編碼數(shù)據(jù)傳遞(325)至媒體分組化模塊212,其將已編碼數(shù)據(jù)轉(zhuǎn)換成分組格式以輸送流會(huì)話(330)。
[0054]在經(jīng)由直通數(shù)據(jù)路徑214來(lái)切換媒體數(shù)據(jù)之后,在沒(méi)有任何壓縮的情況下將媒體數(shù)據(jù)直接傳遞至媒體分組化模塊212 (335)。媒體分組化模塊212將媒體數(shù)據(jù)轉(zhuǎn)換成分組格式以輸送流會(huì)話(330)。
[0055]另外,在未示出的一些實(shí)施例中,當(dāng)未檢測(cè)到網(wǎng)絡(luò)擁塞時(shí),自適應(yīng)比特率管理器可將媒體數(shù)據(jù)從緩沖器208傳輸至直通數(shù)據(jù)路徑214,并且然后將該媒體數(shù)據(jù)傳送到終端102。因此,當(dāng)不存在網(wǎng)絡(luò)擁塞時(shí),媒體數(shù)據(jù)繞過(guò)媒體去分組化模塊216和媒體分組化模塊212。但是一旦檢測(cè)到網(wǎng)絡(luò)擁塞,自適應(yīng)比特率管理器就被配置成通過(guò)媒體去分組化模塊216和媒體分組化模塊212來(lái)提供媒體數(shù)據(jù)。
[0056]圖5是表示用于選擇對(duì)于媒體數(shù)據(jù)的數(shù)據(jù)路徑的示例性方法的流程圖。參考圖5,本領(lǐng)域技術(shù)人員將很容易領(lǐng)會(huì)到能夠改變所示的規(guī)程以刪除步驟或進(jìn)一步包括附加步驟。針對(duì)本示例性方法假設(shè)接收器報(bào)告包括關(guān)于音頻和視頻媒體數(shù)據(jù)兩者的數(shù)據(jù)。如果是偽流會(huì)話,則處理TCP ACK以獲得關(guān)于媒體傳輸進(jìn)度的信息。當(dāng)兩個(gè)類型都存在時(shí),本領(lǐng)域技術(shù)人員將領(lǐng)會(huì)到接收器報(bào)告數(shù)據(jù)能夠包括音頻或視頻數(shù)據(jù)。在初始開(kāi)始步驟之后,自適應(yīng)比特率管理器(例如,自適應(yīng)比特率管理器108)獲取(510)接收器報(bào)告數(shù)據(jù),其能夠包括一個(gè)或多個(gè)接收器報(bào)告。該接收器報(bào)告數(shù)據(jù)能夠與在終端的媒體播放器處接收到的音頻和視頻媒體分組的質(zhì)量和數(shù)量相關(guān)。接收器報(bào)告數(shù)據(jù)能夠特別地包括由終端接收到的最后分組的序列號(hào)、對(duì)應(yīng)于此類分組的時(shí)間戳、發(fā)送的比特?cái)?shù)、往返時(shí)間以及在從自適應(yīng)比特率管理器到終端的傳輸期間丟失的分組數(shù)目。能夠通過(guò)從終端接收媒體接收器報(bào)告并通過(guò)使最后接收的媒體接收器報(bào)告的內(nèi)容與存儲(chǔ)于自適應(yīng)比特率管理器處的媒體分組的歷史互相關(guān)來(lái)獲取接收器報(bào)告數(shù)據(jù)。
[0057]盡管RTP和RTCP是多媒體應(yīng)用可直接訪問(wèn)的用戶級(jí)協(xié)議,但TCP通常是以應(yīng)用可不具有其內(nèi)部狀態(tài)的可見(jiàn)性的方式在內(nèi)核空間(kernel space)中實(shí)現(xiàn)。為了克服這一點(diǎn),能夠?qū)崿F(xiàn)簡(jiǎn)單內(nèi)核級(jí)代理以生成應(yīng)用級(jí)接收器報(bào)告并當(dāng)在內(nèi)核空間中接收到ACK分組時(shí)將其發(fā)送到自適應(yīng)比特率管理器。
[0058]在獲取接收器報(bào)告數(shù)據(jù)之后,自適應(yīng)比特率管理器確定一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量(520)。在一些實(shí)施例中,為了確定一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量,自適應(yīng)比特率管理器能夠?qū)?lái)自從步驟505接收到的接收器報(bào)告數(shù)據(jù)的數(shù)據(jù)和由自適應(yīng)比特率管理器存儲(chǔ)的先前接收到的接收器報(bào)告數(shù)據(jù)組合。所確定的一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量能夠包括MTT、BRR、RTTE、PLC或其某個(gè)組合。在偽流會(huì)話中,要求額外步驟以計(jì)算MTT。自適應(yīng)比特率管理器能夠保持被發(fā)送到媒體播放器的媒體剪輯中的序列號(hào)和時(shí)間戳的表格。在接收到TCP ACK之后,自適應(yīng)比特率管理器能夠檢索對(duì)應(yīng)于ACK中的字節(jié)序列號(hào)的時(shí)間戳,并且然后計(jì)算MTT。
[0059]在步驟530,自適應(yīng)比特率管理器估計(jì)網(wǎng)絡(luò)是否是擁塞的。自適應(yīng)比特率管理器通過(guò)將一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量與相應(yīng)的狀態(tài)閾值相比較來(lái)估計(jì)網(wǎng)絡(luò)擁塞。在一些實(shí)施例中,自適應(yīng)比特率管理器還部分地基于一個(gè)或多個(gè)網(wǎng)絡(luò)狀態(tài)估計(jì)量隨時(shí)間推移的變化來(lái)估計(jì)網(wǎng)絡(luò)擁塞。
[0060]在步驟540中,自適應(yīng)比特率管理器確定正確數(shù)據(jù)路徑(540)。根據(jù)存在的網(wǎng)絡(luò)擁塞的水平,自適應(yīng)比特率管理器確定是應(yīng)經(jīng)由壓縮數(shù)據(jù)路徑(例如,壓縮數(shù)據(jù)路徑210)還是直通數(shù)據(jù)路徑(例如,直通數(shù)據(jù)路徑214 )來(lái)提供媒體數(shù)據(jù)。如果網(wǎng)絡(luò)是擁塞的,則自適應(yīng)比特率管理器指示應(yīng)經(jīng)由壓縮數(shù)據(jù)路徑來(lái)提供媒體數(shù)據(jù)。同樣地,如果網(wǎng)絡(luò)是不擁塞的,則自適應(yīng)比特率管理器指示應(yīng)經(jīng)由直通數(shù)據(jù)路徑來(lái)提供媒體數(shù)據(jù)。
[0061]在步驟550中,自適應(yīng)比特率管理器將正確數(shù)據(jù)路徑與媒體數(shù)據(jù)正被傳遞的當(dāng)前數(shù)據(jù)路徑相比較。如果正確數(shù)據(jù)路徑等于當(dāng)前數(shù)據(jù)路徑,則不需要改變數(shù)據(jù)路徑。自適應(yīng)比特率管理器然后繼續(xù)經(jīng)由當(dāng)前數(shù)據(jù)路徑來(lái)發(fā)送媒體直至其不再與指示的數(shù)據(jù)路徑匹配或者不存在要被傳送到終端的附加媒體。
[0062]如果當(dāng)前數(shù)據(jù)路徑不同于正確數(shù)據(jù)路徑,則在步驟560中,自適應(yīng)比特率管理器確定正被傳送的下一幀是否是關(guān)鍵幀。如果該幀不是關(guān)鍵幀,則自適應(yīng)比特率管理器繼續(xù)使用當(dāng)前數(shù)據(jù)路徑來(lái)發(fā)送媒體數(shù)據(jù)。如果下一幀是關(guān)鍵幀,則在步驟580中,自適應(yīng)比特率管理器將當(dāng)前數(shù)據(jù)路徑設(shè)置為用于下一幀的正確數(shù)據(jù)路徑,并且然后從關(guān)鍵幀開(kāi)始使用新數(shù)據(jù)路徑來(lái)發(fā)送媒體數(shù)據(jù)(步驟590)。
[0063]可將本文公開(kāi)的方法實(shí)現(xiàn)為計(jì)算機(jī)程序產(chǎn)品,即在諸如在機(jī)器可讀存儲(chǔ)設(shè)備或在傳播信號(hào)之類的信息載體中有形地實(shí)施以便由諸如可編程處理器、計(jì)算機(jī)或多個(gè)計(jì)算機(jī)之類的數(shù)據(jù)處理裝置執(zhí)行或控制這些數(shù)據(jù)處理裝置的操作的計(jì)算機(jī)程序。計(jì)算機(jī)程序能夠以包括編譯或解釋語(yǔ)言的任何形式的編程語(yǔ)言來(lái)編寫,并且其能夠以任何形式來(lái)部署,包括作為獨(dú)立程序或作為模塊、部件、子例程或適合于在計(jì)算環(huán)境中使用的其他單元。計(jì)算機(jī)程序能被部署成在一個(gè)計(jì)算機(jī)上或在一個(gè)站點(diǎn)處或跨多個(gè)站點(diǎn)分布并被通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上被執(zhí)行。
[0064]在前述說(shuō)明中,已參考特定示例性實(shí)施例描述了本公開(kāi)。然而將顯而易見(jiàn)的是,可在不脫離如在隨后的權(quán)利要求中闡述的本公開(kāi)的更寬精神和范圍的情況下做出各種修改和變化。因此本說(shuō)明和附圖被認(rèn)為是例示性而非限制性的。根據(jù)考慮本文公開(kāi)的說(shuō)明和實(shí)踐,本公開(kāi)的其他實(shí)施例對(duì)于本領(lǐng)域技術(shù)人員而言可顯而易見(jiàn)。
【權(quán)利要求】
1.一種方法,包括: 獲取要通過(guò)媒體網(wǎng)絡(luò)被傳送到終端的媒體數(shù)據(jù); 從所述終端接收接收機(jī)報(bào)告; 使用來(lái)自接收機(jī)報(bào)告的信息來(lái)估計(jì)網(wǎng)絡(luò)狀況; 根據(jù)媒體網(wǎng)絡(luò)是否擁塞來(lái)確定數(shù)據(jù)路徑,其中,如果媒體網(wǎng)絡(luò)是擁塞的,則數(shù)據(jù)路徑是壓縮數(shù)據(jù)路徑,或者如果媒體網(wǎng)絡(luò)是不擁塞的,則數(shù)據(jù)路徑是直通數(shù)據(jù)路徑;以及通過(guò)所確定的數(shù)據(jù)路徑來(lái)提供媒體數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,媒體數(shù)據(jù)包括關(guān)鍵幀,并且從該關(guān)鍵幀開(kāi)始通過(guò)所確定的路徑來(lái)提供媒體數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,還包括:使用一個(gè)接收機(jī)報(bào)告來(lái)確定網(wǎng)絡(luò)狀態(tài)估計(jì)量。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述網(wǎng)絡(luò)狀態(tài)估計(jì)量是以下各項(xiàng)中之一: 媒體渡越時(shí)間; 接收到的比特率; 往返時(shí)間估計(jì);以及 分組丟失計(jì)數(shù)。
5.根據(jù)權(quán)利要求3所述的方法,其中,使用來(lái)自接收機(jī)報(bào)告的信息來(lái)估計(jì)網(wǎng)絡(luò)擁塞包括:將網(wǎng)絡(luò)狀態(tài)估計(jì)量與相應(yīng)的狀態(tài)閾值進(jìn)行比較。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述狀態(tài)閾值由服務(wù)器自動(dòng)確定。
7.一種存儲(chǔ)指令的非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),所述指令在被計(jì)算機(jī)執(zhí)行時(shí)使得計(jì)算機(jī)執(zhí)行方法,所述方法包括: 獲取要通過(guò)媒體網(wǎng)絡(luò)被傳送到終端的媒體數(shù)據(jù); 從所述終端接收接收機(jī)報(bào)告; 使用來(lái)自接收機(jī)報(bào)告的信息來(lái)估計(jì)網(wǎng)絡(luò)狀況; 根據(jù)媒體網(wǎng)絡(luò)是否擁塞來(lái)確定數(shù)據(jù)路徑,其中,如果媒體網(wǎng)絡(luò)是擁塞的,則數(shù)據(jù)路徑是壓縮數(shù)據(jù)路徑,或者如果媒體網(wǎng)絡(luò)是不擁塞的,則數(shù)據(jù)路徑是直通數(shù)據(jù)路徑;以及通過(guò)所確定的數(shù)據(jù)路徑來(lái)提供媒體數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,媒體數(shù)據(jù)包括關(guān)鍵幀,并且從該關(guān)鍵幀開(kāi)始通過(guò)所確定的路徑來(lái)提供媒體數(shù)據(jù)。
9.根據(jù)權(quán)利要求7所述的非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),還包括指令,所述指令在被計(jì)算機(jī)執(zhí)行時(shí)使得計(jì)算機(jī)執(zhí)行所述方法,所述方法包括:使用一個(gè)接收機(jī)報(bào)告來(lái)確定網(wǎng)絡(luò)狀態(tài)估計(jì)量。
10.根據(jù)權(quán)利要求9所述的非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,所述網(wǎng)絡(luò)狀態(tài)估計(jì)量是以下各項(xiàng)中之一: 媒體渡越時(shí)間; 接收到的比特率; 往返時(shí)間估計(jì);以及 分組丟失計(jì)數(shù)。
11.根據(jù)權(quán)利要求9所述的非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,使用來(lái)自接收機(jī)報(bào)告的信息來(lái)估計(jì)網(wǎng)絡(luò)擁塞包括:將網(wǎng)絡(luò)狀態(tài)估計(jì)量與相應(yīng)的狀態(tài)閾值進(jìn)行比較。
12.根據(jù)權(quán)利要求11所述的非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),其中,所述狀態(tài)閾值由服務(wù)器自動(dòng)確定。
13.—種系統(tǒng),包括: 自適應(yīng)比特率管理器,被配置成: 獲取要通過(guò)媒體網(wǎng)絡(luò)被傳送到具有媒體播放器的終端的媒體數(shù)據(jù); 從所述終端接收接收機(jī)報(bào)告; 使用來(lái)自接收機(jī)報(bào)告的信息來(lái)估計(jì)網(wǎng)絡(luò)擁塞; 根據(jù)媒體網(wǎng)絡(luò)是否擁塞來(lái)確定數(shù)據(jù)路徑,其中,如果媒體網(wǎng)絡(luò)是擁塞的,則數(shù)據(jù)路徑是壓縮數(shù)據(jù)路徑,或者如果媒體網(wǎng)絡(luò)是不擁塞的,則數(shù)據(jù)路徑是直通數(shù)據(jù)路徑;以及 通過(guò)所確定的數(shù)據(jù)路徑來(lái)提供媒體數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,媒體數(shù)據(jù)包括關(guān)鍵幀,并且從該關(guān)鍵幀開(kāi)始通過(guò)所確定的路徑來(lái)提供媒體數(shù)據(jù)。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述自適應(yīng)比特率管理器還被配置成:使用一個(gè)接收機(jī)報(bào)告來(lái)確定網(wǎng)絡(luò)狀態(tài)估計(jì)量。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述網(wǎng)絡(luò)狀態(tài)估計(jì)量是以下各項(xiàng)中之一: 媒體渡越時(shí)間; 接收到的比特率; 往返時(shí)間估計(jì);以及` 分組丟失計(jì)數(shù)。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述自適應(yīng)比特率管理器被配置成:將網(wǎng)絡(luò)狀態(tài)估計(jì)量與相應(yīng)的狀態(tài)閾值進(jìn)行比較以使用來(lái)自接收機(jī)報(bào)告的信息來(lái)估計(jì)網(wǎng)絡(luò)擁塞。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述自適應(yīng)比特率管理器被配置成:自動(dòng)確定狀態(tài)閾值。
【文檔編號(hào)】H04N21/2662GK103828324SQ201280038961
【公開(kāi)日】2014年5月28日 申請(qǐng)日期:2012年6月8日 優(yōu)先權(quán)日:2011年6月10日
【發(fā)明者】A.彭納, F.庫(kù)普曼斯, R.基德 申請(qǐng)人:茨特里克斯系統(tǒng)公司