(57)【要約】【課題】埋め込まれたデータの正しさの検証と、埋め込まれたデータの識別とを行なうことが可能な画像処理装置を提供すること。【解決手段】データ分割部４２は、埋め込みデータ４６を複数のブロックに分割する。チェックサム算出部４３は、データ分割部４２によって分割された複数のブロックごとのデータのチェックサムを算出し、埋め込むデータ全体のチェックサムを算出する。そして、画像データ合成部４４は、ブロックごとのデータと、ブロックチェックサムと、全体チェックサムと、ブロックの識別番号とを画像データ４１に埋め込んで合成する。したがって、印刷物４５からこれらの情報を検出することによって、埋め込まれたデータの正しさの検証と、埋め込まれたデータの識別とを行なうことが可能となる。【選択図】図４
2008079278.tif 000002
【特許請求の範囲】
【請求項１】
原画像に埋め込みデータを埋め込む画像処理装置であって、
前記埋め込みデータを複数のブロックに分割する分割手段と、
前記分割手段によって分割されたブロックごとのデータから一方向性関数を用いて特定値を算出する算出手段と、
前記埋め込みデータ固有の識別情報を生成する生成手段と、
前記算出手段によって算出された特定値と、前記生成手段によって生成された識別情報と、前記各ブロックのデータとをブロックごとに前記原画像に埋め込む処理手段とを含む、画像処理装置。
【請求項２】
前記生成手段は、前記埋め込みデータ全体から一方向性関数を用いて算出された値を識別情報とする、請求項１記載の画像処理装置。
【請求項３】
前記処理手段は、さらに前記埋め込みデータの各ブロックに付与されたブロック識別番号を前記原画像に埋め込む、請求項１記載の画像処理装置。
【請求項４】
印刷された画像に埋め込まれた埋め込みデータを検出する画像処理装置であって、
印刷物から画像を読取る読取手段と、
前記読取手段によって読取られた画像から、前記埋め込みデータのブロックごとのデータと、該ブロックごとのデータから一方向性関数を用いて算出された特定値と、前記埋め込みデータ固有の識別情報とを検出する検出手段と、
前記検出手段によって検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、前記検出手段によって検出された識別情報に基づいてデータを識別する判定手段とを含む、画像処理装置。
【請求項５】
前記検出手段は、前記読取手段によって読取られた画像から、さらに各ブロックに付与されたブロック識別番号を検出し、
前記ブロック識別番号に基づいてブロックごとのデータから埋め込みデータ全体を再現する埋め込みデータ再現手段を備えた、請求項４記載の画像処理装置。
【請求項６】
前記識別情報は、前記埋め込みデータ全体から一方向性関数を用いて算出された値であって、
前記判定手段は、前記検出手段によって検出された識別情報と、埋め込みデータ全体とから当該データ全体の正しさを検証する、請求項４または５記載の画像処理装置。
【請求項７】
前記一方向性関数は、チェックサムである、請求項１，３，４および５のいずれかに記載の画像処理装置。
【請求項８】
前記一方向性関数は、ハッシュ関数である、請求項１，３，４および５のいずれかに記載の画像処理装置。
【請求項９】
前記一方向性関数は、データに対してビットブレンドを行なった後に加算する関数である、請求項１，３，４および５のいずれかに記載の画像処理装置。
【請求項１０】
前記一方向性関数は、データに対してシフト演算を行なった後に加算する関数である、請求項９記載の画像処理装置。
【請求項１１】
前記一方向性関数は、データを所定のビット長に区切ったあとに加算する関数である、請求項９記載の画像処理装置。
【請求項１２】
前記一方向性関数は、巡回冗長検査である、請求項１，３，４および５のいずれかに記載の画像処理装置。
【請求項１３】
原画像に埋め込みデータを埋め込む画像処理方法であって、
前記埋め込みデータを複数のブロックに分割するステップと、
前記分割されたブロックごとのデータから一方向性関数を用いて特定値を算出するステップと、
前記埋め込みデータ固有の識別情報を生成するステップと、
前記特定値および識別情報と、ブロックごとのデータとを前記原画像に埋め込むステップとを含む、画像処理方法。
【請求項１４】
印刷された画像に埋め込まれた埋め込みデータを検出する画像処理方法であって、
印刷物から画像を読取るステップと、
前記読取られた画像から、前記埋め込みデータのブロックごとのデータと、該ブロックごとのデータから一方向性関数を用いて算出された特定値と、前記埋め込みデータ固有の識別情報とを検出するステップと、
前記検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、前記検出された識別情報に基づいてデータを識別するステップとを含む、画像処理方法。
【請求項１５】
コンピュータに、原画像に埋め込みデータを埋め込ませるコンピュータ・プログラムであって、
前記埋め込みデータを複数のブロックに分割するステップと、
前記分割されたブロックごとのデータから一方向性関数を用いて特定値を算出するステップと、
前記埋め込みデータ固有の識別情報を生成するステップと、
前記特定値および識別情報と、ブロックごとのデータとを前記原画像に埋め込むステップとをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１６】
コンピュータに、印刷された画像に埋め込まれた埋め込みデータを検出させるコンピュータ・プログラムであって、
印刷物から画像を読取るステップと、
前記読取られた画像から、前記埋め込みデータのブロックごとのデータと、該ブロックごとのデータから一方向性関数を用いて算出された特定値と、前記埋め込みデータ固有の識別情報とを検出するステップと、
前記検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、前記検出された識別情報に基づいてデータを識別するステップとをコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原画像に埋め込みデータを埋め込む技術に関し、特に、埋め込まれた埋め込みデータの正しさの検証と、埋め込みデータの識別とを行なうことが可能な画像処理装置、画像処理方法およびそのコンピュータ・プログラムに関する。
【背景技術】
【０００２】
近年、原画像である画像データに電子透かしとして埋め込みデータを埋め込む技術が開発されている。これに関連する技術として、下記の特許文献１および２に開示された発明がある。
【０００３】
特許文献１に開示された画像処理装置においては、画像データが入力されると、所定の画素数毎にチェックサムが演算され、演算されたチェックサムが画像データに電子透かしとして埋め込まれ、記録媒体に記録される。記録媒体に記録された画像データが再生されるとき、埋め込まれているチェックサムと、再生される画像データから演算されたチェックサムが比較されることにより、修正が施されているか否かが判断される。
【０００４】
特許文献２に開示された透かし情報埋め込み方法においては、ドットパターンが少なくとも第１、第２、第３のドット（始点ドット、水平基準ドット、変調ドット）を含んで構成されており、第１、第２、第３のドットの相対的な位置関係によって定まる固有値に応じてドットパターンに値を設定する。固有値は、第３のドットを始点として第１のドットを終点とするベクトルと、第３のドットを始点として第２のドットを終点とするベクトルとの内積である。
【特許文献１】特開２００１−３５８９２６号公報
【特許文献２】特開２００４−１２８８４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
画像データに電子透かしとして埋め込みデータを埋め込んでプリントアウトし、そのプリントアウトをスキャナなどでスキャンして埋め込みデータを検出する場合を考える。複数枚のプリントアウト、たとえば２枚のプリントアウトを並べて一度にスキャンする場合、それぞれのプリントアウトに埋め込まれている複数種類の埋め込みデータをそれぞれ識別して、検出する必要がある。
【０００６】
しかしながら、上述した特許文献１は、埋め込まれているチェックサムと、再生される画像データから演算されるチェックサムとを比較することにより、修正が施されているか否かを判断するものであるため、埋め込まれているデータ（チェックサム）の検証をできるものではなく、複数枚のプリントアウトを並べてスキャンした場合には、それぞれのプリントアウトに埋め込まれた埋め込みデータを識別することはできない。
【０００７】
また、上述した特許文献２は、第１、第２、第３のドットの相対的な位置関係によって定まる固有値に応じてドットパターンに値を設定するものであるため、特許文献１と同様に、複数枚のプリントアウトを並べてスキャンした場合には、それぞれのプリントアウトに埋め込まれた埋め込みデータを識別することはできない。
【０００８】
本発明は、上記問題点を解決するためになされたものであり、その目的は、埋め込まれたデータの正しさの検証と、埋め込まれた埋め込みデータの識別とを行なうことが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明のある局面に従えば、原画像に埋め込みデータを埋め込む画像処理装置であって、埋め込みデータを複数のブロックに分割する分割手段と、分割手段によって分割されたブロックごとのデータから一方向性関数を用いて特定値を算出する算出手段と、埋め込みデータ固有の識別情報を生成する生成手段と、算出手段によって算出された特定値と、生成手段によって生成された識別情報と、各ブロックのデータとをブロックごとに原画像に埋め込む処理手段とを含む。
【００１０】
好ましくは、生成手段は、埋め込みデータ全体から一方向性関数を用いて算出された値を識別情報とする。
【００１１】
好ましくは、処理手段は、さらに埋め込みデータの各ブロックに付与されたブロック識別番号を原画像に埋め込む。
【００１２】
本発明の別の局面に従えば、印刷された画像に埋め込まれた埋め込みデータを検出する画像処理装置であって、印刷物から画像を読取る読取手段と、読取手段によって読取られた画像から、埋め込みデータのブロックごとのデータと、ブロックごとのデータから一方向性関数を用いて算出された特定値と、埋め込みデータ固有の識別情報とを検出する検出手段と、検出手段によって検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、検出手段によって検出された識別情報に基づいてデータを識別する判定手段とを含む。
【００１３】
好ましくは、検出手段は、読取手段によって読取られた画像から、さらに各ブロックに付与されたブロック識別番号を検出し、ブロック識別番号に基づいてブロックごとのデータから埋め込みデータ全体を再現する埋め込みデータ再現手段を備える。
【００１４】
好ましくは、識別情報は、埋め込みデータ全体から一方向性関数を用いて算出された値であって、判定手段は、検出手段によって検出された識別情報と、埋め込みデータ全体とから当該データ全体の正しさを検証する。
【００１５】
好ましくは、一方向性関数は、チェックサムである。
好ましくは、一方向性関数は、ハッシュ関数である。
【００１６】
好ましくは、一方向性関数は、データに対してビットブレンドを行なった後に加算する関数である。
【００１７】
さらに好ましくは、一方向性関数は、データに対してシフト演算を行なった後に加算する関数である。
【００１８】
さらに好ましくは、一方向性関数は、データを所定のビット長に区切ったあとに加算する関数である。
【００１９】
さらに好ましくは、一方向性関数は、巡回冗長検査である。
本発明のさらに別の局面に従えば、原画像に埋め込みデータを埋め込む画像処理方法であって、埋め込みデータを複数のブロックに分割するステップと、分割されたブロックごとのデータから一方向性関数を用いて特定値を算出するステップと、埋め込みデータ固有の識別情報を生成するステップと、特定値および識別情報と、ブロックごとのデータとを原画像に埋め込むステップとを含む。
【００２０】
本発明のさらに別の局面に従えば、印刷された画像に埋め込まれた埋め込みデータを検出する画像処理方法であって、印刷物から画像を読取るステップと、読取られた画像から、埋め込みデータのブロックごとのデータと、ブロックごとのデータから一方向性関数を用いて算出された特定値と、埋め込みデータ固有の識別情報とを検出するステップと、検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、検出された識別情報に基づいてデータを識別するステップとを含む。
【００２１】
本発明のさらに別の局面に従えば、コンピュータに、原画像に埋め込みデータを埋め込ませるコンピュータ・プログラムであって、埋め込みデータを複数のブロックに分割するステップと、分割されたブロックごとのデータから一方向性関数を用いて特定値を算出するステップと、埋め込みデータ固有の識別情報を生成するステップと、特定値および識別情報と、ブロックごとのデータとを原画像に埋め込むステップとをコンピュータに実行させる。
【００２２】
本発明のさらに別の局面に従えば、コンピュータに、印刷された画像に埋め込まれた埋め込みデータを検出させるコンピュータ・プログラムであって、印刷物から画像を読取るステップと、読取られた画像から、埋め込みデータのブロックごとのデータと、ブロックごとのデータから一方向性関数を用いて算出された特定値と、埋め込みデータ固有の識別情報とを検出するステップと、検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、検出された識別情報に基づいてデータを識別するステップとをコンピュータに実行させる。
【発明の効果】
【００２３】
本発明のある局面によれば、処理手段が、算出手段によって算出された特定値と、生成手段によって生成された識別情報と、各ブロックのデータとをブロックごとに原画像に埋め込むので、これらの情報を検出することによって、埋め込まれたデータの正しさの検証と、埋め込まれたデータの識別とを行なうことが可能となる。
【００２４】
また、生成手段が、埋め込みデータ全体から一方向性関数を用いて算出された値を識別情報とするので、埋め込まれたデータの正しさの検証と、埋め込まれたデータの識別とをさらに正確に行なうことが可能となる。
【００２５】
また、処理手段が、さらに埋め込みデータの各ブロックに付与されたブロック識別番号を原画像に埋め込むので、埋め込まれたデータの正しさの検証をさらに正確に行なうことが可能となる。
【００２６】
本発明の別の局面によれば、判定手段が、検出手段によって検出されたブロックごとのデータと特定値とに基づいてデータの正しさを検証し、検出手段によって検出された識別情報に基づいてデータを識別するので、埋め込まれたデータの正しさの検証と、埋め込まれたデータの識別とを同時に行なうことが可能となる。
【００２７】
また、判定手段が、読取手段によって読取られた画像から、さらに各ブロックに付与されたブロック識別番号を検出し、ブロック識別番号に基づいてブロックごとのデータから埋め込みデータ全体を再現する埋め込みデータ再現手段を備えるので、ブロックごとのデータの正しさの検証がさらに正確に行なえるようになる。
【００２８】
また、判定手段が、検出手段によって検出された識別情報と、埋め込みデータ全体とから当該データ全体の正しさを検証するので、ブロックごとのデータの正しさの検証だけでなく、データ全体の正しさの検証も行なうことが可能となる。
【００２９】
また、一方向性関数がチェックサムであるので、簡単な演算によってデータの正しさの検証と、データの識別とが行なえるようになる。
【００３０】
また、一方向性関数がハッシュ関数であるので、データの正しさの検証が正確に行なえるようになる。
【００３１】
また、一方向性関数がデータに対してビットブレンドを行なった後に加算する関数であるので、データの正しさの検証が正確に行なえるようになる。
【００３２】
また、一方向性関数がデータに対してシフト演算を行なった後に加算する関数であるので、簡単な演算によってデータの正しさの検証が正確に行なえるようになる。
【００３３】
また、一方向性関数がデータを所定のビット長に区切ったあとに加算する関数であるので、簡単な演算によってデータの正しさの検証が正確に行なえるようになる。
【００３４】
また、一方向性関数が巡回冗長検査であるので、簡単な演算によってデータの正しさの検証が正確に行なえるようになる。
【発明を実施するための最良の形態】
【００３５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態における画像処理装置のシステム構成の一例を示す図である。図１は、パーソナルコンピュータ（以下、ＰＣと呼ぶ。）を用いて画像処理装置を構成する場合を示しており、マウス１１と、キーボード１２と、モニタ１３と、外部記憶装置１４と、スキャナ１５と、ＰＣ１６と、プリンタ１９とを含む。
【００３６】
ＰＣ１６は、一般的なコンピュータのハードウェアと同様の構成を有しており、ＣＰＵ（Central Processing Unit）（図２参照）が記録媒体に格納された画像処理プログラム１７を実行することによって、後述する画像処理装置の機能が実現される。
【００３７】
マウス１１およびキーボード１２は、それぞれ入力デバイスとして用いられ、ユーザが画像処理プログラム１７の起動、画像処理プログラム１７の実行時における各種指示などを行なう際に用いられる。
【００３８】
モニタ１３は、スキャナ１５によって読取られた画像データなどを表示するのに用いられ、ユーザはモニタ１３に表示された内容を参照しながら、画像処理プログラム１７に指示を与えることによって画像処理が進められる。
【００３９】
外部記憶装置１４は、スキャナ１５によって読取られた画像データなどを記憶するのに用いられる。画像処理プログラム１７がこの外部記憶装置１４内のハードディスク等の記録媒体に記憶され、ＰＣ１６が外部記憶装置１４から内部のＲＡＭ（Random Access Memory）に画像処理プログラム１７をロードして実行するようにしてもよい。
【００４０】
スキャナ１５は、データが埋め込まれた画像データを読取り、読取った画像データをＰＣ１６に出力する。ＰＣ１６は、スキャナ１５から受けた画像データに対して後述する処理を行なうことによって、画像処理が行なわれる。
【００４１】
プリンタ１９は、ＰＣ１６から画像処理を施した画像データを受け取り、その画像データに応じた印刷物を作成する。
【００４２】
図２は、図１に示す画像処理装置をより機能的に説明するための図である。ＰＣ１６は、入出力インタフェース２４と、ＣＰＵ／メモリ２５と、記憶装置２６とを含む。また、記憶装置２６は、ＯＳ（Operating System）２７と、画像処理プログラム１７によって実現される画像処理部２８とを含む。画像処理プログラム１７はＯＳ２７上で動作し、画像処理部２８の機能を実現する。
【００４３】
画像処理部２８は、ＯＳ２７および入出力インタフェース２４を介してデータを入出力することによって、キーボード１２、マウス１１、モニタ１３、スキャナ１５およびプリンタ１９を制御する。画像処理部２８は、キーボード１２またはマウス１１によるユーザ指示２１を受け、スキャナ１５からのスキャン画像２３を受けて後述する画像処理を行ない、その結果、モニタ１３による画像データ表示２２やプリンタ１９による印刷物作成２９が実行される。
【００４４】
図３は、本発明の第１の実施の形態における画像処理装置のシステム構成の他の一例を示す図である。図３は、ＭＦＰ（Multi Function Peripheral）を用いて画像処理装置を構成する場合を示しており、操作パネル部３１と、スキャナ部３２と、プリンタ部３３と、ＭＦＰ本体３４とを含む。
【００４５】
ＭＦＰ本体３４は、画像処理回路３５などによって構成される。画像処理回路３５は、操作パネル部３１からのユーザの指示を受け、スキャナ部３２およびプリンタ部３３を制御しながら後述する画像処理を行なう。
【００４６】
図４は、図１または図３に示す画像処理装置の機能的構成（データ埋め込み部分）を示すブロック図である。この画像処理装置は、原画像である画像データ４１に埋め込む埋め込みデータ４６を複数のブロックに分割するデータ分割部４２と、各種チェックサムを算出するチェックサム算出部４３と、各ブロックのデータをドットで表現して画像データ４１の背景に合成する画像データ合成部４４とを含む。
【００４７】
画像データ合成部４４によって合成された画像データに基づいて印刷物４５が作成される。埋め込みデータ４６としては、たとえば、原画像が秘密情報であることからコピーを禁止する旨を示す情報、このコピー禁止を解除するためのパスワード、原画像を生成またはコピーした装置を示す情報、原画像をコピーした旨を電子メールにて通知するためのメールアドレス、等の各種の情報とすることができる。
【００４８】
図５は、図１または図３に示す画像処理装置の処理手順（データ埋め込み部分）を説明するためのフローチャートである。まず、データ分割部４２は、画像データ４１に埋め込む埋め込みデータ４６をブロックに分割する（Ｓ１１）。
【００４９】
図６は、埋め込みデータ４６の一例を示す図である。データ４６は、全体として９バイトで構成される。データ分割部４２は、９バイトのデータ４６を、３バイトずつ３つのブロックに分割する。ブロック１〜３の実データは、図６に示すとおりである。
【００５０】
次に、チェックサム算出部４３は、埋め込みデータ４６の全体チェックサムと、ブロックごとのチェックサム（以下、ブロックチェックサムと呼ぶ。）の２種類のチェックサムを算出し、実際に埋め込むビット値を算出する（Ｓ１２）。
【００５１】
図７は、画像データ４１の背景に実際に埋め込むデータのデータ構造の一例を示す図である。このデータ構造は、１２ビットの全体チェックサムと、８ビットのブロックチェックサムと、４ビットのブロック番号と、埋めたい３つの実データ（３バイト）とを含む。埋め込みデータを３つのブロックに分割した場合には、３つのブロックごとに図７に示す埋め込みデータが作成される。
【００５２】
図８は、全体チェックサムの算出方法を説明するための図である。図８に示すように、９バイトの埋め込みデータを合計し、その合計した値の下位１２ビットを全体チェックサムとする。なお、図８においては、９バイトのデータ、その合計および全体チェックサムを、２進数および１０進数で表記している。以下の図においても同様である。
【００５３】
図９は、ブロック１のブロックチェックサムの算出方法を説明するための図である。図９に示すように、３バイトの埋め込みデータ、全体チェックサムおよびブロック番号を合計し、その合計した値の下位８ビットをブロック１のブロックチェックサムとする。なお、ブロック２および３のブロックチェックサムの算出方法も同様である。
【００５４】
なお、ここでは、ブロックチェックサムの算出に際して、全体チェックサムおよびブロック番号を埋め込みデータに加えることにしたが、そのブロックの埋め込みデータのみでブロックチェックサムを算出してもよい。ブロックチェックサムに全体チェックサムおよびブロック番号を加えた場合には、それらのエラーも検出することができる。
【００５５】
図１０は、ブロック１の埋め込みデータを示す図である。ブロック１の埋め込みデータは、全体チェックサムと、ブロック１のブロックチェックサムと、ブロック番号と、３バイトの実データとを含む。なお、ブロック２および３の埋め込みデータも同様の構成を有している。
【００５６】
図１１は、データを埋め込むときのビットパターンを示す図である。図１１（ａ）は、ビット“０”のビットパターンを示しており、１６×１６画素のうち図１１（ａ）に示す位置に黒のドットを配置することにより、ビット“０”を表現する。
【００５７】
また、図１１（ｂ）は、ビット“１”のビットパターンを示しており、１６×１６画素のうち図１１（ｂ）に示す位置に黒のドットを配置することにより、ビット“１”を表現する。
【００５８】
また、図１１（ｃ）は、データの境目を示す特殊データのビットパターンを示しており、１６×１６画素のうち図１１（ｃ）に示す位置に黒のドットを配置することにより、特殊データを表現する。
【００５９】
図１２は、埋め込むデータの配置規則を説明するための図である。この配置規則は、図１１に示すビットパターンを７×７個集めたパターン構成となっており、左上に特殊データ（１ビット）のビットパターンが配置され、続いて全体チェックサム（１２ビット）のビットパターン、ブロックチェックサム（８ビット）のビットパターン、ブロック番号（４ビット）のビットパターン、および３バイトの実データ（それぞれ８ビット）のビットパターンが配置される。
【００６０】
図１３は、図１０に示すデータを図１２に示す配置規則に従って実際に埋め込んだところを示す図である。図１３に示すように、特殊データに続いて、全体チェックサムの値、ブロックチェックサムの値、ブロック番号の値、１バイト目の実データの値、２バイト目の実データの値、３バイト目の実データの値が埋め込まれている。
【００６１】
再び、図５に示すフローチャートの説明に戻る。最後に、画像データ合成部４４は、画像データの背景に埋め込みデータをドットパターンとして重ね合わせて合成する（Ｓ１３）。この合成された画像データに基づいて印刷物４５が作成される。
【００６２】
図１４は、画像データの背景として実際にプリントアウトするときの埋め込みデータを示す図である。図１４に示すように、図１３に示す１１２×１１２画素のデータがブロック１、ブロック２、ブロック３の順番に紙一面に繰返し配置され、実際にプリントアウトしようとする文字などの画像データと合成されて、プリントアウトされる。このドットパターンを、たとえば６００ｄｐｉで埋め込む場合、実際にはかなり小さなドットとなる。そのため、ユーザにはプリントアウトの背景にグレーの画像が追加されているように見える。
【００６３】
図１５は、画像データの背景にデータを埋め込んで印刷したときのプリントアウトの一例を示す図である。図１５に示すように、ユーザには画像データの背景にグレーの画像が合成して印刷されているように見える。
【００６４】
なお、以上の説明においては、データをドットパターンとして埋め込む場合について説明したが、データをブロックに分割して埋め込む方法であればよく、上述の埋め込み方法に限定されるものではない。
【００６５】
図１６は、図１または図３に示す画像処理装置の機能的構成（データ検出部分）を示すブロック図である。この画像処理装置は、印刷物４５をスキャンすることにより画像を読取る画像読取部５１と、読取られた画像に対してパターンマッチングを行なうことにより埋め込みデータを検出するパターンマッチング部５２と、パターンマッチング部５２によって検出されたデータが正しいか否かを判定する検出データ判定部５３と、埋め込まれたデータの正しい組合わせを検出する組合せ検出部５４と、検出されたデータを保存する検出データ保存部５５とを含む。
【００６６】
図１７は、図１または図３に示す画像処理装置の処理手順（データ検出部分）を説明するためのフローチャートである。まず、画像読取部５１は、スキャナ１５またはスキャナ部３２によって印刷物４５をスキャンしてスキャン画像を得る（Ｓ２１）。
【００６７】
次に、パターンマッチング部５２は、画像読取部５１によって得られた画像をスキャンして１７×１７画素のパターン（以下、入力パターンと呼ぶ。）を抽出し、入力パターンに対してパターンマッチングを行なうことにより埋め込まれているデータを検出する。そして、このパターンマッチング処理を１ブロック分のデータが取出せるまで行なう（Ｓ２２）。
【００６８】
パターンマッチング処理の一例として、単純類似度を用いてデータを検出する場合について説明するが、埋め込まれたデータを検出できる方法であれば、これに限定されるものではない。
【００６９】
単純類似度とは、標準パターンをｃ＝（ｃ１，ｃ２，...，ｃ２８９）とし、入力パターンをｘ＝（ｘ１，ｘ２，...，ｘ２８９）とすると、次式によって２つのベクトルのなす角度を求め、小さいほど類似していると判断する方法である。なお、“・”はベクトルの内積を示し、“｜｜”はベクトルの大きさを示すものとする。
【００７０】
ｃ・ｘ／（｜ｃ｜×｜ｘ｜）  ・・・（１）
パターンマッチング部５２は、式（１）によって計算された角度のｃｏｓを計算し、“１”に近いほど標準パターンと入力パターンとが近似していると判定する。
【００７１】
図１８は、標準パターンを説明するための図である。図１８（ａ）は、ビット“０”の標準パターンを示している。また、図１８（ｂ）は、ビット“１”の標準パターンを示している。また、図１８（ｃ）は、特殊データの標準パターンを示している。
【００７２】
パターンマッチング部５２は、標準パターンとして図１８（ａ）に示すビット“０”を用いたときのｃｏｓ値が所定のしきい値以上であればビット“０”であると判定する。また、標準パターンとして図１８（ｂ）に示すビット“１”を用いたときのｃｏｓ値が所定のしきい値以上であればビット“１”であると判定する。また、標準パターンとして図１８（ｃ）に示す特殊データを用いたときのｃｏｓ値が所定のしきい値以上であれば特殊データであると判定する。
【００７３】
パターンマッチング部５２は、印刷物４５のスキャン画像を１ドットずつ左右方向および上下方向にずらしながら、１７×１７ドットの入力パタンを抽出してパターンマッチングを行なうことにより、埋め込まれたデータを検出する。そして、特殊データが検出された場合には、その特殊データを基準とし、特殊データとの相対位置からどのビットに対応するかを判定しながら、図１２に示す１ブロック分のデータを抽出する。
【００７４】
次に、検出データ判定部５３は、抽出された１ブロック分のデータに含まれる各データを用いて、図９を用いて説明した計算方法によってブロックチェックサムを計算し、抽出されたブロックに含まれるブロックチェックサムの値と比較することにより、検出データの正しさをチェックする（Ｓ２３）。
【００７５】
図１９は、ブロック１の検出データが正しい場合を示す図である。抽出されたブロックに含まれる全体チェックサム、ブロック番号、および３つの実データからブロックチェックサムを計算する。図１９の右下に、計算されたブロックチェックサムの値を示す。そして、抽出されたブロックに含まれるブロックチェックサムの検出データと、計算されたブロックチェックサムの値とが同じであるので、検出データが正しいと判定される。
【００７６】
図２０は、ブロック１の検出データに誤りがある場合を示す図である。抽出されたブロックに含まれる全体チェックサム、ブロック番号、および３つの実データからブロックチェックサムを計算する。図２０の右下に、計算されたブロックチェックサムの値を示す。そして、抽出されたブロックに含まれるブロックチェックサムの検出データと、計算されたブロックチェックサムの値とが比較される。図２０に示すように、２バイト目の実データに誤りがあるため、ブロックチェックサムの検出データと、計算されたブロックチェックサムの値とが一致しない。この場合、検出データに誤りがあると判定される。
【００７７】
検出データが正しいと判定された場合（Ｓ２３，Ｙｅｓ）、１ブロックに含まれる実データ、全体チェックサムおよびブロック番号を保存する（Ｓ２４）。また、検出データが正しくないと判定された場合（Ｓ２３，Ｎｏ）、データ誤りとしてそのブロックのデータを破棄する（Ｓ２５）。
【００７８】
次に、全ての画像データに対する処理が終了したか否かが判定される（Ｓ２６）。未だ処理していない画像データがある場合（Ｓ２６，Ｙｅｓ）、ステップＳ２２に戻って次のブロックの抽出処理を行なう。
【００７９】
また、処理していない画像データがなければ（Ｓ２６，Ｎｏ）、組合せ検出部５４は、全体チェックサムが一致するデータごとにブロック番号が１，２，３のデータを組合わせて、埋め込まれたデータを復元する（Ｓ２７）。
【００８０】
図２１は、検出データ判定部５３によって正しいと判定された検出データの一例を示す図である。図２１（ａ）は、全体チェックサムが１０進数表記で“１２２０”であり、ブロック番号が“１”のブロックの検出データを示している。図２１（ｂ）は、全体チェックサムが１０進数表記で“１２２０”であり、ブロック番号が“２”のブロックの検出データを示している。図２１（ｃ）は、全体チェックサムが１０進数表記で“１２２０”であり、ブロック番号が“３”のブロックの検出データを示している。したがって、図２１（ａ）〜図２１（ｃ）に示す同じ全体チェックサムを有するブロックに含まれる実データ（９バイト分）が、同じ組の埋め込みデータであると判定される。
【００８１】
また、図２１（ｄ）は、全体チェックサムが１０進数表記で“８０１”であり、ブロック番号が“１”のブロックの検出データを示している。図２１（ｅ）は、全体チェックサムが１０進数表記で“８０１”であり、ブロック番号が“２”のブロックの検出データを示している。図２１（ｆ）は、全体チェックサムが１０進数表記で“８０１”であり、ブロック番号が“３”のブロックの検出データを示している。したがって、図２１（ｄ）〜図２１（ｆ）に示す同じ全体チェックサムを有するブロックに含まれる実データ（９バイト分）が、同じ組の埋め込みデータであると判定される。したがって、図２１（ａ）〜（ｆ）は、２種類分のデータを含んでいることになる。
【００８２】
次に、組合せ検出部５４は、全体チェックサムによって復元データが正しいか否かを判定する（Ｓ２８）。復元データが正しければ（Ｓ２８，Ｙｅｓ）、検出データ保存部５５は、その検出データの組を１種類分の検出データとして保存する（Ｓ２９）。また、復元データが正しくなければ（Ｓ２８，Ｎｏ）、その検出データの組に誤りがあるとして破棄する（Ｓ３０）。
【００８３】
図２２は、復元データに誤りがある場合の全体チェックサムの値を示す図である。図２２においては、１バイト目の実データの最上位ビットが誤って“１”となっている場合を示しており、全体チェックサムの値が１０進数表記で“１３４８”となる。検出された全体チェックサムの値“１２２０”との比較によって復元データに誤りがあることが判る。
【００８４】
図２３は、復元データが正しい場合の全体チェックサムの値を示す図である。図２３においては、実データがすべて正しいので、全体チェックサムの値が１０進数表記で“１２２０”となる。検出された全体チェックサムの値“１２２０”との比較によって復元データが正しいことが判る。
【００８５】
最後に、違う全体チェックサムを有するブロックデータがあるか否かが判定される（Ｓ３１）。違う全体チェックサムを有するブロックデータがあれば（Ｓ３１，Ｙｅｓ）、ステップＳ２７に戻って以降の処理を繰返す。また、違う全体チェックサムを有するブロックデータがなければ（Ｓ３１，Ｎｏ）、処理を終了する。
【００８６】
ところで、１枚のプリントアウトに１種類のデータのみが埋め込まれている場合でも、スキャナに異なるデータが埋め込まれた２枚以上のプリントアウトを載せて画像をスキャンする場合には、それぞれが異なるデータであることが認識できなければ、正しくデータを検出することができない。
【００８７】
上述の実施の形態では埋め込みデータの固有値である全体チェックサムによって埋め込みデータを識別したが、その代わりに、各プリントアウトの埋め込みデータに固有の識別情報としてプリント番号を割り振ってデータを埋め込むことも可能である。なお、複数のプリンタがあると、異なる埋め込みデータに同じ番号が割り振られてしまう場合があるため、これを防ぐためにはプリンタの機種やシリアル番号のようなデータもプリントアウト１枚ごとに一緒に埋め込むことが望ましい。
【００８８】
図２４は、プリント番号を埋め込みデータに含めてプリントアウトする場合において、異なる実データＡとＢが埋め込まれた２枚のプリントアウトをスキャンした場合を説明するための図である。たとえば、プリントＡからブロック１が検出され、プリントＢからブロック２および３が検出された場合であっても、プリント番号が異なるため、プリントＡの実データとプリントＢの実データとが違うデータであると認識されて、間違って組み合わされることはない。
【００８９】
以上説明したように、本実施の形態における画像処理装置によれば、埋め込む実データを複数のブロックに分割し、ブロックごとに算出したブロックチェックサムと全体チェックサム（または実データ固有の識別情報）とを含んだ埋め込みデータを画像データの背景に合成するようにしたので、その印刷物をスキャンしてそれらのデータを検出することによって、埋め込まれたデータの正しさの検証と、埋め込まれたデータの識別とを同時に行なうことが可能となった。
【００９０】
また、ブロックチェックサムを用いてブロックデータの正しさを検証し、全体チェックサムを用いて実データ全体の正しさを検証するようにしたので、埋め込まれた実データの検証をより正確に行なうことが可能となった。
【００９１】
また、全体チェックサムを埋め込みデータの識別に用いるようにしたので、異なる埋め込みデータが埋め込まれた２枚のプリントアウトを並べてスキャンした場合でも、それぞれのプリントアウトを正しく識別することが可能となった。
【００９２】
（第２の実施の形態）
本発明の第２の実施の形態における画像処理装置は、第１の実施の形態における画像処理装置と比較して、チェックサムの値を計算して埋め込む代わりに、ＭＤ（Message Digest）５（１２８ビット）、ＳＨＡ（Secure Hash Algorithm）−１（１６０ビット）などのハッシュ関数を用いて計算した値やビットのブレンド処理を行なって生成した値を埋め込む点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００９３】
なお、ＭＤ５の詳細についてはＩＥＴＦ（Internet Engineering Task Force）のＲＦＣ（Request for Comments）１３２１，「The MD5 Message-Digest Algorithm」を、ＳＨＡ−１の詳細についてはＦＩＰＳ  ＰＵＢＳ（Federal Information Processing Standards Publications）１８０−２，「Secure Hash Standard」を参照されたい。
【００９４】
図２５は、チェックサムの値を計算して埋め込んだ場合の一例を説明するための図である。２バイト目の実データのビット１が誤って“０”として検出され、３バイト目の実データのビット１が誤って“１”として検出された場合、計算された全体チェックサムの値は正しい値となる。したがって、チェックサムを用いてデータの正しさの検証を行なった場合、このような検出ミスを発見することができない。
【００９５】
図２６は、ハッシュ関数で用いられるようなビットのブレンド処理を用いてデータの正しさの検証を行なう場合の一例を示す図である。なお、図２６においては、８ビットの実データを１２ビットのデータに変換した後、ビットのブレンドを行なっている。ここでは、埋め込むデータが少ない実施例を記載したため、ハッシュ関数でない実施例を記載しているが、埋め込みデータが例えば１Ｋｂｙｔｅ以上の場合、ＭＤ５をそのまま用いてもよい。
【００９６】
埋め込むデータの１バイト目は、そのままとする。埋め込むデータの２バイト目は、データを４ビットだけ下位へ循環（シフト）する。したがって、下位の４ビットが上位へ移動する。埋め込むデータの３バイト目は、データの上位と下位を入れ替える。
【００９７】
埋め込むデータの４バイト目は、データを２ビットだけ上位へ循環（シフト）する。埋め込むデータの５バイト目は、データの上位と下位を入替えた後、１ビットだけ下位へ循環（シフト）する。埋め込むデータの６バイト目は、データを１ビットだけ上位へ循環（シフト）する。
【００９８】
埋め込むデータの７バイト目は、データの上位と下位を入替えた後、２ビットだけ上位へ循環（シフト）する。埋め込むデータの８バイト目は、データを２ビットだけ下位へ循環（シフト）する。埋め込むデータの９バイト目は、データの上位と下位を入替えた後、３ビットだけ下位へ循環（シフト）する。
【００９９】
以上のビットブレンドを行なった後に、各データを合計して下位１２ビットを抽出すると、図２６の右下に示すチェック用データが得られる。
【０１００】
図２７は、データに誤りがあるときに、図２６に示すビットブレンドを行なった後に生成されたチェック用データを示す図である。図２７においては、図２５と同様に、２バイト目の実データのビット１が誤って“０”として検出され、３バイト目の実データのビット１が誤って“１”として検出されている。実データにこのような誤りがある場合でも、チェック用データが正しい値と違う値となり、実データの誤りを検出することができる。
【０１０１】
図２５に示すように、各実データを単純に加算した場合には、全体チェックサムの上位４ビットは桁の繰り上がり時にしかデータが現われないため、本来１／２１２の確率でしか全体チェックサムの値が誤って一致しないはずであるが、実際には図２５に示す場合などのように、もっと高い確率でチェックサムの値が一致してしまう。したがって、図２６に示すようなビットブレンドを行なうことによりチェックの効果が高くなる。
【０１０２】
図２８は、別のチェック用データの計算方法を説明するための図である。図２８においては、埋め込むデータの１バイト目をそのままとし、２〜９バイト目のデータをそれぞれ１〜８ずつ循環（シフト）した後に、各データを合計して下位１２ビットを抽出するものであり、図２８の右下に示すチェック用データが得られる。
【０１０３】
図２９は、データに誤りがあるときに、図２８に示すビットブレンドを行なった後に生成されたチェック用データを示す図である。図２９においては、図２５と同様に、２バイト目の実データのビット１が誤って“０”として検出され、３バイト目の実データのビット１が誤って“１”として検出されている。実データにこのような誤りがある場合でも、チェック用データが正しい値と違う値となり、実データの誤りを検出することができる。
【０１０４】
このように、チェック用データのビット長に合わせて、加算するデータが計算結果に均等に現われるようにしてから加算するようにしたので、チェック用データのビット長を有効に利用することができる。埋め込むデータのデータ長自体が短く、チェック用データのデータ長も短い場合には、チェック用データのビット長に合わせて、加算するデータが計算結果に均等に現われるようになればよいため、図２８に示すような計算方法を用いることにより、ハッシュ関数のような複雑なビットブレンドを行なう必要がなくなる。したがって、ソフトウェアによって実現する場合には演算処理の負担が減り、ハードウェアによって実現する場合には簡単な回路によって演算が行なえるようになる。
【０１０５】
図３０は、さらに別のチェック用データの計算方法を説明するための図である。図３０においては、１〜３バイト目の実データを連結した後に、１２ビット長の２つのデータに区切る。同様に、４〜６バイト目の実データから１２ビット長の２つのデータを生成し、７〜９バイト目の実データから１２ビット長の２つのデータを生成する。そして、６つの１２ビット長のデータを合計して下位１２ビットを抽出すると、図３０の右下に示すチェック用データが得られる。
【０１０６】
図３１は、データに誤りがあるときに、図３０に示すビットブレンドを行なった後に生成されたチェック用データを示す図である。図３１においては、図２５と同様に、２バイト目の実データのビット１が誤って“０”として検出され、３バイト目の実データのビット１が誤って“１”として検出されている。実データにこのような誤りがある場合でも、チェック用データが正しい値と違う値となり、実データの誤りを検出することができる。
【０１０７】
このように、チェック用データのビット長に合わせて、加算するデータが計算結果に均等に現われるようにしてから加算するようにしたので、チェック用データのビット長を有効に利用することができる。
【０１０８】
以上説明したように、本実施の形態における画像処理装置によれば、実データのビットブレンドを行なった後に、加算してチェック用データを生成するようにしたので、検出されたデータが正しいか否かのチェックをさらに正確に行なうことが可能となった。
【０１０９】
なお、以上の説明では、全体チェックサムの代わりに使用するチェック用データについて詳細に述べたが、これと同様の方法でブロックチェックサムの代わりのチェック用データを作成するようにしてもよい。
【０１１０】
（第３の実施の形態）
本発明の第３の実施の形態における画像処理装置は、第１の実施の形態における画像処理装置と比較して、チェックサムの値を計算して埋め込む代わりに、巡回冗長検査（以下、ＣＲＣ（Cyclic Redundancy Check））を用いて計算した値を埋め込む点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【０１１１】
図３２は、ＣＲＣ回路の一例を示す図である。このＣＲＣ回路は、１２ビットのレジスタ［０］〜［１１］（６１−０〜６１−１１）と、排他的論理和（以下、ＥＸＯＲと呼ぶ。）回路６２〜６６とを含む。
【０１１２】
レジスタ［０］〜［１１］（６１−０〜６１−１１）は、クロックに同期して値を保持する。クロックによって値が更新される前のレジスタの各ビットの内容を［Ｘ］（Ｘ＝０〜１１）、クロックによって値が更新された後のレジスタの各ビットの内容を［Ｘ］’とし、入力される１ビットのデータを［Ｉｎ］とすると、レジスタの各ビットは以下の関係を有する。
【０１１３】
（１）  ［１１］’＝［Ｉｎ］ＥＸＯＲ［０］
（２）  ［１０］’＝（［Ｉｎ］ＥＸＯＲ［０］）ＥＸＯＲ［１１］
（３）  ［９］’＝（［Ｉｎ］ＥＸＯＲ［０］）ＥＸＯＲ［１０］
（４）  ［８］’＝（［Ｉｎ］ＥＸＯＲ［０］）ＥＸＯＲ［９］
（５）  ［７］’＝［８］
（６）  ［６］’＝［７］
（７）  ［５］’＝［６］
（８）  ［４］’＝［５］
（９）  ［３］’＝［４］
（１０）  ［２］’＝［３］
（１１）  ［１］’＝［２］
（１２）  ［０］’＝（［Ｉｎ］ＥＸＯＲ［０］）ＥＸＯＲ［１］
たとえば、図６に示す９バイトの埋め込みデータが１ビットずつ［Ｉｎ］としてＣＲＣ回路に入力され、上記（１）〜（１２）に示す演算が７２回行なわれて、最終的にレジスタ［０］〜［１１］に残っている値がＣＲＣ値となる。
【０１１４】
図３３は、図６に示す９バイトの埋め込みデータが順次ＣＲＣ回路に入力されるときのレジスタの各ビットの変化を示す図である。最初に、レジスタ［０］〜［１１］の内容が初期化される。そして、０ビット目の［Ｉｎ］＝０が入力された後、１ビット目の［Ｉｎ］＝１が入力されると、［０］、［８］〜［１１］の内容が“１”となり、それ以外の各ビットの内容が“０”となる。続いて、２ビット目の［Ｉｎ］＝１が入力されると、［７］〜［１０］の内容が“１”となり、それ以外の各ビットの内容が“０”となる。７１ビット目の［Ｉｎ］＝０が入力されたときに、図３３に示すＣＲＣ値が得られる。
【０１１５】
以上説明したように、本実施の形態における画像処理装置によれば、ＣＲＣ回路を用いてチェック用データを生成するようにしたので、検出されたデータが正しいか否かのチェックをさらに正確に行なうことが可能となった。
【０１１６】
なお、埋め込みデータ全体のチェック用データと、ブロックごとのチェック用データとを生成するのに必ずしも同じ一方向性関数を用いる必要はなく、それぞれ異なる一方向性関数を用いてもよい。一方向性関数としては、チェックサム、ハッシュ関数、巡回冗長検査を含むが、これらに限定されるものではなく、データの検証のために用いることができ、データのビット数を減少させることができるようなものであればよい。
【０１１７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１１８】
【図１】本発明の第１の実施の形態における画像処理装置のシステム構成の一例を示す図である。
【図２】図１に示す画像処理装置をより機能的に説明するための図である。
【図３】本発明の第１の実施の形態における画像処理装置のシステム構成の他の一例を示す図である。
【図４】図１または図３に示す画像処理装置の機能的構成（データ埋め込み部分）を示すブロック図である。
【図５】図１または図３に示す画像処理装置の処理手順（データ埋め込み部分）を説明するためのフローチャートである。
【図６】埋め込むデータ４６の一例を示す図である。
【図７】画像データ４１の背景に実際に埋め込むデータのデータ構造の一例を示す図である。
【図８】全体チェックサムの算出方法を説明するための図である。
【図９】ブロック１のブロックチェックサムの算出方法を説明するための図である。
【図１０】ブロック１の埋め込みデータを示す図である。
【図１１】データを埋め込むときのビットパターンを示す図である。
【図１２】埋め込むデータの配置規則を説明するための図である。
【図１３】図１０に示すデータを図１２に示す配置規則に従って実際に埋め込んだところを示す図である。
【図１４】画像データの背景として実際にプリントアウトするときの埋め込みデータを示す図である。
【図１５】画像データの背景にデータを埋め込んで印刷したときのプリントアウトの一例を示す図である。
【図１６】図１または図３に示す画像処理装置の機能的構成（データ検出部分）を示すブロック図である。
【図１７】図１または図３に示す画像処理装置の処理手順（データ検出部分）を説明するためのフローチャートである。
【図１８】標準パターンを説明するための図である。
【図１９】ブロック１の検出データが正しい場合を示す図である。
【図２０】ブロック１の検出データに誤りがある場合を示す図である。
【図２１】検出データ判定部５３によって正しいと判定された検出データの一例を示す図である。
【図２２】復元データに誤りがある場合の全体チェックサムの値を示す図である。
【図２３】復元データが正しい場合の全体チェックサムの値を示す図である。
【図２４】プリント番号を埋め込みデータに含めてプリントアウトする場合を説明するための図である。
【図２５】チェックサムの値を計算して埋め込んだ場合の一例を説明するための図である。
【図２６】ハッシュ関数を用いてデータの正しさの検証を行なう場合の一例を示す図である。
【図２７】データに誤りがあるときに、図２６に示すビットブレンドを行なった後に生成されたチェック用データを示す図である。
【図２８】別のチェック用データの計算方法を説明するための図である。
【図２９】データに誤りがあるときに、図２８に示すビットブレンドを行なった後に生成されたチェック用データを示す図である。
【図３０】さらに別のチェック用データの計算方法を説明するための図である。
【図３１】データに誤りがあるときに、図３０に示すビットブレンドを行なった後に生成されたチェック用データを示す図である。
【図３２】ＣＲＣ回路の一例を示す図である。
【図３３】図６に示す９バイトの埋め込みデータが順次ＣＲＣ回路に入力されるときのレジスタの各ビットの変化を示す図である。
【符号の説明】
【０１１９】
１１  マウス、１２  キーボード、１３  モニタ、１４  外部記憶装置、１５  スキャナ、１６  ＰＣ、１７  画像処理プログラム、１９  プリンタ、２１  ユーザ指示、２２  画像データ表示、２３  スキャン画像、２４  入出力インタフェース、２５  ＣＰＵ／メモリ、２６  記憶装置、２７  ＯＳ、２８  画像処理部、２９  印刷物作成、３１  操作パネル部、３２  スキャナ部、３３  プリンタ部、３４  ＭＦＰ本体、４１  画像データ、４２  データ分割部、４３  チェックサム算出部、４４  画像データ合成部、４５  印刷物、４６  埋め込みデータ、５１  画像読取部、５２  パターンマッチング部、５３  検出データ判定部、５４  組合せ検出部、５５  検出データ保存部、６１−０〜６１−１１  レジスタ、６２〜６６  ＥＸＯＲ。
【図１】
2008079278.tif 000003
【図２】
2008079278.tif 000004
【図３】
2008079278.tif 000005
【図４】
2008079278.tif 000006
【図５】
2008079278.tif 000007
【図６】
2008079278.tif 000008
【図７】
2008079278.tif 000009
【図８】
2008079278.tif 000010
【図９】
2008079278.tif 000011
【図１０】
2008079278.tif 000012
【図１１】
2008079278.tif 000013
【図１２】
2008079278.tif 000014
【図１３】
2008079278.tif 000015
【図１４】
2008079278.tif 000016
【図１５】
2008079278.tif 000017
【図１６】
2008079278.tif 000018
【図１７】
2008079278.tif 000019
【図１８】
2008079278.tif 000020
【図１９】
2008079278.tif 000021
【図２０】
2008079278.tif 000022
【図２１】
2008079278.tif 000023
【図２２】
2008079278.tif 000024
【図２３】
2008079278.tif 000025
【図２４】
2008079278.tif 000026
【図２５】
2008079278.tif 000027
【図２６】
2008079278.tif 000028
【図２７】
2008079278.tif 000029
【図２８】
2008079278.tif 000030
【図２９】
2008079278.tif 000031
【図３０】
2008079278.tif 000032
【図３１】
2008079278.tif 000033
【図３２】
2008079278.tif 000034
【図３３】
2008079278.tif 000035