(57)【要約】【課題】画像データの改ざんをより正確に判定する画像処理方法、画像処理装置、画像処理プログラム及び記録媒体を提供することを目的とする。【解決手段】グレイ符号化された所定のビット長の電子透かしデータが埋め込まれた画像データが改ざんされたか否か、の判定処理を行う画像処理方法であって、改ざんされた又は改ざんされていない前記画像データから、前記電子透かしデータを抽出する電子透かしデータ抽出手段と、抽出された該電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、任意の１ビットが不一致である場合に前記任意の１ビットの位置に応じて改ざんなしと判定し、任意の２ビット以上が不一致の場合に改ざんありと判定する比較処理工程とを有する。【選択図】図５
2009076990.tif 000002
【特許請求の範囲】
【請求項１】
グレイ符号化された所定のビット長の電子透かしデータが埋め込まれた画像データが改ざんされたか否か、の判定処理を行う画像処理方法であって、
改ざんされた又は改ざんされていない前記画像データから、前記電子透かしデータを抽出する電子透かしデータ抽出工程と、
抽出された該電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、任意の１ビットが不一致である場合に前記任意の１ビットの位置に応じて改ざんなしと判定し、任意の２ビット以上が不一致の場合に判定する比較処理工程と、
を有することを特徴とすることを特徴とする画像処理方法。
【請求項２】
前記比較処理工程では、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットの１ビットが不一致の場合には、改ざんなしと判定することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記比較処理工程では、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットから第Ｎ番目の１ビット（但し、２≦Ｎ＜ビット長）が不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最下位ビットから第Ｎ番目のビットがビットＯＮであり、且つ、最下位ビットから第Ｎ―１番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記比較処理工程では、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最上位ビットの１ビットが不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最上位から２番目のビットがビットＯＮであり、且つ、最上位から第３番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理方法。
【請求項５】
前記比較処理工程では、さらに、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、上位複数桁を有効桁とすることを特徴とする請求項１乃至４のいずれか一項に記載の画像処理方法。
【請求項６】
グレイ符号化された所定のビット長の電子透かしデータが埋め込まれた画像データが改ざんされたか否か、の判定処理を行う画像処理装置であって、
改ざんされた又は改ざんされていない前記画像データから、前記電子透かしデータを抽出する電子透かしデータ抽出手段と、
抽出された該電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、任意の１ビットが不一致である場合に前記任意の１ビットの位置に応じて改ざんなしと判定し、任意の２ビット以上が不一致の場合に改ざんありと判定する比較処理手段と、
を有することを特徴とすることを特徴とする画像処理装置。
【請求項７】
前記比較処理手段は、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットの１ビットが不一致の場合には、改ざんなしと判定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記比較処理手段は、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットから第Ｎ番目の１ビット（但し、２≦Ｎ＜ビット長）が不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最下位ビットから第Ｎ番目のビットがビットＯＮであり、且つ、最下位ビットから第Ｎ―１番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定することを特徴とする請求項６又は７に記載の画像処理装置。
【請求項９】
前記比較処理手段は、
前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最上位ビットの１ビットが不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最上位から２番目のビットがビットＯＮであり、且つ、最上位から第３番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定することを特徴とする請求項６乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
コンピュータに、請求項１乃至５のいずれか一記載の画像処理方法をコンピュータに実現させるための画像処理プログラム。
【請求項１１】
請求項１０に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、画像処理装置、画像処理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、デジタル情報は、劣化させることなくコンピュータなどで簡単にコピーできるが、逆に、書換えなど改ざんすることが容易であるという特徴がある。このため、デジタル情報は簡単な処理や操作によって、不正にコピーされて勝手に再利用されたり、一部を改ざんして証拠写真に使用できないようにされたりしやすい。
【０００３】
これを防止する手法として、電子透かしやデータハイディングなどと呼ばれる方法がある。電子透かし手法は、デジタル画像などのデジタルコンテンツを普通に再生した場合には視覚できない情報を、デジタル画像に対して付加する手法である。
【０００４】
電子透かしを埋め込む方法は、次の二つに大きく分類できる。すなわち、
（１）内容データの標本値に直接埋め込む方法
（２）周波数成分に埋め込む方法
であり、（１）のように内容データの標本値に直接電子透かしを埋め込む技術を空間領域型といい、（２）のように画像データへ離散フーリエ（ＤＦＴ）、離散コサイン（ＤＣＴ）、離散ウェーブレット（ＤＷＴ）などの変換を施した変換領域において周波数成分に電子透かしを埋め込む技術を変換領域型という。
【０００５】
一般に、（１）の空間領域型は、変換処理が不要であるため透かし埋め込み処理が高速に実行可能である利点を有する反面、埋め込み可能な情報量が少なく、電子透かしが埋め込まれた画像に画像処理が施された場合に、透かしが改変・消失しやすいなどの欠点が存在する。一方（２）の変換領域型は、空間領域型と逆の特徴を有する。
【０００６】
即ち、（１）の空間領域型の方法は、加工や圧縮などの処理が行なわれると、埋込んだデータが失われやすいが処理が軽い。また、（１）の空間領域型の場合、デジタル画像の内容データの標本値に直接電子透かしを埋め込んでいるため、デジタル画像に対して加工、変倍、圧縮、などの処理を行い内容データに影響を与えることが、そのまま電子透かしを破損させてしまう。
【０００７】
一方、（２）の変換領域型の方法は、加工や圧縮などの処理には強いが、埋め込みや抽出の処理が重いという特性がある。また、（２）の変換領域型の場合、デジタル画像の内容データを周波数領域に変換した周波数領域データに対して電子透かしを埋め込んでいるため、画像の内容に変更を加えないような変倍処理や各画素への微少な変化を与える加工など、画像の周波数に影響を与えない処理によっては電子透かしを破損させないという利点がある。
【０００８】
このように電子透かし手法の用途としては、著作権情報の記録、違法コピー者情報の追跡、ＩＰアドレスの履歴記録、違法コピーの防止（不可視・高耐性型）、改ざん防止への応用（不可視・低耐性）、認証、秘密通信、デジタルコンテンツの注釈やラベルを埋込む（可視・不可逆型、所有権者表示）、透かし除去可能化（可視・可逆型、コンテンツ配布）などがある。
【０００９】
その中で、例えば、デジタルカメラへの用途として、写真撮影時にカメラの製造番号、日時等を撮影画像に透かし埋込むと同時にその電子署名を作成する機構をカメラに設ける方法が提案されている（非特許文献１、２を参照）。これにより、証明写真の改ざん検知に加え、撮影カメラの特定や撮影日時の確認が可能となる。改ざん検知は電子署名技術だけで可能であるが、透かし技術を活用することで撮影カメラや撮影日時の特定化が可能になり、改ざん抑止により効果的に作用する。更に、電子透かしの埋込み情報量を多くすることによって、改ざん場所を特定化する精度が向上する。また、著作権保護のためにも多くの情報を透かし埋込みできる方が、埋込み情報の解析時に情報が抽出しやすくなり、有効性が高くなる。
【００１０】
しかしながら、作り出したデジタルコンテンツを、用途に応じて加工することは日常的によくあり、それが電子透かしを埋込んだ対象のデジタルコンテンツの場合には、内部データが変化するので、改ざんする意図がなくても改ざんだと判断され易い。
【００１１】
ところで、人間の視覚能力は、自然光全体をそのまま受け入れるのではなく、偏っているので、視覚に影響を与えない情報は、カットすることによって、記憶量が少なく済む。また、画像中（平面内）の画素位置と画素値を周波数分析した結果を保存データとするＪＰＥＧなどに於いては、周波数の高い情報は、振幅が小さく（自然画の特徴）、人間の視覚感度も低いので、保存情報として粗い（少量のビット数で表す）情報程度に抑えても、画像を復元した時に見た目に影響が少ないなどの機能になっていることである。この視覚能力に影響が少ない情報をカットすることによって、厳密には元の画像とは微妙に異なる画像になる。
【００１２】
これに該当するケースとしては、画像変倍、画像圧縮及びその他画像修飾処理（ノイズ除去、ディザ化、エッジ強調、ぼかし処理など）などがある。特に、複雑である画像圧縮について、以下に述べる。
【００１３】
モノクロデジタルコピーやＦＡＸ、新聞の白黒印刷などにおいては、白黒の２値画像を利用し、国際電気通信連合（ＩＴＵ−Ｔ）のＧ３，Ｇ４規格などで、ＭＨ、ＭＲ、ＭＭＲといった元画像が欠損無く復元できる（可逆：Ｌｏｓｓ−Ｌｅｓｓ）画像圧縮方式を推奨し、一般化している。しかし、これらの方式では中間調処理された画像や誤差拡散処理された画像などに於いては符号化効率が悪く、多くの場合、圧縮できないことがある。これらの問題を解決する方法として注目されたのが算術符号化方式と呼ばれるものであり、画像のエントロピーを基に符号化を行う方式である。２値画像の新しい符号化方式の国際標準を検討しているグループのＪＢＩＧでは、ＱＭ−Ｃｏｄｅｒと呼ばれる算術符号化方式を採用し、ＩＴＵ−Ｔの標準として、勧告化されている。
【００１４】
また、デジタルのカラー画像や濃淡画像などの多値画像などの製品においては、デジタルスチルカメラや、デジタルビデオカメラなどで、少しの画質劣化は犠牲にしても保存時の圧縮効果を重視し、ＤＣＴによる周波数変換を利用したＪＰＥＧやＭＰＥＧなどの元画像の細かい情報が失われる（非可逆：Ｌｏｓｓｙ）圧縮技術を採用している。
【００１５】
更に、このＪＰＥＧの後継標準としては、Ｌｏｓｓｙ符号化方式とＬｏｓｓ−Ｌｅｓｓ符号化方式との統一符号化、及び２値データと多値データとの統一符号化方式としてＪＰＥＧ２０００がある。ＪＰＥＧ２０００では、Ｗａｖｅｌｅｔ変換を使用して高圧縮時の画質劣化を減少させ、また、上記ＪＢＩＧのＱＭ−Ｃｏｄｅｒに類似し、ＪＢＩＧ２にも採用されているＭＱ−Ｃｏｄｅｒを適用して、高圧縮率化に役立てている。
【非特許文献１】電子透かし技術に関する調査報告書、１９９９年３月、日本電子工業振興協会編
【非特許文献２】日経ビジネス、電子情報の不正コピー防止、１９９８年２月２３日号  ｐｐ．６８−７０（１９９８）
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところで、上述したように電子透かしを埋め込む対象のデジタル画像等のデジタルコンテンツは、画像変倍、画像圧縮及びその他画像修飾処理などによって、改ざんする意図がなくても内部データが変化するので、改ざんと判断されやすい。
【００１７】
しかしながら、従来技術では、内部データの変化と画像データの改ざんとの違いを正確に判定することができないため、内部データ変化の何れの場合にも画像中の改ざんに対する検知能力が弱くなり、十分な防止機能が実現されていないという問題があった。
【００１８】
本発明は、上記の点に鑑みて、この問題を解決するために発明されたものであり、画像データの改ざんをより正確に判定する画像処理方法、画像処理装置、画像処理プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記の目的を達成するために、本発明における画像処理方法は、グレイ符号化された所定のビット長の電子透かしデータが埋め込まれた画像データが改ざんされたか否か、の判定処理を行う画像処理方法であって、改ざんされた又は改ざんされていない前記画像データから、前記電子透かしデータを抽出する電子透かしデータ抽出手段と、抽出された該電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、任意の１ビットが不一致である場合に前記任意の１ビットの位置に応じて改ざんなしと判定し、任意の２ビット以上が不一致の場合に改ざんありと判定する比較処理工程とを有するように構成することができる。
【００２０】
また、上記の目的を達成するために、本発明における前記比較処理工程では、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットの１ビットが不一致の場合には、改ざんなしと判定するように構成することができる。
【００２１】
また、上記の目的を達成するために、本発明における前記比較処理工程では、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットから第Ｎ番目の１ビット（但し、２≦Ｎ＜ビット長）が不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最下位ビットから第Ｎ番目のビットがビットＯＮであり、且つ、最下位ビットから第Ｎ―１番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定するように構成することができる。
【００２２】
また、上記の目的を達成するために、本発明における前記比較処理工程では、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最上位ビットの１ビットが不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最上位から２番目のビットがビットＯＮであり、且つ、最上位から第３番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定するように構成することができる。
【００２３】
また、上記の目的を達成するために、本発明における前記比較処理工程では、さらに、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、上位複数桁を有効桁とするように構成することができる。
【００２４】
また、上記の目的を達成するために、本発明における画像処理装置は、グレイ符号化された所定のビット長の電子透かしデータが埋め込まれた画像データが改ざんされたか否か、の判定処理を行う画像処理装置であって、改ざんされた又は改ざんされていない前記画像データから、前記電子透かしデータを抽出する電子透かしデータ抽出手段と、抽出された該電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、任意の１ビットが不一致である場合に前記任意の１ビットの位置に応じて改ざんなしと判定し、任意の２ビット以上が不一致の場合に改ざんありと判定する比較処理手段とを有するように構成することができる。
【００２５】
また、上記の目的を達成するために、本発明における前記比較処理手段は、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットの１ビットが不一致の場合には、改ざんなしと判定するように構成することができる。
【００２６】
また、上記の目的を達成するために、本発明における前記比較処理手段は、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最下位ビットから第Ｎ番目の１ビット（但し、２≦Ｎ＜ビット長）が不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最下位ビットから第Ｎ番目のビットがビットＯＮであり、且つ、最下位ビットから第Ｎ―１番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定するように構成することができる。
【００２７】
また、上記の目的を達成するために、本発明における前記比較処理手段は、前記抽出された電子透かしデータと前記所定のビット長の電子透かしデータとの比較において、最上位ビットの１ビットが不一致の場合には、前記抽出された電子透かしデータ及び前記所定のビット長の電子透かしデータのいずれも最上位から２番目のビットがビットＯＮであり、且つ、最上位から第３番目〜最下位ビットが全てビットＯＦＦである場合、改ざんなしと判定するように構成することができる。
【００２８】
また、上記の目的を達成するために、本発明における画像処理プログラムは、コンピュータに、上記の画像処理方法をコンピュータに実現させるための画像処理プログラムであるように構成することができる。
【００２９】
また、上記の目的を達成するために、本発明における記録媒体は、上記の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体であるように構成することができる。
【発明の効果】
【００３０】
本発明によれば、画像データの改ざんをより正確に判定する画像処理方法、画像処理装置、画像処理プログラム及び記録媒体を提供することができる。
【発明を実施するための最良の形態】
【００３１】
以下、発明の実施の形態について図面により詳細に説明する。
【００３２】
（装置の構成例）
図１は、本実施形態に係る画像処理装置の装置構成の一例を示す図である。図１では、本実施形態における画像処理装置の一例として、デジタル画像の符号（電子透かしの埋込み）生成および復号（電子透かしを解読し、改ざん検出する）方法を実施する符号生成及び解析復号装置の構成例を示す。
【００３３】
図１において、本実施形態における画像処理装置１００は、全体制御部１、操作入力（キーボード、マウス）部２、外部記憶装置３、メモリ４、画像撮影部５、表示部６、外部からの任意データ入力部７、電子透かし埋込み用ソースデータ生成部８、グレイ（グレイ）符号化部９、電子透かし埋込み部１０、画像再生部１１、電子透かし解読部１２、検出した改ざん部の（反転）表示部１３、及びこれらを接続するバス１４などから構成される。なお、これらの各部（または装置）とバス１４との間に必要なインタフェース部は図示を省略している。
【００３４】
全体制御部１は、装置全体の動作及び機能を制御するマイクロコンピュータ（ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成されるがＣＰＵと略称）であり、画像撮影側処理の画像撮影部５、外部からの任意データ入力部７、電子透かし埋込み用ソースデータ生成部８、グレイ符号化部９、電子透かし埋込み部１０、画像再生部１１、電子透かし解読部１２、検出した改ざん部の（反転）表示部１３の各機能も、上記ＣＰＵが当該画像処理装置１００にインストールされた画像処理プログラムに基づいて行うソフト処理によって実現できる。
【００３５】
操作入力部２は、各種操作指示や機能選択指令、編集データ等を入力するためのものであり、キーボードやマウスあるいはタッチパネル等である。特に、電子透かしデータを埋込んだ画像データを暗号化するときに、また暗号化された電子透かしを解読するときに、秘密キーの入力機能として使用する。
【００３６】
操作入力部２は、さらに、表示選定手段としての機能も有し、後述の表示部６の表示状態を操作者の所望の表示状態に変更することができる。例えばキー操作により、電子透かし解読結果を入力イメージ画像データと重ね合わせて表示させたり、どちらか一方のみを選択して表示させたりすることができる。
【００３７】
外部記憶装置３は、画像撮影部５で撮影した画像データや電子透かし埋込み部１０によって電子透かしを埋込まれた圧縮データ、及び電子透かし解読部１２によって検出した改ざん部のデータ等をフロッピディスク（ＦＤ）や光磁気ディスク（ＯＭＤ）等の外部へ取り出し可能な記憶媒体に記憶させる記憶装置である。また、外部記憶装置３は、全体制御部１で実行するプログラムソフトを記録する媒体としても機能する。
【００３８】
メモリ４は、画像撮影部５によって読み取ったイメージ画像データ、電子透かしが埋め込まれて一旦保存されたデータ、画像再生部１１によって読出し伸張された画像データ等を格納する大容量のＲＡＭあるいはハードディスク等によるメモリである。
【００３９】
画像撮影部５は、セットされた写真や帳票等をスキャンしてその画像を読み取ってイメージ画像データを入力する画像データ入力手段であり、スキャン光学系及びＣＣＤなどのイメージセンサとその駆動回路等からなる公知のイメージスキャナやデジタルカメラである。
【００４０】
表示部６は、タッチパネル等のディスプレイに表示を行う。例えば、後述の電子透かし解読部１２による解読結果を入力イメージ画像データと重ね合わせて表示したり、どちらか一方のみを表示したりする。
【００４１】
外部からの任意データ入力部７は、デジタルコンテンツへの補足情報を電子透かしとして埋込むためのソース情報、及び、改ざん検知や著作権保護用の埋込み情報を入力する手段である。入力されたデータは、電子透かし埋込み用ソースデータ生成部８またはグレイ符号化部９に送るために、メモリ４に格納される。
【００４２】
電子透かし埋込み用ソースデータ生成部８は、外部からの任意データ入力部７で入力されたデータまたはグレイ符号化部９で符号化されたデータを、暗号化または符号化する。処理後、電子透かし埋込み部１０またはグレイ符号化部９に送るために、メモリ４に格納する。
【００４３】
グレイ符号化部９は、外部からの任意データ入力部７で入力されたデータまたは電子透かし埋込み用ソースデータ生成部８で暗号化・符号化されたデータを入力としてグレイ符号化し、電子透かし埋込み用ソースデータ生成部８または電子透かし埋込み部１０に送るために、メモリ４に格納する。
【００４４】
電子透かし埋込み部１０は、外部データからの任意データ入力部７で処理されたデータを、電子透かし埋込み用ソースデータ生成部８で暗号化・符号化またはグレイ符号化部９でグレイ符号化されて、メモリ４に格納されたデータを電子透かしとして埋込む処理を施す。
【００４５】
画像再生部１１は、電子透かし埋込み部１０で電子透かしが埋込まれて外部記憶装置３などに保存されたデータを読み取るための制御を行う。読み取られた画像は、メモリ４に格納する。
【００４６】
電子透かし解読部１２は、メモリ４に格納されている電子透かし埋込み部１０によって電子透かしが埋込まれ、画像再生部１１によって再生された画像データの中から電子透かしを解読し、解読の可能性やグレイ符号解析による復元レベルに応じて、画像の改ざん性や著作権保護情報が有効かどうかを判断する。
【００４７】
検出した改ざん部の（反転）表示部１３は、上記電子透かし解読部１２で解読した結果、改ざん有りと判断できる場合は、該当する領域を反転表示や、黒色による塗潰し表示などによって示す機能を有する。
【００４８】
以上の装置構成により、本実施形態に係る画像処理装置１００では、まず、画像データの改ざんを敏感に捕らえるための工夫点として、画像データに対して埋め込む電子透かしのソースデータは、電子透かし埋込み用ソースデータ生成部８により当該画像データに基づいて生成される。この方法によって、電子透かしデータ生成元または埋め込み先のどちらかが改ざんされても、論理上のつじつまが合わなくなるので、改ざんを発見する確率が高くなる。ここに挙げた"当該画像データに基づいて生成する"埋め込み用の電子透かしのソースデータとは、敏感に変化するものとしては、例えば、画素値そのもの、または画素値をランダマイズした値などが考えられる。また、変化し難い値としては、例えば、画像小領域の画素平均値や分散値などの統計データが考えられる。
【００４９】
次に、画像圧縮や画像変倍などによる内部データの劣化を改ざんと判断しないための工夫点は、埋め込みデータ（電子透かしのデータ）がグレイ符号化されることである。変倍程度の内部データの変化は、画像領域のブロックサイズも変倍すれば、例えば画素値の平均値は、微小誤差程度の小さいものであり、大きい変化にはならない。また、この変化は、埋め込む電子透かしのソースデータだけでなく、埋め込み先のデータも変化させるので、この二つの近似性が重要となる。埋め込みデータをグレイ符号化する理由は、近似なものを同一視する処理を高速に実現できるからである。
【００５０】
なお、一般に１０進数の値をグレイコードへ変換する方法として、１０進数をバイナリ符号で表したビット列に対して、下位ビットから順に上位ビット側に隣り合うビットとの排他的論理和をとっていく方法がとられている。
【００５１】
本実施形態における画像処理装置１００は、グレイコードを利用し、画像データの変化を検知することに特徴を有するものであり、グレイコードへの変換方法については特に限定しない。また、グレイコードのように表現する値が隣り合う符号同士のハミング距離が１となるような符号化方法であれば、グレイコードでなくても本発明に適用可能であることはいうまでもない。
【００５２】
（機能の構成例）
図２は、本実施形態に係る画像処理装置の機能構成の一例を示すブロック図である。図２において、画像処理装置１００は、画像読み込み部１０１、ブロック分割部１０２、埋込データ算出部１０３、グレイコード符号化部１０４、透かしデータ埋込部１０５、画像出力部１０６、透かし埋込画像読み込み部１１１、ブロック分割部１１２、比較データ算出部１１３、グレイコード符号化部１１４、比較処理部１１５、結果画像出力部１１６を有する。
【００５３】
図２における画像読み込み部１０１〜画像出力部１０６は、当該画像処理装置１００が画像データに対して電子透かしを埋め込む処理を行うための各機能であり、同図における透かし埋込画像読み込み部１１１〜結果画像出力部１１６は、当該画像処理装置１００が画像データ中の電子透かしの再現性のチェック（即ち、改ざん検出）処理を行うための各機能である。
【００５４】
電子透かし埋め込み処理、電子透かしの再現性チェック処理の基本概念となる処理の流れについて図２を用いて説明する。
【００５５】
まず、電子透かし埋め込み処理について説明する。
【００５６】
最初に、画像読み込み部１０１は、電子透かしを埋め込むべき対象画像データを読み込む。次に、ブロック分割部１０２は、画像読み込み部１０１で読み込まれた画像データをブロック分割する。続いて、埋込データ算出部１０３は、ブロック分割部１０２でブロック分割された画像データを使用して、ブロック単位に電子透かし埋め込みデータ生成の為の前半処理を行う。続いて、グレイコード符号化部１０４は、埋込データ算出部１０３でブロック単位に算出された埋め込みデータを基に電子透かし埋込みデータ生成する為の後半処理を行う。続いて、透かしデータ埋込部１０５は、埋込データ算出部１０３及びグレイコード符号化部１０４による処理後に、ブロック単位に電子透かしを埋込む。最後に、画像出力部１０６は、電子透かし埋め込み処理を画像全ブロックに施した画像データを出力する。
【００５７】
次に、電子透かしの再現性チェック処理について説明する。
【００５８】
最初に、透かし埋込画像読み込み部１１１は、電子透かしが埋め込まれた画像データを読込む。次に、ブロック分割部１１２は、透かし埋込画像読み込み部１１１で読み込まれた画像データをブロック分割する。続いて、比較データ算出部１１３は、ブロック分割部１１２でブロック分割された画像データを使用して、ブロック単位に電子透かし埋込みデータと比較する為に、埋込み時と同じ方法によって電子透かしデータを生成する前半処理を行う。続いて、グレイコード符号化部１１４は、比較データ算出部１１３でブロック単位に算出された比較データを基に、電子透かし埋込みデータ生成時と同じ方法によって電子透かしデータを生成する為の後半処理を行う。比較処理部１１５は、比較データ算出部１１３及びグレイコード符号化部１１４による処理後に、ブロック単位に電子透かしの再現性（即ち改ざんが有るか否か）のチェックを行う。最後に、結果画像出力部１１６は、電子透かしの再現性チェック処理を画像全ブロックに施した結果を出力する。
【００５９】
以上の機能の構成により、本実施形態に係る画像処理装置１１０では、画像読み込み部１０１〜画像出力部１０６により、画像データに対して電子透かしを埋め込む処理を行う。また、透かし埋込画像読み込み部１１１〜結果画像出力部１１６により、画像データ中の電子透かしの再現性のチェック（即ち、改ざん検出）処理を行う。これらの処理の詳細例について、それぞれ図３及び図５を用いて説明する。
【００６０】
（電子透かし埋め込み処理の例）
図３は、本実施形態に係る電子透かし埋め込み処理を示すフローチャートの一例である。ここでは、当該画像処理装置１１０が行う電子透かし埋め込み処理の一例について図１及び図２も参照して詳細に説明する。なお、図３では、暗号化処理は省いている。また、電子透かし埋め込み時に埋め込み情報が抽出される時に壊れ難くするための誤り訂正符号化などの処理についても省略している。
【００６１】
まず、グレイ符号化のレベル値が設定される（Ｓ１）。ここでは、操作入力部２は、グレイ符号化のレベル値（例えば８ビット符号化の場合には８）をユーザのキー入力等に基づいて入力し、入力されたレベル値はグレイ符号化のレベル値として設定され、メモリ４に保存される。
【００６２】
ステップＳ２へ移って、画像読み込み部１０１は、電子透かしを埋め込む対象となる画像データを読み込む（Ｓ２）。ここでは、画像撮影部５が、電子透かしを埋め込む対象となる被写体をフルカラー等の多値画像で読み取り、メモリ４に保存される。
【００６３】
ステップＳ３へ移って、ブロック分割部１０２は、電子透かしを埋め込む対象となる画像データを矩形にブロック分割する（Ｓ３）。ここでは、ステップＳ２で読み込まれた画像データは、矩形（（ｍ×ｍ）画素：ｍは２のべき乗）にブロック分割される。分割された隣り合うブロック同士は、それぞれのブロック領域を一部ずつ重ねても良いし、分離しても良い。分割の仕方や、重ね方については、例えば特開２００３−２０４４２９号公報に記載の方法を用いてよいものとする。
【００６４】
ステップＳ４へ移って、埋め込みデータ算出部１０３は、ステップＳ３で分割されたブロック毎に電子透かしを埋め込む処理（ステップＳ５〜ステップＳ１０の処理）を行うための変数の初期設定を行う（Ｓ４）。ここでの変数とは、埋め込み用データを格納する埋め込み用データ格納変数Ｘやループ処理の現在処理ブロック位置を示す変数、及び現在処理済みブロック数＝０等である。
【００６５】
続いてステップＳ５へ移って、埋め込みデータ算出部１０３は、ステップＳ３で分割された全てのブロックについてのステップＳ７〜ステップＳ１０に係る処理が終了したか否かを判定する（Ｓ５）。ここでは、ステップＳ３において分割されたブロック数と、ステップＳ４で設定された変数の一つである現在処理済みのブロック数を比較することによって判定する。具体的な変数設定や判定方法は、既知であるので省略する。
【００６６】
ステップＳ５において、全てのブロックの処理が終了したと判定すると（Ｓ５、ＹＥＳ）、ステップＳ６へ移って、画像出力部１０６は、全ての分割されたブロックにおいて電子透かしが埋め込まれた画像データをメモリ４或いは外部記憶装置３に記憶・保存（或いは出力）する（Ｓ６）。ステップＳ５において、全てのブロックの処理が終了していないと判定すると（Ｓ５、ＮＯ）、ステップＳ７へ移る。
【００６７】
ステップＳ７へ移った場合、グレイコード符号化部１０４は、埋め込み用データ格納変数Ｘの値をグレイ符号化する（Ｓ７）。ここでは、グレイコード符号化部１０４は、ステップＳ１で設定されたグレイ符号化のレベル値を基に、ステップＳ４で設定された又はステップＳ９で更新された埋め込み用データ格納変数Ｘをグレイコード符号化する。
【００６８】
図４を用いてステップＳ７に係る処理について補足説明する。図４は、分割されたブロックと埋め込む情報の関係（情報提供側のブロックと情報受取り埋込み側のブロック）を説明するための図である。ステップＳ３で分割されたブロックに対する一連の繰り返し処理（ステップＳ７〜ステップＳ１０）が、左端のブロックから右に向かって行われる場合に、図４の（ｎ−１）番目のブロックに対する電子透かし埋め込み処理が終わった後、ｎ番目のブロックに対して電子透かし埋め込み処理を行う際の埋め込み情報と埋め込み先を表している。
【００６９】
例えば、ステップＳ１においてグレイ符号化のレベル値が８（＝埋め込む基になる算出値が８ビット表現であることを表す）に設定されているとする。このとき第ｎ番ブロックへ電子透かしを埋込むとき、一つ前に埋め込み処理済みの第(ｎ−１)番ブロックの画素平均値が128（10進数、以降、10進数の数字ＮはＮ(10）で表す）である場合、バイナリコードは10000000(2進数、以降、2進数の数字ＮはＮ(2)で表す)である。このとき、このバイナリコードをグレイ符号化した11000000（2）を第ｎ番ブロックに対する埋め込み用データである埋め込み用データ格納変数（Ｘ'とする）に代入する。
【００７０】
続いてステップＳ８へ移って、透かしデータ埋込部１０５は、第ｎ番ブロックに対して電子透かし情報、即ちステップＳ７でグレイ符号化された埋め込み用データ格納変数Ｘ'を埋め込む（Ｓ８）。ステップでは、当該ブロックに隣接するブロック（ループ処理の次の処理対象のブロック）の電子透かしとして、ステップ７で算出したグレイ符号データを埋込む処理を行う。なお、電子透かしとして値を埋込む方法としては、周知の多くの方法があり、詳細は省略する。また、前述したステップＳ７及びステップＳ８を繰り返すことにより、ブロック毎に電子透かしを埋め込む処理を行う。
【００７１】
ステップ９へ移って、埋込データ算出部１０３は、埋め込み用データ格納変数Ｘを更新する（Ｓ９）。当該ブロック内の電子透かし埋込み後の画素データ値から算出した（画素平均値や分散値など）値をＸに代入する。
【００７２】
ステップＳ１０へ移って、埋込データ算出部１０３は、現在処理ブロック位置を示す変数の更新及び現在処理済みブロック数に１加える更新を行い（Ｓ１０）、ステップＳ５へ移って、再び次のブロックについて電子透かし埋め込み処理を行う。
【００７３】
以上で示される処理により、本実施形態に係る画像処理装置１００では、画像データに対して電子透かしを埋め込む処理を行う。
【００７４】
なお、繰り返し処理（ステップＳ７〜ステップＳ１０）について、画像データを分割することで作成されたブロックのうち、最初に処理されるブロックについては前のブロックが存在しないため、前のブロックから埋め込むべきグレイ符号を求めることが出来ない。そこで、初期値として、埋め込み用データ格納変数Ｘに所定の値を入れておくことにする。また、最初のブロックについては改ざんを判定しなくても良いのであれば、省略するようにしてもよい。
【００７５】
（電子透かし再現性のチェック処理の例）
図５は、本実施形態に係る電子透かし再現性チェック（即ち、改ざんの検出）処理を示すフローチャートの一例である。ここでは、当該画像処理装置１００が行う電子透かし再現性チェック処理の一例について図１及び図２も参照して詳細に説明する。なお、図５では、暗号化処理は省いている。また、電子透かし埋め込み時に埋め込み情報が誤り訂正符号化された場合に誤り訂正符号化を復号化する処理などについても省略している。
【００７６】
まず、再現性チェックのレベル値が設定される（Ｓ３１）。ここでは、操作入力部２は、再現性チェックのレベル値（Ｃ＿Ｌｅｖｅｌ）（例えば８ビット符号化の場合には８）をユーザのキー入力等に基づいて入力し、入力されたレベル値は再現性チェックのレベル値として設定され、メモリ４に保存される。なお、図３のステップＳ１におけるグレイ符号化のレベル値以下の値が設定される必要がある。
【００７７】
ステップＳ３２へ移って、透かし埋込画像読み込み部１１１は、再現性チェックの対象となる電子透かしが埋め込まれた画像データを読み込む（Ｓ３２）。ここでは、画像撮影部５は、電子透かしが埋め込まれた画像データをフルカラー等の多値画像で読み取り、メモリ４に保存する。
【００７８】
ステップＳ３３へ移って、ブロック分割部１１２は、再現性チェックの対象となる画像データを矩形にブロック分割する（Ｓ３３）。ここでは、図３のステップＳ３の方法と同様である必要がある。
【００７９】
ステップＳ３４へ移って、比較データ算出部１１３は、ステップＳ３３で分割されたブロック毎に埋め込まれた電子透かしをチェックする処理（ステップＳ３５〜ステップＳ４３の処理）を行うための変数の初期設定を行う（Ｓ３４）。ここでの変数とは、電子透かしを抽出するための電子透かし抽出用データを格納する抽出用データ格納変数Ｙやループ処理の現在処理ブロック位置を示す変数、及び現在処理済みブロック数＝０等である。
【００８０】
ステップＳ３５へ移って、比較データ算出部１１３は、ステップＳ３３で分割された全てのブロックについてのステップＳ３７〜ステップＳ４３に係る処理が終了したか否かを判定する（Ｓ３５）。ここでは、ステップＳ３３において分割されたブロック数と、ステップＳ４で設定された変数の一つである現在処理済みのブロック数を比較することによって判定する。具体的な変数設定や判定方法は、既知であるので省略する。
【００８１】
ステップＳ３５において、全てのブロックの処理が終了したと判定すると（Ｓ３５、ＹＥＳ）、ステップＳ３６へ移って、結果画像出力部１１６は、全ての分割されたブロックについて電子透かしを解析した結果を表示部１３に表示する（Ｓ３６）。ここでは、例えば、後述のステップＳ４１において改ざんありと判断されて記憶されたブロック位置を、反転表示や塗りつぶし表示で示す。ステップＳ３５において、全てのブロックの処理が終了していないと判定すると（Ｓ３５、ＮＯ）、ステップＳ３７へ移る。
【００８２】
ステップＳ３７へ移った場合、グレイコード符号化部１１４は、電子透かし抽出用データ格納変数Ｙの値をグレイコード符号化する（Ｓ３７）。ここでは、グレイコード符号化部１１４は、ステップＳ３４で設定された又はステップＳ４２で更新された電子透かし抽出用データ格納変数Ｙをグレイコード符号化する。なお、グレイコード符号化された電子透かし抽出用データ格納変数Ｙは、電子透かし抽出用データ格納変数（ここではＹ'）に格納される。
【００８３】
なお、ステップＳ３１において再現性チェックのレベル値が８（＝電子透かし抽出時の算出値が埋め込み処理と同じ８ビット表現であり、全ビット有効であることを表す）に設定されているとする。また、予め第ｎ番ブロックには、埋め込み用データ格納変数Ｘ'として11000000（2）が埋め込まれているものとする。詳細は図３のステップＳ７と同様である。
【００８４】
続いてステップＳ３８へ移って、比較処理部１１５は、当該ブロックから電子透かし情報を抽出する処理を行う（Ｓ３８）。
【００８５】
ステップ３９へ移って、比較処理部１１５は、電子透かし抽出値をチェックする（Ｓ３９）。ここでは、ステップＳ３１で設定された再現性チェックのレベル値を基に、チェックに使用する上位有効桁数を決定し、その範囲で、ステップＳ３７で抽出用データ格納変数Ｙをグレイ符号化したデータと、ステップ３８で抽出した電子透かし情報が同じ値であるかどうか、即ち当該ブロックにおいて改ざんがあるか否かをチェックする。
【００８６】
即ち、図３に示される電子透かし埋め込み処理により第ｎ番ブロックに埋め込まれた電子透かし情報（即ち、上記Ｘ'）と、ステップＳ３９に係る処理により改ざんチェック時に、画像データの画素値から埋め込み用データ格納変数Ｘと同様の方法で算出した抽出用データ格納変数Ｙを電子透かし埋め込み時と同様の方法でグレイ符号化したグレイ符号化データＹ'とを比較する。
【００８７】
このとき、まず、第ｎ番ブロックに埋め込まれている電子透かし情報（即ち、上記Ｘ'）が、正常に（誤り訂正符号等を用いてもよい）復元できたとする。次に、一つ前の第（ｎ―１）番ブロックの抽出時の画素平均値が127（10）(上述の128と異なる数値であるのは、不可逆圧縮処理や改ざん等よる何らかの理由で埋込み内容から少し変化した場合）であるとすると、バイナリコードは01111111(2)であり、それをグレイ符号化した、01000000（2）が電子透かし抽出用データ格納変数（ここではＹ'）に代入される。以上の内容より、電子透かし埋め込み情報と電子透かし抽出情報を比較するのは、Ｘ'とＹ'を比較することである。
【００８８】
ステップＳ４０へ移って、比較処理部１１５は、ステップＳ３９における電子透かし埋め込み値と電子透かし抽出値との比較により、改ざんがないか否かを判定する（Ｓ４０）。ステップＳ４０では、改ざんがあるか否かの判定は分割されたブロック毎に行われる。改ざんがあるか否かの判定方法は、ステップ３９で決定した有効桁数において、電子透かし埋め込み情報Ｘ'と電子透かし抽出情報Ｙ'との比較の結果として、両データが完全に一致している場合、又は、任意の１ビットが特定の条件の基に（詳細は後述の具体例、及び、グレイ符号データの利用方法の例を参照）不一致の場合は当該ブロック中の画素値は改ざんされていないと判断する。また、任意の２ビット以上が同時に不一致の場合は、当該ブロック中の画素値は改ざんされていると判断する。
【００８９】
ステップＳ４０において改ざんされていないと判断された場合には（Ｓ４０、ＹＥＳ）、ステップ４２へ移る。ステップＳ４０において改ざんされていると判断された場合には（Ｓ４０、ＮＯ）、ステップ４１へ移って、当該ブロック内に改ざんありとみなし、当該ブロック位置を改ざん対象ブロックとしてメモリ４に記憶する。
【００９０】
ステップ４２へ移って、比較データ算出部１１３は、電子透かし抽出用データ格納変数Ｙを更新する（Ｓ４２）。当該ブロック内の電子透かし抽出後の画素データ値から算出した（画素平均値や分散値など）値をＹに代入する。
【００９１】
ステップＳ４３へ移って、比較データ算出部１１３は、現在処理ブロック位置を示す変数の更新及び現在処理済みブロック数に１加える更新を行い（Ｓ４３）、ステップＳ３５へ移って、再び次のブロックについて電子透かしの再現性チェック処理を行う。
【００９２】
以上で示される処理により、本実施形態に係る画像処理装置１００では、画像データに埋め込まれた電子透かしの再現性をチェックする処理を行う。
【００９３】
なお、繰り返し処理（ステップＳ３５〜ステップＳ４３）について、画像データを分割することで作成されたブロックのうち、最初に処理されるブロックについては前のブロックが存在しないため、前のブロックから埋め込むべきグレイ符号を求めることが出来ない。そこで、初期値として、電子透かし抽出用データ格納変数Ｙに所定の値を入れておくことにする。また、最初のブロックについては改ざんを判定しなくても良いのであれば、省略するようにしてもよい。
【００９４】
（具体例）
以下、図５のステップＳ４０における処理の具体例について図６及び図７を参照して説明する。図６は、グレイ符号データの比較結果、改ざんなしである場合を説明するための図である。図７は、グレイ符号データの比較結果、改ざんありである場合を説明するための図である。
【００９５】
ここでは、図３の電子透かし埋め込み処理を示すフローチャートにおいて、ステップＳ１において設定されるグレイ符号化のレベル値は４（ビット）、ステップＳ４において設定される埋め込み用データ格納変数Ｘの初期設定値を直前処理ブロックの輝度値の平均値である０〜１５の範囲とする。
【００９６】
このとき、第（ｎ−１）番ブロックの輝度値の平均値が12(10)の場合、グレイ符号化されたデータは、1010(2)になる。つまり、第ｎ番ブロックに埋め込む電子透かしは、1010(2)の４ビットの情報になる。
【００９７】
なお、埋め込む電子透かし情報は、例えば、このグレイ符号化されたデータのままでも良いが、少しの画質劣化を回避できる耐性を持たせて、誤り訂正に強いＢＣＨ符号やたたみ込み符号で符号化してもよい。その場合は埋め込みビット数が増加する。
【００９８】
次に、電子透かし情報を埋込んだ後に内部データの変化が生じた場合（図６）を考える。ここでは一例として画像劣化を説明する。例えば、画像データを保存する直前に非可逆圧縮処理によって画質が少し劣化（変化）することによって、当該第（ｎ−１）番ブロックの輝度値の平均値が11(10)に変化したとする。埋め込まれた電子透かし情報を抽出時に、再現性チェックのレベル値（Ｃ＿Ｌｅｖｅｌ）が４に設定されていると、グレイ符号化されたデータは、1110(2)となり、元の値とは１ビット値が異なることになるが、「この変化は小さい」と判断できるため、改ざんとは見なさない処置が取れる。
【００９９】
一方、電子透かし情報を埋め込んだ後に画像データの改ざんがあった場合（図７）を考える。例えば、画像データを保存後に改ざんされて、当該第（ｎ―１）番ブロックの輝度値の平均値が10(10)に変化したとする。埋め込まれた電子透かし情報を抽出時に、再現性チェックのレベル値（Ｃ＿Ｌｅｖｅｌ）が４に設定されていると、グレイ符号化されたデータは、1111(2)となり、元の値とは２ビット値が異なることになるので、圧縮処理による画質変化よりも大きい変化であることが分かり、改ざんと認識しやすくなる。
【０１００】
但し、例えば、埋め込まれた電子透かし情報を抽出時に、再現性チェックのレベル値（Ｃ＿Ｌｅｖｅｌ）が３（処理範囲の位取りを上記４ビットから上位３ビットに変更）に設定されると、埋め込まれた電子透かし情報は101(2)、内部データの変化による変化後の電子透かし抽出情報は111(2)、画像データの改ざんによる変化後の電子透かし抽出情報は111(2)となる。即ち、内部データの変化による変化と画像データの改ざんによる変化とが同じ結果となり、見分けがつかないことになる。このように、判定に使用するビット数を変化させることにより、どのくらいの変化が起きたときに改ざんとみなすかを調整することが可能となる。
【０１０１】
また、別の例として、埋め込み用の電子透かし情報Ｘを受け取って電子透かし埋込み処理した値は、誤り訂正符号機能によって、情報劣化（変化）を阻止し易くなるが、それを乗り越えて、情報劣化が少し起こった場合でも、画像圧縮時の画像データ劣化が、埋込み情報値生成側（輝度平均値）の変化として出ていなければ、劣化のレベルが、例えば１ビットの相違などとして、捉えることができる。
【０１０２】
（グレイ符号データの利用方法の例）
続いて、図５のステップＳ４０に係る処理におけるグレイ符号化データの利用方法について説明する。前述した図５のステップＳ４０では、電子透かし埋め込み情報Ｘ'と電子透かし抽出情報Ｙ'との比較に基づいて、改ざんされたか否かを判定すると説明した。ここでは電子透かし埋め込み情報Ｘ'と電子透かし抽出情報Ｙ'のグレイ符号化データの利用方法について図８のフローチャートを用いて説明する。
【０１０３】
図８は、グレイ符号データの比較処理を説明するための汎用フローチャートの一例である。ここでは、任意のビット数の二つのグレイ符号化データＸ、Ｙが、同一の値か、１０進数での差が１か、又は１０進数での差が２以上であるかを識別する方法を表す。
【０１０４】
まず、ＸとＹの排他的論理和演算結果をＺとする（Ｓ５１）。続いて、ステップＳ５１で演算されたＺに基づき、Ｚにおけるビット値１のビット数Ｕ及びＺにおけるビット値１の位置Ｖを算出する（Ｓ５２）。ここでは、ステップＳ５１で演算されたＺを最下位ビットから順にビット単位に調査し、初めてビット１を見つけた位置をＶとする。例えば、最下位ビットが１の時はＶ＝０、最下位ビットが０且つ最下位から２番目（最下位の隣）のビットが１の時はＶ＝１とする。また、同時にビット１の数をカウントしＵとする。例えば、Ｚ＝０００１０１００ビットであれば、Ｕ＝２、Ｖ＝２である。これらＵ、Ｖの算出方法は既知のものであるので、説明は省略する。以降ステップＳ５３以降の処理では、ステップＳ５２における算出結果を基にＸとＹの比較を行う。
【０１０５】
ステップＳ５３へ移って、Ｕ＝０であるか否かを判定する（Ｓ５３）。ここでは、ＸとＹが同一であるか否かを判定している。Ｕ＝０である場合（Ｓ５３、ＹＥＳ）、ステップＳ５４へ移って、Ｘ＝Ｙと判断する（Ｓ５４）。Ｕ＝０ではない場合（Ｓ５３、ＮＯ）、ステップＳ５５へ移る。
【０１０６】
ステップＳ５５へ移った場合、Ｕ＞１であるか否かを判定する（Ｓ５５）。Ｕ＞１である場合（Ｓ５５、ＹＥＳ）、ステップＳ５６へ移って、ＸとＹの距離（差）は、2（10）以上離れていると判断する（Ｓ５６）。Ｕ＜１である場合（Ｓ５５、ＮＯ）、ステップＳ５７へ移る。
【０１０７】
ステップＳ５７へ移った場合、Ｖ＝０であるか否かを判定する（Ｓ５７）。Ｖ＝０である場合（Ｓ５７、ＹＥＳ）、ステップＳ５８へ移って、ＸとＹの距離（差）は、1(10)であると判断する（Ｓ５８）。Ｖ＝０ではない場合（Ｓ５７、ＮＯ）、ステップＳ５９へ移る。
【０１０８】
ステップＳ５９へ移った場合、グレイ符号化データＸを最下位ビットから順にビット単位に調査し、初めてビット１を見つけた位置をＸｂとする。また、グレイ符号化データＹを最下位ビットから順にビット単位に調査し、初めてビット１を見つけた位置をＹｂとする（Ｓ５９）。ステップＳ５９に係る処理は、ステップＳ５２におけるＶを算出する際の処理と同様であるので、ここでは説明を省略する。
【０１０９】
続いてステップＳ６０へ移って、Ｘｂ＝Ｙｂ、且つ、Ｖ＝Ｘｂ＋１であるか否かを判定する（Ｓ６０）。Ｘｂ＝Ｙｂ、且つ、Ｖ＝Ｘｂ＋１である場合（Ｓ６０、ＹＥＳ）、ステップＳ５８へ移って、ＸとＹの距離（差）は、1(10)であると判断する。Ｘｂ＝Ｙｂ、且つ、Ｖ＝Ｘｂ＋１ではない場合（Ｓ６０、ＮＯ）、ステップＳ５６へ移って、ＸとＹの距離（差）は、2(10)以上離れていると判断する。
【０１１０】
以上に示される処理により、本実施形態に係る画像処理装置１００では、任意のビット数の二つのグレイ符号化データＸ、Ｙが、同一の値か、１０進数での差が１か、又は１０進数での差が２以上であるかを識別している。
【０１１１】
具体的な例をグレイ符号化データＸ、Ｙが４ビット、３ビット、２ビットの場合について、それぞれ図９、１０、１１を用いて説明する。まず、グレイ符号化データＸ、Ｙが４ビットである場合の説明を行う。次に、Ｘ，Ｙが４ビットである場合を参考にして汎用的なＮビットの場合について説明する。最後に、Ｘ、Ｙが３ビット、２ビットの場合についてそれぞれ説明を行う。なお、図８で示したフローチャートは、汎用的なＮビットの場合の処理を示している。
【０１１２】
（グレイ符号化データＸ、Ｙが４ビットの場合）
図９は、グレイ符号データが４ビット表現の場合のＸＯＲ演算結果を説明するための図である。図９の横軸、縦軸のそれぞれには、４ビットで表現されたＸ、Ｙが、同図の各要素には、ＸとＹとの排他的論理和（ＸＯＲ演算値）の値が示されている。
【０１１３】
このとき、図９を見ると、隣り合う（距離が１の）グレイ符号データ値（例えばＸ＝0000(2)、Ｙ＝0001(2)）のＸＯＲ演算値は、所定の１ビットだけがビットＯＮ（１又は「真」）でそれ以外はビットＯＦＦ（０又は「偽」）が算出されている（図９の下線付き数字）。また、更にもう一つ隣（距離が２）のグレイ符号データ値とのＸＯＲ演算値（例えばＸ＝0000(2)、Ｙ＝0011(2)）は、所定の２ビットだけがビットＯＮでそれ以外はビットＯＦＦが算出されている（図９の枠囲み数字）。
【０１１４】
この性質により、以下のグレイ符号データの利用方法が可能になる。ここで埋め込みデータは全てグレイ符号データとする。
【０１１５】
（Ａ）階調数レベル上において、隣の値迄との不一致か、隣よりも少し隔たりの大きい値との不一致かを識別する時の処理が単純（正解値と抽出した埋込み値とのＸＯＲ演算を行い、演算結果のビットＯＮ数が１個なら隣の値、２個ならその隣の値と判断できる）になる。
【０１１６】
（Ｂ）ソースデータをビット分解して透かし埋込みする過程において、「電子透かし埋め込み後に、任意の１ビットが劣化しても有効であるが、任意の２ビットが同時に劣化した時は無効にしたい」場合に、単純な処理（正解値と抽出した埋込み値とのＸＯＲ演算を行って、演算結果のビットＯＮ数が１個以下なら抽出値は有効、２個なら抽出値は無効と判断できる）で実現できる。
【０１１７】
上記（Ａ）、（Ｂ）で示されるグレイ符号データの利用方法が可能になる。但し、図９の丸囲み数字のように、演算結果の中にビットＯＮが１個ずつ存在するが、演算元であるグレイ符号データＸ，Ｙは隣り合う値(距離が１の)同士ではないものがある。これらを隣り合う値同士のＸＯＲ演算結果（即ち、図９の下線付き数字）と識別できるようにする必要がある。その識別方法は、次のように行う。
【０１１８】
図８の下線付き数字及び丸囲み数字のように、グレイ符号データが４ビットの場合は、演算結果の中にビットＯＮが１個ずつ存在するケースは、0001ビット，0010ビット，0100ビット，1000ビットの４種類ある。そこで、それぞれに分析すると、次の（１）〜（４）の結果となる。
（１）0001ビットの場合：
全て下線付き数字に該当する（図９の例では、例えば［Ｘ、Ｙ］＝［0000(2)、0001(2)］などの８通り）。
（２）0010ビットの場合：
（２−Ａ）グレイ符号化データＸの最下位ビットがビットＯＮである場合(Ｘ＝???1(2)、"？"は1ビットで０又は１のどちらでも存在可能)は、全て下線付き数字に該当する（図９の例では、例えば［Ｘ、Ｙ］＝［0001(2)、0011(2)］などの４通り）。
【０１１９】
（２−Ｂ）グレイ符号化データＸの最下位ビットがビットＯＦＦである場合(Ｘ＝???0(2))は、全て丸囲み数字に該当する（図９の例では、例えば［Ｘ、Ｙ］＝［0000(2)、0010(2)］などの４通り）。
（３）0100ビットの場合：
（３−Ａ）グレイ符号化データＸの最下位から２番目のビットがビットＯＮ、且つ、最下位ビットがＯＦＦである場合(Ｘ＝??10(2))、全て下線付き数字に該当する（図９の例では、例えば［Ｘ、Ｙ］＝［0010(2)、0110(2)］などの２通り）。
【０１２０】
（３−Ｂ）上記（３−Ａ）以外である場合(Ｘ=??**(2)、"**"は、"10"以外の任意の２ビット)、全て丸囲み数字に該当する（図９の例では、例えば［Ｘ、Ｙ］＝［0000(2)、0100(2)］などの６通り）。
（４）1000ビットの場合：
（４−Ａ）グレイ符号化データＸの最下位から３番目のビットがビットＯＮ、且つ、最下位と最下位から２番目の両ビットがビットＯＦＦである場合(Ｘ=?100(2))、全て下線付き数字に該当する（図９の例では、［Ｘ、Ｙ］＝［0100(2)、1100(2)］の１通り）。
【０１２１】
（４−Ｂ）上記（４−Ａ）以外である場合、全て丸囲み数字に該当する（図９の例では、例えば［Ｘ、Ｙ］＝［0000(2)、1000(2)］などの７通り）。
【０１２２】
以上の（１）〜（４）の結果より、グレイ符号データが４ビットの場合には、演算結果の中にビットＯＮが１個ずつ存在する全３２（＝８＋４＋４＋２＋６＋１＋７）通りの内、隣同士の数値（下線付き数字）であるのは１５（＝８＋４＋２＋１）通り、即ち１５／３２＝約４７％となる。
【０１２３】
（グレイ符号化データＸ、ＹがＮビットの場合）
以上のことから、グレイ符号データＸ、ＹがＮビット表現の場合については以下のようになる。なお、前述したように図８で示したフローチャートは、グレイ符号データＸ、ＹがＮビット表現の場合の汎用的な処理を示している。
（１）グレイ符号データＸ、Ｙ同士の排他的論理和演算結果であるＺ（Ｚ＝ＸxorＹ）の分析により、（２）以下を判断する。ここで、'xor'は、排他的論理和演算子である。
（２）上記（１）で算出されたグレイ符号データＺのビットデータにおいて、以下の判断を行う。
（２−１）  ビットＯＮの数が０個の場合、Ｘ＝Ｙとみなす。
（２−２）  ビットＯＮの数が１個の場合、以下（３）の内容になる。
（２−３）  ビットＯＮの数が２個以上の場合、グレイ符号データＸとＹが表す値の差は、２以上であるとみなす。
（３）上記（１）ので算出されたグレイ符号データＺのビットＯＮの数が１個の場合のビットＯＮ位置は、Ｎ種類（00・・・・・・001(2),00・・・・・・010(2)、・・・、10・・・・・・000(2)）ある。これらを整理すると以下のようになる。
【０１２４】
（３−１）最下位ビットが１の場合：
全て下線付き数字に該当し、グレイ符号データＸとＹの値の差が、１（10）になる数値同士であることがわかる。
【０１２５】
（３−２）  最下位から２番目のビットが１の場合：
（３−２−Ａ）グレイ符号化データＸとＹが共に最下位ビットがビットＯＮである組合せのとき、全て下線付き数字に該当する。即ち、ＸとＹは、最下位ビット及び最下位から２番目のビットが１の数値、最下位ビットが１及び最下位から２番目のビットが０の組合せ(Ｘ,Ｙの割り当ては任意)であり、下線付き数字に存在する符号内容（グレイ符号データＸとＹが表す値の差は1）である。例えば、グレイ符号"1011(2)"と"1001(2)"は、それぞれ13(10)と14(10)を表しており、その差は1(10)である。
【０１２６】
（３−２−Ｂ）グレイ符号化データＸとＹが共に最下位ビットがビットＯＦＦである組合せのとき、全て丸囲み数字に該当する（ＸとＹが表す値の差は2以上）。即ち、グレイ符号化データＸとＹは、最下位ビットが０及び最下位から２番目のビットが１の数値、最下位ビットが０及び最下位から２番目のビットが０の数値の組合せ（Ｘ,Ｙの割り当ては任意）であり、これは、丸囲み数字に該当する符号である。例えば、グレイ符号"1010(2)"と"1000(2)"ビットは、それぞれ12(10)と15(10)を表しており、その差は10進数表現で３である。
【０１２７】
（３―３）  最下位からＮ番目（Ｎ≧３）のビットが１の場合（最上位ビットが１の場合を含まない）：
（３−３−Ａ）グレイ符号化データＸとＹが、共に最下位からＮ番目のビットがビットＯＮ、且つ、最下位から数えて(Ｎ-1)番目〜最下位の全ビットがビットＯＦＦの組合せのとき、全て下線付き数字に該当する（グレイ符号データＸとＹが表す値の差は1）。即ち、グレイ符号化データＸとＹは、"?→?010--→0(2)"と"?→?110--→0(2)"の組合せ（Ｘ,Ｙの割当ては任意）であり、下線付き数字に該当する符号内容（グレイ符号ＸとＹが表す値の差は１(10)）である。例えば、Ｎ=３によるグレイ符号"0010(2)"と"0110(2)"は、それぞれ3(10)と4(10)を表しており、その差は1(10)である。
【０１２８】
（３−３−Ｂ）上記（３−３−Ａ）以外の時、丸囲み数字に該当する（グレイ符号ＸとＹが表す値の差は、2以上）。即ち、グレイ符号データＸとＹは、"?→?0*--→*(2)"と "?→?1*--→*(2)"の組合せ（Ｘ,Ｙの割当ては任意）であり、丸囲み数字に該当する符号内容である。例えば、Ｎ＝３によるグレイ符号"1001(2)"と"1101(2)"、それぞれ14(10)と9(10)を表しており、その差は5(10)である。
【０１２９】
（３−４）  最上位ビットが１の場合：
（３−４−Ａ）グレイ符号化データＸとＹが、共に最上位の次(２番目)のビットがビットＯＮ、且つ、最上位から数えて３番目〜最下位の全ビットがビットＯＦＦの組合せのとき、全て下線付き数字に該当する符号内容（グレイ符号ＸとＹが表す値の差は1(10)）である。即ち、グレイ符号化データＸとＹは、"010‥→0(2)"、"110‥→0(2)"の組合せ(Ｘ,Ｙの割当ては任意)であり、下線付き数字に該当する符号内容（グレイ符号ＸとＹが表す値の差は1(10)）である。例えば、グレイ符号"0100(2)"と"1100(2)"は、それぞれ7(10)と8(10)を表しており、その差は1(10)である。
【０１３０】
（３−４−Ｂ）上記（３−４−Ａ）以外の時、丸囲み数字に該当する（グレイ符号ＸとＹが表す値の差は2以上）。即ち、グレイ符号データＸとＹは、"0*--→*(2)"と"1*--→*(2)"の組合せ（Ｘ、Ｙの割り当ては任意）であり、丸囲み数字に該当する符号内容である。例えば、グレイ符号"0111(2)"と"1111(2)"は、それぞれ5(10)と10(10)を表しており、その差は5(10)である。
【０１３１】
以上に説明した、グレイ符号データＸ、ＹがＮビット表現の場合についての処理をまとめたものが図８で示したフローチャートである。
【０１３２】
（グレイ符号化データＸ、Ｙが３ビットの場合）
図１０は、グレイ符号データが３ビット表現の場合のＸＯＲ演算結果を説明するための図である。図１０の横軸、縦軸のそれぞれには、３ビットで表現されたＸ、Ｙが、同図の各要素には、ＸとＹとの排他的論理和（ＸＯＲ演算値）の値が示されている。
【０１３３】
ここでは、例えば、図９の上位３ビットだけに注目した演算結果を示している。
【０１３４】
このとき、図１０を見ると、隣り合う（距離が１の）グレイ符号データ値（例えばＸ＝000(2)、Ｙ＝001(2)）のＸＯＲ演算値は、所定の１ビットだけがビットＯＮ（１又は「真」）でそれ以外はビットＯＦＦ（０又は「偽」）が算出されている（図１０の下線付き数字）。また、更にもう一つ隣（距離が２）のグレイ符号データ値とのＸＯＲ演算値（例えばＸ＝000(2)、Ｙ＝011(2)）は、所定の２ビットだけがビットＯＮでそれ以外はビットＯＦＦが算出されている（図１０の枠囲み数字）。
【０１３５】
この性質により、上記したグレイ符号データの利用方法が可能になる。ここで埋め込みデータは全てグレイ符号データとする。但し、図１０の丸囲み数字のように、演算結果の中にビットＯＮが１個ずつ存在するが、演算元であるグレイ符号データＸ，Ｙは隣り合う値(距離が１の)同士ではないものがある。これらを隣り合う値同士のＸＯＲ演算結果（即ち、図１０の下線付き数字）と識別できるようにする必要がある。その識別方法は、前述したグレイ符号化データＸ、ＹがＮビットの場合と同様にして行う。
【０１３６】
図１０の下線付き数字及び丸囲み数字のように、グレイ符号データが３ビットの場合は、演算結果の中にビットＯＮが１個ずつ存在するケースは、001ビット，010ビット， 100ビットの３種類ある。前述したグレイ符号化データＸ、ＹがＮビットの場合の説明における（３）に当てはめて説明を行う。
【０１３７】
（１）  最下位ビットが１（ここでは001ビット）の場合：
全て下線付き数字に該当し、グレイ符号データＸとＹの値の差が、１（10）になる数値同士であることがわかる（図１０の例では、例えば［Ｘ、Ｙ］＝［000(2)、001(2)］などの４通り）。
（２）  最下位から２番目のビットが１（ここでは010ビット）の場合：
（２−Ａ）グレイ符号化データＸとＹが共に最下位ビットがビットＯＮである組合せのとき、全て下線付き数字に該当する（図１０の例では、例えば［Ｘ、Ｙ］＝［001(2)、011(2)］などの２通り）。
【０１３８】
（２−Ｂ）グレイ符号化データＸとＹが共に最下位ビットがビットＯＦＦである組合せのとき、全て丸囲み数字に該当する（図１０の例では、例えば［Ｘ、Ｙ］＝［000(2)、010(2)］などの２通り）。
（３）  についてはここでは考慮しない。
（４）  最上位ビットが１（ここでは100ビット）の場合：
（４−Ａ）グレイ符号化データＸとＹが、共に最上位の次(２番目)のビットがビットＯＮ、且つ、最上位から数えて３番目〜最下位の全ビットがビットＯＦＦの組合せのとき、全て下線付き数字に該当する（図１０の例では、［Ｘ、Ｙ］＝［010(2)、110(2)］の１通り）。
【０１３９】
（４−Ｂ）上記（４−Ａ）以外の時、丸囲み数字に該当する（図１０の例では、例えば［Ｘ、Ｙ］＝［011(2)、111(2)］などの３通り）。
【０１４０】
以上の（１）〜（４）の結果より、グレイ符号データが３ビットの場合には、演算結果の中にビットＯＮが１個ずつ存在する全１２（＝４＋２＋２＋１＋３）通りの内、隣同士の数値（下線付き数字）であるのは７（＝４＋２＋１）通り、即ち７／１２＝約５８％となる。
【０１４１】
（グレイ符号化データＸ、Ｙが２ビットの場合）
図１１は、グレイ符号データが２ビット表現の場合のＸＯＲ演算結果を説明するための図である。図１１の横軸、縦軸のそれぞれには、２ビットで表現されたＸ、Ｙが、同図の各要素には、ＸとＹとの排他的論理和（ＸＯＲ演算値）の値が示されている。
【０１４２】
ここでは、例えば、図１０の上位２ビットだけに注目した演算結果を示している。
【０１４３】
このとき、図１１を見ると、隣り合う（距離が１の）グレイ符号データ値（例えばＸ＝00(2)、Ｙ＝01(2)）のＸＯＲ演算値は、所定の１ビットだけがビットＯＮ（１又は「真」）でそれ以外はビットＯＦＦ（０又は「偽」）が算出されている（図１１の下線付き数字）。また、更にもう一つ隣（距離が２）のグレイ符号データ値とのＸＯＲ演算値（例えばＸ＝00(2)、Ｙ＝11(2)）は、所定の２ビットだけがビットＯＮでそれ以外はビットＯＦＦが算出されている（図１１の枠囲み数字）。
【０１４４】
この性質により、上記したグレイ符号データの利用方法が可能になる。ここで埋め込みデータは全てグレイ符号データとする。但し、図１１の丸囲み数字のように、演算結果の中にビットＯＮが１個ずつ存在するが、演算元であるグレイ符号データＸ，Ｙは隣り合う値(距離が１の)同士ではないものがある。これらを隣り合う値同士のＸＯＲ演算結果（即ち、図１０の下線付き数字）と識別できるようにする必要がある。その識別方法は、前述したグレイ符号化データＸ、ＹがＮビットの場合と同様にして行う。
【０１４５】
図１１の下線付き数字及び丸囲み数字のように、グレイ符号データが２ビットの場合は、演算結果の中にビットＯＮが１個ずつ存在するケースは、01ビット，10ビットの２種類ある。前述したグレイ符号化データＸ、ＹがＮビットの場合の説明における（３）に当てはめて説明を行う。
【０１４６】
（１）  最下位ビットが１（ここでは01ビット）の場合：
全て下線付き数字に該当し、グレイ符号データＸとＹの値の差が、１（10）になる数値同士であることがわかる（図１１の例では、例えば［Ｘ、Ｙ］＝［00(2)、01(2)］などの２通り）。
（２）、（３）  についてはここでは考慮しない。
（４）  最上位ビットが１（ここでは10ビット）の場合：
（４−Ａ）グレイ符号化データＸとＹが、共に最上位の次(２番目)のビットがビットＯＮ、且つ、最上位から数えて３番目〜最下位の全ビットがビットＯＦＦの組合せのとき、全て下線付き数字に該当する（図１１の例では、［Ｘ、Ｙ］＝［01(2)、11(2)］などの１通り）。
【０１４７】
（４−Ｂ）上記（４−Ａ）以外の時、丸囲み数字に該当する（図１１の例では、［Ｘ、Ｙ］＝［00(2)、10(2)］などの１通り）。
【０１４８】
以上の（１）〜（４）の結果より、グレイ符号データが２ビットの場合には、演算結果の中にビットＯＮが１個ずつ存在する全４（＝２＋１＋１）通りの内、隣同士の数値（下線付き数字）であるのは３（＝２＋１）通り、即ち３／４＝７５％となる。
【０１４９】
（その他）
以上のことは、同じソースデータを使用した濃度値など程度(諧調)を表す値の桁を少なく(下位桁を捨て上位桁だけを残す。例えば、下位１ビット少なくすると階調数は１／２になる)しても、それぞれの諧調数レベル上に於いて、隣の値との不一致か、隣よりも少し隔たりの大きい値との不一致かを識別するのが単純であることを表す。
【０１５０】
この性質により、以下のグレイ符号データの利用方法が可能になる。ここで埋め込みデータは全てグレイ符号データとする。
【０１５１】
（Ａ）．濃度値など程度を表すデータを基にして、透かし埋込みするデータにファジー性を表現したい場合は、程度を表すデータを予め最大精度のソース情報→グレイ符号にして埋込んでおく。埋込んだ情報を抽出する過程に於いて、劣化したデータの有効性を判断するレベル分けに、透かし埋込み時のデータの上位桁からの有効にする桁数の分け方で対応する。
【０１５２】
（Ｂ）．埋込むソースデータを一旦暗号化や他の符号化してからグレイ符号化して埋込む場合に於いて、適用する暗号化や符号化機能が程度を表せる内容になっている時は、ソース情報→グレイ符号データを直接埋込む場合と同じように、埋込んだグレイ符号データを抽出する過程に於いて、劣化したデータの有効性を判断するレベル分けに、透かし埋込み時のデータの上位桁からの有効にする桁数の分け方で対応する。
【０１５３】
以上、実施形態に基づき本発明の説明を行ってきたが、上記実施形態にあげたその他の要素との組み合わせなど、ここで示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【０１５４】
【図１】本実施形態に係る画像処理装置の装置構成の一例を示す図である。
【図２】本実施形態に係る画像処理装置の機能構成の一例を示すブロック図である。
【図３】本実施形態に係る電子透かし埋め込み処理を示すフローチャートの一例である。
【図４】分割されたブロックと埋め込む情報の関係を説明するための図である。
【図５】本実施形態に係る電子透かし再現性チェック処理を示すフローチャートの一例である。
【図６】グレイ符号データの比較結果、改ざんなしである場合を説明するための図である。
【図７】グレイ符号データの比較結果、改ざんありである場合を説明するための図である。
【図８】グレイ符号データの比較処理を説明するための汎用フローチャートの一例である。
【図９】グレイ符号データが４ビット表現の場合のＸＯＲ演算結果を説明するための図である。
【図１０】グレイ符号データが３ビット表現の場合のＸＯＲ演算結果を説明するための図である。
【図１１】グレイ符号データが２ビット表現の場合のＸＯＲ演算結果を説明するための図である。
【符号の説明】
【０１５５】
１    全体制御部
２    操作入力部
３    外部記憶装置
４    メモリ
５    画像撮影部
６    表示部
７    外部からの任意データ入力部
８    電子透かし埋込み用ソースデータ生成部
９    グレイ（グレイ）符号化部
１０    電子透かし埋込み部
１１    画像再生部
１２    電子透かし解読部
１３    検出した改ざん部の（反転）表示部
１４    バス
【図１】
2009076990.tif 000003
【図２】
2009076990.tif 000004
【図３】
2009076990.tif 000005
【図４】
2009076990.tif 000006
【図５】
2009076990.tif 000007
【図６】
2009076990.tif 000008
【図７】
2009076990.tif 000009
【図８】
2009076990.tif 000010
【図９】
2009076990.tif 000011
【図１０】
2009076990.tif 000012
【図１１】
2009076990.tif 000013