(57)【要約】本発明では、ビデオ交換の品質向上を提供するために、非対称のエンドポイント・ネットワーク内でビデオ品質に影響を及ぼす使用可能リソースを最初にまた動的に割り当てるためのシステム、およびその方法の例示的な実施形態が提供される。リソース割当てのために動的に構成され得る関連した変数には、それだけに限らないが、フレーム・サイズ、フレーム・レート、コーデック選択（ＭＰＥＧ４、Ｈ２６３、Ｈ２６３＋、Ｈ２６４など）、コーデック・ビット・レートおよびレンダリング・ウィンドウのサイズ（フレーム・サイズと同一であっても、そうでなくてもよい）が含まれる。
2007525884.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して接続された少なくとも第１と第２のエンドポイントを含むビデオ・システムを初期化する方法であって、
前記第１エンドポイントの第１エンドポイント・パラメータを決定すること、
前記第１エンドポイント・ポイント・パラメータを招待要求メッセージと共に前記第２エンドポイントに送信すること、
前記第２エンドポイントで前記招待要求メッセージおよび第１エンドポイント・パラメータを受信すること、
前記第２エンドポイントの第２エンドポイント・パラメータを決定すること、
肯定応答メッセージを前記第２パラメータと共に前記第１エンドポイントに送信すること、および
前記第１および第２エンドポイントで、事前定義された共通の検索テーブルおよび事前定義された規則を参照することによって、他方のエンドポイントの前記パラメータを使用して適切なパラメータ値を選択して前記第１および第２エンドポイントを初期化することを含む方法。
【請求項２】
前記通信ネットワークがローカル・エリア・ネットワーク、広域ネットワーク（ＷＡＮ）、衛星ネットワーク、無線通信ネットワーク、付加価値ネットワーク（ＶＡＮ）、電話網（ＰＯＴＳ）、私設専用回線網、または前記諸ネットワークの任意の組合せである請求項１に記載の方法。
【請求項３】
前記通信ネットワークがインターネットである請求項２に記載の方法。
【請求項４】
前記エンドポイントのそれぞれがビデオ対応システムである請求項１に記載の方法。
【請求項５】
前記エンドポイントのそれぞれがコンピュータ・システムである請求項４に記載の方法。
【請求項６】
前記第１および第２エンドポイント・パラメータが性能特性パラメータを含む請求項１に記載の方法。
【請求項７】
前記性能特性パラメータが、第１および第２エンドポイントＣＰＵ速度と、第１および第２エンドポイント順序プロファイルと、第２エンドポイント復号に適した事前定義された１組の符号化形式と、現在のフレーム・サイズと、現在のフレーム・レートと、現在の符号化形式とを含む請求項６に記載の方法。
【請求項８】
前記初期化工程がさらに、
前記第２エンドポイントが前記現在のエンコーダ形式を復号することができない場合は、前記所定の規則に基づいて前記現在のエンコーダ形式を第２エンドポイント復号に適した符号化形式に割り当てること、
そうでない場合は、前記現在のフレーム・サイズを使用して、前記事前定義された共通テーブルから前記第１または第２エンドポイントの第１、第２および第３のコスト係数を取得することであって、前記第１コスト係数が、前記第１エンドポイント上でフレームを符号化するＣＰＵクロック・サイクル数であり、前記第２コスト係数が、前記第２エンドポイント上でフレームを復号するＣＰＵクロック・サイクル数であり、前記第３コスト係数が、前記第２エンドポイント上でフレームをレンダリングするＣＰＵクロック・サイクル数であること、
前記第１コスト係数に基づいて、前記第１エンドポイント符号化が使用可能ＣＰＵリソースの約６０％より多くは消費しない場合は、
前記第２および第３コスト係数に基づいて、前記第２エンドポイント復号およびレンダリングが使用可能ＣＰＵリソースの約４０％より多くは使用しない場合に前記初期化工程を終了すること、そうでない場合に、
前記現在のフレーム・サイズがかつて縮小されていない場合は、前記現在のフレーム・サイズを半分に縮小すること、
前記現在のフレーム・サイズが半分に縮小されている場合は、前記事前定義された規則に基づいて前記現在の符号化形式を適切な値に設定すること、
そうでない場合は、前記現在のフレーム・レートを約７５％だけ減少させることをさらに備える請求項７に記載の方法。
【請求項９】
ビデオ初期化システムであって、
通信ネットワークと、
前記通信ネットワークを介して接続された少なくとも第１と第２のエンドポイントとを備え、
前記第１エンドポイントが、
前記第１エンドポイントの第１エンドポイント・パラメータを決定し、
前記第１エントリポイント・パラメータを招待要求メッセージと共に前記第２エンドポイントに送信するように構成され、
前記第２エンドポイントが、
前記第２エンドポイントで前記招待要求メッセージおよび第１エンドポイント・パラメータを受信し、
前記第２エンドポイントの第２エンドポイント・パラメータを決定し、
肯定応答メッセージを前記第２パラメータと共に前記第１エンドポイントに送信するように構成され、
前記第１および第２エンドポイントがそれぞれ、
前記第１および第２の個々のエンドポイントで、事前定義された共通の検索テーブルおよび事前定義された規則を参照することによって、他方のエンドポイントの前記パラメータを使用し適切なパラメータ値を選択して前記第１および第２の個々のエンドポイントを初期化するように構成されるビデオ初期化システム。
【請求項１０】
前記通信ネットワークがローカル・エリア・ネットワーク、広域ネットワーク（ＷＡＮ）、衛星ネットワーク、無線通信ネットワーク、付加価値ネットワーク（ＶＡＮ）、電話網（ＰＯＴＳ）、私設専用回線網、または前記諸ネットワークの任意の組合せである請求項９に記載のシステム。
【請求項１１】
前記通信ネットワークがインターネットである請求項９に記載のシステム。
【請求項１２】
前記エンドポイントのそれぞれがビデオ対応システムである請求項９に記載のシステム。
【請求項１３】
前記エンドポイントのそれぞれがコンピュータ・システムである請求項１２に記載のシステム。
【請求項１４】
前記第１および第２エンドポイント・パラメータが性能特性パラメータを含む請求項９に記載のシステム。
【請求項１５】
前記性能特性パラメータが、第１および第２エンドポイントＣＰＵ速度と、第１および第２エンドポイント順序プロファイルと、第２エンドポイント復号に適した事前定義された１組の符号化形式と、現在のフレーム・サイズと、現在のフレーム・レートおよび現在の符号化形式とを含む請求項１４に記載のシステム。
【請求項１６】
初期化の間、前記システムがさらに、
前記第２エンドポイントが前記現在のエンコーダ形式を復号することができない場合は、前記所定の規則に基づいて前記現在のエンコーダ形式を第２エンドポイント復号に適した符号化形式に割り当て、
そうでない場合は、前記現在のフレーム・サイズを使用して、前記事前定義された共通テーブルから前記第１または第２エンドポイントの第１、第２および第３のコスト係数を取得することであって、前記第１コスト係数が、前記第１エンドポイント上でフレームを符号化するＣＰＵクロック・サイクル数であり、前記第２コスト係数が、前記第２エンドポイント上でフレームを復号するＣＰＵクロック・サイクル数であり、前記第３コスト係数が、前記第２エンドポイント上でフレームをレンダリングするＣＰＵクロック・サイクル数であることを行い、
前記第１コスト係数に基づいて、前記第１エンドポイント符号化が使用可能ＣＰＵリソースの約６０％より多くは消費しない場合は、
前記第２および第３コスト係数に基づいて、前記第２エンドポイント復号およびレンダリングが使用可能ＣＰＵリソースの約４０％より多くは使用しない場合に前記初期化工程を終了し、そうでない場合に、
前記現在のフレーム・サイズが一度縮小されていない場合は、前記現在のフレーム・サイズを半分に縮小し、
前記現在のフレーム・サイズが半分に縮小されている場合は、前記事前定義された規則に基づいて前記現在の符号化形式を適切な値に設定し、
そうでない場合は、前記現在のフレーム・レートを約７５％だけ減少させるように構成される請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００４年１月１６日に出願した米国出願番号第６０／５３７，４７２号の優先権を主張するものである。同特許の開示全体を、本明細書に詳細が記載されているかのように、参照により本明細書に組み込む。
連邦政府による資金提供を受けた研究開発の記載
該当なし
「マイクロフィッシュ付属物」の参照
該当なし
本発明は、一般には、ビデオ通信システムおよび方法に関し、より詳細には、非対称の全二重ビデオ通信システム内の動的なエンドポイント構成のためのシステムおよび方法に関する。
【背景技術】
【０００２】
ビデオ会議およびビデオ・チャットなど、消費者向けおよび商用の高度インタラクティブ・ビデオ・サービスには、高品質の全二重ビデオ能力を備えたハードウェア、ソフトウェアおよび伝送システムが必要である。必要なレベルのビデオ体験を達成するために、最も専門的なビデオ会議ソリューションでは、同一のハードウェア能力およびアーキテクチュアを備えたシステムのエンドポイント（端末）が使用され、また私設の専用高速データリンクが利用される。こうしたカスタム・ハードウェア、ソフトウェアおよび伝送システムの使用は高価である。さらに、ほとんどの企業および多くの個人は、ビデオ会議、ビデオ・チャットおよび他のビデオ関連アプリケーションのために使用したいと望む既存のコンピュータ・システムおよび高速のネットワーク・アクセスを有する。問題は、ビジネスおよび個人のコンピューティング環境では、それぞれ異なるユーザがそれぞれ異なる能力を備えたそれぞれ異なるシステムを一般に有することである。さらに、それらは通常、可変で予測不可能な帯域幅を有する公衆網によって接続される。これらの要因は、ビデオ会議、ビデオ・チャットおよび関連のビデオ・アプリケーションにとって十分に堅牢なビデオ体験を提供することにおいて重要な課題を提示している。
【０００３】
例えば、現在のビジネスおよび個人のコンピューティング環境では、上記で論じたエンドポイントで使用される、非常に様々なコンピュータ中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）能力が存在する。例えば、クロック速度は現在、３００ＭＨｚから３ＧＨｚまで様々である。２Ｄと３Ｄの両方のリアルタイム・ビデオ・レンダリングを向上させるため「グラフィックス・カード」上に設けられた、ハードウェア補助による数多くの様々な方法もある。これらはすべて、所与のエンドポイントがキャプチャし符号化し送信し、かつ／または受信し復号しレンダリングすることができるビデオの品質および「量」（フレーム・サイズおよびフレーム・レートなど）に直接影響を及ぼす。
【０００４】
デスクトップ・ビデオ環境における非常に一般的な問題は、３００ＭＨｚのＣＰＵを備えた低価格マシンが３ＧＨｚのＣＰＵを備えた高価格マシンと通信したいと望むときに生じることである。高価格マシンは、その能力の限界でキャプチャし符号化する場合、３００ＭＨｚマシンの能力を圧倒するレートでビデオを供給する。例えば、３００ＭＨｚマシンは、相手側のビデオを復号するのにその時間のすべてを費やすことがあり、したがって、相手側のためにビデオをキャプチャ／符号化するためのＣＰＵ能力は残されない。
【０００５】
通常は非対称であるエンドポイントの能力に加えて、符号化機能と復号機能のＣＰＵ要件自体、非対称である。一般に符号化は、ビデオ・サイズ、フレーム・レートおよびビット・レートなど、すべての依存変数が一定に保たれる場合、復号に必要なＣＰＵの２倍から４倍を消費する。
【０００６】
これらの問題は、高度のインタラクティブ・ビデオを必要とするビデオ会議や他の任意のアプリケーションが、インターネットなどの公的に使用可能でありまたは共有されたネットワークを使用して実装される場合には、さらに悪化する。一般にインターネット網接続は非常に制限されたアップロード能力を有し、そのアップリンク速度にはしばしば上限が設けられる。複数のユーザが、デジタル加入者回線（ＤＳＬ：Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）およびケーブル・モデムなど、「アップロード・パイプ」上の同じ空間を求めて争うネットワーク上では、実際の最大スループットは広くまた予測できないほどに変化し得る。
【０００７】
ビデオ会議アプリケーション、および多くの他の高度インタラクティブ・ビデオ・アプリケーションでは、ユーザが必要としたビット数を正確に作成するビデオ・コーデック（コーダおよびデコーダ）を使用することが理想的である。実際には、ビデオ会議用アプリケーション向けに設計されたコーデックでさえ、いくらかのジッタがあり、実際の出力ビット・レートでは、予測されないピークおよび谷をもたらす。この問題の解決への一般的な手法は、コーデックの出力に「リーキー・バケット（漏れバケツ）」適用し、それによってバケットへの入力が変化し、「底の穴」が一定の流れで出力を解放することを可能にすることである。出力ビット・レートを平滑化する一方でこの解決策は、システム遅延を増加させるという問題ある影響をもつ。この追加の遅延は、コーデック出力ビット・レートが一時的にピークに達し、大量のビットがバケツに一時的に流れ込むときに、そのビットが底から最終的に出て行くのにより長い時間がかかり、すなわち水がバケツ内により長くとどまるので発生する。
【０００８】
さらに、このタイプの手法では、オーディオとビデオなど、複数のストリームがそれぞれ異なるビット・レートを有し、またそれぞれ異なるピークと谷の特性（オーディオは通常ビデオよりも一定である）を一般に有するので、複数のストリームの同期が複雑になる。ストリームが受信側で同期されなければならないので、いずれかのストリームの最長の遅延が事実上システム遅延となる。
【特許文献１】米国出願番号第６０／５３７，４７２号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、ビデオ交換の品質向上を提供するために、非対称のエンドポイント・ネットワーク内でビデオ品質に影響を及ぼす使用可能なリソースを最初にまた動的に割り当てるためのシステムおよび方法を本発明の一態様に従って提供することによって上述の従来技術の限界に対処するものである。
【課題を解決するための手段】
【００１０】
リソース割当てのために動的に構成され得る関連した変数には、それだけに限らないが、フレーム・サイズ、フレーム・レート、コーデック選択（ＭＰＥＧ４、Ｈ２６３、Ｈ２６３＋、Ｈ２６４など）、コーデック・ビット・レートおよびレンダリング・ウィンドウのサイズ（フレーム・サイズと同一であっても、そうでなくてもよい）が含まれる。
【００１１】
本発明の第２の態様によれば本発明は、通信ネットワークを介して接続された少なくとも第１と第２のエンドポイントを含むビデオ・システムを初期化する方法を含み、前記方法が、前記第１エンドポイントの第１エンドポイント・パラメータを決定すること、前記第１エンドポイント・パラメータを招待要求と共に前記第２エンドポイントに送信すること、前記第２エンドポイントで前記招待要求および第１エンドポイント・パラメータを受信すること、前記第２エンドポイントの第２エンドポイント・パラメータを決定すること、肯定応答を前記第２パラメータと共に前記第１エンドポイントに送信すること、および前記第１および第２エンドポイントで共通のテーブルを参照して、各エンドポイントが他のエンドポイントのパラメータを使用して適切なパラメータ値を選択し、前記第１および２エンドポイントを初期化することを含む。
【００１２】
このセッションの間、システムは、現在参加しているすべてのエンドポイントへのリソース割当てを動的に調整するために、性能を引き続き監視する。
【００１３】
本発明のこれらのおよび他の態様、特徴および利点は、以下の説明、添付の特許請求の範囲、および添付の図面に関してよりよく理解されるようになる。
【００１４】
本発明の例示的な実施形態について、以下の図面を参照して次に簡潔に述べる。
【発明を実施するための最良の形態】
【００１５】
本発明の態様、特徴および利点は、添付の図面を参照する以下の説明に関してよりよく理解されるようになる。以下は、本発明の好ましい実施形態である。上記内容は、例示するためだけに提示されており、限定的なものではなく、例示的なものにすぎないことが当業者には明らかなはずである。この説明において開示するすべての特徴は、明示的に示されていない限りは、同じ目的、および等価または類似の目的を満たす代替の特徴によって置き換えられ得る。したがって、その修正の他の多くの実施形態は、本明細書で定められており、またそれに等価の本発明の範囲内に含まれるものとして企図される。この説明において、同じ番号は、本発明を例示するそれぞれ異なる図に従って同様の要素を識別するために使用される。
【００１６】
概要
以下で詳細に述べるように、本発明の発明概念は、それだけに限らないがビデオ会議など、インタラクティブで全二重のビデオ・サービスのための高品質のビデオおよびオーディオ・サービスを提供する。
【００１７】
本発明の好ましい一実施形態は、非対称のエンドポイント装置およびシステム、ならびにビデオ・ストリームの符号化と復号の固有の非対称性に対処するために、知覚されるビデオ品質を必要に応じて最適化するように、中央処理装置（ＣＰＵ）使用およびネットワーク帯域幅を最初にまた動的に割り当てることができる。ＣＰＵ使用およびネットワーク帯域幅を割り当てるために最初にまた動的に構成され得る変数には、それだけに限らないが、フレーム・サイズ、フレーム・レート、コーデック選択（ＭＰＥＧ４、Ｈ２６３、Ｈ２６３＋、Ｈ２６４など）、コーデック・ビット・レートおよびレンダリング・ウィンドウのサイズ（フレーム・サイズと同一であっても、そうでなくてもよい）が含まれる。例えば、単純な実施例では、符号化と復号が非対称であるので、上述の３００ＭＨｚ／３ＧＨｚのエンドポイントの対は、３００ＭＨｚマシンに１６０×１２０ピクセルで１秒当たり１５フレームを符号化させ、それによって、それに１７６×１４４ピクセルで１秒当たり２４フレームを復号させるのに十分なほどのＣＰＵが残されるようになることによって最適に構成され得る。好ましい実施形態では、できるだけ良好なビデオ再生体験をすべてのマシン上で保証するために、２つ以上のエンドポイントがそれぞれ協力して、その解決策を得る。
【００１８】
図１−システム・アーキテクチュア
図１は、本発明の原理に従って通信ネットワークを介して高品質のビデオおよびオーディオを提供するための例示的なシステムのハイレベル・ブロック図である。このシステムは一般に、通信ネットワークとインターフェースする任意の数のエンドポイントを含む。
【００１９】
この通信ネットワークは、それだけに限らないが、ローカル・エリア・ネットワーク、インターネットまたは他の広域ネットワーク、衛星または無線通信ネットワーク、商用付加価値ネットワーク（ＶＡＮ：ｖａｌｕｅ  ａｄｄｅｄ  ｎｅｔｗｏｒｋ）、一般電話回線または私設の専用回線を含めて、様々な形を取り得る。使用される通信ネットワークは、エンドポイント間で信頼できる高速のデータ通信を提供することだけが必要である。
【００２０】
それぞれのエンドポイントは、それだけに限らないが、コンピュータ・システム、メインフレーム・システム、スーパーミニ・システム、ミニコンピュータ・システム、ワークステーション、ラップトップ・システム、ハンドヘルド装置、モバイル・システムまたは他のポータブル装置などを含めて、中央処理装置および必要なビデオおよび／またはオーディオ能力を有する任意の形のシステムであり得る。
【００２１】
図２−操作方法
図２は、本発明の発明概念によるシステムによって実施される例示的な操作方法のハイレベル処理フローチャートである。
【００２２】
最初に第１エンドポイントは、第１エンドポイントの有効ＣＰＵ速度、第１エンドポイントのハードウェア・レンダリング能力、第１エンドポイントのハードウェア色変換能力、第１エンドポイントのＣＰＵステップダウン・プロファイルなど、複数のパラメータを決定するために自己診断チェックを実施する。次いで、第１エンドポイントは、そのパラメータを招待要求メッセージと共に第２エンドポイントに送信する。第２エンドポイントは、招待要求を受信し、要求が肯定応答される場合には、第２エンドポイントの有効ＣＰＵ速度、第２エンドポイントのハードウェア・レンダリング能力、第２エンドポイントのハードウェア色変換能力、第２エンドポイントのＣＰＵステップダウン・プロファイルなど、複数のパラメータを決定するために自己診断チェックを実施する。次いで、第２エンドポイントは、そのパラメータを肯定応答メッセージと共に第１エンドポイントに送信する。
【００２３】
個々のパラメータを取得すると各エンドポイントは、共通のテーブル（以下の図３参照）を参照し、図２に示すプロセス・フローを実施することによって、エンドポイント能力のそれぞれ異なる組合せに最適化されたヒューリスティック・パラメータ設定を導出する。
【００２４】
図２および３を具体的に参照すると、１００で、所与のエンドポイントが、ローカルおよび宛先エンドポイントの性能特性に関する以下の知識を知ることから開始している。宛先エンドポイントの例えばＭＨｚ単位のＣＰＵ速度、ローカル・エンドポイントの例えばＭＨｚ単位のＣＰＵ速度、宛先エンドポイント上のレンダリングの例えばＭＨｚ単位のＣＰＵコスト概算を検索するために使用される順序プロファイル番号、ローカル・エンドポイント上のレンダリングの例えばＭＨｚ単位のＣＰＵコスト概算を検索するために使用される順序プロファイル番号、宛先エンドポイントが復号し得る符号化形式のリスト、既定値（例えば３２０×２４０など）に設定された現在のフレーム・サイズ、既定値（例えば３０など）に設定された現在のフレーム・レート、および既定値により図３のテーブル１の第１符号化形式に設定された現在のエンコーダ形式。
【００２５】
２００で、このシステムは、宛先エンドポイントが現在のエンコーダ形式を復号し得るかどうか判断する。そうである場合、処理は工程２５０に進む。そうでない場合、処理は工程６００に進む。
【００２６】
２５０で、システムは以下の３つの関数を実施する。
・  現在のフレーム・サイズを使用して、第１のコスト係数（ＣＯＳＴ１）がテーブル２のテーブル検索によって取得される（図３参照）。コスト１は、宛先エンドポイント上で各フレームを復号するクロック・サイクル数（ＭＨｚ）である。
・  現在のフレーム・サイズを使用して、第２のコスト係数（ＣＯＳＴ２）がテーブル３のテーブル検索によって取得される（図３参照）。コスト２は、ローカル・エンドポイント上で各フレームを符号化するクロック・サイクル数（ＭＨｚ）である。
・  現在のフレーム・サイズを使用して、第３のコスト係数（ＣＯＳＴ３）が表４のテーブル検索によって取得される（図３参照）。コスト３は、宛先エンドポイント上で各フレームをレンダリングするクロック・サイクル数（ＭＨｚ）である。
【００２７】
３００で、このシステムは、ローカル・エンドポイントのためのコストが、ローカル符号化によって使用可能ＣＰＵリソースの６０％より多くは消費されないという基準を満たしているかどうか判断するために第１のテストを実施する。そうするためにこのシステムは、第２コスト係数（ＣＯＳＴ２）に現在のフレーム・レートを掛ける。結果として生じる値が、ローカルＣＰＵ速度に６０％を掛けた値を超過しない場合は、処理は工程３５０に進み、このシステムは第２のテストを実施する。そうでない場合は、処理は工程４００に進む。
【００２８】
３５０で、このシステムは、宛先エンドポイントのためのコストが、宛先の復号およびレンダリングによって使用可能ＣＰＵリソースの４０％より多くは消費されないという基準を満たしているかどうか判断するために第２のテストを実施する。そうするためにこのシステムは、第１コスト係数と第３コスト係数を加算し（ＣＯＳＴ１＋ＣＯＳＴ２）、次いでその結果に現在のフレーム・レートを掛ける。結果として生じる値が、宛先ＣＰＵ速度に４０％を掛けた値を超過しない場合は、処理は現在のフレーム・サイズ、フレーム・レートおよびエンコーダ設定で終了する。そうでない場合は、処理は工程４００に進む。
【００２９】
４００で、このシステムは、現在のフレーム・サイズが一度縮小されたサイズであるかどうか判断する。そうである場合は、処理は、工程５００へと続く。そうでない場合は、処理は、工程４１０へと続く。
【００３０】
４１０で、このシステムは、現在のフレーム・サイズを各方向について半分に縮小し、処理は工程２５０に戻る。
【００３１】
５００で、このシステムは、現在のフレーム・レートが半分に縮小されたかどうか判断する。そうである場合は、処理は工程６００へと続く。そうでない場合は、処理は５１０へと続く。
【００３２】
５１０で、このシステムは、現在のフレーム・レートを７５％だけ減少させ、処理は工程２５０に戻る。
【００３３】
６００で、このシステムは、テーブル１（図３参照）内の事前定義された進行に従って現在のエンコーダ形式を格下げし、処理は工程１００に戻る。
【００３４】
上記プロセスを実施することによって、それぞれのエンドポイントは、他のエンドポイントのそれぞれと最適なビデオ交換などを行うためにどのフレーム・レート、フレーム・サイズ、どのコーデック、どのコーデック・ビット・レート、どのレンダリング・ウィンドウ・サイズを使用すべきかについての最適化されたヒューリスティック・パラメータ設定を導出するために、他のエンドポイントの能力を使用する（以下の図４参照）。
【００３５】
以下は、それだけに限らないがライブ・ビデオ・チャットなどのアプリケーションの固定ビット・レートの全二重ビデオ交換の性能特性を、コーデック選択（例えばＨ２３６、ＭＰＥＧ４、Ｈ．２６Ｌから選択される）、コーデック設定（例えば、それだけに限らないがＩフレーム周波数、ＡＰモードおよびフル／ハーフ／クォータＰＥＬから選択される）、ビデオ・サイズおよびビデオ・フレーム・レートをなどの変数を動的に最適化することによって微調整するためのセッション単位の実装の具体的な実施例である。
【００３６】
初期セッション折衝の間、それぞれのマシンは、その有効性能特性、すなわち設定を交換する。両方のマシンが互いの能力を知っている場合、最良の設定が十分に、発見的に予測され得る。これらの設定は、そのセッションに使用可能である最大性能を示す。これは、アドレスおよびプロトコルが２つのエンドポイントによって合意される一般的なセッション折衝の一環である。他の問題は、以下で論じるように、セッション開始後の性能を劣化させ得る。
【００３７】
以下の規則が順番に適用され、両方のマシンの最小公分母（ｔｈｅ  ｌｅａｓｔ  ｃｏｍｍｏｎ  ｄｅｎｏｍｉｎａｔｏｒ）によって選択が決まる。
規則１：コーデック選択。Ｈ．２６Ｌコーデックは、最高のビデオ品質を提供するが、非常に高速のマシン（１．７ＧＨｚ以上）にしか適さない。ＭＰＥＧ４コーデックは、他の設定が調整される場合、より低いＣＰＵグレードを有する他のほとんどのマシンに適している。
規則２：コーデック設定。Ｈ．２６Ｌコーデックは、ＣＰＵを犠牲にしてビデオ品質を向上させる複数の層を有する。ビデオ品質は、１．７ＧＨｚから４ＧＨｚのマシン上で一定のビット・レートで上方へのスケーリングが行われ得る。
規則３：ＭＰＥＧ４コーデックは、間欠的に遅くなるマシンにとってＣＰＵ負荷が高すぎる状態になるときにフレーム（Ｉまたはｂフレームではなく、ｐフレームだけ）を知的に落とすように設定され得る。４動きベクトル・オプションはオフにされ得る（これは、迅速に移動する背景オブジェクトの品質を犠牲にして動き検索を、したがってＣＰＵを低減させる）。これらは、プロセッサが（モバイルＰｅｎｔｉｕｍ（登録商標）  ＩＶなど）そのＣＰＵ能力を変化させる可能性が高いタイプのものである場合にセッション折衝で静的に選択されるためのものである。
規則４：Ｈ２６３が使用される場合、ＡＰモードはオフにされることができ、Ｂフレームは、ＣＰＵ効率を向上させるためにオフにされ得る。
規則５：１ＧＨｚ未満では、性能調整の主要な方法は、ビデオ・サイズおよびフレーム・レートである。ビデオは、１ＧＨｚ未満のマシン上では、ＱＶＧＡからＱＣＩＦまたはＱＱＶＧＡに下がる。８００ＭＨｚ未満のマシン上では、フレーム・レートは、ＣＰＵに一致するように落とされ得る。
代替の一実施形態では、ユーザは、コーデック設定に移動し、これらの既定値をオーバーライドし、かつ／またはビデオ品質折衝を完全にオフにする能力を有する。
【００３８】
図３−共通検索テーブル
図３は、本発明の発明概念に従ってシステム・エンドポイントによってアクセスされる共通のルックアップ・テーブルを示している。それぞれのシステム・エンドポイントは、エンドポイント能力のそれぞれ異なる組合せに最適化されたヒューリスティック・パラメータ設定を導出するときにこれらのテーブルを参照する。
【００３９】
図４−ヒューリスティック・パラメータ
上記で示したように、それぞれのエンドポイントは、本明細書で示す方法に従ってエンドポイント能力のそれぞれ異なる組合せに最適化されたヒューリスティック・パラメータ設定を導出する。図４は、ＣＰＵクロック速度およびビデオ出力品質によって測定されたそれぞれ異なるシステム・クラスについて導出されたこのようなヒューリスティック・パラメータ設定の例である。示すようにテーブル１Ａは、最高品質のビデオ出力を生成する層１のシステム、すなわち中から高レベルのシステム、例えば＞８００ＭＨｚシステムの例示的なパラメータ設定を提供している。テーブル１Ｂは、高品質のビデオ出力を生成する層２のシステム、すなわち中レベルのシステム、例えば５００〜８００ＭＨｚシステムの例示的なパラメータ設定を提供している。テーブル１Ｃは、良い品質のビデオ出力を生成する層３のシステム、すなわち価値システム、例えば３００〜５００ＭＨｚシステムの例示的なパラメータ設定を提供している。最後に、テーブル１Ｄは、ベスト・エフォート品質のビデオ出力を生成する層４のシステム、すなわち標準以下のシステム、例えば３００ＭＨｚ未満のシステムの例示的なパラメータ設定を提供している。
【００４０】
代替の実施形態
セッションベースの設定折衝は良い始まりであるが、本発明の好ましい実施形態は、ビデオ・セッションを通して適切なパラメータを監視し調整し続けるためのリアルタイム・フィードバック・ループを含む。これは、ＣＰＵ負荷などの係数が、所与のマシン上でも広く変化し得るので望ましい。例えば、Ｐｅｎｔｉｕｍ（登録商標）  ＩＶラップトップは、負荷条件下では非常に強引にステップダウンすることで知られている（１．６ＧＨｚマシンは、プロセッサがオーバーヒートする場合には４００Ｍｈｚマシンになり得る）。したがって、ＣＰＵ消費などのパラメータを管理する動的方法が必要である。これを達成する１つのやり方は、例えば、ＣＰＵが折衝された能力の範囲外に出る場合にフレーム・レートを動的に変更することによる。
【００４１】
本発明の別の特徴は、セッション中に有効帯域幅を監視することである。ＣＰＵ負荷とおよび帯域幅のそれぞれについての変更にそれぞれ独立に対処するために行われる設定および調整後に、ＣＰＵ負荷と帯域幅の両方が定期的にまたは継続的に監視される。
【００４２】
リアルタイムで、ＣＰＵ不足がリング・バッファの増加に反映され得る。これは検出され、ソース上で入力ビデオ・フレームを動的に拒否／スキップするために使用され得る。リング・バッファのオーバーフローは、入力ビデオ・フレームの即時の短絡をもたらす。これは、画像間の品質を維持しながら、それがフレーム・レートを犠牲にして処理し得るほどのビデオだけをエンコーダ内にプッシュするという効果をもつ。この手法は、（低価格目標を遥かに下回る）非常に遅いプロセッサに合わせてスケール・ダウンすることができ、それらのシステム上で小さいフレーム・レートをもたらす。ＣＰＵ不足がないマシンでは、ビデオ・フレームは決してスキップされまたは短絡されず、フレーム・レートは影響を受けない。
【００４３】
リアルタイム性能に影響を及ぼし得る別の領域は、ネットワーク上の使用可能帯域幅の損失である。厳しいネットワーク負荷のもとでは、ビデオおよびオーディオのパケットは、リアルタイム制御プロトコル（ＲＴＣＰ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ストリーミング規格などのプロトコルに基づくネットワーク伝送基盤によって廃棄されることができ、送信側と受信側は、帯域幅の枯渇が終わるまでビット・レートを動的に低下させ、またはビデオ配信を中断することを可能にするサービス品質情報を交換することができる。さらなる一実施形態では、エンドポイント設定が、１組のヒューリスティックス、およびケーブル・ネットワーク環境での使用に適した関連するビデオ・サービス層に基づいて決定される。例えば、ビデオ・チャットへの一定の２００ｋｂｐｓ帯域幅割当てを伴うＤＯＣＳＩＳ  ２５６ｋｂｐｓのアップストリーム・ネットワークでは、ビデオ・サービスの４層レベルが、初期セッション折衝中に、以下のラインに沿って決定され得る。
【００４４】
層１−中から高レベル・マシン−最高品質ビデオ
付録Ｉのテーブル１Ａに示す、＞８００ＭＨｚマシン用の設定
層２−中レベル・マシン−高品質ビデオ−（フレームが時折落とされる）
付録Ｉのテーブル１Ｂに示す、５００〜８００ＭＨｚマシン用の設定
層３−価値マシン−良品質ビデオ−（より低いフレーム・レート）
付録Ｉのテーブル１Ｃに示す、マシン（３００〜５００ＭＨｚ）用の設定
層４−標準以下のマシン−ベスト・エフォート・ビデオ品質−（フレームがしばしば落とされ得る）
【００４５】
付録Ｉのテーブル１Ｄに示す、マシン（３００ＭＨｚ未満）用の設定
エンドポイント・ハードウェアおよびソフトウェアの非対称性に加えて、多くのインターネット接続は非常に制限されたアップロード能力を有し、そのアップリンク速度は一般に上限が設けられ、場合によっては、実際の最大スループットは、複数のユーザがＤＳＬおよびケーブル・モデムなど「アップロード・パイプ」上の同じ空間を求めて争うネットワーク上で、広く変化し得る。
【００４６】
ビデオ会議および関連のアプリケーションでは、望まれるビット数を正確に作成するビデオ・コーデックを使用することが理想的であるが、実際には、この目的のために設計されたコーデックでさえ、いくらかのジッタがあり、実際の出力ビット・レートでは、予測されないピークおよび谷をもたらす。一般的な手法は、バケツの入力が変化することができ、底の穴が一定の流れで出力を解放するように、コーデックの出力に「リーキー・バケット」を適用することである。これには、コーデックがピークに達し、（一時的に）大量のビットをバケツに注ぎ込むときにそのビットが底から最終的に出て行くのにより長い時間を要する（水がバケツ内により長くとどまる）ので、システム遅延を増加させるという影響をもつ。
【００４７】
さらに、この類の手法では、オーディオとビデオなどの複数のストリームがそれぞれ異なるビット・レートを有し、それぞれ異なるピークと谷の特性（オーディオは通常ビデオよりも一定である）を一般に有するので、複数のストリームの同期が複雑になり、また受信側でストリームが同期されなければならないので、いずれかのストリームの最長の遅延が事実上システム遅延となる。
【００４８】
アップリンク速度が大きく変化する場合に、またはコーデック出力がアップリンク速度に密接に一致する場合にリーキー・バケットの利点を有し、また複数の入力に従ってバケツの特性（オーバーフローするとき）を調整できるのが望ましい。さらに、遅延および同期に対する影響を最小限に抑えるようなやり方でこれらを管理することが非常に望ましい。
【００４９】
本発明のレート制御システムまたはモジュールは２つの入力を含み、この入力のうちの１つはビデオ・フレームを取り、もう１つはオーディオ・サンプルの塊を取る。これらのそれぞれへの入力は、それだけに限らないが、ビデオ向けのＲＦＣ３０１６、２４２９規格、およびオーディオ向けのＩＳＭＡ規格など、一般に受け入れられており、よく知られている規格に従ってパケット化される。入力がパケット化されると、結果として生じるデータグラムは、１つはビデオ用、もう１つはオーディオ用の２つの独立したリング・バッファに送られる。
【００５０】
これらのリング・バッファは、オーバーフローするときに、コンテンツをそれ上にプッシュするコードの実行を阻止する。
【００５１】
別の実行スレッドは、オーディオおよびビデオ・リング・バッファを連続してチェックし、それがネットワークを介してどんなデータグラムを送信したか、いつか、またその大きさについての履歴を維持する。独立した履歴は、オーディオとビデオ・データグラムの両方について一覧表にされる。履歴が、リング・バッファ内の次のオーディオ・データグラムによって、システムが予定の割当てを超過した（ｏｖｅｒ−ｂｕｄｇｅｔ）状態にならないことを示す場合、オーディオ・データグラムは、リング・バッファから取り出され（ｐｏｐ）、ネットワーク上に送信される。次いで、履歴は更新される。ビデオについて、同じプロセスが繰り返される。
【００５２】
これらのリング・バッファのサイズは、システムの振舞いに大きい影響を及ぼし、リング・バッファが大きくなるにつれて、システムの許容される遅延が増大し、レート制御がより反応の良い、厳密なものとなる。リング・バッファのサイズが小さくなると、レート制御は「より緩く」なり、許容されるリング・バッファのオーバーフローのサイズがゼロに近づくので、遅延はゼロに近づく。
【００５３】
結論
本発明の好ましい実施形態についてここで述べたが、上記内容は、例示するためだけに提示されており、限定的なものではなく、例示的なものにすぎないことが当業者には明らかなはずである。（添付のいずれの特許請求の範囲、要約および図面をも含めて）本明細書に開示したすべての特徴は、明示的に示されていない限りは、同じ目的、および等価または類似の目的を満たす代替の特徴によって置き換えられ得る。したがって、その修正の他の多くの実施形態は、特許請求の範囲によって定められ、またそれに等価の本発明の範囲内に含まれるものとして企図される。
【００５４】
例えば、本発明は、ハードウェアまたはソフトウェア、あるいはその２つの組合せで実施され得る。好ましくは、本発明の態様は、それぞれがプロセッサと、（揮発性および不揮発性メモリおよび／または記憶素子を含めて）プロセッサによって読出し可能な記憶媒体と、少なくとも１つの入力装置と、１つまたは複数の出力装置とを含むプログラマブル・コンピュータ上で実行される１つまたは複数のコンピュータ・プログラムで実装される。プログラム・コードは、上述の機能を実施し、また出力情報を生成するために入力装置を使用して入力されるデータに適用される。出力情報は、１つまたは複数の出力装置に適用される。
【００５５】
それぞれのプログラムは好ましくは、コンピュータ・システムと対話するために高水準の手続き型またはオブジェクト指向プログラミング言語で実装されるが、しかし、プログラムは所望であれば、アセンブリまたはマシン言語で実装されることができる。いずれの場合にも、言語は、コンパイルされまたは解釈される言語であり得る。
【００５６】
こうした各コンピュータ・プログラムは好ましくは、本文献内に記載された手順を実施するためにコンピュータによって記憶媒体または装置が読み出されるときにコンピュータを構成し操作するために、汎用または特殊目的のプログラマブル・コンピュータによって読出し可能な記憶媒体または装置（ＣＤ−ＲＯＭ、ＲＯＭ、ハード・ディスクまたは磁気ディスケットなど）内に格納される。このシステムは、コンピュータ・プログラムで構成されたコンピュータ読取り可能記憶媒体として実装されるものと見なすこともでき、その場合、そのように構成された記憶媒体によってコンピュータが、特定の事前定義されたやり方で動作するようになる。例示するために挙げると、本発明は、システム構成、操作方法および製品、あるいはフロッピー（登録商標）・ディスク、従来のハード・ディスク、ＣＤ−ＲＯＭ、フラッシュＲＯＭ、不揮発性ＲＯＭ、ＲＡＭおよび他の等価の任意のコンピュータ・メモリ装置など、コンピュータ読取り可能媒体で実施される。そのシステム、操作方法および製品は、本明細書で開示した基本概念から逸脱することなしに、その構成および操作の詳細に関して変化し得ることが理解されよう。
【図面の簡単な説明】
【００５７】
【図１】本発明で提示される教示による従来技術の一態様を示す図である。
【図２】本発明で提示される教示による従来技術の第２の態様を示す図である。
【図３】本発明で提示される教示による本発明の一態様を示す図である。
【図４】本発明で提示される教示による本発明の一態様を示す図である。
【図１】
2007525884.tif 000003
【図２】
2007525884.tif 000004
【図３】
2007525884.tif 000005
【図４】
2007525884.tif 000006
【国際調査報告】
2007525884.tif 000007