JP4637458B2 - System and method for implementing color management - Google Patents

System and method for implementing color management Download PDF

Info

Publication number
JP4637458B2
JP4637458B2 JP2003108481A JP2003108481A JP4637458B2 JP 4637458 B2 JP4637458 B2 JP 4637458B2 JP 2003108481 A JP2003108481 A JP 2003108481A JP 2003108481 A JP2003108481 A JP 2003108481A JP 4637458 B2 JP4637458 B2 JP 4637458B2
Authority
JP
Japan
Prior art keywords
color
spoofing
application programming
programming interface
link profile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003108481A
Other languages
Japanese (ja)
Other versions
JP2004032700A (en
JP2004032700A5 (en
Inventor
ディー.ストークス マイケル
セッキア アドリアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004032700A publication Critical patent/JP2004032700A/en
Publication of JP2004032700A5 publication Critical patent/JP2004032700A5/ja
Application granted granted Critical
Publication of JP4637458B2 publication Critical patent/JP4637458B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0693Calibration of display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/06Colour space transformation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/12Use of DVI or HDMI protocol in interfaces along the display data pipeline

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Spectrometry And Color Measurement (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、色管理を実現するためのシステムおよび方法を対象とする。より詳細には、本発明は、異なる色表示特性を有する様々なデバイスに関連して色管理を実現するためのシステムおよび方法を対象とする。
【0002】
【従来の技術】
本特許明細書の開示の一部は、著作権保護の対象となる材料を含むことがある。本特許明細書または本特許の開示は特許庁の特許ファイルまたは記録に見られるとき、著作権所有者は、それを誰が複写しても異議はない。しかし、それ以外の場合には、何であれ、著作権所有者が一切の著作権を留保する。本明細書にはMicrosoft Corp.2001年、著作権所有の通知を適用する。
【0003】
色空間は、3つまたはそれ以上座標で色を数値として表すためのモデルである。例えば、RGB色空間は、赤、緑、青の座標で色を表す。
【0004】
異なるデバイスおよび材料(materials)にわたって、予測可能な方法で再生するべき色の場合、その色を生成するために使用する機構または材料の特定の挙動に依存しない方法で、その色を記述しなければならない。例えば、カラー陰極線管(CRT)とカラープリンタは、極めて異なる機構を使って色を生成する。この問題に対処するため、現行方法では、色をデバイスに依存しない色座標を使って記述し、次いで、それを各デバイス用のデバイスに依存する色座標に変換することが必要とされる。現在、デバイス依存系への変換のための機構を、デバイス自体が提供している。
【0005】
この点について、色管理(a color management)とは、オブジェクト、例えば、画像、グラフィックス、またはテキストの色を、それらの現在の色空間から、モニタ、プリンタなどの出力デバイスの色空間に変換する技術またはシステムを表す用語である。
【0006】
初期には、オペレーティングシステムが、特定の色空間、例えばRGBのサポートを宣言することによって、色をサポートしていた。しかし、RGBはデバイス間で異なるため、色は、異なるデバイス間で信頼性よく再生されなかった。
【0007】
このような色のサポートのための伝統的手段が不十分であったため、様々なオペレーティングシステムは、国際カラーコンソーシアム(International Color Consortium)(ICC)プロファイルを使って、デバイス依存色をデバイスに依存する方法でキャラクタライズすることに対するサポートを追加した。ICCのデバイスキャラクタライゼーションプロファイルの仕様は公に入手可能であり、例えば、ICCのウェブサイト、すなわちwww.color.orgから入手することができる。ICCは、画像を作成した入力デバイス、およびその画像を表示した出力デバイスのプロファイルを使用して、その画像を入力デバイスの色空間から出力デバイスの色空間に移動させるトランスフォームを作成する。これによってきわめて正確な色が得られるが、また、画像とともに入力デバイスのプロファイルを移送し、トランスフォームを介してその画像を実行するというオーバーヘッドも伴う。
【0008】
次いで、中間的なデバイス非依存標準色空間を提供する試みで、さらなる技術が開発された。これらの色管理技術のいくつかは、今日、Microsoft(登録商標)のWindows(登録商標)オペレーティングシステムおよびMicrosoft(登録商標)のOffice(登録商標)プラットフォームなどのオペレーティングシステムおよびアプリケーション中に既に存在する。ICC色空間以外の色空間には、標準色空間、すなわち略してsRGB(国際エンジニアリングコンソーシウム(International Engineering Consortium)(IEC)の仕様No.61966−2−1)が含まれる。これは、Windows98(登録商標)およびOFFICE2000(登録商標)に始まるコアテクノロジとしてサポートされている。色管理技術は、標準拡張色空間、すなわち略してscRGB(IEC仕様No.61966−2−2)の作成を通じて進化し続けている。
【0009】
ICC、sRGBおよびscRGBの統合により、色をサポートする様々な入力および出力コンピューティングデバイスという点を考えると、解決しなければならない多くの問題がある。現在、sRGBは、IEC61966−2−1標準に基づいた、Windows(登録商標)のデフォルト色空間になっている。sRGB準拠のデバイスは、色管理がうまく作動するためのプロファイルまたはその他のサポートを提供する必要がない。
【0010】
この点に関して、sRGB、scRGB、ICCの色空間の構造は、固定的かつ限定的な意味を持っており、本発明の背景となっている。これらの色空間について触れているのは、当業者が十分に識別できるようにという意図によるが、それでも、包括的な説明も続き、また、それぞれの色空間については、いずれかの公に入手可能な標準仕様が補足するであろう。
【0011】
標準RGB色空間のsRGBは、CIEXYZ、すなわちCIEXYZ値に関連する赤、緑、青の原色と、知覚的に言い表わした白色点値、たとえば色温度6500ケルビンとして昼光に相関するCIEXYZ標準のD65などと、標的デバイス色に対するエンドユーザの知覚に影響を与える、周囲、背景、輝度などの任意選択の表示条件とを記述する3×3行列など、物理的輝度空間と、RGB知覚空間の色調(tonal)レスポンスとの間の非線形関係を記述する一次元ルックアップテーブル(LUTs)を含む。
【0012】
標準拡張色空間のscRGBは、sRGBと同じであるが、その値は、色の見える範囲の外側に超えることができる。
【0013】
ICCプロファイルは、一般に、デバイス依存の色を同等の人間が視覚的に知覚する色に関連付ける情報を含むメタデータ構造を有する。ICCプロファイルのインスタンスによっては、デバイス依存であろうとデバイス非依存であろうと、任意の2種類の色空間の間の変換情報を提供することができるものもある。
【0014】
Xプロトコルは、初めはUNIX(登録商標)オペレーティングシステム用として、ネットワーク透明性を有するグラフィカルユーザインタフェース(GUI)を提供する必要に応え、1980年代中頃に開発された。Xは、Microsoft(登録商標)のWindows(登録商標)およびIBM(登録商標)のプレゼンテーションマネージャとほぼ同じ方法で、グラフィカル情報の表示および管理を提供する。
【0015】
Xアーキテクチャと他のプラットフォームの色管理の大きな違いは、Xプロトコルの構造にある。Windows(登録商標)、およびIBMのプレゼンテーションマネージャなどのその他のプラットフォームが、単に、PCにローカルなグラフィカルアプリケーションを表示するのに対し、Xプロトコルは、アプリケーションレベルでクライアントサーバ関係を指定することによって、アプリケーションの処理を分散する。アプリケーションの「何をすべきか」の部分をXクライアントと呼び、これは、Xサーバと呼ばれる「どのようにすべきか」の部分、すなわち表示からは分離されている。Xクライアントは、一般に、過度の計算能力を備え、かつXサーバ上で表示を行うリモートマシン上で実行する。その恩恵は、真のクライアント/サーバおよび分散処理である。
【0016】
図1Aに示すように、Xプロトコルは、アプリケーション210a、210bとその表示240の間のクライアント/サーバ関係を定義する。これに対応するために、Xクライアントと呼ばれるアプリケーション210a、210bは、Xサーバ240として知られる表示から分離される。Xクライアント210a、210bは、Xライブラリ220、およびオプションのツールキット230を含む。Xサーバ240は、デバイス260を駆動するためのデバイスドライバ250を含む。図1Bに示すように、Xはさらに、デバイス依存200bおよび非依存層200aを指定し、また、そのプロトコルを、Xクライアント210とXサーバ240の間の通信のための非同期ネットワークプロトコルに基づかせることによって、一般的なウィンドウシステムを提供する。事実上、Xプロトコルは、オペレーティングシステムおよび基本的なハードウェアの特性を隠す。この、アーキテクチャ上およびエンジニアリング上の違いのマスキングは、Xクライアントの開発を容易にし、また、X Window Systemの高可搬性の跳躍台となっている。
【0017】
Xアプローチの利点には以下が含まれる。(1)ローカルおよびネットワークベースのコンピューティングが、ユーザと開発者の両方に、同じように見え、感じられる。(2)Xサーバは可搬性が高く、それによって、さまざまな言語およびオペレーティングシステムに対するサポートが可能である。(3)Xクライアントも高い可搬性を備えている。(4)Xは、ローカルでもリモートでも、バイトストリーム指向のネットワークプロトコルをサポートする。(5)アプリケーションは、パフォーマンス上の不利な条件を受けない。
【0018】
したがって、Xプロトコルの設計では、アプリケーションとその表示の間のクライアント/サーバ関係を指定する。Xにおいては、単一の画面、キーボード、マウスを管理するソフトウェアがXサーバとして知られる。Xクライアントは、Xサーバ上に表示されるアプリケーションであって、「アプリケーション」と呼ばれることがある。Xクライアントは、要求、例えば描画または情報の要求をXサーバに送る。Xサーバは、複数のクライアントから要求を受け付け、情報の要求、ユーザの入力、およびエラーに応答して、Xクライアントに応答を返す。
【0019】
Xサーバは、ローカルマシン上で実行し、ネットワークベースの、またはローカルプロセス間通信(IPC)ベースのXクライアントの要求を受け付けて逆多重化し、それらに作用する。Xサーバは、(1)画面上に描画の要求を表示し、(2)情報の要求に応答し、(3)要求中のエラーを報告し、(4)キーボード、マウス、および表示デバイスを管理し、(5)キーボードおよびマウスの入力を、ネットワークまたはローカルIPCを介して、それぞれのXクライアントに多重送信し、(6)ウィンドウの作成、マップ、破壊を行い、(7)ウィンドウ中に書き込み、かつ描画する。
【0020】
Xクライアントは、基本的に、Xプロトコルを利用したライブラリ、例えばXlibおよびXtの助けを借りて書かれたアプリケーションである。Xクライアントは、(1)サーバに要求を送り、(2)サーバからイベントを受け取り、(3)サーバからエラーを受け取る。
【0021】
要求に関しては、Xクライアントは、特定の動作が発生するように、例えばウィンドウを作成するように、Xサーバに要求を出す。パフォーマンスを向上させるために、Xクライアントは、通常、応答を期待することも待つこともない。代わりに、要求の配信は、一般に、高信頼ネットワーク層に任される。Xの要求は、4バイトの倍数のいずれかである。
【0022】
応答に関しては、Xサーバは、Xクライアントの、応答を要求する特定の要求に応答する。すべての要求が応答を必要とするわけではないことに注意されたい。X応答は、32バイト以上の4バイトの倍数のいずれかである。
【0023】
イベントに関しては、Xサーバは、キーボードまたはマウスの入力を含めて、アプリケーションが期待しているイベントを、Xクライアントに転送する。ネットワークトラフィックを最小限にするために、期待されているイベントのみがXクライアントに送られる。Xイベントは32バイトである。
【0024】
エラーに関しては、Xサーバは、要求中のエラーをXクライアントに報告する。エラーは、イベントのようなものであるが、異なって処理される。Xのエラーは、それらの処理を簡単にするために、イベントと同じサイズである。エラーは、32バイトとして、Xクライアントのエラー処理ルーチンに送られる。
【0025】
Xサーバの設計は、それを実装するプラットフォームハードウェアおよびオペレーティングシステムに依存するところが大きい。基礎をなす技術の機能が増大するにつれて、Xサーバの能力および機能も増大している。
【0026】
上述のように、図1Aは、Xプロトコルのデバイス依存層200bおよびデバイス非依存層200aがあることを示している。デバイス依存層200bは、Windows(登録商標)またはSolarisの場合には、Xサーバをネイティブ環境にローカライズする責任を有し、マシンからのデータバイトを異なるバイト順にスワップする責任を有する。バイト順は、X要求のそれぞれにおいて注目される。層200bは、ハードウェアおよびオペレーティングシステムのアーキテクチャ上の相違を隠し、また、キーボード、マウス、ビデオのデバイスドライバ依存性を保持する。
【0027】
シングルスレッドアーキテクチャの場合、Xサーバは、Xクライアント間の逆多重化要求、多重化応答、イベント、およびエラーのスケジューリングにネイティブタイムスライスアーキテクチャを使用した、単一逐次プロセスである。
【0028】
マルチスレッドアーキテクチャの場合、Xサーバは、オペレーティングシステムおよびハードウェアが実行できるようにジョブを複数のスレッドに分割することによって、オペレーティングシステムの性質を利用することができる、マルチスレッドプロセスである。真のプリエンプティブマルチタスク/マルチスレッド環境は、Xサーバに高度の能力を提供する。
【0029】
今日のXサーバには、ワークステーション、X端末、PC Xサーバが含まれる。ワークステーションは、複雑なコンピューティング要件を処理するのに十分に強力であり、通常、ローカルXクライアントおよびわずかなネットワーク(リモート)Xクライアントを表示する。X端末は、グラフィックス機能を備えたダム端末である。Xサーバソフトウェアは、ホストからダウンロードする。X端末はワークステーションよりも安価であり、かつ維持するのが容易である。PC Xサーバは、PCおよびリモートアプリケーションサーバのアクセスを、既存のPC投資である1台の一般的なデスクトップに統合し、また、ユーザスキルセット(デスクトップの操作およびアクセス)は、ユーザの好みによりローカルまたはリモートのウィンドウ管理を提供し、使い易い。
【0030】
Xコンソーシアムは、X11グラフィックスアーキテクチャを確立した。過去何年かの間に、デスクトップは、生産性またはユーザ中心の環境から、ウェブプロトコルおよびブラウザベースのユーザインタフェースを適合化したものに囲まれた、集中管理に焦点を絞った環境に進化した。XコンソーシアムによるX Window Systemの最新版−略してX11r6.5.1、またはX11、またはX11r6−は、再コーディングなしの高速配置およびセキュリティを可能にする、Xアプリケーションとブラウザの統合の問題を扱っている。
【0031】
X11グラフィックスアーキテクチャの最新版は、ワールドワイドウェブ上で、少なくともXコンソーシアム、www.x.orgから公に入手することができる。要するに、X11r6色管理システムは、白色点の適合化、全領域(gamut)マッピング、行列の変換、一次元(1−D)ルックアップテーブル(LUTs)を始めとする動作によって、(1)プラグイン可能な色管理機能をサポートし、かつ、(2)デバイス非依存アプリケーションコンテントのデバイス依存色値への変換をサポートするグラフィックスプロトコルである。
【0032】
XコンソーシアムがX11を確立したとき、X11は、3×3行列および3zつの1−Dルックアップテーブルを使って、標準RGB色を特定の表示デバイスのRGB色に変換する、きわめて単純な色管理機構をサポートしていた。X11r6の出現とともに、それまでの単純な解決策を拡張した、Tektronixの研究結果に基づいて、X色管理システム(Xcms)アーキテクチャが組み込まれ、きわめて多数のデバイス非依存色空間の間で変換を行ってデバイス依存の色を表示させる方法が提供された。この解決策は、白色点の色度の適合化のサポート、および全領域(gamut)圧縮のサポートを追加することに焦点を絞っている。したがって、X11r6色管理は、3チャネルのデバイス非依存色から始まって、表示デバイス依存の色に変換するワークフローを採り入れている。
【0033】
したがって、X11r6アーキテクチャは、2種類の色管理解決策を有する。第1の解決策は、CRTなどの単純な表示デバイスをキャラクタライズするために一般的に使用されている、単純な3×3行列および3つの1−Dルックアップテーブルである。第2は、主として白色点の変換および全領域圧縮からなるXcmsである。Xcmsの導入以来、色管理は進歩し、これら2種類の技術に限定された解決策では不十分であることがわかってきた。なぜならば、ほとんどが、X11がデスティネーションデバイスのみをサポートし、ソースがデバイス非依存であることを前提としている、ソースおよびデスティネーションデバイスを採り入れているからである。
【0034】
また、ICCなど、メタデータデバイスのキャラクタライゼーションプロファイルに基づく最新の色管理解決策は、3つ、4つ、またはそれ以上のデバイス依存色のチャネルで始まって終わるワークフローを採り入れている。現在のところ、X11では、デバイス非依存の3色で始まり、RGB表示デバイス依存色で終わる色管理ワークフローのみが可能である。sRGBおよびscRGBなどの標準色空間に基づく最新の色管理解決策は、メタデータがデバイス自体の中に含まれることを除けば、最新のメタデータ解決策と同様である。したがって、そのワークフローは、ソースおよびデスティネーションデバイスの外では、完全にデバイス非依存であるように見える。基本的に、デバイスの色と標準色空間の間の変換を行うメタデータは、ソースおよびデスティネーションのハードウェア自体の中でのみ存在する。これは、オープンネットワークにおけるユーザの経験およびカラーコンテントの交換をはるかに容易にし、また、複数のアプリケーションまたはユーザからなる複雑なワークフローを可能にしている。
【0035】
【発明が解決しようとする課題】
今日、存在しているその他の従来技術の解決策は、現在のところX11r6と統合されていず、したがって、単一のアプリケーションに限定されている。したがって、現在の解決策では、カットアンドペースト、アプリケーション間および複雑なワークフローはきわめて限定されている。さらに、現在の解決策は、シアン/マゼンダ/イエロー/ブラック(CMYK)およびその他の色空間に関してきわめて限定されている。したがって、標準X11r6グラフィックスプラットフォームが、ICC、sRGB、およびscRGBの色管理システムそれぞれについて構築されている、事実上の業界メタデータ色管理標準をサポートすることを可能にする機構の必要がある。さらに、ICC、sRGB、scRGBなど、デバイス依存色で始まって終わる最新の色管理標準のサポートを可能にする機構の必要もある。
【0036】
【課題を解決するための手段】
上記から考えると、本発明は、異なる色表示特性を有する様々なコンピューティングデバイスに関連して色管理を実現するためのシステムおよび方法を提供する。より詳細には、本発明は、X11グラフィックスプラットフォームが、デバイス依存色で始まって終わる、ICC、sRGB、scRGBなどの色管理システムをサポートすることを可能にするための手段を提供する。本発明はまた、X11r6内のCMYK色空間並びに拡張RGB色空間をサポートする手段をも提供し、したがってX11r6グラフィックスプラットフォームを任意の最新色管理標準をサポートするように拡張する。
【0037】
本発明の様々な実施形態では、方法、コンピュータ可読媒体、およびコンピューティングデバイスを、色管理システムに関連させて提供する。実施形態は、デスティネーションデバイスに移すために、ソースデバイスからデバイス非依存色データを受け取るステップと、ソースデバイスとデスティネーションデバイスの間の色特性の差異を表すデバイスリンクプロファイルを生成するステップと、色管理システムの少なくとも1つのアプリケーションプログラミングインタフェース関数をスプーフする(spoofing)ステップと、デスティネーションデバイスのためにデスティネーションデバイス依存色値を生成する関数を呼び出すステップとを含む。
【0038】
【発明の実施の形態】
本発明のその他の特徴および実施形態を以下に説明する。
【0039】
本発明による色管理を実現するためのシステムおよび方法を、添付の図面を参照しながらさらに説明する。
【0040】
概観
したがって、本発明は、X11r6グラフィックスプラットフォームのアーキテクチャ上の制約の範囲内で、現在のところ採用されている様々な解決策を使って、最新の色管理を実施するための方法およびシステムを提供する。上述のように、X11は、3つのデバイス非依存色で開始し、RGB表示デバイス依存色で終わる色管理ワークフローアーキテクチャを採り入れている。したがって、本発明は、ICC、sRGB、scRGBなど、デバイス依存色で開始して終わる最新の色管理のサポートを可能にする機構を提供する。本発明はまた、X11r6の範囲内で、CMYK色空間および拡張RGB色空間をサポートするために使用することもでき、したがって、X11r6グラフィックスプラットフォームを最新のすべての色管理技術をサポートするように拡張することができる。
【0041】
例示的なネットワークおよび分散環境
当業者は、コンピュータ、あるいはその他のクライアントまたはサーバデバイスを、コンピュータネットワークの一部として、または分散コンピューティング環境中に配置できることを理解されよう。この点で、本発明は、任意の数のメモリまたは記憶ユニット、および任意の数の記憶ユニットまたはボリュームにわたって発生する任意の数のアプリケーションおよびプロセスを有する、色管理プロセスに関連させて使用できる任意のコンピュータシステムに関する。本発明は、ネットワーク環境または分散コンピューティング環境に配置された、リモートまたはローカルの記憶装置を有するサーバコンピュータおよびクライアントコンピュータを備えた環境に適用することができる。本発明はまた、リモートまたはローカルの色管理サービスに関連させて、情報を生成し、受信し、かつ送信するための、プログラミング言語機能、解釈および実行機能を有する、スタンドアロンのコンピューティングデバイスにも適用することができる。
【0042】
分散コンピューティングは、コンピューティングデバイスとシステムの間の直接交換によって、コンピュータリソースおよびサービスの共用を容易にする。これらのリソースおよびサービスには、情報の交換、キャッシュ記憶、およびファイルのためのディスク記憶が含まれる。分散コンピューティングは、ネットワークの接続性を利用して、クライアントがそれらパワーを結集して企業全体に恩恵をもたらすことを可能にする。この点に関して、様々なデバイスは、本発明の技術を利用することができる色管理プロセスに関与できる、アプリケーション、オブジェクト、またはリソースを備えることができる。
【0043】
図2Aは、例示的なネットワークまたは分散コンピューティング環境の概略図を提供している。分散コンピューティング環境は、コンピューティングオブジェクト10a、10bなど、およびコンピューティングオブジェクトまたはデバイス110a、110b、110cなどを含む。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを含むことができる。オブジェクトは、パーソナルデジタルアシスタント(PDA)、テレビ、動画圧縮標準グループ(Moving Picture Experts Group)(MPEG−1)のオーディオレイヤ3(Audio Layer-3)(MP3)プレイヤ、パーソナルコンピュータなどの同じまたは異なるデバイスの一部を含む。各オブジェクトは、通信ネットワーク14を通って別のオブジェクトと通信することができる。このネットワーク自体が、図2Aのシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができる。本発明の一態様によれば、各オブジェクト10a、10bなど、または110a、110b、110cなどは、色管理サービスを要求できるアプリケーションを含むことができる。
【0044】
分散コンピューティングアーキテクチャでは、従来はクライアントとしてのみ使用されてきたコンピュータが、直接、それらの間で通信を行い、何の役割がそのネットワークにとって最も効率的であるかを想定して、クライアントとサーバの両方として動作できる。これによって、サーバへの負荷が低減され、また、すべてのクライアントが他のクライアント上の利用可能なリソースにアクセスすることが可能になり、それによって、ネットワーク全体の機能および効率性が向上する。したがって、本発明による色管理サービスが、クライアントおよびサーバの間で分散され、ネットワーク全体にとって効率的な方法で動作することができる。
【0045】
分散コンピューティングは、企業が、多様な地理的境界を超えてサービスおよび機能をより効率的に配信するための助けとなり得る。さらに、分散コンピューティングは、ネットワークキャッシング機構として動作して、データを、それが消費される位置のより近くに移動させることができる。分散コンピューティングはまた、複数コンピューティングネットワークが、知的エージェントを使って動的に協働することも可能にする。エージェントは、ピアコンピュータ上に常駐し、様々な種類の情報をあちこちに伝達する。エージェントはまた、その他のピアシステムのためにタスクを開始することができる。例えば、知的エージェントを使って、ネットワーク上のタスクの優先順位を決め、トラフィックフローを変更し、ファイルをローカルにサーチし、または、ウイルスなどの異常挙動の判定を行って、ネットワークに悪影響を及ぼす前にそれを停止することができる。あらゆる種類のその他のサービスも可能であると考えられる。実際、グラフィカルオブジェクトまたはその他の色データを1つまたは複数のロケーションに物理的に配置することができるので、このようなシステムでは、色管理サービスを分散する能力は非常に有用である。
【0046】
110cなどのオブジェクトを、別のコンピューティングデバイス10a、10bなど、または110a、110bなどの上でホストすることができることも理解されよう。したがって、図示の物理的環境は、接続されているデバイスをコンピュータとして示しているかもしれないが、このような説明図は例にすぎず、代わりに、物理的環境を、PDA、テレビ、MP3プレイヤなどの様々なデジタルデバイス、インタフェースなどのソフトウェアオブジェクト、およびCOMオブジェクトなどを含むものとして図示または記載することもできる。
【0047】
分散コンピューティング環境をサポートする、様々なシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティングシステム同士を、有線または無線システムによって、ローカルネットワークまたは広域分散ネットワークを介して接続することができる。現在、ネットワークの多くはインターネットに結合されている。インターネットは、広域分散コンピューティングにインフラストラクチャを提供し、多くの異なるネットワークを包含している。
【0048】
ホームネットワーキング環境では、それぞれが一意のプロトコルをサポートできる、送電線、データ(無線および有線の両方)、音声(例えば、電話)、エンタテインメントメディアなど、少なくとも4種類の異種の伝送媒体がある。電灯のスイッチおよび電気器具など、ほとんどの家庭用制御装置は、接続性のために送電線を使うことができる。データサービスは、ブロードバンド(例えば、DSLまたはケーブルモデムのいずれか)として家庭に入ってくることができ、無線、例えばホーム無線周波数(HomeRF)または802.11b、あるいは有線、例えばホーム電話線ネットワーキング機器(Home Phoneline Networking Appliance)(PNA)、Cat5、さらには送電線の接続性のいずれかを使って、家庭内においてアクセスすることができる。音声トラフィックは、有線、例えばCat3、または無線、例えば、セルフォンのいずれかとして家庭に入ってくることができ、Cat3配線を使って、家庭内で配布することができる。エンタテインメントメディア、またはその他のグラフィカルデータは、衛星またはケーブルのいずれかを通じて入ってくることができ、一般に、同軸ケーブルを使って、家庭内で配布される。メディアデバイスのクラスタのデジタル相互接続として、IEEE1394およびDVIも出現している。これらのネットワーク環境、およびプロトコル標準として出現する可能性があるその他の環境はすべて、インターネットを通って外部の世界に接続できるイントラネットを形成するために相互接続することができる。簡単に言えば、データの記憶および伝送のために様々な異なるソースが存在し、したがって、コンピューティングデバイスは、前進しながら、本発明による、グラフィックスオブジェクトの色管理に付随してアクセスまたは利用するデータ、またはその他の色データを共用するための方法を必要とするであろう。
【0049】
さらに、色は、様々な物理的またはその他の現象を表す有効な手段であり、したがって、データが磁気共鳴イメージングデータ、超音波データ、グラフィックス等化データなどであろうと、色は、人間が素早く知覚分析できるようにデータを提示する、適切な方法であることが多い。したがって、本明細書で考える色データのソースは無限であり、「色」データとみなされる前に、一連の変換を受けることがある。
【0050】
インターネットとは、通常、コンピュータネットワーキングの技術分野では周知の伝送制御プロトコル/インタフェースプログラム(TCP/IP)の一連のプロトコルを利用する、ネットワークおよびゲートウェイの集合を指す。インターネットは、ユーザがネットワーク上で対話し、かつ情報を共用することを可能にする、ネットワーキングプロトコルを実行するコンピュータによって相互接続された、地理的に分散されたリモートコンピュータネットワークのシステムとして説明することができる。このような広範にわたる情報の共用のために、インターネットなどのリモートネットワークは、これまでのところ、一般に、開発者が、基本的に制約なしに、特定の動作またはサービスを実行するためのソフトウェアアプリケーションを設計することができるオープンシステムに進化してきた。
【0051】
したがって、(この)ネットワークインフラストラクチャは、クライアント/サーバ、ピアツーピア、またはハイブリッドアーキテクチャなど、多数のネットワークトポロジを可能にする。「クライアント」は、それが関連していないその他のクラスまたはグループのサービスを使用する、クラスまたはグループのメンバである。したがって、コンピューティングにおいては、クライアントはプロセス、すなわち、大ざっぱに言うと、別のプログラムが提供するサービスを要求する、1組の命令またはタスクである。クライアントプロセスは、その他のプログラムまたはサービス自体に関する動作の詳細を何も「知る」必要なく、要求したサービスを利用する。クライアント/サーバアーキテクチャ、特にネットワークシステムにおいては、クライアントは、通常、別のコンピュータ、例えばサーバが提供する共用ネットワークリソースにアクセスするコンピュータである。図2Aの例では、コンピュータ110a、110bなどをクライアントとみなすことができ、コンピュータ10a、10bなどをサーバとしてみなすことができる。この場合、サーバ10a、10bなどはデータを保持しており、そのデータは、次いで、クライアントコンピュータ110a、110bなどにおいて複製される。
【0052】
サーバは、一般に、インターネットなどのリモートネットワーク上でアクセス可能なリモートコンピュータシステムである。クライアントプロセスが第1のコンピュータシステムにおいてアクティブであり、サーバプロセスが第2のコンピュータシステムにおいてアクティブであることができる。それらは通信媒体を介して互いに通信を行うことができ、したがって分散された機能を提供して、複数のクライアントがサーバの情報収集機能を利用することを可能にしている。
【0053】
クライアントおよびサーバは、プロトコル層が提供する機能を利用して、互いに通信を行う。例えば、ハイパーテキスト転送プロトコル(HTTP)は、ワールドワイドウェブ(WWW)に関連して使用される一般的なプロトコルである。一般に、ユニバーサルリソースロケータ(URL)またはインターネットプロトコル(IP)アドレスなどのコンピュータネットワークのアドレスを使って、サーバまたはクライアントコンピュータを互いに識別させる。そのネットワークアドレスをURLアドレスと呼ぶことができる。例えば、通信媒体を介して通信を提供することができる。特に、高容量通信のために、クライアントおよびサーバをTCP/IP接続によって互いに結合することができる。
【0054】
したがって、図2Aは、サーバが、ネットワーク/バスを介してクライアントコンピュータと通信を行っている、本発明を利用することができる例示的なネットワークまたは分散環境を示す。より詳細には、本発明に従って、いくつかのサーバ10a、10bなどが、LAN、WAN、イントラネット、インターネットであってよい通信ネットワーク/バス14を介して、ポータブルコンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク化された器具、またはビデオカセットレコーダ(VCR)、テレビ(TV)、オーブン、照明、ヒータなどのその他のデバイスなどのいくつかのクライアントまたはリモートコンピューティングデバイス110a、110b、110c、110d、110eなどと相互接続されている。したがって、本発明を、グラフィカルオブジェクトまたはいずれかのその他の色データを、それに関連させて処理または表示することが望ましい、いずれかのコンピューティングデバイスに適用することができる。
【0055】
通信ネットワーク/バス14が例えばインターネットであるネットワーク環境では、サーバ10a、10bなどは、クライアント110a、110b、110c、110d、110eなどが、HTTPなどのいくつかの既知のプロトコルのいずれかによって通信を行うウェブサーバであってよい。サーバ10a、10bなどはまた、分散コンピューティング環境の特性であるように、クライアント110a、110b、110c、110d、110eなどとしてサービスすることもできる。通信は、必要に応じて、有線または無線であってよい。クライアントデバイス110a、110b、110c、110d、110eなどは、通信ネットワーク/バス14を介して通信を行うことができる場合もできない場合もあり、また、それに関連して独立した通信を行うことがある。例えば、TVまたはVCRの場合は、それを制御するためのネットワーク化された側面がある場合もない場合もある。各クライアントコンピュータ110a、110b、110c、110d、110eなど、およびサーバコンピュータ10a、10bなどは、様々なアプリケーションプログラムモジュールまたはオブジェクト135を備えることができ、また、ファイルを記憶することができ、またはファイルの一部をダウンロードまたは移送することができる、様々なタイプの記憶エレメントまたはオブジェクトへの接続またはアクセスが可能である。いずれかのコンピュータ10a、10b、110a、110bなどは、本発明に従って、データベース20またはその他の記憶エレメント、例えば、色オブジェクトまたはデータ、あるいは本発明に従って処理された中間色オブジェクトまたはデータを記憶するためのデータベースまたはメモリ20などのメンテナンスおよび更新を行う責任を負うことがある。したがって、コンピュータネットワーク/バス14にアクセスして対話することができるクライアントコンピュータ110a、110bなど、クライアントコンピュータ110a、110bなどおよびその他の同様のデバイスと対話することができるサーバコンピュータ10a、10bなど、およびデータベース20を有するコンピュータネットワーク環境において本発明を利用することができる。
【0056】
例示的コンピューティングデバイス
図2Bおよび以下の説明は、本発明を実施することができる、適切なコンピューティング環境を簡単に概説することを意図している。しかし、上述のように、本発明に関連して、ハンドヘルド、ポータブル、およびその他のコンピューティングデバイス、およびあらゆる種類のコンピューティングオブジェクトを使用することが考えられることを理解されたい。したがって、以下では汎用コンピュータを説明しているが、それは一例に過ぎず、本発明は、ネットワーク/バスとの相互運用性および相互作用性を有するシンクライアントなど、その他のコンピューティングデバイスを使っても実施できる。したがって、本発明を、きわめてわずかのまたは最小限のクライアントリソースしか含まれない、ネットワーク化されたホストサービスの環境、例えば、クライアントデバイスが、単に、器具中に置かれたオブジェクトなど、ネットワーク/バスへのインタフェースとして、またはその他のコンピューティングデバイスおよびオブジェクトとしての役割を果たすネットワーク環境において実施することができる。基本的に、データを記憶することができる、またはデータを検索することができる場所はどこでも、本発明の色管理技術の動作にとって望ましい、または適した環境である。
【0057】
必ずしも必要ではないが、本発明を、デバイスまたはオブジェクトのためのサービスの開発者が使用できるように、オペレーティングシステムによって実施することができ、かつ/または、本発明の色管理技術に関連して動作するアプリケーションソフトウェア内に含むことができる。ソフトウェアは、クライアントワークステーション、サーバまたはその他のデバイスなど、1つまたは複数のコンピュータによって実行される、プログラムモジュールなどの一般的なコンピュータ実行可能命令の状況で記述することができる。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。一般に、プログラムモジュールの機能は、様々な実施形態で所望の通りに結合または分散することができる。さらに、当業者は、本発明を、その他のコンピュータシステム構成で実施できることを理解されよう。本発明とともに使用するのに適した、その他の周知のコンピューティングシステム、環境、および/または構成には、パーソナルコンピュータ(PC)、自動支払機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル家庭用電子機器、ネットワークPC、電気器具、照明、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが非限定的に含まれる。本発明はまた、通信ネットワーク/バスまたはその他のデータ伝送媒体を通じてリンクされているリモート処理デバイスによってタスクが実行される、分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶デバイスを含めて、ローカルおよびリモートコンピュータの記憶媒体の両方に配置することができ、クライアントノードがサーバノードとして挙動することができる。
【0058】
したがって、図2Bは、本発明を実施することができる、適切なコンピューティングシステム環境100の例を示す。ただし、上記で明らかにしたように、コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関していかなる限定も示唆するものではない。また、コンピューティングシステム環境100を、例示的動作環境100中に示すコンポーネントのいずれか1つまたはその組合せに関し、それに依存するものまたはそれを要求するものとして解釈してはならない。
【0059】
図2Bを参照すると、本発明を実施するための例示的システムは、コンピュータ110の形の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、処理装置120、システムメモリ130、および、システムメモリを始めとする様々なシステムコンポーネントを処理装置120に結合する、システムバス121が非限定的に含まれる。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて、様々なバスアーキテクチャを使ったいくつかのタイプのバス構造のいずれかであってよい。例として、このようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子機器規格協会(Video Electronics Standards Association)(VESA)ローカルバス、および周辺コンポーネント相互接続(Peripheral Component Interconnect)(PCI)バス(メザニンバスとしても知られる)が非限定的に含まれる。
【0060】
コンピュータ110は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスできる任意の利用可能媒体であってよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方が含まれる。例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が非限定的に含まれる。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための、任意の方法または技術で実装された揮発性および非揮発性、リムーバブルおよび非リムーバブル媒体の両方を含む。コンピュータ記憶媒体には、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能なプログラム可能読取りメモリ(Electrically Erasable Programmable Read Only Memory)(EEPROM)、フラッシュメモリまたはその他のメモリ技術、コンパクトディスク読取り専用メモリ(CD−ROM)、デジタルバーサタイルディスク(DVD)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたはその他の磁気記憶デバイス、あるいは、所望の情報を記憶するために使用することができ、コンピュータ110がアクセス可能な任意のその他の媒体が非限定的に含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波やその他の伝送機構などの変調データ信号に組み込み、また、いずれかの情報配信媒体を含む。「変調データ信号」という用語は、その特性の1つまたは複数を、情報を信号に符号化するような方法で設定する、または変化させる信号を意味する。例として、通信媒体には、有線ネットワークや直線有線などの有線媒体、および音響、RF、赤外線およびその他の無線媒体などの無線媒体が非限定的に含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲内に含まれるものとする。
【0061】
システムメモリ130は、読取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動の間などにコンピュータ110内のエレメント間の情報の転送を援助する基本ルーチンを含む、基本入力/出力システム133(BIOS)は、一般にROM131に記憶されている。RAM132は、一般に、処理装置120が直ちにアクセス可能で、かつ/または現在、それによって作動されているデータおよび/またはプログラムモジュールを含む。図2Bは、例として、非限定的に、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示す。
【0062】
コンピュータ110はまた、その他のリムーバブル/非リムーバブルの揮発性/不揮発性コンピュータ記憶媒体も含むことができる。例にすぎないが、図2Bは、非リムーバブルの不揮発性磁気媒体からの読取り、またはそこへの書込みを行うハードディスクドライブ141、リムーバブルの不揮発性磁気ディスク152からの読取り、またはそこへの書込みを行う磁気ディスクドライブ151、およびCD−ROMまたはその他の光媒体などのリムーバブルの不揮発性光ディスク156からの読取り、またはそこへの書込みを行う光ディスクドライブ155を示す。例示的動作環境で使用できるその他のリムーバブル/非リムーバブルの揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが非限定的に含まれる。ハードディスクドライブ141は、一般に、インタフェース140などの非リムーバルメモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、一般に、インタフェース150などのリムーバルメモリインタフェースによって、システムバス121に接続される。
【0063】
上記に説明し、図2Bに示すドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶をコンピュータ110に提供する。図2Bでは、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶しているものとして示してある。これらのコンポーネントが、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じ場合も異なる場合もあることに注意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147が少なくとも異なるコピーであることを示すために、ここでは異なる番号を付けてある。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれているポインティングデバイス161などの入力デバイスを通して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバス121に結合されているユーザ入力インタフェース160を介して、処理装置120に接続されることが多い。しかし、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、その他のインタフェースおよびバス構造によっても接続することができる。ノースブリッジなどのグラフィックスインタフェース182も、システムバス121に接続することができる。ノースブリッジは、CPUまたはホスト処理装置120と通信するチップセットであり、アクセラレーテッドグラフィックスポート(accelerated graphics port)(AGP)通信を行う責任を有する。1つまたは複数のグラフィックス処理装置(GPU)184は、グラフィックスインタフェース182と通信することができる。この点に関しては、GPU184は、一般に、レジスタ記憶などのオンチップメモリ記憶を含み、また、ビデオメモリ186と通信する。しかし、GPU184は、コプロセッサの一例にすぎず、したがって、コンピュータ110には様々なコプロセッシングデバイスを含めることができる。モニタ191またはその他のタイプの表示デバイスも、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続され、ビデオインタフェース190は、ビデオメモリ186と通信することができる。モニタ191に加えて、コンピュータは、スピーカ197およびプリンタ196などのその他の周辺出力装置も含むことができ、これらは、出力周辺インタフェース195を介して接続することができる。
【0064】
コンピュータ110は、リモートコンピュータ180などの1台または複数のリモートコンピュータへの論理接続を使って、ネットワーク環境または分散環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたはその他の一般的なネットワークノードであってよく、一般に、コンピュータ110に関して上記の説明したエレメントの多くまたはすべてを含む。ただし、図2Bには、メモリ記憶デバイス181しか示していない。図2Bに示す論理接続は、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173を含むが、その他のネットワーク/バスも含むことができる。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【0065】
LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を通してLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、一般に、モデム172、またはインターネットなどの広域ネットワーク173を介して通信を確立するためのその他の手段を含む。モデム172は、内部でも外部でもよく、ユーザ入力インタフェース160またはその他の適切な機構を介して、システムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示しているプログラムモジュール、またはその一部を、リモートメモリ記憶デバイスに記憶することができる。図2Bは、一例として、非限定的に、リモートアプリケーションプログラム185を、メモリデバイス181上に常駐するものとして示す。示してあるネットワーク接続は例であって、コンピュータ間の通信リンクを確立するその他の手段を使用できることを理解されよう。
【0066】
例示的な分散コンピューティングフレームワークまたはアーキテクチャ
パーソナルコンピューティングとインターネットの集中を踏まえて、様々な分散コンピューティングフレームワークが開発されており、また開発されつつある。個人とビジネスユーザは、同様に、シームレスな相互作用が可能で、かつウェブを可能にする、アプリケーションおよびコンピューティングデバイスのためのインタフェースを提供され、それによって、コンピューティング活動のウェブブラウザ指向またはネットワーク指向がますます強まっている。
【0067】
例えば、Microsoft(登録商標)の.NETプラットフォームは、サーバ、ウェブベースのデータ記憶などのビルディングブロックサービス、およびダウンロード可能なデバイスソフトウェアを含む。一般的に言って、.NETプラットフォームは以下を提供する。すなわち、(1)全範囲のコンピューティングデバイスをともに作動させ、また、それらすべての上で、自動的にユーザ情報を更新および同期させる能力、(2)HTMLよりもXMLを多く利用することによって可能になる、ウェブサイトのための拡張された対話機能、(3)例えば電子メールなどの様々なアプリケーション、またはOffice.NETなどのソフトウェアの管理のために、中央の起点からユーザに対してカスタマイズしたアクセス、およびプロダクトおよびサービスの配信を行うことを特徴とするオンラインサービス、(4)情報へのアクセスの効率および容易性を向上させる集中データ記憶、およびユーザおよびデバイスの間の情報の同期化、(5)電子メール、ファックス、電話など、様々な通信媒体を統合する能力、(6)開発者の場合には、それによって生産性が向上し、プログラミングエラーの数が低減される、再使用可能モジュールを作成する能力、およびさらに(7)多くのその他のクロスプラットフォーム統合機能。
【0068】
本明細書中の例示的実施形態は、コンピューティングデバイス上に常駐するソフトウェアとの関連において説明しているが、本発明の1つまたは複数の部分を、オペレーティングシステム、アプリケーションプログラミングインタフェース(API)、またはコプロセッサと要求しているオブジェクトの間の「媒介者」オブジェクトによって実施することもでき、したがって、色管理サービスを.NETの言語およびサービスすべてによって、また、さらに他の分散コンピューティングフレームワークにおいて、実施、サポートまたはアクセスすることが可能である。
【0069】
X11における色管理
発明の背景の説明で述べたように、X11r6色管理システムは、白色点の適合化、全領域マッピング、行列の変換および1−Dルックアップテーブルを始めとする動作によって、プラグイン可能な色管理機能をサポートし、また、デバイス非依存アプリケーションコンテントのデバイス依存色値への変換をサポートするグラフィックスプロトコルである。
【0070】
X11r6アーキテクチャは、2種類の色管理解決策を有する。第1のソリューションは、一般に、CRTなどの単純な表示デバイスをキャラクタライズするために使用されている単純な3×3行列および3つの1−Dルックアップテーブルである。第2は、主として白色点の変換および全領域圧縮からなるXcmsである。Xcmsの導入以来、色管理は進歩し、これら2種類の技術に限定された解決策では不十分であることがわかってきた。なぜならば、ほとんどの場合、X11がデスティネーションデバイスのみをサポートする、ソースおよびデスティネーションデバイスを前提としており、また、ソースがデバイス非依存であることを前提としているからである。幸い、Xcmsは、このアーキテクチャの範囲内で、よりフレキシブルな実装を可能にする。
【0071】
CIELABは、1976年にCIEが、人間の視覚系統(HVS)を表すことに関し、それまでのCIELUVよりも、それらの値において一様な色空間をよりよく示すモデルとして採用したシステムである。CIELABは、それより前の(1942)L、a、bと呼ばれるRichard Hunterのシステムに基づいた反対色システムである。色対立は、光学の神経と脳の間のどこかで、レチナールの色刺激が、明と暗、赤と緑、青と黄の対比に変換されるという、1960年代中頃の発見に関連する。CIELABは、これらの値を3つの軸、L、a、bで表す。完全な学名は、1976CIE L空間という。
【0072】
中央の垂直軸は、Lとして示される明度を表し、明度の値は0(黒)から100(白)まである。色軸は、色が赤と緑に両方ではあり得ず、青と黄の両方でもあり得ないという事実に基づいている。なぜならば、これらの色は互いに対立するからである。それぞれの軸上で、値は正から負まである。a〜a’軸の上では、正の値は赤の量を表し、負の値は緑の量を表す。b〜b’軸の上では、黄が正、青が負である。両軸とも、ゼロはニュートラルグレイである。CIEXYZデータ構造はX11が利用するデータ構造であり、指定された色空間の特定の色のX、Y、Z座標を含む。
【0073】
図3Aに、X11r5がどのように動作するかという例を示す。この場合、X11中に、DirectColorまたはTrueColor面を想定する。デバイス非依存のRGB値から、表示デバイス依存の、輝度に対して直線のRGB値が、3×3行列300によって生成される。次いで、所与のガンマ(γ)値、例えばγ=1.0について、表示デバイス依存の非線形RGB値が3つの1−Dルックアップテーブル(LUTs)310によって生成される。これらのデバイス依存値は、次いで、表示デバイス320によって再生される。この点に関しては、表示デバイス320は、表示デバイス320に固有の3×3行列および1−Dルックアップテーブルを提供する。
【0074】
特に、X色空間変換コンテキスト(XCCC)は、関数、toCIEXYZおよびfromCIEXYZへの2つのジェネリックポインタをサポートする。図3Bに、X11r6がどのように動作するかの例を示す。デバイス非依存色値、例えば、CIELAB、CIELUV、CIEYxy、CIEXYZ、TekHVC、cmdPadから、X11のライブラリ、Xlib中の標準色空間変換機構によってCIEXYZ値が生成される。次いで、Xcms白色点変換コンポーネント330によって、デバイス非依存の白色点CIEXYZ値が生成される。次いで、Xcms全領域圧縮変換コンポーネント340によって、デバイス非依存全領域CIEXYZ値が生成される。次いで、上記で一部を説明したZX11r5機構、またはXCCCのfromCIEXYZのいずれかによって、デバイス依存RGB値が生成される。
【0075】
したがって、図4Aに示すように、Xプラットフォームにおける色管理は、X11データ構造を生成するように、またはX11データ構造をデバイス依存値に変換するように動作する、toCIEXYZおよびfromCIEXYZ関数によって行われる。
【0076】
図4Bに、標準Windows(登録商標)の色管理モジュール(CMM)の動作を示す。CMMは、標準CMM関数によって、様々なソースデバイス依存色空間およびデバイスプロファイルのいずれかを、デバイス非依存色空間、例えば、ICC、sRGB、scRGBに変換することができる。したがって、デスティネーションデバイスプロファイルにより、非依存色空間値はそのデスティネーションデバイスに適した色空間に変換される。
【0077】
図4Cに示すように、本発明は、XCCCのtoCIEXYZおよびfromCIEXYZ関数を、標準ICCプロファイルおよび色管理メソッドによって提供されるサポートで増補する機構を提供する。
【0078】
これを遂行するためには、まず、ユーザインタフェース(UI)を介して明示的に、あるいは、デバイスに関連付けることによって黙示的に、適切なソースおよびデスティネーションプロファイルを指定する。これらの2つのデバイスプロファイルから、標準Windows(登録商標)CMM関数を使って、ソースデバイスからデスティネーションデバイスに直接、変換するデバイスリンクプロファイルを作成することができ、それによって、ソースデバイスとデスティネーションデバイスの色特性の差異の最終的な関係が決まる。X11のfromCIEXYZ関数ポインタが、デバイスリンクプロファイルを使ってソースの色または画像をデスティネーションの色または画像に変換する、標準CMMベースの色変換関数を指すようにすることによって、ソースデバイスからデスティネーションデバイスへの値の受け渡しが行われるようにするために、X11アーキテクチャをプロセスに導入する。標準CMMのサポートは、Windows(登録商標)イメージカラーマッチング(Image Color Matching)(ICM)インタフェースまたはその他のICC色管理システムインタフェースから、X11に移植することができる。
【0079】
図5A〜図5Cは、本発明のいくつかの例を示す。これらの例では、説明をわかりやすくするために、白色点、全領域圧縮、およびその他の機能が、デフォルトでヌルオペレーションになっている。
【0080】
図5Aでは、ソースデバイスに、RGBまたはsRGBソースデバイス色が存在している。ソースデバイスとデスティネーションデバイスの間のデバイスリンクプロファイルの計算の後、本発明は、ソースデバイスRGBがCIEXYZであるとXシステムに思い込ませるように動作する。次いで、デバイスリンクプロファイルを引数として含むfromCIEXYZ関数によって、デバイス依存のデスティネーション色が生成される。
【0081】
図5Bでは、ソースデバイスにCMYKソースデバイス色が存在している。ソースデバイスとデスティネーションデバイスの間のデバイスリンクプロファイルの計算の後、本発明は、ソースデバイスRGBがcmsPad XcmsColorタイプであるとXシステムに思い込ませるように動作する。次いで、デバイスリンクプロファイルを引数として含むfromCIEXYZ関数によって、デバイス依存デスティネーション色が生成される。
【0082】
図5Cでは、ソースデバイスにscRGBソースデバイス色が存在している。ソースデバイスとデスティネーションデバイスの間のデバイスリンクプロファイルの計算の後、デバイスリンクプロファイルを含むfromCIEXYZ関数によって、デバイス依存デスティネーション色が生成される。あるいは、デバイスリンクプロファイルを含むfromCIEXYZ関数によって、拡張デバイス依存デスティネーション色が生成される。このような変換では、Xcmscolorsが符号なし短整数(unsigned shorts)であり、scRGBが符号付きフロートであるという事実に対して補正がなされる。任意選択で、さらに3つの1−Dルックアップテーブルによって色調圧縮(tonal compression)を別に行うことができる。
【0083】
RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)、esRGB(HP/PIMA)など、その他の色管理解決策を、上記の図5Cの例を使ってサポートすることができる。本発明の上述の例のそれぞれにおいて、Xの関数、fromCIEXYZおよびtoCIEXYZが、モデムの色管理システムからデータを受け取るように思い込まされ、またはスプーフ(気づかれないように他のプログラムやクライアントを装うプログラムを利用したりしてターゲットをだますこと(偽装))される。
【0084】
APIのスプーフィングに関するさらなる詳細については、本明細書では、2つの非限定的な代替案を提案する。第1に、デバイス非依存アプリケーションコンテントからデバイス依存色値に移動するときに、本発明は、fromCIEXYZ関数をスプーフして、実際にデバイス依存色値をCIEXYZに変換し、次いで、3×3行列および1−Dルックアップテーブルを使って、特定の出力デバイスをキャラクタライズする。デバイス依存(dd)からデバイス非依存(di)の値に変換するために、このプロセスが逆に行われ、toCIEXYZ APIが代わりにスプーフされる。
【0085】
あるいは、デバイス非依存アプリケーションコンテントからデバイス依存色値に移動するときに、本発明は、fromCIEXYZ APIをスプーフして、実際にデバイス依存色値をCIEXYZに変換し、次いで、3×3行列を識別行列に設定し、1−Dルックアップテーブルを識別ルックアップテーブル(identify LUTs)に設定して、行列およびルックアップテーブルではキャラクタライズできない複雑なデスティネーションデバイスをサポートする。デバイス依存(dd)からデバイス非依存(di)の値に変換するために、このプロセスが逆に行われ、toCIEXYZ APIが代わりにスプーフされる。
【0086】
本明細書で使用しているように「fromCIEXYZをスプーフする」または「toCIEXYZをスプーフする」とは、プロトコルデフォルトで供給する関数へのポインタを、実際にICC互換性色管理モジュールを呼び出して、色をddからdiに、またはddからdiに変換するカスタム関数に置き換えることを意味する。
【0087】
上述のように、本発明の例示的実施形態を、様々なコンピューティングデバイスおよびネットワークアーキテクチャに関連させて説明してきたが、その基礎をなすコンセプトは、色管理を行うことが望ましいどのコンピューティングデバイスまたはシステムにも適用できる。したがって、本発明による改良された信号処理を提供するための技術は、様々なアプリケーションおよびデバイスに適用できる。例えば、本発明のアルゴリズムを、デバイス上に別個のオブジェクトとして、別のオブジェクトの一部として、サーバからダウンロード可能なオブジェクトとして、デバイスまたはオブジェクトとネットワークの間の「媒介者」として、分散オブジェクトとして提供することにより、コンピューティングデバイスのオペレーティングシステムに適用することができる。例示的プログラミング言語、名称、および例を、ここでは様々な選択を代表するものとして選択しており、それらの言語、名前および例は、限定することを意図したものではない。当業者は、本発明によって達成される色管理と同じ、同様の、または同等の色管理を達成するオブジェクトコードを提供する、多くの方法があることを理解されよう。
【0088】
本明細書で説明している様々な技術は、ハードウェアまたはソフトウェア、あるいは必要に応じてその両方の組合せに関連させて実施することができる。したがって、本発明の方法および装置、またはそれらの特定の態様または部分は、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、またはいずれかの他の機械可読記憶媒体などの具体的な媒体で具現化されるプログラムコード(すなわち、命令)の形をとることができ、この場合、コンピュータなどの機械にプログラムコードがロードされ、それによって実行されると、その機械が本発明を実施する装置になる。プログラムコードをプログラマブルコンピュータ上で実行する場合、コンピュータデバイスは、一般に、プロセッサ、そのプロセッサが読むことができる記憶媒体(揮発性および不揮発性メモリ、および/または記憶エレメントを含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含む。本発明の信号処理サービスを利用できる、例えばデータ処理APIなどを利用できる1つまたは複数のプログラムを、好ましくは、コンピュータシステムと通信を行うように、高水準手続き形またはオブジェクト指向プログラミング言語で実装する。しかし、プログラムは、所望によりアセンブラまたは機械言語で実装することもできる。どの場合も、その言語は、コンパイル済みまたはインタプリタ型言語であってよく、ハードウェアの実装と組み合わせることができる。
【0089】
本発明の方法および装置はまた、電気配線またはケーブルを介して、光ファイバを通して、またはその他のいずれかの伝送形態でなど、特定の伝送媒体を介して伝送されるプログラムコードの形で具現化される通信によって実施することもできる。この場合、そのプログラムコードが、EPROM、ゲートアレイ、プログラマブルロジックデバイス(PLD)、クライアントコンピュータ、ビデオレコーダなどの機械によって受信され、そこにロードされ、それによって実行された場合、上述の例示的実施形態で説明した信号処理機能を有する受信機械が、本発明を実施するための装置になる。汎用プロセッサ上に実装した場合、プログラムコードはそのプロセッサと結合して、本発明の機能を呼び出すように動作する独特な装置を提供する。さらに、本発明と関連して使用するいずれかの記憶技術は、常に、ハードウェアとソフトウェアの組合せであってよい。
【0090】
本発明を、様々な図面の好ましい実施形態に関連して説明してきたが、その他の同様の実施形態を使用することができ、または、本発明から逸脱することなく、本発明と同じ機能を実行するように説明した実施形態に修正や追加を施すことができることを理解されたい。例えば、本発明の例示的ネットワーク環境を、ピアツーピアネットワーク環境などのネットワーク環境という状況で説明しているが、当業者は、本発明がそれに限定されるものではなく、本出願で記載している方法が、有線であろうと無線であろうと、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなどのどのようなコンピューティングデバイスまたは環境にも適用でき、また、通信ネットワークを介して接続され、そのネットワーク上で対話する、任意の数のこのようなコンピューティングデバイスに適用できることを理解されよう。さらに、特に無線ネットワーク装置の数が増えつづけるのにつれて、ハンドヘルドデバイスのオペレーティングシステムおよびその他のアプリケーションに固有のオペレーティングシステムを始めとする様々なコンピュータプラットフォームが考えられることを強調しておきたい。さらに、本発明は、複数の処理チップまたはデバイスにおいて、またはそれらの間で実装することができ、かつ、複数のデバイスの間で同様に記憶することが可能である。したがって、本発明は、いずれかの1つの実施形態に限定されるものではなく、頭記の特許請求の範囲による範囲において解釈されるべきものである。
【図面の簡単な説明】
【図1A】XコンソーシアムによるXプロトコルのいくつかの基本的態様を示す図である。
【図1B】XコンソーシアムによるXプロトコルのいくつかの基本的態様を示す図である。
【図2A】本発明を実施することができる、様々なコンピューティングデバイスを有する例示的ネットワーク環境を示す構成図である。
【図2B】本発明を実施することができる、例示的かつ非限定的なコンピューティングデバイスを表す構成図である。
【図3A】X11r5色管理アークテクチャの例示的動作を示す図である。
【図3B】X11r6色管理アークテクチャの例示的動作を示す図である。
【図4A】X11r6色管理アークテクチャのさらなる例示的態様を示す図である。
【図4B】色管理モジュール(CMM)の色管理アーキテクチャの例示的動作を示す図である。
【図4C】本発明が提供する色管理アーキテクチャを示す図である。
【図5A】本発明を様々な色空間と関連させて使用した例を示す図である。
【図5B】本発明を様々な色空間と関連させて使用した例を示す図である。
【図5C】本発明を様々な色空間と関連させて使用した例を示す図である。
【符号の説明】
10a,10b コンピューティングオブジェクト(コンピュータ、サーバ、サーバコンピュータ)
14 通信ネットワーク/バス
20 データベース(データベースまたはメモリ)
100 コンピューティングシステム環境(例示的動作環境)
110 コンピュータ
110a,110b,110c,110d,110e コンピューティングオブジェクトまたはデバイス(コンピュータ、クライアント、クライアントデバイス、クライアントコンピュータ)
120 処理装置(ホスト処理装置)
121 システムバス
130 システムメモリ
131 読取り専用メモリ(ROM)
132 ランダムアクセスメモリ(RAM)
133 基本入力/出力システム(BIOS)
134,144 オペレーティングシステム
135 アプリケーションプログラムモジュールまたはオブジェクト
135,145 アプリケーションプログラム
136,146 その他のプログラムモジュール
137,147 プログラムデータ
140 インタフェース
141 ハードディスクドライブ
144 オペレーティングシステム
150 リムーバブル不揮発性メモリインタフェース
151 磁気ディスクドライブ
152 リムーバブルの不揮発性磁気ディスク
155 光ディスクドライブ
156 リムーバブルの不揮発性光ディスク
160 ユーザ入力インタフェース
161 ポインティングデバイス
162 キーボード
170 ネットワークインタフェースまたはアダプタ
171 ローカルエリアネットワーク(LAN)
172 モデム
173 広域ネットワーク(WAN)
180 リモートコンピュータ
181 メモリ記憶デバイス
182 グラフィックスインタフェース
184 GPU
185 リモートアプリケーションプログラム
186 ビデオメモリ
190 ビデオインタフェース
191 モニタ
195 出力周辺インタフェース
196 プリンタ
197 スピーカ
200a デバイス非依存層
200b デバイス依存層
210 Xクライアント
210a,210b アプリケーション
220 Xライブラリ
230 ツールキット
240 表示(Xサーバ)
250 デバイスドライバ
260 デバイス
300 3×3行列
310 一次元(1−D)ルックアップテーブル
320 表示デバイス
330 白色点変換コンポーネント
340 全領域圧縮変換コンポーネント
[0001]
BACKGROUND OF THE INVENTION
The present invention is directed to a system and method for implementing color management. More particularly, the present invention is directed to systems and methods for implementing color management in connection with various devices having different color display characteristics.
[0002]
[Prior art]
Part of the disclosure of this patent specification may include material that is subject to copyright protection. When this patent specification or disclosure of this patent is found in a patent office patent file or record, the copyright owner has no objection to who copies it. However, in all other cases, the copyright owner reserves all copyrights, whatever. This specification includes Microsoft Corp. 2001, copyright notice applies.
[0003]
The color space is a model for representing a color as a numerical value with three or more coordinates. For example, the RGB color space represents a color with red, green, and blue coordinates.
[0004]
If a color is to be reproduced in a predictable way across different devices and materials, the color must be described in a way that does not depend on the mechanism used to generate the color or the specific behavior of the material Don't be. For example, color cathode ray tubes (CRTs) and color printers produce colors using very different mechanisms. To address this problem, current methods require that a color be described using device-independent color coordinates and then converted to device-dependent color coordinates for each device. Currently, the device itself provides a mechanism for conversion to a device dependent system.
[0005]
In this regard, a color management is the conversion of the color of an object, such as an image, graphics, or text, from their current color space to the color space of an output device such as a monitor, printer, etc. A term used to describe a technology or system.
[0006]
Initially, operating systems supported colors by declaring support for specific color spaces, eg RGB. However, since RGB differs between devices, colors were not reproduced reliably between different devices.
[0007]
Due to the lack of traditional means for supporting such colors, various operating systems use the International Color Consortium (ICC) profile to make device-dependent colors device-dependent. Added support for characterizing with. The specification of the ICC device characterization profile is publicly available, eg, the ICC website, www. color. org. The ICC uses the input device that created the image and the profile of the output device that displayed the image to create a transform that moves the image from the input device color space to the output device color space. This gives a very accurate color, but also involves the overhead of transferring the input device profile along with the image and executing the image via a transform.
[0008]
Further techniques were then developed in an attempt to provide an intermediate device independent standard color space. Some of these color management technologies already exist today in operating systems and applications, such as the Microsoft® Windows® operating system and the Microsoft® Office® platform. The color space other than the ICC color space includes a standard color space, that is, sRGB (International Engineering Consortium (IEC) specification No. 61966-2-1) for short. This is supported as a core technology starting with Windows 98 (registered trademark) and OFFICE 2000 (registered trademark). Color management technology continues to evolve through the creation of a standard extended color space, or scRGB (IEC specification No. 61966-2-2) for short.
[0009]
With the integration of ICC, sRGB and scRGB, there are many problems that must be solved in view of the various input and output computing devices that support color. Currently, sRGB is the default color space of Windows (registered trademark) based on the IEC 61966-2-1 standard. An sRGB compliant device need not provide a profile or other support for color management to work well.
[0010]
In this regard, the structure of the color space of sRGB, scRGB, and ICC has a fixed and limited meaning and is the background of the present invention. These color spaces are mentioned because they are intended to be sufficiently discernable by those skilled in the art, but still a comprehensive description follows and each color space is publicly available to any publicly available Standard specifications will be supplemented.
[0011]
The standard RGB color space, sRGB, is CIEXYZ, a CIEXYZ standard D65 that correlates to daylight as the primary color of red, green, and blue associated with CIEXYZ values and a perceptually expressed white point value, eg, color temperature 6500 Kelvin. And a physical luminance space, such as a 3 × 3 matrix that describes the optional display conditions such as ambient, background, and luminance that affect the end user's perception of the target device color, and the color tone of the RGB perceptual space ( tonal) contains one-dimensional look-up tables (LUTs) that describe the non-linear relationship between responses.
[0012]
The standard extended color space, scRGB, is the same as sRGB, but its value can exceed the visible range of colors.
[0013]
An ICC profile generally has a metadata structure that includes information that associates device-dependent colors with colors that are visually perceived by equivalent humans. Some instances of ICC profiles can provide conversion information between any two types of color spaces, whether device-dependent or device-independent.
[0014]
The X protocol was originally developed in the mid 1980s in response to the need to provide a graphical user interface (GUI) with network transparency for the UNIX operating system. X provides graphical information display and management in much the same way as Microsoft® Windows® and IBM® Presentation Manager.
[0015]
The major difference in color management between the X architecture and other platforms lies in the structure of the X protocol. Whereas other platforms such as Windows® and IBM's presentation manager simply display local graphical applications on the PC, the X protocol allows applications to be specified by specifying client-server relationships at the application level. Distribute the processing. The “what to do” part of the application is called the X client, which is separated from the “what to do” part, the display, called the X server. X clients typically run on remote machines that have excessive computing power and display on the X server. The benefits are true client / server and distributed processing.
[0016]
As shown in FIG. 1A, the X protocol defines a client / server relationship between applications 210a, 210b and their display 240. To accommodate this, applications 210a, 210b, called X clients, are separated from the display known as X server 240. The X clients 210 a and 210 b include an X library 220 and an optional tool kit 230. The X server 240 includes a device driver 250 for driving the device 260. As shown in FIG. 1B, X further specifies device dependent 200b and independent layer 200a, and its protocol is based on an asynchronous network protocol for communication between X client 210 and X server 240. Provides a general window system. In effect, the X protocol hides the operating system and basic hardware characteristics. This masking of architectural and engineering differences facilitates the development of X clients and has become a highly portable leap in the X Window System.
[0017]
Advantages of the X approach include: (1) Local and network-based computing looks and feels the same to both users and developers. (2) The X server is highly portable, thereby enabling support for various languages and operating systems. (3) The X client also has high portability. (4) X supports byte stream oriented network protocols, both locally and remotely. (5) The application is not subject to adverse performance conditions.
[0018]
Therefore, the X protocol design specifies the client / server relationship between the application and its display. In X, software that manages a single screen, keyboard, and mouse is known as an X server. The X client is an application displayed on the X server and may be referred to as an “application”. The X client sends a request, eg a drawing or information request, to the X server. The X server accepts requests from multiple clients and returns responses to the X clients in response to requests for information, user input, and errors.
[0019]
The X server runs on the local machine and accepts and demultiplexes and acts on network-based or local inter-process communication (IPC) based X client requests. The X server (1) displays drawing requests on the screen, (2) responds to information requests, (3) reports errors in the request, and (4) manages the keyboard, mouse, and display device (5) Multiplex the keyboard and mouse input to each X client via network or local IPC, (6) Create, map, and destroy windows, (7) Write in windows, And draw.
[0020]
An X client is basically an application written with the help of libraries using the X protocol, such as Xlib and Xt. The X client (1) sends a request to the server, (2) receives an event from the server, and (3) receives an error from the server.
[0021]
With respect to the request, the X client issues a request to the X server to create a particular action, for example, to create a window. In order to improve performance, X clients typically do not expect or wait for a response. Instead, request delivery is typically left to the trusted network layer. The request for X is one of multiples of 4 bytes.
[0022]
For responses, the X server responds to the X client's specific request for a response. Note that not all requests require a response. The X response is one of multiples of 4 bytes of 32 bytes or more.
[0023]
For events, the X server forwards events expected by the application to the X client, including keyboard or mouse input. In order to minimize network traffic, only expected events are sent to the X client. The X event is 32 bytes.
[0024]
For errors, the X server reports the requested error to the X client. Errors are like events, but are handled differently. X errors are the same size as events to simplify their processing. The error is sent as 32 bytes to the X client error handling routine.
[0025]
The design of the X server largely depends on the platform hardware and operating system that implements it. As the capabilities of the underlying technology increase, so do the capabilities and capabilities of the X server.
[0026]
As described above, FIG. 1A shows that there is a device-dependent layer 200b and a device-independent layer 200a of the X protocol. In the case of Windows (registered trademark) or Solaris, the device-dependent layer 200b is responsible for localizing the X server to the native environment and is responsible for swapping data bytes from the machine in different byte order. The byte order is noted in each of the X requests. Layer 200b hides hardware and operating system architectural differences and retains device driver dependencies for keyboard, mouse, and video.
[0027]
In the case of a single thread architecture, the X server is a single sequential process that uses a native time slice architecture for scheduling demultiplexing requests, multiplexing responses, events, and errors between X clients.
[0028]
In the case of a multithreaded architecture, the X server is a multithreaded process that can take advantage of the nature of the operating system by dividing the job into multiple threads for execution by the operating system and hardware. A true preemptive multitasking / multithreading environment provides a high degree of capability for the X server.
[0029]
Today's X servers include workstations, X terminals, and PC X servers. Workstations are powerful enough to handle complex computing requirements and typically display local X clients and a few network (remote) X clients. The X terminal is a dumb terminal having a graphics function. X server software is downloaded from the host. X terminals are less expensive than workstations and are easier to maintain. The PC X server integrates PC and remote application server access into one common desktop, an existing PC investment, and the user skill set (desktop operation and access) is local to the user's preference. Or provide remote window management and easy to use.
[0030]
The X Consortium has established the X11 graphics architecture. Over the past few years, the desktop has evolved from a productive or user-centric environment to a centralized, focused environment surrounded by adapted web protocols and browser-based user interfaces. The latest version of the X Window System by the X Consortium-for short X11r6.5.1, or X11, or X11r6- addresses X application and browser integration issues that allow for fast deployment and security without recoding. Yes.
[0031]
The latest version of the X11 graphics architecture is available on the World Wide Web at least on the X Consortium, www. x. available from org. In short, the X11r6 color management system is able to: (1) Plug-in through operations such as white point adaptation, gamut mapping, matrix transformation, and one-dimensional (1-D) lookup tables (LUTs). A graphics protocol that supports possible color management functions and (2) supports conversion of device-independent application content into device-dependent color values.
[0032]
When the X Consortium establishes X11, X11 uses a 3x3 matrix and 3z 1-D look-up tables to convert standard RGB colors to RGB colors for a particular display device. Was supported. With the advent of X11r6, based on Tektronix's research results that extended previous simple solutions, the X color management system (Xcms) architecture was incorporated to convert between numerous device-independent color spaces. Provided a method for displaying device-dependent colors. This solution focuses on adding support for white point chromaticity adaptation and support for gamut compression. Therefore, X11r6 color management employs a workflow that starts with 3 channel device-independent colors and converts them to display device-dependent colors.
[0033]
Thus, the X11r6 architecture has two types of color management solutions. The first solution is a simple 3x3 matrix and three 1-D look-up tables that are commonly used to characterize simple display devices such as CRTs. The second is Xcms consisting mainly of white point conversion and full-field compression. Since the introduction of Xcms, color management has progressed and solutions limited to these two technologies have proven inadequate. This is because most of them adopt source and destination devices, assuming that X11 supports only the destination device and the source is device independent.
[0034]
Also, modern color management solutions based on metadata device characterization profiles, such as ICC, employ workflows that start and end with three, four, or more device-dependent color channels. Currently, X11 only allows color management workflows that start with three device-independent colors and end with RGB display device-dependent colors. Modern color management solutions based on standard color spaces such as sRGB and scRGB are similar to modern metadata solutions, except that the metadata is included within the device itself. Thus, the workflow appears to be completely device independent outside the source and destination devices. Basically, the metadata that translates between the device color and the standard color space exists only in the source and destination hardware itself. This makes it much easier to exchange user experience and color content in an open network and allows complex workflows consisting of multiple applications or users.
[0035]
[Problems to be solved by the invention]
Other prior art solutions that exist today are not currently integrated with X11r6 and are therefore limited to a single application. Thus, current solutions have very limited cut and paste, application-to-application and complex workflows. Furthermore, current solutions are very limited with respect to cyan / magenta / yellow / black (CMYK) and other color spaces. Therefore, there is a need for a mechanism that allows a standard X11r6 graphics platform to support the de facto industry metadata color management standard built for each of the ICC, sRGB, and scRGB color management systems. There is also a need for a mechanism that allows support for the latest color management standards such as ICC, sRGB, scRGB, etc. that start and end with device dependent colors.
[0036]
[Means for Solving the Problems]
In view of the above, the present invention provides systems and methods for implementing color management in connection with various computing devices having different color display characteristics. More particularly, the present invention provides a means for enabling an X11 graphics platform to support color management systems such as ICC, sRGB, scRGB, etc. that begin and end with device dependent colors. The present invention also provides a means to support the CMYK color space within X11r6 as well as the extended RGB color space, thus extending the X11r6 graphics platform to support any modern color management standard.
[0037]
In various embodiments of the present invention, methods, computer readable media, and computing devices are provided in connection with a color management system. Embodiments include receiving device-independent color data from a source device to generate a device link profile representing a color characteristic difference between the source device and the destination device for transfer to a destination device, and color Spoofing at least one application programming interface function of the management system, and calling a function that generates a destination device dependent color value for the destination device.
[0038]
DETAILED DESCRIPTION OF THE INVENTION
Other features and embodiments of the invention are described below.
[0039]
The system and method for realizing color management according to the present invention will be further described with reference to the accompanying drawings.
[0040]
Overview
Accordingly, the present invention provides a method and system for implementing advanced color management using various currently employed solutions within the architectural constraints of the X11r6 graphics platform. . As described above, X11 employs a color management workflow architecture that starts with three device-independent colors and ends with RGB display device-dependent colors. Thus, the present invention provides a mechanism that allows support for advanced color management starting and ending with device dependent colors, such as ICC, sRGB, scRGB. The present invention can also be used to support CMYK and extended RGB color spaces within X11r6, thus extending the X11r6 graphics platform to support all the latest color management technologies. can do.
[0041]
Example network and distributed environment
Those skilled in the art will appreciate that computers, or other clients or server devices, can be deployed as part of a computer network or in a distributed computing environment. In this regard, the invention can be used in connection with a color management process having any number of memories or storage units and any number of applications and processes that occur over any number of storage units or volumes. The present invention relates to a computer system. The present invention can be applied to environments with server computers and client computers having remote or local storage devices located in a network environment or a distributed computing environment. The invention also applies to stand-alone computing devices with programming language capabilities, interpretation and execution capabilities for generating, receiving and transmitting information in connection with remote or local color management services. can do.
[0042]
Distributed computing facilitates sharing of computer resources and services by direct exchange between computing devices and systems. These resources and services include information exchange, cache storage, and disk storage for files. Distributed computing takes advantage of network connectivity to allow clients to aggregate their power and benefit the entire enterprise. In this regard, various devices can comprise applications, objects, or resources that can participate in a color management process that can utilize the techniques of the present invention.
[0043]
FIG. 2A provides a schematic diagram of an exemplary network or distributed computing environment. The distributed computing environment includes computing objects 10a, 10b, etc., and computing objects or devices 110a, 110b, 110c, etc. These objects can include programs, methods, data stores, programmable logic, and the like. Objects are the same or different devices such as personal digital assistants (PDAs), televisions, Moving Picture Experts Group (MPEG-1) Audio Layer-3 (MP3) players, personal computers, etc. Including a part of Each object can communicate with another object through the communication network 14. The network itself can include other computing objects and computing devices that provide services to the system of FIG. 2A. According to one aspect of the invention, each object 10a, 10b, etc., or 110a, 110b, 110c, etc. can include an application that can request a color management service.
[0044]
In a distributed computing architecture, computers that have traditionally been used only as clients communicate directly between them, assuming what role is most efficient for the network, and the client and server. Can operate as both. This reduces the load on the server and also allows all clients to access available resources on other clients, thereby improving overall network functionality and efficiency. Thus, the color management service according to the present invention can be distributed between clients and servers and operate in an efficient manner for the entire network.
[0045]
Distributed computing can help enterprises deliver services and functions more efficiently across diverse geographic boundaries. In addition, distributed computing can operate as a network caching mechanism to move data closer to the location where it is consumed. Distributed computing also allows multiple computing networks to collaborate dynamically using intelligent agents. Agents reside on peer computers and communicate various types of information around. Agents can also initiate tasks for other peer systems. For example, use intelligent agents to prioritize tasks on the network, change traffic flow, search for files locally, or determine abnormal behavior such as viruses, etc. You can stop it before. All kinds of other services are also possible. In fact, the ability to distribute color management services is very useful in such systems because graphical objects or other color data can be physically located in one or more locations.
[0046]
It will also be appreciated that an object such as 110c may be hosted on another computing device 10a, 10b, etc., or 110a, 110b, etc. Thus, although the illustrated physical environment may show the connected device as a computer, such illustrations are merely examples, instead the physical environment is represented as a PDA, television, MP3 player. It may also be illustrated or described as including various digital devices such as, software objects such as interfaces, and COM objects.
[0047]
There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems can be connected by wired or wireless systems via a local network or a wide area distributed network. Currently, many of the networks are coupled to the Internet. The Internet provides infrastructure for wide area distributed computing and encompasses many different networks.
[0048]
In a home networking environment, there are at least four different types of transmission media, each of which can support a unique protocol, such as transmission lines, data (both wireless and wired), voice (eg, telephone), and entertainment media. Most home controls, such as light switches and appliances, can use power lines for connectivity. Data services can enter the home as broadband (eg, either DSL or cable modem) and can be wireless, eg, home radio frequency (HomeRF) or 802.11b, or wired, eg, home phone line networking equipment ( It can be accessed in the home using either Home Phoneline Networking Appliance (PNA), Cat5, or even power line connectivity. Voice traffic can enter the home either as wired, eg Cat3, or wireless, eg cell phone, and can be distributed within the home using Cat3 wiring. Entertainment media, or other graphical data, can come in through either satellite or cable and is generally distributed in the home using coaxial cable. IEEE 1394 and DVI are also emerging as digital interconnects for clusters of media devices. These network environments, and other environments that may emerge as protocol standards, can all be interconnected to form an intranet that can connect to the outside world through the Internet. In short, there are a variety of different sources for data storage and transmission, so computing devices can access or utilize in conjunction with the color management of graphics objects in accordance with the present invention while moving forward. You will need a method for sharing data, or other color data.
[0049]
In addition, color is an effective means of representing various physical or other phenomena, so color can be quickly captured by humans, whether the data is magnetic resonance imaging data, ultrasound data, graphics equalization data, etc. Often it is an appropriate way to present data for perceptual analysis. Thus, the sources of color data considered herein are infinite and may undergo a series of transformations before being considered “color” data.
[0050]
The Internet typically refers to a collection of networks and gateways that utilize a set of transmission control protocol / interface program (TCP / IP) protocols well known in the computer networking art. The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers running networking protocols that allow users to interact and share information on the network. it can. Because of this widespread sharing of information, remote networks such as the Internet have so far generally provided software applications for developers to perform specific operations or services, essentially without restrictions. It has evolved into an open system that can be designed.
[0051]
Thus (this) network infrastructure allows for a number of network topologies, such as client / server, peer-to-peer, or hybrid architectures. A “client” is a member of a class or group that uses the services of other classes or groups that it is not associated with. Thus, in computing, a client is a process, ie, roughly a set of instructions or tasks, that requests a service provided by another program. The client process uses the requested service without having to “know” any operational details about the other program or the service itself. In a client / server architecture, particularly a network system, a client is usually a computer that accesses shared network resources provided by another computer, eg, a server. In the example of FIG. 2A, the computers 110a and 110b and the like can be regarded as clients, and the computers 10a and 10b and the like can be regarded as servers. In this case, the servers 10a, 10b, etc. hold data, and the data is then replicated in the client computers 110a, 110b, etc.
[0052]
A server is generally a remote computer system accessible on a remote network such as the Internet. The client process can be active on the first computer system and the server process can be active on the second computer system. They can communicate with each other via a communication medium, thus providing a distributed function, allowing multiple clients to utilize the server's information gathering function.
[0053]
The client and the server communicate with each other using a function provided by the protocol layer. For example, Hypertext Transfer Protocol (HTTP) is a common protocol used in connection with the World Wide Web (WWW). In general, a computer network address, such as a universal resource locator (URL) or Internet Protocol (IP) address, is used to identify server or client computers from each other. The network address can be called a URL address. For example, communication can be provided via a communication medium. In particular, for high capacity communication, the client and server can be coupled to each other by a TCP / IP connection.
[0054]
Accordingly, FIG. 2A illustrates an exemplary network or distributed environment in which the present invention can be utilized where a server is communicating with a client computer over a network / bus. More particularly, in accordance with the present invention, several servers 10a, 10b, etc. are connected to a portable computer, handheld computer, thin client, networked via a communications network / bus 14 which may be a LAN, WAN, intranet, Internet. With a number of clients or remote computing devices 110a, 110b, 110c, 110d, 110e, etc., such as connected appliances or other devices such as video cassette recorders (VCRs), televisions (TVs), ovens, lights, heaters, etc. It is connected. Thus, the present invention can be applied to any computing device where it is desirable to process or display graphical objects or any other color data in association therewith.
[0055]
In a network environment in which the communication network / bus 14 is the Internet, for example, the servers 10a, 10b, etc., the clients 110a, 110b, 110c, 110d, 110e, etc. communicate via any of several known protocols such as HTTP. It may be a web server. Servers 10a, 10b, etc. can also serve as clients 110a, 110b, 110c, 110d, 110e, etc., as is characteristic of distributed computing environments. Communication may be wired or wireless as required. Client devices 110a, 110b, 110c, 110d, 110e, etc. may or may not be able to communicate via the communication network / bus 14, and may communicate independently in connection therewith. For example, in the case of a TV or VCR, there may or may not be a networked aspect to control it. Each client computer 110a, 110b, 110c, 110d, 110e, etc., and server computers 10a, 10b, etc. may comprise various application program modules or objects 135, and may store files or files Connections or access to various types of storage elements or objects that can be downloaded or transported are possible. Any computer 10a, 10b, 110a, 110b, etc., in accordance with the present invention may be a database 20 or other storage element, eg, a color object or data, or a database for storing color object or data processed in accordance with the present invention. Or it may be responsible for maintenance and updating of the memory 20 and the like. Thus, client computers 110a, 110b, etc. that can access and interact with computer network / bus 14, server computers 10a, 10b, etc., and databases that can interact with client computers 110a, 110b, etc. and other similar devices. The present invention can be utilized in a computer network environment having twenty.
[0056]
Exemplary computing device
FIG. 2B and the following description are intended to provide a brief overview of a suitable computing environment in which the invention may be implemented. However, as mentioned above, it should be understood that in connection with the present invention, it is contemplated to use handheld, portable, and other computing devices, and any type of computing object. Thus, although a general purpose computer is described below, it is merely an example, and the present invention may be used with other computing devices such as thin clients that are interoperable and interoperable with a network / bus. Can be implemented. Thus, the present invention provides a networked host service environment that includes very few or minimal client resources, eg, to a network / bus, such as an object where a client device is simply placed in an appliance. It can be implemented in a network environment that serves as an interface for or as other computing devices and objects. Basically, wherever data can be stored or retrieved, is a desirable or suitable environment for the operation of the color management technique of the present invention.
[0057]
Although not required, the present invention can be implemented by an operating system and / or operate in connection with the color management techniques of the present invention for use by a developer of a service for a device or object. Can be included in the application software. Software may be written in the context of general computer-executable instructions, such as program modules, executed by one or more computers, such as client workstations, servers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. In general, the functionality of program modules may be combined or distributed as desired in various embodiments. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations. Other well-known computing systems, environments, and / or configurations suitable for use with the present invention include personal computers (PCs), ATMs, server computers, handheld or laptop devices, multiprocessor systems, Examples include, but are not limited to, microprocessor-based systems, programmable consumer electronics, network PCs, appliances, lighting, environmental control elements, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network / bus or other data transmission medium. In a distributed computing environment, program modules can be located in both local and remote computer storage media including memory storage devices, and client nodes can act as server nodes.
[0058]
Accordingly, FIG. 2B illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. However, as revealed above, the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing system environment 100 be interpreted as dependent on or required by any one or combination of components illustrated in the exemplary operating environment 100.
[0059]
With reference to FIG. 2B, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. The components of computer 110 include, but are not limited to, processing device 120, system memory 130, and system bus 121 that couples various system components, including system memory, to processing device 120. The system bus 121 may be any of several types of bus structures using various bus architectures, including a memory bus or memory controller, a peripheral bus, and a local bus. By way of example, such architectures include industry standard architecture (ISA) bus, microchannel architecture (MCA) bus, extended ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, And Peripheral Component Interconnect (PCI) bus (also known as mezzanine bus).
[0060]
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, computer readable media includes, but is not limited to, computer storage media and communication media. A computer storage medium is a volatile and non-volatile, removable and non-removable medium implemented in any manner or technique for storing information such as computer-readable instructions, data structures, program modules, or other data Including both. Computer storage media include random access memory (RAM), read only memory (ROM), electrically erasable programmable read memory (EEPROM), flash memory or other memory technology, compact Disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical disk storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, or for storing desired information Any other medium that can be used and is accessible by computer 110 is included, without limitation. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, communication media includes, but is not limited to, wired media such as wired networks and straight wire, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
[0061]
The system memory 130 includes computer storage media in the form of volatile and / or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input / output system 133 (BIOS), which includes basic routines that assist in transferring information between elements within the computer 110, such as during startup, is typically stored in the ROM 131. The RAM 132 generally contains data and / or program modules that are immediately accessible to and / or currently operated by the processing unit 120. FIG. 2B shows, by way of example and not limitation, operating system 134, application program 135, other program modules 136, and program data 137.
[0062]
The computer 110 may also include other removable / non-removable volatile / nonvolatile computer storage media. By way of example only, FIG. 2B illustrates reading from or writing to a hard disk drive 141 that reads from or writes to non-removable non-volatile magnetic media, and removable non-volatile magnetic disk 152. Shown are a magnetic disk drive 151 and an optical disk drive 155 that reads from or writes to a removable non-volatile optical disk 156, such as a CD-ROM or other optical media. Other removable / non-removable volatile / nonvolatile computer storage media that can be used in the exemplary operating environment include magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tapes, solid state RAM, solid state ROM, etc. Included without limitation. The hard disk drive 141 is generally connected to the system bus 121 via a non-removable memory interface such as the interface 140, and the magnetic disk drive 151 and the optical disk drive 155 are generally connected to the system bus 121 via a removable memory interface such as the interface 150. Connected.
[0063]
The drives described above and shown in FIG. 2B and their associated computer storage media provide computer 110 with storage of computer readable instructions, data structures, program modules, and other data. In FIG. 2B, for example, the hard disk drive 141 is shown as storing an operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Different numbers are used here to indicate that the operating system 144, application programs 145, other program modules 146, and program data 147 are at least different copies. A user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 161, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, and the like. These and other input devices are often connected to the processing unit 120 via a user input interface 160 that is coupled to the system bus 121. However, it can also be connected by other interfaces and bus structures, such as a parallel port, game port, or universal serial bus (USB). A graphics interface 182 such as a North Bridge can also be connected to the system bus 121. The North Bridge is a chipset that communicates with the CPU or host processing unit 120 and is responsible for performing accelerated graphics port (AGP) communications. One or more graphics processing units (GPUs) 184 can communicate with the graphics interface 182. In this regard, GPU 184 typically includes on-chip memory storage, such as register storage, and communicates with video memory 186. However, GPU 184 is just one example of a coprocessor, and therefore computer 110 can include various coprocessing devices. A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190, which can communicate with the video memory 186. In addition to the monitor 191, the computer can also include other peripheral output devices such as speakers 197 and a printer 196, which can be connected via an output peripheral interface 195.
[0064]
Computer 110 may operate in a network or distributed environment using logical connections to one or more remote computers, such as remote computer 180. Remote computer 180 may be a personal computer, server, router, network PC, peer device, or other common network node, and generally includes many or all of the elements described above with respect to computer 110. However, only the memory storage device 181 is shown in FIG. 2B. The logical connections shown in FIG. 2B include a local area network (LAN) 171 and a wide area network (WAN) 173, but can also include other networks / buses. Such networking environments are commonplace in homes, offices, corporate computer networks, intranets, and the Internet.
[0065]
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over a wide area network 173 such as the Internet. The modem 172 can be internal or external and can be connected to the system bus 121 via the user input interface 160 or other suitable mechanism. In a networked environment, the program modules illustrated for computer 110, or portions thereof, may be stored on a remote memory storage device. FIG. 2B shows, by way of example and not limitation, remote application program 185 as residing on memory device 181. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.
[0066]
Exemplary distributed computing framework or architecture
Based on the concentration of personal computing and the Internet, various distributed computing frameworks have been and are being developed. Individuals and business users are similarly provided with interfaces for applications and computing devices that allow seamless interaction and enable the web, thereby enabling web browser orientation or network orientation of computing activities. Is getting stronger.
[0067]
For example, Microsoft®. The NET platform includes servers, building block services such as web-based data storage, and downloadable device software. Generally speaking,. The NET platform provides: (1) Ability to operate a full range of computing devices together and automatically update and synchronize user information on all of them, (2) By using more XML than HTML Become an extended interactive function for websites, (3) various applications such as e-mail, or Office. Online service characterized by customized access to users from the central point of origin and management of software such as NET, and distribution of products and services; (4) Efficiency and ease of access to information Centralized data storage to improve and synchronize information between users and devices, (5) ability to integrate various communication media such as e-mail, fax, telephone, (6) in the case of developers The ability to create reusable modules, which increases productivity and reduces the number of programming errors, and (7) many other cross-platform integration features.
[0068]
Although the exemplary embodiments herein are described in the context of software resident on a computing device, one or more portions of the present invention are described in terms of operating system, application programming interface (API), Or it can be implemented by a “mediator” object between the coprocessor and the requesting object, so the color management service. It can be implemented, supported, or accessed by all NET languages and services, and even in other distributed computing frameworks.
[0069]
Color management in X11
As described in the background of the invention, the X11r6 color management system is a pluggable color management system with operations including white point adaptation, full area mapping, matrix transformations and 1-D lookup tables. A graphics protocol that supports functionality and also supports the conversion of device-independent application content to device-dependent color values.
[0070]
The X11r6 architecture has two types of color management solutions. The first solution is a simple 3x3 matrix and three 1-D look-up tables that are generally used to characterize simple display devices such as CRTs. The second is Xcms consisting mainly of white point conversion and full-field compression. Since the introduction of Xcms, color management has progressed and solutions limited to these two technologies have proven inadequate. This is because, in most cases, X11 assumes a source and destination device that supports only the destination device, and assumes that the source is device independent. Fortunately, Xcms allows for a more flexible implementation within this architecture.
[0071]
CIELAB is a system that was adopted by CIE in 1976 as a model that better represents a uniform color space in terms of their values than the previous CIELV, with respect to representing the human visual system (HVS). CIELAB is an opposite color system based on the earlier Richard Hunter system called (1942) L, a, b. Color conflict is associated with the discovery in the mid-1960s that somewhere between the optical nerve and the brain, retinal color stimuli are converted into light and dark, red and green, and blue and yellow contrasts. CIELAB puts these values on three axes, L * , A * , B * Represented by The full scientific name is 1976 CIE L * a * b * It is called space.
[0072]
The central vertical axis is L * The brightness value is from 0 (black) to 100 (white). The color axis is based on the fact that the color cannot be both red and green, and neither blue nor yellow. Because these colors conflict with each other. On each axis, values range from positive to negative. On the a-a ′ axis, a positive value represents the amount of red and a negative value represents the amount of green. On the bb ′ axis, yellow is positive and blue is negative. For both axes, zero is neutral gray. The CIEXYZ data structure is a data structure used by X11 and includes X, Y, and Z coordinates of a specific color in a designated color space.
[0073]
FIG. 3A shows an example of how X11r5 operates. In this case, a DirectColor or TrueColor plane is assumed in X11. From the device-independent RGB values, the display device-dependent RGB values that are linear with respect to luminance are generated by the 3 × 3 matrix 300. Then, for a given gamma (γ) value, eg, γ = 1.0, display device dependent nonlinear RGB values are generated by three 1-D look-up tables (LUTs) 310. These device dependent values are then played by the display device 320. In this regard, display device 320 provides a 3 × 3 matrix and a 1-D lookup table that is unique to display device 320.
[0074]
In particular, the X color space conversion context (XCCC) supports two generic pointers to functions, toCIEXYZ and fromCIEXYZ. FIG. 3B shows an example of how X11r6 operates. A CIEXYZ value is generated from a device independent color value, for example, CIELAB, CIEUV, CIEXYxy, CIEXYZ, TekHVC, cmdPad, by a standard color space conversion mechanism in the X11 library and Xlib. The Xcms white point conversion component 330 then generates a device independent white point CIEXYZ value. The Xcms full-region compression transform component 340 then generates device-independent full-region CIEXYZ values. The device dependent RGB values are then generated by either the ZX11r5 mechanism, partially described above, or by XCCC from CIEXYZ.
[0075]
Thus, as shown in FIG. 4A, color management in the X platform is performed by the toCIEXYZ and from CIEXYZ functions that operate to generate the X11 data structure or to convert the X11 data structure to device dependent values.
[0076]
FIG. 4B shows the operation of a standard Windows (registered trademark) color management module (CMM). The CMM can convert any of a variety of source device dependent color spaces and device profiles into device independent color spaces, eg, ICC, sRGB, scRGB, with standard CMM functions. Therefore, the destination device profile converts the independent color space value into a color space suitable for the destination device.
[0077]
As shown in FIG. 4C, the present invention provides a mechanism to augment XCCC's toCIEXYZ and from CIEXYZ functions with support provided by standard ICC profiles and color management methods.
[0078]
To accomplish this, first specify the appropriate source and destination profiles either explicitly via a user interface (UI) or implicitly by associating with a device. From these two device profiles, it is possible to create a device link profile that translates directly from the source device to the destination device using standard Windows® CMM functions, whereby the source device and the destination device The final relationship of the color characteristic difference is determined. The X11 from CIEXYZ function pointer points to a standard CMM-based color conversion function that uses a device link profile to convert the source color or image to the destination color or image, so that the source device to the destination device. The X11 architecture is introduced into the process so that values can be passed to the. Standard CMM support can be ported to X11 from the Windows Image Color Matching (ICM) interface or other ICC color management system interface.
[0079]
5A-5C illustrate some examples of the present invention. In these examples, the white point, full area compression, and other functions are null operations by default for ease of explanation.
[0080]
In FIG. 5A, RGB or sRGB source device colors exist in the source device. After calculating the device link profile between the source device and the destination device, the present invention operates to convince the X system that the source device RGB is CIEXYZ. Next, a device-dependent destination color is generated by the from CIEXYZ function including the device link profile as an argument.
[0081]
In FIG. 5B, CMYK source device colors exist in the source device. After calculating the device link profile between the source device and the destination device, the present invention operates to convince the X system that the source device RGB is of the cmsPad XcmsColor type. Next, a device-dependent destination color is generated by the from CIEXYZ function including the device link profile as an argument.
[0082]
In FIG. 5C, the scRGB source device color exists in the source device. After calculation of the device link profile between the source device and the destination device, a device dependent destination color is generated by the from CIEXYZ function including the device link profile. Alternatively, the extended device dependent destination color is generated by the from CIEXYZ function including the device link profile. In such a transformation, corrections are made to the fact that Xcmcolors are unsigned shorts and scRGB is a signed float. Optionally, additional tonal compression can be performed with three additional 1-D look-up tables.
[0083]
Other color management solutions such as RIMM RGB (EK / PIMA), ROMM RGB (EK / PIMA), esRGB (HP / PIMA) can be supported using the example of FIG. 5C above. In each of the above examples of the present invention, the functions of X, from CIEXYZ and toCIEXYZ are assumed to receive data from the modem's color management system, or spoof (programs that impersonate other programs or clients to avoid being noticed). Or fool the target (impersonation)).
[0084]
For further details regarding API spoofing, this document proposes two non-limiting alternatives. First, when moving from device-independent application content to device-dependent color values, the present invention spoofs the from CIEXYZ function to actually convert the device-dependent color values to CIEXYZ, and then a 3 × 3 matrix and Characterize a particular output device using a 1-D look-up table. To convert from device-dependent (dd) to device-independent (di) values, this process is reversed and the toCIEXYZ API is spoofed instead.
[0085]
Alternatively, when moving from device-independent application content to device-dependent color values, the present invention spoofs from CIEXYZ API to actually convert the device-dependent color values to CIEXYZ and then convert the 3 × 3 matrix into an identification matrix And set 1-D lookup tables to identify LUTs to support complex destination devices that cannot be characterized by matrices and lookup tables. To convert from device-dependent (dd) to device-independent (di) values, this process is reversed and the toCIEXYZ API is spoofed instead.
[0086]
As used herein, “spoof from CIEXYZ” or “spoof toCIEXYZ” means a pointer to the function supplied by the protocol default, which actually calls the ICC compatible color management module to Is replaced with a custom function that converts dd to di or dd to di.
[0087]
As described above, exemplary embodiments of the present invention have been described in the context of various computing devices and network architectures, but the underlying concept is that any computing device or for which it is desirable to perform color management. It can also be applied to the system. Thus, the techniques for providing improved signal processing according to the present invention can be applied to various applications and devices. For example, the algorithm of the present invention is provided as a separate object on the device, as part of another object, as an object downloadable from a server, as a “medium” between the device or object and the network, as a distributed object By doing so, it can be applied to the operating system of the computing device. Exemplary programming languages, names, and examples have been selected here to represent various choices, and the languages, names, and examples are not intended to be limiting. One skilled in the art will appreciate that there are many ways to provide object code that achieves the same, similar or equivalent color management achieved by the present invention.
[0088]
The various techniques described herein may be implemented in connection with hardware or software, or a combination of both as required. Accordingly, the method and apparatus of the present invention, or certain aspects or portions thereof, are embodied in a specific medium such as a floppy diskette, CD-ROM, hard drive, or any other machine-readable storage medium. It can take the form of embodied program code (ie, instructions) in which case the machine is loaded into a machine such as a computer and executed thereby causing the machine to implement the present invention. Become. When executing program code on a programmable computer, the computing device generally includes a processor, a storage medium (including volatile and non-volatile memory, and / or storage elements) that the processor can read, at least one input device , And at least one output device. One or more programs that can use the signal processing service of the present invention, such as a data processing API, for example, are preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system . However, the program can be implemented in assembler or machine language as desired. In any case, the language can be a compiled or interpreted language and can be combined with a hardware implementation.
[0089]
The method and apparatus of the present invention may also be embodied in the form of program code that is transmitted over a particular transmission medium, such as over electrical wiring or cable, through optical fiber, or in any other transmission form. It can also be implemented by communication. In this case, when the program code is received by, loaded into and executed by a machine such as an EPROM, gate array, programmable logic device (PLD), client computer, video recorder, etc., the exemplary embodiment described above The receiving machine having the signal processing function described in the above becomes an apparatus for carrying out the present invention. When implemented on a general-purpose processor, the program code combines with the processor to provide a unique apparatus that operates to invoke the functionality of the present invention. Further, any storage technology used in connection with the present invention may always be a combination of hardware and software.
[0090]
Although the present invention has been described with reference to preferred embodiments in the various drawings, other similar embodiments can be used or perform the same functions as the present invention without departing from the invention. It should be understood that modifications and additions can be made to the described embodiments. For example, while the exemplary network environment of the present invention has been described in the context of a network environment, such as a peer-to-peer network environment, those skilled in the art will not be limited thereto and the method described in this application. Can be applied to any computing device or environment, whether wired or wireless, such as a game console, handheld computer, portable computer, etc., connected via a communication network and interacting on that network It will be appreciated that the invention can be applied to any number of such computing devices. Furthermore, it should be emphasized that various computer platforms are possible, including operating systems specific to handheld device operating systems and other applications, especially as the number of wireless network devices continues to increase. Furthermore, the present invention can be implemented in or between multiple processing chips or devices and can be stored among multiple devices as well. Accordingly, the present invention is not limited to any one embodiment, but is to be construed within the scope of the appended claims.
[Brief description of the drawings]
FIG. 1A illustrates some basic aspects of the X protocol by the X Consortium.
FIG. 1B illustrates some basic aspects of the X protocol by the X Consortium.
FIG. 2A is a block diagram illustrating an example network environment having various computing devices in which the present invention may be implemented.
FIG. 2B is a block diagram depicting an exemplary and non-limiting computing device in which the present invention may be implemented.
FIG. 3A illustrates an exemplary operation of the X11r5 color management architecture.
FIG. 3B illustrates an exemplary operation of the X11r6 color management architecture.
FIG. 4A illustrates a further exemplary aspect of an X11r6 color management architecture.
FIG. 4B illustrates an exemplary operation of a color management module (CMM) color management architecture.
FIG. 4C illustrates a color management architecture provided by the present invention.
FIG. 5A illustrates an example of using the present invention in conjunction with various color spaces.
FIG. 5B illustrates an example of using the present invention in conjunction with various color spaces.
FIG. 5C illustrates an example of using the present invention in conjunction with various color spaces.
[Explanation of symbols]
10a, 10b Computing object (computer, server, server computer)
14 Communication network / bus
20 database (database or memory)
100 computing system environment (exemplary operating environment)
110 computers
110a, 110b, 110c, 110d, 110e Computing object or device (computer, client, client device, client computer)
120 processor (host processor)
121 system bus
130 System memory
131 Read-only memory (ROM)
132 Random access memory (RAM)
133 Basic input / output system (BIOS)
134,144 operating system
135 Application program modules or objects
135,145 Application program
136,146 Other program modules
137, 147 Program data
140 interface
141 hard disk drive
144 operating system
150 Removable non-volatile memory interface
151 magnetic disk drive
152 Removable non-volatile magnetic disk
155 optical disk drive
156 Removable non-volatile optical disk
160 User input interface
161 pointing device
162 Keyboard
170 Network interface or adapter
171 Local Area Network (LAN)
172 modem
173 Wide area network (WAN)
180 Remote computer
181 Memory storage device
182 Graphics interface
184 GPU
185 Remote application program
186 video memory
190 Video interface
191 monitor
195 Output peripheral interface
196 Printer
197 Speaker
200a Device independent layer
200b Device dependent layer
210 X client
210a, 210b application
220 X Library
230 Toolkit
240 display (X server)
250 device drivers
260 devices
300 3 × 3 matrix
310 One-dimensional (1-D) lookup table
320 Display device
330 White Point Conversion Component
340 Whole area compression conversion component

Claims (40)

少なくとも1つのソースデバイスから、少なくとも1つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るステップと、
前記少なくとも1つのソースデバイスと前記少なくとも1つのデスティネーションデバイスの間の少なくとも1つの色特性の差異を表すデバイスリンクプロファイルを生成するステップと、
色管理システムの少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフするステップであって、前記スプーフするステップは、前記少なくとも1つのX11アプリケーションプログラミングインタフェースに、前記デバイスリンクプロファイルを提供することを含むステップと、
前記スプーフするステップは、さらに、前記少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフして、デバイス依存色値をCIEXYZ値に変換するステップと、(1)前記デバイスリンクプロファイル中の3×3行列および1−Dルックアップテーブル(LUTs)を利用して、特定の出力デバイスをキャラクタライズすることと、(2)前記デバイスリンクプロファイルの前記3×3行列を識別行列に設定して、前記デバイスリンクプロファイルの1−Dルックアップテーブルを識別ルックアップテーブルに設定することのうち1つを実行するステップとを含み、
前記少なくとも1つのX11アプリケーションプログラミングインタフェースを呼び出して、前記少なくとも1つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するステップと
を含むことを特徴とする色管理を実現する方法。
Receiving device independent color data from at least one source device for transfer to at least one destination device;
Generating a device link profile representing at least one color characteristic difference between the at least one source device and the at least one destination device;
Spoofing at least one X11 application programming interface of a color management system, the spoofing step comprising providing the device link profile to the at least one X11 application programming interface;
The spoofing step further comprises spoofing the at least one X11 application programming interface to convert device dependent color values into CIEXYZ values; (1) a 3 × 3 matrix in the device link profile and 1− Characterizing a particular output device using D look-up tables (LUTs); and (2) setting the 3 × 3 matrix of the device link profile as an identification matrix to 1 of the device link profile Performing one of setting a D lookup table to an identification lookup table;
Invoking the at least one X11 application programming interface to generate a destination device dependent color value for the at least one destination device.
前記スプーフすることは、toCIEXYZ関数およびfromCIEXYZ関数のうち少なくとも1つをスプーフすることを含むことを特徴とする請求項に記載の方法。The method of claim 1 , wherein the spoofing includes spoofing at least one of a toCIEXYZ function and a from CIEXYZ function. 前記少なくとも1つのソースデバイスおよび前記少なくとも1つのデスティネーションデバイスは、コンピューティングデバイスおよびソフトウェアオブジェクトのうち少なくとも1つを備えることを特徴とする請求項1に記載の方法。  The method of claim 1, wherein the at least one source device and the at least one destination device comprise at least one of a computing device and a software object. 第2の色管理システムの少なくとも1つの関数を呼び出すことをさらに含むことを特徴とする請求項1に記載の方法。  The method of claim 1, further comprising calling at least one function of the second color management system. 前記第2の色管理システムの少なくとも1つの関数を呼び出すことは、色管理モジュール(CMM)を呼び出すことを含むことを特徴とする請求項に記載の方法。The method of claim 4 , wherein calling at least one function of the second color management system includes calling a color management module (CMM). 前記デバイス非依存色データは、標準色空間(sRGB)データ、標準拡張色空間(scRGB)データ、国際色コンソーシアム(ICC)プロファイルデータ、およびシアン/マゼンダ/イエロー/ブラック(CMYK)データのうち少なくとも1つを含むことを特徴とする請求項1に記載の方法。  The device-independent color data is at least one of standard color space (sRGB) data, standard extended color space (scRGB) data, international color consortium (ICC) profile data, and cyan / magenta / yellow / black (CMYK) data. The method of claim 1, comprising: 前記デバイス非依存色データは、scRGB、RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)、およびesRGB(HP/PIMA)色データのうち少なくとも1つを含むことを特徴とする請求項1に記載の方法。  2. The device independent color data includes at least one of scRGB, RIMM RGB (EK / PIMA), ROMM RGB (EK / PIMA), and esRGB (HP / PIMA) color data. The method described in 1. 符号付浮動小数点数を符号なし短整数に変換することをさらに含むことを特徴とする請求項に記載の方法。The method of claim 7 , further comprising converting a signed floating point number to an unsigned short integer. 前記呼び出して生成するステップは、前記デバイスリンクプロファイル中の3つの1−Dルックアップテーブル(LUTs)により色調圧縮を提供することを含むことを特徴とする請求項に記載の方法。The method of claim 7 , wherein the calling and generating step comprises providing tone compression with three 1-D look-up tables (LUTs) in the device link profile. 前記方法が逆に実施されて、その代わりにデバイス依存色値をデバイス非依存値に変換し、かつ、前記スプーフするステップは、X11アプリケーションプログラミングインタフェースのtoCIEXYZ関数をスプーフすることを含むことを特徴とする請求項1に記載の方法。The method is performed in reverse, instead converting device-dependent color values to device-independent values and spoofing comprises spoofing the toCIEXYZ function of the X11 application programming interface. The method of claim 1. 前記スプーフするステップは、プロトコルデフォルトで供給する前記少なくとも1つのX11アプリケーションプログラミングインタフェースへのポインタを、ICC互換性色管理モジュールを呼び出すカスタム関数へと置き換えることを含むことを特徴とする請求項1に記載の方法。The spoofing step includes replacing a pointer to the at least one X11 application programming interface provided by protocol default with a custom function that calls an ICC compatible color management module. the method of. ある方法を実施するためのコンピュータ実行可能命令を記憶した色管理を実現するためのコンピュータ可読記録媒体であって、前記方法は、
少なくとも1つのソースデバイスから、少なくとも1つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るステップと、
前記少なくとも1つのソースデバイスと前記少なくとも1つのデスティネーションデバイスの間の少なくとも1つの色特性の差異を表すデバイスリンクプロファイルを生成するステップと、
色管理システムの少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフするステップであって、前記スプーフするステップは、前記少なくとも1つのX11アプリケーションプログラミングインタフェースに、前記デバイスリンクプロファイルを提供するステップと、
前記スプーフするステップは、さらに、前記少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフして、デバイス依存色値をCIEXYZ値に変換するステップと、(1)前記デバイスリンクプロファイル中の3×3行列および1−Dルックアップテーブル(LUTs)を利用して、特定の出力デバイスをキャラクタライズすることと、(2)前記デバイスリンクプロファイルの前記3×3行列を識別行列に設定して、前記デバイスリンクプロファイルの1−Dルックアップテーブルを識別ルックアップテーブルに設定することのうち1つを実行するステップとを含み、
前記少なくとも1つのX11アプリケーションプログラミングインタフェースを呼び出して、前記少なくとも1つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するステップと
を含むことを特徴とするコンピュータ可読記録媒体。
A computer-readable recording medium for implementing color management storing computer-executable instructions for performing a method, the method comprising:
Receiving device independent color data from at least one source device for transfer to at least one destination device;
Generating a device link profile representing at least one color characteristic difference between the at least one source device and the at least one destination device;
Spoofing at least one X11 application programming interface of a color management system, the spoofing step providing the device link profile to the at least one X11 application programming interface;
The spoofing step further comprises spoofing the at least one X11 application programming interface to convert device dependent color values into CIEXYZ values; (1) a 3 × 3 matrix in the device link profile and 1− Characterizing a particular output device using D look-up tables (LUTs); and (2) setting the 3 × 3 matrix of the device link profile as an identification matrix to 1 of the device link profile Performing one of setting a D lookup table to an identification lookup table;
Invoking the at least one X11 application programming interface to generate a destination device dependent color value for the at least one destination device.
前記スプーフすることは、toCIEXYZ関数およびfromCIEXYZ関数のうち少なくとも1つをスプーフすることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。That said spoofing includes computer readable recording medium of claim 1 2, characterized in that it comprises spoofs at least one of the toCIEXYZ function and the fromCIEXYZ function. 前記少なくとも1つのソースデバイスおよび前記少なくとも1つのデスティネーションデバイスは、コンピューティングデバイスおよびソフトウェアオブジェクトのうち少なくとも1つを備えること特徴とする請求項1に記載のコンピュータ可読記録媒体。Wherein the at least one source device and said at least one destination device is a computer readable recording medium of claim 1 2, characterized by comprising at least one computing device and a software object. 第2の色管理システムの少なくとも1つの関数を呼び出すことをさらに含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。The computer readable recording medium of claim 1 2, characterized in that it further comprises invoking at least one function of a second color management system. 前記第2の色管理システムの少なくとも1つの関数を呼び出すことは、色管理モジュール(CMM)を呼び出すことを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。16. The computer-readable medium of claim 15 , wherein calling at least one function of the second color management system includes calling a color management module (CMM). 前記デバイス非依存色データは、標準色空間(sRGB)データ、標準拡張色空間(scRGB)データ、国際色コンソーシアム(ICC)プロファイルデータ、およびシアン/マゼンダ/イエロー/ブラック(CMYK)データのうち少なくとも1つを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。The device-independent color data is at least one of standard color space (sRGB) data, standard extended color space (scRGB) data, international color consortium (ICC) profile data, and cyan / magenta / yellow / black (CMYK) data. the computer readable recording medium of claim 1 2, characterized in that it comprises a One. 前記デバイス非依存色データは、scRGB、RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)、およびesRGB(HP/PIMA)色データのうち少なくとも1つを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。2. The device-independent color data includes at least one of scRGB, RIMM RGB (EK / PIMA), ROMM RGB (EK / PIMA), and esRGB (HP / PIMA) color data. the computer-readable recording medium according to 2. 符号付浮動小数点数を符号なし短整数に変換することをさらに含むことを特徴とする請求項18に記載のコンピュータ可読記録媒体。The computer-readable medium of claim 18 , further comprising converting a signed floating point number to an unsigned short integer. 前記呼び出して生成するステップは、前記デバイスリンクプロファイル中の3つの1−Dルックアップテーブル(LUTs)により色調圧縮を提供することを含むことを特徴とする請求項18に記載のコンピュータ可読記録媒体。The computer-readable medium of claim 18 , wherein the calling and generating step comprises providing tone compression with three 1-D look-up tables (LUTs) in the device link profile. 前記方法の動作は逆に行われて、その代わりにデバイス依存色値をデバイス非依存値に変換し、かつ、前記スプーフするステップは、X11アプリケーションプログラミングインタフェースのtoCIEXYZ関数をスプーフすることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。The operations of the method are performed in reverse, instead converting device-dependent color values to device-independent values, and the spoofing step includes spoofing the toCIEXYZ function of the X11 application programming interface. the computer readable recording medium of claim 1 2, characterized. 前記スプーフするステップは、プロトコルデフォルトで供給する前記少なくとも1つのX11アプリケーションプログラミングインタフェースへのポインタを、ICC互換性色管理モジュールを呼び出すカスタム関数へと置き換えることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。Wherein the step of spoofing is a pointer to the at least one X11 application programming interface supplied by the protocol default to claim 1 2, characterized in that it comprises replacing to a custom function that invokes an ICC compatible color management module The computer-readable recording medium described. 色管理と関連して使用するためのコンピューティングデバイスであって、
少なくとも1つのソースデバイスから、少なくとも1つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取る入力コンポーネントと、
前記少なくとも1つのソースデバイスと前記少なくとも1つのデスティネーションデバイスの間の少なくとも1つの色特性の差異を表すデバイスリンクプロファイルを生成する処理コンポーネントと、
色管理システムの少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフするスプーフコンポーネントであって、前記スプーフコンポーネントは、前記少なくとも1つのX11アプリケーションプログラミングインタフェースに、前記デバイスリンクプロファイルを提供するスプーフコンポーネントと、
前記スプーフコンポーネントは、さらに、前記少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフして、デバイス依存色値をCIEXYZ値に変換すること、および、(1)前記デバイスリンクプロファイル中の3×3行列および1−Dルックアップテーブル(LUTs)を利用して、特定の出力デバイスをキャラクタライズすることと、(2)前記デバイスリンクプロファイルの3×3行列を識別行列に設定して、前記デバイスリンクプロファイルの1−Dルックアップテーブルを識別ルックアップテーブルに設定することのうち1つを行い、
前記少なくとも1つのX11アプリケーションプログラミングインタフェースを呼び出して、前記少なくとも1つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成する出力コンポーネントと
を備えることを特徴とするコンピューティングデバイス。
A computing device for use in connection with color management,
An input component that receives device-independent color data for transfer from at least one source device to at least one destination device;
A processing component that generates a device link profile representing a difference in at least one color characteristic between the at least one source device and the at least one destination device;
A spoof component that spoofs at least one X11 application programming interface of a color management system, the spoof component providing the device link profile to the at least one X11 application programming interface;
The spoof component further spoofs the at least one X11 application programming interface to convert device dependent color values to CIEXYZ values, and (1) a 3 × 3 matrix in the device link profile and 1− Characterizing a particular output device using D look-up tables (LUTs); and (2) setting a 3 × 3 matrix of the device link profile as an identification matrix to 1− of the device link profile Do one of setting the D lookup table to the identification lookup table,
A computing device comprising: an output component that invokes the at least one X11 application programming interface to generate a destination device dependent color value for the at least one destination device.
前記スプーフコンポーネントは、toCIEXYZ関数およびfromCIEXYZ関数のうち少なくとも1つをスプーフすることを特徴とする請求項2に記載のコンピューティングデバイス。The spoof component computing device of claim 2 3, wherein the spoofing at least one of the toCIEXYZ function and the fromCIEXYZ function. 前記少なくとも1つのソースデバイスおよび前記少なくとも1つのデスティネーションデバイスは、コンピューティングデバイスおよびソフトウェアオブジェクトのうち少なくとも1つを備えることを特徴とする請求項2に記載のコンピューティングデバイス。Wherein the at least one source device and said at least one destination device, a computing device according to claim 2 3, wherein further comprising at least one computing device and a software object. 第2の色管理システムの少なくとも1つの関数を呼び出す呼び出しコンポーネントをさらに備えることを特徴とする請求項2に記載のコンピューティングデバイス。The computing device of claim 2 3, further comprising a call component invoking at least one function of a second color management system. 第2の色管理システムの少なくとも1つの関数を呼び出す前記呼び出しコンポーネントは、色管理モジュール(CMM)を呼び出すことを含むことを特徴とする請求項2に記載のコンピューティングデバイス。The computing device of claim 26 , wherein the calling component that calls at least one function of a second color management system comprises calling a color management module (CMM). 前記デバイス非依存色データは、標準色空間(sRGB)データ、標準拡張色空間(scRGB)データ、国際色コンソーシアム(ICC)プロファイルデータ、およびシアン/マゼンダ/イエロー/ブラック(CMYK)データのうち少なくとも1つを含むことを特徴とする請求項2に記載のコンピューティングデバイス。The device-independent color data is at least one of standard color space (sRGB) data, standard extended color space (scRGB) data, international color consortium (ICC) profile data, and cyan / magenta / yellow / black (CMYK) data. the computing device of claim 2 3, characterized in that it comprises a One. 前記デバイス非依存色データは、scRGB、RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)、およびesRGB(HP/PIMA)色データのうち少なくとも1つを含むことを特徴とする請求項2に記載のコンピューティングデバイス。The device-independent color data includes at least one of scRGB, RIMM RGB (EK / PIMA), ROMM RGB (EK / PIMA), and esRGB (HP / PIMA) color data. 4. The computing device according to 3 . 符号付浮動小数点数を符号なし短整数に変換する変換コンポーネントをさらに備えることを特徴とする請求項29に記載のコンピューティングデバイス。30. The computing device of claim 29 , further comprising a conversion component that converts a signed floating point number to an unsigned short integer. 前記呼び出して生成するコンポーネントは、前記デバイスリンクプロファイル中の3つの1−Dルックアップテーブル(LUTs)により色調圧縮を提供することを特徴とする請求項29に記載のコンピューティングデバイス。30. The computing device of claim 29 , wherein the invoking component provides tonal compression with three 1-D look-up tables (LUTs) in the device link profile. 前記各コンポーネントの動作は逆に行われて、その代わりに、前記各コンポーネントは、デバイス依存色値をデバイス依存値に変換し、前記スプーフコンポーネントは、X11アプリケーションプログラミングインタフェースのtoCIEXYZ関数をスプーフすることを特徴とする請求項2に記載のコンピューティングデバイス。The operation of each component is reversed, instead, each component converts device-dependent color values to device-dependent values, and the spoof component spoofs the toCIEXYZ function of the X11 application programming interface. the computing device of claim 2 3, wherein. 前記スプーフコンポーネントは、プロトコルデフォルトで供給する前記少なくとも1つのX11アプリケーションプログラミングインタフェースへのポインタを、ICC互換性色管理モジュールを呼び出すカスタム関数へと置き換えることを特徴とする請求項2に記載のコンピューティングデバイス。The spoof component, a pointer to the at least one X11 application programming interface supplied by the protocol default, computing according to claim 2 3, wherein the replacing into custom function that invokes an ICC compatible color management module device. 色管理を実現する方法であって、
少なくとも1つのソースデバイスから、少なくとも1つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るステップと、
前記少なくとも1つのソースデバイスと前記少なくとも1つのデスティネーションデバイスの間の少なくとも1つの色特性の差異を表すデバイスリンクプロファイルを生成するステップと、
少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフするステップであって、前記スプーフするステップは、toCIEXYZ関数およびfromCIEXYZ関数のうち少なくとも1つをスプーフすることを含むステップと、
前記スプーフするステップは、さらに、前記少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフして、デバイス依存色値をCIEXYZ値に変換するステップと、(1)前記デバイスリンクプロファイル中の3×3行列および1−Dルックアップテーブル(LUTs)を利用して、特定の出力デバイスのキャラクタライズすることと、(2)前記デバイスリンクプロファイルの前記3×3行列を識別行列に設定して、前記デバイスリンクプロファイルの1−Dルックアップテーブルを識別ルックアップテーブルに設定することのうち1つを実行するステップとを含み、
前記少なくとも1つのX11アプリケーションプログラミングインタフェースを呼び出して、前記少なくとも1つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するステップと
を含むことを特徴とする方法。
A method for realizing color management,
Receiving device independent color data from at least one source device for transfer to at least one destination device;
Generating a device link profile representing at least one color characteristic difference between the at least one source device and the at least one destination device;
Spoofing at least one X11 application programming interface, the spoofing step comprising spoofing at least one of a toCIEXYZ function and a from CIEXYZ function;
The spoofing step further comprises spoofing the at least one X11 application programming interface to convert device dependent color values into CIEXYZ values; (1) a 3 × 3 matrix in the device link profile and 1− Characterization of a particular output device using D look-up tables (LUTs); and (2) setting the 3 × 3 matrix of the device link profile as an identification matrix to 1 of the device link profile Performing one of setting a D lookup table to an identification lookup table;
Invoking the at least one X11 application programming interface to generate a destination device dependent color value for the at least one destination device.
前記スプーフするステップは、少なくとも1つのX11アプリケーションプログラミングインタフェースに、前記デバイスリンクプロファイルを提供することを含むことを特徴とする請求項3に記載の方法。Wherein the step of spoofing is in at least one X11 application programming interface method according to claim 3 4, characterized in that it comprises providing said device link profile. 色管理モジュール(CMM)システムの少なくとも1つの関数を呼び出すことをさらに含むことを特徴とする請求項3に記載の方法。The method of claim 3 4, characterized in that it further comprises invoking at least one function of a color management module (CMM) system. 前記方法は逆に実施されて、その代わりにデバイス依存色値をデバイス依存値に変換し、かつ、前記スプーフするステップは、X11アプリケーションプログラミングインタフェースのtoCIEXYZ関数をスプーフすることを含むことを特徴とする請求項3に記載の方法。The method is performed in reverse, instead converting device-dependent color values to device-dependent values, and the spoofing step includes spoofing the toCIEXYZ function of the X11 application programming interface. the method of claim 3 4. 前記スプーフするステップは、プロトコルデフォルトで供給する前記少なくとも1つのX11アプリケーションプログラミングインタフェースへのポインタを、カスタム関数へと置き換えるステップを含むことを特徴とする請求項3に記載の方法。Wherein the step of spoofing is a pointer to the at least one X11 application programming interface supplied by the protocol default method of claim 3 4, characterized in that it comprises a step of replacing to a custom function. コンピュータ実行可能命令を含む複数のコンピュータ実行可能モジュールを記憶した色管理を実現するための少なくとも1つのコンピュータ可読媒体であって、前記モジュールが、
少なくとも1つのソースデバイスから、少なくとも1つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るための手段と、
前記少なくとも1つのソースデバイスと前記少なくとも1つのデスティネーションデバイスの間の少なくとも1つの色特性の差異を表すデバイスリンクプロファイルを生成するための手段と、
色管理システムの少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフするための手段であって、前記スプーフするための手段は、toCIEXYZ関数およびfromCIEXYZ関数のうち少なくとも1つをスプーフすることを含む手段と、
前記スプーフする手段は、さらに、前記少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフして、デバイス依存色値をCIEXYZ値に変換すること、および、(1)前記デバイスリンクプロファイル中の3×3行列および1−Dルックアップテーブル(LUTs)を利用して、特定の出力デバイスをキャラクタライズすることと、(2)前記デバイスリンクプロファイルの3×3行列を識別行列に設定して、前記デバイスリンクプロファイルの1−Dルックアップテーブルを識別ルックアップテーブルに設定することのうち1つを行い、
前記少なくとも1つのX11アプリケーションプログラミングインタフェースを呼び出して、前記少なくとも1つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するための手段と
を備えることを特徴とするコンピュータ可読記録媒体。
At least one computer-readable medium for implementing color management storing a plurality of computer-executable modules including computer-executable instructions, the module comprising:
Means for receiving device-independent color data for transfer from at least one source device to at least one destination device;
Means for generating a device link profile representative of at least one color characteristic difference between the at least one source device and the at least one destination device;
Means for spoofing at least one X11 application programming interface of the color management system, said means for spoofing comprising means for spoofing at least one of toCIEXYZ and from CIEXYZ functions;
The means for spoofing further spoofs the at least one X11 application programming interface to convert device dependent color values into CIEXYZ values, and (1) a 3 × 3 matrix and 1 in the device link profile Characterization of specific output devices using D look-up tables (LUTs), and (2) setting the 3 × 3 matrix of the device link profile as an identification matrix to 1 of the device link profile -Doing one of setting the D lookup table to the identification lookup table;
Means for invoking the at least one X11 application programming interface to generate a destination device dependent color value of the at least one destination device.
色管理と関連して使用するためのコンピューティングデバイスであって、
少なくとも1つのソースデバイスから、少なくとも1つのデスティネーションデバイスに移すためにデバイス非依存色データを受け取るための手段と、
前記少なくとも1つのソースデバイスと前記少なくとも1つのデスティネーションデバイスの間の少なくとも1つの色特性の差異を表すデバイスリンクプロファイルを生成するための手段と、
色管理システムの少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフするための手段であって、前記スプーフするため手段は、toCIEXYZ関数およびfromCIEXYZ関数のうち少なくとも1つをスプーフすることを含む手段と、
前記スプーフする手段は、さらに、前記少なくとも1つのX11アプリケーションプログラミングインタフェースをスプーフして、デバイス依存色値をCIEXYZ値に変換すること、および、(1)前記デバイスリンクプロファイル中の3×3行列および1−Dルックアップテーブル(LUTs)を利用して、特定の出力デバイスをキャラクタライズすることと、(2)前記デバイスリンクプロファイルの3×3行列を識別行列に設定して、前記デバイスリンクプロファイルの1−Dルックアップテーブルを識別ルックアップテーブルに設定することのうち1つを行い、
前記少なくとも1つのX11アプリケーションプログラミングインタフェースを呼び出して、前記少なくとも1つのデスティネーションデバイスのデスティネーションデバイス依存色値を生成するための手段と
を備えることを特徴とするコンピューティングデバイス。
A computing device for use in connection with color management,
Means for receiving device-independent color data for transfer from at least one source device to at least one destination device;
Means for generating a device link profile representative of at least one color characteristic difference between the at least one source device and the at least one destination device;
Means for spoofing at least one X11 application programming interface of the color management system, the means for spoofing comprising means for spoofing at least one of a toCIEXYZ function and a from CIEXYZ function;
The means for spoofing further spoofs the at least one X11 application programming interface to convert device dependent color values into CIEXYZ values, and (1) a 3 × 3 matrix and 1 in the device link profile Characterization of specific output devices using D look-up tables (LUTs), and (2) setting the 3 × 3 matrix of the device link profile as an identification matrix to 1 of the device link profile -Doing one of setting the D lookup table to the identification lookup table;
Means for invoking the at least one X11 application programming interface to generate a destination device dependent color value for the at least one destination device.
JP2003108481A 2002-06-24 2003-04-11 System and method for implementing color management Expired - Fee Related JP4637458B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/179,823 US7184057B2 (en) 2002-06-24 2002-06-24 Systems and methods for providing color management

Publications (3)

Publication Number Publication Date
JP2004032700A JP2004032700A (en) 2004-01-29
JP2004032700A5 JP2004032700A5 (en) 2006-06-08
JP4637458B2 true JP4637458B2 (en) 2011-02-23

Family

ID=22658133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003108481A Expired - Fee Related JP4637458B2 (en) 2002-06-24 2003-04-11 System and method for implementing color management

Country Status (15)

Country Link
US (1) US7184057B2 (en)
EP (1) EP1376532A3 (en)
JP (1) JP4637458B2 (en)
KR (1) KR100957942B1 (en)
CN (1) CN100385435C (en)
AU (1) AU2003203675B2 (en)
BR (1) BR0301069A (en)
CA (1) CA2424653A1 (en)
MX (1) MXPA03004603A (en)
MY (1) MY135081A (en)
NO (1) NO327644B1 (en)
PL (1) PL360752A1 (en)
RU (1) RU2337392C2 (en)
TW (1) TWI270799B (en)
ZA (1) ZA200302808B (en)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289663B2 (en) * 2002-07-24 2007-10-30 Eastman Kodak Company Producing an extended color gamut luminance-chrominance digital image from a captured image
US7646817B2 (en) * 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
JP4336950B2 (en) * 2003-05-15 2009-09-30 富士ゼロックス株式会社 Image processing device
DE50311550D1 (en) * 2003-06-23 2009-07-09 Logo Beteiligungsges Mbh Method for outputting a digital document from a color management-less application on an output device, with color correction by means of an additional program module
KR100839959B1 (en) * 2003-09-01 2008-06-20 삼성전자주식회사 Display apparatus
US7472398B2 (en) * 2003-11-17 2008-12-30 Hewlett-Packard Development Company, L.P. Method and system for hosting an application with a facade server
JP2005236356A (en) * 2004-02-17 2005-09-02 Seiko Epson Corp Color matching system and display device
JP3931886B2 (en) * 2004-03-30 2007-06-20 コニカミノルタビジネステクノロジーズ株式会社 Device link profile creation method and apparatus, and image processing apparatus
US7602537B2 (en) * 2004-05-06 2009-10-13 Canon Kabushiki Kaisha Gamut mapping with primary color rotation
JP2005340926A (en) * 2004-05-24 2005-12-08 Canon Inc Image processing method in image processing apparatus, and image processing apparatus
US7944593B2 (en) * 2004-09-09 2011-05-17 Infoprint Solutions Company, Llc Method and apparatus for efficient processing of color conversion
JP5676070B2 (en) 2004-11-01 2015-02-25 テクニカラー インコーポレイテツド Method and system for mastering and distributing extended color space content
KR100647954B1 (en) * 2005-01-07 2006-11-23 엘지전자 주식회사 Mobile phone and Method for improving the quality of displaying part of mobile phone
US20070035752A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Hardware-accelerated color data processing
KR100736939B1 (en) * 2005-10-08 2007-07-10 삼성전자주식회사 Intelligence type color gamut management method
KR101421185B1 (en) 2005-12-21 2014-07-22 톰슨 라이센싱 Constrained color palette in a color space
EP1838083B1 (en) 2006-03-23 2020-05-06 InterDigital CE Patent Holdings Color metadata for a downlink data channel
JP4823051B2 (en) * 2006-12-21 2011-11-24 キヤノン株式会社 Method for generating combined lookup table, image processing apparatus, and image forming apparatus
JP4608509B2 (en) * 2007-03-14 2011-01-12 セイコーエプソン株式会社 Composite lookup table creation device, composite lookup table creation method, and printing device
JP5025323B2 (en) * 2007-05-10 2012-09-12 キヤノン株式会社 Color processing apparatus and method
US7986829B2 (en) * 2007-11-29 2011-07-26 Canon Kabushiki Kaisha Generating a transformed interim connection space for spectral data
US7916341B2 (en) * 2007-11-29 2011-03-29 Canon Kabushiki Kaisha Generating an Interim Connection Space for spectral data
US7940423B2 (en) * 2007-11-30 2011-05-10 Canon Kabushiki Kaisha Generating a device independent interim connection space for spectral data
US8009906B2 (en) * 2007-12-11 2011-08-30 Canon Kabushiki Kaisha Spectral gamut mapping based on a colorimetric gamut mapping
US8098400B2 (en) * 2008-01-23 2012-01-17 Canon Kabushiki Kaisha Gamut mapping in spectral space based on an objective function
EP2109304A1 (en) * 2008-04-07 2009-10-14 Océ-Technologies B.V. Color management method, module, and program product, and printer ussing said method
US10129513B2 (en) 2008-08-28 2018-11-13 Thomson Licensing Color metadata for a downlink data channel
US8490026B2 (en) * 2008-10-27 2013-07-16 Microsoft Corporation Painting user controls
JP2011081030A (en) * 2009-10-02 2011-04-21 Tani Electronics Corp Searchable color-encoded file-composing method and searchable color-encoded file system
TWI415104B (en) * 2010-02-05 2013-11-11 Marketech Int Corp Method and system for calibrating colour purity of display panel and display apparatus having such calibrated display panel
US8610739B2 (en) 2010-04-12 2013-12-17 Nvidia Corporation Graphics processing unit based color management of output devices
US9521298B2 (en) * 2010-07-13 2016-12-13 Red Hat, Inc. Color management system
KR20140110071A (en) 2011-05-27 2014-09-16 돌비 레버러토리즈 라이쎈싱 코오포레이션 Scalable systems for controlling color management comprising varying levels of metadata
US10242650B2 (en) 2011-12-06 2019-03-26 Dolby Laboratories Licensing Corporation Perceptual luminance nonlinearity-based image data exchange across different display capabilities
CN106095358B (en) * 2011-12-06 2019-05-14 杜比实验室特许公司 Improve the device and method based on the nonlinear image data exchange of perceived illumination intensity between different display capabilities
KR101517515B1 (en) * 2013-02-04 2015-05-04 주식회사 케이비데이타시스템 System and method for instant payment using quick response code
US10078436B2 (en) * 2015-02-25 2018-09-18 Htc Corporation User interface adjusting method and apparatus using the same
CN105302854B (en) * 2015-09-20 2019-03-26 杭州电子科技大学 A kind of method of mobile terminal color of image reproduction compatibility
US9858686B2 (en) * 2016-02-10 2018-01-02 Google Llc Dynamic color determination for user interface components of a video player
US10602028B2 (en) * 2016-07-08 2020-03-24 Hewlett-Packard Development Company, L.P. Color table compression
US10674043B2 (en) 2016-07-08 2020-06-02 Hewlett-Packard Development Company, L.P. Color table compression
KR200485483Y1 (en) 2017-07-19 2018-01-12 이병한 Functional wardrobe
WO2020100200A1 (en) * 2018-11-12 2020-05-22 Eizo株式会社 Image processing system, image processing device, and computer program
US20220095891A1 (en) * 2019-02-14 2022-03-31 Dai Nippon Printing Co., Ltd. Color correction device for medical apparatus
WO2023277878A1 (en) * 2021-06-29 2023-01-05 Hewlett-Packard Development Company, L.P. Color gamut mapping
KR20230007752A (en) 2021-07-06 2023-01-13 주식회사 아트인가구 Wardrobe
CN117421088A (en) * 2023-12-18 2024-01-19 荣耀终端有限公司 Page display method, electronic device and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754184A (en) * 1993-01-06 1998-05-19 Eastman Kodak Company Digital color system and method which provides a visual match across different input and output viewing conditions
JPH0998299A (en) * 1995-10-02 1997-04-08 Canon Inc Image processing device and method
JP3658141B2 (en) 1997-05-21 2005-06-08 キヤノン株式会社 Image processing apparatus and image processing method
US6362808B1 (en) * 1997-07-03 2002-03-26 Minnesota Mining And Manufacturing Company Arrangement for mapping colors between imaging systems and method therefor
US6307961B1 (en) * 1997-07-31 2001-10-23 Pgi Graphics Imaging Llc User-interactive corrective tuning of color profiles
US6633668B1 (en) 1999-07-12 2003-10-14 Canon Kabushiki Kaisha Device independent image compression and color management
EP1079606A3 (en) 1999-08-11 2003-07-09 Canon Kabushiki Kaisha Color space adjustment for multiple different substrates
US6603483B1 (en) 1999-11-15 2003-08-05 Canon Kabushiki Kaisha Color management and proofing architecture

Also Published As

Publication number Publication date
US7184057B2 (en) 2007-02-27
CN100385435C (en) 2008-04-30
RU2337392C2 (en) 2008-10-27
JP2004032700A (en) 2004-01-29
PL360752A1 (en) 2003-12-29
BR0301069A (en) 2004-08-17
AU2003203675A1 (en) 2004-01-22
US20030234793A1 (en) 2003-12-25
NO20031558L (en) 2003-12-29
EP1376532A2 (en) 2004-01-02
EP1376532A3 (en) 2005-11-16
KR100957942B1 (en) 2010-05-13
CN1467655A (en) 2004-01-14
NO327644B1 (en) 2009-09-07
KR20040000317A (en) 2004-01-03
AU2003203675B2 (en) 2009-11-19
TWI270799B (en) 2007-01-11
MY135081A (en) 2008-01-31
RU2003110508A (en) 2005-01-10
ZA200302808B (en) 2003-10-14
TW200402645A (en) 2004-02-16
MXPA03004603A (en) 2004-01-22
NO20031558D0 (en) 2003-04-07
CA2424653A1 (en) 2003-12-24

Similar Documents

Publication Publication Date Title
JP4637458B2 (en) System and method for implementing color management
JP3705617B2 (en) Method and apparatus for managing application shared pallet in cooperative system
JP5385340B2 (en) System and method for determining media capabilities of a remote device
US7716273B2 (en) Systems and methods for projecting content from computing devices
CN102362477B (en) For the method for computer desktop teleengineering support
EP1526445A2 (en) Systems and methods for projecting content from computing devices
US6292166B1 (en) System and method for sharing diverse display types in a bit map sharing collaborative tool
US7710434B2 (en) Rotation and scaling optimization for mobile devices
US6795084B2 (en) Heuristic determination of color reproduction parameters
KR20050036700A (en) Color management system that enables dynamic balancing of performance with flexibility
JP2004187289A (en) Method and program code for making color conversion
US20080270512A1 (en) Virtual network projection system supporting multiple projection sources and method thereof
EP3574638B1 (en) Dynamically gamut adjustable displays
CA2329426A1 (en) Method and apparatus of supporting a video protocol in a network environment
JP2006093780A (en) Image processor, image processing method, image processing system and program
JP2003122544A (en) Server device for pre-view service
JP2006119762A (en) Computer network system and overlay method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20081007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20081007

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081114

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090116

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090901

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20091008

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101124

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4637458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees