(57)【特許請求の範囲】
【請求項１】
画像データのデータ値を変更することにより情報を付加する電子透かし画像処理方法において、
原画像データにエッジ保存型画像フィルタ処理を施してフィルタ通過画像データを作成し、
該フィルタ通過画像データと該原画像データの差を求める演算処理を施して、画素値変更可能範囲を示す透かし核画像データを作成し、
該透かし核画像データと所望の付加すべき情報を基に該原画像データのデータ値を変更する値を求める処理を施して変更量画像データを作成し、
該原画像データと該変更量画像データとの加算演算を施して透かし入り画像データを作成することを特徴とする電子透かし画像処理方法。
【請求項２】
請求項１に記載の電子透かし画像処理方法において、
前記エッジ保存型画像フィルタ処理として、１次元平滑化型フィルタ処理を用いることを特徴とする電子透かし画像処理方法。
【請求項３】
請求項１に記載の電子透かし画像処理方法において、
該所望の付加すべき情報を埋め込む際に、同一情報を複数の画像位置に埋め込んで該透かし入り画像データを作成することを特徴とする電子透かし画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像データに著作権や販売日、販売先などの各種情報を埋め込む電子透かし方法に関する。
【０００２】
【従来の技術】
画像データのデータ値を変更し、その変更の仕方により、著作権などの情報を埋め込む電子透かし機能には、以下の事柄が要求されている。
【０００３】
（１）画像データの変更を人間が認知できない。または、利用上問題にならない程度と判断できる。
【０００４】
（２）情報を埋め込んだ画像データにＪＰＥＧ圧縮等の画像データ値の変更を伴う処理を施しても、埋め込んだ情報がなるべく消失せず、検知できる。
【０００５】
従来の情報埋込み技術では、日経エレクトロニクス（１９９７年）６８３号９９頁から１０７頁に述べられているように、これらの要求を満たすために、変更の対象となる値の種類に関して工夫していた。すなわち、変更が目立ちにくく、かつ、消失しにくいよう値に対して変更を加えていた。例えば、画像を周波数表現し、その中域成分の係数に対して変更を加えていた。
【０００６】
【発明が解決しようとする課題】
画像の値の変更と視覚上の変化の関係は、画像毎さらには画像中の領域によって異なる。例えば、平坦な領域ではわずかな値変更でも目立つ一方、森林写真ような雑然とした領域では大きな値変個でも目立たない。
【０００７】
ところが、上記従来の技術では、画像の性質に依存して値変更の大きさを最適化することができなかった。そのため、視覚的変化の防止を優先する場合には、平坦な画像の場合を想定して値変更を小さくする必要があり、画像処理への耐性が小さかった。一方、画像処理への耐性を優先する場合には、値変更を大きくする必要があり、平坦な画像において視覚的変化が生じていた。すなわち、従来方式では、視覚的変化の防止と画像処理への耐性を両立することが困難であった。
【０００８】
以上から、本発明が解決しようとする課題は、画像データへの情報埋込みにおいて、視覚的変化の防止と画像処理への耐性の両立を可能とする方法を提供することである。
【０００９】
【課題を解決するための手段】
医用画像処理の分野では、Ｘ線やＭＲＩを用いて撮影した人体の写真に対して、医師の診断を容易にするためのフィルターが研究されている。最も進んだ医用フィルターでは、電子情報通信学会論文誌、Ｄ−２、第Ｊ７９−Ｄ−２巻、第８号、１３４７頁から１３５３頁に示されるように、以下の性質を持つ。
【００１０】
（１）平滑化処理により、ノイズを除去する。
【００１１】
（２）人間の視覚にとって重要なエッジ情報、すなわち物体の輪郭や面の性質の変化する部分については、形状を保存する。
【００１２】
上記の医用フィルターの性質を利用して、上記の課題を解決することを着想した。すなわち、上記の課題は、
画像データを入力する手段と、画像データに情報を埋め込む手段を有する情報処理システムにおいて、
上記の医用フィルターを用いて、人間には知覚できない、あるいは、人間の画像を参照する妨害にならない画像データのデータ値変更を行い、変更前の値と変更後の値の間を情報埋込みにおける値の変更可能範囲とし、この変更可能範囲内で画像データのデータ値を変更することにより情報を埋め込むことで解決できる。
【００１３】
【発明の実施の形態】
本発明の実施例は、画像データに情報を入れる部分と情報の入った画像から情報を取り出す部分の２つに大別される。本発明の画像データに情報を入れる部分の特色は、画像フィルタを用いて画像データのデータ値を変更できるデータ変更許容量を画像位置毎に求め、それを元にデータ値変更を行って、画像データに情報を入れる事にある。
【００１４】
以下、（１）章では、本発明の第１の実施例について簡単に説明し、（２）章では、本発明の画像データにデータを入れる部分について第２の実施例を子細に述べ、（３）章では、情報の入った画像から情報を取り出す部分について第３の実施例を子細に述べる。
【００１５】
（１）第１の実施例
以下、図１、２を用いて、本発明の第１の実施例を簡単に述べる。この実施例では、静止画と対象とし、画素の輝度を変更することで情報を埋め込むものとする。
【００１６】
図１は、本発明の機能構成図である。矩形で示した要素すなわち入出力１０１、変更可能範囲算出１０３、情報埋込み１０５は処理であり、計算機のＣＰＵで実現される。楕円で示した要素すなわち画像１０２、変更可能範囲１０４、透かし入り画像１０６はデータであり、計算機の記憶装置で実現される。
【００１７】
入出力１０１は、画像を入力し、これを記憶装置に格納する。変更可能範囲算出１０３は、まず、前述の医用フィルターあるいはそれと同様の画像処理を画像１０２に適用する。その結果、画像１０３と輝度が異なり、視覚的には変わらない画像を得る。次に、変更可能範囲算出１０３は、各画素毎に、画像処理適用前の輝度と適用後の輝度を記憶する。これが変更可能範囲１０４である。
【００１８】
情報埋込み１０５は、まず、画像１０２の画素のうち輝度を変更する画素を選択する。次に、選択した各画素について、輝度を特定値に変更することで情報を埋め込む。その結果、情報挿入画像１０６を得る。この情報挿入画像１０６は、入出力１０１を介して外部に出力される。
【００１９】
次に、図２を用いて、情報埋込み１０５における輝度の変更方法を説明する。ここでは、一つの画素の輝度の値は０〜２５５までであるとする。図２は、画素の輝度値を数直線で表したものである。本実施例では、この数直線上の白い円すなわち値が１６の倍数である点は埋込み情報０に対応し、黒い点すなわち値が（１６の倍数＋８）の点は埋込み情報１に対応するものとする。
【００２０】
最初に、情報埋込み１０５の動作の基本を説明し、その後で、変更可能範囲１０４の利用について説明する。まず、基本を説明する。画像１０２の画素の輝度を、最近傍の白または黒の円に変更する。すなわち、その画素に埋め込みたい情報が０の場合には白円に変更し、１の場合には黒円に変更する。例えば、画素の輝度が図中の△すなわち３０で、埋め込みたい情報が０の場合には、その画素の輝度を３２に変更し、埋め込みたい情報が１の場合には、その輝度を２４に変更する。
【００２１】
次に、変更可能範囲１０４の利用について説明する。上記の基本動作では、画素の輝度の変更が大きすぎて画像が視覚的に変化する場合がある。これを防止するために、画素の値の変を変更可能範囲１０４の範囲内で行う。例えば、画素の輝度が△すなわち３０で、その画素の輝度の変更可能範囲が２６〜３３であるとする。この場合、埋め込みたい情報が０の場合には、上記の基本動作通りに、その画素の輝度を３２に変更する。しかし、埋め込みたい情報が１の場合には、変更先の輝度２４が変更可能範囲に含まれていないので、２４に最も近い値２６に変更する。
【００２２】
最後に、透かし挿入画像１０６からの情報の抽出について説明する。最初に、値を参照すべき画素を選択する。この画素の選択においては、情報埋込み１０５における画素選択と同じ規則を用いる。従って、輝度を変更した画素が選択される。
【００２３】
次に、選択した各画素について、その輝度を取り出し、その値が、１６の倍数か（１６の概数＋８）のいずれに近いかで、埋め込まれた情報が０か１かを判定する。
【００２４】
上述のように、情報埋込み１０５では、変更可能範囲１０４の中で輝度を変更するので、輝度を１６の倍数または（１６の概数＋８）に正確に変更できない場合がある。そのため、情報の抽出において、一定の確率で誤りが生じる。この問題は、同じ情報を複数の画素に重複して埋め込み、抽出において多数決を行うことで解決できる。
【００２５】
以上のように、本実施例によれば、画像に情報を埋込み、埋め込んだ情報を抽出することができる。この情報埋込みにおいては、画像の視覚的劣化のないことが保証された範囲すなわち変更可能範囲内でのみ、画像の値を変更することができる。また、上記変更可能範囲を画素毎に算出するので、画素毎に可能な限り大きな値変更を行うことで、画像処理への耐性を強化することができる。
【００２６】
以上は、画像データのデータ値を変更するものとして説明したが、同様に音データの場合、音を取得した１次元データにフィルタをかけ、現音データとフィルタ後の音データの差を変更可能データとして所定の時刻の音データをその量だけ変更するかしないかで０１の情報を持たすこともできる。また、音データを周波数と時間を軸とする２次元データにして、画像と同等に扱い、上記画像処理を行い、情報を持たすこともできる。このように、以上は、画像データや音データなどのコンテンツに情報を入れる方法と見ることができる。
【００２７】
（２）第２の実施例（画像データに情報を付加する詳しい実施例）
以下、本発明の第２の実施例について、４節に分けて説明する。（２−１）節で全体の流れを示し、（２−２）節で一部の処理を詳しく説明し、（２−３）節でさらにその中の一部処理について機能を追加した一実施例を説明し、（２−４）節で情報を付加する画像位置の選択の仕方について各種説明する。
【００２８】
（２−１）第２の実施例の全体説明
図３および図９を用い、本発明第２の実施例の全体を説明する。図３は、フロー図、図９は各処理で生成される画像の流れを示した図である。以下、図３のフロー図の番号をステップ番号として手順を説明する。
【００２９】
ステップ３０１：
原画像９００に画像フィルタ処理９２１を行い、フィルタ通過画像９１１を作成する。画像フィルタ処理９２１としては、上記手段の項で記載した以下のような最小変化方向の１次元平滑化型フィルタを用いることができる。
【００３０】
（Ａ）木戸邦彦ほか、「方向依存型フィルタを用いたＭＲＩ画像の画質改善」、信学論（Ｄ−ＩＩ）、Ｖｏｌ．ｊ７９−Ｄ−ＩＩ、ｎｏ．８、ｐｐ．１３４７−１３５３、（１９９６年）。
【００３１】
その他にも各種画像フィルタを用いる事ができる。例えば、以下や以下の論文に引用された画像フィルタなどや、その他の各種エッジ保存型画像フィルタなどを用いる事ができる。
【００３２】
（Ｂ）田口順一ほか、「エッジ部と平坦部の切り分けを行なった方向依存型画像フィルタ」、信学論（Ｄ−ＩＩ）、Ｖｏｌ．ｊ８０−Ｄ−ＩＩ、ｎｏ．９、ｐｐ．２３４５−２３５０、（１９９７年）。
【００３３】
ステップ３０２：
原画像９００とフィルタ通過画像９１１の差を取り、透かし核画像９１２を作成する。
【００３４】
原画像９００のデータ値をＯ［ｘ，ｙ］、フィルタ通過画像９１１のデータ値をＦ［ｘ，ｙ］、透かし核画像９１２のデータ値をＳ［ｘ，ｙ］と記すと、以下の数１の関係となる。ただし、［ｘ，ｙ］は、画像のｘ行、ｙ列を示す。
【００３５】
【数１】
Ｓ［ｘ，ｙ］  ＝  Ｆ［ｘ，ｙ］  −  Ｏ［ｘ，ｙ］
ステップ３０３：
透かし核画像９１２と所望の付加情報９０１を基に原画像９００のデータ値を変更する変更位置と変更量を選択する処理９２３を行い、変更量画像９１３を作成する。
【００３６】
変更位置と変更量を選択する処理９２３の処理方法は各種考えられる。後に、（２−２）節から（２−４）節までに詳しく述べる。
【００３７】
ステップ３０４：
原画像９００と変更量画像９１３データを加算し、透かし入り画像９１４を作成する。
【００３８】
透かし入り画像のデータ値をＷ［ｘ，ｙ］とすると、以下の数２の関係が成り立つ。
【００３９】
【数２】
Ｗ［ｘ，ｙ］  ＝  Ｏ［ｘ，ｙ］  ＋  Ｓ［ｘ，ｙ］
（２−２）ステップ３０３の子細
図４および図１０を用い、ステップ３０３の内部処理の子細を説明する。図４は、フロー図、図１０は各処理で生成される画像の流れを示した図である。以下、図４のフロー図の番号をステップ番号として手順を説明する。
【００４０】
ステップ４０１：
透かし核画像９１２を基に情報付加位置画像マップ１０１１を作成する。情報付加位置画像マップの作成の仕方には各種考えられ、子細は（２−４）節で述べる。ここでは、一例として以下の数３と数４で示すように情報付加位置画像マップ１０１１のデータ値Ｐ［ｘ，ｙ］を得るものとする。
【００４１】
【数３】
｜Ｓ［ｘ，ｙ］｜  ＞＝  Ｌ０の場合：  Ｐ［ｘ，ｙ］  ＝  １。
【００４２】
【数４】
｜Ｓ［ｘ，ｙ］｜  ＜  Ｌ０の場合：  Ｐ［ｘ，ｙ］  ＝  ０。
【００４３】
すなわち、上記数３では、透かし核画像９１２のデータ値の絶対値が所定の値Ｌ０より大きい場合にはその位置に情報を入れると判定し、情報付加位置画像マップ１０１１のデータＰ［ｘ，ｙ］を情報が入ることを意味する値１に設定する。上記数４では、透かし核画像９１２のデータ値の絶対値が所定の値Ｌ０より小さい場合にはその位置に情報を入れないと判定し、情報付加位置画像マップ１０１１のデータＰ［ｘ，ｙ］を情報が入ることを意味する値０に設定する。
【００４４】
すなわち、情報付加位置画像マップ１０１１は、原画像９００のどの位置に情報を付加するかを示すマップである。
【００４５】
ステップ４０２：
付加情報９０１を０１のビット列で表わす。例えば、英数字の文字列の場合、１文字が１バイト（８ビット）で表現できるので、全部で１６文字の英数字情報を付加する場合、８＊１６＝１２８ビットのビット列で表現できる。この時、情報付加位置画像マップ１０１１の値が情報を付加する事を意味する１の値を持つ画像位置に１ビットの情報を与える場合、どの画像位置に付加情報９０１のどのビットの情報を与えるかを決めるビット対応位置画像マップ１０１２を作成する処理を行う。
【００４６】
ビット対応位置画像マップ１０１２の作成の仕方は、各種ある。例えば、  ｙを外ループ、ｘを内ループとして、情報付加位置画像マップ１０１１の値を検索し、情報付加位置画像マップ１０１１の値が情報を付加する事を意味する１の値にヒットした時のヒット数をループの始まりからカウントし（カウントは０から始まる）、そのカウント数をビット長である１２８で割った時の余りをその画像位置におけるビット対応位置画像マップ１０１２の値とする。なお、情報付加位置画像マップ１０１１の値が情報を付加しない事を意味する０の値である場合は、ビット対応位置画像マップ１０１２の値は、情報を付加しない事を示す所定の値、（例えば−１）にする。
【００４７】
以上により、ビット対応位置画像マップ１０１２は、付加情報９０１の何番めのビット（ビット順は０からカウントする）の情報をどの画像位置に入れるかを表わすマップとなる。
【００４８】
ステップ４０３：
画像の各位置毎に、ビット対応位置画像マップ１０１２を参照し、所望の付加情報９０１のビット列から０１のビット値情報を引き出し、そのビット値に応じて透かし核画像９１２の値を参照して、変更量選択処理１０１３を行い、変更量画像９１３を作成する。
【００４９】
変更量選択処理１０１３は各種考えられる。例えば、一例として対応するビット値が０ならば、変更量を０とし、ビット値が１ならば、透かし核画像９１１のデータ値を変更量とする事ができる。すなわち、変更量画像９１３のデータ値Ｃ［ｘ，ｙ］は、以下の数５や数６、数７で示される値となる。ただし、ビット対応位置画像マップのマップ値をＭ［ｘ，ｙ］、付加情報９０１のビット列のｋ番めのビット値をｂ［ｋ］とする。また、透かし核画像９１２のデータ値はＳ［ｘ，ｙ］である。
【００５０】
【数５】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）の場合：
Ｃ［ｘ，ｙ］  ＝  ０
【００５１】
【数６】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）でなく、
かつ、ｂ［  Ｍ［ｘ，ｙ］  ］  ＝  ０の場合：
Ｃ［ｘ，ｙ］  ＝  ０
【００５２】
【数７】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）でなく、
かつ、ｂ［  Ｍ［ｘ，ｙ］  ］  ＝  １の場合：
Ｃ［ｘ，ｙ］  ＝  Ｓ［ｘ，ｙ］
以上は、一例であり、その外、各種考えられる。例えば、数６、数７の代りに、以下の数８、数９のようにすることもできる。
【００５３】
【数８】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）でなく、
かつ、ｂ［  Ｍ［ｘ，ｙ］  ］  ＝  ０の場合：
もしも、Ｓ［ｘ，ｙ］  ＜  −４ならば、  Ｃ［ｘ，ｙ］  ＝  Ｓ［ｘ，ｙ］
もしも、Ｓ［ｘ，ｙ］  ＞  −４ならは、  Ｃ［ｘ，ｙ］  ＝  −４
【００５４】
【数９】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）でなく、
かつ、ｂ［  Ｍ［ｘ，ｙ］  ］  ＝  １の場合：
もしも、Ｓ［ｘ，ｙ］  ＞  ４ならば、  Ｃ［ｘ，ｙ］  ＝  Ｓ［ｘ，ｙ］
もしも、Ｓ［ｘ，ｙ］  ＜  ４ならば、  Ｃ［ｘ，ｙ］  ＝  ４
以上の数８、数９の方法を用いる場合、情報を入れるビット値ｂ［  Ｍ［ｘ，ｙ］  ］が正ならば、変更量の値Ｃ［ｘ，ｙ］  が正であることが保証され、  ビット値ｂ［  Ｍ［ｘ，ｙ］  ］が負ならば、変更量の値Ｃ［ｘ，ｙ］  が負であることが保証される。そのため、情報付加位置画像マップ１０１１を作る最に、隣り合う位置で一まとめにして特定のビットに対応付けるようにした場合、例えば２＊２の４画素で１つの集団として特定のビットの情報に対応させた場合、２＊２の集団の対応するビット値ｂ［  Ｍ［ｘ，ｙ］  ］が正ならば、２＊２の集団全体が正の値の変更を受け、  ｂ［  Ｍ［ｘ，ｙ］  ］が負ならば、２＊２の集団全体が負の値の変更を受ける事になるので、２＊２の集団全体で平均を取り判定する事が可能になり、透かし入り画像９１４のデータ値を改竄しても２＊２全体の平均として判定する事により、付加情報９０１の読み出しエラーが減少する効果を得ることができる。
【００５５】
（２−３）ステップ４０３の機能拡張例
図５および図１１を用い、ステップ４０３の内部処理の拡張機能について説明する。図５は、フロー図、図１１は各処理で生成される画像の流れを示した図である。以下、図５のフロー図の番号をステップ番号として手順を説明する。
【００５６】
ステップ５０１：
透かし核画像９１２を基に、正値付加可能画像１１０１と負値付加可能画像１１０２を作成する。正値付加可能画像は、正のデータ値の変更可能な範囲値を示し、負値付加可能画像１１０２は、負のデータ値の変更可能な範囲値を示す。変更量画像９１３は、付加情報９０１のビット値に応じて、正値付加可能画像１１０１と負値付加可能画像１１０２の値から選択して作成することができる。
【００５７】
例えば、情報を数８や数９のように入れる場合、以下の数１０、数１１のように作成する。ただし、正値付加可能画像１１０１をＰＯＳ［ｘ，ｙ］、負値付加可能画像１１０２をＮＥＧ［ｘ，ｙ］、とする。また、透かし核画像９１２のデータ値はＳ［ｘ，ｙ］である。
【００５８】
【数１０】
もしも、Ｓ［ｘ，ｙ］  ＞  ４ならは、  ＰＯＳ［ｘ，ｙ］  ＝  Ｓ［ｘ，ｙ］
もしも、Ｓ［ｘ，ｙ］  ＜  ４ならば、  ＰＯＳ［ｘ，ｙ］  ＝  ４
【００５９】
【数１１】
もしも、Ｓ［ｘ，ｙ］  ＜  −４ならは、  ＮＥＧ［ｘ，ｙ］  ＝  Ｓ［ｘ，ｙ］
もしも、Ｓ［ｘ，ｙ］  ＞  −４ならば、  ＮＥＧ［ｘ，ｙ］  ＝  −４
ステップ５０２：
正値付加可能画像１１０１と負値付加可能画像１１０２の平均画像を作成し、差判定画像１１０３とする。差判定画像は、後に透かし入り画像９１４やそれを加工した画像などから情報を取り出す最の比較判定用の画像として利用することができる。情報の取り出し方については、後に（３）章で詳しく説明する。
【００６０】
ステップ５０３：
ビット対応位置画像マップ１０１２を参照し、所望の付加情報９０１を基に、正値付加可能画像１１０１と負値付加可能画像１１０２から変更量画像９１３を作成する。
【００６１】
例えば、ステップ５０１で、数１０、数１１のように定義すると、以下の数１２、数１３とすることで、上記数８と数９と同一の処理値となる。ただし、記号は数８〜数１１までのものと同一の記号である。
【００６２】
【数１２】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）でなく、
かつ、ｂ［  Ｍ［ｘ，ｙ］  ］  ＝  ０の場合：
Ｃ［ｘ，ｙ］  ＝  ＮＥＧ［ｘ，ｙ］
【００６３】
【数１３】
Ｍ［ｘ，ｙ］が情報を入れない事を意味する所定の値（例えば−１）でなく、
かつ、ｂ［  Ｍ［ｘ，ｙ］  ］  ＝  １の場合：
Ｃ［ｘ，ｙ］  ＝  ＰＯＳ［ｘ，ｙ］
（２−４）情報を付加する画像位置の選択の仕方
以下、情報を付加する画像位置の選択の仕方について各種述べる。情報を付加する画像位置は、情報付加位置画像マップ１０１１に値として代入するが、以上のステップ４０１の説明では、一例として数３、数４のような選択の仕方について述べた。ここではその他の選択の方法について、図６、図７、図１３、図１４を用いて各々説明する。
【００６４】
図６、図７、図１３、図１４は、情報付加位置画像マップ１０１１の具体例を示した図である。上記（２−２）節では、数３、数４のように、透かし核画像９１２のデータ値の絶対値が所定のしきい値Ｌ０より大きい時に情報を付加する事を意味する値１とし、小さい時に情報を付加しない事を意味する０とした。図６、図７では、情報付加位置画像マップ１０１１の情報を付加した着目画素の所定の周囲の画素について、情報付加位置画像マップ１０１１のデータ値がそれぞれ情報が付加されていないように、また、それが任意の情報を付加した画素を着目しても成り立つように情報付加位置画像マップ１０１１を作成することを特徴としている。また、図１３、図１４では、情報を２＊２ブロック毎に入れているが、そのブロック内の関連を除き、同様に情報を入れた点の所定の近傍に情報を入れないことを保証したものである。以下、各々について説明する。
【００６５】
図６は、情報を付加する場所を各々間隔を明けて選択した例である。例えば、情報負嘉一画像マップ１０１１の初期値として全ての点に０を代入する。そして、透かし核画像９１２の絶対値の大きい順に情報付加位置画像マップ１０１１の値を順次情報を付加する値を意味する値１にする。この時、回りの点が情報を付加する事を意味する値１でないことを確認し、回りの点に１があれば情報を付加しないことを意味する０とすることにより、図６のような情報付加位置画像マップ１０１１を作成することができる。
【００６６】
図７では、図６と同一の情報付加位置を持ち、情報を付加する点の周囲の点を周囲に情報がある事を意味する値２とした場合の情報付加位置画像マップ１０１１の例である。例えば、最初に全ての点に０を代入して初期値とし、同様に、透かし核画像９１２の絶対値の大きい順に情報を付加する事を意味する値１を代入する。その最、周囲の点に周囲に情報のある事を意味する値２とする。ただし、代入前に、この点の値が、初期値０でない場合は、その点の値の代入と周囲の点の値の代入を行なわない。以上のようにして、図７の情報付加位置画像マップ１０１１を作成することができる。
【００６７】
なお、以上の図７の情報付加位置画像マップ１０１１の作成手順は、以下のように言い変えることができる。透かし核画像９１２のデータ値を参考に情報を付加すべき画像の位置を選択する順番に、情報付加位置画像マップ１０１１のデータを変更判定にかけ、その判定にかける画像位置の付加位置画像マップ１０１１のデータの値が初期状態値であれば情報を付加でると判定し、情報付加位置画像マップ１０１１のデータ値を情報が付加することを意味するデータ値に変更し、さらに、判定にかける位置を基準に上記所定の周囲の画素範囲の情報付加位置画像マップ１０１１のデータ値をそれぞれ近傍にデータがあることを意味するデータ値に変更し、その判定にかける画像位置の情報付加位置画像マップ１０１１のデータの値が初期状態値でなければ情報を付加できないと判定して情報付加位置画像マップ１０１１のデータ値を変更しない。
【００６８】
図１３では、２＊２ブロックで連動して値を代入する場合を例示した。例えば、最初に全ての点に初期値０を代入する。そして、透かし核画像９１２の２＊２ブロックの絶対値の和が最も大きい順番に２＊２ブロック全体に情報を入れる事を意味する１の値とする。その最、２＊２ブロックの中のいずれか一つまたは周囲の点の値に１の値があれば、その２＊２ブロックは情報を付加しない事を意味する０の値とする事により、図１３の情報付加位置画像マップ１０１１が得られる。
【００６９】
図１４は、図１３の場合と情報を入れるべき位置が同様の情報付加位置画像マップ１０１１の例である。ただし、図７と同様に情報を入れるべき位置の周囲の点を周囲に情報をいれるべき点がある事を意味する値２とした。同様に、例えば、最初に全ての点に０を代入して初期値とし、同様に、透かし核画像９１２の２＊２ブロックの絶対値の和の大きい順に情報を付加する事を意味する値１を２＊２ブロック全体に代入する。その最、２＊２ブロックの周囲の点に周囲に情報のある事を意味する値２とする。ただし、代入前に、この２＊２ブロックの中のいずれかの点の値が、初期値０でない場合は、そのブロック内の点とブロック周囲の点の値の代入を行なわない。以上のようにして、図１４の情報付加位置画像マップ１０１１を作成することができる。
【００７０】
以上の図１３や図１４のように２＊２ブロックなど、集団で同一の情報を入れる場合は、単一の場合よりもデータの改竄に強くなる利点がある。情報を読み出す場合も、多数決論理で読み出すこともできるし、ブロック内の情報の入れた値を全て加算した値を基に判定することもできる。
【００７１】
以上では、透かしとして入れる最小単位が、情報が０１の値につて説明してきたが、その他にも、各種考えられる。例えば、実際に画像に付加する情報を０１２の３状態として、新たに付け加えられた２の状態は所望の付加すべき情報を原画像９００中に入れない情報として情報に重畳性を持たせ、所望の付加すべき情報から実際に画像に付加する情報を作成し、実際に画像に付与する情報を基に、原画像９００のデータ値を変更して透かし入り画像９１４を作成することもできる。
【００７２】
（３）情報の取り出しかた
以上の（１）章や（２）章のようにして、透かし入り画像９１４を作成する。透かし入り画像９１４、または、透かし入り画像９１４を改竄した画像、これらを総称して被透かし検出画像１２００と呼ぶことにする。この章では、被透かし検出画像１２００から透かしとして入れた情報を検出する検出の仕方について本発明第３の実施例として以下説明する。
【００７３】
図８は、情報を検出する一例の手順を示したフロー図であり、図１２は、各手順中に利用されたり、生成されたりする画像データの流れを示した図である。以下、図８のフロー図の番号をステップ番号として手順について述べる。
【００７４】
ステップ８０１：
被透かし検出画像１２００と原画像９００の差処理１２１１を施して差比較画像１２０
１を作成する。以下の数１４で表す事ができる。ただし、被透かし検出画像１２００をＧ［ｘ，ｙ］とし、原画像９００をＯ［ｘ，ｙ］、差比較画像１２０１をＲ［ｘ，ｙ］とする。
【００７５】
【数１４】
Ｒ［ｘ，ｙ］  ＝  Ｇ  ［ｘ，ｙ］  −  Ｏ［ｘ，ｙ］
ステップ８０２：
差比較画像１２０１と、差判定画像１１０３のデータ値を比較することにより、被透かし検出画像１２００に付加された情報を読み取る。情報の読み取りは、情報の入れ方に依存する。ここでは、情報を数８、数９のように入れるものとして説明する。
【００７６】
この時、最も簡単な読み取り方法は、差比較画像１２０１のデータ値が、差判定画像１１０３のデータ値よりも大きい場合は、ビット値として１を入れたと判定し、差比較画像１２０１のデータ値が、差判定画像１１０３のデータ値よりも小さい場合はビット値として０を入れたと判定する方法である。この時、所定の位置のビット値が、付加情報９０１のどのビット位置になるか計算するために、ビット対応位置画像マップ１０１２を参照すると便利である。ビット対応位置画像マップ１０１２が既に失われている場合は、もう一度情報を入れる最のプロセスを行い、ビット対応位置画像マップ１０１２を作成することができる。
【００７７】
以上の処理では、情報の復元に対し、精度を向上する各種改良方法が存在する。例えば、被透かし検出画像１２００がＪＰＥＧ圧縮等、特定の処理を受けた事がはっきりしている場合、原画像９００の代りに、原画像について、被透かし検出画像１２００の受けた処理と同じ処理を施した原画加工画像を作成する。そして、被透かし検出画像１２００と原画加工画像を比較することにより情報を読み取ることができる。例えば、ステップ８０１で、原画９００の代りに原画加工画像と被透かし検出画像１２００の差処理１２１１を行なって差比較画像１２０１を作成することができる。このようにすると、原画像９００は、被透かし検出画像１２００と同一の処理を受けるので、処理方法による画像劣化が同程度となり、差画像では被透かし検出画像に行われた処理の影響がキャンセルされ、高精度に情報を検出することができるよになる。
【００７８】
以上は、被透かし検出画像１２００に施された処理が既知であった場合であるが、一般に被透かし検出画像１２００に施された処理を知ることはできない。その場合、以下のようにして、情報の劣化を予想し、高精度に情報を取り出すことができる。
【００７９】
その一例では、情報を埋め込む位置の選択の仕方として、情報付加位置画像マップ１０１１を図６や図７、図１３や図１４のように、情報を入れた点が同期してブロックとして情報を入れる場合を除き、それぞれ隣との間で所定の距離を持っているように情報を入れる場合、以下のように情報の判定を行なうことができる。はじめに、ステップ８０１と同様に、被透かし検出画像１２００と原画像９００の差処理１２１１を施して差比較画像１２０１を作成する。次に、ステップ８０２として、所望の付加すべき情報を埋め込んだ画像位置の周辺位置について差比較画像８０２のデータ値を参照して付加すべき情報を埋め込んだ画像位置の差比較画像８０２の情報が付与されない場合のデータ値を予測して、被透かし検出画像１２００に付加された情報を読み取る。
【００８０】
以上の、差比較画像データの情報が付与されない場合のデータ値を予測する処理は各種考えられる。一例として、所望の付加すべき情報を埋め込んだ画像位置の周辺位置についての差比較画像１２０１のデータ値の平均値を取り、情報が付加されない場合の予測データ値とすることができる。また、その他にも、原画像９００のエッジを検出する処理を施してエッジ画像データを作成し、差比較画像１２０１とエッジ画像データの相関を元に、情報が付与されない場合の予測データ値を求めることもできる。
【００８１】
なお、図１３や図１４の様に、所望の付加すべき情報を埋め込む最に、同一情報を２＊２のブックなど、複数の画像位置に重複して埋め込んで該透かし入り画像９１４を作成する場合は、被透かし検出画像１２００に埋め込まれた情報を検出する最に、重複して埋め込んだ画像位置での各々の情報検出結果について、多数決を行い、最終的な情報検出結果とすることもできるし、重複して埋め込んだ画像位置の各々のデータ値を加算し、加算結果を基に情報を検出することもできる。
【００８２】
【発明の効果】
本発明によれば、画像データへの情報埋込みにおいて、画質が劣化しない範囲内で画像データのデータ値を可能な限り大きく変更することができるので、劣化の防止と埋込み情報の耐性の両立が可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施例の機能構成図。
【図２】本発明の第１実施例における画素の輝度値の変更方法を示す図。
【図３】本発明の第２の実施例におけるフロー図。
【図４】本発明の第２の実施例におけるステップ３０３の子細フロー図。
【図５】本発明の第２の実施例におけるステップ４０３の機能拡張フロー図。
【図６】情報付加位置画像マップの一作成例。
【図７】情報付加位置画像マップの別の作成例。
【図８】本発明の第３の実施例におけるフロー図。
【図９】本発明の第２の実施例の各処理で生成される画像の流れを示した図。
【図１０】本発明のステップ３０３で生成される画像の流れを示した図。
【図１１】本発明のステップ４０３の拡張機能で生成される画像の流れを示した図。
【図１２】本発明の第３の実施例の各処理で生成される画像の流れを示した図。。
【図１３】情報付加位置画像マップの更に別の作成例。
【図１４】情報付加位置画像マップのまた他の作成例。。
【符号の説明】
１０１：入出力、１０２：画像、１０６：情報挿入画像
【図１】
0003570213.tif 000002
【図２】
0003570213.tif 000003
【図３】
0003570213.tif 000004
【図４】
0003570213.tif 000005
【図５】
0003570213.tif 000006
【図６】
0003570213.tif 000007
【図７】
0003570213.tif 000008
【図８】
0003570213.tif 000009
【図９】
0003570213.tif 000010
【図１０】
0003570213.tif 000011
【図１１】
0003570213.tif 000012
【図１２】
0003570213.tif 000013
【図１３】
0003570213.tif 000014
【図１４】
0003570213.tif 000015