(57)【要約】【課題】  文書もしくは文書画像中のテキスト部に電子透かし情報がコンテンツの内容に無関係に繰り返し埋め込まれていたため、電子透かしが埋め込まれた元文書の一部を切り取られた場合、切り取られた部分に電子透かし情報が含まれていなければ抽出できず、抽出の可能性が低かった。【解決手段】  文書や文書画像のテキスト部の文字列を取得し（Ｓ３０１）、電子透かしとして埋め込む情報を入力もしくはロードし（Ｓ３０２）、埋め込む電子透かし情報が文書中で何行に渡るかを算出し（Ｓ３０３）、文書中から重要と思われる語を検索し（Ｓ３０４）、重要語を元に電子透かしを埋め込む位置を決定し（Ｓ３０５）、電子透かし情報を生成し（Ｓ３０６）、電子透かし情報をテキストに埋め込み（Ｓ３０７）、紙や記録媒体などの媒体に電子透かしを埋め込んだ文書を出力する（Ｓ３０８）。【選択図】  図３
2010010835.tif 000002
【特許請求の範囲】
【請求項１】
文書に情報を電子透かしとして埋めこむ画像処理装置であって、
前記文書に含まれる語句を検索する検索手段と、
前記検索手段の結果に基づいて、前記電子透かしを埋め込むための前記語句を含む文字列を決定する決定手段と、
前記決定手段によって決定された前記文書中の文字列に前記電子透かしを埋めこむ埋め込み手段とを有する画像処理装置。
【請求項２】
文書に情報を電子透かしとして埋めこむ画像処理装置であって、
前記文書に含まれる語句を検索する検索手段と、
前記検索手段の結果に基づいて、前記語句を含む文字列から前記電子透かしを埋め込む行を決定する決定手段と、
前記決定手段によって決定された前記文書中の行に該当する文字列に前記電子透かしを埋めこむ埋め込み手段とを有する画像処理装置。
【請求項３】
前記決定手段は、前記検索手段によって検索された語句の前記文書中の行の個数に基づいて前記電子透かしを埋めこむ行を決定し、更に前記行の前後の行を含めた３行に前記電子透かしを埋め込むことを決定する決定手段であることを特徴とした請求項１または２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記電子透かしとして埋めこむ情報が前記行よりも長くなる場合は、前記検索手段によって検索された語句の前記文書の行ごとの個数に基づいて前記電子透かしを埋めこむ第１の行と第２の行を決定し、前記第１の行の前の行から前記第２の行の後の行まで前記電子透かしを埋め込むことを決定する決定手段であることを特徴とした請求項３に記載の画像処理装置。
【請求項５】
文書に情報を電子透かしとして埋めこむ画像処理装置であって、
前記文書に含まれる語句を検索する検索手段と、
前記検索手段の結果に基づいて、前記語句を含む文字列から前記電子透かしを埋め込む文を決定する決定手段と、
前記決定手段によって決定された前記文書中の文に該当する文字列に前記電子透かしを埋めこむ埋め込み手段とを有する画像処理装置。
【請求項６】
前記決定手段は、前記検索手段によって検索された語句の前記文書中の行ごとの個数に基づいて前記電子透かしを埋めこむ行を決定し、前記行に句点が含まれていない場合は前記行の前後の行から句点を検索することによって前記電子透かしを埋め込む文の先頭と最後を決定することを特徴とした請求項１または２または５に記載の画像処理装置。
【請求項７】
前記決定手段は、前記検索手段によって検索された語句の前記文書中の行ごとの個数に基づいて前記電子透かしを埋めこむ行を決定し、前記埋めこむ行に句点が含まれている場合、複数の文に渡って前記電子透かしを埋め込むことが許される場合は、前記検索手段によって決定された前記行の前後の行から句点を検索することによって、前記電子透かしを埋め込む前記複数の文を決定することを特徴とした請求項１または５に記載の画像処理装置。
【請求項８】
前記決定手段は、前記検索手段によって検索された語句の前記文書中の行ごとの個数に基づいて前記電子透かしを埋めこむ行を決定し、前記埋めこむ行に句点が含まれている場合、複数の文に渡って前記電子透かしを埋め込むことが許されない場合は、前記検索手段によって検索された語句の個数に基づいて前記電子透かしを埋めこむ文を決定し、前記行の前もしくは後の行から句点を検索することによって、前記電子透かしを埋め込む前記複数の文を決定することを特徴とした請求項１または５に記載の画像処理装置。
【請求項９】
前記決定手段は、前記電子透かしとして埋めこむ情報が前記文よりも長くなる場合は、前記検索手段によって検索された語句の行ごとの個数に基づいて前記電子透かしを埋めこむ第１の行と第２の行を決定し、前記第１の行に含まれる文の先頭から前記第２の行に含まれる文の終わりまでに前記電子透かしを埋めこむ位置と決定することを特徴とした請求項５乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記決定手段は、前記検索手段によって検索された前記語句の個数を前記文書中の行ごとに算出することによって前記電子透かしを埋め込む位置を決定する決定手段であることを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記決定手段は、前記検索手段によって検索された複数の前記語句にレベルを付し、前記文書中の各々の行について前記語句のレベルと前記語句の個数の積の総和によって前記電子透かしを埋め込む位置を決定する決定手段であることを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記決定手段は、前記文書中の各々の行について前記検索手段によって検索された語句によって埋めこむ順位付けをすることによって前記電子透かしを埋め込む位置を決定する決定手段であることを特徴とする請求項１乃至１１の何れか１項に記載の画像処理装置。
【請求項１３】
文書に情報を電子透かしとして埋めこむ画像処理方法であって、
前記文書に含まれる語句を検索する検索工程と、
前記検索工程の結果に基づいて、前記電子透かしを埋め込むための前記検索された語句を含む文字列を決定する決定工程と、
前記決定工程によって決定された前記文書中の文字列に前記電子透かしを埋めこむ埋め込み工程とを有する画像処理方法。
【請求項１４】
請求項１３に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項１５】
請求項１３に記載の画像処理方法をコンピュータに実行させるためのプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は文書に対する電子透かしの埋め込みおよび抽出における画像処理技術に関するものである。
【背景技術】
【０００２】
テキストに追跡情報や複写制御等の情報を持たせるため、テキストに電子透かしによって透かし情報を埋め込む手法が提案されている。
【０００３】
そのうちの一つに文字間の空白長を操作する方法がある。この方法を図１５と図１６を用いて説明する。
【０００４】
図１５は、透かし情報の埋め込み前のテキストの一部を示す図であり、図１６は図１５のテキストの一部に対して透かし情報を埋め込んだ後のテキストの一部を示す図である。図１５及び図１６では、文字が５文字あり、文字間の空白が４つある。埋め込み前の文字外接矩形群の一部を図１５に示すような配置とする。同図において、１６０１乃至１６０５が文字外接矩形である。図１５における文字外接矩形間の距離（空白長）は文字外接矩形１６０１と１６０２間がＰ０、１６０２と１６０３間がＳ０、１６０３と１６０４間がＰ１、１６０４と１６０５間がＳ１であるとする。透かし情報が埋め込まれた後は、図１６に示される各文字間の空白長Ｐ０、Ｓ０、Ｐ１、Ｓ１はそれぞれＰ０’、Ｓ０’、Ｐ１’、Ｓ１’となる。
【０００５】
文字間の空白長を操作する方法では１ビットに対して２つの空白長を割り当てることから、４つの空白によって２ビットの情報を埋め込むことが可能である。例えば、Ｐ＞Ｓが「１」を表し、Ｐ＜Ｓが「０」を表すとする。そこで、図１５においてＰ０とＳ０の間の「子」という文字を左に、Ｐ１とＳ１の間の「か」という文字を右にシフトした場合、埋め込み後のテキストの一部である図１６では、Ｐ０’＜Ｓ０’、Ｐ１’＜Ｓ１となり、００というビット列が埋め込まれたことになる。
【０００６】
また、別の方法として、文字を回転して傾斜を変化させる方法が挙げられる。このを、図１７を用いて説明する。
【０００７】
図１７は、文字を回転して傾斜を変化させる方法による電子透かしによって透かし情報が埋め込まれた場合の文字を説明するための図である。時計回りに回転された場合に「１」が埋め込まれ（図１７における１７０１）、反時計回りに回転された場合に「０」が埋め込まれるものとする（図１７における１７０２）。尚、埋め込みの対象となる文字は、連続する文字であっても、数文字間隔であっても、あらかじめ定められた位置の文字であってもよい。図１７では、「透」の文字が時計回りに回転され、また「し」の字が反時計回りに回転されているので、「１０」という情報が埋め込まれていることになる。
【０００８】
また、テキスト用電子透かしにおいて、悪意のある攻撃者が追跡情報や複写制御情報の削除を目的として切り取りを行う場合がある。こうした攻撃に対し、繰り返して埋め込むことなどにより切り取り耐性を向上している。（特許文献１参照）
【特許文献１】特開２００４−２４７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術ではテキストもしくは文書画像中のテキスト部に電子透かし情報がコンテンツの内容に無関係に繰り返し埋め込まれていた。そのため、電子透かしが埋め込まれた元テキストの一部を切り取られた場合、切り取られた部分に電子透かし情報が含まれていなければ抽出できず、抽出の可能性が低かった。
【００１０】
本発明は以上の問題に鑑みてなされたものであり、攻撃者の切り取りに対して情報抽出の可能性を上げることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、
文書に情報を電子透かしとして埋めこむ画像処理装置であって、
前記文書に含まれる語句を検索する検索手段と、
前記検索手段の結果に基づいて、前記電子透かしを埋め込む位置を決定する決定手段と、
前記決定手段によって決定された位置から前記検索された語句を含む文字列に電子透かしを埋めこむ埋め込み手段とを有する画像処理装置を提供する。
【００１２】
また、文書に情報を電子透かしとして埋めこむ画像処理装置であって、
前記文書に含まれる語句を検索する検索手段と、
前記検索手段の結果に基づいて、前記電子透かしを埋め込む位置を決定する決定手段と、
前記決定手段によって決定された文の先頭から文の最後まで前記検索された語句を含む文字列に前記電子透かしを埋めこむ埋め込み手段とを有する画像処理装置を提供する。
【００１３】
また、文書に情報を電子透かしとして埋めこむ画像処理装置であって、
前記文書に含まれる語句を検索する検索手段と、
前記検索手段の結果に基づいて、前記電子透かしを埋め込む位置を決定する決定手段と、
前記決定手段によって決定された行の先頭の文字から前記決定手段によって決定された行の最後の文字まで前記検索された語句を含む文字列に前記電子透かしを埋めこむ埋め込み手段とを有する画像処理装置を提供する。
【発明の効果】
【００１４】
テキストの切り取りに対応できる電子透かし技術として、攻撃者の切り取りに対して情報抽出の可能性を上げることができる。
【発明を実施するための最良の形態】
【００１５】
本実施形態は、電子透かし情報であるビット列を文書もしくは文書画像中のテキスト領域各行の文字列に埋め込む技術に関するものである。以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１６】
図１４は、上記埋め込み処理を実行するコンピュータの基本構成図である。例えばこのコンピュータにおいて全ての機能を実行する場合、各機能構成をプログラムにより表現し、このコンピュータに読み込ませることで、本発明の機能を実現することが出来る。テキストに電子透かし情報の埋め込み、抽出の夫々を行うコンピュータは同じ装置であっても良いし、別個のコンピュータであっても良い。なおテキストとは文書の文字列のことである。
【００１７】
図１４において、コンピュータ１５０１は一般に普及しているパーソナルコンピュータであり、スキャナ等の画像読込装置１５１３から読み取られた画像を入力し、編集や保管を行うことが可能である。また、画像読込装置１５１３で得られた画像を出力装置１５１５からプリントさせることができる。なお、ユーザからの各種指示等は例えばマウスやキーボードといった入力装置１５１４からの入力操作により行われる。また、コンピュータ１５０１の内部ではバス１５０７により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。
【００１８】
図１４において、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１５０２はコンピュータ１５０１内部の各ブロックの動作を制御し、あるいは内部に記憶されたプログラムを実行することができる。
【００１９】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５０３は、主にＭＰＵ１５０２によって行われる処理のための制御用ワークエリア１５０３ａや、一時的にプログラムや処理対象の画像データやテキストデータを格納しておく格納エリア１５０３ｂから成る。
【００２０】
ＨＤＤ（ハードディスクドライブ）１５０４は、ＲＡＭ１５０３や外部記憶装置１５１１などに転送されるプログラムや画像データをあらかじめ格納したり、処理後の画像データを保存したりすることのできる装置である。
【００２１】
ＣＤドライブ１５０９は、外部記憶媒体の一つであるＣＤ（ＣＤ−Ｒ／ＣＤ−ＲＷ）に記憶されたデータを読み込んだり、あるいは書き出したりすることができる装置である。ＤＶＤドライブ１５１０は、外部記憶媒体の一つであるＤＶＤ（ＤＶＤ−Ｒ／ＤＶＤ−ＲＷ）に記憶されたデータを読み込んだり、あるいは書き出したりすることができる装置である。
【００２２】
また、外部記憶装置１５１１は、外部記憶媒体である外付けＨＤＤや大容量フラッシュメモリに記憶されたデータを読み込んだり、あるいは書き出したりすることができる装置である。
【００２３】
なお、ＣＤやＤＶＤ、ＨＤＤ、大容量フラッシュメモリ等の外部記憶媒体に画像編集用のプログラム、あるいはプリンタドライバが記憶されている場合には、ＨＤＤ１５０４上にインストールし、必要に応じてＲＡＭ１５０３に転送されるようになっている。
【００２４】
モニタ１５０６は情報の抽出処理結果や処理過程を表示することのできる表示装置である。さらにビデオコントローラ１５０８は、表示データをモニタ１５０６に送信するための装置である。
【００２５】
インタフェース（Ｉ／Ｆ）１５１２は、本実施例では画像読込装置１５１３や入力装置１５１４、出力装置１５１５といった周辺機器と接続されるＵＳＢインタフェースであり、コンピュータと周辺機器のデータ伝送を行なっている。またＩ／Ｆ１５１２は別ポートであってもよい。
【００２６】
画像読込装置１５１３は、例えばスキャナのように原稿やフィルム等を読み取って画像データを生成する機器や、光学文字読取装置（ＯＣＲ）のように原稿から文字を読み取って画像データもしくは文字データを生成する機器である。また、画像読込装置で読み込まれた画像データもしくは文字データは、Ｉ／Ｆ１５１２を通じてコンピュータ１５０１に入力される。
【００２７】
入力装置１５１４は、例えばマウスやキーボードであり、入力装置１５１４の入力指示はＩ／Ｆ１５１２を通じてコンピュータ１５０１に入力される。
【００２８】
出力装置１５１５は、例えば画像データを印刷するプリンタであり、Ｉ／Ｆ１５１２と接続されることによってコンピュータ１５０１は印刷する画像データをプリンタ１５１６に送信することができる。
【００２９】
＜第１の実施例＞
本実施形態に係る電子透かし情報の埋め込み処理について説明する。図１は、本実施形態に係る電子透かし情報の埋め込み処理を行う装置、もしくは本実施形態に係る電子透かし情報の埋め込み処理をこの装置に実行させるためのプログラムの機能構成を示す図である。図１に示した各部はハードウェアにより構成し、電子透かしの埋め込み装置として実現させても良いし、各部の機能をコンピュータに実行させるためのプログラムとして実現させても良い。
【００３０】
後者の場合、このプログラムをＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体からＣＤドライブ１５０９、ＤＶＤドライブ１５１０などのドライブ装置によってＲＡＭ１５０３にロードする。もしくは、外部ＨＤＤや大容量フラッシュメモリのような外部記憶装置１５１１や、コンピュータ１５０１内部のＨＤＤ１５０４からＲＡＭ１５０３にロードする。そしてＭＰＵ１５０２がこのプログラムを実行することで、このコンピュータ１５０１は図１に示した機能構成、すなわち本実施形態に係る電子透かし情報の埋め込みを実現する。
【００３１】
テキスト部取得部１０１は、電子透かしを埋め込むデータをコンピュータ１５０１に取り込む。テキスト部取得部１０１の例としては画像読込装置１５１３が挙げられる。他にＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体のテキストデータをロードするＣＤドライブ１５０９、ＤＶＤドライブ１５１０などのドライブ装置や、外部ＨＤＤや大容量フラッシュメモリのような外部記憶装置１５１１が挙げられる。
【００３２】
透かし情報入力部１０２は、電子透かし情報をコンピュータ１５０１中のＲＡＭ１５０３に入力する。そのため透かし情報入力部１０２の例としてはキーボードやマウスから電子透かし情報を直接入力する場合は入力装置１５１４ああてはまる。また、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体から電子透かしデータを取り込む場合にはＣＤドライブ１５０９、ＤＶＤドライブ１５１０が挙げられる。その他にもＲＯＭ１５０５や、外部ＨＤＤや大容量フラッシュメモリのような外部記憶装置１５１１や、コンピュータ内に記憶されている場合はＨＤＤ１５０４が挙げられる。また、透かし情報入力部１０２は、ＲＡＭ１５０３に入力された電子透かしデータ１５０３ｃから、ＭＰＵ１５０２によってビット長データ１５０３ｃを算出し、ＲＡＭ１５０３の格納エリア１５０３ｂに保持する。
【００３３】
繰り返し単位行数算出部１０３は、ＭＰＵ１５０２によって電子透かしデータ１５０３ｃとビット長データ１５０３ｃから電子透かしを文書中に埋め込む際に必要となる行数を算出する。そして算出した行数は、ＲＡＭ１５０３の格納エリア１５０３ｂに格納しても、ＨＤＤ１５０４などの記憶媒体に保管しても良い。
【００３４】
重要語検索部１０４はＭＰＵ１５０２によって重要語とする語句が文書中にあるかを検索する。そのため入力装置１５１４（例えばマウスやキーボード）から語句を入力操作されＲＡＭ１５０３に格納されたＨＤＤ１５０４、ＲＯＭ１５０５に格納された重要語リストから語句をロードしてＲＡＭ１５０３の格納エリア１５０３ｂに格納しても良い。その後格納された語句が文書中にあるか検索を行い、検索結果をＲＡＭ１５０３の格納エリア１５０３ｂに格納しても良い。
【００３５】
埋め込み位置決定部１０５において、ＭＰＵ１５０２は重要語検索部１０４によって検索された重要語を用いて、文書中のどの部分に優先的に電子透かしを埋め込む位置を決定する。
【００３６】
透かし情報生成部１０６において、ＭＰＵ１５０２は各行の文字数から対応するそれぞれの行の埋め込み可能容量を求め、埋め込みデータを格納する配列を生成し、すべてを初期化する。またこの配列をＨＤＤ１５０４やＲＡＭ１５０３の格納エリア１５０３ｂに格納しても良い。
【００３７】
透かし情報埋め込み部１０７は、ＭＰＵ１５０２がＲＡＭ１５０３の格納エリア１５０３ｂに格納されているテキストデータに対して、電子透かし情報を電子透かしとして埋め込む。
【００３８】
テキスト出力部１０８は、また電子透かしを埋め込んだテキストを紙媒体にプリントして出力する際には、例えばプリンタや複写機である出力装置１５１５である。またデータとして出力する際には、ＲＡＭ１５０３やＨＤＤ１５０４、外部記憶装置１５１１に記憶させても、ＣＤドライブ１５０９、ＤＶＤドライブ１５１０などのドライブ装置を通じてＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体へ記憶させても良い。
【００３９】
図３はテキストに対する電子透かし情報の埋め込み処理のフローチャートである。図１に示した各部によって行われるテキストに対する電子透かし情報の埋め込み処理について、図３を参照して説明する。なお、図３に示したフローチャートに従ったプログラムはＲＡＭ１５０３にロードされ、ＭＰＵ１５０２がこのプログラムを実行することで、コンピュータ１５０１は、本実施形態に係る電子透かし情報の埋め込み処理を行うことができる。
【００４０】
ステップＳ３０１において、コンピュータ１５０１はテキスト部取得部１０１より電子透かしを埋め込む対象のテキストをデータとして取得する。入力された画像文書やページ記述言語、テキスト、電子データを解釈して文字の位置および文字コードを取得する。取得したデータは一旦ＨＤＤ１５０４に保存しても良いし、ＲＡＭ１５０３の格納エリア１５０３ｂに格納しても良い。
【００４１】
ステップＳ３０２において、透かし情報入力部１０２によって電子透かし情報が入力される。電子透かし情報とは電子透かしとして埋め込もうとする情報であって、複数のビットからなるビット列である。これは例えば機器固有のＩＤや、埋め込み者が任意で決定出来るビット列である。
【００４２】
電子透かし情報の入力はユーザが例えばキーボードやマウスのような入力装置１５１４を用いて手動で入力しても良い。もしくは、ＲＯＭ１５０５やＨＤＤ１５０４、ＣＤドライブ１５０９、ＤＶＤドライブ１５１０、外部記憶装置１５１１からＲＡＭ１５０３にロードしても良い。ロードされた電子透かし情報はＲＡＭ１５０３の格納エリア１５０３ｂに格納される。（図１４の１５０３ｃ）
【００４３】
ステップＳ３０２において透かし情報入力部１０２はまた、電子透かし情報のビット長を求める。これは、行によっては電子透かし情報を繰り返し埋め込めるものもあるので、抽出したビット列中で先頭からどこまでが電子透かし情報であるのかを把握するためのものである。求めたビット長は図１４の１５０３ｄのようにＲＡＭ１５０３に格納しても良いし、そのまま後に述べる繰り返し単位行数を求めるために使用しても良い。
【００４４】
ステップＳ３０３において、繰り返し単位行数算出部１０３はＲＡＭ１５０３の格納エリア１５０３ｂに格納された電子透かし情報に対してワークエリア１５０３ａにおいて電子透かしの埋め込み単位である繰り返し単位行数の算出を行う。
【００４５】
電子透かしは通常、切り取りなどの透かしを無効化する攻撃を回避するため、透かし情報を文書に繰り返して分散させて埋め込むことが多い。そのため、分散した透かし情報を検索するために、透かし情報の開始位置を示すためにヘッダーを設ける。すなわち、ヘッダー、透かし情報の組で埋め込む最小単位を構成し、この埋め込み単位を繰り返す。
【００４６】
繰り返し単位行数Ｍは透かし情報を埋め込む際に必要となる行数であり、ヘッダーのビット長をＨ、入力された透かし情報のビット長をＬとすると、埋め込み単位のビット長はＨ＋Ｌとなる。通常、この埋め込み単位は１行に収まらないことが多い。その場合、複数行にまたがってヘッダーと透かし情報を埋め込むことになる。
【００４７】
ＭＰＵ１５０２はまず、ステップＳ３０１で取得した文字部分の各文字の位置情報や文字コードから各行の文字数を算出し、１行当たりの平均文字数Ｎを算出する。次に、１行当たりに埋め込むことが可能な透かしの情報量を表す１行平均埋め込み可能容量Ｃを算出する。
【００４８】
次に、１行平均埋め込み可能容量を求める。文字の間隔に電子透かしを埋め込む場合、２つの文字間隔を１組として電子透かしを埋め込むため、Ｃ＝（Ｎ−１）／２（小数点以下切り捨て）が１行平均埋め込み可能容量となる。文字の回転によって電子透かしを埋め込む場合、Ｎそのものが１行平均埋め込み可能容量となる。したがってＣ＝Ｎである。
【００４９】
以上より、繰り返し単位行数Ｍは、Ｍ＝（Ｌ＋Ｈ）／Ｃ（小数点切り上げ）となる。なお、Ｌ＋Ｈ＜Ｃの場合はＭ＝１となる。ＭＰＵ１５０２はＲＡＭ１５０３のワークエリア１５０３ａにて繰り返し単位行数Ｍを算出した後に、繰り返し単位行数Ｍの値はＲＡＭ１５０３の格納エリア１５０３ｂに格納する。
【００５０】
ステップＳ３０４において、重要語検索部１０４は埋め込み位置決定のためにステップＳ３０５で重要部を決定するための準備として、重要語の検索を行う。重要語とは、電子透かしを埋め込むユーザが、文書中で重要だと思われる語句やキーワードとする。また重要部とは、その重要語を含む文または行もしくは周囲の文または行のこととする。重要語は複数でも構わないし、複数の重要語に対して重要さを示すレベルを付加しても構わない。
【００５１】
本実施例における重要語の検索と埋め込み位置の決定を図１０と図１１を使用して説明する。図１０と図１１は文書中に重要語が存在するときの概念図であり、順に重要語の検索と埋め込み位置の決定の手順を示す図である。また、ステップＳ３０４とステップＳ３０５の詳細を図９のステップＳ９０１からステップＳ９０７に示す。
【００５２】
先ず、ステップＳ９０１（ステップＳ３０４と同じ）において、重要語の検索の際には先ず、重要語とする語句が文書中にあるかを検索する。重要語は入力装置１５１４（例えばマウスやキーボード）から語句を入力操作することにより決定されても良いし、ＲＡＭ１５０３やＨＤＤ１５０４、ＲＯＭ１５０５に格納された重要語リストから決定されても良い。また、重要語として複数の語句を入力する場合、重要語自身にレベルを付加することも可能である。
【００５３】
図１０はステップＳ９０１とステップＳ９０２についての概念図である。行１００１から行１０１２は文章中の１行であり、重要語１０５１から重要語１０５４は文章中にある重要語と検索された語句であるとする。
【００５４】
この場合、行１００１においては重要語が０語あるのに対し、行１００２においては重要語１０５１が１つあるため、行１００２に重要語は１語ある。また、行１００２から行１００６までは重要語が０語であるのに対し、行１００７においては重要語１０５２と重要語１０５３の２つあるため、行１００７に重要語は合計２語ある。行１００８も重要語１０５４があるため、重要語が１語ある。そして行１００９から行１０１２は重要語が０語である。
【００５５】
ステップＳ３０５において、埋め込み位置決定部１０５は文書中のどの位置に電子透かしを埋め込むかを決定する。ステップＳ３０５を図９のステップＳ９０２からステップＳ９０７に分けて示す。
【００５６】
ステップＳ９０２において、文書中の行または文ごとに重要語を計数する。文書中にある重要語の数もしくはレベル付けされた重要語のレベルの総和などによって重要部の重要度を決定する。以下、本実施例では重要部は文書中の行単位であるとする。
【００５７】
図１０の例では、行１００２において重要語数は１、行１００７において重要語数は２、行１００８において重要語数は１となり、行１００１と行１００３から行１００６、行１００９から行１０１２においては、重要語数は０となる。
【００５８】
次に、行同士でグルーピングを行い、重要部を決定する。重要部の決定方法であるが、先ず行１００１から行１０１２の中で重要度の最も高い１行を選び、重要度が高い順に行を選択する。本実施例では重要部の最小単位は重要行の前後各１行を必ず含むようにし、３行を重要部の最小単位とする。図１０では、行１００７において重要語数が２なので最も重要度が高く、行１００２と行１００７において重要語数が１なので次いで重要度が高い。
【００５９】
次に選択した行についてグルーピングを行なう。図１１は図１０をグルーピングした例である。グルーピングした後の重要部は重要行の前後各１行を必ず含むようにし、３行を重要部の最小単位とする。これは、重要語を含む行より前の行で文が開始している場合や後ろの行で終了している場合、重要語を含む行のみに着目すると、本来の重要部をカバーできない。グルーピングの目的は、攻撃者が情報漏洩目的で文書の一部を切り取るとき、重要語を含む一文ないしは意味がわかる量の文字数を切り取るであろうという予測による。
【００６０】
行１００７は重要語を１語含み、しかも周囲の行１００８に重要語を１語含むので、重要部として行１００７の前後１行である行１００６と行１００８の３行でグルーピングを行う。このグルーピングで作成された重要部が重要部１１８２である。行１００２は重要語を１つ含み、しかも周囲の行１００１と行１００３に重要語を含まないので、重要部としてグルーピングしなくても良いし、行１００７のように前後の行とグルーピングしても良い。
【００６１】
なお本実施例では、一般に１文は３行以下であることが多いために重要部は３行と設定したが、それに限られず、紙の大きさや文書のレイアウト（段組数）に応じてこの行数を増減させてよい。
【００６２】
ステップＳ９０４では、文書中の第ｎ行目を中心とする重要部の累積重要度をＡｎとし、文書中の第ｎ行の重要語数をその行の重要度Ｉｎとする。そして、前後各１行にも重要部が存在する場合は、累積重要度Ａｎ＝Ｉｎ−１＋Ｉｎ＋Ｉｎ＋１をこの重要部の累積重要度とする。また、重要部の開始位置である第ｎ−１行目と終了位置である第ｎ＋１行目を重要部範囲データ（ｎ−１，ｎ＋１）を累積重要度ＡｎとともにＲＡＭ１５０３もしくはＨＤＤ１５０４に記録される。
【００６３】
図１１の例では、行１００６（ｎ＝６）の重要語数は０、行１００７（ｎ＝７）の重要語数は２、行１００８（ｎ＝８）において重要語数は１であるため、それぞれ重要度は、Ｉ６＝０，Ｉ７＝２，Ｉ８＝１である。そのため、行１００７（第７行目）を中心とする重要部１１８２の累積重要度Ａ７は、Ａ７＝Ｉ６＋Ｉ７＋Ｉ８＝０＋２＋１＝３となり、重要部範囲データは（６，８）となる。
【００６４】
同様に、行１００２（第２行目）を中心とする重要部１１８１の累積重要度Ａ２は、Ａ２＝Ｉ１＋Ｉ２＋Ｉ３＝０＋１＋０＝１となり、重要部範囲データは（１，３）となる。以上の結果、各重要部の累積重要度と重要部範囲データが生成され、このデータによって、各重要部の累積重要度および重要部の範囲が記録される。
【００６５】
ステップＳ９０５においては、重要部の順位付けを行う。図１１の例では、重要部１１８１の累積重要度Ａ２は１、重要部１１８２の累積重要度Ａ７は３であるので、重要度順位としては、重要部１１８２が１位、重要部１１８１が２位となる。
【００６６】
ステップＳ９０６においては、ステップＳ３０３において求めた繰り返し単位行数が重要部の行数がよりも大きいかを判定する。小さい場合は重要部に全ての透かし情報を埋め込むことが可能なので、ステップＳ３０５へ進む。
【００６７】
ステップＳ９０７において、繰り返し単位行数が重要部の行数がよりも大きい場合、重要部同士で連結を行う。この連結は、繰り返し単位行数Ｍを超えるまで連結する必要がある。重要部として２箇所が検索された場合、重要行として２行が決定されたとする。この場合、第１の行を中心とした重要部の累積重要度Ａｉと、第２の行を中心とした重要部の累積重要度Ａｊを加算することによって累積重要度Ａｍ求める。また、連結後の重要部範囲データを、連結前の重要部範囲データの集合の和として求める。
【００６８】
図１２の例では、行１００２（第２行目）を中心とする重要部１１８１の累積重要度Ａ２＝１であり、重要部範囲データは（１，３）である。また、行１００７（第７行目）を中心とする重要部１１８２の累積重要度Ａ７＝３であり、重要部範囲データは（６，８）である。この連結によって、重要部１１８１と重要部１１８２が連結した、累積重要度は４、重要部範囲データは（１，８）の連結重要部１２９１が生成される。
【００６９】
図３に戻って、ステップＳ３０６において、透かし情報生成部１０６はＲＡＭ１５０３の格納エリア１５０３ｂに格納されているテキストデータに対してワークエリア１５０３ａにおいて各行の文字数Ｎｉから、対応するそれぞれの行の埋め込み可能容量Ｃｉを求める。ここで、ｉ＝１，２，…ｎでｉは文書の行数である。
【００７０】
文字の間隔を利用する場合はＣｉ＝（Ｎｉ−１）／２、文字の回転によって電子透かしを埋め込む場合はＣｉ＝Ｎｉで求める。この結果にもとづいて、埋め込みデータを格納する配列Ｂ１［Ｃ１］，Ｂ２［Ｃ２］，…，Ｂｎ［Ｃｎ］を生成し、すべてを−１で初期化する。
【００７１】
ステップＳ３０７において、透かし情報埋め込み部１０７はＲＡＭ１５０３の格納エリア１５０３ｂに格納されているテキストデータに対してワークエリア１５０３ａにおいて透かし情報を埋めこむ。透かし情報を埋め込む規則としては様々なものが考えられるが、ここでは例として２つの埋め込み規則について説明する。しかし本実施形態は、この２つの埋め込み規則に限定されるものではない。
【００７２】
・埋め込み規則１
文字間の空白長を操作する方法で埋めこむ場合を埋め込み規則１とする。本実施例の埋め込み規則１では、２つの空白長Ｐｋ、Ｓｋ（０＜ｋ＜ｎ、ｎは埋め込み可能なビット数）を、埋め込みビット列の各ビットｂｋの値が０か１かに応じて変化させることで、埋め込みビット列、即ち複数もしくは一部の電子透かし情報を埋め込む。
【００７３】
たとえば、全文字間隔が等しい場合、以下の式に従って文字間隔を変更する。埋め込みビット列のビットｂｋの値が０の場合、２つの空白長Ｐｋ、Ｓｋを以下の式に従ってＰｋ’、Ｓｋ’に変化させる。
Ｐｋ’＝（１−ρ）（Ｐｋ＋Ｓｋ）／２
Ｓｋ’＝（１＋ρ）（Ｐｋ＋Ｓｋ）／２
一方、埋め込みビット列のビットｂｋの値が１の場合、２つの空白長Ｐｋ、Ｓｋを以下の式に従ってＰｋ’、Ｓｋ’に変化させる。
Ｐｋ’＝（１＋ρ）（Ｐｋ＋Ｓｋ）／２
Ｓｋ’＝（１−ρ）（Ｐｋ＋Ｓｋ）／２
その結果、当該ビットが「１」の場合、Ｐｋ’＞Ｓｋ’となるように変更され、当該ビットが「０」の場合、Ｐｋ’＜Ｓｋ’となる。
【００７４】
図５は文字間の空白長を操作する方法で埋めこむ場合のフローチャートであり、以下、図５を用いて詳細に説明する。
【００７５】
まず埋め込みデータが埋め込まれる先頭の文字が選択される（ステップＳ３０７ａ）。次に、埋め込みデータの先頭ビットが選ばれる（ステップＳ３０７ｂ）。例えば、０１０１１１・・・という情報が埋め込みデータとして入力されていた場合、先頭の文字は「０」である。次に、埋め込まれる埋め込みデータのビットが「１」であるか否かが判断される（ステップＳ３０７ｃ）。
【００７６】
その結果、当該ビットが「１」の場合（Ｙｅｓ）、Ｐｋ’＞Ｓｋ’となるように変更する（ステップＳ３０７ｄ）。もし変更しなくてもＰｋ’＞Ｓｋ’が成り立つならば移動をする必要はない。次に、当該ビットが「０」の場合（Ｎｏ）、Ｐｋ’＜Ｓｋ’となるように変更する（ステップＳ３０７ｅ）。もし変更しなくてもＰ＜Ｓが成り立つならば移動をする必要はない。そして、当該ビットが末尾か否かが判断される（ステップＳ３０７ｆ）。
【００７７】
その結果、最終ビットの場合（Ｙｅｓ）、埋め込みデータのビットの埋め込み処理を終了する。一方、まだ最終ビットではない場合（Ｎｏ）、ステップＳ３０７ａに戻って埋め込みを続行する。
【００７８】
図１６は、埋め込み後の外接矩形群の一部を示す図である。このようにして、ｋ＝ｎ−１となるまで、埋め込みビット列の上位ｎビットを１行内に埋め込む。また埋め込み規則１では、２つの空白長を用いて１ビットの情報を埋め込むので、図１６に例示するようなテキストに対しては、各行に埋め込み可能なビット数は、文字の間隔を利用する場合であるのでＣｉ＝（Ｎｉ−１）／２で求められる。
【００７９】
なお、夫々の空白長を変化させるためには様々な方法があり、例えば、外接矩形を移動させて空白長を変化させても良いし、外接矩形のサイズを変化させて空白長を変化させても良い。なお、外接矩形の位置やサイズの変化に応じて、外接矩形内の文字もそれに伴って変化するものとする。すなわち、外接矩形の位置が変化すれば、その外接矩形内の文字の位置もそれに伴って変化する。また、外接矩形のサイズが変化すれば、その外接矩形内の文字のサイズもそれに伴って変化する。
【００８０】
電子透かし情報を埋めこまれたテキストは、ＲＡＭ１５０３の格納エリア１５０３ｂやＨＤＤ１５０４に格納される。
【００８１】
・埋め込み規則２
文字を傾けて埋め込む場合、埋め込みビット列の各ビット値が０か１かに応じて、外接矩形を右回り、左回りの何れかに微少に回転させる。これを埋め込み規則２とする。
【００８２】
埋め込み規則２の場合、１つの外接矩形を用いて１ビットの情報を埋め込む。なお、外接矩形の回転に応じて、外接矩形内の文字もそれに伴って回転するものとする。そしてこのようにして、１行を構成する各外接矩形に対して埋め込みビット列の各ビットの値を埋め込む。なお、埋め込むビット値と回転方向は夫々、上述の説明と逆でも良い。
【００８３】
図７は、ＭＰＵ１５０２が電子透かし情報を埋めこむ際の、埋め込み手順のフローチャートである。ステップＳ３０７において、まず情報を埋め込む文字矩形が選択される（ステップＳ３０７ａ−２）。次に、埋め込みデータの先頭文字が選択される（ステップＳ３０７ｂ−２）。次に、埋め込みデータのビットが「１」であるか否かが判断される（ステップＳ３０７ｃ−２）。
【００８４】
その結果、当該ビットが「１」の場合（Ｙｅｓ）、文字の傾斜を時計回りに変化させる（ステップＳ３０７ｄ−２）。一方、当該ビットが「０」の場合（Ｎｏ）、文字の傾斜を反時計周りに変化させる（ステップＳ３０７ｅ−２）。そして、当該埋め込みデータビットが埋め込みデータ配列の末尾か否かが判断される（ステップＳ３０７ｆ−２）。
【００８５】
その結果、まだ埋め込みデータの末尾ではない場合（Ｎｏ）、ステップＳ３０７ａ−２に戻って次の文字矩形を選択する。一方、埋め込みデータの末尾の場合（Ｙｅｓ）、埋め込みデータのビットの埋め込み処理を終了する。電子透かし情報を埋めこまれたテキストは、ＲＡＭ１５０３の格納エリア１５０３ｂやＨＤＤ１５０４に格納される。
【００８６】
なお、本実施例は実施例１と実施例２の２つの埋め込み規則に限定されるものではないし、それらを単独で使用しなくてはならないわけでもない。即ち、埋め込み規則１を使用した後に埋め込み規則２を使用するように、多種類の埋め込み規則を利用しても良い。
【００８７】
ステップＳ３０８において、ＭＰＵ１５０２が透かし情報埋め込み部１０７で変更された電子透かし情報を埋めこまれたテキストを図１のテキスト出力部１０８より出力される。それによって、電子透かしが埋め込まれた文書や文書画像もしくはデータファイルが生成される。
【００８８】
出力はプリンタや複写機等といった出力装置１５１５によって紙文書としてプリント出力しても良いし、ＲＡＭ１５０３やＨＤＤ１５０４に記憶させても良い。また、出力データをＣＤドライブ１５０９、ＤＶＤドライブ１５１０などのドライブ装置を通じてＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体へ記憶させても良い。もしくは、外付けＨＤＤや大容量フラッシュメモリのような外部記憶装置１５１１へ記憶させても良い。またモニタ１５０６に表示しても良い。
【００８９】
本実施例の動作手順は、図１４に示す画像処理装置のうち、例えばマウスやキーボードといった入力装置１５１４からの入力指示によってＲＡＭ１５０３にロードしたプログラムを、ＭＰＵ１５０２などを用いて実行することによって実現できる。このとき、モニタ１５０６により実行状況や、その結果をモニタすることも可能である。
【００９０】
なお本実施形態では、スキャンやプリントを除く処理をコンピュータによって行っているが、スキャナやプリンタ内部の専用のハードウェア回路を用いて、コンピュータで行う処理を代行しても良い。また、例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等の複数の機器から構成されるシステムに適用しても良い。
【００９１】
＜抽出技術＞
図２は電子透かしを抽出する際の機能ブロック図である。テキスト取得部２０１は、電子透かし情報埋め込み済みテキストもしくはそのデータをコンピュータ１５０１に取り込む。テキスト取得部２０１の例としては、テキストから画像データもしくは文字データを読み込む画像読込装置１５１３が挙げられる。
【００９２】
その他にも、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記憶されたテキストデータもしくは文書データをロードするＣＤドライブ１５０９、ＤＶＤドライブ１５１０などのドライブ装置や、外部ＨＤＤのような外部記憶装置１５１１が挙げられる。また、ロードされたテキストデータをＲＡＭ１５０３に格納する。
【００９３】
文字外接矩形抽出部２０２は、ＲＡＭ１５０３に格納するテキストデータに対してＭＰＵ１５０２は各文字の外接矩形（文字外接矩形）を求める。ここで外接矩形とは、文字に外接する矩形であり、文字認識技術においては、実際に文字認識を行う領域を指す情報となる。テキスト部取得部１０１が生成する文字の位置データおよび文字コードデータのうち、文字の位置データを文字矩形情報として用いる。
【００９４】
各文字の外接矩形は、例えば以下のようにして求めることができる。先ず、抽出されたテキスト領域内において、各画素値を垂直座標軸に対して射影し、空白部分（黒色である文字のない部分）を探索して行を判別し、行分割を行う。その後、行毎に水平座標軸方向に対して射影を取り、空白部分を探索して文字単位に分割する。以上の操作により、各文字の外接矩形を求めることができる。
【００９５】
ビット列抽出部２０３は、ＲＡＭ１５０３に格納するテキストデータに対してＭＰＵ１５０２がテキストに埋められた電子透かし情報となるビット列を抽出する。この際、電子透かしをビット列に変換する規則は、本実施例では文字間隔を利用する方法と、文字の傾きを利用する方法を説明している。
【００９６】
本実施例で用いる電子透かしの規則性はＲＯＭ１５０５やＨＤＤ１５０４に格納されており、それをＲＡＭ１５０３にロードすることによってＭＰＵ１５０２はテキストに埋められたビット列を抽出する。
【００９７】
電子透かし情報抽出部２０４は、ＲＡＭ１５０３に格納するテキストデータに対してビット列抽出部２０３より抽出したビット列から、ＭＰＵ１５０２がヘッダー情報を検索し、電子透かし情報を取り出す。出力はプリンタや複写機等によって紙文書としてプリント出力しても良いし、ＲＡＭ１５０３やＨＤＤ１５０４に記憶させても良い。
【００９８】
また、出力データをＣＤドライブ１５０９、ＤＶＤドライブ１５１０などのドライブ装置を通じてＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体へ記憶させても良い。もしくは、外付けＨＤＤや大容量フラッシュメモリのような外部記憶装置１５１１へ記憶させても良い。
【００９９】
図４のフローチャートを用いて、本実施例での抽出技術を説明する。なお、電子透かし情報の埋め込み処理を行う装置と抽出を行う装置とは同一装置内で実現させても良いし、別個の装置で実現させても良い。本実施形態では同一装置内で実現させるが、夫々別個の装置で実現させる場合には、埋め込みを行った装置で生成された電子透かし情報埋め込み済みテキストと電子透かし情報のビット長を表すデータを、電子透かし情報の抽出を行う装置に対して入力する必要がある。
【０１００】
先ず、テキスト取得部２０１はＭＰＵ１５０２が電子透かし情報を抽出する際に、テキスト部取得部１０１が行った処理と同様にして、入力された電子透かし情報埋め込み済み文書もしくは文書画像に対して、テキスト領域の抽出を行う（ステップＳ４０１）。
【０１０１】
次に文字外接矩形抽出部２０２は電子透かし情報埋め込み済みテキストにおいてテキスト取得部２０１によって抽出されたテキスト領域から、各文字の外接矩形（文字外接矩形）を求める（ステップＳ４０２）。
【０１０２】
ここで、テキスト取得部２０１に入力される文書画像は電子透かし情報の埋め込み対象となるものであり、印刷物を画像読込装置１５１３などから入力し、それをビットマップ化したものでも良い。入力の形態は例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記録媒体を用いて抽出装置に入力しても良いし、インターネットなどのネットワークを介して入力しても良いし、一般の文書エディタを利用して作成された電子データでも良い。
【０１０３】
また、ＨＤＤ１５０４やＣＤドライブ１５０９、ＤＶＤドライブ１５１０、外部記憶装置１５１１からＲＡＭ１５０３にロードされる種々の電子データを画像処理ソフトなどによって変換し、ビットマップ化したものでも良い。また、このテキストの形態は上記に限定されるものではない。
【０１０４】
例として、埋め込み規則で用いた実施例を使用し、２つの抽出規則について説明する。抽出規則としては様々なものが考えられるが、この２つの抽出規則に限定されるものではない。
【０１０５】
１．文字の間隔操作による抽出
図６は、ＭＰＵ１５０２が文字間隔を利用した電子透かし情報を抽出する際の、ビット列抽出部２０３の処理手順を記したフローチャートである。まず、抽出対象文字矩形が選択される（ステップＳ４０２ａ）。次に、文字矩形パラメータの比較を行う（ステップＳ４０２ｂ）。もしＰｋ＞Ｓｋ、即ちＰｋの法が、文字間隔が大きければ抽出データを「１」と判断し（ステップＳ４０２ｃ）、Ｐｋ＜Ｓｋ、即ちＰｋの方が、文字間隔が小さければ抽出データを「０」と判断する（ステップＳ４０２ｄ）。つぎに、選択した文字矩形が最終文字矩形であれば（ステップＳ４０２ｅでＹｅｓ）、終了し、ＮｏであればステップステップＳ４０２ａに戻り処理を継続する。
【０１０６】
２．文字の傾き操作の抽出
図８は、ＭＰＵ１５０２が文字の傾きを利用した電子透かし情報を抽出する際の、ビット列抽出部２０３の処理手順を記したフローチャートである。まず、抽出対象文字矩形が選択される（ステップＳ４０２ａ−２）。次に、選択した文字矩形の重心を算出する（ステップＳ４０２ｂ−２）。次に、選択した文字矩形が時計回りに回転しているか判定する（ステップＳ４０２ｃ−２）。もし時計回りに回転していれば、抽出データを「１」として記憶する（ステップＳ４０２ｄ−２）。もし判時計回りに回転しているならば、抽出データを「０」として記憶する（ステップＳ４０２ｅ−２）。選択されている文字矩形について、電子透かしの抽出が完了したら、検証画像にまだ処理すべき文字矩形が残っていないかどうか判定する（ステップＳ４０２ｆ−２）。もしまだ残っている場合（ステップＳ４０２ｆ−２においてＮｏ）、ステップＳ４０２ａに戻る。文書の終わりに達している場合（ステップＳ４０２ｆ−２においてＹｅｓ）、抽出された「０」と「１」の値を抽出データとして終了する。
【０１０７】
ステップＳ４０４において、電子透かし情報抽出部２０４は、上記処理で得られた抽出データからヘッダー情報を検出し、電子透かし情報を取り出す。ヘッダー情報の検出は、抽出データと検出したいヘッダー情報との内積値を算出し、ピークが立つ位置をヘッダーの開始位置とする方法など、通常のパターンマッチングを用いればよい。なお、もし３個以上の透かし情報が得られた場合、多数決等によって最終的な電子透かし情報を決定すればよい。
【０１０８】
＜第２の実施例＞
第２の実施例は、実施例１で用いたハードウェア構成を用いて、ＲＡＭ１５０３に図３のステップＳ３０５の詳細な手順が図９フローチャートの代わりに図１３のフローチャートに変更したプログラムを用いる。これは、第１の実施例では図１１のように重要部の最小単位は重要行の前後各１行を必ず含め、３行を重要部の最小単位としたが、本実施例ではより精度を上げるために、文の検索を行った後に文単位で電子透かしを埋めこむ。
【０１０９】
図１３のステップＳ３０５ｂからステップＳ３０５ｈは本実施例での図３のフローチャートのステップＳ３０５に当たる。
【０１１０】
図１０をステップＳ３０４とステップＳ３０５ｂについての概念図として再び用いる。行１００１から行１０１２は文章中の１行であり、重要語１０５１から重要語１０５４は文章中にある重要語であるとする。
【０１１１】
この場合、行１００１においては重要語が０語あるのに対し、行１００２においては重要語１０５１が１つあるため、行１００２に重要語は１語ある。また、行１００２から行１００６までは重要語が０語であるのに対し、行１００７においては重要語１０５２と重要語１０５３の２つあるため、行１００７に重要語は合計２語ある。行１００８も重要語１０５４があるため、重要語が１語ある。そして行１００９から行１０１２は重要語が０語である。
【０１１２】
次にステップＳ９０２において、文書中の行または文ごとに重要語を計数する。文書中にある重要語の数もしくはレベル付けされた重要語のレベルの総和などによって重要部の重要度を決定する。以下、本実施例では重要部は文書中の行単位であるとする。
【０１１３】
図１０では、行１００２において重要語数は１、行１００７において重要語数は２、行１００８において重要語数は１となり、行１００１と行１００３から行１００６、行１００９から行１０１２においては、重要語数は０となる。
【０１１４】
実施例１では図１１のように、次に重要部をグルーピングした（ステップＳ９０２）。しかし本実施例では先ず重要度の最も高い１行を選び、重要度が高い順に文書中の行を順位付けする。そして最重要とされた１行を抜き出す（ステップＳ３０５ｂ）
【０１１５】
次に、ステップＳ３０５ｃにおいては、ステップＳ３０５ｂにて重要とされた行において句点の検索を行う。電子文書の作成の際には、句点の文字コードによって容易に句点が検索可能である。ステップＳ３０５ｂにて重要とされた行において、句点がある場合は１行中に複数の文が存在すると判断してステップＳ３０５ｄへ、句点が無い場合は行中に１文しか存在しないと判断してステップＳ３０５ｇへと進む。
【０１１６】
ステップＳ３０５ｄにおいては、電子透かし埋め込みが複数の文に渡って良いかを判断する。判断は埋め込み時にユーザからの指定によっても良いし、予め複数の文に渡って良いか決めていても良い。もし指定の場合は、その都度ユーザに指定させても良いし、埋めこむ前に一括で指定しても良い。
【０１１７】
複数の文に渡って埋め込んで良い場合は、ステップＳ３０５ｇへ、複数の文に渡って埋め込むことに不都合がある場合は、ステップＳ３０５ｅへと進む。
【０１１８】
ステップＳ３０５ｅにおいて、ステップＳ３０５ｄにおいて複数の文に渡って埋め込むことが不都合であるとされているので、埋めこむ１文を選択する必要がある。重要語が句点の前後どちらかにあるか判断するか、埋めこむ１文を指定する。判断方法は、重要部の多数決でも前後の行の重要度を考慮しても良い。
【０１１９】
ステップＳ３０５ｆにおいて、ステップＳ３０５ｅにおける判断に基づいて電子透かしを埋めこむ１文を決定する。決定した後にステップＳ３０５ｇへ進む。
【０１２０】
ステップＳ３０５ｇにおいて、ステップＳ３０５ｂにて抽出された重要行の前後の行において句点が存在するかを検索し、前後の行に句点が無い場合は更に前後の行を検索する。この際、ステップＳ３０５ｆを経由してきた場合は埋めこむ文に応じて前後どちらのみ検索する。
【０１２１】
ステップＳ３０５ｇにおける検索の際には、段落の最初や最後の場合を判断して前後のどちらかのみ検索しても良いし、特定の複数行に渡って検索しても良いし、全文について句点検索をしても良い。その後に重要文の前後の句点、即ち重要文の前の文が終わる句点と、重要文が終わる句点の位置を把握する。本実施例では１文として説明しているが、この重要文は１文である必要は無く、設定によってユーザが任意に設定可能である。
【０１２２】
ステップＳ３０５ｈにおいては、ステップＳ３０５ｇにて検索された句点を利用して埋めこむ文を決定する。ステップＳ３０５ｇにおいて句点は検索されているので、埋めこむ位置を決定する。
【０１２３】
１文に埋めこむ場合（ステップＳ３０５ｄを通過していない場合）、文の前後の句点が検索されているので、前の句点の１文字後の文字を文の先頭の文字とし、文の最後の句点の１文字前の文字が文の最後の文字であると決定することができる。
【０１２４】
２文以上に渡って埋めこむ場合は、例えば埋めこむ複数の文の中に句点が複数個検索されている。検索されている句点のうち文書中で最も前の句点の１文字後の文字を埋め込む文の先頭の文字とし、文書中で最も後の句点の１文字前を文の最後の文字であると決定することができる。
【０１２５】
なお、１文に埋めこむ場合においても２文以上に渡って埋めこむ場合においても、重要文よりも埋め込み情報が長い場合は、前後の文と連結して複数文に渡って埋め込んでも良い。
【０１２６】
なお、全文の句点を検索する場合は重要の前後の句点を検索することによって埋め込み位置を特定する。また、句点検索をした後に、実施例１のように電子透かしを埋めこむ単位を行単位にしても良い。即ち、重要文が始まる行の先頭の文字から重要文が終わる最後の文字まで電子透かしを埋め込むことも可能である。
【０１２７】
また、埋め込み位置の開始位置もしくは終了位置のどちらか一方を行単位、もう一方を文単位にしてもよい。例えば、埋め込み開始位置は重要文の先頭の文字からとして、埋め込み終了の文字を文の最後の文字ではなく、文の最後の文字がある行の最後の文字としても良い。
【０１２８】
＜その他の実施例＞
第１の実施例では重要語の数によって重要度を決定していたが、重要語自身の重要度も用いてランク付けを行ってもよい。先ず、重要語リスト上の各重要語に重要度Ｗｉ（ｉ＝１，２，…）をあわせて登録しておく。実施例１のステップＳ３０４の重要語検索処理の際に、行ごとに重要度を決定を、第ｎ行の重要語数と重要度Ｗｉにもとづいて第ｎ行の重要度Ｉｎ’を、Ｉｎ＝Ｗｉ＊（重要語の個数）と求め、ステップＳ３０４以下においてＩｎの代わりにＩｎ’を使用しても良い。
【０１２９】
また、登録した重要語が増えると重要部と判定される部分が増えるため、重要度に閾値を設け、ある程度重要部に埋め込んだらそれ以外は残りとして埋め込むという変形も可能である。その場合、閾値は行ごとの重要度（第１の実施例のＩｎ）や重要部の累積重要度Ａｎに設定すればよい。
【０１３０】
累積重要部に閾値を設けた場合、ステップＳ３０４とステップＳ３０５の処理で得られた重要部を、累積重要度Ａｉ（ｉ＝１，２，…，重要部の個数）の降順に整列する。その後に累積重要部が閾値以上の重要部のみに対して、ステップＳ３０４とステップＳ３０５の処理を行う。
【０１３１】
また、電子透かしの埋め込み強度を一定ではなく、重要度の高い部分には、埋め込み強度を強くして埋め込み、重要度の低い部分には埋め込み強度を弱くして埋め込むことも可能である。
【０１３２】
埋め込み強度とは、文字の間隔を操作する電子透かしの場合、文字矩形の移動量になる。また、文字の傾きを操作する電子透かしの場合、傾きの角度となる。本当に守りたい部分に強く埋め込んで切り取り耐性を向上し、それ以外はいたずらに画質を悪化させない効果が得られる。
【０１３３】
また、文書の画質を保つために本当に守りたい部分のみに埋め込むという工夫も可能である。その結果、処理も早くなり、画質を低下させない。例えば、重要度Ｗｉの下限を使用者が設定できるようにし、閾値以上の部分についてのみ埋めこめばよい。
【図面の簡単な説明】
【０１３４】
【図１】本実施形態の画像処理装置に必要な構成要素を示したブロック図である。
【図２】本実施形態の電子透かし抽出装置に必要な構成要素を示したブロック図である。
【図３】本実施形態の電子透かし埋め込み手順を示すフローチャートである。
【図４】本実施形態の電子透かし抽出手順を示すフローチャートである。
【図５】文字の間隔を利用した透かし情報埋め込み部１０７の動作手順を示すフローチャートである。
【図６】文字の間隔を利用したビット列抽出部２０３の動作手順を示すフローチャートである。
【図７】文字の傾きを利用した透かし情報埋め込み部１０７の動作手順を示すフローチャートである。
【図８】文字の傾きを利用したビット列抽出部２０３の動作手順を示すフローチャートである。
【図９】図３のステップＳ３０４とステップＳ３０５の詳細な動作手順を示すフローチャートである。
【図１０】本実施形態での重要語の検索の概念図である。
【図１１】本実施形態での重要部の決定の概念図である。
【図１２】本実施形態での連結重要部の決定の概念図である。
【図１３】句点検索を利用した電子透かし埋め込みのフローチャートである。
【図１４】本実施形態における２つの実施形態により透かし情報抽出装置の電気的構成を説明するための図である。
【図１５】従来例および本実施形態で使用する、文字の間隔を利用した電子透かし埋め込み方法を説明するための概要図である。電子透かし埋め込み前の状態を表す。
【図１６】従来例および本実施形態で使用する、文字の間隔を利用した電子透かし埋め込み方法を説明するための概要図である。電子透かし埋め込み後の状態を表す。
【図１７】従来例および本実施形態で使用する、文字の傾きを利用した電子透かし埋め込み方法を説明するための概要図である。
【図１】
2010010835.tif 000003
【図２】
2010010835.tif 000004
【図３】
2010010835.tif 000005
【図４】
2010010835.tif 000006
【図５】
2010010835.tif 000007
【図６】
2010010835.tif 000008
【図７】
2010010835.tif 000009
【図８】
2010010835.tif 000010
【図９】
2010010835.tif 000011
【図１０】
2010010835.tif 000012
【図１１】
2010010835.tif 000013
【図１２】
2010010835.tif 000014
【図１３】
2010010835.tif 000015
【図１４】
2010010835.tif 000016
【図１５】
2010010835.tif 000017
【図１６】
2010010835.tif 000018
【図１７】
2010010835.tif 000019