(57)【特許請求の範囲】
【請求項１】
画像中に繰返して配列された所定のドットパターンに従う埋め込みデータを取出して、埋め込みデータに含まれる透かしデータを読出す画像処理装置であって、
前記画像を各々が前記所定のドットパターンに従う埋め込みデータが埋め込まれた複数の検出ブロックに分割し、分割された検出ブロック内の複数ビットの埋め込みデータを検出する検出手段と、
前記複数の検出ブロックのうち所定の複数の検出ブロック数分に関して、前記複数ビットの埋め込みデータの検出に従って、前記検出手段で検出されたビット値の統計量を取得する統計量取得手段と、
前記統計量取得手段における前記所定の複数のブロック数分の処理ごとに、前記統計量に基づき多数決による判定により前記埋め込みデータを正しく取り出せるか判定する判定手段と、
前記判定手段により前記埋め込みデータを正しく取り出せると判定した場合に、前記埋め込みデータから前記透かしデータを読み出す読出手段とを備える、画像処理装置。
【請求項２】
前記埋め込みデータはパリティビットを含み、
前記判定手段は、パリティビットに誤りがあるかを判定する、請求項１に記載の画像処理装置。
【請求項３】
前記埋め込みデータは誤り訂正符号により符号化されており、
前記判定手段は、前記埋め込みデータを誤り訂正符号で復号化した際、全データの誤りが一定以下であるかを判定する、請求項１に記載の画像処理装置。
【請求項４】
前記埋め込みデータは一方向性関数を用いて作成されるデータを含み、
前記判定手段は、一方向性関数を用いて整合を取ることができるかを判定する、請求項１に記載の画像処理装置。
【請求項５】
前記一方向性関数とは、チェックサム、または情報の全ビットを用いて計算する関数である、請求項４に記載の画像処理装置。
【請求項６】
前記埋め込みデータの全ビットを用いて計算する関数とは、ハッシュ関数である、請求項５に記載の画像処理装置。
【請求項７】
前記画像を読込むスキャナをさらに備え、
前記判定手段で前記埋め込みデータを正しく取出せると判定されると、スキャン動作を中止する、請求項１〜６のいずれかに記載の画像処理装置。
【請求項８】
前記判定手段で前記埋め込みデータを正しく取出せると判定されると、画像の読込みを中止する、請求項１〜６のいずれかに記載の画像処理装置。
【請求項９】
前記複数の検出ブロックのうち各前記検出ブロックについて前記埋め込みデータの検出が可能かどうか判断する判断手段をさらに備え、
前記統計量取得手段は、前記複数の検出ブロックのうち前記判断手段において前記埋め込みデータの検出が可能であると判断された前記所定の複数の検出ブロック数分に関して、前記複数ビットの埋め込みデータの検出に従って、前記検出手段で検出されたビット値の統計量を取得する、請求項１〜８のいずれかに記載の画像処理装置。
【請求項１０】
前記検出手段は、前記画像の端の検出ブロックから順に前記埋め込みデータを検出する、請求項１〜９のいずれかに記載の画像処理装置。
【請求項１１】
前記判定手段は、前記統計量が、少なくとも一定以上であれば判定を行なう、請求項１〜１０のいずれかに記載の画像処理装置。
【請求項１２】
前記検出手段により、前記複数ビットの埋め込みデータのうちあらかじめ定めた値が検出されるかどうかを判断する統計量判断手段をさらに備える、請求項１〜１１のいずれかに記載の画像処理装置。
【請求項１３】
画像中に繰返して配列された所定のドットパターンに従う埋め込みデータを取出して、埋め込みデータに含まれる透かしデータを読出す画像処理方法であって、
前記画像を各々が前記所定のドットパターンに従う埋め込みデータが埋め込まれた複数の検出ブロックに分割し、分割された検出ブロック内の複数ビットの埋め込みデータを検出するステップと、
前記複数の検出ブロックのうち所定の複数の検出ブロック数分に関して、前記複数ビットの埋め込みデータの検出に従って、前記検出手段で検出されたビット値の統計量を取得するステップと、
前記取得するステップにおける前記所定の複数のブロック数分の処理ごとに、前記統計量に基づき多数決による判定により前記埋め込みデータを正しく取り出せるか判定するステップと、
前記判定するステップにより前記埋め込みデータを正しく取り出せると判定した場合に、前記埋め込みデータから前記透かしデータを読み出すステップと備えた、画像処理方法。
【請求項１４】
画像中に繰返して配列された所定のドットパターンに従う埋め込みデータを取出して、埋め込みデータに含まれる透かしデータを読出す画像処理プログラムであって、
前記画像を各々が前記所定のドットパターンに従う埋め込みデータが埋め込まれた複数の検出ブロックに分割し、分割された検出ブロック内の複数ビットの埋め込みデータを検出するステップと、
前記複数の検出ブロックのうち所定の複数の検出ブロック数分に関して、前記複数ビットの埋め込みデータの検出に従って、前記検出手段で検出されたビット値の統計量を取得するステップと、
前記取得するステップにおける前記所定の複数のブロック数分の処理ごとに、前記統計量に基づき多数決による判定により前記埋め込みデータを正しく取り出せるか判定するステップと、
前記判定するステップにより前記埋め込みデータを正しく取り出せると判定した場合に、前記埋め込みデータから前記透かしデータを読み出すステップとをコンピュータに実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像処理装置、画像処理方法、および画像処理プログラムに関し、特に画像中に繰返して配列された情報を読出すことができる画像処理装置、画像処理方法、および画像処理プログラムに関する。
【背景技術】
【０００２】
従来より、ＭＦＰ（Multi Function Peripheral）やＬＢＰ（Laser Beam Printer）な
どに用いられる技術として、文書画像の背景に地紋パターンとしてデータを埋め込む技術が知られている。このような技術は、「文書用電子透かし」などと呼ばれる。
【０００３】
下記特許文献１は、透かし情報があるかどうかの情報と、透かし情報自身の両方を画像に埋込み、透かし情報ありと分かったときに透かし自身を検出することで、情報の抽出処理を高速化する技術を開示している。
【０００４】
下記特許文献２は、画像情報中の検出ブロックを（たとえば、市松模様に）間引いて検出することで、情報の抽出処理を高速化する技術を開示している。
【０００５】
下記特許文献３は、デジタル画像データを所定の大きさのブロックに分割してビットデータを取出し、最終的に多数決でデータを検出する技術を開示している。
【特許文献１】特開２００１−２１８００５号公報
【特許文献２】特開２００１−２１８０３４号公報
【特許文献３】特開２０００−５９６１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、画像中の情報を読出すことができる画像処理装置、画像処理方法、および画像処理プログラムにおいて、処理速度を高速化することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、画像中に繰返して配列された情報を読出す画像処理装置は、画像を複数のブロックに分割し、当該ブロック内の局所データを順次取出す取出手段と、取出手段における所定のブロック数分の処理ごとに、情報を正しく取出せるか判定する判定手段とを備える。
【０００８】
好ましくは情報は、データの正しさを判定することが可能なデータ構造を有する。
好ましくは情報はパリティビットを含み、判定手段は、パリティビットに誤りがあるかを判定する。
【０００９】
好ましくは情報は誤り訂正符号により符号化されており、判定手段は、情報を誤り訂正符号で復号化した際、全データの誤りが一定以下であるかを判定する。
【００１０】
好ましくは情報は一方向性関数を用いて作成されるデータを含み、判定手段は、一方向性関数を用いて整合を取ることができるかを判定する。
【００１１】
好ましくは一方向性関数とは、チェックサム、または情報の全ビットを用いて計算する関数である。
【００１２】
好ましくは情報の全ビットを用いて計算する関数とは、ハッシュ関数である。
好ましくは画像処理装置は、画像を読込むスキャナをさらに備え、判定手段で情報を正しく取出せると判定されると、スキャン動作を中止する。
【００１３】
好ましくは画像処理装置は、判定手段で情報を正しく取出せると判定されると、画像の読込みを中止する。
【００１４】
好ましくは画像処理装置は、複数のブロックのそれぞれにおいて局所データが取出せるか判断する判断手段をさらに備え、判定手段は、局所データが取り出せたブロックが所定の数になれば、情報を正しく取出せるか判定する。
【００１５】
好ましくは取出手段は、画像の端から順に局所データを順次取出す。
好ましくは判定手段は、情報の各ビットが、少なくとも一定以上カウントされていれば判定を行なう。
【００１６】
好ましくは情報の中からあらかじめ定めた値が取り出せれば、判定手段は、埋め込みデータが正しく取り出せるか確認する。
【００１７】
この発明の他の局面に従うと、画像中に繰返して配列された情報を読出す画像処理方法は、画像を複数のブロックに分割し、当該ブロック内の局所データを順次取出す取出ステップと、取出ステップにおける所定のブロック数分の処理ごとに、情報を正しく取出せるか判定する判定ステップとを備える。
【００１８】
この発明のさらに他の局面に従うと、画像中に繰返して配列された情報を読出す画像処理プログラムは、画像を複数のブロックに分割し、当該ブロック内の局所データを順次取出す取出ステップと、取出ステップにおける所定のブロック数分の処理ごとに、情報を正しく取出せるか判定する判定ステップとをコンピュータに実行させる。
【発明の効果】
【００１９】
この発明に従うと、画像を複数のブロックに分割し、当該ブロック内の局所データを順次取出し、所定のブロック数分の処理ごとに、情報を正しく取出せるか判定することができるので、画像中の情報を読出すことができる画像処理装置、画像処理方法、および画像処理プログラムにおいて、処理速度を高速化することが可能となる。
【発明を実施するための最良の形態】
【００２０】
［第１の実施の形態］
図１は、本発明の第１の実施の形態における画像処理装置の構成を示すブロック図である。
【００２１】
図を参照して画像処理装置は、ＣＰＵ、ハードディスクドライブ、メモリ、および各種インタフェースなどから構成されるＰＣ（Personal Computer）１０１と、ユーザの入力
を受付けるマウス１０３およびキーボード１０５と、画像の処理結果を表示するモニタ１０７と、各種記録媒体との間でプログラムや画像データなどの情報の授受を行なう外部記憶装置１０９と、原稿から画像データを読込むスキャナ１１１とから構成される。
【００２２】
また、ＰＣ１０１内部のハードディスクやメモリなどの記憶媒体には、画像処理ソフトウェア１０１ａが記憶される。画像処理ソフトウェア１０１ａがＰＣ１０１のＣＰＵにより実行されることで、画像処理が行なわれる。
【００２３】
この画像処理装置は、スキャナ１１１により地紋パターンなどのデータが埋め込まれた印刷物を読取り、その画像を処理することで、埋め込まれたデータを再現する。
【００２４】
図２は、図１の画像処理装置の機能構成を示すブロック図である。
図を参照して画像処理装置に含まれるＰＣ１０１は、入出力インタフェース１５１と、記憶装置１５５と、ＣＰＵやメモリ１５３とを含んでいる。また、記憶装置１５５は、処理演算部１５７と、ＯＳ（Operating System）１５９とを含んでいる。
【００２５】
マウス１０３やキーボード１０５により入力されたユーザ指示は、入出力インタフェース１５１を介してＰＣ１０１に入力される。また、入出力インタフェース１５１を介してＰＣ１０１からモニタ１０７に信号が送られることにより画像データの表示が行なわれる。スキャナ１１１からのスキャン画像も、入出力インタフェース１５１を介してＰＣ１０１に入力される。
【００２６】
なお、記憶装置１５５の機能の少なくとも一部を、外部記憶装置が負担するようにしてもよい。
【００２７】
図３は、本発明の第１の実施の形態において用いられる画像処理装置を含むＭＦＰの構成を示すブロック図である。
【００２８】
図を参照してＭＦＰは、ＭＦＰ本体２０１と、操作パネル部２０３と、スキャナ部２０５と、プリンタ部２０７とを含む。ＭＦＰ本体２０１は、スキャナ部２０５により読取られた画像データに対して地紋パターンなどの埋め込みを行なう画像処理ハードウェア２０１ａを含んでいる。地紋パターンが埋め込まれた画像データは、プリンタ部２０７でプリントされる。
【００２９】
またＭＦＰは、スキャナ部２０５により地紋パターンなどのデータが埋め込まれた印刷物を読取り、その画像を処理することで、埋め込まれたデータを再現することも可能である。
【００３０】
本実施の形態においては、縦横の２方向にデータを並べることで地紋パターンを作成し、それを原稿画像に埋め込んだものをプリント物とする。すなわち、データは２次元に配列される。
【００３１】
図４は、本実施の形態における画像処理装置が実行する処理を示すフローチャートである。
【００３２】
このフローチャートで示される処理は、図３のＭＦＰにより実行される、画像データ中に地紋パターンを埋め込む処理である。入力画像に対し、埋め込むデータ（透かしデータ）Ｉが入力されると、そのデータ自身の正しさを判定できる形式にデータを変換する（Ｓ１０１）。この例では、実際にはパリティビットを付加するものとし、後のデータ検出処理では、パリティビットが全透かしデータに対して正しいときに、データを検出できると判定する。
【００３３】
次に文書画像の背景に、パリティビットが付加されたデータをドットとして埋め込み、プリントする（Ｓ１０３）。これにより、図５のようなプリントアウト（印刷物）が得られる。
【００３４】
図５は、ドットパターンが埋め込まれた画像（およびその印刷物）の具体例を示す図である。
【００３５】
図中における灰色部分が、埋め込まれたドットパターンを示している。このように、データは、一見して分からないように埋め込まれる。
【００３６】
次に、データを埋め込む処理の詳細説明を行なう。
図６は、埋め込むデータの具体例を示す図である。
【００３７】
図を参照して、埋め込むデータが図６の左側の３２ｂｉｔデータであるとすると、本実施の形態では、それを２ｂｉｔずつ区切り、それぞれに（１ｂｉｔの）パリティビットを追加していく。パリティビットの追加規則としては、３ｂｉｔ毎に、その３ｂｉｔの中でのビット１の個数が偶数になるように、追加するものとする。すなわち、３ｂｉｔ中のビット１の個数は、０個か２個のどちらかとなるようにパリティビットは追加される。図６においては、追加したパリティビットに下線を付加している。
【００３８】
図７〜９は、埋め込みデータを表現するためのビットパターンの具体例を示す図である。
【００３９】
ビットパターンは、図７〜９のように３種類の１６×１６画素のパターンで定義されるものとする。この３種類のパターンのうち、図７は、「０」を表わす画像データの具体例を示す図であり、図８は、「１」を表わす画像データの具体例を示す図であり、図９は、「特殊データ」を表わす画像データの具体例を示す図である。「特殊データ」は、データの境界を示すための特殊なパターンとする。
【００４０】
データ「０」の場合には図７のドットパターン、データ「１」の場合には図８のドットパターンを用いるものとして、埋め込む情報のデータ列に従い、画像の背景にドットパターンを順次埋め込む。
【００４１】
この例では、１ビット（「０」または「１」）の表現に、１６×１６画素のパターン（データセル）を使用している。６００ｄｐｉでデータセルを埋め込むとすると、このデータセルは一辺１６／６００インチ（０．０６８ｃｍ）と非常に小さくなる。これにより、プリント結果の印刷物の背景は、図５のように一見グレーに見える。
【００４２】
図１０は、埋め込むデータの配置規則を示す図である。
図７〜９の１６×１６画素のパターンが、７×７個集まったパターンにより１つのブロック（１１２×１１２画素）が構成される。
【００４３】
このブロックの構成としては、図１０の通り、左上に「特殊データ」があり、データの繰り返しの境界が分かるようになっている。また、実際に埋め込むデータとしては、図６のように、元の１バイト分のデータが、パリティビットが追加されることで１２ｂｉｔになって、図１０のように計４バイト分（４８ｂｉｔ）、順に配置される。
【００４４】
図１１は、図１０の規則に従い、実際に図６右のデータを埋め込んだ結果を示す図である。
【００４５】
図１１のデータが、図１２のように紙一面に（上下左右の２次元に）繰り返され、文字等の本来プリントしようとしていたデータと合成され、プリントアウトされる。このドットを６００ｄｐｉで埋め込む場合には、実際にはかなり小さなドットとなるため、ユーザには、図５のように背景にグレーが追加されているように見える。文字等を合成するときに、埋め込みデータが消される恐れがあるため、背景のいろいろなところにデータは、繰り返し埋め込まれることとなる。
【００４６】
図１３は、埋め込まれたデータの検出処理を示すフローチャートである。
図を参照して画像処理装置は、ステップＳ２０１においてデータが埋め込まれた印刷物Ｐをスキャンし、スキャン画像を得る。ステップＳ２０３において、スキャン画像は、図１４に示されるように２００×２００画素からなる複数の検出ブロックに分割される。検出処理は検出ブロックごとに行なわれる。検出は左上のブロックから開始する。左上のブロック番号を「１」とする（初期化）。検出は、図１４に示されるように右に向かって検出ブロックを走査することで行なわれ、右端のブロックの処理が終了すると、１つ下の左端のブロックから右に向かって処理が行なわれる。
【００４７】
図１４においては、５ブロック目と１０ブロック目のブロックがハッチングにより示されている。
【００４８】
ステップＳ２０５で、処理対象の検出ブロックにおいて、埋め込まれたデータをパターンマッチングにより検出していく。ここで、パターンマッチング処理の一例として、単純類似度と呼ばれる処理を例示するが、同じような効果を提供できる処理であれば、他の処理を用いても良い。
【００４９】
単純類似度は、標準パターンｃ＝（ｃ１，ｃ２， … ，ｃ２８９）と、入力パターンｘ＝（ｘ１，ｘ２， … ，ｘ２８９）との２つのベクトルのなす角を求め、それが小さいほど類似していると判断する方法である。すなわち、
ｃ・ｘ／（｜ｃ｜×｜ｘ｜）                                      ・・・（式１）
（ここで、・はベクトルの内積、|  |はベクトルの大きさを示す。）
を求め、２つのベクトルのなす角のｃｏｓを計算し、それが１に近づくほど一致していると判断する。
【００５０】
ここで、図１５（ビット０）を標準パターンとし、ｃｏｓが特定の閾値以上であればビット０、図１６（ビット１）を標準パターンとし、ｃｏｓが特定の閾値以上であればビット１、図１７（特殊データ）を標準パターンとし、ｃｏｓが特定の閾値以上であれば特殊データ、いずれも閾値以下なら、データ未検出と判定しデータを拾い出していく。
【００５１】
その際、特殊データの位置を基準とし、図１０における相対位置を見ることで、埋め込んだときのどのビットに対応するかを判断する。１つの検出ブロックにおいて、その検出ブロックに含まれる図１０の４バイト（４８ビット）の各ビットが「０」であるか、「１」であるかを判定する。「０」と判定されると、ビット０の統計量を１加算し、「１」と判定されるとビット１の統計量を１加算する。なお、「０」、「１」ともに閾値以下でデータ未検出なら、統計量の加算を行なわない。１つの検出ブロックの処理が終わると、次の検出ブロックの処理に移行する。
【００５２】
このように局所的にデータを拾い出す処理を継続し、５ブロック分の処理を行なうたびに、データを正しく検出できるか確認する。なお、この例では５ブロックごととしたが、異なったブロック数ごとに行っても良い。
【００５３】
すなわち図１３のステップＳ２０７においては、処理対象のブロックの番号が５の倍数であるかを判定し、ＮＯであればステップＳ２０９でブロック番号を１加算する。ステップＳ２１１において、次のブロックがあるかを判定し、ＹＥＳであればステップＳ２０５に戻る。
【００５４】
ステップＳ２０７でＹＥＳであれば、ステップＳ２１９においてデータを正しく検出できるかを判定する。
【００５５】
図１８は、検出ブロックの５ブロック目の処理が終了した時点における、統計量の加算結果とビット判定の例を示す図である。
【００５６】
ここでは、例として図１０のうち最初の１バイト目（１２ビットまで）のみの処理を記載している。
【００５７】
５ブロック分の検出ブロックの処理により、統計量が得られると、多数決によりそのビットが「０」であるか、「１」であるかを判定する。
【００５８】
データを正しく検出できるかどうかの判定方法として、以下の条件１を満たしているか先ずチェックし、満たしていれば次の条件２を満たすかどうかチェックする。これら２種類の条件の両者とも満たしているのであれば、データを正しく検出できると判定する。
【００５９】
（条件１）  埋め込んだ４８ｂｉｔの各ビットに対し、ビット０もしくはビット１と判定された統計量が少なくとも１以上ある（すなわち、図１８ではビット０、ビット１とも、０でない）
（条件２）  埋め込んだ４８ｂｉｔの各ビットに対し、図１８のように多数決による判定後、パリティビットが全て正しい（３ビットで区切った時に、ビット１の個数が偶数個である）
なお、多数決でビット０とビット１が同数の場合には、ビット１と判定する。
【００６０】
ここでは、最初の５ブロック目で判定した例が図１８であり、パリティチェックの結果がＮＧであるため、更に５ブロック処理を続ける（図１３のＳ２１９でＮＯ）。
【００６１】
図１９は、検出ブロックの１０ブロック目の処理が終了した時点における、統計量の加算結果とビット判定の例を示す図である。
【００６２】
図１９においては、上の両方の条件をクリアしているため（図１３のＳ２１９でＹＥＳ）、図１９の一番下の行のように、パリティビットを削除し、元の埋め込みデータを取り出し（図１３のＳ２２１）、検出処理を終了する（図１３のＳ２１７）。
【００６３】
正しく検出できない状態（Ｓ２１９でＮＯ）が続き、検出ブロックの最後まできた場合（図１３のＳ２１１でＮＯ）にも、データを正しく検出できるか判定し（Ｓ２１３）、ＹＥＳならデータを取り出し（Ｓ２１５）、ＮＯなら埋め込みデータ未検出として処理を終える（Ｓ２２３）。
【００６４】
このようにして本実施の形態によると、文書画像を印字するタイプの電子透かし技術において、埋め込まれたデータを正しく取り出せるか確認することができる。確認できるとデータを検出し、それ以降の処理を止めるようにすることで、検出処理を高速化することができる。
【００６５】
また、多数決でデータを検出するにもかかわらず、少ない統計量（必要最小限の統計量）で検出を行なうことができるため、高速に検出できるという効果がある。
【００６６】
［第２の実施の形態］
第２の実施の形態における画像処理装置の構成は、第１の実施の形態におけるそれと同じであるためここでの説明を繰返さない。
【００６７】
第２の実施の形態においては、図４のステップＳ１０１において透かしデータを誤り訂正符号で変換し埋め込む。図１３の検出処理のステップＳ２１９、Ｓ２１３で、全データに対して誤りが一定以下ならば、データを正しく検出できると判定する。
【００６８】
すなわち第１の実施の形態では、埋め込むデータにパリティビットを付加し、正しく検出可能か判定したが、本実施の形態では、埋め込むデータを誤り訂正符号で符号化し、正しく検出できるか判定する。
【００６９】
この例では、図２０の（７，４）巡回ハミング符号により符号化を行なう。図２０の左の４ｂｉｔごとのデータを、その右の７ｂｉｔに変換する。
【００７０】
図２１は、第２の実施の形態における埋め込むデータの具体例を示す図であり、図２２は、第２の実施の形態における埋め込むデータの配置規則を示す図である。
【００７１】
３２ｂｉｔのデータを埋め込む点は図６と同様であるが、図２０の（７，４）巡回ハミング符号により符号化を行なうことで、５６ｂｉｔのデータが得られる。これを、図２２に示されるように特殊データを先頭とした８×８のブロックに順次埋め込み、最後の７ｂｉｔ分を、統計量チェック領域として「０１０１０１０」のデータを書込む。
【００７２】
（７，４）巡回ハミング符号によると、データを復号化する際、７ｂｉｔ中２ｂｉｔまでの誤り検出を行なうことが出来る。
【００７３】
検出フローについても、図１３と同様である。データを正しく検出できるか判断する方法（Ｓ２１９、Ｓ２１３）のみが異なる。第１の実施の形態では、「条件１」、「条件２」の条件を満たすかどうかで判断したが、第２の実施の形態では、図２３のフローに従い、判断する。
【００７４】
図２３は、第２の実施の形態におけるデータを正しく検出できるかの判断処理を示すフローチャートである。
【００７５】
最初に、ステップＳ３０１において図２２の統計量チェック領域（７ｂｉｔ分）調べることで、多数決判定後、埋めた固定値（「０１０１０１０」の７ｂｉｔ）が正しく取り出せるかどうかにより、統計量が十分にあるか、判断する。
【００７６】
すなわち統計量が不足すると、図２４のように、統計量チェック領域の値が「１１１１１１１」となる（前述のとおり、多数決で同数の場合には、ビット１と判定するからである）。このような場合には、正しくデータを検出できないと判断する（Ｓ３０７）。
【００７７】
図２５のように、統計量が十分あり、「０１０１０１０」のデータが正しく取り出せるのであれば、統計量チェックＯＫと判断し（Ｓ３０１でＹＥＳ）、次のステップとして、ステップＳ３０３で図２６のように、埋め込んだ５６ｂｉｔの各ビットに対し、多数決判定後、誤り訂正符号で全て誤りがないか判定する。誤り無しであれば、データは正しく検出できるとして（Ｓ３０５）、元の埋め込みデータを取り出し（図１３のＳ２１５、２２１）、検出処理を終了する（図１３のＳ２１７）。
【００７８】
なお、この例では、７ｂｉｔ中２ｂｉｔまでの誤り検出可能な（７，４）巡回ハミング符号を用い、全ビットの誤りが無いことを正しくデータが検出できることの条件としたが、さらに符号長が長く、たとえば５ｂｉｔまでの誤り検出が行えるような誤り訂正符号を用いる場合には、全データで１ｂｉｔ以下の誤りなら、検出可能と判断するなどしても良い。
【００７９】
［第３の実施の形態］
第３の実施の形態における画像処理装置の構成は、第１の実施の形態におけるそれと同じであるためここでの説明を繰返さない。
【００８０】
第３の実施の形態においては、図４のステップＳ１０１において透かしデータのチェックサム（透かしデータの合計値）も一緒に埋め込む。図１３の検出処理のステップＳ２１９、Ｓ２１３で、チェックサムが正しければ、データを正しく検出できると判定する。
【００８１】
すなわち第１の実施の形態では、埋め込むデータにパリティビットを付加し、正しく検出可能か判定したが、本実施の形態では、埋め込むデータ自身は変更せず、そのチェックサムを一緒に埋め込むことで正しく検出できるか判定する。
【００８２】
この例では、図２７の左側の３２ｂｉｔのデータを埋め込む場合に、右側のように８ｂｉｔずつ１０進数表記し、それぞれを足し合わせる。これによりチェックサムが表右下（ここでは“５６８”）のように求められる。そのチェックサムを、１６ｂｉｔの２進数表記すると、表左下の値（「００００  ００１０  ００１１  １０００」）を算出できる。
【００８３】
図２８は、チェックサムと埋め込むデータとの埋め込み規則を示す図である。
ここでは、７×７のブロックを用いて、チェックサムとデータとを埋め込んでいる。
【００８４】
検出フローについても図１３の通りで、データを正しく検出できるか判定する方法のみが異なる。この例では、図２９のように多数決によりビット判定を行い、埋め込んであったチェックサムと元の埋め込みデータ（３２ｂｉｔのデータ）を取り出す（なお、図２９では１バイト目までしか記載していないが、４バイト目まであるものとする）。
【００８５】
それから、埋め込んであった（多数決により取り出した）チェックサムと、取り出した埋め込みデータを改めて足し合わせることで算出したチェックサムとが一致すれば、正しく検出できると判定する。
【００８６】
その場合には、埋め込まれてあったデータから（チェックサム部分を捨て）、埋め込みデータ部分（３２ｂｉｔのデータ部）だけを取り出し、検出処理を終了する。
【００８７】
［第４の実施の形態］
第４の実施の形態における画像処理装置の構成は、第１の実施の形態におけるそれと同じであるためここでの説明を繰返さない。
【００８８】
第４の実施の形態においては、図４のステップＳ１０１において透かしデータのチェック用データも一緒に埋め込む。図１３の検出処理のステップＳ２１９、Ｓ２１３で、チェック用データが正しければ、データを正しく検出できると判定する。
【００８９】
すなわち第３の実施の形態では、チェック用データとして埋め込むデータの合計値（チェックサム）を用いたが、本実施の形態では、単に合計を取るだけでなく、ハッシュ関数のように埋め込む全データを用いて算出される値をチェック用データとして用いる。
【００９０】
たとえば、図３０のようにチェックサム（１）だけでなく、各バイトデータをビットシフトしたり、逆順にしたデータ（２）〜（５）の合計値（６）も計算し、その２種類の値の合計値（７）をチェック用データとして埋め込むようにする。
【００９１】
図３１のように２バイト目と３バイト目の下位２ｂｉｔ目（下線の箇所）を間違えた場合には、チェックサム値（図３１の（１））は、正しい場合の図３０の（１）と一致してしまい、間違いを見逃してしまう。
【００９２】
しかし、本実施の形態の場合、図３１の（７）の値は図３０の（７）の値と異なっており、間違っていることを検出することができる。
【００９３】
このように、ハッシュ関数で行なうような入力されたビットをうまくブレンドする操作を行なって、チェック用データを作成すると、正しくチェックできる確率を高めることができる。
【００９４】
なお、ハッシュ関数のデータ長は、たとえばＭＤ５では１２８ｂｉｔ長と大きいので、かなり大きなデータを埋め込む場合には、ハッシュ関数そのものをチェック用データとして用いても良い。
【００９５】
このようにして、第３、第４の実施の形態ではチェックサム、ハッシュ関数のような一方向性の関数を用いて誤り判定ができる。
【００９６】
［第５の実施の形態］
第５の実施の形態における画像処理装置の構成は、第１の実施の形態におけるそれと同じであるためここでの説明を繰返さない。
【００９７】
本実施の形態においては、スキャン中やファイル読込み中にデータが正しく検出できるかを判定し、正しく検出できると判定されると、そこでスキャン動作を中止、もしくはファイル読込みを中止する。
【００９８】
図１４を参照して、第１の実施の形態においてスキャンしながら検出処理を行なう場合に、２００ライン分（上の横６個に並ぶ検出ブロック分）スキャンしたら、その２００ライン分（６ブロック分を示すが、第１の実施の形態と同様に５ブロック分の処理を行なうようにしてもよい。）の検出処理を行なうように処理を進める。正しく検出が出来ると判定できれば、あとのスキャンデータは不要となるため、スキャンそのものを中止する。
【００９９】
スキャン済みのファイルを読み込んで検出処理を行なう場合には、正しく検出できると判定できれば、ファイル読み込みを中止する。このようにすることで、検出処理全体を高速化できる。
【０１００】
［第６の実施の形態］
第６の実施の形態における画像処理装置の構成は、第１の実施の形態におけるそれと同じであるためここでの説明を繰返さない。
【０１０１】
第６の実施の形態では、検出処理を、スキャン画像の上下、あるいは上下左右から先に行なうことを特徴としている。すなわち本実施の形態では、検出処理を行なう場合に、図１４と比較して、図３２のように上下から先に（（１）、（２）、（３）・・・の順に）、または図３３のように上下左右の端から順に渦を描くように行なう。
【０１０２】
プリントされた文書の端の方は、文字等が印字されていないことが多く、データを拾い出せる確率が高いため、本実施の形態によると早く検出処理を終了できる可能性が高くなるという効果がある。
【０１０３】
［第７の実施の形態］
第７の実施の形態における画像処理装置の構成は、第１の実施の形態におけるそれと同じであるためここでの説明を繰返さない。
【０１０４】
第７の実施の形態では、局所データを取り出せたブロックに対して、所定のブロック数ごとに、データが正しく検出できるか判定する処理を行なう。
【０１０５】
第１の実施の形態においては、検出ブロックによって埋め込んだデータを特定するために必要となる特殊データ（図９）が全く検出できない場合がある。これは、そのビットが文字等で、隠されてしまった影響などによるものである。その場合には、埋め込んだデータの区切り位置が分からないため、その検出ブロック内の局所データが全く取り出せないこととなる。
【０１０６】
この全く取り出せない検出ブロックを、図３４ではドットのハッチングで示す。それ以外のデータを取り出せたブロックに対し、数値を１から順に振っていき、５ブロックごとにデータが正しく取り出せそうか判定する。
【０１０７】
このように判断すると、最初５ブロック連続して局所データを取り出せない場合など、データが正しく検出できるか確認することが無意味な場合に有効である。すなわち無効なブロックに対しては、データが正しく検出できるか確認しないようにすることで、効率的に検出処理を行なうことが出来る。
【０１０８】
［その他］
なお、上記実施の形態においては、ドットパターンによる情報の埋め込みを例として記載したが、他の手法を用いた情報の埋め込み（たとえば、特開２０００−５９６１０号公報に示される文字などの画像への埋め込み）にも、本発明を適用することができる。
【０１０９】
なお、埋め込むデータとしては、データの出所を特定するためのＩＤデータ、印刷機器のＩＰアドレス、プリンタＩＤ、印刷の日時などのデータ、コピーを禁止するなどの制御データ、原本であることを保証するためのデータなどが考えられる。
【０１１０】
また、上述の実施の形態における処理は、ソフトウエアによって行なっても、ハードウエア回路を用いて行なってもよい。
【０１１１】
また、上述の実施の形態における処理を実行するプログラムを提供することもできるし、そのプログラムをＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、ＲＯＭ、ＲＡＭ、メモリカードなどの記録媒体に記録してユーザに提供することにしてもよい。また、プログラムはインターネットなどの通信回線を介して、装置にダウンロードするようにしてもよい。
【０１１２】
このように、今回開示した上記各実施の形態はすべての点で例示であって、制限的なものではない。本発明の技術的範囲は特許請求の範囲によって画定され、また特許請求の範囲の記載と均等の意味および範囲内でのすべての変更を含むものである。
【図面の簡単な説明】
【０１１３】
【図１】本発明の第１の実施の形態における画像処理装置の構成を示すブロック図である。
【図２】図１の画像処理装置の機能構成を示すブロック図である。
【図３】本発明の第１の実施の形態において用いられる画像処理装置を含むＭＦＰの構成を示すブロック図である。
【図４】本実施の形態における画像処理装置の実行する処理を示すフローチャートである。
【図５】ドットパターンが埋め込まれた画像（およびその印刷物）の具体例を示す図である。
【図６】埋め込むデータの具体例を示す図である。
【図７】「０」を表わす画像データの具体例を示す図である。
【図８】「１」を表わす画像データの具体例を示す図である。
【図９】「特殊データ」を表わす画像データの具体例を示す図である。
【図１０】埋め込むデータの配置規則を示す図である。
【図１１】図１０の規則に従い、実際に図６右のデータを埋め込んだ結果を示す図である。
【図１２】図１１のデータが繰返される状態を示す図である。
【図１３】埋め込まれたデータの検出処理を示すフローチャートである。
【図１４】検出ブロックを説明するための図である。
【図１５】ビット０の標準パターンを示す図である。
【図１６】ビット１の標準パターンを示す図である。
【図１７】特殊データの標準パターンを示す図である。
【図１８】検出ブロックの５ブロック目の処理が終了した時点における、統計量の加算結果とビット判定の例を示す図である。
【図１９】検出ブロックの１０ブロック目の処理が終了した時点における、統計量の加算結果とビット判定の例を示す図である。
【図２０】（７，４）巡回ハミング符号を示す図である。
【図２１】第２の実施の形態における埋め込むデータの具体例を示す図である。
【図２２】第２の実施の形態における埋め込むデータの配置規則を示す図である。
【図２３】第２の実施の形態におけるデータを正しく検出できるかの判断処理を示すフローチャートである。
【図２４】統計量が不足する場合を示す図である。
【図２５】統計量が十分ある場合を示す図である。
【図２６】埋め込んだ５６ｂｉｔの各ビットに対し、多数決判定を行なう状態を示す図である。
【図２７】第３の実施の形態において埋め込むデータの具体例を示す図である。
【図２８】チェックサムと埋め込むデータとの埋め込み規則を示す図である。
【図２９】埋め込んであったチェックサムと元の埋め込みデータを取り出す状態を示す図である。
【図３０】第４の実施の形態において埋め込むデータの具体例を示す図である。
【図３１】誤りのあるデータの具体例を示す図である。
【図３２】第６の実施の形態における検出処理を示す第１の図である。
【図３３】第６の実施の形態における検出処理を示す第２の図である。
【図３４】第７の実施の形態における検出処理を示す図である。
【符号の説明】
【０１１４】
１０１  ＰＣ、１０１ａ  画像処理ソフトウェア、１０７  モニタ、１０９  外部記憶装置、１１１  スキャナ、１５１  入出力インタフェース、１５５  記憶装置、１５７  処理演算部、２０１  ＭＦＰ本体、２０１ａ  画像処理ハードウェア、２０３  操作パネル部、２０５  スキャナ部、２０７  プリンタ部。
【図１】
0004552822.tif 000002
【図２】
0004552822.tif 000003
【図３】
0004552822.tif 000004
【図４】
0004552822.tif 000005
【図６】
0004552822.tif 000006
【図７】
0004552822.tif 000007
【図８】
0004552822.tif 000008
【図９】
0004552822.tif 000009
【図１０】
0004552822.tif 000010
【図１１】
0004552822.tif 000011
【図１２】
0004552822.tif 000012
【図１３】
0004552822.tif 000013
【図１４】
0004552822.tif 000014
【図１５】
0004552822.tif 000015
【図１６】
0004552822.tif 000016
【図１７】
0004552822.tif 000017
【図１８】
0004552822.tif 000018
【図１９】
0004552822.tif 000019
【図２０】
0004552822.tif 000020
【図２１】
0004552822.tif 000021
【図２２】
0004552822.tif 000022
【図２３】
0004552822.tif 000023
【図２４】
0004552822.tif 000024
【図２５】
0004552822.tif 000025
【図２６】
0004552822.tif 000026
【図２７】
0004552822.tif 000027
【図２８】
0004552822.tif 000028
【図２９】
0004552822.tif 000029
【図３０】
0004552822.tif 000030
【図３１】
0004552822.tif 000031
【図３２】
0004552822.tif 000032
【図３３】
0004552822.tif 000033
【図３４】
0004552822.tif 000034
【図５】
0004552822.tif 000035