(57)【要約】【課題】異なる色表示特性を有する、様々なコンピューティングデバイスに関連する色管理のためのシステムおよび方法を提供すること。【解決手段】Ｘ１１グラフィックスプラットフォームは増補されて、デバイス依存色で始まりデバイス依存色で終わる、ＩＣＣ、ｓＲＧＢ、ｓｃＲＧＢなどの色管理システムをサポートする。Ｘ１１ｒ６内では、ＣＭＹＫ色空間および拡張ＲＧＢ色空間もサポートされており、したがって、Ｘ１１ｒ６グラフィックスプラットフォームを任意の最新色管理標準をサポートするように拡張する。【選択図】　　　　図４Ｃ
2004032700.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのソースデバイスから、少なくとも１つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るステップと、
前記少なくとも１つのソースデバイスと前記少なくとも１つのデスティネーションデバイスの間の少なくとも１つの色特性の差異を表すデバイスリンクプロファイルを生成するステップと、
色管理システムの少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフするステップと、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数を呼び出して、前記少なくとも１つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するステップと
を含むことを特徴とする色管理を実現する方法。
【請求項２】
前記スプーフするステップは、少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフすることを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記スプーフすることは、ｔｏＣＩＥＸＹＺ関数およびｆｒｏｍＣＩＥＸＹＺ関数のうち少なくとも１つをスプーフすることを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記スプーフするステップは、前記少なくとも１つのアプリケーションプログラミングインタフェース関数に、前記デバイスリンクプロファイルを提供することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記少なくとも１つのソースデバイスおよび前記少なくとも１つのデスティネーションデバイスは、コンピューティングデバイスおよびソフトウェアオブジェクトのうち少なくとも１つを備えることを特徴とする請求項１に記載の方法。
【請求項６】
第２の色管理システムの少なくとも１つの関数を呼び出すことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第２の色管理システムの少なくとも１つの関数を呼び出すことは、色管理モジュール（ＣＭＭ）を呼び出すことを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記デバイス非依存色データは、標準色空間（ｓＲＧＢ）データ、標準拡張色空間（ｓｃＲＧＢ）データ、国際色コンソーシアム（ＩＣＣ）プロファイルデータ、およびシアン／マゼンダ／イエロー／ブラック（ＣＭＹＫ）データのうち少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記デバイス非依存色データは、ｓｃＲＧＢ、ＲＩＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、ＲＯＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、およびｅｓＲＧＢ（ＨＰ／ＰＩＭＡ）色データのうち少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
符号付浮動小数点数を符号なし短整数に変換することをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記呼び出して生成するステップは、前記デバイスリンクプロファイル中の３つの１−Ｄルックアップテーブル（ＬＵＴｓ）により色調圧縮を提供することを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記スプーフするステップは、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフして、デバイス依存色値をＣＩＥＸＹＺ値に変換するステップと、
（１）前記デバイスリンクプロファイル中の３×３行列および１−Ｄルックアップテーブル（ＬＵＴｓ）を利用して、特定の出力デバイスをキャラクタライズすることと、（２）前記デバイスリンクプロファイルの前記３×３行列を識別行列に設定して、前記デバイスリンクプロファイルの１−Ｄルックアップテーブルを識別ルックアップテーブルに設定することのうち１つを実行するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記方法が逆に実施されて、その代わりにデバイス依存色値をデパイス非依存値に変換し、かつ、前記スプーフするステップは、アプリケーションプログラミングインタフェースのｔｏＣＩＥＸＹＺ関数をスプーフすることを含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記スプーフするステップは、プロトコルデフォルトで供給する前記少なくとも１つのアプリケーションプログラミングインタフェース関数へのポインタを、ＩＣＣ互換性色管理モジュールを呼び出すカスタム関数へと置き換えることを含むことを特徴とする請求項１に記載の方法。
【請求項１５】
請求項１の制御可能テクスチャサンプリングを提供することを特徴とする、オペレーティングシステム、ドライバコード、アプリケーションプログラミングインタフェース、ツールキット、およびコプロセッシングデバイスのうち少なくとも１つ。
【請求項１６】
請求項１に記載の方法を実施するためのコンピュータ実行可能命令を搬送することを特徴とする変調データ信号。
【請求項１７】
請求項１に記載の方法を実施するための手段を備えることを特徴とするコンピューティングデバイス。
【請求項１８】
ある方法を実施するためのコンピュータ実行可能命令を記憶した色管理を実現するためのコンピュータ可読媒体であって、前記方法は、
少なくとも１つのソースデバイスから、少なくとも１つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るステップと、
前記少なくとも１つのソースデバイスと前記少なくとも１つのデスティネーションデバイスの間の少なくとも１つの色特性の差異を表すデバイスリンクプロファイルを生成するステップと、
色管理システムの少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフするステップと、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数を呼び出して、前記少なくとも１つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するステップと
を含むことを特徴とするコンピュータ可読媒体。
【請求項１９】
前記スプーフするステップは、少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフすることを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記スプーフすることは、ｔｏＣＩＥＸＹＺ関数およびｆｒｏｍＣＩＥＸＹＺ関数のうち少なくとも１つをスプーフすることを含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記スプーフするステップは、前記少なくとも１つのアプリケーションプログラミングインタフェース関数に、前記デバイスリンクプロファイルを提供することを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２２】
前記少なくとも１つのソースデバイスおよび前記少なくとも１つのデスティネーションデバイスは、コンピューティングデバイスおよびソフトウェアオブジェクトのうち少なくとも１つを備えること特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２３】
第２の色管理システムの少なくとも１つの関数を呼び出すことをさらに含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２４】
前記第２の色管理システムの少なくとも１つの関数を呼び出すことは、色管理モジュール（ＣＭＭ）を呼び出すことを含むことを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２５】
前記デバイス非依存色データは、標準色空間（ｓＲＧＢ）データ、標準拡張色空間（ｓｃＲＧＢ）データ、国際色コンソーシアム（ＩＣＣ）プロファイルデータ、およびシアン／マゼンダ／イエロー／ブラック（ＣＭＹＫ）データのうち少なくとも１つを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２６】
前記デバイス非依存色データは、ｓｃＲＧＢ、ＲＩＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、ＲＯＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、およびｅｓＲＧＢ（ＨＰ／ＰＩＭＡ）色データのうち少なくとも１つを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２７】
符号付浮動小数点数を符号なし短整数に変換することをさらに含むことを特徴とする請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
前記呼び出して生成するステップは、前記デバイスリンクプロファイル中の３つの１−Ｄルックアップテーブル（ＬＵＴｓ）により色調圧縮を提供することを含むことを特徴とする請求項２６に記載のコンピュータ可読媒体。
【請求項２９】
前記スプーフするステップは、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフして、デバイス依存色値をＣＩＥＸＹＺ値に変換するステップと、
（１）前記デバイスリンクプロファイル中の３×３行列および１−Ｄルックアップテーブル（ＬＵＴｓ）を利用して、特定の出力デバイスをキャラクタライズすることと、（２）前記デバイスリンクプロファイルの前記３×３行列を識別行列に設定して、前記デバイスリンクプロファイルの１−Ｄルックアップテーブルを識別ルックアップテーブルに設定することのうち１つを実行するステップと
を含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項３０】
前記方法の動作は逆に行われて、その代わりにデバイス依存色値をデバイス非依存値に変換し、かつ、前記スプーフするステップは、アプリケーションプログラミングインタフェースのｔｏＣＩＥＸＹＺ関数をスプーフすることを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項３１】
前記スプーフするステップは、プロトコルデフォルトで供給する前記少なくとも１つのアプリケーションプログラミングインタフェース関数へのポインタを、ＩＣＣ互換性色管理モジュールを呼び出すカスタム関数へと置き換えることを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項３２】
色管理と関連して使用するためのコンピューティングデバイスであって、
少なくとも１つのソースデバイスから、少なくとも１つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取る入力コンポーネントと、
前記少なくとも１つのソースデバイスと前記少なくとも１つのデスティネーションデバイスの間の少なくとも１つの色特性の差異を表すデバイスリンクプロファイルを生成する処理コンポーネントと、
色管理システムの少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフするスプーフコンポーネントと、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数を呼び出して、前記少なくとも１つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成する出力コンポーネントと
を備えることを特徴とするコンピューティングデバイス。
【請求項３３】
前記スプーフコンポーネントは、少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフすることを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項３４】
前記スプーフコンポーネントは、ｔｏＣＩＥＸＹＺ関数およびｆｒｏｍＣＩＥＸＹＺ関数のうち少なくとも１つをスプーフすることを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項３５】
前記スプーフコンポーネントは、前記少なくとも１つのアプリケーションプログラミングインタフェース関数に、前記デバイスリンクプロファイルを提供することを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項３６】
前記少なくとも１つのソースデバイスおよび前記少なくとも１つのデスティネーションデバイスは、コンピューティングデバイスおよびソフトウェアオブジェクトのうち少なくとも１つを備えることを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項３７】
第２の色管理システムの少なくとも１つの関数を呼び出す呼び出しコンポーネントをさらに備えることを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項３８】
第２の色管理システムの少なくとも１つの関数を呼び出す前記呼び出しコンポーネントは、色管理モジュール（ＣＭＭ）を呼び出すことを含むことを特徴とする請求項３７に記載のコンピューティングデバイス。
【請求項３９】
前記デバイス非依存色データは、標準色空間（ｓＲＧＢ）データ、標準拡張色空間（ｓｃＲＧＢ）データ、国際色コンソーシアム（ＩＣＣ）プロファイルデータ、およびシアン／マゼンダ／イエロー／ブラック（ＣＭＹＫ）データのうち少なくとも１つを含むことを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項４０】
前記デバイス非依存色データは、ｓｃＲＧＢ、ＲＩＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、ＲＯＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、およびｅｓＲＧＢ（ＨＰ／ＰＩＭＡ）色データのうち少なくとも１つを含むことを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項４１】
符号付浮動小数点数を符号なし短整数に変換する変換コンポーネントをさらに備えることを特徴とする請求項４０に記載のコンピューティングデバイス。
【請求項４２】
前記呼び出して生成するコンポーネントは、前記デバイスリンクプロファイル中の３つの１−Ｄルックアップテーブル（ＬＵＴｓ）により色調圧縮を提供することを特徴とする請求項４０に記載のコンピューティングデバイス。
【請求項４３】
前記スプーフコンポーネントは、前記少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフして、デバイス依存色値をＣＩＥＸＹＺ値に変換すること、および、（１）前記デバイスリンクプロファイル中の３×３行列および１−Ｄルックアップテーブル（ＬＵＴｓ）を利用して、特定の出力デバイスをキャラクタライズすることと、（２）前記デバイスリンクプロファイルの３×３行列を識別行列に設定して、前記デバイスリンクプロファイルの１−Ｄルックアップテーブルを識別ルックアップテーブルに設定することのうち１つを行うことを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項４４】
前記各コンポーネントの動作は逆に行われて、その代わりに、前記各コンポーネントは、デバイス依存色値をデバイス依存値に変換し、前記スプーフコンポーネントは、アプリケーションプログラミングインタフェースのｔｏＣＩＥＸＹＺ関数をスプーフすることを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項４５】
前記スプーフコンポーネントは、プロトコルデフォルトで供給する前記少なくとも１つのアプリケーションプログラミングインタフェース関数へのポインタを、ＩＣＣ互換性色管理モジュールを呼び出すカスタム関数へと置き換えることを特徴とする請求項３２に記載のコンピューティングデバイス。
【請求項４６】
色管理を実現する方法であって、
少なくとも１つのソースデバイスから、少なくとも１つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るステップと、
前記少なくとも１つのソースデバイスと前記少なくとも１つのデスティネーションデバイスの間の少なくとも１つの色特性の差異を表すデバイスリンクプロファイルを生成するステップと、
少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフするステップと、
前記少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数を呼び出して、前記少なくとも１つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するステップと
を含むことを特徴とする方法。
【請求項４７】
前記スプーフするステップは、ｔｏＣＩＥＸＹＺ関数およびｆｒｏｍＣＩＥＸＹＺ関数のうち少なくとも１つをスプーフすることを含むことを特徴とする請求項４６に記載の方法。
【請求項４８】
前記スプーフするステップは、少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数に、前記デバイスリンクプロファイルを提供することを含むことを特徴とする請求項４６に記載の方法。
【請求項４９】
色管理モジュール（ＣＭＭ）システムの少なくとも１つの関数を呼び出すことをさらに含むことを特徴とする請求項４６に記載の方法。
【請求項５０】
前記スプーフするステップは、
前記少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフして、デバイス依存色値をＣＩＥＸＹＺ値に変換するステップと、
（１）前記デバイスリンクプロファイル中の３×３行列および１−Ｄルックアップテーブル（ＬＵＴｓ）を利用して、特定の出力デバイスのキャラクタライズすることと、（２）前記デバイスリンクプロファイルの前記３×３行列を識別行列に設定して、前記デバイスリンクプロファイルの１−Ｄルックアップテーブルを識別ルックアップテーブルに設定することのうち１つを実行するステップと
を含むことを特徴とする請求項４６に記載の方法。
【請求項５１】
前記方法は逆に実施されて、その代わりにデバイス依存色値をデバイス依存値に変換し、かつ、前記スプーフするステップは、Ｘ１１アプリケーションプログラミングインタフェースのｔｏＣＩＥＸＹＺ関数をスプーフすることを含むことを特徴とする請求項４６に記載の方法。
【請求項５２】
前記スプーフするステップは、プロトコルデフォルトで供給する前記少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数へのポインタを、カスタム関数へと置き換えるステップを含むことを特徴とする請求項４６に記載の方法。
【請求項５３】
コンピュータ実行可能命令を含む複数のコンピュータ実行可能モジュールを記憶した色管理を実現するための少なくとも１つのコンピュータ可読媒体であって、前記モジュールが、
少なくとも１つのソースデバイスから、少なくとも１つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るための手段と、
前記少なくとも１つのソースデバイスと前記少なくとも１つのデスティネーションデバイスの間の少なくとも１つの色特性の差異を表すデバイスリンクプロファイルを生成するための手段と、
色管理システムの少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフするための手段と、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数を呼び出して、前記少なくとも１つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するための手段と
を備えることを特徴とするコンピュータ可読媒体。
【請求項５４】
前記スプーフするための手段は、少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフすることを特徴とする、請求項５３に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５５】
色管理と関連して使用するためのコンピューティングデバイスであって、
少なくとも１つのソースデバイスから、少なくとも１つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るための手段と、
前記少なくとも１つのソースデバイスと前記少なくとも１つのデスティネーションデバイスの間の少なくとも１つの色特性の差異を表すデバイスリンクプロファイルを生成するための手段と、
色管理システムの少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフするための手段と、
前記少なくとも１つのアプリケーションプログラミングインタフェース関数を呼び出して、前記少なくとも１つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するための手段と
を備えることを特徴とするコンピューティングデバイス。
【請求項５６】
前記スプーフするための手段は、少なくとも１つのＸ１１アプリケーションプログラミングインタフェース関数をスプーフすることを特徴とする請求項５５に記載のコンピューティングデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、色管理を実現するためのシステムおよび方法を対象とする。より詳細には、本発明は、異なる色表示特性を有する様々なデバイスに関連して色管理を実現するためのシステムおよび方法を対象とする。
【０００２】
【従来の技術】
本特許明細書の開示の一部は、著作権保護の対象となる材料を含むことがある。本特許明細書または本特許の開示は特許庁の特許ファイルまたは記録に見られるとき、著作権所有者は、それを誰が複写しても異議はない。しかし、それ以外の場合には、何であれ、著作権所有者が一切の著作権を留保する。本明細書にはＭｉｃｒｏｓｏｆｔ　Ｃｏｒｐ．２００１年、著作権所有の通知を適用する。
【０００３】
色空間は、３つまたはそれ以上座標で色を数値として表すためのモデルである。例えば、ＲＧＢ色空間は、赤、緑、青の座標で色を表す。
【０００４】
異なるデバイスおよび材料（ｍａｔｅｒｉａｌｓ）にわたって、予測可能な方法で再生するべき色の場合、その色を生成するために使用する機構または材料の特定の挙動に依存しない方法で、その色を記述しなければならない。例えば、カラー陰極線管（ＣＲＴ）とカラープリンタは、極めて異なる機構を使って色を生成する。この問題に対処するため、現行方法では、色をデバイスに依存しない色座標を使って記述し、次いで、それを各デバイス用のデバイスに依存する色座標に変換することが必要とされる。現在、デバイス依存系への変換のための機構を、デバイス自体が提供している。
【０００５】
この点について、色管理（ａ　ｃｏｌｏｒ　ｍａｎａｇｅｍｅｎｔ）とは、オブジェクト、例えば、画像、グラフィックス、またはテキストの色を、それらの現在の色空間から、モニタ、プリンタなどの出力デバイスの色空間に変換する技術またはシステムを表す用語である。
【０００６】
初期には、オペレーティングシステムが、特定の色空間、例えばＲＧＢのサポートを宣言することによって、色をサポートしていた。しかし、ＲＧＢはデバイス間で異なるため、色は、異なるデバイス間で信頼性よく再生されなかった。
【０００７】
このような色のサポートのための伝統的手段が不十分であったため、様々なオペレーティングシステムは、国際カラーコンソーシアム（Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｃｏｌｏｒ　Ｃｏｎｓｏｒｔｉｕｍ）（ＩＣＣ）プロファイルを使って、デバイス依存色をデバイスに依存する方法でキャラクタライズすることに対するサポートを追加した。ＩＣＣのデバイスキャラクタライゼーションプロファイルの仕様は公に入手可能であり、例えば、ＩＣＣのウェブサイト、すなわちｗｗｗ．ｃｏｌｏｒ．ｏｒｇから入手することができる。ＩＣＣは、画像を作成した入力デバイス、およびその画像を表示した出力デバイスのプロファイルを使用して、その画像を入力デバイスの色空間から出力デバイスの色空間に移動させるトランスフォームを作成する。これによってきわめて正確な色が得られるが、また、画像とともに入力デバイスのプロファイルを移送し、トランスフォームを介してその画像を実行するというオーバーヘッドも伴う。
【０００８】
次いで、中間的なデバイス非依存標準色空間を提供する試みで、さらなる技術が開発された。これらの色管理技術のいくつかは、今日、Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムおよびＭｉｃｒｏｓｏｆｔ（登録商標）のＯｆｆｉｃｅ（登録商標）プラットフォームなどのオペレーティングシステムおよびアプリケーション中に既に存在する。ＩＣＣ色空間以外の色空間には、標準色空間、すなわち略してｓＲＧＢ（国際エンジニアリングコンソーシウム（Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｅｎｇｉｎｅｅｒｉｎｇ　Ｃｏｎｓｏｒｔｉｕｍ）（ＩＥＣ）の仕様Ｎｏ．６１９６６−２−１）が含まれる。これは、Ｗｉｎｄｏｗｓ９８（登録商標）およびＯＦＦＩＣＥ２０００（登録商標）に始まるコアテクノロジとしてサポートされている。色管理技術は、標準拡張色空間、すなわち略してｓｃＲＧＢ（ＩＥＣ仕様Ｎｏ．６１９６６−２−２）の作成を通じて進化し続けている。
【０００９】
ＩＣＣ、ｓＲＧＢおよびｓｃＲＧＢの統合により、色をサポートする様々な入力および出力コンピューティングデバイスという点を考えると、解決しなければならない多くの問題がある。現在、ｓＲＧＢは、ＩＥＣ６１９６６−２−１標準に基づいた、Ｗｉｎｄｏｗｓ（登録商標）のデフォルト色空間になっている。ｓＲＧＢ準拠のデバイスは、色管理がうまく作動するためのプロファイルまたはその他のサポートを提供する必要がない。
【００１０】
この点に関して、ｓＲＧＢ、ｓｃＲＧＢ、ＩＣＣの色空間の構造は、固定的かつ限定的な意味を持っており、本発明の背景となっている。これらの色空間について触れているのは、当業者が十分に識別できるようにという意図によるが、それでも、包括的な説明も続き、また、それぞれの色空間については、いずれかの公に入手可能な標準仕様が補足するであろう。
【００１１】
標準ＲＧＢ色空間のｓＲＧＢは、ＣＩＥＸＹＺ、すなわちＣＩＥＸＹＺ値に関連する赤、緑、青の原色と、知覚的に言い表わした白色点値、たとえば色温度６５００ケルビンとして昼光に相関するＣＩＥＸＹＺ標準のＤ６５などと、標的デバイス色に対するエンドユーザの知覚に影響を与える、周囲、背景、輝度などの任意選択の表示条件とを記述する３×３行列など、物理的輝度空間と、ＲＧＢ知覚空間の色調（ｔｏｎａｌ）レスポンスとの間の非線形関係を記述する一次元ルックアップテーブル（ＬＵＴｓ）を含む。
【００１２】
標準拡張色空間のｓｃＲＧＢは、ｓＲＧＢと同じであるが、その値は、色の見える範囲の外側に超えることができる。
【００１３】
ＩＣＣプロファイルは、一般に、デバイス依存の色を同等の人間が視覚的に知覚する色に関連付ける情報を含むメタデータ構造を有する。ＩＣＣプロファイルのインスタンスによっては、デバイス依存であろうとデバイス非依存であろうと、任意の２種類の色空間の間の変換情報を提供することができるものもある。
【００１４】
Ｘプロトコルは、初めはＵＮＩＸ（登録商標）オペレーティングシステム用として、ネットワーク透明性を有するグラフィカルユーザインタフェース（ＧＵＩ）を提供する必要に応え、１９８０年代中頃に開発された。Ｘは、Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）およびＩＢＭ（登録商標）のプレゼンテーションマネージャとほぼ同じ方法で、グラフィカル情報の表示および管理を提供する。
【００１５】
Ｘアーキテクチャと他のプラットフォームの色管理の大きな違いは、Ｘプロトコルの構造にある。Ｗｉｎｄｏｗｓ（登録商標）、およびＩＢＭのプレゼンテーションマネージャなどのその他のプラットフォームが、単に、ＰＣにローカルなグラフィカルアプリケーションを表示するのに対し、Ｘプロトコルは、アプリケーションレベルでクライアントサーバ関係を指定することによって、アプリケーションの処理を分散する。アプリケーションの「何をすべきか」の部分をＸクライアントと呼び、これは、Ｘサーバと呼ばれる「どのようにすべきか」の部分、すなわち表示からは分離されている。Ｘクライアントは、一般に、過度の計算能力を備え、かつＸサーバ上で表示を行うリモートマシン上で実行する。その恩恵は、真のクライアント／サーバおよび分散処理である。
【００１６】
図１Ａに示すように、Ｘプロトコルは、アプリケーション２１０ａ、２１０ｂとその表示２４０の間のクライアント／サーバ関係を定義する。これに対応するために、Ｘクライアントと呼ばれるアプリケーション２１０ａ、２１０ｂは、Ｘサーバ２４０として知られる表示から分離される。Ｘクライアント２１０ａ、２１０ｂは、Ｘライブラリ２２０、およびオプションのツールキット２３０を含む。Ｘサーバ２４０は、デバイス２６０を駆動するためのデバイスドライバ２５０を含む。図１Ｂに示すように、Ｘはさらに、デバイス依存２００ｂおよび非依存層２００ａを指定し、また、そのプロトコルを、Ｘクライアント２１０とＸサーバ２４０の間の通信のための非同期ネットワークプロトコルに基づかせることによって、一般的なウィンドウシステムを提供する。事実上、Ｘプロトコルは、オペレーティングシステムおよび基本的なハードウェアの特性を隠す。この、アーキテクチャ上およびエンジニアリング上の違いのマスキングは、Ｘクライアントの開発を容易にし、また、Ｘ　Ｗｉｎｄｏｗ　Ｓｙｓｔｅｍの高可搬性の跳躍台となっている。
【００１７】
Ｘアプローチの利点には以下が含まれる。（１）ローカルおよびネットワークベースのコンピューティングが、ユーザと開発者の両方に、同じように見え、感じられる。（２）Ｘサーバは可搬性が高く、それによって、さまざまな言語およびオペレーティングシステムに対するサポートが可能である。（３）Ｘクライアントも高い可搬性を備えている。（４）Ｘは、ローカルでもリモートでも、バイトストリーム指向のネットワークプロトコルをサポートする。（５）アプリケーションは、パフォーマンス上の不利な条件を受けない。
【００１８】
したがって、Ｘプロトコルの設計では、アプリケーションとその表示の間のクライアント／サーバ関係を指定する。Ｘにおいては、単一の画面、キーボード、マウスを管理するソフトウェアがＸサーバとして知られる。Ｘクライアントは、Ｘサーバ上に表示されるアプリケーションであって、「アプリケーション」と呼ばれることがある。Ｘクライアントは、要求、例えば描画または情報の要求をＸサーバに送る。Ｘサーバは、複数のクライアントから要求を受け付け、情報の要求、ユーザの入力、およびエラーに応答して、Ｘクライアントに応答を返す。
【００１９】
Ｘサーバは、ローカルマシン上で実行し、ネットワークベースの、またはローカルプロセス間通信（ＩＰＣ）ベースのＸクライアントの要求を受け付けて逆多重化し、それらに作用する。Ｘサーバは、（１）画面上に描画の要求を表示し、（２）情報の要求に応答し、（３）要求中のエラーを報告し、（４）キーボード、マウス、および表示デバイスを管理し、（５）キーボードおよびマウスの入力を、ネットワークまたはローカルＩＰＣを介して、それぞれのＸクライアントに多重送信し、（６）ウィンドウの作成、マップ、破壊を行い、（７）ウィンドウ中に書き込み、かつ描画する。
【００２０】
Ｘクライアントは、基本的に、Ｘプロトコルを利用したライブラリ、例えばＸｌｉｂおよびＸｔの助けを借りて書かれたアプリケーションである。Ｘクライアントは、（１）サーバに要求を送り、（２）サーバからイベントを受け取り、（３）サーバからエラーを受け取る。
【００２１】
要求に関しては、Ｘクライアントは、特定の動作が発生するように、例えばウィンドウを作成するように、Ｘサーバに要求を出す。パフォーマンスを向上させるために、Ｘクライアントは、通常、応答を期待することも待つこともない。代わりに、要求の配信は、一般に、高信頼ネットワーク層に任される。Ｘの要求は、４バイトの倍数のいずれかである。
【００２２】
応答に関しては、Ｘサーバは、Ｘクライアントの、応答を要求する特定の要求に応答する。すべての要求が応答を必要とするわけではないことに注意されたい。Ｘ応答は、３２バイト以上の４バイトの倍数のいずれかである。
【００２３】
イベントに関しては、Ｘサーバは、キーボードまたはマウスの入力を含めて、アプリケーションが期待しているイベントを、Ｘクライアントに転送する。ネットワークトラフィックを最小限にするために、期待されているイベントのみがＸクライアントに送られる。Ｘイベントは３２バイトである。
【００２４】
エラーに関しては、Ｘサーバは、要求中のエラーをＸクライアントに報告する。エラーは、イベントのようなものであるが、異なって処理される。Ｘのエラーは、それらの処理を簡単にするために、イベントと同じサイズである。エラーは、３２バイトとして、Ｘクライアントのエラー処理ルーチンに送られる。
【００２５】
Ｘサーバの設計は、それを実装するプラットフォームハードウェアおよびオペレーティングシステムに依存するところが大きい。基礎をなす技術の機能が増大するにつれて、Ｘサーバの能力および機能も増大している。
【００２６】
上述のように、図１Ａは、Ｘプロトコルのデバイス依存層２００ｂおよびデバイス非依存層２００ａがあることを示している。デバイス依存層２００ｂは、Ｗｉｎｄｏｗｓ（登録商標）またはＳｏｌａｒｉｓの場合には、Ｘサーバをネイティブ環境にローカライズする責任を有し、マシンからのデータバイトを異なるバイト順にスワップする責任を有する。バイト順は、Ｘ要求のそれぞれにおいて注目される。層２００ｂは、ハードウェアおよびオペレーティングシステムのアーキテクチャ上の相違を隠し、また、キーボード、マウス、ビデオのデバイスドライバ依存性を保持する。
【００２７】
シングルスレッドアーキテクチャの場合、Ｘサーバは、Ｘクライアント間の逆多重化要求、多重化応答、イベント、およびエラーのスケジューリングにネイティブタイムスライスアーキテクチャを使用した、単一逐次プロセスである。
【００２８】
マルチスレッドアーキテクチャの場合、Ｘサーバは、オペレーティングシステムおよびハードウェアが実行できるようにジョブを複数のスレッドに分割することによって、オペレーティングシステムの性質を利用することができる、マルチスレッドプロセスである。真のプリエンプティブマルチタスク／マルチスレッド環境は、Ｘサーバに高度の能力を提供する。
【００２９】
今日のＸサーバには、ワークステーション、Ｘ端末、ＰＣ　Ｘサーバが含まれる。ワークステーションは、複雑なコンピューティング要件を処理するのに十分に強力であり、通常、ローカルＸクライアントおよびわずかなネットワーク（リモート）Ｘクライアントを表示する。Ｘ端末は、グラフィックス機能を備えたダム端末である。Ｘサーバソフトウェアは、ホストからダウンロードする。Ｘ端末はワークステーションよりも安価であり、かつ維持するのが容易である。ＰＣ　Ｘサーバは、ＰＣおよびリモートアプリケーションサーバのアクセスを、既存のＰＣ投資である１台の一般的なデスクトップに統合し、また、ユーザスキルセット（デスクトップの操作およびアクセス）は、ユーザの好みによりローカルまたはリモートのウィンドウ管理を提供し、使い易い。
【００３０】
Ｘコンソーシアムは、Ｘ１１グラフィックスアーキテクチャを確立した。過去何年かの間に、デスクトップは、生産性またはユーザ中心の環境から、ウェブプロトコルおよびブラウザベースのユーザインタフェースを適合化したものに囲まれた、集中管理に焦点を絞った環境に進化した。ＸコンソーシアムによるＸ　Ｗｉｎｄｏｗ　Ｓｙｓｔｅｍの最新版−略してＸ１１ｒ６．５．１、またはＸ１１、またはＸ１１ｒ６−は、再コーディングなしの高速配置およびセキュリティを可能にする、Ｘアプリケーションとブラウザの統合の問題を扱っている。
【００３１】
Ｘ１１グラフィックスアーキテクチャの最新版は、ワールドワイドウェブ上で、少なくともＸコンソーシアム、ｗｗｗ．ｘ．ｏｒｇから公に入手することができる。要するに、Ｘ１１ｒ６色管理システムは、白色点の適合化、全領域（ｇａｍｕｔ）マッピング、行列の変換、一次元（１−Ｄ）ルックアップテーブル（ＬＵＴｓ）を始めとする動作によって、（１）プラグイン可能な色管理機能をサポートし、かつ、（２）デバイス非依存アプリケーションコンテントのデバイス依存色値への変換をサポートするグラフィックスプロトコルである。
【００３２】
ＸコンソーシアムがＸ１１を確立したとき、Ｘ１１は、３×３行列および３ｚつの１−Ｄルックアップテーブルを使って、標準ＲＧＢ色を特定の表示デバイスのＲＧＢ色に変換する、きわめて単純な色管理機構をサポートしていた。Ｘ１１ｒ６の出現とともに、それまでの単純な解決策を拡張した、Ｔｅｋｔｒｏｎｉｘの研究結果に基づいて、Ｘ色管理システム（Ｘｃｍｓ）アーキテクチャが組み込まれ、きわめて多数のデバイス非依存色空間の間で変換を行ってデバイス依存の色を表示させる方法が提供された。この解決策は、白色点の色度の適合化のサポート、および全領域（ｇａｍｕｔ）圧縮のサポートを追加することに焦点を絞っている。したがって、Ｘ１１ｒ６色管理は、３チャネルのデバイス非依存色から始まって、表示デバイス依存の色に変換するワークフローを採り入れている。
【００３３】
したがって、Ｘ１１ｒ６アーキテクチャは、２種類の色管理解決策を有する。第１の解決策は、ＣＲＴなどの単純な表示デバイスをキャラクタライズするために一般的に使用されている、単純な３×３行列および３つの１−Ｄルックアップテーブルである。第２は、主として白色点の変換および全領域圧縮からなるＸｃｍｓである。Ｘｃｍｓの導入以来、色管理は進歩し、これら２種類の技術に限定された解決策では不十分であることがわかってきた。なぜならば、ほとんどが、Ｘ１１がデスティネーションデバイスのみをサポートし、ソースがデバイス非依存であることを前提としている、ソースおよびデスティネーションデバイスを採り入れているからである。
【００３４】
また、ＩＣＣなど、メタデータデバイスのキャラクタライゼーションプロファイルに基づく最新の色管理解決策は、３つ、４つ、またはそれ以上のデバイス依存色のチャネルで始まって終わるワークフローを採り入れている。現在のところ、Ｘ１１では、デバイス非依存の３色で始まり、ＲＧＢ表示デバイス依存色で終わる色管理ワークフローのみが可能である。ｓＲＧＢおよびｓｃＲＧＢなどの標準色空間に基づく最新の色管理解決策は、メタデータがデバイス自体の中に含まれることを除けば、最新のメタデータ解決策と同様である。したがって、そのワークフローは、ソースおよびデスティネーションデバイスの外では、完全にデバイス非依存であるように見える。基本的に、デバイスの色と標準色空間の間の変換を行うメタデータは、ソースおよびデスティネーションのハードウェア自体の中でのみ存在する。これは、オープンネットワークにおけるユーザの経験およびカラーコンテントの交換をはるかに容易にし、また、複数のアプリケーションまたはユーザからなる複雑なワークフローを可能にしている。
【００３５】
【発明が解決しようとする課題】
今日、存在しているその他の従来技術の解決策は、現在のところＸ１１ｒ６と統合されていず、したがって、単一のアプリケーションに限定されている。したがって、現在の解決策では、カットアンドペースト、アプリケーション間および複雑なワークフローはきわめて限定されている。さらに、現在の解決策は、シアン／マゼンダ／イエロー／ブラック（ＣＭＹＫ）およびその他の色空間に関してきわめて限定されている。したがって、標準Ｘ１１ｒ６グラフィックスプラットフォームが、ＩＣＣ、ｓＲＧＢ、およびｓｃＲＧＢの色管理システムそれぞれについて構築されている、事実上の業界メタデータ色管理標準をサポートすることを可能にする機構の必要がある。さらに、ＩＣＣ、ｓＲＧＢ、ｓｃＲＧＢなど、デバイス依存色で始まって終わる最新の色管理標準のサポートを可能にする機構の必要もある。
【００３６】
【課題を解決するための手段】
上記から考えると、本発明は、異なる色表示特性を有する様々なコンピューティングデバイスに関連して色管理を実現するためのシステムおよび方法を提供する。より詳細には、本発明は、Ｘ１１グラフィックスプラットフォームが、デバイス依存色で始まって終わる、ＩＣＣ、ｓＲＧＢ、ｓｃＲＧＢなどの色管理システムをサポートすることを可能にするための手段を提供する。本発明はまた、Ｘ１１ｒ６内のＣＭＹＫ色空間並びに拡張ＲＧＢ色空間をサポートする手段をも提供し、したがってＸ１１ｒ６グラフィックスプラットフォームを任意の最新色管理標準をサポートするように拡張する。
【００３７】
本発明の様々な実施形態では、方法、コンピュータ可読媒体、およびコンピューティングデバイスを、色管理システムに関連させて提供する。実施形態は、デスティネーションデバイスに移すために、ソースデバイスからデバイス非依存色データを受け取るステップと、ソースデバイスとデスティネーションデバイスの間の色特性の差異を表すデバイスリンクプロファイルを生成するステップと、色管理システムの少なくとも１つのアプリケーションプログラミングインタフェース関数をスプーフする（ｓｐｏｏｆｉｎｇ）ステップと、デスティネーションデバイスのためにデスティネーションデバイス依存色値を生成する関数を呼び出すステップとを含む。
【００３８】
【発明の実施の形態】
本発明のその他の特徴および実施形態を以下に説明する。
【００３９】
本発明による色管理を実現するためのシステムおよび方法を、添付の図面を参照しながらさらに説明する。
【００４０】
概観
したがって、本発明は、Ｘ１１ｒ６グラフィックスプラットフォームのアーキテクチャ上の制約の範囲内で、現在のところ採用されている様々な解決策を使って、最新の色管理を実施するための方法およびシステムを提供する。上述のように、Ｘ１１は、３つのデバイス非依存色で開始し、ＲＧＢ表示デバイス依存色で終わる色管理ワークフローアーキテクチャを採り入れている。したがって、本発明は、ＩＣＣ、ｓＲＧＢ、ｓｃＲＧＢなど、デバイス依存色で開始して終わる最新の色管理のサポートを可能にする機構を提供する。本発明はまた、Ｘ１１ｒ６の範囲内で、ＣＭＹＫ色空間および拡張ＲＧＢ色空間をサポートするために使用することもでき、したがって、Ｘ１１ｒ６グラフィックスプラットフォームを最新のすべての色管理技術をサポートするように拡張することができる。
【００４１】
例示的なネットワークおよび分散環境
当業者は、コンピュータ、あるいはその他のクライアントまたはサーバデバイスを、コンピュータネットワークの一部として、または分散コンピューティング環境中に配置できることを理解されよう。この点で、本発明は、任意の数のメモリまたは記憶ユニット、および任意の数の記憶ユニットまたはボリュームにわたって発生する任意の数のアプリケーションおよびプロセスを有する、色管理プロセスに関連させて使用できる任意のコンピュータシステムに関する。本発明は、ネットワーク環境または分散コンピューティング環境に配置された、リモートまたはローカルの記憶装置を有するサーバコンピュータおよびクライアントコンピュータを備えた環境に適用することができる。本発明はまた、リモートまたはローカルの色管理サービスに関連させて、情報を生成し、受信し、かつ送信するための、プログラミング言語機能、解釈および実行機能を有する、スタンドアロンのコンピューティングデバイスにも適用することができる。
【００４２】
分散コンピューティングは、コンピューティングデバイスとシステムの間の直接交換によって、コンピュータリソースおよびサービスの共用を容易にする。これらのリソースおよびサービスには、情報の交換、キャッシュ記憶、およびファイルのためのディスク記憶が含まれる。分散コンピューティングは、ネットワークの接続性を利用して、クライアントがそれらパワーを結集して企業全体に恩恵をもたらすことを可能にする。この点に関して、様々なデバイスは、本発明の技術を利用することができる色管理プロセスに関与できる、アプリケーション、オブジェクト、またはリソースを備えることができる。
【００４３】
図２Ａは、例示的なネットワークまたは分散コンピューティング環境の概略図を提供している。分散コンピューティング環境は、コンピューティングオブジェクト１０ａ、１０ｂなど、およびコンピューティングオブジェクトまたはデバイス１１０ａ、１１０ｂ、１１０ｃなどを含む。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを含むことができる。オブジェクトは、パーソナルデジタルアシスタント（ＰＤＡ）、テレビ、動画圧縮標準グループ（Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）（ＭＰＥＧ−１）のオーディオレイヤ３（Ａｕｄｉｏ　Ｌａｙｅｒ−３）（ＭＰ３）プレイヤ、パーソナルコンピュータなどの同じまたは異なるデバイスの一部を含む。各オブジェクトは、通信ネットワーク１４を通って別のオブジェクトと通信することができる。このネットワーク自体が、図２Ａのシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができる。本発明の一態様によれば、各オブジェクト１０ａ、１０ｂなど、または１１０ａ、１１０ｂ、１１０ｃなどは、色管理サービスを要求できるアプリケーションを含むことができる。
【００４４】
分散コンピューティングアーキテクチャでは、従来はクライアントとしてのみ使用されてきたコンピュータが、直接、それらの間で通信を行い、何の役割がそのネットワークにとって最も効率的であるかを想定して、クライアントとサーバの両方として動作できる。これによって、サーバへの負荷が低減され、また、すべてのクライアントが他のクライアント上の利用可能なリソースにアクセスすることが可能になり、それによって、ネットワーク全体の機能および効率性が向上する。したがって、本発明による色管理サービスが、クライアントおよびサーバの間で分散され、ネットワーク全体にとって効率的な方法で動作することができる。
【００４５】
分散コンピューティングは、企業が、多様な地理的境界を超えてサービスおよび機能をより効率的に配信するための助けとなり得る。さらに、分散コンピューティングは、ネットワークキャッシング機構として動作して、データを、それが消費される位置のより近くに移動させることができる。分散コンピューティングはまた、複数コンピューティングネットワークが、知的エージェントを使って動的に協働することも可能にする。エージェントは、ピアコンピュータ上に常駐し、様々な種類の情報をあちこちに伝達する。エージェントはまた、その他のピアシステムのためにタスクを開始することができる。例えば、知的エージェントを使って、ネットワーク上のタスクの優先順位を決め、トラフィックフローを変更し、ファイルをローカルにサーチし、または、ウイルスなどの異常挙動の判定を行って、ネットワークに悪影響を及ぼす前にそれを停止することができる。あらゆる種類のその他のサービスも可能であると考えられる。実際、グラフィカルオブジェクトまたはその他の色データを１つまたは複数のロケーションに物理的に配置することができるので、このようなシステムでは、色管理サービスを分散する能力は非常に有用である。
【００４６】
１１０ｃなどのオブジェクトを、別のコンピューティングデバイス１０ａ、１０ｂなど、または１１０ａ、１１０ｂなどの上でホストすることができることも理解されよう。したがって、図示の物理的環境は、接続されているデバイスをコンピュータとして示しているかもしれないが、このような説明図は例にすぎず、代わりに、物理的環境を、ＰＤＡ、テレビ、ＭＰ３プレイヤなどの様々なデジタルデバイス、インタフェースなどのソフトウェアオブジェクト、およびＣＯＭオブジェクトなどを含むものとして図示または記載することもできる。
【００４７】
分散コンピューティング環境をサポートする、様々なシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティングシステム同士を、有線または無線システムによって、ローカルネットワークまたは広域分散ネットワークを介して接続することができる。現在、ネットワークの多くはインターネットに結合されている。インターネットは、広域分散コンピューティングにインフラストラクチャを提供し、多くの異なるネットワークを包含している。
【００４８】
ホームネットワーキング環境では、それぞれが一意のプロトコルをサポートできる、送電線、データ（無線および有線の両方）、音声（例えば、電話）、エンタテインメントメディアなど、少なくとも４種類の異種の伝送媒体がある。電灯のスイッチおよび電気器具など、ほとんどの家庭用制御装置は、接続性のために送電線を使うことができる。データサービスは、ブロードバンド（例えば、ＤＳＬまたはケーブルモデムのいずれか）として家庭に入ってくることができ、無線、例えばホーム無線周波数（ＨｏｍｅＲＦ）または８０２．１１ｂ、あるいは有線、例えばホーム電話線ネットワーキング機器（Ｈｏｍｅ　Ｐｈｏｎｅｌｉｎｅ　Ｎｅｔｗｏｒｋｉｎｇ　Ａｐｐｌｉａｎｃｅ）（ＰＮＡ）、Ｃａｔ５、さらには送電線の接続性のいずれかを使って、家庭内においてアクセスすることができる。音声トラフィックは、有線、例えばＣａｔ３、または無線、例えば、セルフォンのいずれかとして家庭に入ってくることができ、Ｃａｔ３配線を使って、家庭内で配布することができる。エンタテインメントメディア、またはその他のグラフィカルデータは、衛星またはケーブルのいずれかを通じて入ってくることができ、一般に、同軸ケーブルを使って、家庭内で配布される。メディアデバイスのクラスタのデジタル相互接続として、ＩＥＥＥ１３９４およびＤＶＩも出現している。これらのネットワーク環境、およびプロトコル標準として出現する可能性があるその他の環境はすべて、インターネットを通って外部の世界に接続できるイントラネットを形成するために相互接続することができる。簡単に言えば、データの記憶および伝送のために様々な異なるソースが存在し、したがって、コンピューティングデバイスは、前進しながら、本発明による、グラフィックスオブジェクトの色管理に付随してアクセスまたは利用するデータ、またはその他の色データを共用するための方法を必要とするであろう。
【００４９】
さらに、色は、様々な物理的またはその他の現象を表す有効な手段であり、したがって、データが磁気共鳴イメージングデータ、超音波データ、グラフィックス等化データなどであろうと、色は、人間が素早く知覚分析できるようにデータを提示する、適切な方法であることが多い。したがって、本明細書で考える色データのソースは無限であり、「色」データとみなされる前に、一連の変換を受けることがある。
【００５０】
インターネットとは、通常、コンピュータネットワーキングの技術分野では周知の伝送制御プロトコル／インタフェースプログラム（ＴＣＰ／ＩＰ）の一連のプロトコルを利用する、ネットワークおよびゲートウェイの集合を指す。インターネットは、ユーザがネットワーク上で対話し、かつ情報を共用することを可能にする、ネットワーキングプロトコルを実行するコンピュータによって相互接続された、地理的に分散されたリモートコンピュータネットワークのシステムとして説明することができる。このような広範にわたる情報の共用のために、インターネットなどのリモートネットワークは、これまでのところ、一般に、開発者が、基本的に制約なしに、特定の動作またはサービスを実行するためのソフトウェアアプリケーションを設計することができるオープンシステムに進化してきた。
【００５１】
したがって、（この）ネットワークインフラストラクチャは、クライアント／サーバ、ピアツーピア、またはハイブリッドアーキテクチャなど、多数のネットワークトポロジを可能にする。「クライアント」は、それが関連していないその他のクラスまたはグループのサービスを使用する、クラスまたはグループのメンバである。したがって、コンピューティングにおいては、クライアントはプロセス、すなわち、大ざっぱに言うと、別のプログラムが提供するサービスを要求する、１組の命令またはタスクである。クライアントプロセスは、その他のプログラムまたはサービス自体に関する動作の詳細を何も「知る」必要なく、要求したサービスを利用する。クライアント／サーバアーキテクチャ、特にネットワークシステムにおいては、クライアントは、通常、別のコンピュータ、例えばサーバが提供する共用ネットワークリソースにアクセスするコンピュータである。図２Ａの例では、コンピュータ１１０ａ、１１０ｂなどをクライアントとみなすことができ、コンピュータ１０ａ、１０ｂなどをサーバとしてみなすことができる。この場合、サーバ１０ａ、１０ｂなどはデータを保持しており、そのデータは、次いで、クライアントコンピュータ１１０ａ、１１０ｂなどにおいて複製される。
【００５２】
サーバは、一般に、インターネットなどのリモートネットワーク上でアクセス可能なリモートコンピュータシステムである。クライアントプロセスが第１のコンピュータシステムにおいてアクティブであり、サーバプロセスが第２のコンピュータシステムにおいてアクティブであることができる。それらは通信媒体を介して互いに通信を行うことができ、したがって分散された機能を提供して、複数のクライアントがサーバの情報収集機能を利用することを可能にしている。
【００５３】
クライアントおよびサーバは、プロトコル層が提供する機能を利用して、互いに通信を行う。例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、ワールドワイドウェブ（ＷＷＷ）に関連して使用される一般的なプロトコルである。一般に、ユニバーサルリソースロケータ（ＵＲＬ）またはインターネットプロトコル（ＩＰ）アドレスなどのコンピュータネットワークのアドレスを使って、サーバまたはクライアントコンピュータを互いに識別させる。そのネットワークアドレスをＵＲＬアドレスと呼ぶことができる。例えば、通信媒体を介して通信を提供することができる。特に、高容量通信のために、クライアントおよびサーバをＴＣＰ／ＩＰ接続によって互いに結合することができる。
【００５４】
したがって、図２Ａは、サーバが、ネットワーク／バスを介してクライアントコンピュータと通信を行っている、本発明を利用することができる例示的なネットワークまたは分散環境を示す。より詳細には、本発明に従って、いくつかのサーバ１０ａ、１０ｂなどが、ＬＡＮ、ＷＡＮ、イントラネット、インターネットであってよい通信ネットワーク／バス１４を介して、ポータブルコンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク化された器具、またはビデオカセットレコーダ（ＶＣＲ）、テレビ（ＴＶ）、オーブン、照明、ヒータなどのその他のデバイスなどのいくつかのクライアントまたはリモートコンピューティングデバイス１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどと相互接続されている。したがって、本発明を、グラフィカルオブジェクトまたはいずれかのその他の色データを、それに関連させて処理または表示することが望ましい、いずれかのコンピューティングデバイスに適用することができる。
【００５５】
通信ネットワーク／バス１４が例えばインターネットであるネットワーク環境では、サーバ１０ａ、１０ｂなどは、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどが、ＨＴＴＰなどのいくつかの既知のプロトコルのいずれかによって通信を行うウェブサーバであってよい。サーバ１０ａ、１０ｂなどはまた、分散コンピューティング環境の特性であるように、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどとしてサービスすることもできる。通信は、必要に応じて、有線または無線であってよい。クライアントデバイス１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどは、通信ネットワーク／バス１４を介して通信を行うことができる場合もできない場合もあり、また、それに関連して独立した通信を行うことがある。例えば、ＴＶまたはＶＣＲの場合は、それを制御するためのネットワーク化された側面がある場合もない場合もある。各クライアントコンピュータ１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなど、およびサーバコンピュータ１０ａ、１０ｂなどは、様々なアプリケーションプログラムモジュールまたはオブジェクト１３５を備えることができ、また、ファイルを記憶することができ、またはファイルの一部をダウンロードまたは移送することができる、様々なタイプの記憶エレメントまたはオブジェクトへの接続またはアクセスが可能である。いずれかのコンピュータ１０ａ、１０ｂ、１１０ａ、１１０ｂなどは、本発明に従って、データベース２０またはその他の記憶エレメント、例えば、色オブジェクトまたはデータ、あるいは本発明に従って処理された中間色オブジェクトまたはデータを記憶するためのデータベースまたはメモリ２０などのメンテナンスおよび更新を行う責任を負うことがある。したがって、コンピュータネットワーク／バス１４にアクセスして対話することができるクライアントコンピュータ１１０ａ、１１０ｂなど、クライアントコンピュータ１１０ａ、１１０ｂなどおよびその他の同様のデバイスと対話することができるサーバコンピュータ１０ａ、１０ｂなど、およびデータベース２０を有するコンピュータネットワーク環境において本発明を利用することができる。
【００５６】
例示的コンピューティングデバイス
図２Ｂおよび以下の説明は、本発明を実施することができる、適切なコンピューティング環境を簡単に概説することを意図している。しかし、上述のように、本発明に関連して、ハンドヘルド、ポータブル、およびその他のコンピューティングデバイス、およびあらゆる種類のコンピューティングオブジェクトを使用することが考えられることを理解されたい。したがって、以下では汎用コンピュータを説明しているが、それは一例に過ぎず、本発明は、ネットワーク／バスとの相互運用性および相互作用性を有するシンクライアントなど、その他のコンピューティングデバイスを使っても実施できる。したがって、本発明を、きわめてわずかのまたは最小限のクライアントリソースしか含まれない、ネットワーク化されたホストサービスの環境、例えば、クライアントデバイスが、単に、器具中に置かれたオブジェクトなど、ネットワーク／バスへのインタフェースとして、またはその他のコンピューティングデバイスおよびオブジェクトとしての役割を果たすネットワーク環境において実施することができる。基本的に、データを記憶することができる、またはデータを検索することができる場所はどこでも、本発明の色管理技術の動作にとって望ましい、または適した環境である。
【００５７】
必ずしも必要ではないが、本発明を、デバイスまたはオブジェクトのためのサービスの開発者が使用できるように、オペレーティングシステムによって実施することができ、かつ／または、本発明の色管理技術に関連して動作するアプリケーションソフトウェア内に含むことができる。ソフトウェアは、クライアントワークステーション、サーバまたはその他のデバイスなど、１つまたは複数のコンピュータによって実行される、プログラムモジュールなどの一般的なコンピュータ実行可能命令の状況で記述することができる。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。一般に、プログラムモジュールの機能は、様々な実施形態で所望の通りに結合または分散することができる。さらに、当業者は、本発明を、その他のコンピュータシステム構成で実施できることを理解されよう。本発明とともに使用するのに適した、その他の周知のコンピューティングシステム、環境、および／または構成には、パーソナルコンピュータ（ＰＣ）、自動支払機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル家庭用電子機器、ネットワークＰＣ、電気器具、照明、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが非限定的に含まれる。本発明はまた、通信ネットワーク／バスまたはその他のデータ伝送媒体を通じてリンクされているリモート処理デバイスによってタスクが実行される、分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶デバイスを含めて、ローカルおよびリモートコンピュータの記憶媒体の両方に配置することができ、クライアントノードがサーバノードとして挙動することができる。
【００５８】
したがって、図２Ｂは、本発明を実施することができる、適切なコンピューティングシステム環境１００の例を示す。ただし、上記で明らかにしたように、コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関していかなる限定も示唆するものではない。また、コンピューティングシステム環境１００を、例示的動作環境１００中に示すコンポーネントのいずれか１つまたはその組合せに関し、それに依存するものまたはそれを要求するものとして解釈してはならない。
【００５９】
図２Ｂを参照すると、本発明を実施するための例示的システムは、コンピュータ１１０の形の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、処理装置１２０、システムメモリ１３０、および、システムメモリを始めとする様々なシステムコンポーネントを処理装置１２０に結合する、システムバス１２１が非限定的に含まれる。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて、様々なバスアーキテクチャを使ったいくつかのタイプのバス構造のいずれかであってよい。例として、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子機器規格協会（Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）（ＶＥＳＡ）ローカルバス、および周辺コンポーネント相互接続（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）（ＰＣＩ）バス（メザニンバスとしても知られる）が非限定的に含まれる。
【００６０】
コンピュータ１１０は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスできる任意の利用可能媒体であってよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方が含まれる。例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が非限定的に含まれる。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための、任意の方法または技術で実装された揮発性および非揮発性、リムーバブルおよび非リムーバブル媒体の両方を含む。コンピュータ記憶媒体には、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気的消去可能なプログラム可能読取りメモリ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）（ＥＥＰＲＯＭ）、フラッシュメモリまたはその他のメモリ技術、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたはその他の磁気記憶デバイス、あるいは、所望の情報を記憶するために使用することができ、コンピュータ１１０がアクセス可能な任意のその他の媒体が非限定的に含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波やその他の伝送機構などの変調データ信号に組み込み、また、いずれかの情報配信媒体を含む。「変調データ信号」という用語は、その特性の１つまたは複数を、情報を信号に符号化するような方法で設定する、または変化させる信号を意味する。例として、通信媒体には、有線ネットワークや直線有線などの有線媒体、および音響、ＲＦ、赤外線およびその他の無線媒体などの無線媒体が非限定的に含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲内に含まれるものとする。
【００６１】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動の間などにコンピュータ１１０内のエレメント間の情報の転送を援助する基本ルーチンを含む、基本入力／出力システム１３３（ＢＩＯＳ）は、一般にＲＯＭ１３１に記憶されている。ＲＡＭ１３２は、一般に、処理装置１２０が直ちにアクセス可能で、かつ／または現在、それによって作動されているデータおよび／またはプログラムモジュールを含む。図２Ｂは、例として、非限定的に、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００６２】
コンピュータ１１０はまた、その他のリムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ記憶媒体も含むことができる。例にすぎないが、図２Ｂは、非リムーバブルの不揮発性磁気媒体からの読取り、またはそこへの書込みを行うハードディスクドライブ１４１、リムーバブルの不揮発性磁気ディスク１５２からの読取り、またはそこへの書込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭまたはその他の光媒体などのリムーバブルの不揮発性光ディスク１５６からの読取り、またはそこへの書込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用できるその他のリムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが非限定的に含まれる。ハードディスクドライブ１４１は、一般に、インタフェース１４０などの非リムーバルメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般に、インタフェース１５０などのリムーバルメモリインタフェースによって、システムバス１２１に接続される。
【００６３】
上記に説明し、図２Ｂに示すドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶をコンピュータ１１０に提供する。図２Ｂでは、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているものとして示してある。これらのコンポーネントが、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じ場合も異なる場合もあることに注意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、ここでは異なる番号を付けてある。ユーザは、キーボード１６２、および一般にマウス、トラックボール、またはタッチパッドと呼ばれているポインティングデバイス１６１などの入力デバイスを通して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバス１２１に結合されているユーザ入力インタフェース１６０を介して、処理装置１２０に接続されることが多い。しかし、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、その他のインタフェースおよびバス構造によっても接続することができる。ノースブリッジなどのグラフィックスインタフェース１８２も、システムバス１２１に接続することができる。ノースブリッジは、ＣＰＵまたはホスト処理装置１２０と通信するチップセットであり、アクセラレーテッドグラフィックスポート（ａｃｃｅｌｅｒａｔｅｄ　ｇｒａｐｈｉｃｓ　ｐｏｒｔ）（ＡＧＰ）通信を行う責任を有する。１つまたは複数のグラフィックス処理装置（ＧＰＵ）１８４は、グラフィックスインタフェース１８２と通信することができる。この点に関しては、ＧＰＵ１８４は、一般に、レジスタ記憶などのオンチップメモリ記憶を含み、また、ビデオメモリ１８６と通信する。しかし、ＧＰＵ１８４は、コプロセッサの一例にすぎず、したがって、コンピュータ１１０には様々なコプロセッシングデバイスを含めることができる。モニタ１９１またはその他のタイプの表示デバイスも、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続され、ビデオインタフェース１９０は、ビデオメモリ１８６と通信することができる。モニタ１９１に加えて、コンピュータは、スピーカ１９７およびプリンタ１９６などのその他の周辺出力装置も含むことができ、これらは、出力周辺インタフェース１９５を介して接続することができる。
【００６４】
コンピュータ１１０は、リモートコンピュータ１８０などの１台または複数のリモートコンピュータへの論理接続を使って、ネットワーク環境または分散環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他の一般的なネットワークノードであってよく、一般に、コンピュータ１１０に関して上記の説明したエレメントの多くまたはすべてを含む。ただし、図２Ｂには、メモリ記憶デバイス１８１しか示していない。図２Ｂに示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、その他のネットワーク／バスも含むことができる。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【００６５】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を通してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、一般に、モデム１７２、またはインターネットなどの広域ネットワーク１７３を介して通信を確立するためのその他の手段を含む。モデム１７２は、内部でも外部でもよく、ユーザ入力インタフェース１６０またはその他の適切な機構を介して、システムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示しているプログラムモジュール、またはその一部を、リモートメモリ記憶デバイスに記憶することができる。図２Ｂは、一例として、非限定的に、リモートアプリケーションプログラム１８５を、メモリデバイス１８１上に常駐するものとして示す。示してあるネットワーク接続は例であって、コンピュータ間の通信リンクを確立するその他の手段を使用できることを理解されよう。
【００６６】
例示的な分散コンピューティングフレームワークまたはアーキテクチャ
パーソナルコンピューティングとインターネットの集中を踏まえて、様々な分散コンピューティングフレームワークが開発されており、また開発されつつある。個人とビジネスユーザは、同様に、シームレスな相互作用が可能で、かつウェブを可能にする、アプリケーションおよびコンピューティングデバイスのためのインタフェースを提供され、それによって、コンピューティング活動のウェブブラウザ指向またはネットワーク指向がますます強まっている。
【００６７】
例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）の．ＮＥＴプラットフォームは、サーバ、ウェブベースのデータ記憶などのビルディングブロックサービス、およびダウンロード可能なデバイスソフトウェアを含む。一般的に言って、．ＮＥＴプラットフォームは以下を提供する。すなわち、（１）全範囲のコンピューティングデバイスをともに作動させ、また、それらすべての上で、自動的にユーザ情報を更新および同期させる能力、（２）ＨＴＭＬよりもＸＭＬを多く利用することによって可能になる、ウェブサイトのための拡張された対話機能、（３）例えば電子メールなどの様々なアプリケーション、またはＯｆｆｉｃｅ．ＮＥＴなどのソフトウェアの管理のために、中央の起点からユーザに対してカスタマイズしたアクセス、およびプロダクトおよびサービスの配信を行うことを特徴とするオンラインサービス、（４）情報へのアクセスの効率および容易性を向上させる集中データ記憶、およびユーザおよびデバイスの間の情報の同期化、（５）電子メール、ファックス、電話など、様々な通信媒体を統合する能力、（６）開発者の場合には、それによって生産性が向上し、プログラミングエラーの数が低減される、再使用可能モジュールを作成する能力、およびさらに（７）多くのその他のクロスプラットフォーム統合機能。
【００６８】
本明細書中の例示的実施形態は、コンピューティングデバイス上に常駐するソフトウェアとの関連において説明しているが、本発明の１つまたは複数の部分を、オペレーティングシステム、アプリケーションプログラミングインタフェース（ＡＰＩ）、またはコプロセッサと要求しているオブジェクトの間の「媒介者」オブジェクトによって実施することもでき、したがって、色管理サービスを．ＮＥＴの言語およびサービスすべてによって、また、さらに他の分散コンピューティングフレームワークにおいて、実施、サポートまたはアクセスすることが可能である。
【００６９】
Ｘ１１における色管理
発明の背景の説明で述べたように、Ｘ１１ｒ６色管理システムは、白色点の適合化、全領域マッピング、行列の変換および１−Ｄルックアップテーブルを始めとする動作によって、プラグイン可能な色管理機能をサポートし、また、デバイス非依存アプリケーションコンテントのデバイス依存色値への変換をサポートするグラフィックスプロトコルである。
【００７０】
Ｘ１１ｒ６アーキテクチャは、２種類の色管理解決策を有する。第１のソリューションは、一般に、ＣＲＴなどの単純な表示デバイスをキャラクタライズするために使用されている単純な３×３行列および３つの１−Ｄルックアップテーブルである。第２は、主として白色点の変換および全領域圧縮からなるＸｃｍｓである。Ｘｃｍｓの導入以来、色管理は進歩し、これら２種類の技術に限定された解決策では不十分であることがわかってきた。なぜならば、ほとんどの場合、Ｘ１１がデスティネーションデバイスのみをサポートする、ソースおよびデスティネーションデバイスを前提としており、また、ソースがデバイス非依存であることを前提としているからである。幸い、Ｘｃｍｓは、このアーキテクチャの範囲内で、よりフレキシブルな実装を可能にする。
【００７１】
ＣＩＥＬＡＢは、１９７６年にＣＩＥが、人間の視覚系統（ＨＶＳ）を表すことに関し、それまでのＣＩＥＬＵＶよりも、それらの値において一様な色空間をよりよく示すモデルとして採用したシステムである。ＣＩＥＬＡＢは、それより前の（１９４２）Ｌ、ａ、ｂと呼ばれるＲｉｃｈａｒｄ　Ｈｕｎｔｅｒのシステムに基づいた反対色システムである。色対立は、光学の神経と脳の間のどこかで、レチナールの色刺激が、明と暗、赤と緑、青と黄の対比に変換されるという、１９６０年代中頃の発見に関連する。ＣＩＥＬＡＢは、これらの値を３つの軸、Ｌ＊、ａ＊、ｂ＊で表す。完全な学名は、１９７６ＣＩＥ　Ｌ＊ａ＊ｂ＊空間という。
【００７２】
中央の垂直軸は、Ｌ＊として示される明度を表し、明度の値は０（黒）から１００（白）まである。色軸は、色が赤と緑に両方ではあり得ず、青と黄の両方でもあり得ないという事実に基づいている。なぜならば、これらの色は互いに対立するからである。それぞれの軸上で、値は正から負まである。ａ〜ａ’軸の上では、正の値は赤の量を表し、負の値は緑の量を表す。ｂ〜ｂ’軸の上では、黄が正、青が負である。両軸とも、ゼロはニュートラルグレイである。ＣＩＥＸＹＺデータ構造はＸ１１が利用するデータ構造であり、指定された色空間の特定の色のＸ、Ｙ、Ｚ座標を含む。
【００７３】
図３Ａに、Ｘ１１ｒ５がどのように動作するかという例を示す。この場合、Ｘ１１中に、ＤｉｒｅｃｔＣｏｌｏｒまたはＴｒｕｅＣｏｌｏｒ面を想定する。デバイス非依存のＲＧＢ値から、表示デバイス依存の、輝度に対して直線のＲＧＢ値が、３×３行列３００によって生成される。次いで、所与のガンマ（γ）値、例えばγ＝１．０について、表示デバイス依存の非線形ＲＧＢ値が３つの１−Ｄルックアップテーブル（ＬＵＴｓ）３１０によって生成される。これらのデバイス依存値は、次いで、表示デバイス３２０によって再生される。この点に関しては、表示デバイス３２０は、表示デバイス３２０に固有の３×３行列および１−Ｄルックアップテーブルを提供する。
【００７４】
特に、Ｘ色空間変換コンテキスト（ＸＣＣＣ）は、関数、ｔｏＣＩＥＸＹＺおよびｆｒｏｍＣＩＥＸＹＺへの２つのジェネリックポインタをサポートする。図３Ｂに、Ｘ１１ｒ６がどのように動作するかの例を示す。デバイス非依存色値、例えば、ＣＩＥＬＡＢ、ＣＩＥＬＵＶ、ＣＩＥＹｘｙ、ＣＩＥＸＹＺ、ＴｅｋＨＶＣ、ｃｍｄＰａｄから、Ｘ１１のライブラリ、Ｘｌｉｂ中の標準色空間変換機構によってＣＩＥＸＹＺ値が生成される。次いで、Ｘｃｍｓ白色点変換コンポーネント３３０によって、デバイス非依存の白色点ＣＩＥＸＹＺ値が生成される。次いで、Ｘｃｍｓ全領域圧縮変換コンポーネント３４０によって、デバイス非依存全領域ＣＩＥＸＹＺ値が生成される。次いで、上記で一部を説明したＺＸ１１ｒ５機構、またはＸＣＣＣのｆｒｏｍＣＩＥＸＹＺのいずれかによって、デバイス依存ＲＧＢ値が生成される。
【００７５】
したがって、図４Ａに示すように、Ｘプラットフォームにおける色管理は、Ｘ１１データ構造を生成するように、またはＸ１１データ構造をデバイス依存値に変換するように動作する、ｔｏＣＩＥＸＹＺおよびｆｒｏｍＣＩＥＸＹＺ関数によって行われる。
【００７６】
図４Ｂに、標準Ｗｉｎｄｏｗｓ（登録商標）の色管理モジュール（ＣＭＭ）の動作を示す。ＣＭＭは、標準ＣＭＭ関数によって、様々なソースデバイス依存色空間およびデバイスプロファイルのいずれかを、デバイス非依存色空間、例えば、ＩＣＣ、ｓＲＧＢ、ｓｃＲＧＢに変換することができる。したがって、デスティネーションデバイスプロファイルにより、非依存色空間値はそのデスティネーションデバイスに適した色空間に変換される。
【００７７】
図４Ｃに示すように、本発明は、ＸＣＣＣのｔｏＣＩＥＸＹＺおよびｆｒｏｍＣＩＥＸＹＺ関数を、標準ＩＣＣプロファイルおよび色管理メソッドによって提供されるサポートで増補する機構を提供する。
【００７８】
これを遂行するためには、まず、ユーザインタフェース（ＵＩ）を介して明示的に、あるいは、デバイスに関連付けることによって黙示的に、適切なソースおよびデスティネーションプロファイルを指定する。これらの２つのデバイスプロファイルから、標準Ｗｉｎｄｏｗｓ（登録商標）ＣＭＭ関数を使って、ソースデバイスからデスティネーションデバイスに直接、変換するデバイスリンクプロファイルを作成することができ、それによって、ソースデバイスとデスティネーションデバイスの色特性の差異の最終的な関係が決まる。Ｘ１１のｆｒｏｍＣＩＥＸＹＺ関数ポインタが、デバイスリンクプロファイルを使ってソースの色または画像をデスティネーションの色または画像に変換する、標準ＣＭＭベースの色変換関数を指すようにすることによって、ソースデバイスからデスティネーションデバイスへの値の受け渡しが行われるようにするために、Ｘ１１アーキテクチャをプロセスに導入する。標準ＣＭＭのサポートは、Ｗｉｎｄｏｗｓ（登録商標）イメージカラーマッチング（Ｉｍａｇｅ　Ｃｏｌｏｒ　Ｍａｔｃｈｉｎｇ）（ＩＣＭ）インタフェースまたはその他のＩＣＣ色管理システムインタフェースから、Ｘ１１に移植することができる。
【００７９】
図５Ａ〜図５Ｃは、本発明のいくつかの例を示す。これらの例では、説明をわかりやすくするために、白色点、全領域圧縮、およびその他の機能が、デフォルトでヌルオペレーションになっている。
【００８０】
図５Ａでは、ソースデバイスに、ＲＧＢまたはｓＲＧＢソースデバイス色が存在している。ソースデバイスとデスティネーションデバイスの間のデバイスリンクプロファイルの計算の後、本発明は、ソースデバイスＲＧＢがＣＩＥＸＹＺであるとＸシステムに思い込ませるように動作する。次いで、デバイスリンクプロファイルを引数として含むｆｒｏｍＣＩＥＸＹＺ関数によって、デバイス依存のデスティネーション色が生成される。
【００８１】
図５Ｂでは、ソースデバイスにＣＭＹＫソースデバイス色が存在している。ソースデバイスとデスティネーションデバイスの間のデバイスリンクプロファイルの計算の後、本発明は、ソースデバイスＲＧＢがｃｍｓＰａｄ　ＸｃｍｓＣｏｌｏｒタイプであるとＸシステムに思い込ませるように動作する。次いで、デバイスリンクプロファイルを引数として含むｆｒｏｍＣＩＥＸＹＺ関数によって、デバイス依存デスティネーション色が生成される。
【００８２】
図５Ｃでは、ソースデバイスにｓｃＲＧＢソースデバイス色が存在している。ソースデバイスとデスティネーションデバイスの間のデバイスリンクプロファイルの計算の後、デバイスリンクプロファイルを含むｆｒｏｍＣＩＥＸＹＺ関数によって、デバイス依存デスティネーション色が生成される。あるいは、デバイスリンクプロファイルを含むｆｒｏｍＣＩＥＸＹＺ関数によって、拡張デバイス依存デスティネーション色が生成される。このような変換では、Ｘｃｍｓｃｏｌｏｒｓが符号なし短整数（ｕｎｓｉｇｎｅｄ　ｓｈｏｒｔｓ）であり、ｓｃＲＧＢが符号付きフロートであるという事実に対して補正がなされる。任意選択で、さらに３つの１−Ｄルックアップテーブルによって色調圧縮（ｔｏｎａｌ　ｃｏｍｐｒｅｓｓｉｏｎ）を別に行うことができる。
【００８３】
ＲＩＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、ＲＯＭＭ　ＲＧＢ（ＥＫ／ＰＩＭＡ）、ｅｓＲＧＢ（ＨＰ／ＰＩＭＡ）など、その他の色管理解決策を、上記の図５Ｃの例を使ってサポートすることができる。本発明の上述の例のそれぞれにおいて、Ｘの関数、ｆｒｏｍＣＩＥＸＹＺおよびｔｏＣＩＥＸＹＺが、モデムの色管理システムからデータを受け取るように思い込まされ、またはスプーフ（気づかれないように他のプログラムやクライアントを装うプログラムを利用したりしてターゲットをだますこと（偽装））される。
【００８４】
ＡＰＩのスプーフィングに関するさらなる詳細については、本明細書では、２つの非限定的な代替案を提案する。第１に、デバイス非依存アプリケーションコンテントからデバイス依存色値に移動するときに、本発明は、ｆｒｏｍＣＩＥＸＹＺ関数をスプーフして、実際にデバイス依存色値をＣＩＥＸＹＺに変換し、次いで、３×３行列および１−Ｄルックアップテーブルを使って、特定の出力デバイスをキャラクタライズする。デバイス依存（ｄｄ）からデバイス非依存（ｄｉ）の値に変換するために、このプロセスが逆に行われ、ｔｏＣＩＥＸＹＺ　ＡＰＩが代わりにスプーフされる。
【００８５】
あるいは、デバイス非依存アプリケーションコンテントからデバイス依存色値に移動するときに、本発明は、ｆｒｏｍＣＩＥＸＹＺ　ＡＰＩをスプーフして、実際にデバイス依存色値をＣＩＥＸＹＺに変換し、次いで、３×３行列を識別行列に設定し、１−Ｄルックアップテーブルを識別ルックアップテーブル（ｉｄｅｎｔｉｆｙ　ＬＵＴｓ）に設定して、行列およびルックアップテーブルではキャラクタライズできない複雑なデスティネーションデバイスをサポートする。デバイス依存（ｄｄ）からデバイス非依存（ｄｉ）の値に変換するために、このプロセスが逆に行われ、ｔｏＣＩＥＸＹＺ　ＡＰＩが代わりにスプーフされる。
【００８６】
本明細書で使用しているように「ｆｒｏｍＣＩＥＸＹＺをスプーフする」または「ｔｏＣＩＥＸＹＺをスプーフする」とは、プロトコルデフォルトで供給する関数へのポインタを、実際にＩＣＣ互換性色管理モジュールを呼び出して、色をｄｄからｄｉに、またはｄｄからｄｉに変換するカスタム関数に置き換えることを意味する。
【００８７】
上述のように、本発明の例示的実施形態を、様々なコンピューティングデバイスおよびネットワークアーキテクチャに関連させて説明してきたが、その基礎をなすコンセプトは、色管理を行うことが望ましいどのコンピューティングデバイスまたはシステムにも適用できる。したがって、本発明による改良された信号処理を提供するための技術は、様々なアプリケーションおよびデバイスに適用できる。例えば、本発明のアルゴリズムを、デバイス上に別個のオブジェクトとして、別のオブジェクトの一部として、サーバからダウンロード可能なオブジェクトとして、デバイスまたはオブジェクトとネットワークの間の「媒介者」として、分散オブジェクトとして提供することにより、コンピューティングデバイスのオペレーティングシステムに適用することができる。例示的プログラミング言語、名称、および例を、ここでは様々な選択を代表するものとして選択しており、それらの言語、名前および例は、限定することを意図したものではない。当業者は、本発明によって達成される色管理と同じ、同様の、または同等の色管理を達成するオブジェクトコードを提供する、多くの方法があることを理解されよう。
【００８８】
本明細書で説明している様々な技術は、ハードウェアまたはソフトウェア、あるいは必要に応じてその両方の組合せに関連させて実施することができる。したがって、本発明の方法および装置、またはそれらの特定の態様または部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、またはいずれかの他の機械可読記憶媒体などの具体的な媒体で具現化されるプログラムコード（すなわち、命令）の形をとることができ、この場合、コンピュータなどの機械にプログラムコードがロードされ、それによって実行されると、その機械が本発明を実施する装置になる。プログラムコードをプログラマブルコンピュータ上で実行する場合、コンピュータデバイスは、一般に、プロセッサ、そのプロセッサが読むことができる記憶媒体（揮発性および不揮発性メモリ、および／または記憶エレメントを含む）、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含む。本発明の信号処理サービスを利用できる、例えばデータ処理ＡＰＩなどを利用できる１つまたは複数のプログラムを、好ましくは、コンピュータシステムと通信を行うように、高水準手続き形またはオブジェクト指向プログラミング言語で実装する。しかし、プログラムは、所望によりアセンブラまたは機械言語で実装することもできる。どの場合も、その言語は、コンパイル済みまたはインタプリタ型言語であってよく、ハードウェアの実装と組み合わせることができる。
【００８９】
本発明の方法および装置はまた、電気配線またはケーブルを介して、光ファイバを通して、またはその他のいずれかの伝送形態でなど、特定の伝送媒体を介して伝送されるプログラムコードの形で具現化される通信によって実施することもできる。この場合、そのプログラムコードが、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなどの機械によって受信され、そこにロードされ、それによって実行された場合、上述の例示的実施形態で説明した信号処理機能を有する受信機械が、本発明を実施するための装置になる。汎用プロセッサ上に実装した場合、プログラムコードはそのプロセッサと結合して、本発明の機能を呼び出すように動作する独特な装置を提供する。さらに、本発明と関連して使用するいずれかの記憶技術は、常に、ハードウェアとソフトウェアの組合せであってよい。
【００９０】
本発明を、様々な図面の好ましい実施形態に関連して説明してきたが、その他の同様の実施形態を使用することができ、または、本発明から逸脱することなく、本発明と同じ機能を実行するように説明した実施形態に修正や追加を施すことができることを理解されたい。例えば、本発明の例示的ネットワーク環境を、ピアツーピアネットワーク環境などのネットワーク環境という状況で説明しているが、当業者は、本発明がそれに限定されるものではなく、本出願で記載している方法が、有線であろうと無線であろうと、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなどのどのようなコンピューティングデバイスまたは環境にも適用でき、また、通信ネットワークを介して接続され、そのネットワーク上で対話する、任意の数のこのようなコンピューティングデバイスに適用できることを理解されよう。さらに、特に無線ネットワーク装置の数が増えつづけるのにつれて、ハンドヘルドデバイスのオペレーティングシステムおよびその他のアプリケーションに固有のオペレーティングシステムを始めとする様々なコンピュータプラットフォームが考えられることを強調しておきたい。さらに、本発明は、複数の処理チップまたはデバイスにおいて、またはそれらの間で実装することができ、かつ、複数のデバイスの間で同様に記憶することが可能である。したがって、本発明は、いずれかの１つの実施形態に限定されるものではなく、頭記の特許請求の範囲による範囲において解釈されるべきものである。
【図面の簡単な説明】
【図１Ａ】ＸコンソーシアムによるＸプロトコルのいくつかの基本的態様を示す図である。
【図１Ｂ】ＸコンソーシアムによるＸプロトコルのいくつかの基本的態様を示す図である。
【図２Ａ】本発明を実施することができる、様々なコンピューティングデバイスを有する例示的ネットワーク環境を示す構成図である。
【図２Ｂ】本発明を実施することができる、例示的かつ非限定的なコンピューティングデバイスを表す構成図である。
【図３Ａ】Ｘ１１ｒ５色管理アークテクチャの例示的動作を示す図である。
【図３Ｂ】Ｘ１１ｒ６色管理アークテクチャの例示的動作を示す図である。
【図４Ａ】Ｘ１１ｒ６色管理アークテクチャのさらなる例示的態様を示す図である。
【図４Ｂ】色管理モジュール（ＣＭＭ）の色管理アーキテクチャの例示的動作を示す図である。
【図４Ｃ】本発明が提供する色管理アーキテクチャを示す図である。
【図５Ａ】本発明を様々な色空間と関連させて使用した例を示す図である。
【図５Ｂ】本発明を様々な色空間と関連させて使用した例を示す図である。
【図５Ｃ】本発明を様々な色空間と関連させて使用した例を示す図である。
【符号の説明】
１０ａ，１０ｂ　コンピューティングオブジェクト（コンピュータ、サーバ、サーバコンピュータ）
１４　通信ネットワーク／バス
２０　データベース（データベースまたはメモリ）
１００　コンピューティングシステム環境（例示的動作環境）
１１０　コンピュータ
１１０ａ，１１０ｂ，１１０ｃ，１１０ｄ，１１０ｅ　コンピューティングオブジェクトまたはデバイス（コンピュータ、クライアント、クライアントデバイス、クライアントコンピュータ）
１２０　処理装置（ホスト処理装置）
１２１　システムバス
１３０　システムメモリ
１３１　読取り専用メモリ（ＲＯＭ）
１３２　ランダムアクセスメモリ（ＲＡＭ）
１３３　基本入力／出力システム（ＢＩＯＳ）
１３４，１４４　オペレーティングシステム
１３５　アプリケーションプログラムモジュールまたはオブジェクト
１３５，１４５　アプリケーションプログラム
１３６，１４６　その他のプログラムモジュール
１３７，１４７　プログラムデータ
１４０　インタフェース
１４１　ハードディスクドライブ
１４４　オペレーティングシステム
１５０　リムーバブル不揮発性メモリインタフェース
１５１　磁気ディスクドライブ
１５２　リムーバブルの不揮発性磁気ディスク
１５５　光ディスクドライブ
１５６　リムーバブルの不揮発性光ディスク
１６０　ユーザ入力インタフェース
１６１　ポインティングデバイス
１６２　キーボード
１７０　ネットワークインタフェースまたはアダプタ
１７１　ローカルエリアネットワーク（ＬＡＮ）
１７２　モデム
１７３　広域ネットワーク（ＷＡＮ）
１８０　リモートコンピュータ
１８１　メモリ記憶デバイス
１８２　グラフィックスインタフェース
１８４　ＧＰＵ
１８５　リモートアプリケーションプログラム
１８６　ビデオメモリ
１９０　ビデオインタフェース
１９１　モニタ
１９５　出力周辺インタフェース
１９６　プリンタ
１９７　スピーカ
２００ａ　デバイス非依存層
２００ｂ　デバイス依存層
２１０　Ｘクライアント
２１０ａ，２１０ｂ　アプリケーション
２２０　Ｘライブラリ
２３０　ツールキット
２４０　表示（Ｘサーバ）
２５０　デバイスドライバ
２６０　デバイス
３００　３×３行列
３１０　一次元（１−Ｄ）ルックアップテーブル
３２０　表示デバイス
３３０　白色点変換コンポーネント
３４０　全領域圧縮変換コンポーネント
【図１Ａ】
2004032700.tif 000003
【図１Ｂ】
2004032700.tif 000004
【図２Ａ】
2004032700.tif 000005
【図２Ｂ】
2004032700.tif 000006
【図３Ａ】
2004032700.tif 000007
【図３Ｂ】
2004032700.tif 000008
【図４Ａ】
2004032700.tif 000009
【図４Ｂ】
2004032700.tif 000010
【図４Ｃ】
2004032700.tif 000011
【図５Ａ】
2004032700.tif 000012
【図５Ｂ】
2004032700.tif 000013
【図５Ｃ】
2004032700.tif 000014