(57)【要約】本発明は全体としてクライアントにおけるグラフィックおよび／またはメディア・コンポーネントを有するディスプレーの作成に関する。一つの態様では、クライアントにてグラフィック・ディスプレーを作成する方法は、サーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信し、アプリケーション出力内の非テキスト要素を識別し、非テキスト要素に関連する圧縮データ・フォーマットを検索し、圧縮データ・フォーマットを非テキスト要素の代わりにクライアントに送信する工程を含んでいる。【特許請求の範囲】
【請求項１】
クライアントにおいてグラフィック・ディスプレー作成する方法であって、
サーバー上で実行されるアプリケーション・プログラムから前記クライアントに出力を送信する工程と、
前記アプリケーション出力内の非テキスト要素を識別する工程と、
前記非テキスト要素に関連する圧縮データ・フォーマットを検索し、前記圧縮データ・フォーマットを前記非テキスト要素の代わりに前記クライアントに送信する工程とを含む方法。
【請求項２】
前記クライアントにて前記圧縮データ・フォーマットを受信する工程と、
前記圧縮データ・フォーマットを利用して前記クライアントにてディスプレーを作成する工程とをさらに含む請求項１に記載の方法。
【請求項３】
前記アプリケーション出力内のテキスト要素を識別する工程と、
前記テキスト要素を前記クライアントに送信する工程とを含む請求項１に記載の方法。
【請求項４】
前記クライアントにて前記圧縮データ・フォーマットと前記テキスト要素とを受信する工程と、
前記圧縮データ・フォーマットと前記テキスト要素とを利用して前記クライアントにてディスプレーを作成する工程とをさらに含む請求項３に記載の方法。
【請求項５】
前記圧縮データ・フォーマットは少なくとも１つのプレゼンテーション層プロトコル・パケットを利用して送信される請求項１に記載の方法。
【請求項６】
前記少なくとも１つのプレゼンテーション層プロトコル・パケットはファイルをそのネーティブ・フォーマットで送信するためのコマンドを利用して送信される請求項５に記載の方法。
【請求項７】
前記少なくとも１つのプレゼンテーション層プロトコル・パケットはリモート・アクセス・プロトコルに適合する請求項５に記載の方法。
【請求項８】
前記非テキスト要素はビットマップ表現であると共に、前記圧縮データ・フォーマットを送信するステップは前記ビットマップ表現を前記圧縮データ・フォーマットと置き換える工程を含む請求項１に記載の方法。
【請求項９】
前記圧縮データ・フォーマットを利用して前記非テキスト要素をレンダリングする前記クライアントの能力を判定する工程をさらに含む請求項１に記載の方法。
【請求項１０】
前記クライアントが前記圧縮データ・フォーマットを利用して前記非テキスト要素をレンダリングすることができないと判定されると、前記圧縮データ・フォーマットを利用して前記非テキスト要素をレンダリングすることが可能な画像レンダリング・ライブラリを送信する工程をさらに含む請求項９に記載の方法。
【請求項１１】
前記識別ステップがさらに、
前記アプリケーション出力をインターセプトする工程と、
前記インターセプトされた出力を前記非テキスト要素のビットマップ表現に関して検査する工程とを含む請求項１に記載の方法。
【請求項１２】
前記検索ステップがさらに、
前記非テキスト要素のビットマップ表現に関する第一のチェック値を計算する工程と、
前記第一チェック値と同じチェック値を有する前記圧縮データ・フォーマットを画像ストアから検索する工程とを含む請求項１に記載の方法。
【請求項１３】
クライアントにおいてグラフィック・ディスプレーを作成する方法であって、
サーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信する工程と、
前記アプリケーション出力内のビットマップ表現を識別する工程と、
前記ビットマップ表現用のチェック値を判定する工程と、
前記チェック値を少なくとも部分的に利用して、前記ビットマップ表現の圧縮データ・フォーマットを検索する工程と、
前記ビットマップ表現の代わりに前記圧縮データ・フォーマットを前記クライアントに送信する工程とを含む方法。
【請求項１４】
前記アプリケーション出力内の前記ビットマップ表現に関連するコマンドを識別する工程と、
前記圧縮データ・フォーマットと共に前記コマンドを前記クライアントに送信する工程とをさらに含む請求項１３に記載の方法。
【請求項１５】
前記圧縮データ・フォーマットと前記コマンドとを前記クライアントにて受信する工程と、
前記圧縮データ・フォーマットを復元して前記ビットマップ表現を作成する工程と、
前記ビットマップ表現と前記コマンドとを利用してディスプレーを作成する工程とをさらに含む請求項１４に記載の方法。
【請求項１６】
前記圧縮データ・フォーマットおよび前記ビットマップ表現に関連するコマンドはプレゼンテーション層プロトコル・パケットを利用して送信される請求項１３に記載の方法。
【請求項１７】
前記プレゼンテーション層プロトコル・パケットはファイルをその圧縮データ・フォーマットで送信するために構築されたプロトコル・コマンドを利用して送信される請求項１６に記載の方法。
【請求項１８】
前記プレゼンテーション層プロトコル・パケットはプレゼンテーション・プロトコルに適合する請求項１６に記載の方法。
【請求項１９】
前記圧縮データ・フォーマットを利用して前記ビットマップ表現をレンダリングする前記クライアントの能力を判定する工程をさらに含む請求項１３に記載の方法。
【請求項２０】
前記クライアントが前記圧縮データ・フォーマットを利用して前記ビットマップ表現をレンダリングすることができないと判定されると、前記圧縮データ・フォーマットを利用して前記ビットマップ表現をレンダリングすることが可能な画像レンダリング・ライブラリを送信する工程をさらに含む請求項１９に記載の方法。
【請求項２１】
前記識別ステップがさらに、
前記アプリケーション出力をインターセプトする工程と、
前記インターセプトされた出力を前記１つ以上の非テキスト要素のビットマップ表現に関して検査する工程とを含む請求項１３に記載の方法。
【請求項２２】
前記検索ステップがさらに、前記ビットマップ表現に基づいてＣＲＣを計算する工程と、
前記計算されたＣＲＣを前記チェック値として利用する工程とをさらに含む請求項１３に記載の方法。
【請求項２３】
クライアントにてグラフィック・ディスプレーを作成するシステムであって、
アプリケーション・プログラムによって作成された出力をインターセプトし、前記出力の非テキスト要素を識別し、前記非テキスト要素に関連する圧縮データ・フォーマットを検索するように構成された出力フィルタ・モジュールと、
前記非テキスト要素の代わりに前記圧縮データ・フォーマットを前記クライアントに送信するように構成されたサーバー・エージェントとを備えるシステム。
【請求項２４】
サーバー・ノードをさらに含み、前記サーバー・ノードは前記サーバー・エージェントおよび前記出力フィルタ・モジュールを含む請求項２３に記載のシステム。
【請求項２５】
前記圧縮データ・フォーマットを受信し、前記受信した圧縮データ・フォーマットを利用して前記非テキスト要素のディスプレーを作成するように構成されたクライアント・エージェントをさらに含む請求項２３に記載のシステム。
【請求項２６】
クライアント・ノードをさらに備え、前記クライアント・ノードは前記クライアント・エージェントおよびディスプレーを含む請求項２５に記載のシステム。
【請求項２７】
前記サーバー・エージェントはさらに、プレゼンテーション層プロトコル・パケットを利用して前記圧縮データ・フォーマットを送信するように構成されている請求項２３に記載のシステム。
【請求項２８】
前記サーバー・エージェントはさらに、前記非テキスト要素の代わりに前記圧縮データ・フォーマットを送信するためのコマンドを前記プレゼンテーション層プロトコル・パケット内に含むように構成されている請求項２７に記載のシステム。
【請求項２９】
前記サーバー・エージェントはさらにシン・クライアント・プロトコルに適合するように構成されている請求項２３に記載のシステム。
【請求項３０】
前記非テキスト要素はビットマップ表現である請求項２３に記載のシステム。
【請求項３１】
前記出力フィルタ・モジュールはさらに、圧縮データ・フォーマットを利用して前記非テキスト要素をレンダリングする能力が前記クライアントにあるか否かを判定するように構成されている請求項２３に記載のシステム。
【請求項３２】
前記サーバー・エージェントはさらに、前記クライアントが前記圧縮データ・フォーマットを利用して前記非テキスト要素をレンダリングすることができないと判定されると、前記圧縮データ・フォーマットを利用して前記非テキスト要素をレンダリングすることが可能な画像レンダリング・ライブラリを送信するように構成されている請求項３１に記載のシステム。
【請求項３３】
前記出力フィルタ・モジュールはさらに、前記出力をインターセプトし、前記インターセプトされた出力を前記非テキスト要素のビットマップ表現に関して検査するように構成されている請求項２３に記載のシステム。
【請求項３４】
クライアントにてグラフィック・ディスプレーを作成するシステムであって、
ネットワークと、
前記ネットワークと通信するサーバーであって、
アプリケーション・プログラムによって作成された出力をインターセプトし、前記出力の非テキスト要素を識別し、前記非テキスト要素に関連する圧縮データ・フォーマットを検索するように構成された出力フィルタ・モジュールと、
前記出力フィルタ・モジュールと通信し、前記非テキスト要素の代わりに前記圧縮データ・フォーマットを前記クライアントに送信するように構成されたサーバー・エージェントとを含む前記サーバーと、
前記ネットワークと通信するクライアントであって、
前記圧縮データ・フォーマットを受信し、前記受信した圧縮データ・フォーマットを利用して前記非テキスト要素のディスプレーを作成するように構成されたクライアント・エージェントとを含む前記クライアントとをさらに備えるシステム。
【請求項３５】
クライアントにてグラフィック・ディスプレーを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
サーバー上で実行されるアプリケーション・プログラムによって作成された出力をインターセプトするためのコンピュータ読み出し可能なプログラム手段と、
前記出力の非テキスト要素を識別するためのコンピュータ読み出し可能なプログラム手段と、
前記非テキスト要素に関連する圧縮データ・フォーマットを検索するためのコンピュータ読み出し可能なプログラム手段と、
前記圧縮データ・フォーマットを前記非テキスト要素の代わりに前記クライアントに送信するためのコンピュータ読み出し可能なプログラム手段とを備える製品。
【請求項３６】
クライアントにてグラフィック・ディスプレーを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
サーバー上で実行されるアプリケーション・プログラムによって作成された出力をインターセプトするためのコンピュータ読み出し可能なプログラム手段と、
前記アプリケーション・プログラムによって作成された前記出力内のビットマップ表現を識別するためのコンピュータ読み出し可能なプログラム手段と、
前記ビットマップ表現用のチェック値を判定するためのコンピュータ読み出し可能なプログラム手段と、
前記チェック値を少なくとも部分的に利用して、前記ビットマップ表現の圧縮データ・フォーマットを検索するためのコンピュータ読み出し可能なプログラム手段と、
前記ビットマップ表現の代わりに前記圧縮データ・フォーマットを前記クライアントに送信するためのコンピュータ読み出し可能なプログラム手段とを備える製品。
【請求項３７】
クライアントにてメディア・プレゼンテーションを作成する方法であって、
（ａ）サーバー上で実行されるアプリケーション・プログラムから前記クライアントに出力を送信する工程と、
（ｂ）前記アプリケーション出力内のメディア・ストリームを識別する工程と、
（ｃ）前記メディア・ストリームの少なくとも一部を表すオリジナルの圧縮データ・セットを前記アプリケーション・プログラムによって処理される前にインターセプトする工程と、
（ｄ）前記オリジナルの圧縮データ・セットを前記クライアントに送信する工程とを含む方法。
【請求項３８】
前記アプリケーション・プログラムが外部コーデックを使用していることを判定する工程をさらに含む請求項３７に記載の方法。
【請求項３９】
前記クライアントにて前記オリジナルの圧縮データ・セットを受信する工程と、
前記クライアントにて前記オリジナルの圧縮データ・セットを復元して、復元されたデータ・セットを作成する工程と、
前記復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項３７に記載の方法。
【請求項４０】
前記メディア・ストリームに関連するタイミング情報を収集する工程と、
前記タイミング情報を前記クライアントに送信する工程とをさらに含む請求項３７に記載の方法。
【請求項４１】
前記オリジナルの圧縮データ・セットと前記タイミング情報とを前記クライアントにて受信する工程と、
前記オリジナルの圧縮データ・セットを前記クライアントにて復元し、復元データ・セットを作成する工程と、
前記復元データ・セットおよび前記タイミング情報を利用して前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項４０に記載の方法。
【請求項４２】
前記メディア・ストリームはビデオ・ストリームであり、前記メディア・プレゼンテーションはグラフィック・ディスプレーを含む請求項３９に記載の方法。
【請求項４３】
前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントに送信する工程と、
前記配置のための情報を前記クライアントで受信する工程と、
前記復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項４２に記載の方法。
【請求項４４】
前記アプリケーション出力からの非メディア・グラフィック情報を前記クライアントに送信する工程と、
前記非メディア・グラフィック情報を前記クライアントにて受信する工程と、
前記復元されたデータ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成する工程とをさらに含む請求項３９に記載の方法。
【請求項４５】
前記メディア・ストリームはオーデイオ・ストリームであり、前記メディア・プレゼンテーションはオーデイオ・プレゼンテーションを含む請求項３９に記載の方法。
【請求項４６】
前記サーバーに対して、前記クライアントにインストールされたクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知する工程をさらに含む請求項３７に記載の方法。
【請求項４７】
前記少なくとも１つのメディア・フォーマットは前記クライアントにインストールされた少なくとも１つのコーデックを列挙することによって決定される請求項４６に記載の方法。
【請求項４８】
前記少なくとも１つのメディア・フォーマットは前記クライアントにインストールされたクライアント・エージェント内に埋め込まれた少なくとも１つのコーデックを列挙することによって決定される請求項４６に記載の方法。
【請求項４９】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するために大域的な一意的識別子が使用される請求項４６に記載の方法。
【請求項５０】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するために４つの文字コードが使用される請求項４６に記載の方法。
【請求項５１】
クライアントにてメディア・プレゼンテーションを作成する方法であって、
（ａ）サーバー上で実行されるアプリケーション・プログラムから前記クライアントに出力を送信する工程と、
（ｂ）前記アプリケーション出力内のメディア・ストリームを識別する工程と、
（ｃ）前記メディア・ストリームの少なくとも一部を表す第一の復元データ・セットをインターセプトする工程と、
（ｄ）前記インターセプトされた第一の復元データ・セットを圧縮する工程と、
（ｅ）前記第一の復元データ・セットの代わりに前記圧縮データ・セットを前記クライアントに送信する工程を含む方法。
【請求項５２】
前記アプリケーション・プログラムが埋め込まれたコーデックを使用していることを判定する工程をさらに含む請求項５１に記載の方法。
【請求項５３】
前記クライアントにて前記圧縮データ・セットを受信する工程と、
前記クライアントにて前記圧縮データ・セットを復元して、第二の復元されたデータ・セットを作成する工程と、
前記第二の復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項５１に記載の方法。
【請求項５４】
前記メディア・ストリームに関連するタイミング情報を収集する工程と、
前記タイミング情報を前記クライアントに送信する工程とをさらに含む請求項５１に記載の方法。
【請求項５５】
前記圧縮データ・セットと前記タイミング情報とを前記クライアントにて受信する工程と、
前記圧縮データ・セットを前記クライアントにて復元し、第二の復元データ・セットを作成する工程と、
前記第二の復元データ・セットおよび前記タイミング情報を利用して前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項５４に記載の方法。
【請求項５６】
前記メディア・ストリームはビデオ・ストリームであり、前記メディア・プレゼンテーションはグラフィック・ディスプレーを含む請求項５３に記載の方法。
【請求項５７】
前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントに送信する工程と、
前記配置のための情報を前記クライアントで受信する工程と、
前記第二の復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項５６に記載の方法。
【請求項５８】
前記アプリケーション出力からの非メディア・グラフィック情報を前記クライアントに送信する工程と、
前記非メディア・グラフィック情報を前記クライアントにて受信する工程と、
前記第二の復元データ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成する工程とをさらに含む請求項５３に記載の方法。
【請求項５９】
（ｄ）軽量の損失が多いビデオ・エンコード・アルゴリズムを利用して前記ビデオ・ストリームの前記インターセプトされた第一の復元データ・セットを圧縮する工程をさらに含む請求項５６に記載の方法。
【請求項６０】
前記軽量の損失が多いビデオ・エンコード・アルゴリズムはＭＪＰＥＧ圧縮を含む請求項５９に記載の方法。
【請求項６１】
（ｄ）軽量の損失が多いビデオ・エンコード・アルゴリズムのための圧縮率を選択する工程をさらに含む請求項５９に記載の方法。
【請求項６２】
前記サーバーに対して、前記クライアントにインストールされたクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知する工程をさらに含む請求項５１に記載の方法。
【請求項６３】
前記少なくとも１つのメディア・フォーマットは前記クライアントにインストールされた少なくとも１つのコーデックを列挙することによって決定される請求項６２に記載の方法。
【請求項６４】
前記少なくとも１つのメディア・フォーマットは前記クライアントにインストールされたクライアント・エージェント内に埋め込まれた少なくとも１つのコーデックを列挙することによって決定される請求項６２に記載の方法。
【請求項６５】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するために大域的な一意的識別子が使用される請求項６２に記載の方法。
【請求項６６】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するために４つの文字コードが使用される請求項６２に記載の方法。
【請求項６７】
クライアントにてメディア・プレゼンテーションを作成する方法であって、
（ａ）サーバーに対して、前記クライアントにインストールされたクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知する工程と、
（ｂ）メディア・ストリームの少なくとも一部を表す圧縮データ・セットを前記クライアントにて受信する工程と、
（ｃ）前記クライアントにて前記圧縮データ・セットを復元して、復元されたデータ・セットを作成する工程と、
（ｄ）前記復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成する工程とを含む方法。
【請求項６８】
前記メディア・ストリームに関連するタイミング情報を受信する工程と、
前記タイミング情報を利用して前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項６７に記載の方法。
【請求項６９】
前記メディア・ストリームはビデオ・ストリームであり、前記メディア・プレゼンテーションはグラフィック・ディスプレーを含む請求項６７に記載の方法。
【請求項７０】
前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントにて受信する工程と、
前記復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成する工程とをさらに含む請求項６９に記載の方法。
【請求項７１】
非メディア・グラフィック情報を前記クライアントにて受信する工程と、
前記復元データ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成する工程とをさらに含む請求項６７に記載の方法。
【請求項７２】
前記メディア・ストリームはオーデイオ・ストリームであり、前記メディア・プレゼンテーションはオーデイオ・プレゼンテーションを含む請求項６７に記載の方法。
【請求項７３】
前記少なくとも１つのメディア・フォーマットは前記クライアントにインストールされた少なくとも１つのコーデックを列挙することによって決定される請求項６７に記載の方法。
【請求項７４】
前記少なくとも１つのメディア・フォーマットは前記クライアントにインストールされたクライアント・エージェント内に埋め込まれた少なくとも１つのコーデックを列挙することによって決定される請求項６７に記載の方法。
【請求項７５】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するために大域的な一意的識別子が使用される請求項６７に記載の方法。
【請求項７６】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するために４つの文字コードが使用される請求項６７に記載の方法。
【請求項７７】
クライアントにてメディア・プレゼンテーションを作成するシステムであって、
アプリケーション・プログラムによって作成された出力内のメディア・ストリームを識別するように構成されたアプリケーション・プログラムと、
前記メディア・ストリームの少なくとも一部を表すオリジナルの圧縮データ・セットを前記アプリケーション・プログラムによって処理される前にインターセプトし、前記オリジナルの圧縮データ・セットを前記クライアントに送信するように構成された出力フィルタ・モジュールとを備えるシステム。
【請求項７８】
前記オリジナルの圧縮データ・セットを受信し、前記受信したオリジナル圧縮データ・セットを前記クライアントにて復元して復元データ・セットを作成し、前記復元データ・セットを利用して前記クライアントにてメディア・プレゼンテーションを作成するように構成されたクライアント・エージェントをさらに含む請求項７７に記載のシステム。
【請求項７９】
前記出力フィルタ・モジュールはさらに前記メディア・ストリームに関連するタイミング情報を収集し、前記タイミング情報を前記クライアントに送信するように構成されている７７に記載のシステム。
【請求項８０】
前記オリジナルの圧縮データ・セットと前記タイミング情報とを受信し、前記オリジナルの圧縮データ・セットを復元して復元データ・セットを作成し、前記復元データ・セットおよび前記タイミング情報を利用して前記メディア・プレゼンテーションを作成するように構成されたクライアント・エージェントをさらに含む請求項７９に記載のシステム。
【請求項８１】
前記メディア・ストリームはビデオ・ストリームであり、前記クライアント・エージェントはさらに前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を受信し、前記復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するように構成されている請求項７８に記載のシステム。
【請求項８２】
前記クライアント・エージェントはさらに前記非メディア・グラフィック情報を受信し、前記復元されたデータ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成するように構成されている請求項７８に記載のシステム。
【請求項８３】
クライアントにてメディア・プレゼンテーションを作成するシステムであって、
アプリケーション・プログラムによって作成された出力内のメディア・ストリームを識別するように構成されたアプリケーション・プログラムと、
前記メディア・ストリームの少なくとも一部を表す第一の復元データ・セットをインターセプトし、前記メディア・ストリームの前記インターセプトされた第一の復元データ・セットを圧縮し、前記第一の復元データ・セットの代わりに前記圧縮データ・セットを前記クライアントに送信するように構成された出力フィルタ・モジュールとを備えるシステム。
【請求項８４】
前記圧縮データ・セットを受信し、前記クライアントにて前記圧縮データ・セットを復元して、第二の復元されたデータ・セットを作成し、前記第二の復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成するように構成されたクライアント・エージェントを工さらに含む請求項８３に記載のシステム。
【請求項８５】
前記出力フィルタ・モジュールはさらに前記メディア・ストリームに関連するタイミング情報を収集し、前記タイミング情報を前記クライアントに送信するように構成されている請求項８３に記載のシステム。
【請求項８６】
前記圧縮データ・セットと前記タイミング情報とを受信し、前記圧縮データ・セットを復元して第二の復元データ・セットを作成し、前記第二の復元データ・セットおよび前記タイミング情報を利用して前記メディア・プレゼンテーションを作成するように構成されたクライアント・エージェントをさらに含む請求項８５に記載のシステム。
【請求項８７】
前記メディア・ストリームはビデオ・ストリームであり、前記クライアント・エージェントはさらに、前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を受信し、前記第二の復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するように構成されている請求項８４に記載のシステム。
【請求項８８】
前記クライアント・エージェントはさらに非メディア・グラフィック情報を受信し、前記前記第二の復元データ・セットおよび前記非メディア・グラフィック情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するように構成されている請求項８４に記載のシステム。
【請求項８９】
前記メディア・ストリームはビデオ・ストリームであり、前記出力フィルタ・モジュールはさらに、軽量の損失が多いビデオ・エンコード・アルゴリズムを利用して前記ビデオ・ストリームの前記インターセプトされた第一の復元データ・セットを圧縮するように構成されている請求項８３に記載のシステム。
【請求項９０】
前記軽量の損失が多いビデオ・エンコード・アルゴリズムはＭＪＰＥＧ圧縮を含む請求項８９に記載のシステム。
【請求項９１】
前記出力フィルタ・モジュールはさらに、軽量の損失が多いビデオ・エンコード・アルゴリズムのための圧縮率を選択するように構成されている請求項８９に記載のシステム。
【請求項９２】
クライアントにテメディア・プレゼンテーションを作成するシステムであって、
サーバーと、
前記サーバーと通信するクライアントであって、前記サーバーに対してクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知し、メディア・ストリームの少なくとも一部を表す圧縮データ・セットを受信し、前記クライアントにて前記圧縮データ・セットを復元して、復元されたデータ・セットを作成し、前記復元データ・セットを利用して前記メディア・プレゼンテーションを作成するように構成されたクライアント・エージェントを備える前記クライアントとを備えるシステム。
【請求項９３】
前記クライアント・エージェントはさらに、前記メディア・ストリームに関連するタイミング情報を受信し、前記タイミング情報を利用して前記メディア・プレゼンテーションを作成するように構成されている請求項９２に記載のシステム。
【請求項９４】
前記メディア・ストリームはビデオ・ストリームであり、前記クライアント・エージェントはさらに前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントにて受信し、前記復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するように構成されている請求項９２に記載のシステム。
【請求項９５】
前記クライアント・エージェントはさらに非メディア・グラフィック情報を受信し、前記復元データ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを作成するように構成されている請求項９２に記載のシステム。
【請求項９６】
クライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
サーバー上で実行されるアプリケーション・プログラムから前記クライアントに出力を送信するためのコンピュータ読み出し可能プログラム手段と、
前記アプリケーション出力内のメディア・ストリームを識別するためのコンピュータ読み出し可能プログラム手段と、
前記メディア・ストリームの少なくとも一部を表すオリジナルの圧縮データ・セットを前記アプリケーション・プログラムによって処理される前にインターセプトするコンピュータ読み出し可能プログラム手段と、
前記オリジナルの圧縮データ・セットを前記クライアントに送信するコンピュータ読み出し可能プログラム手段とを含む製品。
【請求項９７】
前記アプリケーション・プログラムが外部コーデックを使用していることを判定するためのコンピュータ読み出し可能プログラム手段をさらに備える請求項９６に記載の製品。
【請求項９８】
前記クライアントにて前記オリジナルの圧縮データ・セットを受信するためのコンピュータ読み出し可能プログラム手段と、
前記クライアントにて前記オリジナルの圧縮データ・セットを復元して、復元されたデータ・セットを作成するためのコンピュータ読み出し可能プログラム手段と、
前記復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項９６に記載の製品。
【請求項９９】
前記メディア・ストリームに関連するタイミング情報を収集するためのコンピュータ読み出し可能プログラム手段と、
前記タイミング情報を前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項９６に記載の製品。
【請求項１００】
前記オリジナルの圧縮データ・セットと前記タイミング情報とを前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記オリジナルの圧縮データ・セットを前記クライアントにて復元し、復元データ・セットを作成するためのコンピュータ読み出し可能プログラム手段と、
前記復元データ・セットおよび前記タイミング情報を利用して前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項９９に記載の製品。
【請求項１０１】
前記メディア・ストリームはビデオ・ストリームであり、前記製品はさらに、前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段と、
前記配置のための情報を前記クライアントで受信するためのコンピュータ読み出し可能プログラム手段と、
前記復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項９８に記載の製品。
【請求項１０２】
前記アプリケーション出力からの非メディア・グラフィック情報を前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段と、
前記非メディア・グラフィック情報を前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記復元されたデータ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項９８に記載の製品。
【請求項１０３】
前記サーバーに対して、前記クライアントにインストールされたクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段をさらに備える請求項９６に記載の製品。
【請求項１０４】
前記少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は、前記クライアントにインストールされた少なくとも１つのコーデックを列挙する請求項１０３に記載の製品。
【請求項１０５】
前記サーバーに前記少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は、前記クライアントにインストールされた請求項１０３に記載の製品。
【請求項１０６】
前記少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は、大域的な一意的識別子を使用する請求項１０３に記載の製品。
【請求項１０７】
前記少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は、４つの文字コードを使用する請求項１０３に記載の製品。
【請求項１０８】
クライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
サーバー上で実行されるアプリケーション・プログラムから前記クライアントに出力を送信するためのコンピュータ読み出し可能プログラム手段と、
前記アプリケーション出力内のメディア・ストリームを識別するためのコンピュータ読み出し可能プログラム工程と、
前記メディア・ストリームの少なくとも一部を表す第一の復元データ・セットをインターセプトするためのコンピュータ読み出し可能プログラム手段と、
前記インターセプトされた第一の復元データ・セットを圧縮するためのコンピュータ読み出し可能プログラム手段と、
前記第一の復元データ・セットの代わりに前記圧縮データ・セットを前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段とを備える製品。
【請求項１０９】
前記アプリケーション・プログラムが埋め込まれたコーデックを使用しているか否かを判定するためのコンピュータ読み出し可能プログラム手段をさらに備える請求項１０８に記載の製品。
【請求項１１０】
前記クライアントにて前記圧縮データ・セットを受信するためのコンピュータ読み出し可能プログラム手段と、
前記クライアントにて前記圧縮データ・セットを復元して、第二の復元されたデータ・セットを作成するためのコンピュータ読み出し可能プログラム手段と、
前記第二の復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１０８に記載の製品。
【請求項１１１】
前記メディア・ストリームに関連するタイミング情報を収集するためのコンピュータ読み出し可能プログラム手段と、
前記タイミング情報を前記クライアントに送信するてめのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１０８に記載の製品。
【請求項１１２】
前記圧縮データ・セットと前記タイミング情報とを前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記圧縮データ・セットを前記クライアントにて復元し、第二の復元データ・セットを作成するためのコンピュータ読み出し可能プログラム手段と、
前記第二の復元データ・セットおよび前記タイミング情報を利用して前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム工程とをさらに備える請求項１１１に記載の製品。
【請求項１１３】
前記メディア・ストリームはビデオ・ストリームであり、
前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段と、
前記配置のための情報を前記クライアントで受信するためのコンピュータ読み出し可能プログラム手段と、
前記第二の復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１１０に記載の製品。
【請求項１１４】
前記アプリケーション出力からの非メディア・グラフィック情報を前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段と、
前記非メディア・グラフィック情報を前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記第二の復元データ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１１０に記載の製品。
【請求項１１５】
前記メディア・ストリームはビデオ・ストリームであり、圧縮のための前記コンピュータ読み出し可能プログラム手段は軽量の損失が多いビデオ・エンコード・アルゴリズムを含む請求項１０８に記載の製品。
【請求項１１６】
圧縮のための前記コンピュータ読み出し可能プログラム手段の前記軽量の損失が多いビデオ・エンコード・アルゴリズムはＭＪＰＥＧ圧縮を含む請求項１１５に記載の製品。
【請求項１１７】
圧縮のための前記コンピュータ読み出し可能プログラム手段は軽量の損失が多いビデオ・エンコード・アルゴリズムのための圧縮率を選択する請求項１１５に記載の製品。
【請求項１１８】
前記サーバーに対して前記クライアントにインストールされたクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段をさらに備える請求項１０８に記載の製品。
【請求項１１９】
前記サーバーに対して少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は前記クライアントにインストールされた少なくとも１つのコーデックを列挙する請求項１１８に記載の製品。
【請求項１２０】
前記サーバーに対して少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は前記クライアントにインストールされたクライアント・エージェント内に埋め込まれた少なくとも１つのコーデックを列挙する請求項１１８に記載の製品。
【請求項１２１】
前記サーバーに対して少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は大域的な一意的識別子を使用する請求項１１８に記載の製品。
【請求項１２２】
前記サーバーに対して少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段は４つの文字コードを使用する請求項１１８に記載の製品。
【請求項１２３】
クライアントにてメディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
サーバーに対して、前記クライアントにインストールされたクライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能プログラム手段と、
メディア・ストリームの少なくとも一部を表す圧縮データ・セットを前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記クライアントにて前記圧縮データ・セットを復元して、復元されたデータ・セットを作成するためのコンピュータ読み出し可能プログラム手段と、
前記復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とを備える製品。
【請求項１２４】
前記メディア・ストリームに関連するタイミング情報を受信するためのコンピュータ読み出し可能プログラム手段と、
前記タイミング情報を利用して前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１２３に記載の製品。
【請求項１２５】
前記メディア・ストリームはビデオ・ストリームであり、前記製品はさらに、前記ビデオ・ストリームの画像をディスプレー上に配置するための情報を前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記復元データ・セットおよび前記配置のための情報を利用して、前記クライアントにて前記メディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１２３に記載の製品。
【請求項１２６】
非メディア・グラフィック情報を前記クライアントにて受信するためのコンピュータ読み出し可能プログラム手段と、
前記復元データ・セットおよび前記非メディア・グラフィック情報を利用して、前記メディア・プレゼンテーションを前記クライアントにて作成するためのコンピュータ読み出し可能プログラム手段とをさらに備える請求項１２３に記載の製品。
【請求項１２７】
通知のための前記コンピュータ読み出し可能プログラム手段は前記クライアントにインストールされた少なくとも１つのコーデックを列挙する請求項１２３に記載の製品。
【請求項１２８】
通知のための前記コンピュータ読み出し可能プログラム手段は前記クライアントにインストールされたクライアント・エージェント内に埋め込まれた少なくとも１つのコーデックを列挙する請求項１２３に記載の製品。
【請求項１２９】
通知のための前記コンピュータ読み出し可能プログラム手段は大域的な一意的識別子を使用する請求項１２３に記載の製品。
【請求項１３０】
通知のための前記コンピュータ読み出し可能プログラム手段は４つの文字コードを使用する請求項１２３に記載の製品。
【請求項１３１】
クライアントにてメディア・プレゼンテーションを作成するシステムであって、
ネットワークと、
前記ネットワークと通信するサーバーであって、
前記アプリケーション・プログラムによって生成された出力内のメディア・ストリームを識別するように構成されているアプリケーション・プログラムと、
前記メディア・ストリームの少なくとも一部を表す圧縮データ・セットを前記アプリケーション・プログラムによって処理される前に取得し、前記圧縮データ・セットを前記クライアントに送信するように構成されている少なくとも１つの出力フィルタ・モジュールとを備える前記サーバーと、
前記ネットワークと通信するクライアントであって、
前記クライアント・エージェントによってサポートされる少なくとも１つのメディア・フォーマットを通知し、前記圧縮データ・データ・セットを受信し、前記クライアントにて前記圧縮データ・セットを復元して、復元されたデータ・セットを作成し、前記復元データ・セットを利用して前記クライアントにて前記メディア・プレゼンテーションを作成するように構成されているクライアント・エージェントを備える前記クライアントとを備えるシステム。
【請求項１３２】
クライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
メディア・ストリームのオリジナルの圧縮データ・セットをインターセプトするためのコンピュータ読み出し可能プログラム手段と、
ＩＣＡまたはＲＤＰのようなシン・クライアント・プロトコルを利用して前記オリジナルの圧縮データ・セットを前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段とを備える製品。
【請求項１３３】
クライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品であって、
メディア・ストリームのオリジナルの復元データ・セットをインターセプトするためのコンピュータ読み出し可能プログラム手段と、
前記インターセプトされた復元データ・セットを圧縮するためのコンピュータ読み出し可能プログラム手段と、
ＩＣＡまたはＲＤＰのようなシン・クライアント・プロトコルを利用して前記圧縮データ・セットを前記クライアントに送信するためのコンピュータ読み出し可能プログラム手段とを備える製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は２００２年３月１４日に出願された同時係属中の米国特許出願第１０／０９８，１５７号の優先権を主張するものであり、この出願を参照によって本明細書に組み込む。
【０００２】
発明の分野
本発明は全体として分散処理に関し、特にクライアントにおけるグラフィックおよび／またはメディア・コンポーネントを有するディスプレーの作成に関する。
【背景技術】
【０００３】
先行技術の説明
処理能力に制約があるクライアント上に、サーバー上で実行されるアプリケーションによって作成される出力をディスプレーするためにシン・クライアント・プロトコルが利用される。シン・クライアント・プロトコルの２つの例はＩＣＡ、すなわちフロリダ州フォートローダーデールのシトリックス・システム社の独立コンピュ−ティング・アーキテクチャ、およびＲＤＰ、すなわちワシントン州レッドモンドのマイクロソフト社のリモート・デスクトップ・プロトコルである。クライアントは場合によってはリモート・ターミナル・セッションとも呼ばれる。１つのシン・クライアント・プロトコルはサーバー・オペレーティング・システム（“ＯＳ”）へのアプリケーション・プログラムによるコマンドをインターセプトしてディスプレー・スクリーンへと引き込む。インターセプトされたコマンドは例えば１つ以上の層パケットを利用してリモート・セッションへと送信される。リモート・セッション（例えばシン・クライアント）がコマンドを受信すると、リモート・セッションは受信したコマンドをリモート・セッションＯＳに送る。このようにして、アプリケーション・プログラムはシン・クライアント上で実行されているように見える。
【０００４】
典型的には、アプリケーション・プログラムが画像をディスプレー・スクリーンに引き込むと、画像はビットマップとして表される。画像のビットマップ・フォーマットは一般に極めて大きいデータ・セットである。したがって、シン・クライアント・プロトコルはネットワークを経て、ビットマップ・プレゼンテーションをいかにしてディスプレーするかに関する適用可能なコマンドと共に、大量のデータである画像のビットマップ・プレゼンテーションを送信しなければならない。帯域幅が狭いネットワークの場合、それによって完全な画像がクライアント上で受信され、ディスプレーされるまでに長い時間遅延が生ずる。それによって、クライアントのユーザーには不便と不都合が生ずる。さらに、例えばワイヤレス・ネットワークの場合のように、ユーザーが利用している帯域幅に対して直接支払いをしている場合は、これらの大きいビットマップ・フォーマットの送信によって各通信に関して高いコストが生ずる。
【０００５】
アプリケーション・プログラムがメディア・プレゼンテーションをレンダリングする場合にも同じ問題が存在する。典型的には、ビデオ・ファイルは一連のビットマップとしてレンダリングされ、オーデイオ情報はパルスコード変調を利用してレンダリングされる。したがって、シン・クライアント・プロトコルはネットワークを経て、ビデオ・ファイルを表す一連のビットマップおよび／またはオーデイオ情報を表すパルスコード変調信号を送信する。この送信は効率が悪く、過度の帯域幅とかなりのＣＰＵを使用する。その上、充分な帯域幅を利用できる場合でも、クライアントには応答がないグラフィック・ユーザー・インターフェースが生ずることがある。例えばビデオ再生は低画質であることが多く、“ギクシャクして”（ｊｅｒｋｙ）”見え、オーデイオ・プレゼンテーションと良好に同期しないことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、画像およびメディア・プレゼンテーションをリモート・ターミナル・セッションでレンダリングする改良されたアプローチが必要とされている。
【課題を解決するための手段】
【０００７】
発明の概要
本発明は１つの利点によって、送信前にビットマップ・フォーマットの代わりに利用可能な圧縮フォーマットを使用することによって、元々は大きいビットマップ・フォーマットで表されていた画像およびその他の非テキスト要素の送信時間およびコストを低減するものである。典型的には、ビットマップ・フォーマットの代わりに圧縮フォーマットを使用することによって必要な帯域幅が大幅に縮小する。クライアントは利用可能なライブラリを利用して受信データを復元する。クライアントは次に、例えば他の識別データと共に修正されたシン・クライアント・プロトコル・コマンドを利用することによって、オリジナルのビットマップ表現の代わりに復元された画像を利用する。
【０００８】
本発明の別の利点によって、メディア・ストリームの少なくとも一部を表す圧縮データ・セットは、復元される前に第一コンピュータ・デバイス上でインターセプトされる。あるいは、圧縮データ・セットが第一コンピュータ・デバイス上で復元される場合は、結果として生じた復元されたデータ・セットは第一コンピュータ・デバイスで再圧縮される。帯域幅に制約があるネットワークを経て、復元されたデータ・セットではなく圧縮データ・セットを送信することによって、データ・セットを送信する時間とコストが結果的に低減される。
【０００９】
１つの態様では、本発明はクライアントにおいてグラフィック・ディスプレーを作成する方法に関するものである。この方法はサーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信し、アプリケーション出力内のビットマップ表現を識別し、ビットマップ表現のチェック値を決定する工程を含んでいる。この方法はさらに、少なくとも部分的にチェック値を利用してビットマップ表現の圧縮データ・フォーマットを検索し、ビットマップ表現の代わりに圧縮データ・フォーマットをクライアントに送信する工程を含んでいる。
【００１０】
別の態様では、本発明はクライアントにおいてグラフィック・ディスプレー作成する方法に関するものである。この方法は、サーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信しアプリケーション出力内の非テキスト要素を識別する工程を含んでいる。この方法はさらに、非テキスト要素に関連する圧縮データ・フォーマットを検索し、圧縮データ・フォーマットを非テキスト要素の代わりにクライアントに送信する工程を含んでいる。
【００１１】
本発明のこの態様の一実施形態では、この方法はアプリケーション出力内のテキスト要素を識別し、クライアントにテキスト要素を送信する工程を含んでいる。別の実施形態では、この方法はクライアントにて圧縮データ・フォーマット、およびオプションとしてテキスト要素を受信し、圧縮データ・フォーマット、およびオプションとしてテキスト要素を利用してクライアントにてディスプレーを作成する工程を含んでいる。別の実施形態では、本発明による方法は少なくとも１つのプレゼンテーション層プロトコル・パケットを利用して圧縮データ・フォーマットを送信する工程を含んでいる。さらに別の実施形態では、この方法はファイルをネーティブ・フォーマットで送信するコマンドを利用して少なくとも１つのプレゼンテーション層プロトコル・パケットを送信する工程を含んでいる。
【００１２】
別の実施形態では、この方法は少なくとも１つのプレゼンテーション層プロトコル・パケットをリモート・アクセス・プロトコル、シン・クライアント・プロトコル、および／またはプレゼンテーション・プロトコルに準拠させる工程を含んでいる。さらに別の実施形態では、非テキスト要素はビットマップ表現であり、この方法はビットマップ表現を圧縮データ・フォーマットと置き換える工程を含んでいる。別の実施形態では、この方法は圧縮データ・フォーマットを利用して非テキスト要素をレンダリングするクライアントの能力を判定する工程を含んでいる。この方法はさらに、クライアントが圧縮データ・フォーマットを利用して非テキスト要素をレンダリングできないことが判定されると、圧縮データ・フォーマットを利用して非テキスト要素をレンダリングする能力を有する画像レンダリング・ライブラリを送信する工程を含んでいる。
【００１３】
別の実施形態では、この方法はアプリケーション出力をインターセプトし、インターセプトされた出力を非テキスト要素のビットマップ表現に関して検査する工程を含んでいる。さらに別の実施形態では、この方法は非テキスト要素のビットマップ表現に関する第一のチェック値を計算し、第一チェック値と同じチェック値を有する圧縮データ・フォーマットを画像ストアから検索する工程を含んでいる。
【００１４】
別の態様では、本発明はクライアントにおいてグラフィック・ディスプレーを作成するシステムに関するものである。このシステムは出力フィルタ・モジュールおよびサーバー・エージェントを含んでいる。出力フィルタ・モジュールはアプリケーション・プログラムによって作成された出力をインターセプトし、出力の非テキスト要素を識別し、非テキスト要素に関連する圧縮データ・フォーマットを検索するように構成されている。サーバー・エージェントは非テキスト要素の代わりに圧縮データ・フォーマットをクライアントに送信するように構成されている。
【００１５】
本発明のこの態様の一実施形態では、システムはサーバー・エージェントおよび出力フィルタ・モジュールを含むサーバー・ノードを含んでいる。別の実施形態では、システムはクライアント・ノードを含んでいる。クライアント・ノードはクライアント・エージェントおよびディスプレーを含んでいる。クライアント・エージェントはアプリケーション圧縮データ・フォーマットを受信し、受信した圧縮データ・フォーマットを利用して非テキスト要素のディスプレーを作成するように構成されている。別の態様では、システムはさらにネットワークを備えている。
【００１６】
本発明の別の態様では、本発明はクライアントにおいてグラフィック・ディスプレーを作成するためにコンピュータ・プログラム手段が実装された製造製品に関するものである。この製本は上記のいずれかの方法を実行するためのコンピュータ読み出し可能プログラム手段を含んでいる。
【００１７】
さらに別の態様では、本発明はクライアントにおいてメディア・プレゼンテーションを作成する方法に関するものである。この方法は、サーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信し、アプリケーション出力内のメディア・ストリームを識別し、メディア・ストリームの少なくとも一部を現すオリジナルの圧縮データ・セットをアプリケーション出力によって処理される前にインターセプトし、オリジナルの圧縮データ・セットをクライアントに送信する工程を含んでいる。
【００１８】
別の態様では、本発明はクライアントにおいてメディア・プレゼンテーションを作成するさらに別の方法に関するものである。この方法は、サーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信し、アプリケーション出力内のメディア・ストリームを識別し、メディア・ストリームの少なくとも一部を現す第一の復元データ・セットをインターセプトし、第一の復元データ・セットの代わりに圧縮データ・セットをクライアントに送信する工程を含んでいる。
【００１９】
さらに別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するさらに別の方法に関するものである。この方法はサーバーに対して、クライアント上に実装されているクライアント・エージェントによってサポートされている少なくとも１つのメディア・フォーマットをサーバーに通知し、メディア・ストリームの圧縮されたデータ・セットをクライアントにて受信し、圧縮されたデータ・セットをクライアントにて復元して、復元されたデータ・セットを作成し、復元されたデータ・セットを利用してクライアントにてメディア・プレゼンテーションを作成する工程を含んでいる。
【００２０】
さらに別の側面では、本発明はクライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品に関するものである。この製品はサーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信するためのコンピュータ読み出し可能なプログラム手段と、アプリケーション出力内のメディア・ストリームを識別するためのコンピュータ読み出し可能なプログラム手段と、メディア・ストリームの少なくとも一部を現すオリジナルの圧縮データ・セットをアプリケーション・プログラムによって処理される前にインターセプトするためのコンピュータ読み出し可能なプログラム手段と、オリジナルの圧縮データ・セットをクライアントに送信するためのコンピュータ読み出し可能なプログラム手段とを含んでいる。
【００２１】
さらに別の側面では、本発明はクライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する別の製造製品に関するものである。この製品はサーバー上で実行されるアプリケーション・プログラムからクライアントに出力を送信するためのコンピュータ読み出し可能なプログラム手段と、アプリケーション出力内のメディア・ストリームを識別するためのコンピュータ読み出し可能なプログラム手段と、メディア・ストリームの少なくとも一部を現す第一の復元データ・セットをインターセプトするためのコンピュータ読み出し可能なプログラム手段と、インターセプトされた第一の復元データ・セットを圧縮するためのコンピュータ読み出し可能なプログラム手段と、第一の復元データ・セットの代わりに圧縮データ・セットをクライアントに送信するためのコンピュータ読み出し可能なプログラム手段とを含んでいる。
【００２２】
さらに別の側面では、本発明はクライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施するさらに別の製造製品に関するものである。この製品はサーバーに対して、クライアント上に実装されているクライアント・エージェントによってサポートされている少なくとも１つのメディア・フォーマットを通知するためのコンピュータ読み出し可能なプログラム手段と、メディア・ストリームの圧縮データ・セットをクライアントにて受信するためのコンピュータ読み出し可能なプログラム手段と、圧縮されたデータ・セットをクライアントにて復元して、復元されたデータ・セットを作成するためのコンピュータ読み出し可能なプログラム手段と、復元されたデータ・セットを利用してクライアントにてメディア・プレゼンテーションを作成するためのコンピュータ読み出し可能なプログラム手段とを含んでいる。
【００２３】
本発明のこれらの最後の６つの態様の様々な実施形態で、この方法はさらに、メディア・ストリームに関連するタイミング情報を収集する工程と、タイミング情報をクライアントに送信する工程と、圧縮データ・セットおよびオプションとしてタイミング情報をクライアントにて受信する工程と、復元されたデータ・セットおよびオプションとしてタイミング情報を利用して、メディア・プレゼンテーションをクライアントにて作成する工程とを含み、また製造製品はさらにこれらの工程を実行するためのコンピュータ読み出し可能なプログラム手段を含んでいる。本発明のこれらの最後の６つの態様の別の実施形態で、この方法はさらに、アプリケーション出力からの非メディア・グラフィック情報をクライアントに送信する工程と、非メディア・グラフィック情報をクライアントにて受信する工程と、復元されたデータ・セットおよび非メディア・グラフィック情報を利用して、メディア・プレゼンテーションをクライアントにて作成する工程とを含み、また製造製品はさらにこれらの工程を実行するためのコンピュータ読み出し可能なプログラム手段を含んでいる。
【００２４】
さらに別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するためのシステムに関するものである。このシステムはアプリケーション・プログラムと出力フィルタ・モジュールとを含んでいる。アプリケーション・プログラムはアプリケーション・プログラムによって作成される出力内のメディア・ストリームを識別するように構成されている。出力フィルタ・モジュールはアプリケーション・プログラムによって処理される前に、メディア・ストリームの少なくとも一部を表すオリジナルの圧縮されたデータ・セットをインターセプトし、オリジナルの圧縮データ・セットをクライアントに送信するように構成されている。
【００２５】
別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するための別のシステムに関するものである。アプリケーション・プログラムはアプリケーション・プログラムによって作成される出力内のメディア・ストリームを識別するように構成されている。出力フィルタ・モジュールはメディア・ストリームの少なくとも一部を表す第一の復元されたデータ・セットをインターセプトし、インターセプトされた第一の復元されたデータ・セットを圧縮し、第一の復元されたデータ・セットの代わりに圧縮データ・セットをクライアントに送信するように構成されている。
【００２６】
別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するための別のシステムに関するものである。このシステムはサーバーおよびサーバーと通信するクライアントを含んでいる。クライアントはクライアント・エージェントによってサポートされている少なくとも１つのメディア・フォーマットをサーバーに通知し、メディア・ストリームの圧縮されたデータ・セットを受信し、圧縮されたデータ・セットをクライアントにて復元して、復元されたデータ・セットを作成し、復元されたデータ・セットを利用してクライアントにてメディア・プレゼンテーションを作成するように構成されたクライアント・エージェントを含んでいる。
【００２７】
本発明のこれらの最後の３つの態様の様々な実施形態では、このシステムの出力フィルタ・モジュールはさらに、メディア・ストリームに関連するタイミング情報を収集し、タイミング情報をクライアントに送信するように構成されている。本発明のこれらの最後の３つの態様の別の様々な実施形態では、このシステムはさらに、圧縮データ・セットおよびオプションとしてタイミング情報をクライアントにて受信し、圧縮されたデータ・セットを復元して、復元されたデータ・セットを作成し、復元されたデータ・セット、およびオプションとしてタイミング情報を利用してメディア・プレゼンテーションを作成するように構成されたクライアント・エージェントを含んでいる。最後の３つの態様のさらに別の実施形態では、クライアント・エージェントはさらに非メディア・グラフィック情報を受信し、復元されたデータ・セットおよび非メディア・グラフィック情報を利用して、メディア・プレゼンテーションをクライアントにて作成するように構成されている。
【００２８】
別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するための別のシステムに関するものである。このシステムはネットワーク、ネットワークと通信するサーバー、およびネットワークと通信するクライアントを含んでいる。サーバーはアプリケーション・プログラムと少なくとも１つの出力フィルタ・モジュールとを含んでいる。アプリケーション・プログラムはアプリケーション・プログラムによって作成される出力内のメディア・ストリームを識別するように構成されている。出力フィルタ・モジュールはアプリケーション・プログラムによって処理される前に、メディア・ストリームの少なくとも一部を表す圧縮データ・セットをインターセプトし、圧縮データ・セットをクライアントに送信するように構成されている。クライアントはクライアント・エージェントを含んでいる。クライアント・エージェントはサーバーに対して、クライアント・エージェントによってサポートされている少なくとも１つのメディア・フォーマットをサーバーに通知し、メディア・ストリームの圧縮データ・セットをクライアントにて受信し、圧縮データ・セットを受信し、圧縮されたデータ・セットをクライアントにて復元して、復元されたデータ・セットを作成し、復元されたデータ・セットを利用してクライアントにてメディア・プレゼンテーションを作成するように構成されている。
【００２９】
別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するコンピュータ読み出し可能プログラム手段を実施する製造製品に関するものである。この製品はメディア・ストリームのオリジナルの圧縮データ・セットをインターセプトするためのコンピュータ読み出し可能なプログラム手段と、ＩＣＡまたはＲＤＰのようなシン・クライアント・プロトコルを利用してオリジナルの圧縮されたデータ・セットをクライアントに通信するためのコンピュータ読み出し可能なプログラム手段とを含んでいる。
【００３０】
別の態様では、本発明はクライアントにてメディア・プレゼンテーションを作成するためのコンピュータ読み出し可能プログラム手段を実施する別の製造製品に関するものである。この製品はメディア・ストリームの復元されたデータ・セットをインターセプトするためのコンピュータ読み出し可能なプログラム手段と、ＩＣＡまたはＲＤＰのようなシン・クライアント・プロトコルを利用して圧縮されたデータ・セットをクライアントに通信するためのコンピュータ読み出し可能なプログラム手段とを含んでいる。
【００３１】
詳細な説明
１つの態様では、本発明はグラフィック・ディスプレーを作成するための方法、システムおよび製造製品に関するものである。画像の非テキスト要素またはビットマップ表現に関連する圧縮データ・フォーマットが、非テキスト要素またはビットマップ表現の代わりにネットワークを経てサーバーからクライアントに、後にディスプレーされるために送信される。
【００３２】
図１はネットワーク１１５を経て第二コンピュータ・システム（“サーバー・ノード”）１１０と通信する第一コンピュータ・システム（“クライアント・ノード”）１０５を含むリモート・ターミナル・セッション用のディスプレーを作成するためのシステム１００の概要を示している。例えば、ネットワーク１１５は企業内イントラネットのようなローカルエリアネットワーク（ＬＡＮ）、またはインターネット、またはワールドワイドウエブのようなワイドエリアネットワーク（ＷＡＮ）であってよい。クライアント・ノード１０５のユーザーは標準の電話回線、ＬＡＮ、またはＷＡＮリンク（例えばＴ１、Ｔ３、５６ｋｂ、Ｘ２５）、ブロードバンド接続（ＩＳＤＮ、フレーム・リレー、ＡＴＭ）、およびワイヤレス接続を含む多様な接続を介してネットワーク１１５に接続可能である。クライアント・ノード１０５はネットワーク１１５との通信を確立するためにサーバー・トランシーバ１３５を含んでいる。接続は多様な通信プロトコル（例えばＩＣＡ、ＲＤＰ、ＨＴＴＰ、ＴＣＰ／ＩＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、イーサーネット、ＲＳ２３２、および直接非同期接続）を利用して確立することができる。
【００３３】
サーバー・ノード１１０はクライアント・ノード１０５に要求されたサービスを提供することができるいずれかのコンピュータ・デバイスであってよい。具体的には、このサービスはサーバー１１０上で実行されるアプリケーション・プログラム１４０によって作成される出力を表すコマンドおよびデータを作成し、クライアント・ノード１０５に送信することを含んでいる。サーバー・ノード１１０はサーバー・トランシーバ１３５、実行アプリケーション・プログラム１４０、サーバー・エージェント１５０、出力フィルタ・モジュール１５５、および画像ストア１６０を含んでいる。サーバー・エージェント１５０はアプリケーション・プログラム１４０のリモート・ディスプレーおよび操作性をサポートするためにクライアント・エージェント１７５およびその他の構成要素とインターフェースするモジュールを含んでいる。サーバー・エージェント・モジュール１５０および本明細書を通して記載するすべてのモジュールはソフトウエア・プログラムおよび／またはハードウエア・デバイス（例えばＡＳＩＣまたはＦＰＧＡ）として実装される。
【００３４】
明解にするため、これらの構成要素は全てサーバー・ノード１１０上に示されている。サーバー・ノード１１０は単一サーバーを表すことができ、または各々がネットワーク１１５またはその他のネットワーク（図示せず）と通信する幾つかのサーバーを表すことができる。多重サーバーの実施形態では、構成要素の機能を利用可能なサーバーを経て分散可能である。例えば、多重サーバーを有する一実施形態では、トランシーバ１３５、アプリケーション・プログラム１４０、サーバー・エージェント１５０、出力フィルタ・モジュール１５５はアプリケーション・サーバー上にあり、画像ストアはＲＡＤシステム内のディスクのような記憶デバイス上にある。
【００３５】
クライアント・ノード１０５はサーバー・ノード１１０上で実行されるアプリケーション・プログラム１４０にユーザー・インターフェースを供給するために利用されるいずれかのコンピュータ・デバイスであってよい（例えばパーソナルコンピュータ、セット・トップ・ボックス、携帯電話、携帯機器、携帯情報端末、キオスクなど）。クライアント・ノード１０５はクライアント・トランシーバ１３０、ディスプレー１４５、クライアント・エージェント１７５、およびグラフィック・ライブラリ１８０（画像レンダリング・ライブラリとも呼ばれる）を含んでいる。クライアント・エージェント１７５はコマンドおよびデータをサーバー・ノード１１０およびクライアント・ノード１０５のユーザー（図示せず）から受信するソフトウエア・プログラムおよび／またはハードウエア・デバイス（例えばＡＳＩＣまたはＦＰＧＡ）として実装されるモジュールを含んでいる。クライアント・エージェント１７５はクライアント・ノード１０５の他の構成要素とインタラクトする場合に（例えばオペレーティングシステムに対してデータをディスプレー１４５に出力するように支持する場合に）、受信された情報を利用する。クライアント・エージェント１７５はさらに、サーバーが発したコマンドまたはクライアント・ノード１０５におけるユーザー・アクションに応答して要求およびデータをサーバー・ノード１１０に送信する。
【００３６】
サーバー・ノード１１０はクライアント・ノード１０５によってアクセス可能な１つ以上のアプリケーション・プログラム１４０をホストとして処理する。このようなアプリケーションの例には、双方ともワシントン州レッドモンドのマイクロソフト社製のＭＩＣＲＯＳＯＦＴ  Ｗｏｒｄのようなワード処理プログラム、およびＭＩＣＲＯＳＯＦＴ  Ｅｘｃｅｌのような表計算プログラムが含まれる。他の例には財務報告プログラム、消費者登録プログラム、テクニカル・サポート情報を提供するプログラム、消費者データベース・アプリケーション、およびアプリケーション設定マネージャが含まれる。アプリケーション・プログラムの別の例にはワシントン州レッドモンドのマイクロソフト社製のＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒがあり、このプログラムは以下の記述でアプリケーション・プログラム１４０の例として用いられる。他のアプリケーション・プログラムを利用してもよいことが理解されよう。
【００３７】
例えばＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒのようなアプリケーション・プログラム１４０の実行中、サーバー・ノード１１０は伝送機構を経てクライアント・ノード１０５と通信する。一実施形態では、伝送機構はネットワーク１１５を経て多重の仮想チャネル１８５を供給するので、サーバー・エージェント１５０はクライアント・エージェント１７５と通信することができる。仮想チャネル１８５の１つはグラフィック・スクリーン・データをサーバー・ノード１１０からクライアント・ノード１０５に送信するためのプロトコルを供給する。サーバー１１０は、一実施形態ではサーバー・エージェント１５０の一部として、アプリケーション・プログラム１４０によって作成され、サーバーのオペレーティング・システムを目標にしたグラフィック・ディスプレー・インターフェースをインターセプトするプロトコル・ドライバを実行する。プロトコル・ドライバは伝送機構を経て送信するのに適したプロトコル・パケットへとコマンドを翻訳する。
【００３８】
この例ではサーバー１１０上で実行されるＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒであるアプリケーション・プログラム１４０はウエブ・ページを検索する。上記で説明したように、アプリケーション・プログラム１４０はあたかもサーバー・ノードで出力をディスプレーしようとしていたかのように、サーバーのオペレーティングシステムへのグラフィック・ディスプレー・コマンドを作成する。サーバー・エージェント１５０はこれらのコマンドをインターセプトし、これらをクライアント・エージェント１７５に送信する。クライアント・エージェント１７５は、クライアント・ノード１０５のディスプレー１４５用の出力を作成するために、同じコマンドまたは同様のコマンドをクライアントのオペレーティングシステムに発する。
【００３９】
一実施形態では、ウエブ・ページはそこに組み込まれたテキスト要素（例えばタイトル、テキスト、およびＡＳＣＩＩ文字）および非テキスト要素（例えば画像、写真、アイコン、およびスプラッシュ・スクリーン）の双方を有している。非テキスト要素は場合によってはウエブ・サーバー（図示せず）から非テキスト要素のネーティブ・フォーマットとも呼ばれる圧縮データ・フォーマット（例えばファイルまたはデータ・ストリーム）でＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒのアプリケーション・プログラム１４０に送信される。圧縮フォーマットの例にはＪＰＥＧ、ＧＩＦ、およびＰＮＧがある。圧縮データ・フォーマットで表される非テキスト要素は例えばサイズが２０キロバイトのものでよい。ビットマップ表現に復元された同じ非テキスト要素は例えばサイズが３００キロバイトのものでよい。
【００４０】
アプリケーション・プログラム１４０はウエブ・ページのディスプレーを作成する場合、例えば非テキスト要素もＪＰＥＧデータ・フォーマットを検索し、ＪＰＥＧデータ・フォーマットをディスプレー用のビットマップに復元する。出力フィルタ・モジュール１５５は、ビットマップ表現が圧縮されたフォーマットからのものであることを判定し、後に詳述するように、画像ストア１６０から対応して圧縮された非テキスト要素のフォーマットを取得する。一実施形態では、画像ストア１６０は持久記憶装置である。別の実施形態では、画像ストア１６０は一時記憶装置、キャッシュ、揮発性メモリおよび／または一時記憶装置と持久記憶装置との組み合わせである。
【００４１】
サーバー・エージェント１５０は非テキスト要素のビットマップ表現を、出力フィルタ・モジュール１５５が画像ストア１６０から検索した圧縮非テキスト要素と置き換える。サーバー・エージェント１５０はビットマップ表現に関連するグラフィック・ディスプレー・インターフェース・コマンドと共に、非テキスト要素を圧縮フォーマットでクライアント・ノード１０５に送信する。一実施形態では、サーバー・エージェント１５０は、関連するコマンドを非テキスト要素のビットマップ表現に適用可能である場合でも、ビットマップ表現内にない非テキスト要素の送信を識別する一意的なプロトコル・コマンドを利用する。別の実施形態では別の識別技術を利用できる。別の実施形態では、別の識別技術を利用することができる。例えば、プロトコル・コマンドは修正コメントまたはコマンド・スイッチを有することができる。さらにコマンドはコンテクストの変更、または多重コマンドの組み合わせを利用することができる。
【００４２】
クライアント・エージェント１７５は非テキスト要素のビットマップ表現に関連するグラフィック・ディスプレー・インターフェース・コマンドと共に、圧縮フォーマットでの非テキスト要素ファイルの送信を受信する。クライアント・エージェント１７５は非テキスト要素が圧縮データ・フォーマットであり、ビットマップ表現ではないことを判定する。一実施形態では、圧縮フォーマットの非テキスト要素は一意的なプロトコル・コマンドを利用して送信されるので、クライアント・エージェント１７５はこのような判定をくだす。別の実施形態では、関連するグラフィック・ディスプレー・インターフェースと共に含まれている非テキスト要素のサイズおよび／または非テキスト要素に関するその他の特性は、クライアント・エージェント１７５が判定を下すのに充分なものである。
【００４３】
クライアント・エージェント１７５は、クライアント・ノード１０５が非テキスト要素の圧縮フォーマットを復元するために必要なライブラリ１８０を含んでいるか否かを判定する。クライアント・ノード１０５が、復元アルゴリズムを実施するためにインストールされた適宜のグラフィック・ライブラリ（単数または複数）１８０を有している場合は、クライアント・エージェント１７５は非テキスト要素の圧縮フォーマットをビットマップ表現に復元するためにライブラリ１８０を利用する。クライアント・エージェント１７５は受信した関連するグラフィック・ディスプレー・インターフェース・コマンドをビットマップ表現で実行して、クライアント・ディスプレー１４５上にアプリケーション・プログラム１４０の出力の非テキスト要素を作成する。
【００４４】
一実施形態では、クライアント・エージェント１７５は非テキスト要素を圧縮されたフォーマットからビットマップ表現に復元する全ての復元アルゴリズムを含んではいない。クライアント・ノード１０５が復元アルゴリズムを実施するためにインストールされた適宜のグラフィック・ライブラリ（単数または複数）１８０を有していない場合は、クライアント・エージェント１７５は必要なグラフィック・ライブラリをサーバー・ノード１１０から要求する。別の実施形態では、クライアント・エージェント１７５はサーバー・ノード１１０空いずれかの非テキスト要素を検索する前に、サーバー・ノード１１０から欠如しているライブラリを要求する。クライアント・エージェントは、サーバー・ノード１１０から非テキスト要素を受信する前に、最も広範に利用されているグラフィック・ライブラリ１８０の所定のセットがクライアント・ノード１０５にインストールされているかを判定する。最も広範に利用されているグラフィック・ライブラリ１８０がクライアント・ノード１０５にインストールされていない場合は、クライアント・エージェント１７５はサーバー・ノードからいずれかの非テキスト要素を受信する前に、サーバー・ノード１１０から欠落しているライブラリを要求する。
【００４５】
さらに別の実施形態では、クライアント・エージェント１７５はクライアント・ノード１０５がどのグラフィック・ライブラリを含んでいるかを判定し、そのライブラリ情報をサーバー・エージェント１５０に送信する。この実施形態では、サーバー・エージェント１５０が出力フィルタ・モジュール１５５からビットマップ表現の圧縮データ・フォーマットを受信すると、サーバー・エージェント１５０は送信されたライブラリ情報を利用して、クライアント・ノード１０５が圧縮データ・フォーマットをレンダリングできるか否かを判定する。クライアント・ノード１０５が利用可能なライブラリを有していることをサーバー・エージェント１５０が判定すると、サーバー・エージェント１５０は非テキスト要素のビットマップ表現の代わりに圧縮データ・フォーマットを使用する。クライアント・ノード１０５が利用可能なライブラリを有していないことをサーバー・エージェント１５０が判定すると、サーバー・エージェント１５０は非テキスト要素のビットマップ表現の代わりに圧縮データ・フォーマットを使用するのではなく、クライアント１０５にビットマップ表現を送信する。
【００４６】
サーバー・エージェント１５０が非テキスト要素のビットマップ表現を圧縮したフォーマットの非テキスト要素と置き換えるために、出力フィルタ・モジュール１５５はビットマップ表現が画像ストア１６０に含まれている圧縮されたフォーマットからのものであることを判定する。この判定をくだすため、出力フィルタ・モジュール１５５はビットマップ表現用の１つ以上のチェック値を計算する。例えば、出力フィルタ・モジュール１５５はビットマップ表現全体向けに単一のチェック値を計算することができ、および／または出力フィルタ・モジュール１５５はビットマップ表現全体の各象限ごとに１つの４つのチェック値を計算することができる。別の実施形態では、出力フィルタ・モジュール１５５はビットマップ表現の各Ｎのラインごとに１つのＮのチェック値を計算することができる。チェック値は異なるデータ配列ごとに実質的に一意的な値を作成するアルゴリズムの結果である。チェック値は例えば、チェックタグ、巡回冗長コード（“ＣＲＣ”）、チェックサム、またはハッシュ機能である。チェック値はビットマップ表現に基づくものであって、圧縮データ・フォーマットで配列されたデータに基づくものではない。しかし、圧縮データ・フォーマットが画像ストア１６０に記憶される場合は、それは圧縮されたデータが復元された場合のビットマップ表現の１つ以上のチェック値に対応するチェック値の属性と共に記憶される。
【００４７】
一実施形態では、チェック値は固定された識別子および一意的な識別子を含むチェックタグである。固定識別子および一意的識別子は互いに組み合わされ画像内に隠される。固定識別子はチェックタグをそれとして識別するために使用される。一意的識別子は特定の画像を識別するために使用される。固定識別子は例えば、統計的に画像内に見出される確率が少ない大域的な一意的識別子である。例えば、固定識別子はデバッグ中に容易に認識可能な、またゼロおよび１ビットの平衡された数を有するバイト・シーケンスである。一意的識別子はキャッシュ内の各画像ごとに一意的に割り当てられる逐次的識別子である。逐次的な一意的識別子は別の値でマスキングされたＸＯＲであるので、小さい値（最も確率が高い値）を有する画像識別子はゼロおよび１ビットの平衡された数を有する確率がさらに高くなる。
【００４８】
チェックタグは、ＲＧＢのコンポーネントが画像の一部であるか、カラー・パレットの一部であるかに関わりなく、ＲＧＢカラー・コンポーネントへとエンコードされる。より具体的には、チェックタグは１６０ビットのストリーム（すなわち、各々が最下位ビットであるビット０で始まり、最上位ビットであるビット７で終わる２０の別個のバイト）として取り扱われる。各バイトの最下位ビットはチェックタグの次のビットによって上書きされる。各バイトの他の７ビットは不変のままに留まる。
【００４９】
チェックタグはエンコード手順を単に反転させることによって簡単にデコードされる。チェックタグがデコードされた後、固定識別子および一意的識別子がチェックタグから検索される。検索された固定識別子はチェックタグをそれとして識別するために、以前に記憶された固定識別子に対して確認される。一致が認められると、一意的識別子はその後、画像に関連するビットマップ・データのような識別された画像に関連する情報を検索するために使用される。
【００５０】
出力フィルタ・モジュール１５５は、出力フィルタ・モジュール１５５がビットマップ表現向けに計算した１つ以上のチェック値と同じチェック値属性を有する圧縮データ・フォーマットの非テキスト要素を画像ストア１６０から探索する。出力フィルタ・モジュール１５５は１つ以上のチェック値と同じチェック値属性を有する圧縮フォーマットの非テキスト要素を検索し圧縮フォーマットの非テキスト要素をビットマップ表現の代わりにクライアント・エージェント１７５に送信するためにサーバー・エージェント１５０に送出する。
【００５１】
サーバー・ノード１１０は、アプリケーション・プログラム１４０が圧縮フォーマット・ファイルからビットマップ表現を作成するためにグラフィック・ライブラリ（図示せず）を最初に呼び出した時点で、圧縮フォーマットの非テキスト要素を画像ストア１６０に記憶する。出力フィルタ・モジュール１５５は、アプリケーション・プログラム１４０が圧縮フォーマットを復元し、ビットマップ表現を作成するとビットマップ表現の関連するチェック値を計算する。前述のように、出力フィルタ・モジュール１５５は、ビットマップ表現の象限が完全である場合、またはビットマップ表現のラインが完全である場合にチェック値を計算することができる。サーバー１１０は圧縮フォーマット・ファイルと関連するチェック値の属性とを画像ストア１６０に記憶し、アプリケーション・プログラム１４０が関連する非テキスト要素を最初に作成した時点、およびそれ以降の時点で、圧縮フォーマット・ファイルを検索する。
【００５２】
サーバー１１０が圧縮フォーマット・ファイルおよびそれに関連するチェック値の属性（単数または複数）を画像ストア１６０の一時記憶域（例えばＲＡＭメモリ・バッファまたはキャッシュ）、または持久記憶域（例えばディスクまたは不揮発性メモリ・バッファ）のいずれに記憶するかは、少なくとも部分的に設計およびハードウエアの制約（例えば持久記憶装置のサイズ）に基づく。この判定を下す判定基準の一例は、アプリケーション・プログラム１４０が非テキスト要素を作成する回数である。例えば、アプリケーション・プログラム１４０が所定回数以上に特定の非テキスト要素を作成すると、サーバー１１０は、その特定の非テキスト要素に対応して、圧縮フォーマット・ファイルおよびその関連するチェック値の属性（単数または複数）を持久的に画像ストア１６０に記憶する。
【００５３】
別の実施形態では、サーバー１１０は非テキスト要素が静的であるか、複雑である場合にこれを記憶する。例えば、アプリケーション・プログラム１４０が初期設定の時点で常にスプラッシュ・スクリーンを作成する場合は、サーバー１１０はこのスプラッシュ・スクリーンに対応する圧縮フォーマット・ファイルを画像ストア１６０の持久記憶域に記憶する。別の実施形態では、非テキスト要素が複雑で静的であり、および／または繰り返し作成されるが、対応する圧縮フォーマット・ファイルを有していない場合は、出力フィルタ・モジュール１５５はその非テキスト要素用の圧縮フォーマット・ファイルを標準ベースまたは所有者ベースのフォーマットで作成する。いずれかの後続の送信で、サーバー・エージェント１５０は作成された圧縮フォーマット・ファイルをビットマップ表現の代わりに送信する。圧縮フォーマットが所有者ベースのフォーマットである場合は、サーバー・エージェント１５０は、クライアント・ノード１０５が圧縮フォーマット・ファイルをビットマップ表現に復元するために利用できる所有者ベースのグラフィック・ライブラリを含んでいるか否かを判定する。クライアント・ノード１０５に含まれていない場合は、サーバー・エージェント１５０は利用できるライブラリをインストール用にクライアント・ノード１０５に送信する。
【００５４】
図示した実施形態はサーバー・ノード１１０上の画像ストア１６０を示しているが、代替実施形態では画像ストアの少なくとも一部（図示せず）だけがクライアント・ノード１０５上にある。この代替実施形態では、ビットマップ表現の１つ以上のチェック値を計算し、１つ以上のチェック値をサーバー・エージェント１５０に送信する。サーバー・エージェント１５０はこれらの１つ以上のチェック値をクライアント・エージェント１７５に送信する。クライアント・エージェント１７５はクライアント・ノード１０５上の画像ストアの一部から、同じ１つ以上のチェック値の属性を有して記憶された圧縮データ・フォーマットを探索する。クライアント・エージェント１７５はこの探索結果をサーバー・エージェント１５０に送信する。
【００５５】
非テキスト要素用の圧縮データ・フォーマットがクライアント・ノード１０５上に存在する場合は、サーバー・エージェント１５０はネットワーク１１５を経て圧縮データ・フォーマットもビットマップ表現も送信する必要がない。サーバー・エージェント１５０は非テキスト要素のビットマップ表現に関連するグラフィック・ディスプレー・インターフェース・コマンドだけを送信する。非テキスト要素用の圧縮データ・フォーマットがクライアント・ノード１０５上に存在しない場合は、出力フィルタ・モジュール１５５は画像ストア１６０から非テキスト要素の対応する圧縮フォーマットを取得する。サーバー・エージェント１５０は非テキスト要素のビットマップ表現を、出力フィルタ・モジュール１５５が画像ストア１６０から検索した圧縮データ・フォーマットの非テキスト要素と置き換える。サーバー・エージェント１５０はビットマップ表現に関連するグラフィック・ディスプレー・インターフェース・コマンドと共に、非テキスト要素をクライアント・ノード１０５に送信する。
【００５６】
図２は図１の実施形態の例を利用してリモート・ターミナル・セッションを生成する工程２００を示している。出力フィルタ・モジュール１５５はサーバー・ノード１１０のオペレーティングシステムに対してなされた呼出しを監視することによってアプリケーション・プログラム１４０の出力を監視する。出力フィルタ・モジュール１５５がアプリケーション・プログラム１４０からディスプレー・コマンドを検出すると（ステップ２０５）、出力モジュール１５５はアプリケーション・プログラム１４０が非テキスト要素のビットマップ表現を作成しているか否かを判定する（ステップ２１０）。
【００５７】
アプリケーション・プログラム１４０が非テキスト要素のビットマップ表現を作成していない場合は、出力フィルタ・モジュールはディスプレー・コマンドをサーバー・エージェント１５０に送信し（ステップ２１５）、サーバー・エージェント１５０はそのコマンド、またはプロトコルに定義されている代表的なコマンドをクライアント・エージェント１７５に送信する。アプリケーション・プログラム１４０が非テキスト要素のビットマップ表現を作成している場合は、出力フィルタ・モジュール１５５は非テキスト要素のビットマップ表現に対応する１つ以上のチェック値を計算する（ステップ２２０）。
【００５８】
１つ以上の計算されたチェック値（単数または複数）を利用して、出力フィルタ・モジュール１５５は画像ストア１６０を探索して、同じチェック値属性（単数または複数）を有する圧縮データ・フォーマットが存在するか否かを判定する（ステップ２２５）。１つ以上のチェック値と同じチェック値属性（単数または複数）を有する圧縮データ・フォーマット画像ストア１６０内にある場合は、出力モジュール１５５は非テキスト要素のビットマップ表現を圧縮されたデータ・フォーマットを置き換える（ステップ２３０）。出力モジュール１５５は、場合によってはクライアント・エージェント１７５に送信するために、圧縮データ・フォーマットをサーバー・エージェント１５０に送信する（ステップ２３０）。出力モジュール１５５はさらに、圧縮データ・フォーマットと共に置き換えられたビットマップ表現に関連する全てのことを特徴とする何度をも送信する。
【００５９】
１つ以上の同じチェック値属性を有する圧縮データ・フォーマットが画像ストア１６０内にない場合は、出力モジュール１５５は圧縮データ・フォーマットに対応する非テキスト要素のビットマップ表現が持久記憶のための所定の判定基準（例えば前述のいずれかの判定基準）に適合するか否かを判定する（ステップ２３５）。出力モジュール１５５が、所定の判定基準に適合するものと判定すると（ステップ２３５）、出力モジュール１５５は圧縮データ・フォーマットおよび１つ以上の計算されたチェック値と同じ対応するチェック値属性を画像ストア１６０の持久記憶域に記憶する（ステップ２４０）。出力モジュール１５５が、所定の判定基準に適合しないものと判定すると（ステップ２３５）、出力モジュール１５５は圧縮データ・フォーマットおよび１つ以上の計算されたチェック値と同じ対応するチェック値属性を画像ストア１６０の一時記憶域に記憶する（ステップ２４５）。
【００６０】
出力モジュール１５５が一旦、圧縮データ・フォーマットおよび１つ以上の計算されたチェック値と同じ対応するチェック値属性を画像ストア１６０に記憶すると（ステップ２４０、または２４５）、出力モジュール１５５は非テキスト要素のビットマップ表現を圧縮データ・フォーマットと置き換える（ステップ２３０）。出力モジュール１５５は場合によってはクライアント・エージェント１７５に送信するために、圧縮データ・フォーマットをサーバー・エージェント１５０に送信する（ステップ２３０）。出力モジュール１５５はこれがアプリケーション・プログラム１４０から別のディスプレー・コマンドを検出する（ステップ２０５）まで、アプリケーション・プログラム１４０によって作成される出力の監視を継続する。
【００６１】
別の態様では、本発明はメディア・プレゼンテーションを作成する方法、システム、および製造製品に関する。一実施形態では、メディア・ストリームの少なくとも一部を表す圧縮データ・セットが第一コンピュータ・デバイス上でインターセプトされ、ネットワークを経て第二コンピュータ・デバイスに送信され、そこで復元されてユーザーに提示される。別の実施形態では、メディア・ストリームの少なくとも一部を表す復元されたデータ・セットが第一コンピュータ・デバイス上でインターセプトされ、圧縮され、その後上記のように第二コンピュータ・デバイスに送信され、そこで再び復元されてユーザーに提示される。
【００６２】
図３は本発明のこの態様によるメディア・プレゼンテーションを作成するシステム３００の一実施形態を示している。システム３００はネットワーク３１５を経て、例えばクライアント３０５である第二コンピュータ・デバイスと通信する、例えばサーバー３１０である第一コンピュータ・デバイスを含んでいる。概して、下記に記載する場合を除いて、クライアント３０５、サーバー３１０、およびネットワーク３１５はそれぞれ上記のクライアント１０５、サーバー１１０、およびネットワーク１１５と同じ能力を有している。
【００６３】
図示のように、クライアント３０５は少なくともクライアント・トランシーバ３３０と、クライアント・エージェント３７５と、プレゼンテーション・インターフェース３４５とを含んでいる。クライアント・エージェント３７５はソフトウエア・プログラムとして、および／またはＡＳＩＣまたはＦＰＧＡのようなハードウエア・デバイスとして実装されたものでよい。クライアント・エージェント３７５は、ネットワーク３１５を経て通信し、プレゼンテーション・インターフェース３４５でメディアおよび非メディア・コンポーネントを有するプレゼンテーションを作成するためにクライアント・トランシーバ３３０を使用する。
【００６４】
一実施形態では、サーバー３１０はアプリケーション・サーバーである。図示のように、サーバー３１０は少なくともサーバー・トランシーバ３３５と、アプリケーション・プログラム３４０と、サーバー・エージェント３５０と、第一出力フィルタ・モジュール３５５Ａと、第二出力フィルタ・モジュール３５５Ｂとを含んでいる。サーバー・エージェント３５０、第一出力フィルタ・モジュール３５５Ａ、および第二出力フィルタ・モジュール３５５Ｂはソフトウエア・プログラムとして、および／またはＡＳＩＣまたはＦＰＧＡのようなハードウエア・デバイスとして実装されたものでよい。サーバー・エージェント３５０、第一出力フィルタ・モジュール３５５Ａ、および第二出力フィルタ・モジュール３５５Ｂはネットワーク３１５を経て通信するためにサーバー・トランシーバ３３５を使用する。
【００６５】
別の実施形態では、前述の構成要素３３５、３４０、３５０、３５５Ａ、および３５５Ｂはネットワーク３１５を経て、または別のネットワーク（図示せず）を経てた灰に通信する幾つかのサーバーにわたって分散されている。あるいは、さらに別の実施形態では、２つ以上の前述の構成要素３３５、３４０、３５０、３５５Ａ、および３５５Ｂを単一の構成要素に統合して、後述するように２つ以上の前述の構成要素３３５、３４０、３５０、３５５Ａ、および３５５Ｂによって実行される機能が単一の構成要素によって実行されるようにしてもよい。
【００６６】
図３に示されているアプリケーション・プログラム３４０は、その出力の一部としてメディア・ストリームをレンダリングするいずれかのアプリケーション・プログラム３４０である。メディア・ストリームはビデオ・ストリーム、オーデイオ・ストリーム、またはその組み合わせでよい。加えて、アプリケーション・プログラム３４０は非メディア・グラフィック情報を出力してもよい。この文脈では、非メディア・グラフィック情報とは一般に、それに限定されるものではないがツールバーおよびドロップダウン・メニューを含む例えば静止グラフィック情報のような、コーデックまたはそれと同様のものを使用せずにアプリケーション・プログラム３４０によって出力される全てのグラフィック情報のことである。非メディア・グラフィック情報はさらに・例えばディスプレー・スクリーン上に静止グラフィック情報を配置するための情報をモジュール含んでいる。アプリケーション・プログラム３４０は例えばワシントン州レッドモンドのマイクロソフト社製のＭＩＣＲＯＳＯＦＴ  ＥＮＣＡＲＴＡアプリケーション・プログラムでよい。
【００６７】
一実施形態では、アプリケーション・プログラム３４０は例えばメディア・ストリームの少なくとも一部を表す圧縮データ・セットを復元するためにサーバー３１０のオペレーティングシステムにインストールされたコーデックのような外部コードを使用する。別の実施形態では、アプリケーション・プログラム３４０によって使用されるコーデックはアプリケーション・プログラム３４０自体の中に埋め込まれる。さらに別の実施形態では、サーバー３１０は、あるものは外部コーデックを使用し、他は埋め込まれたコーデックを使用する任意の数の実行アプリケーション・プログラム３４０を含んでいてもよい。
【００６８】
アプリケーション・プログラム３４０が外部コーデックを使用し、メディアストリームを出力したい場合は、このアプリケーション・プログラムはサーバー３１０のオペレーティングシステムが後続のディスプレー用にメディア・ストリームの少なくとも一部を表す圧縮データ・セットを復元するために外部コーデックを使用することを要求する。アプリケーション・プログラム３４０によって使用されるコーデックがアプリケーション・プログラム３４０自体に埋め込まれている場合は、アプリケーション・プログラム３４０はこれがメディア・ストリームを出力したい場合は、埋め込まれたコーデックを利用して後続のディスプレー用に圧縮データ・セット自体を復元する。加えて、アプリケーション・プログラム３４０は非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンドを生成し、サーバー３１０のオペレーティングシステムに送信することもできる。
【００６９】
本発明によって、アプリケーション・プログラム３４０は、あたかもアプリケーション・プログラム３４０がサーバー３１０にてメディアおよび非メディア・コンポーネントを有するプレゼンテーションを作成しようとしていたかのようにこれらのタスクを実行する。以下に説明するように、第一出力フィルタ・モジュール３５５Ａ、第二出力フィルタ・モジュール３５５Ｂおよびサーバー・エージェント３５０は外部コーデックに送られる圧縮データ・セット、埋め込まれたコーデックによって生成される復元データ・セット、および非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンドをそれぞれインターセプトし、（先ず埋め込まれたコーデックによって生成される復元データを圧縮した後）、ネットワーク３１５を経てそれらをクライアント・エージェント３７５に送信する。次にクライアント・エージェント３７５は以下に説明するように、受信した圧縮データ・セットを復元し、非メディア・グラフィック情報に関連する同一、または類似のグラフィック・ディスプレー・コマンドをクライアント３０５のオペレーティングシステムに発して、駆３０５のプレゼンテーション・インターフェース３４５でメディアおよび非メディア・コンポーネントを有するプレゼンテーションを作成する。
【００７０】
第一出力フィルタ・モジュール３５５Ａ、および第二出力フィルタ・モジュール３５５Ｂは、外部コーデックを使用するアプリケーション・プログラム３４０がメディア・ストリームを出力するように外部コーデックを呼び出すことを試行するので呼び出される。第一出力フィルタ・モジュール３５５Ａはメディア・ストリームの少なくとも一部を表すオリジナルの圧縮データ・セットをインターセプトする。外部コーデックのようにデータ・セットを復元する代わりに、第一出力フィルタ・モジュール３５５Ａはネットワーク３１５を経てオリジナルの圧縮データ・セットをクライアント・エージェント３７５に送信する。メディア・ストリームがビデオ・ストリームを含んでいる場合は、ＯＳレベル・レンダラーとして動作する第二出力フィルタ・モジュール３５５Ｂがビデオ・ストリームの画像をディスプレー・スクリーン上に配置するための情報を収集し、ネットワーク３１５を経てこの情報をクライアント・エージェント３７５に送信する。
【００７１】
別の実施形態では、埋め込まれたコーデックを使用するアプリケーション・プログラム３４０がメディア・ストリームを出力するように例えばＯＳレベル・レンダラーを呼び出すと、第二出力フィルタ・モジュール３５５Ｂが呼び出される。第二出力フィルタ・モジュール３５５Ｂはアプリケーション・プログラム３４０の出力からメディア・ストリームの少なくとも一部を表す第一の復元されたデータ・セットをインターセプトする。次に、第二出力フィルタ・モジュール３５５Ｂは以下に説明するように、インターセプトされた第一の復元データ・セットを圧縮し、結果として生じた圧縮データ・セットをネットワーク３１５を経てクライアント・エージェント３７５に送信する。第二出力フィルタ・モジュール３５５Ｂは上記のように、メディア・ストリームがビデオ・ストリームを含んでいる場合は、ビデオ・ストリームの画像をディスプレー・スクリーン上に配置するための情報を収集し、ネットワーク３１５を経てこの情報をクライアント・エージェント３７５に送信する。
【００７２】
別の実施形態では、サーバー・エージェント３５０は、アプリケーション・プログラム３４０によって出力された非メディア・グラフィック情報に関連するグラフィック・ディスプレーをインターセプトし、ネットワーク２７５を経てクライアント・エージェント３７５に送信する。
【００７３】
加えて、一実施形態では、第一出力フィルタ・モジュール３５５Ａ、および第二出力フィルタ・モジュール３５５Ｂ、または双方（アプリケーション・プログラム３４０が外部コーデックを使用している場合）、または第二出力フィルタ・モジュール３５５Ｂ（アプリケーション・プログラム３４０が埋め込まれたコーデックを使用している場合）はメディア・ストリームに関連するタイミング情報を収集し、ネットワーク３１５を経てこのタイミング情報をクライアント・エージェント３７５に送信する。より具体的には、出力フィルタ・モジュール３５５Ａ、３５５Ｂはメディア・ストリームの各フレームごとにプレゼンテーション時間を収集し、クライアント・エージェント３７５に送信することによって、クライアント・エージェント３７５はビデオ・ストリームとオーデイオ・ストリームとを同期化し、適正なフレーム・レートを保持することが可能になる。
【００７４】
図示のように、サーバー・エージェント３５０はサーバー・トランシーバ３３５およびアプリケーション・プログラム３４０とインターフェースする。一実施形態では、以下に説明するように、サーバー・エージェント３５０はクライアント・エージェント３７５からネットワーク３１５を経てクライアント・エージェント３７５によってサポートされているメディア・フォーマットのリストを受信する。サポートされているメディア・フォーマットのリストを受信すると、サーバー・エージェント３５０はサーバー３１０の構成を処理することによって出力フィルタ・モジュール３５５Ａ、３５５Ｂを登録する。一実施形態では、例えばサーバー・エージェント３５０はサーバー３１０のレジストリを編集することによって出力フィルタ・モジュール３５５Ａ、３５５Ｂを登録する。次にサーバー・エージェント３５０はクライアント・エージェント３７５に対して、サーバー３１０がこのようなメディア・フォーマットを全て取り扱えることを通知する。
【００７５】
クライアント３０５で、クライアント・エージェント３７５はクライアント・トランシーバ３３０およびプレゼンテーション・インターフェース３４５とインターフェースする。クライアント・エージェント３７５は、後述するように、最初にサーバー・エージェント３５０に対してクライアント・エージェント３７５によってサポートされているメディア・フォーマットを通知する。クライアント・エージェント３７５はさらに、出力フィルタ・モジュール３５５Ａ、３５５Ｂからネットワーク３１５を経て、圧縮データ・セットおよびいずれかの関連するタイミング情報を受信する。その上、クライアント・エージェント３７５はネットワーク３１５を経て、第二出力フィルタ・モジュール３５５Ｂからビデオ・ストリームをディスプレー・スクリーン上に配置するための何らかの情報を受信し、サーバー・エージェント３５０から非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンドを受信する。
【００７６】
クライアント・エージェント３７５は外部コーデックまたは埋め込まれたコーデックの何れかを使用して、圧縮データ・セットを復元し、非メディア・グラフィック情報、ビデオ・ストリームをディスプレー・スクリーン上に配置するための何らかの情報、および何らかのタイミング情報に関連するグラフィック・ディスプレー・コマンドと共に、プレゼンテーション・インターフェース３４５でメディア・プレゼンテーションを作成する。プレゼンテーション・インターフェース３４５は一実施形態では例えばビデオ・プレゼンテーションのようなグラフィック・ディスプレーをレンダリングするディスプレー・スクリーンを有している。別の実施形態では、プレゼンテーション・インターフェース３４５はオーデイオ・プレゼンテーションをレンダリングするスピーカを含んでいる。
【００７７】
クライアント・エージェント３７５によってサポートされるメディア・フォーマットを特定するために供給される情報はサーバー３１０における動作モードを決定できる。圧縮データ・セットがクライアント・エージェント３７５によってサポートされないフォーマットである場合は第二出力フィルタ・モジュール３５５Ｂは復元されたデータ・セットをサポートされるフォーマットに再圧縮してもよい。
【００７８】
個々で図４Ａ、４Ｂ、および４Ｃを参照すると、図３の実施形態の例を利用してクライアント３０５でメディア・プレゼンテーションを作成する方法４００の一実施形態が示されている。クライアント３０５とサーバー３１０の双方がネットワーク３１５に接続されている場合、クライアント・エージェント３７５はステップ４０４でサーバー・エージェント３５０に対してクライアント・エージェント３７５によってサポートされる全てのメディア・フォーマットを通知する。一実施形態では、クライアント３０５にインストールされた外部コーデックを列挙することによって、サポートされるメディア・フォーマットのリストが作成される。例えば、クライアント３０５のオペレーティングシステムにインストールされたコーデックはクライアント・エージェント３７５によってネットワーク３１５を経てサーバー・エージェント３５０に列挙される。別の実施形態では、クライアント・エージェント３７５に埋め込まれたコーデックを列挙することによって、サポートされるメディア・フォーマットのリストが作成される。例えば、クライアント・エージェント３７５がソフトウエア・プログラムとして実装されている場合は、ソフトウエアに埋め込まれているコーデックはクライアント・エージェント３７５によってネットワーク３１５を経てサーバー・エージェント３５０に列挙される。あるいは、クライアント・エージェント３７５がサポートされるメディア・フォーマットのリストを作成し、クライアント３０５上にインストールされている外部コーデックとクライアント・エージェント３７５に埋め込まれているコーデックの双方を列挙することによって、サーバー・エージェント３５０に対してこれらのサポートされるメディア・フォーマットを通知する。
【００７９】
一実施形態では、クライアント・エージェント３７５は大域的に一意的な識別子（“ＧＵＩＤ”）を作成し、各ＧＵＩＤを特定のコーデックに関連付ける。次にクライアント・エージェント３７５は作成されたＧＵＩＤのリストをサーバー・エージェント３５０に送信して、サーバー・エージェント３５０に対してクライアント・エージェント３７５によってサポートされるメディア・フォーマットを通知する。別の実施形態では、クライアント・エージェント３７５は、各々４つの文字コードが特定のコーデックに関連している４つの文字コードのリストをサーバー・エージェント３５０に送信して、サーバー・エージェント３５０に対してクライアント・エージェント３７５によってサポートされるメディア・フォーマットを通知する。
【００８０】
クライアント・エージェント３７５からサポートされるメディア・フォーマットのリストを受信すると、サーバー・エージェント３５０はステップ４０８で、サーバー３１０上の第一出力フィルタ・モジュール３５５Ａおよび／または第二出力フィルタ・モジュール３５５Ｂをサポートされるメディア・フォーマットに関連するモジュールとして登録する。次にサーバー・エージェント３５０はステップ４１２で、クライアント・エージェント３７５に対してサーバー３１０が列挙されたメディア・フォーマットの全てを取り扱うことができることを折り返し報告する。
【００８１】
ステップ４１６で、アプリケーション・プログラム３４０はサーバー３１０上での実行を開始する。ステップ４２０でアプリケーション・プログラム３４０がその出力内に例えばメディア・ストリームのようなメディア・コンテンツがあることを識別すると、第一出力フィルタ・モジュール３５５Ａ、第二出力フィルタ・モジュール３５５Ｂ、または双方が呼び出される。ステップ４２４で、アプリケーション・プログラム３４０が外部コーデックを使用している場合は、アプリケーション・プログラム３４０が外部コーデックを呼び出すことを試行するので、第一出力フィルタ・モジュール３５５Ａおよび第二出力フィルタ・モジュール３５５Ｂの双方がステップ４２８で呼び出される。次に第一出力フィルタ・モジュール３５５Ａはステップ４３２で、メディア・ストリームの少なくとも一部を表すオリジナルの圧縮データ・セットをインターセプトし、ステップ４３６で、データ・セットを復元せずにオリジナルの圧縮データ・セットをクライアント・エージェント３７５に送信する。クライアント・エージェント３７５はステップ４４０でオリジナルの圧縮データ・セットを受信し、ステップ４４４でオリジナルの圧縮データ・セットを復元して復元データ・セットを生成する。クライアント・エージェント３７５はクライアント３０５上にインストールされた外部コーデック、またはクライアント・エージェント３７５自体に埋め込まれたコーデックの何れかを使用してオリジナルの圧縮データ・セットを復元する。
【００８２】
そうではなく、ステップ４２４でアプリケーション・プログラム３４０がアプリケーション・プログラム３４０自体に埋め込まれたコーデックを使用する場合は、アプリケーション・プログラム３４０がＯＳレベル・レンダラーに対して復元されたデータ・セットをレンダリングするように呼びかけることを試行するので、第二出力フィルタ・モジュール３５５Ｂがステップ４４８で呼び出される。次に第二出力フィルタ・モジュール３５５Ｂはステップ４５２で、アプリケーション・プログラム３４０の出力からのメディア・ストリームの少なくとも一部を表す第一の復元データ・セットをデータ・セットをインターセプトし、ステップ４５６で、インターセプトされた第一の復元データ・セットを圧縮する。メディア・ストリームを圧縮するテメディアに、ステップ４５６で、損失が多い圧縮技術および損失がない圧縮技術の双方を含む多様な圧縮技術を利用できる。
【００８３】
メディア・ストリームがビデオ・ストリームである場合は、インターセプトされた復元データ・セットはステップ４５６で、例えばＭＩＰＥＧ圧縮のような、例えば軽量の損失が多いビデオ・エンコード・アルゴリズムを利用して第二出力フィルタ・モジュール３５５Ｂによって圧縮されてもよい。軽量の損失が多いビデオ・エンコード・アルゴリズムを利用する場合は、第二出力フィルタ・モジュール３５５Ｂは所望の圧縮率を選択してもよく、または所定の圧縮率を用いてもよい。第二出力フィルタ・モジュール３５５Ｂによって選択される品質損失の程度は典型的には、ネットワーク接続の利用可能な大域幅に依存する。例えば、クライアント３０５のユーザーがネットワーク３１５に接続するためにスロー・モデムを使用する場合は、第二出力フィルタ・モジュール３５５Ｂは低品質ビデオを使用することを選択してもよい。これに対して、クライアント３０５のユーザーがネットワーク３１５に接続するためにＬＡＮリンクまたはブロードバンド接続を使用する場合は、第二出力フィルタ・モジュール３５５Ｂはより高品質のビデオを選択してもよい。
【００８４】
ステップ４５６におけるインターセプトされた第一の復元データ・セットの圧縮の後、第二出力フィルタ・モジュール３５５Ｂはステップ４６０で、第一の復元データ・セットの代わりに圧縮データ・セットをクライアント・エージェント３７５に送信する。クライアント・エージェント３７第一の復元データ・セットの５はステップ４６４で、圧縮データ・セットを受信し、ステップ４６８で圧縮データ・セットを復元して第二の復元データ・セットを生成する。この場合も、クライアント・エージェント３７５はクライアント３０５上にインストールされた外部コーデック、またはクライアント・エージェント３７５自体に埋め込まれたコーデックの何れかを使用してオリジナルの圧縮データ・セットを復元する。
【００８５】
アプリケーション・プログラム３４０が外部コーデックまたは埋め込まれたコーデックのいずれを使用するかに関わりなく、ステップ４７０でメディア・ストリームがビデオ・ストリームを含んでいる場合は、第二出力フィルタ・モジュール３５５Ｂはステップ４７２で、ビデオ・ストリームの画像をディスプレー・スクリーン上に配置するための情報を収集し、ネットワーク３１５を経てこの情報をクライアント・エージェント３７５に送信する。クライアント・エージェント３７５はステップ４７４で、ビデオ・ストリームの画像をディスプレー・スクリーン上に配置するための情報を受信する。
【００８６】
この場合も、アプリケーション・プログラム３４０が外部コーデックまたは埋め込まれたコーデックのいずれを使用するかに関わりなく、またさらにステップ４７０でメディア・ストリームがビデオ・ストリームを含んでいるか否かにかかわりなく、サーバー・エージェント３５０はステップ４７６で、アプリケーション・プログラム３４０によって出力された非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンドをインターセプトし、ネットワーク３１５を経てクライアント・エージェント３７５に送信する。クライアント・エージェント３７５はステップ４８０で、非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンドを受信する。
【００８７】
ステップ４８４で出力フィルタ・モジュール３５５Ａ、３５５Ｂがメディア・ストリームに関連するタイミング情報を収集すると、出力フィルタ・モジュール３５５Ａ、３５５Ｂはステップ４８８でタイミング情報をクライアント・エージェント３７５に送信する。クライアント・エージェント３７５はステップ４９２でタイミング情報を受信し、ステップ４９６でプレゼンテーション・インターフェース３４５におけるメディア・プレゼンテーションを作成する。プレゼンテーション・インターフェース３４５におけるメディア・プレゼンテーションを作成するため、クライアント・エージェント３７５はタイミング情報、非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンド、およびメディア・ストリームがビデオ・ストリームを含んでいる場合は、ビデオ・ストリームの画像をディスプレー・スクリーン上に配置するための情報を利用して、復元データ・セット（またはより具体的には、アプリケーション・プログラム３４０が埋め込まれたコーデックを使用している場合は、第二の復元データ・セット）を非メディア・グラフィック情報にシームレスに結合する。
【００８８】
出力フィルタ・モジュール３５５Ａ、３５５Ｂがメディア・ストリームに関連するタイミング情報を収集しない場合は、クライアント・エージェント３７５はステップ４９６復元データ・セット（またはより具体的には、アプリケーション・プログラム３４０が埋め込まれたコーデックを使用している場合は、第二の復元データ・セット）、非メディア・グラフィック情報に関連するグラフィック・ディスプレー・コマンド、およびメディア・ストリームがビデオ・ストリームを含んでいる場合は、ビデオ・ストリームの画像をディスプレー・スクリーン上に配置するための情報だけを利用してプレゼンテーション・インターフェース３４５におけるメディア・プレゼンテーションを作成する。
【００８９】
本発明は１つ以上の製造製品上に、または製造製品内に実施された１つ以上のコンピュータ読み出し可能プログラムとして提供されてもよい。製造製品はフロッピ（登録商標）ーディスク、ハードディスク、ＣＤ  ＲＯＭ、フラッシュメモリ・カード、ＰＲＯＭ、ＲＡＭ、ＲＯＭ、または磁気テープでよい。一般に、コンピュータ読み出し可能プログラムは任意のプログラム言語で実装されてもよい。利用できる言語の幾つかにはＣ、Ｃ＋＋、またはＪＡＶＡ（登録商標）が含まれる。ソフトウエア・プログラムはオブジェクト・コードとして１つ以上の製造製品上、または製造製品内に記憶できる。
【００９０】
等価物
本発明はその趣旨および必須の特徴から離れることなく別の特定の形態で実施することができる。具体的には、単一のサーバーが図１および２の発明と図３，４Ａ、４Ｂ、および４Ｃの発明の双方を実施してもよいことが分かる。したがって前述の実施形態はあらゆる側面において本明細書に記載した発明に限定されるものではなく、例示されたものと見なされるべきものである。したがって本発明の範囲は上記の記述ではなく添付の特許請求の範囲によって示されるものであり、したがって、特許請求の範囲の等価物の意味と範囲内にある全ての変更は本発明に包括されるものである。
【図面の簡単な説明】
【００９１】
本発明の上記の、およびその他の利点は添付図面を参照した以下の説明によってより明解に理解されよう。
【図１】図１は本発明によるリモート・ターミナル・セッション用のグラフィック・ディスプレーを作成するためのシステムの実施形態のブロック図である。
【図２】図２は本発明によるリモート・ターミナル・セッション用のグラフィック・ディスプレーを作成するための工程の実施形態の流れ図である。
【図３】本発明によるクライアントにてメディア・プレゼンテーションを作成するためのシステムの実施形態のブロック図である。
【図４Ａ】図４Ａは本発明によるクライアントにてメディア・プレゼンテーションを作成するための方法の実施形態の流れ図である。
【図４Ｂ】図４Ｂは本発明によるクライアントにてメディア・プレゼンテーションを作成するための方法の実施形態の流れ図である。
【図４Ｃ】図４Ｃは本発明によるクライアントにてメディア・プレゼンテーションを作成するための方法の実施形態の流れ図である。
【図１】
2005521280.tif 000002
【図２】
2005521280.tif 000003
【図３】
2005521280.tif 000004
【図４Ａ】
2005521280.tif 000005
【図４Ｂ】
2005521280.tif 000006
【図４Ｃ】
2005521280.tif 000007
【国際調査報告】
2005521280.tif 000008
2005521280.tif 000009
2005521280.tif 000010