実施の形態1
図1は、実施の形態1に係る電子透かし埋め込み装置100の構成を示す。実透かし埋め込み部112は、入力されたコンテンツVに実透かしXを特定の透かし方式によって埋め込み、実透かし埋め込みコンテンツWを出力する。メタ透かし埋め込み部122は、実透かしXの透かし方式を特定するための実透かし識別情報Y(以下、メタ透かしYともいう)を実透かし埋め込みコンテンツWに透かしとして埋め込み、実透かしXとメタ透かしYが埋め込まれた二重透かし埋め込みコンテンツUを出力する。メタ透かし埋め込み部122は、メタ透かしYを実透かし埋め込みコンテンツWに埋め込む際、可逆埋め込み方式、すなわち埋め込み処理の逆変換により埋め込まれた透かしを除去して元のデータに復元することができる方式を用いる。
コンテンツVの著作権を保護するために、コンテンツのID情報を含む実透かしXは様々な方式で埋め込むことが許されるが、その埋め込み方式を特定する情報を含むメタ透かしYは、規格化された共通の方式で埋め込まれる。
図2は、実施の形態1に係る電子透かし抽出装置200の構成を示す。メタ透かし抽出部212は、入力された二重透かし埋め込みコンテンツUからメタ透かしYを抽出し、実透かし選択制御部222およびメタ透かし除去部214に与える。メタ透かし除去部214は、メタ透かし抽出部212により抽出されたメタ透かしYを二重透かし埋め込みコンテンツUから除去し、実透かし埋め込みコンテンツWを取得して切り替え部224に与える。メタ透かしYは可逆埋め込み方式によって埋め込まれているため、メタ透かし除去部214は、埋め込み時の処理の逆変換を行うことによって、二重透かし埋め込みコンテンツUをメタ透かしYを埋め込む前の状態、すなわち実透かし埋め込みコンテンツWに復元することが可能である。
実透かし選択制御部222は、メタ透かし抽出部212により抽出されたメタ透かしYにより、実透かしXの透かし方式を特定し、特定された透かし方式の識別情報を切り替え部224に与える。切り替え部224は、特定の透かし方式ごとに用意された複数の特定実透かし抽出部226の内、実透かし選択制御部222により与えられた透かし方式の識別情報にもとづいて、その透かし方式に合ったいずれかの特定実透かし抽出部226を選択し、メタ透かし除去部214から供給される実透かし埋め込みコンテンツWをその選択された特定実透かし抽出部226に供給するように切り替える。
特定実透かし抽出部226は、特定の透かし方式にもとづいて透かしを抽出する機能を有し、メタ透かし除去部214から供給された実透かし埋め込みコンテンツWからその特定の透かし方式により実透かしXを抽出して出力する。
本実施の形態によれば、電子透かし抽出装置200において、メタ透かし除去部214がメタ透かしYを除去した上で、実透かしXが抽出されるので、実透かしXとメタ透かしYの干渉による検出精度の劣化を防ぐことができる。
本実施の形態の電子透かし抽出装置200は、たとえばコンテンツを提供するサーバなどに設置して、様々な透かし方式により透かしが埋め込まれたコンテンツをユーザに提供するために用いられてもよい。電子透かし抽出装置200は、ユーザからコンテンツの要求があったとき、メタ透かしを抽出して、透かし方式を特定して実透かしを抽出し、実透かしに含まれるコンテンツの利用条件などを照合して、ユーザにコンテンツの利用を許諾することができる。
実施の形態2
図3は、実施の形態2に係る電子透かし埋め込み装置100の構成を示す。第1透かし埋め込み部114は、入力されたコンテンツVに第1透かしXを埋め込み、第1透かし埋め込みコンテンツWを出力し、第1透かしXの埋め込み位置情報Yを第2透かし埋め込み部124に与える。
第1透かし埋め込み部114は、コンテンツVの特徴量にもとづいて第1透かしXを埋め込む位置を決める。たとえばコンテンツVが画像データである場合、ピクセル値の分布などを評価して透かしを埋め込んでも目立たない位置を選んだり、エッジ部など画像の高周波成分を埋め込み位置として選んだり、あるいは画像圧縮などの処理に対する耐性を考慮して埋め込み位置を選んだりして、不可視性や耐性を考慮した埋め込み位置を決定する。したがって埋め込み位置はそれぞれのコンテンツVによって異なる。
第2透かし埋め込み部124は、第1透かし埋め込み部114から与えられた埋め込み位置情報Y(以下、第2透かしYともいう)を第1透かし埋め込みコンテンツWに埋め込み、第1透かしXと第2透かしYが埋め込まれた二重透かし埋め込みコンテンツUを出力する。なお、第2透かし埋め込み部124は、可逆埋め込み方式により第2透かしYを第1透かし埋め込みコンテンツWに埋め込む。
図4は、実施の形態2に係る電子透かし抽出装置200の構成を示す。第2透かし抽出部216は、入力された二重透かし埋め込みコンテンツUから第2透かし、すなわち埋め込み位置情報Yを抽出し、第1透かし抽出部228および第2透かし除去部218に与える。第2透かし除去部218は、埋め込み処理の逆変換を行って、第2透かしYを二重透かし埋め込みコンテンツUから除去し、第1透かし埋め込みコンテンツWを取得して第1透かし抽出部228に与える。
第1透かし抽出部228は、第2透かし抽出部216により抽出された埋め込み位置情報Yをもとに透かしの埋め込み位置を特定し、第1透かし埋め込みコンテンツWから第1透かしXを抽出して出力する。
本実施の形態によれば、透かしの埋め込み位置が第2の透かしとしてコンテンツに埋め込まれるため、透かしの埋め込み位置を秘密鍵で提供したり、コンテンツのヘッダに含めて提供するなど、透かしの埋め込み位置を利用者に知らせるための処理が不要になる。
実施の形態3
図5は、実施の形態3に係る電子透かし埋め込み装置100の構成を示す。この構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた電子透かし埋め込み機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
電子透かし埋め込み装置100は、第1透かし埋め込みブロック110と第2透かし埋め込みブロック120を含む。第1透かし埋め込みブロック110は、ホストデータVに透かし情報Iを埋め込む処理を行い、第1埋め込みホストデータWを出力する。第2透かし埋め込みブロック120は、透かし情報Iの埋め込み位置に関する情報を第1埋め込みホストデータWに第2透かしとして埋め込む処理を行い、第2埋め込みホストデータUを出力する。
ここで、ホストデータVは、たとえば音声、静止画、動画などのデータである。透かし情報Iは、そのホストデータVの識別情報、作成者情報、利用者情報など著作権に関する情報、ホストデータVの改ざん検出を行う認証情報、タイムスタンプなどである。
第1透かし埋め込みブロック110は、第1透かしデータXをホストデータVの複数の埋め込み位置の候補に埋め込み、透かしの耐性が強くなる候補を選択して、最終的な第1埋め込みホストデータWとして出力する。暗号化部10は、ホストデータVに埋め込むべき透かし情報Iを秘密鍵Kにより暗号化し、第1透かしデータXを出力する。透かし情報の暗号化を行わない場合には、暗号化部10の構成は省略してもよい。
位置検出部12は、ホストデータVの特徴と秘密鍵Kにもとづいて第1透かしデータXの埋め込み位置Pを決定し、第1透かし埋め込み部14は、秘密鍵Kを用いて、ホストデータVの埋め込み位置Pに第1透かしデータXを埋め込み、第1埋め込みホストデータWを出力する。図5では、暗号化部10、位置検出部12、第1透かし埋め込み部14、第2透かし埋め込みブロック120の変更部16および第2透かし埋め込み部18に秘密鍵Kの情報が入力されているが、各部に入力される秘密鍵Kの情報はお互いに独立であってもよい。また、秘密鍵Kの情報の一部が従属する内容であってもよく、完全に同一のものであってもよい。さらには、秘密鍵Kに依存しない埋め込み方式を採用してもよい。位置検出部12と第1透かし埋め込み部14は協同して、複数の埋め込み位置Pを生成し、それぞれの埋め込み位置Pに第1透かしデータXを埋め込み、複数の埋め込みホストデータWの候補を生成し、それらの候補の一つを選択する機能をもつ。
第2透かし埋め込みブロック120は、第1透かしデータXの埋め込み位置Pの識別情報を含む第2透かしデータYをスクランブルして、第1埋め込みホストデータWに埋め込み、第2埋め込みホストデータUを出力する。変更部16は、第2透かしデータY、第1埋め込みホストデータW、および秘密鍵Kを用いて、第2透かしデータYをスクランブルし、スクランブルされた第2透かしデータY’を出力する。
第2透かし埋め込み部18は、秘密鍵Kを用いて、スクランブルされた透かしデータY’を第1埋め込みホストデータWに埋め込み、第2埋め込みホストデータUを出力する。秘密鍵Kに依存しない埋め込み方式を用いてもよい。
変更部16と第2透かし埋め込み部18は協同して、複数のスクランブルされた透かしデータY’を生成し、それぞれを第2埋め込みホストデータWに埋め込み、複数の第2埋め込みホストデータUの候補を生成し、それらの候補の一つを選択する機能をもつ。
図6は第1透かし埋め込みブロック110の位置検出部12および第1透かし埋め込み部14の機能構成図である。ECC(Error Correction Code)部24は第1透かしデータXに誤り訂正のためのパリティを付加した透かしデータXcを生成する。ECC部24は、透かしビットの検出率を向上させるためのオプションであって、アプリケーションによっては必要ない場合もあり、この構成を省略してもよい。
位置情報生成部60は、ホストデータVについてL1個の埋め込み位置Pの候補をランダムに生成する。第1埋め込み部26はL1個の埋め込み位置Pの候補のそれぞれに透かしデータXcを埋め込み、L1種類の第1埋め込みホストデータWの候補を生成する。
L1個のSNR計算部28は、L1種類の第1埋め込みホストデータWの候補のそれぞれについて、第1透かしデータXの耐性を評価する。セレクタ32は、耐性の評価値が最良である第1埋め込みホストデータWの候補を選択し、それを最終的な第1埋め込みホストデータWとして出力し、その場合の第1透かしデータXの埋め込み位置情報P*を出力する。
埋め込み位置の候補は、一例としてテーブル・マッピングの手法によりランダムに生成される。位置情報生成部60は、埋め込み位置の候補を識別するための識別情報と埋め込む位置とを対応づけたテーブルを備え、このテーブルを参照して、埋め込み位置の候補の識別データに対応づけて埋め込み位置の候補を生成する。このテーブルは、透かしデータの第1ビットについて、たとえば、「識別番号0の場合は(1,29)の位置、識別番号1の場合は(983,251)の位置、・・・、識別番号15の場合は(542,37)の位置に埋め込む」といった識別番号と埋め込み座標との対応関係を格納する。第2番目から第n1番目のビットについてもそれぞれ埋め込み位置が異なる対応関係が格納される。埋め込み位置は何らかの方法でランダムに生成されたものである。
図7は第2透かし埋め込みブロック120の変更部16および第2透かし埋め込み部18の機能構成図である。第2透かし埋め込みブロック120は第1透かし埋め込みブロック110から第1埋め込みホストデータWと埋め込み位置情報P*を供給される。埋め込み位置情報P*は、第1透かしデータXの各ビットの埋め込み位置の識別情報であり、この識別情報を含む透かしビットの系列を第2透かしデータYと表記する。L2個のマルチプレクサ20は、第2透かしデータYの先頭にそれぞれ初期データC0〜CL2−1を挿入したL2種類のビット系列Ybを生成する。L2個のスクランブラ22はL2種類のビット系列をそれぞれスクランブルして、L2種類のスクランブルされた透かしデータY’bを生成する。L2個のECC部24はL2種類のスクランブルされた透かしデータY’bのそれぞれに誤り訂正のためのパリティを付加した透かしデータY’cを生成する。
L2個の第2埋め込み部27は、可逆埋め込み方式により、L2種類のスクランブルされた透かしデータY’cのそれぞれを第1埋め込みホストデータWに埋め込み、L2種類の第2埋め込みホストデータUの候補を生成する。L2個のSNR計算部28は、L2種類の第2埋め込みホストデータUの候補のそれぞれについて、透かしデータYの耐性を評価する。セレクタ30は、耐性の評価値が最良である第2埋め込みホストデータUの候補を選択し、それを最終的な第2埋め込みホストデータUとして出力する。
図8は、実施の形態3に係る電子透かし抽出装置200の構成を示す。電子透かし埋め込み装置100により電子透かしが埋め込まれた第2埋め込みホストデータUは、ネットワーク上で流通し、コンピュータにおいて利用される。その過程で第2埋め込みホストデータUは圧縮符号化や改ざんなどの操作を受ける。画像データであれば、JPEG圧縮、フィルタリング、量子化、色補正などの信号処理や、スケーリング、クロッピング、回転、並行移動等の幾何学的な変換など有用性のある操作が施されたり、電子透かしを除去したり改変するなどの不正な攻撃が加えられたりする。そのような操作による変形を第2埋め込みホストデータUに対するノイズNとみなし、ノイズNが付加した第2埋め込みホストデータUを第2埋め込みホスト信号U^(=U+N)とする。電子透かし抽出装置200は、第2埋め込みホスト信号U^から埋め込まれた透かしデータXを抽出する処理を行う。
電子透かし抽出装置200は、第2透かし抽出ブロック210と第1透かし抽出ブロック220を含む。第2透かし抽出ブロック210は、第2埋め込みホスト信号U^から第2透かしデータYを抽出する処理を行う。第2抽出部40は、秘密鍵Kを用いて、第2埋め込みホスト信号U^に埋め込まれた第2透かしデータY^cを抽出する。ECC復号部44はこの第2透かしデータY^cに付加されているパリティビットを用いて誤り訂正を行い、第2透かしデータY^bを生成する。デスクランブラ46は秘密鍵Kを用いて、誤り訂正後の第2透かしデータY^bのスクランブルを解除し、先頭部の初期データを取り除いて第2透かしデータY^を出力する。この第2透かしデータY^には第1透かしデータXの埋め込み位置情報P^が含まれ、この埋め込み位置情報P^は第1透かし抽出ブロック220の第1抽出部48に供給される。
第2透かし抽出ブロック210の第2透かし除去部42は、図7の第2透かし埋め込みブロック120の第2埋め込み部27の埋め込み処理の逆変換を行うことにより、第2抽出部40により抽出された第2透かしデータY^cを第2埋め込みホスト信号U^から除去し、第1埋め込みホスト信号W^を出力する。
第1透かし抽出ブロック220は、第2透かし抽出ブロック210の第2透かし除去部42から供給される第1埋め込みホスト信号W^から第1透かしデータXを抽出する処理を行う。第1抽出部48は、第2透かし抽出ブロック210のデスクランブラ46が出力する第2透かしデータY^から埋め込み位置情報P^を取得し、秘密鍵Kを用いて、第2透かし抽出ブロック210の第2透かし除去部42から得た第1埋め込みホスト信号W^から埋め込み位置情報P^で示される位置に埋め込まれた第1透かしデータX^cを抽出する。ECC復号部45は、この第1透かしデータX^cに付加されているパリティビットを用いて誤り訂正を行い、第1透かしデータX^bを生成して出力する。
第1抽出部48は、一例として前述のルックアップ・テーブルを参照する方法を用いる。すなわち、図6の位置情報生成部60が参照するテーブルと同じデーブルを参照して、埋め込み位置情報P^にもとづき、埋め込み位置の識別情報情報に対応づけられた埋め込み位置を特定し、第1透かしデータX^をその位置から抽出する。
なお、上記の説明では、図7で示したように、L2種類の透かしデータの候補を生成するために、L2個のマルチプレクサ20、スクランブラ22、ECC部24、第2埋め込み部27、およびSNR計算部28が並列に設けられたが、これらの部材を単一構成にして、L2種類の透かしデータの候補を逐次的に生成、評価して最適な候補を選択してもよい。透かしデータの候補を逐次生成し、埋め込み強度が所望の基準値以上である候補が得られた時点で、その候補を最終的な埋め込みホストデータWとして選択し、そのような候補が生成されなければ、L2個の埋め込みホストデータの候補の中から埋め込み強度が最大であるものを最終的な埋め込みホストデータWとして選択することができる。
以上の構成の電子透かし埋め込み装置100および電子透かし抽出装置200による電子透かしの埋め込みと抽出の手順を説明する。
(1)第1透かしデータXの埋め込み手順
図9は、電子透かし埋め込み装置100の第1透かし埋め込みブロック110による第1透かしデータXの埋め込み手順を説明するフローチャートである。位置情報生成部60は、第1透かしデータXのL1個の埋め込み位置候補Pk(k=0,・・・,L1−1)を生成する(S30)。
ECC部24は、第1透かしデータXに誤り訂正のためのパリティを付加し、第1埋め込み部26は、ホストデータVのL1個の埋め込み位置の候補Pkのそれぞれに第1透かしデータXを埋め込む(S32)。
第1透かしデータXは次のようにn1ビットのビット系列で表される。
X={x0,x1,・・・,xn1−1}
このn1ビットの第1透かしデータXの埋め込み位置の候補Pkに対応するホストデータVのサンプルの集合のペア(V+k,V−k)を次のように定義する。サンプルの集合V+k,V−kはそれぞれn1個の要素をもつ。なお、ホストデータVは、空間軸上のサンプル、時間軸上のサンプル、周波数軸上のサンプル、たとえばDCT変換、FFT変換、DWT変換などの処理後のサンプルなどにより表現される。
V+k={v+k 0,v+k 1,・・・,v+k n1−1}
V−k={v−k 0,v−k 1,・・・,v−k n1−1}
ここでサンプルの集合V+k,V−kの要素である各サブセットv+k i、v−k iは、次のようにホストデータVのm1個のサンプルデータからなる。
v+k i={v+k i,0,v+k i,1,・・・,v+k i,m1−1}
v−k i={v−k i,0,v−k i,1,・・・,v−k i,m1−1}
第1透かしデータXの各ビットを埋め込み位置の候補Pkに対応したL1個のサンプルの集合のペア(V+k,V−k)に次のように埋め込み、L1種類の第1埋め込みホストデータの候補Wkを生成する。
w+k i,j=v+k i,j+α+ i,j・xi
w−k i,j=v−k i,j−α− i,j・xi
ここでα+ i,jおよびα− i,jは人間の視覚モデルにもとづいて知覚されるノイズを減少するためのスケーリングパラメータであり、いずれも正の値である。あるいは、α+ i,jおよびα− i,jは、ある確率分布、たとえばガウシアン分布、一様分布などに従うように、秘密鍵Kによって生成される正の値であってもよい。この場合、透かしの埋め込み強度は減少するが、埋め込まれた透かしの秘匿性は向上する。
このようにして、第1透かしデータの各ビットxiは各サブセットv+k i、v−k iのそれぞれm1個のサンプルに重複して埋め込まれる。重複の数m1が大きいほど、透かしビットが失われる可能性が低くなり、検出誤差が小さくなる一方で、ホストデータに埋め込むことができる透かしのビット数が減少する。α+ i,jおよびα− i,jは、視覚上の劣化を検知できないようにピクセル毎に設定される値であり、原理的には、埋め込むピクセル数m1を増やしても、人間の視覚上、画質の劣化は検知されない。しかし、1ビットを埋め込むのに費やすピクセル数が増加するということは、埋め込み領域には制限があるため、埋め込むことができるビット数が減少することを意味し、したがって埋め込み率の低下を招くことなる。
SNR計算部28は、L1種類の第1埋め込みホストデータの候補Wkに対して第1透かしデータXの耐性、すなわち埋め込み強度を評価し(S34)、セレクタ32は埋め込み強度が最大となる第1埋め込みホストデータの候補Wkを最終的な第1埋め込みホストデータWとして選択する(S36)。
埋め込み強度の評価は、ホストデータVを第1透かしデータXに対するノイズとみなして、埋め込まれた透かしデータXに対して検出される透かしデータの分散を計算することにより行われる。分散が小さいほど、耐性が強いと考えることができる。第1埋め込みホストデータの候補のペア(W+k,W−k)に対して次式によりSN比を評価して、最適な候補Kを選択する。
K=argmaxk(Pk/σk 2)
Pk=Σi=0 n1−1|Σj=0 m1−1(w+k i,j−w−k i,j)|2/n
σk 2=Σi=0 n1−1|Σj=0 m1−1(w+k i,j−w−k i,j)−Pk 1/2・wi|2/n
(2)第2透かしデータYの埋め込み手順
図14は、電子透かし埋め込み装置100の第2透かし埋め込みブロック120による第2透かしデータYの埋め込み手順を説明するフローチャートである。フローチャートの説明にあたり、図10から図13を適宜参照する。
第2透かし埋め込みブロック120は第1透かし埋め込みブロック110から第1透かしデータXの埋め込み位置情報P*を得る。マルチプレクサ20は、この埋め込み位置情報P*を識別情報として含む第2透かしデータYの先頭にL2種類の初期データを挿入してL2個の符号系列を生成し(S10)、スクランブラ22は、それらの符号系列をスクランブルしてL2種類のスクランブルされた第2透かしデータY’を生成する(S12)。
図10は、第2透かしデータYとL2種類のスクランブルされた第2透かしデータY’との関係を示す。n2ビットの第2透かしデータYの先頭に、r2ビットの冗長語を識別データID[0]〜ID[L2−1]として付加し、L2種類の第2透かしデータの候補を作成する。最大2r2種類の候補が作成される。これらの候補に含まれる第2透かしデータYのビット列はこれから述べるスクランブル方式により、スクランブルされる。
スクランブル方式の一例として、伝送や磁気記録におけるデジタル変調の際に利用されるGS(Guided Scramble)方式を採用する。GS方式は、ある一定のデータブロック長からなる情報系列に対して、L種類の符号系列を生成し、これらを次に送信する符号系列の候補として扱う。これらの候補の中から、伝送媒体の性質に合わせて最適なものを選択して最終的な符号系列とする。このGS方式により、多様性に富んだ符号系列の候補を簡単な方法で生成することができる。
第2透かし埋め込みブロック120におけるマルチプレクサ20とスクランブラ22がGS符号化器の一部として機能する。GS符号化器は、nビットからなる情報系列D(x)の直前にL種類のrビットの冗長語ci(i=0,・・・,L−1)を付加し、L種類の符号系列cixn+D(x)を生成する。この符号系列の符号長は(n+r)ビットとなる。このようにして冗長語が付加された符号系列に対して、次式のようにN次元のスクランブル多項式S(x)で除算することにより商Ti(x)を求める。
Ti(x)=QS(x)[(cixn+D(x))xN] (1)
ただし、Qa[b]はbをaで除算した商を示す。商集合{T0(x),・・・,TL−1(x)}がスクランブル後の符号系列の候補である。これらの候補の各々について、その符号系列が実際に用いられた際の性能を評価し、その評価値が最良であるものを最終的な符号系列として選択する。
透かし抽出時には、第2透かし抽出ブロック210におけるデスクランブラ46がGS復号器として機能し、符号系列にS(x)を乗算し、下位Nビットと上位rビットの変換情報を捨てることにより、元の情報系列D(x)が得られる。
ここでスクランブル多項式S(x)として、S(x)=xr+1を用いた場合を説明する。n mod r=0の場合、(1)式は次式に示す畳み込み演算で表現可能である。
tj=dj(+)ci (j=0)
tj=dj(+)tj−1 (j=1,・・・,n/r−1)
ただし、i=0,・・・,L−1であり、djは元の情報系列D(x)をrビットずつ区切ったビット列、tjは変換後の符号系列Ti(x)の先頭のrビットの冗長語ci以降をrビットずつ区切ったビット列である。また(+)は排他的論理和(EX−OR)演算を示す。
図11はこの透かし埋め込み時の畳み込み演算を説明する図である。たとえば、n=6、r=2の場合を考える。元の情報系列D(x)=(1,0,1,0,0,1)に対して、冗長語c0=(0,0)を付加して、変換後の符号系列T0(x)を生成する。上記の符号化時の畳み込み演算により、t0=d0(+)c0=(1,0)(+)(0,0)=(1,0)、t1=d1(+)t0=(1,0)(+)(1,0)=(0,0)、t2=d2(+)t1=(0,1)(+)(0,0)=(0,1)となり、変換後の符号系列T0=(0,0,1,0,0,0,0,1)が得られる。ここで変換後の符号系列T0の先頭の2ビットは冗長語c0であることに注意する。
同様にして、冗長語c1=(0,1)、c2=(1,0)、c3=(1,1)に対して、それぞれ変換後の符号系列T1=(0,1,1,1,0,1,0,0)、T2=(1,0,0,0,1,0,1,1)、T3=(1,1,0,1,1,1,1,0)が得られる。
透かし抽出時は次式のように畳み込み演算を行うことにより、元の情報系列D(x)が得られる。
dj=tj(+)ci (j=0)
dj=tj(+)tj−1 (j=1,・・・,n/r−1)
図12はこの透かし抽出時の畳み込み演算を説明する図である。前述の例において、変換後の符号化系列T0=(0,0,1,0,0,0,0,1)が与えられると、先頭の2ビットから冗長語c0=(0,0)が得られ、上記の復号時の畳み込み演算により、d0=t0(+)c0=(1,0)(+)(0,0)=(1,0)、d1=t1(+)t0=(0,0)(+)(1,0)=(1,0)、d2=t2(+)t1=(0,1)(+)(0,0)=(0,1)となり、元の情報系列D(x)=(1,0,1,0,0,1)が得られる。他の変換後の符号化系列T1,T2,T3についてもこの畳み込み演算により、元の情報系列D(x)が得られる。
再び図14を参照する。スクランブラ22によって生成されたL2種類のスクランブルされた透かしデータY’は、ECC部24により誤り訂正のためのパリティを付加された後に、第2埋め込み部27により第1埋め込みホストデータWに埋め込まれる(S14)。
図13(a)、(b)は、スクランブルされた透かしデータY’の埋め込み方法を説明する図である。L2種類のスクランブルされた透かしデータY’をy0,y1,・・・,yL2−1とする。各透かしデータの候補のビット系列は、次式のように表される。先頭のr2ビットは識別データである。また、スクランブル処理後のビット0は、−1に置き換えて、以下の処理を行う。
y0={−1,・・・,−1,−1,y0 0,y0 1,・・・,y0 n2−1}
y1={−1,・・・,−1,1,y1 0,y1 1,・・・,y1 n2−1}
・・・
yL2−1={1,・・・,1,1,yL2−1 0,yL2−1 1,・・・,yL2−1 n2−1}
(n2+r2)ビットの透かしデータYの埋め込み対象として選択された第1埋め込みホストデータWから、第2透かし埋め込み用の秘密鍵を用いて、サンプル集合のペア(Ω+,Ω−)を次のように選択する。このサンプル集合(Ω+,Ω−)は第1埋め込みホストデータWから第2透かし埋め込み用の秘密鍵にもとづいて選択される集合であり、第1透かしデータXの埋め込み対象として第1透かし埋め込み用の秘密鍵にもとづいて選択されたサンプル集合(V+,V−)とは独立に選択される。したがって、第1透かし埋め込み後のサンプル集合(W+,W−)とは区別する意味で、ここでは第2透かしの埋め込み対象のサンプル集合を(Ω+,Ω−)と表記している。サンプルの集合Ω+,Ω−は次のようにそれぞれ(n2+r2)個の要素をもつ。なお、第1埋め込みホストデータWは、空間軸上のサンプル、時間軸上のサンプル、周波数軸上のサンプル、たとえばDCT変換、FFT変換、DWT変換などの処理後のサンプルなどにより表現される。
Ω+={ω+ 0,ω+ 1,・・・,ω+ n2+r2−1}
Ω−={ω− 0,ω− 1,・・・,ω− n2+r2−1}
ここでサンプルの集合Ω+,Ω−の要素である各サブセットω+ i、ω− iは、次のように第1埋め込みホストデータWのm2個のサンプルデータからなる。
ω+ i={ω+ i,0,ω+ i,1,・・・,ω+ i,m2−1}
ω− i={ω− i,0,ω− i,1,・・・,ω− i,m2−1}
第2透かしデータの候補yk(k=0,・・・,L2−1)をサンプルの集合のペア(Ω+,Ω−)に次のように埋め込み、L2種類の第2埋め込みホストデータの候補Ukを生成する。
u+k i,j=ω+ i,j+β+ i,j・yk i
u−k i,j=ω− i,j−β− i,j・yk i
ここでβ+ i,jおよびβ− i,jは人間の視覚モデルにもとづいて知覚されるノイズを減少するためのスケーリングパラメータであり、いずれも正の値である。あるいは、β+ i,jおよびβ− i,jは、ある確率分布、たとえばガウシアン分布、一様分布などに従うように、秘密鍵Kによって生成される正の値であってもよい。このようにして、k番目の第2透かしデータの候補の各ビットyk iは各サブセットω+ i、ω− iのそれぞれm2個のサンプルに重複して埋め込まれる。
各サブセットω+ i、ω− iは、一例として、特定のDCT(Discrete Cosine Transform)ブロックを示しており、透かしビットの埋め込み対象として選ばれるm2個のサン
プルデータは、そのDCTブロックに含まれるm2個のDCT係数である。図13(a)、(b)は、8×8のDCTブロックのペアω+ i、ω− iのそれぞれm2個のDCT係数に第2透かしデータyk iが埋め込まれる様子を示している。ブロックペアω+ i、ω− iおよびm2個のDCT係数は、秘密鍵Kに基づいて選択される。
図14に戻り、SNR計算部28は、L2種類の第2埋め込みホストデータの候補Ukに対して第2透かしデータykの耐性、すなわち埋め込み強度を評価し(S16)、セレクタ30は埋め込み強度が最大となる第2埋め込みホストデータの候補Ukを最終的な第2埋め込みホストデータUとして選択する(S18)。
埋め込み強度の評価式を与える前に、第2埋め込みホストデータUに対して信号処理や画像処理などにより変形が加えられた場合に、第2透かしデータY^がどのように検出されるかを検討する。第2埋め込みホストデータUに加えられる変形をノイズNとして扱い、ノイズNが加わった埋め込みホストデータUを第2埋め込みホスト信号U^と呼ぶ。この第2埋め込みホスト信号U^から第2透かしデータY^を抽出する方法を説明する。第2埋め込みホスト信号の集合のペア(U^+,U^−)を次のように定義する。第2埋め込みホスト信号の集合U^+,U^−は次のようにそれぞれ(n2+r2)個の要素をもつ。
U^+={u^+ 0,u^+ 1,・・・,u^+ n2+r2−1}
U^−={u^− 0,u^− 1,・・・,u^− n2+r2−1}
ここで第2埋め込みホスト信号の集合U^+,U^−の要素である各サブセットu^+ i、u^− iは、電子透かしの埋め込み位置に対応して、次のように埋め込みホスト信号U^のm2個のサンプルデータからなる。
u^+ i={u^+ i,0,u^+ i,1,・・・,u^+ i,m2−1}
u^− i={u^− i,0,u^− i,1,・・・,u^− i,m2−1}
第2透かしビットyk iを検出するために、次の検出値ziを計算する。
zi=Σj=0 m2−1(u^+ i,j−u^− i,j)
=Σj=0 m2−1[(u+ i,j+n+ i,j)−(u− i,j+n− i,j)]
=Σj=0 m2−1[(ω+ i,j−ω− i,j)+(β+ i,j+β− i,j)・yk i+(n+ i,j−n− i,j)]
ここでΣj=0 m2−1(ω+ i,j−ω− i,j)はm2が十分に大きいとき、一般にガウス分布に従い、0に近づく。またノイズの項Σj=0 m2−1(n+ i,j−n− i,j)についても同様に0に近づく。したがって、ziはΣj=0 m2−1[(β+ i,j+β− i,j)・yk i]の値で近似できる。(β+ i,j+β− i,j)は正であるから、第2透かしビットyk iが1ならばziは正であり、第2透かしビットyk iが−1ならばziは負である。したがってziの正負により第2透かしビットyk iの値を判定することができる。
埋め込み強度の評価は、第1埋め込みホストデータWを第2透かしデータYに対するノイズとみなして、埋め込まれた透かしデータYに対して検出される透かしデータのSN比を計算することにより行われる。SN比が大きいほど、耐性が強いと考えることができる。第2埋め込みホストデータの候補のペア(U+k,U−k)に対して次式によりSN比を評価して、最適な候補Kを選択する。
K=argmaxk(Pk/σk 2)
Pk=Σi=0 n2+r2−1|Σj=0 m2−1(u+k i,j−u−k i,j)|2/(n2+r2)
σk 2=Σi=0 n2+r2−1|Σj=0 m2−1(u+k i,j−u−k i,j)−Pk 1/2・yk i|2/(n2+r2)
第2透かしビットyk iが{1,−1}のいずれであるかを判定するための前述の検出値ziは、第2埋め込みホストデータUにノイズが付加される前の状態では、zi=Σj=0 m2−1(u+k i,j−u−k i,j)で与えられることを考慮すると、分散σk 2は、第2透かしビットに関する検出値ziと実際に埋め込まれた第2透かしビットの平均値Pk 1/2・yk iとの差の自乗をi=0,・・・,n2+r2−1について評価して平均化したものであると言える。ただし、Pkは検出値ziのi=0,・・・,n2+r2−1についての自乗平均であり、埋め込まれた透かしの平均パワーを示す。したがって、埋め込まれた第2透かしデータykと抽出される透かしデータとの間のユークリッド距離が小さく、第2透かしビットを抽出するための検出値の絶対値が大きいほど、Pk/σk 2の値は大きくなる。言い換えれば、Pk/σk 2が最大となる候補を選択することは、第2透かしビットの検出誤差が最小である候補を選択することを意味する。
検出値ziについて、ω+ i,j>ω− i,jかつyk i=1ならばzi>>0となり、ω+ i,j<ω− i,jかつyk i=−1ならばzi<<0となる。したがって前述の評価により最適な第2透かしデータykの候補を選択することは、検出値ziによる第2透かしビットyk iの検出性能を向上させるために、ω+ i,j>ω− i,jならばy’i=1となり、ω+ i,j<ω− i,jならばy’i=−1となるように、元の透かしビットyiをy’iに変更することを意味する。これがGS方式のガイディングルールであり、これにより検出値ziのレスポンスが改善する。
(3)第2透かしYの抽出手順
第2透かし抽出ブロック210の第2抽出部40は、ノイズの付加された第2埋め込みホスト信号U^を受け取ると、ECC復号部44が硬入力の復号器で構成される場合には、検出値ziを次式に示すように計算し、検出値ziの正負で、第2透かしビットy^iが{−1,1}のいずれであるかを判定し、第2透かしデータY^を得る。また、ECC復号部44が軟入力の復号器で構成される場合には、検出値ziを{−1,1}に硬判定することなく、そのまま、ECC復号部44に送る。
zi=Σj=0 m2−1(u^+ i,j−u^− i,j)
=Σj=0 m2−1[(u+ i,j+n+ i,j)−(u− i,j+n− i,j)]
≒Σj=0 m2−1[(ω+ i,j−ω− i,j)+(β+ i,j+β− i,j)・yi]
抽出された第2透かしデータY^はさらにECC復号部44により誤り訂正がなされ、デスクランブラ46によりスクランブルが解除されて出力される。
(4)第2透かしの除去手順
第2透かし抽出ブロック210の第2透かし除去部42による第2透かしの除去手順を説明する。第2埋め込みホスト信号U^から検出された第2透かしデータY^による変化分を次のように除去して第1埋め込みホスト信号W^を取得する。
ω^+ i,j=u^+ i,j−β^+ i,j・y^i
=ω+ i,j+(β+ i,j・yi−β^+ i,j・y^i)+n+ i
=ω+ i,j+q+ i,j+n+ i
ω^− i,j=u^− i,j+β^− i,j・y^i
=ω− i,j−(β− i,j・yi−β^− i,j・y^i)+n− i
=ω− i,j−q− i,j+n− i
ここで、β^+ i,jおよびβ^− i,jは上述の人間の視覚モデルによるスケーリングパラメータβ+ i,jおよびβ− i,jの近似値である。第2透かしに関するスケーリングパラメータが、視覚モデルではなく、秘密鍵に基づいて計算されるデータの場合には、第2透かしの埋め込み時、抽出時共に同一の値を発生させることができるため、β+ i,j=β^+ i,j,β− i,j=β^− i,jとなり、さらに、第2透かしビットy^iが正しく検出される場合、すなわち、y^i=yiの場合、q± i,j=0となり、第2透かしを完全に除去することが可能である。視覚モデルを用いた場合には、埋め込み時と抽出時においては、スケーリングパラメータを計算する対象の画像は異なるものの、両画像の違いを認知できないほど似通っているため、β+ i,j≒β^+ i,j,β− i,j≒β^− i,jとなる。以上により、第2透かしビットy^iが正しく検出される場合、すなわち、yi=y^iの場合、第2透かしの除去により発生したノイズq± i,jはゼロに近似される。
(5)第1透かしの抽出手順
第1透かし抽出ブロック220の第1抽出部48による第1透かしの抽出手順を説明する。第1抽出部48は、第2透かし抽出ブロック210から第2透かしY^が除去された第1埋め込みホスト信号W^を受け取り、第1透かしビットxiを検出するために、次の検出値ziを計算する。
zi=Σj=0 m1−1(w^+ i,j−w^− i,j)
=Σj=0 m1−1[(v+ i,j−v− i,j)+(α+ i,j+α− i,j)・xi+(q〜+ i,j+q〜− i,j)+(n〜+ i,j−n〜− i,j)]
ただし、q〜± i,jは、元のホストデータv± i,jに埋め込まれている第2透かしビットの除去後に生じたノイズである。また、n〜± i,jは、信号処理などにより、元のホストデータv± i,jに加えられたノイズを示す。
ここでΣj=0 m1−1(v+ i,j−v− i,j)はm1が十分に大きいとき、一般にガウス分布に従い、0に近づく。ノイズの項Σj=0 m1−1(n+ i,j−n− i,j)についても同様に0に近づく。Σj=0 m1−1(q〜+ i,j+q〜− i,j)の項についても、第2透かしが正しく抽出されている場合には、0に近似できる。したがって、検出値ziはΣj=0 m−1[(α+ i,j+α− i,j)・xi]の値で近似できる。(α+ i,j+α− i,j)は正であるから、第1透かしビットxiが1ならばziは正であり、第1透かしビットxiが−1ならばziは負である。したがってziの正負により第1透かしビットxiの値を判定することができる。
以上のことより、検出値ziは、次式のように近似される。
zi=Σj=0 m1−1(w^+ i,j−w^− i,j)
≒Σj=0 m1−1[(v+ i,j−v− i,j)+(α+ i,j+α− i,j)・xi]
第1透かし抽出ブロック220の第1抽出部48は、第1埋め込みホスト信号W^を受け取り、検出値ziを計算した後、ECC復号部45が硬入力の復号器で構成される場合には、検出値ziの正負で、第1透かしビットxi^が{−1,1}のいずれであるかを判定し、第1透かしデータX^を得る。また、ECC復号部45が軟入力の復号器で構成される場合には、検出値ziを{−1,1}に硬判定することなく、そのまま、ECC復号部45に送る。
抽出された第1透かしデータX^はさらにECC復号部45により誤り訂正がなされて出力される。
(6)透かしベクトルの許容劣化領域
図15は、GS方式によるホストデータVに対する透かしビット系列の候補を説明する図である。透かし埋め込み対象のホストデータvをホストデータの信号空間のある1点であるとすると、このホストデータvに対して人間の視覚モデルから決定される知覚上の劣化を生じない非線形領域(以下許容劣化領域300という)が同図のように定まる。ただし、説明の便宜上、信号空間を2次元空間で示している。透かし系列の候補数が16の場合、第1透かしベクトルの候補x0〜x15がスクランブルにより得られる。これらの第1透かしベクトル候補xi(i=0,・・・,15)をホストデータvに加算する際、許容劣化領域300に収まるようにスケーリングパラメータαiを乗算することで透かしの増幅を行う。その結果、16個の第1埋め込みホストデータの候補w0,・・・,w15が得られる。これらの候補の中で埋め込み透かしのSN比が最大のものを選択すると、同図の例では、ベクトル長が最大である第1埋め込みホストデータw5が得られる。
次に、第2透かしベクトルの候補yi(i=0,・・・,15)をスクランブルにより生成して、最適な第1埋め込みホストデータw5に同様に埋め込むと、図16に示すように、最適な第1埋め込みホストデータw5に対して決定される許容劣化領域310内で、16個の第2埋め込みホストデータの候補u0,・・・,u15が得られる。これらの候補の中で埋め込み透かしのSN比が最大のものを選択すると、同図のように最適な第2埋め込みホストデータu9が得られる。
ここで、最適な第2埋め込みホストデータu9は元のホストデータvの許容劣化領域300内には収まっていない。このように透かしを多重に埋め込むと、一般には多重埋め込みホストデータは、元のホストデータの許容劣化領域内に収まらないことになる。そこで、図17に示すように、ホストデータvの許容劣化領域300と第1透かし埋め込み後の最適な第1埋め込みホストデータw5に対して決定される許容劣化領域310との共通領域312内に制限して、第2埋め込みホストデータの候補を選択する。共通領域312内で埋め込み透かしのSN比が最大のものを選択すると、同図のように、最適な第2埋め込みホストデータu11が得られ、二重埋め込みホストデータは元のホストデータvの許容劣化領域300内に収まる。多重に透かしを埋め込む場合も同様の制限を行い、多重埋め込みホストデータが元のホストデータvの許容劣化領域300内に収まるようにすることができる。
第2埋め込みホストデータの選択範囲を広げるために、図18のように、緩和係数A(>1)により、スケーリングパラメータαをα・Aに緩和して、ホストデータvの許容劣化領域300を緩和許容劣化領域302に広げてもよい。この場合、ホストデータvの緩和許容劣化領域302と最適な第1埋め込みホストデータw5に対して決定される許容劣化領域310との共通領域314内に制限して、第2埋め込みホストデータの候補を選択するため、選択対象の候補が増え、ベクトル長がより長いu10が最適な第2埋め込みホストデータとして得られる。
以下、図17および図18の第2埋め込みホストデータの候補Ukの選択手順を詳細に述べる。GS方式により第1透かしの埋め込みを行った場合、第1埋め込みホストデータWは次式で与えられる。
w+ i,j=v+ i,j+α+ i,j・xk i
w− i,j=v− i,j−α− i,j・xk i
ただし、{v± i,j}(i=0,・・・,n1−1,j=0,・・・,m1−1)はホストデータVから秘密鍵K1にもとづいて選択されたサンプル集合である。
第2埋め込みホストデータの候補Ukは次式で与えられる。
uk+ i,j=w〜+ i,j+β+ i,j・yk i
uk− i,j=w〜− i,j−β− i,j・yk i
ただし、{w〜± i,j}(i=0,・・・,n2−1,j=0,・・・,m2−1)は第1埋め込みホストデータWから秘密鍵K2にもとづいて選択されたサンプル集合である。このサンプル集合{w〜± i,j}は、第1透かしデータXの埋め込み対象として秘密鍵K1にもとづいて選択されたサンプル集合{v± i,j}とは異なる集合であり、サンプル集合{v± i,j}とは独立に選択される。したがって、第1透かしデータXの埋め込み式におけるw± i,jとは区別してw〜± i,jと表記している。
ここで、w〜± i,jは元のホストデータの値v〜± i,jからΔ± i,jだけ変化していることから、
uk+ i,j=v〜+ i,j+Δ+ i,j+β+ i,j・yk i
uk− i,j=v〜− i,j+Δ− i,j−β− i,j・yk i
と表すことができる。ここでΔ± i,jの値は、埋め込まれている第1透かしビットの値により、+α〜± i,jまたは−α〜± i,jである。もしくは、第1透かしビットがサンプルv〜± i,jに埋め込まれていない場合は、Δ± i,j=0となる。なお、v〜± i,jは秘密鍵K2により決定されたサンプルw〜± i,jと同じ場所に位置する原ホストデータVのサンプルであり、α〜± i,jは、その原サンプルv〜± i,jにおいて決定されたスケーリングパラメータである。
(Δ± i,j±β± i,j・yk i)の値は、透かしを二重に埋め込んだことによる原サンプルv〜± i,jからの変化量である。一方、α〜± i,jは、その原サンプルv〜± i,jに対して許容される最大の変化量である。したがって、添え字の集合Cを次のように定義し、k∈Cとなる候補について、SN比が最大になるものを選択すればよいことがわかる。
K=argmaxk∈C(Pk/σk 2)
Pk=Σi=0 n2−1|Σj=0 m2−1(u+k i,j−u−k i,j)|2/n2
σk 2=Σi=0 n2−1|Σj=0 m2−1(u+k i,j−u−k i,j)−Pk 1/2・yk i|2/n2
C={c:|Δ+ i,j+β+ i,j・yc i|≦α〜+ i,j,
|Δ− i,j−β− i,j・yc i|≦α〜− i,j,
∀i=0,・・・,n2−1,
∀j=0,・・・,m2−1}
添え字の集合Cは、第2埋め込みホストデータの候補Ukのサンプル集合がすべてホストデータVの許容劣化範囲に収まる領域を示しており、この領域内に存在するホストデータUkの中からSN比が最大のものが選択される。緩和許容劣化領域に広げる場合は、α〜+ i,j,α〜− i,jをそれぞれA・α〜+ i,j,A・α〜− i,jに置き換えればよい。緩和係数Aの導入により、透かしの耐性を強化できるが、ホストデータVからの劣化は大きくなる。以上の手順を繰り返し適用すれば、ホストデータVを劣化させることなく、複数の透かしを多重に埋め込むことができる。
上記の添え字の集合Cは、第2埋め込みホストデータの候補Ukのサンプル集合がすべてホストデータVの許容劣化範囲に収まることを埋め込みの条件として要求するものである。しかしながら、第1埋め込みホストデータWから選択されたサンプル集合{w〜± i,j}(i=0,・・・,n2−1,j=0,・・・,m2−1)に含まれるすべてのサンプルついて、このような制約を満たすことは一般には難しく、第2埋め込みホストデータの候補Ukを有効に選択できないこともある。そこでこの制約を弱めて、ある一部のサンプルが上記の条件から外れることを許容してもよい。弱い制約の場合の添え字の集合Cは次のように定義される。
C={c:T<δ}
T=Σi=0 n2−1Σj=0 m2−1{Q(|Δ+ i,j+β+ i,j・yc i|−α〜+ i,j)+Q(|Δ− i,j−β− i,j・yc i|−α〜− i,j)}
ここで、Q(a)の値はa>0のとき1で、それ以外のとき0である。Tはサンプル集合に含まれるサンプルのうち、上記の強い制約の条件を違反するサンプルの個数を与える。添え字の集合Cは、制約違反のサンプル数Tがペナルティの上限値を与える定数δより小さい候補の添え字の集合である。なお、Q(a)の値がa>0のときaで、それ以外のとき0を取るように、Q(a)の定義を変更してもよい。この場合、Tは制約違反のサンプル数ではなく、制約違反の程度を与えることになる。
このように制約条件を緩和することにより、第2埋め込みホストデータの候補Ukの選択の幅を広げるとともに、二重に透かしを埋め込んだ場合のホストデータVの劣化を抑えることができる。
上記の二重透かしをホストデータVの許容劣化領域内に制限する方法は、第2透かしデータYを第1埋め込みホストデータWに埋め込んだ後に、制約条件を満たす第2埋め込みホストデータの候補Ukを選択するものであったが、第2透かしデータYを埋め込む段階で、制約条件を満たすように第2埋め込みホストデータの候補Ukを生成する方法を用いてもよい。この場合、第2埋め込みホストデータの候補Ukは次式で与えられる。
|w〜+ i,j+β+ i,j・yk i−v〜+ i,j|≦α〜+ i,jのとき、
uk+ i,j=w〜+ i,j+β+ i,j・yk i
それ以外のとき、
uk+ i,j=v〜+ i,j+α〜+ i,j・yk i
|w〜− i,j−β− i,j・yk i−v〜− i,j|≦α〜− i,jのとき、
uk− i,j=w〜− i,j−β− i,j・yk i
それ以外のとき、
uk− i,j=v〜− i,j−α〜− i,j・yk i
これにより、埋め込み段階で、制約条件を満たさない場合は、元のホストデータVからの視覚劣化が許容範囲を超えないように第2透かしデータYが埋め込まれる。すなわち、第2透かしデータYをβの強さで第1埋め込みホストデータWに埋め込んだときの視覚劣化が、元のホストデータVが許容する範囲内αに収まっていたならば、強さβで第2透かしデータYを埋め込む。逆に、許容範囲αを超えていた場合には、第2透かしデータYの強さを小さくして、許容範囲内に収まるように埋め込む。これは、原ホストデータVにαの強さで第2透かしデータYを埋め込むことで実現される。なお、この場合、緩和係数A(>1)により、スケーリングパラメータα〜+ i,jをA・α〜+ i,jに緩和して、許容範囲を広げてもよい。
実施の形態4
図19は実施の形態4に係る電子透かし埋め込み装置100の構成を示す。本実施の形態では、透かし情報Iに非重要データと重要データが含まれ、電子透かし埋め込み装置100は、非重要データを第1透かしデータXとして、重要データを第2透かしデータYとしてホストデータVに埋め込む。重要データとは、たとえばコンテンツの識別データなどの保護情報であり、非重要データとは、そのコンテンツに関連するURL(Uniform Resource Locator)などの予備情報である。
暗号化部10は、秘密鍵Kを用いて、透かし情報Iに含まれる非重要データと重要データをそれぞれ第1透かしデータXと第2透かしデータYに暗号化して、それぞれ第1透かし埋め込みブロック110の変更部13と第2透かし埋め込みブロック120の変更部16に入力する。
第1透かし埋め込みブロック110の変更部13は、第1透かしデータXをスクランブルして出力し、第1透かし埋め込み部14は、秘密鍵Kを用いて、スクランブルされた第1透かしデータX’をホストデータVに埋め込み、第1埋め込みホストデータWを出力する。
第2透かし埋め込みブロック120の変更部16は、第2透かしデータYをスクランブルして出力し、第2透かし埋め込み部18は、秘密鍵Kを用いて、スクランブルされた第2透かしデータY’を第1埋め込みホストデータWに埋め込み、第2埋め込みホストデータUを出力する。
一般に、電子透かしの耐性は透かしのデータ量とトレードオフの関係にある。非重要データが暗号化された第1透かしデータXは、データ量を多くする代わりに、弱い耐性でホストデータVに埋め込み、重要データが暗号化された第2透かしデータYは、データ量を少なく抑え、埋め込みの際の冗長度を増加させることで強い耐性をもたせて第1埋め込みホストデータWに埋め込む。
第1透かし埋め込みブロック110の変更部13と第1透かし埋め込み部14は協同して、複数のスクランブルされた透かしデータX’を生成し、それぞれをホストデータVに埋め込み、複数の第1埋め込みホストデータWの候補を生成し、それらの候補の一つを選択する機能をもつ。
図20は、第1透かし埋め込みブロック110の変更部13および第1透かし埋め込み部14の機能構成図である。この構成は、図7の構成において、マルチプレクサ20に入力される埋め込み位置情報P*を第1透かしデータXに置き換え、第1埋め込みホストデータWに対する埋め込み処理を行う第2埋め込み部27をホストデータVに対する埋め込み処理を行う第1埋め込み部26に置き換えたものである。
この図20の構成は、第2透かし埋め込みブロック120の変更部16および第2透かし埋め込み部18の機能構成としても用いることができる。その場合、図20において、マルチプレクサ20に入力される第1透かしデータXを第2透かしデータYに置き換え、ホストデータVに対する埋め込み処理を行う第1埋め込み部26を第1埋め込みホストデータWに対する埋め込み処理を行う第2埋め込み部27に置き換えればよい。もっともこの場合、図20の構成を第2透かし埋め込みブロック120で流用することも可能である。すなわち、セレクタ30が出力する第1埋め込みホストデータWを第1埋め込み部26にフィードバックして入力として与え、マルチプレクサ20に第2透かしデータYを入力すれば、第2透かし埋め込みブロック120の動作をなすことができる。このように構成することにより、第1透かし埋め込みブロック110と第2透かし埋め込みブロック120の機能を実質的に同一の構成で実現して、ハードウエアまたはソフトウエアの構成を簡略にすることができる。
図21は、実施の形態4に係る電子透かし抽出装置200の構成を示す。図21の第2透かし抽出ブロック210の構成と動作は、図8の第2透かし抽出ブロック210と同様であるが、デスクランブラ46が出力する第2透かしデータYは、第1透かし抽出ブロック220の第1抽出部48には供給されずに、そのまま電子透かし抽出装置200から出力される。
図21の第1透かし抽出ブロック220の第1抽出部48とECC復号部45は、それぞれ図8の第1透かし抽出ブロック220の第1抽出部48とECC復号部45と同様の動作を行うが、図21の第1透かし抽出ブロック220の第1抽出部48は第1透かしデータの埋め込み位置情報を利用しない点が異なる。また、図21の第1透かし抽出ブロック220では、ECC復号部45の出力する第1透かしデータX^bのスクランブルを解除し、先頭部の初期データを取り除いて第1透かしデータX^を出力する。
第1透かし抽出ブロック220の第1抽出部48、ECC復号部45、およびデスクランブラ47の機能は、第2透かし抽出ブロック210の第2抽出部40、ECC復号部44、およびデスクランブラ46を流用して実現することもできる。すなわち、第2透かし除去部42から出力される第2透かしが除去された第1埋め込みホスト信号W^をフィードバックして第2抽出部40の入力として与えれば、第1透かし抽出ブロック220の機能を実現することができ、構成を簡略化することができる。
第1透かしデータXは第2透かしデータYに比べて、データ量が多く、耐性が弱いため、第2埋め込みホストデータUに比較的弱いノイズが加えられた場合は、第1透かしデータXと第2透かしデータYがともに正しく検出されるが、強いノイズが加えられた場合は、耐性の弱い第1透かしデータXは壊れる。しかし、耐性の強い第2透かしデータYは正しく検出されるので、重要データをノイズが強い場合でも検出することができるようになる。
また、先に埋め込まれる第1透かしデータXの方が第2透かしデータYよりも強い耐性をもつようにしてもよい。ただし、第1透かしデータXは、可逆埋め込み方式により埋め込まれるものとする。すなわち、埋め込みの順序を逆にして、先に重要データを含む第1透かしデータXを強い耐性で埋め込み、非重要データをその後に埋め込むことも可能である。この場合、抽出側では、最初に耐性の強い重要データに関する第1透かしデータXを抽出して、抽出したビットを用いて埋め込みの逆演算を行い、第2透かしデータYとの干渉を除去する。その後、第2透かしデータYを抽出する。第1透かしデータXと第2透かしデータYは互いに干渉しないため、必ずしも埋め込まれた順序と逆の順に透かしを抽出する必要はない。
実施の形態5
図22は、実施の形態5に係る電子透かし埋め込み装置100の構成図である。本実施の形態の電子透かし埋め込み装置100は、第1透かしデータXと第2透かしデータYをホストデータVに埋め込む際、どちらの透かしデータもホストデータVを埋め込み対象としてGS方式によりスクランブルして埋め込む。実施の形態4の電子透かし埋め込み装置100では、第1透かしデータXが既に埋め込まれた第1埋め込みホストデータWを埋め込み対象として第2透かしデータYをスクランブルして埋め込んだが、本実施の形態では、GS方式による第2透かしデータYの埋め込み対象が、第1埋め込みホストデータWではなく、ホストデータVである点が異なる。
暗号化部10は、秘密鍵Kを用いて、透かし情報Iに含まれる二種類のデータを第1透かしデータXと第2透かしデータYに暗号化して、それぞれ第1透かし埋め込みブロック110の変更部13と第2透かし埋め込みブロック120の変更部16に入力する。
第1透かし埋め込みブロック110の変更部13は、第1透かしデータXをスクランブルして出力し、第1透かし埋め込み部14は、秘密鍵Kを用いて、スクランブルされた第1透かしデータX’をホストデータVに埋め込む。変更部13と第1透かし埋め込み部14は協同して、複数のスクランブルされた透かしデータX’の候補を生成し、それぞれをホストデータVに埋め込んだ場合の透かしの耐性にもとづいて、スクランブルされた透かしデータX’の候補の一つを最適第1透かしデータX*として選択する機能をもつ。第1透かし埋め込み部14は、選択された最適第1透かしデータX*を二重透かし埋め込み部19に与える。
第2透かし埋め込みブロック120の変更部16は、第2透かしデータYをスクランブルして出力し、第2透かし埋め込み部18は、秘密鍵Kを用いて、スクランブルされた第2透かしデータY’をホストデータVに埋め込む。変更部16と第2透かし埋め込み部18は協同して、複数のスクランブルされた透かしデータY’の候補を生成し、それぞれをホストデータVに埋め込んだ場合の透かしの耐性にもとづいて、スクランブルされた透かしデータY’の候補の一つを最適第2透かしデータY*として選択する機能をもつ。第2透かし埋め込み部18は、最終的に選択された最適第2透かしデータY*を二重透かし埋め込み部19に与える。
図23は、第1透かし埋め込みブロック110の変更部13および第1透かし埋め込み部14の機能構成図である。この構成は、図20の構成と基本的には同じであるが、セレクタ30の動作が異なる。第1埋め込み部26は、可逆埋め込み方式により、スクランブルされた透かしデータX’をホストデータVに埋め込み、第1埋め込みホストデータWの候補を生成し、SNR計算部28は、第1埋め込みホストデータWの候補について、第1透かしデータXの耐性を評価する。セレクタ30は、第1透かしデータXの耐性の評価値が最良である第1埋め込みホストデータWの候補を選択し、その第1埋め込みホストデータWに埋め込まれているスクランブルされた透かしデータX’を最適第1透かしデータX*として出力する。
この図23の構成は、第2透かし埋め込みブロック120の変更部16および第2透かし埋め込み部18の機能構成としても用いることができる。その場合、図23において、マルチプレクサ20に入力される第1透かしデータXを第2透かしデータYに置き換え、ホストデータVに対する埋め込み処理を行う第1埋め込み部26を同じくホストデータVに対する埋め込み処理を行う第2埋め込み部27に置き換えればよい。第2埋め込み部27は、可逆埋め込み方式により、スクランブルされた透かしデータY’をホストデータVに埋め込み、第2埋め込みホストデータTの候補を生成し、SNR計算部28は、第2埋め込みホストデータTの候補について、第1透かしデータYの耐性を評価する。セレクタ30は、第2透かしデータYの耐性の評価値が最良である第2埋め込みホストデータTの候補を選択し、その第2埋め込みホストデータTに埋め込まれているスクランブルされた第1透かしデータY’を最適第2透かしデータY*として出力する。
このように、第1透かし埋め込みブロック110の変更部13および第1透かし埋め込み部14と、第2透かし埋め込みブロック120の変更部16および第2透かし埋め込み部18とは、同一の機能構成で実現できるため、第1透かしデータXの埋め込み候補選択と、第2透かしデータYの埋め込み候補選択は、並列に動作させることができ、順序を問わない。
もっとも、図23において、マルチプレクサ20への入力を第1透かしデータXから第2透かしデータYへ切り替えれば、図23の構成をそのまま第2透かし埋め込みブロック120の変更部16および第2透かし埋め込み部18の構成として流用することも可能であり、その場合、並列動作はできなくなるが、ハードウエアまたはソフトウエアの構成を共有して構成を簡略化することができる。
再び図22を参照し、二重透かし埋め込み部19は、第1透かし埋め込み部14が出力する最適第1透かしデータX*と、第2透かし埋め込み部18が出力する最適第2透かしデータY*を受けて、最適第1透かしデータX*と最適第2透かしデータY*を可逆埋め込み方式によりホストデータVに埋め込み、二重埋め込みホストデータUを出力する。二重透かし埋め込み部19は、図23に示した第1透かし埋め込みブロック110の第1埋め込み部26による埋め込み処理と同じ処理で最適第1透かしデータX*をホストデータVに埋め込み、最適第2透かしデータY*についても同様に、第2透かし埋め込みブロック120の第2埋め込み部27による埋め込み処理と同じ処理でホストデータVに埋め込む。
ここで、二重透かし埋め込み部19において、最適第1透かしデータX*と最適第2透かしデータY*を埋め込む際に、視覚劣化の許容範囲を超えないようにお互いの透かしのパワーを調整することが可能である。たとえば、元のホストデータVに、B・α・X*+(1−B)・β・Y*なる透かしデータを埋め込むことで、ほぼ劣化許容範囲内に2種類の透かしを埋め込むことが可能である。たたし、Bは0<B<1を満たす定数である。また、最適第1透かしデータX*と最適第2透かしデータY*は、ともに元のホストデータVに埋め込むことを仮定しているため、スケーリングパラメータについては、α=βである。B=0.5のときは、両透かしのパワーを均等にすることができる。2種類の透かしの重要度に応じて、透かしパワーの重みBを変更することも可能である。
上記の説明では、第1透かし埋め込みブロック110の第1透かし埋め込み部14は、最適第1透かしデータX*を出力し、二重透かし埋め込み部19に与えるだけであったが、第1透かし埋め込み部14は、ホストデータVに最適第1透かしデータX*を埋め込んだ第1埋め込みホストデータWを二重透かし埋め込み部19に与えるようにしてもよい。その場合、二重透かし埋め込み部19は、第1透かし埋め込み部14から第1埋め込みホストデータWの入力を受け、第2透かし埋め込み部18から最適第2透かしデータY*の入力を受け、第1埋め込みホストデータWにさらに最適第2透かしデータY*を埋め込み、二重埋め込みホストデータUを出力する。この場合でも、第2透かしデータYから最適なスクランブル系列をGS方式により生成するときの計算対象となる埋め込みサンプルは、第1透かしデータXの埋め込まれた第1埋め込みホストデータWではなく、元のホストデータVであることに変わりはない。
このように、本実施の形態の電子透かし埋め込み装置100では、第1透かしデータXのホストデータVへの埋め込み耐性と、第2透かしデータYのホストデータVへの埋め込み耐性を個別に評価した上で、耐性の評価値が最良である第1透かしデータXの候補と第2透かしデータYの候補をホストデータVに埋め込むことにより、二重埋め込みホストデータUを生成する。元のホストデータVを埋め込み対象として第1透かしデータXと第2透かしデータYの最適な埋め込み候補を独立に選択しているため、後述の第1透かしデータXと第2透かしデータYの繰り返し復号が有効に行われる。
図24は、実施の形態5に係る電子透かし抽出装置200の構成を示す。電子透かし抽出装置200は、第2透かし抽出ブロック210と第1透かし抽出ブロック220を含み、これから述べる繰り返し復号処理により、二重埋め込みホスト信号U^から第1透かしデータXと第2透かしデータYを抽出する。まず、繰り返し復号処理の概略を述べる。
繰り返し復号の1回目において、第2透かし抽出ブロック210は、二重埋め込みホスト信号U^から第2透かしデータYを抽出し、二重埋め込みホスト信号U^から第2透かしデータYを除去した第1埋め込みホスト信号W^を第1透かし抽出ブロック220に供給する。
第1透かし抽出ブロック220は、第2透かし抽出ブロック210から供給された第1埋め込みホスト信号W^から第1透かしデータXを抽出し、二重埋め込みホスト信号U^から第1透かしデータXを除去した第2埋め込みホスト信号T^を第2透かし抽出ブロック210にフィードバックする。
繰り返し復号の2回目以降において、第2透かし抽出ブロック210は、第1透かし抽出ブロック220から供給された第2埋め込みホスト信号T^から第2透かしデータYを抽出し、二重埋め込みホスト信号U^から第2透かしデータYを除去した第1埋め込みホスト信号W^を第1透かし抽出ブロック220に供給する。以下、一連の処理が繰り返される。
繰り返し復号処理のための電子透かし抽出装置200の詳細な構成と動作を説明する。第2透かし抽出ブロック210の第2抽出部40は、秘密鍵Kを用いて、二重埋め込みホスト信号U^に埋め込まれた第2透かしデータY^cを抽出する。第2透かし除去部42は、電子透かし埋め込み装置100の二重透かし埋め込み部19による第2透かし埋め込み処理の逆変換を行うことにより、第2抽出部40により抽出された第2透かしデータY^cを二重埋め込みホスト信号U^から除去し、第1埋め込みホスト信号W^を出力する。
第1透かし抽出ブロック220の第1抽出部48は、秘密鍵Kを用いて、第2透かし抽出ブロック210の第2透かし除去部42から与えられる第1埋め込みホスト信号W^に埋め込まれた第1透かしデータX^cを抽出する。第1透かし除去部43は、電子透かし埋め込み装置100の二重透かし埋め込み部19による第1透かし埋め込み処理の逆変換を行うことにより、第1抽出部48により抽出された第1透かしデータX^cを二重埋め込みホスト信号U^から除去し、第2埋め込みホスト信号T^を出力する。
第1透かし除去部43から出力された第2埋め込みホスト信号T^は、セレクタ50に入力される。セレクタ50は、二重埋め込みホスト信号U^と第2埋め込みホスト信号T^の入力を受け、繰り返し復号処理の1回目は、二重埋め込みホスト信号U^を第2透かし抽出ブロック210に与え、2回目以降は、第2埋め込みホスト信号T^を第2透かし抽出ブロック210に与えるように切り替える。これにより、第2透かし抽出ブロック210の第2抽出部40は、繰り返し復号処理の2回目以降は、推定された第1透かしデータX^cが除去されたホスト信号をもとに、第2透かしデータY^cを抽出する。
以降、第2透かし除去部42が、新たに抽出された第2透かしデータY^cを二重埋め込みホスト信号U^から除去して、第1埋め込みホスト信号W^を第1透かし抽出ブロック220の第1抽出部48に与え、一連の復号処理が繰り返されていく。第2透かし抽出ブロック210と第1透かし抽出ブロック220は、互いに他方の透かしによる干渉の影響を除去しながら、第2透かしデータY^cと第1透かしデータX^cを抽出し、繰り返し復号により、透かしの検出精度を徐々に改善することができる。
なお、第1透かしデータX^c、第2透かしデータY^cを抽出する際、視覚モデルによるスケーリングパラメータα、βの推定値α^、β^が利用される。この推定値α^、β^に調整係数η(ただし0<η≦1)を乗じて、ηα^、ηβ^とし、調整係数ηの値を繰り返し復号の初期段階では小さくしておき、繰り返し回数が大きくなるにつれ、徐々に1に向かって大きくするなど、透かしの検出精度の改善に合わせて視覚モデルのスケーリングパラメータを調整してもよい。これにより、繰り返し復号の初期段階での透かしビットの誤判定によるノイズを抑えて、繰り返し復号の収束性を改善することができる。
繰り返し復号処理の最終段階において、第2透かし抽出ブロック210のECC復号部44は、第2抽出部40により抽出された第2透かしデータY^cに付加されているパリティビットを用いて誤り訂正を行い、第2透かしデータY^bを生成する。デスクランブラ46は、ECC復号部44の出力する第2透かしデータY^bのスクランブルを解除し、先頭部の初期データを取り除いて第2透かしデータY^を出力する。
同様に、繰り返し復号処理の最終段階において、第1透かし抽出ブロック220のECC復号部45は、第1抽出部48により抽出された第1透かしデータX^cに付加されているパリティビットを用いて誤り訂正を行い、第1透かしデータX^bを生成する。デスクランブラ47は、ECC復号部45の出力する第1透かしデータX^bのスクランブルを解除し、先頭部の初期データを取り除いて第1透かしデータX^を出力する。
本実施の形態によれば、二重に透かしが埋め込まれたホストデータから一方の透かしを抽出する際に、他方の透かしを除去したホストデータをもとに透かしビットを推定するため、他方の透かしによる干渉がキャンセルされ、検出精度が改善される。また、それぞれの透かしデータが除去されたホストデータを互いに利用し合って、透かしの抽出処理を繰り返すことにより、透かしビットの誤りを徐々に減らし、より高い精度で透かしを抽出することができる。特に透かし間の干渉が大きい場合に、繰り返し復号による検出精度の改善の効果が大きい。
実施の形態6
図25は、実施の形態6に係る電子透かし抽出装置200の構成図である。図24に示した実施の形態5の電子透かし抽出装置200は、第2透かし抽出ブロック210と第1透かし抽出ブロック220が「直列」に接続された構成であり、第2透かし抽出ブロック210の処理結果が第1透かし抽出ブロック220で利用され、第1透かし抽出ブロック220の処理結果がさらに第2透かし抽出ブロック210にフィードバックされることにより、第2透かしの抽出と第1透かしの抽出が順次繰り返される。一方、本実施の形態の電子透かし抽出装置200は、第2透かし抽出ブロック210と第1透かし抽出ブロック220が「並列」に接続された構成であり、第2透かし抽出ブロック210と第1透かし抽出ブロック220が並列に動作して、互いの処理結果を利用し合うことにより、第2透かしの抽出と第1透かしの抽出が並行して行われる。
第1透かし抽出ブロック220の第1透かし除去部43から出力される第2埋め込みホスト信号T^は、第2透かし抽出ブロック210の前段に設けられたセレクタ50に入力される。また、第2透かし抽出ブロック210の第2透かし除去部42から出力される第1埋め込みホスト信号W^は、第1透かし抽出ブロック220の前段に設けられたセレクタ51に入力される。
第2透かし抽出ブロック210の前段のセレクタ50は、二重埋め込みホスト信号U^と第2埋め込みホスト信号T^の入力を受け、繰り返し処理の第1回目は、二重埋め込みホスト信号U^を第2透かし抽出ブロック210に与え、2回目以降は、第2埋め込みホスト信号T^を第2透かし抽出ブロック210に与えるように切り替える。同様に、第1透かし抽出ブロック220の前段のセレクタ51は、二重埋め込みホスト信号U^と第1埋め込みホスト信号W^の入力を受け、繰り返し処理の第1回目は、二重埋め込みホスト信号U^を第1透かし抽出ブロック220に与え、2回目以降は、第1埋め込みホスト信号W^を第1透かし抽出ブロック220に与えるように切り替える。
繰り返し処理の2回目以降は、第2透かし抽出ブロック210の第2抽出部40は、第1透かし除去部43により第1透かしデータX^cが除去されたホスト信号をもとに、第1透かしデータY^cを抽出し、それと並行して、第1透かし抽出ブロック220の第1抽出部48は、第2透かし除去部42により第2透かしデータY^cが除去されたホスト信号をもとに、第2透かしデータX^cを抽出する。繰り返し復号処理により、第2抽出部40が抽出する第2透かしデータY^cの精度と、第1抽出部48が抽出する第1透かしデータX^cの精度が徐々に改善される。
実施の形態7
図26は、実施の形態7に係る電子透かし抽出装置200の構成図である。図24に示した実施の形態5の電子透かし抽出装置200は、誤り訂正前の第2透かしデータY^c、第1透かしデータX^cをもとに、二重埋め込みホスト信号U^から透かしを除去したが、本実施の形態の電子透かし抽出装置200では、誤り訂正後の第2透かしデータY^b、第1透かしデータX^bを利用して、二重埋め込みホスト信号U^から透かしを除去する点が異なる。
第2透かし抽出ブロック210のECC部52は、ECC復号部44により誤り訂正された第2透かしデータY^bの入力を受け、誤り訂正後の第2透かしデータY^bに再び誤り訂正のためのパリティを付加した第2透かしデータY^c’を生成し、第2透かし除去部42に与える。第2透かし除去部42は、ECC部52により誤り訂正符号化された第2透かしデータY^c’を二重埋め込みホスト信号U^から除去し、第1埋め込みホスト信号W^を出力する。第2透かし除去部42は、いったんECC復号部44により誤り訂正された信頼性の高い透かしデータを利用することにより、より高い精度で透かしを除去することができる。
第1透かし抽出ブロック220の構成も、第2透かし抽出ブロック210と同様であり、第1透かし抽出ブロック220のECC部53は、ECC復号部45により誤り訂正された第1透かしデータX^bの入力を受け、誤り訂正後の第1透かしデータX^bに再び誤り訂正のためのパリティを付加した第1透かしデータX^c’を生成し、第1透かし除去部43に与える。第1透かし除去部43は、ECC部53により誤り訂正符号化された第1透かしデータX^c’を二重埋め込みホスト信号U^から除去し、第2埋め込みホスト信号T^を出力する。
本実施の形態の電子透かし抽出装置200は、誤り訂正された信頼性の高い透かしデータをもとに透かしの除去処理を行うため、多重透かしの抽出精度を一層高めることができる。なお、本実施の形態の電子透かし抽出装置200の第2透かし抽出ブロック210と第1透かし抽出ブロック220を実施の形態6のように並列型に構成してもよい。
実施の形態8
図27は、実施の形態8に係る電子透かし抽出装置200の構成図である。本実施の形態の電子透かし抽出装置200は、図26に示した実施の形態7の電子透かし抽出装置200と同様に、誤り訂正後の第2透かしデータY^b、第1透かしデータX^bを利用して、二重埋め込みホスト信号U^から透かしを除去するが、軟値出力を利用する点が異なる。
第2透かし抽出ブロック210のECC復号部44は、ビタビ(Viterbi)復号、ターボ(Turbo)復号、MAP(Maximum A posteriori Probability)復号などの軟値出力復号器で構成され、第2透かしデータY^cの入力を受けて、第2透かしデータY^cの軟値Z^Yを出力し、第2透かし除去部42に与える。第2透かし除去部42は、ECC復号部44により誤り訂正符号化された軟値の第2透かしデータZ^Yを二重埋め込みホスト信号U^から除去し、第1埋め込みホスト信号W^を出力する。すなわち、図26の場合は、埋め込みの逆演算を行うことで第2透かしの干渉成分β^・Y^c’を除去していたのに対し、図27では、信頼度に比例した第2透かしの干渉成分β^・Z^Yを除去することになる。ただし、Z^Yが1を超える場合には、Z^Y=1として第2透かしの除去を行う。
第1透かし抽出ブロック220の構成も、第2透かし抽出ブロック210と同様であり、第1透かし抽出ブロック220のECC復号部45は、軟値出力復号器で構成され、第1透かしデータX^cの入力を受けて、第1透かしデータX^cの軟値Z^Xを出力し、第1透かし除去部43に与える。第1透かし除去部43は、ECC復号部45により誤り訂正符号化された軟値の第1透かしデータZ^Xを二重埋め込みホスト信号U^から除去し、第2埋め込みホスト信号T^を出力する。すなわち、図26の場合は、埋め込みの逆演算を行うことで第1透かしの干渉成分α^・X^c’を除去していたのに対し、図27では、信頼度に比例した第1透かしの干渉成分α^・Z^Xを除去することになる。ただし、Z^Xが1を超える場合には、Z^X=1として第1透かしの除去を行う。
繰り返し復号処理の最終段階では、第2透かし抽出ブロック210のECC復号部44は、入力された第2透かしデータY^cを硬判定により誤り訂正した第2透かしデータY^bを出力し、デスクランブラ46に与え、同様に、第1透かし抽出ブロック220のECC復号部45は、入力された第1透かしデータX^cを硬判定により誤り訂正した第1透かしデータX^bを出力し、デスクランブラ47に与える。
透かしの繰り返し復号処理の初期段階では、ECC復号部44、45による復号結果の信頼性が低いため、軟値Z^Y、Z^Xは一般にゼロに近い値をとるが、埋め込んだ透かしビットが1であるにもかかわらず、たとえば−0.2という復号結果が得られる場合もある。これを硬判定して透かしビットを−1と復号すると、繰り返し復号の過程でノイズが増幅する。本実施の形態の電子透かし抽出装置200では、復号結果を硬判定せずに、軟値を第2透かし除去部42、第1透かし除去部43に与えて透かしを除去することにより、ノイズの増幅を抑えつつ、繰り返し処理により、復号結果を徐々に改善していくことができる。したがって、透かしビットを検出する際のビット誤り率(BER)をさらに低減することができる。
ECC復号部44、45がターボ復号などのようにそれ自体が繰り返し復号器である場合は、ターボ復号の繰り返し回数を、透かし除去の繰り返し回数に比例させることにより、さらなるビット誤り率の改善を図ることができる。すなわち、透かしの繰り返し復号処理の初期段階では、復号結果の信頼性が低いため、ターボ復号の繰り返し回数を低く抑え、透かし除去の繰り返し回数が増えるとともに、ターボ復号の繰り返し回数を増やすことで、ビット誤り率の低減効果を一層高めることができる。
なお、本実施の形態の電子透かし抽出装置200の第2透かし抽出ブロック210と第1透かし抽出ブロック220を実施の形態6のように並列型に構成してもよい。
以上述べたように、実施の形態によれば、電子透かしを埋め込む対象となるメディアデータが与えられると、そのメディアデータに応じて、透かしデータを埋め込み易い位置を検出して、透かしを埋め込むことができ、埋め込まれる透かしの耐性を強化することができる。また、GS方式を用いて、透かしビット系列をそのメディアデータに埋め込みやすいビット系列に変換した上で埋め込むことができる。したがって信号処理、幾何変換、圧縮、データの改ざんなどに対する電子透かしの耐性を強化することができ、透かしの検出精度が大幅に改善する。
また、透かしが多重に埋め込まれたメディアデータに対して、透かしを順次抽出する際、先に抽出した透かしデータをメディアデータから完全に除去した後に、次の透かしデータを抽出するため、複数の透かしの干渉による誤検出を防ぐことができる。さらに、透かしの繰り返し復号処理により、透かしビットの誤りが徐々に改善され、透かし検出の精度が向上する。また、透かしの繰り返し復号において軟値を利用することにより、ビット誤り率をさらに低減することができる。
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
そのような変形例として、実施の形態1の実透かし埋め込み部112およびメタ透かし埋め込み部122に、それぞれ実施の形態4の第1透かし埋め込みブロック110および第2透かし埋め込みブロック120の機能構成を利用して、GS方式で実透かしとメタ透かしの埋め込みを行うようにしてもよい。また実施の形態2の実透かし埋め込み部112および第2透かし埋め込み部124に、それぞれ実施の形態3の第1透かし埋め込みブロック110および第2透かし埋め込みブロック120の機能構成を利用して、埋め込み位置情報をGS方式でスクランブルするようにしてもよい。
複数の透かしデータの候補を生成するために、多様性に富んだ候補の生成が可能なGS方式を用いたが、他のスクランブル方式を適用してもよく、また何らかの方法でランダムに候補のデータを生成してもよい。また実施の形態では、逆スクランブルにより、抽出された透かしデータから元の透かしデータを再現したが、複数種類のスクランブルされた透かしデータと元の透かしデータとを対応づけたテーブルを備え、このテーブルを参照して元の透かしデータを求めてもよい。
またスクランブルの際に初期データとして使用した識別データは、透かしデータの先頭に挿入されて復号側に提供されていたが、この識別データを透かしには埋め込まずに、符号化側で秘密鍵として保持、管理してもよい。その場合、復号側はこの秘密鍵を取得した上で、透かしデータのスクランブルを解除する。あるいは、識別データを新たな透かしデータとして、ホストデータに埋め込んでもよい。
上記のいずれの実施の形態においても、第1透かしの埋め込み後に第2透かしを埋め込む構成を説明したが、埋め込み順序を逆にして、第1透かしを埋め込む前に第2透かしを埋め込み、第2透かし埋め込み後のホストデータに第1透かしを埋め込んでもよい。第1透かしの埋め込み位置情報を第2透かしとして埋め込む場合であっても、第1透かしの埋め込み位置を先に決定し、第1透かしは埋め込まずにいったんメモリに記憶しておく。そして、第1透かしの埋め込み位置情報を第2透かしとして先にホストデータに埋め込み、その後メモリから第1透かしのデータを読み出して、第1透かしをホストデータに埋め込む。この場合、第2透かし埋め込みブロック120による第2透かし埋め込み後のホストデータの出力が第1透かし埋め込みブロック110に埋め込み対象のホストデータとして入力される構成にすればよい。
10 暗号化部、 12 位置検出部、 14 第1透かし埋め込み部、 16 変更部、 18 第2透かし埋め込み部、 20 マルチプレクサ、 22 スクランブラ、
24 ECC部、 26 第1埋め込み部、 27 第2埋め込み部、 28 SNR計算部、 30 セレクタ、 40 第2抽出部、 42 第2透かし除去部、 43 第1透かし除去部、 44 ECC復号部、 46 デスクランブラ、 48 第1抽出部、 60 位置情報生成部、 100 電子透かし埋め込み装置、 110 第1透かし埋め込みブロック、 120 第2透かし埋め込みブロック、 200 電子透かし抽出装置、 210 第2透かし抽出ブロック、 220 第1透かし抽出ブロック。