(57)【特許請求の範囲】
【請求項１】
文書データに関する色データを変換する方法であって、
第１色空間によって表現される前記色データをメモリーから読み出すステップと、
前記文書データのフォーマットがＸＰＳ又はＯＯＸＭＬの場合、前記色データが乗算済みと判断するステップと、
を備え、
前記判断するステップにおいて、前記色データが乗算済みと判断された場合、
前記色データを未乗算済み色データへ変換するステップと、
前記未乗算済み色データを前記第１色空間から第２色空間へ変換するステップと、
前記第２色空間の前記未乗算済み色データを第１乗算済み色データへ変換するステップと、
前記第１乗算済み色データをメモリーへ書き込むステップと、
をさらに備え、
前記判断するステップにおいて、前記色データが乗算済みではないと判断された場合、
前記色データを前記第１色空間から前記第２色空間へ変換するステップと、
前記第２色空間へ変換された前記色データを前記メモリーへ書き込むステップと、
をさらに備える方法。
【請求項２】
前記色データを前記未乗算済み色データへ変換するステップと、前記未乗算済み色データを前記第２色空間へ変換するステップと、前記未乗算済み色データを前記第１乗算済み色データへ変換するステップは、さらに前記色データをキャッシュに記憶するステップを含む、請求項１に記載の方法。
【請求項３】
前記色データに関する追加情報を受信するステップをさらに備え、
前記判断するステップでは、前記追加情報に基づいて、前記色データが乗算済みかを判断する、
請求項１又は２に記載の方法。
【請求項４】
前記追加情報は、前記文書データのフォーマットを示すフォーマット情報によって構成される、請求項３に記載の方法。
【請求項５】
前記追加情報には、前記メモリーに書き込まれる前記第２色空間に変換された前記色データを乗算済みの状態にすべきか否かを示すフラグが含まれ、
前記フラグにより、書き込まれる前記色データを乗算済みの状態にすべきであることが示される場合、
前記第２色空間へ変換された前記色データを前記メモリーへ書き込むステップは、
前記第２色空間の前記色データを第２乗算済み色データへ変換するステップと、
前記第２乗算済み色データを前記メモリーへ書き込むステップと、
をさらに備える、請求項３又は４に記載の方法。
【請求項６】
前記フラグにより、書き込まれる前記色データを乗算済みの状態にすべきではないことが示される場合、前記方法は前記第２色空間の前記未乗算済み色データを前記メモリーへ書き込むステップをさらに備える、請求項５に記載の方法。
【請求項７】
前記色データは赤、緑、青、及びアルファコンポーネントによって示され、
前記色データを前記未乗算済み色データへ変換するステップは、
前記赤、緑、及び青コンポーネントのそれぞれをそれぞれのコンポーネントの最大値で乗算するステップと、
前記乗算された赤、緑、及び青コンポーネントのそれぞれを前記アルファコンポーネントで除算するステップと、
をさらに備える、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記第２色空間の前記未乗算済み色データを前記第１乗算済み色データへ変換するステップは、
前記未乗算済み色データの前記赤、緑、及び青コンポーネントのそれぞれを前記アルファコンポーネントで乗算するステップと、
前記アルファコンポーネントで乗算された前記赤、緑、及び青コンポーネントのそれぞれを前記最大値で除算するステップと、
をさらに備える、請求項７に記載の方法。
【請求項９】
文書データに関する色データを変換する色変換システムであって、
第１色空間によって表現される前記色データを記憶するメモリーと、
処理装置と、
を備え、
前記処理装置は、
前記色データを前記メモリーから読み出し、
前記文書データのフォーマットがＸＰＳ又はＯＯＸＭＬの場合、前記色データが乗算済みと判断し、
前記色データが乗算済みと判断した場合、
前記色データを未乗算済み色データへ変換し、
前記未乗算済み色データを前記第１色空間から第２色空間へ変換し、
前記第２色空間の前記未乗算済み色データを第１乗算済み色データへ変換し、
前記第１乗算済み色データを前記メモリーへ書き込み、
前記色データが乗算済みではないと判断した場合、
前記色データを前記第１色空間から前記第２色空間へ変換し、
前記第２色空間へ変換された前記色データを前記メモリーへ書き込む色変換システム。
【請求項１０】
前記処理装置は、前記処理装置のキャッシュによって、前記色データを前記未乗算済み色データへ変換し、前記未乗算済み色データを前記第２色空間へ変換し、前記未乗算済み色データを前記第１乗算済み色データへ変換する、請求項９に記載の色変換システム。
【請求項１１】
前記処理装置は、
前記色データに関する追加情報を受信し、
前記追加情報に基づいて、前記色データが乗算済みかを判断する、
請求項９又は１０に記載の色変換システム。
【請求項１２】
前記追加情報は、前記文書データのフォーマットを示すフォーマット情報によって構成される、請求項１１に記載の色変換システム。
【請求項１３】
前記追加情報には、前記メモリーに書き込まれる前記第２色空間に変換された前記色データを乗算済みの状態にすべきか否かを示すフラグが含まれ、
前記フラグにより、書き込まれる前記色データを乗算済みの状態にすべきであることが示される場合、
前記処理装置は、
前記第２色空間へ変換された前記色データを第２乗算済み色データへ変換し、
前記第２乗算済み色データを前記メモリーへ書き込む、
請求項１１又は１２に記載の色変換システム。
【請求項１４】
前記フラグにより、書き込まれる前記色データを乗算済みの状態にすべきではないことが示される場合、前記処理装置は前記第２色空間の前記未乗算済み色データを前記メモリーへ書き込む、請求項１３に記載の色変換システム。
【請求項１５】
前記色データは赤、緑、青、及びアルファコンポーネントによって示され、
前記色データを前記未乗算済み色データへ変換する処理において、前記処理装置は、
前記赤、緑、及び青コンポーネントのそれぞれをそれぞれのコンポーネントの最大値で乗算し、
前記乗算された赤、緑、及び青コンポーネントのそれぞれを前記アルファコンポーネントで除算し、
前記除算された赤、緑、及び青コンポーネントを前記第１色空間から前記第２色空間へ変換する、
請求項９から１４のいずれか一項に記載の色変換システム。
【請求項１６】
前記第２色空間の前記未乗算済み色データを前記第１乗算済み色データへ変換する処理において、前記処理装置は、
前記変換された赤、緑、及び青コンポーネントのそれぞれを前記色データの前記アルファコンポーネントで乗算し、
前記アルファコンポーネントで乗算された前記赤、緑、及び青コンポーネントのそれぞれを前記最大値で除算し、
前記除算された赤、緑、及び青コンポーネント並びに前記アルファコンポーネントを前記第１乗算済み色データとして前記メモリーへ書き込む、
請求項１５に記載の色変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は乗算済みデータにおける色変換を支援する方法に関する。
【背景技術】
【０００２】
パーソナルコンピューター（ＰＣ）やプリンターシステム等、異なるコンピューティングシステムにわたって電子文書や画像のカラーデータを扱う際に色空間変換が多くの場合必要とされる。一般に、コンピューティングシステムに応じた適切な色空間が選択される。例えば、ＰＣのモニター上で電子文書や画像を表示する場合はＲＧＢ色空間が通常用いられ、紙に印刷データを出力するプリンターシステムにおいてはＣＭＹＫ色空間が用いられる。よって、プリンターシステムは印刷前に印刷データをＲＧＢからＣＭＹＫに変換する必要がある。
【０００３】
色データによっては色空間変換の前か後に追加の変換が必要となる。このような色データは色値（例えば、ＲＧＢ色空間の赤、緑、及び青）に加えて通常不透明度チャンネルとして用いられるアルファチャンネル値（例えば、０−１００％）を有しうる。透明度を表すために、各色値はアルファチャンネル値で乗算される。一般に、不透明度を有する同じ色を表すのに二つの表現が知られている、そのままのものと乗算済みのものである。
【０００４】
そのままの表現においては、色値（つまり、赤、緑、及び青）はアルファチャンネルで乗算されない。一方、乗算済みの表現においては、色値はアルファ値で予め乗算される。例えば、電子文書のＲＧＢ色空間（ＲＧＢ＝２５５，０，０）における５０％透明（アルファ＝１２７）の赤ピクセルが指定された場合、乗算済み色データは実際にはＲＧＢａ＝（１２７，０，０，１２７）となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の色管理モジュールは厳密には各色を一つの色空間から別の色空間へ変換することを中心に実行する。よって、乗算済みの色を色管理モジュールに入力した結果、誤った出力が得られる可能性がある。上述の例をさらに説明すると、半透明の乗算済み赤ピクセルの色を変換するには色管理モジュールにＲＧＢ＝（１２７，０，０）を入力することを必要とする。意図した色は純赤色だが、色変換の結果得られる色データは新しい色空間において実際は暗い赤色である。よって、色変換を必要とする乗算済み入力データはまず「未乗算済み」にする必要がある。また、色データが乗算済みであることが必要となるアプリケーションにおいて、変換済み色データは「再乗算済み」にする必要がある。
【０００６】
従来、乗算済み色データをＲＧＢａ（ＲＧＢ＋アルファチャンネル）からＣＭＹＫａ（ＣＭＹＫ＋アルファチャンネル）への色空間変換を実行する際に、以下の工程が実行された。
【０００７】
−ステップ１：すべての色ピクセル（ＲＧＢａ）を未乗算済みの状態にして従来の色変換モジュールが求める色データの表現を再現する。
−ステップ２：すべての色ピクセルを従来の色変換モジュールへ送り、色をＲＧＢａからＣＭＹＫａへ変換する。
−ステップ３：データに実行する追加の処理において乗算済みの状態が求められている場合、すべての色ピクセルを再乗算済みの状態にして乗算済み（ＣＭＹＫａ）の色データを再現する。
【０００８】
「未乗算済み」ステップ（ステップ１）及び「再乗算済み」ステップ（ステップ３）にはＣＰＵに大きな負担がかからないが、メモリーを大幅に使用する。まず、コンピューティングシステムは４つのチャンネル（ＲＧＢａ）のスキャンライン全体を３つのチャンネル（ＲＧＢ）の異なるバッファにして、「未乗算済み」状態にする必要がある。これにはメモリーに一度アクセスし、スキャンラインの各ピクセルに読み書きをする必要がある。次に、色管理モジュールは３つのチャンネル（ＲＧＢ）のスキャンライン全体を４つのチャンネル（ＣＭＹＫ）の異なるバッファに変換し、再びメモリーに一度アクセスし、各ピクセルに読み書きする。続いて、３つ目のパスが必要となる可能性があり、４つのチャンネル（ＣＭＹＫ）のスキャンライン全体を５つのチャンネル（ＣＭＹＫａ）の異なるバッファにして「再乗算済み」状態にし、これには３度目のメモリーへのアクセスを実行し、スキャンラインの各ピクセルに読み書きする。
【０００９】
計算は高価ではないが、３つのステップを実行する変換には過度のメモリーへのアクセスが必要となり、これは色変換を実行するシステムのパフォーマンスに悪影響を及ぼす。
【課題を解決するための手段】
【００１０】
一般に、本発明は色データを一の色空間から別の色空間へ変換する方法に関する。
【００１１】
本発明の一側面は、文書データに関する色データを変換する方法であって、第１色空間によって表現される前記色データをメモリーから読み出すステップと、前記文書データのフォーマットがＸＰＳ又はＯＯＸＭＬの場合、前記色データが乗算済みと判断するステップと、を備え、前記判断するステップにおいて、前記色データが乗算済みと判断された場合、前記色データを未乗算済み色データへ変換するステップと、前記未乗算済み色データを前記第１色空間から第２色空間へ変換するステップと、前記第２色空間の前記未乗算済み色データを第１乗算済み色データへ変換するステップと、前記第１乗算済み色データをメモリーへ書き込むステップと、をさらに備え、前記判断するステップにおいて、前記色データが乗算済みではないと判断された場合、前記色データを前記第１色空間から前記第２色空間へ変換するステップと、前記第２色空間へ変換された前記色データを前記メモリーへ書き込むステップと、をさらに備える。
【００１２】
本発明の一側面は、文書データに関する色データを変換する色変換システムであって、第１色空間によって表現される前記色データを記憶するメモリーと、処理装置と、を備え、前記処理装置は、前記色データを前記メモリーから読み出し、前記文書データのフォーマットがＸＰＳ又はＯＯＸＭＬの場合、前記色データが乗算済みと判断し、前記色データが乗算済みと判断した場合、前記色データを未乗算済み色データへ変換し、前記未乗算済み色データを前記第１色空間から第２色空間へ変換し、前記第２色空間の前記未乗算済み色データを第１乗算済み色データへ変換し、前記第１乗算済み色データを前記メモリーへ書き込み、前記色データが乗算済みではないと判断した場合、前記色データを前記第１色空間から前記第２色空間へ変換し、前記第２色空間へ変換された前記色データを前記メモリーへ書き込む。
【００１３】
本発明のその他の要素は後述の説明及び添付されたクレームによって明らかとなる。
【図面の簡単な説明】
【００１４】
【図１】図１は本発明の一以上の実施形態におけるシステムのブロック図を示す。
【図２】図２は本発明の一以上の実施形態におけるフローチャートを示す。
【図３】図３は本発明の一以上の実施形態におけるフローチャートを示す。
【図４】図４は本発明の一以上の実施形態におけるフローチャートを示す。
【図５】図５は本発明の一以上の実施形態における色データを未乗算済み状態又は乗算済み状態にする例示的なコードを示す。
【図６】図６は本発明の一以上の実施形態における色データを未乗算済み状態又は乗算済み状態にする例示的なコードを示す。
【図７】図７は本発明の一以上の実施形態におけるコンピューターシステムを図示する。
【発明を実施するための形態】
【００１５】
以下に、添付の図面を参照して、本発明の具体的な実施形態について、詳細に説明する。整合性を図るため、各図面における類似の要素には同様の参照符号が付加される。
【００１６】
以下に記載される本発明の実施形態に関する詳細な説明においては、本発明のより深い理解を提供するためいくつかの詳細な説明が記載される。しかし、これらの詳細な説明がなくとも本発明が実施可能であることは当業者にとって明らかであろう。また、不必要な混乱を避けるために、周知の特徴については詳細な説明が省略されている。
【００１７】
一般に、本発明の実施形態において、色データを一の色空間（例えば、ＲＧＢ、ＧＲＡＹ、ＣＭＹ、ＨＳＬ、等）から別の色空間へ変換する方法、システム及び非一時的コンピューター読取可能記録媒体（ＣＲＭ）が提供される。システムの例として、印刷システム、デジタルビデオシステム、グラフィック編集システム、及びＰＣ、タブレット、スマートフォン等のその他の色データを扱うコンピューティングシステムが挙げられるが、これらに限定されない。説明の便宜上、以下の実施形態の説明においては主に印刷システムを取り上げる。
【００１８】
クライアントＰＣからの要求に応じてページ記述言語（ＰＤＬ）で表現される電子文書を印刷する場合、印刷システムは一の色空間から別のものへの色変換を支援するために色変換モジュールを実行する。色変換モジュールはハードウェア、ソフトウェア、又はこれらの組み合わせによって実行しうる。例えば、ＰＤＬはＲＧＢ色空間におけるページの色データを記述する場合もあるが、印刷システムによる印刷の前に、色データを一般に物理的なプリンターで用いられるＣＭＹＫ色空間に変換する必要がある。
【００１９】
上述のように、従来、乗算済み色ピクセルのスキャンラインをＲＧＢａからＣＭＹＫａへ変換するには上述の３つのステップ（ステップ１〜３）を実行する必要があった。
【００２０】
パフォーマンスを向上するために、本発明の一以上の実施形態において、乗算済み色チャンネルを色空間モジュールに直接入力する。一の色空間から別の色空間へ実際に変換する際に色空間モジュールはすべてのピクセルにアクセスする必要がある（上述のステップ２）。すると、色変換処理に「未乗算済み」にする処理と「再乗算済み」にする処理とを追加することは難しくなる。上述の３つのステップを実行する処理の代わりに、本発明の一以上の実施形態における処理によれば、以下の２つのステップを実行する。
【００２１】
−新ステップ１：入力データが乗算済みであり、出力も乗算済みである必要があるかどうかを色変換モジュールに通知する。
−新ステップ２：すべての色ピクセルとアルファピクセルとを色空間モジュールに転送し、色をＲＧＢａからＣＭＹＫａへ変換する。変換の一部としてまずピクセルを「未乗算済み」状態にし、ピクセルを新しい色空間へ変換し、そして必要であればピクセルを「再乗算済み」状態にする。各変換処理において中間色データはＣＰＵレジスター等のキャッシュメモリーに一時的に記憶される。
【００２２】
一以上の実施形態におけるこの２つのステップを実行する処理においては、乗算済みの色をまず「未乗算済み」状態にする事前のパスと変換された色を「再乗算済み」状態にする事後のパスとを実行するために色変換モジュールを呼び出す他のシステム又はアプリケーションが必要なくなり、これによりこれら２つのメモリーへのアクセスを抑えることができる。その結果、本発明の実施形態によれば、色変換のパフォーマンスを向上させることができ、データ量が増えるほど、向上の度合いがより顕著になる。色変換モジュール以外について、上述の２つのステップを実行する処理を採用する、本発明の一以上の実施形態に基づく方法によれば、ユーザーは色変換後も乗算済みの色フォーマットで引き続き作業することができる。
【００２３】
本発明の実施形態におけるその他の特徴について図面を参照して説明する。図１は本発明の一以上の実施形態におけるシステム（１００）を図示する。図１に示すように当該システム（１００）は色変換モジュール（１０２）を備え、色変換モジュール（１０２）はインターフェイス（１０４）と、色変換処理部（１０６）と、未乗算済み処理部（１０８）と、乗算済み処理部（１１０）と、データキャッシュ（１１２）とを有する。
【００２４】
色変換モジュール（１０２）は他のシステム又はアプリケーションから提供された非乗算済み色データ（１５０）及び乗算済み色データ（１６０）の両者を読み込み、色データを一つの色空間から別の色空間へ変換する。色変換モジュール（１０２）は非乗算済み（つまりそのままの）色データ（１５５）又は乗算済み色データ（１６５）を色変換して出力しうる。非乗算済み色データ（１５０、１５５）及び乗算済み色データ（１６０、１６５）として、文書データ、画像データ、動画データ等が挙げられるが、これらに限定されない。
【００２５】
色変換モジュール（１０２）は色空間変換に必要な一以上の色プロファイル（１７０）を読み込みうる。各色プロファイルは一つの色空間と別の色空間との間の色値を対応させた表である。色プロファイルの詳細は当該技術分野において周知の内容であるので、詳細は省略される。色プロファイルは内部メモリー又はシステム（１００）上の記憶装置に記憶される。
【００２６】
これらの各コンポーネント（１０４）−（１１２）は同じコンピューティングデバイス（例えば、プリンター、デスクトップコンピューター、サーバーコンピューター、ラップトップコンピューター、タブレット、スマートフォン、ウェアラブル装置、等）に設けられ、又は有線及び／又は無線のセグメントを有するネットワークによって接続される異なるコンピューティングデバイスに設けられる。さらに、一以上の各コンポーネント（１０４）−（１１２）は一以上のプロセッサー、グラフィックプロセッサー、又はその他の色変換を実行するために最適化された専用のハードウェアによって実行しうる。図示は省略されているが、システム（１００）は記憶装置を有することができ、上述のコンポーネントのうちの一つによって処理済み及び／又は今後処理するデータを記憶することができる。
【００２７】
本発明の一以上の実施形態において、インターフェイス（１０４）はＲＧＢ等の一つの色空間において表現される非乗算済み色データ（１５０）又は乗算済み色データ（１６０）をメモリー（例えば、ＲＡＭ又はメインメモリー）又は記憶装置（例えば、ハードディスクドライブ（ＨＤＤ）又は半導体ドライブ（ＳＳＤ））から読み出しうる。本発明の一以上の実施形態において、インターフェイス（１０４）は他のシステム又はアプリケーションから非乗算済み色データ（１５０）又は乗算済み色データ（１６０）を受信しうる。例えば、インターフェイス（１０４）は他のシステム又はアプリケーションから色データを受信するためにプログラムされたハードウェア又はソフトウェアでありうる。
【００２８】
読み出されたり受信されたりした入力色データ（１５０、１６０）はデータキャッシュ（１１２）に記憶されうる。データキャッシュ（１１２）はＣＰＵデータキャッシュによって実現され、これはメインメモリーよりも速いメモリーである。データキャッシュ（１１２）は入力色データ（１５０、１６０）とともに出力色データ（１５５、１６５）を一時的に記憶しうる。中間色データ（例えば、非乗算済み色データ、再乗算済み状態にする前の色変換済み色データ）はＣＰＵレジスターに記憶されうる。本発明の一以上の実施形態において、色変換モジュール（１０２）が専用のハードウェアモジュール又はチップとして実現される場合、データキャッシュ（１１２）は専用のキャッシュメモリーによって実現されうる。
【００２９】
さらに、インターフェイス（１０４）は色データとともに追加の情報を読み出したり受信したりしうる。例えば、インターフェイス（１０４）は入力色データが乗算済みであるかを表現するフラグ（例えば、０又は偽が非乗算済みデータを示し、１又は真が乗算済みデータを示す）及び、出力色データがこれから乗算済みとするべきかを表現する別のフラグ（例えば、０又は偽が非乗算済みデータを示し、１又は真が乗算済みデータを示す）を読み出したり受信したりしうる。追加して又は代わりに他の情報も提供されうる、例えば、入力文書フォーマットを示すフォーマット情報（例えば、ＸＰＳ、ＯＯＸＭＬ等）や入力／出力色データの色空間を示す変換情報が挙げられる。このような追加の情報を受信することによって、色変換モジュールは入力データが乗算済みかどうか、出力データを乗算済みとすべきかどうかを知ることができる。一以上の実施形態において、このステップは上述の新ステップ１に対応しうる。
【００３０】
本発明の一以上の実施形態において、色変換処理部（１０６）はインターフェイス（１０４）を介して読み出されたり受信されたりした色データを色プロファイル（１７０）を用いて元の色空間から他の色空間へ変換しうる。色データを変換する前に色変換処理部（１０６）は色データが乗算済みか否かを判断する。例えば、色変換処理部（１０６）は色データが乗算済みのものであることを示すフラグを読み出しうる。色変換処理部（１０６）はこのような判断を実行するためのあらゆる方法を採用しうる。また、色変換処理部（１０６）は上述のフォーマット情報に基づいて入力文書データのフォーマットを知ることによって、当該フォーマットの色データが乗算済みの状態にする必要があると判断しうる。例えば、色変換処理部（１０６）は文書フォーマットがＸＰＳ又はＯＯＸＭＬである場合、色データが乗算済みであると判断しうる。
【００３１】
色変換処理部（１０６）により入力データが乗算済みのものであると判断された場合、色変換処理部（１０６）は未乗算済み処理部（１０８）に色データに対して未乗算済みの状態にする処理をさせ、色プロファイル（１７０）を用いて色変換を実行する。変換が完了すると、色変換処理部（１０６）によって、出力データを乗算済みの状態にすべきと判断された場合、色変換処理部（１０６）は乗算処理部（１１０）に変換された色データを乗算済みの状態にする処理をさせ、乗算済みの色データ（１６５）をインターフェイス（１０４）経由で出力する。一以上の実施形態において、これらのステップは上述の新ステップ２に対応しうる。
【００３２】
一方、色変換処理部（１０６）によって入力データが乗算済みではないと判断された場合、色変換処理部（１０６）は未乗算済みの状態にせずに色データを変換し、色変換処理部（１０６）によって出力データを乗算済みの状態にすべきではないと判断された場合、色変換処理部（１０６）は変換された色データを再乗算済みの状態にせずに、出力しうる。
【００３３】
本発明の一以上の実施形態において、色変換処理部（１０６）は、追加情報としてインターフェイス（１０４）に入力される、出力色データを乗算済みの状態とすべきかを示す他のフラグを参照しうる。色変換処理部（１０６）は、入力色データが乗算済みであると判断しても、色変換処理部（１０６）は、他のフラグに基づいて、変換済み色データを再乗算済みの状態にせずに出力しうる。この場合、色変換処理部（１０６）は、変換済み未乗算済み色データとともに元のアルファチャンネル値を出力しうる。
【００３４】
本発明の一以上の実施形態において、未乗算済み処理部（１０８）は入力色データを未乗算済み色データに変換しうる（つまり、未乗算済み状態にする）。未乗算済み処理部（１０８）は未乗算済みの状態にする処理として、あらゆる処理を実行しうる。
【００３５】
例えば、未乗算済み処理部（１０８）は図５に示すアルゴリズムに基づいて未乗算済みの状態にする処理を実行しうる。このアルゴリズムにおいて「ｏｒｉｇ＿ｃｏｌｏｒ＿ｐｉｘｅｌ」は各乗算済み色コンポーネント（例えばＲＧＢ色空間の赤、緑、青コンポーネント）を示し、「ａｌｐｈａ＿ｐｉｘｅｌ」はアルファチャンネルコンポーネントを示す。この例において、各コンポーネントを表す最大値は２５５である。ａｌｐｈａ＿ｐｉｘｅｌが０ではない場合、未乗算済み色データ「ｃｏｌｏｒ＿ｎｅｗ」の各コンポーネントは下記の数式によって計算しうる。
ｃｏｌｏｒ＿ｎｅｗ＝（ｏｒｉｇ＿ｃｏｌｏｒ＿ｐｉｘｅｌ＿＊２５５）／ａｌｐｈａ＿ｐｉｘｅｌ
そしてａｌｐｈａ＿ｐｉｘｅｌが０である場合、未乗算済み色データ「ｃｏｌｏｒ＿ｎｅｗ」の各コンポーネントは下記の数式によって計算しうる。
ｃｏｌｏｒ＿ｎｅｗ＝０
【００３６】
本発明の一以上の実施形態において、乗算済み処理部（１１０）は、未乗算済み色変換済みデータを乗算済み色データに変換しうる（つまり、再乗算済み状態にする）。乗算済み処理部（１１０）は乗算済みの状態にする処理として、あらゆる方法を実行しうる。例えば、乗算済み処理部（１１０）は図６に示すアルゴリズムに応じて乗算済みの状態にする処理を実行しうる。このアルゴリズムにおいて、「ｃｏｎｖｅｒｔｅｄ＿ｃｏｌｏｒ＿ｐｉｘｅｌ」は各変換済み色コンポーネント（例えば、ＣＭＹＫ色空間におけるシアン、マジェンタ、イエロー、ブラックコンポーネント）を示し、「ａｌｐｈａ＿ｐｉｘｅｌ」は元のアルファチャンネルコンポーネントを示す。再乗算済み色データ「ｃｏｌｏｒ＿ｎｅｗ」の各コンポーネントは下記数式によって計算しうる。
ｃｏｌｏｒ＿ｎｅｗ＝（ｃｏｎｖｅｒｔｅｄ＿ｃｏｌｏｒ＿ｐｉｘｅｌ＿＊ａｌｐｈａ＿ｐｉｘｅｌ）／２５５
【００３７】
図１は、説明の便宜上コンポーネントの一つの特定の構成を示すが、本発明のクレームの範囲を逸脱することなくその他の構成を用いうる。例えば、様々なコンポーネントを組み合わせて一つのコンポーネントを作成しうる。他の例として、一つのコンポーネントによって実行する機能を二以上のコンポーネントによって実行しうる。
【００３８】
図２は本発明の一以上の実施形態におけるフローチャートを示す。図２において図示される処理は未乗算済みの状態にする処理や再乗算済みの状態にする処理の際に一つの色空間から別の色空間へ色データを変換するのに用いられる。図２に示す一以上のステップは、図１を参照して上述したシステム（１００）のコンポーネントによって実行されうる。本発明の一以上の実施形態において、図２に示す一以上のステップは、省略し、繰り返し、及び／又は図２に示される順番と異なる順番で実行しうる。よって、本発明の範囲は図２に示された特定の構成に基づく工程に限定されない。
【００３９】
まず、インターフェイス（１０４）は、メモリーからある色空間における入力色データ及び追加情報としてフラグを読み出しうる（ステップ２０２）。メモリーから読み出された入力色データはデータキャッシュに記憶されうる（１１２）。次に、色変換処理部（１０６）はフラグに基づいて入力色データが乗算済みか否かを判断する（ステップ２０４）。例えば、フラグによって入力色データが乗算済みであると示される場合、色変換処理部（１０６）は入力色データが乗算済みであると判断する。また、フラグによって入力色データが乗算済みであると示されていない場合、色変換処理部（１０６）はデータが乗算済みではないと判断する。
【００４０】
色変換処理部（１０６）は、入力色データが乗算済みではないと判断した場合、以下の変換処理を実行する。つまり、色変換処理部（１０６）は、入力色データが乗算済みではないと判断した場合（ステップ２０４でＮｏ）、色変換処理部（１０６）は入力色データを一つの色空間（例えばＲＧＢ）から他の色空間（例えばＣＭＹＫ）へ変換し（ステップ２１２）、変換された色データをメモリーに書き込みうる（ステップ２１４）。
【００４１】
色変換処理部（１０６）は、入力色データが乗算済みであると判断した場合、以下の変換処理を実行する。つまり、色変換処理部（１０６）は入力色データが乗算済みであると判断すると（ステップ２０４でＹｅｓ）、色変換処理部（１０６）は未乗算済み処理部（１０８）に乗算済み入力色データから未乗算済み色データ（ステップ２０６）へ変換させうる（ステップ２０６）。未乗算済み処理部（１０８）は例えば図５に示すようにアルゴリズムに基づいて未乗算済み処理を実行しうる。未乗算済み処理の後に、色変換処理部（１０６）は未乗算済み入力色データをある色空間（例えばＲＧＢ）から別の色空間（例えばＣＭＹＫ）へ変換しうる（ステップ２０８）。次に、色変換処理部（１０６）は乗算済み処理部（１１０）に変換済み色データを乗算済み色データに変換させうる（ステップ２１０）。例えば、乗算済み処理部（１１０）は、図６に示すようにアルゴリズムに基づいて乗算済み処理を実行しうる。乗算済み処理後、インターフェイス（１０４）は乗算済み色データをメモリーに書き込みうる（ステップ２１４）。
【００４２】
本発明の一以上の実施形態において、色変換モジュール（１０２）はステップ２１０を省略し、第２色空間の未乗算済み色データを再乗算済みの状態にする処理を実行せずにメモリーに出力しうる。
【００４３】
本発明の一以上の実施形態において、インターフェイスは入力色データ及び他のシステム又はアプリケーションからのフラグを受信しうる。さらに、インターフェイスは色変換後に色データ（乗算済み又は未乗算済み）を他のシステム又はアプリケーションに出力しうる。
【００４４】
本発明の一以上の実施形態において、色変換モジュール（１０２）は中央処理装置（ＣＰＵ）、グラフィックス処理装置（ＧＰＵ）、又はその他のシステム（１００）上の専用ハードウェアによって実行されるプログラムであり、インターフェイス（１０４）はシステム（１００）にインストールされるその他のプログラムと通信するためのプログラムインターフェイスである。また、システム（１００）はネットワークに接続され、色変換モジュール（１０２）は色データ及びフラグをネットワーク上の他のシステム又はアプリケーションから受信しうる。システム（１００）は変換された色データをネットワークを介して他のシステムに出力しうる。
【００４５】
本発明の一以上の実施形態において、インターフェイス（１０４）は色データとともに追加の情報を受信しうる。例えば、インターフェイス（１０４）は入力／出力色データの色空間を示す変換情報、及び／又は出力データを乗算済みの状態にすべきか否かを示す他のフラグを受信しうる。色変換処理部（１０６）は、指定された入力及び出力色空間の間での色変換に必要な色プロファイルを読み出し、色空間変換を実行しうる。さらに、色変換処理部（１０６）は入力色データが乗算済みではない場合であっても出力前に色変換入力データを乗算済みの状態にし、その逆の処理も実行しうる。
【００４６】
図３は本発明の一以上の実施形態におけるフローチャートを図示する。図３に示される処理は特定のフォーマットを採用する文書の色データについて、必要に応じて未乗算済みの状態にする処理及び再乗算済みの状態にする処理を実行して、一つの色空間から別の色空間へ変換するのに用いうる。図３に示される一以上のステップは図１を参照して上述したシステム（１００）のコンポーネントによって実行しうる。本発明の一以上の実施形態において、図３に示す一以上のステップは、省略し、繰り返し、及び／又は図３に示される順番と異なる順番で実行しうる。よって、本発明の範囲は図３に示された特定の構成によるステップに限定されない。
【００４７】
本発明の一以上の実施形態における図３に示される処理において、インターフェイス（１０４）はＰＣＬ、ＸＬ、ＰｏｓｔＳｃｒｉｐｔ、ＰＰＭＬ、ＰＤＦ、ＸＰＳ又はＯＯＸＭＬ等の特定のフォーマットを有するメモリー文書データから読み出されうる（ステップ３０２）。次に、パーシングモジュール（図示せず）は文書データをパースし、色変換処理部（１０６）のためにそのフォーマットを識別する（ステップ３０４）。例えば、パーシングモジュールは文書データにおいてフォーマットを示すタグを検索することによりフォーマットを識別しうる（例えばＰｏｓｔＳｃｒｉｐｔを示す「％ｐｓ」）。また、パーシングモジュールは発見的な方法を用いて文書フォーマットを判断しうる。パーシングモジュールによって識別された文書フォーマットに基づいて、色変換処理部（１０６）は文書の色データが乗算済みかを判断しうる（ステップ３０６）。フォーマットによっては色データが乗算済みであることが必要であると知られているからである。例えば、フォーマットがＸＰＳ又はＯＯＸＭＬである場合、色変換処理部（１０６）は色データが乗算済みであると判断しうる。
【００４８】
色変換処理部（１０６）によって色データが乗算済みではないと判断された場合（ステップ３０６でＮｏ）、色変換処理部（１０６）は入力文書データを当該色空間（例えば、ＲＧＢ）から別の色空間（例えば、ＣＭＹＫ）へ変換し（ステップ３１４）、変換された色データをメモリーに書き込みうる（ステップ３１６）。
【００４９】
色変換処理部（１０６）によって色データが乗算済みであると判断された場合（ステップ３０６でＹｅｓ）、色変換処理部（１０６）は、未乗算済み処理部（１０８）に文書の乗算済み色データを未乗算済み色データに変換させうる（ステップ３０８）。続くステップ３１０〜３１６は上述のステップ２０８〜２１４と同様のものである。
【００５０】
本発明の一以上の実施形態において、色変換モジュール（１０２）はステップ３１２を省略し、第２色空間における未乗算済み色データを再乗算済みの状態にする処理をせずにメモリーへ出力しうる。
【００５１】
本発明の一以上の実施形態において、インターフェイス（１０４）は入力データフォーマット（例えば、ＰＣＬ、ＸＬ、ＰｏｓｔＳｃｒｉｐｔ、ＰＰＭＬ、ＰＤＦ、ＸＰＳ、ＯＯＸＭＬ、等）を示すフォーマット情報をパーシングモジュールから受信しうる。色変換処理部（１０６）は色変換の前に文書データをパースする代わりにフォーマット情報を読み出すことによって、入力文書データのデータフォーマットを識別しうる。しかし、一以上の実施形態においては、色変換処理部（１０６）は文書データをパースし、独立したパーシングモジュールによらずにフォーマットを識別しうる。
【００５２】
図４は本発明の一以上の実施形態におけるフローチャートを示す。図４に示される処理は色変換を実行し、外部のシステム又はアプリケーションによって提供された追加情報に基づいて乗算済み又は未乗算済み色データを出力するのに用いうる。図４に示される一以上のステップは図１を参照して上述したシステム（１００）のコンポーネントによって実行しうる。本発明の一以上の実施形態において、図４に示す一以上のステップは、省略し、繰り返し、及び／又は図４に示される順番と異なる順番で実行しうる。よって、本発明の範囲は図４に示されるような特定の構成によるステップに限定されない。
【００５３】
まず、インターフェイス（１０４）はある色空間における入力色データと追加情報を読み出しうる。追加情報には以下が含まれる（１）入力色データが乗算済みの状態か否かを示す第１フラグ（２）出力データを乗算済みの状態にすべきか否かを示す第２フラグ（ステップ４０２）。メモリーから読み出された入力色データはデータキャッシュに記憶されうる（１１２）。次に、色変換処理部（１０６）は受信した第１フラグに基づいて入力色データが乗算済みか否かを判断しうる（ステップ４０４）。
【００５４】
色変換処理部（１０６）によって入力色データが乗算済みであると判断された場合（ステップ４０４でＹｅｓ）、色変換処理部（１０６）は未乗算済み処理部（１０８）に乗算済み入力色データを未乗算済み色データに変換させうる（ステップ４０６）。次に、色変換処理部（１０６）は入力色データを当該色空間（例えば、ＲＧＢ）から別の色空間（例えば、ＣＭＹＫ）へ変換しうる（ステップ４０８）。
【００５５】
一方、色変換処理部（１０６）によって入力色データが乗算済みではない（ステップ４０４でＮｏ）と判断された場合、色変換処理部（１０６）は入力色データを当該色空間（例えば、ＲＧＢ）から別の色空間（例えば、ＣＭＹＫ）へ変換しうる（ステップ４０８）。
【００５６】
次に、色変換処理部（１０６）は、受信した第２フラグに基づいて出力色データを乗算済みの状態にすべきかを判断する（ステップ４１０）。色変換処理部（１０６）によって出力色データが乗算済みの状態にすべきと判断された場合（ステップ４１０でＹｅｓ）、色変換処理部（１０６）は乗算済み処理部（１１０）に色変換済み色データを乗算済み色データへ変換させうる（ステップ４１２）。乗算済みにする処理の後、インターフェイス（１０４）はメモリーに乗算済み色データを書き込みうる（ステップ４１４）。
【００５７】
一方、色変換処理部（１０６）によって出力色データを乗算済みにすべきではないと判断された場合（ステップ４１０でＮｏ）、インターフェイス（１０４）は乗算済みにする処理をせずにメモリーに色変換済み色データを書き込みうる（ステップ４１４）。
【００５８】
本発明の一以上の実施形態においては、システム（１００）は乗算済み及び未乗算済み色データの両方を直接扱い、よって、色変換モジュール以外のプログラムによって必要とされるメモリーアクセスを減らすことができる。その結果、特に変換すべきピクセルの個数が大きい場合、より効率的なスループットを実現しうる。
【００５９】
本発明の実施形態については用いられるプラットホームに関わらず、あらゆる種類のコンピューティングシステムにおいて実現することができる。例えば、コンピューティングシステムとして一以上のモバイル装置（例えば、ラップトップコンピューター、スマートフォン、パーソナルデジタルアシスタント、タブレット、もしくはその他のモバイル装置）、デスクトップコンピューター、サーバー、サーバーシャーシに含まれるブレード、もしくはその他のあらゆる種類のコンピューティングデバイス又は本発明の一以上の実施形態を実行する最低限の処理能力、メモリー、及び入出力装置を少なくとも有するデバイスが挙げられる。
【００６０】
例えば、図７に示されるように、コンピューティングシステム（７００）は、一以上のＣＰＵ（７２２）を有し、それぞれのＣＰＵ（７２２）は一以上のキャッシュ（７３２）、関連付けられたメモリー（７２４）（例えば、ランダムアクセスメモリー（ＲＡＭ）、キャッシュメモリー、フラッシュメモリー等）、一以上の記憶装置（７２６）（例えば、ハードディスク、コンパクトディスクドライブ（ＣＤ）又はデジタルバーサタイルディスク（ＤＶＤ）ドライブ等の光学ドライブ、フラッシュメモリーディスク等）、ネットワークデバイス（７２８）、（例えば、ネットワークインターフェイスカード、無線ＬＡＮモジュ−ル、広域ネットワークモジュール、ブルートゥース（登録商標）モジュール、ジグビーモジュール、赤外線通信モジュール等）、一以上のＧＰＵ（７３０）、並びにその他の複数の要素及び機能を有する。
【００６１】
ＣＰＵ（７２２）は命令を処理する集積回路でありうる。例えば、コンピュータープロセッサーはプロセッサーの一以上のコア又はマイクロコアでありうる。ＣＰＵ（７２２）は（メイン）メモリー（７２４）よりも速いメモリーである一以上のキャッシュ（７３２）を有しうる。コンピューティングシステム（７００）は、一以上の入力装置（７４０）を備え、タッチスクリーン、キーボード、マウス、マイクロフォン、タッチパッド、電子ペン、又はその他の種類の入力装置等が挙げられる。さらにコンピューティングシステム（７００）は一以上の出力装置（７６０）を有し、例えばスクリーン（例えば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、タッチスクリーン、ブラウン管（ＣＲＴ）モニター、プロジェクター又はその他のディスプレイ装置）、プリンター又はプロッター、外部記憶装置、又はその他の出力装置が挙げられる。一以上の出力装置は入力装置と同じか異なりうる。コンピューティングシステム（７００）はネットワークインターフェイス接続（図示せず）を介してネットワーク（７８０）（例えばローカルエリアネットワーク（ＬＡＮ）、インターネット等のワイドエリアネットワーク（ＷＡＮ）、モバイルネットワーク又はその他の種類のネットワーク）に接続されうる。入出力装置はローカル又はリモート（例えば、ネットワーク（７８０）を介して）ＣＰＵ（７２２）、メモリー（７２４）、記憶装置（７２６）、ネットワークデバイス（７２８）、及びＧＰＵ（７３０）に接続されうる。様々な種類のコンピューティングシステムが存在し、上述の入出力装置はその他の形式のものも採用しうる。
【００６２】
本発明の実施形態を実行するためのコンピューターに読取可能なプログラムコードの形式のソフトウェア命令は、その一部又は全部が、一時的に又は永続的にＣＤ、ＤＶＤ、記憶装置、ディスケット、テープ、フラッシュメモリー、物理的メモリー、又はその他のコンピューター読取可能な媒体等の非一時的コンピューター読取可能な媒体に記憶されうる。具体的に、ソフトウェア命令は、プロセッサーによって実行されることによって、本発明の実施形態を実行するように構成されたコンピューターに読取可能なプログラムコードに対応しうる。
【００６３】
さらに、上述のコンピューティングシステム（７００）の一以上の要素は遠隔地に位置し、ネットワーク（７８０）上で他の要素と接続されうる。さらに、本発明の一以上の実施形態は複数のノードを有する分散システム上で実施することができ、本発明の各部分は分散システム内の異なるノードに位置しうる。本発明の実施形態において、ノードは独立したコンピューティングデバイスに対応する。また、ノードは関連付けられた物理的メモリーを有するコンピュータープロセッサーに対応しうる。また、ノードは共通するメモリー及び／又はリソースを有するコンピュータープロセッサー又はコンピュータープロセッサーのマイクロコアでありうる。
【００６４】
本発明の限られた実施形態を用いて説明したが、本発明の上述の説明により本発明の範囲から逸脱することなく、本発明のその他の実施形態を実行しうることを当業者は理解しうるであろう。よって、本発明の範囲は添付されたクレームのみによって限定される。
【図１】
0006404865.tif 000002
【図２】
0006404865.tif 000003
【図３】
0006404865.tif 000004
【図４】
0006404865.tif 000005
【図５】
0006404865.tif 000006
【図６】
0006404865.tif 000007
【図７】
0006404865.tif 000008