專利名稱:用于通過分組網絡流傳送媒體的自適應比特率管理的制作方法
用于通過分組網絡流傳送媒體的自適應比特率管理對相關專利的交叉引用本申請要求于2007年7月10日提交的美國臨時申請號60/948,917 "Adaptive Bitrate Management for Streaming Media over PacketNetworks,,的權益,在此將其弓|入
以供參考。
背景技術:
速率控制對于通過分組網絡的媒體流傳送(streaming)是至關重要的。通過容量 有限的共享鏈路來遞送帶寬密集的內容(如多媒體)的挑戰在于通過調整比特率和媒體編 碼方案來快速響應網絡狀況(network conditions)的變化從而優化用戶的視聽體驗。特 別地,當通過不能提供必要吞吐量的連接來傳輸固定比特率時,會出現若干不希望的效果。 例如,網絡緩沖器可能溢出(overflow),導致分組丟失,從而造成錯亂的視頻或音頻重放, 或者媒體播放器緩沖器可能下溢(underflow),導致重放停止。標準體已經推薦了解決這些 問題的協議。因特網工程任務組(IETF)在RFC 3550中將RTCP規定為基本的構建塊來在 流傳送媒體中實施比特率/分組率控制。適于高容量網絡的RTCP的幾種擴展遵從這種最 初推薦。即使利用這些推薦的協議,通過無線網絡遞送多媒體會話可能也是特別有挑戰性 的,部分原因在于 標稱傳輸率的突然調整由于干擾、衰落等,3+G網絡即時(onthe fly)協商物 理層參數。標稱傳輸比特率可能改變10倍; 分組丟失由鏈路傳輸誤差或由網絡擁塞造成; 有效帶寬的減小無線鏈路是第2層的共享資源,具有MAC(媒體訪問控制)機 制和調度。這意味著在同一段中由其他無線終端提供的增加的負載可能減小終端將看到的 有效帶寬或容量;以及 有限容量可用容量通常是在傳統的有線線路互聯網接入技術中獲得的一小部 分,目前在傳統的有線線路互聯網接入技術中容量不是問題。固定的互聯網媒體會話通常 能夠向網絡提供250到400kbps之間的負載。盡管當前的3G蜂窩網絡能夠維持500kbps 及之上的吞吐量,無線多媒體會話的總比特率預算通常被保持在150kbps之下以確保可縮 放性。對于無線移動設備,在流媒體會話中提供良好體驗尤其困難,因為 不經常的且不完整的網絡狀態信息。典型的無線媒體播放器支持RTCP接收方 報告,如RFC 3550中定義的,并且報告生成頻率是固定的。結果,在發送端獲得的網絡狀態 信息是有限的且零星的。在其分組流傳送服務規范中,3GPP推薦對基本IETF RTCP接收方 報告的幾種擴展(即RTCP擴展報告,或XR)。不幸的是,非常少的手機實施這些增強; 不同的媒體流被分開處理。盡管音頻流和視頻流這二者都通過相同的網絡鏈路 被傳輸,但是它們被RTCP分開處理。兩個RTCP報告均提供關于相同網絡的狀態信息,因此 是聯合分析;以及
4
可用的低比特率無線多媒體會話的比特率預算一般很低(低于150kbps)。音 頻和視頻比特率的調整對會話可以具有巨大的感知影響,并且甚至對于3G網絡,可用的總 網絡比特率可能遠在可接受的量之下。由于這些問題,對于無線網絡和無線移動設備來說, 難以建立一致的流媒體會話。
圖1是示例性系統的框圖。圖2是圖示出圖1的示例性系統的實施例的框圖。圖3是圖示出圖2的示例性系統中的示例性通信流的功能圖。圖4是表示用于處理RTCP分組的示例性方法的流程圖。圖5是表示用于處理最優會話比特率數據的示例性方法的流程圖。
具體實施例方式現在將詳細參考與本發明一致的示例性實施例,其中本發明的示例在附圖中示 出。在任何可能的地方,相同的附圖標記在整個附圖中用于指代相同或相似的部分。根據瞬時網絡容量來調整流媒體會話的比特率可能是通過無線分組網絡遞送流 媒體所需的關鍵功能。自適應比特率管理是綜合的框架和方法,其實現了將自調整流會話 遞送到媒體播放器,例如像符合標準3GPP的媒體播放器。自適應比特率管理尤其包括自適 應比特率控制器和可變比特率編碼器,這二者使得自適應比特率管理具備對于音頻、視頻 和/或其他流同時實施聯合會話比特率管理的能力。圖1是示例性系統的框圖。示例性系統100可以是任何類型的通過網絡傳輸數據 分組的系統。例如,該示例性系統可以包括移動終端,其通過因特網訪問來自內容服務器的 流媒體數據。該示例性系統尤其可以包括終端102、網關104、一個或多個網絡106、110、自 適應比特率管理器108以及一個或多個內容服務器112-114。終端102是包括軟件應用的硬件部件,所述軟件應用允許終端102傳送和接收對 應于流媒體的分組。終端102提供顯示器和一個或多個軟件應用(諸如媒體播放器)以向 終端102的用戶顯示流媒體。此外,終端102具有向因特網請求并從因特網接收數據分組 (諸如流媒體的數據分組)的能力。例如,終端102可以通過其URL發送對于網頁的特定文 件或對象數據的請求數據到內容服務器112-114,并且網頁的內容服務器可以在數據庫中 查詢對象數據并且將對應的響應數據發送到終端102。在一些實施例中,響應數據可以通過 自適應比特率管理器108進行路由。雖然終端102可以是有線終端,但是本發明的一些實施例可能優選使用移動終 端,因為移動終端更可能處于從自適應比特率管理器受益更多的網絡中。與有線網絡連接 相比,該網絡連接傾向于更不穩定,因為例如移動終端的位置發生變化,其中在移動終端和 網絡之間的數據率傳輸可能在一些情況下相當劇烈地波動。網關104是將在一種類型的網絡中提供的格式化數據轉換為另一類型的網絡所 需的特定格式的設備。網關106例如可以是服務器、路由器、防火墻服務器、主機或代理服 務器。網關104具有將從終端102接收的信號轉換成網絡106能夠理解的信號并且反之亦 然的能力。網關104可以能夠單獨地或以任何組合處理音頻、視頻和T. 120傳輸,并且能夠進行全雙工媒體轉換。網絡106和110可以包括適于分組類型通信(諸如因特網通信)的無線網絡、廣 域網(WAN)或局域網(LAN)的任何組合。此外,網絡106和110可以包括用于在傳輸分組 到其預期目的地之前存儲分組的緩沖器。自適應比特率管理器108是提供網關104和內容服務器112-114之間的通信的服 務器。自適應比特率管理器108可以通過根據自適應比特率管理器108和終端102之間的 連接(即媒體網絡)調整流媒體比特率來優化性能。自適應比特率管理器108可以包括下 面進一步描述的優化技術。內容服務器112-114是接收來自終端102的請求數據、相應地處理請求數據并且 在一些實施例中通過自適應比特率管理器108向終端102返回響應數據的服務器。例如, 內容服務器112-114可以是web服務器、企業服務器或者任何其他類型的服務器。內容服 務器112-114可以是計算機或計算機程序,其負責接受來自終端102的請求(例如HTTP、 RTSP、或能夠啟動媒體會話的其他協議)并且向終端102提供流媒體。圖2是圖示出圖1的示例性系統的實施例的框圖。終端102尤其可以包括媒體播 放器202和緩沖器204。自適應比特率管理器108尤其可以包括自適應比特率控制器210、 緩沖器212、可變比特率編碼器214以及實時傳輸協議(RTP)分組化(packetization) 216。媒體播放器202是用于播放包括視頻和/或音頻媒體文件的多媒體文件(例如流 媒體)的計算機軟件。媒體播放器202的這種常見示例可以包括Microsoft Media Player、 Apple Quicktime Player和RealOnePlayer。在一些實施例中,媒體播放器202使用編解 碼器來解壓縮流視頻或音頻并且在終端102的顯示器上對其進行播放。媒體播放器202可 以用作獨立的應用或嵌入在網頁中以創建與HTML內容交互的視頻應用。此外,媒體播放器 202可以通過發送RTCP接收方報告與自適應比特率管理器108通信。緩沖器204 (也稱為終端緩沖器204)是在將多媒體分組提供給媒體播放器202之 前臨時存儲多媒體分組的軟件程序和/或硬件設備。在一些實施例中,緩沖器204經由網絡 106從自適應比特率管理器108接收多媒體分組。這些分組可以基于實時傳輸協議(RTP) 來配置。在一些實施例中,緩沖器204從除自適應比特率管理器108之外的設備接收多媒 體分組。一旦緩沖器204接收到多媒體分組,其就可以提供存儲的多媒體分組給媒體播放 器202。雖然圖2圖示出終端緩沖器204和媒體播發器202是分離的部件,但是本領域普通 技術人員將理解終端緩沖器204可以是媒體播放器202的一部分。此外,雖然圖2示出了 僅僅單個緩沖器,本領域普通技術人員將理解可以存在多個緩沖器,例如用于音頻媒體分 組的一個或多個緩沖器以及用于視頻媒體分組的一個或多個緩沖器。自適應比特率管理器108的自適應比特率控制器210是這樣的軟件程序和/或硬 件設備,其周期性地從終端102接收RTCP接收方報告并且提供在下一周期期間用于編碼要 發送到終端102的多媒體數據的最優會話比特率。在一些實施例中,自適應比特率控制器 210包括用于存儲當前和先前的RTCP接收方報告的緩沖器。為了計算最優會話比特率,自 適應比特率控制器210使用一個或多個網絡狀態估計器來估計流媒體網絡的狀態并且計 算要在下一 RTCP間隔中使用的最優會話比特率。例如,這些網絡狀態估計器可以估計媒體 通過時間(mediatime in transit MTT)、終端102處接收的比特率、往返時間估計(RTTE) 以及分組丟失計數。自適應比特率控制器210可以使用估計器的歷史和統計來實施不同的控制算法以計算最優會話比特率。此外,自適應比特率控制器210可以通過確定流媒體網 絡的穩定性來更新最優會話比特率。這可以通過檢查新計算的估計器是否符合一個或多個 穩定性準則來完成。使用這些估計和穩定性準則,自適應比特率控制器210可以確定對于 下一周期是要調整輸出比特率還是保持當前的輸出比特率不變。在該確定之后,自適應比 特率控制器210向可變比特率編碼器214提供最優會話比特率值。自適應比特率管理器108的緩沖器212是在將媒體數據提供給可變比特率編碼器 214之前臨時存儲媒體數據的軟件程序和/或硬件設備。在一些實施例中,緩沖器212經由 網絡110從一個或多個內容服務器112-114接收媒體數據。在一些實施例中,緩沖器212 從除內容服務器112-114之外的設備接收媒體數據。自適應比特率管理器108的可變比特率編碼器214是這樣的軟件程序和/或硬件 設備,其從自適應比特率控制器210接收最優會話比特率數據并且向RFT分組化216提供 以匹配由自適應比特率控制器210提供的最優會話比特率的比特率所編碼的音頻和/或視 頻數據。可變比特率編碼器尤其可以包括比特率分配器(splitter) 220、音頻編碼器220、 視頻編碼器224以及用于一些實施例的幀丟棄器(dropper) 226。比特率分配器220是從自適應比特率控制器210接收最優會話比特率數據并且分 配當在下一間隔期間編碼音頻和視頻媒體數據時要使用的最優比特率的軟件程序和/或 硬件設備。所述分配使得所有軌道在組合時的比特率的總和可以基本上等于自適應比特率 控制器210所指定的最優會話比特率。例如,這種分配可以基于預定的分配、用戶偏好、最 優性能數據、使一種類型的數據相比另一種具有特權(privilege)、要提供的音頻和視頻數 據的量和/或上述各項的任何組合。例如,比特率分配器220可以給予音頻質量以特權,使 得如果指定了降低的比特率,則比特率分配器220將首先降低視頻比特率并且盡可能地推 遲降低音頻比特率。音頻編碼器222和視頻編碼器224是從比特率分配器220接收它們相應的比特率 分配并且提供輸出媒體數據的軟件程序和/或硬件設備,所述輸出媒體數據被編碼成匹配 用于下一 RTCP間隔的它們相應的比特率分配的比特率。音頻編碼器222和視頻編碼器224 這二者都從緩沖器212接收它們相應的媒體數據并且根據來自比特率分配器220的其相應 的比特率分配來輸出該媒體數據。在為音頻和視頻這二者確定了比特率之后,每個編碼器 的職責是在對應的媒體軌道中遞送最高質量。例如,音頻編碼器222可以通過調整頻譜量 化和截止頻率來產生可變比特率。此外,視頻編碼器224例如可以通過調整離散余弦變換 (DCT)系數量化或通過引入幀丟棄來產生可變比特率。這種幀丟棄可以在需要時由幀丟棄 器226執行。幀丟棄器226是在期望的比特率低于質量閾值時可以被觸發的軟件程序和/或硬 件設備。該閾值可以是編解碼器相關的,并且表示這樣的比特率值,在該比特率值之下使用 較粗的量化將導致圖像中不可忍受的偽像。幀丟棄器226可以基于期望的視頻比特率和由 視頻編碼器224生成的比特率而動態確定幀丟棄率。為了補償在編碼器輸出處的視頻比特 率的固有比特率波動,幀丟棄器226可以通過使用覆蓋最近編碼幀的字節長度歷史的滑動 窗來動態更新丟棄率。RTP分組化216是從音頻編碼器222和視頻編碼器224接收音頻和視頻媒體數據 并且將該數據轉換為分組格式的軟件程序和/或硬件設備。RTP定義了用于通過因特網遞
7送音頻和視頻的標準化分組格式。除了承載音頻和媒體數據之外,這些分組尤其還可以包 括用于識別內容類型的有效載荷類型標識符、分組序列號、用于允許同步和抖動計算的時 間戳,以及遞送監視數據。這種類型的數據隨后可以在自適應比特率控制器210從終端102 接收到對應的RTCP接收方報告時輔助自適應比特率控制器210確定網絡所提供的服務的 質量。在將該數據轉換為分組格式后,RTP分組化216通過網絡106的網絡緩沖器230將 該數據傳輸到終端102的終端緩沖器204。此外,自適應比特率管理器108保存音頻和視頻 軌道中發送的RTP分組的歷史。該歷史數據尤其可以包括發送每個分組的時間、序列號以 及每個RTP分組的大小。圖3是圖示出圖2的系統中的示例性通信流的功能圖。為了解釋該示例性實施例, 假設終端102已經接收到所請求的媒體數據包的媒體數據的至少一部分。此外,假設媒體 數據包包括音頻和視頻媒體數據這二者。在接收到分組后,媒體播放器202傳輸(302) RTCP 接收方報告到自適應比特率管理器108。RTCP是用于為RTP流提供質量控制信息的協議,所述RTP流諸如由自適應比特率 管理器108的RTP分組化216提供的傳輸。更具體而言,RTCP在對多媒體數據的遞送和打 包(package)過程中與自適應比特率管理器108的RTP分組化216合作。在一些實施例中, 媒體播放器202周期性地傳輸RTCP接收方報告。RTCP接收方報告可以提供關于正由RTP 分組化216提供的服務的質量的反饋。雖然RTP/RTCP被用作示例性實施例來解釋自適應 比特率控制方法,但是本領域普通技術人員將理解該自適應比特率控制方法適用于利用定 序(sequencing)和定時信息實現媒體傳輸以及利用關于所接收分組的信息實現媒體傳輸 反饋(覆蓋定序、定時、丟失率等)的功能的任何協議。此外,在一些實施例中,接收方報告可以是具有音頻和視頻報告數據這二者的單 個報告或者其可以被分成多個報告(諸如在RTCP的情況下),例如,諸如用于音頻報告數據 的接收方報告和用于視頻報告數據的另一接收方報告。接收方報告數據尤其可以包括關于 在終端102最近接收的RTP分組的序列號、在RTCP接收方報告中報告的由終端102接收的 最后分組的時間戳、從該報告發送的比特數、往返時間以及丟失的分組數的數據。在接收到接收方報告后,自適應比特率控制器210可以估計網絡狀態以確定是否 對于下一周期更新會話比特率。自適應比特率控制器210可以將新接收的接收方報告保存 在累積歷史中并且記錄接收到分組的時間。為了估計網絡狀態,自適應比特率控制器210 可以組合來自所接收的RTCP接收方報告、由自適應比特率管理器108存儲的先前接收的 RTCP接收方報告以及由自適應比特率管理器108存儲的發送的RTP分組的歷史的數據。自 適應比特率控制器可以通過使用網絡狀態估計器來估計以下示例性數據 媒體通過時間(MTT),計算為最近發送的RTP分組的時間戳和在RTCP接收方報 告中報告的由播放器接收的最后RTP分組的時間戳之間的差; 接收的比特率,計算為在當前的和先前接收的RTCP接收方報告之間接收的比 特除以在這兩個接收方報告之間流逝的時間。接收方報告之間接收的比特通過將接收方 報告中的序列號與在自適應比特率管理器108存儲的發送的字節的歷史進行相互對照 (cross reference)來計算; 往返時間估計(RTTE),可 以通過對在自適應比特率管理器108存儲的多個較低 MTT值進行平均而獲得。例如,RTTE可以通過平均該流媒體網絡的所有存儲的MTT值當中的最低3個MTT值來計算。此外,自適應比特率管理器108可以根據RTCP發送方報告內的 數據來計算RTTE。雖然示出了這些示例性實施例,但是任何方法都可以用于估計流媒體網 絡的往返時間;以及 分組丟失計數,從RTCP接收方報告直接捕獲。自適應比特率控制器210可以使用這些估計來實施幾種不同的控制算法。例如, 流媒體穩定性準則可以用于計算用于下一 RTCP間隔的會話比特率。自適應比特率控制器210使用穩定性準則來確定流媒體網絡的穩定性。雖然可以 使用任何數量的算法來確定穩定性,但是一個示例性實施例將所估計的MTT與RTTE進行比 較。如果MTT和RTTE保持接近,則自適應比特率控制器210可以確定流媒體網絡可以正確 支持當前比特率。此外,通過比較接收的比特率與當前比特率會話,自適應比特率控制器 210可以確定網絡可以應對由自適應比特率管理器108施加的負載。自適應比特率控制器210使用這些估計和穩定性準則來實施控制算法以用于發 現網絡容量并且相應地調整會話比特率。自適應比特率控制器210可以定義控制算法的變 化以在兩個不同的模式下操作(1)采集(acquisition)模式和(2)正常模式。雖然在這 個示例性實施例中示出了兩個模式,但是本領域普通技術人員將理解可以定義多個操作模 式。在正常模式下,自適應比特率控制器210在穩態條件下操作,表明網絡保持或遞 增系統看到的有效容量。在一些實施例中,當工作在正常模式時,控制算法可以增加會話比 特率,而MTT不增加并且接收的比特率保持接近于當前會話比特率。當自適應比特率控制器210檢測到高分組丟失、MTT的突然增加和/或高于閾值 (MTT閾值)的MTT值時它通常觸發采集模式,所述閾值可以是固定值或者可以針對自適應 控制機制而動態獲得。一旦被觸發,采集模式就將最優會話比特率設置成某個值,諸如接收 的比特率或接收的比特率的一部分。因為接收的比特率可以是網絡在該特定時間點可以支 持的實際比特率的最好估計,所以自適應比特率管理器108將快速地返回到穩定狀態。在 一些實施例中,新的會話比特率被簡單地設置為當前會話比特率的一部分。在該實施例中,雖然僅終端102被示出為與自適應比特率管理器108通信,但是本 領域普通技術人員將理解多個終端可以與自適應比特率管理器108通信,其中每個終端可 以位于基本不同的網絡環境中。這樣的環境可能顯著變化,因為能夠使用不同的底層無線 技術和固定網絡拓撲。因此,對于某些實施例,可能希望預先發現網絡環境的特性以便自動 地調整框架中的關鍵參數。例如,自適應比特率控制器210可以在多媒體會話的開始時將 MTT閾值設置為與RTTE有關的值。以此方式,系統可以嘗試遵循由自適應比特率控制器210 提供的一般穩定性準則。如上所述,該穩定性準則可以基于MTT和RTTE的比較,而與網絡 環境(事先未知)無關,鑒于實際網絡基礎設施類型很少能事先確定,這將是非常有利的。 在一些實施例中,最優會話比特率可以通過確定MTT和RTTE之間的差并且根據該差來調整 會話比特率而更新。例如,該差越大,從當前會話比特率到最優會話比特率的調整就越大。 在一些實施例中,用于這種確定的MTT可以基于MTT的一個或多個歷史值。使用控制算法計算如上所述的會話比特率,自適應比特率控制器210確定用于傳 輸媒體數據到終端102的最優會話比特率。自適應比特率控制器210向可變比特率編碼器 214的比特率分配器220提供(304)最優會話比特率數據。在接收到最優會話比特率數據時,比特率分配器220在音頻和視頻流之間分配最優會話比特率。例如,該分配可以基于預 定的分配,用戶偏好最優性能數據、使一種數據相比另一種具有特權、要提供的音頻和視頻 數據的量、和/或上述各項的任何組合。例如,比特率分配器220可以給予音頻質量以特權, 使得如果指定了降低的比特率,則比特率分配器220將首先降低視頻比特率并且盡可能地 推遲降低音頻比特率。在將最優會話比特率分成最優音頻比特率和最優視頻比特率之后,比特率分配器 向音頻編碼器222提供(306)最優音頻比特率并且向視頻編碼器224提供(308)最優視頻 比特率。在接收到它們相應的比特率時,音頻編碼器222和視頻編碼器224從緩沖器212接 收它們相應的媒體數據并且根據來自比特率分配器220的相應比特率分配來輸出它們相 應的音頻媒體數據和視頻媒體數據。在為視頻和音頻這二者都確定了比特率后,每個編碼 器的職責是通過保持所請求的比特率直到下一 RTCP間隔來在對應的媒體軌道中遞送最高 質量。例如,音頻編碼器222可以通過調整量化和截止頻率來產生可變比特率。此外,視頻 編碼器224可以例如通過調整離散余弦變換(DCT)系數量化或通過引入幀丟棄來產生可變 比特率。這種幀丟棄可以在需要時由幀丟棄器226執行。在一些實施例中,編碼器的編碼 參數在它們從比特率分配器220接收到最優比特率數據之前不被修改,其將在后續的RTCP 間隔中提供,因為編碼器222、224是比特率分配器220的從設備。在優選幀丟棄的一些實施例中,視頻編碼器224可以在最優會話比特率小于質量 閾值時向幀丟棄器226提供(310)視頻媒體數據。該閾值可以是編解碼器相關的,并且表 示這樣的比特率值,在該比特率值之下使用較粗的量化將導致圖像中不可忍受的偽像。當 幀丟棄被觸發時,幀丟棄器226可以基于期望的視頻比特率和視頻編碼器224生成的比特 率來動態確定幀丟棄率。為了補償在視頻編碼器224的輸出處的視頻比特率的固有比特 率波動,幀丟棄器226可以通過使用覆蓋最近編碼幀的字節長度歷史的滑動窗來動態更新 丟棄率。幀丟棄器226可以相應地丟棄幀以遞送最優會話比特率。此外,在一些實施例 中,視頻編碼器224可以利用自適應比特率控制器210的網絡狀態估計器來以更有彈性的 (resilient)方式編碼視頻。在一些實施例中,視頻編碼器224可以將分組丟失信息與MTT 結合使用以確定是否應減小圖像組(GOP)值,從而增加在視頻流中每秒發送的I幀的數量。 在一些實施例中,如果不需要丟棄幀,則視頻編碼器224可以僅提供視頻媒體數據給RTP分 組化216。音頻編碼器222以及用于該實施例的幀丟棄器226將音頻媒體數據和視頻媒體 數據分別提供(312,314)給RTP分組化216。在接收到音頻媒體數據和視頻媒體數據時,RTP分組化216將該數據轉換成分組 格式。RTP定義用于通過因特網遞送音頻和視頻的標準化分組格式。在將該數據轉換為 分組格式時,RTP分組化216向網絡106的網絡緩沖器230傳輸(316)音頻和視頻媒體分 組。雖然僅示出了一個傳輸,但是本領域普通技術人員將理解傳輸316可以包括用于一個 或多個音頻媒體分組的單獨傳輸以及用于一個或多個視頻媒體分組的另一個傳輸。此外, 本領域普通技術人員將理解網絡106可以包括多個網絡,每個具有其自己的一個或多個緩 沖器。除了承載音頻和媒體數據之外,這些分組還尤其可以包括有效載荷類型標識符、分組 序列號、時間戳,以及遞送監視數據。這種類型的數據隨后可以在自適應比特率控制器210 從終端102接收到RTCP接收方報告時輔助自適應比特率控制器210確定網絡所提供的服 務的質量。此外,自適應比特率管理器108還可以存儲發送的RTP分組的歷史,以使得其稍后可以相應地調整比特率。在接收到分組時,網絡106的網絡緩沖器230可以存儲這些分組,直到輪到這些分 組被提供給終端102。雖然僅示出了緩沖器230,但是本領域普通技術人員將會理解對于音 頻媒體分組和視頻媒體分組中的每一種而言可以存在一個或多個單獨的緩沖器。當輪到分 組時,網絡緩沖器230將這些分組傳輸(318)到終端緩沖器204。在接收到分組時,終端102的終端緩沖器204可以存儲這些分組,直到輪到這些分 組被提供給媒體播放器202。雖然僅示出了緩沖器230,但是本領域普通技術人員將會理解 對于音頻媒體分組和視頻媒體分組中的每一種而言可以存在一個或多個單獨的緩沖器。當 輪到分組時,緩沖器240將這些分組提供(320)到媒體播放器202。媒體播放器202進而可 以從分組中提取相關數據并且在后續的RTCP接收方報告中將該數據提供給自適應比特率 管理器108。圖4是表示用于處理RTCP分組的示例性方法的流程圖。參考圖4,本領域普通技 術人員將會理解,所示出的過程可以被更改以刪除步驟或進一步包括附加步驟。對于該示 例性方法假設RTCP分組包括與音頻和視頻媒體數據這二者有關的數據。雖然存在兩種類 型,但是本領域普通技術人員將會理解RTCP數據可以包括音頻或視頻數據。在最初的開始 步驟400之后,自適應比特率管理器獲得(402)RTCP數據,其可以包括一個或多個RTCP接 收方報告。該RTCP數據可以與在終端的媒體播放器處接收的音頻和視頻媒體分組的質量 和數量有關。RTCP數據尤其可以包括由終端接收的最后分組的序列號、對應于這種分組的 時間戳、發送的比特數、往返時間以及在從自適應比特率管理器到終端的傳輸期間丟失的 分組數。RTCP數據可以通過從終端接收RTCP報告并且將最后接收的RTCP分組的內容與在 自適應比特率管理器存儲的RTP分組的歷史進行互相關來獲得。在接收到RTCP數據后,自適應比特率管理器估計(404)流媒體網絡的網絡狀況。 為了估計網絡狀態,自適應比特率管理器可以組合來自步驟402的所接收的RTCP數據以及 由自適應比特率管理器存儲的先前接收的RTCP數據的數據。自適應比特率控制器可以估 計MTT、接收的比特率、RTTE和分組丟失。自適應比特率管理器可以使用這些估計來實施幾 種不同的控制算法。在估計了網絡狀況后,自適應比特率管理器應用(406)穩定性準則以確定流媒體 網絡的穩定性。如果需要,穩定性準則可以輔助調整比特率以試圖穩定流媒體網絡,例如諸 如避免網絡中的緩沖器溢出以及終端處的下溢。雖然任何數量的算法可以用于確定穩定性 準則,但是一個示例性實施例比較估計的MTT與估計的RTTE,這兩個都在步驟404中被估 計。如果MTT和RTTE保持接近,則自適應比特率管理器可以使用該比較來確定流媒體網絡 可以正確支持當前比特率。此外,通過比較所接收的比特率與當前比特率會話,自適應比特 率管理器可以確定流媒體網絡可以應對負載。在建立了穩定性準則后,自適應比特率管理器基于估計步驟404和/或穩定性準 則建立步驟406來確定(408)就當前比特流而言網絡是否穩定。如果網絡是穩定的,則自 適應比特率管理器通過保持或遞增當前的比特率而在穩態條件下操作(410)。在一些實施 例中,最優會話比特率可以通過確定MTT和RTTE之間的差并且根據該差調整會話比特率來 計算。例如,如果當前會話比特率小于設置的目標會話比特率,則如果MTT和RTTE的值可 比較(comparable)的話,自適應比特率管理器可以遞增最優會話比特率。然后,自適應比
11特率管理器提供(416)用于傳輸媒體數據到終端的最優會話比特率。在提供步驟416后, 該方法可以前進到結束418。如果確定網絡不穩定,則自適應比特率管理器調整(412)比特率,使得自適應比 特率管理器可以達到穩定狀態。例如,在一些實施例中,自適應比特率管理器可以使用從步 驟404接收的估計的比特率,因為在一些實施例中接收的比特率可以是網絡在該特定時間 點可以支持的實際比特率的最好估計。然后,自適應比特率管理器提供(416)用于傳輸媒 體數據到終端的最優會話比特率。在提供步驟416后,該方法可以前進到結束418。圖5是表示用于處理最優會話比特率數據的示例性方法的流程圖。參考圖5,本領 域普通技術人員將會理解,所示出的過程可以被更改以刪除步驟或進一步包括附加步驟。 對于該示例性方法假設音頻和視頻媒體數據這二者都存在。雖然存在兩種類型,但是本領 域普通技術人員將會理解可以存在音頻或視頻數據。在最初的開始步驟500后,自適應比 特率管理器獲得(502)用于傳輸媒體數據到終端的最優會話比特率數據。在接收到最優會話比特率數據時,自適應比特率管理器在音頻和視頻流之間分配 (504)最優會話比特率,以產生最優音頻比特流和最優視頻比特流。例如,該分配可以基于 預定的分配、用戶偏好、最優性能數據、使一種類型的數據相比另一種具有特權、要提供的 音頻和視頻數據的量、和/或上述各項的任何組合。例如,自適應比特率管理器可以給予音 頻質量以特權,使得如果指定了降低的比特率,則自適應比特率管理器可以首先降低視頻 比特率并且盡可能地推遲降低音頻比特率。自適應比特率管理器獲得(506)音頻和視頻媒體數據。在一些實施例中,獲得步 驟506可以在分配步驟504或獲得步驟502之前發生。在分配步驟504和獲得步驟506之 后,自適應比特率管理器根據在步驟504指定的它們相應分配的比特率來編碼(508)音頻 和視頻媒體數據。在根據分配的比特率來編碼音頻和視頻流后,自適應比特率管理器提供(510)編 碼的音頻和視頻媒體數據以傳輸到終端。在一些實施例中,RTP分組化接收編碼的音頻和 視頻媒體數據并且將該數據轉換為分組格式。RTP定義標準化分組格式以用于通過因特網 遞送音頻和視頻。在將該數據轉換為分組格式時,RTP分組化然后可以向終端傳輸音頻和 視頻媒體分組。在提供編碼的音頻和視頻媒體數據后,該方法可以前進到結束512。本文所公開的方法可以被實施為計算機程序產品,即有形地包含在信息載體中例 如在機器可讀存儲設備中或在傳播信號中以供數據處理設備(例如可編程處理器、計算機 或多個計算機)執行或控制數據處理設備的操作的計算機程序。計算機程序能夠以任何形 式的編程語言進行編寫,包括匯編或解釋語言,并且其能夠被部署成任何形式,包括如獨立 式程序或如模塊、部件、子例程或者其它適合用于計算環境的單元。計算機程序被部署成在 一個計算機上或在多個計算機上執行,所述計算機位于一個站點或分布在多個站點上且由 通信網絡互連。在前面的說明書中,已經參照特定的示例性實施例描述了本發明。然而,顯然的 是,在不偏離所附權利要求所闡述的本發明的較寬精神和范圍的情況下可以做出各種修改 和變化。說明書和附圖因而應被認為是說明性的而不是限制性的。通過考慮說明書和實踐 本文公開的本發明,本領域技術人員可以顯而易見本發明的其它實施例。
權利要求
一種方法,包括從終端接收接收方報告;至少部分基于接收方報告來估計媒體網絡的一個或多個網絡狀況;基于估計的一個或多個網絡狀況來確定最優會話比特率;以及根據最優會話比特率來向終端提供媒體數據。
2.權利要求1的方法,其中確定最優會話比特率還包括 基于估計的一個或多個網絡狀況來建立穩定性準則;確定媒體網絡的穩定性;以及 基于穩定性確定來提供最優會話比特率。
3.權利要求2的方法,其中建立穩定性準則還包括比較媒體通過時間和往返時間估計 以輔助穩定性確定。
4.權利要求2的方法,其中建立穩定性準則還包括比較接收的比特率與當前比特率會話。
5.權利要求2的方法,還包括當認為媒體網絡的穩定性正常時保持或遞增當前比特率。
6.權利要求2的方法,還包括當網絡的穩定性不正常時調整當前比特率。
7.權利要求1的方法,還包括在音頻媒體數據和視頻媒體數據之間分配最優會話比特 率以產生最優音頻比特率和最優視頻比特率;并且根據最優音頻比特率和最優視頻比特率 來編碼音頻和視頻媒體數據。
8.權利要求7的方法,其中向終端提供媒體數據包括提供基于最優音頻比特率和最優 視頻比特率的編碼的音頻媒體數據和編碼的視頻媒體數據。
9.一種方法,包括從終端接收接收方報告;至少部分基于接收方報告來估計媒體網絡的一個或多個網絡狀況;基于所述估計來確定媒體網絡的穩定性;基于所述確定來控制比特率;以及向編碼器提供比特率以根據提供的比特率來傳輸媒體數據。
10.權利要求9的方法,其中確定媒體網絡的穩定性基于建立穩定性準則。
11.權利要求10的方法,其中建立穩定性準則還包括比較媒體通過時間和往返時間估 計以輔助穩定性確定。
12.權利要求10的方法,其中建立穩定性準則還包括比較接收的比特率與當前比特率 會話。
13.權利要求9的方法,其中控制比特率包括當認為媒體網絡的穩定性正常時保持或 遞增當前比特率。
14.權利要求9的方法,其中控制比特率包括當認為網絡的穩定性不正常時調整當前 比特率。
15.一種方法,包括 接收最優會話比特率;在音頻和視頻媒體之間分配最優會話比特率以產生最優音頻比特率和最優視頻比特率;根據最優音頻比特率和最優視頻比特率來編碼音頻和視頻媒體數據;以及提供編碼的音頻和視頻數據以傳輸到終端。
16.權利要求15的方法,還包括丟棄編碼的視頻數據的幀。
17.權利要求15的方法,其中在音頻和視頻媒體之間分配最優會話比特率是基于使音 頻媒體或視頻媒體相比另一個具有特權。
18.一種系統,包括具有媒體播放器的終端,被配置成提供接收方報告;自適應比特率管理器,被配置成接收所述接收方報告,至少部分基于接收方報告來估 計一個或多個網絡狀況,基于估計的一個或多個網絡狀況來確定最優會話比特率,以及基 于最優會話比特率來向終端提供媒體數據。
19.權利要求18的系統,其中自適應比特率管理器還包括自適應比特率控制器,其用 于接收所述接收方報告以及計算最優會話比特率。
20.權利要求19的系統,其中自適應比特率管理器還包括編碼器,其用于獲得最優會 話比特率、在音頻和視頻媒體之間分配最優會話比特率以產生最優音頻比特率和最優視頻 比特率、根據最優音頻比特率和最優視頻比特率來編碼音頻和視頻數據、以及提供編碼的 音頻和視頻數據以傳輸到終端。
21.一種存儲指令的計算機可讀存儲介質,所述指令當由計算機執行時使得計算機執 行用于處理接收方報告的方法,所述方法包括從終端接收接收方報告;至少部分基于接收方報告來估計媒體網絡的一個或多個網絡狀況;基于所述估計來確定媒體網絡的穩定性;基于所述確定來控制比特率;以及向編碼器提供比特率以根據提供的比特率來傳輸媒體數據。
22.—種存儲指令的計算機可讀存儲介質,所述指令當由計算機執行時使得計算機執 行用于處理最優會話比特率的方法,所述方法包括接收最優會話比特率;在音頻和視頻媒體之間分配最優會話比特率以產生最優音頻比特率和最優視頻比特率;根據最優音頻比特率和最優視頻比特率來編碼音頻和視頻媒體數據;以及提供編碼的音頻和視頻數據以傳輸到終端。
23.—種終端,包括緩沖器,接收由自適應比特率管理器通過媒體網絡傳輸的媒體數據分組;以及媒體播放器,接收媒體數據分組并且向自適應比特率管理器提供接收方報告,所述自 適應比特率管理器接收所述接收方報告、至少部分基于接收方報告來估計媒體網絡的一個 或多個網絡狀況、基于估計的一個或多個網絡狀況來確定最優會話比特率、以及根據最優 會話比特率來向緩沖器提供媒體數據。
全文摘要
一種方法,包括從終端接收接收方報告;至少部分基于接收方報告來估計媒體網絡的一個或多個網絡狀況;基于估計的一個或多個網絡狀況來確定最優會話比特率;以及根據最優會話比特率來向終端提供媒體數據。
文檔編號H04L12/56GK101919212SQ200880106476
公開日2010年12月15日 申請日期2008年7月10日 優先權日2007年7月10日
發明者A·彭納, F·布雷格, M·梅爾尼克, N·J·斯塔夫拉科斯 申請人:拜特移動網絡公司