国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于媒體流的流量控制的制作方法

      文檔序號:6567521閱讀:219來源:國知局
      專利名稱:用于媒體流的流量控制的制作方法
      技術領域
      本發(fā)明涉及數(shù)字內(nèi)容系統(tǒng),尤其涉及控制在這種系統(tǒng)中流送的數(shù)字內(nèi)容的賴
      背景技術
      諸如音頻流、視頻流、和/或文本媒體內(nèi)容流等多媒體內(nèi)容或數(shù)字內(nèi)容(內(nèi)容) 流正變得日益流行。術語"流"通常被用于表示該內(nèi)容是由服務器或主機設備通過
      網(wǎng)絡提供給客戶機設備(即,可作為諸如臺式PC、筆記本或便攜式計算機、蜂窩 電話或其它無線通信設備、個人數(shù)字助理(PDA)、游戲控制臺、IP機頂盒、手 持PC等各種常規(guī)計算設備中的任意一種來實現(xiàn)的媒體回放設備)的。通常,客戶 機設備在從主機接收內(nèi)容時"同時"再現(xiàn)(例如,播放或顯示)該流內(nèi)容,而不是 等待所有內(nèi)容或整個"文件"傳送結束。
      當內(nèi)容在網(wǎng)絡上"流送"時,通常是以數(shù)據(jù)包來流送的。這種數(shù)據(jù)包可以采 用由諸如實時傳送協(xié)議(RTP)等協(xié)議所規(guī)定的格式,并且通過諸如用戶數(shù)據(jù)報協(xié) 議(UDP)等另一格式來發(fā)送。此外,當從主機設備中流出時,這種數(shù)據(jù)包可以被 壓縮和編碼。然后,數(shù)據(jù)包在客戶機設備處被解壓縮和解碼。
      該數(shù)據(jù)包可以以主機設備的發(fā)送順序被客戶機設備接收;然而,在某些情況 下,數(shù)據(jù)包可能會接收不到或者以不同的順序被接收。此外,關于接收到的數(shù)據(jù)包 的速率或流量可能會某些不確定性。數(shù)據(jù)包可能會以比客戶機設備所能再現(xiàn)該數(shù)據(jù) 包更快的速率到達或者被接收,或者到達的速度不足夠快(即,數(shù)據(jù)包到達得不夠 快從而使得客戶機設備不能再現(xiàn)它們)。尤其是在執(zhí)行流送時,數(shù)據(jù)包并不一定以 實時速率來發(fā)送。數(shù)據(jù)包可能會以比實時速率更快或更慢地被發(fā)送。
      客戶機設備通常在處理之前使用緩沖器存儲接收到的數(shù)據(jù)包。這種緩沖器具 有有限的存儲量,并且根據(jù)接收包的速率,可能會發(fā)生緩沖器上溢(因為接收數(shù)據(jù) 包太快)或緩沖器下溢(因為沒有足夠快地接收數(shù)據(jù)包)。如果數(shù)據(jù)包太快地到達, 客戶機緩沖器可能會上溢,并且數(shù)據(jù)包可能會不被處理。如果數(shù)據(jù)包沒有足夠快或者以及時的方式被接收,則用戶將體驗到停頓(glitch)或中斷。例如,如果多媒 體內(nèi)容被流送至客戶機設備并且沒有被客戶機設備足夠快地接收,則該用戶會在呈 現(xiàn)的多媒體內(nèi)容中會看到停頓或中斷。此外,當檢測到上溢或下溢的情況時,為了 糾正這一問題需要將客戶機設備和主機設備上的時鐘進行同步。 一般而言,在上溢 問題己經(jīng)發(fā)生后再進行糾正已經(jīng)太遲。然而,通過同步時鐘,可以防止該該問題的 再次發(fā)生?;蛘呷绻瓿傻米銐蛟纾涂梢苑乐乖搯栴}發(fā)生。可能會由于包括設備
      時鐘漂移(drift)以及網(wǎng)絡擁塞在內(nèi)的多種原因而發(fā)生上溢和下溢。
      因此,需要在主機設備和客戶機設備上不包括時鐘恢復時控制從主機設備到 客戶機設備的數(shù)據(jù)包流量或流送。

      發(fā)明內(nèi)容
      關于客戶機設備上的緩沖器的容量和使用率的緩沖器信息被發(fā)送到主機設 備。該緩沖器信息包括客戶機設備上的一個或多個緩沖器的容量以及該緩沖器有多 滿或者使用情況如何。該緩沖器信息被發(fā)送給主機設備,由主機設備使用此信息來 調(diào)整往客戶機設備的流內(nèi)容的流量。


      參照附圖描述了具體說明。圖中,標號最左邊的(諸)數(shù)字標識在其中首次 出現(xiàn)該標號的圖。在不同的圖中使用相同的標號表示類似或相同項。
      圖1示出了適于從客戶機設備向主機設備提供緩沖器充滿度報告的一個示例 性環(huán)境的框圖。
      圖2示出了客戶機設備中所包括的抖動緩沖器和內(nèi)容緩沖器的一個示例性實 施例的框圖。
      圖3示出了協(xié)議桟和通過該協(xié)議棧發(fā)送的緩沖器充滿度報告的一個示例性實 施例的框圖。
      圖4是示出了將客戶機設備的緩沖器狀態(tài)通知主機設備的過程的流程圖。 圖5示出了適于實現(xiàn)諸如關于參照圖l-4所討論的主機設備和客戶機設備的一 個示例性計算環(huán)境。
      具體實施例方式
      下面的公開描述了通知主機設備有關接收所顯示的內(nèi)容以用于處理的客戶機設備緩沖器的狀態(tài)的技術。
      圖1示出了適于從客戶機回放設備或客戶機設備104向主機設備102提供內(nèi)
      容或數(shù)據(jù)包流量信息的一個示例性環(huán)境ioo。特別地,包括接收和處理內(nèi)容或數(shù)據(jù)
      包的客戶機設備緩沖器的狀態(tài)的緩沖器充滿度報告(BFR)由客戶機設備104提供 給主機設備102。
      源或主機設備102通常提供對例如,數(shù)據(jù)文件、媒體文件、和/或諸如現(xiàn)場有 線TV傳播或Webcast等現(xiàn)場媒體內(nèi)容等數(shù)字數(shù)據(jù)內(nèi)容(內(nèi)容)的訪問。主機設備 102將這些內(nèi)容流送至客戶機設備104。例如,在媒體內(nèi)容的情況中,客戶機設備 104通常從主機設備102中接收流內(nèi)容,并且為用戶再現(xiàn)或回放這些內(nèi)容。內(nèi)容是 通過網(wǎng)絡106來流送或發(fā)送的。此外,來自客戶機設備104的對主機設備102上現(xiàn) 有流內(nèi)容的請求可以通過網(wǎng)絡106從客戶機設備104路由至主機設備102。主機設 備102接收該請求,并且通過網(wǎng)絡106向請求客戶機設備104流送所請求的內(nèi)容。 網(wǎng)絡106可以包括諸如包含IEEE 1394的各種網(wǎng)絡。 一般而言,可預想網(wǎng)絡106可 以包括各種包交換網(wǎng)絡中的任意一種。主機設備102可以作為例如包括可被配置成 向客戶機設備104流送所存儲的和/或現(xiàn)場媒體內(nèi)容的服務器、臺式PC、筆記本或 便攜式計算機、工作站、大型計算機、因特網(wǎng)電器及其組合在內(nèi)的各種常規(guī)計算設 備中的任意一種來實現(xiàn)。客戶機回放設備104還可以作為例如包括臺式PC、筆記 本或便攜式計算機、工作站、大型計算機、因特網(wǎng)電器、游戲控制臺、手持式PC、 蜂窩電話或其它無線通信設備、個人數(shù)字助理(PDA)、機頂盒、電視及其組合等 在內(nèi)各種常規(guī)計算設備中的任意一種來實現(xiàn)。下面參照圖5更詳細地描述用于實現(xiàn) 主機設備102和客戶機設備104的示例性計算機。
      主機設備102可以制作包括諸如音頻、視頻、文本、圖像、動畫等內(nèi)容在內(nèi) 的可用于流送至客戶機設備104的各種數(shù)據(jù)或內(nèi)容中的任意一種。術語"流送"或 "流動"被用于表示通過網(wǎng)絡106將該數(shù)據(jù)提供給客戶機回放設備104并且在該內(nèi) 容被全部傳送之前就可以開始該內(nèi)容的回放。該內(nèi)容可以是公開可用或者受限的 (例如,被限于僅某些用戶、僅支付了適當費用時可用、被限于可接入特定網(wǎng)絡的 用戶等)。另外,該內(nèi)容可以是即時點播式(例如,預先記錄、存儲的己知大小的 內(nèi)容)或者來自現(xiàn)場"廣播"(例如,大小未知,諸如在音樂會演奏時所拍攝并且 在拍攝后很短時間即可用于流送的音樂會的數(shù)字表示)。
      網(wǎng)絡106旨在表示采用各種常規(guī)網(wǎng)絡協(xié)議(包括公共和/或?qū)S脜f(xié)議)中的任 意一種的各種常規(guī)網(wǎng)絡拓撲和類型(包括光學、有線和/或無線網(wǎng)絡)中的任意一種。網(wǎng)絡106可以包括,例如家庭網(wǎng)絡、公司網(wǎng)絡、或因特網(wǎng)、IEEE 1394以及也 可能是一個或多個局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)的至少一些部分。
      示例性主機設備102包括中央處理單元或處理器108以及存儲器110。存儲器 110包括可以創(chuàng)建或處理通過網(wǎng)絡106被流送到客戶機設備104的內(nèi)容的應用112。 此外,所處理和/或接收到的(從另一個源)內(nèi)容可以被存儲在內(nèi)容存儲114中。 在該實現(xiàn)中,內(nèi)容存儲U4與存儲器IIO是分離的。在其它實現(xiàn)中,內(nèi)容存儲U4 可以是存儲器110的一部分。時鐘116提供包括在流送自主機設備102的每個數(shù)據(jù) 包上分發(fā)時間戳的一種或多種功能。
      示例性客戶機設備104包括中央處理單元或處理器118以及存儲器120。存儲 器120包括消費或使用從諸如主機設備102等源接收到的內(nèi)容的應用122。抖動緩 沖器124接收數(shù)據(jù)包并且用作中間緩沖器。由于包括有限帶寬和內(nèi)容流動不一致在 內(nèi)的導致下溢和上溢情形的某些傳輸問題,為了避免流送內(nèi)容中的停頓或中斷,將 一些內(nèi)容(即,數(shù)據(jù)包)保存在抖動緩沖器124中是合乎需要的,在流送音頻/視 頻內(nèi)容時尤其如此。
      在該實現(xiàn)中,解碼器126從抖動緩沖器124接收被編碼的數(shù)據(jù)包,并且將數(shù) 據(jù)包解碼。在其它實現(xiàn)中,可以包括預解碼器緩沖器(即,被放置在解碼器126 之前的緩沖器)。在某些情形中,被壓縮的數(shù)據(jù)包可以被發(fā)送給客戶機設備104, 并由客戶機設備104接收。對于這些情形,客戶機設備104可以用解壓縮該數(shù)據(jù)包 的組件來實現(xiàn),其中該組件可以是或者不是解碼器126的一部分。
      被解壓縮和解碼的數(shù)據(jù)包可以被接收并且被存儲在內(nèi)容緩沖器128中。在其 它實現(xiàn)中,可以解碼器之前放置兩個緩沖器。第一緩沖器保存包含實時傳送協(xié)議 (RTP)的數(shù)據(jù)包,而第二緩沖器僅存儲RTP數(shù)據(jù)包內(nèi)容(即,沒有RTP標頭)d 第二緩沖器提供該將由解碼器126的解碼的內(nèi)容。換言之,第一緩沖器保存具有 RTP封裝(即,被封裝了的數(shù)據(jù)內(nèi)容)的數(shù)據(jù)包,而第二緩沖器保存沒有RTP封 裝(即,被解除封裝了的數(shù)據(jù)內(nèi)容)的數(shù)據(jù)包以用于解碼。內(nèi)容緩沖器128可以包 括存儲特定類型的內(nèi)容的一個或多個緩沖器。例如,可以存在存儲視頻內(nèi)容的單獨 視頻緩沖器,以及存儲音頻內(nèi)容的單獨音頻緩沖器。此外,抖動緩沖器124可以包 括存儲音頻和視頻內(nèi)容的單獨緩沖器。
      客戶機設備104包括時鐘130以便基于包括在每個特定數(shù)據(jù)包中的唯一時間 戳在數(shù)據(jù)包之間進行區(qū)分。換言之,時鐘130可以被用于以正確的速度播放數(shù)據(jù)包。 通常,通過基于被包含在數(shù)據(jù)包中的并且由主機設備102的時鐘116提供或分發(fā)的時間戳對數(shù)據(jù)包進行排序來播放數(shù)據(jù)包。
      客戶機設備104包括被配置成在從主機設備102流送內(nèi)容時監(jiān)視緩沖器124 和128的充滿度并且生成緩沖器充滿度報告(BFR) 134的緩沖器監(jiān)視器132。 BFR 134向主機設備102提供緩沖器充滿度信息。通常,BFR134中所傳遞的信息被主 機設備102用于控制或調(diào)整被流送至客戶機設備104的內(nèi)容或數(shù)據(jù)包的流量。
      在本實施例中,主機設備102包括被配置成從諸如客戶機設備104等一個或 多個客戶機設備接收一個或多個BFR 138的客戶機緩沖器充滿度(BFR)報告模塊 136。 BFR138對于特定客戶機設備而言是唯一的。被接收并存儲在客戶機BFR報 告模塊136中的每個BFR 138指示主機設備102關于分別包括抖動緩沖器、內(nèi)容 緩沖器、音頻緩沖器、視頻緩沖器等在內(nèi)的特定客戶機緩沖器上的緩沖器信息(即, 充滿度)。主機設備102可以基于BFR 138中的緩沖器信息計算發(fā)送(例如,被 流送)該內(nèi)容的速率。
      BFR 134可以由客戶機設備104發(fā)出以指示可能的上溢或下溢情形。BFR還 可以由客戶機設備104定期發(fā)送。在某些情形中,客戶機設備104可以將BFR134 作為應答的一部分在單獨的數(shù)據(jù)流中發(fā)送。在客戶機設備104作出應答時,此應答 可以采用規(guī)定格式或協(xié)議的形式。例如,如果使用RTP,具體而言使用了實時傳 送控制協(xié)議(RTCP),則與數(shù)據(jù)包相分離的控制包可以在主機設備102和客戶機 設備104之間進行交換。來自客戶機設備104的控制包向主機設備102提供反饋。 BFR 138可以被包括在這種控制包中。
      圖2示出了抖動緩沖器和內(nèi)容緩沖器的示例實現(xiàn)。特別地,在該實現(xiàn)中描述 了包括在主機設備102中的抖動緩沖器124和內(nèi)容緩沖器128。抖動緩沖器124包 括N個存儲單元200,其中每個存儲單元200可以存儲一接收到的數(shù)據(jù)包202。
      存儲單元200可以用先進先出(FIFO)結構來布置,以便先被接收到的數(shù)據(jù) 包202可以被先發(fā)送給內(nèi)容緩沖器128、或者發(fā)送給解碼器(例如,解碼器126) 或者其它中間組件(例如,解壓縮器)。盡管先接收到的數(shù)據(jù)包202可以被先處理, 但數(shù)據(jù)包202也可能在網(wǎng)絡中經(jīng)過了重排(即,丟失)。則一接收到的數(shù)據(jù)包可以 被插入到適當位置上的內(nèi)容緩沖器128中,并且其它數(shù)據(jù)包作相應移動。
      數(shù)據(jù)包202直到它們被發(fā)送給內(nèi)容緩沖器128或者其它中間組件為止都被存 儲在存儲單元200中。如果數(shù)據(jù)包202沒有被發(fā)送給內(nèi)容緩沖器128,則存儲單元 200被數(shù)據(jù)包202填滿至存儲單元200(N)。該示例示出了被存儲在存儲單元200(1) 中的數(shù)據(jù)包202(1)、被存儲在存儲單元200(2)中的數(shù)據(jù)包202(2)以及被存儲在存儲
      單元200(3)中的數(shù)據(jù)包202(3)。
      抖動緩沖器124具有可以由能夠被支持或存儲的字節(jié)數(shù)所定義的有限大小。 此外,抖動緩沖器124的有限大小可以由換算為可被存儲的內(nèi)容的總時間長度的 "時間"大小來定義。存儲單元200的數(shù)目N個受限于抖動緩沖器124的大小。
      內(nèi)容緩沖器128包括M個存儲單元204,其中每個存儲單元204可以存儲一 數(shù)據(jù)包206。數(shù)據(jù)包206被期望是已解碼、已解壓縮、并且準備就緒以供應用(例 如,被存儲在客戶機設備104的存儲器120中的應用122)再現(xiàn)的。數(shù)目M可以 是與N相同或者不同的數(shù)目。此外,內(nèi)容緩沖器128的大小(即,字節(jié)大小)可 以與抖動緩沖器124的大小不同。
      內(nèi)容緩沖器128的存儲單元204以FIFO結構來布置,從而使先接收到的數(shù)據(jù) 包206被先處理。通常,可以檢測每個數(shù)據(jù)包206上的時間戳以確定將在何時處理 該數(shù)據(jù)包。數(shù)據(jù)包206直到它們被發(fā)送給內(nèi)容緩沖器126或者其它中間組件為止都 被存儲在存儲單元204中。如果數(shù)據(jù)包204沒有被處理,則存儲單元204會被數(shù)據(jù) 包206填滿至存儲單元204(M)。該示例示出了被存儲在存儲單元204(1)中的數(shù)據(jù) 包206(1)、被存儲在存儲單元204(2)中的數(shù)據(jù)包206(2)、被存儲在存儲單元204(3) 中的數(shù)據(jù)包206(3)以及被存儲在存儲單元204(M-1)中的數(shù)據(jù)包206(M-l)。
      緩沖器充滿度報告或BFR (例如,BFR134和138)特別描述了在任意給定時 刻抖動緩沖器124和內(nèi)容緩沖器128的最大容量(即,字節(jié)大小或時間大小)。然 而,需要注意的是,BFR提供有關緩沖器中的空閑空間的重要信息。在某些實現(xiàn) 中,客戶機設備中可能會有多于一個的抖動緩沖器和/或內(nèi)容緩沖器。BFR特別描 述了所有這些緩沖器當中的最大容量和空閑空間。此外,在任意給定時刻,BFR 描述了有多少存儲單元(例如,存儲單元200和204)被數(shù)據(jù)包(例如,數(shù)據(jù)包202 和206)所填充。如將下面所進一步討論的,BFR可以以字節(jié)大小和/或時間形式 來表達緩沖器的"充滿度"。
      圖3示出了支持BFR的傳輸?shù)膮f(xié)議棧并且進一步示出了可以由BFR提供的具 體信息。協(xié)議棧300是計算機聯(lián)網(wǎng)協(xié)議組的特定軟件實現(xiàn)。這種協(xié)議棧在行業(yè)中是 公知的。通常,協(xié)議棧的較低層被設計成在設備(例如,主機設備102和客戶機設 備104)之間的軟件和/或硬件的最低層上交互。
      在該示例中,協(xié)議棧300的最低協(xié)議層是通常用作主機設備102與客戶機設 備104之間的"網(wǎng)絡間"連接的以太網(wǎng)層302。其次較高層是特別針對因特網(wǎng)上的 通信的網(wǎng)際協(xié)議層304。用戶數(shù)據(jù)報協(xié)議(UDP) 306層可以被用于提供普通的廣播或消息通信。實時傳送控制協(xié)議(RTCP)或?qū)崟r傳送協(xié)議(RTP)層308尤其 被用于實時發(fā)送諸如流內(nèi)容(例如,多媒體)等數(shù)據(jù)。BFR可以在另一更高層的 BFR層310上發(fā)送。層310的使用允許BFR獨立于來自主機設備102的內(nèi)容的實 際通信由客戶機設備104來發(fā)送。
      示例性BFR 132包括可以用于包括客戶機設備104上的抖動緩沖器和內(nèi)容緩 沖器在內(nèi)的一個以上緩沖器的(諸)緩沖器大小312。換言之,BFR被提供用于直 接(即,抖動緩沖器124)或間接(即,來自主機設備102的內(nèi)容緩沖器)接收內(nèi) 容的所有緩沖器。單位"字節(jié)"被用于表示當前存儲或排隊在該緩沖器中以供處理 的數(shù)據(jù)量314。可替換地,也可以表示空閑空間的量。此外,單位"時間"也可以 被用于表示當前存儲或排隊在緩沖器中以供處理的數(shù)據(jù)量316??舍槍€別緩沖器 或為緩沖器組提供信息。
      圖4是將客戶機設備的緩沖器狀態(tài)通知主機設備的過程400。過程400被示為 表示可以以硬件、軟件、固件或其組合實現(xiàn)的操作的序列的邏輯流程圖中的塊的集 合。在軟件環(huán)境中,各塊表示在由一個或多個處理器執(zhí)行時執(zhí)行所述的操作的計算 機指令。參照以上所述的主機設備102和客戶機設備104描述過程400。盡管被描 述為流程圖,但是應當預想到,某些過程可以同時或以不同的順序進行。
      在塊402,客戶機設備與主機設備針對關于緩沖器信息如何被交換以及交換哪 些內(nèi)容進行協(xié)商。該緩沖器信息采取客戶機設備上所創(chuàng)建的緩沖器充滿度報告 (BFR)的形式并且被發(fā)送給主機設備。緩沖器滿報告的內(nèi)容或包括在其中的信息 可以包括客戶機設備上緩沖器的容量或大小、特定情形下緩沖器上消費的空間量、 以及有關接收到的內(nèi)容或數(shù)據(jù)包的信息。此外,客戶機設備和主機設備之間的協(xié)商 可以包括確定有關多久從客戶機設備向主機設備發(fā)送一次緩沖器信息或BFR的頻 率。較高頻率或比率地發(fā)送緩沖器信息或BFR使得諸如包括媒體的內(nèi)容等數(shù)據(jù)包 的流送的調(diào)整得到改善從而防止緩沖器下溢或上溢。
      在塊404,主機設備與客戶機設備針對緩沖器信息的交換進行協(xié)商。主機設備 可以提供有關交換緩沖器信息的主機設備的能力,包括由主機設備的最大輸出(即, 流送內(nèi)容或數(shù)據(jù)包的能力)。此外,在塊402和404上執(zhí)行的協(xié)商可以包括標識被 用于發(fā)送緩沖器信息或BFR的具體通信協(xié)議。
      在塊406,客戶機設備確定從主機設備接收內(nèi)容或數(shù)據(jù)包的所有緩沖器的能 力。該確定可以在諸如(諸)抖動緩沖器和(諸)內(nèi)容緩沖器等所有緩沖器上執(zhí)行。 另外,該確定可以關于諸如字節(jié)大小或時間大小等一個或多個大小度量來執(zhí)行。在某些情形中,可以關于緩沖器的總?cè)萘炕蚩傆嬋萘縼磉M行該確定。例如,抖動緩沖 器容量可以與內(nèi)容緩沖器容量相組合。
      在塊408,客戶機設備計算(諸)緩沖器中已使用和未使用的空間。由于可以
      預料客戶機設備繼續(xù)接收內(nèi)容或數(shù)據(jù)包,所以該計算是針對特定的時間實例來執(zhí)行 的。在計算已使用和未使用空間時可使用字節(jié)大小或時間大小。有關(諸)緩沖器 容量所測量的計算提供了關于是否可接收額外的內(nèi)容或數(shù)據(jù)包(指示下溢)或者是 否不能接收額外的內(nèi)容或數(shù)據(jù)包(指示上溢)的信息。
      在塊410,客戶機設備發(fā)送可以為BFR形式的緩沖器信息。可以為每個流發(fā) 送單獨的BFR。換言之,可以為音頻流發(fā)送BFR,而為視頻流發(fā)送另一BFR。通 常,BFR提供有關所有流的信息。BFR可以被作為諸如實時傳輸控制協(xié)議(RT'CP) 等來自客戶機設備的另一報告或通信包的一部分被發(fā)送。在某些情形中,BFR可 以作為離散和單獨的傳輸被發(fā)送。例如,BFR可以通過單獨的較低層通信協(xié)議來 發(fā)送。
      如果主機設備接收BFR (即,接著塊412的"是"分支),在塊414主機設 備調(diào)整被發(fā)送給客戶機設備的內(nèi)容的流量或速率。該速率調(diào)整可以是網(wǎng)絡上的傳輸 速率以及內(nèi)容的編碼比特率。例如,如果BFR表示使用了高百分比的緩沖器容量 (即,上溢情形),則主機設備放慢被流送到客戶機設備的內(nèi)容的速率。或者,如 果BFR表示使用了低百分比的緩沖器容量(即,下溢情形),則主機設備增大被 流送到客戶機設備的內(nèi)容的速率。還可以考慮與理想或最佳緩沖器使用率的偏差。 換言之,如果BFR指示與最佳緩沖器使用率一可接受的正負偏差或百分比,則不 對該流量速率進行調(diào)整。提供關于特定客戶機緩沖器的信息的多個BFR可以被主 機設備用于調(diào)整往特定客戶機設備的流量。換言之,特定設備可以具有多個抖動緩 沖器和內(nèi)容緩沖器,其中每個緩沖器具有被發(fā)送給主機設備的特定BFR。根據(jù)該 BFR信息,主機設備可以計算客戶機設備上的每個緩沖器以及整體的消費速率。
      如果沒有接收到BFR (即,接著412的"否"分支),則可以有兩種方案來 解決該情形。如果選擇密切聯(lián)系(tightly coupled)的方案(即,接著塊416的"是" 分支),則BFR唯一地指示從主機設備到客戶機設備的內(nèi)容的流量。換言之,密 切聯(lián)系方案涉及主機設備使用BFR對往客戶機設備的內(nèi)容進行節(jié)流(即,流送)。 在密切聯(lián)系方案中,主機設備可以發(fā)送內(nèi)容一直到客戶機的緩沖器滿然后停止發(fā) 送。在BFR指示客戶機的緩沖器中有可用空間之后,主機設備可以繼續(xù)傳輸。如 果沒有接收到BFR,則在塊418主機設備可以使用先前或最后接收到的BFR中提供的信息?;蛘撸鳈C設備可以等待下一個或后續(xù)BFR。在初始傳輸(即,尚未 接收到BFR)的情形中,主機設備可以等待第一個BFR。
      如果沒有選擇密切聯(lián)系方案,或者換言之選擇了松散聯(lián)系方案(即,接著塊 416的"否"分支),則在塊420, BFR僅作為咨詢信息使用。換言之,如果沒有 接收到BFR,則作為示例,主機設備可以根據(jù)預定義速率(即,流量)或者基于 之前的BFR計算出的(即,推斷出的)速率流送內(nèi)容或數(shù)據(jù)包。在其它情況下, 主機設備可以基于主機設備的容量流出內(nèi)容或數(shù)據(jù)包。松散聯(lián)系方案將BFR用作 咨詢信息,其中如果沒有接收到BFR,則內(nèi)容仍然可以被發(fā)送給主機設備。主機 設備將BFR用作對流量進行節(jié)流的線索。由于主機設備可以得知客戶機設備將消 費緩沖器中內(nèi)容的近似速率(正負時鐘漂移),所以主機設備在發(fā)送內(nèi)容之前并不 經(jīng)常需要等待BFR。
      流量控制
      BFR涉及流量控制的一般概念,即基于客戶機設備上可以使用的緩沖器的數(shù) 量的流傳輸。流量控制可以被用于允許主機設備確切地知道在任意時刻客戶機設備 上有多少空閑緩沖器可以使用,從而確??蛻魴C設備緩沖器不會上溢。作為流量控 制的一部分,頻繁發(fā)送給主機設備的BFR可以允許主機設備調(diào)整其傳輸速率以便 確??蛻魴C設備緩沖器不會變得被用完而導致停頓。在網(wǎng)絡擁塞或由于網(wǎng)絡錯誤而 引起的延遲而導致傳輸速率降低狀況的情形中,流量控制和BFR允許數(shù)據(jù)以正確 的速率被發(fā)送。如果主機設備知道客戶機上有多少緩沖器空間可用,則主機設備可 以能夠很快地在流啟動或者在間斷期間填滿可用空間,從而導致更高的性能。在暫 時網(wǎng)絡擁塞的情形中,主機設備可以通過更快地傳遞內(nèi)容來"趕上(catch-up)" 并且重新填滿一個或多個客戶機的緩沖器。 一般而言,主機設備可以確??蛻魴C設 備的抖動緩沖器對于所存儲的內(nèi)容而言是滿的,這使得客戶機設備更能容忍網(wǎng)絡抖 動,并使得該系統(tǒng)更加穩(wěn)健。
      示例性計算機
      圖5示出了適于作為用于實踐本主題的各方面的環(huán)境的示例性計算設備或計 算機500。特別地,計算機500更詳細地描述了主機設備102和客戶機設備104。 計算機500適于作為用于實踐本主題的各方面的環(huán)境。計算機500的組件可以包括, 但并不限于,處理單元505 (例如,處理器108和118)、系統(tǒng)存儲器510 (例如,
      存儲器110和120)、以及將包括系統(tǒng)存儲器510的各個系統(tǒng)組件耦合到處理單元 505的系統(tǒng)總線521。系統(tǒng)總線521可以是包括存儲器總線或存儲器控制器、外部 總線以及使用各種總線架構中的任意一種的局部總線在內(nèi)各種類型的總線結構中 的任意一種。作為示例而非限定,這些架構包括工業(yè)標準架構(ISA)總線、微通 道架構(MCA)總線、增強型ISA (EISA)總線、視頻電子標準協(xié)會(VESA)局 部總線、以及也被稱為夾層(Mezzanine)總線的外圍成分互聯(lián)(PCI)總線。
      示例性計算機500通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可 由計算機500訪問的任何可用介質(zhì)并包括易失性和非易失性介質(zhì)、可移動和不可移 動介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。 計算機存儲介質(zhì)包括以任何方法或技術實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據(jù) 結構、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。 計算機存儲介質(zhì)包括,但并不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器 技術、CD-ROM、數(shù)字通用盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存 儲或其它磁存儲設備、或可用于存儲所需信息并可由計算機500訪問的任何其它介 質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機制之類的已調(diào)制數(shù)據(jù)信號的形式體現(xiàn)計 算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),并包括任何信息傳遞媒介。術語 "已調(diào)制數(shù)據(jù)信號"是指這樣一種信號,它的一個或多個特性已以在信號中編碼信 息的方式被設置或改變。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡或直接有 線連接等有線介質(zhì),以及諸如聲波、RF、紅外及其它無線介質(zhì)等無線介質(zhì)。以上 介質(zhì)的任意組合也應被包括在計算機可讀介質(zhì)的范圍內(nèi)。
      系統(tǒng)存儲器510包括諸如只讀存儲器(ROM) 531及隨機存取存儲器(RAM) 532等易失性和/或非易失性存儲器形式的計算機存儲介質(zhì)。含有有助于在諸如啟動 期間在計算機500內(nèi)的各要素之間傳送信息的基本例程的基本輸入/輸出系統(tǒng) (BIOS) 533通常被存儲在ROM 531中。RAM 532通常包含即刻可為處理單元 505存取和/或當前正由處理單元505操作的數(shù)據(jù)和/或程序模塊。作為示例而非限 制,圖5示出了操作系統(tǒng)534、應用程序535、其它程序模塊536、以及程序數(shù)據(jù) 537。其它程序模塊536可以包括諸如緩沖器監(jiān)視器132和客戶機BFR報告模塊 136等組件。
      計算機500還可包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。 僅是作為示例,圖5示出了對不可移動、非易失性磁介質(zhì)進行讀取和寫入的硬盤驅(qū) 動器541,對可移動、非易失性磁盤552進行讀取或?qū)懭氲拇疟P驅(qū)動器551,以及對諸如CD-ROM等可移動、非易失性光盤556或其它光學介質(zhì)進行讀取或?qū)懭氲?光盤驅(qū)動器555。可在該示例性操作環(huán)境中使用的其它可移動/不可移動、易失性/ 非易失性計算機存儲介質(zhì)包括,但并不限于,磁帶盒、閃存卡、數(shù)字通用盤、數(shù)字 錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器541通常通過諸如接口 540等不 可移動存儲器接口連接至系統(tǒng)總線521,而磁盤驅(qū)動器551和光盤驅(qū)動器555通常 通過諸如接口 550等可移動存儲器接口連接至系統(tǒng)總線521。
      以上討論并在圖5中示出的驅(qū)動器及其相關聯(lián)的計算機存儲介質(zhì)提供了用于 計算機500的計算機可讀指令、數(shù)據(jù)結構、程序模塊和其它數(shù)據(jù)的存儲。在圖5 中,例如,硬盤驅(qū)動器541被示為存儲操作系統(tǒng)544、應用程序545、其它程序模 塊546、以及程序數(shù)據(jù)547。需要注意的是,這些成分可以與操作系統(tǒng)534、應用 程序535、其它程序536、以及程序數(shù)據(jù)537相同或不同。這里操作系統(tǒng)544、應 用程序545、其它程序模塊546、以及程序數(shù)據(jù)547被給予不同編號以說明它們至 少是不同的副本。用戶可通過諸如鍵盤548和通常是指鼠標、跟蹤球或觸摸墊等定 點設備561等輸入設備向計算機500輸入命令和信息。其它輸入設備(未示出)可 包括話筒、操縱桿、游戲墊、盤式衛(wèi)星天線、掃描器等。這些和其它輸入設備經(jīng)常 通過耦合至系統(tǒng)總線的用戶輸入接口 560連接至處理單元520,但也可通過諸如并 行端口、游戲端口或通用串行總線(USB)等其它接口和總線結構來連接。
      監(jiān)視器5621或其它類型的顯示器設備也通過諸如視頻接口 5卯等接口連接至 系統(tǒng)總線521。除了監(jiān)視器562,計算機還可包括諸如揚聲器597和打印機596等 可通過輸出外圍接口 595連接的其它外圍輸出設備。
      計算機500可在使用與諸如遠程計算機580等一個或多個遠程計算機的邏輯 連接的聯(lián)網(wǎng)環(huán)境中操作。遠程計算機580可以是個人計算機、服務器、路由器、網(wǎng) 絡PC、對等設備或其它公共網(wǎng)絡節(jié)點,并且通常包括以上關于計算機500所描述 的部分或所有要素。圖5中繪制的邏輯連接包括局域網(wǎng)(LAN)571和廣域網(wǎng)(WAN) 573,并且還可包括諸如上述網(wǎng)絡106等其它網(wǎng)絡。這些聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè) 范圍的計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是很普遍的。
      當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機500通過網(wǎng)絡接口或適配器570連接至 LAN 571。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機500通常包括用于通過諸如因特 網(wǎng)等WAN 573建立通信的調(diào)制解調(diào)器572或其它裝置??蔀閮?nèi)置或外置的調(diào)制解 調(diào)器572可通過用戶輸入接口 560或其它適當機制連接至系統(tǒng)總線521。在聯(lián)網(wǎng)環(huán) 境中,關于計算機500所描述的程序模塊或其部分,可存儲在遠程存儲器存儲設備中。作為示例而非限制,圖5示出了遠程應用程序585。應該認識到的是,示出的網(wǎng)絡連接是示例性的,也可使用在計算機間建立通信鏈接的其它裝置。
      結論
      以上所述的方法和計算機描述了從客戶機設備向主機設備提供緩沖器充滿度 報告。盡管本發(fā)明在語言上被描述特定結構特征和/或方法動作,但是應當理解, 所附權利要求中所限定的本發(fā)明并不必限于所描述的特定特征或動作。而是,將特 定特征和動作作為實現(xiàn)所要求保護的發(fā)明的示例性形式公開。
      權利要求
      1.一種方法,包括確定一個或多個緩沖器的容量,其中所述容量是在緩沖器信息中描述的;計算所述一個或多個緩沖器中的空間,其中已使用的空間是在所述緩沖器信息中描述的;將所述緩沖器信息發(fā)送到主機設備,所述主機設備根據(jù)所述緩沖器信息調(diào)整流內(nèi)容的流量。
      2、 如權利要求l所述的方法,其特征在于,所述確定是對接收所述流內(nèi)容的 所有緩沖器執(zhí)行的。
      3、 如權利要求l所述的方法,其特征在于,所述確定是基于接收所述流內(nèi)容 的各緩沖器的總計容量。
      4、 如權利要求l所述的方法,其特征在于,所述發(fā)送緩沖器信息是采用緩沖 器充滿度報告的形式。
      5、 如權利要求l所述的方法,其特征在于,還包括協(xié)商所述緩沖器信息的交換。
      6、 如權利要求5所述的方法,其特征在于,所述協(xié)商包括確定關于每隔多久 所述緩沖器信息被發(fā)送到所述主機設備一次的頻率。
      7、 如權利要求5所述的方法,其特征在于,所述協(xié)商包括標識用于發(fā)送所述 緩沖器信息的通信協(xié)議。
      8、 包括當被執(zhí)行時實現(xiàn)如權利要求l所述的方法的計算機可執(zhí)行指令的一種 或多種計算機可讀介質(zhì)。
      9、 一種方法,包括 與客戶機設備協(xié)商緩沖器信息的交換; 從所述客戶機設備接收所述緩沖器信息;以及 根據(jù)所述緩沖器信息調(diào)整內(nèi)容被流送至所述客戶機設備的速率。
      10、 如權利要求9所述的方法,其特征在于,所述協(xié)商包括確定關于每隔多 久從所述客戶機接收所述緩沖器信息一次的頻率。
      11、 如權利要求9所述的方法,其特征在于,所述調(diào)整是基于與最優(yōu)緩沖器使用率值的偏差。
      12. 如權利要求9所述的方法,其特征在于,所述調(diào)整速率是調(diào)整所述內(nèi)容 在網(wǎng)絡上的傳輸速率以及所述內(nèi)容的編碼比特率。
      13. 如權利要求9所述的方法,其特征在于,還包括在沒有接收到所述緩沖器信息的情況下等待后續(xù)緩沖器信息或者使用先前緩沖器信息。
      14. 如權利要求9所述的方法,其特征在于,還包括在沒有接收到所述緩沖 器信息的情況下基于預定速率或者根據(jù)先前緩沖器信息推導出的速率將內(nèi)容流送 至所述客戶機設備。
      15. 包括當被執(zhí)行時實現(xiàn)如權利要求9所述的方法的計算機可執(zhí)行指令的一 種或多種計算機可讀介質(zhì)。
      16. —種計算機,包括 處理單元;一個或多個緩沖器,可被所述處理單元訪問并且由所述處理單元操作,其中 所述緩沖器接收自一個或多個源流送的內(nèi)容;以及緩沖器監(jiān)視器,可被所述處理單元訪問并且由所述處理單元操作,其中所述 緩沖器監(jiān)視器監(jiān)視所述各緩沖器的充滿度水平,并且基于所述各緩沖器的充滿度水 平或者關于每隔多久接收緩沖器充滿度報告的商定頻率來生成緩沖器充滿度報告。
      17. 如權利要求16所述的計算機,其特征在于,所述緩沖器包括中間抖動緩 沖器和內(nèi)容緩沖器。
      18. 如權利要求16所述的計算機,其特征在于,所述緩沖器包括存儲封裝的 數(shù)據(jù)內(nèi)容的第一緩沖器和存儲用于解碼的解除封裝的數(shù)據(jù)內(nèi)容的第二緩沖器。
      19. 如權利要求16所述的計算機,其特征在于,所述緩沖器充滿度報告是利 用特定通信協(xié)議發(fā)送給主機設備的。
      20. 如權利要求16所述的計算機,其特征在于,還包括在所述內(nèi)容緩沖器之 前的解碼器。
      全文摘要
      客戶機設備(104)從主機設備(102)中接收流內(nèi)容。在處理之前,該流內(nèi)容被置于一個或多個緩沖器(128)中。在處理之前,對這些緩沖器的容量和充滿度進行監(jiān)視(132)。在客戶機設備上對這些緩沖器的容量和充滿度進行監(jiān)視,并且將信息發(fā)送給主機設備。主機設備基于客戶機設備所提供的信息調(diào)整流內(nèi)容的速率或流量。
      文檔編號G06F3/00GK101203827SQ200680017579
      公開日2008年6月18日 申請日期2006年5月18日 優(yōu)先權日2005年5月23日
      發(fā)明者A·E·克萊門茨, G·沃迪 申請人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1