(57)【特許請求の範囲】
【請求項１】
原画像データにビットの識別情報を埋め込むための識別情報埋込方法であって、
前記原画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から複数の異なる直交変換重み係数を選択する係数選択ステップと、
最大値Ａと最小値Ｂとを与え、埋め込むべきビットに応じて、中間値（Ａ＋Ｂ）／２と最大値Ａとの間の範囲と、最小値Ｂと前記中間値（Ａ＋Ｂ）／２との間の範囲とのいずれか一方を予め関連付けておき、前記各選択された直交変換重み係数毎に、前記埋め込むべきビットに従って予め関連付けられたいずれか一方の範囲の数値である埋込値を生成する埋込値生成ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として前記最大値Ａと前記最小値Ｂとの間の値を出力する多対一関数である埋込関数を用意し、前記多対一埋込関数の出力値が、前記埋込値生成ステップにより生成された前記埋込値と一致する多対一の埋込関数の複数の入力値のうちから、前記直交変換重み係数に最も近い入力値を特定し、特定した入力値によって当該直交変換重み係数を置換するステップと、
全ての選択された前記直交変換重み係数について置換された直交変換データに対して、逆直交変換を施すステップとを備え、
前記直交変換重み係数を置換するステップは、
ある特定のビットを埋め込むために選択された前記複数の直交変換重み係数の置換による改変量の総和が予め決められた閾値以下となるように係数の置換を制御する
画像データへの識別情報埋込方法。
【請求項２】
請求項１記載の画像データへの識別情報埋込方法によって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出方法であって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する、埋め込み時と同一の多対一関数である埋込関数を用意し、前記選択された直交変換重み係数を前記多対一埋込関数に入力して、その埋込関数の出力値を求めるステップと、
前記選択された全ての直交変換重み係数に対応する前記埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた前記識別情報を抽出するステップと、
を備える画像データからの識別情報抽出方法。
【請求項３】
前記埋込値生成ステップは、
ある特定のビットを埋め込むために選択された前記複数の直交変換重み係数毎に決定する埋込値の総和が予め決められた閾値以上あるいは以下となるように決定する請求項１記載の画像データへの識別情報埋込方法。
【請求項４】
前記多対一埋込関数は定義域の入力値に対して出力値が周期性がなく、かつ埋め込む直交変換重み係数毎に異なるものである請求項１または２記載の識別情報埋込方法または識別情報抽出方法。
【請求項５】
請求項１記載の画像データへの識別情報埋込方法によって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出方法であって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する埋め込み時と同一の多対一関数である埋込関数と、想定される画像の改変の候補との種類に応じて前記埋込関数を変更し、改変の候補種類の画像改変対応の多対一埋め込み関数を得る関数変更ステップと、
全ての改変の候補の種類に対して、前記選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに前記選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算ステップと、
全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とするステップと、
を備える画像データからの識別情報抽出方法。
【請求項６】
前記尤度計算ステップは、全ての直交変換重み係数に対応する画質改変対応の多対一埋込関数の出力値の総和と前記閾値との差の絶対値を求め、その値を尤度として出力する請求項５記載の画像データからの識別情報抽出方法。
【請求項７】
前記尤度計算ステップは、埋め込まれた識別情報が複数ビットの場合には、各ビット毎に求められた尤度の和を、さらにその複数ビットの識別情報の値を尤度として出力する請求項６記載の画像データからの識別情報抽出方法。
【請求項８】
前記関数変更ステップは、画像の改変がコントラストまたは輝度の改変の場合には、各多対一埋込関数の定義域を再スケーリングして画像改変対応の多対一埋込関数を得る請求項５記載の画像データからの識別情報抽出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信回線などの各種伝送媒体を通じて流通されるデジタル画像データ中に著作権者等の権利者を示す識別情報を埋め込む技術、および、このようなデジタル画像データから識別情報を抽出する技術に関する。
【０００２】
【従来の技術】
近年のデジタル技術の発展やマルチメディア社会の発展とともに、様々な情報がデジタルデータに変換され、通信網、衛生通信、ＣＤ−ＲＯＭ等の各種の媒体を介して広く流通されるようになっている。
【０００３】
このようなマルチメディア社会におけるデジタルデータの流通には、不可避的に、デジタルデータの複製の問題が伴っている。
【０００４】
このデジタルデータの複製は適法な範囲であるならばマルチメディア社会における文化の発展に寄与し得るが、それが直接商業上利用される場合の様に不正使用に該当する場合には、デジタルデータが劣化なく複製可能であることから、権利者（著作者、著作権者、出版権者、著作隣接権の権利者、等）の利益損失が甚大なものとなる虞がある。
【０００５】
そのため、画像データに関しては、従来、識別情報を外見上認識困難な態様でデータ中に埋め込むことによってこの画像データが不正に複製された際の証拠とするための技術が提案されている。
【０００６】
例えば、本発明と同一の出願人による特開平１０−２３４０１２号公報では、以下のような技術が提案されている。
【０００７】
すなわち、この従来技術では、図６に示すように、画像データが直交変換され、変換によって得られた各基底関数の重み係数を置換する。そして係数埋込部は、係数置換部によって置換された重み係数を、直交変換重み係数データ中に埋め込む。逆直交変換部は、係数埋込部による埋め込みがなされた直交変換重み係数データに対して逆直交変換処理を実行するようになっている。
【０００８】
【発明が解決しようとする課題】
ところが前記従来技術では、埋め込まれるべき識別情報はアナログ情報であり、デジタルなバイナリ情報を埋め込むのには適していなかった。特に、ある一定の強度以上で、あるいは一定の画像の改変量以下で、バイナリ識別情報の埋め込みを行うことができなかった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、画像に、ある一定の強度以上で、あるいは一定の画像の改変量以下で、バイナリの識別情報の埋め込みを行うとともに、悪意の第３者の解析をより困難にし、悪意の改竄を行いにくくすることを技術的課題とする。
【００１０】
【課題を解決するための手段】
上記の課題を解決するための手段（機能）を以下に説明する。
【００１１】
（１）本発明は、原画像データに、ビットの識別情報を埋め込むための識別情報埋込方法であって、前記原画像データに対して直交変換を施し直交変換データを生成し、前記直交変換データを構成する係数から複数の直交変換重み係数を選択し、最大値Ａと最小値Ｂとを与え、そして埋め込むべきビットに応じて、中間値（Ａ＋Ｂ）／２と最大値Ａとの間の範囲と、最小値Ｂと中間値（Ａ＋Ｂ）／２との間の範囲とのいずれか一方を予め関連付けておき、前記各選択された直交変換重み係数毎に、埋め込むべきビットに従って予め関連付けられたいずれか一方の範囲の数値である埋込値を生成し、前記各選択された直交変換重み係数毎に、前記重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として前記最大値Ａと前記最小値Ｂとの間の値を出力する多対一関数である埋込関数を用意し、多対一埋込関数の出力値が、前記で生成された埋込値と一致する、多対一の埋込関数の複数の入力値のうちから、前記直交変換重み係数に最も近い入力値を特定し、特定した入力値によって当該直交変換重み係数を置換し、全ての選択された直交変換重み係数について置換された直交変換データに対して、逆直交変換を施す画像データへの識別情報埋込方法である。
【００１２】
原画像データの画素値は、白黒画像の輝度値、ＲＧＢ信号の各色信号の輝度値、又はＹＣＣ信号の輝度値であってもよいし、ＹＣＣ信号の色差値であってもよい。原画像のドット数は縦横同数であってもよいし、縦横に異なっていてもよい。
【００１３】
また、埋込関数は、関数式の形態で保持されていてもよいし、複数の入力値に対する一つの出力値の関係を規定したテーブルの形態で保持されていてもよい。
【００１４】
この発明における、直交変換重み係数の置換手段は、本出願人による特開平１０−２３４０１２号公報に記載されたものと同一の機構を利用できる。そして、１ビットにつき複数の重み係数を選択し、各重み係数に埋め込むべき値を、多対一の埋込関数の値域のうち、値の大きい方か小さい方のいずれか一方に、埋め込むビットにより偏らせる。
【００１５】
この方法により、埋め込むビットに依存して埋め込む情報が偏りを持つこととなり、ビットの情報を埋め込むことが可能となる。
【００１６】
（２）また、前記識別情報が埋め込まれた処理対象画像データから前記識別情報を抽出する際には、前記処理対象画像データに対して直交変換を施し直交変換データを生成し、この直交変換データを構成する係数から、埋め込み時と同一の複数の個数の直交変換重み係数を選択し、選択された直交変換重み係数毎に、前記重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する、埋め込み時と同一の多対一関数である埋込関数を用意し、前記選択された直交変換重み係数を多対一埋込関数に入力して、その埋込関数の出力値を求め、前記で選択された全ての直交変換重み係数に対応する埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するようにしてもよい。
【００１７】
この方法によれば、埋め込まれたビットに依存する偏りを、直交変換係数に対応する埋込関数の出力値の総和と、予め決められた閾値と比較することによって検出することが可能であり、結果として埋め込まれた情報を検出することが可能となる。
【００１８】
（３）また、直交変換重み係数を置換する際には、ある特定のビットを埋め込むために選択された前記複数の直交変換重み係数の置換による改変量の総和が、予め決められた閾値以下となるように係数の置換を制御するようにしてもよい。
【００１９】
この方法によれば、情報の埋め込みによる画質の劣化量を抑えることができる。すなわち、情報の埋め込みによる画質の劣化量は、直交変換係数の置換に伴う改変量の総和に依存する。このことから、この改変量の総和を制御する手段を設けることで、情報埋め込みによる画質の劣化量を、ある値以下に抑えることが可能となる。
【００２０】
（４）また、埋込値の生成に際しては、ある特定のビットを埋め込むために選択された前記複数の直交変換重み係数毎に決定する埋込値の総和が、予め決められた閾値以上となるように決定する。
【００２１】
一般に、画像の画像圧縮等に伴う改変等により、埋め込まれた画像自体が変化することがある。このような場合にも、埋め込まれた情報を正しく取り出す必要がある。本発明における画像情報埋込方法の場合、画像の改変が行われると、埋込情報の抽出時に観測される全ての直交変換重み係数に対応する埋込関数の出力値の総和が変化する。
【００２２】
そのために、画像改変が与えられても、誤って埋め込まれた情報が判断されないよう、各係数への埋込値の総和をある閾値以上にする手段を設けることにより、画像改変に対する耐性を向上することができる。
【００２３】
（５）さらに、前記多対一関数は定義域の入力値に対して出力値が周期性のない、かつ係数毎に異なるような関数としてもよい。
【００２４】
この方法によれば、悪意の改変に対する耐性を向上することができる。すなわち、多対一の埋込関数が周期関数だと、悪意の第３者が情報の埋め込まれた画像を解析した場合に規則性が発見されてしまう可能性がある。しかし、前記多対一埋込関数として周期性がなく、かつ各埋め込む係数毎に異なるものを選択することにより、悪意の第３者の解析をより困難にし、悪意の改竄を行いにくくすることが可能となる。
【００２５】
（６）本発明は上記（２）記載の画像データからの識別情報抽出方法に加え、コントラスト改変等の画像改変にも対応して識別情報が取り出せるようにしたものである。
【００２６】
具体的には、予め改変方法の候補を求めておき、その改変方法に応じて、多対一埋込関数を想定される画像の改変に応じて、その対応する改変が与えられたときに透かしなどが取り出し可能となる関数に上記の多対一埋込関数を変更し、この処理を全ての画像改変候補に施す関数変更機能と、全ての改変の候補の種類に対して、前記選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに前記選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算機能と、全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とする機能とを備える。
【００２７】
この処理により、従来は識別情報の抽出が困難であったような画像改変であっても、予め複数の画像改変方法を想定しておき、その中で最も適当な画像改変方法を推定することで、正しく識別情報を抽出することが可能となる。
【００２８】
（７）上記（６）において定義した尤度計算機能については、全ての直交変換重み係数に対応する画質改変対応の多対一埋込関数の出力値の総和と前記閾値との差の絶対値を求め、その値を尤度として出力するようにしてもよい。
【００２９】
これは、改変された埋込関数が、想定された画像改変と一致しない場合には、多対一埋込関数の出力値が平均的に閾値近辺となり、一致した場合には閾値と出力値との差が大きくなることに基づくものである。
【００３０】
（８）上記（７）において、尤度計算機能は、埋め込まれた識別情報が複数ビットの場合には、各ビット毎に求められた尤度の和を、さらにその複数ビットの識別情報の値を尤度として出力することにより、一層最適な画像改変の方法を推定し、適切な埋込関数により画像データから識別情報を抽出することを可能とする。
【００３１】
（９）上記（６）おいて、画像の改変が輝度の一定割合の改変やコントラスト変化の場合には、周波数変換係数も画像改変に応じて一定割合でスケーリングされるので、このスケーリングの程度に応じて、各多対一埋込関数の入力値の定義域を再スケーリングすることにより、画像改変対応の多対一埋込関数の計算を可能とする。
【００３２】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施の形態を説明する。
【００３３】
〔第１の実施の形態〕
まず、第１の実施の形態の画像データ識別情報埋込・抽出システムについて説明する。
【００３４】
（埋込用コンピュータ）
図２は、この埋込用コンピュータのハードウェアのうち、原画像データへの識別情報埋込処理に関係する構成のみを示した概略ブロック図である。図２に示すように、この埋込用コンピュータは、互いにバスＢによって接続されたＣＰＵ１，入力用ディスク装置２，ＲＯＭ３，および出力用ディスク装置４を有している。
【００３５】
入力用ディスク装置２は、ＣＰＵ１からの指示に応じて原画像データ２１をＣＰＵ１に入力するハードディスク装置，フロッピーディスク装置，光磁気ディスク装置，等である。
【００３６】
埋込関数保持手段およびコンピュータ可読媒体としてのＲＯＭ３は、ＣＰＵ１にて実行される識別情報埋込プログラム３１，識別情報３２，および埋込関数３３を保持している読み出し専用メモリである。
【００３７】
ＣＰＵ１は、埋込用コンピュータ全体の制御を実行するプロセッサであり、ＲＯＭ３から読み出した識別情報埋込プログラム３１を実行することによって、その内部に直交変換処理部１１，係数抽出処理部１２，係数置換部１３，係数埋込部１４，および逆直交変換部１５を展開し（論理的に構成し）、図１に概略を示す識別情報埋込処理を実行する。なお、図２における点線は、ＣＰＵ１内におけるデータの流れを示している。
【００３８】
直交変換手段としての直交変換処理部１１は、入力用ディスク装置２から読み出したＮ×Ｍ画素の原画像データ２１に対して上述した直交変換処理を実行して、基底関数のＮ×Ｍ個の組合せに対する重み係数を夫々算出する。
【００３９】
このＮ×Ｍ個の重み係数は、原画像と同じくＮ×Ｍ個のマトリックスを形成する。この重み係数のマトリックスを、以下、便宜上「係数分布画像データ」という。直交変換処理部１１は、この係数分布画像データを、係数抽出処理部１２および係数埋込部１４へ夫々通知する。
【００４０】
係数抽出処理部１２は、直交変換処理部１１から通知された係数分布画像データから、識別情報の各信号を埋め込むべきＬ個の重み係数を抽出して、係数置換部１３へ通知する。
【００４１】
係数置換手段としての係数置換部１３は、ＲＯＭ３から識別情報３２および埋込関数３３を読み込む。そして、識別情報３２の各信号毎に、埋込関数３３を逆算して、その信号の値を出力値とする埋込関数３３の全ての入力値を求める。そして、求められた入力値の中から、係数抽出処理部１２から通知された対応する重み係数の値との差が最も小さくなるものを特定し、当該係数の書換値として係数埋込部１３に通知する。なお、識別情報はキーボード等、外部からの入力も可能である。
【００４２】
係数置換手段としての係数埋込部１４は、直交変換処理部１１から受け取った係数分布画像データ中の係数置換部１３から通知された書換値に対応する重み係数の値を、この書換値によって上書きする。
【００４３】
逆直交変換手段としての逆直交変換部１５は、係数埋込部１４から受け取ったＮ×Ｍ個の重み係数に対して、逆直交変換を実行する。この逆直交変換部１５は、識別情報埋込済画像の各画素毎に、直交変換処理部１１において用いられた基底関数の各組合わせに対応する重み係数とその画素の位置に対する各基底関数の値との積の総和を計算し、その画素の輝度値を求める。逆直交変換部１５は、このようにして輝度を求めた各画素からなる識別情報埋込済画像データ４１を、出力用ディスク装置４に送り出す。
【００４４】
出力用ディスク装置４は、ＣＰＵ１から渡された識別情報埋込済画像データ４１が書き込まれるハードディスク装置，フロッピーディスク装置，光磁気ディスク装置，等である。
【００４５】
（識別情報埋込処理例）
図１に識別情報の埋込方法を示す。ここでは、Ｍ×Ｎの原画像と、埋め込むべきバイナリの署名値Ｓを用意する（ステップ１０１）。
【００４６】
ここで、Ｓは０か１である。そしてこの情報を埋め込むために、Ｌ個の係数を用いることとする。また、情報を埋め込むためのＬ個の埋込関数ｆi(x)（ｉ＝１．．Ｌ）を用意する。
【００４７】
ここで、埋込関数ｆi(x)は埋め込む係数毎に異なる非周期関数のものが好ましい。この実施の形態では、以下の様に決定する。
【００４８】
ｆi(x)＝sin (x/T + 3・sin(x/(√3・T))+3・sin(x/(√2・T))+θi
ここで、θiは係数毎に異なる位相である。また、Ｔは正規化のための定数である。
【００４９】
図３にθiが０、Ｔ＝１の場合の、この埋込関数の形を示す。この関数では、周期が二つの無理数の周期の重ね合わせとなっているため、非周期性が保証されている。なお、この非周期関数は、決定論的な擬似乱数等を用いても実現可能である。
【００５０】
そして、情報を埋め込むために、原画像を直交変換であるＤＣＴ（離散コサイン変換）を施す（ステップ１０２）。なお、ここでは直交変換としてＤＣＴを用いたが、直交変換であれば、ＤＳＴ、フーリエ変換、ウェーブレット変換等、いずれの方式でも適用することが可能である。
【００５１】
そして、このＤＣＴの係数から、予め決められたＬ個の係数Ｃi＝（ｉ＝１．．Ｌ）を選択する。そして、Ｌ回の係数の埋め込むためのループを実行する（ステップ１０３）。まず、このループでは、各係数毎に、埋込関数に埋め込むべき値Ｅiを決定する（ステップ１０４）。
【００５２】
この場合には、この関数の値域は［−１：１］である。このことから、画像に埋め込むバイナリ値が１の場合は、係数Ｃiに埋め込むべき値を［０：１］の範囲の値を選び、また画像に埋め込むバイナリ値が０の場合は、係数Ｃiに埋め込むべき値を［−１：０］の範囲の値を選ぶようにする。
【００５３】
画像改変に対する耐性を向上させるため、Ｅiは以下の条件を満たすようにする。
埋込値が１の場合：
【００５４】
【数１】
0004073643.tif 000002
埋込値が０の場合：
【００５５】
【数２】
0004073643.tif 000003
ここで、ＴＨ＿embedは画像改変に対する耐性を保証するための閾値である。
【００５６】
以上のように、画像改変が与えられても、埋め込まれた情報が誤って判断されないよう、各係数への埋込値の総和をある閾値以上にする手段を設けることにより、画像改変に対する耐性を向上することができる。
【００５７】
次に、処理対象の重み係数Ｃiに対応する埋込値Ｅiおよび埋込関数ｆi（ｘ）に基づいて、
ｆi(Ｃik)＝Ｅi
の関係を満たすＫi個のＣik（１≦ｋ≦Ｋi）を求める（ステップ１０５）。ここで、Ｋiは、ｉ番目の係数において、上記式を満たす解の個数である。
【００５８】
次のステップでは、生成された係数分布画像データ中の処理対象の重み係数Ｃi値を、前ステップにて求められた各解Ｃik中最も当該重み係数Ｃiに近いものの値に書き換える（ステップ１０６）。
【００５９】
次のステップでは、変数ｉがＬに達したか否か、すなわち、識別情報を構成する全ての信号に対して埋め込みに伴う係数置換処理を実行したか否かをチェックする（ステップ１０７）。
【００６０】
そして、未だ変数ｉがＬに達していなければ、変数ｉをインクリメントした後で、処理を戻す（ステップ１０８）。
【００６１】
これに対して、変数ｉがＬに達していれば、書換のなされた係数分布画像に対して上述した逆ＤＣＴを施して（ステップ１０９）、Ｎ×Ｍドットの識別情報埋込済画像データ４１を生成する（ステップ１１０）。
【００６２】
ここで、情報の埋め込みによる画質劣化量を抑制するため、画像の改変量を制御することも可能である。すなわち、ある係数Ｃiにおいて、ｆi(Ｃik)＝Ｅiを満たす解の中で最も近いものをＣikとする。
【００６３】
そして、Ｃ’iを置換後の係数とする。ここで、上記の例のように、置換後の係数Ｃ’iとして、
ｆi(Ｃik)＝Ｅi
の解Ｃik中最も当該重み係数Ｃiに近いものの値に書き換える代わりに、
【００６４】
【数３】
0004073643.tif 000004
といったように、全ての係数の置換に伴う改変量を、ある一定値以下に抑えることにより、画質劣化をある閾値以下に抑えることができる。
【００６５】
具体的には、係数Ｃiとｆi(Ｃik)＝Ｅiを満たす解の中で最もＣiに近いＣiＫとの距離｜Ｃi−ＣiＫ｜がある閾値ｄより大きい場合には、改変量をＴに制限すればよい。つまり
if(|Ｃi−ＣiＫ|≦d)
Ｃ'i ＝  ＣiＫ
else if (Ｃi−Ｃiｋ ≧ d)
Ｃ'i ＝ Ｃi−d
else
Ｃ'i ＝ Ｃi ＋ d
とすればよい。
【００６６】
（抽出用コンピュータ）
次に、抽出用コンピュータの具体的構成を説明する。図４は、この抽出用コンピュータのハードウェアのうち、識別情報埋込済画像データからの識別情報抽出処理に関係する構成のみを示した概略ブロック図である。
【００６７】
同図に示すように、この抽出用コンピュータは、互いにバスＢによって接続されたＣＰＵ１，入力用ディスク装置２，ＲＯＭ３，および出力装置５を有している。
【００６８】
すなわち、抽出用コンピュータのハードウェア構成は、埋込用コンピュータのハードウェア構成と同一であり、唯ＲＯＭ３内に識別情報抽出プログラム３４が格納されている点，および、出力用ディスク装置４が必須でなく出力装置５が必須である点のみが異なる。
【００６９】
従って、ＲＯＭ３内に識別情報埋込プログラム３１および識別情報抽出プログラム３４の双方が格納されているとともに、出力用ディスク装置４および出力装置５がバスＢに接続されていれば、一台のコンピュータを埋込用コンピュータおよび抽出用コンピュータとして機能させることができる。  図４において、入力用ディスク装置２は、ＣＰＵ１からの指示に応じて処理対象画像データ（識別情報埋込済画像データ）２２をＣＰＵ１に入力するハードディスク装置，フロッピーディスク装置，光磁気ディスク装置，等である。
【００７０】
埋込関数保持手段およびコンピュータ可読媒体としてのＲＯＭ３は、ＣＰＵ１にて実行される識別情報抽出プログラム３４，および埋込関数３３を保持している読み出し専用メモリである。この埋込関数３３は、埋込用コンピュータのものと全く同一である。
【００７１】
ＣＰＵ１は、抽出用コンピュータ全体の制御を実行するプロセッサであり、ＲＯＭ３から読み出した識別情報抽出プログラム３４を実行することによって、その内部に直交変換処理部１６，係数抽出処理部１７，および識別情報算出部１８を展開し、図５に概略を示す識別情報抽出処理を実行する。なお、図４における点線は、ＣＰＵ１内におけるデータの流れを示している。
【００７２】
直交変換手段としての直交変換処理部１６は、入力用ディスク装置２から読み出したＮ×Ｍ画素の処理対象画像データ２２に対して上述した直交変換処理を実行して、基底関数のＮ×Ｍ個の組合せに対する重み係数を夫々算出する。そして、Ｎ×Ｍ個の重み係数からなる係数分布画像データを、係数抽出処理部１７へ通知する。
【００７３】
取出（係数選択）手段としての係数抽出処理部１７は、直交変換処理部１６から通知された係数分布画像データから、識別情報の各信号が埋め込まれている可能性のあるＬ個の重み係数を抽出して、識別情報算出部１８へ通知する。
【００７４】
算出手段としての識別情報算出部１８は、ＲＯＭ３から埋込関数３３を読み込む。そして、係数抽出処理部１７から通知された各重み係数毎に、埋込関数３３の出力値を求める。そして、求められた各出力値を、その出力値に対応する重み係数の係数分布画像データ中での配列に従って配列して、出力装置５に対して出力する。
【００７５】
出力装置５は、ＣＰＵ１から渡されたＬ個の出力値を表示するディスプレイ装置又は出力値を印字するプリンタ等である。
【００７６】
（識別情報抽出処理例）
次に、図５を用いて識別情報の抽出方法について説明する。ここでは、識別情報が埋め込まれたＭ×Ｎの原画像を用意する。また、識別情報を埋め込んだ時と同一のＬ個の埋込関数ｆi(x)（ｉ＝１．．Ｌ）を用意する。そして、識別情報を埋め込むために、Ｌ個の係数が用いられたとする（ステップ５０１）。
【００７７】
識別情報を抽出するために、原画像を埋め込み時と同一の直交変換であるＤＣＴ（離散コサイン変換）を施す（ステップ５０２）。次に、このＤＣＴの係数から、予め決められたＬ個の係数Ｃi（ｉ＝１．．Ｌ）を選択する（ステップ５０３）。
【００７８】
そして、Ｌ個の係数を埋め込むためのループを実行する。まず、このループでは、各係数毎に、埋込関数ｆi(x)により埋め込まれた値Ｅiを検出する（ステップ５０４）。
【００７９】
すなわち、前述の埋め込み時と同じ埋込関数
ｆi(x)＝sin (x/T + 3・sin(x/(√3・T))+3・sin(x/(√2・T))+θi)
の場合には、
Ｅi＝ｆi（Ｃi）
となる。
【００８０】
次のステップでは、変数ｉがＬに達したか否か、すなわち、埋込関数Ｌ個分だけ処理を繰り返したか否かを判定する（ステップ５０５）。そして、未だ変数ｉがＬに達していなければ、変数ｉをインクリメントした後で、処理を戻す（ステップ５０６）。
【００８１】
これに対して、変数ｉがＬに達していれば、検出値の総和、すなわち、
【００８２】
【数４】
0004073643.tif 000005
を求める。ここで、ｆi（ｘ）の値域は［−１：１］のため、その中間値０のＬ倍、すなわち０が埋め込まれたビット情報の判定閾値となる。
【００８３】
すなわち、Ｅtotal＞０ならば、埋め込まれたビットは１、そうでない場合は埋め込まれたビットは０と判定する（ステップ５０７）。
【００８４】
〔第２の実施の形態〕
次に、第２の実施の形態の画像データ識別情報埋込・抽出システムについて説明する。
【００８５】
（埋込用コンピュータ及び抽出用コンピュータ）
この実施の形態の埋込用コンピュータ及び抽出用コンピュータは、図２および図４に示す第１の実施の形態と基本的には同一構成である。ただし、抽出用コンピュータのＣＰＵ１を構成する識別情報算出部１８は、機能的に拡張されている。
【００８６】
つまり、識別情報算出部１８は、各選択された直交変換重み係数毎に、直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値と最小値との間の値を出力する埋め込み時と同一の多対一関数である埋込関数と、想定される画像の改変の候補との種類に応じて埋込記関数を変更し、改変の候補種類の画像改変対応の多対一埋め込み関数を得る関数変更機能を有する。
【００８７】
また、識別情報算出部１８は、全ての改変の候補の種類に対して、選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算機能を有する。
【００８８】
さらに、識別情報算出部１８は、全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とする機能を有する。
【００８９】
ここで、尤度計算機能は、さらに、全ての直交変換重み係数に対応する画質改変対応の多対一埋込関数の出力値の総和と閾値との差の絶対値を求め、その値を尤度として出力する。
【００９０】
また、尤度計算機能は、さらに、埋め込まれた識別情報が複数ビットの場合には、各ビット毎に求められた尤度の和を、その複数ビットの識別情報の値を尤度として出力する。
【００９１】
また、関数変更機能は、画像の改変がコントラストまたは輝度の改変の場合には、各多対一埋込関数の定義域を再スケーリングして画像改変対応の多対一埋込関数を得る。
【００９２】
（識別情報抽出処理例）
この処理例では、対応する画像改変をコントラスト改変とする。コントラスト改変とは、次のように定義する。すなわち、Ｐin（ｉ、ｊ）を、改変前の画像の座標（ｉ，ｊ）のピクセル値とする。また、Ｐout（ｊ，ｊ）を画像改変後の座標（ｉ、ｊ）のピクセル値とする。すると、コントラスト改変は、全ての画素（ｉ，ｊ）に対して、以下の一次変換
Ｐout（ｉ，ｊ）＝ａ・Ｐin（ｉ，ｊ）＋ｂ
を施すことになる。
【００９３】
次に、このコントラスト変換を行なわれた画像のＤＣＴ係数と、コントラスト変換する前の係数との関係を求める。上記のコントラスト変換を行なう前の周波数（ｕ，ｖ）のＤＣＴ係数をＣin（ｕ，ｖ）、コントラスト変換した後のＤＣＴ変換係数をＣout（ｕ，ｖ）とすると、以下のような関係となる。
【００９４】
Ｃout（ｕ，ｖ）＝ａ・Ｃin（ｕ，ｖ）    （ｕ，ｖ）≠（０，０）
Ｃout（０，０）＝ａ・Ｃin（０，０）＋ｂ・Ｄ    （Ｄは画像サイズ等で求まる定数）
となる。以下、簡単のために、議論を（ｕ，ｖ）が（０，０）でないとする。
【００９５】
ここで、埋込関数Ｆｕｖ（ｘ）が用意された場合に、
Ｆuv（Ｃin（ｕ，ｖ））＝Ａ
という出力値が得られていたとする。ここで、コントラストのスケーリング値とコントラスト改変後の周波数係数Ｃout（ｕ，ｖ）を入力とする、以下のような新しい関数Ｇを定義する。
【００９６】
Ｇuv（ａ，Ｃ）＝Ｆuv（Ｃ／ａ）
ここで、Ｆuv（ｘ）は埋込関数である。そして、このＧuv（ｘ）にコントラストのスケーリング係数ａとＣout（ｕ，ｖ）とを代入すると、
0004073643.tif 000006
となる。
【００９７】
このことから、コントラスト改変後の係数Ｃout（ｕ，ｖ）に対して、正しくコントラスト改変のスケーリング係数ａを正しく推定し、関数Ｇuv（ｘ）にａとＣout（ｕ，ｖ）とを代入すれば、コントラスト改変前の埋込関数の出力値と同一の値を得ることができる。
【００９８】
また、スケーリング係数ａが正しくない場合には、統計的に関数Ｇuv（ｘ）の出力値がランダムになる。このことから、識別情報を埋め込むために選択された複数のＤＣＴ係数に対して、誤ったスケーリング係数で求まった出力値の加算値は、埋込関数の出力値の平均値の和、すなわちビット判定のための閾値に近づく。
【００９９】
このことから、透かし埋込関数の出力値の加算値と、埋込関数の出力値の平均値の和との差分の絶対値は、埋め込まれた識別情報のもっともらしさ、すなわち尤度としては良い尺度となる。
【０１００】
以上の事実に基づいて、コントラスト改変等の改変された画像から１ビットの識別情報を抽出する方法を図７に示す。ここでは、識別情報が埋め込まれたＭ×Ｎの原画像を用意する。そして、この情報を埋め込むために、Ｌ個の係数が用られたとする。また、情報を埋め込んだ時と同一のＬ個の埋込関数ｆi(x)（ｉ＝１．．Ｌ）を用意する（ステップ７０１）。
【０１０１】
そして、情報を抽出するために、原画像を埋め込み時と同一の直交変換であるＤＣＴ（離散コサイン変換）を施す（ステップ７０２）。このＤＣＴの係数から、予め決められたＬ個の係数Ｃi（ｉ＝１．．Ｌ）を選択する（ステップ７０３）。また、ここで、Ｐ個のコントラスト改変スケーリング係数ａｊ（ｊ＝１．．Ｐ）を用意する（ステップ７０４）。
【０１０２】
まず、あるｊのもとで、Ｌ回の係数の取り出しを行なう。Ｌループのｉ番目の係数について、埋込関数はスケーリング係数ａｊにより、入力値を除算するように変更する。この埋込関数の出力をＥijとする。そして、全ての係数のＥiｊを求め、ΣＥij（ｉ＝１．．Ｌ）を求める（ステップ７０５）。この値ΣＥijと閾値Ｔとの差分の絶対値を、スケーリング係数ａｊの尤度Ｕjとする（ステップ７０６）。
【０１０３】
ここで、ΣＥijは、もとの埋め込み情報とまったく無相関の場合には、閾値Ｔと近くなり、埋め込み情報と相関がある場合に閾値Ｔとの差が大きくなるという原理に基づく。
【０１０４】
全てのスケーリング係数ａｊ（ｊ＝１．．Ｐ）で識別情報を抽出し終わったら、最大のＵjを与える最適係数の添え字ｊoptを求める（ステップ７０７）。そして、ΣＥijoptと閾値Ｔとの大小を比較し、ΣＥijoptの方が大きければ埋め込まれた値Ｓを１、そうでなければ埋め込まれた値Ｓを０と判定する（ステップ７０８）。
【０１０５】
次に、図８参照して、Ｋ（複数）ビットの識別情報が埋め込まれた場合の、コントラスト改変画像からの識別情報の抽出方法を説明する。
【０１０６】
コントラスト改変対応をしない場合には、図３の方法をＫビット毎に独立に行なえばよいが、コントラスト改変画像から、一層確度を向上させて識別情報を取り出す場合には、図８に示すように尤度判定をまとめて行なったほうがよい。
【０１０７】
この例では、図７で求めた、各ビット毎の尤度の和を、全ビットに対するコントラストのスケーリング係数ａｊの尤度とする点が異なる。そして、図７同様、尤度Ｕjの最大値を与える最適係数の添え字ｊoptを求め、その際の埋込関数の出力値を用いて、尤度の最大識別情報（埋め込まれた値））Ｓk（ｋ＝１．．Ｋ）を求める（ステップ８０１から８１０）。
【０１０８】
〔変形例〕
上述した画像改変例としてのコントラスト改変以外に、画像をぼかしたり、あるいはエッジ強調などの空間フィルタによる改変についても、本発明の手法は有効である。一般に、空間フィルタ処理を画像に対して施すと、その空間フィルタ処理後の画像の周波数成分は、元の画像の周波数成分に施した空間フィルタの周波数特性を施したものとなる。
【０１０９】
すなわち、元の画像をＰin（ｉ，ｊ）、空間フィルタをｓ（ｉ，ｊ）とすると、空間フィルタをかけた画像Ｐout（ｉ，ｊ）は次の式で表される。
【０１１０】
【数５】
0004073643.tif 000007
また、元の画像Ｐin（ｉ，ｊ）をフーリエ変換したものをＰｆin（ｕ，ｖ）、空間フィルタ後の画像Ｐout（ｉ，ｊ）をフーリエ変換したものをＰｆout（ｕ，ｖ）とする。また、空間フィルタｓ（ｉ，ｊ）のインパルス応答をＳ（ｕ，ｖ）とする。ここで、Ｓ（ｕ，ｖ）は次のように求められる。
【０１１１】
【数６】
0004073643.tif 000008
また、Ｐｆout（ｕ，ｖ）は以下のように求められる。
【０１１２】
Ｐｆout（ｕ，ｖ）＝Ｓ（ｕ，ｖ）・Ｐｆin（ｕ，ｖ）
このようなことから、空間フィルタを施した後のフーリエ変換係数は、空間フィルタを施す前の画像のフーリエ変換係数に、空間フィルタの周波数特性を乗じたものとなる。
【０１１３】
これらの議論から、この変形例では、識別情報の埋め込みにＤＣＴまたはフーリエ変換などの周波数変換を用いている。このことから、識別情報の埋め込みに用いる各係数は、空間フィルタを施されることにより、
Ｃout（ｕ，ｖ）＝Ｓ（ｕ．ｖ）・Ｃin（ｕ，ｖ）
と言う関係がほぼ成立する。この関係式は、係数のスケーリングが周波数に依存する以外は、先のコントラスト改変の場合と同様となる。
【０１１４】
このことから、コントラスト改変の場合と同様に、予め複数種類の空間フィルタを想定し、前述の関数Ｇｕｖ（ｘ）に想定されたうちの一つのフィルタにおける係数の特性Ｓ（ｕ，ｖ）とＣout（ｕ，ｖ）とを代入すると、
0004073643.tif 000009
となる。
【０１１５】
このことから、空間フィルタ処理後の係数Ｃout（ｕ，ｖ）に対して、正しく空間フィルタを正しく推定し、関数Ｇuv（ｘ）にＳ（ｕ，ｖ）とＣout（ｕ，ｖ）とを代入すれば、コントラスト改変前の埋込関数の出力値と同一の値を得ることができる。
【０１１６】
なお、コンテンツデータを損なわずに用いられる空間フィルタは、「ぼかし」及び「先鋭化」くらいであり、一般に良く用いられるフィルタの特性の種類は多くないことから、この手法は現実的である。
【０１１７】
上述した各実施の形態における各処理はコンピュータで実行可能なプログラムとして提供され、ＣＤ−ＲＯＭやフロッピーディスクなどの記録媒体、さらには通信回線を経て提供可能である。
【０１１８】
〔その他〕
最後に、本発明の課題解決手段を付記としてまとめると以下の通りである。
【０１１９】
（付記１）  原画像データにビットの識別情報を埋め込むための識別情報埋込方法であって、
前記原画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から複数の異なる直交変換重み係数を選択する係数選択ステップと、
最大値Ａと最小値Ｂとを与え、埋め込むべきビットに応じて、中間値（Ａ＋Ｂ）／２と最大値Ａとの間の範囲と、最小値Ｂと前記中間値（Ａ＋Ｂ）／２との間の範囲とのいずれか一方を予め関連付けておき、前記各選択された直交変換重み係数毎に、前記埋め込むべきビットに従って予め関連付けられたいずれか一方の範囲の数値である埋込値を生成する埋込値生成ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として前記最大値Ａと前記最小値Ｂとの間の値を出力する多対一関数である埋込関数を用意し、前記多対一埋込関数の出力値が、前記埋込値生成ステップにより生成された前記埋込値と一致する多対一の埋込関数の複数の入力値のうちから、前記直交変換重み係数に最も近い入力値を特定し、特定した入力値によって当該直交変換重み係数を置換するステップと、
全ての選択された前記直交変換重み係数について置換された直交変換データに対して、逆直交変換を施すステップと、
を備える画像データへの識別情報埋込方法。
【０１２０】
（付記２）  付記１記載の画像データへの識別情報埋込方法によって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出方法であって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する、埋め込み時と同一の多対一関数である埋込関数を用意し、前記選択された直交変換重み係数を前記多対一埋込関数に入力して、その埋込関数の出力値を求めるステップと、
前記選択された全ての直交変換重み係数に対応する前記埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた前記識別情報を抽出するステップと、
を備える画像データからの識別情報抽出方法。
【０１２１】
（付記３）  前記直交変換重み係数を置換するステップは、
ある特定のビットを埋め込むために選択された前記複数の直交変換重み係数の置換による改変量の総和が予め決められた閾値以下となるように係数の置換を制御する
付記１記載の画像データへの識別情報埋込方法。
【０１２２】
（付記４）  前記埋込値生成ステップは、
ある特定のビットを埋め込むために選択された前記複数の直交変換重み係数毎に決定する埋込値の総和が予め決められた閾値以上あるいは以下となるように決定する
付記１記載の画像データへの識別情報埋込方法。
【０１２３】
（付記５）  前記多対一埋込関数は定義域の入力値に対して出力値が周期性がなく、かつ埋め込む直交変換重み係数毎に異なるものである
付記１または２記載の識別情報埋込方法または識別情報抽出方法。
【０１２４】
（付記６）  原画像データにビットの識別情報を埋め込むための識別情報埋込装置であって、
前記原画像データに対して直交変換を施し直交変換データを生成する直交変換手段と、
前記直交変換データを構成する係数から複数の異なる直交変換重み係数を選択する係数選択手段と、
最大値Ａと最小値Ｂとを与え、埋め込むべきビットに応じて、中間値（Ａ＋Ｂ）／２と最大値Ａとの間の範囲と、最小値Ｂと前記中間値（Ａ＋Ｂ）／２との間の範囲とのいずれか一方を予め関連付けておき、前記各選択された直交変換重み係数毎に、前記埋め込むべきビットに従って予め関連付けられたいずれか一方の範囲の数値である埋込値を生成する埋込値生成手段と、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として前記最大値Ａと前記最小値Ｂとの間の値を出力する多対一関数である埋込関数を用意し、前記多対一埋込関数の出力値が、前記埋込値生成手段により生成された前記埋込値と一致する多対一の埋込関数の複数の入力値のうちから、前記直交変換重み係数に最も近い入力値を特定し、特定した入力値によって当該直交変換重み係数を置換する手段と、
全ての選択された前記直交変換重み係数について置換された直交変換データに対して、逆直交変換を施す手段と、
を備える画像データへの識別情報埋込装置。
【０１２５】
（付記７）  付記６記載の画像データへの識別情報埋込装置によって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出装置であって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換手段と、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択手段と、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する、埋め込み時と同一の多対一関数である埋込関数を用意し、前記選択された直交変換重み係数を前記多対一埋込関数に入力して、その埋込関数の出力値を求める手段と、
前記選択された全ての直交変換重み係数に対応する前記埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた前記識別情報を抽出する手段と、
を備える画像データからの識別情報抽出装置。
【０１２６】
（付記８）  原画像データにビットの識別情報を埋め込むための識別情報埋込プログラムであって、
前記原画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から複数の異なる直交変換重み係数を選択する係数選択ステップと、
最大値Ａと最小値Ｂとを与え、埋め込むべきビットに応じて、中間値（Ａ＋Ｂ）／２と最大値Ａとの間の範囲と、最小値Ｂと前記中間値（Ａ＋Ｂ）／２との間の範囲とのいずれか一方を予め関連付けておき、前記各選択された直交変換重み係数毎に、前記埋め込むべきビットに従って予め関連付けられたいずれか一方の範囲の数値である埋込値を生成する埋込値生成ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として前記最大値Ａと前記最小値Ｂとの間の値を出力する多対一関数である埋込関数を用意し、前記多対一埋込関数の出力値が、前記埋込値生成ステップにより生成された前記埋込値と一致する多対一の埋込関数の複数の入力値のうちから、前記直交変換重み係数に最も近い入力値を特定し、特定した入力値によって当該直交変換重み係数を置換するステップと、
全ての選択された前記直交変換重み係数について置換された直交変換データに対して、逆直交変換を施すステップと、
を備えるプログラムを記憶したコンピュータ読取可能な記憶媒体。
【０１２７】
（付記９）  付記８記載の画像データへの識別情報埋込プログラムによって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出プログラムであって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する、埋め込み時と同一の多対一関数である埋込関数を用意し、前記選択された直交変換重み係数を前記多対一埋込関数に入力して、その埋込関数の出力値を求めるステップと、
前記選択された全ての直交変換重み係数に対応する前記埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた前記識別情報を抽出するステップと、
を備えるプログラムを記憶したコンピュータ読取可能な記憶媒体。
【０１２８】
（付記１０）  付記１記載の画像データへの識別情報埋込方法によって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出方法であって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する埋め込み時と同一の多対一関数である埋込関数と、想定される画像の改変の候補との種類に応じて前記埋込記関数を変更し、改変の候補種類の画像改変対応の多対一埋め込み関数を得る関数変更ステップと、
全ての改変の候補の種類に対して、前記選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに前記選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算ステップと、
全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とするステップと、
を備える画像データからの識別情報抽出方法。
【０１２９】
（付記１１）  前記尤度計算ステップは、全ての直交変換重み係数に対応する画質改変対応の多対一埋込関数の出力値の総和と前記閾値との差の絶対値を求め、その値を尤度として出力する
付記１０記載の画像データからの識別情報抽出方法。
【０１３０】
（付記１２）  前記尤度計算ステップは、埋め込まれた識別情報が複数ビットの場合には、各ビット毎に求められた尤度の和を、さらにその複数ビットの識別情報の値を尤度として出力する
付記１１記載の画像データからの識別情報抽出方法。
【０１３１】
（付記１３）  前記関数変更ステップは、画像の改変がコントラストまたは輝度の改変の場合には、各多対一埋込関数の定義域を再スケーリングして画像改変対応の多対一埋込関数を得る
付記１０記載の画像データからの識別情報抽出方法。
【０１３２】
（付記１４）  付記６記載の画像データへの識別情報埋込装置によって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出装置であって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換手段と、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択手段と、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する埋め込み時と同一の多対一関数である埋込関数と、想定される画像の改変の候補との種類に応じて前記埋込記関数を変更し、改変の候補種類の画像改変対応の多対一埋め込み関数を得る関数変更手段と、
全ての改変の候補の種類に対して、前記選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに前記選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算手段と、
全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とする手段と、
を備える画像データからの識別情報抽出装置。
【０１３３】
（付記１５）  付記８記載の画像データへの識別情報埋込プログラムによって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出プログラムであって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する埋め込み時と同一の多対一関数である埋込関数と、想定される画像の改変の候補との種類に応じて前記埋込記関数を変更し、改変の候補種類の画像改変対応の多対一埋め込み関数を得る関数変更ステップと、
全ての改変の候補の種類に対して、前記選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに前記選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算ステップと、
全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とするステップと、
を備えるプログラムを記憶したコンピュータ読取可能な記憶媒体。
【０１３４】
（付記１６）  原画像データにビットの識別情報を埋め込むための識別情報埋込プログラムであって、
前記原画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から複数の異なる直交変換重み係数を選択する係数選択ステップと、
最大値Ａと最小値Ｂとを与え、埋め込むべきビットに応じて、中間値（Ａ＋Ｂ）／２と最大値Ａとの間の範囲と、最小値Ｂと前記中間値（Ａ＋Ｂ）／２との間の範囲とのいずれか一方を予め関連付けておき、前記各選択された直交変換重み係数毎に、前記埋め込むべきビットに従って予め関連付けられたいずれか一方の範囲の数値である埋込値を生成する埋込値生成ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として前記最大値Ａと前記最小値Ｂとの間の値を出力する多対一関数である埋込関数を用意し、前記多対一埋込関数の出力値が、前記埋込値生成ステップにより生成された前記埋込値と一致する多対一の埋込関数の複数の入力値のうちから、前記直交変換重み係数に最も近い入力値を特定し、特定した入力値によって当該直交変換重み係数を置換するステップと、
全ての選択された前記直交変換重み係数について置換された直交変換データに対して、逆直交変換を施すステップと、
を備えるプログラム。
【０１３５】
（付記１７）  付記１６記載の画像データへの識別情報埋込プログラムによって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出プログラムであって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する、埋め込み時と同一の多対一関数である埋込関数を用意し、前記選択された直交変換重み係数を前記多対一埋込関数に入力して、その埋込関数の出力値を求めるステップと、
前記選択された全ての直交変換重み係数に対応する前記埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた前記識別情報を抽出するステップと、
を備えるプログラム。
【０１３６】
（付記１８）  付記１６記載の画像データへの識別情報埋込プログラムによって前記識別情報が埋め込まれた処理対象画像データから、前記識別情報を抽出するための識別情報抽出プログラムであって、
前記処理対象画像データに対して直交変換を施し直交変換データを生成する直交変換ステップと、
前記直交変換データを構成する係数から、埋め込み時と同一の複数の異なる直交変換重み係数を選択する係数選択ステップと、
前記各選択された直交変換重み係数毎に、前記直交変換重み係数が取りうる値を定義域に含むとともに、関数の出力値、すなわち値域として最大値Ａと最小値Ｂとの間の値を出力する埋め込み時と同一の多対一関数である埋込関数と、想定される画像の改変の候補との種類に応じて前記埋込記関数を変更し、改変の候補種類の画像改変対応の多対一埋め込み関数を得る関数変更ステップと、
全ての改変の候補の種類に対して、前記選択された直交変換重み係数を画像改変対応の多対一埋込関数に入力して、その埋込関数の出力値を求め、さらに前記選択された全ての直交変換重み係数に対応する画像改変対応の多対一埋込関数の出力値の総和を求め、その総和と閾値とを比較して埋め込まれた識別情報を抽出するとともに、その識別情報の尤度を求める尤度計算ステップと、
全ての改変の候補に応じて取得した複数の尤度の中から最大尤度の改変候補を選択し、それに対応する画像改変対応の多対一埋込関数を用いて抽出した識別情報を選択し対応画像の識別情報とするステップと、
を備えるプログラム。
【０１３７】
【発明の効果】
本発明によれば、画像に、ある一定の強度以上で、あるいは一定の画像の改変量以下で、バイナリの識別情報の埋め込みを行うことができる。
【０１３８】
また、本発明によれば、埋込関数に非周期関数を用いることにより、悪意の第３者の解析をより困難にし、悪意の改竄を行いにくくすることができる。
【０１３９】
さらに、本発明によれば、コントラスト等の改変に対応した埋込関数で抽出した複数の識別情報の候補を、求められた尤度で判定することにより、識別情報の読み出しの耐性を向上させることができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態における識別情報の埋め込み手順を示すフロー図。
【図２】  本発明の実施の形態における埋込用コンピュータの構成を示すブロック図。
【図３】  本発明の実施の形態における埋込関数を示すグラフ図。
【図４】  本発明の実施の形態における抽出用コンピュータの構成を示すブロック図。
【図５】  本発明の第１の実施の形態における埋込値の抽出手順を示すフロー図。
【図６】  従来技術における署名画像の埋め込みおよび抽出を説明する説明図。
【図７】  本発明の第２の実施の形態における埋込情報の抽出手順を示すフロー図。
【図８】  本発明の第２の実施の形態における埋込情報の抽出手順を示すフロー図。
【符号の説明】
１    ＣＰＵ
２    入力用ディスク装置
３    ＲＯＭ
４    出力用ディスク装置
５    出力装置
１１    直交変換処理部
１２    係数抽出処理部
１３    係数置換部
１４    係数埋込部
１５    逆直交変換部
１６    直交変換処理部
１７    係数抽出処理部
１８    識別情報算出部
２１    原画像データ
２２    処理対象画像データ
３１    プログラム
３２    識別情報
３３    埋込関数
３４    プログラム
４１    識別情報埋込済画像データ
Ｂ    バス
【図１】
0004073643.tif 000010
【図２】
0004073643.tif 000011
【図３】
0004073643.tif 000012
【図４】
0004073643.tif 000013
【図５】
0004073643.tif 000014
【図６】
0004073643.tif 000015
【図７】
0004073643.tif 000016
【図８】
0004073643.tif 000017