A.第1実施例:
A−1.画像処理システム1000の構成
図1は、第1実施例における画像処理システムの構成を示すブロック図である。画像処理システム1000は、色変換テーブル生成装置としてのサーバ100と、クライアントとしての複合機(周辺機器)200と、計算機300と、を備えている。サーバ100と複合機200は、LAN(Local Area Network)500およびインターネット700を介して、通信可能に接続されている。複合機200と計算機300とは、LAN500を介して、通信可能に接続されている。
サーバ100は、CPU110と、内部記憶装置(例えば、ROM、RAM)や外部記憶装置(例えば、ハードディスクドライブ)などの記憶装置140と、インターネット700などのネットワークに接続するためのインタフェースを含む通信部130と、を備えている。記憶装置140は、プロファイル格納部142を備えている。また、記憶装置140には、各機能をCPU110に実現させるコンピュータプログラム(図示省略)が格納されている。このコンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録された形態で提供され得る。この記録媒体は、CD−ROM、USBストレージなどの着脱可能な記録媒体、ROMやRAMなどの計算機の内部記憶装置、ハードディスクドライブなどの計算機に接続される外部記憶装置を含む。
CPU110は、コンピュータプログラムを実行することにより、サーバ100の全体を制御可能であり、取得部N10と、プロファイル生成部N20と、出力部N30として機能する。これらの各機能部N10〜N30が行う処理については後述する。
複合機200は、CPU210と、内部記憶装置や外部記憶装置などの記憶装置240と、ネットワークに接続するためのインタフェースを含む通信部250と、操作パネルや各種のボタンを含む操作部260と、インクジェット式のプリンタ部270と、フラットベッド式のスキャナ部280と、を備えている。
プリンタ部270は、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)のインクを用いて、印刷媒体上にドットを形成することによって、画像の印刷を行う。
スキャナ部280は、原稿を載置するためのプラテンガラス20と、CIS(Contact Image Sensor)方式のイメージセンサ10とを備えている。イメージセンサ10は、CMOSなどの複数の光電変換素子11と、レンズ12と、赤緑青の各色の発光ダイオード(LED)を含む光源13とを備えている。複数の光電変換素子11は、主走査方向に一列に並んで配置されている。主走査方向は、副走査方向(図1)と垂直な方向であって、プラテンガラス20の原稿が載置される面と平行な方向(図1における手前から奥に向かう方向)である。
イメージセンサ10は、図示しないステップモータの動力によって、副走査方向(図1)に沿った往復移動(副走査)を行うように構成されている。イメージセンサ10は、原稿の一端から他端に向かって副走査を行いつつ、光源13を点灯させ、原稿からの反射光の強度を、光電変換素子11を用いて電気信号として出力する。このとき、光源13では、赤色、緑色、青色のLEDが順次に点灯制御される。これら3色のLEDの1回ずつの点灯で、主走査方向に沿った1ライン分の画素のスキャナRGB値に相当する電気信号が出力される。スキャナ部280は、イメージセンサ10が出力する電気信号に基づいて、画素データがスキャナRGB値で表された画像データを生成する。生成される画像データをスキャンデータとも呼ぶ。ここで、スキャナRGB値は、光源13のLEDや光電変換素子11の特性などスキャナ部280固有の特性に依存するスキャナRGB色空間における表色値である。
記憶装置240は、プロファイル格納部242と、PDF/Aファイル格納部244と、テスト画像データ格納246と、を備える。プロファイル格納部242には、ICCプロファイルが格納される。ICCプロファイルを以下では、単にプロファイルとも呼ぶ。プロファイル格納部242に格納されるICCプロファイルは、後述するプロファイル補正処理時に基準となるICCプロファイルであり、基準プロファイルとも呼ぶ。PDF/Aファイル格納部244には、PDF/Aファイルが格納される。テスト画像データ格納246には、テスト画像データTSD、および、テスト画像データTSDを編集した編集データHSDが格納される。このテスト画像データTSDおよび編集データHSDについては後述する。また、記憶装置240は、各種のプログラムやデータを格納するプログラム格納部(図示省略)を備える。これらプログラムやデータは、コンピュータ読み取り可能な記録媒体に記録された形態で提供され得る。
PDF/Aファイルは、国際標準化機構(ISO)におけるISO 190005に準拠するファイル形式であり、PDF形式で表される1つ以上のページデータに、プロファイルが添付されたファイルである。この場合、プロファイルは、例えば、ページデータのヘッダやフッダ部分に挿入される。
CPU210は、記憶装置240に格納されたプログラムを実行することにより、複合機200の全体を制御可能であり、テスト画像データ生成部M5と、取得部M10と、格納処理部M20と、PDF/Aファイル生成部M30と、出力部M40と、プロファイル生成部M45として機能する。テスト画像データ生成部M5は、テスト画像データおよび編集データHSDを生成する。取得部M10は、サーバ100で生成される新プロファイルを取得する。格納処理部M20は、新プロファイルを新たな基準プロファイルとしてプロファイル格納部242に格納する。PDF/Aファイル生成部M30は、PDF/Aファイルを生成する。出力部M40は、テスト画像データ格納246に格納されるテスト画像データをサーバ100に出力したり、PDF/Aファイル格納部244に格納されたPDF/Aファイルを外部装置(計算機300やサーバ100)に出力する。これらCPU210の機能部の詳細は、後述のプロファイル更新処理またはPDF/Aファイル出力処理で説明する。
計算機300は、CPU310と、記憶装置340とを備える。CPU310は、テスト画像データ生成部L5と、取得部L10と、格納処理部L20と、PDF/Aファイル生成部L30と、出力部L40と、プロファイル生成部L45として機能する。記憶装置340は、プロファイル格納部342と、PDF/Aファイル格納部344と、テスト画像データ格納346と、を備える。
図2は、ICCプロファイルについて説明する図である。プロファイルは、色変換テーブルIHTと、インプットテーブル(図示せず)と、アウトプットテーブル(図示せず)と、を備えている。色変換テーブルIHTは、スキャナRGB値をLab値に変換するためのテーブルである。Lab値は、機器独立色空間であるCIELAB色空間(L*a*b*色空間)における表色値である。インプットテーブルは、色変換テーブルIHTに入力されるスキャナRGB値を補正するためのテーブルである。アウトプットテーブルは、色変換テーブルIHTから出力されるLab値を補正するためのテーブルである。インプットテーブルおよびアウトプットテーブルは、通常、入力値と出力値とが同じ値となるように設定されているが、必要に応じて入力値に対する出力値が変更される。
図2(a)は、色変換テーブルIHTを概念的に示している。図2(b)は、スキャナRGB色空間SCPを示している。色変換テーブルIHTは、番号1〜P(Pは整数)までのP個のスキャナRGB値のそれぞれに対応付けられるLab値であって、各スキャナRGB値が表す色をCIELAB色空間で表したLab値を示すテーブルである。図2(a)では、説明の便宜上、色変換テーブルIHTの各Lab値に対応するスキャナRGB値を、色変換テーブルIHTと並列して示しているが、実際には、色変換テーブルIHTには、スキャナRGB値は、記述されていない。本実施例では、スキャナRGB値における赤(R)、緑(G)、青(B)の各値は、8ビット(256階調)で表される。また、スキャナRGB色空間SCPにおいて、R(赤)軸、G(緑)軸、B(青)軸は、図2(b)に示すように規定される。
スキャナRGB色空間SCPにおいて、0〜255のR、G、Bの値に、ほぼ等間隔で配置される所定数q(グリッド数qとも呼ぶ)の特定値が、設定される。色変換テーブルIHTの各Lab値が対応付けられるP個のスキャナRGB値は、グリッド数qの特定値のうちのいずれかの特定値に対応する。本実施例では、グリッド数qは17個である。この場合、17個の特定値は、16×r(rは0≦r≦15の整数)で表される16個の値と255である。従って、色変換テーブルIHT内のスキャナRGB値の総数Pは、4913個である。これらの4913個の点を、格子点REVとも呼ぶ。
図2(b)において、格子点REVは、3次元直交座標系でスキャナRGB色空間SCPを表現した場合に、立方体で表される色域にほぼ等間隔格子状に配置される。以下では、17個の特定値に小さい順から付した特定値番号(0、1、2、...16)を用いて、個々の格子点REVを表すことがある。例えば、スキャナRGB色空間SCPにおける座標(0、0、0)に位置にする格子点REVは、R成分値(R軸方向の成分)、G成分値(G軸方向の成分)、B成分値(B軸方向の成分)に対応する特定値番号を用いて、格子点REV(0、0、0)と表示される。同様に、座標(255、0、0)に位置する格子点REVは、格子点REV(16、0、0)と表示され、座標(0、255、0)に位置する格子点REVは、格子点REV(0、16、0)と表示される。また、図2(b)において、K点(座標(0、0、0)の位置)は、スキャナRGB色空間SCPにおける黒色点である。W点(座標(255、255、255)の位置)は、スキャナRGB色空間SCPにおける白色点である。図2(b)に示すように、K点とW点とを結ぶ一点破線GLは、スキャナRGB色空間SCPにおける無彩色軸である。一点破線GLを無彩色軸GLとも呼ぶ。
色変換テーブルIHTでは、図2(a)に示すように、複数の格子点REVの所定の順序に従って、対応するLab値が配列される。この結果、色変換テーブルIHTを利用するコンピュータ(例えば、複合機200のCPU210)は、色変換テーブルIHTに、格子点を表す情報(すなわち、スキャナRGB値)が含まれていなくても、色変換テーブルIHTに含まれる各Lab値に対応する格子点を特定することができる。以下に、複数の格子点REVの順序について説明する。
格子点REV(V、W、X)の順序を表すSQ(0≦SQ<格子点の総数)は、上述したグリッド数qを用いて、以下の式(1)で表される。
SQ={q×q×V+q×W+X}...(1)
図3は、スキャナRGB色空間SCPにおいて規定される各格子点の順序を説明するための図である。図3(a)は、スキャナRGB色空間SCPを通る複数の平面を示す図である。ここで、各格子点の順序の説明のために、スキャナRGB色空間SCPにおいて、B軸およびG軸に平行な17個の平面hmを規定する。具体的には、格子点REV(V,0,0)(Vは、0〜16の整数)を通る平面hmを平面hmVとして規定する。例えば、格子点REV(0,0,0)を通る平面hmを平面hm0、格子点REV(1,0,0)を通る平面hmを平面hm1として、それぞれ規定する。17個の平面hmVのそれぞれに配置された格子点REVのうち、平面hm0に配置された格子点REVの順序が最も先であり、平面hm16に配置された格子点REVの順序が最も後である。同一の平面hmVに含まれる複数の格子点のそれぞれのR成分値は、同一の値である。
図3(b)は、平面hm0をR軸方向から見た図である。各平面hmにおいて、17本の矢印ysW(Wは、0〜16の整数)を規定する。矢印ysWは、平面hmVを通りB軸に平行であり、G成分値に対応する特定値番号がWである格子点REV上に配置される。例えば、平面hm0上の矢印ys0は、格子点REV(0,0,0)、REV(0、0、1)、...、REV(0、0、16)を通る(図3(b))。同一の平面hmV上に配置された17本の矢印ysWのそれぞれに配置された格子点REVのうち、1本目の矢印ys0に配置された格子点REVの順序が最も先であり、17本目の矢印ys16に配置された格子点REVの順序が最も後である。ここで、1本の矢印ysWに配置される17個の格子点REVを格子点群kgWと呼ぶ。1つの格子点群kgWに含まれる17個の格子点REVは、R成分値が互いに同一であり、G成分値が互いに同一であり、かつ、B成分値が互いに異なる。
以上から、異なる平面hmVの配置された2つの格子点群(それぞれが17個の格子点群kgWを含む。平面格子点群とも呼ぶ)を比較すると、格子点REVのR成分値が小さいほど、平面格子点群の順序が先であり、R成分値が大きいほど、平面格子点群の順序が後である。同一の平面hmV上に配置された2つの格子点群kgWを比較すると、格子点REVのG成分値が小さいほど、格子点群kgWの順序が先であり、G成分値が大きいほど、格子点群kgWの順序が後である。1つの格子点群kgWに含まれる17個の格子点REVを比較すると、B成分値が小さいほど、格子点REVの順序が先であり、B成分値が大きいほど、格子点REVの順序が後である。
基準プロファイルに含まれる色変換テーブルIHTは、例えば、複合機200の製造者によって、周知の方法で作成されている。例えば、作成者は、プリンタ部270を用いて印刷されたカラーチャートを、スキャナ部280を用いて読み取ることで、スキャンデータを得る。また、一方で、カラーチャートを所定の測色機で測定して測色データを得る。この結果、作成者は、スキャンデータに含まれるスキャナRGB値と、測色データに含まれるLab値とを対応付けた対応データを取得する。作成者は、この対応データに基づいて、基準プロファイルに含まれる色変換テーブルIHTを作成する。なお、計算機は、色変換テーブルIHTに含まれるLab値の総数Pを用いて、グリッド数qを特定することができる(例えば、Lab値の総数Tが4913ならば、グリッド数qは17である)。
A−2.画像処理システム1000による処理:
画像処理システム1000は、基準プロファイルを補正して、補正プロファイル(新プロファイル)を生成するプロファイル更新処理および新プロファイル作成処理を実現する。また、画像処理システム1000は、プロファイル更新処理および新プロファイル作成処理によって生成された新プロファイルと、生成される画像データとを関連付けて出力するPDF/Aファイル出力処理を実現する。図4は、画像処理システム1000が行う処理を示すフローチャートである。具体的には、図4(a)は、プロファイル更新処理および新プロファイル作成処理の処理ステップを示すフローチャートである。図4(b)は、PDF/Aファイル出力処理の処理ステップを示すフローチャートである。以下に、まず、プロファイル更新処理および新プロファイル作成処理について説明し、続いて、PDF/Aファイル出力処理について説明する。
A−2−1.プロファイル更新処理および新プロファイル作成処理:
プロファイル更新処理は、複合機200または計算機300が、サーバ100を利用して基準プロファイルを更新する処理である。以下、複合機200または計算機300を、単にクライアントとも呼ぶ。新プロファイル作成処理は、クライアントからの要求に応じてサーバ100が新プロファイルを作成する処理である。以下では、複合機200がクライアントである場合を例に説明する。
例えば、クラインアントである複合機200は、基準プロファイルを更新する指示を、ユーザから操作部260を介して受け付けると、プロファイル更新処理を開始する。
テスト画像データ生成部M5は、テスト画像データTSDを生成する(ステップS110)。具体的には、テスト画像データ生成部M5は、例えば、ユーザにカラーチャート400aを原稿としてスキャナ部280にセットするように促すメッセージを操作部260の操作パネルに表示する。スキャナ部280は、図1に示すようなカラーチャート400aをスキャンして、カラーチャート400aの画像データ(JPEG形式などに変換される前のRAWデータ形式の画像データ)を、テスト画像データTSDとして生成する。
本実施例のカラーチャート400aは、モニタなどで用いられる標準的な色空間であるsRGB(standard RGB)色空間の色域全体に亘って分布する4913種類の異なる色をそれぞれ表す4913個のカラーパッチ410aを有する。具体的には、4913個のカラーパッチ410aは、sRGB(standard RGB)色空間において、R(red)、G(Green)、B(blue)の各値を、上述したスキャナRGB値の4913個の格子点REVと同じ値に設定して得られる4913種類の表色値に対応している。カラーチャート400aは、上述したsRGB(standard RGB)色空間において4913個のカラーパッチ410aの色を表現した画像データを、所定のプリンタを用いて印刷することによって作成されたものである。このカラーチャート400aは、ユーザが複合機200を購入した際の付属品として提供され得る。複数のカラーパッチ410aの色は、スキャナ部280によって読み取られる原稿に含まれると想定されるあらゆる色に近似し、所定の色空間の色域全体に亘って分布するように選択されることが好ましい。こうすれば、色変換テーブルIHTの各格子点が、スキャナ部280によって表現不能な範囲の色に関する格子点であるか、スキャナ部280によって表現可能な範囲の色に関する格子点であるかを、適切に判断することができる。
テスト画像データ生成部M5は、テスト画像データTSDに基づいて、テスト画像データTSDの画素値(スキャナRGB値)を用いて、編集データHSDを生成する(ステップS115)。編集データHSDは、図1に示すように、カラーチャート400aの4913個のカラーパッチ410aの色をそれぞれ表す4913個のスキャナRGB値である。これらのスキャナRGB値を、以下では、サンプル値SVとも呼ぶ。
出力部M40は、テスト画像データ生成部M5が生成した編集データHSD、および、プロファイル格納部242に格納されている基準プロファイルをサーバ100に送信する(ステップS120)。なお、出力部M40は、テスト画像データTSDをそのままサーバ100に送信し、サーバ100側で、編集データHSDを生成するようにしてもよい。
サーバ100の取得部N10は、複合機200から送信されてくる編集データHSD、および、基準プロファイルを取得する(ステップS200、ステップS210)。サーバ100の取得部N10がこれらデータを取得することにより、新プロファイル作成処理が開始される。なお、クライアントである複合機200は、サーバ100が新プロファイル作成処理を実行している間は、プロファイル更新処理を中断し、待機している。
続いて、プロファイル生成部N20は、プロファイル補正処理を実行する(ステップS220)。このプロファイル補正処理では、後述する分類領域が設定され、編集データHSDの各画素が、いずれの分類領域に属するか特定され、この分類結果に基づいて、編集データHSDで使用されていない色に関する格子点(変更対象の格子点とも呼ぶ)が決定される。次に、基準プロファイルにおける、変更対象の格子点に対応するLab値が変更され、補正プロファイルが生成される。続いて、この補正プロファイルに基づいて、圧縮済プロファイルが生成される。以下に具体的に説明する。
図5は、図4(a)のS220のプロファイル補正処理を示すフローチャートである。ステップS500では、まず、プロファイル生成部N20は、分類領域を設定する。
図6は、分類領域について説明する図である。プロファイル生成部N20は、4096個の分類領域CA(x、y、z)(xは、0≦x≦15の範囲の整数、yは、0≦y≦15の範囲の整数、zは、0≦z≦15の範囲の整数)を設定する。各分類領域CA(x、y、z)は、8つの格子点REVを頂点として構成される立方体形状を有する。分類領域CA(x、y、z)を構成する8つの格子点REVは、REV(x、y、z)、REV(x+1、y、z)、REV(z、y+1、z)、REV(x、y、z+1)、REV(x+1、y+1、z)、REV(x、y+1、z+1)、REV(x+1、y、z+1)、REV(x+1、y+1、z+1)で表される。図6には、図の煩雑を避けるため、0≦x≦1、0≦y≦1、0≦z≦1の範囲の8個の分類領域(x、y、z)のみを図示した。実際には、図2(b)に示すスキャナRGB色空間SCPにおける0≦R≦255、0≦G≦255、0≦B≦255の立方体の範囲に隙間無く4096個(16×16×16)の分類領域CA(x、y、z)が設定される。分類領域CA(x、y、z)は、単に、分類領域CAとも表す。
本実施例では、編集データHSDに含まれる全てのサンプル値SV(スキャナRGB値)を分類対象とする。プロファイル生成部N20は、編集データHSDに含まれる1つのサンプル値SVを処理対象として選択する(ステップS510)。
プロファイル生成部N20は、処理対象のサンプル値SVが、上述した4096個の分類領域CAのいずれかに属するかを特定する(ステップS515)。さらに、プロファイル生成部N20は、特定した分類領域CAを形成する8つの格子点REVを特定する(ステップS520)。基準プロファイル(色変換テーブルIHT)において、本ステップにて特定された格子点REVに対応付けられるLab値は、スキャナ部280において取得され得るスキャナRGB値の色変換を行う際に使用される可能性があると考えられる。
図7は、色変換テーブルIHTと使用判定フラグとの関係を説明するための図である。色変換テーブルIHTには、使用判定フラグを表すフラグ値が対応付けられており、具体的には、色変換テーブルIHTにおける1つのLab値に1つの使用判定フラグのフラグ値が対応付けられている。プロファイル生成部N20は、ステップ520で特定した8つの格子点REVを、スキャナ部280において取得され得るスキャナRGB値(スキャナ部280によって表現可能な色)に関する格子点であるとして、変更対象でない格子点に決定する(ステップS525)。この場合、プロファイル生成部N20は、変更対象でないと決定した格子点に対応するLab値のフラグ値を、「1」として、使用判定フラグをオンとする。
プロファイル生成部N20は、編集データHSDに含まれる全てのサンプル値SVについて、ステップS510〜S525の処理を実行していない場合には(ステップS530:No)、ステップS510の処理に戻る。プロファイル生成部N20は、編集データHSDに含まれる全てのサンプル値SVについて、ステップS510〜S525の処理を実行したと判断した場合には(ステップS530:Yes)、以下の処理を行う。すなわち、プロファイル生成部N20は、使用判定フラグがオフ(すなわち、フラグ値が0)である格子点REV(例えば、図7(a):No.7〜12の格子点)を、スキャナ部280において取得されないスキャナRGB値(スキャナ部280によって表現不能な範囲内の色)に関する格子点であるとして、変更対象の格子点として決定する(ステップS535)。
プロファイル生成部N20は、図7(b)に示すように、基準プロファイル(色変換テーブルIHT)における変更対象の格子点に対応するLab値を変更し、補正色変換テーブルIHTsを生成する(ステップS540)。補正色変換テーブルIHTsと、インプットテーブルと、アウトプットテーブルとの全体を補正プロファイルとも呼ぶ。具体的には、プロファイル生成部N20は、色変換テーブルIHTの先頭から順番に、変更対象の格子点REVに対応するLab値(すなわち、使用判定フラグがオフであるLab値)を探索し、変更対象の格子点REVに対応するLab値が見つかると、そのLab値を、変更対象の格子点REVよりも一つ前の順序の変更対象でない格子点REVに対応するLab値と同じ値に変更する。続いて、プロファイル生成部N20は、次の順序の格子点REVも、変更対象の格子点REVであれば、その変更対象の格子点REVに対応するLab値を、一つ前に変更したLab値の変更後の値と同じ値に変更する。このように、プロファイル生成部N20は、変更対象の格子点REVが連続すれば、連続する各格子点REVに対応するLab値を、それより前の順序の直近の変更対象でない格子点REVに対応するLab値と同じ値に変更する。例えば、プロファイル生成部N20は、図7(a)に示す色変換テーブルIHTの先頭から順番に、変更対象の格子点に対応するLab値(すなわち、使用判定フラグがオフであるLab値)を探索する。プロファイル生成部N20は、No.7の格子点に対応するLab値が変更対象の格子点に対応するLab値であると判断すると、図7(b)に示すように、No.7の格子点に対応するLab値を、No.6の格子点に対応するLab値と同じ値に変更する。そして、プロファイル生成部N20は、No.7の格子点に続くNo.8〜No.12の格子点に対応する使用判定フラグがオフとなっているので(図7(a))、No.8〜No.12の格子点に対応するLab値についても、変更対象の格子点に対応するLab値であると判断して、No.6の格子点に対応するLab値にそれぞれ変更する(図7(b))。
図8は、スキャナRGB色空間SCPにおけるテスト画像データに含まれるスキャナRGB値(編集データHSDに含まれるサンプル値SV)の分布を説明するための図である。図8に示すように、スキャナRGB色空間SCPにおいて、スキャナ部280によって表現不能な領域(表現不能領域とも呼ぶ)RYIが存在する。このような表現不能領域RYI内の格子点REVが、上記変更対象の格子点に特定され得る。なお、図8では、スキャナRGB色空間SCPにおいて表現不能領域RYIの一部が示されている。
図5のステップ545において、プロファイル生成部N20は、補正プロファイル(補正色変換テーブルIHTs)をDeflate圧縮して圧縮済補正プロファイルを生成する。例えば、文字Aが6個連続した[AAAAAA]という文字列を含むtxt形式のデータ(元データ)があった場合に、この元データがDeflate圧縮されると、圧縮後のデータは、[A6]の様に文字Aとその連続数とで表現され、元データと比較して、データサイズが抑制される。このDeflate圧縮について、以下に具体的に説明する。
プロファイル生成部N20は、色変換テーブルIHTにおけるNo.1の格子点(順序が1番目)に対応するLab値(L*1,a*1,b*1)と次のNo.2の格子点に対応するLab値とが一致するか否かを判断する。プロファイル生成部N20は、一致しない場合には、一致しないことを表す識別値[0]と、No.1の格子点に対応するLab値と用いて、[0](L*1,a*1,b*1)と記述する。プロファイル生成部N20は、No.1の格子点に対応するLab値(L*1,a*1,b*1)と次のNo.2の格子点に対応するLab値とが一致する場合には、No.2よりも後の順序の格子点に対応する各Lab値を探索対象として、格子点の順序に従ってLab値がNo.1の格子点に対応するLab値と一致しなくなるまで、探索を続ける。プロファイル生成部N20は、No.1の格子点に対応するLab値と一致するLab値が、連続してU個見つかった場合には、一致することを表す識別値[1]と、No.1の格子点に対応するLab値と、連続して一致する個数Uとを用いて、[1](L*1,a*1,b*1)<U>と記述する。識別値は、1ビットで表され、連続して一致する個数Uは、例えば、8ビットで表される。
すなわち、プロファイル生成部N20は、順序がs1の格子点に対応するLab値(L*s1,a*s1,b*s1)と、次の順序の格子点に対応するLab値とが一致しない場合には、[0](L*s1,a*s1,b*1)、と記述する。また、プロファイル生成部N20は、順序がs1の格子点に対応するLab値(L*s1,a*s1,b*s1)と一致するLab値が、連続してU個見つかった場合には、[1](L*s1,a*s1,b*s1)<U>、と記述する。例えば、「(L*1,a*1,b*1),(L*2,a*2,b*2),(L*2,a*2,b*2),(L*2,a*2,b*2)」と表される4つのLab値は、Deflate圧縮されると、[0](L*1,a*1,b*1)[1](L*2,a*2,b*2)<3>と記述される。この場合、Lab値のL*値、a*値、b*値は、それぞれ8ビットで表されるので、圧縮前の4つのLab値のデータサイズは、12(L*値、a*値、b*値の総数)×8ビットで96ビットとなる。一方、圧縮後のデータサイズは、2(識別値数)×1ビット+6(L*値、a*値、b*値の総数)×8ビット+1(個数U)×8ビットで58ビットとなる。このように、Deflate圧縮後のデータサイズは、同じ値のLab値が連続するほど、圧縮前のデータサイズよりも小さくなる。
上述のように、補正プロファイルの補正色変換テーブルIHTsは、プロファイル生成部N20によって、Lab値が連続する同じ値に変更され得る。従って、補正プロファイルをDeflate圧縮して生成される圧縮済補正プロファイルは、基準プロファイルをDeflate圧縮して生成される圧縮済基準プロファイルと比較して、データサイズが小さくなる。言い換えれば、スキャナRGB色空間SCPの格子点REVのうち、スキャナ部280において取得され得るスキャナRGB値(スキャナ部280によって表現可能な色)に関する格子点REVにそれぞれ対応するLab値を、圧縮済補正プロファイルのデータサイズが、圧縮済基準プロファイルのデータサイズよりも小さくなるように変更していると言える。
図5のステップS550では、プロファイル生成部N20は、生成した圧縮済補正プロファイルをプロファイル格納部142に格納し、図5に示すプロファイル補正処理を終了する。
図4(a)のS230では、出力部N30は、生成した圧縮済補正プロファイルを新プロファイルとして、クライアントである複合機200に送信する。サーバ100は、新プロファイルを送信後、新プロファイル作成処理を終了する。
複合機200の取得部M10は、サーバ100から送信されてくる新プロファイル(圧縮済補正プロファイル)を取得する(ステップS300)。取得部M10が新プロファイルを取得することにより、プロファイル更新処理が再開される。
格納処理部M20は、新プロファイル(圧縮済補正プロファイル)を、プロファイル格納部242に格納する(ステップS305)。この場合、格納処理部M20は、プロファイル格納部242に既に格納されていた基準プロファイルを削除する。
A−2−1.PDF/Aファイル出力処理:
PDF/Aファイル出力処理(図4(b))は、上記プロファイル更新処理を行ったクライアントが、ユーザからの指示に基づいて、PDF/Aファイルを生成し、出力する処理である。以下、複合機200がプロファイル更新処理を行ったクライアントである場合を例に説明する。
スキャナ部280は、ユーザから操作部260を介して画像データの生成指示があった場合には(図4(b):ステップS307:Yes)、ユーザによってセットされた原稿をスキャンして、画像データを生成する(ステップS310)。スキャナ部280は、画像データの生成指示がない場合には(ステップS307:No)、PDF/Aファイル出力処理を終了する。
PDF/Aファイル生成部M30は、スキャナ部280によって生成された画像データを、所定の形式(例えば、JPEG形式)に圧縮し、圧縮された画像データを用いてPDF形式のページデータを生成する。そして、PDF/Aファイル生成部M30は、プロファイル更新処理でプロファイル格納部242に格納された新プロファイルを読み出して、この新プロファイルとページデータとを関連付けて、PDF/Aファイルを生成する(ステップS320)。PDF/Aファイル生成部M30は、生成したPDF/AファイルをPDF/Aファイル格納部244に格納する(ステップS330)。
出力部M40は、外部装置(例えば、計算機300)からの出力要求がある場合(ステップS340:Yes)には、PDF/Aファイル格納部244に格納されたPDF/Aファイルを出力要求のあった外部装置に出力し(ステップS350)、PDF/Aファイル出力処理を終了する。出力部M40は、クライアントからの出力要求がない場合(ステップS340:No)には、PDF/Aファイル出力処理を終了する。
なお、複合機200は、このPDF/Aファイル出力処理を、上述のプロファイル更新処理と並行して行うようにしてもよい。また、複合機200は、プロファイル更新処理において、編集データHSDおよび基準プロファイルをサーバ100に送信せず、サーバ100が行うプロファイル補正処理(図4(a):ステップS220)を、複合機200のプロファイル生成部M45に実行させるようにしてもよい。このプロファイル生成部M45は、サーバ100のプロファイル生成部N20と同様の機能を有する。
また、計算機300の各機能部L5〜L40は、複合機200が備える同名の機能部M5〜M40とそれぞれ同様の機能を有する。従って、計算機300が、クライアントとして、プロファイル更新処理およびPDF/Aファイル出力処理を行うようにしてもよい。この場合、計算機300は、複合機200のスキャナ部280にカラーチャート400aを読み取らせてテスト画像データTSDを生成させ、複合機200から該テスト画像データTSDを取得する。
本実施例において、新プロファイル(圧縮済補正プロファイル)は、順序が連続する2つ以上の格子点REVであって、複合機200(スキャナ部280)によって表現不能な色を示す格子点REVに対応するLab値が、Deflate圧縮されている。このように、複合機200(スキャナ部280)によって表現不能な色を示す格子点REVに対応するLab値が、Deflate圧縮されることにより、新プロファイル(圧縮済補正プロファイル)は、プロファイル補正処理が行われる前の基準プロファイルをDeflate圧縮した圧縮済基準プロファイルのデータサイズより小さくなっている。すなわち、スキャナ部280で生成された画像データに関連付けられる新プロファイルを用いて、当該画像データを再現する場合に、新プロファイルでは、複合機200(スキャナ部280)によって表現不能な色を示す格子点REVに対応するLab値が圧縮対象となっているので、画像データにおいては、再現性の低下を抑制することができ、新プロファイルにおいては、データサイズを小さくすることができる。
本実施例では、プロファイル補正処理において、プロファイル生成部N20は、変更対象の格子点REVが見つかると、その変更対象の格子点REVに対応するLab値を、変更対象の格子点REVよりも一つ前の順序の変更対象でない格子点REVに対応するLab値と同じ値に変更する。続いて、プロファイル生成部N20は、次の順序の格子点REVも、変更対象の格子点REVであれば、その変更対象の格子点REVに対応するLab値を、一つ前に変更したLab値の変更後の値と同じ値に変更する。すなわち、新プロファイル(圧縮済補正プロファイル)では、変更対象でない格子点REVに対応するLab値と、当該格子点REVに続く順序である2つ以上の連続する格子点REVにそれぞれ対応するLab値と、が同じ値である(図7(b))。このようにすれば、変更対象でない格子点REVに対応するLab値と、当該格子点REVに続く順序である2つ以上の連続する格子点REVにそれぞれ対応するLab値と、をまとめて圧縮することが可能となり、その結果、新プロファイル(圧縮済補正プロファイル)のデータサイズを小さくすることができる。
本実施例では、色変換テーブルIHTは、格子点群kg(W−1)(例えば、格子点群kg0、図3参照)に対応する複数のLab値と、格子点群kgW(例えば、格子点群kg1)に対応する複数のLab値とが、この順で連続して配列される。そして、プロファイル補正処理(図4(b))において2つの変更対象である格子点が存在する場合であって、これら2つの格子点REV間に変更対象でない格子点REVが存在しない場合に、一方の変更対象である格子点REVが、格子点群kg(W−1)に含まれ、他方の変更対象である格子点REVが、格子点群kgWに含まれ得る。この結果、プロファイル補正処理において、スキャナRGB色空間SCP内で全く異なる色となり得る2つの格子点に対応する2組のLab値が同じ値となるように、変更される。例えば、平面hm0の格子点群kg16のREV(0,16,16)(図3(a))が変更対象である格子点REVであり、平面hm1の格子点群kg0の4つの格子点REV(1,0,0)〜(1,0,3)(図3(a))も変更対象である格子点REVとなり得る。この場合、平面が異なることによって全く異なる色となり得る2つの格子点REV(格子点REV(0,16,16)と格子点REV(1,0,3))に対応する2組のLab値が同じ値となるように、変更される。また、平面hm0の格子点群kg15のREV(0,15,15)〜(0,15,16)(図3(b))が変更対象である格子点REVであり、平面hm0の格子点群kg16の4つの格子点REV(0,16,0)〜(0,16,3)(図3(b))も変更対象である格子点REVとなり得る。この場合、格子点群が異なることによって全く異なる色となり得る2つの格子点REV(格子点REV(0,15,15)と格子点REV(0,16,3))に対応する2組のLab値が同じ値となるように、変更される。
上記実施例では、テスト画像データTSDの画素値(スキャナRGB値)に基づく複数のサンプル値SV(本実施例では、4913個)を用いて、複合機200(スキャナ部280)が表現不能な複数個の変更対象である格子点を特定する。このようにすれば、複合機200(スキャナ部280)が表現不能な複数個の変更対象である格子点を適切に特定することができる。
本実施例において、スキャナ部280は、画像データ生成部の例である。プロファイル格納部242に格納される新プロファイル(圧縮済補正プロファイル)は、「画像データ生成部に適した色変換プロファイル」の例である。図7に示すNo.7,No.8の格子点REVは、それぞれ、第1格子点,第2格子点の例であり、図7に示すNo.6の格子点REVは、第3格子点の例である。
B.第2実施例:
第1実施例では、プロファイル補正処理(図5)において、テスト画像データを解析し、解析結果に基づいて、変更対象でない格子点が決定されていた(ステップS525〜S535参照)。この第2実施例では、スキャナRGB色空間SCPにおいて、テスト画像データの解析結果に拘わらず、変更対象とならない(変更対象でない)格子点REVxが存在する。格子点REVxは、特許請求の範囲における特定の格子点の例である。
図9は、第2実施例における格子点REVxについて説明する図である。図9(a)は、スキャナRGB色空間SCPにおける格子点REVxを示す図である。図9(b)は、プロファイル補正処理において、スキャナRGB色空間SCPに格子点REVxが存在する場合に生成された補正色変換テーブルIHTs1を示す図である。
図9(a)に示すように、本実施例では、格子点REVxは、スキャナRGB色空間SCPにおいて、予め定められる所定の格子点であって、プロファイル補正処理において、テスト画像データの解析結果に拘わらずに変更対象とならない格子点である。格子点REVxは、スキャナRGB色空間SCPにおいて、等間隔格子状に配置される。図9(a)に示す例では、格子点REVxは、上述した4913個の格子点REVのうち、3つの軸(R軸、G軸、B軸)に沿って、REVx(0,0,0)の格子点を基準に4個毎に配置された格子点である。
本実施例では、格子点REVは、17×17×17の格子点であり、格子点REVxは、5×5×5の格子点である。
本実施例では、プロファイル補正処理において、プロファイル生成部N20は、格子点REVxに対応するLab値の使用判定フラグを、編集データHSDの画素を分類する処理(図5(b):ステップS510〜S530)の結果とは無関係に、「1」とする。この結果、プロファイル生成部N20は、常に、格子点REVxに対応するLab値を変更しない(図9(b)の補正色変換テーブルIHTs1:ハッチング部分参照)。プロファイル生成部N20は、格子点REVxの次の順序の格子点REVが、変更対象の格子点であれば、その変更対象の格子点REVに対応するLab値を、一つ前の格子点REVxに対応するLab値に変更する。プロファイル生成部N20は、次の順序の格子点REVが、さらに変更対象の格子点REVであれば、その変更対象の格子点REVに対応するLab値を、一つ前に変更したLab値に変更する。このように、プロファイル生成部N20は、格子点REVxよりも後の順序の格子点REVが、連続して変更対象の格子点であれば、連続する各格子点REVに対応するLab値を、それより前の順序の直近の格子点REVxに対応するLab値に変更する。図9(b)では、変更対象としてのNo.10〜12の格子点に対応するLab値が、直近の格子点REVxに対応するLab値に変更されている。
本実施例によれば、スキャナRGB色空間SCPにおける格子点REVのうち、格子点REVxを、編集データHSDの解析結果に拘わらず、変更対象でない格子点に決定する。この結果、編集データHSDがどのようなデータであっても、格子点REVxに対応するLab値を基準プロファイル(色変換テーブル)において対応付けられているLab値に固定することができる。言い換えれば、新プロファイル(基準プロファイル)で格子点REVxに対応するLab値は、複合機200(スキャナ部280)によって表現不能な色を表すか否かに拘わらず、互いに異なる値に設定される。従って、プロファイル補正処理によって生成される新プロファイル(圧縮済補正プロファイル)を含むPDF/Aファイルが、複合機200から、複合機200(スキャナ部280)で表現不能な色を表現可能な外部装置に出力された場合に、当該外部装置において、PDF/Aファイルに含まれる画像データについて、複合機200によって表現不能な範囲内の色についても、再現し得る。この結果、外部装置において、新プロファイルと関連付けられる画像データの再現性が著しく低下することを抑制することができる
ここで、使用される色が増加する具体例としては、ページデータを含むPDF/Aファイルが編集されることによって、当該ページデータに、注釈などのテキストデータや、矢印などの単色の図形データが、追加される場合が考えられる。このような場合であっても、新プロファイルにおける格子点REVxに対応するLab値が、基準プロファイル(色変換テーブル)において対応付けられているLab値に固定されているので、編集後のページデータに含まれるテキストや図形は、第1実施例と比較して、外部装置などの特定の機器で適切に再現される。
本実施例の新プロファイル(圧縮済補正プロファイル)では、連続する2つ以上の格子点REVであって、それぞれが変更対象である格子点REVに対応するLab値と、格子点REVxに対応するLab値とは、同じ値である。このようにすれば、格子点REVxにそれぞれ対応するLab値を互いに異なる値にしつつも、新プロファイルのデータサイズを小さくすることができる。
なお、格子点REVxは、5×5×5(125個)の格子点に限らず、格子点REVが、N×N×N個の格子点であり、格子点REVxがM×M×M個の格子点である場合に、NおよびMは、(N−1)/(M−1)=kを満足する値であればよい。ここで、M、N、Kは、N>M≧2,k≧2を満たす整数である。また、格子点REVxは、例えば、各成分値が256階調で表される一般的なRGB色空間において規定されたいわゆるWEBセーフカラー(216種類のRGB値)と同程度の数(種類)が配置されることが好ましい。
C.変形例:
この発明は上記実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
(1)上記実施例では、ページデータと、このページデータを用いて生成される圧縮済補正プロファイルとを関連付けて、1つのPDF/Aファイルとしている。これに代えて、ページデータと、このページデータを用いて生成される圧縮済補正プロファイルと、をそれぞれ別ファイルで記憶装置240に格納し、ファイル名等でページデータと圧縮済補正プロファイルとを関連付けても良い。なお、ページデータと圧縮済補正プロファイルとを含むファイルは、PDF/Aファイルに限らず、他のファイル形式(例えば、PDFファイル)であっても良い。
(2)上記実施例では、スキャナRGB色空間の表色値をCIELAB色空間(L*a*b*色空間)の表色値に変換するためのプロファイルを生成しているが、これに限られるものではない。例えば、プリンタの機器依存RGB色空間の表色値をプリンタCMYK色空間の表色値に変換するためのプロファイルの生成に本発明を適用しても良い。一般的に言えば、第1色空間における複数個の格子点に、第2色空間における複数組の値をそれぞれ対応付けたプロファイルの作成に本発明を適用することができる。
(3)上記各実施例のプロファイル補正処理において、プロファイル生成部N20は、変更対象の格子点REVに対応するLab値を、変更対象の格子点REVよりも順序が前であって変更対象でない格子点REVに対応するLab値と同じ値に変更している。これに代えて、プロファイル生成部N20は、変更対象でない格子点REVに対応するLab値とは無関係に、複数の変更対象の格子点REVに対応するLab値を、互いに同じ値に変更しても良い。例えば、プロファイル生成部N20は、複数の変更対象の格子点REVに対応するLab値(L*、a*、b*)を全て(0、0、0)に変更しても良い。また、順序が連続する複数の変更対象の格子点REVに対応するLab値(L*、a*、b*)を全て同じにする必要はなく、例えば、2つずつ同じ値にしても良い。
また、上記実施例では、プロファイルの圧縮にDeflate圧縮を用いているが、他の圧縮方式を用いても良い。この場合には、上記実施例のプロファイル補正処理において、プロファイル生成部N20は、採用された圧縮方式を用いて圧縮を行った場合に、圧縮済補正プロファイルのデータサイズが小さくなるように、変更対象の格子点REVに対応するLab値を変更すれば良い。規則的に連続する異なる複数の値を圧縮可能な方式、例えば、「1、2、3、4、5」のように連続する値を、「1−5」のように圧縮可能な方式を採用する場合には、プロファイル生成部N20は、順序が連続する複数の変更対象の格子点REVに対応するLab値を、規則的に連続する異なる複数の値に変更しても良い。
以上を一般的に言えば、プロファイル生成部N20は、変更対象の2個以上の格子点に対応する2組以上のLab値を、補正プロファイルを特定の圧縮方法で圧縮した場合に生成される圧縮済補正プロファイルのデータサイズが、基準プロファイルを特定の圧縮方法で圧縮した場合に生成される圧縮済基準プロファイルのデータサイズよりも小さくなるように変更することが好ましい。
(4)上記実施例におけるプロファイル補正処理において、各分類領域CAは、8つの格子点REVを頂点として構成される立方体形状に設定されているが、これに限られない。例えば、各分類領域CAは、実施例と同じ大きさの立法体形状を有し、1つの格子点REVを中心とする領域であっても良い。一般的には、各分類領域CAは、少なくとも1つ以上の格子点に基づいて定められることが好ましい。
(5)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。