条件付き複写許可情報と条件が付加された原稿は、その条件が満たされる場合に複写可能になる。そのため、例えば、上記原稿の条件を知っているユーザがその原稿を複写し様として条件を正確に入力した場合、複写機はその原稿を複写せざるを得ない。
本発明の実施例1は、こうした原稿を用いて複写禁止情報が付加された別の原稿までも複写しようとするユーザに対処するものである。具体的には、上記別の原稿の複写を禁止するだけでなく、制裁措置としてその原稿(条件付き複写許可情報と条件が付加された原稿)の複写さえも禁止する。
ここで、本発明の実施例1において使われる用語について説明する。特定の情報とは、次のいずれかの情報である。1つ目が、複写禁止情報と原稿IDの2つの情報である。2つ目が、条件付き複写許可情報と条件と原稿IDの3つの情報である。また、本発明の実施例1において、複写禁止情報と条件付き複写許可情報を総称して複写制御情報と呼ぶ。
次に、特定の情報が付加された原稿を作成する処理について説明する。始めに、特定の情報を符号化することで埋め込み情報を得る。2番目に、埋め込み情報を画像化することでバーコードを生成する。そして、当該生成されたバーコードを複製する。結果として得られた複数のバーコードを組合わせてバーコード群を生成する。3番目に、バーコード群と原稿画像を合成しバーコードの合成された原稿画像を生成する。最後に、バーコードの合成された原稿画像を印刷する。これにより、特定の情報がバーコードで付加された原稿が作成される。この一連の処理を特定の情報の「付加」と呼ぶ。なお、特定の情報を符号化し画像化する処理(これにより、バーコードが生成されることになる)のことを、特定の情報のバーコード化と称することにする。
なお、複数のバーコードを組合わせたバーコード群を原稿画像に合成して印刷するのは、耐性を向上させるという効果を得るためである。このようにバーコード群を原稿画像に合成して印刷しておくことで、一つでも汚れていないバーコードが原稿に存在する限りその原稿から特定の情報が抽出できることになる。
なお、本発明の実施例1も含め以降の実施例では、このようにバーコード群を利用する形態(即ち、バーコード群を原稿画像に合成して印刷する形態、及び、その印刷により得られた原稿を読み取り複写を制御する形態)を例に各ステップの処理の説明を行うこととする。しかし、上記効果を落としてバーコードを一つだけ原稿画像に合成して印刷する形態や、その印刷により得られた原稿を読み取り複写を制御する形態も考えられるであろう。
なお、本実施例では、バーコード群に含まれるバーコードの数は、原稿画像のサイズに対応している。例えば、原稿画像がA4サイズ(21cm×29.7cm)のシートに印刷されるサイズである場合、バーコード群には、21×29個のバーコードが含まれることになる。これにより、上記作成された原稿の全面にバーコードが含まれることになる。
次に、特定の情報がバーコードで付加された原稿から特定の情報を抽出する処理について説明する。始めに、原稿台の上、または、ADF(Auto Document Feeder)に置かれたその原稿を読み取り、読み取った原稿の原稿画像を生成する。2番目に、その原稿画像からバーコードを見つけ出す。3番目に、見つけ出したバーコードを情報化して埋め込み情報を得る。4番目に、埋め込み情報を復号化して特定の情報を得る。これにより、特定の情報がバーコードで付加された原稿から特定の情報を得ることができる。この一連の処理の内の2番目以降の処理を、特定の情報の「抽出」と呼ぶ。
なお、埋め込み情報には、誤り訂正符号が含まれており、特定の情報には、誤り訂正符号は含まれていない。
以下、図1を参照して本発明の第一の実施例におけるMFP(Multi Function Peripheral)の構成について詳細に説明する。ここで、図1は、本実施の形態に係るMFPの構成を例示するブロック図である。
制御部1は、MFPの各ユニットの動作制御をおこなう箇所である。この制御部1は、CPU(Central Processing Unit)を有している(ここでは図示しない)。また、制御部1は、埋め込み情報の復号化も行う。
操作部5は、MFPに対するユーザからの操作入力を受け付ける箇所である。
ユーザ認証部6は、MFPを使用するユーザの認証に必要な情報を管理する箇所である。ユーザ認証部6の詳細な動作については後述する。
読取部2は、上述の原稿を読み取ることで(例えば、スキャンし)、その原稿の原稿画像の生成を行う箇所である。なお、原稿が印刷物等の紙文書であるのに対して原稿画像はデジタル(又は、アナログ)のデータである。
情報化部3は、上述の原稿画像からバーコードを見つけ出して情報化を行う箇所である。
メモリ7は、原稿画像を記憶する箇所である。
出力部8は、メモリ7から原稿画像を読み出した後、原稿画像の印刷、または、原稿画像の外部装置への送信等の出力を行う箇所である。ここで外部装置とは、MFPとネットワークを介して接続されているPC等を指す。
表示部9は、制御部1の制御により表示画面の表示を行う箇所である。
データベース10は、MFPの印刷設定や使用ログを記録する箇所である。
エンコード部11は、上述の符号化と画像化を行う箇所である。
次に、特定の情報を付加したい場合に、ユーザが行う手続きとそれに応じたMFPが行う処理について詳細に説明する。
原稿に特定の情報を付加したいユーザは、まず、表示部9に表示される設定画面3002を見ながらユーザID及びパスワードを、操作部5を介して入力する。
操作部5を介して入力された情報は、操作部5からユーザ認証部6に送られる。ユーザ認証部6は、管理している情報に従って入力されたパスワードが適切なパスワードであるか判断する。
判断の結果、パスワードが適切なパスワードである場合に、ユーザ認証部6は、適切なパスワードであるという旨とユーザIDを制御部1に送信する。
適切なパスワードであるという旨とユーザIDを受信した制御部1は、チェックボックスを表示部9に表示する(ここでは図示しない)。そのチェックボックスには、特定の情報を付加するべきかをユーザに問う項目がある。ユーザが、操作部5からチェックボックスに対してチェックをした場合、制御部1は、図6(a)に示す印刷セキュリティ設定ダイアログボックス31を表示部9に対して表示する。
続いて、ユーザは、操作部5からこの印刷セキュリティ設定ダイアログボックス31内のラジオボタン32にチェックを入れることにより、「複写を禁止する」、「複写を許可する為の条件を指定する」の選択肢の中から一つの選択肢を選択する。選択された選択肢が「複写を禁止する」の場合は、特定の情報として複写禁止情報と原稿IDが印刷対象の原稿に付加されることになる(後述)。選択された選択肢が「複写を許可する為の条件を指定する」である場合は、特定の情報として条件付き複写許可情報と原稿IDと条件が印刷対象の原稿に付加されることになる(後述)。
なお、「複写を許可する為の条件を指定する」を選択すると、条件入力フィールド33が入力可能な状態になり、ユーザは、そこに条件(例、パスワード、ユーザID)を入力することになる。条件がパスワードの場合、この時点でユーザは、そのパスワードを入力することになる。一方、条件がユーザIDである場合には、ユーザは、この時点でそのユーザIDを入力する必要はなく条件をユーザIDとする旨を入力するだけでよい。なぜなら、ユーザIDは、ユーザ認証で使用されるべく既に入力されているからである。
なお、一連の複写で作成された原稿にはすべて同じ原稿IDが付加されることになる。ここで、一連の複写とは、原稿台やADFに置かれた原稿群を一度の複写指示で複写することである。
よって、例えば、ユーザが原稿群(例えば、4枚)をADFに置いて3部複写する指示をMFPにしたとする。その場合、作成された3部の複写物(つまり、12枚)は一連の複写で複写されたものとなり、その3部の複写物にはすべて同じ原稿IDが付加されることとなる。
また、特定の情報を付加するための入力は、MFPと接続されているPCのドライバやユーティリティ上からできてもよい。また、本発明の実施例1において、1枚の原稿に対して付加する複写制御情報は、複写禁止情報か条件付き複写許可情報のいずれか1つのみである。
次に、バーコードの含まれた原稿の作成方法について図2を参照して詳細に説明する。ここで、図2は、MFPの原稿の作成処理を示すフローチャートである。
制御部1は、チェックボックスがチェックされているかを判断する(S101)。
S101において、チェックボックスがチェックされていると判断された場合、制御部1は、印刷セキュリティ設定ダイアログボックス31を用いてユーザにより行われた選択を操作部5から受け取る。そして、その選択に応じた特定の情報をエンコード部11に送信する(S102)。上述したように、選択された選択肢が「複写を禁止する」の場合、その選択に応じた特定の情報は、複写禁止情報と原稿IDを含むことになる。また、選択された選択肢が「複写を許可する為の条件を指定する」の場合、その選択に応じた特定の情報は、条件付き複写許可情報と原稿IDと条件を含むことになる。
次に、読取部2は、原稿を読み取ることで原稿画像を生成しメモリ7と情報化部3に送信する(S103)。
次に、エンコード部11は、特定の情報を符号化、および、画像化することでバーコードを生成する。さらに、エンコード部11は、そのバーコードを原稿画像のサイズに合った数(例えば、608個)だけ複製する。そして、結果として得られた複数のバーコード(例えば、609個)を組合わせてバーコード群を生成し当該バーコード群をメモリ7に送信する(S104)。
次に、制御部1は、メモリ7がバーコード群と原稿画像を受け取ったことを検知するとメモリ7において、バーコード群と原稿画像を合成してバーコードの合成された原稿画像を生成する(S105)。このように、本実施例では、複数のバーコードを組合わせてバーコード群を生成し当該生成されたバーコード群と原稿画像を合成している。これにより、バーコードの合成された原稿画像を生成している。しかしながら、手順を変えてバーコードを一つずつ、即ち、繰り返し原稿画像に合成しても同様の画像が生成されることになる。
次に、制御部1は、バーコードの合成された原稿画像をメモリ7から出力部8に送信し出力部8に原稿画像を出力させる(S106)。出力部8が原稿画像を出力する方法としては、例えば、原稿画像の印刷等がある。原稿画像が印刷されると、その原稿画像の元になった原稿が複写されることになる。
なお、チェックボックス2011にチェックがされていない場合、読取部2は、原稿を読み取って原稿画像を生成しメモリ7に送信する(S107)。
次に、制御部1は、メモリ7が原稿画像を受け取ったことを検知すると原稿画像をメモリ7から出力部8に送信して出力部8に原稿画像を出力させる(S108)。
次に、バーコードについて、図3、図5を参照して詳細に説明する。図5は、1つのバーコードを示している。図3は、その1つのバーコードの一部にリファレンスグリッドを引いた図を示している。
図5の1600は、1センチかける1センチ程度のサイズであり1つのバーコードを示している。このバーコード1600は、高密度領域(1605〜8)と低密度領域(1609〜1612)の2つの領域を有する。
この高密度領域には、符号化された複写制御情報が含まれ、低密度領域には、符号化された条件が含まれることになる。なお、後述の通り、低密度領域に含まれる条件は、条件そのものであることもあるし、ハッシュ化された状態の条件であることもある。なお、条件が無い場合、即ち、複写禁止情報(ただし、実施例2の場合には複写禁止情報、または、複写許可情報)が高密度領域に含まれる場合、低密度領域にはダミーの情報(意味を持たない情報)が含まれることになる。なお、高密度領域は、低密度領域に比べて誤り訂正符号が多量に使われる。
誤り訂正符号が多量に使われるにも関わらず高密度領域の方が小さいのは、複写制御情報のデータサイズが条件のデータサイズよりも小さいからである。なお、本明細書では、説明の省略のため条件としてユーザIDとパスワードを開示することにした。しかし、条件はこれらに限られない。例えば、条件は日時やユーザの所属する部署等の他の情報であっても良い。あるいは、様々な情報が組み合わせて(例えば、日時、ユーザID、パスワード、ユーザの所属する部署等を組合わせて)条件が作成されても良い。どのような複雑な条件が指示されても対応できるように(それでも限界はあるが)、本明細書では、高密度領域よりも低密度領域を大きくとっている。
図3は、その1つのバーコードの一部にリファレンスグリッドを引いた図を示している。この図3には、バーコードを構成する情報ドット1401、および、配列ドット1402が示されている。配列ドット1402は、点線で示されるリファレンスグリッド1403の上に等間隔に(即ち、リファレンスグリッド1403同士の交点の上に)存在する。
そして、情報ドットは、このリファレンスグリッド1403同士の交点からずれた位置に存在する。特定の情報は、この情報ドットのずれ方向(交点に対する情報ドットがずれた位置の方向)で表現されることになる。上述のリファレンスグリッドであるが図3では、点線で描かれているものの実際には印刷されない線である。
次に、原稿画像から特定の情報を抽出する処理について説明する。特定の情報を抽出する処理は、上述の通り、(1)その原稿画像からバーコードを見つけ出す。(2)見つけ出したバーコードを情報化して埋め込み情報を得る。(3)埋め込み情報を復号化して特定の情報を得る処理からなる。
始めに、(1)原稿画像からバーコードを見つけ出す方法について図4を参照して詳細に説明する。
情報化部3は、原稿画像内の任意のドット1501を選択する。情報化部3は、当該選択されたドットの周辺に存在する任意のドット1502を選択する。情報化部3は、これら選択したドットの位置を両ドットの中心点を中心として90°回転する。回転により得られた位置にドットが存在する場合、上記選択された各ドットは、縦横共に等間隔に存在しているはずの配列ドットであると情報化部3は判断する。
一方、ドットが存在しない場合、選択された各ドットは、ランダムな位置に存在しているはずの情報ドットであると情報化部3は判断する。
このようにして、情報化部3は、二つの配列ドットを見つけ出し、配列ドットが縦横共に等間隔に存在しているという制約条件から、他の配列ドットを見つけ出すのである。情報化部3は、配列ドットを複数個(例えば、縦横から夫々100個ずつ)見つけ出した後、これら配列ドット上にリファレンスグリッドを仮想的に引く。この例の場合、リファレンスグリッドは、縦、約200本、横、約200本の合計、約400本の線からなる。なぜ、そのような本数になるかは図3より明らかである(図3では、縦に2つ、横に3つの配列ドットが存在し、縦に3本、横に6本の線が引かれている)。
なお、本発明の実施例1では以上の処理(任意のドットを選択する処理からリファレンスグリッドを仮想的に引く処理まで)を総称して、バーコードを見つけ出すと称する。なぜなら、1つのバーコードは、このリファレンスグリッドの引かれた領域内に必ず存在するためである。ちなみに、本実施例及びそれ以降の実施例で開示する1つのバーコード(高密度領域と低密度領域を含む)のサイズは、縦100本×横100本の線(なお、2本の線の間隔は約100umである)から形成される領域のサイズと同じであるものとする。情報化部3は、縦横共にその2倍以上のサイズからなる領域にリファレンスグリッドを引くため、そのリファレンスグリッド内に最低1つはバーコードが存在することになる。
なお、情報化部3は、対象とする領域を変えながら以上の処理(任意のドットを選択する処理からリファレンスグリッドを仮想的に引く処理まで)をN回(例えば、20回)繰り返し行う。例えば、原稿画像全体をN個(例えば、縦4、横5の合計20)の領域に区切り、N回、以上の処理を繰り返す。このようにN回、以上の処理を繰り返すことによってたとえ原稿画像内にバーコード群が複数存在していても、各バーコード群に含まれる少なくとも1つのバーコードを見つけ出すことができる。
例えば、原稿台に二枚の原稿が置かれ、一枚目の原稿に複写禁止情報が付加され、二枚目の原稿に条件付き複写許可情報が付加されているような場合には、原稿画像内にバーコード群が複数存在することになる。こうした場合であっても、情報化部3は、様々な領域においてリファレンスグリッドを引いているため各バーコード群に含まれる少なくとも1つのバーコードを見つけ出すことができる。即ち、複写禁止情報に対応するバーコードも、条件付き複写許可情報に対応するバーコードも見つけ出すことができるようになる。
以上が、バーコードを見つけ出す方法についての説明である。
次に、(2)見つけ出したバーコードを情報化して埋め込み情報を得る方法について説明する。
(2−1)情報化部3は、リファレンスグリッド同士の交点からの情報ドットのずれ方向を求める。上述の例では、縦200本、横200本の線が引かれているため合計4万の交点が存在する。このうち、2万の交点には配列ドットが存在しているため残り2万の交点からの情報ドットのずれ方向を求める。これにより、情報ドット1つ当り3ビットの情報を得ていくことになる。
より詳細には、情報ドットが上方向にずれている場合に0、右上方向にずれている場合に1、右方向にずれている場合に2(以下、方向が45度ずれるごとに情報の値が1ずつ増える。)というふうにして、情報化部3は、0〜7の情報(3ビットの情報)を得ていく。その結果、3ビット×2万=6万ビットの情報が得られることになる。この6万ビットの情報の中に埋め込み情報が含まれていることになる。
(2−2)次に、こうして得られた情報(例えば、6万ビットの情報)の中から埋め込み情報を見つけ出す処理について説明する。
符号化の説明の際には省略したが符号化の際にエンコード部11は、所定のビット列(例えば、01010101010101010101の20ビットからなるビット列)が最初に含まれるようにして埋め込み情報を得ている。
情報化部3は、上記こうして得られた情報(例えば、6万ビットの情報)からその所定のビット列を見つけ出す。そして、その所定のビット列が次に見つかるまでの情報を埋め込み情報と判断する。
つまり、情報化部3は、「所定のビット列+所定のビット列同士に囲まれる情報列」を埋め込み情報であると判断するのである。このようにして、情報化部3は、「所定のビット列+所定のビット列同士に囲まれる情報列」である埋め込み情報を得ることになる。
以上の処理(2−1、2−2の処理)を情報化部3は、複数引いたリファレンスグリッドすべて(つまり、20個)に対して行う。
以上が、(2)バーコードを情報化して埋め込み情報を得る方法についての説明である。
最後に、(3)埋め込み情報を復号化して特定の情報を得る処理についての説明を行う。
バーコードを1つ見つけた制御部1は、当該バーコードの高密度領域に含まれる埋め込み情報を復号化する。具体的には、その埋め込み情報から、誤り訂正符号と所定のビット列を省く(削除する)。このように復号化を行うことで制御部1は、複写制御情報と原稿IDを得ることができる。
さらに、制御部1は、複写制御情報として条件付き複写許可情報を得た場合には、条件を得るために低密度領域に含まれる埋め込み情報の復号化を行う。このように低密度領域を常に復号化するのではなく条件付き複写許可情報を得た場合にのみ復号化するのは、低密度領域の埋め込み情報のデータサイズが高密度領域のデータサイズより大きく復号化に時間がかかるからである。
以上が、(3)埋め込み情報を復号化して特定の情報を得る方法についての説明である。
以上、説明してきた一連の処理を「抽出」と呼ぶ。抽出処理を行うことで原稿画像から特定の情報を得ることができる。
次に、不正複写を防止する機能を搭載したMFPが行う複写動作の制御を、図1、図7を参照して詳細に説明する。図7は、本実施形態において、MFPが実行する複写制御の流れを示すフローチャートである。なお、MFPは、特定の情報を付加および抽出可能な複写機である。
バーコードが合成された原稿を複写したいユーザは、まず、表示部9に表示される設定画面3002を見ながらユーザID及びパスワードを、操作部5を介して入力する。操作部5を介して入力された情報は、操作部5からユーザ認証部6に送られる。ユーザ認証部6は、管理している情報に従って入力されたパスワードが適切なパスワードであるか判断する(S2301)。
ステップS2301において、ユーザ認証部6が適切なパスワードであると判断しなかった場合に、MFPは、適切なパスワードが入力されるまで待機する。
ステップS2301において、ユーザ認証部6が適切なパスワードであると判断した場合に、ユーザ認証部6は、適切なパスワードであるという旨とユーザIDを制御部1に送信する。適切なパスワードであるという旨とユーザIDを受信した制御部1は、複写開始を指示できるようになった旨を表示部9に表示させる。
その後、ユーザは、操作部5を介して複写開始指示を入力する。すると操作部5は、複写開始の旨を制御部1に連絡する。そして、制御部1は、読取部2が原稿を読み取るように制御する。これにより生成された原稿画像は、メモリ7と情報化部3に送信される(S2302)。なお、読取部2が読み取る原稿が複数ある場合、複数の原稿に対応する原稿画像が生成される。また、制御部1は、メモリ7が原稿画像を受け取ると、その原稿画像に対して、出力部8が印刷するために必要な画像処理(例えば、ハーフトーニングなど)の実行を開始する。
次に、情報化部3は、原稿画像からバーコードを見つけ出し、見つけ出したバーコードの情報化を行い埋め込み情報を得る(S2303)。上述の通り、このS2303の処理はN回(例えば、20回)行われるため、埋め込み情報が最大で20個得られる可能性がある。
次に、制御部1は、情報化部3に対してステップS2302で実行したバーコードの情報化処理が完了したかを問い合わせる(S2304)。バーコードの情報化処理が未完了の場合、ステップS2303の処理に戻る。
ステップS2304において、情報化部3がバーコードの情報化処理を完了した場合、制御部1は、情報化部3が原稿画像からバーコードの情報化処理により埋め込み情報を1つでも得られたかを判断する(S2305)。
ステップS2305において、情報化部3が原稿画像から埋め込み情報を1つでも得られた場合、制御部1は、得られた埋め込み情報における高密度領域に含まれていた情報をすべて復号化する(S2306)。
そして、制御部1は、特定の情報の内の複写制御情報と原稿IDを得る。その複写制御情報の中には、複写禁止情報と条件付き複写許可情報の両方、もしくは、どちらか片方が含まれている可能性がある。
次に、制御部1は、埋め込み情報における高密度領域に含まれていた情報の復号化処理が成功したかを判断する(S2307)。
ステップS2307において、制御部1が埋め込み情報における高密度領域に含まれていた情報の復号化処理が成功した場合、制御部1は、埋め込み情報における高密度領域に含まれていた情報全ての復号化が完了したかを判断する(S2308)。
ステップS2308において、制御部1が埋め込み情報における高密度領域に含まれていた情報全ての復号化を完了したと判断しなかった場合、制御部1は、MFPの複写動作を停止する。即ち、読取部2が生成した原稿画像の出力を行わない。
ステップS2308において、制御部1がすべての埋め込み情報の復号化を完了したと判断した場合、制御部1は、複写制御情報の中に複写禁止情報が含まれているかを判断する(S2309)。
S2309において、制御部1が複写制御情報の中に複写禁止情報が含まれていると判断した場合、制御部1は、MFPの複写動作を停止する。即ち、読取部2が生成した原稿画像の出力を行わない。
このステップS2309の処理により、MFPが複写禁止情報と条件付き複写許可情報の両方を抽出した場合(即ち、S2306で得られた複写制御情報の中に両方が含まれていた場合のことである)には、いずれの原稿も複写されないことになる。即ち、本来複写されるべき条件付き複写許可情報が付加された原稿も、複写禁止情報が付加された原稿も複写されないことになる。即ち、両方の情報が抽出された場合には、MFP(その中の制御部1)は複写禁止情報の方が優先されて複写を禁止するのである。結果、条件付き複写許可情報が付加された原稿を使って複写禁止情報が付加された原稿の不正複写を行おうとする、悪意のあるユーザの行為を防止することが出来る。
なお、この場合、制御部1は、条件付き複写許可情報に関連付けられた条件の入力をユーザに要求しないよう制御する。即ち、表示部9には、条件に相当する情報を入力するための画面が表示されない。なお、条件付き複写許可情報に関連付けられた条件とは、条件付き複写許可情報を得たバーコードと同じバーコードに含まれる条件のことである。
S2309において、制御部1が複写制御情報の中に複写禁止情報が含まれていると判断しなかった場合、制御部1は、別々の原稿IDに関連付けられた条件付き複写許可情報を規定個数(例えば、2個)以上抽出したかを判断する(S2310)。なお、原稿IDに関連付けられた条件付き複写許可情報とは、原稿IDを得たバーコードと同じバーコードに含まれる条件付き複写許可情報のことである。
S2310において、別々の原稿IDに関連付けられた条件付き複写許可情報を規定個数以上抽出したと制御部1が判断した場合(例えば、2個抽出した場合)、制御部1は、MFPの複写動作を停止する。即ち、読取部2が生成した原稿画像の出力を行わない。
このような場合(条件付き複写許可情報を規定個数以上抽出した場合のことである)に原稿画像の出力を行わないのは、悪意のあるユーザによる不正な複写を禁止するためである。悪意のあるユーザによる不正な複写とは、次のような行為である。
条件を知らない条件付き複写許可情報の付加された原稿を、条件を知っている条件付き複写許可情報の付加された原稿と同時に原稿台の上に置き、条件を知らない条件付き複写許可情報の付加された原稿をも複写しようとする行為のことである。
なお、このような場合(条件付き複写許可情報を規定個数以上抽出した場合)、本発明の第1の実施例では、規定個数以上抽出した条件付き複写許可情報に関連付けられた条件を抽出することはしない。即ち、埋め込み情報における低密度領域の復号化を行わない。なぜ復号化を行わないのかと言うと、MFPが条件を抽出している間、他の仕事(例えば、他の原稿の複写、他の原稿画像の印刷、他の原稿画像の送信)の実行速度が遅くなるからである。もちろん、こうした他の仕事の実行速度を気にしなければ、規定個数以上抽出した条件付き複写許可情報に関連付けられた条件を得ても良いのは言うまでもない。
一方、別々の原稿IDに関連付けられた条件付き複写許可情報を規定個数未満抽出した場合には、抽出した規定個数未満の全ての条件が満たされると原稿画像の複写を行う(S2311、S2312、S2313)。なお、抽出した規定個数未満の条件がたった1つだけの場合もある。このような場合、そのたった1つだけの条件が満たされることが、抽出した規定個数未満の全ての条件が満たされることに該当する。
ここで、条件付き複写許可情報の付加された原稿が多数(例えば、規定個数以上)原稿台に置かれている場合を考えて欲しい。このような場合において、さらに各原稿に別々の原稿IDが付加されていたとする。すると、原稿IDの個数が規定個数以上となり、別々の原稿IDに関連付けられた条件付き複写許可情報が抽出されるためどの原稿の複写も行われない。一方、各原稿に同じ原稿IDが付加されていたとする。すると、条件付き複写許可情報の数は1個になり、原稿IDの個数が規定個数未満となるため(条件が満たされると)原稿画像の複写は行われることになる。このように、各原稿に付加された原稿IDが同じ場合に各原稿を複写するのは、それらの原稿は一連の複写により作成された原稿であり、こうした原稿を一度に複写することが不正であるとは考えにくいからである。
S2310において、別々の原稿IDに関連付けられた条件付き複写許可情報が規定個数以上抽出されたと制御部1が判断しなかった場合(例えば、1つだけ抽出した場合である)、MFPは、規定個数未満の条件付き複写許可情報に関連付けられた条件を全て得る(S2311)。即ち、制御部1は、低密度領域の埋め込み情報を復号化する。
そして、そのように抽出された条件にパスワードが含まれる場合には、制御部1は、その条件に相当する情報(即ち、パスワード)を入力するよう求めるための表示を表示部9にさせる。一方、抽出した条件にパスワードが含まれない(例えば、全ての条件がユーザIDである)場合には、ここでは特段の表示を表示部9にさせる必要はない。条件に相当する情報(即ち、ユーザID)は、ユーザ認証のために既に入力されているからである。
その後、制御部1は、ユーザから入力された情報がS2311で抽出した全ての条件を満たすか判断する(S2312)。
S2312において入力された情報が全ての条件を満たすと制御部1が判断した場合、MFPは、原稿画像の出力を開始する(S2313)。例えば、S2301で送ったユーザIDと抽出した唯一の条件(この場合、抽出した条件の内のユーザIDとなる)とが一致した場合には、応じて複写が開始される。
なお、スキャンしたい原稿をユーザが他にも持っている場合、ユーザは、既に原稿台に置かれている原稿を取り除き上記他に持っている原稿を改めて原稿台に置くことになる。その後、ユーザが操作部5を介して複写開始指示を改めて入力すると、MFPは、S2302から処理を実行する。
一方、S2312において制御部1が条件を満たすと判断しなかった場合、制御部1は、MFPの複写動作を停止する。即ち、読取部2が生成した原稿画像の複写を行わない。
以上が、不正複写を防止する機能を搭載したMFPが行う複写動作の制御の説明である。
次に、本発明の実施例2では、MFPが行う複写動作の制御について、本発明の実施例1とは別の手法を説明する。始めに、本発明の実施例1とは異なる部分について説明する。
本発明の実施例2における複写制御情報には、条件付き複写許可情報と複写禁止情報の他に複写許可情報がある。この複写許可情報が付加された原稿をMFPが読み取った場合、条件付き複写許可情報とは異なり、MFPはユーザに条件を入力するよう求めることなくその原稿の複写を行う。即ち、複写許可情報が付加された原稿を複写する場合、ユーザは、無条件でこの原稿を複写することができるのである。
このように複写許可情報が新たに複写制御情報に含まれることになったため、特定の情報に次の情報が含まれることになる。即ち、複写許可情報と原稿IDの2つの情報が含まれることになる。
次に、特定の情報を付加したい場合にユーザが行う手続きとそれに応じてMFPが行う処理について図6(b)を用いて詳細に説明する。本発明の実施例2では、印刷セキュリティ設定ダイアログボックス31内に「複写を許可する」という選択肢が加えられている。ユーザがこの選択肢を選択した場合は、特定の情報として複写許可情報と原稿IDが印刷対象の原稿に付加されることになる。なお、その他の選択肢が選択された場合については本発明の実施例1と同じである。
その他説明をしなかった部分については、本発明の実施例1と同じである。具体的には、MFPの構成、特定の情報が付加された原稿を作成する処理、特定の情報がバーコードで付加された原稿から特定の情報を抽出する処理については同じである。即ち、MFPは、特定の情報が抽出可能である。
次に、本発明の実施例2における、不正複写を防止する機能を搭載したMFPが行う複写動作の制御について詳細に説明する。この制御は、図7で示したフローチャートのS2308とS2309の間に次のようなステップ(S2308.5)が加わる。このS2308.5とは、別々の原稿IDに関連付けられた複写許可情報を規定個数以上抽出したかを判断するステップである。以下、このステップが加わることで変更になる部分を説明する。
ステップS2308において、制御部1がすべての埋め込み情報の復号化を完了したと判断した場合、制御部1は、別々の原稿IDに関連付けられた複写許可情報を規定個数以上抽出したかを判断する。この規定個数は、これまで出て来た規定個数より多いことが望ましい。複写許可情報の付加された原稿を複数枚同時に複写しようとする行為の方が、条件付き複写許可情報の付加された原稿を複数枚同時に複写しようとする行為よりも、その裏に不正な意図のある可能性が低いからである。
制御部1が複写許可情報を規定個数以上抽出したと判断した場合、制御部1は、MFPの複写動作を停止する。即ち、読取部2が生成した原稿画像の出力を行わない。その上で、制御部1は、図7におけるフローチャートの「終了」へと処理を進める。
このような場合(複写許可情報を規定個数以上抽出した場合)に、原稿画像の出力を行わないのは、悪意のあるユーザによる不正な複写を禁止するためである。悪意のあるユーザによる不正な複写とは、複写許可情報が付加された原稿を複数枚原稿台の上に置き、さらに、複写禁止情報が付加された原稿も原稿台の上に置いて複写することである。
この場合、生成した原稿画像の大部分に複写許可情報のバーコードが含まれておりその他の一部分に複写禁止情報が含まれていることになる。そのため、情報化部3が複写禁止情報を含むバーコードを見つけ出せる可能性は低くなる。もちろん、理論上は複写禁止情報を含むバーコードを見つけ出せるはずなのだが、そうしたバーコードが汚れていたりすると見つけ出せる可能性は下がる。そこで、こうした悪意のあるユーザによる不正な複写を禁止するための新しいステップ(S2308.5)を加えたのである。
複写動作の制御の説明に戻る。制御部1が複写許可情報を規定個数(この規定個数は、例えば、5である)以上抽出していると判断しなかった場合、制御部1は、S2309へと処理を移し複写禁止情報を抽出したかを判断する(S2309)。
制御部1が複写禁止情報を抽出したと判断した場合(S2309でYESの場合)、制御部1は、MFPの複写動作を停止する。即ち、読取部2により生成された原稿画像の出力を行わない。
この処理により、MFPが複写禁止情報と複写許可情報の両方を抽出した場合(即ち、S2306で得られた複写制御情報の中に両方が含まれていた場合のことである)には何れの原稿も複写されないことになる。即ち、本来複写されるべき複写許可情報が付加された原稿も複写禁止情報の付加された原稿も複写されないことになる。結果、複写許可情報が付加された原稿を使って複写禁止情報が付加された原稿の不正複写を行おうとする、悪意のあるユーザの行為を防止することが出来る。
一方、制御部1が複写禁止情報を抽出したと判断しなかった場合(S2309でNOの場合)、制御部1は、別々の原稿IDに関連付けられた条件付き複写許可情報を規定個数(例、この規定個数は2である)以上抽出したかを判断する(S2310)。
ここで、制御部1が別々の原稿IDに関連付けられた条件付き複写許可情報を規定個数以上抽出したと判断した場合(S2310でYESの場合)、制御部1は、MFPの複写動作を停止する。即ち、読取部2が生成した原稿画像の複写を行わない。
一方、制御部1が別々の原稿IDに関連付けられた条件付き複写許可情報を規定個数以上抽出したと判断しなかった場合(S2310でNOの場合)、制御部1は、複写許可情報と条件付き複写許可情報の両方を抽出したかを判断する(S2310.3)。このステップ(S2310.3)も図7のフローチャートに新たに加わったステップである。
制御部1が複写許可情報と条件付き複写許可情報の両方を抽出したと判断した場合(2310.3でYESの場合)、制御部1は、MFPの複写動作を停止する。即ち、読取部2により生成された原稿画像の出力を行わない。
一方、制御部1が複写許可情報と条件付き複写許可情報の両方を抽出したと判断しなかった場合(S2310.3でNOの場合)、制御部1は、複写許可情報のみ抽出したかを判断する(S2310.6)。即ち、複写禁止情報や条件付き複写許可情報は抽出されず、複写許可情報のみ抽出されたか判断する。そして、制御部1が複写許可情報のみ抽出したと判断した場合、原稿画像の出力を行う。一方、制御部1が複写許可情報のみ抽出したと判断しなかった場合、図7のフローチャートS2311の処理から実行を行う。なお、説明を省いた部分については、本発明の実施例1と同様の動作制御を行う。
これらの処理からお分かりのように、本発明の実施例2は、複写許可情報が付加された原稿、即ち、無条件で複写されてしまう原稿を用いて条件を知らない条件付き複写許可情報が付加された別の原稿までをも複写しようとするユーザに対処するものである。具体的には、上記別の原稿の複写を禁止するだけでなく、制裁措置として、その原稿(複写許可情報が付加された原稿)の複写さえも禁止するものである。
(その他の実施例)
これまで様々な状況下において、原稿の複写を禁止することを説明してきた。しかし、禁止するのは複写でなくても良い。例えば、原稿画像を外部へ送信する等の他の出力を禁止しても良い。これに対応して、複写禁止情報を出力禁止情報、条件付き複写許可許可情報を条件付き出力許可情報、複写許可情報を出力許可情報と呼ぶ。
なお、本明細書においてバーコードとは、線の太さや点の位置によって情報を表す画像である。そして、これまでは、そのバーコードの一形式を例に取りMFPの行う処理の説明を行ってきた。しかし、当業者であればこれまで説明してきた形式のバーコードを、異なる形式のバーコード(例えば、QRコードやグリフコードなどの二次元バーコード、あるいは、複数の棒から構成される従来型のバーコード)に置き換えることが可能である。また、これまで説明してきた形式のバーコードを、透かし、あるいは、マークに置き換えることも可能である。ただし、マークに置換える場合には、各情報を示す別々の形のマークを定義する必要がある。また、この場合、MFPは、公知のパターンマッチング技術を用いて所定のマークが示す情報を判断することになる。こうしたパターンマッチング技術により所定のマークが示す情報を判断する処理も、本明細書では、情報の抽出と称することにする。また、こうした透かしや所定のマーク、あるいは、様々な形式のバーコードを総称して埋め込み画像と呼ぶことにする。
なお、パターンマッチング技術を用いて所定のマークがどのような情報を示すか判断するとしたが、MFPが所定のマークが示す情報を判断せずに所定のマークを見つけ出した時点でその所定のマークに応じた出力(例えば、複写)の制御を行っても良い。例えば、MFPが「○」というマークを検出した時点で、MFPは複写を禁止すると設定しておくことで、MFPが「○」を見つけ出した場合、その時点で「○」というマークに応じて複写を中止することになる。なお、条件付き複写許可情報の場合も同様であり、MFPが所定のマークを見つけ出した時点でその所定のマークに応じた出力の制御を行うことになる。この場合、バーコードや透かしを復号化することなく、その画像の形だけで出力の制御を行うことになる。このように所定のマークを見つけ出すことを、本明細書では、所定のマークの「検出」と称することにする。
また、以上説明した各実施例では、高密度領域と低密度領域を設けより重要な情報を高密度領域に含ませた。これにより、より重要な情報が原稿から正確に抽出できる可能性が高まるという効果が得られる。しかし、この効果を落とすことも当業者であれば考えつくであろう。その際には各領域で密度に違いを持たせることなく、バーコード内の全ての領域を同じ密度としてもよい。
また、以上説明した各実施例では、二つの情報(例えば、条件付き複写許可情報と原稿ID、あるいは、条件付き複写許可情報と条件)を互いに関連付ける方法として二つの情報を同じバーコードに含ませる方法を開示した。しかしながら、二つの情報を互いに関連付ける方法としては他の方法も考えられる。例えば、各情報の先頭に所定の情報(例えば、AAA)を加えることで関連付けるような方法も考えられる。
また、以上説明した各実施例では、原稿IDの個数を数えることで異なるバーコードが何個あるのかを識別した。しかし、それ以外の方法でも識別できる方法はある。例えば、原稿にバーコードのバージョンに関する情報を付加している場合は、MFPは、バーコードのバージョンの違いから異なるバーコードが何個あるのかを識別することができる。このように、バーコードの違いを識別するための情報(例えば、原稿IDやバーコードのバージョン情報等)を総称して原稿識別情報と呼ぶことにする。
なお、これまで同じ原稿IDは、一連の複写で作成された原稿にのみ付加されるものとして説明を行ってきた。しかしながら、同じ原稿IDは、一連の印刷(例えば、パソコンからの印刷命令に応じて行われる印刷)で作成された原稿に付加されてもよい。
また、以上説明した各実施例では、条件をビット列で表現してバーコード化を行ったが、必ずしも条件をそのままの状態(条件そのもの対応するビット列の状態)で表現する必要はない。即ち、条件そのものをバーコード化しなくてもよい。その代わりとして、ハッシュ化された状態の条件をバーコード化しても良い。この場合、条件をハッシュ化する際に用いたハッシュ関数をMFPに保持させておく必要がある。なお、本発明の各実施例において、特定の情報を付加するMFPと特定の情報を抽出するMFPは同じMFPであるが、夫々の処理を別々のMFPで行う場合も考えられる。このような場合、バーコードを付加するMFPとバーコードを抽出するMFPの両方に同じハッシュ関数を保持させておく必要がある。なぜなら、夫々のMFPで異なるハッシュ関数を用いた場合、例え、ハッシュ化された状態で付加されている条件と、ユーザから入力された条件とが同じであっても、ハッシュ化された状態の2つの条件の値は一致しなくなるためである。
なお、ハッシュ化された状態の条件をバーコード化する場合、図2、図7のフローチャートのステップが次のように変わる。図2のフローチャートでは、ステップS103とステップS104の間に、条件をハッシュ関数を用いてハッシュ化する(S103.5)というステップが加わる。このステップS103.5の処理により、条件は、ハッシュ化されてからバーコード化されることになる。
また、図7のフローチャートには、ステップS2312に、入力された条件をハッシュ関数を用いてハッシュ化する処理が加わる。そして、ステップS2312では、ハッシュ化された状態の抽出した条件とハッシュ化された状態の入力された条件の比較を行うことになる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。