(57)【要約】マルチメディア・ストリーミング・サーバが、変化するネットワーク条件にその伝送レートを動的に適合させるために使用することのできる、可変周波数を有するいわゆる「仮想クロック」が提供される。本発明の「仮想クロック」システムおよび方法は、送達するすべてのパケットにタイム・スタンプを付し、それに従って、サーバがそのタイム・スタンプを使用してその特定のパケットの伝送をスケジューリングできるようにするＲＴＰ（Ｉｎｔｅｒｎｅｔ  Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｐｒｏｔｏｃｏｌ）の潜在的な限界を補償する。結果的に、伝送レートは、ＲＴＰを使用する場合、符号化されたマルチメディア・コンテンツにより事前決定される。本発明の「仮想クロック」を使用することにより、ストリーミング・サーバは、このＲＴＰの限界を克服するための機構を有することができ、またコンテンツの帯域幅要件とネットワークで利用可能な帯域幅とのバランスを取り得る方式で伝送レートの適合化を実施することができる。【特許請求の範囲】
【請求項１】
符号化されたコンテンツに基づき、ストリーミング・アプリケーションのために事前決定されるＲＴＰパケットの伝送レートＲ０（ｔ）を決定する実クロックと、
前記ストリーミング・アプリケーションのために動的な伝送レートを決定する周波数ｆ（ｔ）を有する仮想クロックと、
前記ストリーミング・アプリケーションのために、前記決定された動的な伝送レートで複数のＲＴＰパケットを送信するストリーミング・サーバと、
前記ストリーミング・アプリケーションのために、利用可能な帯域幅ＲＬ（ｔ）を計算するネットワーク構成要素とを含み、
ｆ（ｔ）が、ＲＬ（ｔ）およびＲ０（ｔ）に基づいて動的に調整される通信ネットワーク。
【請求項２】
前記ストリーミング・サーバがマルチメディア・ストリーミング・サーバである請求項１記載の通信ネットワーク。
【請求項３】
前記実クロックが周波数ｆ（ｔ）＝１を有し、またＴが、時間空間中で前記実クロックと前記仮想クロックが共に同じ距離を進む時間期間である場合、すなわち、
【数１】
2006510253.tif 000004
ここで、
ｔ≦τのとき        ｆ（ｔ）＝ＲＬ（ｔ）／Ｒ０（ｔ）  
ｔ＞τのとき        ｆ（ｔ）＝０
ただし、τは
【数２】
2006510253.tif 000005
によって決定され、かつ
Ｒ０（ｔ）はコンテンツに基づいて事前決定されたＲＴＰパケット・レートであり、
前記実クロックおよび前記仮想クロックが、Ｔ時間経過ごとに再度同期するように前記仮想クロックの前記周波数ｆ（ｔ）は構成されている請求項１記載の通信ネットワーク。
【請求項４】
ＲＬ（ｔ）が、前記ストリーミング・サーバのネットワーク・インターフェース・ドライバの１つと、前記ネットワーク中に常駐する１組の１つまたは複数の専用ネットワーク構成要素と、受信装置の１組の１つまたは複数の専用の構成要素とによって測定される請求項３に記載の通信ネットワーク。
【請求項５】
前記ネットワークが無線ネットワークであり、また前記受信装置の前記１組の１つまたは複数の専用の構成要素が、前記ドライバがＲＬ（ｔ）を測定し、前記測定されたＲＬ（ｔ）を前記ストリーミング・サーバに送信できるように、前記無線ネットワーク・ドライバ中に配置されるモニタである請求項４記載の通信ネットワーク。
【請求項６】
ストリーミング・サーバによるネットワークを介した伝送レートを動的に調整するための装置であって、
符号化されたコンテンツに基づき、ストリーミング・アプリケーションのために事前決定されるＲＴＰパケットの伝送レートＲ０（ｔ）を決定する実クロックと、
前記ストリーミング・アプリケーションのために動的な伝送レートを決定する周波数ｆ（ｔ）を有する仮想クロックと、
前記ストリーミング・アプリケーションのために、利用可能な帯域幅ＲＬ（ｔ）を計算するネットワーク構成要素とを含み、
ｆ（ｔ）が、ＲＬ（ｔ）およびＲ０（ｔ）に基づいて動的に調整される装置。
【請求項７】
前記ストリーミング・サーバが、マルチメディア・ストリーミング・サーバである請求項６記載の装置。
【請求項８】
前記実クロックが周波数ｆ（ｔ）＝１を有し、またＴが、時間空間中で前記実クロックと前記仮想クロックが共に同じ距離を進む時間期間である場合、すなわち、
【数３】
2006510253.tif 000006
ここで、
ｔ≦τのとき        ｆ（ｔ）＝ＲＬ（ｔ）／Ｒ０（ｔ）  
ｔ＞τのとき        ｆ（ｔ）＝０
ただし、τは
【数４】
2006510253.tif 000007
によって決定され、かつ
Ｒ０（ｔ）はコンテンツに基づいて事前決定されたＲＴＰパケット・レートであり、
前記実クロックおよび前記仮想クロックが、Ｔ時間経過ごとに再度同期するように前記仮想クロックの前記周波数ｆ（ｔ）は構成されている請求項６記載の装置。
【請求項９】
ＲＬ（ｔ）が、前記ストリーミング・サーバのネットワーク・インターフェース・ドライバの１つと、前記ネットワーク中に常駐する１組の１つまたは複数の専用ネットワーク構成要素と、受信装置の１組の１つまたは複数の専用の構成要素とによって測定される請求項８記載の装置。
【請求項１０】
前記ネットワークが無線ネットワークであり、また前記受信装置の前記１組の１つまたは複数の専用の構成要素が、前記ドライバがＲＬ（ｔ）を測定し、前記測定されたＲＬ（ｔ）を前記ストリーミング・サーバに送信できるように、前記無線ネットワーク・ドライバ中に配置されるモニタである請求項９記載の装置。
【請求項１１】
ストリーミング・サーバが動的に伝送レートの適合化を実施することを可能にするための仮想クロックであって、
符号化されたコンテンツに基づき、ストリーミング・アプリケーションのために事前決定されるＲＴＰパケットの伝送レートＲ０（ｔ）を決定する実クロックと、
前記ストリーミング・アプリケーションのためにＲＴＰパケット伝送の前記レートを決定する前記仮想クロックの前記周波数ｆ（ｔ）を動的に設定する手段と、
前記ストリーミング・アプリケーションのために、利用可能な帯域幅ＲＬ（ｔ）を計算するネットワーク構成要素とを含み、
ｆ（ｔ）が、ＲＬ（ｔ）およびＲ０（ｔ）に基づいて動的に調整される仮想クロック。
【請求項１２】
前記ストリーミング・サーバがマルチメディア・ストリーミング・サーバである請求項１１記載の仮想クロック。
【請求項１３】
前記実クロックが周波数ｆ（ｔ）＝１を有し、またＴが、時間空間中で前記実クロックと前記仮想クロックが共に同じ距離を進む時間期間である場合、すなわち、
【数５】
2006510253.tif 000008
ここで、
ｔ≦τのとき        ｆ（ｔ）＝ＲＬ（ｔ）／Ｒ０（ｔ）  
ｔ＞τのとき        ｆ（ｔ）＝０
ただし、τは
【数６】
2006510253.tif 000009
によって決定され、かつ
Ｒ０（ｔ）はコンテンツに基づいて事前決定されたＲＴＰパケット・レートであり、
前記実クロックおよび前記仮想クロックが、Ｔ時間経過ごとに再度同期するように前記仮想クロックの前記周波数ｆ（ｔ）を決定する手段は構成されている請求項１１記載の仮想クロック。
【請求項１４】
ＲＬ（ｔ）が、前記サーバのネットワーク・インターフェース・ドライバの１つと、前記ネットワーク中に常駐する１組の１つまたは複数の専用ネットワーク構成要素と、受信装置の１組の１つまたは複数の専用の構成要素とによって測定され、前記ストリーミング・アプリケーションのために利用可能な帯域幅が計算される請求項１１記載の仮想クロック。
【請求項１５】
前記ネットワークが無線ネットワークであり、また前記受信装置の前記１組の１つまたは複数の専用の構成要素が、前記ドライバがＲＬ（ｔ）を測定し、前記測定されたＲＬ（ｔ）を前記ストリーミング・サーバに送信できるように、前記無線ネットワーク・ドライバ中に配置されるモニタである請求項１４記載の仮想クロック。
【請求項１６】
請求項１３に記載の前記仮想クロックを実施するプロトコルのアプリケーション・レイヤにおけるオペレーティング・システムのカーネル機能であって、前記機能が前記仮想周波数ｆ（ｔ）を返すために前記プロトコルの低位レイヤと対話するオペレーティング・システムのカーネル機能。
【請求項１７】
ストリーミング・サーバが、ネットワークを介してＲＴＰパケットを伝送するために動的な伝送レートの適合化の実施を可能にするための仮想クロックを実施する方法であって、
符号化されたコンテンツに基づき、ストリーミング・アプリケーションのために事前決定されるＲＴＰパケットの伝送レートＲ０（ｔ）を決定する実クロックを提供するステップと、
ストリーミング・アプリケーションのためにＲＴＰパケット伝送の前記レートを決定する前記仮想クロックの前記周波数ｆ（ｔ）を動的に構成するステップと、
前記ストリーミング・アプリケーションのために、前記利用可能な帯域幅ＲＬ（ｔ）をモニタするステップとを含み、
動的にｆ（ｔ）を調整するステップがＲＬ（ｔ）およびＲ０（ｔ）に基づいている方法。
【請求項１８】
前記構成するステップは、
ａ．前記実クロックが周波数ｆ（ｔ）＝１を有し、またＴが、時間空間中で前記実クロックと前記仮想クロックが共に同じ距離を進む時間期間である場合、すなわち、
【数７】
2006510253.tif 000010
ここで、
ｔ≦τのとき        ｆ（ｔ）＝ＲＬ（ｔ）／Ｒ０（ｔ）  
ｔ＞τのとき        ｆ（ｔ）＝０
ただし、τは
【数８】
2006510253.tif 000011
によって決定され、
Ｒ０（ｔ）はコンテンツに基づいて事前決定されたＲＴＰパケット・レートであるステップと、
ｂ．前記実クロックおよび前記仮想クロックが、Ｔ時間経過ごとに再度同期させるステップと
をさらに含む請求項１７記載の方法。
【請求項１９】
前記サーバのネットワーク・インターフェース・ドライバの１つと、前記ネットワーク中に常駐する１組の１つまたは複数の専用ネットワーク構成要素と、受信装置の１組の１つまたは複数の専用の構成要素とによってＲＬ（ｔ）を測定し、前記ストリーム・アプリケーションのために利用可能な帯域幅を計算するステップをさらに含む請求項１８記載の方法。
【請求項２０】
前記ネットワークが、無線ネットワークであり、
前記受信装置の前記１組の１つまたは複数の専用の構成要素が、前記無線ネットワーク・ドライバに配置されたモニタであり、
前記モニタするステップがさらに、
ｃ．前記モニタＲＬ（ｔ）によってＲＬ（ｔ）を測定するステップと、
ｄ．前記測定されたＲＬ（ｔ）を前記ストリーミング・サーバに送信するステップと
を含む請求項１９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介したマルチメディア・ストリーミングに関する。より詳細には、本発明は、ストリーム化されたマルチメディアの伝送レートを、変化するネットワーク条件に適合させることに関する。最も詳細には、本発明は、ストリーミング・サーバが、送信すべきコンテンツの帯域幅要件とインターネットで利用可能な帯域幅とのバランスを取る方式で動的に伝送レートを適合させるための機構として「仮想クロック」の概念を導入する。
【背景技術】
【０００２】
現況技術におけるストリーミング・サーバの設計および実装は、一般に、サーバ・アプリケーションをホストするコンピュータのコンピュータ・クロックと本質的に同じものである一定周波数クロックを含む。パケットのスケジューリングおよび伝送はそのクロックの一定レートに従って実行される。伝送レートは、符号化されたコンテンツによってのみ事前決定される。それは、Ａｐｐｌｅ（アップル社）によって開発されたＤａｒｗｉｎストリーミング・サーバの実装において立証されており、そのソースコードは公開されオープンに利用可能であり、例えば、
ｈｔｔｐ：／／ｄｅｖｅｌｏｐｅｒ．ａｐｐｌｅ．ｃｏｍ／ｄａｒｗｉｎ／ｐｒｏｊｅｃｔｓ  ／ｓｔｒｅａｍｉｎｇ／
を参照されたい。
【０００３】
パケット交換ネットワークの利用可能な帯域幅は時間により変化するため、ストリーミング・アプリケーションは、その伝送レートをネットワーク条件に従って調整できることが必要である。レートを適合させるために現在利用可能な技法は、レイヤ切換および選択的レイヤ・サブスクリプション（ｌａｙｅｒ  ｓｕｂｓｃｒｉｐｔｉｏｎ）を含む。
【０００４】
レイヤ切換では、サーバは、同じコンテンツではあるが異なる品質、したがって異なるビット・レートで符号化されたコンテンツの複数のコピーを維持する。サーバは、レートの適合化を達成するために、これらのコピー（またはレイヤ）相互間で動的に切り替えることができる。
【０００５】
選択的レイヤ・サブスクリプションでは、サーバは、ＦＧＳ（Ｆｉｎｅ−Ｇｒａｎｕｌａｒ  Ｓｃａｌａｂｉｌｉｔｙ）や他の類似の方式など拡張可能な（ｓｃａｌａｂｌｅ）符号化方式によって符号化されたコンテンツの１つのコピーを記憶するだけである。拡張可能な符号化方式は、より良い復号化品質を得るために受信者側で連続して加算できる複数の累積レイヤを生成する。実時間では、サーバは受信側が明示的に要求している、すなわち加入しているレイヤのサブセットを送信するだけである。受信側が、感知したネットワーク条件に従ってそのレイヤ・サブスクリプションを変更したとき、レートの適合化が行われる。後者の方式は、マルチキャスト用に広く提案され、通常、受信者駆動型階層マルチキャスト（ｒｅｃｅｉｖｅｒ−ｄｒｉｖｅｎ  ｌａｙｅｒ  ｍｕｌｔｉｃａｓｔｉｎｇ）と呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記技法の限界は、その適合の細分性（ｇｒａｎｕｌａｒｉｔｙ）にある。これらの方式は共に、粗い粒度のレート適合化を実施できるだけである。言い換えると、それらは、レートを、高い頻度で不十分となるレベルに適合することが可能なだけである。しかし、実験によれば、比較的短い時間尺度において、動的な背景トラフィック、または無線リンクの一時的な低下により、ネットワーク条件が劇的に変化する恐れのあることが示されている。
【０００７】
適応型再生技法が提案されている。その技法では、ネットワーク輻輳の際に、受信側がバッファの長時間停止状態（ｓｔａｒｖａｔｉｏｎ）またはオーバフローを回避するためにビデオ再生速度を動的に変更する。しかし、その技法は、受信者側に対してのみ提案されており、ネットワークを介するパケット伝送に対する効果はない。実際には、本発明とこの提案されている適応型再生戦略とを組み合わせると、より効率の良いロバストなストリーミング技法になり得る。
【課題を解決するための手段】
【０００８】
したがって、ストリーミング・アプリケーションにおいて、細分化されたレート適合を達成できる方法が強く望まれている。本発明は、変化するネットワーク条件にその伝送レートを動的に適合させるために、マルチメディア・ストリーミング・サーバで使用可能な可変周波数を有する「仮想クロック」を提供する。この「仮想クロック」は、送達するすべてのパケットにタイム・スタンプを付し、サーバがこのタイム・スタンプを使用してその特定のパケットの伝送をスケジューリングできるようにするＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｐｒｏｔｏｃｏｌ）の潜在的な限界を補償する。結果的に、伝送レートは、ＲＴＰを使用する場合、符号化されたマルチメディア・コンテンツにより事前に決定される。本発明による「仮想クロック」を提供することによって、マルチメディア・ストリーミング・サーバは、このＲＴＰの限界を克服し、またコンテンツの帯域幅要件とネットワークで利用可能な帯域幅とのバランスを取る方式で伝送レートの適合化を実施する機構を有するようになる。
【０００９】
本発明の「仮想クロック」は、細分化されたレート適合の問題を扱う。ストリーミング・サーバは、タイム・スタンプが付されたＲＴＰパケットの伝送をスケジューリングするためにクロックを必要とする。クロックが、一定レートで前に進む場合、伝送レートは、通常、符号化段階で生成されるＲＴＰタイム・スタンプによって事前に決定されている。
【００１０】
それに対して、本発明による「仮想クロック」は、時間で変化する周波数を採用する。このようなクロックが伝送のスケジューリングにサーバによって使用されたとき、エンコーダで事前決定された伝送レートに対して追加すべき変数が提供される。この方式では、伝送レートは、変化するネットワーク条件に応答して伸縮することができる。
【００１１】
例えば、図１ａに示すように、実クロックの周波数が１  １００であると仮定する。図１ｂおよび図１ｃにそれぞれ示すように、「仮想クロック」は、１より大１０２または１より小１０４である周波数を取ることができる。「仮想クロック」の周波数が１より大１０２になると、実時間より速く進むことになる。次いで、ＲＴＰパケット群のタイム・スタンプのシーケンスが変化のないままであっても、連続するパケット間の間隔１０１が、それらをスケジューリングするために「仮想クロック」を用いて短縮１０３される。ＲＴＰパケットは、ネットワーク・インターフェースに通常より高い頻度で出現し、伝送レートをエンコーダで事前決定されたものを超えて増加させることになる。それに対して、「仮想クロック」が１より小１０４の周波数を取るとき、連続するパケット間の間隔１０１は、延長１０５され、そのパケットは、通常より少ない頻度でネットワーク・インターフェースに出現し、エンコーダで事前決定された伝送レートが減少することになる。「仮想クロック」の周波数に変化があるときはいつも、対応する変化が伝送レートに生ずることになる。したがって、本発明による「仮想クロック」は、ストリーミング・アプリケーションのために、タイム・スタンプの付されたＲＴＰパケット・シーケンスの伝送レートをネットワーク条件に適合させるための効率の良いシステムおよび方法である。
【００１２】
「仮想クロック」の周波数の調整は任意の時間尺度、特に短い時間尺度で実行することができるので、本発明の「仮想クロック」は、細分化されたレート適合を達成するために使用でき、「仮想クロック」の最も重要な特性である。「仮想クロック」を、前に示した実施例中のものなど他の方法と組み合わせることにより、ストリーミング・サーバは、大・小両方の時間尺度にわたってその伝送レートを適合させて動的なネットワーク条件に対するより良い応答性を達成することができる。改善された応答性により、より良いネットワーク資源の利用、およびより良いビデオ品質が得られるようになる。
【発明を実施するための最良の形態】
【００１３】
ｆ（ｔ）が「仮想クロック」の周波数、Ｒ０（ｔ）が事前決定されたＲＴＰパケット・レート、ＲＬ（ｔ）がこのストリーミング・アプリケーションに利用可能なネットワーク帯域幅、そして実クロックの周波数が１であるとする。また、Ｔは、時間空間中で実クロックと「仮想クロック」が共に同じ距離を進む時間期間であるものとする。すなわち、
【数１】
2006510253.tif 000002
好ましい実施形態では、「仮想クロック」の周波数は以下のように構成される。
ｔ≦τのとき        ｆ（ｔ）＝ＲＬ（ｔ）／Ｒ０（ｔ）  
ｔ＞τのとき        ｆ（ｔ）＝０
ただし、τは
【数２】
2006510253.tif 000003
により決定される。
式（１）は、Ｔ時間経過ごとに２つのクロックを再同期させるように「仮想クロック」の周波数を構成する方法に関する一般的な原理を規定し、それは、実時間ストリーミング・アプリケーションのためには必須のものである。
【００１４】
Ｒ０（ｔ）は、サーバに記憶されている符号化されたコンテンツから取得される。ＲＬ（ｔ）は、サーバのネットワーク・インターフェース・ドライバによって、またはネットットワーク中もしくは受信装置に常駐するいくつかの専用のネットワーク構成要素によって測定され、ストリーミング・アプリケーションに利用可能な帯域幅が計算される。
【００１５】
例えば、図２で示した無線を介する家庭内２００ストリーミングの例では、高周波妨害およびチャネル・フェージングにより、（ＲＬ（ｔ）などの）無線リンク容量が時間と共に変化し得る。図２に示す好ましい実施形態では、無線ネットワーク・ドライバ２０３中にモニタが置かれ、したがって、ドライバは、ＲＬ（ｔ）を測定し、ストリーミング・サーバ２０６にその測定値を送り返す２０５ことにより、伝送レートが実時間で無線リンク状況に適合できるようになる。この方式では、不必要なパケット・ドロップが回避され、全体のスループットを改善することができる。
【００１６】
他の好ましい実施形態では、ホスト・コンピュータにより、実クロック・サービスと並列に「仮想クロック」サービスをストリーミング・アプリケーションに提供するために、以下の形式を有するカーネル機能が実施される。
ｖｏｉｄ  ｇｅｔｖｉｒｔｕａｌｃｌｏｃｋｆｒｅｑｕｅｎｃｙ（ｄｏｕｂｌｅ  ｄｅｍａｎｄｂａｎｄｗｉｄｔｈ，ｄｏｕｂｌｅ  ＊  ｖｉｒｔｕａｌｆｒｅｑｕｅｎｃｙ）．
【００１７】
この機能は、呼び出されると仮想周波数をサーバに返すためにネットワーク・カード・ドライバまたは低位レイヤのプロトコルと対話する。次いで、サーバはその実時間クロックを「仮想クロック」にマップする。
【００１８】
図３で示すように、本発明の「仮想クロック」は、アプリケーション・レイヤ３００で実施することができるが、その周波数はより低位のレイヤで制御され、好ましい実施形態では、それはリンク・レイヤ（またはレイヤ２）３０１である。リンク・レイヤは、リンク状況を常にモニタしている。利用可能な容量がターゲット容量（制御リファレンス）より高い場合、リンク・レイヤは１より大であるクロック周波数ｆ（ｔ）３０２を、そうでなければ１より小であるクロック周波数ｆ（ｔ）３０２を上位に送る。
【００１９】
上に説明し図面に示した本発明のシステムおよび方法は、変化するネットワーク条件に基づいて「仮想クロック」を提供する。当業者であれば、本発明の趣旨または範囲を逸脱することなく、様々な変更および変形を本発明の方法およびシステムに加えられることが明らかであろう。したがって、本発明は、添付の特許請求の範囲およびその等価な形態の範囲に含まれる変更形態および変形形態を含むものとする。
【図面の簡単な説明】
【００２０】
【図１ａ】実クロックに対する、ネットワーク・インターフェースでのパケット到着時間を示す図である。
【図１ｂ】図１ａに示された実クロックの周波数より大きい周波数を有する本発明による「仮想クロック」に対する、ネットワーク・インターフェースでのパケット到着時間を示す図である。
【図１ｃ】図１ａに示された実クロックの周波数より小さい周波数を有する本発明による「仮想クロック」に対する、ネットワーク・インターフェースでのパケット到着時間を示す図である。
2006510253.tif 000012
【図２】
2006510253.tif 000013
【図３】
2006510253.tif 000014
【国際調査報告】
2006510253.tif 000015
2006510253.tif 000016