以下、添付図面を参照して本開示の技術の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本開示の技術を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本開示の技術の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
<第1の実施形態>
[システム構成]
図1は、本実施形態における、画像に付加情報を埋め込む処理(多重化処理、または多重化エンコード処理ともよぶ)を行う画像処理装置を含むシステム構成を示す図である。画像処理装置は、PDLデータAと付加情報Bとを取得し、PDLデータAのコマンドを実行することで生成されたビットマップ形式の画像データAに付加情報Bを埋め込む処理を行う。そして画像データAに付加情報Bを埋め込むことで得られた画像データに基づき印刷処理を行うことで印刷物Cが生成される。
本実施形態の多重化処理によれば、例えば、写真、絵画等の画像中に、その著作者名や、使用許可の可否等の付加情報を視覚的に判別しづらい様に埋め込むことができる。また、複写機、プリンタ等の画像出力装置による紙幣、印紙、有価証券等の偽造を防止する目的で、印刷物上からその印刷物上を出力した装置を特定できるように印刷物上に付加情報を埋め込むことができる。
図1(a)は、PDLデータAのコマンドを実行して得られた画像データに付加情報Bを埋め込む処理をプリンタ103とは別の画像処理装置である付加情報多重化装置102で行うシステム構成を示している。図1(b)は、プリンタ103内に、付加情報多重化装置102の機能が含まれる場合のシステム構成を示す図である。図1(b)のプリンタ103には図1(a)の付加情報多重化装置102の機能を有する付加情報多重化部105があり、付加情報多重化部105が付加情報Bを埋め込む処理を行う。
図1(a)(b)では、入力端子100からPDLデータAが入力される。PDLデータは、PDL(Page Description Language)で記述されたデータであり、オブジェクトの描画命令を含む描画データである。また、入力端子101からは付加情報Bが入力される。付加情報Bは、テキスト文書データ、音声データ、画像データ、または動画データを示す。または、付加情報Bは、テキスト文書情報、音声情報、画像、または動画情報を圧縮したデータである。または、付加情報Bは、テキスト文書情報、音声情報、画像、または動画情報を圧縮したデータを別のバイナリ値に変換したデータである。
付加情報多重化装置102は、PDLデータAに付加情報Bを埋め込む多重化処理を行う。付加情報の多重化処理の詳細については、後述する。プリンタ103は、付加情報Bが埋め込まれた画像データに基づき印刷処理を行い、印刷物Cを生成する。印刷物Cから付加情報Bを抽出する処理を、多重化デコード処理と呼ぶ。
[ハードウェア構成]
図2は、図1(a)の付加情報多重化装置102のハードウェア構成例を説明する図である。CPU201は、中央演算装置であり、例えば、付加情報を多重化する処理をプログラムに従って実行する。ROM202は、CPU201により実行されるプログラムを記憶する。RAM203は、CPU201によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供する。二次記憶装置204は、例えばハードディスクであり、画像ファイルや付加情報などを保存するための記憶媒体である。
ディスプレイ205は、ユーザインタフェース画面や処理内容等を表示する表示部である。入力装置206は、キーボードなどの機器の操作を介して処理の指示や設定、文字入力等を受け付ける。ネットワークインタフェース207は、例えばLAN(Local Area Network)に接続されている。また、LANは、インターネットに接続されている。CPU201は、ネットワークインタフェース207により、インターネットに接続されたサイトにアクセスして、ディスプレイ205にサイトの画面を表示し、データを送受信する。付加情報多重化装置102は、例えばPCやスマートフォンの情報処理装置(画像処理装置)であるが、PDLデータAに付加情報Bを埋め込む処理が実行可能であれば他の形態の装置でもよい。
図1(b)のプリンタ103のハードウェア構成は、少なくとも図2の各部を含む。付加情報多重化部105の機能は、例えば、プリンタ103のCPU201がROM202に記憶されているプログラムコードをRAM203に展開し実行することにより実現される。図1(b)のプリンタ103は、図1(a)の付加情報多重化装置102と同様、入力端子100からPDLデータAが入力される。また、入力端子101から付加情報Bが入力される。付加情報多重化部105は、PDLデータAのコマンドを実行して得られた画像データに対して付加情報Bを埋め込む処理を行う。また、印刷部106は、付加情報Bが埋め込まれた画像データに基づき印刷処理を行うことで印刷物Cを生成する。
なお、以下の説明では、図1(a)のシステム構成に基づき本実施形態の説明を行うが、本実施形態は、図1(b)のシステム構成でも適用の可能である。図1(b)のシステム構成に適用する場合、以下の説明において、付加情報多重化装置102とあるのは、付加情報多重化部105と置き換えればよい。
[多重化エンコード処理に係る機能構成]
図3(a)は、本実施形態における付加情報多重化装置102における多重化エンコード処理のための基本ファームウェアの機能ブロックの構成を示す図である。以下に説明する各機能部によって処理が実行されることによって、PDLデータは、プリンタ103の記録ヘッドと接続された印刷エンジンが処理可能な解像度、階調数の印刷データに変換される。
PDLデータ取得部301は、入力端子100から入力されたPDLデータAを取得する。PDLデータAは、オブジェクトの描画命令で構成されるデータである。取得したPDLデータAは、描画部302に送られる。
描画部302は、PDLデータ取得部301から受け取ったPDLデータAを解釈して、描画コマンドを実行することでビットマップ形式の画像データAと属性データとを生成する。生成されたビットマップ形式の画像データは、画像補正部303に送られる。
本実施形態では、ビットマップ形式の画像データは、RGB色空間の画像データとして説明する。属性データは、画素毎の属性情報のデータである。属性情報はオブジェクトの描画コマンドに基づき、以下のような基準に従って決定される。
・文字描画コマンド(文字種や文字コード)で特定されている場合:文字属性
・線描画のコマンド(座標点、長さ、太さ)で特定されている場合:線属性
・図形描画コマンド(矩形、形状、座標点)で特定されている場合:図形属性
・イメージ描画コマンド(点の集合)で特定されている場合:イメージ属性
画像補正部303は、描画部302によって生成されたRGB色空間の画像データに対し、画像補正を実行する。画像補正としては、全体の色を明るくする又は暗くするような明度調整、コントラスト調整、カラーバランスの調整などがある。
多重化機能判定部304は、多重化機能のon/off設定に基づき、付加情報を意味するパターン画像の埋め込みを実施するか否かを判定する。多重化機能のon/off設定は、例えば、ユーザが入力装置206を操作することによって設定される。多重化機能判定部304が多重化機能onと判定した場合は、付加情報Bの埋め込みを実施するための処理が行われる。このため、画像補正部303が補正した画像データAは、付加情報Bを埋め込む処理を行う機能部である付加情報付与部305に送られる。多重化機能判定部304が多重化機能offと判定した場合、付加情報Bの埋め込みは実施しないため、画像データAは色変換部308に送られる。
付加情報付与部305および色変換部308は、画像データAに対しては、プリンタ103が出力した際にユーザが意図した好適な色となるように、プリンタ103のデバイス依存の色空間の色値に変換する処理を実行する。ディスプレイなどの表示部とプリンタとでは必ずしも色の再現範囲は一致しない。ある色ではプリンタの方が再現範囲は狭く、また別の色ではプリンタの方が再現範囲は広くなる。プリンタによって記録された画像の劣化を最小限にするため、適宜、色の圧縮・伸長を行う必要がある。なお、本実施形態では、プリンタエンジンといったデバイスの色再現範囲を基準とした相対的な色空間をデバイス依存の色空間とよぶ。
付加情報付与部305は、デバイス依存の色空間であるtrimRGB色空間への色変換を行う。trimRGB色空間は、プリンタ103が出力した印刷物C上の画像が好適な色で再現されるようなデバイスの再現性を考慮し、かつパターン画像の埋め込みを考慮した空間である。さらに、付加情報付与部305は、入力端子101から入力された付加情報B、ROM202に予め記憶されている多重化パラメータ306、および多重化用色変換テーブル307の3種データに基づき画像データAにパターン画像を埋め込む処理を実行する。パターン画像は単に、パターンともよぶ。パターン画像の詳細はおよび付加情報付与部305の詳細は後述する。
一方、色変換部308は、プリンタ103が出力した印刷物C上の画像が好適な色で再現されるように、画像データAの各画素のRGB値を、デバイスの再現性を考慮したプリンタ向けのデバイス依存の色空間であるDeviceRGB色空間の色値に変換する。色変換部308を第1の色変換部ともよぶ。
DeviceRGB色空間の色値をDeviceRGB値ともよぶ。変換方法としては、マトリクスなどの演算で行うことも可能であるが、本実施形態では、3次元の色変換テーブル309(第1のパラメータ)を用いるものとして説明する。3次元の色変換テーブル309の形式に関しては後述する多重化用色変換テーブル307(第2のパラメータ)と合わせて説明する。なお、DeviceRGB値への色変換を通常の色変換、色変換テーブル309を通常の色変換テーブルと呼ぶことがある。
色変換部308は、3次元の色変換テーブル309を用いて、対象となるRGB値に対応したDeviceRGB値を決定するが、階調性を考慮して出力を8ビット以上の値としてもよい。なお、本実施形態では、色変換部308によってRGBからRGBへの色変換がされるものとして説明するが、他にも、CMYKからCMYK、RGBからCMYK、CMYKからRGBなどへの色空間への色変換でも適用可能である。
インク色変換部310は、色変換部308で変換されたDeviceRGB値をインク色の色値へと変換する。または、インク色変換部310は、付加情報付与部305が画像データAにパターン画像を埋め込んで生成された画像データのtrimRGB値を、インク色の色値へと変換する。インク色変換部310は、予め変換前の色値の組み合わせに対応したインク色の値が記述された色分解テーブル311を用いてインク色への色変換を行う。色分解テーブル311は、例えば、色変換テーブル309と同様の17のグリッドのテーブルである。
本実施形態では、インク色は、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4色であるものとして説明する。このため、色分解テーブル311は、各変換前の色値のグリッドに対応した4色の値が記述されているテーブルとなる。色変換テーブル309と同様、対象となる変換前のRGB値のうちグリッド間のRGB値に対応したインク分解後の値は、四面体補間などを適用して求められる。
濃度補正部312は、C、M、Y、Kの各色について補正を行う。ここでは1次元の濃度補正テーブル313を用いる。例えば、濃度補正テーブル313は、各色の入力8ビット(256階調)に対応したテーブルである。
階調変換部314は、インク色に変換され濃度補正を実行された多ビットデータをプリンタ103で記録可能な階調数に変換する。プリンタ103が対応可能な階調数は、記録(1)/非記録(0)の2階調(1ビット)であるものとして説明する。階調変換方法としては、例えば、画像の低周波成分を排除し、視覚に好適な階調再現可能な誤差拡散法を用いる。また、入力信号は8ビットの0~255であるものとして説明する。
ここで、誤差拡散法における誤差分配方法について説明する。ターゲットピクセルの信号値を信号値Lとした場合、閾値THとの比較が行われる。閾値は例えば127である。0~255を2値にするために、L>THの場合は1(記録)、L≦THの場合は0(非記録)と判定し、その判定結果に応じて量子化代表値Vを、1(記録)の場合は255、0(非記録)の場合は0と設定する。そのとき、発生する誤差E(=L-V)は、分配係数に従って周囲のピクセルに分配される。そして、次のターゲットピクセルの信号値Lに、分配された誤差Eaを加算した値Laに対し、閾値との比較が行われる。従って、La>THの場合は1(記録)、La≦THの場合は0(非記録)と判定される。この処理を全てのピクセル、全てのインク色C、M、Y、Kに対して行うことで、記録可能な1ビットのインク色データを得ることができる。階調変換部314は、生成したインク色データを印刷エンジンであるプリンタ103に送る。
プリンタ103は、受信されたデータを記憶する受信メモリ、CPU、インクを記録媒体(印刷用紙)に付与する印刷部、を少なくとも有する。プリンタ103は、入力されたインク色データを受信メモリに記憶する。印刷部は、インク色データを記録ヘッドのノズルに対応したインク滴データに変換する。記録媒体の搬送方向に対して交差する方向に走査する記録ヘッドにより、インク滴を記録媒体上に吐出することで印刷処理を行う。本実施形態では、プリンタ103は、シリアル走査型のインクジェット記録装置であるものとして説明するが、プリンタ103は、ラインヘッドによる記録装置、またはレーザーエンジンによる記録装置など他の記録装置であってもよい。
図3の各部の機能は、付加情報多重化装置102のCPU201がROM202に記憶されているプログラムコードをRAM203に展開し実行することにより実現される。または、図3の各部の一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。
[パターン画像について]
付加情報Bは、PDLデータAのコマンドを実行して生成された画像データAに対して埋め込まれる情報である。例えば、付加情報Bは、テキスト文書データである。テキスト文書データは、例えば、テキスト文書データが示す文字または数字を、文字コードを用いて数値に割り当てることで数値列データ(バイナリデータ)に変換される。
例えば、付加情報Bであるテキスト文書データが、「hello」というテキストを示すデータであるとする。このテキスト文書データを、数値列データ、いわゆるバイナリデータに変換する。どの数値がどの文字が対応しているかは「文字コード」と呼ばれるもので定義されている。文字コードの中の1つである「シフトJIS」の場合、「h」はバイナリデータの「01101000」に対応する。同様に、「e」は「01100101」、「l」は「01101100」、「o」は「01101111」のバイナリデータに対応する。従って、「hello」という文字は、バイナリデータによれば、「0110100001100101011011000110110001101111」と表現できる。
付加情報Bは、このようにバイナリデータに変換される。付加情報付与部305は、バイナリデータに対応するパターン画像を画像データAに埋め込む処理を行う。バイナリデータに対応するパターン画像とは、多重化デコード処理で抽出して読み取れるような形式であって、例えば、パターン画像が埋め込まれる画像上のブロック単位で異なる周期性を持ったパターンである。
付加情報Bを「0」、「1」の数値列データに変換し埋め込む場合、「0」、「1」を読み取れる形式とするために、画像データAにマスク処理を実行し、2つの異なる周期性を持つパターン画像を画像データAが示す画像内に埋め込む。
図4(a)(b)は、2つの周期性を重畳するためのパターン画像の一例を示す図である。図4(a)(b)は、5px(ピクセル)×5pxで構成されたマスクデータであり、5px×5pxの領域に対して2つの周期性を持ったパターン画像を画像データAが示す画像に掛け合わせることで、画像データAが示す画像上で「0」、「1」を表現させる。
例えば、図4(a)を「0」のパターン画像とし、図4(b)を、「1」とパターン画像とするように、予め「0」と「1」とに対応するパターン画像を定めておく。そして、印刷物Cを撮像することで得られた撮像画像に周波数解析を施して2つの周期性を持つパターン画像の配列を判定することで、「0」と「1」とからなるバイナリデータを読み取ることができる。
[パターン画像の埋め込み方法]
次に画像データAにパターン画像を埋め込む方法について説明する。本実施形態では、画像にパターン画像を埋め込む例として、1色のグレー画像データが示す画像の全体に対して「0」「1」を交互に適用する方法について説明する。
パターン画像が埋め込まれる画像データAの画像サイズは、縦幅640px、横幅480pxとする。また、マスクデータは、図4(a)(b)と同様に、5px×5pxで構成されたマスクデータとし、図4(a)を「0」とし、図4(b)を、「1」と定義する。
例えば、マスクデータは、図4(a)(b)に示すように、黒ブロック401と白ブロック402と斜線ブロック403とによって構成されている。黒ブロック401、白ブロック402、および斜線ブロック403には数値が割り当てわれており、図4(c)(d)に示すように、黒ブロック401は+2、白ブロック402は0、斜線ブロックは-1が割り当てられている。
次の疑似コードにおいて、maskAがtrueの場合、「0」として図4(a)を示し、falseの場合、「1」として、図4(b)を示す。図4(a)(b)の黒、白、斜線ブロックの各数値をマスクデータとし、画像全体に適用する疑似コードを以下に示す。
疑似コード:
――――――――――――――――――――――――――――――
1 int i, j, k, l;
2 int width = 640, height=480;
3 unsigned char *data = 画像データ;
4 int **maskA = マスクデータ;
6 bool isMaskA = true;
5 for(j = 0; j < height; j+=5){
6 for(i = 0; i < width; i+=5){
7 for(k = 0; k < 5; k++){
8 for(l = 0; l < 5; l++){
if(isMaskA == true){
9 data[(i+k)+(j+l)*width] += maskA[k][l];
}
10 }
11 }
12 }
13 }
――――――――――――――――――――――――――――――
上記の疑似コードに示す通り、画像全体を5px×5pxのブロックに分けて、ブロック毎に、maskAのデータを加算させることで、パターン画像を重畳して形成させる仕組みとなっている。また、上記の疑似コードでは、1色のグレー画像データで説明しているが、パターン画像を形成する場合、視覚的に目立ちにくいようなパターン画像を形成させたい場合もある。形成するパターン画像の形状、周波数成分にもよるが、輝度成分の変化より色成分の変化の方が視覚的に目立ちにくいことが知られている。
そこで、本実施形態では画像データの色空間をYUV色空間へ変換する処理を行い、色値を輝度成分と色成分とに分ける。そして、輝度成分ではなく、色成分にマスクデータを適用することで画像にパターン画像を埋め込む。この方法によれば、埋め込まれたパターン画像が視覚的に目立ちにくい画像を生成することができる。
しかしながら、色成分にパターン画像を埋め込む場合、印刷面積の少ない局所領域で画素値の増減を実施すると、ユーザが狙った通りの色を印刷物C上で表現できないことがある。この場合、ブロック単位で入力信号上の平均値が担保されていても再現される色に差が出ることがある。そこで本実施形態の付加情報付与部305は、色変換部308が用いるパラメータとは異なるパラメータを用いてデバイス依存の色空間への色値の変換を行うことで、色味の差が低減するように色変換を行う方法を説明する。
[付加情報付与部の詳細]
図5は、本実施形態における付加情報付与部305の機能の詳細を示すブロック図である。図5を用いて、付加情報付与部305の詳細を説明する。本実施形態の付加情報付与部305は、多重化用色変換部501、YUV色空間変換部502、ブロック位置設定部503、数値化部504、パターン選択部505、情報多重化部506、および色空間逆変換部507を有する。付加情報付与部305は、画像データに対して、パターン画像が埋め込まれたことによる色味変動を抑制するための色変換処理を実施し、さらに、パターン画像を埋め込む処理を行う。
多重化用色変換部501は、PDLデータAのコマンドに基づき描画して得られた画像データAの各画素のRGB色空間の色値(RGB値)をtrimRGB色空間の色値(trimRGB値)へと変換する色変換処理をする。色値をtrimRGB値へと変換することにより、パターン画像を埋め込むことによる色味変動を抑制できる。RGB色空間の色値をtrimRGB色空間の色値へ変換する方法は、多重化用色変換テーブル307を用いて実施する。多重化用色変換部501を第2の色変換部ともよぶ。
本実施形態では、パターン画像の埋め込みの有無によって発生する色味の差が低減するような色変換を行うための多重化用色変換テーブル307を作成してROM202に予め記憶しておく。多重化用色変換テーブル307(第2のパラメータ)は、色変換テーブル309(第1のパラメータ)とは異なる色変換テーブルであって付加情報を埋め込む処理を行わない場合には用いられない色変換テーブルである。多重化用色変換部501は、多重化用色変換テーブル307に基づき色変換をすることで、PDLデータから生成された画像データのRGB値を、デバイスの再現性とパターン画像の埋め込みとを考慮したtrimRGB値に変換処理することができる。
図6は、多重化用色変換テーブル307および通常の色変換テーブル309を説明するための図である。図6の色変換テーブルは、プリンタ103によってPDLデータAに基づき印刷物C上に再現される色が、ディスプレイによってPDLデータAに基づき表示される色と同じ色味となるような変換出力信号値であるR´G´B´値を保持している。
なお、入力されるRGB値を各色8ビット(256階調)とした場合、全組み合わせを保持することは、容量の観点から現実的でないので、本実施形態の色変換テーブルは、所定の間隔で間引かれたものを用いる。図6のテーブルは、RGB各色256階調を17点の17×17×17=4913グリッド(行)とし、4913個のグリッドに対応した変換後のRGB値が保持されている色変換テーブルとなっている。それぞれのグリッドは、図6の「番号」の列が示すように、グリッド番号によって識別される。
例えば、PDLデータA上の入力信号値が(R,G,B)=(0,0,240)とする。この場合、多重化機能がonに設定されたときは、多重化用色変換部501は、図6(a)の多重化用色変換テーブル307の行601を参照して、(R´,G´,B´)=(0,70,220)に変換する。一方、多重化機能がoffに設定されたときは、色変換部308は、図6(b)の色変換テーブル309の行602を参照して、(R´,G´,B´)=(0,65,229)に変換することになる。このように、同一の入力信号であるRGB値に対応した変換後の出力信号値R´G´B´を保持している多重化用色変換テーブル307、色変換テーブル309がROM202に予め記憶されている。このため、多重化機能のon/offに応じて、多重化用色変換テーブル307または色変換テーブル309に切り替えて色変換を実行することで、パターン画像を埋め込む場合と埋め込まない場合とで発生する印刷物上の色の差を低減することが可能となる。
YUV色空間変換部502は、入力された画像データの色値を、パターン画像の埋め込みを実施するための色空間であるYUV色空間の色値に変換する。本実施形態のYUV色空間変換部502は、多重化用色変換部501によって変換されたtrimRGB色空間の色値をYUV色空間の色値に変換する。上述した通り、埋め込まれたパターン画像を視覚的に目立ちにくくするためにパターンを色成分に埋め込むために、YUV色空間変換部502は、画像データの色空間をYUV空間に変換する。例えば、式(1)、式(2)、式(3)により、RGB色空間(trimRGB色空間)の色値は、YUV色空間の色値に変換される。
Y = 0.299×R+0.587×G+0.114×B ・・・(1)
U =-0.169×R-0.331×G+0.500×B ・・・(2)
V = 0.500×R-0.419×G-0.081×B ・・・(3)
本実施形態では、Uプレーンにパターン画像を埋め込むものとして説明を行うが、Y、Vについても同様である。本実施形態では、印刷対象の画像を複数のブロック領域に分けて、ブロック単位で、各画素の濃度変調によりパターン画像を形成することで付加情報Bを埋め込む。本実施形態では、5px×5pxで構成された領域を1ブロックとし、ブロック単位で異なる周期性を備えたパターン画像を埋め込む。このため、画像内にパターン画像を埋め込むためのブロックを設定する必要がある。
ブロック位置設定部503は、YUV色空間へ変換された画像データを取得し、指定したU色プレーンの画像に対し、1つのブロックのサイズに合わせて各ブロックの位置の座標を設定する。例えば、YUV色空間のU色プレーンの画像サイズが、縦幅640px、横幅480pxであり、ブロックサイズが縦幅5px、横幅5pxとする。この場合、縦ブロック数は、640÷5=128から128ブロック数となり、横ブロック数は、480÷5=96から96ブロック数となる。また、合計ブロック数は、128×96=12288から12288ブロック数となる。例えば、ブロック位置設定部503は、これらのブロックの左上座標をブロック位置として設定する。
数値化部504は、付加情報Bを取得して、付加情報Bを数値化したデータに変換する。前述したように付加情報BがシフトJISで規定された文字列の場合はシフトJISの形式で文字と数値とが対応した変換マップを予め保持しておき、数値化部504は、付加情報Bである文字列を数値列のデータ(バイナリデータ)に変換する。
パターン選択部505は、付加情報Bから変換されたバイナリデータに対して適用すべきマスクパターンをブロック毎に決定する。
図4(c)(d)は、周波数特性の異なるマスクパターンを数値化したイメージ図である。図4(c)のマスクパターンは、前述した図4(a)のマスクパターンに対応する。図4(d)のマスクパターンは前述した図4(b)のマスクパターンに対応する。
図4(c)(d)に示すマスクパターンが予め登録されている。例えば、縦幅5px、横幅5pxを1ブロックとし、1ブロックのマスクパターンとして、図4(c)および図4(d)のマスクパターンが用いられる。多重化する数値が「0」の場合は図4(c)のマスクパターンを、多重化する数値が「1」の場合は図4(d)のマスクパターンを、それぞれ用いることで1ブロック毎に「0」または「1」の1ビットを表現できる。
情報多重化部506は、ブロック毎に選択されたマスクパターンを、画像データに適用することでパターン画像を埋め込む処理を行う処理部である。後述する多重化デコード処理において印刷物Cを読み取る場合、必ずしも印刷物C全体を読み取ることができるとは限らない。このため、印刷物Cの一部のみが読み取られた場合でも付加情報Bを抽出できるように、情報多重化部506は同じデータを複数個所に埋め込む。
例えば、画像全体のブロック数が12288ブロックで、一つの付加情報の単位を96ブロックとすると、情報多重化部506は、12288÷96=128から、同じ付加情報Bを128領域に分けて埋め込む。つまり、画像データを128の領域に分けることになる。1つの領域には、縦幅5px、横幅5pxを1ブロックとした96ブロックが含まれる。96ブロックが1つの付加情報Bを埋め込む領域となるので、96ビットの情報を埋め込むことができる。但し、開始位置がわかるように、シフトJISでは文字として表現していない「11111111」の8ビットを文字の先頭に含ませる。従って、96-8=88から88ビットのデータを付加情報Bとして埋め込むことが可能となる。
88ビット内に収まるデータとして、数値化部504で設定した「0」「1」のバイナリデータが用いられる。ブロック毎に、数値が定義され、定義された数値に従って、図4(c)または図4(d)の何れかのマスクパターンが選択される。そして、情報多重化部506は、図4(c)(d)に示すマスクパターン内の数値と多重化パラメータ306とを掛け合わせた数値を元の画素値に加算することで、パターン画像の埋め込み後の画素値を決定する。
図7は、多重化パラメータを説明するための図である。多重化パラメータ306は、パターン画像を埋め込む際に用いる係数であり、YUV空間に色変換した画像データのUプレーンの値に対応した係数を保持するテーブルである。
例えば、YUV色空間変換部502によって色変換された後の画像内における1ブロック(5px×5px)内の画素のYUV値が全て、(Y,U,V)=(0,-112,0)であったとする。この場合、図7の多重化パラメータ306に従うと行701から係数は2となる。よって、情報多重化部506は、図4(c)または(d)に示すマスクパターン内の数値(マスク値)が「0」の場合は、係数である2とマスク値である0を掛け合わせた2×0=0をU値-112に加算し、U値を「-112」に変換する。また、マスク値が「-1」の場合は係数である2とマスク値―1を掛け合わせた2×(-1)=-2を加算し、U値を「-114」に変換する。また、マスク値が「2」の場合は、係数である2とマスク値2を掛け合わせた2×2=4を加算し、U値を「-108」に変換する。このように、U値が-112である画素の色値は、多重化パラメータ306と、マスクパターンによって-112、-114、-108のいずれかに変更され所定の周期をもつことになる。
色空間逆変換部507は、YUV色空間変換部502で変換した色空間を元の色空間に戻す処理を行う。YUV色空間から、あるRGBの色空間に戻す場合、例えば、式(4)、式(5)、式(6)により、YUV色空間をRGBの色空間に変換する。なお、本実施形態では、元の色空間であるtrimRGB色空間に変換されることになる。
R = 1.000×Y+1.402×V ・・・(4)
G = 1.000×Y-0.344×U-0.714×V ・・・(5)
B = 1.000×Y+1.772×U ・・・(6)
上述した通り、多重化機能がonの場合は、パターン画像の埋め込みを考慮した多重化用色変換テーブル307を用いた色変換を実施する。このため、パターン画像を埋め込むことにより発生する色の差である、印刷物C上に再現された画像の色とユーザが意図する色(ディスプレイに表示された際の色)との差を低減することが可能となる。
[多重化エンコード処理の流れ]
図8は、本実施形態の多重化エンコード処理の流れを示すフローチャートである。図8のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。また、図8におけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味し、以後のフローチャートにおいても同様とする。
S801においてPDLデータ取得部301はPDLデータAを取得し、描画部302は、PDLデータAに基づきビットマップ形式の画像データAと属性データを生成する。また、画像補正部303によって画像データAに対して所定の補正がされる。なお、描画部302は、プリンタ103への入力解像度に応じた画素数で描画してビットマップ形式の画像データを生成する。プリンタ103への入力解像度が600dpi(dot per inch)とした場合、例えば、用紙サイズA4の画素数は、5000×7000画素となる。
S802において多重化機能判定部304は、RAM203に記録されている多重化機能のon/offの設定値を確認し、パターン画像の埋め込みを実施するか否かを判定する。判定の結果、多重化機能がonに設定されており、パターン画像の埋め込みを実施する場合にはS803に進む。
S803において付加情報付与部305は、印刷対象の画像データに埋め込む付加情報Bのデータを取得する。例えば、スマートフォンで、任意にキー入力を行ったテキスト文書データが付加情報Bのデータとして取得される。テキスト文書データは、例えば、数字や文字からなる文字列である。
S804において付加情報付与部305は、S401において取得されたビットマップ形式の画像データAのすべての画素に対して、付加情報Bを意味するパターン画像を埋め込む多重化処理を実行する。S804における付加情報付与部305による処理の詳細は、図5を用いて説明した通りであるため省略する。
一方、パターン画像の埋め込みを実施しないと判定された場合はS805に進む。S805において色変換部308は、画像データに対して通常の色変換テーブル309を用いて、RGB色空間の色値をDeviceRGB色空間の色値へ変換する。
S805またはS804の処理が完了した場合はS806に進む。S806においてインク色変換部310は、色変換された画像データに対して適宜、インク分解処理を行い、DeviceRGB値またはtrimRGB値をインク色の色値へ変換する。
S807において濃度補正部312は、付加情報を多重化した画像データに対して濃度補正を加える。そして、階調変換部314は、階調数に従って階調変換を行って印刷用データを生成する。
S808においてCPU201は、階調変換された画像データ(印刷用データ)を、プリンタ103へ送信する。プリンタ103では、記録媒体に、階調変換された画像に応じて各色のインクが塗布され、印刷物Cが生成される。
[多重化デコード処理の説明]
印刷物Cに埋め込まれた付加情報Bを取り出すには、スキャナまたは携帯端末の内蔵カメラ等の撮像デバイスで対象の印刷物を撮像し、その撮像画像を解析することで画像に埋め込まれた付加情報を取り出す。
図9は、画像情報から付加情報を抽出する多重化デコードを行う画像処理装置であるカメラ付きモバイル端末901のハードウェア構成を示す図である。カメラ付きモバイル端末901は、多重化エンコード処理して生成された印刷物Cをカメラなどで撮像して得られた画像を解析することで、印刷物Cに埋め込まれている付加情報Bを抽出する装置である。
撮像センサ902は、印刷物Cを撮像する機能を有する。付加情報分離装置903は、撮像センサ902が撮像して得られた画像を解析することによって、付加情報Bを抽出する。付加情報を抽出する処理の詳細については、後述する。
CPU904は、中央演算装置であり、プログラムに従って各処理を実行する。ROM905は、CPU904によって実行されるプログラムを記憶する。RAM906は、CPU904によるプログラムの実行時に各種情報を一時的に記憶するためのメモリを提供する。二次記憶装置907は、例えばハードディスクであり、画像ファイルや画像解析結果を保存するための記憶媒体である。ディスプレイ908は、抽出された付加情報をユーザに表示する。入力装置909は、例えばディスプレイ908がタッチパネル機能を備えることで実現され、タッチパネルを介してユーザによって指示された処理および文字入力等を受け付ける。ネットワークインタフェース910は、例えば無線LAN(Local Area Network)に接続されている。また、LANは、インターネットに接続されている。CPU904は、インターネットに接続されたサイトにアクセスして、ディスプレイ908にサイトの画面を表示し、データを送受信する。抽出された付加情報が音声データまたは音声付動画データの場合、スピーカ911は、付加情報Bが示す音声を出力する。また、スピーカ911は、付加情報BがURLの場合であってインターネットを介してアクセスした先に動画データがある場合には、その動画データにより再生される音声を出力する。
カメラ付きモバイル端末901は、撮像センサ902を内蔵しているが、撮像センサ902が含まれない構成でもよい。例えば、CPU904は、カメラ付きモバイル端末901とは別の装置に含まれる撮像センサが印刷物Cを撮像した結果得られた画像を取得するように制御してもよい。例えば、撮像センサ902の代わりにデジタルカメラ、ビデオカメラが用いられてもよい。そして付加情報分離装置903の機能を含むパソコンやスマートフォンが、印刷物Cの撮像画像を取得して付加情報Bを抽出してもよい。
図10は、カメラ付きモバイル端末901における多重化デコード処理の基本ファームウェアによって実現される機能構成を示すブロック図である。以下に説明する各機能により、印刷物Cに埋め込まれている付加情報Bが抽出される。本実施形態では、テキスト文書データ、音声データ、または動画データなどの付加情報Bを示すバイナリデータが、印刷物C上にパターン画像として埋め込まれているのとする。前述したとおり、印刷物C全体に同じ付加情報Bが領域毎に複数埋め込まれているものとして説明する。
撮像センサ902は、撮像部1001と色調整部1002とを有する。撮像部1001は、付加情報Bが埋め込まれた印刷物Cを、撮像センサ902内の撮像素子を用いて、センサ値を示すデータに変換する。例えば、撮像センサ902内の撮像素子はCCDである。撮像素子であるCCDについては公知の技術なので詳細は省略する。撮像部1001によって得られたセンサ値は、色調整部1002に送られる。色調整部1002は、撮像部1001においてフォトダイオードで取り出したセンサ値に対し、例えば、1画素の色値がYUV色空間の8ビットデータである撮像画像データに変換する。また、色調整部1002は、ホワイトバランス、および明るさ調整など通常撮像時に実行される色調整処理も併せて行う。
付加情報分離装置903は、多重化位置検出部1003、付加情報分離部1004、抽出データ解析部1005を有する。多重化位置検出部1003は、付加情報Bが埋め込まれた印刷物Cを撮像して得られた撮像画像データであって色調整された撮像画像データを取得する。多重化位置検出部1003は、取得した撮像画像データの周波数特性を取得する。多重化位置検出部1003は、取得した周波数特性に基づき多重化信号を判定することで、付加情報Bが多重化されている領域の位置を検出する。
図11(a)は、二次元の周波数領域で周波数特性の差を示す概略図である。横軸は水平方向の周波数、縦軸は垂直方向の周波数を示している。中心となる原点は直流成分を示し、原点から遠ざかるにつれて、高周波域となる。本実施形態では、図4(c)(d)のマスクパターン画像の切換えにより、多重化された印刷物のYUV色空間におけるU成分の周波数特性が変わる。
例えば、図4(c)のマスクパターンを適用したときのU成分の特性の変化により、直線1101の周波数ベクトル上に大きなパワースペクトルが生じる。また、図4(d)のマスクパターンを適用したときのU成分の特性の変化により、直線1102の周波数ベクトル上に大きなパワースペクトルが生じる。付加情報Bの分離時には、この大きなパワースペクトルが発生する周波数ベクトルを検出することで多重化信号を判定することができる。
図4(c)、(d)のマスクパターンは、特定の周波数ベクトルの方向性を有するHPF(ハイパスフィルタ)に相当する。このため、図4(c)、(d)のマスクパターンを、周波数ベクトルを検出するための空間フィルタとしても用いる。例えば、図4(c)のマスクパターンに対応する空間フィルタは、図11(a)中の直線1101上の周波数ベクトルを強調することが可能である。図4(d)のマスクパターンに対応する空間フィルタは、図11(a)中の直線1102上の周波数ベクトルを強調することが可能である。
例えば、図4(c)のマスクパターンを適用することにより、図11(a)の直線1101の周波数ベクトル上に大きなパワースペクトルが発生したとする。この場合、そのパワースペクトルの変化量は、図4(c)のマスクパターンに対応する空間フィルタによって増幅されるものの、図4(d)のマスクパターンに対応する空間フィルタによっては殆ど増幅されない。即ち、複数の空間フィルタを並列にフィルタリングした場合、パワースペクトルは、周波数ベクトルが一致した空間フィルタによってのみ増幅され、それ以外の空間フィルタによってはほとんど増幅されない。従って、パワースペクトルを増幅させた空間フィルタを特定することにより、いかなる周波数ベクトル上に大きなパワースペクトルが発生したかを判定することができる。
このように周波数特性の判定を行うことで、埋め込まれた情報を抽出することが可能となる。しかしながら、周波数特性を判定する際の検出位置がずれていると、周波数特性を正しく判定できなくなることがある。
図12は、周波数特性を判定する際の検出位置を説明するための図である。図12に示すように、印刷物1201には、4つのブロックで、それぞれ多重化処理されている。図12(a)では、ブロック単位の周波数特性を判定する点線で囲われた矩形の判定領域1202が複数のブロックにまたがっており、判定領域1202がブロックの位置からずれている。一方、図12(b)では、ブロック単位の周波数特性を判定する判定領域1203が多重化されているブロックの位置と一致しており、判定領域1203が複数のブロックにまたがっていない。図12(b)に示す判定領域1203では、周波数特性を正しく判定することができる。一方、図12(a)に示す判定領域1202では、特定の周波数ベクトルのパワースペクトルが下がってしまい、周波数特性を正しく判定することが難しい。
多重化位置検出部1003は、特定の周波数ベクトルのパワースペクトルが強いか弱いかに基づいて、多重化されたブロックのある位置を検出する。具体的には、多重化位置検出部1003は、取得した印刷物Cの撮像画像に対し、判定領域をずらしながら周波数特性を検出し、検出した周波数特性を判定することによって、多重化されたブロックの位置を特定する。
付加情報分離部1004は、多重化位置検出部1003が検出したブロックの位置を基準とし、周波数特性を判定した結果を利用して多重化されている付加情報Bを抽出する。
図11(b)は、印刷物に多重化された夫々のブロックがある様子を示す図である。印刷物1103上の矩形の各領域は、多重化されているブロックであり、ブロック1104はそのうちの1つのブロックであることを示す。多重化されているブロック数が横8ブロック、縦12ブロック、計96ブロックとする。印刷物1103には、多重化エンコード処理によって、ブロック毎に付加情報Bを示す「0」と「1」とが埋め込まれているものとする。
例えば、図11(a)の、直線1101の周波数ベクトルのパワースペクトルがある閾値を超えていれば、データ「0」と判定される。また、直線1102上の周波数ベクトルのパワースペクトルがある閾値を超えていれば、データ「1」と判定される。多重化位置検出部1003で検出した位置を基準に、ブロック単位で、96ブロック分、位置をずらしながら、周波数特性の判定が行われる。この場合、1ブロック毎に、「0」「1」の1ビットを判定できるので、印刷物1103から、合計96ビットのデータを抽出することができる。このように、位置をずらしながら周波数特性の判定を行うことで、多重化されたデータを抽出することができる。
抽出データ解析部1005は、付加情報分離部1004が印刷物の撮像画像から分離して得られた数値列データを解析し、数値列データを、印刷物に埋め込まれた付加情報Bの元の形式に変換する。
例えば、多重化する付加情報Bはテキスト文書データであるものとし、多重化したブロックに埋め込まれた数値列は、テキストの文字コードを「シフトJIS」で変換した数値であるとする。付加情報Bとして撮像画像データから分離して得られた数値列は、RAM906に一時的に保持される。そして、二次記憶装置907に予め記憶されている「シフトJIS」変換マップを参照可能な状態にしておく。
例えば、付加情報分離部1004が撮像画像から分離して得られた数値列が、「0110100001100101011011000110110001101111」とする。この場合、「シフトJIS」変換マップに対応させると以下のようになる。上位4ビット「0110」、下位4ビット「1000」で、文字「h」となる。上位4ビット「0110」、下位4ビット「0101」で、文字「e」となる。上位4ビット「0110」、下位4ビット「1100」で、文字「l」となる。上位4ビット「0110」、下位4ビット「1100」で、文字「l」となる。上位4ビット「0110」、下位4ビット「1111」で、文字「o」となる。従って、抽出データ解析部1005は、元の形式の付加情報Bのデータとして、文字列「hello」を抽出することができる。
以上、説明したように本実施形態では、パターン画像の埋め込みによる印刷物上での色の変化を考慮した多重化用の色変換を、付加情報Bを付与するよりも前に実施する方法を説明した。これによって、パターン画像を埋め込んだ場合に発生する、印刷部C上に再現された色とユーザが意図した色との差を低減することが可能となる。
なお、本実施形態では、多重化機能判定部304を備え、機能のon/offに応じた2種類の印刷フローを備える例を説明したが、本実施形態はこの例に限定されない。多重化機能判定部304を備えず、常に付加情報の埋め込みを実施する印刷フローのみを実行する装置であってもよい。この形態であっても、パターン画像の埋め込みを考慮した色変換を実施することで、パターン画像を埋め込んだ場合に発生するユーザが意図した色との差を低減することが可能となる。
また、本実施形態では、入力装置206を介してユーザが多重化機能のonかoffかを切り替える例を説明したが、他にも、ユーザによる印刷指示時に多重化機能のonかoffかを指定可能な構成であってもよい。例えば、PDLデータAが用紙サイズなどの印刷設定を含むデータである場合、ユーザが印刷指示時に指定した多重化機能がonかoffかを示す内容が印刷設定に含まれていてもよい。そして、多重化機能判定部304は印刷設定に基づく判定を行ってもよい。
また、本実施形態では、マスクデータの適用方法として、画像内を5px×5pxブロックに分けるものとして説明したが、他にも、他のブロックサイズでもよいし、マスク形状であってもよい。即ち、多重化された印刷物Cを撮像した際にパターンを区別できる仕組みであれば、いずれの方法が用いられてもよい。
また、本実施形態では、パターン画像を埋め込むための色空間としてYUV空間を例に説明したが、色空間はYUV色空間に限定されない。パターン画像を埋め込むための色空間は、輝度成分と色成分とに分離可能な色空間であればよく、YUV空間の他にも、Labの色空間、YCrCbの色空間であってもよい。
[多重化用色変換テーブルのキャリブレーションについて]
ハードウェアの個体差のような内的要因または温度、湿度といった外的要因によって、プリンタ103が印刷物上に再現する色が変動することがある。そのため、予め設計した多重化用色変換テーブル307を用いて色変換を行うと、印刷物上に再現された色とユーザが意図した色とに差が生じてしまうことがある。
図3(b)は、図3(a)とは異なる、付加情報多重化装置102におけるエンコード処理のための基本ファームウェアの機能ブロックの構成を示す図である。図3(b)に示すように、付加情報多重化装置102は、多重化用色変換テーブル307を補正処理(キャリブレーション)する多重化用色変換テーブル補正部315を有していてもよい。
図13は、多重化用色変換テーブル307の補正処理の流れを示すフローチャートである。図13のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。多重化用色変換テーブル補正部315によるキャリブレーションの詳細について図13を用いて説明する。なお、多重化用キャリブレーションチャート316は、予めROM202に備えられている。
S1301において多重化用色変換テーブル補正部315は、ROM202に記憶されている多重化用キャリブレーションチャート316をRAM203に読み込む。そして、多重化機能判定部304が多重化機能をoffと判定した場合の条件で、多重化用キャリブレーションチャート316を印刷させるための処理を行う。即ち、色変換部308が色変換処理を行って、その後、インク色変換部310、濃度補正部312、階調変換部314がそれぞれの処理を行って、多重化用キャリブレーションチャート316のインク色データである印刷用データが生成される。生成された印刷用データはプリンタ103に送信されて、プリンタ103に印刷を行わせる。
図14(a)は、多重化用キャリブレーションチャート316の模式図を示す図である。多重化用キャリブレーションチャート316の各パッチは、多重化用色変換テーブル307の各グリッド番号の変換前のRGB値と対応している。例えば、パッチ1401は、図6の多重化用色変換テーブル307のグリッド番号が「1」のRGB値である(R,G,B)=(0,0,0)に対応している。パッチ1402は、多重化用色変換テーブル307のグリッド番号が「2」のRGB値である(R,G,B)=(0,0,16)に対応している。このため、パッチはグリッド番号と同じ数だけあることになる。
S1302において多重化用色変換テーブル補正部315は、S1301の結果得られた印刷物を不図示の読取装置が読み取ることで得られた読取画像を取得する。そして、読取画像内の各パッチに対応する領域を測色し、パッチ毎の色値を取得する。取得される色値は、例えば公知のLab値とする。不図示の読取装置は、例えば、プリンタ103に備えられており、印刷物を生成した後に印刷物を読取可能な位置に備えられている。
S1303において多重化用色変換テーブル補正部315は、ROM202に記憶されている多重化用キャリブレーションチャート316をRAM203に読み込む。そして、多重化機能判定部304が多重化機能をonと判定した場合の条件で、多重化用キャリブレーションチャート316を印刷させるための処理を行う。即ち、付加情報付与部305がtrimRGB色空間への色変換とパターン画像の埋め込みを行う。
その後、インク色変換部310、濃度補正部312、階調変換部314がそれぞれの処理を行って、パターン画像が埋め込まれた多重化用キャリブレーションチャート316のインク色データ印刷用データが生成される。多重化用キャリブレーションチャート316にパターン画像を埋め込む場合、全面均一のパターン画像を埋め込めばよい。例えば、パッチ内を全て図4(a)の「0」を示すパターンで埋め尽くすようにパターンを埋め込む。または、パッチ内を全て図4(b)の「1」を示すパターンで埋め尽くすようにパターンを埋め込む。生成されたインク色データはプリンタ103に送信されて、プリンタ103に印刷を行わせる。
図14(b)は、S1303の処理の結果、パターン画像が埋め込まれたキャリブレーションチャートの模式図である。図14(b)に示すように、S1303の処理の結果、図14(a)とは異なり、各パッチにパターン画像が埋め込まれた多重化用キャリブレーションチャート316が印刷される。
S1304において多重化用色変換テーブル補正部315は、S1303の結果得られたキャリブレーションチャートの印刷物を不図示の読取装置が読み取ることで得られた読取画像を取得する。そして、読取画像内の各パッチを測色しパッチ毎の色値を取得する。取得される色値は、S1302と同様に公知のLab値とする。
S1305において多重化用色変換テーブル補正部315は、多重化用色変換テーブルの補正値を探索するための探索用のテーブルを作成し、RAM203に保持する。
図15は、探索用テーブル1500の模式図を示す図である。探索用テーブルの列1502における変換後の色値を保持する列には、現在の多重化用色変換テーブル307における変換後のR´G´B´の各信号値が、対応するグリッド番号ごとに保持される。また、探索用テーブルの列1501における探索用Labの信号値は、S1304で測色して得られた各グリッド番号(パッチ)に対応するLab値が保持されるように、探索用テーブルが生成される。即ち、本フローチャートにおいて生成される探索用テーブルの列1501には、パターン画像を埋め込んで生成された多重化用キャリブレーションチャート316を測色して得られたLab値が保持される。
S1306において多重化用色変換テーブル補正部315は、S1302で取得した各パッチのLab値とS1305で作成した探索用テーブルとを用いて、多重化用色変換テーブル307を更新する。
図13(b)は、色変換テーブルの更新ステップの詳細を説明するためのフローチャートである。図13(b)を用いてS1306の多重化用色変換テーブル307の更新処理の詳細に説明する。
S1311において多重化用色変換テーブル補正部315は、補正対象の多重化用色変換テーブル307をRAM203に読み出す。
S1312~S1315はループ処理であり、補正対象の多重化用色変換テーブル307の全グリッド番号の変換後のR´G´B´の値を更新するまで、S1312~S1315を繰り返す。即ち、S1312において多重化用色変換テーブル補正部315は未補正のグリッド番号の中から補正対象のグリッド番号を選択する。そして選択された補正対象のグリッド番号の色値に対して、S1313~S1314の処理が行われる。補正対象のグリッド番号に対する処理が終了すると、再度、未補正のグリッド番号の中から補正対象が選択される。未補正のグリッド番号がなくなったらS1316に進む。
S1313において多重化用色変換テーブル補正部315は、S1312で選択した補正対象のグリッド番号の補正値を算出する。補正値の算出方法は、多重化機能がoffの場合のLab値に対応するRGB値を、S1305で作成した探索用テーブルを用いて補間処理を行うことで算出して、算出されたRGB値を補正値とする。具体的には、まず、S1312で選択した補正対象のグリッド番号に対応するLab値を、S1302で得られた多重化機能がoffの場合のLab値群から選択する。次に選択したLab値を入力値として、S1305で生成された探索用テーブルを用いて、公知の四面体補間によってRGB値を算出する。
S1314において多重化用色変換テーブル補正部315は、多重化用色変換テーブル307における補正対象のグリッド番号に対応する変換後R´G´B´値を、S1313で算出したRGB値で置換することで補正を行う。
図16は本処理における補正後の多重化用色変換テーブルの一例を示したものである。例えば、処理対象として選択されているグリッド番号が「16」であり、S1313で算出された補正値が(R,G,B)=(0,72,221)であったとする。この場合、行1601に示すように多重化用色変換テーブル307のグリッド番号が「16」の変換後のR´G´B´の値を保持するセルには、(R´,G´,B´)=(0,72,221)が保持されるように多重化用色変換テーブル307が更新されている。
S1315において多重化用色変換テーブル補正部315は、すべてのグリッド番号の補正が完了したかを判定する。判定の結果すべてのグリッド番号での補正が完了していればS1316に進む。そうでなければ、S1312に戻り更新が完了していないグリッド番号を選択して処理を繰り返す。
S1316において多重化用色変換テーブル補正部315は、補正が完了した多重化用色変換テーブル307をROM202に記憶しテーブルの補正処理を完了する。
[DeviceRGB色空間への色変換テーブルのキャリブレーション]
付加情報多重化装置102は、DeviceRGB値へ色変換するために用いられる通常の色変換テーブル309をキャリブレーションする色変換テーブル補正部318(図18(b)参照)を有してもよい。通常の色変換テーブル309を補正することで、プリンタ103に含まれるハードウェアの個体差のような内的要因または外的要因によって発生する、印刷物上で再現される色の変動を抑制することができる。
図17は、色変換テーブル309の補正処理の流れを示すフローチャートである。図17のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。
S1701において色変換テーブル補正部318は、ROM202に記憶されている各グリッド番号のRGB値に応じた目標となる色値をRAM203に読み込む。目標となる色値は公知のLab値であり、キャリブレーションチャートのパッチごと(グリッド番号ごと)に目標となる色値がROM202に記憶されているものとする。本フローチャートで使用されるキャリブレーションチャート319は前述した多重化用キャリブレーションチャート316と同一であるが説明の便宜上、多重化用キャリブレーションチャート316とは別の付番を付して説明する。目標となる色値を以下でLabtarget_xと定義して説明する。末尾のxはグリッド番号に相当する。
S1702~S1703は、S1301~S1302と同様の処理である。即ち、S1702において色変換テーブル補正部318は、ROM202に記憶されているキャリブレーションチャート319をRAM203に読み込む。そして、多重化機能判定部304が多重化機能をoffと判定した場合の条件で、キャリブレーションチャート319を印刷させるための処理を行う。
S1703において色変換テーブル補正部318は、S1702の結果得られた印刷物を不図示の読取装置が読み取ることで得られた読取画像を取得する。そして、読取画像内の各パッチを測色しパッチ毎の色値を取得する。取得される色値は、例えば、公知のLab値とする。キャリブレーションチャート319の各パッチは、色変換テーブル309の各グリッド番号の変換前のRGB値と対応している。
S1704において色変換テーブル補正部318は、色変換テーブル309の補正値を算出するための探索用のテーブルを生成し、RAM203に保持する。探索用のテーブルの形式は、図15の探索用テーブル1500と同様の構成である。ただし、色変換テーブル309を補正する場合の探索用テーブルは、列1502における変換後のRGB値の各信号値には、現在の色変換テーブル309における変換後の色値の各信号値であるR´G´B´の値が、対応するグリッド番号ごとに保持される。また、探索用テーブルの列1501における探索用Labの信号値には、S1703で多重化機能をoffにした場合のキャリブレーションチャートを測色して得られたパッチに対応するLab値の各値が各グリッド番号に保持される。
S1705において色変換テーブル補正部318は、S1701で取得した各パッチのLab値と、S1704で作成した探索用テーブルとを用いて、色変換テーブル309を更新する。更新された色変換テーブル309はROM202に保存される。
S1705の詳細な処理は図13(b)のフローチャートの処理と同じである。即ち、色変換テーブル補正部318は、補正対象の色変換テーブルを色変換テーブル309と置き換えてS1311~1316の処理を行う。
S1705の色変換テーブルの更新処理におけるS1313の補正値の算出処理では、まず、補正対象のグリッド番号に対応するLab値を、S1701で取得した目標のLab値群から選択する。次に選択した目標値のLab値を入力値として、S1704で生成された探索用テーブルを用いて、公知の四面体補間によってRGB値を算出する。この算出されたRGB値が補正値となる。
以上の処理を実施することで、色変換テーブル309の更新を実施することで、ハードウェアの個体差のような内的要因および温湿度といった外的要因によって発生するユーザの意図する色と印刷物に再現された色との差を低減することが可能となる。このように前述した多重化用色変換テーブル307の補正と異なり、パターン画像を埋め込まないキャリブレーションチャートのみを用いて補正を実施することが可能である。
また、印刷物上に再現される色の変動を抑制する方法として、色変換テーブル309を補正する例を説明したが、補正対象は色変換テーブル309に限定されない。ハードウェアの個体差のような内的要因および温湿度といった外的要因による変動を抑制するように他のテーブルを補正してもよい。例えば、図3に記載の色分解テーブル311や濃度補正テーブル313を補正して、内的要因および外的要因による変動を抑制する構成であってもよい。
なお、本実施形態で述べた色変換テーブルのキャリブレーションはプリンタ103の状態、プリンタ103の設置された環境を考慮した補正であるため、定期的に実施することが望ましい。例えば、プリンタ103本体の起動された場合、前回の補正時から所定の期間経過した場合、印刷枚数が規定した数に到達した場合等のタイミングで、キャリブレーションが実施されることが望ましい。例えば、ディスプレイ205にキャリブレーションの実行を促すメッセージを上述したタイミングで表示する機能を備えてもよい。上述したキャリブレーションを実行することで、ハードウェアの個体差のような内的要因および温湿度といった外的要因によって発生する、印刷物に再現される色の差を低減することが可能となる。
<第1の実施形態の変形例>
上述の説明では、パターン画像を埋め込んだことによる色の変化を抑制するための色空間であるtrimRGB色空間への色変換を、情報多重化部506がパターン画像を埋め込む処理を行う前に実行した。他にも、情報多重化部506がパターン画像を埋め込む処理を行った後に、trimRGB色空間への色変換処理を行ってもよい。本例によっても、画像データAにパターン画像を埋め込むことで発生する、印刷物Cに再現された色とユーザが意図した色との差を低減することができる。
図5(b)は、本変形例の付加情報付与部305内の機能構成を示す図である。図5(a)と同一の処理ブロックについては同じ番号を付して説明を省略する。本変形例の付加情報付与部305では、はじめに、YUV色空間変換部502によって画像データAの色空間をYUV色空間の画像へ変換する。そして、情報多重化部506は、YUV色空間のU値を変換することでパターン画像を埋め込む。そして、色空間逆変換部507によってパターン画像が埋め込まれた画像データAの色空間を、YUV色空間から元のRGB色空間に変換する。
そして本実施形態では、この次のタイミングで、多重化用色変換部501が多重化用の色空間であるtrimRGB色空間への色変換を行う。本変形例の方法によっても、パターン画像を埋め込んだことにより発生する、印刷物上の色とユーザが意図した色との差を低減することが可能となる。
<第2の実施形態>
本実施形態では、色変換部308によって画像データの色空間をDeviceRGB色空間に色変換するタイミングが、第1の実施形態と異なる方法を説明する。本実施形態については、第1の実施形態からの差分を中心に説明する。特に明記しない部分については第1の実施形態と同じ構成および処理である。
[多重化エンコード処理に係る機能構成]
図18(a)は、本実施形態における付加情報多重化装置102の多重化エンコード処理に係る基本ファームウェアのブロック構成を示す図である。第1の実施形態と同一の処理ブロックについては同じ番号を付して説明を省略する。
図18(a)の色変換部308は、図3(a)の色変換部308と同様に画像データの色空間をDeviceRGB色空間に変換する処理を行う。しかしながら図18(a)の色変換部308は、図3(a)とは異なり、多重化機能判定部304の判定よりも前に、DeviceRGB値への色変換を実行する。また、本実施形態の多重化エンコード処理の流れは、図8のフローチャートの処理とは異なり、S805のステップは、S802の前に行われることになる。
図19(a)は、本実施形態の付加情報付与部305の機能構成を示す図である。本実施形態の付加情報付与部305には、色変換部308によってDeviceRGB色空間の色値に色変換された後の画像データAが入力される。このため、本実施形態の付加情報付与部305の多重化用色変換部501は、DeviceRGB値に変換された画像データに対し、パターン画像の埋め込みによる変動を考慮した多重化用色変換テーブル1801を用いてtrimRGB値への色変換をする。
[多重化用色変換テーブル]
図20は、第2の実施形態の多重化用色変換部501が用いる多重化用色変換テーブル1801を示す図である。テーブルの形式は第1の実施形態で説明した多重化用色変換テーブル307と同様である。第1の実施形態の多重化用色変換テーブル307と本実施形態の多重化用色変換テーブル1801との違いは変換前のRGBの色空間である。第1の実施形態の多重化用色変換テーブル307はPDLデータAの入力信号値のRGB値を変換することを前提としていた。一方、本実施形態の多重化用色変換テーブル1801は、印刷物での色の再現性を考慮したプリンタ向けのRGB値(DeviceRGB値)をtrimRGB値へ変換するテーブルである。
例えば、ある色を印刷物上で再現するための色値が、多重化機能をonにした場合は(R´,G´,B´)=(0,5,230)であり、多重化機能をoffにした場合は(R´,G´,B´)=(0,0,240)であったとする。この場合、多重化用色変換テーブル1801では、(R´,G´,B´)=(0,0,240)の色値が、(R´,G´,B´)=(0,5,230)の色値に変換されるように値が保持されている。他の色に関しても、同様の構成となるように色値が保持されている。
通常の色変換テーブル309による色変換を実行した後に、多重化用色変換テーブル1801を用いて色変換を実行することで、通常の色変換テーブル309と多重化用色変換テーブル307とを合成したテーブルで色変換を実行するのと同等の結果が得られる。言い換えれば、図6(b)と図20とのテーブルを合成したテーブルが第1の実施形態における図6(a)の多重化用色変換テーブル307と等価となるような関係となる。
以上説明したように本実施形態では、パターン画像の埋め込みによる印刷物上の色の変化を考慮した色変換を、通常の色変換テーブル309と多重化用色変換テーブル1801とを用いて行う。即ち、DeviceRGB色空間への変換と、DeviceRGB色空間からtrimRGB値への変換と、に分けて実行する。このため第1の実施形態と同様に本実施形態によれば、パターン画像を埋め込むことにより発生する、印刷物上の色とユーザの意図した色との差を低減することが可能となる。
なお、本実施形態においても、ハードウェアの個体差のような内的要因および温湿度といった外的要因によって発生する、印刷物に再現された色の変動を抑制するために、色変換テーブル309を補正する色変換テーブル補正部318を有してもよい。図18(b)は、色変換テーブル補正部318を有する、付加情報多重化装置102の機能ブロックの構成を示す図である。図18(b)には図示しないが、印刷物上に再現される色の変動を抑制するために、付加情報多重化装置102は、多重化用色変換テーブル1801を補正する多重化用色変換テーブル補正部を色変換テーブル補正部318に代えて有していてもよい。
<第2の実施形態の変形例>
なお、第1の実施形態の変形例と同様に、本実施形態でも、情報多重化部506がパターン画像を埋め込む処理を行った後に、trimRGB色空間への色変換処理が実行されてもよい。
図19(b)は、本変形例の付加情報付与部305内の機能構成を示す図である。図19(a)と同一の処理ブロックについては同じ番号を付して説明を省略する。本変形例では、はじめに、YUV色空間変換部502によって画像データAの色空間をYUV色空間の画像へ変換する。そして、情報多重化部506は、YUV色空間のU値を変換することでパターン画像を埋め込む。そして、色空間逆変換部507は、パターン画像が埋め込まれた画像データAの色空間を、YUV色空間から元のDeviceRGB色空間に変換する。
そして、多重化用色変換部501は、パターンが埋め込まれたDeviceRGB色空間の画像データに対して、多重化用色変換テーブル1801を用いて、多重化用の色空間であるtrimRGB色空間への色変換を行う。このため本変形例によっても、パターン画像を埋め込んだことにより発生する、印刷物上の色とユーザが意図した色との差を低減することが可能となる。
<第3の実施形態>
第1の実施形態の変形例および第2の実施形態の変形例では、パターン画像を埋め込んだ後に多重化用の色変換を行うことで、パターン画像を埋め込むことにより発生する、印刷物に再現された色とユーザが意図した色との差を低減する方法を説明した。しかしながら、この方法では、図4(c)または(d)に示すマスクパターンを適用することでU成分に生じさせた周波数ベクトル上での特定の方向のパワースペクトルが低減してしまう虞がある。このため、多重化デコードの精度が低減する虞がある。
多重化デコードの精度が低減する理由について説明する。パターン画像を埋め込んだ後に色変換が行われると、画像データAにおける5px×5pxの1ブロック内のRGB値の差が小さくなる可能性がある。この場合、画像データAに基づきプリントして得られた印刷物C上での1ブロック内の色の差も小さくなる。よって、印刷物Cの撮像画像における1ブロック内のU成分の特性の変化が小さくなり、多重化デコード時にU成分の周波数ベクトル上での特定の方向のパワースペクトルが小さくなる。多重化デコード時では、印刷物Cを撮像して得られた撮像画像のU成分から、周波数ベクトル上での特定の方向のパワースペクトルを検出することで付加情報Bを抽出する。このため、パワースペクトルが小さくなると、付加情報Bが抽出されにくくなり、多重化デコードの精度が低下する虞がある。
そこで実施形態では、パターン画像を埋め込んだことによる印刷物上での色の変化を低減し、かつ、U成分に生じる周波数ベクトル上での特定の方向のパワースペクトルを維持するように各画素の色値を変換する方法を説明する。本実施形態については、第1の実施形態からの差分を中心に説明する。特に明記しない部分については第1の実施形態と同じ構成および処理である。
[付加情報付与部の機能構成]
本実施形態の付加情報多重化装置102における多重化エンコード処理に係る機能構成は、第2の実施形態の図18(a)と同様であるものとして説明する。即ち、PDLデータAに基づき描画して得られたRGB色空間の画像データAはDeviceRGB色空間に変換されて、付加情報付与部305に入力されるものとして説明する。
図21は、本実施形態の付加情報付与部305内の機能構成を示す図である。本実施形態の付加情報付与部305は、ブロック位置設定部503、パターン選択部505、位相情報追加部2101、およびパターン色変換部を有する。図5と同一の処理ブロックについては同じ番号を付して説明を省略する。
位相情報追加部2101は、ブロック位置設定部503とパターン選択部505との処理結果から、DeviceRGB色空間に変換された後の画像データに対して、位相情報を示す値を保持するためのP成分を追加する。位相情報とは、+位相、0位相、-位相のいずれかであるかを示す情報である。+位相とは、画素に埋め込む画像が図4(a)(b)に示す黒ブロック401であることを示す。同様に、0位相とは図4(a)(b)に示す白ブロック402、-位相とは図4(a)(b)に示す斜線ブロック403であることを示す。P成分が追加された画像をRGBP画像とよぶ。
パターン色変換部2102は、RAM203からRGBP画像を取得し、P成分の位相情報に応じた位相用パターン色変換テーブル2103~2105を選択して、選択した位相用パターン色変換テーブルを用いて各画素の色値の変換を行う。本実施形態では、パターン色変換部2102が、位相用パターン色変換テーブル2103~2105を用いて色値の変換を行うことで、パターン画像の埋め込みと、パターン画像を埋め込んだことによる色の差を考慮した色変換と、を同時に行う。
[位相情報追加部の処理フロー]
図22(a)は、位相情報追加部2101の処理の詳細を説明するためのフローチャートである。図22(a)のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。
S2201において位相情報追加部2101は、ブロック位置設定部503から出力された画像データである、色空間がDeviceRGB色空間である画像データAを取得する。
S2202において位相情報追加部2101は、S2201で取得した画像データに対して位相情報を追加するためのP成分を追加する。例えば、S2201で取得した画像がRGBの3チャネルの画像であった場合に、位相情報追加部2101は、P成分を追加したRGBPの4チャネルの画像データに拡張する。以降のステップでは、画像データAは、S2202の処理によってRGBPの4チャネルに拡張されたRGBP画像データであるものとして説明する。なお、S2202の完了時点では、P成分に位相情報は設定されていない。
S2203~S2208はループ処理であり、S2203において位相情報追加部2101は、ブロック位置設定部503が設定したブロックのうち、P成分に位相情報が設定されていない処理対象のブロックを、RGBP画像データから選択する。そして処理対象の1ブロックに対して、S2204~S2208を実行する。処理対象のブロックに対する処理が終了すると、S2203に戻り、再度、未処理のブロックの中から処理対象が選択される。
S2204において位相情報追加部2101は、現在の処理対象のブロックのマスクパターン(図4(a)または図4(b)のいずれかのマスクパターン)をRAM203から取得する。ブロック位置設定部503の処理結果による処理対象のブロックの位置座標と、パターン選択部505による選択結果から、現在の処理対象のブロックに適用されるマスクパターンを取得することができる。
S2205~S2207はループ処理であり、S2205において位相情報追加部2101は、現在の処理対象のブロックを構成する画素のうち、P成分に位相情報が設定されていない画素を注目画素として選択する。そして注目画素に対して、S2206を実行する。
S2206において位相情報追加部2101は、注目画素のPチャネルに位相情報を設定する。具体的には、S2204で選択したマスクパターンの画素のうち、注目画素に対応する画素が+位相(図4(a)(b)における黒ブロック401)であれば+位相を示す値を、注目画素のP成分に設定する。同様に、0位相であれば0位相を示す値を、-位相であれば-位相を示す値を、注目画素のP成分に設定する。
S2207において位相情報追加部2101は、現在の処理対象のブロックを構成する全画素のP成分に位相情報が設定されているか否かを判定する。全画素に位相情報が設定されていれば(S2207がYES)S2208へ進む。位相情報が未設定の画素があれば(S2207がNO)S2205に戻り、再度、処理対象のブロックを構成する画素のうち未処理の画素の中から注目画素が選択される。
S2208において位相情報追加部2101は、RGBP画像内の全ブロックに対して位相情報を設定する処理を行ったか否かを判定する。未処理のブロックがある場合(S2208がNO)S2203へ戻る。全ブロック分の処理が完了した場合(S2208がYES)、RGBP画像データをRAM203に書き出し処理を終了する。このように、位相情報追加部2101は、位相情報を示すP成分が追加されたRGBP画像を生成する。
[パターン色変換部の処理フロー]
図22(b)は、パターン色変換部2102の処理の詳細を説明するためのフローチャートである。図22(b)のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。
S2211においてパターン色変換部2102は、各画素のP成分に位相情報が設定されたRGBP画像をRAM203から取得する。
S2212~S2217はループ処理であり、S2212においてパターン色変換部2102は、S2211で取得したRGBP画像の画素のうち、色値の変換がされていない未処理の画素を注目画素として選択する。そして注目画素に対してS2213~2216を実行する。
S2213においてパターン色変換部2102は、現在の注目画素のP成分の値を参照し、P成分の値が、+位相を示す値か、0位相を示す値か、-位相を示す値か、を判定する。
P成分の値が+位相を示す値あればS2214に進み、パターン色変換部2102は、+位相用パターン色変換テーブル2103によって、注目画素のRGB値を、+位相のRGB値である+R+G+B値への変換する処理を行う。
P成分の値が0位相を示す値あればS2215に進み、パターン色変換部2102は、0位相用パターン色変換テーブル2104を用いて、注目画素のRGB値を、0位相のRGB値である0R0G0B値へ変換する処理を行う。
P成分の値が-位相を示す値あればS2216に進み、パターン色変換部2102は、-位相用パターン色変換テーブル2105を用いて、注目画素のRGB値を、-位相のRGB値である-R-G-B値へ変換する処理を行う。
図23は、本ステップで用いられる各位相用パターン色変換テーブルを示す図である。図23(a)が+位相用パターン色変換テーブル2103、図23(b)が0位相用パターン色変換テーブル2104、図23(c)が-位相用パターン色変換テーブル2105である。
三つの位相用パターン色変換テーブル2103~2105のテーブルの形式は、第2の実施形態の多重化用色変換テーブル1801と同じである。即ち、図23の色変換テーブルは、RGB各色256階調のうち、17点の17×17×17=4913グリッドの変換後の色値を保持している。即ち、それぞれのグリッド番号には、それぞれの変換前のDeviceRGB値に対応する変換後のRGB値が保持されている。DeviceRGB値は、プリンタ103による印刷物への色の再現性を考慮した色空間の色値である。
各グリッド番号における変換後の列に保持されているRGBの各信号値は、印刷物C上でパターン画像がU成分に持つ周波数ベクトル上での特定の方向のパワースペクトルを維持する値であることを特徴としている。さらに、変換後の列に保持されているRGBの各信号値は、パターン画像を埋め込まない場合の色と比べて、パターン画像を埋め込んだ後の色がブロック単位で変化しないような値であることも特徴である。
例えば、通常の色変換後の画像内のある1ブロックを構成する画素の色値が全て(R,G,B)=(0,0,240)である領域に対して、パターン画像を埋め込むとする。この場合、+位相の画素の場合は、+位相用パターン色変換テーブル2103の行2301を参照して、(R,G,B)=(0,5,232)に変換される。同様に、0位相の画素の場合は、0位相用パターン色変換テーブル2104の行2302を参照して、(R,G,B)=(0,5,230)に変換される。-位相の画素の場合は、-位相用パターン色変換テーブル2105の行2303を参照して(R,G,B)=(0,5,228)に変換される。こうして、(R,G,B)=(0,0,240)の色値は、ブロック単位で色が変化しない、かつ、U成分の周波数ベクトル上での特定の方向のパワースペクトルを維持するための色値に変換される。
図23に示すように、それぞれの位相用パターン色変換テーブル2103~2105では、これらの変換後のRGB値が、変換前の色値であるDeviceRGB色空間の(R,G,B)=(0,0,240)に対応付けて保持される。パターン画像を埋め込む際には、位相情報に基づき上記3つの位相用パターン色変換テーブル2103~2105を切り替えて色値の変換を行う。全画素に対して、S2214~S2216の何れかの処理が行われることでパターン画像の埋め込みとパターン画像を埋め込んだことによる色の差を考慮した色値の変換が行われる。
S2217においてパターン色変換部2102は、全画素についてパターンの埋め込みを考慮した色値の変換がされたか否かを判定する。全画素の処理が完了されていればRGBP画像の色値を変換して得られたRGB画像をRAM203に書き出し処理を終了する。未処理の画素がある場合は、S2212へ戻って未処理の画素を注目画素に選択して、全画素の色値の変換が完了するまで処理を繰り返す。
以上説明したように本実施形態によれば、パターン画像を埋め込むことで発生するユーザが意図した色との差を低減することが可能となる。また、本実施形態においては、パターン画像の位相情報に対応するパターン色変換テーブルを用いて色値の変換処理を行う。このため、本実施形態によれば、パターン画像の埋め込みと、パターン画像を埋め込んだことで発生するユーザが意図した色との差の低減を考慮した色変換と、を同時に実施することができる。
なお、本実施形態の説明では、付加情報多重化装置102における機能構成は、第2の実施形態で使用した図18(a)と同様であるものとして説明した。他にも、付加情報多重化装置102の機能構成が第1の実施形態で説明した図3(a)の構成であっても、本実施形態を適用することが可能である。この場合、図21の付加情報付与部305には、色変換部308によって色変換がされていない画像データAが入力される。このため、図22のS2201では、PDLデータAから変換された後、色空間の変換が行われていない画像データAが取得される。
また、機能構成が図3(a)の場合の位相用パターン色変換テーブル2103~2105は、図23と同様に、パターン画像の埋め込みとパターン画像を埋め込んだことによる色の差を考慮した色値が、変換後の色値として保持される。しかし図23とは異なり、位相用パターン色変換テーブル2103~2105における変換後の列には、PDLデータA上の入力信号値を変換前の色値とした場合の変換後の色値が保持されることになる。
<第4の実施形態>
第1の実施形態及び第2の実施形態では、色変換テーブルのキャリブレーションを実行する機能部として、多重化用色変換テーブル補正部315または色変換テーブル補正部318の何れかを有している形態を説明した。本実施形態では、多重化用色変換テーブル補正部315および色変換テーブル補正部318の両方を有している形態を説明する。
図24は、本実施形態における付加情報多重化装置102の多重化エンコード処理に係る基本ファームウェアのブロック構成を示す図である。前述したように、付加情報多重化装置102は、多重化用色変換テーブルのキャリブレーションを行う多重化用色変換テーブル補正部315、および通常の色変換テーブルのキャリブレーションを行う色変換テーブル補正部318が含まれる。本実施形態の多重化用色変換テーブル補正部315、色変換テーブル補正部318、の機能の説明は、フローチャートを用いて後述する。
[色変換テーブルの補正処理について]
図25は、色変換テーブルの補正処理の詳細を説明するためのフローチャートである。図25を用いて、本実施形態における各変換テーブルの補正処理の流れを説明する。図25のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。
色変換テーブル補正部318は、S2501~S2505の処理によって、多重化機能をoffに設定した状態でキャリブレーションチャート319を印刷し、印刷の結果得られた印刷物のパッチを測色することで色変換テーブル309を補正する。S2501~S2505までの処理は図17のS1701~S1705と同様のため説明を省略する。
次に、多重化用色変換テーブル補正部315は、S2506~S2508までの処理を行うことによって図25に示したような多重化用の探索用テーブルを生成する。S2506~S2508の処理は第1の実施形態で説明した図13(a)のS1303~S1305までの処理と同様のため説明を省略する。
S2509において多重化用色変換テーブル補正部315は、多重化用の色変換テーブルを更新する。S2509の詳細な処理は図13(b)のフローチャートの処理と同じであり、多重化用色変換テーブル補正部315は、S1311~S1316の処理を行うことで多重化用色変換テーブルを補正する。
ただし、S1313における補正値の算出方法は第1の実施形態と異なる。S2509におけるS1313では、まず、補正対象のグリッド番号に対応する色値を、S2501で取得した目標となる色値群から選択する。次に選択した目標値の目標となる色値であるLab値を入力値として、S2508で生成した探索用テーブルを用いて、公知の四面体補間によってRGB値を算出する。この算出されたRGB値が、補正対象のグリッド番号の補正値となる。
本実施形態では、通常の色変換テーブル309は、S2501~S2505の処理の結果、目標となる色を再現するように補正される。また、多重化用色変換テーブル307は、S2506~S2509の処理の結果、同様に、目標となる色を再現するように補正される。このため、本実施形態では、第1の実施形態で説明した多重化用色変換テーブルの補正方法とは異なり、多重化用色変換テーブルについても、通常の色変換テーブルと同様の色を目標に補正することができる。このため、多重化機能のon/offを切り替えたことにより発生する色の差を低減することが可能となる。また、以上の補正処理を実行することで、ハードウェアの個体差等の内的要因または温湿度といった外的要因によって発生する、印刷物上に再現された色とユーザの意図する色との差を低減することが可能となる。
[補正する色変換テーブルを選択して色変換テーブルを補正する方法について]
図26は、色変換テーブルの補正処理の詳細を説明するためのフローチャートである。次に、図25とは異なり、補正する色変換テーブルをユーザが選択して、選択された色変換テーブルを補正する方法を説明する。図26のフローチャートで示される一連の処理は、付加情報多重化装置102のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。図25と異なるのはS2602の判定結果に応じて、補正対象の色変換テーブルを切り替える点である。
S2601はS2501と、同じ処理ため説明を省略する。
S2602においてCPU202はRAM203に記録されている多重化機能のon/offの設定を読み出し、多重化機能の設定がonか否かを判定する。多重化機能がoffの場合(S2602がNO)、色変換テーブル補正部318がS2603~S2606の処理を実行し通常の色変換テーブル309を補正する。S2603~S2606はS2502~S2505と同じ処理ため説明を省略する。
多重化機能がonの場合(S2602がYES)、多重化用色変換テーブル補正部315がS2607~S2610の処理を実行し、多重化用色変換テーブル307を補正する。S2607~S2610はS2506~S2509と同じ処理ため説明を省略する。
なお、色変換テーブルのキャリブレーションは所定の条件を満たした場合に実行されるのが好ましいが、図26の方法では、多重化機能のon/offの設定に応じた色変換テーブルのみが補正対象となる。このため、多重化機能のon/offの設定がユーザによって適切なタイミングで切り替えられないと、所定の条件を満たしたテーブルの補正が実行さないことが想定される。このため、ユーザが多重化機能の設定を切り替える際には、ディスプレイ205に補正実行を促すメッセージを表示することが好ましい。
このように、図26のフローチャートに示した方法では、ユーザの指示に応じた多重化機能の設定に基づき、補正対象のテーブルを切り替えることができる。このため、補正が必要な色変換テーブルのみに対して補正処理を実行することができる。よって、ユーザの負担を抑制しつつ、パターン画像を埋め込んだ場合に発生する印刷物に再現された色とユーザが意図した色との差を、環境やプリンタの個体差に依らず低減することが可能となる。
<その他の実施形態>
上述した実施形態は、図1(b)のシステム構成においても適用可能である。例えば、プリンタ103の付加情報多重化部105で生成された多重化エンコード処理後の多重化画像を、プリンタ103及び印刷部106に送信できれば、図1(a)(b)のいずれの構成が用いられてもよい。
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。