(57)【要約】【課題】文字間透かしを用いた情報の抽出における誤りを低減可能とする技術を提供する。【解決手段】文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置において、埋め込み対象の文書画像データを入力する入力手段と、入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、分割透かし情報の各ビットの値に基づき、入力手段で入力した文書画像中の埋め込み対象文字の文字間隔を予め設定された大きさだけ変更し、各分割透かし情報の先頭ビットを埋め込んだ埋め込み対象文字の文字間隔に対して、さらに所定の大きさだけ変更する情報埋め込み手段と、を備える。【選択図】図３
2010199877.tif 000002
【特許請求の範囲】
【請求項１】
文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置であって、
埋め込み対象の文書画像データを入力する入力手段と、
入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、
前記透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、前記分割透かし情報の各ビットの値に基づき、前記入力手段で入力した文書画像中の埋め込み対象文字の文字間隔を予め設定された大きさだけ変更し、前記分割透かし情報の先頭ビットを埋め込んだ埋め込み対象文字の文字間隔に対して、さらに所定の大きさだけ変更する情報埋め込み手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置であって、
埋め込み対象の文書画像データを入力する入力手段と、
入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、
前記透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、前記分割透かし情報の各ビットの値と各分割透かし情報の先頭ビットを埋め込むことになる箇所に応じて、文字間隔に対する変更量を示す変更量情報を生成し、前記生成された変更量情報に応じて、前記入力手段で入力した文書画像中の埋め込み対象文字の文字間隔を変更する情報埋め込み手段と、
を備えることを特徴とする画像処理装置。
【請求項３】
前記情報埋め込み手段は、前記所定の大きさを処理対象の分割透かし情報を構成するビットの並びに基づいて変更することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
文書画像中の文字の間隔を調整することで、透かし情報が予め設定されたビット数毎に分割されて埋め込まれた文書画像から該透かし情報を抽出する画像処理装置であって、
透かし情報が埋め込まれた文書画像データを入力する入力手段と、
入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、
前記画像解析手段で生成された外接矩形に関する情報から各々の文字間隔を算出し、隣接する文字間隔の差分値を導出して、導出された差分値に基づいて前記分割の位置を判定し、前記透かし情報を抽出する情報抽出手段と、
を備えることを特徴とする画像処理装置。
【請求項５】
文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置の制御方法であって、
埋め込み対象の文書画像データを入力する入力工程と、
入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析工程と、
前記透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、前記分割透かし情報の各ビットの値に基づき、前記入力工程で入力した文書画像中の埋め込み対象文字の文字間隔を予め設定された大きさだけ変更し、前記分割透かし情報の先頭ビットを埋め込んだ埋め込み対象文字の文字間隔に対して、さらに所定の大きさだけ変更する情報埋め込み工程と、
を備えることを特徴とする画像処理装置の制御方法。
【請求項６】
文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置の制御方法であって、
埋め込み対象の文書画像データを入力する入力工程と、
入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析工程と、
前記透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、前記分割透かし情報の各ビットの値と各分割透かし情報の先頭ビットを埋め込むことになる箇所に応じて、文字間隔に対する変更量を示す変更量情報を生成し、前記生成された変更量情報に応じて、前記入力工程で入力した文書画像中の埋め込み対象文字の文字間隔を変更する情報埋め込み工程と、
を備えることを特徴とする画像処理装置の制御方法。
【請求項７】
前記情報埋め込み工程は、前記所定の大きさを処理対象の分割透かし情報を構成するビットの並びに基づいて変更することを特徴とする請求項５または６に記載の画像処理装置の制御方法。
【請求項８】
文書画像中の文字の間隔を調整することで、透かし情報が予め設定されたビット数毎に分割されて埋め込まれた文書画像から該透かし情報を抽出する画像処理装置の制御方法であって、
透かし情報が埋め込まれた文書画像データを入力する入力工程と、
入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析工程と、
前記画像解析工程で生成された外接矩形に関する情報から各々の文字間隔を算出し、隣接する文字間隔の差分値を導出し、導出された差分値に基づいて前記分割の位置を判定し、前記透かし情報を抽出する情報抽出工程と、
を備えることを特徴とする画像処理装置の制御方法。
【請求項９】
コンピュータを、請求項１乃至４の何れか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像中の文字間の間隔に基づき情報を埋め込み、また当該文書画像に埋め込まれた透かし情報を抽出する画像処理技術に関するものである。
【背景技術】
【０００２】
文書画像に著作権や複写制御等に関する情報を持たせるため、特許文献１に示されるように、文字間の間隔（文字間隔）を利用した情報の埋め込み・抽出方法（以下、文字間透かしと呼ぶ）がある。図５に文字間透かしの概念図を示す。文字間透かしの埋め込みにおいては、まず、文書画像を領域分割し、テキスト領域に対して文字ごとに外接矩形情報を生成する。次に、この外接矩形情報から文字間隔を算出し、ある規則に従って文字間隔を操作し、所定の文字間隔として２値情報を埋め込む。この規則とは、例えば、図５に示すように、文字間隔Ｐ，Ｓを用いて、２値情報の「０」を埋め込みたい場合は、Ｐ＞Ｓとなるように、「１」を埋め込みたい場合はＰ＜Ｓとなるように設定される。一方、文字間透かしの抽出においては、埋め込み時と同様に、まず、文書画像を領域分割し、テキスト領域に対して文字ごとに外接矩形情報を生成する。次に、この外接矩形情報から文字間隔を算出し、算出結果から埋め込み時に使用した規則に従って２値情報を判定し埋め込まれた情報を抽出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３７２８２０９号
【特許文献２】特開平６−６８３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般的に文書画像はコピーやスキャナによる読み取りの処理によるノイズや歪等が影響し、図６に示すように、抽出時に生成される外接矩形が、埋め込み時に生成された外接矩形と異なる場合がある。図中では「か」という文字の部分と「報」という文字の部分が該当する。従来方法において、埋め込み時と抽出時の外接矩形は同じであることが前提であり、このような現象が発生した場合、外接矩形の数が変わってしまうので、抽出される透かし情報と文字間隔の対応関係が本来意図したものとは異なり、情報抽出が誤ってしまう。このため、例えば、図７に示すように、埋め込み時と抽出時の外接矩形の相違が発生した場合、発生箇所以降の透かし情報全てが正しく抽出できず、結果として、抽出誤り率が増加するという問題があった。そのため、情報抽出における、誤りの低減や発生した誤りを訂正する技術が望まれている。
【課題を解決するための手段】
【０００５】
上述の課題を解決するために本発明の画像処理装置は以下の構成を備える。すなわち、文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置において、埋め込み対象の文書画像データを入力する入力手段と、入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、前記透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、前記分割透かし情報の各ビットの値に基づき、前記入力手段で入力した文書画像中の埋め込み対象文字の文字間隔を予め設定された大きさだけ変更し、前記各分割透かし情報の先頭ビットを埋め込んだ埋め込み対象文字の文字間隔に対して、さらに所定の大きさだけ変更する情報埋め込み手段と、を備える。
【０００６】
または、文書画像中の文字の間隔を調整することで、透かし情報を埋め込む画像処理装置において、埋め込み対象の文書画像データを入力する入力手段と、入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、前記透かし情報を予め設定されたビット数毎に分割することで、複数の分割透かし情報を生成し、前記分割透かし情報の各ビットの値と各分割透かし情報の先頭ビットを埋め込むことになる箇所に応じて、文字間隔に対する変更量を示す変更量情報を生成し、前記生成された変更量情報に応じて、前記入力手段で入力した文書画像中の埋め込み対象文字の文字間隔を変更する情報埋め込み手段と、を備える。
【０００７】
そして、文書画像中の文字の間隔を調整することで、透かし情報が予め設定されたビット数毎に分割されて埋め込まれた文書画像から該透かし情報を抽出する画像処理装置において、透かし情報が埋め込まれた文書画像データを入力する入力手段と、入力した文書画像中の各文字の外接矩形に関する情報を生成する画像解析手段と、前記画像解析手段で生成された外接矩形に関する情報から各々の文字間隔を算出し、隣接する文字間隔の差分値を導出して、導出された差分値に基づいて前記分割の位置を判定し、前記透かし情報を抽出する情報抽出手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、文字間透かしを用いた情報の抽出における誤りを低減可能とする技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る画像処理装置１１（埋め込み装置）の機能ブロック図である。
【図２】第１実施形態に係る画像処理装置１２（抽出装置）の機能ブロック図である。
【図３】第１実施形態に係る画像処理装置１１の動作フローチャートである。
【図４】第１実施形態に係る画像処理装置１２の動作フローチャートである。
【図５】文字間透かしを説明する概念図である。
【図６】外接矩形情報の相違の発生を説明する概念図である。
【図７】外接矩形情報の相違が発生した場合の情報抽出結果を示す概念図である。
【図８】第１実施形態に係る文字間透かしを示す概念図である。
【図９】第１実施形態に係る情報埋め込み方法の概念図である。
【図１０】第１実施形態に係る情報抽出方法の概念図である。
【図１１】第２実施形態に係る画像処理装置１１の動作フローチャートである。
【図１２】第２実施形態に係る情報埋め込み方法の概念図である。
【図１３】第２実施形態に係る画像処理装置１１の動作フローチャートである。
【図１４】第２実施形態に係る情報抽出方法の概念図である。
【図１５】第３実施形態に係るコンピュータの内部構成を示す図である。
【図１６】第２実施形態に係る文字間透かしを示す概念図である。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１１】
（第１実施形態）
本発明に係る画像処理装置の第１実施形態として、透かし情報を文書画像データに埋め込む画像処理装置１１、および、透かし情報を抽出する画像処理装置１２を例に挙げて以下に説明する。
【００１２】
＜情報の埋め込み方法および抽出方法の概要＞
図８は、第１実施形態に係る文字間隔の調整による情報の埋め込み方法を示す図である。ここでは、文書画像中に含まれる５つの文字に対して２ビットの情報を埋め込む例を示している。
【００１３】
まず、文字列に対して１文字おきの文字（図中の灰色矩形を示す）の両隣の文字間隔が等間隔となるように、文字間隔を変更させる（以下、これを正規化処理と呼ぶ）。次に、埋め込む情報の複数ビットを１ブロックとしていくつかのブロックに分割する。図８では２ビットを１ブロックとしている。そして、正規化処理された文字間隔に対して、１ブロックごとに埋め込みを行う。
【００１４】
具体的には、１文字おきの文字間隔（灰色矩形に隣接する文字間隔）を操作値Ｃ１分だけ変更させることにより、文字間隔値に大小関係を設けて、２値情報（「０」または「１」）を埋め込むものである。図８では、「０」に対しては右方向への移動、「１」に対しては左方向の移動を行なう例を示している。
【００１５】
さらに、上述の情報埋め込みで使用する操作値Ｃ１とは別個に操作値Ｃ２を予め設定しておき、１ビット目を埋め込んだ文字間隔（つまり、情報ブロックの開始箇所）に対して、操作値Ｃ２分だけ追加の文字間隔値の変更を行う。つまり、ブロックに分割された埋め込み情報の１ビット目に対応する文字に対してはＣ１＋Ｃ２の移動が起こり、２ビット目以降に対応する文字に対してはＣ１の移動が起こることになる。
【００１６】
このように構成することにより、抽出側では、文字間隔値の大小関係を検出することにより、埋め込んだ情報の抽出が可能となる。具体的には、抽出側では、文字間隔の差分値（すなわち文字を移動させた距離）を検出することにより、１ビット目を埋め込んだ箇所（１ブロックの開始ビット位置）が判定できる。そして、１ビット目を埋め込んだ箇所を順次判定することにより、１つの情報ブロック内にある文字間隔の個数もわかることになる。
【００１７】
なお、情報埋め込み時と抽出時において外接矩形の相違発生がない場合、１つの情報ブロック内にある文字間隔の個数は同じである。このことから、文字間隔から算出される文字間隔の差分値の個数もまた同じである。もし、外接矩形の相違が発生すれば文字間隔の差分値の個数は異なることになるため、外接矩形の相違（誤判定）が発生したか否かを判定することが出来る。
【００１８】
なお、埋め込んだ情報の１ブロックの長さＮは、埋め込み側と抽出側とで、予め共有するように構成しておくとよい。その場合、当該Ｎから決定されるブロック内の文字間隔の差分値の個数と抽出された文字間隔の差分値の個数とを比較することにより、外接矩形の相違が発生したか否かを判定することが出来る。
【００１９】
＜装置構成（埋め込み）＞
図１は、第１実施形態に係る画像処理装置１１の機能ブロック図である。なお、画像処理装置１１は、文書画像の文字間隔を制御して情報埋め込みが可能な装置である。
【００２０】
画像処理装置１１は、画像入力部１０１、画像解析部１０２、情報埋め込み部１０３、画像出力部１０４から構成される。
【００２１】
画像入力部１０１は、文書画像データを入力する機能部である。用紙上の文書画像を読み取り文書画像データを生成してもよいし、直接電子データとして入力するよう構成してもよい。画像解析部１０２は、画像データを領域分割し、分割した領域のテキスト領域に対して文字ごとに外接矩形情報を生成する機能部である。情報埋め込み部１０３は、外接矩形情報を用いて、文字間隔を操作することにより情報を埋め込む機能部である。画像出力部１０４は、情報が埋め込まれた画像データ（情報入り文書画像）を電子データとしてあるいは用紙上に出力する機能部である。
【００２２】
＜装置の動作（埋め込み）＞
図３（ａ）は、第１実施形態に係る画像処理装置１１の動作フローチャートである。
【００２３】
ステップＳ３０１では、画像入力部１０１は、埋め込み対象となる文書画像１００を読み取り、画像データＩとして、画像解析部１０２と情報埋め込み部１０３に供給する。なお、文書画像が紙原稿である場合、画像入力部１０１は、電荷結合素子（ＣＣＤ）または光学センサーを有し、画像入力指示がなされると文書画像の撮影、電気信号処理、デジタル信号処理等を行い、画像データＩを生成する。
【００２４】
ステップＳ３０２では、画像解析部１０２は、画像入力部１０１より供給された画像データＩをテキスト領域やグラフ等の図形領域に分割する。
【００２５】
ステップＳ３０３では、画像解析部１０２は、ステップＳ３０２で分割された領域の内、テキスト領域に対しては、文字ごとに当該文字画像の外接矩形情報Ｒ１を生成する。そして、その結果を情報埋め込み部１０３に供給する。ここで、外接矩形情報とは、図５に示す外接矩形に関する情報である。例えば、外接矩形情報は、文書画像全体における左上端を原点とした場合の、各矩形の左上端点、右下端点の座標、或いは、矩形の左上端点の座標とその矩形の高さ及び幅等のデータなどの情報である。また、外接矩形は連続する有意なドットの広がりに外接する矩形領域を示している。そのため、外接矩形は１つの文字に対して設定される場合と、文字の構成要素（へん、つくり等）に対して設定される場合がある。なお、ステップＳ３０２におけるテキスト領域やグラフ等の図形領域の分割や、ステップＳ３０３における外接矩形情報の生成は、例えば、特許文献２で示される公知技術を用いて行うことが出来る。
【００２６】
ステップＳ３０４では、情報埋め込み部１０３は、画像解析部１０２より供給された外接矩形情報Ｒ１から文字間隔Ｐ，Ｓを算出する。
【００２７】
ステップＳ３０５では、情報埋め込み部１０３は、ステップＳ３０４で算出した文字間隔Ｐ，Ｓに対して、ペアとなるＰとＳとが等しくなるように文字間隔を調整し、文字を整列させる（正規化処理）。例えば、図９に示すように、外接矩形情報Ｒ１から算出した文字間隔Ｐ１，Ｓ１がそれぞれ、Ｐ１１＝１５［画素］，Ｓ１１＝２５［画素］，Ｐ１２＝１８［画素］，Ｓ１２＝１２［画素］，Ｐ１３＝１３［画素］，Ｓ１３＝２３［画素］であった場合、これを正規化により文字間隔Ｐ２とＳ２とを同じになるように調整する。これは、文字間隔Ｐ１とＳ１との和の平均値、つまりＰ２＝Ｓ２＝（Ｐ１＋Ｓ１）／２から算出することができる。従って文字間隔Ｐ２１，Ｓ２１は、
Ｐ２１＝Ｓ２１＝（Ｐ１１＋Ｓ１１）／２＝（１５＋２５）／２＝２０［画素］
となる。以下、同様に行うことで、Ｐ２２＝Ｓ２２＝１５［画素］，Ｐ２３＝Ｓ２３＝１８［画素］が得られる。
【００２８】
ステップＳ３０６では、情報埋め込み部１０３は、情報埋め込み処理を行なう。具体的には、ステップＳ３０５で正規化した文字間隔Ｐ２，Ｓ２に対して、前述の埋め込み方法に従って、文字間隔を変更することにより情報を埋め込む。なお、以降では、文字間隔のペア（Ｐ，Ｓ）の間にある文字を埋め込み対象文字と呼ぶ。
【００２９】
まず、埋め込む情報を所定のビット数毎に分割し、複数の情報ブロック（分割透かし情報）に分割する。例えば、埋め込む情報がＩｎｆｏ＝「０１０１１０（２進）」で、情報ブロック長を３ビット（Ｎ＝３）とした場合、分割された情報ブロックはそれぞれＩｎｆｏ１＝「０１０」，Ｉｎｆｏ２＝「１１０」となる。
【００３０】
そして、情報ブロックごとに、情報埋め込み処理を行う。なお、この情報ブロック長Ｎは埋め込み側、抽出側で予め共有しているものとする。そして、ここでは埋め込み規則を、上述した規則と同様に、「０」を埋め込みたい場合はＰ２＞Ｓ２、「１」を埋め込みたい場合はＰ２＜Ｓ２となるように文字間隔の変更処理を行なう。具体的には、上述の大小関係を満たすように、所定の大きさの定数値（操作値Ｃ１）だけ文字間隔を変更する。
【００３１】
つまり、情報が埋め込まれた文字間隔をＰ３，Ｓ３とすると、「０」が埋め込まれた場合はＰ３＝Ｐ２＋Ｃ１，Ｓ３＝Ｓ２−Ｃ１と表すことができる。一方、「１」が埋め込まれた場合はＰ３＝Ｐ２−Ｃ１，Ｓ３＝Ｓ２＋Ｃ１と表すことが出来る。
【００３２】
例えば操作値Ｃ１が１０［画素］，埋め込みたい情報がＩｎｆｏ１＝「０１０」とすると、文字間隔Ｐ３１，Ｓ３１は、
Ｐ３１＝Ｐ２１＋Ｃ１＝２０＋１０＝３０［画素］，  Ｓ３１＝Ｓ２１−Ｃ１＝２０−１０＝１０［画素］
となる。以下同様の処理を行うことで、
Ｐ３２＝  ５［画素］，  Ｓ３２＝２５［画素］
Ｐ３３＝２８［画素］，  Ｓ３３＝  ８［画素］
が得られる。
【００３３】
ステップＳ３０７では、情報埋め込み部１０３は、情報ブロック開始箇所用情報埋め込み処理を行なう。具体的には、ステップＳ３０６で変更した文字間隔に対して、さらに情報ブロックの開始箇所（先頭ビット）を検出可能とするために所定の大きさの定数値（操作値Ｃ２）に基づき文字間隔を変更する。つまり、正規化された位置からの変更量を増加させるようにする。
【００３４】
つまり、情報ブロック開始箇所用情報埋め込み処理を行った文字間隔をＰ４，Ｓ４とすると、情報埋め込み処理において、Ｐ２＞Ｓ２とした場合はＰ４＝Ｐ３＋Ｃ２，Ｓ４＝Ｓ３−Ｃ２、Ｐ２＜Ｓ２とした場合は、Ｐ４＝Ｐ３−Ｃ２，Ｓ４＝Ｓ３＋Ｃ２となる。
【００３５】
今、情報ブロックの開始箇所はＰ３１，Ｓ３１であるので、例えば、操作値Ｃ２を５［画素］とした場合、上記処理を行った文字間隔Ｐ４１，Ｓ４１は、情報埋め込み処理において、Ｐ２＞Ｓ２としたので、開始箇所であるＰ４１，Ｓ４１は
Ｐ４１＝Ｐ３１＋Ｃ２＝３０＋５＝３５［画素］，  Ｓ４１＝Ｓ３１−Ｃ２＝１０−５＝  ５［画素］
となる。当然、開始箇所でないＰ４２，Ｓ４２，Ｐ４３，Ｓ４３に対しては何も処理を行わない。ここでは、操作値Ｃ２だけの変更処理を開始箇所のみに行ったが、例えば開始箇所と終了箇所や終了箇所のみに対し変更処理を行なっても良い。そして、各情報ブロックに対して以下同様の処理を行うことで、情報入り文書画像Ｉｗが生成される。
【００３６】
ステップＳ３０８では、画像出力部１０４は、情報埋め込み部１０３により生成された情報入り文書画像Ｉｗを用紙上に画像形成する、または、電子データとして出力する。
【００３７】
＜装置の動作（埋め込み）の変形例＞
図３（ａ）においては、情報の埋め込み処理（Ｓ３０６）と開始箇所用情報埋め込み（Ｓ３０７）を別個に処理するよう説明を行なった。しかし、透かし情報と情報ブロック開始箇所情報に基づいて各文字間隔の変更量を示す変更量情報ｍを生成し、この変更量情報ｍに基づいて文字間隔の変更を実行するように構成してもよい。この場合、文字間隔の変更処理が１回で済むという効果がある。以下では、変更量情報ｍの生成と、変更量情報ｍに基づいて文字間隔の変更処理を行う例について説明する。
【００３８】
図３（ｂ）は、変形例に係る画像処理装置１１の動作フローチャートである。ステップＳ３１１からステップＳ３１５、およびステップＳ３１８は、第１実施形態のステップＳ３０１からステップＳ３０５、およびステップＳ３０８と同様であり説明は省略する。
【００３９】
ステップＳ３１６では、分割された情報ブロックから各文字間隔の変更量を示す変更量情報ｍを生成する。ここで、情報埋め込みでは所定の大きさの定数値（操作値Ｃ１）だけ文字間隔を変更し、さらに情報ブロックの開始箇所（先頭ビット）は所定の大きさの定数値（操作値Ｃ２）だけ文字間隔を変更する。そのため、情報ブロックの開始箇所の変更量情報ｍはＣ１とＣ２で、その他はＣ１で表される。
【００４０】
つまり、変更量情報ｍは、
ｍ１＝Ｃ１＋Ｃ２，ｍ２＝Ｃ１，ｍ３＝Ｃ１
となる。さらに、埋め込み規則を、上述した規則と同様に、「０」を埋め込みたい場合はＰ＞Ｓ、「１」を埋め込みたい場合はＰ＜Ｓとなるようにした場合、例えば分割された情報ブロックがＩｎｆｏ１＝「０１０」のとき変更量情報ｍは、
ｍ１Ｐ＝Ｃ１＋Ｃ２，ｍ１Ｓ＝−Ｃ１−Ｃ２，
ｍ２Ｐ＝−Ｃ１，ｍ２Ｓ＝Ｃ１，
ｍ３Ｐ＝Ｃ１，ｍ３Ｓ＝−Ｃ１
となる。
【００４１】
ステップＳ３１７では、情報埋め込み部１０３は、情報埋め込み処理を行う。具体的には、ステップＳ３１６で生成された変更量情報ｍに基づいて文字間隔を変更する。
【００４２】
例えば、操作値Ｃ１が１０［画素］、操作値Ｃ２が５［画素］とし、分割された情報ブロックがＩｎｆｏ１＝「０１０」、正規化した文字間隔がＰ２１＝Ｓ２１＝２０［画素］、Ｐ２２＝Ｓ２２＝１５［画素］，Ｐ２３＝Ｓ２３＝１８［画素］とすると、情報が埋め込まれた文字間隔Ｐ４，Ｓ４は、
Ｐ４１＝Ｐ２１＋ｍ１Ｐ＝２０＋１５＝３５［画素］，  Ｓ４１＝Ｓ２１＋ｍ１Ｓ＝２０−１５＝  ５［画素］
となる。同様にして、
Ｐ４２＝  ５［画素］，  Ｓ４２＝２５［画素］
Ｐ４３＝２８［画素］，  Ｓ４３＝  ８［画素］
が得られる。
【００４３】
＜装置構成（抽出）＞
図２は、第１実施形態に係る画像処理装置１２の機能ブロック図である。なお、画像処理装置１２は、文字間隔が制御された情報入り文書画像から情報抽出が可能な装置である。
【００４４】
画像処理装置１２は、画像入力部２０１、画像解析部２０２、情報抽出部２０３から構成される。
【００４５】
画像入力部２０１は、文字間隔が制御された情報入り文書画像データを入力する機能部である。用紙上の文書画像を読み取り文書画像データを生成してもよいし、直接電子データとして入力するよう構成してもよい。画像解析部２０２は、画像解析部１０２は、情報入り画像データを領域分割し、分割した領域のテキスト領域に対して文字ごとに外接矩形情報を生成する機能部である。情報抽出部２０３は、外接矩形情報を用いて、文字間隔を検出することにより情報を抽出する機能部である。
【００４６】
＜装置の動作（抽出）＞
図４は、第１実施形態に係る画像処理装置１２の動作フローチャートである。
【００４７】
ステップＳ４０１では、画像入力部２０１は、情報入り文書画像２００を読み取り、画像データＩｗとして、画像解析部２０２に供給する。なお、文書画像が紙原稿である場合、画像入力部２０１は、電荷結合素子（ＣＣＤ）または光学センサーを有し、画像入力指示がなされると文書画像の撮影、電気信号処理、デジタル信号処理等を行い、画像データＩｗを生成する。
【００４８】
ステップＳ４０２では、画像解析部２０２は、画像入力部２０１より供給された画像データＩｗをテキスト領域やグラフ等の図形領域に分割する。
【００４９】
ステップＳ４０３では、画像解析部２０２は、ステップＳ４０２で分割された領域の内、テキスト領域に対しては、文字ごとに外接矩形情報Ｒ２を生成する。そして、その結果を情報抽出部２０３に供給する。なお、外接矩形情報Ｒ２の生成は、情報埋め込みにおける画像解析部１０２と同様なので詳細な説明は省略する。
【００５０】
ステップＳ４０４では、情報抽出部２０３は、画像解析部２０２より供給された外接矩形情報Ｒ２から文字間隔Ｐ，Ｓを算出する。
【００５１】
図１０（ａ）〜（ｃ）は、情報埋め込み時の外接矩形との情報抽出時の外接矩形との間に相違が発生していない場合と発生した場合とを例示的に示す図である。まず、最初に外接矩形の相違が発生していない場合のステップＳ４０５以降の処理について説明する。
【００５２】
ステップＳ４０５では、情報抽出部２０３は、外接矩形間の間隔（文字間隔）の差分値を算出する。例えば、図１０（ａ）に示すように、埋め込み時の文字間隔Ｐ４，Ｓ４がそれぞれ、
Ｐ４１＝３５［画素］，  Ｓ４１＝  ５［画素］
Ｐ４２＝  ５［画素］，  Ｓ４２＝２５［画素］
Ｐ４３＝３３［画素］，  Ｓ４３＝  ３［画素］
で、抽出時における外接矩形情報Ｒ３から算出した文字間隔Ｐ５，Ｓ５がそれぞれ、図１０（ｂ）に示すように、
Ｐ５１＝３５［画素］，  Ｓ５１＝  ５［画素］
Ｐ５２＝  ５［画素］，  Ｓ５２＝２５［画素］
Ｐ５３＝３３［画素］，  Ｓ５３＝  ３［画素］
であったとする。その場合、隣接する文字間隔Ｐ５，Ｓ５に対して差分値Ｄを導出する。
【００５３】
この差分値ＤはＤ＝｜Ｐ５−Ｓ５｜と表すことが出来るので、差分値Ｄ１１，Ｄ１２は
Ｄ１１＝｜Ｐ５１−Ｓ５１｜＝｜３５−  ５｜＝３０［画素］，
Ｄ１２＝｜Ｐ５２−Ｓ５１｜＝｜  ５−  ５｜＝  ０［画素］，
と導出される。以下同様の処理を行うことで
Ｄ２２＝２０［画素］，Ｄ２３＝  ８［画素］，Ｄ３３＝３０［画素］
が得られる。
【００５４】
ステップＳ４０６では、情報抽出部２０３は、差分値Ｄから情報ブロックの開始箇所を検出する。ここで、埋め込み時に使った、情報ブロック開始箇所用情報埋め込み処理のための操作値Ｃ２＝５［画素］と、情報を埋め込むために使用した操作値Ｃ１＝１０［画素］とから、情報ブロックの開始箇所の差分値ＤｃはＤｃ＝（Ｃ１＋Ｃ２）×２と表すことが出来る。
【００５５】
従って、差分値Ｄが上記差分値Ｄｃ以上であるか否か判定することで開始箇所を検出することが出来る。なお、この操作値Ｃ１，Ｃ２は抽出側であらかじめ知っているものとする。
【００５６】
例えば、埋め込み時の操作値Ｃ１＝１０［画素］，Ｃ２＝５［画素］である場合、差分値ＤｃはＤｃ＝（１０＋５）×２＝３０［画素］となる。一方、差分値Ｄｃ以上の差分値Ｄは、Ｄ１１となる。つまり、情報ブロックＩｎｆｏ１の開始箇所がＤ１１（Ｐ５１，Ｓ５１）であると判定することができる。
【００５７】
なお、ここでは、差分値Ｄｃは、埋め込み時の操作値Ｃ１，Ｃ２から算出した値をそのまま用いている。しかし、紙から電子データ，電子データから紙などの文書画像の形態変化により、ノイズや歪等が発生する場合も考えられる。そのため、ノイズを考慮した値を加算あるいは減算することで操作値もしくは抽出差分値に幅をもたせるよう構成してもよい。
【００５８】
ステップＳ４０７では、情報抽出部２０３は、外接矩形の相違が発生したか否かの判定を行う。これは、上述したように、埋め込み時と抽出時の各々における文字間隔の差分値の個数Ｄｎを比較することにより行なわれる。外接矩形の相違が発生していない場合、埋め込み時と抽出時との各々において差分値の個数Ｄｎは一致し、この差分値の個数は情報ブロック長をＮとした時、Ｄｎ＝２Ｎと表すことが出来る。
【００５９】
例えば、情報ブロック長ＮをＮ＝３とした場合、１つの情報ブロック内に存在する文字間隔の差分値の個数Ｄｎが、
Ｄｎ＝２Ｎ＝２×３＝６
であるか判定すればよい。図１０（ｂ）の場合においては、情報ブロックＩｎｆｏ１の個数はＤ１１，Ｄ１２，Ｄ２２，Ｄ２３，Ｄ３３，Ｄ３４の６個であるため、相違発生なしと判断する。
【００６０】
ステップＳ４０８では、情報抽出部２０３は、情報ブロックから情報抽出を行う。具体的には、埋め込み時に使用した規則と同一の規則を用いて抽出を行う。例えば、文字間隔Ｐ，Ｓとして、２値情報の「０」をＰ＞Ｓとなるように、「１」をＰ＜Ｓとなるように、文字間隔を制御して埋め込んだ場合、情報は
Ｐ５１＞Ｓ５１なので「０」
Ｐ５２＜Ｓ５２なので「１」
Ｐ５３＞Ｓ５３なので「０」
として抽出される。
【００６１】
次に、ステップＳ４０３およびＳ４０４において、外接矩形の相違が発生した場合のステップＳ４０５以降の処理について説明する。
【００６２】
ステップＳ４０５では、情報抽出部２０３は、文字間隔の差分値を算出する。例えば、図１０（ａ）に示すように、埋め込み時の文字間隔Ｐ４，Ｓ４がそれぞれ、
Ｐ４１＝３５［画素］，  Ｓ４１＝  ５［画素］
Ｐ４２＝  ５［画素］，  Ｓ４２＝２５［画素］
Ｐ４３＝３３［画素］，  Ｓ４３＝  ３［画素］
であったが、外接矩形の相違が発生し、抽出時における外接矩形情報Ｒ３から算出した文字間隔Ｐ５，Ｓ５がそれぞれ、図１０（ｃ）に示すように、
Ｐ５１＝３５［画素］，  Ｓ５１＝  ２［画素］
Ｐ５２＝  ５［画素］，  Ｓ５２＝  ５［画素］
Ｐ５３＝２５［画素］，  Ｓ５３＝３３［画素］
Ｐ５４＝  ３［画素］  
であったとする。処理自体は上述したものと同様であり、差分値Ｄはそれぞれ、
Ｄ１１＝３３［画素］，  Ｄ１２＝  ３［画素］，
Ｄ２２＝  ０［画素］，  Ｄ２３＝２０［画素］，
Ｄ３３＝  ８［画素］，  Ｄ３４＝３０［画素］
となる。
【００６３】
ステップＳ４０６では、情報抽出部２０３は、差分値Ｄから情報ブロックの開始箇所を検出する。例えば、埋め込み時の操作値Ｃ１＝１０［画素］，Ｃ２＝５［画素］である場合、差分値Ｄｃ＝（１０＋５）×２＝３０［画素］となり、差分値Ｄｃを越える差分値Ｄは、Ｄ１１である。つまり、情報ブロックＩｎｆｏ１の開始箇所がＤ１１（Ｐ５１，Ｓ５１）と検出できる。
【００６４】
ステップＳ４０７では、情報抽出部２０３は、外接矩形の相違が発生したか否かの判定を行う。ここでは情報ブロック長ＮはＮ＝３であるため、上述したように、１つの情報ブロック内に存在する文字間隔の差分値の個数が２Ｎ＝２×３＝６であるか否かを判定すればよい。図１０（ｃ）の場合においては、情報ブロックＩｎｆｏ１の個数はＤ１１，Ｄ１２，Ｄ２２，Ｄ２３，Ｄ３３，Ｄ３４，Ｄ４４の７個であり、上記値と異なるため、外接矩形の相違が発生したと判断する。よって、この情報ブロックＩｎｆｏ１をエラーの発生したブロックとして廃棄する。
【００６５】
以上の処理を各情報ブロックに対して行うことで、外接矩形の相違を検出し、たとえ相違が発生した場合でも、当該情報ブロック単位でのエラーに留まることになる。そのため、次の情報ブロックにおけるエラー発生が波及するのを低減することが可能となる。
【００６６】
以上説明したように、第１実施形態によれば、埋め込む情報を複数の情報ブロックに分割してから埋め込む。さらに当該情報ブロック単位での検出を考慮して文字間隔を操作量（文字の移動量）を設定する。このように構成することにより、抽出側において外接矩形の相違が発生した場合、当該相違が発生したことを検出可能となると共に他の情報ブロックへのエラー発生の波及を低減することが可能となる。
【００６７】
なお、上述の説明では、図５に示すような、２組の文字間隔の相対値で情報が埋め込まれた情報入り文書画像に対して埋め込む方法及び抽出する方法を説明した。しかしながら、例えば、各行のはじめの文字間隔を基準として、当該文字間隔との相対関係に基づいて情報が埋め込まれた情報入り文書画像等、他の情報埋め込み手法に対して適用することも可能である。
【００６８】
また、外接矩形の相違判定を、１つの情報ブロック内に存在する文字間隔の差分値の個数を比較することにより判定したが、１つの情報ブロック内に存在する文字間隔の個数から判定するよう構成してもよい。
【００６９】
なお、第１実施形態においては、１文字毎の文字を移動する埋め込み及び抽出について説明した。しかし、複数文字毎に間隔制御を行ってもよいし、英文などにおいては単語毎の間隔制御を行ってもよい。また、これらに限定されず、画像データに含まれる任意の構成要素間の間隔に対して適用することが出来る。
【００７０】
（第２実施形態）
第２実施形態では、埋め込む情報を２ビットを１ブロックとして分割すると共に、抽出時の誤り訂正を可能にする情報の埋め込み方法について説明する。ここでは特に、各情報ブロックの２ビット目の情報抽出誤り訂正を考慮して１ビット目の文字間隔を操作する手法について説明する。なお、画像処理装置１１および画像処理装置１２の機能ブロックについては第１実施形態と同様であるため説明は省略する。
【００７１】
＜情報の埋め込み方法および抽出方法の概要＞
図１６は、第２実施形態に係る文字間隔の調整による情報の埋め込み方法を示す図である。ここでは、文書画像中に含まれる５つの文字に対して２ビットの情報を埋め込む例を示している。
【００７２】
まず、文字列に対して１文字おきの文字（図中の灰色矩形を示す）の両隣の文字間隔値が等しくなるように、文字間隔を変更させる（正規化処理）。次に、埋め込む情報の２ビットを１ブロックとしていくつかのブロックに分割する。そして、正規化処理された文字間隔に対して、１ブロックごとに埋め込みを行う。
【００７３】
具体的には、１文字おきの文字間隔（灰色矩形に隣接する文字間隔）を操作値Ｃ１分だけ変更させることにより、文字間隔値に大小関係を設けて、２値情報（「０」または「１」）を埋め込むものである。図８では、「０」に対しては右方向への移動、「１」に対しては左方向の移動を行なう例を示している。
【００７４】
さらに、上述の情報埋め込みで使用する操作値Ｃ１とは別個に２つの操作値Ｃ２，Ｃ３を予め設定しておき、１ビット目を埋め込んだ文字間隔（つまり、情報ブロックの開始箇所）に対して、２ビット目の情報に応じて追加の文字間隔値の変更を行う。例えば、２ビット目の情報が「０」のときの追加の操作値をＣ２とし、２ビット目の情報が「１」のときの追加の操作値をＣ３とする。結果的に、２ビット目の情報が「０」の場合は、１ビット目を埋め込んだ箇所の変更値はＣ１＋Ｃ２となり、２ビット目の情報が「１」の場合は、１ビット目を埋め込んだ箇所の変更値はＣ１＋Ｃ３となる。なお、２ビット目以降に対応する文字に対してはＣ１の変更が起こることになる。
【００７５】
このように構成することにより、抽出側では、文字間隔値の大小関係を検出することにより、埋め込んだ情報の抽出が可能となる。具体的には、抽出側では、文字間隔の差分値（すなわち文字を移動させた距離）を検出することにより、１ビット目を埋め込んだ箇所（１ブロックの開始ビット位置）が判定できる。そして、第１実施形態と同様に、情報ブロックに存在する文字間隔の差分値の個数に基づいて外接矩形の相違が発生したか否かを判定する。ただし、第２実施形態においては、相違が発生した場合、１ビット目を埋め込んだ箇所の差分値の範囲に基づいて、２ビット目の情報が「０」であるか「１」であるかを判定することが可能である。
【００７６】
＜装置の動作（埋め込み）＞
図１１は、第２実施形態に係る画像処理装置１１の動作フローチャートである。なお、文書画像の入力（Ｓ１１０１）、領域分割（Ｓ１１０２）、外接矩形情報生成（Ｓ１１０３）、文字間隔算出（Ｓ１１０４）、正規化処理（Ｓ１１０５）、情報入り文書画像出力（Ｓ１１０８）については第１実施形態と同様であるので説明は省略する。以下では、情報埋め込み処理（Ｓ１１０６）および情報ブロック開始箇所用情報埋め込み処理及び訂正用処理（Ｓ１１０７）について詳細に説明する。
【００７７】
図１２は、第２実施形態に係る情報埋め込み方法の概念図である。以下の説明においては、ステップＳ１１０５において正規化処理した文字間隔Ｐ２，Ｓ２が、
Ｐ２１＝Ｓ２１＝２０［画素］
Ｐ２２＝Ｓ２２＝１５［画素］
Ｐ２３＝Ｓ２３＝１８［画素］
Ｐ２４＝Ｓ２４＝１９［画素］
Ｐ２５＝Ｓ２５＝１８［画素］
Ｐ２６＝Ｓ２６＝２０［画素］
Ｐ２７＝Ｓ２７＝１８［画素］
であったとする。
【００７８】
ステップＳ１１０６では、情報埋め込み部１０３は、情報埋め込み処理を行なう。具体的には、ステップＳ１１０５で正規化した文字間隔Ｐ２，Ｓ２に対して、前述の埋め込み方法に従って情報を埋め込む。
【００７９】
まず、埋め込む情報を複数ビットを１ブロックとしたいくつかの情報ブロックに分割する。例えば、埋め込む情報がＩｎｆｏ＝「０１０１（２進）」で、情報ブロック長を２ビット（Ｎ＝２）とした場合、分割された情報ブロックはそれぞれＩｎｆｏ１＝「０１」，Ｉｎｆｏ２＝「０１」となる。
【００８０】
そして、情報ブロックごとに、情報埋め込み処理を行う。なお、この情報ブロック長Ｎは埋め込み側、抽出側で予め共有しているものとする。そして、ここでは埋め込み規則を、上述した規則と同様に、「０」を埋め込みたい場合はＰ２＞Ｓ２、「１」を埋め込みたい場合はＰ２＜Ｓ２となるように文字間隔の変更処理を行なう。具体的には、上述の大小関係を満たすように所定の定数値（操作値Ｃ１）だけ文字間隔を変更する。
【００８１】
つまり、情報が埋め込まれた文字間隔をＰ３，Ｓ３とすると、「０」が埋め込まれた場合はＰ３＝Ｐ２＋Ｃ１，Ｓ３＝Ｓ２−Ｃ１と表すことができる。一方、「１」が埋め込まれた場合はＰ３＝Ｐ２−Ｃ１，Ｓ３＝Ｓ２＋Ｃ１と表すことが出来る。
【００８２】
例えば操作値Ｃ１が５［画素］，埋め込みたい情報がＩｎｆｏ１＝［０１］とすると、文字間隔Ｐ３１，Ｓ３１は、
Ｐ３１＝Ｐ２１＋Ｃ１＝２０＋  ５＝２５［画素］，  Ｓ３１＝Ｓ２１−Ｃ１＝２０−  ５＝１５［画素］
となる。以下同様の処理を行うことで、
Ｐ３２＝１０［画素］，  Ｓ３２＝２０［画素］
が得られる。
【００８３】
ステップＳ１１０７では、情報埋め込み部１０３は、情報ブロック開始箇所用情報埋め込み処理および訂正用処理を行なう。情報ブロック開始箇所用情報埋め込み処理および訂正用処理とは、情報抽出時にブロックの開始箇所が検出でき、かつ、２ビット目の情報を訂正できるように、文字間隔に対しさらに変更を加える処理である。具体的には、ステップＳ１１０６で移動した文字列に対して、以下のような条件に応じた定数値（操作値Ｃ２，Ｃ３）に基づいた文字間隔値の変更を加える。処理を行った文字間隔をＰ４，Ｓ４とした場合、
条件１：１ビット目の情報が「０」で２ビット目の情報が「０」の場合は、
Ｐ４＝Ｐ３＋Ｃ２，  Ｓ４＝Ｓ３−Ｃ２
条件２：１ビット目の情報が「１」で２ビット目の情報が「０」の場合は、
Ｐ４＝Ｐ３−Ｃ２，  Ｓ４＝Ｓ３＋Ｃ２
条件３：１ビット目の情報が「０」で２ビット目の情報が「１」の場合は、
Ｐ４＝Ｐ３＋Ｃ３，  Ｓ４＝Ｓ３−Ｃ３
条件４：１ビット目の情報が「１」で２ビット目の情報が「１」の場合は、
Ｐ４＝Ｐ３−Ｃ３，  Ｓ４＝Ｓ３＋Ｃ３
となる。つまり、処理対象の情報ブロックを構成するビットの並びに基づいて変更量を変更する。
【００８４】
図１２においては、埋め込む情報がＩｎｆｏ１＝「０１」であり上記条件３に該当する。そのため、ブロックの開始箇所はＰ３１，Ｓ３１に対応する処理後の文字間隔Ｐ４１，Ｓ４１は、操作値Ｃ３を５［画素］とした場合、
Ｐ４１＝Ｐ３＋Ｃ３＝２５＋１０＝３５［画素］，  Ｓ４１＝Ｓ３−Ｃ３＝１５−１０＝  ５［画素］
となる。開始箇所でないＰ４２，Ｓ４２に対しては何も処理を行わない。そして、各情報ブロックに対して以下同様の処理を行うことで、情報入り文書画像Ｉｗが生成される。
【００８５】
＜装置の動作（抽出）＞
図１３は、第２実施形態に係る画像処理装置１２の動作フローチャートである。なお、情報入り文書画像の入力（Ｓ１３０１）、領域分割（Ｓ１３０２）、外接矩形情報生成（Ｓ１３０３）、文字間隔算出（Ｓ１３０４）、文字間差分値算出（Ｓ１３０５）については第１実施形態と同様であるので説明は省略する。以下では、情報ブロック開始箇所検出処理（Ｓ１３０６）、外接矩形の相違判定処理（Ｓ１３０７）、情報抽出と訂正処理（Ｓ１３０８）について詳細に説明する。
【００８６】
図１４（ａ）〜（ｃ）は、情報埋め込み時の外接矩形との情報抽出時の外接矩形との間に相違が発生していない場合と発生した場合とを例示的に示す図である。まず、最初に外接矩形の相違が発生していない場合のステップＳ１３０５以降の処理について説明する。
【００８７】
ステップＳ１３０５では、情報抽出部２０３は、文字間隔の差分値を算出する。例えば、図１４（ａ）に示すように、埋め込み時の文字間隔Ｐ４，Ｓ４がそれぞれ、
Ｐ４１＝３５［画素］，Ｓ４１＝  ５［画素］
Ｐ４２＝１０［画素］，Ｓ４２＝２０［画素］
で、抽出時における外接矩形情報Ｒ３から算出した文字間隔Ｐ５，Ｓ５がそれぞれ、図１４（ｂ）に示すように、
Ｐ５１＝３５［画素］，Ｓ５１＝  ５［画素］
Ｐ５２＝１０［画素］，Ｓ５２＝２０［画素］
で、あったとする。その場合、文字間隔Ｐ５，Ｓ５に対して差分値Ｄを算出する。
【００８８】
この差分値ＤはＤ＝｜Ｐ５−Ｓ５｜と表すことが出来るので、
Ｄ１１＝３０［画素］，Ｄ１２＝  ５［画素］
Ｄ２２＝１０［画素］，Ｄ２３＝  ８［画素］
が得られる。
【００８９】
ステップＳ１３０６では、情報抽出部２０３は、差分値Ｄから情報ブロックの開始箇所を検出する。ここで、埋め込み時に使った、情報ブロックの開始箇所検出のための操作値Ｃ２＝５［画素］，Ｃ３＝１０［画素］と、情報を埋め込むために使用した操作値Ｃ１＝５［画素］とから、ブロックの開始箇所の差分値ＤｃはＤｃ＝（Ｃ１＋Ｃ２）×２と表すことが出来る。なお、Ｃ２＞Ｃ３の場合は差分値Ｄｃは（Ｃ１＋Ｃ３）×２と表すことが出来る。
【００９０】
従って、差分値Ｄが上記差分値Ｄｃ以上であるか否か判定することで開始箇所を検出することが出来る。なお、この操作値Ｃ１，Ｃ２，Ｃ３は抽出側であらかじめ知っているものとする。
【００９１】
例えば、埋め込み時の操作値Ｃ１＝  ５［画素］，Ｃ２＝５［画素］，Ｃ３＝１０［画素］である場合、差分値Ｄｃ＝（５＋５）×２＝２０［画素］以上である差分値Ｄは、Ｄ１１となる。つまり、情報ブロックＩｎｆｏ１の開始箇所がＤ１１（Ｐ５１，Ｓ５１）と検出できる。
【００９２】
なお、ここでは、差分値Ｄｃは、埋め込み時の操作値Ｃ１，Ｃ２，Ｃ３から算出した値をそのまま用いている。しかし、紙から電子データ，電子データから紙などの文書画像の形態変化により、ノイズや歪等が発生する場合も考えられる。そのため、ノイズを考慮した値を加算あるいは減算することで操作値もしくは抽出差分値に幅をもたせるよう構成してもよい。
【００９３】
ステップＳ１３０７では、情報抽出部２０３は、外接矩形の相違が発生したか否かの判定を行う。これは、上述したように、埋め込み時と抽出時の各々における文字間隔の差分値の個数Ｄｎを比較することにより行なわれる。外接矩形の相違が発生していない場合、埋め込み時と抽出時との各々において差分値の個数Ｄｎは一致し、この差分値の個数は情報ブロック長をＮとした時、Ｄｎ＝２Ｎと表すことが出来る。
【００９４】
例えば、情報ブロック長ＮをＮ＝２とした場合、１つの情報ブロック内に存在する文字間隔の差分値の個数Ｄｎが、
Ｄｎ＝２Ｎ＝２×２＝４
であるか判定すればよい。図１４（ｂ）の場合においては、情報ブロックＩｎｆｏ１の個数はＤ１１，Ｄ１２，Ｄ２２，Ｄ２３の４個であるため、相違発生なしと判断する。
【００９５】
ステップＳ１３０８では、情報抽出部２０３は、情報ブロックから情報抽出を行う。具体的には、埋め込み時に使用した規則と同一の規則を用いて抽出を行う。例えば、文字間隔Ｐ，Ｓとして、２値情報の「０」をＰ＞Ｓとなるように、「１」をＰ＜Ｓとなるように、文字間隔を制御して埋め込んだ場合、情報は
Ｐ５１＞Ｓ５１なので「０」
Ｐ５２＜Ｓ５２なので「１」
として抽出される。
【００９６】
次に、ステップＳ１３０３およびＳ１３０４において、外接矩形の相違が発生した場合のステップＳ１３０５以降の処理について説明する。
【００９７】
ステップＳ１３０５では、情報抽出部２０３は、文字間隔の差分値を算出する。例えば、図１４（ａ）に示すように、埋め込み時の文字間隔Ｐ４，Ｓ４がそれぞれ、
Ｐ４１＝３５［画素］，  Ｓ４１＝  ５［画素］
Ｐ４２＝１０［画素］，  Ｓ４２＝２０［画素］
であったが、外接矩形の相違が発生し、抽出時における外接矩形情報Ｒ３から算出した文字間隔Ｐ５，Ｓ５がそれぞれ、図１４（ｃ）に示すように、
Ｐ５１＝３５［画素］，  Ｓ５１＝  ２［画素］
Ｐ５２＝  ５［画素］，  Ｓ５２＝１０［画素］
Ｐ５３＝２０［画素］
であったとする。処理自体は上述したものと同様であり、差分値Ｄはそれぞれ、
Ｄ１１＝３３［画素］，  Ｄ１２＝  ３［画素］
Ｄ２２＝  ５［画素］，  Ｄ２３＝１０［画素］
となる。
【００９８】
ステップＳ１３０６では、情報抽出部２０３は、差分値Ｄから情報ブロックの開始箇所を検出する。例えば、埋め込み時の操作値Ｃ１＝  ５［画素］，Ｃ２＝５［画素］，Ｃ３＝１０［画素］である場合、差分値Ｄｃ＝（５＋５）×２＝２０［画素］となり、差分値Ｄｃを越える差分値Ｄは、Ｄ１１である。つまり、情報ブロックＩｎｆｏ１の開始箇所がＤ１１（Ｐ５１，Ｓ５１）と検出できる。
【００９９】
ステップＳ１３０７では、情報抽出部２０３は、外接矩形の相違が発生したか否かの判定を行う。ここでは情報ブロック長ＮはＮ＝２であるため、上述したように、１つの情報ブロック内に存在する文字間隔の差分値の個数が２Ｎ＝２×２＝４であるか否かを判定すればよい。図１４（ｃ）の場合においては、情報ブロックＩｎｆｏ１の個数はＤ１１，Ｄ１２，Ｄ２２，Ｄ２３，Ｄ３３の５個であり、上記値と異なるため、外接矩形の相違が発生したと判断する。
【０１００】
ステップＳ１３０８では、情報抽出部２０３は、情報ブロックから情報抽出を行う。さらに１ビット目の情報埋め込みで使用された箇所（開始箇所）の差分値を用いて２ビット目の情報の訂正を行う。具体的には、埋め込み時に使用した規則と同一の規則を用いて抽出を行う。例えば、文字間隔Ｐ，Ｓとして、２値情報の「０」をＰ＞Ｓとなるように、「１」をＰ＜Ｓとなるように、文字間隔を制御して埋め込んだ場合、情報は
Ｐ５１＞Ｓ５１なので「０」
Ｐ５２＜Ｓ５２なので「１」
Ｐ５３＞Ｓ５３なので「０」
として抽出される。つまり情報ブロックＩｎｆｏ１の情報はＩｎｆｏ１＝「０１１」として抽出される。
【０１０１】
ただし、埋め込んだ情報は２［ｂｉｔ］であり、開始箇所の情報「０」は訂正しないので、訂正する箇所の情報は「１１」の部分である。ステップＳ１１０７で説明したように、開始箇所の差分値Ｄは２ビット目の値に依存していることから、ここで、例えば、Ｄ＞（Ｃ１＋Ｃ３）×２ならば次の情報を「１」と訂正し、（Ｃ１＋Ｃ３）×２＞Ｄ＞（Ｃ１＋Ｃ２）×２ならば次の情報を「０」と訂正する。なお、この操作値Ｃ１，Ｃ３は抽出側であらかじめ知っているものとする。
【０１０２】
例えば、Ｃ３＝１０［画素］とすると、差分値Ｄｃ＝（Ｃ１＋Ｃ３）×２＝（５＋１０）×２＝３０［画素］であり、Ｄ１１（３３）＞Ｄｃ（３０）より、情報「１１」は「１」と訂正される。よって、最終的に抽出される情報ブロックＩｎｆｏ１の抽出情報は
Ｉｎｆｏ１＝「０１」
となる。
【０１０３】
以上の処理を各情報ブロックに対して行うことで、外接矩形の相違を検出し、たとえ相違が発生した場合でも、当該情報ブロック単位でのエラーに留まることになる。また、相違が発生した情報ブロックのエラーを訂正することも出来る。
【０１０４】
以上説明したように、第２実施形態によれば、埋め込む情報を複数の情報ブロックに分割してから埋め込む。さらに、当該情報ブロック単位での検出を考慮して文字間隔を操作量（文字の移動量）を２ビット目の情報に基づいて設定する。このように構成することにより、抽出側において外接矩形の相違が発生した場合、当該相違が発生したことを検出・訂正可能となると共に他の情報ブロックへのエラー発生の波及を低減することが可能となる。
【０１０５】
（第３実施形態）
上述の実施形態で説明した処理をプログラムをコンピュータに実行させることにより、情報の埋め込み処理および抽出処理を実現するよう構成してもよい。
【０１０６】
図１５はコンピュータの内部構成を示す図である。例えばこのコンピュータにおいて、全ての機能を実行する場合、各機能構成をプログラムにより表現し、このコンピュータに読み込ませることで、このコンピュータで第１及び第２の実施形態の全ての機能を実現することが出来る。
【０１０７】
同図において、１５０１はＣＰＵであり、ＲＡＭ１５０２やＲＯＭ１５０３に格納されているプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、上記実施形態で説明した各処理を行う。
【０１０８】
１５０２はＲＡＭであり、外部記憶装置１５０８からロードされたプログラムやデータを一時的に記憶する。また、他のコンピュータシステム１５１４からＩ／Ｆ（インターフェース）１５１５を介してダウンロードしたプログラムやデータを一時的に記憶する。さらに、ＣＰＵ１５０１が各種の処理を行うために必要とするワークエリアとして利用される。
【０１０９】
１５０３はＲＯＭであり、コンピュータの機能プログラムや設定データなどを記憶する。１５０４はディスプレイ制御装置で、画像や文字等をディスプレイ１５０５に表示させるための制御処理を行う。１５０５はディスプレイで、画像や文字などを表示する。なお、ディスプレイとしてはＣＲＴや液晶画面などが適用可能である。
【０１１０】
１５０６は操作入力デバイスであり、キーボードやマウスなど、ＣＰＵ１５０１に各種の指示を入力することのできるデバイスにより構成されている。１５０７は操作入力デバイス１５０６を介して入力された各種の指示等をＣＰＵ１５０１に通知するためのＩ／Ｏである。
【０１１１】
１５０８はハードディスクなどの大容量情報記憶装置として機能する外部記憶装置であり、ＯＳ（オペレーティングシステム）や各種プログラム、入出力原稿画像などを記憶する。外部記憶装置１５０８への情報の書き込みや外部記憶装置１５０８からの情報の読み出しはＩ／Ｏ１５０９を介して行われる。
【０１１２】
１５１０は文書や画像を出力する為のプリンタで、出力データはＩ／Ｏ１５１１を介してＲＡＭ１５０２、もしくは外部記憶装置１５０８から送られる。なお、文書や画像を出力する為のプリンタとしては、例えばインクジェットプリンタ、レーザビームプリンタ、熱転写型プリンタ、ドットインパクトプリンタなどが挙げられる。
【０１１３】
１５１２は文書や画像を読み取るためのスキャナで、入力データはＩ／Ｏ１５１３を介してＲＡＭ１５０２、もしくは外部記憶装置１５０８に送られる。
【０１１４】
１５１６は、ＣＰＵ１５０１、ＲＯＭ１５０３、ＲＡＭ１５０２、Ｉ／Ｏ１５１１、Ｉ／Ｏ１５０９、ディスプレイ制御装置１５０４、Ｉ／Ｆ１５１５、Ｉ／Ｏ１５０７、Ｉ／Ｏ１５１３を繋ぐバスである。
【０１１５】
なお本実施形態では、スキャンやプリンタを除く処理をコンピュータにより行っているが、スキャナやプリンタ内部の専用のハードウェア回路を用いて、コンピュータで行う処理を代行しても良い。
【０１１６】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１７】
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
【０１１８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１１９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭなどがある。
【０１２０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１２１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図１】
2010199877.tif 000003
【図２】
2010199877.tif 000004
【図３】
2010199877.tif 000005
【図４】
2010199877.tif 000006
【図５】
2010199877.tif 000007
【図６】
2010199877.tif 000008
【図７】
2010199877.tif 000009
【図８】
2010199877.tif 000010
【図９】
2010199877.tif 000011
【図１０】
2010199877.tif 000012
【図１１】
2010199877.tif 000013
【図１２】
2010199877.tif 000014
【図１３】
2010199877.tif 000015
【図１４】
2010199877.tif 000016
【図１５】
2010199877.tif 000017
【図１６】
2010199877.tif 000018