(57)【特許請求の範囲】
【請求項１】
ソース・データ装置（１０４）と遠隔ビデオ・フレーム・バッファ（１１８）との間でデータを圧縮する方法であって、
遠隔ビデオ・フレーム・バッファ（１１８）位置に対応する１つ以上のメディア領域を持つソース・データをソース・データ装置（１０４）から受け取る段階と、
遠隔ビデオ・フレーム・バッファ（１１８）位置に対応する１つ以上のメディア領域を記述するメタデータを識別（５０４）する段階と、
前記領域のメタデータが識別された場合、前記領域についてメタデータ依存性データ圧縮（７０８）を遂行する段階と、
メタデータが識別されない領域についてメタデータ不依存性データ圧縮（７１０）を選択する段階と、
を有し、
前記メタデータを識別する段階は更に、前記ソース・データを生成するためにソース・データ装置（１０４）によって使用された、環境設定ファイル・メタデータ、ソース基本メタデータ及びアプリケーション・高レベル・メタデータの内の１つを識別する段階を含む
方法。
【請求項２】
前記のメタデータ不依存性データ圧縮を選択する段階は更に、ＭＰＥＧ圧縮、ＪＰＥＧ画像圧縮、ベクトル・グラフィックス圧縮、ハフマン・コーディング、Ｈ．２６１及びユーザ選択圧縮法（４０２）のうちの１つを選択する段階を含んでいる、請求項１に記載の方法。
【請求項３】
前記のメタデータを識別する段階は更に、
入力データの領域についての表示の機能及びタイプについてアプリケーション高レベル・メタデータ（２０６）を識別する段階と、
基本動作からアプリケーション・メタデータについてソース基本メタデータ（２０４）を識別する段階と、
入力データの領域を定義する情報を識別（７０６）する段階と、
入力データ領域の特定の時間的特性（３０２）を定義する情報を識別する段階と、
の内の１つを含んでいる、請求項１に記載の方法。
【請求項４】
表示のために通信リンクを介してデータ処理装置（９００）から遠隔フレーム・バッファ（１１８）へ混合メディア・ストリーム・データを伝送する方法であって、
前記混合メディア・ストリーム・データを、表示すべき混合メディア・ストリームを表す複数の領域に分割（６０６）する段階と、
前記混合メディア・ストリーム・データの各領域を定義するメタデータ属性を、データ処理装置（１０６）から取得する段階と、
前記混合メディア・ストリーム・データの各領域を定義する前記取得したメタデータ属性に基づいて、前記混合メディア・ストリーム・データの各領域についての圧縮方法（４０２）を選択する段階と、
前記混合メディア・ストリーム・データの各領域について前記選択した圧縮方法（４０２，４０４，４０６，４０８，４１０）を適用する段階と、
表示のために前記通信リンクを介して前記フレーム・バッファ（１１８）へ前記圧縮した混合メディア・ストリーム・データを伝送（７１２）する段階と、
を有し、
前記メタデータ属性はさらに、前記混合メディア・ストリーム・データを生成するために使用された、環境設定ファイル・メタデータ（２０２）、ソース基本メタデータ（２０４）及びアプリケーション高レベル・メタデータ（２０６）の内の１つを含む、
方法。
【請求項５】
少なくとも一組の入力データを圧縮するためのコンピュータ化システムであって、
前記入力データのメタデータの属性を識別する（９０２，９０４）ための装置と、
前記識別したメタデータの属性（８９２）に応じて少なくとも１つのデータ圧縮方法を選択する（９０６）ための装置と、
前記選択した少なくとも１つのデータ圧縮方法により前記組の入力データを圧縮する（９０８，１０８）ための装置と、
を有し、
前記メタデータの属性は更に、前記入力データを生成するために使用された、環境設定ファイル・メタデータ（２０２）、ソース基本メタデータ（２０４）及びアプリケーション高レベル・メタデータ（２０６）の内の１つを含む
コンピュータ化システム。
【請求項６】
前記環境設定ファイル・メタデータの属性は更に、入力データの領域を定義する情報（９０４）と、前記入力データ領域の特定の時間的特性（３０２）を定義する情報との内の少なくとも１つを含んでいる、請求項５に記載のコンピュータ化システム。
【請求項７】
前記ソース基本メタデータ（２０４）の属性は更に、基本動作からのアプリケーション・メタデータ（２０６）を含んでいる、請求項５に記載のコンピュータ化システム。
【請求項８】
前記アプリケーション高レベル・メタデータの属性は更に、入力データの領域についての表示の機能及びタイプを記述する情報（１２０，１１８，２０６）を含んでいる、請求項５に記載のコンピュータ化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に云えば、圧縮技術に関し、より具体的には、アプリケーション・メタデータに基づいて異なるやり方で異なるタイプのデータをコード化する領域ベースのコード化方式を使用して、ピクセル領域で動作する圧縮技術に関する。更に具体的には、本発明の画像圧縮技術では、圧縮すべき画像を評価して、その構成を決定し、そしてこの情報を使用して、所望の圧縮比を達成するために使用すべきコード化技術の最も効果的な組合せを決定する。
【背景技術】
【０００２】
典型的な卓上パーソナル・コンピュータ（ＰＣ）又はワークステーションのようなコンピュータ・システムは、一般的に、表示モニタ（ＣＲＴ又はＬＣＤ）上の各画素についての画像データを記憶するためのフレーム・バッファを使用している。近年ではネットワーク帯域幅の増大により、図形の多い高フレーム・レートの表示の場合でも遠隔のビデオ・フレーム・バッファが実現可能になっている。機能的には、表示画像上の各画素は、通常ピクセルと呼ばれる画像データの対応する実現値を有する。フレーム・バッファは、遠隔位置で使用されるとき、ローカル・エリア・ネットワーク（ＬＡＮ）接続を介してビデオ表示システムの演算及びレンダリング・エンジンに接続される。現在、典型的なＬＡＮは、理論的最大値のほぼ毎秒１００又は１０００メガビットで動作するネットワーク・リンクによって接続されたノードで構成されている。全てのネットワーク・アプリケーションは該帯域幅を共用するので、この帯域幅の一部分のみが所与のアプリケーションにとって利用可能である。従って、遠隔のビデオ・フレーム・バッファに伝送されるデータは、利用可能なネットワーク帯域幅内に適合するように圧縮しなければならず、また総ネットワーク負荷が変化するにつれてネットワーク帯域幅の利用可能度を変更するように適応できるものでなければならない。
【０００３】
このような目的のために使用される圧縮アルゴリズムの効率は、圧縮後のデータの大きさと生のデータの大きさとの比と、圧縮及び解凍（又は展開）を行うことのできる速度とに左右される。典型的には、圧縮アルゴリズムは、画像内のピクセル勾配が小さいと云う仮定を使用する画像圧縮、画面上で同様なピクセル値の大きなブロックが極めて接近して位置していると云う仮定を使用する一体色で表現した画像のような特殊な目的の使用の場合に合わせて調整される。これらのアルゴリズムは一般的に入念に調整されたアプリケーションについては効率よいが、他のアプリケーションにとっては非常に効果が悪く、効率が良くなく且つ不適切である。例えば、ＪＰＥＧ及びＭＰＥＧ画像圧縮は写真画像については効率が良いが、線画については悪い。これは、画像、線画及び一体色塗りつぶしで構成された混合ビデオ表示の場合に、ＪＰＥＧ又はＭＰＥＧのような単一の圧縮アルゴリズムは効率が良くないことを意味する。他方、簡単なベクトル・グラフィックス要素は効率よく線画をコード化することができるが、写真画像又はビデオをコード化するには効率が良くない。従って、画像の全ての空間的特性についての知識があれば、最適な圧縮アルゴリズムを選択することが可能になる。
【０００４】
ビデオ・ストリームは、順次に表示したときに動画映像を生成する連続した静止画像の列である。表示される画像のタイプに依存して、列内の互いに近接した画像の一般的な行動についての知識を使用することによって圧縮効率の更なる向上を図ることができる。この技術は「フレーム間圧縮」と呼ばれている。例えば、ＭＰＥＧビデオ圧縮は、後続の画像が一画像フレームから次の画像フレームへのオブジェクトの増分的な動きのみ異なっているようなビデオ・ストリームを圧縮するのに効率が良い。しかしながら、ＭＰＥＧ圧縮は典型的には、圧縮アルゴリズムが画像内の動いている部分について徹底的な調査を行わなければならないと云うことに起因して演算費用の高い動作である。もしこれらの「動きベクトル」が前もって知られていれば、ＭＰＥＧ圧縮は実行する困難さが遥かに少なくなるであろう。要約すると、ビデオ・ストリームを生成した後、推論するのに演算費用の高い該ビデオ・ストリームの全ての時間的特性についての知識があれば、それは圧縮アルゴリズムの演算効率を非常に向上させることになる。
【０００５】
以上の理由のため、及び本明細書を読んで理解したときに当業者には明らかとなる他の理由のために、当該技術分野ではデータを圧縮する演算効率の良いシステムが必要である。また、通信チャンネルのスループットを増大させる改良システム及び方法も必要である。
【特許文献１】米国特許第５４２２６７４号
【特許文献２】米国特許第５４６７０８７号
【特許文献３】米国特許第６０５７８５１号
【特許文献４】米国特許第６１６７０６２号
【特許文献５】米国特許第６２７５６２０号
【特許文献６】米国特許第６５０１４４１号
【特許文献７】米国特許第６６２４７６１号
【特許文献８】米国特許第６７４８５２０号
【特許文献９】米国特許第６７５４２２１号
【特許文献１０】米国特許第６３２４３０５号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本書では上述の欠点、不都合な点及び問題に対処する。このことは以下の説明を読み且つ検討することによって理解されよう。
【課題を解決するための手段】
【０００７】
本発明の一面では、１つ以上のメディア領域を持つデータを生成するソース装置とビデオ・フレーム・バッファとの間でデータを転送する方法を記述する。１つ以上のメディア領域は、所与のデータ領域に最も適したメタデータ依存性圧縮アルゴリズムを選択するために分析される。メタデータ記述は、環境設定ファイル・メタデータ、ソース基本メタデータ、及びアプリケーション高レベル・メタデータの内の１つである。本方法は、ＭＰＥＧ圧縮、ＪＰＥＧ画像圧縮、ベクトル・グラフィックス圧縮、ハフマン・コーディング、Ｈ．２６１圧縮、或いはユーザ定義又は関連の圧縮アルゴリズムを選択することができる。メタデータ記述が圧縮アルゴリズムの選択のために適当でないとき、システムはデフォールト圧縮を選択するか又は未圧縮のままでパケットを送る。
【０００８】
別の面では、混合メディア・ストリームを複数の領域に分割することによって遠隔のフレーム・バッファへデータを伝送するようにデータ処理装置に指令するための実行可能な命令を持つコンピュータ・アクセス可能な媒体を提供する。各々は、混合メディア・ストリーム・データの領域ための表示の機能及びタイプについて高レベルのメタデータによって記述することができ、基本動作からアプリケーション・メタデータ上のソース基本メタデータを識別し、混合メディア・ストリーム・データ領域の特別な時間的特性を定義する情報を識別する。次いで、処理装置がアプリケーション・メタデータに基づいて圧縮方法を選択する。
【０００９】
更に別の面では、データ圧縮システムを記述する。該データ圧縮システムは、処理装置と、記憶装置と、少なくとも１つのメタデータを識別し且つ該識別したメタデータに基づいて入力ストリームを圧縮するための、処理装置内で動作するソフトウエア手段とを持つ。
【００１０】
本書では、様々な範囲のシステム、クライアント、サーバー、方法及びコンピュータ読出し可能な媒体を記述する。この項で述べた様々な面及び長所に加えて、更なる面及び長所が図面を参照し且つ以下の詳しい説明を読むことによって明らかとなろう。
【発明を実施するための最良の形態】
【００１１】
以下の詳しい説明では、その一部を形成する添付の図面を参照する。図面には、例として、実施することのできる特定の実施形態を図示する。これらの実施形態について当業者が実施形態を実施できるほどに充分詳しく説明するが、他の実施形態を利用できること、並びに実施形態の範囲から逸脱することなく論理的、機械的、電気的及びその他の変更をなし得ることを理解されたい。従って、以下の詳しい説明は本発明を制限するものとして解すべきではない。
【００１２】
以下の説明は５つのセクションに分けて行う。第１のセクションでは、システム全体の概要を説明する。第２のセクションでは、実施形態の方法を説明する。第３のセクションでは、ハードウエア、並びに実施形態を実施することのできる関連する動作環境を説明する。第４のセクションでは、特定の具現例を説明する。最後の第５のセクションでは、本説明の結論を示す。
【００１３】
［システム全体の概要］
図１は、レンダリング・エンジンと表示装置との間でデータを交換するためのシステムの全体の概要を表すブロック図である。システム１００は、通信チャンネルのスループットを増大させると云う当該技術分野での要求を解決する。
【００１４】
図１は、レンダリング・エンジン１０４から情報を入力し、情報にアクセスし、且つ情報と相互作用するためのネットワーク構成１００を示している。ユーザは、１２４で示すような端末装置を介してレンダリング・エンジン１０４にアクセスする。端末装置１２４はユーザに、レンダリング・エンジン１０４へのサイン−オン機能を提供すると共に、或る特定のユーザがレンダリング・エンジン１０４を変更又はカスタマイズするための能力を提供する。レンダリング・エンジン１０４からの情報は、後でコンピュータ・システム１２４によって観察するために、又はレンダリング・エンジン１０４によって更に処理するために、保存用サーバー１１０に保存することができる。更に、サーバー１１０内の情報は圧縮又は解凍したフォーマットで保存することができ、またシステム１００で利用できる資源に依存する。例えば、他のユーザ又は用途のためにネットワーク１０２の帯域幅を保つために、情報を圧縮した状態で保存する方が有利であると考えられる。しかしながら、コンピュータ・システム１２４とサーバー１１０との間を直接接続した状態では、情報は解凍状態が好ましい。と云うのは、その状態では表示装置１２０における解凍手順１１６によって導入される遅延が減少するからである。システム１００の好ましい実施形態では、端末装置１２４のユーザは、レンダリング・エンジン１０４に接続するためにネットワーク１０２にアクセスすることができる。他の実施形態では、レンダリング・エンジン１０４はイントラネット、エックストラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、又は任意の他のタイプのネットワーク、或いはスタンドアロン・コンピュータ上に常駐することができる。レンダリング・エンジン１０４がネットワーク上に常駐している場合、コンピュータ又は端末装置（１２４）は該ネットワークに接続することのできる任意の機械又は装置である。レンダリング・エンジン１０４がインターネットによってアクセスすることができる場合、コンピュータ又は端末装置（１２４）はインターネットに接続することのできる任意の機械又は装置である。コンピュータ・システム（１２２）がスタンドアロン・コンピュータである場合、レンダリング・エンジンはコンピュータ（１２２）と同じ装置である。ユーザは光ファイバ・ケーブル、無線システムによって、ゲートウェイによって、ネットワーク、又はこれらの連結装置の組合せによって、レンダリング・エンジン１０４に連結することができる。
【００１５】
レンダリング・エンジン１０４は、１つ以上のビデオ、グラフィックス、又はコンピュータ１２４で再生するためのその他のメディアで構成されたデータのストリームを生成する装置である。データのストリームは、１つ以上のビデオ、グラフィックス、テキスト、アニメーション、或いはコンピュータによって生成される任意の他のデータ又は情報であるデータが持っている元々の概念から逸脱することなく、入力データとも、入力データ・ストリームとも、混合メディア・データとも、また混合メディア・データ・ストリームとも呼ぶことができる。データの流れはコンピュータ１２４で区分化して、表示装置の複数の部分で、或いは音声、ビデオ又はテキストの再生装置のようなデータを再生する他の装置によって表示することができる。レンダリング・エンジン１０４は、解像度のより高い医用イメージングにおいて、又はコンピュータ断層撮影（ＣＴ）及び磁気共鳴イメージング（ＭＲＩ）のボリューム・レンダリングにおいて、回転及び拡縮が可能である３Ｄ視覚化において、又は物理界の理解に役立つ他の目的のために、使用することができる。
【００１６】
メタデータ抽出器１０６が入力データ・ストリームについてのデータを収集し、ストリーム・データを生成するためにレンダリング・エンジン１０４によって使用された１つ以上の環境設定ファイル・メタデータ、基本オブジェクト又はアプリケーションを指示する。メタデータ抽出器１０６は、レンダリング・エンジン１０４によって生成されたデータについてのデータを収集する。
【００１７】
圧縮エンジン１０８が、レンダリング・エンジン１０４によって生成されたストリーム・データを圧縮するために使用することのできた１つ以上の圧縮方式である。この圧縮はデータ・ストリームの複数の領域に又はストリーム全体に適用することができる。圧縮エンジン１０８は、レンダリング・エンジン１０４からストリーム・データを受け取ると共にメタデータ抽出器１０６からデータ・ストリームについてのデータを受け取って適切な圧縮アルゴリズムを選択するプロセス又は装置である。圧縮アルゴリズムは、ＭＰＥＧ(Moving Picture Experts Group)圧縮、ＪＰＥＧ(Joint Photograph Experts Group)圧縮、ウェーブレット圧縮、フラクタル圧縮、ベクトル・グラフィックス圧縮、ハフマン・コーディング、Ｈ２６１、及びその他のユーザ選択の圧縮技術の内の１つであってよい。これらの圧縮技術の目的は、ストリーム・データ又はデータ・ストリームの処理済み部分を表すために使用されるビットの数を減らすことである。これらの技術は一般に、伝送時間と、１チャンネル（帯域幅）当りのデータの量と、受け取ったデータ・ストリームの品質との間のバランスを取ろうとすることである。これらの技術の幾つかは無損失である。すなわち、それらの技術は、元のデータの全ての情報を保持していて、データを解凍したときに正確に再生するようになっている。他の技術は通常、損失が多いと云われており、視覚的に意味のない情報を廃棄している。このような損失の多い技術は、元のデータを（正確に再生するよりはむしろ）近似するだけによって、無損失の技術よりも一層高い圧縮率を生じることができる。現在利用できるものの中から適切な圧縮技術を選択する際、ユーザは、圧縮比をより高くすると伝送時間及び帯域幅の要件がより低くなるが、生成する画像を品質が低下すると云うこと理解した上で、伝送時間及び帯域幅の要件と共に、圧縮すべき特定のストリーム・データ、所望の圧縮比及び品質を考慮しなければならない。ここで、「伝送時間」はデータの流れがレンダリング・エンジン１０４から出てコンピュータ１２４に達するまでにかかる時間であることに留意されたい。チャンネルの帯域幅が伝送時間に加わるが、圧縮アルゴリズムの選択は伝送時間と圧縮の質とにかなりの影響を及ぼす。
【００１８】
解凍エンジン１１６が、表示装置１２０で表示するために、レンダリング・エンジン１０４によって生成されたデータ・ストリームを解凍する。１画面（領域）当りの混合メディア・データは、解凍エンジン１１６によってＬＡＮ１０２から読み出されて、適切な処理後にフレーム・バッファ１１８に転送される。次いで、フレーム・バッファ１１８は、各々がデータ母線（図示せず）を介して解凍エンジン回路１１６から転送された１画面に対応する混合メディア・データを書き込んで記憶する。表示装置１２０内の内部回路により、各々が解凍エンジン回路１１６から転送された１画面に対応する混合メディア・データから画像信号を発生し、従って、画像信号を表示装置１２０で表示できるようにする。
【００１９】
フレーム・バッファ１１８はデータ・ストリームを、それが表示できるようになるまで保持する。フレーム・バッファ１１８の各アドレスは表示端末装置１２０の一ピクセルに対応する。このように、フレーム・バッファは表示装置の表面を表すものであり、また表示装置の画像又はセグメントを形成する１クラスタ（１群）のピクセルは、フレーム・バッファ１１８上の一集まりのアドレスとして表すことができる。フレーム・バッファ１１８は、書込み可能な半導体メモリ（例えば、ＳＤＲＡＭ（同期式ダイナミック・ランダム・アクセス・メモリ）、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）、ランバスＤＲＡＭなど）で形成され、解凍エンジン１１６からデータ母線を介して転送された１画面（フレーム）当りの混合メディア・データを書き込んで記憶する。記憶した混合メディア・データは、ユーザによって観察するとき表示装置１２０によってフレーム・バッファ１１８から１画面ずつ読み出される。
【００２０】
図２は、レンダリング・エンジン１０４と表示装置１２０との間でデータを交換するためのメタデータ抽出器１０６のシステム全体の概要を表すブロック図である。システム１０６は、通信チャンネルのスループットを増大すると共にコンピュータ１２４での解凍されたストリームの品質を改善するという当該技術分野での要求を解決する。
【００２１】
環境設定ファイル・メタデータ２０２は、フレーム・バッファ１１８の幾何学的領域を定義し且つ該領域の全体の特別な時間的特性を宣言する環境設定ファイルに保存されているアプリケーション・メタデータについての情報又はデータを表す。圧縮エンジンはこの情報を使用して、各領域について適切なコーデック(codec) を係合することができる。この技術は、アプリケーション・ソース・コードを修正することなく任意のアプリケーションについて採用することができる。
【００２２】
基本メタデータ２０４は、局在化したモジュール型レンダリング・エンジンにより、システムについてのデータ又は情報をレンダリング基本動作の検査から直接に収集する。例えば、Ｘウィンドウ・サーバーは、表示装置１２０上の各ソフトウエア・アプリケーションに割り当てられたウィンドウ・オブジェクトについて、並びに該アプリケーションが行う時間につれてのレンダリング動作の分布について有益な情報を持つ。もし１つのアプリケーションが一体色塗りつぶし動作を使用して特定のウィンドウに対してレンダリングしていると判明した場合、Ｘサーバーは適切なコーデックを使用するように圧縮エンジンに指示するメタデータを作成することができ、またウィンドウが画面上の異なる場所へ再構成されるとき、サーバーはメタデータを直接更新することができる。この手法は、アプリケーション・ソース・コードを修正せずに、レンダリング・エンジン・ソース・コードを修正することによって採用することができる。
【００２３】
アプリケーション・メタデータ２０６は、ソフトウエア・アプリケーションがどんな機能を遂行しているか決定し且つアプリケーション・データを表示するためにどんなタイプの表示装置１２０を使用するか決定するための論理を含むことができると云うことを利用する。アプリケーションの論理的な流れに依存して、メタデータは、表示装置１２０の領域が画像、ビデオ、或いは色塗り又は線画のユーザ・インターフェースの表示に使用するために割り当てられているときに直接作成することができる。
【００２４】
環境設定メタデータ２０２、基本メタデータ２０４及びアプリケーション・メタデータ２０６は互いに協同して、圧縮エンジン１０８によって使用すべき組合せメタデータ・パケットを生成することができる。同様に、メタデータ成分からの個々のデータは圧縮エンジン１０８によって個々に処理して、データ・ストリームのビットの数を減らすことができる。
【００２５】
図３は、レンダリング・エンジン１０４と表示装置１２０との間でデータを交換するためのメタデータ抽出器１０６のシステム全体の概要を表し、特に各メタデータ・モジュールによって行われる機能を表すブロック線図である。システム１０６は、通信チャンネルのスループットを増大させると云う当該技術分野における要求を解決する。
【００２６】
環境設定ファイル・メタデータ２０２は、予め編集することができ且つ圧縮機能を遂行するときにソース・コードから呼び出すことのできるライブラリ機能である。この機能は、呼び出したとき、フレーム・バッファの幾何学的領域を定義し且つ該領域の全体の特定の時間的な特性を宣言する環境設定ファイルを検査する。この情報は、レンダリング・エンジン１０４のデータ・ストリームの各領域について適切なコーデックを選択するために使用される。
【００２７】
基本メタデータ２０４は、予め編集することができ且つ圧縮機能を遂行するときにソース・コードから呼び出すことのできるライブラリ機能である。この機能は、レンダリング・エンジン１０４によるレンダリング動作を行うように選択される割り当てられたオブジェクト３０６を決定する。更に、該機能は、圧縮エンジンで使用するための適切な圧縮アルゴリズムを決定するために時間につれてのレンダリング動作３０８の分布を調べる。
【００２８】
アプリケーション・メタデータ２０６は、予め編集することができ且つ圧縮機能を遂行するときにソース・コードから呼び出すことのできるライブラリ機能である。アプリケーション・メタデータは、ソースで遂行されている機能３１０及びコンピュータ１２４における表示のタイプ３１２を使用して、適切な圧縮アルゴリズムを選択するようにする。
【００２９】
圧縮エンジン１０８のパワーは、フレーム・バッファ１１８に割り当てられる領域の特性、レンダリング・エンジン１０４によって使用されているオブジェクト、及びレンダリング・エンジンによって選択されているアプリケーションを調べて、データ忠実性を保持し且つ演算資源を最適化するように適切な圧縮アルゴリズムを選択する能力である。
【００３０】
図４は、メディア・コンテンツ４０４，４０６，４０８，４１０、並びにデータ・ストリームを圧縮することを選ぶときに選択することができる異なる圧縮アルゴリズム４０２を表す図表を示す。レンダリング・エンジンからのデータ・ストリームが１つ以上のメディア・コンテンツを含むことができるので、圧縮エンジン１０６の目的は、図３について前に述べたようにメタデータの分析によって最も適切な圧縮アルゴリズムを選択することである。
【００３１】
ＪＰＥＧ(Joint Photograph Experts Group)圧縮は、画像コンテンツ４０４及びビデオ・コンテンツ４１０に適している。ＪＰＥＧ圧縮は、帯域幅を減少させ且つフレーム・レートを低くするという犠牲を払って画像品質を維持することができる穏やかな劣化に適しており、画像の複雑さに拘わらず画像品質が一定であり、標準的な圧縮及び解凍が利用でき、コード化及びデコードが低コストであり、コンテンツ探索を行い且つ画像操作を行うことがより高速且つより簡単であり、多数のチャンネルをデコードして表示モニタで表示することができるように演算集中が減少し、コード化及びデコードの待ち時間が短く、これは生のビデオ及び個々の明瞭な画像を得るのに好ましいものであり、またパケット損失が生じた場合に素早い画像ストリームの回復と同等である弾力性がある。しかしながら、ＪＰＥＧは、毎秒５フレームよりも高いフレーム・レートでは必要とされる帯域幅消費及び記憶要件が高くなり、また音（音声など）を同期させることができない。
【００３２】
ＭＰＥＧ(Moving Picture Experts Group)圧縮アルゴリズムは、一定フレーム・レート、高圧縮に適しており、高圧縮により、毎秒５フレームよりも高いフレーム・レートでの帯域幅要件が低くなり、また毎秒５フレームよりも高いフレーム・レートでの記憶要件が低くなり、また、一定のビット・レートにより、ネットワーク設計が簡単になり、帯域幅条件を維持することができる。しかしながら、ＭＰＥＧは、必要とされる処理要件が複雑であり、またそのロバスト性が低いことにより、帯域幅が或る特定の閾値以下になった場合は全てのビデオ映像が失われる。
【００３３】
ベクトル・グラフィックスは、一連の形状、線及び変形を使用して画像を再現する方法を詳述する命令のリストとして表される線画及び図面に一層よく適している。これは、ブラシのストローク、絵の具の選択及び混合を精密に記録し、次いで絵を描くために最初に使用した一連のブラシのストロークを再現することによって、絵を再生することと類似している。ベクトル・グラフィックスは通常、特に圧縮したとき、データ効率がよく、記憶及び帯域幅要件が最小になる。ベクトル・グラフィックスは、印刷又は拡縮するとき、また拡大又は引き伸ばしのときでさえ、ピクセル化することなくレンダリングされる。従って、ベクトル・グラフィックスは、精密な細部を制限したグラフィックスを再生することができ、それは基本的な形状及び曲線に分解することが可能である。
【００３４】
ハフマン・コーディングは、ルックアップ・テーブルを用いて実施できるので実現が容易であり、所与のブロック・サイズの場合、ハフマン・コーディングは最高のコーディング効率が得られる。しかしながら、ハフマン・コーディングはソースの統計値を得る必要があり、これは演算コストを高くする恐れがある。
【００３５】
他の圧縮アルゴリズムも圧縮エンジン１０６において可能である。上記のアルゴリズムに加えて、レンダリング・エンジン１０４のユーザは、システム１００の主要な利点から逸脱することなく、より適切なアルゴリズムを選択することができる。他のアルゴリズムは、Ｈ２６１、ウェーブレット圧縮、フラクタル圧縮、及びマクロメディア・フラッシュである。
【００３６】
本書のこのセクションでは、一実施形態の動作についてシステム全体に関する概要を説明した。レンダリング・エンジン１０４とコンピュータ１２４のようなコンピュータとの間でデータを伝送するためのデータ圧縮構成を説明した。幾つかの実施形態は、図１及び図８におけるコンピュータ１２２のようなコンピュータ上で、多重処理マルチスレッド化(multi-threaded)動作環境内で動作する。
【００３７】
システム１００はどのような特定のネットワークにも限定されないが、説明を明瞭にするために、簡単なローカル・エリア・ネットワークについて説明した。
【００３８】
［実施形態の方法］
前のセクションでは、一実施形態の動作についてシステム全体に関する概要を説明した。このセクションでは、このような実施形態のサーバー及びクライアントによって遂行される特定の方法を、一連の流れ図を参照して説明する。流れ図を参照した方法の説明により、当業者は、適当なクライアント・コンピュータで方法を遂行するための命令や、コンピュータ読出し可能な媒体からの命令を実行するクライアントの処理装置などを含めて、このようなプログラム、ファームウエア又はハードウエアを開発することが可能である。同様に、サーバーのコンピュータ・プログラム、ファームウエア又はハードウエアによって遂行される方法はまた、コンピュータ実行可能な命令で構成される。方法５００、６００、７００及び９００は図２のコンピュータ１２２のようなコンピュータで実行するクライアント・プログラムによって遂行され、或いはコンピュータの一部であるファームウエア又はハードウエアによって遂行され、また該方法はレンダリング・エンジン１０４、圧縮エンジン１０８及びメタデータ抽出器１０６によって行う必要のある段階を含む。
【００３９】
図５は、一実施形態に従ってクライアントによって遂行される方法５００の流れ図である。本構成では、クライアントは、コンピュータ１２２、圧縮エンジン１０６又はレンダリング・エンジン１０４のような１つ以上のコンピュータである。方法５００は、スループットを増大させ且つ総ネットワーク負荷が変化するときネットワーク帯域幅の利用可能度を変更するように適応させると云う当該技術分野での要求を解決する。
【００４０】
本方法は段階５０２で始まり、段階５０２では、レンダリング・エンジン１０４からの入力データ及びメタデータ抽出器１０６からのデータを受け取って、伝送チャンネルの帯域幅要件に対処するように分析する。レンダリング・エンジン１０４からのデータは、ビデオ、テキスト、グラフィックス、図面及び音声を表す混合メディア・ストリームである。混合ビデオは、適切な表示ドライバ、音声ドライバ又は他のドライバを呼び出すことによって、コンピュータ１２４で表示又は再生することができる。表示装置は、各々の個別のメディアを表示するためにタイル表示、枠あけ、又は分割することができる。一旦段階５０２で入力データを受け取ると、制御は更なる処理のために段階５０４へ進む。
【００４１】
段階５０４で、入力データ・ストリームについての属性を決定する。属性は、環境設定ファイル・メタデータ、基本メタデータ及びアプリケーション・メタデータの内の少なくとも１つである。これらの属性の各々は、メタデータ、すなわち、入力データ・ストリームを記述するデータを表し、これは、ローカル・エリア・ネットワーク１０２のような通信チャンネルの帯域幅要件に対処するように混合メディア・ストリームを効率よく凝縮するために、圧縮エンジン１０８によって使用可能である。一旦属性が決定されると、制御は更なる処理のために段階５０６へ進む。
【００４２】
段階５０６では、段階５０４において識別された属性に基づいて、入力データ・ストリームについての圧縮アルゴリズムを選択する。識別された属性を持つ圧縮エンジン１０８は、入力データ・ストリームを圧縮するための適切なアルゴリズムを選択する。選択された圧縮アルゴリズムは入力データ・ストリームの各領域について固有のものであるか、又は入力データ・ストリームの各領域について共通のものとすることができる。ストリームが混合メディア・ストリームであるとき、メディアの各領域は、その領域についての最も適切な圧縮アルゴリズムに基づいて圧縮される。画像が入力データ・ストリームの一部であるとき、ＪＰＥＧアルゴリズムが選択される可能性が高く、線画及び図面の場合にはベクトル・グラフィックス圧縮又はことによるとハフマン・コーディングが選択される。ビデオの場合には、ＭＰＥＧ圧縮アルゴリズムが選択される。代替態様では、単一のアルゴリズムを入力ストリーム内のどのメディアについても選択する。帯域幅が増大する場合、圧縮が必要とされないことがあること、又は本質的に圧縮動作の遂行に伴って起こる遅延を減少させるように圧縮比が緩和されることが予想される。各メディア又は領域について圧縮アルゴリズムが選択された後、制御は更なる処理のために段階５０８へ進む。
【００４３】
段階５０８では、段階５０６において選択された圧縮アルゴリズムに従って入力データ・ストリームを圧縮する。圧縮後、入力ストリームはローカル・エリア・ネットワークに導入されて、表示装置１２０でレンダリングされるか、又は後で使用するためにファイル保管場所１１０に保存される。
【００４４】
図６は、一実施形態に従ってクライアントによって遂行される方法６００の流れ図である。本構成では、クライアントは、コンピュータ１２２、圧縮エンジン１０６又はレンダリング・エンジン１０４のような１つ以上のコンピュータである。方法６００は、スループットを増大させ且つ総ネットワーク負荷が変化するときネットワーク帯域幅の利用可能度を変更するように適応させると云う当該技術分野での要求を解決する。
【００４５】
方法６００は段階６０２で始まり、段階６０２では、レンダリング・エンジン１０４からの入力データ及びメタデータ抽出器１０６からのデータを受け取る。レンダリング・エンジン１０４からのデータは、ビデオ、テキスト、グラフィックス、図面及び音声を表し、これらは包括的に「混合メディア・ストリーム」と呼ばれる。混合ビデオは、適切な表示ドライバ、音声ドライバ又は他のドライバを呼び出すことによって、コンピュータ１２４で表示又は再生することができる。表示装置は、各々の個別のメディアを表示するためにタイル表示、枠あけ、又は分割することができる。一旦段階６０２で入力データを受け取ると、制御は更なる処理のために段階６０４へ進む。
【００４６】
段階６０４で、混合メディア・データについてメタデータを取得する。属性は、環境設定ファイル・メタデータ、基本メタデータ及びアプリケーション・メタデータの内の少なくとも１つである。これらの属性の各々は、メタデータ、すなわち、入力データ・ストリームを記述するデータを表し、これは、ローカル・エリア・ネットワーク１０２のような通信チャンネルの帯域幅要件に対処するように混合メディア・ストリームを効率よく凝縮するために、圧縮エンジン１０８によって使用可能である。一旦メタデータが取得されると、制御は更なる処理のために段階６０６へ進む。
【００４７】
段階６０６で、混合メディア・データを複数の領域に分割する。混合メディア・データの各領域は、表示装置１２０及びフレーム・バッファ１１８にマッピングすることができるが、テキスト、ビデオ、画像、グラフィックス及びその他のメディアのようなそのカテゴリー成分に分割される。混合メディア・データが複数の領域に分割された後、制御は更なる処理のために段階６０８へ進む。
【００４８】
段階６０８で、取得されたメタデータ６０４及び分割された領域６０６に基づいて入力データ・ストリームについて圧縮アルゴリズムを選択する。各領域について取得されたメタデータを持つ圧縮エンジン１０８は、入力データ・ストリームを圧縮するための適切なアルゴリズムを選択する。ストリームが混合メディア・ストリームであるとき、メディアの各領域は、その領域についての最も適切な圧縮アルゴリズムに基づいて圧縮される。画像が入力データ・ストリームの一部であるときは、ＪＰＥＧアルゴリズムが選択される可能性が高く、線画及び図面の場合にはベクトル・グラフィックス圧縮又はことによるとハフマン・コーディングが選択される。ビデオの場合には、ＭＰＥＧ圧縮アルゴリズムが選択される。帯域幅が増大する場合、圧縮が必要とされないことがあること、又は本質的に圧縮動作の遂行に伴って起こる遅延を減少させるように圧縮比が緩和されることが予想される。各メディア又は領域について圧縮アルゴリズムが選択された後、制御は更なる処理のために段階６１０へ進む。
【００４９】
段階６１０では、段階６０８において選択された圧縮アルゴリズムに従って入力データ・ストリームの各領域を圧縮する。圧縮後、入力ストリームは、表示装置１２０でレンダリングするか、又は後で使用するためにファイル保管場所１１０に保存するために、ローカル・エリア・ネットワークに導入される。
【００５０】
段階６１２で、入力データ・ストリームは、ネットワークの別の場所で再生し又は保存するために、ローカル・エリア・ネットワークに導入する。コンピュータ１２４で受け取ったとき、入力データ・ストリームは表示装置１２０で再生される。保存用サーバー１１０で受け取ったとき、後でレンダリング・エンジン１０４によって検索されるか又はコンピュータ１２４によって１２０で表示される。
【００５１】
図７は、一実施形態を形成する方法７００の流れ図である。方法７００は、ネットワークのスループットを増大させると云う当該技術分野での要求を解決する。
【００５２】
図７は、段階７０２で始まり、段階７０２では、入力データ・ストリームを受け取る。入力データ・ストリームは、レンダリング・エンジン１０４から供給されて、最終的に表示装置１２０でレンダリングされるデータ、すなわち、テキスト、ビデオ、画像又はその他のメディアである。一旦入力を受け取ると、制御は更なる処理のために段階７０４へ進む。
【００５３】
段階７０４で、入力データを分析して、メディア・ストリームの複数の領域の各々についてレンダリングしているメディアのタイプが何であるか決定する。前に述べたように、これらの領域は１つ以上のテキスト、ビデオ、画像又はその他のメディアであってよい。一旦入力データ・ストリームの領域が識別されると、制御は更なる処理のために段階７０４へ進む。
【００５４】
段階７０６で、入力ストリームをメタデータ依存性領域とメタデータ不依存性領域とに分割する。この分割の目的は、メタデータが存在する領域があればその領域を決定することであり、これにより、その領域内のメディアのタイプに合わせて厳格に調整された圧縮アルゴリズムの選択に進むことができる。一旦この弁別機能が遂行されると、メタデータ依存性である領域は、識別された領域についての最も適切なアルゴリズムを使用して圧縮される（段階７０８）。メタデータ不依存性領域はデフォルト（初期設定の）圧縮アルゴリズムを使用して圧縮される（段階７１０）。ここで、メタデータ依存性及び不依存性の両方について、何ら圧縮を行わない領域が選択される場合があることに留意されたい。領域についての圧縮が行われた後、制御は更なる処理のために段階７１２へ進む。
【００５５】
段階７１２では、入力データ・ストリームがチャンネルを介して伝送されて、表示装置１２０で表示されるか又は保存用サーバー１１０に保存される。
【００５６】
実施形態によっては、方法５００〜７００は、図８の処理装置８０４のような処理装置によって実行されたときに該処理装置にそれぞれの方法を遂行させる一連の命令を表している、搬送波で具現化されたコンピュータ・データ信号として具現される。他の実施形態では、方法５００〜７００は、図８の処理装置８０４のような処理装置にそれぞれの方法を遂行させるように指示することのできる実行可能な命令を持つコンピュータ・アクセス可能な媒体として具現される。様々な実施形態において、媒体は磁気的媒体、電子的媒体又は光学的媒体である。
【００５７】
［ハードウエア及び動作環境］
図８は、異なる実施形態を実施できるハードウエア及び動作環境８００のブロック線図である。図８の説明は、コンピュータ・ハードウエアの概要と、幾つかの実施形態を実現できるような適当な演算環境とについて行う。実施形態は、コンピュータ実行可能な命令を実行するコンピュータに関連させて説明する。しかしながら、幾つかの実施形態はコンピュータ・ハードウエアで完全に具現化することでき、コンピュータ・ハードウエアでは、コンピュータ実行可能な命令が読出し専用メモリで具現される。幾つかの実施形態はまた、クライアント／サーバー演算環境内で具現され、この場合、タスクを遂行する遠隔の装置が通信ネットワークを介して連結される。プログラム・モジュールは、分散型演算環境内のローカル及び遠隔のメモリ記憶装置の両方に配置することができる。
【００５８】
コンピュータ１２４は、Intel 社、Motorola社、Cyrix 社などから市販されているような処理装置８０４を含む。コンピュータ１２４はまた、ランダム・アクセス・メモリ（ＲＡＭ）８０６、圧縮及び解凍エンジン１１６、フレーム・バッファ１１８、読出し専用メモリ（ＲＯＭ）８０８、及び１つ以上の大容量記憶装置８１０、並びに１つ以上のシステム母線８１２を含み、システム母線８１２は様々なシステム要素を処理装置８１０に動作結合させる。メモリ８０６，８０８及び大容量記憶装置８１０は、コンピュータ・アクセス可能な媒体のタイプである。大容量記憶装置８１０は、より特殊なタイプの非揮発性コンピュータ・アクセス可能な媒体であり、１つ以上のハードディスク・ドライブ、フロッピー・ディスク・ドライブ、光ディスク・ドライブ、及びテープ・カートリッジ・ドライブを含むことができる。処理装置８０４は、コンピュータ・アクセス可能な媒体上に保存されているコンピュータ・プログラムを実行する。
【００５９】
コンピュータ１２４は、通信装置８１６を介してインターネット８１４に通信可能に接続することができる。インターネット８１４の接続性は当該技術分野内でよく知られている。一実施形態では、通信装置８１６は、通信ドライバに応答して、当該技術分野で「ダイヤルアップ接続」として知られているものを介してインターネットに接続するモデムである。別の実施形態では、通信装置８１６は、ローカル・エリア・ネットワーク（ＬＡＮ）に接続されたイーサーネット（商標）又は同様なハードウエア・ネットワーク・カードであり、ローカル・エリア・ネットワーク（ＬＡＮ）はそれ自身が、当該技術分野で「直接接続」として知られているもの（例えば、Ｔ１線路など）を介してインターネットに接続される。
【００６０】
ユーザは、キーボード８１８及びポインティング装置８２０のような入力装置を介して、コンピュータ１２４に指令及び情報を入力する。キーボード８１８は、当該技術分野で知られているように、コンピュータ１２４へのテキスト情報の入力を可能にするが、実施形態はどんな特定のタイプのキーボードにも限定されない。ポインティング装置８２０は、マイクロソフト・ウィンドウズ（商標）のようなオペレーティング・システムのグラフィカル・ユーザ・インターフェース（ＧＵＩ）によって提供される画面上のポインタの操作を可能にする。実施形態はどんな特定のタイプのポインティング装置８２０にも限定されない。このようなポインティング装置には、マウス、接触パッド、トラックボール、遠隔制御器及びポイント・スティックが含まれる。他の入力装置（図示せず）としては、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナなどが挙げられる。
【００６１】
実施形態によっては、コンピュータ１２４は表示装置８２２に作動結合される。表示装置８２２はシステム母線８１２に接続される。表示装置８２２は、コンピュータのユーザによる観察のために、コンピュータ、ビデオ及びその他の情報を含む情報の表示を可能にする。実施形態はどんな特定の表示装置８２２にも限定されない。このような表示装置には、陰極線管（ＣＲＴ）表示装置（モニタ）と共に、液晶表示装置（ＬＣＤ）のようなフラット・パネル表示装置が含まれる。モニタに加えて、コンピュータは典型的には、プリンタ（図示せず）のような他の周辺入力／出力装置を含む。拡声器８２４及び８２６が信号の音声出力を供給する。拡声器８２４及び８２６はまたシステム母線８１２に接続される。
【００６２】
コンピュータ１２４はまた、コンピュータ・アクセス可能な媒体ＲＡＭ８０６、ＲＯＭ８０８及び大容量記憶装置８１０上に記憶されて処理装置８０４によって実行されるオペレーティング・システム（図示せず）を含んでいる。オペレーティング・システムの例としては、マイクロソフト・ウィンドウズ（商標）、Ａｐｐｌｅ  ＭａｃＯＳ（商標）、Ｌｉｎｕｘ（商標）、ＵＮＩＸ（商標）が挙げられる。しかしながら、実施態様はどんな特定のオペレーティング・システムにも限定されず、このようなオペレーティング・システムの構成及び使用法は当該技術分野でよく知られている。
【００６３】
コンピュータ１２４の実施形態はどんなタイプのコンピュータ１２４にも限定されない。様々な実施形態では、コンピュータ１２４は、ＰＣ互換性コンピュータ、ＭａｃＯＳ（商標）互換性コンピュータ、Ｌｉｎｕｘ（商標）互換性コンピュータ、又はＵＮＩＸ（商標）互換性コンピュータで構成される。このようなコンピュータの構成及び使用法は当該技術分野でよく知られている。
【００６４】
コンピュータ１２４は、ユーザ制御可能なポインターを含むグラフィカル・ユーザ・インターフェース（ＧＵＩ）を提供するために少なくとも１つのオペレーティング・システムを使用して動作することができる。コンピュータ１２４は、コンピュータ１２４のユーザがＵＲＬ(Universal Resource Locator)アドレスによって指定した通りにイントラネット又はインターネット・ワールドワイドウェブ・ページにアクセスできるようにするために、少なくとも１つのオペレーティング・システム内で実行する少なくとも１つのウェブ・ブラウザ・アプリケーション・プログラムを持つことができる。ブラウザ・アプリケーション・プログラムの例としては、ネットスケープ・ナビゲータ（商標）及びマイクロソフト・インターネット・エクスプローラ（商標）が挙げられる。
【００６５】
コンピュータ１２４は、遠隔のコンピュータ１２２のような１つ以上の遠隔のコンピュータへの論理的接続を使用してネットワーク接続の環境内で動作することができる。このような論理的接続はコンピュータ１２４に結合された又はその一部である通信装置によって達成される。実施形態は特定のタイプの通信装置に限定されない。遠隔のコンピュータ１２２は、別のコンピュータ、サーバー、ルーター、レンダリング・エンジン１０４、圧縮エンジン１０８、ネットワークＰＣ、クライアント、ピア装置又は他の共通なネットワーク・ノードであってよい。図８に示されている論理的接続には、ローカル・エリア・ネットワーク（ＬＡＮ）１０２及びワイド・エリア・ネットワーク（ＷＡＮ）８３２が含まれる。このようなネットワーク接続環境は、事務所、企業内コンピュータ・ネットワーク、イントラネット及びインターネットにおいて当たり前である。
【００６６】
ＬＡＮネットワーク接続環境で使用されるとき、コンピュータ１２４及び遠隔のコンピュータ１２２は、通信装置８１６の一タイプであるネットワーク・インターフェース又はアダプタ８３４を介してローカル・ネットワーク１０２に接続される。遠隔のコンピュータ１２２はまたネットワーク装置８３６を含む。従来のＷＡＮネットワーク接続環境で使用されるとき、コンピュータ１２４及び遠隔のコンピュータ１２２はモデム（図示せず）を介してＷＡＮ８３２と通信する。モデムは、内蔵でも外付けでもよいが、システム母線８１２に接続される。ネットワーク接続の環境では、コンピュータ１２４に対して又はその一部分に対して示されるたログラム・モジュールは、遠隔のコンピュータ１２２内に記憶させてもよい。
【００６７】
コンピュータ１２４はまた電源装置８３８も含む。各電源装置は蓄電池であってよい。
【００６８】
［具現例］
図９を参照して、特定の具現例９００を、図８におけるシステムの概要と図５、６及び７に関して説明した方法とに関連して説明する。図では、ソフトウエア・システムのオブジェクト指向アーティファクトを指定し、視覚化し、構成し、且つ文書化するための業界標準語であるＵＭＬ(Unified Modeling Language) を使用する。図中、クラス間の中空の矢印は、親クラスの下の子供クラスが該親クラスから属性及び方法を引き継ぐことを示すために使用される。更に、塗りつぶした菱形は、別のクラスのオブジェクトの上方に示されているクラスのオブジェクトが、下方に示されたオブジェクトで構成されることを示すために使用される。コンポジション(composition) は、一クラスの一インスタンスの属性を、構成中のオブジェクトがそれを構成するオブジェクト（１つ又は複数）から引き継ぎをしないような他のクラスの１つ以上の既存のインスタンスの内の一インスタンスを含むものとして定義する。
【００６９】
図９は、異なる実施形態を実施できるハードウエア及び動作環境８００のブロック線図である。装置９００は、スループットを増大させ且つ総ネットワーク負荷が変化するときネットワーク帯域幅の利用可能度を変更するように適応させると云う当該技術分野での要求を解決する。
【００７０】
装置９００は、コンピュータ・アクセス可能な媒体からのソフトウエア９１２、及び装置９００を動作させるための搬送波信号を受け取る。図１０は、エラー検査のため及び正しいサーバー又は装置９００へのペイロードの送出のためのヘッダを持つフレーム・リレーを使用した伝送を示す。図示のように、ペイロードは、装置９００によって編集されたとき、選択された圧縮アルゴリズムによりデータ・ストリームの領域を圧縮するための段階を遂行するように処理装置８０４のような処理装置を作動する命令群から構成される。ソフトウエアは、入力メディア・ストリームを圧縮する方法を遂行するように装置を動作させる命令であってよく、代替例では、ソフトウエアは、該方法を遂行するため、且つデータ及び命令と、圧縮後のデータを通信チャンネルを介して送るために用いられるフォーマットとを生成するように、使用されているオペレーティング・システムに従って装置９００を動作させるための命令群であってもよい。
【００７１】
装置９００は入力データ・ストリームをメディア・ソース９１４から受け取る。前に述べたように、入力データ・ストリームは１つ以上のビデオ、テキスト、画像又はその他のメディアで構成される。ソフトウエア命令９１２を用いることによって方法を遂行するように装置を構成した後、装置は入力データ・ストリーム９１４を受け取って、該データ・ストリームを伝送のために処理する準備ができている。
【００７２】
段階９０２で、混合メディア・データについてメタデータを取得する。属性は、環境設定ファイル・メタデータ、基本メタデータ及びアプリケーション・メタデータの内の少なくとも１つである。これらの属性の各々は、メタデータ、すなわち、入力データ・ストリームを記述するデータを表し、これは、ローカル・エリア・ネットワーク１０２のような通信チャンネルの帯域幅要件に対処するように混合メディア・ストリームを効率よく凝縮するために、圧縮エンジン１０８によって使用可能である。一旦メタデータが取得されると、制御は更なる処理のために段階９０４へ進む。
【００７３】
段階９０４で、混合メディア・データを複数の領域に分割する。混合メディア・データの各領域は、表示装置１２０及びフレーム・バッファ１１８にマッピングすることができるが、テキスト、ビデオ、画像、グラフィックス及びその他のメディアのようなそのカテゴリー成分に分割される。混合メディア・データが複数の領域に分割された後、制御は更なる処理のために段階９０６へ進む。
【００７４】
段階９０６で、取得されたメタデータ９０２及び分割された領域９０４に基づいて入力データ・ストリームについて圧縮アルゴリズムを選択する。各領域について取得されたメタデータを持つ圧縮エンジン１０８は、入力データ・ストリームを圧縮するための適切なアルゴリズムを選択する。ストリームが混合メディア・ストリームであるとき、メディアの各領域は、その領域についての最も適切な圧縮アルゴリズムに基づいて圧縮される。画像が入力データ・ストリームの一部であるときは、ＪＰＥＧアルゴリズムが選択される可能性が高く、線画及び図面の場合にはベクトル・グラフィックス圧縮又はことによるとハフマン・コーディングが選択される。ビデオの場合には、ＭＰＥＧ圧縮アルゴリズムが選択される。帯域幅が増大する場合、圧縮が必要とされないことがあること、又は本質的に圧縮動作の遂行に伴って起こる遅延を減少させるように圧縮比が緩和されることが予想される。各メディア又は領域について圧縮アルゴリズムが選択された後、制御は更なる処理のために段階９０８へ進む。
【００７５】
段階９０８では、段階９０６において選択された圧縮アルゴリズムに従って入力データ・ストリームの各領域を圧縮する。圧縮後、入力ストリームは、表示装置１２０でレンダリングするために、又は後で使用するためにファイル保管場所１１０に保存するために、ローカル・エリア・ネットワークに導入される。
【００７６】
段階９１０で、入力データ・ストリームは、ネットワークの別の場所で再生し又は保存するために、ローカル・エリア・ネットワークの流れに導入する。コンピュータ１２４で受け取ったとき、入力データ・ストリームは表示装置１２０で再生される。保存用サーバー１１０で受け取ったとき、後でレンダリング・エンジン１０４によって検索されるか又はコンピュータ１２４によって１２０で表示される。
【００７７】
装置９００のコンポーネント(component) ９０２〜９１０はコンピュータ・ハードウエア回路として又はコンピュータ読出し可能なプログラムとして、或いはこれらの両者として具現化することができる。別の実施形態では、システム９００はアプリケーション・サービス・プロバイダ（ＡＳＰ）システムで具現化される。
【００７８】
更に詳しく述べると、コンピュータ読出し可能なプログラムによる実施形態では、プログラムはＪａｖａ（商標）、Ｓｍａｌｌｔａｌｋ（商標）、又はＣ＋＋のようなオブジェクト指向言語を使用してオブジェクト指向で構成するすることができ、またＣＯＢＯＬ又はＣのような手続向き言語を使用して手続向きに構成することもできる。ソフトウエア・コンポーネントの通信には当業者に周知の多数の手段のいずれかが用いられ、例えば、アプリケーション・プログラム・インターフェース（ＡＰＩ）、又はプロセス間通信技術、例えば、遠隔手続き呼出し（ＲＰＣ）、共通オブジェクト要求ブローカー・アーキテクチャ（ＣＯＲＢＡ）、コンポーネント・オブジェクト・モデル（ＣＯＭ）、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）及び遠隔メソッド呼出し（ＲＭＩ）が用いられる。コンポーネントは、図８中のコンピュータ１２２又は１２４のように僅か１つのコンピュータで実行するか、又は少なくともコンポーネントと同じ数のコンピュータで実行する。
【００７９】
［結論］
以上、データ圧縮のためのシステム及び方法を説明した。特定の実施形態を例示して説明したが、当業者には、同じ目的を達成すると考えられるどのような構成も上記の実施形態と置き換えることができることが理解されよう。本出願はいかなる改変や変形もカバーするものである。例えば、オブジェクト指向に関連して説明したが、当業者には、手続き向き設計環境又は所要の関係を与える任意の他の設計環境で具現化することができることが理解されよう。
【００８０】
特に、当業者なら直ぐ分かるように、方法及び装置の名称は実施形態を限定しようとするものではない。更に、付加的な方法及び装置をコンポーネントに追加することができ、またコンポーネントの間で機能を配置し直すことができ、また将来における改善及び実施形態で使用された物理的装置に対応する新しいコンポーネントを、実施形態の範囲から逸脱することなく導入することができる。当業者には、実施形態が将来の通信装置、異なるファイル・システム及び新規なデータ・タイプに適用可能であることが認められよう。
【図面の簡単な説明】
【００８１】
【図１】レンダリング・エンジンからの入力データを圧縮するための一実施形態とその後の表示のために解凍した入力データを保持するフレーム・バッファとを含むシステム全体の概要を例示する線図である。
【図２】入力データの圧縮のための一実施形態による環境設定、基本及びアプリケーション・メタデータの使用法を例示する線図である。
【図３】入力データの圧縮のための一実施形態による環境設定、基本及びアプリケーション・メタデータの詳細を例示する線図である。
【図４】入力データを圧縮するために使用することのできるコンテンツ及び圧縮方法を例示する図表である。
【図５】識別された属性に基づいて入力データを圧縮するための一実施形態による方法の流れ図である。
【図６】取得したメタデータに基づいて入力データを圧縮するための一実施形態による方法の流れ図である。
【図７】取得した独立又は従属メタデータに基づいて入力データを圧縮するための一実施形態による方法の流れ図である。
【図８】異なる実施形態を実施することのできるハードウエア及び動作環境のブロック図である。
【図９】入力データを圧縮するために処理装置によって遂行される動作を表すブロック図である。
【図１０】処理装置によって実行されたときに入力データを圧縮する命令を持つデータ・フレームの図表である。
【符号の説明】
【００８２】
１００  システム
１０２  ＬＡＮ
１１０  保存用サーバー
１２２  コンピュータ・システム
１２４  端末装置（コンピュータ・システム）
５００、６００、７００  方法
８００  ハードウエア及び動作環境
８１２  システム母線
９００  装置
【図１】
0005319875.tif 000002
【図２】
0005319875.tif 000003
【図３】
0005319875.tif 000004
【図４】
0005319875.tif 000005
【図５】
0005319875.tif 000006
【図６】
0005319875.tif 000007
【図７】
0005319875.tif 000008
【図８】
0005319875.tif 000009
【図９】
0005319875.tif 000010
【図１０】
0005319875.tif 000011