(57)【要約】  少なくとも第１のレート適応アルゴリズムおよび第２のレート適応アルゴリズムを使用して、ネットワークを介したデータの送信を実行すること。データの送信は、複数のバッファを使用することができる。複数のバッファのうちの利用可能なバッファの数が第１の閾値を下回ると判定されることがある。それに応じて、増加したフローレートを提供する第２のレート適応アルゴリズムに従ってデータを送信することができる。データの送信中に、複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えると判定されることがある。それに応じて、増加したスループットを提供する第１のレート適応アルゴリズムに従ってデータを送信することができる。
2013532410.tif 000002
【特許請求の範囲】
【請求項１】
データを送信するための方法であって、
選択されたレート適応アルゴリズムを使用して、第１のデバイスから第２のデバイスにデータを送信することであり、データを前記送信することが、複数のバッファを利用し、前記選択されたレート適応アルゴリズムが、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズムのうちの１つである、送信することと、
前記第１のアルゴリズムを使用して送信するときに、前記複数のバッファのうちの利用可能なバッファの数が第１の閾値を下回ると判定することと、
前記第２のアルゴリズムを使用して送信するときに、前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えると判定することとを備え、
前記送信することが、前記複数のバッファのうちの利用可能なバッファの数が前記第１の閾値を下回ると前記判定することに応答して、前記第２のレート適応アルゴリズムを使用して実行され、前記第２のレート適応アルゴリズムが、増加したフローレートを提供し、
前記送信することが、前記複数のバッファのうちの利用可能なバッファの数が前記第２の閾値を超えると前記判定することに応答して、前記第１のレート適応アルゴリズムを使用して実行され、前記第１のレート適応アルゴリズムが、増加したスループットを提供する、方法。
【請求項２】
実行時間中に、前記第１の閾値と前記第２の閾値とを動的に調整すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記調整することが、前記複数のバッファのサイズ、現在の提供された負荷、および／または実効送信レートに基づいて実行される、請求項２に記載の方法。
【請求項４】
前記調整することが、前記データの最優先パケットのシーケンスの予想される長さおよび／または前記データを前記送信することのバースト性に基づいて実行される、請求項２に記載の方法。
【請求項５】
スループットが、
【数１】
2013532410.tif 000014
と定義され、
ηa,b,iが、レート「ｒi」で前記第１のデバイス（「ａ」）から前記第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、請求項１に記載の方法。
【請求項６】
フローレートが、
【数２】
2013532410.tif 000015
と定義され、
「ηa,b,j」が、レート「ｒj」で前記第１のデバイス（「ａ」）から前記第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、請求項１に記載の方法。
【請求項７】
Ｎa,b,jが、
【数３】
2013532410.tif 000016
に従って計算され、
「μ」が、「ａ」から「ｂ」以外のチャネル上での送信に対する媒体利用率である、請求項６に記載の方法。
【請求項８】
Ｎa,b,jが、
【数４】
2013532410.tif 000017
に従って計算され、
「μ」が、「ａ」から「ｂ」以外のチャネル上での送信に対する媒体利用率である、請求項６に記載の方法。
【請求項９】
Ｎa,b,jが、複数のパケットにわたって平均的に適用される、請求項６に記載の方法。
【請求項１０】
Ｎa,b,jが、平均的に適用され、他のパケットよりも優先度の高いパケットのさらなる再送を可能にする、請求項６に記載の方法。
【請求項１１】
前記送信することが第３のデバイスに対しても実行され、前記データがビデオデータを備える、請求項１に記載の方法。
【請求項１２】
前記データが、前記第１のデバイスから前記第２のデバイスへの送信のレートとは無関係のレートで生成される、請求項１に記載の方法。
【請求項１３】
データを１つまたは複数のデバイスに送信するためのシステムであって、
第１のレートで前記１つまたは複数のデバイスに送信するためのデータを生成するコンテンツジェネレータと、
前記コンテンツジェネレータによって生成された前記データをバッファする、前記コンテンツジェネレータに結合された複数のバッファと、
前記複数のバッファに記憶された前記データを第２のレートで送信する送信機であり、前記第２のレートが時間によって変化し、前記第１のレートとは無関係である、送信機とを備え、
前記送信機が、利用可能なバッファの数に基づいて、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズムに従って前記データを送信し、前記第２のレート適応アルゴリズムが、利用可能なバッファの数が第１の閾値を下回るときに使用され、前記第２のレート適応アルゴリズムが、フローレートを増加させ、前記第１のレート適応アルゴリズムが、前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えるときに使用され、前記第１のレート適応アルゴリズムが、スループットを増加させる、システム。
【請求項１４】
実行時間中に、前記第１の閾値および前記第２の閾値が動的に調整される、請求項１３に記載のシステム。
【請求項１５】
前記第１の閾値および前記第２の閾値が、前記複数のバッファのサイズ、現在の出力データレート、および／または実効送信レートに基づいて調整される、請求項１４に記載のシステム。
【請求項１６】
前記第１の閾値および前記第２の閾値が、前記データの最優先パケットのシーケンスの予想される長さおよび／または前記データを前記送信することのバースト性に基づいて調整される、請求項１４に記載のシステム。
【請求項１７】
スループットが、
【数５】
2013532410.tif 000018
と定義され、
ηa,b,iが、レート「ｒi」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、請求項１３に記載のシステム。
【請求項１８】
フローレートが、
【数６】
2013532410.tif 000019
と定義され、
「ηa,b,j」が、レート「ｒj」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、請求項１３に記載のシステム。
【請求項１９】
前記１つまたは複数のデバイスが複数のデバイスを備え、前記データがビデオデータを備える、請求項１３に記載のシステム。
【請求項２０】
データの送信を構成するためのプログラム命令を備えるメモリ媒体であって、データの前記送信が複数のバッファを使用し、前記プログラム命令が、
第１のレート適応アルゴリズムに従って前記送信を構成することであり、前記第１のレート適応アルゴリズムが、増加したスループットを提供することと、
前記複数のバッファのうちの利用可能なバッファの数が第１の閾値を下回ると判定することと、
前記複数のバッファのうちの利用可能なバッファの数が前記第１の閾値を下回ると判定したことに応答して、第２のレート適応アルゴリズムに従って前記送信を構成することであり、前記第２のレート適応アルゴリズムが、増加したフローレートを提供することと、
前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えると判定することと、
前記複数のバッファのうちの利用可能なバッファの数が前記第２の閾値を超えると判定したことに応答して、前記第１のレート適応アルゴリズムに従って前記送信を構成することと
を行うように、プロセッサによって実行可能である、メモリ媒体。
【請求項２１】
前記プログラム命令が、
実行時間中に前記第１の閾値と前記第２の閾値とを動的に調整する
ようにさらに実行可能である、請求項２０に記載のメモリ媒体。
【請求項２２】
スループットが、
【数７】
2013532410.tif 000020
と定義され、
ηa,b,iが、レート「ｒi」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、請求項２０に記載のメモリ媒体。
【請求項２３】
フローレートが、
【数８】
2013532410.tif 000021
と定義され、
「ηa,b,j」が、レート「ｒj」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、請求項２０に記載のメモリ媒体。
【請求項２４】
前記データが、第１のデバイスから第２のデバイスへの送信のレートとは無関係のレートで生成される、請求項２０に記載のメモリ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にネットワーク通信に関し、より詳細には、マルチメディアコンテンツの配信のための方法に関する。
【背景技術】
【０００２】
デジタルのコンテンツ、データおよびマルチメディアアプリケーションがますます普及するのをきっかけとして、最近、企業においてコンピュータとプリンタとの間の接続を提供する従来の用途およびその用途の家庭への拡大から始まって、ネットワーク接続に依存する新しいアプリケーションの出現に至るまで、ネットワーキングのニーズが劇的に増加している。
【０００３】
交換イーサネット（登録商標）技術が専用のＣＡＴ５／ＣＡＴ６配線を介して配備される企業ネットワークとは異なり、設置配備コストを低く抑えるために、ホームローカルエリアネットワーキング（ＬＡＮ）技術は、家庭内の既存の媒体を介した動作向けに設計されている。有線ＬＡＮは、家庭における既存の電力線、電話回線または同軸ケーブル設備の１つまたはこれらの組合せを使用するが、ワイヤレスＬＡＮ（ＷＬＡＮ）は、ユビキタスワイヤレス媒体を使用する。したがって、ホームネットワーキングＬＡＮは、共有される媒体通信ネットワークになる傾向がある。
【０００４】
さらに、媒体はＬＡＮ通信専用に設計／提供されなかったので、いくつかのチャネル障害がある。たとえば、電力線ネットワークの場合、他の電力線デバイスがＬＡＮ通信に干渉する形で動作することがあり、ＷＬＡＮでは、障害は、同じ無線帯域における他のＷＬＡＮおよび他のデバイスによる外部からの干渉から、とりわけ、チャネルフェージングおよびシャドウイングまで多岐にわたることがある。
【０００５】
チャネルの特性の変化の結果として、家庭内の異なる場所に対する達成可能なデータレートは一定ではない。これは、多くの場合、時間によって変化するランダム関数としてモデル化される。
【０００６】
時間によって変化するキャパシティおよび特性を伴うチャネルを介した通信を保証するために、可変送信レートＬＡＮ技術の媒体アクセス制御（ＭＡＣ）プロトコルは通常、特定の通信に使用するための物理レイヤ（ＰＨＹ）パラメータの最適な組合せを判定する「レート選択／適応」機能を有する。レート適応アルゴリズムは、通常、ソースとシンクとの間のスループットを最大化するなどの対象機能を最適化するように設計される。
【０００７】
家庭内の複数のコンピュータにインターネット接続を提供する従来のアプリケーションは別として、ホームＬＡＮ用の新たなアプリケーションは、家庭内の１つまたは複数のレンダリングデバイスにオーディオ／ビデオコンテンツを伝送および提供するものである。家庭内では、コンテンツは、他のコンテンツソースのなかでも、デジタルビデオレコーダ（ＤＶＲ）またはデジタルビデオディスク（ＤＶＤ）プレーヤなどの複数のソースから送出され得る。また、コンテンツは、家庭の外から送出され得る。たとえば、インターネットプロトコルテレビジョン（ＩＰＴＶ）の場合、コンテンツは家庭の外のヘッドエンドサーバから送出され、キャリアのワイドエリアネットワーク（ＷＡＮ）インフラを介して家庭に届き、ブロードバンドアクセスモデムまたはレジデンシャルゲートウェイを介して家庭に入る。家庭内のケーブルまたは衛星受信機を介してブロードキャスト媒体を受信することができる。とりわけ、フラットパネルディスプレイ、ラップトップコンピュータおよび携帯型メディアプレーヤデバイスなどの異なるコンテンツシンクデバイス上でコンテンツを閲覧／レンダリングすることができる。家庭内では、家庭内のユーザの判断で、コンテンツソースおよびコンテンツシンクを異なる部屋に置くことができる。
【発明の概要】
【０００８】
ＬＡＮシステム設計の全体的な目的は、言い換えると、パケットの損失／遅延によって引き起こされるユーザのリスニング／ビューイング体験の最小限の乱れということになる、サービス品質（ＱｏＳ）を提供することである。したがって、ネットワークデータ送信の改善が望まれる。
【０００９】
ネットワークを介したコンテンツの配信のためのシステムおよび方法の様々な実施形態が提示される。
【００１０】
データ（たとえば、オーディオ／ビデオデータを含むマルチメディアデータ）は、選択されたレート適応アルゴリズムを使用して、第１のデバイスから第２のデバイス（または複数のデバイス）に送信され得る。選択されたレート適応アルゴリズムは、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズム（または１つもしくは複数の追加のレート適応アルゴリズム）であってもよい。データをコンテンツジェネレータから生成または受信することができ、送信のために１つまたは複数のバッファ（たとえば、複数のバッファ）に記憶することができる。第１のデバイスから第２のデバイスへの送信のレートとは無関係のレートでデータを生成することができることに留意されたい。
【００１１】
一実施形態では、利用可能なバッファの数（またはバッファで利用可能なメモリの量）は、どのレート適応アルゴリズムが使用されるかを判定し得る。より具体的には、一実施形態では、利用可能なバッファの数を使用して、あるレート適応アルゴリズムから別のレート適応アルゴリズムにいつ切り換えるかを判定することができる。
【００１２】
一実施形態では、第１の閾値を使用して、第１のレート適応アルゴリズムからいつ切り換えるかを判定することができる。したがって、第２のレート適応アルゴリズムは、複数の利用可能なバッファが第１の閾値を下回るときに使用され得る。第２のレート適応アルゴリズムは、増加したフローレートを提供することができる、すなわち、フローレートを最大化しようと試みることができる。フローレートは、
【数１】
2013532410.tif 000003
【００１３】
と定義され得る。
【００１４】
式中、「ηa,b,j」は、レート「ｒj」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」は、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」は、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である。
【００１５】
一実施形態では、第２の閾値を使用して、第２のレート適応アルゴリズムから第１のレート適応アルゴリズムにいつ切り換えるかを判定することができる。したがって、第２のレート適応アルゴリズムを使用して動作するとき、第１のレート適応アルゴリズムは、複数の利用可能なバッファが第２の閾値を上回るときに使用され得る。第１のレート適応アルゴリズムは、増加したスループットを提供することができる、すなわち、スループットを最大化しようと試みることができる。スループットは、
【数２】
2013532410.tif 000004
【００１６】
と定義され得る。
【００１７】
式中、ηa,b,iは、レート「ｒi」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iは、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である。
【００１８】
第１の閾値および第２の閾値は同じ値とすることができるが、たとえば、利用可能なバッファの数が閾値に近いときに２つのアルゴリズム間での絶え間ない切換えを回避するために、これらの閾値は異なっていてもよいことに留意されたい。さらに、いくつかの実施形態では、実行時間中（たとえば、データが転送されている間）に第１の閾値および／または第２の閾値を動的に調整することができる。そのような調整は、複数のバッファのサイズ、現在の出力データレート、および／または実効送信レートに基づき得る。あるいは、またはさらに、調整することは、データの最優先パケットのシーケンスの予想される長さおよび／またはデータを前記送信することのバースト性に基づいて実行され得る。
【００１９】
以下の図面と併せて、好ましい実施形態の以下の詳細な説明を考慮すれば、本発明のより良い理解を得ることができる。
【図面の簡単な説明】
【００２０】
【図１】一実施形態による、ホームネットワークにおいて通信を実行する例示的なデバイスを示す図。
【図２】一実施形態による、情報を第２のデバイスに送信する第１のデバイスの例示的なブロック図。
【図３】送信デバイスの異なる状態を示す状態図。
【図４】マルチ状態レート適応を使用する送信方法の一実施形態を示すフローチャート図。
【図５】いくつかの実施形態による、データをシンクデバイスに送信する例示的なソースデバイスのブロック図。
【発明を実施するための形態】
【００２１】
本発明は様々な修正形態および代替の形態を受け入れる余地があるが、その特定の実施形態を図面において例として示し、本明細書において詳細に説明する。ただし、図面およびそれについての詳細な説明は、本発明を開示された特定の形態に限定するものではなく、それどころか、その意図は、添付の特許請求の範囲によって定義される本発明の趣旨および範囲内にあるすべての修正形態と、等価形態と、代替形態とを含むことであることを理解されたい。
【００２２】
用語
以下は、本適用例で使用される用語の用語解説である。
【００２３】
メモリ媒体  −  任意の様々なタイプのメモリデバイスまたは記憶デバイス。「メモリ媒体」という用語は、設置媒体、たとえば、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、もしくはテープデバイス；コンピュータシステムメモリもしくはＤＲＡＭ、ＤＤＲ  ＲＡＭ、ＳＲＡＭ、ＥＤＯ  ＲＡＭ、ラムバスＲＡＭなどのランダムアクセスメモリ；または磁気媒体などの不揮発性メモリ、たとえば、ハードドライブ、または光記憶装置を含むものとする。メモリ媒体は、他のタイプのメモリ、またはその組合せも備えることができる。加えて、プログラムが実行される第１のコンピュータにメモリ媒体を配置することができる、および／またはインターネットなどのネットワークを介して第１のコンピュータに接続する第２の異なるコンピュータにメモリ媒体を配置することができる。後者の例では、第２のコンピュータは、実行のために、プログラム命令を第１のコンピュータに提供することができる。「メモリ媒体」という用語は、異なる場所、たとえば、ネットワークを介して接続された異なるコンピュータに存在し得る２つ以上のメモリ媒体を含み得る。
【００２４】
コンピュータシステム  −  パーソナルコンピュータシステム（ＰＣ）、メインフレームコンピュータシステム、ワークステーション、ネットワークアプライアンス、インターネットアプライアンス、携帯情報端末（ＰＤＡ）、テレビジョンシステム、グリッドコンピューティングシステム、または他のデバイスもしくはデバイスの組合せを含む、任意の様々なタイプのコンピューティングシステムまたは処理システム。一般に、「コンピュータシステム」という用語を、メモリ媒体から命令を実行する少なくとも１つのプロセッサを有する任意のデバイス（またはデバイスの組合せ）を包含するように広く定義することができる。
【００２５】
図１  −  例示的なホームネットワーク
図１は、本発明の実施形態を実施することができるホームネットワークの例示である。示されるように、ホームネットワークは、基礎をなすＬＡＮ技術としてＷＬＡＮを用いることができるが、有線ＬＡＮも企図される。１０１は、コンテンツをテレビジョンセット１１１にストリーミングする、ネットワーク接続されたデジタルビデオレコーダ（ＤＶＲ）を表す。１０２は、オーディオコンテンツを家庭内の別の部屋で使用されている携帯型メディアプレーヤ１１２にストリーミングしている、ネットワーク接続されたディスクプレーヤを表す。１１３は、ＷＡＮを介してレジデンシャルゲートウェイ１０３によって受信されたＩＰＴＶコンテンツをレンダリングしているテレビジョンセットを表す。１１４は、レジデンシャルゲートウェイ１０３を介してインターネットをサーフィンしているラップトップコンピュータである。
【００２６】
任意の時間での使用に応じて、任意のシンクデバイスが任意のソースデバイスに接続することができる、たとえば、ＴＶ１１５が１０３との接続を確立して、コンテンツを受信することができることは明らかである。同様に、いくつかのデバイスは、ソースとシンクの両方として働くことが可能であってもよい。たとえば、ラップトップ１１４は、ＴＶ１１５のソースデバイスとして働くことができる。さらに、図１が典型的な使用シナリオにおけるソースとシンクとの間のデータフローを示すことは明らかである。実際の展開には、いくつか例を挙げるとワイヤレスアクセスポイントおよびリピータの形で、追加のインフラを必要とすることがある。図１に示されるように、このインフラの機能を１つまたは複数のデバイスに組み込むことができることも明らかである。
【００２７】
背景技術の項で説明したように、ソースとシンクとの間のリンクのチャネルキャパシティは、様々な要因、すなわち、ソースとシンクとの間の距離、他のデバイスによるチャネル占有、外部のソース（たとえば、家庭内と家庭外の両方）からの干渉に応じて、時間によって変化することがある。図１に示されるＷＬＡＮの場合、チャネル状態はソース、シンクの相対的な動作と、周囲の環境とにも依存し得る。
【００２８】
ＬＡＮ  ＰＨＹレイヤの様々な送信パラメータの順列に応じて、ＭＡＣレイヤは、データを特定の宛先に送信するために使用される送信レートを利用可能なレートセットから選択するレート適応戦略を使用することができる。データ通信の場合、１つの戦略は、以下で説明されるように、リンクのスループットを最大化する。
【００２９】
ノード「ａ」から「ｂ」への送信の場合、「ｉ」個の要素を有するレートのセット「Ｒ」から取り出された、選択されたレート「ｒ」は、式（１）に示されるように、すべての「ｉ」についてスループットＴa,b,iを最大化するレートである。
【数３】
2013532410.tif 000005
【００３０】
式中、ηa,b,iは、レート「ｒi」で「ａ」から「ｂ」に送信するときのＭＡＣの効率であり、ＰＥＲa,b,iは、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である。
【００３１】
再試行の数に関するプロトコル独自の上限まで、送信に失敗したパケットを再送することができる。
【００３２】
ネットワークスループットを最大化するレート適応戦略はネットワークリソースの最適な使用を保証するので、これをデータトラヒックに特に適したものとすることができる。上位レイヤでの伝送制御プロトコル（ＴＣＰ）の使用は、レイヤ２より上での誤り回復と、フロー制御とを保証する。
【００３３】
しかしながら、オーディオ／ビデオトラヒックは、高データレートを有することに加えて、非常に遅延の影響を受けやすく、リアルタイムでの受信を必要とする。厳しい遅延要件と、オーディオ／ビデオトラヒックは、多くの場合、複数のコンテンツシンクへの配信を要求するブロードキャスト／マルチキャストコンテンツであり得るという事実とに応えるために、ユニバーサルデータグラムプロトコル（ＵＤＰ）を用いることができる。ＴＣＰとは異なり、ＵＤＰは、フロー制御または誤り回復を提供しない。
【００３４】
図２  −  コンテンツデバイスおよびシンクデバイスの例示的な挙動モデル
図２は、図１におけるエンティティを実現することによる、コンテンツソースデバイス２１０およびコンテンツシンクデバイス２４０の例示的な挙動モデルを表す。
【００３５】
コンテンツソースデバイスは、パケット化されたオーディオ／ビデオと制御データとをＬＡＮコントローラ２１３に出力するコンテンツジェネレータ２１１を含むことができ、ＬＡＮコントローラ２１３は、ＬＡＮのＭＡＣレイヤプロトコルおよびＰＨＹレイヤプロトコルに従って、そのパケット化されたデータをチャネル２２０上で送信する。バッファメモリ２１２は、コンテンツジェネレータ２１１をＬＡＮコントローラ２１３にインターフェースすることができる。システムコントローラ２１７は、２１０の様々な機能モジュールの動作を制御することができる。
【００３６】
コンテンツシンクデバイス２４０は、パケット化されたオーディオおよび／またはビデオをＬＡＮコントローラ２４３から受信することができ、ユーザが認識可能な形式で、たとえば、ビデオなどの画像および／またはサウンドとして、たとえば、テレビジョンセットからデータを出力することができるコンテンツレンダリングモジュール２４１を含むことができる。バッファメモリ２４２は、ＬＡＮコントローラ２４３をコンテンツレンダリングモジュール２４１にインターフェースすることができる。システムコントローラ２４７は、２４０の様々な機能モジュールの動作を制御することができる。
【００３７】
コンテンツソース２１０およびコンテンツシンク２４０におけるバッファメモリ２１２および２４２はそれぞれ、コンテンツジェネレータ２１１の出力レートの考えられる変動、チャネルキャパシティ２２０の変動、およびコンテンツレンダリングモジュール２４１の出力レートの変動があるなかで、送信されたビデオストリームのサービス品質（ＱｏＳ）を維持するのを支援することができる。
【００３８】
たとえば、チャネル２２０が短期間停止した場合、バッファ２１２は、ＬＡＮコントローラ２１３が正常に送信できなかった、コンテンツジェネレータ２１１によって生成された余分なデータを吸収する。同様に、バッファ２４２は、以前に受信され、記憶されたデータをコンテンツレンダリングモジュール２４１に出力し、それによって、コンテンツの連続性と、したがってＱｏＳとをユーザに保証する。バッファ２１２および２４２の深さは、許容することができるチャネル停止の継続時間とシステムの応答時間遅延とを決定し、これらはいずれも、ＱｏＳをユーザに提供するという点で、競合する要件である。
【００３９】
コンテンツソースデバイス２１０がブロードバンドゲートウェイを表すＩＰＴＶ配信の例では、（たとえば、ブロードバンドゲートウェイ内の）コンテンツジェネレータ２１１は、ＬＡＮコントローラ２１３によって送信するためのパケット化されたデータを生成するのに、ＷＡＮにおけるヘッドエンドサーバに依存する。バッファ２１２は、コンテンツジェネレータが送信するためのコンテンツを生成するのを妨げる、ＷＡＮにおける任意の停止または遅延を吸収するのを支援することができる。
【００４０】
先に述べたように、オーディオ−ビデオトラヒックにＵＤＰプロトコル（または類似のプロトコル）を使用すると、トランスポートレイヤでのフロー制御および誤り回復がない。基礎をなすＬＡＮ技術によって提供されるレイヤ２のフロー制御および誤り回復は、図２のＬＡＮコントローラ２１３と２４３との間のリンクに限定される。
【００４１】
図３  −  マルチ状態レート適応
本明細書に記載の実施形態は、時間によって変化するチャネル上で動作するネットワークを介してストリーミングされるマルチメディアコンテンツに関して、改善されたＱｏＳとより良いユーザ体験とを容易にするビデオ配信を提供する。以下では、家庭環境におけるワイヤレスＬＡＮの例について、様々な実施形態が説明され得る。しかしながら、これらの実施形態は、時間によって変化するチャネルを介して動作する任意のネットワーキング技術に同様に適用可能であってもよく、同様の理由で、本発明は動作の環境に制約され得ない。
【００４２】
（たとえばＩＰＴＶまたはブロードキャストＴＶの場合のように）コンテンツは多くの場合ライブである、もしくは（ネットワーク接続されたスピーカ、ディスプレイなどの）同期化された出力を必要とする複数のエンドポイントにマルチキャスト／ブロードキャストされるという事実、またはフィードバック遅延が多くの場合非常に大きいという事実によって、コンテンツジェネレータ２１１は、基礎をなすチャネル２２０の状態とは無関係のレートでコンテンツを生成することができる。
【００４３】
ワイヤレスチャネル２２０の不利な状態の結果として、たとえば、データを転送している間に、チャネルキャパシティが低下することがある。したがって、ＬＡＮコントローラ２１３の一部としてのレート適応アルゴリズムは、許可された送信レートを、コンテンツジェネレータ２１１の出力データレートを下回る送信レートに低下させることができる。バッファメモリ２１２が一杯であるとき、これはデータの損失をもたらすことがある。
【００４４】
一実施形態では、ＬＡＮコントローラ２１３は、以下で説明されるように、コンテンツジェネレータの出力データレートと、バッファにおける利用可能なメモリの量と、ＬＡＮコントローラ２１３によって達成可能な実効送信レートとに応じて、マルチ状態レート適応手法を使用する。
【００４５】
図３は、本実施形態による、２つの状態を有する例示的なレート制御アルゴリズムの状態機械図である。本明細書に記載の様々な実施形態は、異なる状態を有する単一のアルゴリズムではなく、別個のレート適応アルゴリズムを有するそれぞれの状態を指し得ることに留意されたい。システム初期化時に、レート適応アルゴリズムは、経路３０１を介して「状態Ａ」３１０（「第１のレート適応アルゴリズム」）で開始することができる。しかしながら、２１２における利用可能なバッファの数が「ｔｈｒｅｓｈ12」（「第１の閾値」）を下回るとき、アルゴリズムは、経路３１２を介して「状態Ｂ」３２０（「第２のレート適応アルゴリズム」）に移行することができる。バッファメモリ２１２における利用可能なバッファの数が「ｔｈｒｅｓｈ21」（「第２の閾値」）を超えるとき、「状態Ｂ」３２０から「状態Ａ」３１０への移行は、経路３２１を介することができる。「ｔｈｒｅｓｈ12」および「ｔｈｒｅｓｈ21」は、実行時間において動的に決定され得る。
【００４６】
いくつかの実施形態では、これらの閾値は、後で説明されるように、バッファメモリ２１２のサイズ、コンテンツジェネレータ２１１の出力データレート、およびＬＡＮコントローラ２１３の実効送信レートの関数であってもよい。図３の状態機械は、所望に応じて、コンテンツソースデバイス２１０上の、具体的には図２のＬＡＮコントローラ２１３内に存在するソフトウェアおよび／またはハードウェア実装によって実現され得る。
【００４７】
一実施形態では、「状態Ａ」３１０で動作するとき、ＬＡＮコントローラ２１３は、リンクの実効スループットを最大化しようと試みるレート適応戦略を採用することができ、たとえば、ＬＡＮコントローラ２１３は、式（１）に示された基準を満たそうと試みることができる。したがって、チャネル状態が送信のエラーをもたらすとき、レート適応戦略によって、ＬＡＮコントローラ２１３は、パケットが正常に送信されるまで、または到達する送信試行の数に対するプロトコル／実装に特有の制限によってパケットが送信機でドロップされるまで、スループットＴa,b,iを最大化する送信レートｒiを使用してパケットを再送しようと試みることになる。
【００４８】
本明細書に記載の実施形態は、ＬＡＮコントローラ２１３によって確認されるパケットエラーは、再送を試みることができるという点で回復可能であり、その一方でパケット損失、たとえばバッファメモリ２１２でのオーバーフローによるパケット損失は回復可能ではないということを考慮する。さらに、遅延範囲内で受信された場合にのみ、オーディオ／ビデオパケットがコンテンツシンクデバイス２４０にとって有用であり、その範囲を超えると、オーディオ／ビデオパケットがドロップされることがあり、したがって、コンテンツレンダラ２４１によってレンダリングされないことが認識される。２４０によるパケットの受信はＱｏＳに影響を及ぼさないので、そのようなパケットの送信は、送信リソース／チャネルキャパシティの浪費をもたらす。さらに、そのような送信に使用されたチャネルキャパシティは、そうでなければ、ＱｏＳと関係があるパケットを送信するために使用されている可能性がある。
【００４９】
チャネル停止の継続時間の一般的な統計に基づいて、エンドユーザによって知覚されたＱｏＳは、期間またはコンテンツストリームにおける最初の損失パケットと最後の損失パケットとの間のシーケンスの長さとして定義される「パケットの不連続性の継続時間」によって影響を受けることがさらに認識される。
【００５０】
バッファ２１２がオーバーフローしたとき、バッファに記憶されたパケットを送信しようと試みると、バッファオーバーフローにより、バッファの最後で追加のドロップを生じさせることがあり、バッファにおけるパケットの送信はパケットの不連続性の継続時間を増加させることになり、そのような送信されたパケットはおそらくはパケットの遅延範囲を超え、最終的には受信機でドロップされることになり、実質的にＱｏＳを低下させることがさらに認識される。
【００５１】
上記で説明された集められた知見に基づいて、一実施形態によれば、「状態Ｂ」３２０で動作するとき、ＬＡＮコントローラ２１３は、以下で説明されるように、フローレートを最大化することを目標とするレート適応戦略を採用することができる。
【００５２】
ノード「ａ」から「ｂ」への送信の場合、「ｊ」個の要素を有する、レートのサブセット「Ｒ’」から取り出された、選択されたレート「ｒ」は、式（２）に示されるように、すべての「ｊ」についてフローレートＦa,b,jを最大化するレートである。
【数４】
2013532410.tif 000006
【００５３】
式中、「ηa,b,j」は、レート「ｒj」で「ａ」から「ｂ」に送信するときのＭＡＣの効率であり、「ＰＥＲa,b,j」は、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」は、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数であり、「Ｒ’」は、式（３）の条件を満たす「ｊ」個の要素「ｒj」を含む「Ｒ」のサブセットである。
【数５】
2013532410.tif 000007
【００５４】
式中、「Ｉ」は、イングレスレートまたはコンテンツジェネレータ２１１からの提供された負荷である。
【００５５】
一実施形態では、「Ｎa,b,j」は、式（４ａ）によって計算され得る。
【数６】
2013532410.tif 000008
【００５６】
あるいは、Ｎa,b,jは、式（４ｂ）によって計算され得る。
【数７】
2013532410.tif 000009
【００５７】
式中、「μ」は、ノード「ａ」から「ｂ」以外のチャネル上でのすべての送信に対する媒体利用率である。
【００５８】
一実施形態では、状態３２０で動作するとき、ＬＡＮコントローラ２１３は、その再送ポリシーを調整して、式（２）のフローレート「Ｆa,b,j」を最大化するレート「ｒj」を使用するときに、パケット毎の許可される再送の数を、（他の可能性のなかでも）式（４ａ）または式（４ｂ）のいずれかで決定される「Ｎa,b,j」に制限することができる。
【００５９】
式（４ａ）の方法を使用するときに、非整数になるように「Ｎa,b,j」を計算することができることがさらに認識される。たとえば、状態３２０で動作するとき、ＬＡＮコントローラ２１３は、複数のパケットにわたって再送ポリシーを調整して、非整数「Ｎa,b,j」によって課される制約を平均的に（in an average sense）満たすことができる。
【００６０】
一実施形態では、状態３２０で動作するとき、ＬＡＮコントローラ２１３は、複数のパケットにわたって再送ポリシーを調整して、「Ｎa,b,j」の制約を平均的に適用することができる。たとえば、ＬＡＮコントローラ２１３は、所与のフローレート「Ｆa,b,j」での送信統計に基づいた、再送に利用可能な「クレジットの数」のカウントを維持することができる。次いで、ＬＡＮコントローラ２１３は、利用可能なクレジットを使用して、再送の上限「Ｎa,b,j」に達する前に他のフレームが正常に送信されたとき、累積されたクレジットに基づいていくつかのフレームのさらなる再送を可能にすることができる。
【００６１】
いくつかの実施形態では、コンテンツソースデバイス２１０が「ディープパケットインスペクション」可能であるとき、または他の何らかの手段によって、コンテンツジェネレータ２１１によって生成されたデータストリームのいくつかのパケットを他のパケットよりも優先することができるとき、ＬＡＮコントローラ２１３は、「Ｎa,b,j」の制約を平均的に適用することもでき、他のパケットよりも最優先パケットのさらなる再送を可能にすることができる。
【００６２】
コンテンツソースデバイス２１０が、同じ宛先または複数の宛先のいずれかへの複数のストリームの同時送信をサポートすることができるように、本明細書に記載の方法を適用することができることに留意されたい。異なるストリームがどのように優先されるかに応じて、たとえば、バッファメモリ２１２を様々なストリームの間で分割することができ、または「ａ」と「ｂ」との間のすべての送信を同じように扱うことができ、本実施形態の方法をそれに応じて適用することができる。
【００６３】
したがって、上記で説明されたように、本発明の方法に従ってＬＡＮコントローラによってレートのセット「Ｒ」から選択されたレート「ｒi」に基づいてＬＡＮコントローラ２１３によって送信された実効スループット「ＥｆｆＴa,b,i」は、式（５）によって与えられる。
【数８】
2013532410.tif 000010
【００６４】
いくつかの実施形態では、閾値ｔｈｒｅｓｈ12  ３１２およびｔｈｒｅｓｈ21  ３２１を実行時間（たとえば、データの送信時）において決定することができ、以下の式（６）によって説明されるように、バッファメモリ２１２のサイズ、コンテンツジェネレータ２１１の出力データレート（すなわち、提供された負荷「Ｉ」）、およびＬＡＮコントローラ２１３の実効スループットの関数とすることができる。
【数９】
2013532410.tif 000011
【００６５】
いくつかの実施形態では、「ｔｈｒｅｓｈ12」および「ｔｈｒｅｓｈ21」の計算または調整は、他の要因のなかでも、イングレストラヒック／提供された負荷およびエグレストラヒックフローのバースト性、最優先パケットのシーケンスの予想される長さ、および／または実施の応答時間をさらに考慮することができる。
【００６６】
図４  −  データの配信のためのマルチ状態レート適応
図４は、データの配信のためのマルチ状態レート適応の方法の一実施形態を示すブロック図である。より具体的には、図４は、上記の図２および図３の説明に対応する方法の様々な実施形態について説明している。図４に示される方法を、他のデバイスのなかでも、上記の図に示されるコンピュータシステム、デバイス、または回路のいずれかとともに使用することができる。様々な実施形態では、示される方法要素のいくつかを同時に実行するか、示されているものとは異なる順序で実行するか、省略することができる。所望に応じて、追加の方法要素を実行することもできる。示されるように、この方法は以下のように動作することができる。
【００６７】
４０２では、データ（たとえば、ビデオデータを含むマルチメディアデータ）は、選択されたレート適応アルゴリズムを使用して、第１のデバイスから第２のデバイスに最初に送信され得る。しかしながら、この方法を、たとえば、マルチキャストにおいて、第１のデバイスから複数の他のデバイスに送信するように拡張することができることに留意されたい。データをコンテンツジェネレータから生成または受信することができ、送信のために１つまたは複数のバッファ（たとえば、複数のバッファ）に記憶することができる。第１のデバイスから第２のデバイスへの送信のレートとは無関係のレートでデータを生成することができることに留意されたい。
【００６８】
一実施形態では、最初に選択されたレート適応アルゴリズムは、上記で説明された第１のアルゴリズムであってもよい。上記で示したように、第１のレート適応アルゴリズムは、増加したスループットを提供することができる、すなわち、スループットを最大化しようと試みることができる。スループットは、
【数１０】
2013532410.tif 000012
【００６９】
と定義され得る。
【００７０】
式中、ηa,b,iは、レート「ｒi」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iは、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である。
【００７１】
４０４では、利用可能なバッファの数（またはバッファで利用可能なメモリの量）が第１の閾値を下回ると判定することができる。
【００７２】
４０４での判定に基づいて、４０６では、第２のレート適応アルゴリズム（たとえば、上記で説明された、フローレートを最大化しようと試みる第２のレート適応アルゴリズム）を使用して、データを第１のデバイスから第２のデバイス（または複数のデバイス）に送信することができる。したがって、利用可能なバッファの数を使用して、どのレート適応アルゴリズムが使用されるかを判定することができる。より具体的には、一実施形態では、利用可能なバッファの数を使用して、あるレート適応アルゴリズムから別のレート適応アルゴリズムにいつ切り換えるかを判定することができる。
【００７３】
上記で示されるように、第２のレート適応アルゴリズムは、増加したフローレートを提供することができる、すなわち、フローレートを最大化しようと試みることができる。フローレートは、
【数１１】
2013532410.tif 000013
【００７４】
と定義され得る。
【００７５】
式中、「ηa,b,j」は、レート「ｒj」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」は、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」は、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である。
【００７６】
４０８では、利用可能なバッファの数が第２の閾値を超えると判定することができ、それに応じて、４１０では、スループットを最大化しようと試みる第１のレート適応アルゴリズムに従ってデータを送信することができる。
【００７７】
したがって、利用可能なバッファの数および／またはバッファにおける残りのメモリの量に応じて、２つの異なるレート適応アルゴリズムに従ってデータを送信することができる。あるアルゴリズムから別のアルゴリズムへの（またはアルゴリズムのあるモードから別のモードへの）切換えは、同じデータストリームの転送中に生じ得ることに留意されたい。したがって、変更は、データを送信している間に「オンザフライ」で生じ得る。したがって、４０４〜４１０のアルゴリズムの決定および変更は、第１のデバイスから第２のデバイス（または複数のデバイス）へのデータの転送中に複数回生じ得る。さらに、本方法を複数のレート適応アルゴリズムに拡張することができることに留意されたい。
【００７８】
第１の閾値および第２の閾値は同じ閾値とすることができるが、たとえば、利用可能なバッファの数が閾値に近いときに２つのアルゴリズム間での絶え間ない切換えを回避するために、これらの閾値は異なっていてもよいことに留意されたい。たとえば、一実施形態では、第１の閾値は第２の閾値よりも大きくてもよい。さらに、いくつかの実施形態では、実行時間中（たとえば、データが転送されている間）に第１の閾値および／または第２の閾値を動的に調整することができる。そのような調整は、複数のバッファのサイズ、現在の出力データレート、および／または実効送信レートに基づき得る。あるいは、またはさらに、調整することは、データの最優先パケットのシーケンスの予想される長さおよび／またはデータを前記送信することのバースト性に基づいて実行され得る。
【００７９】
コンテンツレンダラ
一実施形態では、バッファメモリ２４２およびコンテンツレンダラ２４１は、ＬＡＮコントローラ２４３によって採用された基礎をなすＭＡＣレイヤおよびＰＨＹレイヤの特性を知ることができる。具体的には、ＬＡＮコントローラ２４３が、コンテンツソースデバイス２１０とコンテンツシンクデバイス２４０との間の基礎をなす接続レイヤとして、ＩＥＥＥ  ８０２．１１  ＷＬＡＮの「厳密に配列された（strictly ordered）」モードまたは「ＨＴ即時ブロック確認応答（HT immediate block-acknowledgement）」モードを使用するとき、バッファメモリ２４２は、ＬＡＮコントローラ２４３から受信されたパケットが順序通りになっているという知識を利用することができる。したがって、バッファメモリ（たとえば、制御側デバイス）は、コンテンツレンダラ２４１への配信前に、２４３から受信したパケットを再配列しようとしなくてもよく、したがって、処理オーバーヘッドおよび遅延の低減に遭遇する。
【００８０】
そのような実施形態は、いくつかのやり方のうちの１つにおいて実現され得る。たとえば、ＬＡＮコントローラ２４３の基礎をなす接続技術が順序通りになっているという知識に基づいて、制御経路２４９を介したシステムコントローラ２４７の構成によって、バッファメモリ２４２の「再配列機能」を無効にすることができる。あるいは、システムコントローラ２４７は、基礎をなす接続の性質を決定し、２４９を介してバッファメモリを適切に構成することができる。
【００８１】
図５  −  例示的な動作
図５は、コンテンツソースデバイス５１０およびコンテンツシンクデバイス５４０が複数の接続インターフェースを介して接続される異種ネットワークの文脈における、本明細書に記載の方法を組み込む装置の実現例を示す。この図および対応する説明は例示的なものにすぎず、上記で説明された実施形態を限定しないことに留意されたい。図５の例では、５１０および５４０は、ワイヤレスチャネル５２０およびイーサネットチャネル５３０を介して接続される。５１０および５４０は、様々な接続媒体上で接続することができる複数のＬＡＮコントローラを有する。この例では、ＬＡＮコントローラ５１３および５４３は、ワイヤレスチャネル５２０を介して５１０と５４０とを接続するために使用される。同様に、ＬＡＮコントローラ５１４および５４４は、イーサネットチャネルを介して５１０と５４０とを接続するために使用される。
【００８２】
コンテンツソースデバイス５１０では、コンテンツジェネレータ５１１は、データをバッファメモリ５１２に供給することができる。マルチプレクサ５１５は、５１２からそれぞれのＬＡＮコントローラ５１３または５１４へのデータのフローを制御することができる。他の機能のなかでも、システムコントローラ５１７は、制御経路５１８を介してＬＡＮコントローラ５１３および５１４のどちらかを選択するように、マルチプレクサ５１５を構成することができる。
【００８３】
同様に、コンテンツシンクデバイス５４０では、この例ではワイヤレス媒体および電力線媒体に対応する複数のＬＡＮコントローラ５４３および５４４があってもよい。これらは、マルチプレクサ５１５を介してバッファメモリ５４２にインターフェースし、最終的にはコンテンツレンダラ５４１にインターフェースすることができる。他の機能のなかでも、システムコントローラ５４７は、制御経路５４８を介してＬＡＮコントローラ５４３および５４４のどちらかを選択するように、マルチプレクサ５４５を構成することができる。
【００８４】
一実施形態では、コンテンツソースデバイス５１０は、他の手段のなかでも、事前構成、ユーザ入力、またはシステムコントローラ５１７と５４７との間のネゴシエーションによって決定された、それぞれ媒体５２０または５３０を介したＬＡＮコントローラ５１３または５１４のいずれかを使用して、コンテンツシンクデバイス５４０との通信を確立することができる。システムコントローラ５４７は、コンテンツシンクデバイス５４０が使用中の基礎をなすＭＡＣコントローラを知ることができ、それに従って、再配列機能を選択的に実施するようにバッファメモリ５４２を構成することができる。
【００８５】
コンテンツソースデバイス５１０とコンテンツシンクデバイス５４０との間の単一の接続技術の文脈において本例を変更することができ、コンテンツソースデバイス５１０とコンテンツシンクデバイス５４０の両方は、図２に示されるように、単一のＬＡＮコントローラを実装する。
【００８６】
さらに、複数のＬＡＮ技術を実施することができる単一のＬＡＮコントローラがあってもよく、操作のモードは接続に応じて、たとえば、リアルタイムで決定され得る。さらに、そのようなデバイスのシステムコントローラは、採用された接続のモードに応じて、バッファメモリを適切に構成することができる。
【００８７】
一実施形態では、システムコントローラ５４７を、コンテンツソースデバイス５１０とコンテンツシンクデバイス５４０との間のシグナリングに関与させることができ、ストリーミングの開始に関連付けられたシグナリングを検出するように構成することができる。たとえば、システムコントローラ５４７は、インターネットグループマルチキャストプロトコル（ＩＧＭＰ）またはデジタルリビングメディアアライアンス（ＤＬＮＡ）またはネットワークを介したオーディオ／ビデオコンテンツの開始／制御に使用される他のプロトコルを生成すること／検出することができることに責任を負うことができる。ストリームの開始に続いて、システムコントローラ５４７は、コンテンツレンダラ５４１に対する再生を開始する前に所定のレベルまで満たされるまで待機するように、信号経路５４９を介してバッファメモリ５４２を構成することができる。たとえば、この事前設定値は、正ジッタと負ジッタの両方を補償するように、バッファメモリ５４２の深さの５０％とすることができる。
【００８８】
たとえば、バッファメモリ５４２のアンダーランを生じさせる、チャネル停止または任意の他の異常があるときなど、空のバッファ状態からのストリームの再開を検出した際、システムコントローラ５４７は、パケットがバッファメモリによって受信された直後にコンテンツレンダラ５４１に対してパケットを利用可能にするように、信号経路５４９を介してバッファメモリ５４２を構成することができる。一実施形態では、これは、事前設定値を０％に動的に構成することによって達成され得る。したがって、チャネル停止の事象から回復した後にそのことを認識すると、コンテンツソースデバイス５１０は、そのバッファ５１２が一杯になっているので、コンテンツシンクデバイス５４０に送るパケットを常に有することになり、バッファメモリ５４２のオーバーフローによるパケット損失の確率は、バッファのコンテンツが受信されたときにそれをクリアしようと試みることによって、最小限に抑えられる。
【００８９】
上記で説明された実施形態は、コンテンツソースデバイス２１０およびコンテンツシンクデバイス２４０が、媒体２２０を介して動作する単一の接続技術によって接続される図２（または上記で説明された実施形態のいずれか）の装置の文脈において同様に適用可能であってもよいことに留意されたい。そのような実現において、システムコントローラ２４７は、バッファメモリ２４２が、信号経路２４９を介してコンテンツレンダラ２４１に対してパケットを利用可能にするバッファ閾値を制御することができる。
【００９０】
上記の実施形態についてかなり詳細に説明してきたが、上記の開示が十分に理解されれば、多くの変形形態および修正形態が当業者に明らかとなろう。以下の特許請求の範囲は、すべてのそのような変形形態と修正形態とを包含すると解釈されるものとする。
【図１】
2013532410.tif 000022
【図２】
2013532410.tif 000023
【図３】
2013532410.tif 000024
【図４】
2013532410.tif 000025
【図５】
2013532410.tif 000026
【手続補正書】
【提出日】平成25年1月11日(2013.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを送信するための方法であって、
選択されたレート適応アルゴリズムを使用して、第１のデバイスから第２のデバイスにデータを送信することであり、データを前記送信することが、複数のバッファを利用し、前記選択されたレート適応アルゴリズムが、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズムのうちの１つである、送信することと、
前記第１のアルゴリズムを使用して送信するときに、前記複数のバッファのうちの利用可能なバッファの数が第１の閾値を下回ると判定することと、
前記第２のアルゴリズムを使用して送信するときに、前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えると判定することとを備え、
前記送信することが、前記複数のバッファのうちの利用可能なバッファの数が前記第１の閾値を下回ると前記判定することに応答して、前記第２のレート適応アルゴリズムを使用して実行され、前記第２のレート適応アルゴリズムが、送信レートを適応することによって前記第１のデバイスから前記第２のデバイスへ増加したフローレートを提供して、前記フローレートを最大化し、前記フローレートを最大化することは、パケット毎の許可される再送の数を制限することを含み、
前記送信することが、前記複数のバッファのうちの利用可能なバッファの数が前記第２の閾値を超えると前記判定することに応答して、前記第１のレート適応アルゴリズムを使用して実行され、前記第１のレート適応アルゴリズムが、前記送信レートを適応することによって前記第１のデバイスから前記第２のデバイスへ増加したデータのスループットを提供し、前記データのスループットを最大化する、方法。
【請求項２】
実行時間中に、前記第１の閾値と前記第２の閾値とを動的に調整すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記調整することが、前記複数のバッファのサイズ、現在の提供された負荷、および／または実効送信レートに基づいて実行される、請求項２に記載の方法。
【請求項４】
前記調整することが、前記データの最優先パケットのシーケンスの予想される長さおよび／または前記データを前記送信することのバースト性に基づいて実行される、請求項２に記載の方法。
【請求項５】
スループットが、
【数１】
2013532410.tif 000027
と定義され、
ηa,b,iが、レート「ｒi」で前記第１のデバイス（「ａ」）から前記第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、請求項１に記載の方法。
【請求項６】
フローレートが、
【数２】
2013532410.tif 000028
と定義され、
「ηa,b,j」が、レート「ｒj」で前記第１のデバイス（「ａ」）から前記第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、請求項１に記載の方法。
【請求項７】
Ｎa,b,jが、
【数３】
2013532410.tif 000029
に従って計算され、
「μ」が、「ａ」から「ｂ」以外のチャネル上での送信に対する媒体利用率である、請求項６に記載の方法。
【請求項８】
Ｎa,b,jが、
【数４】
2013532410.tif 000030
に従って計算され、
「μ」が、「ａ」から「ｂ」以外のチャネル上での送信に対する媒体利用率である、請求項６に記載の方法。
【請求項９】
Ｎa,b,jが、複数のパケットにわたって平均的に適用される、請求項６に記載の方法。
【請求項１０】
Ｎa,b,jが、平均的に適用され、他のパケットよりも優先度の高いパケットのさらなる再送を可能にする、請求項６に記載の方法。
【請求項１１】
前記送信することが第３のデバイスに対しても実行され、前記データがビデオデータを備える、請求項１に記載の方法。
【請求項１２】
前記データが、前記第１のデバイスから前記第２のデバイスへの送信のレートとは無関係のレートで生成される、請求項１に記載の方法。
【請求項１３】
データを１つまたは複数のデバイスに送信するためのシステムであって、
第１のレートで前記１つまたは複数のデバイスに送信するためのデータを生成するコンテンツジェネレータと、
前記コンテンツジェネレータによって生成された前記データをバッファする、前記コンテンツジェネレータに結合された複数のバッファと、
前記複数のバッファに記憶された前記データを第２のレートで送信する送信機であり、前記第２のレートが時間によって変化し、前記第１のレートとは無関係である、送信機とを備え、
前記送信機が、利用可能なバッファの数に基づいて、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズムに従って前記データを送信し、前記第２のレート適応アルゴリズムが、利用可能なバッファの数が第１の閾値を下回るときに使用され、前記第２のレート適応アルゴリズムが、送信レートを適応することによって前記第１のデバイスから前記第２のデバイスへのフローレートを増加させ、前記フローレートを最大化し、前記フローレートを最大化することは、パケット毎の許可される再送の数を制限することを含み、前記第１のレート適応アルゴリズムが、前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えるときに使用され、前記第１のレート適応アルゴリズムが、前記送信レートを適応することによって前記第１のデバイスから前記第２のデバイスへのデータのスループットを増加させ、前記データのスループットを最大化する、システム。
【請求項１４】
前記１つまたは複数のデバイスが複数のデバイスを備え、前記データがビデオデータを備える、請求項１３に記載のシステム。
【請求項１５】
データの送信を構成するためのプログラム命令を備えるメモリ媒体であって、データの前記送信が複数のバッファを使用し、前記プログラム命令が、請求項１乃至１２のいずれかに従うステップを行うように、プロセッサによって実行可能である、メモリ媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
上記の実施形態についてかなり詳細に説明してきたが、上記の開示が十分に理解されれば、多くの変形形態および修正形態が当業者に明らかとなろう。以下の特許請求の範囲は、すべてのそのような変形形態と修正形態とを包含すると解釈されるものとする。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［付記１］
データを送信するための方法であって、
選択されたレート適応アルゴリズムを使用して、第１のデバイスから第２のデバイスにデータを送信することであり、データを前記送信することが、複数のバッファを利用し、前記選択されたレート適応アルゴリズムが、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズムのうちの１つである、送信することと、
前記第１のアルゴリズムを使用して送信するときに、前記複数のバッファのうちの利用可能なバッファの数が第１の閾値を下回ると判定することと、
前記第２のアルゴリズムを使用して送信するときに、前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えると判定することとを備え、
前記送信することが、前記複数のバッファのうちの利用可能なバッファの数が前記第１の閾値を下回ると前記判定することに応答して、前記第２のレート適応アルゴリズムを使用して実行され、前記第２のレート適応アルゴリズムが、増加したフローレートを提供し、
前記送信することが、前記複数のバッファのうちの利用可能なバッファの数が前記第２の閾値を超えると前記判定することに応答して、前記第１のレート適応アルゴリズムを使用して実行され、前記第１のレート適応アルゴリズムが、増加したスループットを提供する、方法。
［付記２］
実行時間中に、前記第１の閾値と前記第２の閾値とを動的に調整すること
をさらに備える、付記１に記載の方法。
［付記３］
前記調整することが、前記複数のバッファのサイズ、現在の提供された負荷、および／または実効送信レートに基づいて実行される、付記２に記載の方法。
［付記４］
前記調整することが、前記データの最優先パケットのシーケンスの予想される長さおよび／または前記データを前記送信することのバースト性に基づいて実行される、付記２に記載の方法。
［付記５］
スループットが、
【数１２】
2013532410.tif 000031
と定義され、
ηa,b,iが、レート「ｒi」で前記第１のデバイス（「ａ」）から前記第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、付記１に記載の方法。
［付記６］
フローレートが、
【数１３】
2013532410.tif 000032
と定義され、
「ηa,b,j」が、レート「ｒj」で前記第１のデバイス（「ａ」）から前記第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、付記１に記載の方法。
［付記７］
Ｎa,b,jが、
【数１４】
2013532410.tif 000033
に従って計算され、
「μ」が、「ａ」から「ｂ」以外のチャネル上での送信に対する媒体利用率である、付記６に記載の方法。
［付記８］
Ｎa,b,jが、
【数１５】
2013532410.tif 000034
に従って計算され、
「μ」が、「ａ」から「ｂ」以外のチャネル上での送信に対する媒体利用率である、付記６に記載の方法。
［付記９］
Ｎa,b,jが、複数のパケットにわたって平均的に適用される、付記６に記載の方法。
［付記１０］
Ｎa,b,jが、平均的に適用され、他のパケットよりも優先度の高いパケットのさらなる再送を可能にする、付記６に記載の方法。
［付記１１］
前記送信することが第３のデバイスに対しても実行され、前記データがビデオデータを備える、付記１に記載の方法。
［付記１２］
前記データが、前記第１のデバイスから前記第２のデバイスへの送信のレートとは無関係のレートで生成される、付記１に記載の方法。
［付記１３］
データを１つまたは複数のデバイスに送信するためのシステムであって、
第１のレートで前記１つまたは複数のデバイスに送信するためのデータを生成するコンテンツジェネレータと、
前記コンテンツジェネレータによって生成された前記データをバッファする、前記コンテンツジェネレータに結合された複数のバッファと、
前記複数のバッファに記憶された前記データを第２のレートで送信する送信機であり、前記第２のレートが時間によって変化し、前記第１のレートとは無関係である、送信機とを備え、
前記送信機が、利用可能なバッファの数に基づいて、第１のレート適応アルゴリズムまたは第２のレート適応アルゴリズムに従って前記データを送信し、前記第２のレート適応アルゴリズムが、利用可能なバッファの数が第１の閾値を下回るときに使用され、前記第２のレート適応アルゴリズムが、フローレートを増加させ、前記第１のレート適応アルゴリズムが、前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えるときに使用され、前記第１のレート適応アルゴリズムが、スループットを増加させる、システム。
［付記１４］
実行時間中に、前記第１の閾値および前記第２の閾値が動的に調整される、付記１３に記載のシステム。
［付記１５］
前記第１の閾値および前記第２の閾値が、前記複数のバッファのサイズ、現在の出力データレート、および／または実効送信レートに基づいて調整される、付記１４に記載のシステム。
［付記１６］
前記第１の閾値および前記第２の閾値が、前記データの最優先パケットのシーケンスの予想される長さおよび／または前記データを前記送信することのバースト性に基づいて調整される、付記１４に記載のシステム。
［付記１７］
スループットが、
【数１６】
2013532410.tif 000035
と定義され、
ηa,b,iが、レート「ｒi」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、付記１３に記載のシステム。
［付記１８］
フローレートが、
【数１７】
2013532410.tif 000036
と定義され、
「ηa,b,j」が、レート「ｒj」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、付記１３に記載のシステム。
［付記１９］
前記１つまたは複数のデバイスが複数のデバイスを備え、前記データがビデオデータを備える、付記１３に記載のシステム。
［付記２０］
データの送信を構成するためのプログラム命令を備えるメモリ媒体であって、データの前記送信が複数のバッファを使用し、前記プログラム命令が、
第１のレート適応アルゴリズムに従って前記送信を構成することであり、前記第１のレート適応アルゴリズムが、増加したスループットを提供することと、
前記複数のバッファのうちの利用可能なバッファの数が第１の閾値を下回ると判定することと、
前記複数のバッファのうちの利用可能なバッファの数が前記第１の閾値を下回ると判定したことに応答して、第２のレート適応アルゴリズムに従って前記送信を構成することであり、前記第２のレート適応アルゴリズムが、増加したフローレートを提供することと、
前記複数のバッファのうちの利用可能なバッファの数が第２の閾値を超えると判定することと、
前記複数のバッファのうちの利用可能なバッファの数が前記第２の閾値を超えると判定したことに応答して、前記第１のレート適応アルゴリズムに従って前記送信を構成することと
を行うように、プロセッサによって実行可能である、メモリ媒体。
［付記２１］
前記プログラム命令が、
実行時間中に前記第１の閾値と前記第２の閾値とを動的に調整する
ようにさらに実行可能である、付記２０に記載のメモリ媒体。
［付記２２］
スループットが、
【数１８】
2013532410.tif 000037
と定義され、
ηa,b,iが、レート「ｒi」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、ＰＥＲa,b,iが、レート「ｒi」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）である、付記２０に記載のメモリ媒体。
［付記２３］
フローレートが、
【数１９】
2013532410.tif 000038
と定義され、
「ηa,b,j」が、レート「ｒj」で第１のデバイス（「ａ」）から第２のデバイス（「ｂ」）に送信するときの効率であり、「ＰＥＲa,b,j」が、レート「ｒj」に関する「ａ」から「ｂ」へのチャネルの誤りの確率（ＰＥＲ）であり、「Ｎa,b,j」が、レート「ｒj」での「ａ」から「ｂ」へのフローについて許可された送信試行の最大数である、付記２０に記載のメモリ媒体。
［付記２４］
前記データが、第１のデバイスから第２のデバイスへの送信のレートとは無関係のレートで生成される、付記２０に記載のメモリ媒体。
【国際調査報告】
2013532410.tif 000039