(57)【要約】【課題】クライアント−サーバ間通信において、サーバとネットワークのコストと複雑性を低減する。【解決手段】クライアント−サーバ間映像通信のためのクライアント支援動き予測システムおよび方法を開示する。本発明は、クライアント・コンピュータの映像ディスプレイ内の現ピクセルセットを更新する要求を受け取るステップと、前記要求および前記クライアント・コンピュータのみから得られる映像情報を使用して、前記映像ディスプレイ内の前記現ピクセルセットを移動させる動きベクトルを生成するステップとを含む。本発明は、ピクセルセットの他に、映像情報のオブジェクト、ブロック、およびフレームに対しても同様に機能する。【選択図】図２
2004537079.tif 000002
【特許請求の範囲】
【請求項１】
クライアント支援動き予測方法であって、
クライアント・コンピュータの映像ディスプレイ内の現ピクセルセットを更新する要求を受け取るステップと、
前記要求および前記クライアント・コンピュータのみから得られる映像情報を使用して、前記映像ディスプレイ内の前記現ピクセルセットを移動させる動きベクトルを生成するステップと、
を含むクライアント支援動き予測方法。
【請求項２】
前記ピクセルセットはブロックである請求項１に記載のクライアント支援動き予測方法。
【請求項３】
前記ピクセルセットはフレームである請求項１に記載のクライアント支援動き予測方法。
【請求項４】
前記受け取るステップは、前記現ピクセルセットのサブセットを所定量だけ並進移動させる動き要求を受け取るステップを含み、
前記生成するステップは、前記映像ディスプレイ内の前記サブセットを前記所定量だけ移動させる単一動きベクトルを生成するステップを含む、請求項１に記載のクライアント支援動き予測方法。
【請求項５】
前記受け取るステップは、前記現ピクセルセットの第２のサブセットを静的に保持する動き要求を受け取るステップを含み、
前記生成するステップは、前記第２のサブセットを映像ディスプレイ内でそのままにしておくように前記クライアント・コンピュータに指示するステップを含む、請求項４に記載のクライアント支援動き予測方法。
【請求項６】
前記サブセットを前記所定量だけ動かした後に前記映像ディスプレイ内のギャップを識別するステップと、
前記映像ディスプレイ内の前記ギャップに対応する新たな映像ピクセルを含む新たな映像情報をサーバ・コンピュータから検索するステップと、をさらに含み、
前記生成するステップは、前記新たな映像ピクセルで前記映像ディスプレイ内の前記ギャップを置換するステップを含む、請求項４に記載のクライアント支援動き予測方法。
【請求項７】
前記動き要求は全体的動き要求であり、
前記サブセットは前記現ピクセルセットのすべてを含む、請求項４に記載のクライアント支援動き予測方法。
【請求項８】
前記受け取るステップは、対応する複数の所定量だけ前記現ピクセルセットの複数のサブセットを並進移動させる部分的動き要求を受け取るステップを含み、
前記生成するステップは、前記対応する複数の所定量だけ前記映像ディスプレイ内の前記複数のサブセットを移動させる複数の動きベクトルを生成するステップを含む、請求項１に記載のクライアント支援動き予測方法。
【請求項９】
前記受け取るステップは、前記現ピクセルセットのすべてを並進移動させる静的動き要求を受け取るステップを含み、
前記生成するステップは、前記ピクセルセットを前記映像ディスプレイ上でそのままにしておくように前記クライアント・コンピュータに指示するステップを含む、請求項１に記載のクライアント支援動き予測方法。
【請求項１０】
前記要求および前記クライアント・コンピュータ以外から得られる非クライアント映像情報を使用して動き予測を計算する資源を非アクティブ化するステップを含む、請求項１に記載のクライアント支援動き予測方法。
【請求項１１】
前記動きベクトルは第１の動きベクトルであり、
前記第１の動きベクトルに対して品質評価を行うステップと、
前記現ピクセルセットをサーバから検索された非クライアント映像情報のセットと比較することによって第２の動きベクトルを生成するステップと、
前記第１の動きベクトルの品質が所定のしきい値未満の場合、前記第２の動きベクトルを使用して前記映像ディスプレイ内の前記現ピクセルセットを移動させるステップと、
をさらに含む請求項１に記載のクライアント支援動き予測方法。
【請求項１２】
前記受け取るステップおよび前記生成するステップを前記クライアント・コンピュータで行うステップをさらに含む、請求項１に記載のクライアント支援動き予測方法。
【請求項１３】
副次的な情報を前記クライアント・コンピュータとサーバ・コンピュータとの間で交換するステップと、
前記副次的な情報に応答して、前記受け取るステップおよび前記生成するステップを実行する責任を前記クライアント・コンピュータと前記サーバ・コンピュータとの間で委譲するステップと、
をさらに含む請求項１に記載のクライアント支援動き予測方法。
【請求項１４】
クライアント支援動き予測システムであって、
映像ディスプレイ内の現ピクセルセットを更新する要求をクライアント・コンピュータから受け取る手段と、
前記要求および前記クライアント・コンピュータのみから得られる映像情報を使用して、前記映像ディスプレイ内の前記現ピクセルセットを移動させる動きベクトルを生成する手段と、
を備えるクライアント支援動き予測システム。
【請求項１５】
前記受け取る手段は、前記現ピクセルセットのサブセットを所定量だけ並進移動させる動き要求を受け取る手段を含み、
前記生成する手段は、前記映像ディスプレイ内の前記サブセットを前記所定量だけ移動させる単一動きベクトルを生成する手段を含む、請求項１４に記載のクライアント支援動き予測システム。
【請求項１６】
前記受け取る手段は、前記現ピクセルセットの第２のサブセットを静的に保持する動き要求を受け取る手段を含み、
前記生成する手段は、前記第２のサブセットを映像ディスプレイ内でそのままにしておくように前記クライアント・コンピュータに指示する手段を含む、請求項１５に記載のクライアント支援動き予測システム。
【請求項１７】
前記サブセットを前記所定量だけ動かした後に前記映像ディスプレイ内のギャップを識別する手段と、
前記映像ディスプレイ内の前記ギャップに対応する新しい映像ピクセルを含む新しい映像情報をサーバ・コンピュータから検索する手段と、をさらに備え、
前記生成する手段は、前記新たな映像ピクセルで前記映像ディスプレイ内の前記ギャップを置換する手段を含む、請求項１５に記載のクライアント支援動き予測システム。
【請求項１８】
前記受け取る手段は、対応する複数の所定量だけ前記現ピクセルセットの複数のサブセットを並進移動させる部分的動き要求を受け取る手段を含み、
前記生成する手段は、前記対応する複数の所定量だけ前記映像ディスプレイ内の前記複数のサブセットを移動させる複数の動きベクトルを生成する手段を含む、請求項１４に記載のクライアント支援動き予測システム。
【請求項１９】
前記要求および前記クライアント・コンピュータ以外から得られる非クライアント映像情報を使用して動き予測を計算する資源を非アクティブ化する手段を備える、請求項１４に記載のクライアント支援動き予測システム。
【請求項２０】
副次的な情報を前記クライアント・コンピュータとサーバ・コンピュータとの間で交換する手段と、
前記副次的な情報に応答して、前記受け取るステップおよび前記生成するステップを実行する責任を前記クライアント・コンピュータと前記サーバ・コンピュータとの間で委譲する手段と、
をさらに備える請求項１４に記載のクライアント支援動き予測システム。
【請求項２１】
コンピュータにクライアント支援動き予測を実行させるコンピュータ・プログラム・コードを具現するコンピュータ使用可能媒体であって、
クライアント・コンピュータの映像ディスプレイ内の現ピクセルセットを更新する要求を受け取るステップと、
前記要求および前記クライアント・コンピュータのみから得られる映像情報を使用して、前記映像ディスプレイ内の前記現ピクセルセットを移動させる動きベクトルを生成するステップと、
を含むコンピュータ使用可能媒体。
【請求項２２】
前記受け取るステップは、前記現ピクセルセットのサブセットを所定量だけ並進移動させる動き要求を受け取るステップを含み、
前記生成するステップは、前記映像ディスプレイ内の前記サブセットを前記所定量だけ移動させる単一動きベクトルを生成するステップを含む、請求項２１に記載のコンピュータ使用可能媒体。
【請求項２３】
前記受け取るステップは、前記現ピクセルセットの第２のサブセットを静的に保持する動き要求を受け取るステップを含み、
前記生成するステップは、前記第２のサブセットを映像ディスプレイ内でそのままにしておくように前記クライアント・コンピュータに指示するステップを含む、請求項２２に記載のコンピュータ使用可能媒体。
【請求項２４】
前記サブセットを前記所定量だけ動かした後に前記映像ディスプレイ内のギャップを識別するステップと、
前記映像ディスプレイ内の前記ギャップに対応する新しい映像ピクセルを含む新たな映像情報をサーバ・コンピュータから検索するステップと、をさらに含み、
前記生成するステップは、前記新しい映像ピクセルで前記映像ディスプレイ内の前記ギャップを置換するステップを含む、請求項２２に記載のコンピュータ使用可能媒体。
【請求項２５】
前記受け取るステップは、対応する複数の所定量だけ前記現ピクセルセットの複数のサブセットを並進移動させる部分的動き要求を受け取るステップを含み、
前記生成するステップは、前記対応する複数の所定量だけ前記映像ディスプレイ内の前記複数のサブセットを移動させる複数の動きベクトルを生成するステップを含む、請求項２１に記載のコンピュータ使用可能媒体。
【請求項２６】
前記要求および前記クライアント・コンピュータ以外から得られる非クライアント映像情報を使用して動き予測を計算する資源を非アクティブ化するステップを含む、請求項２１に記載のコンピュータ使用可能媒体。
【請求項２７】
副次的な情報を前記クライアント・コンピュータとサーバ・コンピュータとの間で交換するステップと、
前記副次的な情報に応答して、前記受け取るステップおよび前記生成するステップを実行する責任を前記クライアント・コンピュータと前記サーバ・コンピュータとの間で委譲するステップと、
をさらに含む請求項２１に記載のコンピュータ使用可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、John Apostolopoulos他により２０００年４月２８日付で出願されカリフォルニア州パロアルト(Palo Alto)に所在のHewlett-Packard Co.に譲渡された「Transcoding Method And Transcoder For Transcoding A Predictively-coded Object-based Picture Signal To A Predictively-coded Block-based Picture Signal」と題する同時係属中の米国特許出願第０９／５６１，３１５号に関連し、参照により援用される。
本発明は、一般にクライアント−サーバ間通信用のシステムおよび方法に関し、より詳細には、クライアント−サーバ間の映像通信用のクライアント支援動き予測に関する。
【背景技術】
【０００２】
典型的なネットワークは、サーバ・コンピュータによって管理される情報を検索し資源にアクセスする、クライアント・コンピュータ上で動作するソフトウェア・アプリケーションを含む。クライアントおよびサーバで利用可能な資源は、ネットワークおよびその機能に応じて異なる。例えば、クライアントはラップトップ、ハンドヘルドＰＣ（例えば、ＷｉｎＣＥ（登録商標）マシン）やその他のタイプのコンピュータであり、ソフトウェア・アプリケーションの完全版かまたは軽量版（例えば、ポケットブラウザ）を有する。
【０００３】
標準的なプロトコルは、サーバからデータを要求するクライアント要求を含む。サーバはデータを検索かつ／または生成し、クライアントがそのデータを処理し表示する。サーバは、ウェブページの簡素化（ストリームライニング）等のクライアントを支援する何らかの前処理を実行することがある。一方、クライアントは最終処理を実行し、データのレンダリングを行う（例えば、クライアントが簡素化されたＨＴＴＰデータを受け取り、ウェブページを作成する）。
【０００４】
処理要件および帯域要件は様々であるが、コンピュータネットワークを介した高帯域情報の転送は、特に電子商取引の成長に伴ってますます一般的になりつつある。例えば、ウェブページの閲覧、ＪＰＥＧ画像のパニング（panning）、マルチメディアＭＰＥＧ動画プレーヤの制御、ビデオゲームの実行、および／またはＷｏｒｄ、Ｅｘｃｅｌ、ＰｏｗｅｒＰｏｉｎｔ等の各種ソフトウェア・アプリケーションの遠隔操作に、コンピュータがますます使用されるようになっている。多くの場合、映像情報の多数のフレームがクライアント要求に応答してクライアント・コンピュータに伝送される。
【０００５】
図１は、従来の映像圧縮システム１００のデータフロー図である。システム１００内では、現在のフレームを表示しているクライアント１０２が、ライン１０４を介して新フレームに対する要求をサーバ１０６に送信する。サーバ１０６内のマテリアル（材料）検索モジュール１０８が、新フレームを検索し、現フレーム内に含まれる新フレーム（別名「Ｐブロック」）を動き予測（ＭＥ）モジュール１１０に送り、現フレームからのブロックを使用して新フレーム中のブロックを正確に予測できるか否かを判定する。正確に予測不可能な新フレーム中のブロックは、予測をすることなくフレーム内（intra-frame、別名「Ｉブロック」）として符号化される。
【０００６】
動き予測モジュール１１０は、現フレーム中のブロックの前の位置を参照して新フレーム中のブロックの動きを予測する１つまたは複数の動きベクトル（ＭＶ）を生成する。動き予測モジュール１１０は、従来から、新フレーム中の各ブロックを現フレーム中の対応するブロックと比較するブルートフォース（brute force：総当たり）法を使用して、これら動きベクトルを計算する。次に、各動きベクトルから予測誤差（ＰＥ）が計算される。動き予測モジュール１１０は、システム１００で使用される最も複雑かつ計算集約的なアルゴリズムを含むため、サーバ１０６の計算時間のうちの大半を消費する。
【０００７】
サーバ１０６内の符号化モジュール１１２が、動き予測モジュール１１０から動きベクトルと予測誤差を受け取る。符号化モジュール１１２は、各ブロックをＰブロックまたはＩブロックのどちらで符号化すべきかを判定した後に、ブロックを符号化して圧縮ビットストリームにする。圧縮ビットストリームは、ライン１１４でクライアント１０２に送信される。従来では、クライアント１０２内の復号器１１６がビットストリームを復号化して新フレームにし、これがクライアント・コンピュータ１０２によって表示される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
比較的少数のサーバがはるかに多数のクライアントにサービスする現代のネットワークの劇的な人気の高まりにより、またこのようなネットワークを介して伝送されるマルチメディアの増加により、より高いサーバの処理能力およびより広い帯域の需要が大幅に伸びている。この需要により、サーバとネットワークのコストと複雑性の双方をかつてないほど上昇させている。従って、このようなコストを低減するとともに、従来技術におけるこれらの問題を克服するクライアント−サーバ間通信用のシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００９】
本発明は、クライアント−サーバ間通信用のクライアント支援（client-assisted）動き予測システムおよび方法である。本発明のシステムおよび方法は、クライアント・コンピュータの映像ディスプレイ内の現ピクセルセットを更新する要求を受け取るステップと、要求およびクライアント・コンピュータのみから得られる映像情報を使用して、映像ディスプレイ内の現ピクセルセットを移動させる動きベクトルを生成するステップとを含む。ピクセルセットに加えて、本発明は映像情報のオブジェクト、ブロックおよびフレームに対しても同様に機能する。
【００１０】
受け取るステップは、現ピクセルセットのサブセットを所定量だけ並進移動させる動き要求を受け取るステップも含むことができ、生成するステップは、映像ディスプレイ内のサブセットを所定量だけ移動させる、対応する動きベクトルのセットを生成するステップも含むことができる。
【００１１】
受け取るステップは、現ピクセルセットの第２のサブセットを静的に保持する動き要求を受け取るステップも含むことができ、生成するステップは、第２のサブセットを映像ディスプレイ内でそのままにしておくようにクライアント・コンピュータに指示するステップも含むことができる。
【００１２】
本発明は、サブセットを所定量だけ動かした後に映像ディスプレイ内のギャップを識別するステップと、映像ディスプレイ内のギャップに対応する新たな映像ピクセルを含む新たな映像情報をサーバ・コンピュータから検索するステップとをさらに含むことができる。その後、映像ディスプレイ内のギャップが新たな映像ピクセルを使用して表示される。
【００１３】
本発明は、要求およびクライアント・コンピュータ以外から得られる非クライアント映像情報を使用して動き予測を計算する資源を非アクティブ化する。本発明は、要求およびクライアント映像情報から作成される動きベクトルに対して品質評価を行う。
【００１４】
クライアント−サーバ・ネットワークで実施される場合、本発明ではクライアントとサーバとの間で副次的な情報を交換することが可能なため、資源が許容するときは、本発明の受け取るステップおよび生成するステップを実行する責任をクライアントとサーバとの間で委譲することができる。
【発明の効果】
【００１５】
本発明のシステムおよび方法は従来技術よりも有益である。なぜなら、クライアント・コンピュータによりネットワークを介してサーバから要求される新マテリアルは、クライアントにすでにある古いマテリアルに関連することが多く、本発明によって、サーバがクライアント要求自体を使用して各種圧縮、伸張および通信動作を指示することが可能となるからである。
【００１６】
従って、本発明は、これらクライアント要求を使用し、映像ディスプレイ上にすでにある視覚情報を利用して、サーバ側で動きベクトルを選択的に検索し生成する。このため、クライアント映像ディスプレイに対する更新は、現行の従来技術による通信システムよりも大幅に少ない帯域を使用してネットワークを介して伝送することができる。
【００１７】
また、従来の方法を使用しての動きベクトル計算はサーバ計算のうちの９０％を占めうるため、本発明はクライアント要求から動きベクトルを予測することにより、従来の複雑な動きベクトル計算を本質的に回避する。
本発明のこれらおよび他の態様は、以下に述べる詳細な説明、図面、および特許請求項を参照することによって当業者により認識されよう。
【発明を実施するための最良の形態】
【００１８】
図２は、クライアント−サーバ間通信用のクライアント支援動き予測システム２００の一実施形態のデータフロー図である。システム２００内では、クライアント２０２の映像ディスプレイが、現フレーム、ブロック、またはピクセルセットを表示する。ピクセルセットは「オブジェクト」としても知られる。オブジェクトは任意の形状を有する。従って、システム２００についてはフレームおよびブロックを主に参照して述べるが、本発明はオブジェクトに対しても同様に適用可能である。視覚アプリケーションでは、フレーム、ブロックおよびオブジェクトがコンピュータ・ディスプレイ上に単一の画像またはその一部を記述する。フレームは通常、ブロックの行列に分割され、各ブロックまたはオブジェクトは通常ピクセルの行列を含む。
【００１９】
ユーザコマンドに応答して、クライアント２０２はクライアント要求を生成する。ユーザコマンドには、マウス移動、テキスト選択、スクロール、パニング、ページアップ／ダウン、及び当業者に既知の多くの他のコンピュータコマンドが含まれる。クライアント２０２は、これらのユーザコマンドをクライアント要求にフォーマットする。クライアント要求は、ユーザコマンドに基づいて、現フレームの１つまたは複数の部分を新しいフレームにマッピングする仕方についての映像情報を含む。
【００２０】
クライアント２０２は、ライン２０４を介してクライアント要求をサーバ２０６に送信する。サーバ２０６は動き予測（ＭＥ）マネージャ２０８を備え、この動き予測マネージャ２０８がクライアント要求を受信する。
【００２１】
動き予測マネージャ２０８は要求を解析する。当業者は、クライアント要求が、クライアント２０２によって実行されている特定のソフトウェア・アプリケーションそれぞれによって定義されるフォーマットであることを理解されよう。これらのフォーマットは、現フレーム内のどのピクセル、オブジェクト、ブロック、フレームおよびウェブページをそのまま残す（static）か、並進移動（translation）させるか、または完全に置換するかを識別する。
【００２２】
次に、動き予測マネージャ２０８は、クライアント要求をいくつかのタイプ、すなわち静的／非動き要求、全体的（global）動き要求、部分的（partial）動き要求、および新データ要求に分割する。要求のタイプに応じて、ブロックには、クライアント２０２に返送される前に、待機符号化（standby coded)、フレーム内符号化（Intra-coded、別名「Ｉ」符号化、予測なし）、およびフレーム間符号化（Inter-coded、別名「Ｐ」符号化または「Ｂ」符号化、予測あり）のいずれかが行われる。待機符号化ブロックは静的動き要求に応答して生成され、Ｉ符号化ブロックは新ブロック要求に応答して生成され、動きベクトル（ＭＶ）、Ｐ符号化ブロック、およびＢ符号化ブロックは全体的／部分的動き要求に応答して生成される。
【００２３】
マテリアル検索モジュール２１０は、Ｉブロック生成中に動き予測マネージャ２０８によって要求されると、フレーム映像情報の新ブロックを検索する。この新フレーム映像情報はクライアントでは入手することができないものであり、本明細書では非クライアント映像情報と定義する。動き予測モジュール２１２は、Ｐ／Ｂブロック生成中に動き予測マネージャ２０８によって要求されると、現ブロックと新しいブロックとの間で従来のブロック単位の（block- by-block）動き予測を行う。
【００２４】
サーバ２０６内の符号化モジュール２１４は、各種待機コード、Ｉブロック、および動きベクトルを動き予測マネージャ２０８から受け取る。次に、符号化モジュール２１４は動きベクトルを予測誤差に変換し、新フレームパケットを圧縮ビットストリームに組み立てて、クライアント２０２に伝送する。符号化モジュール２１４は規格に準拠することが好ましいが、そうである必要はない。
【００２５】
クライアント２０２における復号化モジュール２２０が、新しいフレームパケットを受け取り、新しいフレームがクライアント２０２の映像ディスプレイ上の現フレームを置き換える。復号器も規格に準拠することが好ましいが、そうである必要はない。
【００２６】
動き予測マネージャ２０８および各モジュール２１０〜２１４、２１８の動作について、以下により詳細に述べる。
【００２７】
静的／非動き要求
図３は、システム２００内の静的動き要求に応答する方法３００の一実施形態のフローチャートである。ステップ３０２において、サーバ２０６内の動き予測マネージャ２０８が静的動き要求を受け取る。ステップ３０４において、動き予測マネージャ２０８が待機コードを現フレームに割り当てる。待機コードは、「最後に復号化されたフレームを使用せよ」という単純なコマンドである。このように完全に静的の状況では、クライアント２０２における映像の品質はすでに非常に高いか、または略完全に近い。動き予測マネージャ２０８は、待機コードを符号化モジュール２１４に送る。
【００２８】
ステップ３０６において、符号化モジュール２１４が待機コードを受け取り、待機コードを含む新しいフレームパケットを組み立てる。次に、符号化モジュール２１４は、ライン２１６を介してパケットをクライアント２０２に伝送する。クライアント２０２内の復号化モジュール２１８は、新しいフレームパケット中の待機コードを復号化し、これに応答して、クライアント２０２の映像ディスプレイバッファ内の現フレームをそのままにしておく。
【００２９】
ステップ３０８において、動き予測マネージャ２０８は、マテリアル検索モジュール２１０、動き予測モジュール２１２、および従来の動きベクトル計算および圧縮演算を通常実行する任意の他のサーバ２０６の資源を一時停止し、かつ／またはオフにする。
【００３０】
このように、本発明は、映像情報がクライアント２０２において静的であるときを認識し、これに応答して、結局静的画像でしかないものに対して圧縮および送信を行わないことにより、限られたサーバ計算資源および限られたネットワーク帯域を保存する。
【００３１】
全体的動き要求
図４は、システム２００内の全体的動き要求に応答する方法４００の一実施形態のフローチャートである。ステップ４０２において、動き予測マネージャ２０８が、クライアント２０２に表示されている現フレームの全体的変換／移動する要求を受け取る。
【００３２】
ステップ４０４において、動き予測マネージャ２０８は、現フレームの座標系の原点を、クライアント映像ディスプレイの座標系に位置合わせする。原点は通常、クライアント２０２の映像ディスプレイの左上角に対応し、ここでは水平方向では右方向が正であり、垂直方向では下方向が正である。しかし、原点が異なる場合には、適正なオフセットおよび／または符号の切り換えを行わなければならない。
【００３３】
ステップ４０６において、動き予測マネージャ２０８は、新しいフレーム内のどのブロックが現フレーム内にもあるかを決定する。これらは、並進移動ブロックとしても知られる。
【００３４】
ステップ４０８において、動き予測マネージャ２０８は、クライアント動き要求を、まだピクセル単位になっていない場合にはピクセル単位に変換する。従って、クライアント要求中の映像情報がピクセルセットを並進移動すべき特定のピクセル数を含む場合、変換は必要ない。例えば、表示されている画像をパンするクライアント要求は、パニングコマンドと、表示されている画像をパニングすべき明示的なピクセル数の両方を含む。
【００３５】
代替的に、クライアント要求内の映像情報が現フレームの一部またはある割合の部分の並進移動を指定する場合、動き予測マネージャ２０８はその一部／割合を特定のピクセル数に変換しなければならない。例えば、現フレームサイズの１／１０だけ現フレームを下方に並進移動させるクライアント要求は、現フレームのサイズが６４０×４８０ピクセルの場合、６４ピクセル分の下方移動に変換される。クライアント・コンピュータ上の現フレームのサイズ等のように、要求内の映像情報の他にクライアントから入手可能な映像情報を、本明細書ではクライアント映像情報と定義する。
【００３６】
クライアント要求中の情報が複雑な数学式の場合、動き予測マネージャ２０８は式の値を求めて、現フレームを並進移動させるために対応するピクセル数を求める必要がある。動き予測マネージャ２０８は、以下のような複数の方法で複雑な数学式からピクセル移動量を計算することができる。すなわち、（１）ブロック中心の動きを使用する、（２）ブロック内の種々のポイント（例えば、中心と４つの角）の動きを使用する、（３）ブロック内のすべてのピクセルの動きの平均を使用する、（４）ブロック内のすべてのピクセルにおける動きの中央値を使用する、（５）ブロック内で最大数のピクセルに重なる動きを使用する。
【００３７】
次に、動き予測マネージャ２０８はステップ４１０において、全体的要求に対応する単一の動きベクトル（ＭＶ）を生成する。動きベクトルは、ブロックを並進移動させる方向および大きさを示す。
【００３８】
ステップ４１２において、動き予測マネージャ２０８は単一の動きベクトルを各並進移動ブロックに割り当てる。例えば、新しいフレームを現フレームに関して全体的に（５，−７）ピクセルだけ移動させるというクライアント要求の場合、動き予測マネージャ２０８は、（５，−７）の単一の動きベクトルを生成し、これが各並進移動ブロックに割り当てられる。動き予測マネージャ２０８は、単一の動きベクトルを符号化モジュール２１４に送る。
【００３９】
ステップ４１４において、動き予測マネージャ２０８は、新しいフレーム内で現フレーム内には存在しないすべてのブロックを識別する。これらは新ブロックとしても知られ、並進移動ブロックが映像ディスプレイ内で移動した後にクライアント２０２の映像ディスプレイ中のギャップを埋める。ステップ４１６において、動き予測マネージャ２０８はマテリアル検索モジュール２１０から新ブロックを検索する。ステップ４１８において、動き予測マネージャ２０８は、新ブロックをフレーム内符号化し、Ｉブロックを作成するように符号化モジュール２１４に命令する。代替の実施形態では、ステップ４１８において、動き予測マネージャ２０８は、従来の動きベクトル計算のために新ブロックを動き予測モジュール２１２にも送る。次に、動き予測マネージャ２０８は品質検査を行い、計算された動きベクトルが良好な予測を与えるか否かを判定する。動きベクトルが新ブロックの良好な予測を与える場合、動き予測マネージャ２０８は、新ブロックをフレーム間符号化し、Ｐブロックを作成するように符号化モジュール２１４に命令する。
【００４０】
ステップ４２０において、符号化モジュール２１４は、受け取ったすべての動きベクトルを対応する予測誤差に変換する。映像圧縮における「予測誤差」および予測誤差を動きベクトルから生成する技法は既知であることに注意されたい。次に、符号化モジュール２１４は、予測誤差およびＩブロックを含む新しいフレームパケットを組み立て、ライン２１６を介してクライアント２０２にパケットを伝送する。復号化モジュール２１８が新しいフレームパケットを受信し、これに応答してクライアント２０２に表示する新しいフレームを生成する。
【００４１】
ステップ４２２において、全体的要求に応答する一方で、動き予測マネージャ２０８は、動き予測モジュール２１２等の使用されていない資源を、一時停止するか、待機モードにするか、またはオフにすることによって、非アクティブ化することが好ましい。動き予測モジュール２１４を非アクティブ化することにより、かなりのサーバ２０６の資源が保存される。
【００４２】
従って、クライアント要求における動き情報を使用することにより、動き予測マネージャ２０８は、比較的単純に並進移動ブロックについての動きベクトルを計算するので、従来の動き予測モジュール２１２の総当たりの動き予測手法を採用する必要性が無くなる。
【００４３】
部分的動き要求
図５は、システム２００内の部分的動き要求に応答する方法５００の一実施形態のフローチャートである。部分的動き要求は、現フレームの１つまたは複数の部分を新フレーム内で並進移動させるクライアント要求である。部分的動き要求は、静的のままのブロックのセットと並進移動するブロックのセットがあるという点において、静的動き要求と全体的動き要求が混合したものである。
【００４４】
ステップ５０２において、動き予測マネージャ２０８は、クライアント２０２上に表示されている現フレームを部分的に並進移動させる要求を受け取る。ステップ５０４において、動き予測マネージャ２０８は、図３のステップ４０４に従って映像ディスプレイの座標系の原点を、現フレームの座標系に位置合わせする。
【００４５】
ステップ５０６において、動き予測マネージャ２０８は、新フレーム内で現フレームに関して静的なままであるすべてのブロックのセットをグループ化する。次に、動き予測マネージャ２０８は、待機コードを各静的ブロックのセットに割り当て、符号化モジュール２１４に送り、図３のステップ３０６に従ってクライアント２０２に伝送する。
【００４６】
ステップ５０８において、動き予測マネージャ２０８は、新フレーム内で現フレームに関して並進移動されるすべてのブロックのセットをグループ化する。次に、動き予測マネージャ２０８は、図４のステップ４０８に従ってクライアント要求をピクセル単位に変換する。
【００４７】
ステップ５１０において、動き予測マネージャ２０８は、並進移動されたブロックのセットそれぞれに対応する単一の動きベクトルを生成する。オーバーラップするか、および／または複数回移動するブロックのセットが現フレームにある場合、動き予測マネージャ２０８は、動きベクトルにランクを付けて各並進移動されたブロックのセットに割り当てる「占有／重複」アルゴリズムを実行する。占有アルゴリズムは、John Apostolopoulos他により２０００年４月２８日に出願された「Transcoding Method And Transcoder For Transcoding A Predictively-coded Object-based Picture Signal To A Predictively-coded Block-based Picture Signal」と題する米国特許出願第０９／５６１３１５号に記載されており、参照により本明細書に援用される。
【００４８】
しかし、オーバーラップする移動が所定のしきい値を越える場合、動き予測マネージャ２０８は、新しい動きベクトルを計算するというクライアント要求の使用を破棄し、代わりに新しいブロックをマテリアル検索モジュール２１２から検索して動き予測モジュール２１２に送信し、従来の動きベクトル計算を行う。
【００４９】
動きベクトルの計算後、動き予測マネージャ２０８は動きベクトルを符号化モジュール２１４に送り、図４のステップ４２０に従って処理する。
【００５０】
ステップ５１２において、動き予測マネージャ２０８は、図４のステップ４１４〜４１８に従って、新フレーム内にあり現フレーム内に無いすべてのブロックを識別して処理しＩブロックにする。次に、動き予測マネージャ２０８は、Ｉブロックを符号化モジュール２１４に送り、図４のステップ４２０に従って処理する。
【００５１】
部分的動き要求に応答する一方、動き予測マネージャ２０８は、ステップ５１４において、上述したオーバーラップするブロックの文脈における場合を除き、動き予測モジュール２１２等の任意の使用されていない資源を一時停止するかおよび／またはオフにすることが好ましい。
【００５２】
新データ要求
動き予測マネージャ２０８がクライアント２０２上に表示されている現フレームを完全に置換する要求（例えば、ユーザがハイパーリンクをクリックするとき）を受け取る場合、動き予測マネージャ２０８は、図４のステップ４１６および４１８に従って要求を処理し、新フレーム内の各ブロック毎にＩブロックを生成する。次に、動き予測マネージャ２０８はＩブロックを符号化モジュール２１４に送り、図４のステップ４２０に従って処理する。
【００５３】
部分的動き要求に応答する一方で、動き予測マネージャ２０８は、動き予測モジュール２１２等の任意の使用されていない資源を一時停止および／またはオフにすることが好ましい。
【００５４】
符号化品質
フレーム処理および動きベクトル計算を上述のようにクライアント要求を使用して簡易化することが好ましい一方で、本発明は、内部動き予測マネージャ２０８のルーチンによって生成される動きベクトルを、動き予測モジュール２１２によってのみ生成される動きベクトルと比較する。図６は、システム２００内で動きベクトル品質検査を行う方法６００の一実施形態のフローチャートである。
【００５５】
品質検査は、新しいクライアント−サーバ間の通信セッションの開始時等、いつでも行うことができる。始めに、ステップ６０２において、動き予測マネージャ２０８はクライアント２０２またはサーバ２０６のいずれかから要求を受け取り、動きベクトル品質検査を行う。ステップ６０４において、動き予測マネージャ２０８は、図４および図５において述べた全体的または部分的動き要求ルーチンのいずれかに従って、ブロックについて第１の動きベクトルを計算する。次に、ステップ６０６において、動き予測マネージャ２０８は、従来の動きベクトル計算アルゴリズムを使用して、ブロックについて第２の動きベクトルを計算するように動き予測モジュール２１２に命令する。
【００５６】
ステップ６０８において、動き予測マネージャ２０８は、第１の動きベクトルから生成される第１の予測誤差を、所定の閾値、または第２の動きベクトルから生成される第２の予測誤差のいずれかと比較することによって第１の動きベクトルの品質を評価し、および／または他の手法を用いて第１の動きベクトルを評価して、第１の動きベクトルの品質を決定する。品質を決定するための他の手法には、信号対雑音比手法の使用、第１の予測誤差と平均絶対誤差（ＭＡＥ）または平均二乗誤差（ＭＳＥ）との比較、または、第２の予測誤差もしくは同等のＩブロックの符号化に必要なビット数と比較して第１の予測誤差の符号化に必要なビット数を計算するレート歪み（Ｒ／Ｄ）アルゴリズムの使用が挙げられる。
【００５７】
ステップ６１０において、第１の予測誤差の品質が所定のしきい値を満たす場合、動き予測マネージャ２０８は、上述のように処理すべく第１の動きベクトルを符号化モジュール２１４に送る。
【００５８】
しかし、品質が所定のしきい値未満の場合、ステップ６１２において、動き予測マネージャ２０８は、第１の動きベクトルを改良する（すなわち、第１の動きベクトルの位置についての部分的な探索を行う）、第１の動きベクトルの代わりに第２の動きベクトルを符号化モジュール２１４に送る、またはブロックをＩ符号化する等の、いくつかの考えられる代替手段の中から選択する。
【００５９】
クライアント要求から計算された動きベクトルを使用するか、改良するか、または使用しないという点におけるこの柔軟性は、本発明にロバスト性を与える。
【００６０】
図７は、クライアント−サーバ間通信のためにクライアントに支援されて動きを予測する第２のシステム７００の一実施形態のデータフロー図である。第２のシステム７００では、クライアント２０４は、ライン７０４上で標準的なクライアント要求を受け取り、ライン２０４を介して動き予測マネージャ２０８に短縮化されたクライアント要求および副次的な情報を伝送するクライアント動き予測モジュール７０２を備える。クライアント動き予測モジュール７０２は、ライン７０６を介して情報をビットストリーム・シーケンシング・モジュール７０８に渡す。ビットストリーム・シーケンシング・モジュール７０８は、ライン２１６を介してサーバ２０６から符号化データおよび副次的な情報を受け取る。これらモジュール７０２および７０８の動作について、以下に詳細に述べる。
【００６１】
図８は、第２のシステム７００内で動きベクトル品質検査を行う方法８００の一実施形態のフローチャートである。ステップ８０２において、クライアント動き予測モジュール７０２は、クライアント２０２からのユーザコマンドに応答して、標準的なクライアント要求をライン７０４上で受け取る。次に、クライアント動き予測モジュール７０２は、動き予測マネージャ２０８の機能のうちのいくつかの責任を引き継ぐ。具体的には、ステップ８０４において、クライアント動き予測モジュール７０２は、クライアントが要求する新フレームと現フレームとを比較し、静的ブロック、並進移動ブロック、および新ブロックのセットを識別する。ステップ８０６において、クライアント動き予測モジュール７０２は図３において述べたステップに従って静的ブロックをグループ化し、待機符号化する。ステップ８０８において、クライアント動き予測モジュール７０２は、図４および図５において述べたステップに従って並進移動ブロックのセットをグループ化し、各セットの動きベクトルを計算する。ステップ８１０において、クライアント動き予測モジュール７０２は、必要とされる新ブロックをグループ化して保留しておく。
【００６２】
ステップ８１２において、クライアント動き予測モジュール７０２は、標準的なクライアント要求から短縮化されたクライアント要求を生成する。短縮化されたクライアント要求は、新ブロックの特定のセットに対する要求を含み、静的ブロックまたは並進移動ブロックに対する要求をいずれも含まないことが好ましい。次に、クライアント動き予測モジュール７０２は、ライン２０４を介して短縮化された要求を動き予測マネージャ２０８に伝送する。ステップ８１４において、動き予測マネージャ２０８は、短縮化クライアント要求で指定された新ブロックをマテリアル検索モジュール２１４から検索し、新ブロックをＩ符号化してクライアント２０２内のシーケンシング・モジュール７０８に伝送するように、符号化モジュール２１４に指示する。
【００６３】
ステップ８１６において、シーケンシング・モジュール７０８は待機コードおよび動きベクトルをクライアント動き予測モジュール７０２から受け取るとともに、Ｉ符号化された新しいブロックをサーバ２０６から受け取って、規格準拠ビットストリームにシーケンシングし、復号化モジュール２１８がこれを処理して新フレームにして、クライアント２０２のコンピュータに表示する。
【００６４】
このように、動き予測マネージャ２０８の機能の多くを引き継ぐことにより、クライアント動き予測モジュール７０２はサーバ２０６における計算需要を大幅に低減し、ライン２１６を介してよりコンパクトな非規格準拠ビットストリームをクライアント２０２に送信することを可能にする。これは、復号器２１８が規格に準拠した復号器であることを許容する。
【００６５】
さらに、クライアント２０２とサーバ２０６は、システム７００内でサーバ２０６が動的な負荷平衡を実行することを可能にする「副次的な情報」を交換することができる。本明細書において、「副次的な情報」とは、クライアント２０２および／またはサーバ２０６のいずれかがどの情報を処理中であるか、およびその情報がどのように処理されているかを記述する任意の情報を含むものと一般的に定義される。
【００６６】
このように、副次的な情報をクライアント２０２とサーバ２０６との間で往復して送信することにより、ネットワーク資源を任意の数の方法で管理することができる。例えば、サーバ２０６に接続された異なるクライアント・コンピュータ数に応じて、サーバ２０６は、副次的な情報の使用により、現在の処理容量について異なるクライアントに照会し、またいくつかの動き予測管理責任を異なるクライアントにシフトすることで、サーバ２０６の限られた計算容量またはネットワークの限られた帯域によるネットワークの低速化を回避することができる。
【００６７】
本発明の１つまたは複数の実施形態について述べたが、当業者は種々の変更を実行できることは理解されよう。これらの実施形態の変形および変更が本発明によって提供され、特許請求の範囲によってのみ限定される。また、クライアント−サーバ間の通信コンピュータネットワークに関して本発明を説明したが、当業者であれば、ピア・ツー・ピア・ネットワーキング等の２ポイント間の通信に関わる任意の情報処理用途に本発明を適用可能であることを理解されよう。
【図面の簡単な説明】
【００６８】
【図１】（従来技術）従来のクライアント−サーバ間通信システムのデータフロー図である。
【図２】クライアント−サーバ間通信用のクライアント支援動き予測システムの一実施形態のデータフロー図である。
【図３】システム内で静的動き要求に応答する方法の一実施形態のフローチャートである。
【図４】システム内で全体的動き要求ルーチンに応答する方法の一実施形態のフローチャートである。
【図５】システム内で部分的動き要求ルーチンに応答する方法の一実施形態のフローチャートである。
【図６】システム内で動きベクトル品質検査を行う方法の一実施形態のフローチャートである。
【図７】クライアント−サーバ間通信用のクライアントに支援されて動きを予測する第２のシステムの一実施形態のデータフロー図である。
【図８】クライアント−サーバ間通信用のクライアントに支援されて動きを予測する第３のシステムの一実施形態のデータフロー図である。
【図１】
2004537079.tif 000003
【図２】
2004537079.tif 000004
【図３】
2004537079.tif 000005
【図４】
2004537079.tif 000006
【図５】
2004537079.tif 000007
【図６】
2004537079.tif 000008
【図７】
2004537079.tif 000009
【図８】
2004537079.tif 000010
【国際公開パンフレット】
2004537079.tif 000011
2004537079.tif 000012
2004537079.tif 000013
2004537079.tif 000014
2004537079.tif 000015
2004537079.tif 000016
2004537079.tif 000017
2004537079.tif 000018
2004537079.tif 000019
2004537079.tif 000020
2004537079.tif 000021
2004537079.tif 000022
2004537079.tif 000023
2004537079.tif 000024
2004537079.tif 000025
2004537079.tif 000026
2004537079.tif 000027
2004537079.tif 000028
2004537079.tif 000029
2004537079.tif 000030
2004537079.tif 000031
2004537079.tif 000032
2004537079.tif 000033
2004537079.tif 000034
2004537079.tif 000035
2004537079.tif 000036
2004537079.tif 000037
2004537079.tif 000038
2004537079.tif 000039
2004537079.tif 000040
2004537079.tif 000041
2004537079.tif 000042
2004537079.tif 000043
2004537079.tif 000044
2004537079.tif 000045
2004537079.tif 000046
2004537079.tif 000047
【国際公開パンフレット（コレクトバージョン）】
2004537079.tif 000048
【国際調査報告】
2004537079.tif 000049
2004537079.tif 000050