説明

情報処理装置及びその制御方法

【課題】 文字間隔が狭いフォントを含む電子文書であっても違和感が発生しにくく、且つ、正しく抽出できるように情報を埋め込む。
【解決手段】 文書解析部202は、入力部201が入力した文書画像データを解析し、各文字の外接矩形のサイズと位置を抽出する。そして、埋め込み方法分別部203は、連続する3文字の文字列内の2つの文字間隔A,Bの合計値と予め設定された閾値Thとを比較することで、着目文字列が、文字間隔調整を行うことで埋め込むのに好適なタイプか、文字幅を調節することで埋め込むのに好適なタイプかを判定する。透かし埋め込み部206は、決定した埋め込み方法に従い、着目文字列に対して1ビットの情報を埋め込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子文書に情報を付加するための技術に関する。
【背景技術】
【0002】
近年の電子化において、文書に対するセキュリティ技術が求められている。なかでも以下の電子文書において電子透かし情報(以下、透かしとする)を埋め込み、抽出する技術が注目されている。例えば、電子文書の画像化した文書画像に対して、文字間隔を操作し透かしを埋め込む方法がある(特許文献1)。また、文書画像に対して、行の文字の高さを操作し透かしを埋め込む方法がある(特許文献2)。これらの技術は、企業や個人が作成した機密文書が紙での手渡し、又はCD,DVDなどの記録媒体、更にはネットワークなどを通じて、不正流出した時の追跡調査などに利用できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第3728209号公報
【特許文献2】特許第3848141号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では操作する前の各文字間の空白部分である文字間隔の大きさの違いについては考慮されていない。つまり、英数字やプロポーショナルフォントなどの一部で文字間隔が極端に狭い箇所がある場合に、情報を埋め込むことで図1のように文字同士が結合してしまう問題が起こる。よって、埋め込み後の文書の見た目が悪くなり、さらに抽出時に結合した部分の情報は抽出できなくなってしまう。
【0005】
本発明は、この課題を解決して文字間隔が狭いフォントを含む電子文書であっても違和感が発生しにくく、且つ、正しく抽出できるように情報を埋め込む技術を提供するものである。
【課題を解決するための手段】
【0006】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
電子文書に情報を埋め込む情報処理装置であって、
入力された電子文書を解析し、各文字の配置情報を抽出する文書解析手段と、
該文書解析手段で得られた各文字の配置情報に従って、連続する複数の文字で構成される文字群を選択し、前記文字群の文字間隔を算出し、算出した文字間隔に基づき、着目している文字群が文字間隔を調整して埋め込むのに適した第1のタイプであるか、前記第1のタイプ以外の第2のタイプのいずれに属するのかを判定する判定手段と、
該判定手段の判定結果が、前記着目している文字群が前記第1のタイプであることを示す場合、前記着目している文字群における隣り合う2つの文字間隔A,Bの関係が埋め込むべき1ビットの値に応じた関係となるべく、前記文字間隔A,Bで挟まれる文字の位置を調整する第1の埋め込み手段と、
該判定手段の判定結果が、前記着目している文字群が前記第2のタイプであることを示す場合、前記着目している文字群における隣り合う2つの文字のそれぞれの文字幅の関係が埋め込むべき1ビットの値に応じた関係となるべく、一方の文字幅を所定長だけ増加すると共に他方の文字幅を前記所定長だけ減少させる第2の埋め込み手段とを備える。
【発明の効果】
【0007】
本発明によれば、文字間隔が狭いフォントを含む電子文書であっても違和感が発生しにくく、且つ、正しく抽出できるように情報を埋め込むことが可能になる。
【図面の簡単な説明】
【0008】
【図1】文字間隔を調整して情報を埋め込む場合の不具合の例を示す図。
【図2】第1の実施形態の埋め込み装置のブロック構成図。
【図3】第1の実施形態における埋め込み手順を示すフローチャート。
【図4】図3の埋め込み方法の分別の内容を示すフローチャート。
【図5】図3の透かし埋め込みの内容を示すフローチャート。
【図6】文書解析部で抽出する文字とその外接矩形の関係を示す図。
【図7】実施形態における3文字を選択する順を示す図。
【図8】第1の実施形態における透かし埋め込みの例を示す図。
【図9】第1の実施形態における抽出装置のブロック構成図。
【図10】透かし情報の抽出手順を示すフローチャート。
【図11】図10の透かし抽出の内容を示すフローチャート。
【図12】第2の実施形態におけるフォント情報の例を示す図。
【図13】電子文書の文字間隔に関係する部分の記述例を示す図。
【図14】第3の実施形態の埋め込み装置のブロック構成図。
【図15】コンピュータのブロック構成図。
【図16】図3の埋め込み方法の分別の内容を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【0010】
[第1の実施形態]
<透かし埋め込み方法>
図2は、第1の実施形態における透かし埋め込み装置の構成及び情報の流れを示す図である。具体的には、複合機を想定し、埋め込む透かしとしては装置をユニークに特定する情報(メーカのモデル名、シリアル番号)として説明する。
【0011】
本装置は、埋め込み対象である電子文書を画像化した文書画像200を入力する入力部201を備える。本実施形態における入力部201は、原稿を光学的に読取り、2値の原稿画像データ(ビットマップイメージデータ)として出力するイメージスキャナであるとする。しかし、画像ファイルを記憶している記憶媒体からその画像ファイルを読み込む装置や、ネットワーク上のサーバから画像ファイルを受信する構成でも構わず、その種類は問わない。また、透かし埋め込み装置は、文書画像の文字の外接矩形を抽出し、文字間隔を算出する文書解析部202と、文字間隔から求まる値と対応するしきい値を用いて、埋め込み方法を分別する埋め込み方法分別部203を有する。そして、透かし埋め込み装置は、透かし入力部205より入力された透かし204を用いて、透かしの埋め込みを行う透かし埋め込み部206と、透かし埋め込み文書画像208を出力する出力部207をも有する。実施形態における出力部207はプリンタであるが、埋め込み後の画像をファイルとして記憶媒体に保存しても、ネットワークに出力しても良く、その種類は問わない。以下、透かしの埋め込み方法の具体的な実現方法について述べる。
【0012】
実施形態における透かし埋め込み装置の処理手順を図3のフローチャートに従って説明する。まず、入力部201が文書画像200を入力する(S301)。文書画像は2値画像であって、例えば、BMP(Microsoft Windows(登録商標) Bitmap Image)やTIFF(Tagged Image File Format)などが挙げられる。次に、文書解析部202は、入力した文書画像を解析し、各文字の配置情報を抽出する。具体的には、文書解析部202は図6に示すような、各文字画像の外接矩形(文字領域)の検出を行う(S302)。外接矩形の検出は、入力した文書画像の各画素値を垂直座標軸に対して射影し、空白部分(黒色である文字のない部分)を探索して行を判別して行分割を行う。その後、行単位に、文書画像を水平座標軸に対して射影し、空白部分を探索して文字単位に分割する。これによって、各文字の高さと幅から、外接矩形を決定できるようになる。また、外接矩形を求めたことにより、例えば、1行中に連続する3文字の文字列について、図6に示す各文字の外接矩形の左下隅の座標S1、S2、S3、各文字の文字幅W1、W2、W3が算出される。このようにして、外接矩形が検出されると、連続する3文字の外接矩形から、それら1文字目と2文字目の文字間隔A、2文字目と3文字目の文字間隔Bを次式に従って算出する(S303)。
A=S2−(S1+W1)
B=S3−(S2+W2)
【0013】
次に、詳細は後述するが、文書画像の文字間隔A、Bと、予め設定された文字間隔閾値Thによって、埋め込み方法が分別される(S304)。そして、分別された埋め込み方法に従い、着目文字列(文字)について、透かし入力部205が入力した透かし204の1ビットの埋め込みが行なわれる(S305)。なお、この埋め込み処理についての詳細も後述することとする。そして、分別された埋め込み方法に従い、着目文字列(文字)について、透かし入力部205が入力した透かし204の1ビットの埋め込みが行なわれる(S305)。こうして、埋め込むべき情報の埋め込み処理が終了すると、出力部207が介して透かし埋め込み済みの文書画像208を出力する。
【0014】
<埋め込み方法分別部>
図4は、図3におけるS304、すなわち、埋め込み方法分別部203の処理を示すフローチャートである。以下、同図、及び、図6を参照して説明する。
【0015】
先ず、埋め込み方法分別部203は、文書画像中の着目行か連続する3文字分の外接矩形を選択する。選択する順序は行順であり、1つの行では左端の文字から連続する3文字の外接矩形を選択する(S304a)。そして、選択した連続する3文字の文字列が、文字間隔を調整して情報を埋め込むのに適した文字列であるか否かを判定する。具体的には、先のS303において求めた外接矩形に関する情報から求めた文字間隔AとBの合計値と、予め設定された文字間隔閾値Thとを比較し、合計値が文字間隔閾値以上であるか否かが判断される(S304b)。ここで、条件「A+B≧Th」を満たす場合(YES)、着目文字列は、文字間隔を調整して埋め込みできる状態(第1のタイプの文字列)であると判断し、着目文字列に対する埋め込み方法の種類を特定する変数Uを“1”に設定する(S304c)。一方、A+B<Thであると判定された場合、着目文字列の文字間隔を調整して埋め込むことができず、文字幅を調整するのに適した文字列(第1のタイプ以外=第2のタイプの文字列)と判定し、埋め込み方法の種類を特定する変数Uを“2”に設定する(S304d)。そして、文書の終わりであるか否かを判断し(S304e)、否の場合には、次の3文字を選択し、上記処理を行う。実施形態では連続する3文字について1ビットの情報を埋め込む。そして、1つの文書画像に、より多くの情報を埋め込むため、前回選択した文字列の最後の文字を、今回選択する文字列の先頭文字とする。図7はこの選択する3文字の推移を示している。この結果、3文字について1ビットを埋め込むものの、実質的2文字について1ビットを埋め込むことに成功する。こうして、埋め込み方法分別部203は、入力した文書画像における各文字の外接矩形情報に基づき、連続する3文字単位に、変数Uの値を決定する。決定した変数Uは、後続する透かし埋め込み部206に供給される。
【0016】
なお、上記では、埋め込み方法の分別に、文字間隔A,Bの合計値と閾値Thとを比較するものとしたが、文字間隔AとBがともにTh以上なら、文字間隔を操作した埋め込み方法に設定し、そうでなければ、文字幅を操作した埋め込み方法に設定される。また、一つの文字幅に基づく文字幅閾値をZとして、W1とW2がともにZ以上なら、文字間隔が狭いとみなして文字幅を操作した埋め込み方法に設定し、そうでなければ、文字間隔が広いとみなして文字間隔を操作した埋め込み方法を設定しても良い。なお、文字間隔が異なる文字群を分別できる方法ならば、いずれにも本発明が適応できることは言うまでもない。
【0017】
<透かし埋め込み部>
次に、実施形態における透かし埋め込み部206を説明する。この透かし埋め込み部206は、後述する2種類の埋め込み法を使い分ける。第1の埋め込み法は、連続する3つの文字列中の2番目の文字(中央の文字)の位置を調整することで、その両隣の文字との距離A,Bの関係を、埋め込むビットの値に応じた関係にするものである。第2の埋め込み法は、連続する3つの文字列中の先頭と2番目の文字の幅を調整することで、それら2つの文字の幅W1、W2の関係を、埋め込むビットの値に応じた関係にするものである。
【0018】
図5は、図3におけるS305、すなわち、透かし埋め込み部206の処理を示すフローチャートである。透かし埋め込み部206は、文書画像中における連続する3文字(以下、この3文字を着目文字列という)を選択する(S305a)。この選択処理のアルゴリズムは、埋め込み方法分別部203のそれと同じである。次に、透かし埋め込み部206は、着目文字列に対する、埋め込み方法分別部203の分別の判定結果、すなわち、変数Uを受け取り、その値が“1”であるか否かを判定する(S305b)。U=1である場合(YES)は文字間隔を調整した埋め込み処理を行うため、処理はS305cに進む。この埋め込み処理は以下のように行う。
【0019】
まず、埋め込み対象の1ビットの値が“1”である場合、着目文字列の文字間隔A,Bの関係が『A<B』となるように、着目文字列中の中央の文字画像のみを移動させる。一方、埋め込み対象の1ビットの値が“0”である場合、着目文字列の文字間隔A,Bの関係が『A≧B』となるように、着目文字列中の中央の文字画像のみを移動させる。上記の通りであるので、埋め込む前後の「A+B」の値は一定である。これによって、透かし埋め込み文書画像から埋め込まれた透かしを抽出するときの抽出方法分別が可能となる。また、2文字目のみを移動させているので、透かし挿入前後で行の幅が変化することもない。
【0020】
上記の説明した方法に限らず、抽出時に埋め込み時と同様に文字群を分別できるならば、他の文字の間隔を使って情報を埋め込む場合いずれにも本発明が適応できることは言うまでもない。
【0021】
一方、透かし埋め込み部206が、S305bにて、U=1ではない場合、すなわち、U=2であると判断した場合、文字幅を調整した埋め込み方法を行うため、処理はS305dに進む。この埋め込み処理は、以下のように行う。
【0022】
埋め込み対象のビットの値が“1”の場合、文字幅W1、W2において『W1<W2』の関係が成立するまで、以下の処理を実行する。なお、αの値は予め設定された正の所定値である。
W1=W1−α
W2=W2+α
すなわち、着目文字列中の外接矩形内の先頭文字画像の幅を減少、2番目の外接矩形内の文字画像の幅を増加させる処理を行う。ただし、着目文字列の後端の外接矩形内の文字画像の位置やサイズは変更しない。更に、着目文字列中の先頭の文字画像の外接矩形の左下隅の位置、及び、着目文字列中の中央の文字画像の外接矩形の右下隅の位置は不動とする。換言すれば、文字間隔Aは一定に保ったまま、文字間隔Aを挟む2つの文字のサイズを変更する。
【0023】
また、埋め込み対象のビットの値が“0”の場合、文字幅W1、W2において『W1≧W2』の関係が成立するまで、以下の処理を実行する。
W1=W1+α
W2=W2−α
すなわち、着目文字列中の外接矩形内の先頭文字画像の幅を増加、2番目の外接矩形内の文字画像の幅を減少させる処理を行う。ただし、着目文字列の後端の外接矩形内の文字画像の位置やサイズは変更しない。更に、着目文字列中の先頭の文字画像の外接矩形の左下隅の位置、及び、着目文字列中の中央の文字画像の外接矩形の右下隅の位置は不動とする。
【0024】
上記のようS305c、S305dのいずれによっても、着目文字列について1ビットの透かしが埋め込まれる。そして、S305c、S305dのいずれの処理を行ったとしても、着目文字列の先頭文字画像の外接矩形の左辺と、着目文字列の後端の文字画像の外接矩形の右辺の位置は変化しないので、透かしを埋め込める。つまり、透かし抽出時に文字間隔による埋め込みが行われたか、文字幅による埋め込みかが行われたかを分別することが可能になる。さらに、透かしの挿入前後で行の幅も変化もしない。
【0025】
なお、実施形態における文字幅の調整による埋め込みでは、連続する3文字中の先頭、2番目の文字の幅を調整するものとしたが、2番目と3番目の文字の調整でも構わない。要するに、先頭の文字の左下隅の位置と最後の文字の右下隅の位置が不動であり、連続する2つの文字の一方の文字幅を所定長(α)だけ増加させた場合には、他方の文字幅を同じ長さだけ減少させればよい。
【0026】
こうして、最後のS305eは、文書の終わりか否かを判断される。否の場合には、次の3文字を選択し、上記処理を繰り返す。また、選択した3文字が文書画像中の最終行の最後の3文字であると判断した場合には本処理を終える。
【0027】
図8は、本実施形態における電子文書の文字間隔および文字幅の変化例を示したものである。2つの文字間隔の総和に基づいて埋め込み方法が異なることが分かる。
【0028】
<透かし抽出方法>
上記の透かし情報埋め込み装置が第1の埋め込み方法、第2の埋め込み方法の2種類の埋め込み方法を切り替えて情報埋め込みを行った。従って、透かし情報抽出装置も、基本は第1の抽出方法、第2の抽出方法を繰り替えて、埋め込まれた情報を抽出することになる。
【0029】
本実施形態における透かし情報抽出装置の構成とその処理内容を図9を参照して説明する。本実施形態における透かし情報抽出装置が、透かし情報が埋め込まれた文書画像データ900、又は、透かし埋め込み文書の印刷物901は、入力部902を介して2値の画像データとして文書解析部903に供給される。入力部902はイメージスキャナや画像データを受信するインタフェースで良い。文書解析部903は、埋め込み側と同様に、入力した文書画像の文字画像の外接矩形の位置(実施形態では、外接矩形の左下隅の座標)とサイズ(文字の並び方向の幅)を抽出する。そして、抽出方法分別部904は、文書解析部903で抽出した情報に基づき、3文字分の文字列単位に、その中の文字間隔と閾値Thを用いて、埋め込み方法を分別し、その結果、透かし抽出部905に出力する。透かし抽出部905は、判定された埋め込み方法に従って、埋め込まれた情報を抽出し、透かし906として出力する。以下、透かしの抽出方法の具体的な実現方法について述べる。
【0030】
図10は、本実施形態における透かし抽出装置の動作手順を説明するためのフローチャートである。透かし抽出装置は、先ず、入力部902を介して、透かしが埋め込まれた2値の文書画像を入力する(S1001)。次いで、文書解析部903が、埋め込み側と同様に、入力した文書画像の黒画素の投影処理を行う文字画像の外接矩形の位置とサイズの検出が行い(S1002)、各文字間隔を算出する(S1003)。抽出方法分別部904は、入力した文書画像中の着目行中の着目文字列(3文字)分における1文字目と2文字目の文字間隔A、2文字目と3文字目の文字間隔B、及び、閾値Thに基づき、透かし抽出方法を分別する(S1004)。ここで、分別の判断式は透かし埋め込み時と同様であり、文字間隔による埋め込みが行われたか、文字幅による埋め込みかが行われたかを判断し、どの埋め込み方法かを示す値であるUを得る。この後、透かし抽出部905は、着目文字列に対する値Uに従って、埋め込まれたビットの値を抽出し、出力する。
【0031】
図11は、本実施形態における抽出方法分別部904の処理内容を示すフローチャートである。以下、同図に従って、抽出方法分別部904の処理手順を説明する。
【0032】
まず、抽出方法分別部904は、文書画像中の着目行中の着目文字列(実施形態では3文字)を選択することで、その選択された文字列の文字間隔A、Bを得る(S1005a)。そして、抽出方法分別部904は、A+Bと閾値とを比較することで、値Uの値を決定し、その値Uの値が“1”であるか否かを判定する(S1005b)。すなわち、抽出方法分別部904は、文字間隔、文字幅調整のいずれによって着目文字列に1ビットの値が埋め込まれたのかを判定する。透かし抽出部905は、値Uの値が“1”の場合、文字間隔調整による埋め込みが行われたと判断し、S1005cに処理を進め、次のようにして埋め込まれたビットを次のようにして判定する。
・A<Bの場合:埋め込まれたビットは「1」と判定する。
・A<Bではない場合:埋め込まれたビットは「0」と判定する。
【0033】
一方、判定ステップS1005bの判定がNo(U=2)であると判定した場合、着目文字列に対して文字幅調整による埋め込みが行われたと判断し、S1005dに処理を進め、次のようにして埋め込まれたビットを次のようにして判定する。
・W1<W2である場合は、埋め込まれたビットは「1」と判定する。
・W1<W2ではない場合は、埋め込まれたビットは「0」と判定する。
【0034】
そして上記の処理を、文書の終わりに到達するまで、繰り返す(S1005e)。ここでは、埋め込みおよび抽出にて分別に用いられる文字間隔の総和および行の幅が変化しない文字間隔および文字幅を用いた透かし埋め込み方法を説明した。ただし、文字間隔の総和が変化しなければ、行の幅が変化する方法を含む他の透かし埋め込み方法が適用できるのはいうまでもない。例えば、文字の配置位置を垂直方向に移動させることや文字の高さを変化させることでも可能である。また、行の幅が変化する文字間隔および文字幅を用いた透かし埋め込み方法においても、文字間隔の総和が変化しなければ適用できるのはいうまでもない。
【0035】
なお、上記実施形態では、文書画像を入力し、黒画素の垂直、水平軸への投影処理を行い、行の検出から、各文字の外接矩形を求めるものとしたが、例えば、平仮名文字「い」の場合、その左側と右側部分にそれぞれ独立した外接矩形が検出されることになる可能性がある。特に漢字の偏(へん)と旁(つくり)にも言えることである。従って、上記実施形態における文字の外接矩形という表現は便宜的なものであり、文字を構成する文字構成要素の外接矩形の位置の調整は、サイズ(幅)を調整すると言っても構わない。
【0036】
また、OCR(Optical Character Reader)を用いて、文字を識別し、各文字の外接矩形を求めても良い。
【0037】
[変形例]
第1の実施形態では連続する3文字を順に選択し、選択した3文字毎に埋め込み方法を設定した。しかしながら、埋め込み方法の切り替えを頻繁に切り替える処理が必要になる。そこで、3文字よりも多い数であり、連続して配置されている文字数を単位に、埋め込み方法を分別する例を説明する。3文字よりも多く、連続して複数の文字が配置されている、代表的なものとしては、行が挙げられる。そこで、以下では、埋め込み方法を行単位で分別し、埋め込むことで、処理効率を向上させる方法を変形例として示す。
【0038】
この変形例は、第1の実施形態における<埋め込み方法分別部>と<透かし埋め込み部>が異なる。また、抽出側でそれぞれの処理に対応する抽出方法分別部および透かし抽出部が異なる。
【0039】
<埋め込み方法分別部>
図16は変形例における埋め込み方法分別部203の処理を示すフローチャートである。以下、図16を参照して説明する。
【0040】
先ず、埋め込み方法分別部203は、文書画像中の一番上の順に行を選択する(S304f)。次に、選択した行の文字間隔値の平均値SPaveを求める(S304g)。具体的には、行に存在する文字間隔値の合計を求め、合計を行の文字間隔の数(正確には、文字数−1)で割ることで求める。
【0041】
そして、その行に対して、先のS304gにおいて求めた文字間隔の平均値SPaveと、予め設定された文字間隔閾値Thとを比較し、平均値が文字間隔閾値以上であるか否かが判断する(S304h)。ここで、条件「SPave≧Th」を満たす場合(YES)、対象の行に対する埋め込み方法の種類を特定する変数Uを“1”に設定する(S304i)。一方、SPave<Thであると判定された場合、埋め込み方法の種類を特定する変数Uを“2”に設定する(S304j)。その後、文書の終わりであるか否かを判断し(S304k)、否の場合には、次の行を選択し、上記処理を行う。
【0042】
抽出方法分別部も同様に行単位で文字間隔の平均値SPaveを求め、SPaveと設定された文字間隔閾値Thと比較することで抽出方法を設定する。
【0043】
<透かし埋め込み部>
変形例では、第1の実施形態の透かし埋め込み部の処理を示す図5のステップS305a、S305cおよびS305dが異なる。S305aは第1の実施形態では3文字を選択するが、変形例では1行を選択する。そして、S305cおよびS305dでは、行の先頭から連続する3文字を順次選択し、第1の実施形態で説明した文字間隔を操作した埋め込みまたは文字幅を操作した埋め込みを行う。
【0044】
透かし抽出部も同様に1行を選択し、抽出方法分別部で設定した抽出方法に基づいて透かしの抽出を行う。なお、変形例では行毎に埋め込み方法を設定したが、段落やページ単位で埋め込み方法を設定しても良い。なお、変形例では第1の実施形態と同様に連続する3文字で1ビットを埋め込む方法を用いたが、行全体の文字間隔または文字幅をひとつのまとまりで変化させて透かしを埋め込んでも良い。
【0045】
[第2の実施形態]
上記第1の実施形態では、電子文書を画像化した文書画像に埋め込みを行う。よって、電子文書ではデータとして存在していた文字コード情報が消失してしまう。つまり、透かし埋め込み後に再度編集をおこなうには、OCRなどを用いて文字コードを復元する操作をしなければならず効率が悪い。そこで、非画像である電子文書に直接埋め込み処理を行う例を以下に説明する。電子文書のフォーマットとしては、文字間隔および文字幅の微小的な操作を記述可能なページ記述言語が望ましい。例えば、PostScript(Adobe Systems社の商標)が該当する。ただし、透かしの埋め込みおよび抽出両方が実現可能ならば、電子文書のフォーマットについて問わないことはいうまでもない。
【0046】
<透かし埋め込み方法>
第1の実施形態に対する第2の実施形態の構成概念上の違いは、図2の入力部201に埋め込み対象である電子文書を画像化せずに直接入力する点と、出力部207から出力されるのが、透かし埋め込み文書画像208ではなく、透かし埋め込み電子文書である。以下、透かしの埋め込み方法の具体的な実現方法について述べる。第2の実施形態における透かし埋め込み装置の動作手順を以下に説明する。
【0047】
まず、入力部201は、文書画像200ではなく、電子文書を入力する。次いで、文書解析部202は、電子文書の各フォント情報の抽出を行う。フォント情報は、各フォント形式で定義された情報であり、例えば、TrueTypeフォントでは図12のように示される。図12より、各文字の領域があり、LSB(Left Side Bearing)やRSB(Right Side Bearing)などが文字の余白を形成していることが分かる。ここで、第1の実施形態と同じく、文字列として3文字を1組と考える。第1番目の文字乃至第3番目の文字が存在するので、それぞれのLSB、RSBをLSB1、LSB2、LSB3、並びに、RSB1、RSB2、RSB3と表す。文書解析部202は、これらLSB、RSBを抽出する。そして、文書解析部202は、抽出したLSB、RSBに基づき、着目文字列の文字間隔A,Bを次式に従って算出する。
A=β×(RSB1+LSB2)
B=β×(RSB2+LSB3)
ここで、βは画像解像度およびフォントの大きさで決める係数である。
【0048】
この結果、第1の実施形態と同様、文字間隔A,Bが得られたので、「A+B」と閾値Thとを比較することで、埋め込み方法を分別する。
【0049】
この後は、第1の実施形態と同様である。ただし、本第2の実施形態の場合、文字間隔を調整する場合には、電子文書中の文字に配置に関する記述を変更することになる。また、文字幅を変更する場合には、文字の位置とフォントサイズの変更することで対処する。例えば、図13に示すようなPostScript(Adobe Systems社の商標)では対象文字から次の文字までの距離(pixel値)が記述されている場合がある。よって、文字間隔を変更する場合は、それらの値を画像解像度やフォントの大きさに考慮して変更すれば良い。そして、記述を変更した透かし埋め込み電子文書が出力することになる。
【0050】
<透かし抽出方法>
第1の実施形態に対する本第2の実施形態の違いは、入力部902が入力する対象が、透かし埋め込み文書画像ではな、くページ記述言語で記述された電子文書である点である。また、文書解析部903は、電子文書を解析し、各文字のLSB、RSBを抽出し、3文字の文字列単位に文字間隔A、Bを算出する点である。また、文字の幅は、指摘された書体名で、指定されたサイズの文字パターンを生成し、その上で外接矩形を求めることで文字幅を決定すればよい。
【0051】
[第3の実施形態]
上記第2の実施形態では、電子文書のフォント情報を用いて、透かしの埋め込み方法を分別した。しかしながら、フォント情報から分別に用いる文字間隔を獲得するのは、ヒンティングなどのレンダリングする際に用いられる技術をフォントの種類毎に対応しなければならず、効率の点で改善の余地がある。そこで、電子文書から文書画像を生成し、文書画像の文字間隔や文字幅などを参照することで埋め込み方法の分別および埋め込みを行う例を第3の実施形態として説明する。
【0052】
<透かし埋め込み方法>
図14は、第3の実施形態における透かし埋め込み装置のブロック構成図である。第2の実施形態との構成概念上の違いは、まず入力部1401の出力先として、透かし埋め込み部1407と文書画像生成部1402に分かれていることである。透かし埋め込み部1407に直接出力されるのは、電子文書そのものである。また、文書画像生成部1402は、入力部1401が入力した電子文書1400に基づき、文書画像データを生成する。生成された文書画像データは、第1の実施形態と同様にして、文書解析部1403において、各文字画像の外接矩形のサイズと位置を取得することで、文字間隔を算出する。そして、埋め込み方法分別部1404は、連続する3文字の文字間隔A,Bに基づき埋め込み方法を分別する。透かし埋め込み部1407は、透かし入力部1406を介して入力した透かし1405を、ビット単位に、電子文書に埋め込む。この際に、文書画像から得られた埋め込み方法および文字間隔、文字幅をもとに、第2の実施形態と同様に電子文書に対して透かし埋め込みを行う。最後に、出力部1408は、透かし埋め込み電子文書1409を出力する。以下、本第3の実施形態における透かし埋め込み装置の動作手順を説明する。
【0053】
まず、入力部1401は、電子文書1400を入力する(S301)。そして、文書画像生成部1402は、入力した電子文書1400を解釈することで、文書画像を生成する。文書解析部1403は、生成された文書画像を解析することで、各文字画像の外接矩形のサイズと位置を求め(S302)、連続する3つの文字の文字間A,Bを算出する(S303)。埋め込み方法分別部1404は、算出したA,Bの合計値と、閾値Thとを比較することで、連続する3文字を単位とする埋め込み方法を分別し、その分別結果を値Uとして透かし埋め込み部1407に出力する(S304)。透かし埋め込み部1407は、透かし入力部1406が入力した透かし1405の1ビットの値を、埋め込み方法分別部1404からの埋め込み方法の種類に従い、入力部1401からの電子文書で示される3文字分の記述を変更することで、埋め込む。そして、この埋め込み処理を、少なくとも透かし1405の全ビットが埋め込まれるまで実行する。出力部1408は、第2の実施形態と同様に、記述を変更した電子文書1409を出力することになる。
【0054】
[第4の実施形態]
上記第1乃至第3の実施形態を、パーソナルコンピュータなどの汎用情報処理装置に実行させるコンピュータプログラムで実現しても良い。図15はこの場合の情報処理装置の構成図である。同図に示す様に、I/O1511、1513を介して、スキャナ1512やプリンタ1510が接続される。また、I/O1507や1509を介して、キーボードやマウスなどの操作入力デバイス1506、ハードディスクなどの外部記憶装置1508が選択されている。本装置への電源がONになると、CPU1501はROM1503に格納されたブートプログラムに従って、外部記憶装置1508からOS(オペレーティングシステム)をRAM1502にロードし、そのロードしたOSを実行する。この結果、操作入力デバイス1506による操作入力や、ディスプレイ制御装置1504を介してのディスプレイ1505の表示が行え、ユーザインタフェースを構築することになる。
【0055】
そして、ユーザが、透かしの埋め込みのためのアプリケーションプログラム、或いは、透かしの抽出のためのアプリケーションプログラムの起動を指示したとする。このとき、CPU1501は外部記憶装置1508から該当するアプリケーションプログラムをRAM1502にロードし、実行する。この結果、本装置が透かし埋め込み装置や抽出装置として機能することになる。このとき、アプリケーションプログラムにおける関数やサブルーチンが図2などの各処理部として代替されることになる。また、例えば、透かし埋め込み装置として機能する場合、埋め込み対象の電子文書を外部装置1508から読込むのか、スキャナ1512から読込むのか、インタフェース1515を介してネットワーク上の他の装置から受信するかを選択することになる。そして、埋め込み後の電子文書を、プリンタ1510により印刷物として出力するのか、外部記憶装置1508に埋め込み後の電子文書ファイルとして保存するのか、また、ネットワーク上に出力するのかを選択することになる。
【0056】
なお、上記各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0057】
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
電子文書に情報を埋め込む情報処理装置であって、
入力された電子文書を解析し、各文字の配置情報を抽出する文書解析手段と、
該文書解析手段で得られた各文字の配置情報に従って、連続する複数の文字で構成される文字群を選択し、前記文字群の文字間隔を算出し、算出した文字間隔に基づき、着目している文字群が文字間隔を調整して埋め込むのに適した第1のタイプであるか、前記第1のタイプ以外の第2のタイプのいずれに属するのかを判定する判定手段と、
該判定手段の判定結果が、前記着目している文字群が前記第1のタイプであることを示す場合、前記着目している文字群における隣り合う2つの文字間隔A,Bの関係が埋め込むべき1ビットの値に応じた関係となるべく、前記文字間隔A,Bで挟まれる文字の位置を調整する第1の埋め込み手段と、
該判定手段の判定結果が、前記着目している文字群が前記第2のタイプであることを示す場合、前記着目している文字群における隣り合う2つの文字のそれぞれの文字幅の関係が埋め込むべき1ビットの値に応じた関係となるべく、一方の文字幅を所定長だけ増加すると共に他方の文字幅を前記所定長だけ減少させる第2の埋め込み手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記文字群は連続する3文字であることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記判定手段は、
前記隣り合う2つの文字間隔A,Bと、予め設定された閾値Thとの関係が、
条件:A+B≧Th
を満たすとき、前記着目している文字群は前記第1のタイプであると判定し、
前記条件を満たさない場合、前記着目している文字群は前記第2のタイプであると判定する
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記電子文書は、イメージスキャナで読取った原稿画像データであり、
前記文書解析手段は、前記原稿画像データの各文字の外接矩形の位置とサイズを抽出する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記電子文書は、ページ記述言語で記述された電子文書であり、
前記文書解析手段は、前記ページ記述言語の記述に従って、着目している文字群における文字間隔を算出する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項6】
前記電子文書は、ページ記述言語で記述された電子文書であり、
前記文書解析手段は、前記電子文書のページ記述言語に従って、ビットマップイメージデータを生成し、生成されたビットマップイメージデータの各文字の外接矩形の位置とサイズを抽出し、
前記第1の埋め込み手段、及び、前記第2の埋め込み手段は、ページ記述言語の文字幅、配置位置に関する記述を変更する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項7】
前記判定手段は、前回の判定における文字群の最後の文字を、次の判定における文字群の先頭文字として選択することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
情報が埋め込まれた電子文書から、前記情報を抽出する情報処理装置であって、
入力された電子文書を解析し、各文字の配置情報を抽出する文書解析手段と、
該文書解析手段で得られた各文字の配置情報に従って、連続する複数の文字で構成される文字群を選択し、前記文字群の文字間隔を算出し、算出した文字間隔に基づき、着目している文字群が文字間隔を調整して埋め込むのに適した第1のタイプであるか、前記第1のタイプ以外の第2のタイプのいずれに属するのかを判定する判定手段と、
該判定手段の判定結果が、前記着目している文字群が前記第1のタイプであることを示す場合、前記着目している文字群における隣り合う2つの文字間隔A,Bに基づき、埋め込まれた1ビットの値を抽出する第1の抽出手段と、
該判定手段の判定結果が、前記着目している文字群が前記第2のタイプであることを示す場合、前記着目している文字群における隣り合う2つの文字のそれぞれの文字幅の関係に基づき、埋め込まれた1ビットの値を抽出する第2の抽出手段と
を備えることを特徴とする情報処理装置。
【請求項9】
電子文書に情報を埋め込む情報処理装置の制御方法であって、
文書解析手段が、入力された電子文書を解析し、各文字の配置情報を抽出する文書解析工程と、
判定手段が、該文書解析工程で得られた各文字の配置情報に従って、連続する複数の文字で構成される文字群を選択し、前記文字群の文字間隔を算出し、算出した文字間隔に基づき、着目している文字群が文字間隔を調整して埋め込むのに適した第1のタイプであるか、前記第1のタイプ以外の第2のタイプのいずれに属するのかを判定する判定工程と、
該判定工程の判定結果が、前記着目している文字群が前記第1のタイプであることを示す場合、第1の埋め込み手段が、前記着目している文字群における隣り合う2つの文字間隔A,Bの関係が埋め込むべき1ビットの値に応じた関係となるべく、前記文字間隔A,Bで挟まれる文字の位置を調整する第1の埋め込み工程と、
該判定工程の判定結果が、前記着目している文字群が前記第2のタイプであることを示す場合、第2の埋め込み手段が、前記着目している文字群における隣り合う2つの文字のそれぞれの文字幅の関係が埋め込むべき1ビットの値に応じた関係となるべく、一方の文字幅を所定長だけ増加すると共に他方の文字幅を前記所定長だけ減少させる第2の埋め込み工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項10】
情報が埋め込まれた電子文書から、前記情報を抽出する情報処理装置の制御方法であって、
文書解析手段が、入力された電子文書を解析し、各文字の配置情報を抽出する文書解析工程と、
判定手段が、該文書解析工程で得られた各文字の配置情報に従って、連続する複数の文字で構成される文字群を選択し、前記文字群の文字間隔を算出し、算出した文字間隔に基づき、着目している文字群が文字間隔を調整して埋め込むのに適した第1のタイプであるか、前記第1のタイプ以外の第2のタイプのいずれに属するのかを判定する判定工程と、
該判定工程の判定結果が、前記着目している文字群が前記第1のタイプであることを示す場合、第1の抽出手段が、前記着目している文字群における隣り合う2つの文字間隔A,Bに基づき、埋め込まれた1ビットの値を抽出する第1の抽出工程と、
該判定工程の判定結果が、前記着目している文字群が前記第2のタイプであることを示す場合、第2の抽出手段が、前記着目している文字群における隣り合う2つの文字のそれぞれの文字幅の関係に基づき、埋め込まれた1ビットの値を抽出する第2の抽出工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項11】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項1乃至8のいずれか1項に記載の情報処理装置として機能させることを特徴とするコンピュータプログラム。
【請求項12】
請求項11に記載のコンピュータプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate