(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
第１の色空間内の座標値を第２の色空間内の座標値に変換するための所定データと、特定の色空間内の座標値を前記第２の色空間内の座標値に変換するためのデータを含む出力側プロファイルと、を格納可能なメモリと、
前記所定データと前記出力側プロファイルとが前記メモリに格納されている状態で、対象ファイルを取得する取得部であって、前記対象ファイルは、前記第１の色空間内の座標値を示す複数個の画素を含むオブジェクトデータと、前記第１の色空間内の座標値を前記特定の色空間内の座標値に変換するためのデータを含む入力側プロファイルと、を含む、前記取得部と、
前記オブジェクトデータに対して色変換処理を実行して、前記第２の色空間内の座標値を示す複数個の画素を含む変換済みデータを生成する色変換部であって、前記入力側プロファイルと前記出力側プロファイルとを利用した前記色変換処理である第１種の色変換処理によって生成される第１種の前記変換済みデータと、前記所定データを利用した前記色変換処理である第２種の色変換処理によって生成される第２種の前記変換済みデータと、のうちのどちらが、前記対象ファイルによって表わされる画像の出力のために利用されるべきかを、前記入力側プロファイルに基づいて判断する前記色変換部と、
前記判断の結果に応じた前記変換済みデータを利用して、前記対象ファイルによって表わされる前記画像を出力部に出力させる出力制御部と、
を備える画像処理装置。
【請求項２】
前記色変換部は、前記入力側プロファイルと前記オブジェクトデータとに基づいて、前記判断を実行する、請求項１に記載の画像処理装置。
【請求項３】
前記色変換部は、対象データに対する前記入力側プロファイルを利用した対象色変換処理の結果に基づいて、前記判断を実行する、請求項１又は２に記載の画像処理装置。
【請求項４】
前記色変換部は、
前記オブジェクトデータである前記対象データに対して、前記入力側プロファイルを利用した入力側色変換処理であって、前記第１種の色変換処理のうちの前記入力側色変換処理である前記対象色変換処理を実行して、前記特定の色空間内の座標値を示す複数個の画素を含む中間データを生成し、
前記中間データに含まれる前記複数個の画素のうち、前記画像処理装置が表現不可能な色範囲内の座標値を示す不可能画素の個数が閾値未満である場合に、前記第１種の変換済みデータが利用されるべきと判断し、
前記不可能画素の個数が前記閾値以上である場合に、前記第２種の変換済みデータが利用されるべきと判断する、請求項３に記載の画像処理装置。
【請求項５】
前記色変換部は、
前記第１種の変換済みデータが利用されるべきと判断される場合に、前記中間データに対して、前記出力側プロファイルを利用した出力側色変換処理であって、前記第１種の色変換処理のうちの前記出力側色変換処理を実行して、前記第１種の変換済みデータを生成し、
前記第２種の変換済みデータが利用されるべきと判断される場合に、前記オブジェクトデータに対して、前記所定データを利用した前記第２種の色変換処理を実行して、前記第２種の変換済みデータを生成する、請求項４に記載の画像処理装置。
【請求項６】
前記色変換部は、
前記オブジェクトデータに含まれる前記複数個の画素のうちのＮ１個（前記Ｎ１は１以上の整数）の画素である前記対象データに対して、前記入力側プロファイルと前記出力側プロファイルとを利用した前記第１種の色変換処理である前記対象色変換処理を実行して、前記第２の色空間内の座標値を示すＮ１個の画素を含む第１の判断用データを生成し、
前記対象データに対して、前記所定データを利用した前記第２種の色変換処理を実行して、前記第２の色空間内の座標値を示すＮ１個の画素を含む第２の判断用データを生成し、
前記第１の判断用データに含まれる前記Ｎ１個の画素と前記第２の判断用データに含まれる前記Ｎ１個の画素との間の色差を示す色差指標値を算出し、
前記色差指標値が、前記色差が閾値以上であることを示す場合に、前記第１種の変換済みデータが利用されるべきと判断し、
前記色差指標値が、前記色差が前記閾値未満であることを示す場合に、前記第２種の変換済みデータが利用されるべきと判断する、請求項３に記載の画像処理装置。
【請求項７】
前記対象データである前記Ｎ１個の画素は、前記オブジェクトデータに含まれる前記複数個の画素の全てであり、
前記第１の判断用データは、前記第１種の変換済みデータであり、
前記第２の判断用データは、前記第２種の変換済みデータである、請求項６に記載の画像処理装置。
【請求項８】
前記色変換部は、
前記第１の色空間内の予め決められている複数個の座標値グループのそれぞれについて、前記オブジェクトデータに含まれる前記複数個の画素のうち、当該座標値グループに含まれる座標値を示すグループ画素の個数を算出し、
前記複数個の座標値グループの中から、前記グループ画素の個数が最大である最大座標値グループを選択し、
前記対象データである前記Ｎ１個の画素のそれぞれは、前記オブジェクトデータに含まれる前記複数個の画素のうち、前記最大座標値グループに含まれる座標値を示す画素である、請求項６に記載の画像処理装置。
【請求項９】
前記色変換部は、
前記第１種の変換済みデータが利用されるべきと判断される場合に、前記オブジェクトデータに含まれる前記複数個の画素のうち、前記Ｎ１個の画素以外のＮ２個（前記Ｎ２は１以上の整数）の画素に対して、前記入力側プロファイルと前記出力側プロファイルとを利用した前記第１種の色変換処理を実行して、前記第２の色空間内の座標値を示すＮ２個の画素を含む第１の部分データを生成し、前記第１の判断用データと前記第１の部分データとを含む前記第１種の変換済みデータを生成し、
前記第２種の変換済みデータが利用されるべきと判断される場合に、前記オブジェクトデータに含まれる前記複数個の画素のうち、前記Ｎ１個の画素以外の前記Ｎ２個の画素に対して、前記所定データを利用した前記第２種の色変換処理を実行して、前記第２の色空間内の座標値を示すＮ２個の画素を含む第２の部分データを生成し、前記第２の判断用データと前記第２の部分データとを含む前記第２種の変換済みデータを生成する、請求項８に記載の画像処理装置。
【請求項１０】
前記色変換部は、
前記第１の色空間内の予め決められている複数個の座標値グループのそれぞれについて、前記オブジェクトデータに含まれる前記複数個の画素のうち、当該座標値グループに含まれる座標値を示すグループ画素の個数を算出し、
前記複数個の座標値グループの中から、前記グループ画素の個数が最大である最大座標値グループを選択し、
前記最大座標値グループに含まれるＭ個（前記Ｍは１以上の整数）の座標値である前記対象データに対して、前記入力側プロファイルと前記出力側プロファイルとを利用した前記第１種の色変換処理である前記対象色変換処理を実行して、前記第２の色空間内のＭ個の座標値を含む第１の判断用データを生成し、
前記対象データに対して、前記所定データを利用した前記第２種の色変換処理を実行して、前記第２の色空間内のＭ個の座標値を含む第２の判断用データを生成し、
前記第１の判断用データに含まれる前記Ｍ個の座標値と前記第２の判断用データに含まれる前記Ｍ個の座標値との間の色差を示す色差指標値を算出し、
前記色差指標値が、前記色差が閾値以上であることを示す場合に、前記第１種の変換済みデータが利用されるべきと判断し、
前記色差指標値が、前記色差が前記閾値未満であることを示す場合に、前記第２種の変換済みデータが利用されるべきと判断する、請求項３に記載の画像処理装置。
【請求項１１】
前記所定データは、前記第１の色空間内の複数個の第１座標値と、前記第２の色空間内の複数個の第２座標値と、が対応付けられているデータを含み、
前記色変換部は、
前記所定データに含まれるＬ個（前記Ｌは１以上の整数）の第１座標値である前記対象データに対して、前記入力側プロファイルと前記出力側プロファイルとを利用した前記第１種の色変換処理である前記対象色変換処理を実行して、前記第２の色空間内のＬ個の第３座標値を算出し、
前記所定データに含まれるＬ個の第２座標値であって、前記Ｌ個の第１座標値に対応付けられている前記Ｌ個の第２座標値と、前記Ｌ個の第３座標値と、の間の色差を示す色差指標値を算出し、
前記色差指標値が、前記色差が閾値以上であることを示す場合に、前記第１種の変換済みデータが利用されるべきと判断し、
前記色差指標値が、前記色差が前記閾値未満であることを示す場合に、前記第２種の変換済みデータが利用されるべきと判断する、請求項３に記載の画像処理装置。
【請求項１２】
前記Ｌ個の第１座標値は、前記所定データに含まれる全ての第１座標値であり、
前記Ｌ個の第２座標値は、前記所定データに含まれる全ての第２座標値であり、
前記色変換部は、
前記Ｌ個の第１座標値と前記Ｌ個の第３座標値とが対応付けられている対応テーブルを生成し、
前記第１種の変換済みデータが利用されるべきと判断される場合に、前記オブジェクトデータに対して前記対応テーブルを利用した前記第１種の色変換処理を実行して、前記第１種の変換済みデータを生成し、
前記第２種の変換済みデータが利用されるべきと判断される場合に、前記オブジェクトデータに対して前記所定データを利用した前記第２種の色変換処理を実行して、前記第２種の変換済みデータを生成する、請求項１１に記載の画像処理装置。
【請求項１３】
前記入力側プロファイルは、前記第１の色空間内の複数個の基準座標値と、前記特定の色空間内の複数個の特定座標値と、が対応付けられているデータを含み、
前記色変換部は、
前記入力側プロファイルに含まれる前記複数個の基準座標値の中から、無彩色を示す１個以上の基準座標値を特定し、
前記入力側プロファイルに含まれる前記複数個の特定座標値の中から、前記１個以上の基準座標値に対応付けられている１個以上の特定座標値を特定し、
前記１個以上の特定座標値に含まれる無彩色を示す無彩色座標値の個数が第１の閾値未満である場合に、前記第１種の変換済みデータが利用されるべきと判断し、
前記１個以上の特定座標値に含まれる前記無彩色座標値の個数が前記第１の閾値以上である場合に、前記第２種の変換済みデータが利用されるべきと判断する、請求項１に記載の画像処理装置。
【請求項１４】
前記色変換部は、
前記オブジェクトデータに含まれる前記複数個の画素のうち、所定の無彩色範囲内の座標値を示す無彩色画素の個数を特定し、
前記１個以上の特定座標値に含まれる前記無彩色座標値の個数が前記第１の閾値以上であり、かつ、前記無彩色画素の個数が第２の閾値未満である場合に、前記第１種の変換済みデータが利用されるべきと判断し、
前記１個以上の特定座標値に含まれる前記無彩色座標値の個数が前記第１の閾値以上であり、かつ、前記無彩色画素の個数が前記第２の閾値以上である場合に、前記第２種の変換済みデータが利用されるべきと判断する、請求項１３に記載の画像処理装置。
【請求項１５】
画像処理装置のためのコンピュータプログラムであって、
前記画像処理装置は、第１の色空間内の座標値を第２の色空間内の座標値に変換するための所定データと、特定の色空間内の座標値を前記第２の色空間内の座標値に変換するためのデータを含む出力側プロファイルと、を格納可能なメモリを備え、
前記コンピュータプログラムは、前記画像処理装置のコンピュータを、
前記所定データと前記出力側プロファイルとが前記メモリに格納されている状態で、対象ファイルを取得する取得部であって、前記対象ファイルは、前記第１の色空間内の座標値を示す複数個の画素を含むオブジェクトデータと、前記第１の色空間内の座標値を前記特定の色空間内の座標値に変換するためのデータを含む入力側プロファイルと、を含む、前記取得部と、
前記オブジェクトデータに対して色変換処理を実行して、前記第２の色空間内の座標値を示す複数個の画素を含む変換済みデータを生成する色変換部であって、前記入力側プロファイルと前記出力側プロファイルとを利用した前記色変換処理である第１種の色変換処理によって生成される第１種の前記変換済みデータと、前記所定データを利用した前記色変換処理である第２種の色変換処理によって生成される第２種の前記変換済みデータと、のうちのどちらが、前記対象ファイルによって表わされる画像の出力のために利用されるべきかを、前記入力側プロファイルに基づいて判断する前記色変換部と、
前記判断の結果に応じた前記変換済みデータを利用して、前記対象ファイルによって表わされる前記画像を出力部に出力させる出力制御部と、
して機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、対象ファイルに含まれるオブジェクトデータに対する色変換処理を実行して、対象ファイルによって表わされる画像を出力する画像処理装置を開示する。
【背景技術】
【０００２】
特許文献１に記載の色再現処理切替装置は、表示対象の画像を複数個のブロックに分割し、各ブロックの特性に応じて色再現処理方式を変える。例えば、当該装置は、単一色に近い山を示すブロックについては高速色再現処理方式を採用し、ヒトの顔を示すブロックについては精細色再現処理方式を採用する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１８２６３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、高品質の画像を出力することが求められている。上記の技術では、表示対象の画像の内容に基づいて色変換の手法を変えるが、それでは、高品質の画像を出力することができない可能性がある。本明細書では、上記の技術とは異なる手法を利用して、高品質の画像を出力させ得る技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書によって開示される画像処理装置は、第１の色空間内の座標値を第２の色空間内の座標値に変換するための所定データと、特定の色空間内の座標値を前記第２の色空間内の座標値に変換するためのデータを含む出力側プロファイルと、を格納可能なメモリと、前記所定データと前記出力側プロファイルとが前記メモリに格納されている状態で、対象ファイルを取得する取得部であって、前記対象ファイルは、前記第１の色空間内の座標値を示す複数個の画素を含むオブジェクトデータと、前記第１の色空間内の座標値を前記特定の色空間内の座標値に変換するためのデータを含む入力側プロファイルと、を含む、前記取得部と、前記オブジェクトデータに対して色変換処理を実行して、前記第２の色空間内の座標値を示す複数個の画素を含む変換済みデータを生成する色変換部であって、前記入力側プロファイルと前記出力側プロファイルとを利用した前記色変換処理である第１種の色変換処理によって生成される第１種の前記変換済みデータと、前記所定データを利用した前記色変換処理である第２種の色変換処理によって生成される第２種の前記変換済みデータと、のうちのどちらが、前記対象ファイルによって表わされる画像の出力のために利用されるべきかを、前記入力側プロファイルに基づいて判断する前記色変換部と、前記判断の結果に応じた前記変換済みデータを利用して、前記対象ファイルによって表わされる前記画像を出力部に出力させる出力制御部と、を備える。
【０００６】
上記の画像処理装置は、入力側プロファイルに基づく判断を実行する。そして、画像処理装置は、判断の結果に応じて、入力側プロファイルを利用した第１種の色変換処理によって生成される第１種の変換済みデータと、入力側プロファイルを利用しない第２種の色変換処理によって生成される第２種の変換済みデータと、のうちの一方を利用して、画像を出力部に出力させる。このために、高品質の画像が出力され得る。
【０００７】
上記の画像処理装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。
【図面の簡単な説明】
【０００８】
【図１】通信システムの構成を示す。
【図２】実施例の概略を説明するための説明図を示す。
【図３】印刷処理のフローチャートを示す。
【図４】第１実施例の色変換処理のフローチャート及び処理の流れの一例を示す。
【図５】第２実施例の色変換処理のフローチャートを示す。
【図６】第２実施例の処理の流れの一例を示す。
【図７】第３実施例の色変換処理のフローチャートを示す。
【図８】第３実施例の処理の流れの一例を示す。
【図９】第４実施例の色変換処理のフローチャートを示す。
【図１０】第４実施例の処理の流れの一例を示す。
【図１１】第５実施例の色変換処理のフローチャート及び処理の流れの一例を示す。
【図１２】第６及び第７実施例の色変換処理のフローチャートを示す。
【発明を実施するための形態】
【０００９】
（第１実施例）
（通信システム２の構成）
図１に示されるように、通信システム２は、プリンタ１０と端末装置５０とを備える。プリンタ１０と端末装置５０とは、ＬＡＮ（Local Area Networkの略）４に接続されており、ＬＡＮ４を介して相互に通信可能である。ＬＡＮ４は、有線ＬＡＮでもよいし、無線ＬＡＮでもよい。例えば、端末装置５０からプリンタ１０にＬＡＮ４を介してＰＤＦファイル１００が供給されると、プリンタ１０は、ＰＤＦファイル１００によって表わされる画像を印刷することができる。
【００１０】
（プリンタ１０の構成）
プリンタ１０は、印刷機能を実行可能な周辺機器（即ち端末装置５０等の周辺機器）である。プリンタ１０は、操作部１２と、表示部１４と、ネットワークインターフェース１６と、印刷エンジン１８と、制御部３０と、を備える。各部１２〜３０は、バス線（符号省略）に接続されている。操作部１２は、複数のキーによって構成されている。ユーザは、操作部１２を操作することによって、様々な指示をプリンタ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。表示部１４は、いわゆるタッチパネルとして機能する。即ち、表示部１４は、ユーザによって操作される操作部としても機能する。ネットワークインターフェース１６は、ＬＡＮ４に接続されている。印刷エンジン１８は、インクジェット方式、レーザ方式等の印刷機構を備える。
【００１１】
制御部３０は、ＣＰＵ３２とメモリ３４とを備える。ＣＰＵ３２は、メモリ３４内のプログラム３６に従って、様々な処理を実行する。メモリ３４は、１個又は複数個のメモリデバイスによって構成され、プリンタ１０の電源がＯＦＦされても情報が消去されない不揮発性領域３４ａと、プリンタ１０の電源がＯＦＦされると情報が消去される揮発性領域３４ｂと、を備える。不揮発性領域３４ａ内の情報は、プリンタ１０の出荷段階から予め格納されている。揮発性領域３４ｂ内の情報は、ＣＰＵ３２が処理を実行する過程で格納される。
【００１２】
不揮発性領域３４ａは、プログラム３６と、第１及び第２の出力プロファイルＯＰ１，ＯＰ２と、所定テーブルＰＴと、を格納する。第１及び第２の出力プロファイルＯＰ１，ＯＰ２のそれぞれは、ＰＤＦ（Portable Document Formatの略）ファイル１００に含まれる入力プロファイルＩＰ１等と共に利用されて色変換を実行するための出力側ＩＣＣ（International Color Consortiumの略）プロファイルである。所定テーブルＰＴは、入力プロファイルＩＰ１等と共に利用されずに色変換を実行するためのテーブルである。
【００１３】
第１の出力プロファイルＯＰ１は、デバイスの特性に依存しないデバイス非依存色空間（Device Independent Color Space）内の座標値を、標準の色空間内の座標値に変換するためのデータを含む。デバイス非依存色空間は、本実施例では、Ｌ＊ａ＊ｂ＊色空間であるが、変形例では、例えばＸＹＺ色空間であってもよい。なお、以下では、Ｌ＊ａ＊ｂ＊のことを簡単に「Ｌａｂ」と記載する。また、標準の色空間は、予め決められている標準の色空間であり、本実施例ではＲＧＢ色空間であるが、変形例では他の色空間であってもよい。
【００１４】
第１の出力プロファイルＯＰ１は、Ｌａｂ色空間内の複数個の座標値（例えば１７３個の格子点（グリッド））と、ＲＧＢ色空間内の複数個の座標値と、が対応付けられたグリッドタイプのプロファイルであってもよいし、Ｌａｂ色空間内の座標値をＲＧＢ色空間内の座標値に変換するための関数を示す関数タイプのプロファイルであってもよい。他の出力プロファイルＯＰ２、及び、入力プロファイルＩＰ１等も、グリッドタイプのプロファイル及び関数タイプのプロファイルのどちらでもよい。
【００１５】
第２の出力プロファイルＯＰ２は、第１の出力プロファイルＯＰ１によって変換された後の座標値、即ち、標準の色空間（即ちＲＧＢ色空間）内の座標値を、プリンタ１０の特性に依存するデバイス依存色空間（Device Dependent Color Space）内の座標値に変換するためのデータを含む。プリンタ１０のデバイス依存色空間は、本実施例ではＣＭＹＫ色空間であるが、変形例ではＣＭＹＫの４色よりも多い色数（例えば、６色（例えばＣＭＹＫ＋オレンジ＋グリーン）、８色等）を有する色空間であってもよい。
【００１６】
所定テーブルＰＴは、標準の色空間（即ちＲＧＢ色空間）内の座標値を、プリンタ１０の特性に依存するデバイス依存色空間（即ちＣＭＹＫ色空間）内の座標値に変換するためのデータである。具体的には、所定テーブルＰＴは、ＲＧＢ色空間内の複数個の座標値と、ＣＭＹＫ色空間内の複数個の座標値と、が対応付けられたグリッドタイプのテーブルである。ただし、変形例では、所定テーブルＰＴに代えて関数タイプのデータが利用されてもよい。
【００１７】
上記の第２の出力プロファイルＯＰ２及び所定テーブルＰＴは、共に、ＲＧＢ色空間内の座標値をＣＭＹＫ色空間内の座標値に変換するためのプロファイルであるが、以下の相違点を有する。出力プロファイルＯＰ２では、Ｃ値が、Ｇ値及びＢ値に依存せずに、Ｒ値のみに依存する。同様に、Ｍ値、Ｙ値が、それぞれ、Ｇ値、Ｂ値のみに依存する。このように、第２の出力プロファイルＯＰ２では、ＣＭＹのそれぞれの値が、ＲＧＢのうちの１個の値のみに依存するように、座標値の対応関係が定義されている。これに対し、所定テーブルＰＴでは、ＣＭＹのそれぞれの値が、ＲＧＢのうちの２個以上の値に依存するように、座標値の対応関係が定義されている。なお、変形例では、第２の出力プロファイルＯＰ２及び所定テーブルＰＴは、同じデータであってもよい。
【００１８】
（ＰＤＦファイル１００の構成）
ＰＤＦファイル１００では、「1obj」、「2obj」等のオブジェクト識別子毎に、当該オブジェクト識別子によって識別されるオブジェクトの内容が記述される。例えば、「10obj」には「/ICCBased 11obj」と記述されており、これは、「11obj」に入力側ＩＣＣプロファイルである入力プロファイルＩＰ１が記述されていることを意味する。また、「12obj」には「ColorSpace 10obj」とオブジェクトデータＯＤ１とが記述されており、これは、「10obj」で定義されている入力プロファイル、即ち、「11obj」に記述されている入力プロファイルＩＰ１を利用した色変換が、オブジェクトデータＯＤ１に対して実行されるべきことを意味する。即ち、「10obj」〜「12obj」の記述内容において、入力プロファイルＩＰ１と、当該入力プロファイルＩＰ１を利用した色変換が実行されるべきオブジェクトデータＯＤ１と、が対応付けられている。
【００１９】
同様に、「20obj」〜「22obj」の記述内容において、入力プロファイルＩＰ２とオブジェクトデータＯＤ２とが対応付けられている。なお、１個の入力プロファイル（例えばＩＰ１）に１個のオブジェクトデータ（例えばＯＤ１）のみが対応付けられるとは限られない。例えば、入力プロファイルＩＰ１には、オブジェクトデータＯＤ１を含む２個以上のオブジェクトデータが対応付けられ得る。また、オブジェクトデータには入力プロファイルが必ず対応付けられるとは限らず、入力プロファイルが対応付けられていないオブジェクトデータが存在し得る。このように、ＰＤＦファイル１００は、複数個のオブジェクトデータと複数個の入力プロファイルとを含み、複数個のオブジェクトデータは、入力プロファイルが対応付けられているオブジェクトデータと、入力プロファイルが対応付けられていないオブジェクトデータと、を含み得る。
【００２０】
各入力プロファイルＩＰ１，ＩＰ２は、ＰＤＦファイル１００を生成したデバイス（例えば端末装置５０）の特性に依存するデバイス依存色空間の座標値を、デバイス非依存色空間（即ちＬａｂ色空間）内の座標値に変換するためのデータを含む。ＰＤＦファイル１００を生成したデバイスのデバイス依存色空間は、本実施例ではＲＧＢ色空間であるが、変形例では他の色空間であってもよい。
【００２１】
各オブジェクトデータＯＤ１，ＯＤ２は、ＰＤＦファイル１００を生成したデバイスのデバイス依存色空間（即ちＲＧＢ色空間）内の座標値で色が定義されるデータであり、具体的には、ＲＧＢ色空間内の座標値を示す複数個の画素によって構成されるビットマップデータ（即ち画像オブジェクト）である。
【００２２】
（実施例の概要；図２）
図２を参照して、プリンタ１０がＰＤＦファイル１００によって表わされる画像を印刷するための手法を説明する。プリンタ１０は、入力プロファイルＩＰ１に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する。具体的には、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換を実行すると、オブジェクトデータＯＤ１で定義されている色を正確に出力できる可能性が高い場合には、入力プロファイルＩＰ１が有用であると判断する。この場合、プリンタ１０は、オブジェクトデータＯＤ１に対するＩＣＣ色変換によって得られる第１のＣＭＹＫ画像データＣＤ１を利用して、ＰＤＦファイル１００によって表わされる画像を印刷する。ＩＣＣ色変換は、入力プロファイルＩＰ１及び各出力プロファイルＯＰ１，ＯＰ２を利用した色変換である。ＩＣＣ色変換では、オブジェクトデータＯＤ１が入力プロファイルＩＰ１によって変換されてＬａｂ画像データＬＤ１が生成され、当該データＬＤ１が第１の出力プロファイルＯＰ１によって変換されてＲＧＢ画像データＲＤ１が生成され、当該データＲＤ１が第２の出力プロファイルＯＰ２によって変換されて第１のＣＭＹＫ画像データＣＤ１が生成される。
【００２３】
一方、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換を実行すると、オブジェクトデータＯＤ１で定義されている色を正確に出力できない可能性が高い場合には、入力プロファイルＩＰ１が有用でないと判断する。この場合、プリンタ１０は、オブジェクトデータＯＤ１に対するテーブル色変換によって得られる第２のＣＭＹＫ画像データＣＤ２を利用して、ＰＤＦファイル１００によって表わされる画像を印刷する。テーブル色変換は、入力プロファイルＩＰ１及び各出力プロファイルＯＰ１，ＯＰ２を利用しない色変換であって、所定テーブルＰＴを利用した色変換である。テーブル色変換では、オブジェクトデータＬａｂ色空間及びＲＧＢ色空間への変換を経ずに、オブジェクトデータＯＤ１から第２のＣＭＹＫ画像データＣＤ２が生成される。
【００２４】
プリンタ１０は、他のオブジェクトデータＯＤ２等についても、入力プロファイルＩＰ２等が有用であるのか否かを判断して、ＩＣＣ色変換又はテーブル色変換によって得られるＣＭＹＫ画像データを利用する。プリンタ１０は、複数個のオブジェクトデータＯＤ１等から複数個のＣＭＹＫ画像データを生成した後に、複数個のＣＭＹＫ画像データを含む多階調（例えば２５６階調）のＣＭＹＫ画像データに対するハーフトーン処理を実行して、比較的に少ない階調（例えば２階調、３階調等）を有するＣＭＹＫ画像データ（以下では「印刷データ」と呼ぶ）を生成する。そして、プリンタ１０は、印刷データを印刷エンジン１８に供給して、印刷データによって表わされる画像、即ち、ＰＤＦファイル１００によって表わされる画像の印刷を実行する。
【００２５】
上述したように、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを判断し、判断結果に応じたＣＭＹＫ画像データを利用して、画像の印刷を実行する。このために、プリンタ１０は、各オブジェクトデータＯＤ１等で定義されている色が正確に表現された画像、即ち、高品質の画像の印刷を実行することができる。
【００２６】
（印刷処理；図３）
続いて、図３を参照して、プリンタ１０のＣＰＵ３２によって実行される印刷処理の内容を説明する。プリンタ１０の電源がＯＮされている間、ＣＰＵ３２は、図３の処理を継続的に実行する。Ｓ１０では、ＣＰＵ３２は、端末装置５０からネットワークインターフェース１６を介してＰＤＦファイル１００を取得することを監視する。ＣＰＵ３２は、ＰＤＦファイル１００を取得する場合（Ｓ１０でＹＥＳ）に、Ｓ２０に進む。
【００２７】
Ｓ２０では、ＣＰＵ３２は、ＰＤＦファイル１００内の各オブジェクト識別子を昇順に検出して、１個のオブジェクトデータ（例えば図１のＯＤ１）を特定する。具体的には、ＣＰＵ３２は、当該１個のオブジェクトデータが記述されている１個のオブジェクト識別子（例えば図１の「10obj」）を特定する。以下では、ここで特定されるオブジェクトデータ、オブジェクト識別子のことを、それぞれ、「対象オブジェクトデータ」、「対象オブジェクト識別子」と呼ぶ。
【００２８】
Ｓ３０では、ＣＰＵ３２は、対象オブジェクトデータに対する色変換処理（図４参照）を実行して、ＣＭＹＫ画像データを生成する。次いで、Ｓ４０では、ＣＰＵ３２は、ＰＤＦファイル１００内の全てのオブジェクトデータをＳ２０で特定したのか否かを判断する。具体的には、ＣＰＵ３２は、最新のＳ２０で特定された対象オブジェクト識別子よりも後ろの部分に他のオブジェクトデータが記述されていないことを確認した場合には、Ｓ４０でＹＥＳと判断してＳ５０に進む。一方、ＣＰＵ３２は、当該他のオブジェクトデータが記述されていることを確認した場合には、Ｓ４０でＮＯと判断してＳ２０に戻る。
【００２９】
Ｓ５０が実行される状況では、ＰＤＦファイル１００内の全てのオブジェクトデータから生成された各ＣＭＹＫ画像データを含む多階調（例えば２５６階調）のＣＭＹＫ画像データが完成している。Ｓ５０では、ＣＰＵ３２は、多階調のＣＭＹＫ画像データに対するハーフトーン処理を実行して、印刷データを生成する。次いで、Ｓ６０では、ＣＰＵ３２は、Ｓ５０で生成された印刷データを印刷エンジン１８に供給して、印刷データによって表わされる画像の印刷を印刷エンジン１８に実行させる。Ｓ６０が終了すると、図３の処理が終了する。
【００３０】
（色変換処理；図４）
続いて、図４を参照して、図３のＳ３０で実行される色変換処理の内容を説明する。Ｓ１００では、ＣＰＵ３２は、対象オブジェクトデータに入力プロファイルが対応付けられているのか否かを判断する。具体的には、ＣＰＵ３２は、対象オブジェクト識別子の記述内容が入力プロファイルを定義する文字列（例えば図１の「ColorSpace 10obj」）を含んでいる場合に、Ｓ１００でＹＥＳと判断してＳ１１０に進む。以下では、対象オブジェクトデータに対応付けられている入力プロファイルのことを「対象入力プロファイル」と呼ぶ。また、ＣＰＵ３２は、対象オブジェクト識別子の記述内容が上記の文字列を含んでいない場合に、Ｓ１００でＮＯと判断してＳ１４０に進む。
【００３１】
Ｓ１１０では、ＣＰＵ３２は、対象オブジェクトデータに対して、対象入力プロファイルを利用した色変換を実行して、Ｌａｂ画像データを生成する。具体的には、ＣＰＵ３２は、対象オブジェクトデータ内の複数個の画素（即ちＲＧＢ色空間内の座標値（以下では「ＲＧＢ座標値」と呼ぶ））のそれぞれに対して、対象入力プロファイルを利用した色変換を実行して、Ｌａｂ色空間内の座標値（以下では「Ｌａｂ座標値」と呼ぶ）を示す複数個の画素を含むＬａｂ画像データを生成する。例えば、対象入力プロファイルが関数タイプのプロファイルである状況を想定する。この場合、ＣＰＵ３２は、変換対象のＲＧＢ座標値を関数に代入して、Ｌａｂ座標値を算出する。また、例えば、対象入力プロファイルがグリッドタイプのプロファイルである状況を想定する。対象入力プロファイルが変換対象のＲＧＢ座標値に一致するＲＧＢ座標値を含む場合には、ＣＰＵ３２は、対象入力プロファイルにおいて当該ＲＧＢ座標値に対応付けられているＬａｂ座標値を特定する。一方、対象入力プロファイルが変換対象のＲＧＢ座標値に一致するＲＧＢ座標値を含まない場合には、ＣＰＵ３２は、対象入力プロファイル内の１個以上のＲＧＢ座標値であって、変換対象のＲＧＢ座標値の近傍に存在する１個以上のＲＧＢ座標値を利用した補間処理を実行して、Ｌａｂ座標値を算出する。なお、各出力プロファイルＯＰ１，ＯＰ２又は所定テーブルＰＴを利用した後述の色変換（Ｓ１３０，Ｓ１４０参照）も、上記と同様に実行される。
【００３２】
次いで、Ｓ１１２では、ＣＰＵ３２は、Ｓ１１０で生成されたＬａｂ画像データ内の複数個の画素のうちの不可能画素の個数を算出する。不可能画素は、プリンタ１０が表現不可能な色範囲内のＬａｂ座標値を示す画素である。プリンタ１０が表現可能なＬａｂ色空間の色範囲は、第１の出力プロファイルＯＰ１に定義されている。ＣＰＵ３２は、まず、第１の出力プロファイルＯＰ１を参照して、プリンタ１０が表現可能なＬａｂ色空間の色範囲を特定する。そして、ＣＰＵ３２は、Ｌａｂ画像データ内の複数個の画素のそれぞれについて、当該画素を示すＬａｂ座標値が特定済みの色範囲に含まれるのか否かを判断する。ＣＰＵ３２は、特定済みの色範囲に含まれないＬａｂ座標値を示す画素の個数を算出することによって、不可能画素の個数を算出する。
【００３３】
次いで、Ｓ１２０では、ＣＰＵ３２は、Ｓ１１２で算出された不可能画素の個数が閾値未満であるのか否かを判断する。本実施例では、閾値は、Ｌａｂ画像データの画素数に所定パーセント（例えば５パーセント）を乗算することによって得られる値である。ただし、変形例では、閾値は、Ｌａｂ画像データの画素数に依存しない予め決められている固定値であってもよい。ＣＰＵ３２は、不可能画素の割合が閾値未満であると判断する場合（Ｓ１２０でＹＥＳ）にはＳ１３０に進み、不可能画素の割合が閾値以上であると判断する場合（Ｓ１２０でＮＯ）にはＳ１４０に進む。
【００３４】
なお、変形例では、Ｓ１１２及びＳ１２０では、ＣＰＵ３２は、Ｌａｂ画像データ内の複数個の画素のうち、プリンタ１０が表現可能な色範囲内のＬａｂ座標値を示す可能画素の個数を算出し、可能画素の個数が閾値以上である場合に、Ｓ１２０でＹＥＳと判断し、可能画素の個数が閾値未満である場合に、Ｓ１２０でＮＯと判断してもよい。この変形例は、不可能画素の個数が閾値未満であるのか否かを判断する構成と等しい。
【００３５】
Ｓ１３０では、ＣＰＵ３２は、Ｓ１１０で生成されたＬａｂ画像データに対して、各出力プロファイルＯＰ１，ＯＰ２を利用した色変換を順次実行して、第１のＣＭＹＫ画像データを生成する。具体的には、ＣＰＵ３２は、まず、Ｌａｂ画像データ内の複数個の画素（即ちＬａｂ座標値）のそれぞれに対して、出力プロファイルＯＰ１を利用した色変換を実行して、ＲＧＢ座標値を示す複数個の画素を含むＲＧＢ画像データを生成する。なお、ＣＰＵ３２は、不可能画素に対して色変換を実行すべき場合には、ガマットマッピングを利用した色変換を実行する。ガマットマッピングは、不可能画素によって表わされる色をプリンタ１０が表現可能な色範囲内の近い色に置換して色変換を実行するための技術である。次いで、ＣＰＵ３２は、ＲＧＢ画像データ内の複数個の画素（即ちＲＧＢ座標値）のそれぞれに対して、出力プロファイルＯＰ２を利用した色変換を実行して、ＣＭＹＫ色空間内の座標値（以下では「ＣＭＹＫ座標値」と呼ぶ）を示す複数個の画素を含む第１のＣＭＹＫ画像データを生成する。Ｓ１３０が終了すると、図４の処理が終了する。
【００３６】
Ｓ１４０では、ＣＰＵ３２は、対象オブジェクトデータに対して、所定テーブルＰＴを利用した色変換を実行して、Ｌａｂ色空間及びＲＧＢ色空間への変換を経ずに、第２のＣＭＹＫ画像データを生成する。具体的には、ＣＰＵ３２は、対象オブジェクトデータ内の複数個の画素（即ちＲＧＢ座標値）のそれぞれに対して、所定テーブルＰＴを利用した色変換を実行して、ＣＭＹＫ座標値を示す複数個の画素を含む第２のＣＭＹＫ画像データを生成する。Ｓ１４０が終了すると、図４の処理が終了する。
【００３７】
（処理の流れの一例）
次いで、図３及び図４の処理によって実現される具体例を説明する。プリンタ１０は、オブジェクトデータＯＤ１に対して、入力プロファイルＩＰ１を利用したＩＣＣ色変換を実行して、Ｌａｂ画像データＬＤ１を生成する（Ｓ１１０）。
【００３８】
Ｌａｂ画像データＬＤ１内の不可能画素の個数が閾値未満であるということは、オブジェクトデータＯＤ１に対してＩＣＣ色変換を適切に実行可能である可能性が高いこと、即ち、オブジェクトデータＯＤ１で定義されている色を正確に出力できる可能性が高いことを意味する。従って、プリンタ１０は、不可能画素の個数が閾値未満であると判断する場合（Ｓ１２０でＹＥＳ）、即ち、入力プロファイルＩＰ１が有用であると判断する場合には、Ｌａｂ画像データＬＤ１に対して、各出力プロファイルＯＰ１，ＯＰ２を利用した色変換を順次実行して、ＲＧＢ画像データＲＤ１及び第１のＣＭＹＫ画像データＣＤ１を順次生成する（Ｓ１３０）。これにより、プリンタ１０は、オブジェクトデータＯＤ１で定義されている色が比較的に正確に表現された画像、即ち、高品質の画像を印刷することができる。
【００３９】
一方、不可能画素の個数が閾値以上であるということは、ＩＣＣ色変換を実行すると、オブジェクトデータＯＤ１で定義されている色（以下では「元の色」と記載することがある）を正確に出力できない可能性が高いことを意味する。不可能画素の個数が多い場合には、仮に、不可能画素に対してガマットマッピングを利用した色変換が実行されても、元の色とは大きく異なる色を示す画素が生成される可能性が高まるからである。従って、プリンタ１０は、不可能画素の個数が閾値以上であると判断する場合（Ｓ１２０でＮＯ）、即ち、入力プロファイルＩＰ１が有用でないと判断する場合には、オブジェクトデータＯＤ１に対して、所定テーブルＰＴを利用したテーブル色変換を実行して、第２のＣＭＹＫ画像データＣＤ２を生成する（Ｓ１４０）。これにより、プリンタ１０は、元の色が比較的に正確に表現された画像、即ち、高品質の画像を印刷することができる。
【００４０】
なお、Ｓ１２０の判断を実行することなく、ＰＤＦファイル１００内の全てのオブジェクトデータに対してテーブル色変換を実行する比較例の構成を採用することを想定する。比較例の構成によれば、不可能画素に対するＩＣＣ色変換を実行せずに済むので、高品質の画像を印刷できるようにも見える。しかしながら、通常、プリンタ１０が表現可能な色範囲内でＩＣＣ色変換が適切に実行される場合には、テーブル色変換が実行される場合と比べて、元の色を正確に出力できる。従って、本実施例では、プリンタ１０は、入力プロファイルが有用であるのか否かに応じてＩＣＣ色変換及びテーブル色変換を切替えるので、比較例の構成と比べて、元の色が正確に表現された画像を印刷することができる。
【００４１】
また、プリンタ１０は、入力プロファイルＩＰ１とオブジェクトデータＯＤ１との双方に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ１１０〜Ｓ１２０）。特に、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換処理の結果（即ちＬａｂ画像データＬＤ１）に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する。このために、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを適切に判断することができる。
【００４２】
（対応関係）
プリンタ１０、印刷エンジン１８が、それぞれ、「画像処理装置」、「出力部」の一例である。ＰＤＦファイル１００を生成したデバイスの特性に依存するＲＧＢ色空間、Ｌａｂ色空間、ＣＭＹＫ色空間が、それぞれ、「第１の色空間」、「特定の色空間」、「第２の色空間」の一例である。ＩＣＣ色変換、テーブル色変換が、それぞれ、「第１種の色変換処理」、「第２種の色変換処理」の一例である。Ｓ１１０の処理が、「入力側色変換処理」及び「対象色変換処理」の一例である。Ｓ１３０の処理が、「出力側色変換処理」の一例である。オブジェクトデータＯＤ１、Ｌａｂ画像データＬＤ１、第１のＣＭＹＫ画像データＣＤ１、第２のＣＭＹＫ画像データＣＤ２が、それぞれ、「対象データ」、「中間データ」、「第１種の変換済みデータ」、「第２種の変換済みデータ」の一例である。
【００４３】
（第１実施例の変形例）
ＣＰＵ３２は、図４のＳ１３０に代えて、以下の処理を実行してもよい。即ち、ＣＰＵ３２は、予め決められている複数個（例えば１７３個）のＲＧＢ座標値のそれぞれに対して、対象入力プロファイル及び各出力プロファイルＯＰ１，ＯＰ２を利用した色変換を順次実行して、複数個のＣＭＹＫ座標値を算出する。次いで、ＣＰＵ３２は、複数個のＲＧＢ座標値と複数個のＣＭＹＫ座標値とが対応付けられている変換テーブルを生成する。そして、ＣＰＵ３２は、オブジェクトデータＯＤ１に対して、変換テーブルを利用したＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データを生成する。本変形例では、変換テーブルを利用したＩＣＣ色変換が、「第１種の色変換処理」の一例である。
【００４４】
（第２実施例；図５）
本実施例では、ＣＰＵ３２は、図３のＳ３０の色変換処理において、図５の処理を実行する。Ｓ２００は、図４のＳ１００と同様である。Ｓ２００でＮＯの場合に実行されるＳ２４０は、図４のＳ１４０と同様であり、Ｓ２４０が終了すると、図５の処理が終了する。Ｓ２００でＹＥＳの場合に実行されるＳ２１０は、図４のＳ１１０及びＳ１３０と同様であり、Ｓ２１２は、図４のＳ１４０と同様であり、Ｓ２１２が終了すると、Ｓ２１４に進む。
【００４５】
Ｓ２１４では、ＣＰＵ３２は、Ｓ２１０で生成された第１のＣＭＹＫ画像データ内の複数個の画素（即ちＣＭＹＫ座標値）と、Ｓ２１２で生成された第２のＣＭＹＫ画像データ内の複数個の画素（即ちＣＭＹＫ座標値）と、の間の色差を示す色差指標値を算出する。具体的には、ＣＰＵ３２は、まず、第１のＣＭＹＫ画像データ内の第１の画素のＣＭＹＫ座標値と、第２のＣＭＹＫ画像データ内の第２の画素のＣＭＹＫ座標値と、の間の距離（即ちユークリッド距離）を算出する。ここで、第１の画素及び第２の画素のそれぞれは、対象オブジェクトデータ内の同じ画素に対する色変換を実行することによって得られる画素である。ＣＰＵ３２は、第１及び第２のＣＭＹＫ画像データ内の他の各画素についても同様に距離を算出する。この結果、ＣＰＵ３２は、対象オブジェクトデータの画素数（即ち第１又は第２のＣＭＹＫ画像データの画素数）と同じ個数である複数個の距離を算出することができる。次いで、ＣＰＵ３２は、複数個の距離の和を対象オブジェクトデータの画素数で除算することによって、色差指標値を算出する。従って、色差指標値が大きい程、第１及び第２のＣＭＹＫ画像データの間の色差が大きい。
【００４６】
Ｓ２２０では、ＣＰＵ３２は、Ｓ２１４で算出された色差指標値が閾値以上であるのか否かを判断する。閾値は、本実施例では、予め決められている固定値（例えば５）であるが、変形例では、対象オブジェクトデータの画素数に応じて変わる変動値であってもよい。ＣＰＵ３２は、色差指標値が閾値以上であると判断する場合（Ｓ２２０でＹＥＳ）には、Ｓ２３０において、Ｓ２１０で生成された第１のＣＭＹＫ画像データを利用することを決定する。一方、ＣＰＵ３２は、色差指標値が閾値未満であると判断する場合（Ｓ２２０でＮＯ）には、Ｓ２３５において、Ｓ２１２で生成された第２のＣＭＹＫ画像データを利用することを決定する。これにより、図３のＳ５０において、ＣＰＵ３２は、Ｓ２３０又はＳ２３５で決定されたＣＭＹＫ画像データを利用して、印刷データを生成する。
【００４７】
（処理の流れの一例；図６）
次いで、図６を参照して、図５の処理によって実現される具体例を説明する。プリンタ１０は、オブジェクトデータＯＤ１に対してＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データＣＤ１を生成し（Ｓ２１０）、さらに、オブジェクトデータＯＤ１に対してテーブル色変換を実行して、第２のＣＭＹＫ画像データＣＤ２を生成する（Ｓ２１２）。そして、プリンタ１０は、第１及び第２のＣＭＹＫ画像データＣＤ１，ＣＤ２の間の色差を示す色差指標値を算出する（Ｓ２１４）。
【００４８】
色差指標値が閾値以上であるということは、入力プロファイルＩＰ１を利用したＩＣＣ色変換の影響が大きいので、ＩＣＣ色変換を実行しなければ、元の色を正確に出力できない可能性が高いことを意味する。即ち、ＩＣＣ色変換を実行すると、元の色を正確に出力できる可能性が高いことを意味する。従って、プリンタ１０は、色差指標値が閾値以上であると判断する場合（Ｓ２２０でＹＥＳ）、即ち、入力プロファイルＩＰ１が有用であると判断する場合には、ＩＣＣ色変換によって得られる第１のＣＭＹＫ画像データＣＤ１を利用することを決定する（Ｓ２３０）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００４９】
色差指標値が閾値未満であるということは、入力プロファイルＩＰ１を利用したＩＣＣ色変換の影響が小さいので、ＩＣＣ色変換を実行しなくても、元の色を正確に出力できる可能性が高いことを意味する。特に、ＩＣＣ色変換が実行される場合には、不可能画素に対してガマットマッピングを利用した色変換が実行され得るので、元の色とは大きく異なる色を示す画素が生成される可能性が高まる。従って、プリンタ１０は、色差指標値が閾値未満であると判断する場合（Ｓ２２０でＮＯ）、即ち、入力プロファイルＩＰ１が有用でないと判断する場合には、テーブル色変換によって得られる第２のＣＭＹＫ画像データＣＤ２を利用することを決定する（Ｓ２３０）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００５０】
また、プリンタ１０は、入力プロファイルＩＰ１とオブジェクトデータＯＤ１との双方に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ２２０）。特に、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換処理の結果（即ち第１のＣＭＹＫ画像データＣＤ１）に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ２２０）。このために、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを適切に判断することができる。
【００５１】
（対応関係）
Ｓ２１０の処理が、「対象色変換処理」の一例である。オブジェクトデータＯＤ１内の全ての画素が、「Ｎ１個の画素」及び「対象データ」の一例である。第１のＣＭＹＫ画像データＣＤ１が、「第１の判断用データ」及び「第１種の変換済みデータ」の一例である。第２のＣＭＹＫ画像データＣＤ２が、「第２の判断用データ」及び「第２種の変換済みデータ」の一例である。
【００５２】
（第２実施例の変形例）
ＣＰＵ３２は、Ｓ２１４において、以下のようにして色差指標値を算出してもよい。即ち、ＣＰＵ３２は、まず、第２実施例と同様に、第１のＣＭＹＫ画像データ内の各画素のＣＭＹＫ座標値と、第２のＣＭＹＫ画像データ内の各画素のＣＭＹＫ座標値と、の間の距離を算出する。次いで、ＣＰＵ３２は、所定値以上の距離が算出された画素の個数を色差指標値として算出する。この場合、色差指標値が大きい程、色差が大きい。そして、ＣＰＵ３２は、Ｓ２２０において、第１のＣＭＹＫ画像データの画素数に所定パーセント（例えば５パーセント）を乗算することによって得られる値を閾値として利用する。
【００５３】
別の変形例では、ＣＰＵ３２は、所定値未満の距離が算出された画素の個数を色差指標値として算出する。この場合、色差指標値が大きい程、色差が小さい。そして、ＣＰＵ３２は、色差指標値が閾値未満である場合、即ち、色差が閾値以上である場合に、Ｓ２３０を実行し、色差指標値が閾値以上である場合、即ち、色差が閾値未満である場合に、Ｓ２４０を実行する。後述の第３〜第５実施例でも、本変形例と同様に色差指標値が利用されてもよい。
【００５４】
（第３実施例；図７）
本実施例では、ＣＰＵ３２は、図３のＳ３０の色変換処理において、図７の処理を実行する。Ｓ３００は、図４のＳ１００と同様である。Ｓ３００でＮＯの場合に実行されるＳ３４０は、図４のＳ１４０と同様であり、Ｓ３４０が終了すると、図７の処理が終了する。Ｓ３００でＹＥＳの場合には、Ｓ３１０に進む。
【００５５】
Ｓ３１０では、ＣＰＵ３２は、対象オブジェクトデータを利用して、複数個の座標値グループのそれぞれについて、当該座標値グループに対応するグループ画素の個数を算出する。図８に示されるように、ＲＧＢ色空間内において、複数個の座標値グループが予め決められている。具体的には、Ｒ値の全範囲（０〜２５５）が４個のサブ範囲（即ち、０〜６３、６４〜１２７、１２８〜１９１、１９２〜２５５）に区分されており、同様に、Ｇ値及びＢ値についても４個のサブ範囲に区分されている。そして、Ｒ値、Ｇ値、及び、Ｂ値のそれぞれの１個のサブ範囲の組合せが、１個の座標値グループである。例えば、Ｒ値（０〜６３）を示すサブ範囲と、Ｇ値（０〜６３）を示すサブ範囲と、Ｂ値（０〜６３）を示すサブ範囲と、の組合せが、第１グループである。この結果、合計で６４個（４×４×４個）の座標値グループが存在する。なお、変形例では、座標値グループの個数は６４よりも少なくてもよいし多くてもよい。図７のＳ３１０では、ＣＰＵ３２は、まず、対象オブジェクトデータ内の複数個の画素のうち、第１グループ内の座標値を示す画素の個数を算出することによって、第１グループに対応するグループ画素の個数を算出する。ＣＰＵ３２は、他の６３個の座標値グループのそれぞれについても、同様に、グループ画素の個数を算出する。
【００５６】
Ｓ３１２では、ＣＰＵ３２は、６４個の座標値グループの中から、Ｓ３１０で算出されたグループ画素の個数が最大である最大座標値グループを選択する。最大座標値グループは、対象オブジェクトデータ内で最も利用されている色範囲を示す座標値グループであると言える。
【００５７】
Ｓ３１４では、ＣＰＵ３２は、まず、対象オブジェクトデータ内の複数個の画素の中から、Ｓ３１２で選択された最大座標値グループ内の座標値を示す画素（以下では「対象画素」と呼ぶ）を特定する。そして、ＣＰＵ３２は、対象オブジェクトデータ内の複数個の画素のうちの一部である各対象画素に対してＩＣＣ色変換を実行して、ＣＭＹＫ座標値を示す各画素を含む第１の判断用データを生成する。ここで、ＣＰＵ３２は、第１の判断用データ内の各画素が、対象オブジェクトデータ内のどの位置の画素から得られたものであるのかを示す位置データをメモリ３４に記憶させておく。
【００５８】
Ｓ３１６では、ＣＰＵ３２は、Ｓ３１４で特定された各対象画素に対してテーブル色変換を実行して、ＣＭＹＫ座標値を示す各画素を含む第２の判断用データを生成する。また、ＣＰＵ３２は、Ｓ３１４と同様に位置データをメモリ３４に記憶させておく。
【００５９】
Ｓ３１８では、ＣＰＵ３２は、Ｓ３１４で生成された第１の判断用データ内の複数個の画素（即ちＣＭＹＫ座標値）と、Ｓ３１６で生成された第２の判断用データ内の複数個の画素（即ちＣＭＹＫ座標値）と、の間の色差を示す色差指標値を算出する。具体的には、ＣＰＵ３２は、図５のＳ２１４と同様に複数個の距離の和を算出し、複数個の距離の和を対象画素の個数（即ち第１の判断用データの画素数）で除算することによって、色差指標値を算出する。
【００６０】
Ｓ３２０では、ＣＰＵ３２は、Ｓ３１８で算出された色差指標値が閾値以上であるのか否かを判断する。ＣＰＵ３２は、色差指標値が閾値以上であると判断する場合（Ｓ３２０でＹＥＳ）にはＳ３３０に進み、色差指標値が閾値未満であると判断する場合（Ｓ３２０でＮＯ）にはＳ３３５に進む。
【００６１】
Ｓ３３０では、ＣＰＵ３２は、まず、対象オブジェクトデータ内の複数個の画素の中から、Ｓ３１４で特定された各対象画素とは異なる各画素（以下では「他の各画素」と呼ぶ）を特定する。即ち、他の各画素は、対象オブジェクトデータ内の複数個の画素のうち、最大座標値グループ以外の各座標値グループ内の座標値を示す画素である。そして、ＣＰＵ３２は、他の各画素に対してＩＣＣ色変換を実行して、ＣＭＹＫ座標値を示す各画素を含む第１の部分データを生成する。また、ＣＰＵ３２は、第１の部分データ内の各画素が、対象オブジェクトデータ内のどの位置の画素から得られたものであるのかを示す位置データをメモリ３４に記憶させておく。
【００６２】
Ｓ３３２では、ＣＰＵ３２は、Ｓ３１４で生成された第１の判断用データと、Ｓ３３０で生成された第１の部分データと、を利用して、第１のＣＭＹＫ画像データを生成する。具体的には、ＣＰＵ３２は、Ｓ３１４で記憶された位置データとＳ３３０で記憶された位置データとに従って、第１の判断用データ内の各画素と第１の部分データ内の各画素とを配置することによって、第１のＣＭＹＫ画像データを生成する。Ｓ３３２が終了すると、図７の処理が終了する。
【００６３】
Ｓ３３５では、ＣＰＵ３２は、Ｓ３３０と同様に他の各画素を特定し、他の各画素に対してテーブル色変換を実行して、ＣＭＹＫ座標値を示す各画素を含む第２の部分データを生成する。また、ＣＰＵ３２は、Ｓ３３０と同様に位置データをメモリ３４に記憶させておく。
【００６４】
Ｓ３３７では、ＣＰＵ３２は、Ｓ３３２と同様に、Ｓ３１６で生成された第２の判断用データと、Ｓ３３５で生成された第２の部分データと、を利用して、第２のＣＭＹＫ画像データを生成する。Ｓ３３７が終了すると、図７の処理が終了する。
【００６５】
（処理の流れの一例；図８）
次いで、図８を参照して、図７の処理によって実現される具体例を説明する。プリンタ１０は、オブジェクトデータＯＤ１を利用して、各座標値グループに対応するグループ画素の個数を算出し（Ｓ３１０）、最大座標値グループとして第１グループを選択する（Ｓ３１２）。次いで、プリンタ１０は、オブジェクトデータＯＤ１内の複数個の画素のうち、第１グループ内の座標値を示す各対象画素に対してＩＣＣ色変換を実行して、第１の判断用データＤＤ１を生成する（Ｓ３１４）。また、プリンタ１０は、各対象画素に対してテーブル色変換を実行して、第２の判断用データＤＤ２を生成する（Ｓ３１６）。そして、プリンタ１０は、第１及び第２の判断用データＤＤ１，ＤＤ２の間の色差を示す色差指標値を算出し（Ｓ３１８）、色差指標値と閾値とを比較する（Ｓ３２０）。このように、本実施例では、プリンタ１０は、オブジェクトデータＯＤ１の一部である各対象画素のみに対してＩＣＣ色変換及びテーブル色変換を実行して、色差指標値を算出する。このために、プリンタ１０は、オブジェクトデータＯＤ１に含まれる全ての画素に対してＩＣＣ色変換及びテーブル色変換を実行して色差指標値を算出する構成と比べると、入力プロファイルＩＰ１が有用であるのか否かを迅速に判断することができる。特に、上記の対象画素は、対象オブジェクトデータ内で最も利用されている色範囲に含まれる画素である。従って、プリンタ１０は、当該色範囲内の色を正確に出力するための適切な判断を実行することができる。
【００６６】
プリンタ１０は、色差指標値が閾値以上であると判断する場合（Ｓ３２０でＹＥＳ）、即ち、入力プロファイルＩＰ１が有用であると判断する場合には、オブジェクトデータＯＤ１内の複数個の画素のうち、第１グループ以外の各グループ内の座標値を示す各画素（即ち「他の各画素」）に対してＩＣＣ色変換を実行して、第１の部分データＰＤ１を生成する（Ｓ３３０）。ここで、プリンタ１０は、各対象画素に対してＩＣＣ色変換を実行しないので、処理を迅速に実行することができる。そして、プリンタ１０は、第１の判断用データＤＤ１と第１の部分データＰＤ１とを利用して、第１のＣＭＹＫ画像データＣＤ１を生成する（Ｓ３３２）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００６７】
一方、プリンタ１０は、色差指標値が閾値未満であると判断する場合（Ｓ３２０でＮＯ）、即ち、入力プロファイルＩＰ１が有用でないと判断する場合には、オブジェクトデータＯＤ１内の複数個の画素のうちの他の各画素に対してテーブル色変換を実行して、第２の部分データＰＤ２を生成する（Ｓ３３５）。ここで、プリンタ１０は、各対象画素に対してテーブル色変換を実行しないので、処理を迅速に実行することができる。そして、プリンタ１０は、第２の判断用データＤＤ２と第２の部分データＰＤ２とを利用して、第２のＣＭＹＫ画像データＣＤ２を生成する（Ｓ３３７）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００６８】
また、プリンタ１０は、入力プロファイルＩＰ１とオブジェクトデータＯＤ１との双方に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ３２０）。特に、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換処理の結果（即ち第１の判断用データＤＤ１）に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ３２０）。このために、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを適切に判断することができる。
【００６９】
（対応関係）
Ｓ３１４の処理が、「対象色変換処理」の一例である。オブジェクトデータＯＤ１内の各対象画素が、「Ｎ１個の画素」及び「対象データ」の一例である。オブジェクトデータＯＤ１内の他の各画素が、「Ｎ２個の画素」の一例である。
【００７０】
（第３実施例の変形例）
ＣＰＵ３２は、図７のＳ３３０及びＳ３３２に代えて、対象オブジェクトデータ内の全ての画素に対してＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データを生成してもよい。また、ＣＰＵ３２は、Ｓ３３５及びＳ３３７に代えて、対象オブジェクトデータ内の全ての画素に対してテーブル色変換を実行して、第２のＣＭＹＫ画像データを生成してもよい。本変形例では、ＣＰＵ３２は、Ｓ３１４及びＳ３１６において、位置データをメモリ３４に記憶させずに済む。
【００７１】
（第４実施例；図９）
本実施例では、ＣＰＵ３２は、図３のＳ３０の色変換処理において、図９の処理を実行する。Ｓ４００は、図４のＳ１００と同様である。Ｓ４００でＮＯの場合に実行されるＳ４４０は、図４のＳ１４０と同様であり、Ｓ４４０が終了すると、図９の処理が終了する。Ｓ４００でＹＥＳの場合に実行されるＳ４１０，Ｓ４１２は、図７のＳ３１０，Ｓ３１２と同様である。
【００７２】
Ｓ４１４では、ＣＰＵ３２は、最大座標値グループを構成する全てのＲＧＢ座標値に対してＩＣＣ色変換を実行して、複数個のＣＭＹＫ座標値を含む第１の判断用データを生成する。Ｓ４１６では、ＣＰＵ３２は、最大座標値グループを構成する全てのＲＧＢ座標値に対してテーブル色変換を実行して、複数個のＣＭＹＫ座標値を含む第２の判断用データを生成する。Ｓ４１８では、ＣＰＵ３２は、Ｓ４１４で生成された第１の判断用データ内の複数個のＣＭＹＫ座標値と、Ｓ４１６で生成された第２の判断用データ内の複数個のＣＭＹＫ座標値と、の間の色差を示す色差指標値を算出する。具体的には、ＣＰＵ３２は、図５のＳ２１４と同様に複数個の距離の和を算出し、複数個の距離の和を最大座標値グループ内のＲＧＢ座標値の個数で除算することによって、色差指標値を算出する。
【００７３】
Ｓ４２０では、ＣＰＵ３２は、Ｓ４１８で算出された色差指標値が閾値以上であるのか否かを判断する。ＣＰＵ３２は、色差指標値が閾値以上であると判断する場合（Ｓ４２０でＹＥＳ）には、Ｓ４３０において、図５のＳ２１０と同様の処理を実行して、第１のＣＭＹＫ画像データを生成し、色差指標値が閾値未満であると判断する場合（Ｓ４２０でＮＯ）には、Ｓ４３５において、図９のＳ４４０と同様の処理を実行して、第２のＣＭＹＫ画像データを生成する。Ｓ４３０又はＳ４３５が終了すると、図９の処理が終了する。
【００７４】
（処理の流れの一例；図１０）
次いで、図１０を参照して、図９の処理によって実現される具体例を説明する。プリンタ１０は、最大座標値グループとして第１グループを選択する場合（Ｓ４１２）に、最大座標値グループを構成する各ＲＧＢ座標値に対してＩＣＣ色変換を実行して、第１の判断用データＤＤ１を生成する（Ｓ４１４）。また、プリンタ１０は、最大座標値グループを構成する各ＲＧＢ座標値に対してテーブル色変換を実行して、第２の判断用データＤＤ２を生成する（Ｓ４１６）。そして、プリンタ１０は、第１及び第２の判断用データＤＤ１，ＤＤ２の間の色差を示す色差指標値を算出し（Ｓ４１８）、色差指標値と閾値とを比較する（Ｓ４２０）。最大座標値グループを構成するＲＧＢ座標値の個数は、通常、オブジェクトデータＯＤ１の画素数よりも少ない。このために、プリンタ１０は、オブジェクトデータＯＤ１に含まれる全ての画素に対してＩＣＣ色変換及びテーブル色変換を実行して色差指標値を算出する構成と比べると、色差指標値を迅速に算出することができる。このために、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを迅速に判断することができる。特に、最大座標値グループは、対象オブジェクトデータ内で最も利用されている色範囲に含まれる画素である。従って、プリンタ１０は、当該色範囲内の色を正確に出力するための適切な判断を実行することができる。
【００７５】
プリンタ１０は、色差指標値が閾値以上であると判断する場合（Ｓ４２０でＹＥＳ）、即ち、入力プロファイルＩＰ１が有用であると判断する場合には、オブジェクトデータＯＤ１に対してＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データＣＤ１を生成する（Ｓ４３０）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００７６】
一方、プリンタ１０は、色差指標値が閾値未満であると判断する場合（Ｓ４２０でＮＯ）、即ち、入力プロファイルＩＰ１が有用でないと判断する場合には、オブジェクトデータＯＤ１に対してテーブル色変換を実行して、第２のＣＭＹＫ画像データＣＤ２を生成する（Ｓ４３５）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００７７】
また、プリンタ１０は、入力プロファイルＩＰ１とオブジェクトデータＯＤ１との双方に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ４２０）。特に、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換処理の結果（即ち第１の判断用データＤＤ１）に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ４２０）。このために、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを適切に判断することができる。
【００７８】
（対応関係）
Ｓ４１４の処理が、「対象色変換処理」の一例である。最大座標値グループ内の全てのＲＧＢ座標値が、「Ｍ個の画素」及び「対象データ」の一例である。
【００７９】
（第４実施例の変形例）
ＣＰＵ３２は、図９のＳ４１４において、最大座標値グループを構成する一部のＲＧＢ座標値に対してＩＣＣ色変換を実行して、第１の判断用データを生成し、Ｓ４１６において、当該一部のＲＧＢ座標値に対してＩＣＣ色変換を実行して、第２の判断用データを生成してもよい。本変形例によると、プリンタ１０は、色差指標値をより迅速に算出することができる。本変形例では、上記の一部のＲＧＢ座標値が、「Ｍ個の画素」及び「対象データ」の一例である。
【００８０】
（第５実施例；図１１）
本実施例では、ＣＰＵ３２は、図３のＳ３０の色変換処理において、図１１の処理を実行する。Ｓ５００は、図４のＳ１００と同様である。Ｓ５００でＹＥＳの場合にはＳ５１０に進み、Ｓ５００でＮＯの場合にはＳ５４０に進む。
【００８１】
Ｓ５１０では、ＣＰＵ３２は、所定テーブルＰＴ内の複数個のＲＧＢ座標値（即ち全てのＲＧＢ座標値）に対してＩＣＣ色変換を実行して、複数個のＣＭＹＫ座標値を生成する。Ｓ５１２では、ＣＰＵ３２は、所定テーブルＰＴ内の複数個のＲＧＢ座標値と、Ｓ５１０で生成された複数個のＣＭＹＫ座標値と、が対応付けられている対応テーブルを生成する。Ｓ５１４では、ＣＰＵ３２は、所定テーブルＰＴ内の複数個のＣＭＹＫ座標値と、Ｓ５１２で生成された対応テーブル内の複数個のＣＭＹＫ座標値と、の間の色差を示す色差指標値を算出する。具体的には、ＣＰＵ３２は、図５のＳ２１４と同様に複数個の距離の和を算出し、複数個の距離の和を所定テーブルＰＴ内のＣＭＹＫ座標値の個数で除算することによって、色差指標値を算出する。
【００８２】
Ｓ５２０では、ＣＰＵ３２は、Ｓ５１８で算出された色差指標値が閾値以上であるのか否かを判断する。ＣＰＵ３２は、色差指標値が閾値以上であると判断する場合（Ｓ５２０でＹＥＳ）には、Ｓ５３０において、対象オブジェクトデータに対して、Ｓ５１２で生成された対応テーブルを利用したＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データを生成する。一方、ＣＰＵ３２は、色差指標値が閾値未満であると判断する場合（Ｓ５２０でＮＯ）には、Ｓ５４０において、図４のＳ１４０と同様の処理を実行して、第２のＣＭＹＫ画像データを生成する。Ｓ５３０又はＳ５４０が終了すると図１１の処理が終了する。
【００８３】
（処理の流れの一例）
次いで、図１１の処理によって実現される具体例を説明する。プリンタ１０は、所定テーブルＰＴ内の各ＲＧＢ座標値に対して、入力プロファイルＩＰ１と各出力プロファイルＯＰ１，ＯＰ２を利用したＩＣＣ色変換を実行して、各ＣＭＹＫ座標値を生成し（Ｓ５１０）、当該各ＲＧＢ座標値と当該各ＣＭＹＫ座標値とが対応付けられている対応テーブルＣＴを生成する（Ｓ５１２）。そして、プリンタ１０は、所定テーブルＰＴ内の各ＣＭＹＫ座標値と対応テーブルＣＴ内の各ＣＭＹＫ座標値との間の色差を示す色差指標値を算出し（Ｓ５１４）、色差指標値と閾値とを比較する（Ｓ５２０）。このように、本実施例では、プリンタ１０は、オブジェクトデータＯＤ１に基づかずに、入力プロファイルＩＰ１が有用であるのかを判断するので、当該判断を迅速に実行し得る。
【００８４】
プリンタ１０は、色差指標値が閾値以上であると判断する場合（Ｓ５２０でＹＥＳ）、即ち、入力プロファイルＩＰ１が有用であると判断する場合には、オブジェクトデータＯＤ１に対して対応テーブルＣＴを利用したＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データＣＤ１を生成する（Ｓ５３０）。これにより、プリンタ１０は、高品質の画像を印刷することができる。特に、プリンタ１０は、対応テーブルＣＴを利用したＩＣＣ色変換を実行するので、オブジェクトデータＯＤ１に対して入力プロファイルＩＰ１及び各出力プロファイルＯＰ１，ＯＰ２を利用した各色変換を順次実行する構成と比べると、ＩＣＣ色変換を迅速に実行することができる。
【００８５】
一方、プリンタ１０は、色差指標値が閾値未満であると判断する場合（Ｓ５２０でＮＯ）、即ち、入力プロファイルＩＰ１が有用でないと判断する場合には、オブジェクトデータＯＤ１に対して所定テーブルＰＴを利用したテーブル色変換を実行して、第２のＣＭＹＫ画像データＣＤ２を生成する（Ｓ５４０）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００８６】
また、プリンタ１０は、入力プロファイルＩＰ１を利用した色変換処理の結果（即ちＳ５１０で生成される各ＣＭＹＫ座標値）に基づいて、入力プロファイルＩＰ１が有用であるのか否かを判断する（Ｓ４２０）。このために、プリンタ１０は、入力プロファイルＩＰ１が有用であるのか否かを適切に判断することができる。
【００８７】
（対応関係）
Ｓ５１０の処理が、「対象色変換処理」の一例である。所定テーブルＰＴ内の全てのＲＧＢ座標値が、「Ｌ個の第１座標値」及び「対象データ」の一例である。所定テーブルＰＴ内の全てのＣＭＹＫ座標値、対応テーブルＣＴ内の全てのＣＭＹＫ座標値が、それぞれ、「Ｌ個の第２座標値」、「Ｌ個の第３座標値」の一例である。
【００８８】
（第５実施例の変形例）
ＣＰＵ３２は、Ｓ５３０に代えて、図５のＳ２１０を実行して、第１のＣＭＹＫ画像データを生成してもよい。この場合、Ｓ５１２の処理を省略可能である。特に、本変形例では、ＣＰＵ３２は、Ｓ５１０において、所定テーブルＰＴ内の全てのＲＧＢ座標値に対してＩＣＣ色変換を実行しなくてもよい。即ち、ＣＰＵ３２は、所定テーブルＰＴ内の一部のＲＧＢ座標値のみに対してＩＣＣ色変換を実行して各ＣＭＹＫ座標値を生成し、所定テーブルＰＴにおいて当該一部のＲＧＢ座標値に対応付けられている各ＣＭＹＫ座標値と、生成済みの各ＣＭＹＫ座標値と、の間の色差を示す色差指標値を算出してもよい。
【００８９】
（第６実施例；図１２）
本実施例では、ＣＰＵ３２は、図３のＳ３０の色変換処理において、図１２の処理を実行する。Ｓ６００は、図４のＳ１００と同様である。Ｓ６００でＹＥＳの場合にはＳ６１０に進み、Ｓ６００でＮＯの場合にはＳ６４０に進む。
【００９０】
Ｓ６１０では、ＣＰＵ３２は、対象入力プロファイルに含まれる無彩色を示す各ＲＧＢ座標値を特定する。具体的には、ＣＰＵ３２は、対象入力プロファイル内の複数個のＲＧＢ座標値の中から、Ｒ値、Ｇ値、及び、Ｂ値が等しい各ＲＧＢ座標値（例えば、Ｒ＝０、Ｇ＝０、Ｂ＝０を示す座標値）を特定することによって、無彩色を示す各ＲＧＢ座標値を特定する。
【００９１】
Ｓ６１２では、ＣＰＵ３２は、対象入力プロファイル内の複数個のＬａｂ座標値の中から、Ｓ６１０で特定された各ＲＧＢ座標値に対応付けられている各Ｌａｂ座標値を特定する。
【００９２】
Ｓ６１４では、ＣＰＵ３２は、Ｓ６１２で特定された各Ｌａｂ座標値の中から、無彩色を示すＬａｂ座標値の個数を特定する。具体的には、ＣＰＵ３２は、Ｓ６１２で特定された各Ｌａｂ座標値の中から、ａ値及びｂ値がゼロを示すＬａｂ座標値をカウントすることによって、無彩色を示すＬａｂ座標値の個数を特定する。
【００９３】
Ｓ６２０では、ＣＰＵ３２は、Ｓ６１４で特定された個数が第１の閾値未満であるのか否かを判断する。ここで、第１の閾値は、Ｓ６１０で特定されたＲＧＢ座標値の個数に等しい値である。即ち、Ｓ６２０では、ＣＰＵ３２は、対象入力プロファイルにおいて、無彩色を示す全てのＲＧＢ座標値が、無彩色を示すＬａｂ座標値に対応付けられているのか否かを判断する。ＣＰＵ３２は、特定済みの個数が第１の閾値未満であると判断する場合（Ｓ６２０でＹＥＳ）、即ち、対象入力プロファイルにおいて、無彩色を示す少なくとも１個のＲＧＢ座標値が、無彩色とは異なる色を示すＬａｂ座標値に対応付けられていると判断する場合には、Ｓ６３０において、図５のＳ２１０と同様の処理を実行して、第１のＣＭＹＫ画像データを生成する。一方、ＣＰＵ３２は、特定済みの個数が第１の閾値以上であると判断する場合（より具体的には特定済みの個数が第１の閾値に等しい場合；Ｓ６２０でＮＯ）、即ち、無彩色を示す全てのＲＧＢ座標値が無彩色を示すＬａｂ座標値に対応付けられていると判断する場合には、Ｓ６４０において、図４のＳ１４０と同様の処理を実行して、第２のＣＭＹＫ画像データを生成する。Ｓ６３０又はＳ６４０が終了すると、図１２の処理が終了する。
【００９４】
以下では、無彩色を無彩色とは異なる色に変換するためのデータが存在することを「無彩色軸がずれている」と表現する。対象入力プロファイルにおいて、無彩色を示す少なくとも１個のＲＧＢ座標値が、無彩色とは異なる色を示すＬａｂ座標値に対応付けられている場合（Ｓ６２０でＹＥＳ）には、対象入力プロファイルの無彩色軸がずれている。このために、ＩＣＣ色変換を実行しなければ、対象オブジェクトデータで定義されている無彩色を正確に出力できない可能性が高い。即ち、ＩＣＣ色変換を実行すると、無彩色を正確に出力できる可能性が高い。従って、プリンタ１０は、Ｓ６２０でＹＥＳと判断する場合、即ち、対象入力プロファイルが有用であると判断する場合には、対象オブジェクトデータに対してＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データを生成する（Ｓ６３０）。これにより、プリンタ１０は、高品質の画像を印刷することができる。
【００９５】
一方、対象入力プロファイルにおいて、無彩色を示す全てのＲＧＢ座標値が、無彩色を示すＬａｂ座標値に対応付けられている場合（Ｓ６２０でＮＯ）には、対象入力プロファイルの無彩色軸がずれていない。そして、所定テーブルＰＴでは、無彩色軸がずれていない。このために、ＩＣＣ色変換を実行しなくても、テーブル色変換を実行すれば、対象オブジェクトデータで定義されている無彩色を正確に出力できる可能性が高い。従って、プリンタ１０は、Ｓ６２０でＮＯと判断する場合、即ち、対象入力プロファイルが有用でないと判断する場合には、対象オブジェクトデータに対してテーブル色変換を実行して、第２のＣＭＹＫ画像データを生成する（Ｓ６４０）。これにより、プリンタ１０は、対象オブジェクトデータに対して対象入力プロファイル及び各出力プロファイルＯＰ１，ＯＰ２を利用した各色変換を順次実行する構成（即ちＳ６３０）と比べると、色変換を迅速に実行することができる。
【００９６】
また、プリンタ１０は、対象オブジェクトデータに基づかずに、対象入力プロファイルが有用であるのかを判断するので（Ｓ６２０）、当該判断を迅速に実行し得る。特に、プリンタ１０は、対象入力プロファイルを利用した色変換処理を実行せずに、対象入力プロファイルが有用であるのか否かを判断するので（Ｓ６２０）、当該判断を迅速に実行し得る。
【００９７】
（対応関係）
対象入力プロファイル内の複数個のＲＧＢ座標値、複数個のＬａｂ座標値が、それぞれ、「複数個の基準座標値」、「複数個の特定座標値」の一例である。
【００９８】
（第６実施例の変形例）
ＣＰＵ３２は、Ｓ６２０において、以下のようにして第１の閾値を決定してもよい。例えば、ＣＰＵ３２は、Ｓ６１０で特定された無彩色を示すＲＧＢ座標値の個数に所定の係数（例えば０．５）を乗算したり、当該個数から所定値を減算したりして、第１の閾値を決定する。また、別の変形例では、例えば、ＣＰＵ３２は、予め決められている固定値である第１の閾値を利用してもよい。
【００９９】
（第７実施例；図１２）
本実施例では、Ｓ６２０でＮＯと判断される場合にＳ７１０に進む点が、第６実施例とは異なる。Ｓ７１０では、ＣＰＵ３２は、対象オブジェクトデータに含まれる無彩色画素の個数を特定する。ここで、無彩色画素は、無彩色及び無彩色の近くの色を含む所定の無彩色範囲内の座標値を示す画素である。具体的には、ＣＰＵ３２は、対象オブジェクトデータ内の複数個の画素の中から、上記の所定の無彩色範囲内の座標値を示す各画素を特定することによって、無彩色画素の個数を特定する。なお、変形例では、所定の無彩色範囲は、無彩色の近くの色を含んでおらず、無彩色のみを含んでいてもよい。
【０１００】
Ｓ７２０では、ＣＰＵ３２は、Ｓ７１０で特定された無彩色画素の個数が第２の閾値未満であるのか否かを判断する。即ち、ＣＰＵ３２は、対象オブジェクトデータにおいて無彩色の利用率が低いのか否かを判断する。第２の閾値は、本実施例では、対象オブジェクトデータの画素数に所定パーセント（例えば５０％）を乗算することによって得られる値であるが、変形例では、予め決められている固定値であってもよい。ＣＰＵ３２は、無彩色画素の個数が第２の閾値未満である場合（Ｓ７２０でＹＥＳ）、即ち、対象オブジェクトデータにおいて無彩色の利用率が低い場合には、Ｓ６３０に進む。無彩色の利用率が低い場合（Ｓ７２０でＹＥＳ）には、対象オブジェクトデータにおいて無彩色とは異なる色が比較的多く利用されている。この場合、当該異なる色を正確に出力するために、ＩＣＣ色変換が実行されることが好ましい。従って、プリンタ１０は、Ｓ７２０でＹＥＳと判断する場合、即ち、対象入力プロファイルが有用であると判断する場合には、対象オブジェクトデータに対してＩＣＣ色変換を実行して、第１のＣＭＹＫ画像データを生成する（Ｓ６３０）。これにより、プリンタ１０は、高品質の画像を印刷することができる
【０１０１】
一方、ＣＰＵ３２は、無彩色画素の個数が第２の閾値以上である場合（Ｓ７２０でＮＯ）、即ち、対象オブジェクトデータにおいて無彩色の利用率が高い場合には、Ｓ６４０に進む。無彩色の利用率が高い場合（Ｓ７２０でＮＯ）には、対象オブジェクトデータにおいて無彩色とは異なる色があまり利用されていないので、ＩＣＣ色変換を実行する必要性が低い。従って、プリンタ１０は、Ｓ７２０でＮＯと判断する場合、即ち、対象入力プロファイルが有用でないと判断する場合には、対象オブジェクトデータに対してテーブル色変換を実行して、第２のＣＭＹＫ画像データを生成する（Ｓ６４０）。これにより、プリンタ１０は、色変換を迅速に実行することができる。
【０１０２】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。変形例を以下に列挙する。
【０１０３】
（変形例１）上記の実施例では、ＣＰＵ３２は、ネットワークインターフェース１６を介して、端末装置５０からＰＤＦファイル１００を取得する。これに代えて、ＣＰＵ３２は、例えば、メモリデバイスが着脱可能に装着されるメモリインターフェースを介して、メモリデバイスからＰＤＦファイル１００を取得してもよい。また、例えば、プリンタ１０に代えてＰＣが「画像処理装置」の一例である場合には、ＰＣのＣＰＵは、ＰＣのメモリからＰＤＦファイル１００を読み出すことによって、ＰＤＦファイル１００を取得してもよい。
【０１０４】
（変形例２）メモリ３４は、第１及び第２の出力プロファイルＯＰ１，ＯＰ２に代えて、Ｌａｂ色空間内の座標値をＣＭＹＫ色空間内の座標値に変換するためのデータを含む１個の出力プロファイルを格納していてもよい。この場合、ＣＰＵ３２は、対象入力プロファイルと上記の１個の出力プロファイルとを利用したＩＣＣ色変換を実行する。本変形例では、上記の１個の出力プロファイルが、「出力側プロファイル」の一例である。
【０１０５】
（変形例３）ＣＰＵ３２は、標準の色空間であるＲＧＢ色空間内の座標値を示す複数個の画素を含むＲＧＢ画像データを生成する場合に、当該ＲＧＢ画像データを表示部１４に供給して、当該ＲＧＢ画像データによって表わされる画像を表示部１４に表示させてもよい。本変形例では、表示部１４が、「出力部」の一例である。また、標準の色空間であるＲＧＢ色空間が、「第２の色空間」の一例である。
【０１０６】
（変形例４）ＣＰＵ３２は、対象入力プロファイルが有用であるのか否かを判断するために、上記の複数個の実施例を組み合わせてもよい。例えば、ＣＰＵ３２は、図１２のＳ６００〜Ｓ６２０を実行し、Ｓ６２０でＮＯの場合にＳ６４０に進み、Ｓ６２０でＹＥＳの場合に図４のＳ１１０〜Ｓ１４０を実行してもよい。この場合、図１２のＳ６２０と図４のＳ１２０とが、「判断」の一例である。このように、複数個の実施例を組み合わせる場合には、処理負荷が低い判断処理を先に実行し、処理負荷が高い判断処理を後に実行するのが好ましい。例えば、第３及び第４実施例は、座標値グループという概念が利用されるので、処理負荷が比較的に低い。従って、例えば、ＣＰＵ３２は、第４実施例の図９のＳ４００〜Ｓ４２０を実行し、Ｓ４２０でＮＯの場合にＳ４３５に進み、Ｓ４２０でＹＥＳの場合に第１実施例の図４のＳ１１０〜Ｓ１４０を実行してもよい。
【０１０７】
（変形例５）ＣＰＵ３２は、ＰＤＦファイルに代えて、他の形式（例えばＪＰＥＧ等）のファイルを取得する場合に、上記の各実施例と同様の処理を実行してもよい。即ち、「対象ファイル」は、オブジェクトデータと入力側プロファイルとを含む形式であれば、どのような形式のファイルであってもよい。
【０１０８】
（変形例６）「画像処理装置」は、プリンタ１０でなくてもよく、例えば、ＰＣ、サーバ、携帯端末等の他のデバイスであってもよい。例えば、ＰＣは、上記の実施例と同様の処理を実行して印刷データを生成し、印刷データをプリンタに送信してもよい。この場合、プリンタが「出力部」の一例である。
【０１０９】
（変形例７）上記の各実施例の全ての処理がＣＰＵ３２によって実行されなくてもよく、他のデバイスによって実行されてもよい。例えば、ＣＰＵ３２は、図３のＳ１０を実行すると、ＰＤＦファイル１００を第１のサーバに送信してもよい。この場合、第１のサーバが、図３のＳ２０〜Ｓ５０の処理を実行し、印刷データをプリンタ１０に送信する。そして、ＣＰＵ３２は、Ｓ６０を実行する。本変形例では、プリンタ１０と第１のサーバとの組合せが、「画像処理装置」の一例である。また、別の変形例では、上記の第１のサーバがＳ２０〜Ｓ４０を実行し、第１のサーバとは別体に構成されている第２のサーバがＳ５０を実行してもよい。本変形例では、プリンタ１０と第１及び第２のサーバとの組合せが、「画像処理装置」の一例である。
【０１１０】
（変形例８）上記の各実施例では、ＣＰＵ３２がプログラム３６に従って処理を実行することによって、図２〜図１２の各処理が実現される。これに代えて、これらの各処理のうちの少なくとも１つの処理は、論理回路等のハードウェアによって実現されてもよい。
【０１１１】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１１２】
２：通信システム、１０：プリンタ、１２：操作部、１４：表示部、１６：ネットワークインターフェース、１８：印刷エンジン、３０：制御部、３２：ＣＰＵ、３４：メモリ、３４ａ：不揮発性領域、３４ｂ：揮発性領域、３６：プログラム、５０：端末装置、１００：ＰＤＦファイル、ＣＤ１，ＣＤ２：ＣＭＹＫ画像データ、ＤＤ１，ＤＤ２：判断用データ、ＣＴ：対応テーブル、ＩＰ１，ＩＰ２：入力プロファイル、ＬＤ１：Ｌａｂ画像データ、ＯＤ１，ＯＤ２：オブジェクトデータ、ＯＰ１，ＯＰ２：出力プロファイル、ＰＤ１，ＰＤ２：部分データ、ＰＴ：所定テーブル、Ｑ１〜ＱＭ：Ｌａｂ座標値、ＲＤ１：ＲＧＢ画像データ
【図１】
0006682867.tif 000002
【図２】
0006682867.tif 000003
【図３】
0006682867.tif 000004
【図４】
0006682867.tif 000005
【図５】
0006682867.tif 000006
【図６】
0006682867.tif 000007
【図７】
0006682867.tif 000008
【図８】
0006682867.tif 000009
【図９】
0006682867.tif 000010
【図１０】
0006682867.tif 000011
【図１１】
0006682867.tif 000012
【図１２】
0006682867.tif 000013