まず、不正複写を防止するためのシステムを説明する。
図1は、本システムの全体構成を示す図である。
本システムは、クライアントPC1001、クライアントPC1002、プリントサーバ2001、画像形成装置3001、画像形成装置3002を備える。画像形成装置3001、画像形成装置3002は、複写機能と印刷機能を有する。各装置は、LAN4001を介してデータの送受信を行う。
尚、図1に示す構成は例示であって、各装置の台数は、図に明示された台数に限定されない。また、以下の説明においては、説明の便宜上、クライアントPC1001とプリンタサーバ2001と画像形成装置3001のみを参照する。
図6は、クライアントPC1001とプリントサーバ2001のハードウェア構成の一例を示したブロック図である。以下、クライアントPC1001とプリントサーバ2001を情報処理装置1000と称する。
図6を参照すると、情報処理装置1000は、CPU1101、ROM1102、RAM1103、キーボードコントローラ1105、ディスプレイコントローラ1106、ディスクコントローラ1107を備える。さらに、情報処理装置1000は、ネットワークインタフェースカード1108、キーボード1109、ディスプレイ1110、ハードディスク1111を備える。各ユニットは、システムバス1104を介してデータ転送等を行う。また、情報処理装置1000は、ネットワークインタフェースカード1108を介してLAN4001に接続される。CPU1101は、システムバス1104に接続される各デバイスを制御する。
図7は、画像形成装置3001の外観を示す図である。
画像形成装置3001は、ユーザインタフェース画面を提供する操作部3201、スキャナ部3202、プリンタ部3203、装置全体を制御するコントローラ(図示せず)を備える。
スキャナ部3202は、トレイ3102と、原稿フィーダ3101を備える。ユーザが原稿フィーダ3101のトレイ3102に複写対象の原稿(印刷出力)をセットし、操作部3201から原稿の読み取り開始を指示すると、コントローラ3300は、スキャナ部3202に原稿読み取り指示を出す。
原稿読み取り指示を受けたスキャナ部3202は、トレイ3102から原稿を自動的に1枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は、原稿をガラス面上に載置し、露光部を移動させて走査を行う方法であってもよい。
プリンタ部3203は、コントローラ3300から受け取った原稿画像データを用紙上に形成する。プリンタ部3203には、異なる用紙サイズ又は異なる用紙向きを選択可能とする複数の用紙カセット3103、3104、3105が設けられている。排紙トレイ3106には印字後の用紙が排出される。
図8は、画像形成装置3001内のコントローラ3300の内部構成を示すブロック図である。
コントローラ3300は、スキャナ部3202やプリンタ部3203を制御する。コントローラ3300は、LANやWANを介したクライアントPC1001やプリンタサーバ2001とのデータ通信を制御する。
CPU3301は、ROM3303に記憶された制御プログラムに基づいて接続中の各種デバイスとのアクセスを制御すると共に、コントローラ3300内部で行われる各種処理についても制御する。
RAM3302は、CPU3301が動作するためのシステムワークメモリであり、かつ、原稿画像データを一時記憶するためのメモリでもある。
ROM3303は、装置のブートプログラムなどを格納する。
HDD3304は、ハードディスクドライブであり、システムソフトウェアや原稿画像データを格納する。
操作部I/F3305は、システムバス3307と操作部3201とを接続するためのインタフェース部である。操作部I/F3305は、操作部3201に表示するための原稿画像データをシステムバス3307から受取り、操作部3201に出力すると共に、操作部3201から入力された情報をシステムバス3307へと出力する。
NetworkI/F3306は、LANやWANとシステムバス3307とを接続するインタフェースボードである。
画像バス3319は、原稿画像データをやり取りするための伝送路であり、PCIバス又はIEEE1394で構成されている。
スキャナ画像処理部3312は、スキャナ部3202からスキャナI/F3311を介して受け取った原稿画像データに対して、補正、加工、編集を行う。
埋め込み情報抽出部3310は、原稿画像データの背景画像に埋め込まれている付加情報の抽出処理を行う。付加情報の内容及び埋め込み情報抽出部3310による付加情報の抽出処理の詳細については後述する。
圧縮部3313は、原稿画像データを圧縮する。
伸張部3315は、原稿画像データを伸張した後にラスタ展開してプリンタ画像処理部3317に送る。
プリンタ画像処理部3317は、受け取った原稿画像データに付随する属性データを参照して原稿画像データに対して画像処理を施す。
符号画像生成部3316は、後述する情報埋め込み技術を用いて付加情報が埋め込まれた背景原稿画像データを生成する。次いで、プリンタ画像処理部3317は、この背景原稿画像データと原稿画像データとを合成する。
画像変換部3314は、原稿画像データに対して回転や色空間変換、2値多値変換、画像合成、間引きといった所定の変換処理を施す。
RIP部3308は、クライアントPC1001から送信されたPDLコードデータを元に生成された中間データを受取り、ビットマップデータを生成する。生成されたビットマップデータは圧縮部3309で圧縮されて画像バス3319へ送られる。
次に、各装置が実行する処理内容を説明する。
ユーザがクライアントPC1001上で印刷操作を行うと、クライアントPC1001は印刷データを生成し、プリントサーバ2001に印刷データを送信する。尚、プリントサーバ2001が存在しない場合、クライアントPC1001は、直接、画像形成装置3001に印刷データを送信する。
プリントサーバ2001は、受信した印刷データを画像形成装置3001に転送する。
画像形成装置3001は、受信した印刷データを原稿画像データに変換し、用紙に印刷することにより印刷物を出力する。
上記システムにおいて、ユーザは、クライアントPC1001上で印刷操作を行う際に、付加情報を印刷物に埋め込むための設定をする。その設定がされると、画像形成装置3001は、設定された付加情報が埋め込まれた背景画像を含む印刷出力を生成する。
図2は、背景画像を含む印刷出力の外観を表す図である。
図2において、22は、「あいうえお」という文字が印刷された印刷出力の全体を表し、21は印刷出力22の一部分を拡大したものを表す。21の拡大図からわかるように、印刷出力には、文字の一部(「あ」の一部)と、ドット群からなる背景画像23が印刷されている。すなわち、付加情報は、ドット群の形態で印刷出力に埋め込まれている。このドット群は、LVBC(Low Visibility Barcode:低可視バーコード)と呼ばれる。
図21と図22は、付加情報を示す図である。付加情報は、第1の情報(本実施例では、印刷ジョブ毎に設定される識別情報(ID))と、第2の情報(本実施例では、複写制御情報)とから構成される。第1の情報と第2の情報は、後述する第1の領域内と第2の領域内に埋め込まれる。図21は第1の情報を示し、図22は第2の情報を示す。図22によると、複写制御情報は、2バイトの複写条件1902と、2バイトの条件情報種別1903と、2バイトのデータサイズ1904と、所定バイト数の条件情報(認証情報)1905とを含む。複写条件は、「複写を許可する」、「複写を禁止する」、「複写を許可する為の条件を指定する」等の条件である。条件情報とは、パスワード、ユーザ名等である。条件情報種別とは、条件情報の種類のことである。データサイズとは、条件情報のデータサイズのことである。
LVBCを用いれば、第1の情報と第2の情報を合成したものを付加情報として画像に埋め込むことができる。また、LVBCは、利用態様に応じて、第1の情報のみの抽出、第2の情報のみの抽出、第1の情報及び第2の情報の抽出のいずれかから選択して抽出することが可能である。LVBCを用いた付加情報の埋め込み方法及び抽出方法については後述する。
ユーザが、画像形成装置1001を用いて、付加情報が埋め込まれた印刷出力の複写を試みると、画像形成装置3001は印刷出力に付加情報が埋め込まれていることを検知する。次いで、画像形成装置4001は、その付加情報のうちの複写制御情報に含まれる複写条件にしたがって、複写動作を制御する。例えば、複写条件が「複写禁止」であると、画像形成装置3001は複写動作を停止する。これによって、複写が禁止された印刷出力の複写を防止できる。
次に、クライアントPC1001における複写制御情報の設定処理と、画像形成装置3001における複写動作の制御について詳細に説明する。
図3は、クライアントPC1001にインストールされているプリンタドライバが提供する印刷設定画面の一例である。
31は印刷セキュリティ設定ダイアログボックスである。ユーザは印刷セキュリティ設定ダイアログボックスを用いて複写条件を設定する。ユーザは、印刷セキュリティ設定ダイアログボックス31内のラジオボタン32にチェックマークを入れることにより、「複写を許可する」、「複写を禁止する」、「複写を許可する為の条件を指定する」の条件の中から一つの条件を選択する。選択された条件は、複写制御情報として印刷対象の文書に埋め込まれる。「複写を許可する為の条件を指定する」を選択すると、条件情報入力フィールド33が入力可能な状態になり、ユーザは、そこに条件情報を入力する。この条件情報もまた、複写制御情報として印刷対象の文書に埋め込まれる。条件情報としては、例えば、パスワードがある。一方、ユーザが画像形成装置3001を用いて「複写の許可条件を指定する」が埋め込まれた印刷出力の複写を試みると、画像形成装置3001は、ユーザに条件情報の入力を促す。この場合、ユーザは、印刷設定時に条件情報入力フィールド33に入力した条件情報を画像形成装置3001に入力すれば複写が許可される。尚、条件情報としては、複写許可されているユーザの名前であってもよい。また、条件情報としては、複写許可の期間(例えば、2007年1月17日〜2007年2月17日)であってもよい。条件情報として複写許可の期間が設定されると、画像形成装置3001は、その期間内に行われる複写だけを許可する制御を行う。
次に、複写対象の印刷出力に、複写制御情報として「複写を禁止する」又は「複写を許可する為の条件を指定する」の複写条件が埋め込まれていることを検知した画像形成装置3001がユーザに提示するダイアログボックスの例を図4と図5に示す。これらのダイアログボックスは、画像形成装置3001の操作部3201に表示される。
図4は、複写制御情報として「複写を禁止する」が埋め込まれた印刷文書の複写をユーザが試みたときに操作部3201に表示されるダイアログボックス41を示す。画像形成装置3001は、複写対象である印刷文書に「複写を禁止する」を示す複写制御情報が埋め込まれていることを検知すると、複写を行わない旨のメッセージをユーザに通知する。したがって、この通知を受けたユーザは、複写を断念することになる。
図5は、複写制御情報として「複写の許可条件を指定する」を示す複写制御情報が埋め込まれた文書の複写をユーザが試みたときに操作部3201に表示されるダイアログボックス51を示す。画像形成装置3001、複写対象である印刷文書に「複写の許可条件を設定する」を示す複写制御情報が埋め込まれていることを検知すると、この文書を複写するためにはパスワード入力が必要である旨のメッセージをユーザに通知する。この通知を受けたユーザは、操作部3201のキーボード又はICカード等を用いてパスワードを入力する。次いで、画像形成装置3001は、印刷文書に複写制御情報として埋め込まれているパスワードと、ユーザが入力したパスワードとを照合し、両者が一致していれば複写動作を実行する。これに対して、両者が一致せずパスワード認証に失敗すると、図4に示すダイアログボックス41を操作部3201に表示する。
次に、不正複写を防止する機能を搭載した画像形成装置3001が行う複写動作の制御を、図8、図20及び図23を用いて説明する。
図20は、画像形成装置3001の構成を示すブロック図である。
画像形成装置3001は、画像読み取り部6031、情報抽出部6032、ジョブ制御部6033、設定情報保持部6034、画像処理部6035、印字部6036を備える。
ユーザが原稿フィーダ上に原稿を載せ、操作部3201から複写開始指示を出すと、画像読み取り部6031は、原稿の読み取りを開始する。画像読み取り部6031は、読み取った原稿画像データを画像処理部6035と情報抽出部6032に送る。
情報抽出部6032は、埋め込み情報抽出部3310を制御して、受け取った原稿画像データに埋め込まれている付加情報を取り出し、ジョブ制御部6033に送る。
ジョブ制御部6033は、受け取った付加情報にしたがって複写動作を停止するかどうかを決定する。ジョブ制御部6033が複写動作の停止を決定した場合には、ジョブ制御部6033は、複写動作の停止命令を印字部6036に送る。さらに、ジョブ制御部6033は、操作部I/F3305を制御して、図4又は図5に示したダイアログボックスを操作部3201に表示する。
印字部6036は、ジョブ制御部6033から複写動作の停止命令を受け取ると、印刷中であっても印刷を停止する。
図23は、画像形成装置3001が実行する複写制御の流れを示すフローチャートである。
ステップ1801において、ユーザが操作部3201から複写開始指示を出すと、スキャナ部3202は原稿を読み取り、読み取った原稿画像データを情報抽出部6032と画像処理部6035とへ送る。なお、図23には示されないが、画像読み取り部6031から原稿画像データを受け取ると、画像処理部6035は、その原稿画像データに対して、印字部6035が印字するために必要な画像処理(例えば、ハーフトーニングなど)の実行を開始する。
ステップ1802において、情報抽出部6032は、受け取った原稿画像データに付加情報が埋め込まれているかどうかを判定する。付加情報が埋め込まれているかどうかの判定はドット解析が可能か不可能かを判定することにより行われる。ドット解析が可能な場合は、付加情報が埋め込まれており、ドット解析が不可能な場合は、付加情報が埋め込まれていないと判定する。この判定手法の詳細は後述する。
ドット解析不可能な場合、すなわち、付加情報が埋め込まれていないと情報抽出部6032が判定した場合、ステップ1811の処理に進む。これに対して、ドット解析可能な場合、すなわち、付加情報が埋め込まれていると情報抽出部6032が判定した場合には、ステップ1803の処理に進む。
ステップ1803において、情報抽出部6032は、原稿画像データから第1の情報である識別情報(ID)を抽出する。
ステップ1804において、ジョブ制御部6033は、画像形成装置内に識別情報(ID)が記憶されているかどうかを判定し、記憶されている場合には、ステップ1805の処理に進み、記憶されていない場合には、ステップ1806の処理に進む。
なお、原稿が1頁目であり、かつ、ステップ1804まで来た場合には、確実に識別情報が記憶されていないため、ステップ1806の処理に進むことになる。一方、原稿が2頁目以降で、かつ、自分より前の原稿でステップ1810を通った頁がある場合には、ステップ1805の処理に進むことになる。
このように、本実施形態では、ある頁の識別情報がステップ1810で記憶されると、それ以降の頁に対しては、必ずステップ1804からステップ1805へ移行するかステップ1802からステップ1811へ移行することになる。
従って、原稿が複数頁からなる場合に、第2の情報を抽出するのは1回きりであるということができる。よって、本実施形態の制御により、長時間かかる第2の情報の抽出回数を少なく済ませられることになる。
ステップ1805において、ジョブ制御部6033内の識別情報判定手段(図示せず)は、原稿画像データから抽出した識別情報(ID)と、画像形成装置内に記憶されている識別情報(ID)とを比較し、両者が一致するかどうかを判定する。比較した結果、両者が一致する場合には、ステップ1811の処理に進み、一致しない場合には、ステップ1813の処理に進む。
ステップ1813において、ジョブ制御部6033は、複写動作の停止を決定し、ジョブをキャンセルすることにより複写動作を停止する。その際に、ジョブ制御部6033は、図4に示すダイアログボックスを操作部3201に表示し、印刷を停止することをユーザに知らせる。
ステップ1806において、情報抽出部6032は、原稿画像データから第2の情報(複写制御情報)を抽出する。
ステップ1808において、複写制御情報に含まれる条件情報種別がパスワードである場合、ジョブ制御部6033は、操作部3201に図5に示すダイアログボックスを表示し、ユーザにパスワードの入力を要求する。
ステップ1809において、ジョブ制御部6033は、ユーザが操作部3201から入力したパスワードと、複写制御情報内のパスワードとを比較する。比較した結果、両者が一致する場合はステップ1810の処理に進み、一致しない場合はステップ1813の処理に進む。
ステップ1810において、ジョブ制御部6033は、原稿画像データから抽出した第1の情報としての識別情報(ID)を画像形成装置内に記憶する。
ステップ1811において、ジョブ制御部6033は、印字部6036に指令を送り、画像処理部6035から既に原稿画像データを受け取っている場合には、その原稿画像データの印刷を開始させ、ステップ1801に戻り次頁の読み込みを行う。また、画像処理部6035から印字部6036がまだ原稿画像データを受け取っていない場合には、画像処理部6035における画像処理が終了するまで待機することになる。
ステップ1812において、ジョブ制御部6033は、印刷対象の頁が最終頁かどうかを判定し、最終頁の場合には、複写動作を終了すると共に、記憶していたIDを削除する。
このように、本実施例では、原稿画像データから抽出した識別情報(ID)を用いて複数頁からなる原稿の複写制御を行う。すなわち、第1の頁内の原稿画像データから識別情報(ID)を抽出すると共に、画像処理装置内に識別情報(ID)が記憶されているかどうかを判定する。画像処理装置内に識別情報(ID)が記憶されている場合は、その識別情報(ID)と、第1の頁内の原稿画像データから抽出した識別情報(ID)とを比較する。比較した結果、両者が一致した場合には、第1の頁の複写動作を実行し、第1の頁の複写物を出力する。一致しない場合は、複写動作を停止する。
一方、画像処理装置内に識別情報(ID)が記憶されていない場合は、パスワード等による認証を行う。それにより正当なユーザによる複写であると確認できれば、第1の頁内の原稿画像データから抽出した識別情報(ID)を画像処理装置内に記憶し、第1の頁の複写動作を実行し、第1の頁の複写物を出力する。次いで、第2の頁の複写時には、第2の頁内の原稿画像データに埋め込まれている識別情報(ID)と、第1の頁の複写時に画像処理装置に記憶された識別情報(ID)とを比較し、両者が一致すれば、複写動作を実行し、第2の頁の複写物を出力する。一致しない場合は、複写動作を停止する。つまり、第2の頁の複写時には、識別情報(ID)による判定結果に基づいて複写動作を実行するか停止するかを決定し、パスワード等による認証は行わない。第3の頁以降の複写においても、第2の頁の複写と同様な処理が行われる。
このような制御を行う結果、上述したように、原稿が複数頁からなる場合に、第2の情報を抽出するのは1回きりであることになる。このように1回きりとするのは、長時間かかる第2の情報の抽出回数を少なく済ませるためである。
複数枚の原稿の中に他の原稿とIDの違う原稿が混じっていた場合には、それらの原稿をスキャナに置いた者のミスである可能性が高い。こうしたミスが起こったとしても、本実施例1記載の制御を行うとジョブキャンセルをすることができ、無駄な印刷を行わずにすむことになる。
次に、別の実施例について説明する。
前述の実施例では、第1の情報としてID(識別情報)が含まれていた。一方、本実施例では、第1の情報としてIDと、図3に示すダイアログボックスで設定された複写制御情報(「複写を許可する」、「複写を禁止する」、「複写を許可する為の条件を指定する」)とが含まれている。
そのため、本実施例のフローを示す図25では、前実施例のフローを示す図における図23と違って、ステップ2004が含まれていることになる。
図24は、第1の情報を示す。本実施例では、第1の情報は、7バイトの識別情報(ID)1901と1バイトの複写条件1902を含む。複写条件は、「複写を許可する」、「複写を禁止する」、「複写を許可する為の条件を指定する」のいずれかである。
第2の情報は、図22に示したものと基本的には同じであるが、複写条件1902を削除してもよい。
図25は、画像形成装置3001が実行する複写制御の流れを示すフローチャートである。
ステップ2001において、ユーザが操作部3201から複写開始指示を出すと、スキャナ部1801は原稿を読み取り、読み取った原稿画像データを情報抽出部6032と画像処理部6035とへ送る。なお、図25には示されないが、画像読み取り部6031から原稿画像データを受け取ると、画像処理部6035は、その原稿画像データに対して、印字部6035が印字するために必要な画像処理(例えば、ハーフトーニングなど)の実行を開始する。
ステップ2002において、情報抽出部6032は、受け取った原稿画像データに付加情報が埋め込まれているかどうかを判定する。この判定方法は、前述の実施例と同じである。そして、付加情報が埋め込まれていないと判定された場合、ステップ2011の処理に進み、付加情報が埋め込まれていると判定された場合には、ステップ2003の処理に進む。
ステップ2011において、印字部6036は、原稿画像データの印刷を行い、最終頁の印刷が終了するまで頁の読み取りを続行する。
ステップ2003において、情報抽出部6032は、原稿画像データから第1の情報を抽出する。
ステップ2004において、ジョブ制御部6033は、複写条件が「複写を許可する」(無条件の複写許可)である場合にはステップ2011の処理に進む。複写条件が「複写を禁止する」(無条件の複写禁止)である場合にはステップ2013の処理に進む。複写条件が「複写の許可条件を指定する」(条件付きの複写許可)である場合にはステップ2005の処理に進む。
ステップ2013において、ジョブ制御部6033は、複写動作の停止を決定し、ジョブをキャンセルすることにより複写動作を停止する。その際に、ジョブ制御部6033は、図4に示すダイアログボックスを操作部3201に表示し、印刷の停止をユーザに通知する。
ステップ2005において、ジョブ制御部6033は、画像形成装置内に識別情報(ID)が記憶されているかどうかを判定し、記憶されている場合には、ステップ2006の処理に進み、記憶されていない場合には、ステップ2007の処理に進む。
ステップ2006において、ジョブ制御部6033は、原稿画像データから抽出した識別情報(ID)と、画像形成装置内に記憶されている識別情報(ID)とを比較する。比較した結果、両者が一致する場合には、ステップ2011の処理に進み、一致しない場合には、ステップ2013の処理に進む。
ステップ2007において、情報抽出部6032は、原稿画像データから第2の情報を抽出し、第2の情報から条件情報種別を取得する。
ステップ2008において、条件情報種別がパスワードである場合は、ジョブ制御部6033は、操作部3201に図5に示すダイアログボックスを表示し、ユーザにパスワードの入力を要求する。
ステップ2009において、ジョブ制御部6033は、ユーザが操作部3201から入力したパスワードと、原稿画像データから抽出したパスワードとを比較する。比較した結果、両者が一致する場合はステップ2010の処理に進み、一致しない場合はステップ2013の処理に進む。
ステップ2010において、ジョブ制御部6033は、原稿画像データから抽出した識別情報(ID)を画像形成装置内に記憶する。
ステップ2011において、ジョブ制御部6033は、印字部6036に指令を送り、画像処理部6035から既に原稿画像データを受け取っている場合には、その原稿画像データの印刷を開始させ、ステップ2001に戻り次頁の読み込みを行う。また、画像処理部6035から印字部6036がまだ原稿画像データを受け取っていない場合には、画像処理部6035における画像処理が終了するまで待機することになる。
ステップ2012において、ジョブ制御部6033は、印刷対象の頁が最終頁かどうかを判定し、最終頁の場合には、複写動作を終了すると共に、記憶していたIDを削除する。
このように、本実施例では、第1の情報に含まれる複写条件が「複写を許可する為の条件を指定する」である場合にのみ、原稿画像データから第2の情報を抽出して、複写動作を制御する。つまり、原稿画像データから第1の情報を抽出し、第1の情報に含まれる複写条件が「複写を許可する」である場合には、第2の情報の抽出を行わない。そのため、実施例1よりも効率よく不正複写の防止が可能となる。
次に、LVBC(Low Visibility Barcodes:低可視バーコード)を用いて第1の情報と第2の情報とからなる付加情報を原稿画像データ埋め込む方法について説明する。
LVBCは次の特性を有する。
(1)用紙に、十分な量の情報を埋め込める。
(2)用紙に色材を使って埋め込まれた情報をデジタル情報として抽出できる。
(3)原稿を複写する際に、原稿の回転、拡大、縮小、部分的削除、複写による信号の鈍り、汚れなどの情報抽出を妨げる要因に対して耐性がある。
(4)用紙から情報を抽出する時間が短い。
尚、一般的に(1)の要件と(4)の要件とは相反するものであり、埋め込む情報量を増やすと、情報を抽出する為に要する時間は長くなる。
図2は、LVBCを用いて付加情報が埋め込まれた用紙の外観を示す。
図10は、LVBCを使って情報を画像に埋め込んだ状態を示す。
第1の情報が埋め込まれた領域を第1の領域とし、第2の情報が埋め込まれた領域を第2の領域とする。図9が示すように、第1の情報のデータサイズは小さく、第2の情報のデータサイズは大きい。また、上述したように、複写時に、複写機が第1の情報が存在すると認識した場合には、必ず第1の情報を抽出する。これに対して、複写機は第2の情報が存在したとしても、第2の情報を抽出しない場合がある。
101の四角の領域は、第1の領域を示す。第1の領域101は複数個存在し、それぞれは画像上に一定間隔で繰り返し埋め込まれている。全ての第1の領域101には、同じデータが埋め込まれている。第1の領域101を複数個設けた理由は、冗長性を増すことによりノイズや誤差に対する耐性を向上させるためである。
102の領域は、第2の領域を示す。第2の領域も複数個存在する。第2の領域102は、第1の領域101以外の領域であり、両者は重なり合うことはない。103は、第1の領域のサイズを表し、104は、第1の領域の繰り返しサイズを表し、105は、第2の領域のサイズを表す。
次に、LVBCを用いて、付加情報をドット群の形態で原稿画像データに埋め込む方法を説明する。LVBCでは、グリッドと呼ばれるドット群を原稿画像データに埋め込む。
図11において、112は、グリッドである。尚、グリッドは、仮想のマス目であり、実際には用紙上に存在しない。
付加情報は、一定サイズ以内のバイナリデータとして入力される。付加情報は、グリッドの交差点に位置するドット群を交差点の8方向のいずれかに変移(交差点からずらすこと)させることによって原稿画像データに埋め込まれる。
図12は、010111110011bというバイナリデータを付加情報として埋め込む方法を示す図である。010111110011bは3ビットずつ分解すると、010、111、110、011となる。さらに各3ビットに対して2−10進変換を行うと2、7、6、3になる。図12が示すように、各格子ドットを数値に対応した方向に変移させることによって付加情報を埋め込む。例えば、2、7、6、3の付加情報を原稿画像データにドットとして埋め込む場合、各ドットをグリッドの交差点の右上(“2”の位置)、右下(“7”の位置)、下(“6”の位置)、左(“3”の位置)に変移させる。この処理を画像全体に対して繰り返して行う。こうすることにより、付加情報をドットパターンで原稿画像データに埋め込むことができる。また、これらのドット群を原稿画像データの複数箇所に繰り返し埋め込むことによって、用紙に汚れ、しわ、部分的破壊があっても付加情報の読み込みの誤認識率を低下することができる。
LVBCを解析するに当たって、グリッドの位置を正確に把握する必要がある。そのため、変位したドット群は8方向に等確率に出現することが望ましい。しかし、特定のデータ(例えば、0)を埋め込む場合、ドット群はグリッドの交差点の左上(“0”の位置)に等しく変位することからわかるように、ドット群は8方向に等確率に出現しない。そこで、可逆性を有するスクランブル処理(例えば共通鍵暗号処理)を埋め込み情報に施すことによって、ドット群の変移をランダム化することもできる。
また、付加情報を表現可能な最小サイズのグリッドをタイルパターンとして生成し、実際の印刷時にはそのタイルパターンを用紙に対して何度も貼り付けることもできる。
尚、LVBCを用いた付加情報の埋め込みは、いわば、デジタルデータの付加情報をアナログデータに変換し、それを用紙に記録する方法であるため、比較的簡単な仕組みで実現可能である。
次に、コントローラ3300の埋め込み情報抽出部3310が原稿画像データから付加情報を抽出する処理を、図を用いて説明する。
図13は、LVBCの解析を行う埋め込み情報抽出部3310の構成例を示すブロック図である。
埋め込み情報抽出部3310は、ドット検知部131、ドット解析部132、絶対座標リスト記憶部133、ドット変換部134、相対座標リスト記憶部135、第1領域復号部136、第2領域復号部137を備える。
ドット検知部131は、付加情報が埋め込まれた原稿画像データから複数のドット群を抽出して座標情報に変換する。ドット解析部132は、ドット検知部131が抽出した複数のドット群からハーフトーンを構成する不要なドット群を除去する。絶対座標リスト記憶部133は、ドット解析部132が解析した複数のドット群の絶対座標をリストとして格納する。ドット変換部134は、絶対座標リスト記憶部133が記憶している絶対座標のリストから回転角、グリッド間隔を検出してグリッド位置からの相対座標に変換する。相対座標リスト記憶部135は、ドット変換部134が出力する当該相対座標を記録する。第1領域復号部136は、第1の領域から第1の情報を付加情報として抽出して抽出結果を出力する。第2領域復号部137は、必要な場合(図23におけるステップ1804→ステップ1806、図25におけるステップ2005→ステップ2007)に限って、第2の領域から第2の情報を付加情報として抽出して抽出結果を出力する。
以上の処理をより具体的に説明する。
ドット検知部131は、光学スキャナが読み込んだ画像の信号を多値モノクロイメージデータの形式で受信する。LVBCによる付加情報の埋め込みは、図2で示すようにモノクロ2値のドット群の形態で埋め込まれる。しかし、埋め込み時のトナーの乗り具合、用紙の取り扱い、スキャン時の光学系等の影響を受け、受信する信号は、細かく鈍った状態となる。よって、この影響を排除するために、受信した原稿画像データから画像上の孤立点を検査することでドット群の検知を行い、検知したドット群の重心位置を座標位置と認識することにより抽出精度を高める。また、ドット検知部131は、ドット群の粒形サイズ及び濃度も計測する。ドット検知部131が算出した全てのドット群の絶対座標、粒形サイズおよび濃度は、ドット解析部132に送られる。
ドット解析部132は、ドット検知部131が抽出したドット群から不要なドット群を除去する。ドット検知部131が検知したドット群は理想的にはLVBCのドット群であることが望ましいが、実際には、印刷原稿に含まれているハーフトーンを表現するためのドット群や、もともと原稿に含まれる孤立点(例えば平仮名の濁点など)も含まれる。したがって、LVBCのドット群に類似したこれらの孤立点を削除するためにハーフトーンを除去する。
図14はハーフトーンの除去を説明するためのグラフを示す。
グラフの縦軸はドット群の粒形を示し、横軸は濃度を示す。さらにポイントの濃度にドット群の頻度を示すヒストグラムを示す。ポイントの濃度が濃い(より黒い)ほど、ドット群の出現頻度が高いことを示している。ここで、LVBCのドット群の場合、埋め込みを行う際にドット群の粒形や濃度をそろえて埋め込むため、LVBCのドット群の出現頻度はグラフの狭い位置でピークとなる(図14の「LVBCドット」の位置)。一方、ハーフトーンの場合は粒形や濃度が規格化されていないため、グラフの広い位置にまばらに出現し、頻度も比較的少ない(図14の「ハーフトーンドット」の位置)。この特性を使用して、グラフの狭い位置で出現頻度がピークとなるドット群をLVBCのドット群と識別して、そのドット群の絶対座標を絶対座標リスト記憶部133に記憶し、それ以外のドット群を排除する。この処理によって絶対座標リスト記憶部133には、ほぼLVBCのドット群のみが記憶されることになる。
ドット変換部134は、絶対座標リスト記憶部133が記憶している絶対座標のリストから回転角、グリッド間隔を検出してグリッド位置からの相対座標に変換する。変換結果は、相対座標リスト記憶部135に記憶される。用紙へLVBCのドット群を埋め込んだ角度と、スキャンされた画像イメージの角度では、スキャナに配置した向きの違いやアナログレベルでの微細な角度のズレによって異なるため、回転角の検知と補正を行う必要がある。また、LVBCはドット群が属するグリッド位置からずらした位置に情報を載せるために、グリッドを再現する必要があるのでグリッドの間隔を正確に決定する必要がある。
各ドットに対して近隣ドットとの距離を計測し、画像全体で計測された距離のヒストグラムから求められた最頻値である距離がグリッド間隔である。
グリッドの回転角度についても、すべてのドット群に対して近隣ドット群までの角度を測定する。
図15は、グリッドの回転角度の補正を説明する図である。
本来、注目ドットに対する近隣ドットの角度は0度、90度、180度、270度のいずれかであるため、測定した角度のズレを補正することにより回転角度を決定することが可能である。個々の注目ドットから近隣ドットの角度は、注目ドットと近隣点からなるベクトルを(dx,dy)とすると、角度θは下記の式であらわされる。
図15の152は、ドット群A、B、C、Dから各々の近隣ドット群へのベクトルを示す。しかし、実際には、注目ドットも近隣ドットも情報を埋め込むためにグリッド位置からわずかに変移しているため、すべての注目ドットにおいてθを計測する。注目ドットと近隣ドットのそれぞれのグリッドからの変移位置の出現確率が縦横ともに同じだとすると、すべての注目ドットの角度のズレを加算することにより、平均的にグリッドの回転角度を計測することができる。153はいくつかの点のベクトルを表示したものであり、この角度を重ね合わせるとグリッドの回転角度に近似できることがわかる。ここで求める回転角度の補正は90度単位には絞られているが、実際には0度、90度、180度、270度の4つまでは絞り込まれていない。この絞込みに関しては、後述する第1領域復号部136において説明する。
グリッド間隔、回転角度が求まれば、図11のグリッド112が示すように、グリッド間隔分のグリッドを仮想的に引き、このグリッドの位置から実際に打たれたドットの座標の変移を計測する。
最後に図12でしめすように、グリッドの変移から実際のデータに変換を行う。
次に第1領域復号部136と第2領域復号部137が、埋め込まれた付加情報を抽出する方法について詳細に説明する。
まず、第1領域復号部136について詳細に説明する。
第1領域復号部136は、図10に示した第1の領域101のサイズ103と、第1の領域の繰り返しサイズ104と、第1の領域101の位置を決定し、第1の領域101に埋め込まれた付加情報を抽出する。
まず、第1の領域101の繰り返しサイズ104を決定する。全ての第1の領域101には同じデータが入っているため、用紙の縦方向において所定のオフセットで自己相関を取ると、オフセット値が繰り返しサイズ104と一致したときに自己相関性は高くなる。従って、自己相関性が最も高くなるオフセットから繰り返しサイズ104を決定することができる。
図16は、オフセット値と自己相関値の関係を表すグラフを示す。
例えば、第1の領域101のサイズ103を8、繰り返しサイズ104を24とした場合、オフセットが24で自己相関値はピーク161となる。したがって、24を繰り返しサイズ104と決定することができる。
次に、第1の領域101の位置と第1の領域のサイズ103を決定する。自己相関値から第1の領域101の繰り返しサイズ104は決定したが、第1の領域101の位置と、第1の領域101のサイズ103を決定する必要がある。
図17は、第1の領域101の位置の決定方法を示した図である。
繰り返しサイズ104が既に決定しているので、相対座標リスト記憶部135から任意の繰り返しサイズ分の領域を切り出す。そして、その領域の隣の領域の相関を求め、さらに隣の領域の相関を求める、ということを繰り返す。この中で第1の領域101の部分は繰り返しサイズ104の周期で同じデータが出現するので相関性が高い。第2の領域102は、繰り返しサイズ104では同じデータが出現しないので相関性が低い。この特性を利用して、相関性の高い部分の開始位置を第1の領域101の開始位置と特定し、相関性の高い部分の終わりまでのサイズを第1の領域101のサイズ103と決定する。
以上の処理で決定した第1の領域101の位置とサイズ103から、第1の領域に埋め込まれた付加情報を抽出する。ここで単一の領域のみから付加情報を抽出すると計測誤差やノイズが原因で誤判定を起こす可能性があるため、すべての第1の領域101に書き込まれたドット群の位置の集計を行い、最頻値を採用して付加情報の抽出を行う。付加情報を抽出する段階においてノイズや誤差による影響が拭えないため、抽出した結果にエラー訂正処理を施す。まずは図12で説明したように、グリッドからの変移を抽出して、変移位置に対応するデータに変換して第1の領域101に埋め込まれたデータ列を抽出する。エラー訂正符号には既知の技術として数多くされているが、ここではLDPC(Low Density Parity Check)方式を使用する。LDPCは誤り訂正能力が非常に高く、シャノン限界に近い特性を示すことで知られている。LDPCの詳細な説明に関しては省略する。また、LDPC以外であっても、エラー訂正符号の特性を持つ方式であればどのような方式であっても構わない。エラー訂正符号を用いることで、抽出したグリッドにある程度の誤差やノイズが含まれていても埋め込みデータを抽出することができる。
さらに、回転角度の補正で説明したとおり、回転角度の補正処理は90度単位で行うため、ここで抽出されたデータは正しいデータか、正しいデータを90度回転したものか、180度回転したものか、270度回転したものかの4通りが存在する。そこで、抽出データに対して、回転なし、90度回転、180度回転、270度回転した結果に対してLDPCによるエラー訂正を行う。正しい回転角度の場合にのみ、エラー訂正符号が機能し、正常にデータを抽出することが可能である。
以上の処理によって、第1の領域101に埋め込まれた第1の情報を抽出できる。
次に第2領域復号部137について詳細に説明する。
まず、第1の領域101と同様、第2の領域102の自己相関を取る。第2の領域102は、第1の領域101の繰返し周期の倍数で埋め込まれるため、第1の領域101の繰り返し回数(例えば、24、48、72、…)の倍数単位のいずれかで自己相関をとればよいので計算を省くことが可能である。さらに第2の領域102については、第2の領域102の繰り返しサイズ105と第2の領域102のサイズが同値となる。自己相関を取った結果、最頻値から第2の領域の繰り返しサイズ105を算出する。
次に第2の領域102の開始位置の特定を行う。埋め込み時に第1の領域101の開始位置と第2の領域102の開始位置を同期させるため、第2の領域102の開始位置は第1の領域101の開始位置のいずれかに絞り込むことが可能である。
第2の領域102の位置決定にはエラー訂正符号を利用する。第1の領域101と同様に第2の領域102に関しても埋め込みデータの他にエラー訂正符号が付加される。第2の領域102のサイズ105が既知であるため、第1の領域101の先頭位置から順番に見込みでエラー訂正処理を実施していく。
図17は、第1の領域101の位置の決定方法を示した図である。
図18は、第2の領域102の位置の決定方法を示した図である。
図18は、自己相関によって第2の領域102のサイズ105が第1の領域101の繰り返し同期の4倍であることを示している。ここで4×4=16のいずれかが第2領域102の開始位置となるため、1、2、3、4、5、と位置をずらしながら、エラー訂正処理を行う。エラー訂正処理に成功した場合、その位置を第2の領域102として採用することができる。
以上の処理によって、第2の領域102に埋め込まれた第2の情報の抽出を抽出できる。
次に、上述した情報埋め込み技術を用いて付加情報を埋め込んだ画像の形成方法を説明する。
図19は、クライアントPC1001と、画像形成装置3001の機能を説明するためのブロック図である。
クライアントPC1001は、印刷データ生成部5011、画像合成部5012、データ通信部5013、複写制御情報保持部5014、符号画像生成部5015を備える。画像形成装置3001は、データ受信部5031、データ解析部5032、画像生成部5033、印字部5034を備える。
尚、図に示した各ブロックは、クライアントPC1001、画像形成装置3001の物理的な構成とは一対一には対応しない。
クライアントPC1001上でユーザが印刷指示を出すと、印刷データ生成部5011が起動する。印刷データ生成部5011は、プリンタドライバおよびOSが協調して動作する印刷サブシステムによって実現される。起動した印刷データ生成部5011は、ユーザが印刷を指示したドキュメントを、例えばPDL(Page Description Language)の印刷データに変換する。印刷データ生成部5011は、生成した印刷データを画像合成部5012に送る。
複写制御情報保持部5014は、ユーザがセキュリティ設定ダイアログボックスを介して設定した複写制御情報を一旦保持する。その後、印刷指示に従って、複写制御情報保持部5014は、複写制御情報を符号画像生成部5015に送る。
符号画像生成部5015は、受け取った複写制御情報をもとに、LVBCを利用して、画像に埋め込む付加情報をバイナリデータで生成する。LVBCを利用して埋め込む付加情報のデータサイズは、例えば、第1の情報が8Byteで、第2の情報が200Byteである。
図21は、第1の領域101に埋め込まれる付加情報を示す。
第1の領域101には、印刷ジョブ毎に設定される識別情報(ID)が格納される。識別情報(ID)は8Byteの値である。識別情報(ID)の値は、プリンタドライバが印刷ジョブ毎に生成する乱数に基づいて決定される。なお、プリントサーバ2001を利用する場合は、識別情報(ID)は、プリントサーバ2001が管理する値であってもよい。
図22は、第2の領域102に埋め込まれる付加情報を示す。
複写条件1902には、ユーザが図3の印刷セキュリティ設定ダイアログボックス31で指定した複写条件が格納される。条件情報種別1903、データサイズ1904、条件情報1905はユーザが図3の印刷セキュリティ設定ダイアログボックス31の内「複写を許可する為の条件を指定する」を選択した場合に利用される。条件情報種別1903には、条件情報ボックス1905に格納されているデータがパスワードであるか、ユーザ名であるか、期限であるかを示す情報が格納される。データサイズ1904には、条件情報に格納されるデータのサイズが格納される。条件情報1905には、複写の許可を判定する際に利用される条件情報が格納される。条件情報がパスワードの場合には、パスワードのデジタルデータが格納される。しかし、パスワードそのものを格納するとパスワードの漏洩が懸念されるため、パスワードのデジタルデータからハッシュ関数を用いて算出されたハッシュ値を格納する。従って、条件情報ブロック1905にはユーザが入力したパスワードのデジタルデータから算出された20Byteのハッシュ値が格納される。また、条件情報がユーザ名の場合には、条件情報ブロック1905にはユーザが入力したユーザ名の文字列が格納される。複数のユーザに対して複写が許可されている場合は、各ユーザ名の文字列が”,”(カンマ)で区切られて格納される。
以上により生成されたバイナリデータからなる付加情報を元に符号画像生成部5015は、前述の情報埋め込み技術を用いて、ドット群によって形成された背景画像の符号化画像を生成する。生成された符号化画像は画像合成部5012に送られる。
画像合成部5012は、印刷データ生成部5011から受け取った印刷データと、符号画像生成部5015から受け取った背景画像の符号化画像とを合成する。合成方法としては、例えば背景画像をオーバレイフォーム情報としてPDLに埋め込む方法がある。次いで、画像合成部5012は、背景画像が合成された印刷データをデータ送信部5013に送る。
データ送信部5013は、印刷データを、画像形成装置3001に送る。図19は、プリントサーバを介さないで画像形成装置3001に送る場合を示しているが、プリントサーバを介して画像形成装置3001に送る構成であってもよい。
次に、画像形成装置3001の動作について説明する。
データ受信部5031は、ネットワークインタフェース3306(図8参照)を介して印字命令を含む印刷データを受信する。印刷データを受信したデータ受信部5031は、データ解析部5032に印刷データを送る。
データ解析部5032は、受け取った印刷データの中から描画命令(PDL)を取り出し、それを解釈し、画像形成装置3001が内部的に使用する中間データに変換する。データ解析部5032は、中間データを画像生成部5033に送る。
画像生成部5033は、RIP部3308(図8参照)を制御して、中間データをビットマップ画像に変換する。画像生成部5033は、ビットマップ画像を圧縮部3309(図8参照)によって圧縮した後、印字部5034に送る。
印字部5034は、図8に示す伸長部3315、プリンタ画像処理部3317、プリンタI/F3318およびプリンタ部3203を制御して、ビットマップ画像を用紙に印字する。
以上により、付加情報が埋め込まれた印刷出力が得られる。
なお、上記の説明では、クライアントPC1001が、付加情報が埋め込まれた符号画像を生成する構成であるが、画像形成装置3001が符号画像を生成する構成であってもよい。その場合、ユーザが図3のセキュリティ設定ダイアログボックスを介して入力した複写制御情報は印刷命令の一部として画像形成装置3001に送られる。画像形成装置3001は複写制御情報を元に符号画像を生成する。画像形成装置3001は、符号画像生成部3316で、前述の情報埋め込み技術を用いて、ドット群からなる背景画像の符号画像を生成する。埋め込まれる複写制御情報のバイナリデータは、符号画像生成部3316で生成されるが、その生成方法はクライアントPC1001で行われる生成方法と同じである。画像生成部5033は、プリンタ画像処理部3317を制御して、伸長部3315から受け取ったビットマップと、符号画像生成部3316から受け取った符号画像を合成し、合成した画像のビットマップを印字部5034に送る。印字部5034は、プリンタ部3203を制御して、受け取ったビットマップ画像を用紙に印字する。
[他の実施例]
本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に装着し、そのシステム等のコンピュータが記録媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成する。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現されてもよい。また、記録媒体から読み出されたプログラムコードが、コンピュータの機能拡張カードや機能拡張ユニットに書込まれた後、機能拡張カード等がプログラムコードの指示に基づき処理の一部または全部を行うことで、前述の実施例を実現してもよい。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納される。