計算每個流的可用帶寬和比特流協調的發送多數據流的數據通信方法和系統的製作方法
2023-05-29 04:01:51
專利名稱:計算每個流的可用帶寬和比特流協調的發送多數據流的數據通信方法和系統的製作方法
技術領域:
本發明涉及一種用於數據通信的方法和系統,更具體而言,涉及一種用於通過網絡發送多個數據流的方法和系統,以及一種用於接收上述所發送的數據的方法和系統。此外,本發明還涉及一種存儲電腦程式的計算機可讀存儲介質,當該電腦程式在計算機上運行時,其控制計算機執行前述的數據發送和接收方法。
背景技術:
近年來用於數據通信的電信網在數量、範圍、和用戶數量上已經有了極大的增加。先前,在這種電信網上進行的大部分數據通信的一個特徵是這些數據基本上是「基於消息」的。「基於消息」的意思是那些在網絡上傳輸的數據形成了例如電子郵件消息、在傳送過程中的文件、或在客戶機-伺服器系統之間傳遞的其他應用數據的一部分。這種「基於消息」的數據的一個主要特徵是它不是特別地時間關鍵性的,時間關鍵性是指為了使數據有用,數據必須在某個傳輸時間內到達接收機終端。相反地,倘若數據在一個合理的時間量內到達了接收機,則其仍然是對最終用戶有用的。先前巳知的這種「基於消息」的數據的實例例如是標準電子郵件和使用文件傳送協議(FTP)傳送的文件。
新近,注意力已經從數據通信網發送傳統的基於消息的數據的能力轉移到了能夠以連續數據流從發射機向接收機發送數據的網絡和相關設備。這種數據的價值常常是時間關鍵性,因為網絡必須儘可能平滑和快速地把數據從發射機傳送至接收機終端,最好避免重發數據的需要。接下來根據圖1描述在現有技術中巳知的這種數據流式傳輸系統的一個實例。
通常,將被流式傳輸的數據是多媒體數據,諸如音頻和視頻數據。該音頻和視頻數據可能來自實況視聽廣播,諸如新聞或體育事件,或者可能來源於,例如,當用戶選擇時允許他們根據他們的選擇觀看電視節目和電影的視頻點播服務。然而,無論該數據的來源是什麼,相應的音頻和視頻饋送數據必須首先被適當地進行數字編碼,以便將該音頻和視頻數據信號壓縮成一個適合於在網絡上傳輸的大小。通常,依照不同的MPEG標準的其中之一來執行音頻和視頻編碼。
在對音頻和視頻數據編碼之後,將已編碼的數據傳遞到網絡伺服器,在網絡伺服器中,數據在通過網絡傳輸至客戶機之前被存儲在獨立的音頻緩衝器和視頻緩衝器中。
在進行緩衝之後,如下述更詳細的論述,數據通過網絡被發送,並且由接收機接收,其中該數據在解碼之前被緩衝。在接收機中由一個適當的解碼器執行解碼,並且將所解碼的數據發送給在該接收機上運行的應用程式用以再現。
當前使用的最普遍的網絡類型中的一種當然是那些構成網際網路的網絡,並且其使用網際協議(IP)在網絡的網絡層以IP數據報的形式傳送數據。由傳送層協議(傳輸控制協議(TCP)和用戶數據報協議(UDP))提供通過網絡層的數據傳送。TCP和UDP都是本領域中已知的,並且在例如Tannenbaum A.S.,「計算機網絡」第三版,Prentice Hall,PP521-542頁中有所描述。
UDP已經被經常用於通過網絡的流式數據服務,並且尤其是用於流式音頻和視頻數據。然而,UDP是一種無連接傳輸協議,並因此不提供服務質量控制機制,也不能夠允許為一個用戶保證特別的服務質量。此外,將UDP用於流式數據導致了其它的問題,因為它總是以相同的傳輸速率發送出數據,而不考慮網絡擁塞狀態,這很容易導致分組丟失,並由此丟失數據。也就是說,當對流式數據使用UDP時,那麼如果發生網絡擁塞,則UDP繼續以相同的傳輸速率發送數據分組,從而助長了該網絡擁塞。在沒有用於減輕網絡擁塞的機制的最壞情況下,結果可能是丟失多數或全部數據流分組。
通過使用TCP作為網絡傳輸協議可以略微緩解上述與使用UDP進行流式數據傳輸相關聯的問題。TCP是一種面向連接的協議,其把分組確認提供至發送終端,該發送終端允許對數據的傳輸速率增加控制量。更特別地,TCP包括一個解決網絡擁塞的傳輸速率控制算法,如在上述536至539頁描述的。TCP傳輸控制算法是已知的「加法的-增加-乘法的-減少(additive-increase-multiplicative-decrease)」類型的算法,其中一旦達到基本的閾值傳輸速率,則傳輸速率以一種加法方式,逐個分組地增加,直到發生分組丟失為止,於是傳輸速率隨後以一種乘法的方式減少,例如,將傳輸速率減半。因此當發生分組丟失時,TCP傳輸速率算法通過減少數據流的傳輸速率來考慮網絡擁塞,但是減少的乘法性意味著通過網絡的數據吞吐量的變化會是相當高的。圖2圖解說明了一個使用TCP的數據吞吐量的實例,由此將領會到數據傳輸速率可以相對於時間產生相當大的變化。使用TCP時在傳輸速率中相對高的變化量意味著它不是特別地適合於流式數據應用,其中,優選的是相對於時間平滑變化的穩定狀態傳輸速率。
當將要同時發送兩個或更多包含相關數據(諸如音頻和視頻數據)的數據流時,與對流式數據使用TCP導致的數據傳輸速率的頻繁變化相關的問題更加複雜化。在這種情況下,當使用TCP並且以在獨立的數據流中傳輸音頻和視頻數據作為例子,由於音頻流是通過與視頻流分離的TCP連接發送的,於是每個相應的連接將應用它自己的傳輸速率控制算法,而不考慮另一個流的傳輸速率。最終的結果是,經過一段時間,通過網絡的音頻流的數據吞吐量變得基本上與視頻流的相同,然而實際上對於大多數的視聽源來說,通常每單位時間發送的視頻數據比音頻數據要多得多。通過TCP如此獲得的在音頻流與視頻流之間的傳輸速率相等可以在接收機中具有這樣的效果,即,影響數據的適當再現,由於因為這兩個類型的數據不是分別以與音頻數據和視頻數據的產生比率相匹配的速率發送的,通常有足夠的音頻數據存儲在接收機音頻緩衝器中用於由視聽應用程式再現,但是同時在接收機視頻緩衝器中沒有如音頻數據一樣足夠的視頻數據用於再現。
由於對每個相應的流應用各自的傳輸速率控制算法,尤其是由於標準TCP傳輸速率控制算法的乘法性減少的性質,產生了進一步的問題。考慮獨立於視頻流通過TCP連接發送音頻流,而其中視頻流也使用TCP發送的情況。通常,如先前所解釋的,每個連接的平均吞吐量將基本相同,但是由於當在其中一個流中出現分組丟失時,傳輸速率會乘法性地減小,在任何特定的時刻在兩個流各自的傳輸速率之間實際上可能存在很大的差異。這些在兩個流之間的傳輸速率的潛在大的短期變化向數據傳輸引入了不確定性,並可能導致接收機中數據緩衝器的問題,因為出現臨時的大的差異時,音頻緩衝器例如可能充滿並溢出從而丟失數據,但是相應的視頻緩衝器可能已經被清空,由此阻止了AV再現的發生。此外,在這些流之間數據傳輸速率的潛在臨時性大差異可能經常擾亂這兩種類型的數據適當再現所需的傳輸速率比率,從而導致類似於如先前所解釋的後續解碼再現的問題。
先前已經通過對每個流使用無連接UDP協議,並且簡單地以合適的傳輸速率發送每個流以保持這些流之間正確的數據比率,解決了由於對多個數據流應用TCP傳輸速率控制算法而導致的上述問題。但是,如先前所討論的,UDP沒有考慮網絡擁塞和其後的由於這種擁塞而引起的數據丟失來控制傳輸速率。因此,仍然需要一種能夠保持每個流的數據正確比率和傳輸速率穩定性的傳輸速率控制方法和系統,該方法和系統同時還考慮到由網絡擁塞引起的問題。
發明內容
本發明通過提供一種數據傳輸方法和系統解決上述問題,在該方法和系統中網絡伺服器使用一個考慮了不同的因素(例如可能的網絡擁塞)而導出的傳輸速率公式,計算可用於多個數據流傳輸的總傳輸速率。該伺服器隨後以相應的數據傳輸比特率發送多個數據流,控制這些流的各自的數據傳輸速率,以使得比特率的總和小於或等於所計算的總的可用速率,同時通過在多個流之間協調比特率,維持在這些流之間適當的傳輸速率。這具有為每個數據流提供平滑穩定狀態傳輸速率同時在每一個流中維持將要發送的不同類型數據的適當比率的效果。
鑑於上述目的,根據本發明的第一方面,提供了一種通過網絡傳輸數據方法,包括以下步驟使用一個傳輸速率公式計算用於數據傳輸的總傳輸速率;以至少兩個獨立的數據流的形式把數據發送到網絡以傳送到接收機,每一個數據流以各自的數據傳輸比特率發送數據;以及控制數據流的至少一個子集的相應數據傳輸速率,以在所述流之間協調比特率;其中每個數據流的相應傳輸速率的總和基本上等於或小於所計算的總傳輸速率。
根據本發明的第二方面,還提供了一種用於通過網絡傳輸數據的系統,包括傳輸速率計算裝置,用於使用一個傳輸速率公式來計算數據傳輸的總傳輸速率;數據流傳輸裝置,用於以至少兩個獨立的數據流的形式把數據發送到網絡以傳送到接收機,每一個數據流以各自的數據傳輸比特率發送數據;以及數據流控制裝置,用於控制數據流的至少一個子集的相應數據傳輸速率,以在所述流之間協調比特率;其中該數據流控制裝置可進一步操作以將每一個數據流的相應傳輸速率的總和控制得基本上等於或小於所計算的總傳輸速率。
通過使用一個用於計算可用的總傳輸速率的傳輸速率公式,本發明提供的優點在於在為多個數據流計算總的可用帶寬時,可以考慮網絡擁塞和由此導致的分組丟失。此外,通過把每一個數據流的相應傳輸速率控制在所計算的總的可用帶寬內,通過在所計算的總的可用帶寬內協調各個流之間的比特率,可以控制在每一個流中發送的數據比率。這具有以適於在每一個流之間保持數據比率的速率來提供每一個數據流的平滑穩定狀態傳輸速率的效果。
優選地,每一個數據流中的數據是相關的,因為,例如,可能希望同時在接收機再現或使用該數據。在優選實施例中,其中一個流中的數據是音頻數據,而另一個流中的數據是視頻數據。
此外,優選地控制這些數據流的數據傳輸速率,以便防止接收機中的數據緩衝器以一個過大的速率進行填充,所述接收機接收數據流中的數據。通過以這種方式控制相應的傳輸速率,可以防止接收機中的數據緩衝器溢出而導致數據丟失。
此外,優選地,本發明進一步被設置為從接收機接收反饋數據,該反饋數據至少表示接收機接收的每一個流中所發送的數據的解碼速率,並且隨後響應於至少作為接收機解碼速率的函數的所接收數據,控制各個數據流的至少一個子集的數據傳輸速率。通過從接收機接收這種信息,可以進一步動態控制每一個流各自的傳輸速率,不僅為了保持穩定狀態傳輸速率和保持相應的數據比率,而且為了遠程控制接收機終端中的數據緩衝器的狀態,以便保證沒有因緩衝器溢出而丟失分組。
在優選實施例中,計算總傳輸速率以給出通過網絡的平均數據吞吐量,該數據吞吐量近似於使用傳輸控制協議而獲得的吞吐量,這具有以下優點,即本發明變得TCP友好(TCP-friendly),因為它降低了分組丟失比率並改善了帶寬的利用,以及對網絡上競爭TCP連接的公平性。
優選地,本發明可進一步被設置為從所述接收機中接收反饋數據,該反饋數據表示往返時間(RTT)、丟失率值、和/或接收機的接收速率值中的一個或更多個,此外還計算作為由反饋數據所指示的一個或更多個所接收的值的函數的總傳輸速率。往返時間是數據從發射機傳送到接收機並返回到發射機所需時間的度量,而丟失率值是網絡中所丟失的要發送到接收機的數據量的度量。接收速率值是在往返時間內由接收機接收到的比特數。
通過提供從接收機到伺服器的反饋,可以向伺服器提供最新信息,該信息例如表示網絡上導致分組丟失的擁塞情況。伺服器則能夠根據網絡的當前狀態,計算總的可用傳輸速率,從而優化傳輸流的傳輸速率。
此外,根據本發明的第三方面,進一步提供了一種存儲電腦程式的計算機可讀存儲介質,當該電腦程式在計算機上運行時,其控制該計算機執行根據本發明第一方面的方法。
優選地,該計算機可讀存儲介質可以是光碟、磁碟、磁光碟、固態計算機存儲器、或任何其它適合的數據存儲介質中的任何一種。
根據本發明的第四方面,還提供了從網絡接收數據的方法,該數據已經根據本發明的第一或第二方面發送,該方法包括以下步驟接收至少兩個獨立的數據流,所述每一個數據流以各自的數據傳輸速率傳輸;將每一個流中所接收的數據傳遞到各自的數據緩衝器,以在其中進行緩衝;計算表示所接收數據的一個或更多個特徵的一個或更多個數量值;以及將所計算的數量值發送到發射機,以用於計算從那裡發送的數據的總傳輸速率。
通過發送表示所接收數據的特徵的數量值,可以考慮當前的網絡狀態,更精確地計算發射機的可用於傳輸的總傳輸速率。
優選地,在第四方面中,本發明被進一步設置為在每一個緩衝器中以各自的解碼速率對數據進行解碼,其中將各自的數據解碼速率作為所計算的數量值中的至少一個發送到發射機。
通過把每一個接收機緩衝器中的數據解碼速率是多少傳送到發射機,發射機可以進一步控制每一個流的數據傳輸速率,以保證在該接收機中的數據緩衝器不被填滿,因此數據不會因此而丟失。
根據本發明的第五方面,還提供了一種用於從網絡接收數據的系統,該數據已經根據本發明的第一或第二方面發送,該系統包括數據接收裝置,用於接收至少兩個獨立的數據流,所述每一個數據流以各自的數據傳輸速率傳輸;至少兩個數據緩衝器,這些數據緩衝器被設置為從各自接收的數據流中接收數據到其中;計算裝置,用於計算表示所接收數據的一個或更多個特徵的一個或更多個數量值;以及數據傳輸裝置,用於把所計算的數量值發送到發射機,以用於計算從那裡發送的數據的總傳輸速率。
在本發明的第五方面中,提出了與先前在第四方面所描述的相同的特徵和優點。
此外,根據本發明的第六方面,還提供了一種存儲電腦程式的計算機可讀存儲介質,當該電腦程式在計算機上運行時,其控制該計算機執行根據本發明的第四方面的方法。如在第三方面一樣,根據本發明第六方面的存儲介質可以實現為磁碟、光碟、磁光碟、固態計算機存儲器等中的任何一種或更多種。
通過下列參照附圖僅僅以示例性的方式給出的本發明優選實施例的描述,本發明的其它特徵和優點將變得明顯,附圖中相同的標號表示相同的部分,其中圖1是說明現有技術的多媒體流式系統的單元的示意框圖;圖2是說明使用現有技術的TCP協議的網絡的數據吞吐量的圖表;圖3是說明用於本發明的伺服器和客戶機設備的布置的框圖;圖4是用於本發明實施例中的伺服器設備中的主要單元的框圖;圖5是用於本發明實施例中的在客戶機設備中使用的功能單元的框圖;圖6是由本發明實施例中的伺服器設備執行的方法步驟的流程圖;圖7是由用於本發明實施例中的客戶機設備執行的方法步驟的流程圖;圖8是說明用於本發明實施例中的丟失事件率(loss event rate)的計算所涉及的步驟的流程圖;圖9是在本發明實施例中使用的濾波係數的圖表;圖10是用於本發明實施例中的接收機設備中的濾波器單元的框圖;圖11是使用本發明實施例實現的多個數據流之一的通過網絡的數據吞吐量的圖表。
具體實施例方式
現在將參照圖3-11說明構成本發明優選實施例的各種單元的構造和操作。應當注意,這裡所說明的優選實施例為本發明應用到例如音頻和視頻數據的多媒體數據傳輸的非限制性示例,本發明可以在幾乎任何通過網絡發送多個數據流的應用中使用。
在圖3中說明了構成本發明優選實施例的兩個基本單元。這裡,可以看出,提供了在其中設置有第一視頻緩衝器42和第二視頻緩衝器43的伺服器40。第一視頻緩衝器42被設置為存儲已經以第一視頻編碼速率進行了編碼的編碼視頻數據,而第二視頻緩衝器43被設置為存儲已經以第二視頻編碼速率編碼的更多的編碼視頻數據,其中該第二視頻編碼速率低於存儲在第一緩衝器42中的編碼視頻數據的編碼速率。應當注意存儲在兩個緩衝器42和43中的編碼視頻數據是從相同的原始視頻數據得到的,但是其僅僅是使用不同的編碼速率被編碼,以給出不同的編碼視頻數據。通常,由於用於生成存儲在第一緩衝器42中的編碼視頻數據的編碼速率更高,所以第一緩衝器42中的編碼視頻數據將比相應的存儲在第二視頻緩衝器43中的以較低編碼速率編碼的編碼視頻數據更大。優選地使用H.623編碼對視頻數據進行編碼,儘管應當理解可以使用任何適合的視頻編碼技術,例如MPEG等。
在伺服器40中還提供了一個用於存儲編碼音頻數據的音頻數據緩衝器44。請注意,在優選實施例中僅以單個編碼速率對音頻數據進行編碼,因此僅需要單個音頻緩衝器。優選地,使用AMR音頻編碼對音頻數據進行編碼,儘管可以使用任何其它適合的音頻編碼技術,例如MP3等。
除了伺服器40之外,在該優選實施例中還提供了一個客戶機計算機50,該客戶機計算機50包括視頻緩衝器52和音頻緩衝器54。視頻緩衝器52被設置為接收並存儲從伺服器40接收到的編碼視頻數據。視頻緩衝器52存儲所接收的編碼視頻數據,直到客戶機計算機中提供的視頻解碼器從視頻緩衝器52中取出編碼視頻數據,用於解碼並再現其中被編碼的視頻信號。類似地,音頻緩衝器54接收從伺服器40發送的編碼音頻數據,對編碼音頻數據進行緩衝,直到在客戶機計算機中提供的音頻解碼器從音頻緩衝器54中取出編碼音頻數據,用於解碼並再現其中被編碼的音頻信號。
為了在伺服器計算機和客戶機計算機之間提供數據通信,在伺服器40和客戶機50之間提供第一用戶數據報協議(UDP)連接10,沿著該連接從伺服器40發送編碼視頻數據。類似地,從伺服器40到客戶機50還提供了第二UDP連接20,沿著該連接發送編碼音頻數據。由伺服器以下面將說明的方式對各個UDP連接10和20的傳輸速率進行控制。
除了在伺服器和客戶機之間的UDP連接之外,為了能夠有效地控制兩個UDP連接10和20的傳輸速率,在優選實施例中在客戶機和伺服器之間建立傳輸控制協議(TCP)連接30,以用於主要從客戶機返回到伺服器的控制消息的傳輸。稍後將討論通過TCP連接從客戶機發送到伺服器的反饋數據的進一步的細節。
現在轉至圖4,圖4以框圖的形式例示了在本發明優選實施例中的伺服器計算機40中所需的單元。應當注意圖4僅例示了本發明的操作所必需的那些伺服器組件,而沒有例示伺服器系統操作所需的那些其它單元,應當理解,預期的讀者是本領域的技術人員,他們可以識別出完全的操作需要哪些伺服器系統的附加單元。
在優選實施例中,伺服器計算機40包括多媒體應用控制器41,它被設置為接收編碼音頻數據和編碼視頻數據,並如先前針對圖3所述的,在緩衝器42,43和44中緩衝接收到的數據。請注意為清楚起見,這些緩衝器未在圖4上顯示。多媒體應用控制器41通過TCP連接30把控制消息發送到客戶機計算機50,並接收來自客戶機計算機50的控制消息。此外,多媒體應用控制器從適當的緩衝器向網絡連接模塊47提供編碼視頻數據和編碼音頻數據,該網絡連接模塊對數據進行分組化,用於通過網絡向客戶機計算機進行傳輸。因此,操作網絡連接模塊47以從多媒體應用控制器接收編碼音頻和視頻數據,把數據分組化成適合傳輸的形式,並分別以適當的發送速率以兩個相應的UDP數據流將數據分組發送到網絡上。數據流的各個發送速率由發送速率計算器46根據稍後將討論的適合的傳輸速率公式計算。發送速率計算器46把為音頻和視頻數據流計算的發送速率傳遞到網絡連接模塊47,以把所計算的傳輸速率通知給網絡連接模塊47。在優選實施例中,通過從客戶機計算機到多媒體應用控制器的TCP連接,獲得在發送速率計算器46中計算的傳輸速率公式的輸入數據,那些輸入數據通過網絡連接從多媒體應用控制器傳遞到發送速率計算器。
進一步提供了網絡控制器模塊48,以控制網絡連接47執行適當的數據分組化過程,以允許將音頻和視頻數據發送到網絡上。
此外,進一步提供了作為存儲器等的重傳緩衝器49,其被設置為從網絡連接47接收數據分組以及適當的控制信號,並且如果網絡連接47必須重發緩衝分組時,緩衝其中所接收的數據分組。所發送的數據分組的緩衝和重傳與本發明無關,因此沒有在這裡闡述進一步的細節。
儘管未在圖4中顯示,仍然應當注意伺服器計算機40進一步包括至少一個計算機可讀存儲介質,該計算機可讀存儲介質存儲用於控制伺服器計算機的操作以執行本發明的電腦程式。該計算機可讀存儲介質可以是任何已知的類型,並且特別地可以由光碟、磁碟、磁光碟、固態計算機存儲器、或任何其它適合的數據存儲介質中的任何一個或其組合而形成。
圖5是本發明優選實施例中所需的客戶機計算機50的功能單元的框圖。與伺服器計算機40的說明相似,應當理解圖5沒有例示操作客戶機計算機50所需的所有單元,而僅例示了本發明優選實施例的操作所需的那些功能塊單元。作為本領域技術人員的預期讀者,應當理解為了進行完整的操作需要客戶機計算機的哪些附加單元。
在客戶機計算機50中提供了多媒體應用控制器51,其對應於伺服器中提供的多媒體應用控制器41。多媒體應用控制器51提供了在客戶機計算機50中運行的多媒體應用的高級控制,並且通過由TCP連接30傳遞的控制消息與伺服器中相應的多媒體應用控制器41進行通信。類似地,多媒體應用控制器51向構成優選實施例的客戶機計算機50的其它功能單元提供控制信號。
在客戶機計算機50中進一步提供了網絡連接模塊57,其被設置為從網絡接收兩個或更多個數據流中的數據分組。與接收到的兩個或更多個數據流中的數據有關的控制信息被傳遞到用於計算數量值的量度計算器(metrics calculator)56,這些數量值表示接收到的數據流的某些特徵,並且所計算的數量值被傳遞到反饋發射機58,用以作為控制消息通過TCP連接30在網絡上傳回。稍後將給出有關數量值計算的進一步信息。
網絡連接57接收音頻和視頻數據流,並從每個流中的分組中提取編碼音頻和視頻數據。然後編碼音頻和視頻數據被傳遞給緩衝器控制器59,緩衝器控制器59把接收到的編碼音頻數據饋送到音頻緩衝器54,並把接收到的編碼視頻數據饋送到視頻緩衝器52。緩衝器控制器59進一步被設置為監測音頻緩衝器54和視頻緩衝器52的狀態,以確定每個緩衝器有多滿,以及每個緩衝器清空的速率,該速率表示存儲在緩衝器中的數據的解碼速率。進一步提供了音頻解碼器53,它可從音頻緩衝器54中讀取編碼音頻數據,並對編碼音頻數據進行解碼,以提供解碼音頻數據作為輸出。類似地,提供了視頻解碼器55,其從視頻緩衝器52取出編碼視頻數據,並對編碼視頻數據進行解碼以提供視頻輸出信號。
緩衝器控制器59在接收到與音頻和視頻緩衝器狀態有關的信息後,馬上將此信息傳遞到反饋發射機,用以將其合併到通過TCP連接30傳回伺服器計算機的控制消息中。
儘管未在圖5中顯示,應當注意客戶機計算機進一步包括至少一個計算機可讀存儲介質,它存儲用於控制客戶機計算機的操作以執行本發明的電腦程式。該計算機可讀存儲介質可以是任何已知的類型,並特別地可以由光碟、磁碟、磁光碟、固態計算機存儲器、或任何其它適合的數據存儲介質中的任何一種或其組合而形成。
已經說明了構成本發明的伺服器設備和客戶機計算機設備的基本功能塊,現在將說明本發明優選實施例的操作。
圖6是根據本發明優選實施例的由伺服器計算機40執行的步驟的流程圖。首先,在步驟S2,發送速率計算器46為將要從伺服器計算機40發送的所有各個數據流計算可用的總帶寬。該值total_rate表示傳輸速率的上限,當每個獨立的數據流各自的傳輸速率相加在一起時,不能超過該上限。根據下列原理計算total_rate值。
典型地,當前在網際網路中使用的先前的多媒體會議應用是基於UDP傳輸協議的,這正如先前討論的,沒有提供服務質量控制機制,並因此不能夠執行諸如對例如網絡擁塞進行補償所需的控制措施。因此,如上所述,當出現網絡擁塞時競爭TCP連接減小它們的傳輸速率,而沒有任何的UDP通信速率減小。
為了避免此問題,在本發明中,採用擁塞控制方案增強了UDP音頻和視頻數據流,total_rate參數的計算構成了該擁塞控制方案的一部分。更特別地,計算該參數total_rate以提供一個「TCP友好」的總傳輸速率,它是在時間上與通過TCP連接實現的吞吐量相類似的傳輸速率。
在優選實施例中,使用已經導出的傳輸速率公式計算總傳輸速率參數total_rate,以便對TCP連接在時間上的平均吞吐量建模,並由此計算總速率,以便提供TCP友好的傳輸速率。在優選實施例中,我們使用下面的等式1中說明的傳輸速率公式bit_rate_stream=c(packet_medium_sizeRTTloss_rate)]]>等式1請注意,應用到普遍存在的TCP連接的上述等式的來源可參見Floyd S.「在分組交換網絡中與多個擁塞網關的連接,第一部分單向通信(Connections with Multiple Congested Gateways in PacketSwitched Networks Part 1One Way Traffic)」,計算機通信評論(Computer Communications Review),1991年10月,卷21,第5期,30-47頁。
在上面的等式中,C是在0.87到1.31範圍內的常數,RTT是分組從一計算機通過網絡傳輸到另一計算機,並返回所需的以秒為時間度量的往返時間,loss_rate是在接收機中丟失分組的度量,而packet_medium_size是作為計算對象將在流中發送的分組的平均大小。請注意稍後進一步討論等式1的這些項以及如何計算它們以在傳輸速率公式中使用。
等式1給出了bit_rate_stream值,它是對當前網絡狀態中能夠實現單個TCP連接的平均帶寬的估計。然而,在優選實施例中,我們不直接使用此估計作為流的總傳輸速率,而是將此bit_rate_stream值如下所示代入等式2中total_rate_stream=min(bit_rate_stream,2*receiving_rate_stream)等式2參數receiving_rate_stream是通過TCP連接從客戶機計算機接收到的,並且對應於由客戶機接收到的在RTT秒內計算的特定流的比特數量。
上述等式2給出了使單個UDP流表現TCP友好性時可用的總帶寬。但是,在本實施例中,我們關注於多個流的傳輸,因此必須對每個將要發送的數據流分別執行上述計算。也就是說,對每個流(即優選實施例中的音頻和視頻流)都依次應用等式1和2,從而得到每個流的total_rate_stream值。這樣得到的每個流的各個值隨後被相加以給出total_rate值,該值是可用於所有的流以提供TCP友好性的總的可用帶寬,並由此考慮了可能的網絡擁塞。
在計算了可用的總傳輸速率之後,在步驟S4,伺服器中的發送速率計算器46為每一個數據流計算各自的傳輸速率,即在優選實施例中的音頻UDP流的傳輸速率(audio_rate)和視頻UDP流的傳輸速率(video_rate)。如下計算audio_rate和video_rate的值。
如先前參照圖3所述,音頻數據以與視頻數據分離的UDP流發送,其中視頻數據通過另外一個UDP流發送,因此存在兩個獨立的UDP連接,每一個UDP連接都用於一個流。雖然可以認為每個流在競爭相同的網絡帶寬,但實際上不是這樣,因為不可能在相同的時刻發送視頻和音頻數據分組。因此,在兩個數據流是音頻和視頻流的情況下,先前計算的總發送比特率可以等於音頻發送比特率加上視頻發送比特率。此外,如將在下文中說明的,在優選實施例中,伺服器從客戶機接收關於視頻和音頻緩衝器狀態的信息,以及視頻和音頻分組解碼速率的信息。因此,可以控制音頻和視頻數據流的發送速率,以控制客戶機中的緩衝器的填充速率。其如下實現。
首先,定義參數filling_rate_audio和filling_rate_video,它們分別是接收機中的音頻和視頻緩衝器填充數據的速率。在本實施例中filling_rate_audio=audio_rate-decoding_audio_rate 等式3以及filling_rate_video=video_rate-decoding_video_rate 等式4假設需要控制接收機中的緩衝器以便以比率x∶y填充緩衝器,則x(filling_rate_audio)=y(filling_rate_video)等式5以及total_rate=audio_rate+video_rate等式6執行適當的代入,並分別解出audio_rate和video_rate,那麼得出audio_rate=y(total_rate-decoding_video_rate)+x(decoding_audio_rate)x+y]]>等式7video_rate=x(total_rate-decoding_audio_rate)+y(decoding_video_rate)x+y]]>等式8這樣,從上述很明顯看出,可以依據在接收機中的各個音頻和視頻解碼速率,控制各個音頻發送速率和視頻發送速率,以協調一個流與另一個流之間的比特率。此外,應當注意到上述參數total_rate是先前應用等式1和2計算出來的值,以給出可用於所有數據流傳輸的總的可用帶寬,即,total_rate=total_rate_stream_1+total_rate_stream_2+……+total_rate_stream_n其中,n是同時發送的數據流的數量。
返回到圖6,在計算了每個流的音頻和視頻發送速率之後,在步驟S6,伺服器中的網絡連接47以計算的音頻和視頻發送速率,發送作為獨立的UDP數據流的音頻和視頻流。應當注意,當連續發送音頻和視頻流時,圖6中的步驟雖然是順序地顯示的,但是實際上是並行執行的,使得實際上一旦已經計算出了音頻和視頻傳輸速率的新值,就立即更新音頻和視頻流的傳輸速率。但是,當在執行新的計算時,這些流繼續以先前計算的速率發送。
圖11說明了當發送與由圖2中描繪的TCP連接發送的相同的數據時,根據本發明優選實施例控制的一個數據流的測量的傳輸速率的曲線圖。從圖11中可以看出,在會話開始時在經歷了初始的瞬態變化之後,流的傳輸速率穩定了,並隨著時間的流逝以相對小的變化繼續。此外,當與在圖2中顯示的TCP連接所經歷的傳輸速率相比較時,將看到實現了一個幾乎與TCP相等的平均吞吐量,但是沒有由於TCP的乘法性減少控制算法所導致的大的傳輸速率變化。這種提供了針對時間的平滑傳輸速率的特性使得本發明特別適合用於發送需要連續流的數據。
在圖6的步驟S8中,伺服器40從客戶機計算機50接收反饋數據,該反饋數據在優選實施例中是執行步驟S2和S4的總傳輸速率和數據流傳輸速率計算所需的數據。具體而言,對每一個數據流,伺服器接收數據,該數據用於通知伺服器當前在客戶機正在經歷的往返時間、在客戶機的分組丟失率、客戶機中音頻和視頻緩衝器各自的解碼速率、以及在客戶機的每個數據流的數據接收速率。這些數量值通過TCP連接從客戶機發送回伺服器。
一旦已經從客戶機接收到了更新的反饋數據,該數據被傳遞到伺服器中的發送速率計算器46,發送速率計算器再一次執行步驟S2和S4的計算,將結果傳遞到網絡連接47,網絡連接發送具有新計算的發送速率的音頻和視頻流。該過程在客戶機會話期間持續。
現在將針對在圖7中闡明的客戶機計算機的操作,討論從客戶機計算機傳遞迴伺服器的數量值的計算。參照圖7,在步驟S1,客戶機計算機50中的網絡連接57接收作為通過網絡的各個UDP傳輸的獨立的音頻和視頻數據流。如先前所述,網絡連接57解除來自各個UDP流的編碼音頻和視頻數據的分組化,並且將編碼視頻和音頻數據傳遞至緩衝器控制器59,用於緩衝和隨後的解碼。
由緩衝器控制器59接收的已編碼的音頻和視頻被分別存儲在音頻緩衝器54和視頻緩衝器52中。在步驟S3,緩衝器控制器59分別詢問音頻緩衝器54和視頻緩衝器52,以便確定每個緩衝器的狀態。特別地,緩衝器控制器確定關於每個緩衝器有多滿,以及音頻和視頻解碼器53和55分別以多快的速率對每個緩衝器中的編碼音頻和視頻信息進行解碼的信息。這表示了音頻和視頻緩衝器將以多快的速度被各自的解碼器清空。一旦緩衝器控制器確定了每個緩衝器的狀態,所確定的信息就被傳遞到反饋發射機58以封裝成一個控制消息,用以傳回伺服器計算機40。
除了把編碼音頻和視頻數據傳遞到緩衝器控制器之外,網絡連接57還把與接收到的數據相關的信息傳遞到量度計算器56,以允許量度計算器56計算由反饋發射機58傳回伺服器的定量的量度值。因此,在步驟S5,S7和S9,量度計算器分別為每個流計算往返時間(RTT)、丟失事件率、和每個流的接收數據速率,在伺服器端需要所有這些數值作為等式l和2的輸入,用於計算每個數據流的可用傳輸速率。應當注意,為每個接收到的數據流分別計算這三個量度,以使得為每個接收到的數據流提供一組量度。接下來將依次討論這些數量值中的每一個的計算。
就RTT來說,如先前所述的,RTT是分組從一計算機通過網絡傳播到另外一計算機並返回所需時間的度量。因此,RTT是在客戶機計算機的量度計算器56中測量的某個值,但是為了防止振蕩,優選地如下進行計算RTT=0.2*RTTsample+0.8*RTTmean等式9RTTsample值是量度計算器最近測量的RTT的度量,而RTTmean值是所有先前RTT度量的均值。
在步驟S7中,量度計算器56計算在客戶機計算機處經歷的每個流的丟失事件率。丟失事件率的計算是量度計算器56所要執行的最複雜的計算,並且依賴於根據到達分組的序號檢測UPD流中丟失的分組。由網絡連接基於到達分組中分組序號的檢測來執行此丟失分組的檢測,其中如果至少有三個具有高於期望分組的序號的分組到達了接收機,而期望的分組還沒有到達,那麼該期望的分組被定義為丟失。因此,如果期望具有序號5的分組,則在隨後將要到達的分組是分組6、分組7、隨後是分組5的情況下,不把分組5定義為丟失。但是,如果接下來按順序到達的三個分組是分組7、分組8、和分組6,則因為到達的三個分組中的每一個都具有高於期望分組5的序號,所以將分組5定義為丟失。
如上已經規定了如何將分組定義為丟失,量度計算器隨後定義被稱為丟失事件的另一個現象。在優選實施例中,丟失事件定義為在任何RTT度量中檢測到一個或更多個分組的丟失。因此,如果在任何特定的RTT度量中,序號為4、6、7、9、10、和11的分組到達,則儘管分組5和8已經丟失,實際上在所測量的特定RTT中僅存在一個丟失事件。此方法解決了在網絡中同時丟失多個分組的問題,而不會過度影響總丟失事件率的計算。
一旦如上所述檢測到丟失事件,在步驟S74,量度計算器56計算最近的丟失間隔,該丟失間隔是在當前檢測的丟失事件和前一次檢測到的丟失事件之間接收到的分組數。量度計算器存儲最新計算的丟失間隔,以及n個最近計算的丟失間隔,用於應用在加權濾波器中以給出平均丟失間隔值。如下計算該平均丟失間隔值。
參照圖9和10,圖10說明了構成量度計算器和用於計算丟失率的一些功能單元。更具體而言,丟失事件檢測器562如前所述檢測丟失事件,並將最近計算的丟失間隔輸出至多個串聯丟失間隔緩衝器564中的第一個。當一個新的丟失間隔被輸入至第一串聯緩衝器564時,保留在第一緩衝器中的前一次的丟失間隔值被移位至下一個緩衝器,後者中的值被移位至串聯緩衝器中的下一個緩衝器,等等,如在圖10中顯示。這樣,n個最近的丟失間隔值被存儲以用於計算平均丟失間隔值。每個存儲在移位緩衝器564中的丟失間隔值分別與時間加權丟失間隔係數A0至An相乘,這些時間加權丟失間隔係數被存儲在相應的係數存儲器656中。根據圖9中顯示的時間加權係數函數導出係數A0到An各個值,這保證了平均丟失間隔的計算在更大程度上依賴於最近丟失間隔而不是根據先前計算存儲的歷史丟失間隔。應用這種加權濾波器的目的是保證所計算的丟失事件率平滑地發生變化。
在加法器566中將加權丟失間隔計算的結果相加,將其結果傳遞至反相器(inverter)568以計算丟失率,該丟失率是由加法器566計算的平均丟失間隔的倒數。如先前所述,這樣計算的丟失率隨後被傳遞至反饋發射機58,用於傳輸到伺服器計算機。
量度計算器56還執行對接收到的數據速率的計算,該接收到的數據速率是在RTT秒內由客戶機在數據流中接收到的比特數量的直接度量。與在任何時間在每個流中接收到的數據量相關的信息從網絡連接57傳遞至量度計算器56,用於計算每個流的接收速率。如先前所述,隨後所計算的每個流的接收速率被傳遞至反饋發射機58,以傳輸回伺服器計算機。
一旦反饋發射機58已經從緩衝器控制器59和量度計算器56接收到所需的信息,它就將該信息分組化成適合於通過網絡以TCP連接30傳輸的形式。
應當注意,在圖7的流程圖中顯示的步驟S1到S13僅為了進行說明,實際上客戶機計算機50可以以任何希望的順序執行這些步驟中的任何一個或所有步驟。此外,還可以並行地執行這些步驟中的若干個,例如由緩衝器控制器59執行的音頻和視頻緩衝器的檢查和測量可以與由量度計算器56執行的計算並行進行。但是請注意,在優選實施例中接收機必須已經實際接收到了音頻和視頻數據流中的數據,以得到計算發送回伺服器計算機的數量值所需的信息。
在伺服器中,由網絡控制器48和網絡連接47一起通過根據計算的速率把分組實際釋放到網絡上來控制每個流的實際傳輸速率。但是在優選實施例中描述的音頻和視頻數據傳輸的特定情況下,尤其對於視頻數據,所計算的速率可能不能滿足所用的特定編碼速率的傳輸速率的需求。在此情況下,如果有跡象表明所計算的視頻流傳輸速率不得不下降,以使得以目前的視頻編碼速率不可能在視頻流中發送足夠的數據以防止接收機的視頻緩衝器被清空,則網絡控制器48控制網絡連接47採用來自低速率編碼視頻緩衝器43的編碼視頻數據,該編碼視頻數據採用了更低的質量進行編碼,這更適合於以更低的計算傳輸速率通過網絡傳輸。在接收機中,將低率速編碼視頻數據置於視頻緩衝器中,並且視頻解碼器55檢測到該低編碼速率,並把它自己的解碼速率改變為低速率,這減小了從視頻緩衝器中讀取視頻數據的速率。這樣的措施防止了視頻緩衝器被完全清空,從而使得能夠在客戶機計算機上連續進行視頻再現。
應當注意到,由於本發明優選實施例是致力於將音頻和視頻數據作為多個數據流發送的,則在優選實施例中,用於設定每一個流各自的比特率的標準被選擇為反映音頻和視頻數據的特殊需要,因為它必須在接收機中被解碼以再現原始的音頻和視頻信號。但是,本發明不限於將音頻和視頻數據作為多個數據流進行傳輸,實際上幾乎任何類型的需要以多個流發送的數據都可以利用本發明進行發送。此外,取決於要對數據進行的應用來選擇在這些流之間協調比特率的特定標準。例如,可以設想本發明的其他實施例,其中數據以多個流被發送以便實現遠距離控制,例如遙控一個在其上安裝了多個傳感器的遠程運輸工具。這樣的運輸工具例如可以是配備了無線網絡連接的可潛水的海底探測運輸工具等等。在這種情況下,可能需要多個數據流向潛艇的操縱單元提供操縱控制信息,並向各個傳感器提供傳感器控制信息。於是用於在這樣的數據流之間協調比特率的標準將不同於那些在本發明優選實施例中與音頻和視頻數據傳輸相關的所要求的標準,因此很明顯,為了控制協調一個數據流與另一個數據流之間的比特率所選的標準是由應用決定的。
此外,對於在本發明中可以使用的總傳輸帶寬的計算,在優選實施例中,我們使用了一種試圖模擬由標準TCP連接獲得的平均吞吐量的傳輸速率公式。但是,應當理解該特定的公式和使用該公式的原因都不是要限制本發明,實際上,可以使用任何合適的傳輸速率公式計算隨後用於計算各個流傳輸速率的可用的總傳輸速率。
更特別的並作為一個示例,在將通過一個網際網路協議網絡進行傳輸的情況下,則可以使用其它提供TCP友好傳輸速率的傳輸速率公式,以替代在本特定實施例中使用的公式,在本領域中已知有各種其它TCP友好的公式。此外,當使用需要不同的參數作為輸入的不同公式時,則應當將客戶機計算機設置用來計算和提供伺服器所需要的任何參數。在不使用IP網絡的情況下,則所選擇的傳輸速率公式應當優選地是對於使用在感興趣的特定網絡上的任何傳輸協議有意義的公式,並且其優選地提供有意義的傳輸速率控制,以考慮例如網絡擁塞,以及所導致的分組丟失等等的因素。在本發明的其它實施例中,對於本領域的技術人員應當明白,哪些傳輸速率公式是適合的要取決於本發明的特定應用領域。
接下來將說明另一個傳輸速率公式的示例,該傳輸速率公式可用於模擬TCP吞吐量,並提供如上所述的其他這樣的公式的示例。
以下給出的吞吐量等式是Reno TCP的吞吐量等式的稍微簡化的版本。在本發明中它可以替換等式1以計算每個流的傳輸速率。該吞吐量等式是X=sR*sqrt(2*b*p/3)+(t_RTO*(3*sqrt(3*b*p/8)*p*(1+32*p^2))).]]>等式10其中X是以字節/秒為單位的發送速率;s是以字節為單位的分組大小;R是以秒為單位的往返時間;p是丟失事件率,在O到1.0之間,為分組丟失事件數量與所發送分組數量之比;t_RTO是以秒為單位的TCP重傳超時值;以及b是由單個TCP確認所確認的分組數目。
如先前所述計算以上公式中使用的往返時間和丟失事件率。此外,我們可通過設定t_RTO=4*R來進一步簡化以上計算。雖然可以對t_RTO進行更精確的計算,但是通過現有的TCP實施方式,以當前的設定值進行的實驗已經獲得了合理的公平性。另一個可能性是設定t_RTO=max(4R,1秒),以與RTO的推薦最小值1秒相匹配。
在使用上述等式的本發明的實施例中,如先前所述,上述等式10簡單替代了在先前所述實施例中的等式1。其它的處理步驟基本上是相同的。
權利要求
1.一種通過網絡傳輸數據的方法,包括以下步驟使用一傳輸速率公式計算用於數據傳輸的總傳輸速率;以至少兩個獨立的數據流把數據發送到網絡上以傳輸到接收機,每一個所述數據流以各自的數據傳輸比特率發送數據;以及控制所述各個數據流的至少一個子集的相應數據傳輸速率,以在所述流之間協調比特率;其中每個數據流的相應傳輸速率的總和基本上等於或小於所計算的總傳輸速率。
2.根據權利要求1的方法,其中控制所述數據流的數據傳輸速率,以防止所述接收機中的數據緩衝器溢出,所述接收機接收所述數據流中的數據。
3.根據權利要求1或2的方法,其中所述控制步驟進一步包括從所述接收機中接收反饋數據的步驟;以及響應於所接收的數據,控制所述各個數據流的至少一個子集的數據傳輸速率。
4.根據權利要求3的方法,其中所接收的反饋數據至少表示所述接收機接收到的每個流中發送的數據的解碼速率;並進一步控制所控制的數據流的傳輸速率,使該傳輸速率至少作為所述接收機的解碼速率的函數。
5.根據權利要求4的方法,其中在兩個數據流的情況下,根據下列等式控制各個傳輸速率sr_str_1=y(tr-dr_str2)+x(dr_str1)x+y]]>sr_str_2=x(tr-dr_str1)+y(dr_str2)x+y]]>其中相關的變量如下Sr_str_1第一數據流的發送速率;Sr_str_2第二數據流的發送速率;tr所計算的總傳輸速率;dr_str1第一數據流中的數據在接收機的解碼速率;dr_str2第二數據流中的數據在接收機的解碼速率;x在從第一數據流接收數據的接收機中的第一緩衝器的填充速率的係數;以及y在從第二數據流接收數據的接收機中的第二緩衝器的填充速率的係數。
6.根據前述任一權利要求的方法,其中計算所述總傳輸速率以給出通過網絡的平均數據吞吐量,該數據吞吐量類似於使用傳輸控制協議(TCP)而獲得的數據吞吐量。
7.根據前述任一權利要求的方法,其中所述計算步驟進一步包括以下步驟從所述接收機接收反饋數據,該反饋數據表示往返時間值(RTT)、丟失率值、和/或所述接收機的接收速率值中的一個或更多個;以及計算所述總傳輸速率,所述總傳輸速率作為由所述反饋數據表示的一個或更多個所接收的值的函數;其中所述往返時間是數據從一發射機傳送到所述接收機並回到所述發射機所需的時間的度量;所述丟失率值是發送到所述接收機的丟失的數據量的度量;而所述接收速率值是在所述往返時間內接收到的比特數。
8.根據權利要求7的方法,其中根據下式計算所述總傳輸速率bit_rate_per_stream_x=c(data_medium_sizetRTTlossrate)]]>其中total_rate_stream_x=min(bit_rate_per_stream_x,2×Receiving_Rate_x)以及total_rate=total_rate_stream_1+total_rate_stream_2+.....+total_rate_stream_n其中x∈{1,2,.....n},data_medium_size是每個流通過網絡發送的數據的平均大小的度量,c是在0.87≤c≤1.31範圍內的一個常數,n是將要發送的數據流的數量。
9.根據前述任一權利要求的方法,其中在兩個或更多個數據流的至少一個子集中發送的數據是相關的。
10.根據權利要求9的方法,其中所述數據流中的至少一個包含第一類型的實時數據,並且所述數據流中的一個或更多個其它數據流包含與所述第一類型的所述數據相關的第二類型的實時數據。
11.一種在網絡上生成多個數據流的方法,包括根據權利要求1至10中的任意一個的數據傳輸方法。
12.一種用於通過網絡傳輸數據的系統,其包括傳輸速率計算裝置,用於使用一傳輸速率公式來計算用於數據傳輸的總傳輸速率;數據流傳輸裝置,用於以至少兩個獨立的數據流把數據發送到網絡上以傳輸到接收機,每一個所述數據流以各自的數據傳輸比特率發送數據;以及數據流控制裝置,用於控制各個數據流的至少一個子集的相應數據傳輸速率,以在所述流之間協調比特率;其中該數據流控制裝置可進一步操作,以使得每一個數據流的相應傳輸速率的總和基本上等於或小於所計算的總傳輸速率。
13.根據權利要求12的系統,其中所述數據流控制裝置被進一步設置用來控制所述數據流的數據傳輸速率,以防止所述接收機中的數據緩衝器溢出,所述接收機接收所述數據流中的數據。
14.根據權利要求12或13中的任何一個的方法,進一步包括數據接收裝置,用於從所述接收機中接收反饋數據;其中所述數據流控制裝置被進一步設置為響應於所接收的數據,控制各個數據流的至少一個子集的數據傳輸速率。
15.根據權利要求14的系統,其中所接收的反饋數據至少表示所述接收機接收到的每個流中所發送的數據的解碼速率;並且所述數據流控制裝置被進一步設置為控制所控制數據流的傳輸速率,使該傳輸速率至少作為所述接收機的解碼速率的函數。
16.根據權利要求15的系統,其中在兩個數據流的情況下,根據下列等式控制各個傳輸速率sr_str_1=y(tr-dr_str2)+x(dr_str1)x+y]]>sr_str_2=x(tr-dr_str1)+y(dr_str2)x+y]]>其中相關的變量如下Sr_str_1第一數據流的發送速率;Sr_str_2第二數據流的發送速率;tr所計算的總傳輸速率;dr_str1第一數據流中的數據在接收機的解碼速率;dr_str2第二數據流中的數據在接收機的解碼速率;x在從第一數據流接收數據的接收機中的第一緩衝器的填充速率的係數;以及y在從第二數據流接收數據的接收機中的第二緩衝器的填充速率的係數。
17.根據權利要求12至16中的任一權利要求的系統,其中計算所述總傳輸速率以給出通過網絡的平均數據吞吐量,該數據吞吐量類似於使用傳輸控制協議(TCP)而獲得的數據吞吐量。
18.根據權利要求12至17中的任一權利要求的系統,進一步包括數據接收裝置,用於從所述接收機接收反饋數據,該反饋數據表示往返時間值(RTT)、丟失率值、和/或所述接收機的接收速率值中的一個或更多個;並且其中所述傳輸速率計算裝置被進一步設置用來計算所述總傳輸速率,所述總傳輸速率作為由該反饋數據所表示的一個或更多個所接收的值的函數;其中所述往返時間是數據從一發射機傳送到所述接收機並回到所述發射機所需的時間的度量;所述丟失率值是發送到所述接收機的丟失的數據量的度量;而所述接收速率值是在所述往返時間內接收到的比特數。
19.根據權利要求18的系統,其中根據下式計算所述總傳輸速率bit_rate_per_stream_x=c(data_medium_sizetRTTlossrate)]]>其中total_rate_stream_x=min(bit_rate_per_stream_x,2×Receiving_Rate_x)以及total_rate=total_rate_stream_1+total_rate_stream_2+.....+total_rate_stream_n其中x∈{1,2,.....,n},data_medium_size是通過網絡發送的數據的平均大小的度量,c是在0.87≤c≤1.31範圍內的一個常數,n是將要發送的數據流的數量。
20.根據權利要求12至19中的任一權利要求的系統,其中在至少兩個或更多個數據流中發送的數據是相關的。
21.根據權利要求20的系統,其中所述數據流中的至少一個包含第一類型的實時數據,並且所述數據流中的一個或更多個其它數據流包含與所述第一類型的所述數據相關的第二類型的實時數據。
22.一種存儲電腦程式的計算機可讀存儲介質,當該電腦程式在一計算機上運行時,其控制該計算機執行根據權利要求1至11中的任一權利要求的方法。
23.一種從網絡接收數據的方法,該數據已經根據權利要求1至11中的任意一個所要求的傳輸方法發送,或者該數據已經由權利要求12至21中的任意一個所要求的系統發送,該方法包括以下步驟接收至少兩個獨立的數據流,每一個所述數據流以各自的數據傳輸速率傳輸;將接收到的每一個數據流中的數據傳遞到各自的數據緩衝器,以在其中進行緩衝;計算表示所接收的數據的一個或更多個特徵的一個或更多個數量值;以及將所計算的數量值發送到一發射機,以用於計算從該發射機發送的數據的總傳輸速率。
24.根據權利要求23的方法,進一步包括以下步驟以相應的解碼速率對每一個緩衝器中的數據進行解碼,其中將所述各個數據解碼速率作為所計算的數量值中的至少一個發送到發射機。
25.根據權利要求23或24的方法,其中所述計算步驟進一步包括計算往返時間值(RTT)、丟失率值、和/或接收速率值中的一個或更多個,作為所述一個或更多個數量值,其中所述往返時間是數據從一發射機傳送到所述接收機並回到所述發射機所需的時間的度量;所述丟失率值是發送到所述接收機的丟失的數據量的度量;而所述接收速率值是在所述往返時間內由所述接收機接收到的比特數。
26.根據權利要求25的方法,其中使用n個最近丟失間隔的加權濾波計算丟失事件率,該丟失間隔為在兩個丟失事件之間接收到的數據輸出。
27.一種用於從網絡接收數據的系統,該數據已經根據權利要求1至11中的任意一個所要求的傳輸方法發送,或者該數據已經由權利要求12至21中的任意一個所要求的傳輸系統發送,該系統包括數據接收裝置,用於接收至少兩個獨立的數據流,每一個所述數據流以各自的數據傳輸速率傳輸;至少兩個數據緩衝器,這些數據緩衝器被設置為從各自所接收的數據流中接收數據到其中;計算裝置,用於計算表示所接收的數據的一個或更多個特徵的一個或更多個數量值;以及數據傳輸裝置,用於把所計算的數量值發送到一發射機,以用於計算從該發射機發送的數據的總傳輸速率。
28.根據權利要求27的系統,進一步包括數據解碼裝置,用於以相應的解碼速率對每一個緩衝器中的數據進行解碼,其中將所述各個數據解碼速率作為所計算的數量值中的至少一個發送到所述發射機。
29.根據權利要求27或28的系統,其中所述計算裝置可進一步操作為計算往返時間值(RTT)、丟失率值、和/或接收速率值中的一個或更多個,作為所述一個或更多個數量值,其中所述往返時間是數據從一發射機傳送到所述接收機並回到所述發射機所需的時間的度量;所述丟失率值是發送到所述接收機的丟失的數據量的度量;而所述接收速率值是在所述往返時間內由所述接收機接收到的比特數。
30.根據權利要求29的系統,其中所述計算裝置進一步包括一加權濾波器裝置,用於使用n個最近丟失間隔的加權濾波計算丟失事件率,該丟失間隔為在兩個丟失事件之間接收到的數據量。
31.一種存儲電腦程式的計算機可讀存儲介質,當該電腦程式在一計算機上運行時,其控制該計算機執行權利要求23至26的方法。
全文摘要
公開了一種數據傳輸方法和系統,其中使用一傳輸速率公式計算將要發送的每個數據流的可用網絡帶寬。然後以各自的比特率發送多個數據流,各個比特率的總和不大於數據流的數量與所計算的每個流的可用帶寬的乘積,但是在損失其他所發送的流的情況下,可以增加個別的數據流的速率。本發明特別用於流式多媒體中,並以適當的比率對每一種媒體的流式傳輸的速率提供控制。同時還公開了一種適合於接收該數據流的數據接收方法和系統。
文檔編號H04N7/52GK1557073SQ02818401
公開日2004年12月22日 申請日期2002年9月13日 優先權日2001年9月21日
發明者愛德華·烏爾賽斯, 愛德華 烏爾賽斯, 大衛 沃克, 馬滕·大衛·沃克 申請人:英國電訊有限公司