(57)【特許請求の範囲】
【請求項１】
対象となるデジタル・コンテンツの画像データから該画像データに埋め込まれた透かし情報を検出する電子透かし検出装置において、
前記画像データに埋め込まれているか否かを調べる対象とする前記透かし情報に対応する所定の数列を求めるための手段と、
前記画像データを横方向および縦方向に分割して得られる１画素または複数画素からなるブロックの単位で、前記画像データを横方向およびまたは縦方向に所定ブロック数分シフトするためのシフト手段と、
このシフト手段によるシフトがなされていない前記画像データについて、その各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第１の相関値を求めるとともに、前記シフト手段により所定種類数の相異なるシフトがなされた複数の前記画像データのそれぞれについて、該第１の相関値の求め方と同じ求め方によって、当該画像データの各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第２の相関値を求める相関値計算手段と、
この相関値計算手段により求められた複数の前記第２の相関値をもとに、シフトがなされておらず且つ透かし情報が埋め込まれていない状態の前記画像データから前記第１の相関値の求め方と同じ求め方によれば得られるであろう第３の相関値を推定する推定手段と、
前記相関値計算手段により求められた前記第１の相関値と、前記推定手段により推定された前記第３の相関値との差分が、予め定められたしきい値を超えている場合に、前記所定の数列が前記画像データ中に存在すると判断する判断手段とを備えたことを特徴とする電子透かし検出装置。
【請求項２】
前記ブロックは、複数の画素からなり、前記ブロックから得られる前記所定の値は、当該ブロックに含まれる複数の画素の画素値の平均値または総和値であることを特徴とする請求項１に記載の電子透かし検出装置。
【請求項３】
前記ブロックは、１つの画素からなり、前記ブロックから得られる前記所定の値は、当該ブロックに含まれる画素の画素値であることを特徴とする請求項１に記載の電子透かし検出装置。
【請求項４】
前記所定の値を並べた系列は、前記ブロックの各々に割り当てられた序列に従って各ブロックから得られた前記所定の値を並べてなるものであることを特徴とする請求項１に記載の電子透かし検出装置。
【請求項５】
前記判断手段により前記所定の数列が前記画像データ中に存在しないと判断された場合には、未だ調べていない他の透かし情報に対応する所定の数列が前記画像データ中に存在するか否かを調べることを特徴とする請求項１に記載の電子透かし検出装置。
【請求項６】
前記判断手段により前記所定の数列が前記画像データ中に存在すると判断された場合には、該所定の数列に対応する前記透かし情報を出力することを特徴とする請求項１に記載の電子透かし検出装置。
【請求項７】
前記所定の数列を、疑似乱数の系列、または疑似乱数の系列の要素に周波数変換の変換係数を乗じてなる系列としたことを特徴とする請求項１に記載の電子透かし検出装置。
【請求項８】
相異なる前記透かし情報に対応する前記所定の数列を、相互に、無相関または弱い相関としたことを特徴とする請求項１に記載の電子透かし検出装置。
【請求項９】
対象となるデジタル・コンテンツの画像データから該画像データに埋め込まれた透かし情報を検出する電子透かし検出方法において、
前記画像データに埋め込まれているか否かを調べる対象とする前記透かし情報に対応する所定の数列を求めるステップと、
前記画像データを横方向および縦方向に分割して得られる１画素または複数画素からなるブロックの単位で、前記画像データを横方向およびまたは縦方向に所定ブロック数分シフトするシフトステップと、
このステップによるシフトがなされていない前記画像データについて、その各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第１の相関値を求めるとともに、前記シフトステップにより所定種類数の相異なるシフトがなされた複数の前記画像データのそれぞれについて、該第１の相関値の求め方と同じ求め方によって、当該画像データの各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第２の相関値を求める相関値計算ステップと、
この相関値計算ステップにより求められた複数の前記第２の相関値をもとに、シフトがなされておらず且つ透かし情報が埋め込まれていない状態の前記画像データから前記第１の相関値の求め方と同じ求め方によれば得られるであろう第３の相関値を推定する推定ステップと、
前記相関値計算ステップにより求められた前記第１の相関値と、前記推定ステップにより推定された前記第３の相関値との差分が、予め定められたしきい値を超えている場合に、前記所定の数列が前記画像データ中に存在すると判断する判断ステップとを有することを特徴とする電子透かし検出方法。
【請求項１０】
対象となるデジタル・コンテンツの画像データから該画像データに埋め込まれた透かし情報を検出する電子透かし検出装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体であって、
前記画像データに埋め込まれているか否かを調べる対象とする前記透かし情報に対応する所定の数列を求めるための機能と、
前記画像データを横方向および縦方向に分割して得られる１画素または複数画素からなるブロックの単位で、前記画像データを横方向およびまたは縦方向に所定ブロック数分シフトするためのシフト機能と、
このシフト機能によるシフトがなされていない前記画像データについて、その各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第１の相関値を求めるとともに、前記シフト機能により所定種類数の相異なるシフトがなされた複数の前記画像データのそれぞれについて、該第１の相関値の求め方と同じ求め方によって、当該画像データの各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第２の相関値を求める相関値計算機能と、
この相関値計算機能により求められた複数の前記第２の相関値をもとに、シフトがなされておらず且つ透かし情報が埋め込まれていない状態の前記画像データから前記第１の相関値の求め方と同じ求め方によれば得られるであろう第３の相関値を推定する推定機能と、
前記相関値計算機能により求められた前記第１の相関値と、前記推定機能により推定された前記第３の相関値との差分が、予め定められたしきい値を超えている場合に、前記所定の数列が前記画像データ中に存在すると判断する判断機能とをコンピュータに実現させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル・データ化された静止画データ、動画データ、音声データ、音楽データ等のデジタル・コンテンツから透かし情報を検出する電子透かし検出装置及び電子透かし検出方法に関する。
【０００２】
【従来の技術】
電子透かし（ｄｉｇｉｔａｌ  ｗａｔｅｒｍａｒｋｉｎｇ）は、デジタルデータ化された静止画、動画、音声、音楽等のデジタル・コンテンツ（デジタル著作物データ）に対して、そのコンテンツの著作権者や利用者の識別情報、著作権者の権利情報、そのコンテンツの利用条件、その利用時に必要な秘密情報、コピー制御情報などの情報(これらを透かし情報と呼ぶ)を知覚が容易ではない状態となるように埋め込み、後に必要に応じて透かし情報をそのコンテンツから検出することによって利用制御、コピー制御を含む著作権保護を行ったり、二次利用の促進を行うための技術である。
【０００３】
不正利用の防止を目的とする場合、電子透かし技術は、そのコンテンツに対して通常に施されると想定される各種の操作や意図的な攻撃によって、透かし情報が消失したり改竄されたりしないような性質（ｒｏｂｕｓｔｎｅｓｓ：ロバスト性）を持つ必要がある。各種の操作や攻撃に対するロバスト性を実現するには、それらによってコンテンツが影響を受けた後でも、電子透かしの検出が可能であるよう、ある程度の強さで電子透かしの埋め込みを行う必要がある。
【０００４】
電子透かしの埋込み・検出の方法として、数列を用いる方法がある。この方法の場合、電子透かしの埋込みでは、埋め込みたい情報に対応する数列ａを生成し、該数列ａをコンテンツに重畳する。電子透かしの検出では、対象コンテンツと、数列を埋め込む前の原コンテンツとを比較して、該対象コンテンツに重畳されたであろう数列に相当するものｂを求め、求められた数列ｂと、実際に埋め込まれている可能性のある数列ｗとの相関値を求め、該相関値がしきい値以上であれば、該対象コンテンツには、その数列ｗが埋め込まれていたと判断する。
【０００５】
【発明が解決しようとする課題】
ところが、従来のように電子透かしの検出のために原コンテンツを必要とする方法は、その応用範囲が限定されてしまうという欠点がある。例えば、コンテンツの利用制御やコピー制御などを目的としてユーザ側の装置上に搭載する透かし検出装置では、その性質上、原コンテンツを利用することはできない（利用制御やコピー制御のためにユーザ側に電子透かしの入っていない原コンテンツを渡すことは矛盾である）ので、この方法を利用することができない。したがって、電子透かしの適用対象によっては、原コンテンツを用いることなくコンテンツに重畳された数列を特定する方法が望まれる。
【０００６】
しかしながら、従来、原コンテンツを利用することなしに、コンテンツに電子透かしとして数列を埋め込み、コンテンツに埋め込まれた数列を検出する、有効な方法がなかった。
【０００７】
本発明は、上記事情を考慮してなされたもので、透かしとしてコンテンツに埋め込まれた数列を、より小さなコストでより精度良く検出可能にする電子透かし検出装置及び電子透かし検出方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、対象となるデジタル・コンテンツの画像データから該画像データに埋め込まれた透かし情報を検出する電子透かし検出装置において、前記画像データに埋め込まれているか否かを調べる対象とする前記透かし情報に対応する所定の数列を求めるための手段と、前記画像データを横方向および縦方向に分割して得られる１画素または複数画素からなるブロックの単位で、前記画像データを横方向およびまたは縦方向に所定ブロック数分シフトするためのシフト手段と、このシフト手段によるシフトがなされていない前記画像データについて、その各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第１の相関値を求めるとともに、前記シフト手段により所定種類数の相異なるシフトがなされた複数の前記画像データのそれぞれについて、該第１の相関値の求め方と同じ求め方によって、当該画像データの各々の前記ブロックから得られる所定の値を並べた系列と、前記所定の数列との第２の相関値を求める相関値計算手段と、この相関値計算手段により求められた複数の前記第２の相関値をもとに、シフトがなされておらず且つ透かし情報が埋め込まれていない状態の前記画像データから前記第１の相関値の求め方と同じ求め方によれば得られるであろう第３の相関値を推定する推定手段と、前記相関値計算手段により求められた前記第１の相関値と、前記推定手段により推定された前記第３の相関値との差分が、予め定められたしきい値を超えている場合に、前記所定の数列が前記画像データ中に存在すると判断する判断手段とを備えたことを特徴とする。
【００１４】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００１５】
本発明では、シフト・コンテンツの相関値をもとに原コンテンツの相関値を推定する。これによって、透かしとしてコンテンツに埋め込まれた数列をより小さなコストでより精度良く検出することができる。
【００１６】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００１７】
本発明は、デジタル・コンテンツ（例えば、デジタルデータ化された静止画、動画、音声、音楽等）に対して様々な透かし情報（例えば、コンテンツの著作権者や利用者の識別情報、著作権者の権利情報、コンテンツの利用条件、その利用時に必要な秘密情報、コピー制御情報等、あるいはそれらを組み合わせたものなど)を様々な目的（例えば、利用制御、コピー制御を含む著作権保護、二次利用の促進等）で埋め込み、検出する場合に適用可能である。
【００１８】
図１に、本発明の実施の形態に係る電子透かし埋込装置と電子透かし検出装置が適用されるシステムの概念図を示す。
【００１９】
電子透かし埋込装置１は、埋め込み対象となるコンテンツに透かし情報を埋め込むもので、対象コンテンツとこれに埋め込むべき透かし情報とが入力され、電子透かし情報埋め込み済みコンテンツを出力する。この電子透かし埋込装置１は、コンテンツ提供側に備えられ、管理される。
【００２０】
電子透かし埋込装置１により得られた電子透かし情報埋め込み済みコンテンツは、記憶媒体や通信媒体などを媒介とした流通経路３を経て流通する。
【００２１】
電子透かし検出装置２は、検出対象となるコンテンツから透かし情報を検出するもので、対象コンテンツが入力され、検出された透かし情報を出力する。この電子透かし検出装置２は、コンテンツ利用時の著作権保護を目的としてユーザ側のコンテンツ利用装置（例えば、コンテンツ利用機能を搭載するコンピュータ、あるいはＡＶ再生装置等）に内蔵される場合を想定している（もちろん、コンテンツ提供側が流通を経たコンテンツから電子透かしを検出することを目的としてコンテンツ提供側に備えられる場合も可能である）。
【００２２】
電子透かし埋込装置１は、ソフトウェア（プログラム）としてもハードウェアとしても実現可能である。同様に、電子透かし検出装置２は、ソフトウェア（プログラム）としてもハードウェアとしても実現可能であるが、電子透かし検出装置２をユーザ側のコンテンツ利用装置に内蔵する場合には、ユーザにより電子透かし検出装置２に対する操作や解析あるいは攻撃などができないように安全に作り込んでおくのが望ましい。
【００２３】
なお、以下で示す構成図は、装置の機能ブロック図としても成立し、また、ソフトウェア（プログラム）の機能モジュール図あるいは手順図としても成立するものである。
【００２４】
本実施形態では、ディジタル・コンテンツの一例として主に（静止）画像データを対象とした場合を例にとって説明する。もちろん、他のメディアのデータを対象とすることも可能である。
【００２５】
まず、本実施形態に係る電子透かし埋込装置について説明する。
【００２６】
図２に、本実施形態に係る電子透かし埋込装置の構成例を示す。
【００２７】
図２に示されるように、本実施形態に係る電子透かし埋込装置１は、透かし情報・数列シード変換部１１、数列生成部１２、数列重畳部１３を備えている。
【００２８】
図３に、本実施形態に係る電子透かし埋込装置の手順の一例を示す。埋め込み対象コンテンツを入力するとともに（ステップＳ１）、該コンテンツに重畳すべき数列を生成し（ステップＳ２）、生成された数列を、該コンテンツに重畳し（ステップＳ３）、埋込済みコンテンツを出力する（ステップＳ４）。
【００２９】
透かし情報・数列シード変換部１１は、埋め込むべき透かし情報を入力し、これに対応する数列シードを求める。数列シードは、コンテンツに重畳する数列を生成するためのもととなる何らかの情報であって、該情報を変えることによって、生成される数列が変わるものを意味するものとする。
【００３０】
数列生成部１２は、コンテンツに重畳すべき数列として、透かし情報・数列シード変換部１１により求められた数列シードに対応する数列を生成する。数列生成部１２は、例えば、Ｍ系列生成器などの乱数生成器を用いて構成可能である。あるいは、例えば、予め各数列シードに対応する数列を記憶しておき、与えられた数列シードに対応する数列を出力する構成も可能であり、その他にも種々の構成が可能である。なお、数列シードは、例えば、乱数生成器の初期値とする方法や、数列に対応する識別番号など、種々の構成が可能である。
【００３１】
コンテンツに重畳する数列としては、例えば、０−１列あるいは（＋１）−（−１）列などの二値数列、所定の範囲の整数列、所定の範囲の実数列などが利用可能である。また、この数列は、例えば、疑似乱数列である。また、異なる透かし情報すなわち異なる数列シードに対応する数列は、互いに無相関あるいは弱い相関であることが望ましい。
【００３２】
数列重畳部１３は、数列生成部１２により生成された数列を、対象コンテンツに重畳する。
【００３３】
まず、透かし情報・数列シード変換部１１について説明する。
【００３４】
透かし情報・数列シード変換部１１は、与えられた透かし情報に対応する数列シードを求める。例えば、透かし情報としてコピーの可否を示す制御情報を埋め込む場合に、埋め込むべき透かし情報としてコピー可が指定されたならば、数列シード｛ｘ１｝を出力し、コピー禁止が指定されたならば、数列シード｛ｘ２｝を出力する。また、例えば、透かし情報としてユーザ等の識別番号を埋め込む場合に、埋め込むべき透かし情報として識別番号ｎが指定されたならば、数列シード｛ｘ（ｎ）｝を出力する。また、例えば、透かし情報としてコピーの可否を示す制御情報および利用者の識別番号を埋め込む場合に、埋め込むべき透かし情報としてコピー可および識別番号ｎが指定されたならば、数列シード｛ｘ（２ｎ）｝を出力し、コピー禁止および識別番号ｎが指定されたならば、数列シード｛ｘ（２ｎ＋１）｝を出力する。もちろん、これらは一例であり、様々な方法がある。
【００３５】
なお、外部から透かし情報に対応する数列シードを与える場合には、透かし情報・数列シード変換部１３は、不要である。
【００３６】
次に、数列生成部１２、数列重畳部１３について説明する。
【００３７】
本実施形態では、コンテンツを、予め定めた分割方法で、複数のブロックに分割し、各ブロックの所定のコンテンツ・データの値を変更することによって、透かし情報を埋め込む。
【００３８】
例えば、コンテンツが画像データの場合には、画像データを図４に例示するように、複数のブロックに分割する。図４では簡単のために画像データを１６ブロックに分割した場合を示しており、図中のｉがブロック番号を示している。
【００３９】
また、１ブロックの構成方法には種々の方法がある。例えば、コンテンツが画像データの場合には、１つのブロックを、１画素のみからなる部分とする方法（図５（ａ）参照）、横に複数画素連続した部分とする方法、縦に複数画素連続した部分とする方法、縦横に複数画素ずつ連続した部分とする方法（図５（ｂ）参照）がある。
【００４０】
また、透かし情報を埋め込みに用いる、ブロックの所定のコンテンツ・データの値（以下、ブロック値と呼ぶ）は、例えば、コンテンツが画像データで、１ブロックが１画素のみからなる場合には、当該画素の所定のコンテンツ・データ…例えば、画素値…であり、１ブロックが複数画素からなる場合には、当該複数画素の所定のコンテンツ・データを処理して得られる値…例えば、当該複数画素の画素値の平均値あるいは総和値…である。
【００４１】
本実施形態では、各ブロックに、（埋め込むべき透かし情報に対応する）数列の１つの要素を重畳する。
【００４２】
図６に例示するように、コンテンツの第ｉ番目のブロックのブロック値をｇ（ｉ）で表すものとする。また、数列の第ｉ番目の要素をΔｇ（ｉ）で表すものとする。コンテンツの第ｉ番目のブロックのブロック値ｇ（ｉ）には、数列の第ｉ番目の要素Δｇ（ｉ）を重畳する。重畳後のコンテンツの第ｉ番目のブロックのブロック値ｈ（ｉ）は、ｈ（ｉ）＝ｇ（ｉ）＋Δｇ（ｉ）となる。このときの様子を図７に例示する。
【００４３】
なお、ここでは、時空間領域（画像データの場合には画素領域）でコンテンツの各ブロックに電子透かしを埋め込み、時空間領域（画像データの場合には画素領域）でコンテンツの各ブロックをもとに電子透かしを検出する方法を中心に説明するが、この他に、時空間領域のコンテンツ・データを、直交変換によって、一旦、周波数領域のデータに変換し、周波数領域のデータに対する各ブロックに対して埋め込みを行った後、再び、逆直交変換によって、時空間領域に戻す方法、時空間領域のコンテンツ・データを、直交変換によって、周波数領域のデータに変換し、該周波数領域のデータについて、電子透かしを検出する方法もある。
【００４４】
また、重畳すべき数列Δｇ（ｉ）についても、例えば、
・擬似乱数列を用いる方法、
・周波数変換基底を用いる方法、
・擬似乱数列を係数として複数の周波数成分基底を線形結合して得られる数列を用いる方法、
・擬似乱数列と周波数変換基底を乗積して得られる数列を用いる方法、
など、種々のバリエーションが考えられる。
【００４５】
以下では、数列生成部１２の２つの構成例を示す。
【００４６】
図８に、数列生成部１２の一構成例を示す。図８に示されるように、この場合の数列生成部１２は、擬似乱数生成部１２１と、周波数変換の変換係数を格納する変換係数格納部１２２と、乗算部１２３とを含む。
【００４７】
擬似乱数生成部１２１は、与えられた数列シードをもとに、予め定められたブロック数に相当する個数（Ｍとする）だけ、疑似乱数ｐ（１）、ｐ（２）、…、ｐ（Ｍ）を生成する。
【００４８】
一方、変換係数格納部１２２には、周波数変換の変換係数ｃ（１）〜ｃ（Ｍ）が格納されている。
【００４９】
乗算部１２３は、擬似乱数生成部１２１により生成された数列の第ｉ番目の要素ｐ（ｉ）に、それぞれ、変換係数格納部１２２から読み出した周波数変換の第ｉ番目の変換係数をｃ（ｉ）乗算して、数列ｐ（１）×ｃ（１）、ｐ（２）×ｃ（２）、…、ｐ（Ｍ）×ｃ（Ｍ）を生成する。この数列ｐ（ｉ）×ｃ（ｉ）がΔｇ（ｉ）となる。
【００５０】
すなわち、この場合、数列重畳部１３は、対象コンテンツと、数列ｐ（１）×ｃ（１）、ｐ（２）×ｃ（２）、…、ｐ（Ｍ）×ｃ（Ｍ）を入力し、コンテンツの各ブロックについて、それぞれ、ブロック値ｇ（ｉ）を求め、重畳後のブロック値ｈ（ｉ）が、重畳後のブロック値ｇ（ｉ）に対して、該数列の第ｉ番目の要素Δｇ（ｉ）＝ｐ（ｉ）×ｃ（ｉ）を加算した値ｇ（ｉ）＋Δｇ（ｉ）＝ｇ（ｉ）＋ｐ（ｉ）×ｃ（ｉ）になるように、各ブロック内のコンテンツ・データの値を変更する。
【００５１】
図９に、数列生成部１２の他の構成例を示す。図９に示されるように、この場合の数列生成部１２は、擬似乱数生成部１２１を含む。擬似乱数生成部１２１は、与えられた数列シードをもとに、予め定められたブロック数に相当する個数（Ｍとする）だけ、数列疑似乱数ｐ（１）、ｐ（２）、…、ｐ（Ｍ）を生成する。この数列ｐ（ｉ）がΔｇ（ｉ）となる。
【００５２】
すなわち、この場合、数列重畳部１３は、対象コンテンツと、数列ｐ（１）、ｐ（２）、…、ｐ（Ｍ）を入力し、コンテンツの各ブロックについて、それぞれ、ブロック値ｇ（ｉ）を求め、重畳後のブロック値ｈ（ｉ）が、重畳後のブロック値ｇ（ｉ）に対して、該数列の第ｉ番目の要素Δｇ（ｉ）＝ｐ（ｉ）を加算した値ｇ（ｉ）＋Δｇ（ｉ）＝ｇ（ｉ）＋ｐ（ｉ）になるように、各ブロック内のコンテンツ・データの値を変更する。
【００５３】
詳しくは後述するが、シフト・コンテンツの相関値から、埋め込み前の周波数成分の推定値を求め、この推定値と実際の周波数成分の値から電子透かしが埋め込まれているか否かを判定することができる。
【００５４】
なお、コンテンツが画像データの場合において、１ブロックが１画素のみからなる場合には、当該画素の所定のコンテンツ・データ…例えば、画素値…を、それがｇ（ｉ）＋Δｇ（ｉ）になるように変更する。
また、ブロックが複数画素からなる場合には、当該複数画素の所定のコンテンツ・データを処理して得られる値…例えば、当該複数画素の画素値の平均値あるいは総和値…がｇ（ｉ）＋Δｇ（ｉ）になるように、各画素の所定のコンテンツ・データ…例えば、画素値…を変更する。この場合に、例えば、１つのブロックを構成する複数の画素にすべて同じ値（Δｇ（ｉ）／画素数）を書き込むようにしてもよいし、適当な方法で分散を与えて画素により異なる値を書き込む方法もある。その際に、画像の品質を劣化される程度が最も小さな変更を行うような構成も可能である。
【００５５】
以上のようにして、電子透かし埋込装置１により得られた電子透かし情報埋め込み済みコンテンツは、記憶媒体や通信媒体などを媒介とした流通経路３を経て流通する。
【００５６】
次に、本実施形態に係る電子透かし検出装置について説明する。
【００５７】
図１０に、本実施形態に係る電子透かし検出装置の構成例を示す。
【００５８】
本実施形態に係る電子透かし検出装置２は、数列シード生成部２１、数列生成部２２、検出部２３、数列シード・透かし情報変換部２４を備えている。
【００５９】
図１１に、検出部２３の構成例を示す。図１１に示されるように、この場合の検出部２３は、シフト部２３１、相関値計算部２３２、推定部２３３、判定部２３４を備えている。
【００６０】
本実施形態では、透かし情報検出時には、ある透かし情報を仮定し（ある数列シードを仮定し）、その透かし情報に対応する（数列シードをもとに生成される）数列と、何らかの透かし情報に対応する数列が埋め込まれていることが想定される対象コンテンツのブロック値との間に相関があると判定されたならば（例えば、それら両系列間の相関値を求め、該相関値が予め定められた基準値以上であったならば）、当該仮定した透かし情報に対応する（数列シードをもとに生成される）数列が対象コンテンツに埋め込まれていたものと判断する。その際に、本実施形態では、原コンテンツを利用せず、後述するようにコンテンツを（例えばブロックを単位として）シフトしたときの相関値をもとに、原コンテンツの相関値を推定し、対象コンテンツに対する相関値を、推定した原コンテンツの相関値と比較することによって、相関の有無を判定する。
【００６１】
図１２に、本実施形態に係る電子透かし検出装置の手順の一例を示す。埋め込み対象コンテンツを入力し（ステップＳ１１）、シフト・コンテンツを生成するとともに（ステップＳ１２）、該コンテンツに重畳されている可能性のある数列を生成し（ステップＳ１３）、対象コンテンツやシフト・コンテンツと、生成された数列との相関値を計算し（ステップＳ１４）、原コンテンツの相関値を推定し（ステップＳ１５）、対象コンテンツについての相関値と、原コンテンツについての相関値の推定値とから、対象コンテンツに当該数列が重畳されているか否か判定し（ステップＳ１６）、判定結果を出力する（ステップＳ１７）。この処理は、対象コンテンツに当該数列が重畳されていると判定されるまで、繰り返し行われ、対象コンテンツに当該数列が重畳されていると判定された場合には、対応する透かし情報が出力される。全ての数列の候補が対象コンテンツから検出されなかった場合には、予め定められた方法で対処される。
【００６２】
さて、数列シード生成部２１は、対象となるコンテンツに電子透かしを埋め込む際に使用された可能性のある数列シード（図２の場合、透かし情報・数列シード変換部１１から出力される可能性のある数列シード）を生成する。なお、数列シードの候補が複数ある場合、検出部２３の判定部２３４から、数列が検出されたことを示す判定結果を受けるまで、所定の順番で、数列シードの候補を出力する。また、数列が検出されたことを示す判定結果を受けた場合には、その判定結果を与えた数列シードを、数列シード・透かし情報変換部２４へ出力する。全ての数列シードについて、数列が検出されなかったことを示す判定結果を受けた場合には、該当する数列シードが存在しない旨の情報を、数列シード・透かし情報変換部２４へ出力する。
【００６３】
数列生成部２２は、基本的に数列生成部２２と同様の構成で、コンテンツに重畳されている数列の候補として、数列シード生成部２１から与えられた数列シードに対応する数列Δｇ’（ｉ）を生成する。
【００６４】
検出部２３には、対象コンテンツと、数列生成部２２からの数列が与えられる。対象コンテンツは、シフト部２３１と、相関計算部２３２に与えられ、数列は、相関計算部２３２に与えられる。
【００６５】
シフト部２３１は、コンテンツのシフトを行う。例えば、コンテンツが画像データの場合には、その画像データを所定の空間方向にあるいは時間方向にオフセットだけシフトした画像データを作る。音楽データの場合には、時間方向にオフセットだけシフトした音楽データを作る。
【００６６】
例えば、画像データの場合、画像の各ブロックのブロック値ｇ（ｉ）＝ｇ（ｘ、ｙ）は、２次元座標ｉ＝ｘ＋ｙ×Ｗで指定されているとする。ここで、Ｗは、画像の幅である。ｘは、１から画像の幅Ｗまで変化し、ｙは、１から画像の高さＨまで変化する。この場合、シフト部２３１は、入力された画像データの（ｘ＋μ、ｙ＋ν）成分を（ｘ、ｙ）成分とするような画像データを生成する。
【００６７】
シフト量の取り方には、種々のバリエーションがある。例えば、シフト量として、（μ、ν）を、（１，０）、（−１、０）とする２つのシフトに対するシフト・コンテンツを生成する方法、（μ、ν）を、（０、１）、（０、−１）とする４つのシフトに対するシフト・コンテンツを生成する方法、（μ、ν）を、（１，０）、（−１、０）、（０、１）、（０、−１）とする４つのシフトに対するシフト・コンテンツを生成する方法、（μ、ν）を、（１，１）、（１、−１）、（−１，１）、（−１、−１）とする４つのシフトに対するシフト・コンテンツを生成する方法、（１，０）、（−１、０）、（０、１）、（０、−１）、（１，１）、（１、−１）、（−１，１）、（−１、−１）とする８つのシフトに対するシフト・コンテンツを生成する方法などである。もちろん、μとνの少なくとも一方を２以上に取ったシフトを含めてもよい。その他にも種々の方法がある。
【００６８】
相関値計算部２３２は、対象コンテンツの各ブロックのブロック値と数列Δｇ’（ｉ）（＝Δｇ’（ｘ、ｙ））との相関値、および各々のシフト・コンテンツ（シフト画像）の各ブロックのブロック値と数列Δｇ’（ｉ）（＝Δｇ’（ｘ、ｙ））との相関値を計算する。
【００６９】
相関値計算部２３２は、与えられたシフトしていない対象コンテンツの各ブロックについて、それぞれ、ブロック値（ｇ’（ｉ）と記述する）を求める。図１３に、コンテンツが画像データの場合を例示する（図４と同様、図１３では簡単のために画像データを１６ブロックに分割した場合を示しており、図中のｉがブロック番号を示している）。
【００７０】
また、相関値計算部２３２は、シフト部２３１から与えられたシフトされた各対象コンテンツについて、それぞれ、各ブロックのブロック値ｇ’（ｉ）を求める。この場合も、ブロック番号は、図１３の場合と同様である。
【００７１】
なお、図１４に、（μ、ν）＝（０，１）の場合について、図１５に、（μ、ν）＝（１，０）の場合について、図１６に、（μ、ν）＝（−１，−１）の場合について、図１７に、（μ、ν）＝（１，１）の場合について、それぞれ、各ブロックの値が、図１３の場合（（μ、ν）＝（０，０）の場合）のどのブロックの値と同じになるかを例示する。例えば、図１７の（μ、ν）＝（１，１）の場合のｇ’（１）（＝ｇ’（１，１））の値は、図１３の（μ、ν）＝（０，０）の場合のｇ’（６）（＝ｇ’（２，２））の値と同じものになる。
【００７２】
次いで、相関値計算部２３２は、シフト量（μ、ν）に対して得られたシフト・コンテンツ（シフト画像）の各ブロックのブロック値ｇ’（ｉ）（＝ｇ’（ｘ，ｙ））と数列Δｇ’（ｉ）（＝Δｇ’（ｘ、ｙ））との相関値ＣＲ（μ、ν）を計算する。つまり、ｇ’（ｉ）×Δｇ’（ｉ）を、すべてのｉについて和をとる。
【００７３】
例えば、コンテンツが画像データの場合には、次のように、すべてのｘ、ｙについてｇ’（ｘ、ｙ）×Δｇ’（ｘ、ｙ）の和をとる。
ＣＲ（μ、ν）＝Σx、y  ｇ’（ｘ、ｙ）×Δｇ’（ｘ、ｙ）
例えば、シフト量として、（μ、ν）を、（１，０）、（−１、０）、（０、１）、（０、−１）、（１，１）、（１、−１）、（−１，１）、（−１、−１）とする８つのシフト・コンテンツを用いる場合には、その８種類に対してそれぞれ相関値を求める。ＣＲ（μ、ν）は、推定部２３３に与えられる。
【００７４】
また、相関値計算部２３２は、シフトを行わない検出対象コンテンツに対しても相関値ＣＲ（０，０）を上記と同様にして計算する（これは、シフト量（０，０）に対する相関値である）。ＣＲ（０，０）は、判定部２３４に与えられる。
【００７５】
推定部２３３は、相関値計算部２３２から与えられたＣＲ（μ、ν）をもとにして、相関値計算部２３２により求められた相関値ＣＲ（μ、ν）から、透かし情報埋め込み前のシフト量（０、０）の原コンテンツに対する相関値の推定値ＥＣＲ（０，０）を求める。
【００７６】
例えば、シフト量として、（μ、ν）を、（１，０）、（−１、０）、（０、１）、（０、−１）、（１，１）、（１、−１）、（−１，１）、（−１、−１）とする８つのシフト・コンテンツを用いる場合に、例えば、推定される相関値ＥＣＲ（０，０）を、
ＥＣＲ（０，０）＝｛ＣＲ（１，０）＋ＣＲ（−１、０）＋ＣＲ（０、１）＋ＣＲ（０、−１）｝／２−｛ＣＲ（１，１）＋ＣＲ（１、−１）＋ＣＲ（−１，１）＋ＣＲ（−１、−１）｝／４
に従って計算する。
【００７７】
もちろん、上記は一例であり、ＥＣＲ（０，０）の求め方には、種々のバリエーションが考えられる。
【００７８】
次に、判定部２３４は、相関値計算部２３２から与えられるＣＲ（０，０）と、推定部２３３から与えられるＥＣＲ（０，０）をもとに、電子透かしが埋め込まれているか否かを判定し、判定結果を出力する。
【００７９】
例えば、判定部２３４は、あるしきい値Ｔｈに対して、
｜ＣＲ（０，０）−ＥＣＲ（０，０）｜＞Ｔｈ
であれば、対象コンテンツに、数列生成部２２から与えられた数列が埋め込まれていると判定し、そうでなければ、埋め込まれていないと判定する。
【００８０】
ここで、相関値ＣＲ（０，０）は、対象コンテンツが仮定した数列に対応する透かし情報の埋め込み後のものであれば、埋め込み前の相関値（原コンテンツを対象にして計算した場合のＣＲ（０，０））よりも大きな値を持つことが期待される。これに対して、対象コンテンツが仮定した数列に対応する透かし情報の埋め込み後のものであっても、（０，０）以外のシフト量によるシフト・コンテンツ（例えば、シフト画像）における相関値ＣＲ（μ、ν）は、埋め込みに用いた数列に対してシフトした数列によって相関をとるため、一般には、大きな相関値を取ることない。しかも、自然なコンテンツではコンテンツ・データが緩やかに変化するので（例えば、画像データでは、画素値が緩やかに変化するので）、シフト量（μ、ν）がその変化のスケールに比べて小さい、とすることができる。したがって、シフト・コンテンツ（例えば、シフト画像）における（（０，０）以外のシフト量による）相関値ＣＲ（μ、ν）は、シフト前の相関値に近いことが期待され、これをもとに推定されたＥＣＲ（０，０）は、埋め込み前の相関値（原コンテンツを対象にして計算した場合のＣＲ（０，０））に近いことが期待される。
【００８１】
数列シード・透かし情報変換部２４は、電子透かし埋込装置の透かし情報・数列シード変換部１１の逆の変換であり、すなわち、検出された数列シードを入力し、これに対応する透かし情報を求める。例えば、先の例に対応する処理としては、透かし情報としてコピーの可否を示す制御情報を埋め込む場合に、数列シード生成部２１から数列シード＝｛ｘ１｝が与えられたならば、透かし情報としてコピー可を示す情報を出力し、数列シード＝｛ｘ２｝が与えられたならば、透かし情報としてコピー禁止を示す情報を出力する。また、例えば、透かし情報として著作権者の識別番号を埋め込む場合に、数列シード＝｛ｘ（ｎ）｝が与えられたらば、透かし情報として識別番号ｎを出力する。また、例えば、透かし情報としてコピーの可否を示す制御情報および利用者の識別番号を埋め込む場合に、数列シード＝｛ｘ（２ｎ）｝が与えられたならば、透かし情報としてコピー可を示す情報および識別番号ｎを出力し、数列シード＝｛ｘ（２ｎ＋１）｝が与えら得たならば、透かし情報としてコピー不可を示す情報および識別番号ｎを出力する。もちろん、これらは一例であり、様々な方法がある。なお、数列シード・透かし情報変換部１４は、数列シード生成部２１から該当する数列シードが存在しない旨の情報を受けた場合には、例えば、エラーを示す情報を出力するようにしてもよいし、あるいは予め定められた特定の透かし情報が埋め込まれていたものとみなして、該特定の透かし情報を出力するようにしてもよい。
【００８２】
また、検出された数列シードを、透かし情報として用いる場合には、数列シード・透かし情報変換部１４は、不要である。
【００８３】
さて、図１０の電子透かし検出装置２の全体的な動作は、例えば、次のような手順になる。
【００８４】
まず、数列シード生成部２１が、ある数列シードを出力する。
【００８５】
数列生成部２２は、数列シード生成部２１から入力された数列シードをもとに、重畳されている数列の候補Δｇ’を生成する。
【００８６】
検出部２３のシフト部２３１は、前述のようにしてシフトを行い、検出部２３の相関値計算部２３２は、前述のようにしてＣＲ（０，０）および（０，０）以外でのＣＲ（μ，ν）を計算する。
【００８７】
検出部２３の推定部２３３は、前述のようにして（０，０）以外でのＣＲ（μ，ν）ＥＣＲ（０，０）を推定する。
【００８８】
検出部２３の判定部２３４は、相関値計算部２３２によるＣＲ（０，０）と、推定部２３３によるＥＣＲ（０，０）とから、判定を行い、数列が検出されたことを示す判定結果（以下、一致情報と呼ぶ）、または数列が検出されなかったことを示す判定結果（以下、不一致情報と呼ぶ）を、数列シード生成部２１に与える。
【００８９】
数列シード生成部２１は、判定部２３４から不一致情報が与えられたならば、他の数列シードを出力する。そして、上記と同様に、数列生成部２２は、対応する数列を生成する。また、上記と同様に、判定部２３４は、相関を取り、該数列が存在しないと判断したならば、再度、不一致情報を、数列シード生成部２１に与える。
【００９０】
以上を繰り返し行い、判定部２３４は、相関値計算部２３２によるＣＲ（０，０）と、推定部２３３によるＥＣＲ（０，０）とから、判定を行い、該数列が存在すると判断したならば、今度は、一致情報を、数列シード生成部２１に与える。
【００９１】
数列シード生成部２１は、判定部２３４から一致情報が与えられたならば、そのときの数列シードを、数列シード・透かし情報変換部２４に出力する。
【００９２】
数列シード生成部２１から数列シードを与えられた数列シード・透かし情報変換部２４は、与えられた数列シードに対応する透かし情報を出力する。
【００９３】
ところで、上記では、数列シード生成部２１により数列シードを仮定し相関判定結果に従ってその試行錯誤を行ったが、その代わりに、透かし情報を仮定し相関判定結果に従ってその試行錯誤を行うことも可能である。
【００９４】
図１８に、この場合の電子透かし検出装置の構成例を示す。この場合には、図１０の数列シード生成部２１および数列シード・透かし情報変換部２４の代わりに、透かし情報生成部２５および透かし情報・数列シード変換部２６を備える。この構成例は、図１０の構成例と基本的には同様であるので、以下では、相違する点を中心に説明する。
【００９５】
まず、透かし情報生成部２５が、ある透かし情報を出力する。
【００９６】
透かし情報・数列シード変換部２６は、透かし情報生成部２５から与えられた透かし情報に対応する数列シードを出力する。
【００９７】
数列生成部２２は、透かし情報・数列シード変換部２６から入力された数列シードをもとに、重畳されている数列の候補Δｇ’を生成する。
【００９８】
検出部２３のシフト部２３１は、前述と同様にしてシフトを行い、検出部２３の相関値計算部２３２は、前述と同様にしてＣＲ（０，０）および（０，０）以外でのＣＲ（μ，ν）を計算する。
【００９９】
検出部２３の推定部２３３は、前述のようにして（０，０）以外でのＣＲ（μ，ν）ＥＣＲ（０，０）を推定する。
【０１００】
検出部２３の判定部２３４は、相関値計算部２３２によるＣＲ（０，０）と、推定部２３３によるＥＣＲ（０，０）とから、判定を行い、一致情報、または不一致情報を、透かし情報生成部２５に与える。
【０１０１】
透かし情報生成部２５は、判定部２３４から不一致情報が与えられたならば、他の透かし情報を出力する。そして、上記と同様に、数列生成部２２は、対応する数列を生成する。同様に、判定部２３４は、相関を取り、該数列が存在しないと判断したならば、再度、不一致情報を、透かし情報生成部２５に与える。
【０１０２】
以上を繰り返し行い、判定部２３４は、相関値計算部２３２によるＣＲ（０，０）と、推定部２３３によるＥＣＲ（０，０）とから、判定を行い、該数列が存在すると判断したならば、今度は、一致情報を、透かし情報生成部２５に与える。
【０１０３】
透かし情報生成部２５は、判定部２６から一致を示す判定結果が与えられたならば、そのときの透かし情報を出力する。
【０１０４】
ところで、上記では、複数の数列シードや透かし情報のうちから１つずつを仮定し相関判定結果に従ってその試行錯誤を行ったが、特定の透かし情報が埋め込まれているか否かのみ検出すればよい場合もある。例えば、透かし情報によってコピー制御を行う場合に、対象コンテンツに、コピー可を示す透かし情報が埋め込まれているか、コピー不可を示す透かし情報が埋め込まれているかを調べ、コピー可を示す透かし情報が埋め込まれているときに、コピーができるようにするのではなく、対象コンテンツに、コピー可を示す透かし情報が埋め込まれているか否かを調べ、コピー可を示す透かし情報が埋め込まれていたならば、コピーができるようにし、コピー可を示す透かし情報が埋め込まれていなかったならば、当該コンテンツはコピー不可とみなして、コピーができないようにする場合などが考えられる。
【０１０５】
図１９に、この場合の電子透かし検出装置の構成例を示す。この場合には、図１０や図１８の検出部２３と、数列記憶部２７とを備える。この構成例は、候補について試行錯誤する以外は図１０や図１８の構成例と基本的には同様であるので、以下では、相違する点を中心に説明する。
【０１０６】
この場合、数列記憶部２７には、特定の透かし情報に対応する数列Δｇ’、例えば、コピー可に対応する数列が格納されている。この数列は、検出部２３に与えられる。
【０１０７】
検出部２３のシフト部２３１は、前述と同様にしてシフトを行い、検出部２３の相関値計算部２３２は、前述と同様にしてＣＲ（０，０）および（０，０）以外でのＣＲ（μ，ν）を計算する。
【０１０８】
検出部２３の推定部２３３は、前述のようにして（０，０）以外でのＣＲ（μ，ν）ＥＣＲ（０，０）を推定する。
【０１０９】
検出部２３の判定部２３４は、相関値計算部２３２によるＣＲ（０，０）と、推定部２３３によるＥＣＲ（０，０）とから、判定を行い、該当する数列が検出された場合には、当該特定の透かし情報（例えば、コピー可を示す透かし情報）を出力し、該当する数列が検出されなかった合には、エラーを示す情報または予め定められた他の透かし情報（例えば、コピー不可を示す透かし情報）を出力する。
【０１１０】
さて、以上では、時空間領域（画像データの場合には画素領域）でコンテンツの各ブロックに電子透かしを埋め込み、時空間領域（画像データの場合には画素領域）でコンテンツの各ブロックをもとに電子透かしを検出する方法を中心に説明したが、以下では、時空間領域のコンテンツ・データを、直交変換によって、一旦、周波数領域のデータに変換し、周波数領域のデータに対する各ブロックに対して埋め込みを行った後、再び、逆直交変換によって、時空間領域に戻す方法、時空間領域のコンテンツ・データを、直交変換によって、周波数領域のデータに変換し、該周波数領域のデータについて、電子透かしを検出する方法について説明する。
【０１１１】
図２０に、この場合の電子透かし埋込装置の構成例を示す。この場合には、図２０に示されるように、図２の構成例に変換部１４と逆変換部１５を付加し、変換部１４で、時空間領域のコンテンツ・データを（図６参照）、直交変換によって、一旦、周波数領域のデータに変換し（図２１参照）、数列重畳部１３で、図２の構成例と同様にして、周波数領域のデータに対する各ブロックのブロック値に、数列の要素を重畳し（図２２参照）、その後、再び、逆変換部１５で、逆直交変換によって、時空間領域のデータに戻せばよい。
【０１１２】
一方、この場合の電子透かし検出装置の構成例は、これまでと同様である。図２３に、この場合の電子透かし検出装置の検出部２３の構成例を示す。この場合には、図２３に示されるように、図１１の構成例に変換部２３５を付加し、変換部２３５で、時空間領域のコンテンツ・データを（図６参照）、直交変換によって、一旦、周波数領域のデータに変換し（図２１参照）、該周波数領域のデータについて、図１１の検出部２３と同様の処理を行えばよい。
【０１１３】
なお、埋め込み時および検出時に時空間領域を用いる方法、埋め込み時および検出時に周波数領域を用いる方法の他に、時空間領域での重畳と周波数領域での重畳が等価変換できる場合には、埋め込み時には時空間領域を用い、検出時には周波数領域を用いる方法、埋め込み時には周波数領域を用い、検出時には時空間領域を用いる方法もあり得る。
【０１１４】
さて、以下では、コンテンツのシフトのバリエーションについて説明する。以下では、コンテンツが画像である場合を例にとって説明するが、コンテンツが他の形態のコンテンツの場合も同様に可能である。
【０１１５】
シフト画像の選択方法としては、
（１）１枚のみのシフト画像を用いるもの
（２）複数枚のシフト画像を用いるもの
がある。
【０１１６】
シフトの方向としては、
（１）水平方向にのみシフトしたシフト画像を用いる場合
（２）垂直方向にのみシフトしたシフト画像を用いる場合
（３）斜め方向にのみシフトしたシフト画像を用いる場合
（４）上記の３つの場合のうち２つの場合以上のシフト画像を用いる場合
がある。
【０１１７】
シフトの大きさとしては、
（１）１画素を単位としてシフトする場合
（２）所定のブロックサイズ（１画素よりも大きい）を単位としてシフトする場合
がある。
【０１１８】
推定対象の画像と、推定に用いるシフト画像の位置関係については、例として、図２４の（ａ）〜（ｇ）のようなものがある。斜線ハッチングした矩形が推定対象画像中のあるブロックの位置、それ以外の矩形が推定に用いる画像中におけるシフト先のブロックの位置である。これら以外にもいろいろなバリエーションが可能である。
【０１１９】
次に、ＥＣＲ（０，０）の高次の推定方法について説明する。
【０１２０】
これまで説明した推定の方法の他に、より高次の近似を行う場合に適用可能な方法について説明する。
【０１２１】
推定の方法の例として、より高次の近似を行う場合にも適用可能な方法を説明する。推定対象画像とシフト画像の間のシフト量を２次元の直交座標（ｘ、ｙ）で表現する。（０，０）はシフトをしない場合に対応する。線形近似や高次の近似は、シフト画像の相関値がｘとｙによる線形式や高次式で記述されるというモデルを採用するものである。
【０１２２】
例えば、ｎ次の近似を行う場合、（ｘ、ｙ）だけシフトしたシフト画像における実測の相関値ＣＲ（ｘ、ｙ）は、
ＣＲbar（ｘ、ｙ）＝Σａij・ｘi・ｙj
（総和を取る範囲は、ｉ＝０，…，ｎ、  ｊ＝０，…，ｎ；  ただし、ｉ＋ｊ≦ｎ）というモデルで近似されるとする。ここで、ａij＝ａjiとする。ｎ次近似では、（ｘ，ｙ）≠（０，０）なるシフト画像を複数用意して、そのシフト画像に対する相関値から係数ａijを決定するものである。推定対象画像の相関値は、ａ00の値として推定される。
【０１２３】
推定の方法にも、様々な方法がある。まず、最小二乗法を用いた推定の方法について説明する。上の実測の相関値とモデルの相関値の間の二乗誤差ΔＣＲを
ΔＣＲ＝Σx,y（ＣＲbar（ｘ，ｙ）−ＣＲ（ｘ，ｙ））2
で定義する。このΔＣＲが最小となるように係数ａijを決定する。そのためには、すべての独立な係数について、
∂ΔＣＲ／Δａij＝０
を満足するような係数の組を求めればよい。簡便のため、独立な係数をａやａ’で表すことにする。さらに、
ＣＲ（ｘ，ｙ）＝Σa  ａ・ｆa（ｘ，ｙ）
という形で表すことにする。
∂ΔＣＲ／∂ａ＝２Σa（ＣＲbar（ｘ，ｙ）−Σa’  ａ’・ｆa’（ｘ，ｙ））・ｆa（ｘ，ｙ）＝０
そこで、Ｍaa’＝Σx,y ｆa（ｘ，ｙ）・ｆa’（ｘ，ｙ）、Ｖa＝Σx,y ｆa（ｘ，ｙ）で表すと、上式は、
Σa’  Ｍaa’・ａ’＝Ｖa 
となる。行列Ｍaa’の行列式が非ゼロならば、上の連立方程式は解を持ち、係数は、
ａ＝ΣＭaa’-1・Ｖa’  
によって与えられる。このときの、係数ａ00が推定すべき相関値となる。この方法は、一般の次数のモデルに対して適用できる。
【０１２４】
以下では、本実施形態のハードウェア構成、ソフトウェア構成について説明する。
【０１２５】
本実施形態の電子透かし埋込装置は、ハードウェアとしても、ソフトウェア（（コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラム）としても、実現可能である。また、電子透かし埋込装置をソフトウェアで実現する場合には、記録媒体によってプログラムを受け渡しすることも、通信媒体によってプログラムを受け渡しすることもできる。もちろん、それらは、電子透かし検出装置についても同様である。
また、電子透かし埋込装置や電子透かし検出装置をハードウェアとして構成する場合、半導体装置として形成することができる。
また、本発明を適用した電子透かし埋込装置を構成する場合、あるいは電子透かし埋め込みプログラムを作成する場合に、同一構成を有するブロックもしくはモジュールがあっても、それらをすべて個別に作成することも可能であるが、同一構成を有するブロックもしくはモジュールについては１または適当数のみ用意しておいて、それをアルゴリズムの各部分で共有する（使い回す）ことも可能である。電子透かし検出装置を構成する場合、あるいは電子透かし検出プログラムを作成する場合も、同様である。また、電子透かし埋込装置および電子透かし検出装置を含むシステムを構成する場合、あるいは電子透かし埋め込みプログラムおよび電子透かし検出プログラムを含むシステムを作成する場合には、電子透かし埋込装置（あるいはプログラム）と電子透かし検出装置（あるいはプログラム）に渡って、同一構成を有するブロックもしくはモジュールについては１または適当数のみ用意しておいて、それをアルゴリズムの各部分で共有する（使い回す）ことも可能である。
【０１２６】
また、電子透かし埋込装置や電子透かし検出装置をソフトウェアで構成する場合には、マルチプロセッサを利用し、並列処理を行って、処理を高速化することも可能である。
【０１２７】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【０１２８】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１２９】
【発明の効果】
本発明によれば、シフト・コンテンツの相関値をもとに原コンテンツの相関値を推定することによって、透かしとしてコンテンツに埋め込まれた数列をより小さなコストでより精度良く検出することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る電子透かし埋込装置及び電子透かし検出装置を含むコンテンツ流通システムの概略構成を示す図
【図２】同実施形態に係る電子透かし埋込装置の構成例を示す図
【図３】同実施形態に係る電子透かし埋め込みにおける処理手順の一例を示すフローチャート
【図４】ブロックについて説明するための図
【図５】ブロックについて説明するための図
【図６】ブロック値について説明するための図
【図７】数列要素のブロック値への重畳について説明するための図
【図８】同実施形態に係る電子透かし埋込装置の数列生成部の構成例を示す図
【図９】同実施形態に係る電子透かし埋込装置の数列生成部の他の構成例を示す図
【図１０】同実施形態に係る電子透かし検出装置の構成例を示す図
【図１１】同実施形態に係る電子透かし埋込装置の検出部の構成例を示す図
【図１２】同実施形態に係る電子透かし検出における処理手順の一例を示すフローチャート
【図１３】ブロック値について説明するための図
【図１４】シフトについて説明するための図
【図１５】シフトについて説明するための図
【図１６】シフトについて説明するための図
【図１７】シフトについて説明するための図
【図１８】同実施形態に係る電子透かし検出装置の他の構成例を示す図
【図１９】同実施形態に係る電子透かし検出装置のさらに他の構成例を示す図
【図２０】同実施形態に係る電子透かし埋込装置のさらに他の構成例を示す図
【図２１】ブロック値について説明するための図
【図２２】数列要素のブロック値への重畳について説明するための図
【図２３】同実施形態に係る電子透かし検出装置の検出部の他の構成例を示す図
【図２４】推定対象の画像と推定に用いるシフト画像の位置関係の例について説明するための図
【符号の説明】
１…電子透かし埋込装置
２…電子透かし検出装置
３…流通経路
１１，２６…透かし情報・数列シード変換部
１２…数列生成部
１３…数列重畳部
１４，２３５…変換部
１５…逆変換部
１２１…擬似乱数生成部
１２２…変換係数格納部
１２３…乗算部
２１…数列シード生成部
２２…数列生成部
２３…検出部
２４…数列シード・透かし情報変換部
２５…透かし情報生成部
２７…数列記憶部
２３１…シフト部
２３２…相関値計算部
２３３…推定部
２３４…判定部
【図１】
0003682222.tif 000002
【図２】
0003682222.tif 000003
【図３】
0003682222.tif 000004
【図４】
0003682222.tif 000005
【図５】
0003682222.tif 000006
【図６】
0003682222.tif 000007
【図７】
0003682222.tif 000008
【図８】
0003682222.tif 000009
【図９】
0003682222.tif 000010
【図１０】
0003682222.tif 000011
【図１１】
0003682222.tif 000012
【図１２】
0003682222.tif 000013
【図１３】
0003682222.tif 000014
【図１４】
0003682222.tif 000015
【図１５】
0003682222.tif 000016
【図１６】
0003682222.tif 000017
【図１７】
0003682222.tif 000018
【図１８】
0003682222.tif 000019
【図１９】
0003682222.tif 000020
【図２０】
0003682222.tif 000021
【図２１】
0003682222.tif 000022
【図２２】
0003682222.tif 000023
【図２３】
0003682222.tif 000024
【図２４】
0003682222.tif 000025