(57)【要約】２次元のデータのフレーム（１７０）においてウォータマーク（１００）を検出するウォータマーク検出方法及び／又はウォータマーク検出装置を提供する。ウォータマーク検出方法は、ウォータマークに対応している少なくとも幾つかの高調波周波数成分を有するデータのフレームからフィルタリングされたデータのフレームを算出するステップ（２００）と、フィルタリングされたデータのフレームの２次元フーリエ変換値を算出するステップ（２０４）と、２次元周波数スペクトルの一組の周波数成分を選択するステップ（２０６）と、選択された周波数成分の組の１つ以上を用いて、基準ウォータマークに対してウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップ（２０８）とを有する。
2005529526.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータのフレームに埋め込まれたウォータマークを表す複数のデータ値を含む２次元のデータのフレームにおいてウォータマークを検出するウォータマーク検出方法であって、
コンテンツデータに対応する少なくとも幾つかの周波数成分に対して強調された上記ウォータマークに対応している少なくとも幾つかの高調波周波数成分を有するデータのフレームからフィルタリングされたデータのフレームを算出するステップと、
フィルタリングされたデータのフレームの２次元フーリエ変換を行い、フィルタリングされたデータのフレームの２次元周波数スペクトルを算出するステップと、
２次元周波数スペクトルの周波数成分からウォータマークに関連付けられる一組の周波数成分を選択するステップと、
上記選択された周波数成分の組の１つ以上を用いて、基準ウォータマークに対してウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップとを有するウォータマーク検出方法。
【請求項２】
上記データのフレームは、画素データ及びオーディオデータの何れかであることを特徴とする請求項１記載のウォータマーク検出方法。
【請求項３】
上記ウォータマークは、実質的に、上記基準ウォータマークに一致するが、回転値、リサイズ値及び移動値のうちの少なくとも１つを含み、
上記ウォータマーク及び基準ウォータマークは、それぞれ、メッセージを表す複数のデータブロック含み、
各データブロックは、上記メッセージによって定義される第１及び第２のパターンの少なくとも１つに基づいて構成されたデータ値のアレーを含んでいることを特徴とする請求項１記載のウォータマーク検出方法。
【請求項４】
上記第１及び第２のパターンは、デカルト座標系におけるデータ値の４つの象限によって定義され、上記４つの象限において、第１及び第３の象限が等しいデータ値を有し、第２及び第４の象限が等しいデータ値を有することを特徴とする請求項３記載のウォータマーク検出方法。
【請求項５】
上記第１及び第２のパターンにおける上記第１及び第３の象限のデータ値と、上記第２及び第４の象限のデータ値とは、極性が反対の数を有することを特徴とする請求項４記載のウォータマーク検出方法。
【請求項６】
上記第１のパターンの第１及び第３の象限のデータ値と、上記第２のパターンの第１及び第３の象限のデータ値とは、極性が反対の数を有することを特徴とする請求項５記載のウォータマーク検出方法。
【請求項７】
上記フィルタリングされたデータのフレームは、それぞれがデータのフレームのデータ値の１つに対応し、基準データブロックのデータ値とデータのフレームのデータ値のそれぞれの組との積和に等しい複数のフィルタリングされたデータ値を含んでいることを特徴とする請求項３記載のウォータマーク検出方法。
【請求項８】
上記基準データブロックのデータ値は、第１及び第２のパターンの少なくとも１つに基づいて構成され、データのフレームのデータ値のそれぞれの組が、基準データブロックに少なくとも部分的に登録されているウォータマークのデータブロックの所定の１つを含んでいると、上記フィルタリングされた値の所定の１つは、ピークを示すことを特徴とする請求項７記載のウォータマーク検出方法。
【請求項９】
上記所定のフィルタリングされた値は、ウォータマークのデータブロックの所定の１つと、基準データブロックとの両方が第１又は第２のパターンに基づいて構成されたデータ値を含んでいる場合、正の極性でピークに達し、
上記所定のフィルタリングされた値は、ウォータマークのデータブロックの所定の１つが上記第１及び第２のパターンの一方に基づいて構成されたデータ値を含み、基準データブロックが上記第１及び第２のパターンの他方に基づいて構成されたデータ値を含んでいる場合、負の極性でピークに達することを特徴とする請求項８記載のウォータマーク検出方法。
【請求項１０】
上記基準データブロックは、データ値のアレー内に中心を有し、上記データのフレームのデータ値のそれぞれの組は、基準データブロックの中心がデータのフレームのデータ値の対応する１つに揃えられたときに、上記基準データブロックによって覆われるデータ値であることを特徴とする請求項９記載のウォータマーク検出方法。
【請求項１１】
上記フィルタリングされたデータのフレームを算出するステップは、フィルタリングされた各値について、基準データブロックの値と、データのフレームの値のそれぞれの組との積和の絶対値を算出するステップを有することを特徴とする請求項７記載のウォータマーク検出方法。
【請求項１２】
上記フィルタリングされたデータのフレームを２次元フーリエ変換するステップは、２次元高速フーリエ変換（Fast Fourier transform：ＦＦＴ）を実行し、フィルタリングされたデータのフレームの２次元周波数スペクトルを生成するステップを有することを特徴とする請求項１記載のウォータマーク検出方法。
【請求項１３】
上記ウォータマークに関連付けられる周波数成分の組を選択するステップは、上記２次元周波数スペクトルの周波数成分からウォータマークに対応している少なくとも幾つかの高調波周波数成分を選択するステップを有することを特徴とする請求項１記載のウォータマーク検出方法。
【請求項１４】
上記少なくとも幾つかの高調波周波数成分は、ウォータマークに対応する第２の高調波成分を含んでいることを特徴とする請求項１３記載のウォータマーク検出方法。
【請求項１５】
上記ウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップは、（１）基準ウォータマークによって定義されるコンポーネントの期待される幾何学的位置に対する、上記ウォータマークに対応する少なくとも１つの選択された高調波周波数成分における上記２次元フーリエ変換内の幾何学的位置の１つ以上の偏り又は（２）基準ウォータマークによって定義されるコンポーネントの期待される位相に対する、ウォータマークに対応する少なくとも１つの選択された高調波周波数成分における位相の１つ以上の偏りを判定するステップを有することを特徴とする請求項１３記載のウォータマーク検出方法。
【請求項１６】
上記２次元周波数スペクトルの周波数成分を含む領域は、（１）ｘ軸とｙ軸に基づき、デカルト座標として図式的に表現され、（２）ｘ軸に平行な幅（Ｗ）を有し、（３）ｙ軸に平行な高さ（Ｈ）を有し、（４）実質的にｘ軸とｙ軸の交点である原点を有することを特徴とする請求項１５記載のウォータマーク検出方法。
【請求項１７】
上記ウォータマークに対応する回転値を算出するステップは、基準点と少なくともウォータマークに対応する選択された高調波周波数成分の１つによって定義される第１の軸と、基準ウォータマークによって定義される基準軸との間の角度を判定するステップを有することを特徴とする請求項１６記載のウォータマーク検出方法。
【請求項１８】
上記基準軸は、ｘ軸及びｙ軸の何れか一方に沿う軸であることを特徴とする請求項１７記載のウォータマーク検出方法。
【請求項１９】
上記ウォータマークに対応する回転値は、Ｆｙ１及びＦｘｌをそれぞれウォータマークに対応する選択された高調波周波数成分の１つのｙ軸及びｘ軸座標として、実質的に、arctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例する数値を算出することによって求められることを特徴とする請求項１８記載のウォータマーク検出方法。
【請求項２０】
上記ウォータマークに対応する回転値は、実質的に（１８０／Π）＊arctan（（Ｆｙｌ＊Ｗ）／（Ｆｘ１＊Ｈ））°に等しいことを特徴とする請求項１９記載のウォータマーク検出方法。
【請求項２１】
上記ウォータマークに対応する回転値を算出するステップは、（１）基準点と、ウォータマークに対応する選択された高調波周波数成分のそれぞれの１つとによって定義される各軸と、（２）基準ウォータマークによって定義される１つ以上の基準軸との間の２つ以上の角度を求めるステップと、
上記２つ以上の角度から回転値を算出するステップとを有することを特徴とする請求項１７記載のウォータマーク検出方法。
【請求項２２】
上記ウォータマークに対応するリサイズ値を算出するステップは、（１）ウォータマークに対応する少なくとも１つの選択された高調波周波数成分から算出される期間（Ｐ）と、（２）基準ウォータマークによって定義される基準期間（Ｐｒ）とを比較するステップを有することを特徴とする請求項１６記載のウォータマーク検出方法。
【請求項２３】
上記ウォータマークに対応するリサイズ値を算出するステップは、ｘ軸リサイズ値とｙ軸リサイズ値とを算出するステップを有することを特徴とする請求項２２記載のウォータマーク検出方法。
【請求項２４】
上記ｘ軸リサイズ値を算出するステップは、上記ウォータマークに対応する１つの選択された高調波周波数成分からｘ軸期間Ｐｘを算出するステップと、
上記ｘ軸期間Ｐｘと基準ウォータマークのｘ軸基準期間Ｐｒｘとの比率を算出して、ｘ軸リサイズ値を求めるステップとを有することを特徴とする請求項２３記載のウォータマーク検出方法。
【請求項２５】
上記ｘ軸期間Ｐｘは、Ｆｘｌ及びＦｙｌをそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２に等しいことを特徴とする請求項２４記載のウォータマーク検出方法。
【請求項２６】
上記基準ウォータマークは、各列の値の数が基準ウォータマークのｘ軸基準期間Ｐｒｘに等しい列及び行にそれぞれ構成された複数の値を含む複数のデータブロックを含んでいることを特徴とする請求項２５記載のウォータマーク検出方法。
【請求項２７】
上記ウォータマークに対応する選択された高調波周波数成分の１つは、実質的にｘ軸に沿って存在するか、回転値を差し引けば、実質的にｘ軸に沿って存在する筈であることを特徴とする請求項２６記載のウォータマーク検出方法。
【請求項２８】
上記ｙ軸リサイズ値を算出するステップは、上記ウォータマークに対応する１つの選択された高調波周波数成分からｙ軸期間Ｐｙを算出するステップと、
上記ｙ軸期間Ｐｙと基準ウォータマークのｙ軸基準期間Ｐｒｙとの比率を算出して、ｙ軸リサイズ値を求めるステップとを有することを特徴とする請求項２３記載のウォータマーク検出方法。
【請求項２９】
上記ｙ軸期間Ｐｙは、Ｆｘ２及びＦｙ２をそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２に等しいことを特徴とする請求項２８記載のウォータマーク検出方法。
【請求項３０】
上記基準ウォータマークは、各列の値の数が基準ウォータマークのｙ軸基準期間Ｐｒｙに等しい列及び行にそれぞれ構成された複数の値を含む複数のデータブロックを含んでいることを特徴とする請求項２９記載のウォータマーク検出方法。
【請求項３１】
上記ウォータマークに対応する選択された高調波周波数成分の１つは、実質的にｙ軸に沿って存在するか、回転値を差し引けば、実質的にｙ軸に沿って存在する筈であることを特徴とする請求項３０記載のウォータマーク検出方法。
【請求項３２】
上記ウォータマークに対応する移動値を算出するステップは、上記ウォータマークに対応する少なくとも２つの選択された高調波周波数成分から位相を得るステップを有することを特徴とする請求項１６記載のウォータマーク検出方法。
【請求項３３】
上記移動値は、上記ウォータマークに対応する１つの選択された高調波周波数成分の位相θ１に比例する第１の方向の第１の距離と、上記ウォータマークに対応する他の選択された高調波周波数成分の位相θ２に比例する第２の方向の第２の距離とに基づいていることを特徴とする請求項３２記載のウォータマーク検出方法。
【請求項３４】
上記第１の距離は、Ｆｘｌ及びＦｙｌをそれぞれ選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ１＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２）に等しく、
上記第２の距離は、Ｆｘ２及びＦｙ２をそれぞれ選択された他の高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ２＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２）に等しいことを特徴とする請求項３３記載のウォータマーク検出方法。
【請求項３５】
上記第１の方向は、実質的にarctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例し、上記第２の方向は、実質的にarctan（（Ｆｙ２＊Ｗ）／（Ｆｘ２＊Ｈ））に比例することを特徴とする請求項３４記載のウォータマーク検出方法。
【請求項３６】
上記第１及び第２の方向は、実質的に直交することを特徴とする請求項３３記載のウォータマーク検出方法。
【請求項３７】
上記ウォータマークの回転値、リサイズ値、移動値のうちの少なくとも１つに基づいて、データのフレーム内において、少なくとも幾つかのウォータマークのデータブロックに対応する複数の位置を判定するステップを更に有する請求項３記載のウォータマーク検出方法。
【請求項３８】
上記複数の位置は、上記ウォータマークのデータブロックのそれぞれの中心に対応していることを特徴とする請求項３７記載のウォータマーク検出方法。
【請求項３９】
それぞれが少なくとも幾つかのウォータマークの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかのウォータマークのデータブロックの１つのデータ値のそれぞれの組との積和に等しいフィルタリングされたメッセージ値のアレーを求めるステップを更に有することを特徴とする請求項３７記載のウォータマーク検出方法。
【請求項４０】
上記基準データブロックは、データ値のアレー内に中心を有し、上記ウォータマークの少なくとも幾つかのデータブロックの１つのデータ値のそれぞれの組は、上記基準データブロックの中心が上記ウォータマークの少なくとも幾つかのデータブロックの１つの各位置に揃えられたときに、基準データブロックによって覆われるデータ値であることを特徴とする請求項３９記載のウォータマーク検出方法。
【請求項４１】
（１）積和を求める前に、回転値に比例する量だけ基準データブロックを回転させ、及び／又は（２）積和を取る前にリサイズ値に比例する１つ以上の量だけ基準データブロックをリサイズするステップを更に有する請求項４０記載のウォータマーク検出方法。
【請求項４２】
それぞれが少なくとも幾つかの基準ウォータマークのデータブロックの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかの基準ウォータマークのデータブロックの１つのデータ値との積和に等しいフィルタリングされた基準メッセージ値のアレーを求めるステップを更に有する請求項３９記載のウォータマーク検出方法。
【請求項４３】
上記基準データブロックは、データ値のアレー内に中心を有し、上記基準ウォータマークの少なくとも幾つかのデータブロックの１つのデータ値は、基準データブロックの中心が上記基準ウォータマークの少なくとも幾つかのデータブロックの１つ中心に揃えられたときに、上記基準データブロックで覆われるデータ値であることを特徴とする請求項４２記載のウォータマーク検出方法。
【請求項４４】
上記フィルタリングされた基準メッセージ値のアレーは、予め定められていることを特徴とする請求項４２記載のウォータマーク検出方法。
【請求項４５】
上記フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップを更に有する請求項４４記載のウォータマーク検出方法。
【請求項４６】
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップを更に有する請求項４５記載のウォータマーク検出方法。
【請求項４７】
それぞれが異なる基準ウォータマークに関連付けられているフィルタリングされた基準メッセージ値のアレーの組を判定するステップと、
フィルタリングされたメッセージ値のアレーと、基準メッセージ値のフィルタリングされたアレーのそれぞれとの積和を算出するステップと、
フィルタリングされたメッセージ値のアレーと、基準ウォータマークの１つに関連するフィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、該ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項４６記載のウォータマーク検出方法。
【請求項４８】
少なくとも１つのメッセージ値の位置に基づいて、横方向及び縦方向の少なくとも１つの方向に、フィルタリングされた基準メッセージ値のアレーに対してフィルタリングされたメッセージ値のアレーを移動させるステップと、
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、
上記移動及び算出のステップを１回以上繰り返すステップと、
上記積和の１つが閾値以上となった場合、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項４５記載のウォータマーク検出方法。
【請求項４９】
フィルタリングされた基準メッセージ値のアレーに対して、フィルタリングされたメッセージ値のアレーを９０°の整数倍回転させるステップと、
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、
上記回転及び算出のステップを１回以上繰り返すステップと、
上記積和の１つが閾値以上となった場合、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項４５記載のウォータマーク検出方法。
【請求項５０】
フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を算出するステップと、
フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値を算出するステップと、
ポイント毎に上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、変更されたアレーを算出するステップと、
上記変更されたアレーの逆フーリエ変換値を算出するステップと、
上記変更されたアレーの逆フーリエ変換値から最大値を判定するステップと、
上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を、上記フィルタリングされたメッセージ値のアレーの２次元フーリエ変換に対して、９０°の整数倍回転させるステップと、
ポイント毎に上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、次の変更されたアレーを算出するステップと、
上記次の変更されたアレーの逆フーリエ変換値を算出するステップと、
上記次の変更されたアレーの逆フーリエ変換値から次の最大値を判定するステップと、
上記回転、算出、判定のステップを一回以上繰り返すステップと、
上記最大値の１つが閾値以上になったとき、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項４２記載のウォータマーク検出方法。
【請求項５１】
プログラムの制御の下で動作する処理装置において、該プログラムは、当該処理装置にウォータマーク検出方法を実行させ、該ウォータマーク検出方法は、コンテンツデータのフレームに埋め込まれたウォータマークを表す複数のデータ値を含む２次元のデータのフレームにおいてウォータマークを検出するウォータマーク検出方法であって、
コンテンツデータに対応する少なくとも幾つかの周波数成分に対して強調された上記ウォータマークに対応している少なくとも幾つかの高調波周波数成分を有するデータのフレームからフィルタリングされたデータのフレームを算出するステップと、
フィルタリングされたデータのフレームの２次元フーリエ変換を行い、フィルタリングされたデータのフレームの２次元周波数スペクトルを算出するステップと、
２次元周波数スペクトルの周波数成分からウォータマークに関連付けられる一組の周波数成分を選択するステップと、
上記選択された周波数成分の組の１つ以上を用いて、基準ウォータマークに対してウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップとを有する処理装置。
【請求項５２】
上記ウォータマークは、実質的に、上記基準ウォータマークに一致するが、回転値、リサイズ値及び移動値のうちの少なくとも１つを含み、
上記ウォータマーク及び基準ウォータマークは、それぞれ、メッセージを表す複数のデータブロック含み、
各データブロックは、上記メッセージによって定義される第１及び第２のパターンの少なくとも１つに基づいて構成されたデータ値のアレーを含んでいることを特徴とする請求項５１記載の処理装置。
【請求項５３】
上記第１及び第２のパターンは、デカルト座標系におけるデータ値の４つの象限によって定義され、上記４つの象限において、第１及び第３の象限が等しいデータ値を有し、第２及び第４の象限が等しいデータ値を有し、
上記第１及び第２のパターンにおける上記第１及び第３の象限のデータ値と、上記第２及び第４の象限のデータ値とは、極性が反対の数を有し、
上記第１のパターンの第１及び第３の象限のデータ値と、上記第２のパターンの第１及び第３の象限のデータ値とは、極性が反対の数を有することを特徴とする請求項５２記載の処理装置。
【請求項５４】
上記フィルタリングされたデータのフレームは、それぞれがデータのフレームのデータ値の１つに対応し、基準データブロックのデータ値とデータのフレームのデータ値のそれぞれの組との積和に等しい複数のフィルタリングされたデータ値を含んでいることを特徴とする請求項５２記載の処理装置。
【請求項５５】
上記基準データブロックのデータ値は、第１及び第２のパターンの少なくとも１つに基づいて構成され、データのフレームのデータ値のそれぞれの組が、基準データブロックに少なくとも部分的に登録されているウォータマークのデータブロックの所定の１つを含んでいると、上記フィルタリングされた値の所定の１つは、ピークを示すことを特徴とする請求項５４記載の処理装置。
【請求項５６】
上記所定のフィルタリングされた値は、ウォータマークのデータブロックの所定の１つと、基準データブロックとの両方が第１又は第２のパターンに基づいて構成されたデータ値を含んでいる場合、正の極性でピークに達し、
上記所定のフィルタリングされた値は、ウォータマークのデータブロックの所定の１つが上記第１及び第２のパターンの一方に基づいて構成されたデータ値を含み、基準データブロックが上記第１及び第２のパターンの他方に基づいて構成されたデータ値を含んでいる場合、負の極性でピークに達することを特徴とする請求項５５記載の処理装置。
【請求項５７】
上記基準データブロックは、データ値のアレー内に中心を有し、上記データのフレームのデータ値のそれぞれの組は、基準データブロックの中心がデータのフレームのデータ値の対応する１つに揃えられたときに、上記基準データブロックによって覆われるデータ値であることを特徴とする請求項５６記載の処理装置。
【請求項５８】
上記フィルタリングされたデータのフレームを算出するステップは、フィルタリングされた各値について、基準データブロックの値と、データのフレームの値のそれぞれの組との積和の絶対値を算出するステップを有することを特徴とする請求項５４記載の処理装置。
【請求項５９】
上記フィルタリングされたデータのフレームを２次元フーリエ変換するステップは、２次元高速フーリエ変換（Fast Fourier transform：ＦＦＴ）を実行し、フィルタリングされたデータのフレームの２次元周波数スペクトルを生成するステップを有することを特徴とする請求項５１記載の処理装置。
【請求項６０】
上記ウォータマークに関連付けられる周波数成分の組を選択するステップは、上記２次元周波数スペクトルの周波数成分からウォータマークに対応している少なくとも幾つかの高調波周波数成分を選択するステップを有することを特徴とする請求項５１記載の処理装置。
【請求項６１】
上記少なくとも幾つかの高調波周波数成分は、ウォータマークに対応する第２の高調波成分を含んでいることを特徴とする請求項６０記載の処理装置。
【請求項６２】
上記ウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップは、（１）基準ウォータマークによって定義されるコンポーネントの期待される幾何学的位置に対する、上記ウォータマークに対応する少なくとも１つの選択された高調波周波数成分における上記２次元フーリエ変換内の幾何学的位置の１つ以上の偏り又は（２）基準ウォータマークによって定義されるコンポーネントの期待される位相に対する、ウォータマークに対応する少なくとも１つの選択された高調波周波数成分における位相の１つ以上の偏りを判定するステップを有することを特徴とする請求項６０記載の処理装置。
【請求項６３】
上記２次元周波数スペクトルの周波数成分を含む領域は、（１）ｘ軸とｙ軸に基づき、デカルト座標として図式的に表現され、（２）ｘ軸に平行な幅（Ｗ）を有し、（３）ｙ軸に平行な高さ（Ｈ）を有し、（４）実質的にｘ軸とｙ軸の交点である原点を有することを特徴とする請求項６２記載の処理装置。
【請求項６４】
上記ウォータマークに対応する回転値を算出するステップは、基準点と少なくともウォータマークに対応する選択された高調波周波数成分の１つによって定義される第１の軸と、基準ウォータマークによって定義される基準軸との間の角度を判定するステップを有することを特徴とする請求項６３記載の処理装置。
【請求項６５】
上記基準軸は、ｘ軸及びｙ軸の何れか一方に沿う軸であることを特徴とする請求項６４記載の処理装置。
【請求項６６】
上記ウォータマークに対応する回転値は、Ｆｙ１及びＦｘｌをそれぞれウォータマークに対応する選択された高調波周波数成分の１つのｙ軸及びｘ軸座標として、実質的に、arctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例する数値を算出することによって求められることを特徴とする請求項６５記載の処理装置。
【請求項６７】
上記ウォータマークに対応する回転値は、実質的に（１８０／Π）＊arctan（（Ｆｙｌ＊Ｗ）／（Ｆｘ１＊Ｈ））°に等しいことを特徴とする請求項６６記載の処理装置。
【請求項６８】
上記ウォータマークに対応する回転値を算出するステップは、（１）基準点と、ウォータマークに対応する選択された高調波周波数成分のそれぞれの１つとによって定義される各軸と、（２）基準ウォータマークによって定義される１つ以上の基準軸との間の２つ以上の角度を求めるステップと、
上記２つ以上の角度から回転値を算出するステップとを有することを特徴とする請求項６４記載の処理装置。
【請求項６９】
上記ウォータマークに対応するリサイズ値を算出するステップは、ｘ軸リサイズ値とｙ軸リサイズ値とを算出するステップを有することを特徴とする請求項６３記載の処理装置。
【請求項７０】
上記ｘ軸リサイズ値を算出するステップは、上記ウォータマークに対応する１つの選択された高調波周波数成分からｘ軸期間Ｐｘを算出するステップと、
上記ｘ軸期間Ｐｘと基準ウォータマークのｘ軸基準期間Ｐｒｘとの比率を算出して、ｘ軸リサイズ値を求めるステップとを有することを特徴とする請求項６９記載の処理装置。
【請求項７１】
上記ｘ軸期間Ｐｘは、Ｆｘｌ及びＦｙｌをそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２に等しいことを特徴とする請求項７０記載の処理装置。
【請求項７２】
上記基準ウォータマークは、各列の値の数が基準ウォータマークのｘ軸基準期間Ｐｒｘに等しい列及び行にそれぞれ構成された複数の値を含む複数のデータブロックを含んでいることを特徴とする請求項７１記載の処理装置。
【請求項７３】
上記ウォータマークに対応する選択された高調波周波数成分の１つは、実質的にｘ軸に沿って存在するか、回転値を差し引けば、実質的にｘ軸に沿って存在する筈であることを特徴とする請求項７２記載の処理装置。
【請求項７４】
上記ｙ軸リサイズ値を算出するステップは、上記ウォータマークに対応する１つの選択された高調波周波数成分からｙ軸期間Ｐｙを算出するステップと、
上記ｙ軸期間Ｐｙと基準ウォータマークのｙ軸基準期間Ｐｒｙとの比率を算出して、ｙ軸リサイズ値を求めるステップとを有することを特徴とする請求項６９記載の処理装置。
【請求項７５】
上記ｙ軸期間Ｐｙは、Ｆｘ２及びＦｙ２をそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２に等しいことを特徴とする請求項７４記載の処理装置。
【請求項７６】
上記基準ウォータマークは、各列の値の数が基準ウォータマークのｙ軸基準期間Ｐｒｙに等しい列及び行にそれぞれ構成された複数の値を含む複数のデータブロックを含んでいることを特徴とする請求項７５記載の処理装置。
【請求項７７】
上記ウォータマークに対応する選択された高調波周波数成分の１つは、実質的にｙ軸に沿って存在するか、回転値を差し引けば、実質的にｙ軸に沿って存在する筈であることを特徴とする請求項７６記載の処理装置。
【請求項７８】
上記移動値は、上記ウォータマークに対応する１つの選択された高調波周波数成分の位相θ１に比例する第１の方向の第１の距離と、上記ウォータマークに対応する他の選択された高調波周波数成分の位相θ２に比例する第２の方向の第２の距離とに基づいていることを特徴とする請求項６３記載の処理装置。
【請求項７９】
上記第１の距離は、Ｆｘｌ及びＦｙｌをそれぞれ選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ１＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２）に等しく、
上記第２の距離は、Ｆｘ２及びＦｙ２をそれぞれ選択された他の高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ２＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２）に等しいことを特徴とする請求項７８記載の処理装置。
【請求項８０】
上記第１の方向は、実質的にarctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例し、上記第２の方向は、実質的にarctan（（Ｆｙ２＊Ｗ）／（Ｆｘ２＊Ｈ））に比例することを特徴とする請求項７９記載の処理装置。
【請求項８１】
上記第１及び第２の方向は、実質的に直交することを特徴とする請求項７０記載の処理装置。
【請求項８２】
上記ウォータマーク検出方法は、上記ウォータマークの回転値、リサイズ値、移動値のうちの少なくとも１つに基づいて、データのフレーム内において、少なくとも幾つかのウォータマークのデータブロックに対応する複数の位置を判定するステップを更に有する請求項５２記載の処理装置。
【請求項８３】
上記複数の位置は、上記ウォータマークのデータブロックのそれぞれの中心に対応していることを特徴とする請求項８２記載の処理装置。
【請求項８４】
それぞれが少なくとも幾つかのウォータマークの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかのウォータマークのデータブロックの１つのデータ値のそれぞれの組との積和に等しいフィルタリングされたメッセージ値のアレーを求めるステップを更に有することを特徴とする請求項８２記載の処理装置。
【請求項８５】
上記基準データブロックは、データ値のアレー内に中心を有し、上記ウォータマークの少なくとも幾つかのデータブロックの１つのデータ値のそれぞれの組は、上記基準データブロックの中心が上記ウォータマークの少なくとも幾つかのデータブロックの１つの各位置に揃えられたときに、基準データブロックによって覆われるデータ値であることを特徴とする請求項８４記載の処理装置。
【請求項８６】
上記ウォータマーク検出方法は、（１）積和を求める前に、回転値に比例する量だけ基準データブロックを回転させ、及び／又は（２）積和を取る前にリサイズ値に比例する１つ以上の量だけ基準データブロックをリサイズするステップを更に有する請求項８５記載の処理装置。
【請求項８７】
上記ウォータマーク検出方法は、それぞれが少なくとも幾つかの基準ウォータマークのデータブロックの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかの基準ウォータマークのデータブロックの１つのデータ値との積和に等しいフィルタリングされた基準メッセージ値のアレーを求めるステップを更に有する請求項８４記載の処理装置。
【請求項８８】
上記基準データブロックは、データ値のアレー内に中心を有し、上記基準ウォータマークの少なくとも幾つかのデータブロックの１つのデータ値は、基準データブロックの中心が上記基準ウォータマークの少なくとも幾つかのデータブロックの１つ中心に揃えられたときに、上記基準データブロックで覆われるデータ値であることを特徴とする請求項８７記載の処理装置。
【請求項８９】
上記フィルタリングされた基準メッセージ値のアレーは、予め定められていることを特徴とする請求項８７記載の処理装置。
【請求項９０】
上記ウォータマーク検出方法は、上記フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップを更に有する請求項８９記載の処理装置。
【請求項９１】
上記ウォータマーク検出方法は、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップを更に有する請求項９０記載の処理装置。
【請求項９２】
上記ウォータマーク検出方法は、
それぞれが異なる基準ウォータマークに関連付けられているフィルタリングされた基準メッセージ値のアレーの組を判定するステップと、
フィルタリングされたメッセージ値のアレーと、基準メッセージ値のフィルタリングされたアレーのそれぞれとの積和を算出するステップと、
フィルタリングされたメッセージ値のアレーと、基準ウォータマークの１つに関連するフィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、該ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項９１記載の処理装置。
【請求項９３】
上記ウォータマーク検出方法は、
少なくとも１つのメッセージ値の位置に基づいて、横方向及び縦方向の少なくとも１つの方向に、フィルタリングされた基準メッセージ値のアレーに対してフィルタリングされたメッセージ値のアレーを移動させるステップと、
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、
上記移動及び算出のステップを１回以上繰り返すステップと、
上記積和の１つが閾値以上となった場合、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項９０記載の処理装置。
【請求項９４】
上記ウォータマーク検出方法は、
フィルタリングされた基準メッセージ値のアレーに対して、フィルタリングされたメッセージ値のアレーを９０°の整数倍回転させるステップと、
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、
上記回転及び算出のステップを１回以上繰り返すステップと、
上記積和の１つが閾値以上となった場合、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項９０記載の処理装置。
【請求項９５】
上記ウォータマーク検出方法は、
フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を算出するステップと、
フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値を算出するステップと、
ポイント毎に上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、変更されたアレーを算出するステップと、
上記変更されたアレーの逆フーリエ変換値を算出するステップと、
上記変更されたアレーの逆フーリエ変換値から最大値を判定するステップと、
上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を、上記フィルタリングされたメッセージ値のアレーの２次元フーリエ変換に対して、９０°の整数倍回転させるステップと、
ポイント毎に上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、次の変更されたアレーを算出するステップと、
上記次の変更されたアレーの逆フーリエ変換値を算出するステップと、
上記次の変更されたアレーの逆フーリエ変換値から次の最大値を判定するステップと、
上記回転、算出、判定のステップを一回以上繰り返すステップと、
上記最大値の１つが閾値以上になったとき、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項８７記載の処理装置。
【請求項９６】
処理装置にウォータマーク検出方法を実行させるプログラムを格納する記録媒体において、該ウォータマーク検出方法は、コンテンツデータのフレームに埋め込まれたウォータマークを表す複数のデータ値を含む２次元のデータのフレームにおいてウォータマークを検出するウォータマーク検出方法であって、
コンテンツデータのフレームに埋め込まれたウォータマークを表す複数のデータ値を含む２次元のデータのフレームにおいてウォータマークを検出するウォータマーク検出方法であって、
コンテンツデータに対応する少なくとも幾つかの周波数成分に対して強調された上記ウォータマークに対応している少なくとも幾つかの高調波周波数成分を有するデータのフレームからフィルタリングされたデータのフレームを算出するステップと、
フィルタリングされたデータのフレームの２次元フーリエ変換を行い、フィルタリングされたデータのフレームの２次元周波数スペクトルを算出するステップと、
２次元周波数スペクトルの周波数成分からウォータマークに関連付けられる一組の周波数成分を選択するステップと、
上記選択された周波数成分の組の１つ以上を用いて、基準ウォータマークに対してウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップとを有する記録媒体。
【請求項９７】
上記ウォータマークは、実質的に、上記基準ウォータマークに一致するが、回転値、リサイズ値及び移動値のうちの少なくとも１つを含み、
上記ウォータマーク及び基準ウォータマークは、それぞれ、メッセージを表す複数のデータブロック含み、
各データブロックは、上記メッセージによって定義される第１及び第２のパターンの少なくとも１つに基づいて構成されたデータ値のアレーを含んでいることを特徴とする請求項９６記載の記録媒体。
【請求項９８】
上記第１及び第２のパターンは、デカルト座標系におけるデータ値の４つの象限によって定義され、上記４つの象限において、第１及び第３の象限が等しいデータ値を有し、第２及び第４の象限が等しいデータ値を有し、
上記第１及び第２のパターンにおける上記第１及び第３の象限のデータ値と、上記第２及び第４の象限のデータ値とは、極性が反対の数を有し、
上記第１のパターンの第１及び第３の象限のデータ値と、上記第２のパターンの第１及び第３の象限のデータ値とは、極性が反対の数を有することを特徴とする請求項９７記載の記録媒体。
【請求項９９】
上記フィルタリングされたデータのフレームは、それぞれがデータのフレームのデータ値の１つに対応し、基準データブロックのデータ値とデータのフレームのデータ値のそれぞれの組との積和に等しい複数のフィルタリングされたデータ値を含んでいることを特徴とする請求項９７記載の記録媒体。
【請求項１００】
上記基準データブロックのデータ値は、第１及び第２のパターンの少なくとも１つに基づいて構成され、データのフレームのデータ値のそれぞれの組が、基準データブロックに少なくとも部分的に登録されているウォータマークのデータブロックの所定の１つを含んでいると、上記フィルタリングされた値の所定の１つは、ピークを示すことを特徴とする請求項９９記載の記録媒体。
【請求項１０１】
上記所定のフィルタリングされた値は、ウォータマークのデータブロックの所定の１つと、基準データブロックとの両方が第１又は第２のパターンに基づいて構成されたデータ値を含んでいる場合、正の極性でピークに達し、
上記所定のフィルタリングされた値は、ウォータマークのデータブロックの所定の１つが上記第１及び第２のパターンの一方に基づいて構成されたデータ値を含み、基準データブロックが上記第１及び第２のパターンの他方に基づいて構成されたデータ値を含んでいる場合、負の極性でピークに達することを特徴とする請求項１００記載の記録媒体。
【請求項１０２】
上記基準データブロックは、データ値のアレー内に中心を有し、上記データのフレームのデータ値のそれぞれの組は、基準データブロックの中心がデータのフレームのデータ値の対応する１つに揃えられたときに、上記基準データブロックによって覆われるデータ値であることを特徴とする請求項１０１記載の記録媒体。
【請求項１０３】
上記フィルタリングされたデータのフレームを算出するステップは、フィルタリングされた各値について、基準データブロックの値と、データのフレームの値のそれぞれの組との積和の絶対値を算出するステップを有することを特徴とする請求項９９記載の記録媒体。
【請求項１０４】
上記フィルタリングされたデータのフレームを２次元フーリエ変換するステップは、２次元高速フーリエ変換（Fast Fourier transform：ＦＦＴ）を実行し、フィルタリングされたデータのフレームの２次元周波数スペクトルを生成するステップを有することを特徴とする請求項９６記載の記録媒体。
【請求項１０５】
上記ウォータマークに関連付けられる周波数成分の組を選択するステップは、上記２次元周波数スペクトルの周波数成分からウォータマークに対応している少なくとも幾つかの高調波周波数成分を選択するステップを有することを特徴とする請求項９６記載の記録媒体。
【請求項１０６】
上記少なくとも幾つかの高調波周波数成分は、ウォータマークに対応する第２の高調波成分を含んでいることを特徴とする請求項１０５記載の記録媒体。
【請求項１０７】
上記ウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップは、（１）基準ウォータマークによって定義されるコンポーネントの期待される幾何学的位置に対する、上記ウォータマークに対応する少なくとも１つの選択された高調波周波数成分における上記２次元フーリエ変換内の幾何学的位置の１つ以上の偏り又は（２）基準ウォータマークによって定義されるコンポーネントの期待される位相に対する、ウォータマークに対応する少なくとも１つの選択された高調波周波数成分における位相の１つ以上の偏りを判定するステップを有することを特徴とする請求項１０５記載の記録媒体。
【請求項１０８】
上記２次元周波数スペクトルの周波数成分を含む領域は、（１）ｘ軸とｙ軸に基づき、デカルト座標として図式的に表現され、（２）ｘ軸に平行な幅（Ｗ）を有し、（３）ｙ軸に平行な高さ（Ｈ）を有し、（４）実質的にｘ軸とｙ軸の交点である原点を有することを特徴とする請求項１０７記載の記録媒体。
【請求項１０９】
上記ウォータマークに対応する回転値を算出するステップは、基準点と少なくともウォータマークに対応する選択された高調波周波数成分の１つによって定義される第１の軸と、基準ウォータマークによって定義される基準軸との間の角度を判定するステップを有することを特徴とする請求項１０８記載の記録媒体。
【請求項１１０】
上記基準軸は、ｘ軸及びｙ軸の何れか一方に沿う軸であることを特徴とする請求項１０９記載の記録媒体。
【請求項１１１】
上記ウォータマークに対応する回転値は、Ｆｙ１及びＦｘｌをそれぞれウォータマークに対応する選択された高調波周波数成分の１つのｙ軸及びｘ軸座標として、実質的に、arctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例する数値を算出することによって求められることを特徴とする請求項１１０記載の記録媒体。
【請求項１１２】
上記ウォータマークに対応する回転値は、実質的に（１８０／Π）＊arctan（（Ｆｙｌ＊Ｗ）／（Ｆｘ１＊Ｈ））°に等しいことを特徴とする請求項１１１記載の記録媒体。
【請求項１１３】
上記ウォータマークに対応する回転値を算出するステップは、（１）基準点と、ウォータマークに対応する選択された高調波周波数成分のそれぞれの１つとによって定義される各軸と、（２）基準ウォータマークによって定義される１つ以上の基準軸との間の２つ以上の角度を求めるステップと、
上記２つ以上の角度から回転値を算出するステップとを有することを特徴とする請求項１０９記載の記録媒体。
【請求項１１４】
上記ウォータマークに対応するリサイズ値を算出するステップは、ｘ軸リサイズ値とｙ軸リサイズ値とを算出するステップを有することを特徴とする請求項１０８記載の記録媒体。
【請求項１１５】
上記ｘ軸リサイズ値を算出するステップは、上記ウォータマークに対応する１つの選択された高調波周波数成分からｘ軸期間Ｐｘを算出するステップと、
上記ｘ軸期間Ｐｘと基準ウォータマークのｘ軸基準期間Ｐｒｘとの比率を算出して、ｘ軸リサイズ値を求めるステップとを有することを特徴とする請求項１１４記載の記録媒体。
【請求項１１６】
上記ｘ軸期間Ｐｘは、Ｆｘｌ及びＦｙｌをそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２に等しいことを特徴とする請求項１１５記載の記録媒体。
【請求項１１７】
上記基準ウォータマークは、各列の値の数が基準ウォータマークのｘ軸基準期間Ｐｒｘに等しい列及び行にそれぞれ構成された複数の値を含む複数のデータブロックを含んでいることを特徴とする請求項１１６記載の記録媒体。
【請求項１１８】
上記ウォータマークに対応する選択された高調波周波数成分の１つは、実質的にｘ軸に沿って存在するか、回転値を差し引けば、実質的にｘ軸に沿って存在する筈であることを特徴とする請求項１１７記載の記録媒体。
【請求項１１９】
上記ｙ軸リサイズ値を算出するステップは、上記ウォータマークに対応する１つの選択された高調波周波数成分からｙ軸期間Ｐｙを算出するステップと、
上記ｙ軸期間Ｐｙと基準ウォータマークのｙ軸基準期間Ｐｒｙとの比率を算出して、ｙ軸リサイズ値を求めるステップとを有することを特徴とする請求項１１４記載の記録媒体。
【請求項１２０】
上記ｙ軸期間Ｐｙは、Ｆｘ２及びＦｙ２をそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２に等しいことを特徴とする請求項１１９記載の記録媒体。
【請求項１２１】
上記基準ウォータマークは、各列の値の数が基準ウォータマークのｙ軸基準期間Ｐｒｙに等しい列及び行にそれぞれ構成された複数の値を含む複数のデータブロックを含んでいることを特徴とする請求項１２０記載の記録媒体。
【請求項１２２】
上記ウォータマークに対応する選択された高調波周波数成分の１つは、実質的にｙ軸に沿って存在するか、回転値を差し引けば、実質的にｙ軸に沿って存在する筈であることを特徴とする請求項１２１記載の記録媒体。
【請求項１２３】
上記移動値は、上記ウォータマークに対応する１つの選択された高調波周波数成分の位相θ１に比例する第１の方向の第１の距離と、上記ウォータマークに対応する他の選択された高調波周波数成分の位相θ２に比例する第２の方向の第２の距離とに基づいていることを特徴とする請求項１０８記載の記録媒体。
【請求項１２４】
上記第１の距離は、Ｆｘｌ及びＦｙｌをそれぞれ選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ１＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２）に等しく、
上記第２の距離は、Ｆｘ２及びＦｙ２をそれぞれ選択された他の高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ２＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２）に等しいことを特徴とする請求項１２３記載の記録媒体。
【請求項１２５】
上記第１の方向は、実質的にarctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例し、上記第２の方向は、実質的にarctan（（Ｆｙ２＊Ｗ）／（Ｆｘ２＊Ｈ））に比例することを特徴とする請求項１２４記載の記録媒体。
【請求項１２６】
上記第１及び第２の方向は、実質的に直交することを特徴とする請求項１２３記載の記録媒体。
【請求項１２７】
上記ウォータマーク検出方法は、上記ウォータマークの回転値、リサイズ値、移動値のうちの少なくとも１つに基づいて、データのフレーム内において、少なくとも幾つかのウォータマークのデータブロックに対応する複数の位置を判定するステップを更に有する請求項９７記載の記録媒体。
【請求項１２８】
上記複数の位置は、上記ウォータマークのデータブロックのそれぞれの中心に対応していることを特徴とする請求項１２７記載の記録媒体。
【請求項１２９】
上記ウォータマーク検出方法は、それぞれが少なくとも幾つかのウォータマークの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかのウォータマークのデータブロックの１つのデータ値のそれぞれの組との積和に等しいフィルタリングされたメッセージ値のアレーを求めるステップを更に有することを特徴とする請求項１２７記載の記録媒体。
【請求項１３０】
上記基準データブロックは、データ値のアレー内に中心を有し、上記ウォータマークの少なくとも幾つかのデータブロックの１つのデータ値のそれぞれの組は、上記基準データブロックの中心が上記ウォータマークの少なくとも幾つかのデータブロックの１つの各位置に揃えられたときに、基準データブロックによって覆われるデータ値であることを特徴とする請求項１２９記載の記録媒体。
【請求項１３１】
上記ウォータマーク検出方法は、（１）積和を求める前に、回転値に比例する量だけ基準データブロックを回転させ、及び／又は（２）積和を取る前にリサイズ値に比例する１つ以上の量だけ基準データブロックをリサイズするステップを更に有する請求項１３０記載の記録媒体。
【請求項１３２】
上記ウォータマーク検出方法は、それぞれが少なくとも幾つかの基準ウォータマークのデータブロックの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかの基準ウォータマークのデータブロックの１つのデータ値との積和に等しいフィルタリングされた基準メッセージ値のアレーを求めるステップを更に有する請求項１２９記載の記録媒体。
【請求項１３３】
上記基準データブロックは、データ値のアレー内に中心を有し、上記基準ウォータマークの少なくとも幾つかのデータブロックの１つのデータ値は、基準データブロックの中心が上記基準ウォータマークの少なくとも幾つかのデータブロックの１つ中心に揃えられたときに、上記基準データブロックで覆われるデータ値であることを特徴とする請求項１３２記載の記録媒体。
【請求項１３４】
上記フィルタリングされた基準メッセージ値のアレーは、予め定められていることを特徴とする請求項１３２記載の記録媒体。
【請求項１３５】
上記ウォータマーク検出方法は、上記フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップを更に有する請求項１３４記載の記録媒体。
【請求項１３６】
上記ウォータマーク検出方法は、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップを更に有する請求項１３５記載の記録媒体。
【請求項１３７】
上記ウォータマーク検出方法は、
それぞれが異なる基準ウォータマークに関連付けられているフィルタリングされた基準メッセージ値のアレーの組を判定するステップと、
フィルタリングされたメッセージ値のアレーと、基準メッセージ値のフィルタリングされたアレーのそれぞれとの積和を算出するステップと、
フィルタリングされたメッセージ値のアレーと、基準ウォータマークの１つに関連するフィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、該ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項１３６記載の記録媒体。
【請求項１３８】
上記ウォータマーク検出方法は、
少なくとも１つのメッセージ値の位置に基づいて、横方向及び縦方向の少なくとも１つの方向に、フィルタリングされた基準メッセージ値のアレーに対してフィルタリングされたメッセージ値のアレーを移動させるステップと、
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、
上記移動及び算出のステップを１回以上繰り返すステップと、
上記積和の１つが閾値以上となった場合、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項１３５記載の記録媒体。
【請求項１３９】
上記ウォータマーク検出方法は、
フィルタリングされた基準メッセージ値のアレーに対して、フィルタリングされたメッセージ値のアレーを９０°の整数倍回転させるステップと、
フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、
上記回転及び算出のステップを１回以上繰り返すステップと、
上記積和の１つが閾値以上となった場合、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項１３５記載の記録媒体。
【請求項１４０】
フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を算出するステップと、
フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値を算出するステップと、
ポイント毎に上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、変更されたアレーを算出するステップと、
上記変更されたアレーの逆フーリエ変換値を算出するステップと、
上記変更されたアレーの逆フーリエ変換値から最大値を判定するステップと、
上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を、上記フィルタリングされたメッセージ値のアレーの２次元フーリエ変換に対して、９０°の整数倍回転させるステップと、
ポイント毎に上記フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、次の変更されたアレーを算出するステップと、
上記次の変更されたアレーの逆フーリエ変換値を算出するステップと、
上記次の変更されたアレーの逆フーリエ変換値から次の最大値を判定するステップと、
上記回転、算出、判定のステップを一回以上繰り返すステップと、
上記最大値の１つが閾値以上になったとき、上記ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する請求項１３２記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツデータのフレーム内に埋め込まれた１つ以上のウォータマークの検出に関し、詳しくは、ウォータマークの大きさの変更（resizing）、回転（rotation）及び移動（translation）に対して耐性を有するウォータマークの検出方法及び検出装置に関する。
【背景技術】
【０００２】
例えば音楽、ビデオ、ソフトウェア及びこれらの組合せ等のコンテンツデータの配給元にとって、コンテンツデータに対する違法コピー（pirating）を防止又は阻止することが望ましい。違法コピーを防ぐための手法として、ウォータマークを使用することが一般的になっている。ウォータマークは、コンテンツデータに埋め込まれ、例えばデジタルビデオディスク（digital video disc：ＤＶＤ）、コンパクトディスク（compact disc：ＣＤ）、読出専用メモリ（read only memory：ＲＯＭ）、ランダムアクセスメモリ（random access memory：ＲＡＭ）、磁気記録媒体等の記録媒体にコンテンツデータと共に書き込まれた隠れメッセージ（hidden message）を含む１組のデータである。「埋め込まれたウォータマーク（embedded watermark：以下、埋込ウォータマークという。）」の隠れメッセージは、代表的には、例えば「コピー禁止（do not copy）」又は「２回以上のコピー禁止（copy only once）」等のコピー制御メッセージである。
【０００３】
コンテンツデータと埋込ウォータマークとからなるデータの量が基準ウォータマーク（reference watermark）に対して相関性を有している場合、埋込ウォータマークが、基準ウォータマークと実質的に類似しているか又は同一であるかについて判定することができる。ここで、高い相関性が確認された場合、埋込ウォータマークのメッセージは、基準ウォータマークのメッセージに一致していると見なされる。例えばビデオデータのデータ量は、ビデオデータのフレームの画素データにウォータマーク（埋込ウォータマーク）が埋め込またデータフレームのデータ量とすることができる。データフレームが何らかの形で変形されていない場合、埋込ウォータマークと実質的に等しい基準ウォータマークと、ビデオデータのフレームとの相関を調べると、比較的高い出力値が得られる。これは、埋込ウォータマークのデータと、基準ウォータマークのデータとの一対一の対応（又は整合（registration））により算出される相関値が高くなるためである。逆に、ビデオデータのフレームに含まれる埋込ウォータマークが変更され、埋込ウォータマークと基準ウォータマークとの間の一対一の対応関係が低下している場合、算出される相関値は低くなる。
【０００４】
相関値の演算は、多くの場合、データフレームに含まれるデータと、基準ウォータマークのデータとの積和（sum of products）を求める計算を含む。データフレーム及び基準ウォータマークが正の値（positive magnitude value）及び負の値（negative magnitude value）の両方を有する場合、埋込ウォータマークのデータが基準ウォータマークのデータと一対一に揃っていれば、この積和は比較的大きくなる。逆に、埋込ウォータマークのデータが基準ウォータマークのデータに揃っていなければ、この積和は比較的小さくなる。
【０００５】
例えば標準的な相関検出器又は整合フィルタ（matched filter）等のデータ検出器を用いることにより、ビデオデータやオーディオデータ等のコンテンツデータのフレーム内に埋込ウォータマークが存在することを検出することができる。埋込ウォータマークの元の位置、すなわち基準位置は、事実上、検出器に関連するハードウェア及び／又はソフトウェアの設計によって決まる。これらの種類の相関検出器は、埋込ウォータマーク及び基準ウォータマークの特定の整合（registration）（すなわち、整列（alignment））に依存する。
【０００６】
埋込ウォータマークを含むコンテンツデータを悪意にコピーしようとする著作権侵害者（例えば「コピー禁止」の隠れメッセージに違反してコピーを行う者）は、埋込ウォータマークと基準ウォータマーク間の整合（すなわち整列）を崩すことによって、埋込ウォータマークを無視することができてしまう。このような処理は、例えば、埋込ウォータマークを含むコンテンツデータのフレームを若干回転させ、大きさを変更し、及び／又は期待される位置から埋込ウォータマークと基準ウォータマークとの間の一対一の対応関係（完全な整合関係）を崩す位置にデータを移動（translation）させることによって実現されてしまう。このような変更を行うために、編集及びコピー装置が利用されることもある。
【０００７】
また、埋込ウォータマークの意図されない歪みは、コンピュータ装置又はユーザ機器におけるコンテンツデータ（埋込ウォータマークを含む）に対する通常の処理時にも生じることがある。例えば、ＤＶＤのコンテンツデータ（及び埋込ウォータマーク）は、コンテンツデータを欧州ＰＡＬ方式から米国ＮＴＳＣ方式に変換し、又はこの逆の変換を行う等のフォーマット処理の実行中に、非意図的に歪むこともある。また、例えば、ワイドスクリーン映画フォーマットからテレビジョンフォーマットへの変換等、この他の種類のフォーマット処理において、コンテンツデータ及び埋込ウォータマークが歪んでしまうこともある。実際、このような処理では、データ及びこれに伴ってコンテンツデータが非意図的に大きさが変更され、回転され、及び移動されることがあり、これにより埋込ウォータマークの検出が困難となってしまうことがある。
【０００８】
大きさの変更及び移動に対してロバスト性を有する様々な種類のウォータマーク方式が知られている。この種のウォータマーク方式では、多くの場合、大きさの変更及び移動に対して数学的に不変のウォータマークをコンテンツデータに埋め込む。このような方式は、米国特許第６，２８２，３００号にも開示されており、この文献は参照により本願に援用される。この種の方式において用いられる検出器は、埋込ウォータマークの位置及び／又は大きさの変化を調整する必要がない。このような方式は、フーリエ−メリン変換及び対数極座標変換に基づいている。このような方式では、複雑な数学的計算が必要であり、特別に構成された埋込ウォータマークパターン及び検出器を用いなくてはならないという短所がある。したがって、この方式は、既存のウォータマークシステムでは用いることができない。
【０００９】
また、周知の他のウォータマーク方式では、全ての埋込ウォータマークブロックが等しい繰返しウォータマークブロック（repetitive watermark block）を利用する。この種の方式におけるウォータマークブロックは、通常大きく、全体的なコピー制御メッセージを伝えるために設計されている。同じブロックを繰り返す手法では、ウォータマークが付された画像の異なる位置の相関を調べ、任意の位置間の距離を検出することにより、埋込ウォータマークに対するあらゆる大きさの変更を推定することができる。次に、推定された大きさの変更の逆の大きさの変更を行い、基準ブロックと、調整された画像との相関を調べ、埋込ウォータマークとその位置を同時に検出する。この種の方式の一例として、フィリップス社（Philips）のＶＩＶＡ／ＪＡＷＳ＋ウォータマーク方式がある。この方式では、埋込ウォータマークが空間的に周期性を有する必要があり、任意のウォータマーク方式には必ずしも当て嵌まらないという短所がある。
【００１０】
更に、コンテンツデータに埋込ウォータマークと共にテンプレート又は補助パターン（helper pattern）を埋め込むウォータマーク方式もある。この方式では、検出器は、テンプレートの位置、大きさ及び形状を認識するように設計される。検出器は、まず、テンプレートを検出し、次に、テンプレートの位置を検出し、これに基づいて埋込ウォータマークの実際の位置及び大きさを推定する。更に、この方式では、コンテンツに加えられた幾何学的変形の逆の変形を行い、これにより、相関検出器が埋込ウォータマークを検出し、解析できるようにする。しかしながら、この方式では、テンプレートが脆弱であり、攻撃が容易であるという難点がある。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、基準ウォータマークに対する、例えば回転、大きさの変更、移動及び／又は変形等の任意の歪みに対するロバスト性を有する、フレーム内に埋め込まれた埋込ウォータマークを検出するための新たな方法及び装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明は、１つ以上の側面として、２次元のデータのフレームにおいてウォータマークを検出するウォータマーク検出方法を提供する。データのフレームは、コンテンツデータのフレームに埋め込まれたウォータマークを表す複数のデータ値を含む。ウォータマーク検出方法は、好ましくは、コンテンツデータに対応する少なくとも幾つかの周波数成分に対して強調されたウォータマークに対応している少なくとも幾つかの高調波周波数成分を有するデータのフレームからフィルタリングされたデータのフレームを算出するステップと、フィルタリングされたデータのフレームの２次元フーリエ変換を行い、フィルタリングされたデータのフレームの２次元周波数スペクトルを算出するステップと、２次元周波数スペクトルの周波数成分からウォータマークに関連付けられる一組の周波数成分を選択するステップと、選択された周波数成分の組の１つ以上を用いて、基準ウォータマークに対してウォータマークに関する回転値、リサイズ値、移動値のうちの少なくとも１つを算出するステップとを有する。
【００１３】
データのフレームは、画素データ及びオーディオデータ等の如何なる種類のデータであってもよい。
【００１４】
ウォータマークに関連付けられる周波数成分の組を選択するステップは、好ましくは、２次元周波数スペクトルの周波数成分からウォータマークに対応している少なくとも幾つかの高調波周波数成分を選択するステップを有する。高調波周波数成分は、好ましくは、第２の高調波成分を含む。
【００１５】
ウォータマークに対応する回転値を算出するステップは、好ましくは、基準点と少なくともウォータマークに対応する選択された高調波周波数成分の１つによって定義される第１の軸と、基準ウォータマークによって定義される基準軸との間の角度を判定するステップを有する。基準軸は、ｘ軸及びｙ軸の何れか一方に沿う軸であることが好ましい。ウォータマークに対応する回転値は、Ｆｙ１及びＦｘｌをそれぞれウォータマークに対応する選択された高調波周波数成分の１つのｙ軸及びｘ軸座標として、実質的に、arctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例する数値を算出することによって求められる。
【００１６】
ウォータマークに対応するリサイズ値を算出するステップは、好ましくは、ｘ軸リサイズ値とｙ軸リサイズ値とを算出するステップを有する。ｘ軸リサイズ値を算出するステップは、好ましくは、ウォータマークに対応する１つの選択された高調波周波数成分からｘ軸期間Ｐｘを算出するステップと、ｘ軸期間Ｐｘと基準ウォータマークのｘ軸基準期間Ｐｒｘとの比率を算出して、ｘ軸リサイズ値を求めるステップとを有する。ｘ軸期間Ｐｘは、Ｆｘｌ及びＦｙｌをそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２に等しい。
【００１７】
ｙ軸リサイズ値を算出するステップは、好ましくは、ウォータマークに対応する１つの選択された高調波周波数成分からｙ軸期間Ｐｙを算出するステップと、ｙ軸期間Ｐｙと基準ウォータマークのｙ軸基準期間Ｐｒｙとの比率を算出して、ｙ軸リサイズ値を求めるステップとを有する。ｙ軸期間Ｐｙは、Ｆｘ２及びＦｙ２をそれぞれウォータマークに対応する選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（Ｈ＊Ｗ）／（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２に等しい。
【００１８】
移動値は、ウォータマークに対応する１つの選択された高調波周波数成分の位相θ１に比例する第１の方向の第１の距離と、ウォータマークに対応する他の選択された高調波周波数成分の位相θ２に比例する第２の方向の第２の距離とに基づいている第１の距離は、Ｆｘｌ及びＦｙｌをそれぞれ選択された１つの高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ１＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２）に等しい。第２の距離は、Ｆｘ２及びＦｙ２をそれぞれ選択された他の高調波周波数成分のｘ軸座標とｙ軸座標として、実質的に（θ２＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２）に等しい。
【００１９】
第１の方向は、実質的にarctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））に比例し、第２の方向は、実質的にarctan（（Ｆｙ２＊Ｗ）／（Ｆｘ２＊Ｈ））に比例する。第１及び第２の方向は、実質的に直交することが好ましい。
【００２０】
ウォータマーク検出方法は、好ましくは、ウォータマークの回転値、リサイズ値、移動値のうちの少なくとも１つに基づいて、データのフレーム内において、少なくとも幾つかのウォータマークのデータブロックに対応する複数の位置を判定するステップを更に有する。また、ウォータマーク検出方法は、好ましくは、それぞれが少なくとも幾つかのウォータマークの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかのウォータマークのデータブロックの１つのデータ値のそれぞれの組との積和に等しいフィルタリングされたメッセージ値のアレーを求めるステップを更に有する。また、ウォータマーク検出方法は、好ましくは、それぞれが少なくとも幾つかの基準ウォータマークのデータブロックの１つに対応し、基準データブロックのデータ値と、少なくとも幾つかの基準ウォータマークのデータブロックの１つのデータ値との積和に等しいフィルタリングされた基準メッセージ値のアレーを求めるステップを更に有する。更に、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出してもよい。フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーの積和が閾値以上であるとき、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定してもよい。
【００２１】
また、ウォータマーク検出方法は、少なくとも１つのメッセージ値の位置に基づいて、横方向及び縦方向の少なくとも１つの方向に、フィルタリングされた基準メッセージ値のアレーに対してフィルタリングされたメッセージ値のアレーを移動させるステップと、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、移動及び算出のステップを１回以上繰り返すステップと、積和の１つが閾値以上となった場合、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有していてもよい。
【００２２】
好ましくは、ウォータマーク検出方法は、フィルタリングされた基準メッセージ値のアレーに対して、フィルタリングされたメッセージ値のアレーを９０°の整数倍回転させるステップと、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出するステップと、回転及び算出のステップを１回以上繰り返すステップと、積和の１つが閾値以上となった場合、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する。
【００２３】
本発明の更なる側面として、本発明に係るウォータマーク検出方法は、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を算出するステップと、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値を算出するステップと、ポイント毎にフィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、変更されたアレーを算出するステップと、変更されたアレーの逆フーリエ変換値を算出するステップと、変更されたアレーの逆フーリエ変換値から最大値を判定するステップと、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換に対して、９０°の整数倍回転させるステップと、ポイント毎にフィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積和を求めることによって、次の変更されたアレーを算出するステップと、次の変更されたアレーの逆フーリエ変換値を算出するステップと、次の変更されたアレーの逆フーリエ変換値から次の最大値を判定するステップと、回転、算出、判定のステップを一回以上繰り返すステップと、最大値の１つが閾値以上になったとき、ウォータマークが基準ウォータマークのメッセージに対応するメッセージを含んでいると判定するステップとを更に有する。
【００２４】
本発明の１つ以上の更なる側面として、上述したウォータマーク検出方法は、例えば、１つ以上の特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）及び／又はプログラミング可能なデジタルシグナルプロセッサ、マイクロプロセッサ、１つ以上のソフトウェアプログラムの制御の下で動作するコンピュータ等の１つ以上の処理装置を用いることによって、市販のデジタル及び／又はアナログコンポーネントを用いてハードウェアで実現してもよい。これに代えて、本発明の１つ以上の側面を実現するために、上述した機能を例えばコンピュータ等の適切な処理装置が実行可能なソフトウェアプログラムとして実現してもよい。このようなソフトウェアプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、メモリチップをはじめとする適切な記録媒体に保存してもよい。
【００２５】
本発明のこれらの利点、特徴及び側面は、添付の図面を参照して行う以下の説明により、当業者にとって明らかとなる。
【発明を実施するための最良の形態】
【００２６】
添付の図面では、同様の要素には同様な符号を付している。図１は、本発明の少なくとも１つの側面に基づく好ましいウォータマーク１００の包括的なブロックに基づく構造（block-based structure）を示している。ウォータマーク１００のデータは、コンテンツデータに埋め込むことができ、この場合のウォータマーク１００をここでは「埋込ウォータマーク」１００と呼ぶ。これに代えて、ウォータマーク１００は、データのフレームに埋め込まれたウォータマークについて、望ましい構成（例えば、回転、リサイズ、移動されていない状態）を表していてもく、この場合のウォータマーク１００をここでは、「基準ウォータマーク」１００と呼ぶ。
【００２７】
ウォータマーク１００は、あるグラフィック特性（例えば、パターン）を有しており、したがって、ビデオデータ（例えば、画素データ）の１以上のフレームにウォータマーク１００を埋め込むことによって及び／又は埋込ウォータマークを検出するための基準ウォータマークとしてウォータマーク１００を用いること等によって、ウォータマーク１００をグラフィカルなコンテキストで用いることができる。但し、ウォータマーク１００は、オーディオデータのコンテキスト等、他の如何なる適切なコンテキストにおいて用いてもよい。
【００２８】
好ましくは、ウォータマーク１００は、複数のデータブロック１０２を含んでおり、各データブロック１０２は、データ値（画素値、オーディオ値等）のアレーを有する。また、本発明の範囲から逸脱することなく、非正方形アレーを用いてもよいが、各データブロック１０２のアレーは、好ましくはＮ×Ｎアレーである。各データブロック１０２のデータ値は、複数のパターンのうちの１つのパターンに基づいて構成されている。図１に示すように、ウォータマーク１００のデータブロック１０２は、好ましくは、第１のパターン又は第２のパターンに基づいて構成されたデータ値を含んでいる。例えば、データブロック１０２Ａは、第１のパターンを有し、データブロック１０２Ｂは、第２のパターンを有する。
【００２９】
図２Ａは、例えば、データブロック１０２Ａ等の第１のパターンのデータブロック１０２を詳細に示している。このパターンをデカルト座標系と見なした場合、第１のパターンは、データ値の４つの象限で定義することができ、第１象限と第３象限は同じデータ値を有し、第２象限と第４象限は同じデータ値を有する。例えば、第１及び第３象限のデータ値は、負の値（例えば、−１）を示し、図１では黒の領域で表され、第２及び第４象限のデータ値は、正の値（例えば、＋１）を示し、図１では白の領域で表されている。また、図２Ｂに示す第２のパターン（例えば、データブロック１０２Ｂに適用されるパターン）もデータ値の４つの象限によって定義され、ここでも第１の象限と第３の象限とが同じデータ値を有し、第２の象限と第４の象限とが同じデータ値を有する。なお、第２のパターンでは、第１のパターンと異なり、第１の及び第３の象限のデータ値が正の値（図１における白の領域）を示し、第２及び第４の象限のデータ値が負の値（図１における黒の領域）を示す。
【００３０】
データ値の２つのパターンの何れか、例えば第１のパターン（例えば、デーブロック１０２Ａ）は、好ましくは一方の論理状態、例えば１を表し、例えば第２のパターン（例えば、データブロック１０２Ｂ）は、他方の論理状態、例えば０を表す。このように、ウォータマーク１００のデータブロック１０２のアレーは、データフレーム内の隠れメッセージを定義する論理状態（例えば、１及び０）のパターンを表すものであってもよい。
【００３１】
なお、第１のパターンのデータ値と第２のパターンのデータ値は、極性が反対の２つの値（例えば、＋１と−１）を有し、これにより、第１のパターンを有するデータブロック１０２（例えば、データブロック１０２Ａ）のデータ値と、第２のパターンを有するデータブロック１０２（例えば、データブロック１０２Ｂ）のデータ値との積の和が正又は負のピーク数（peak number）となる。なお、この実施例では、積和は、負のピーク数となる（データ値の積は全て−１であるため）。上述の実施例において、データブロック１０２Ａ、１０２Ｂの何れかを他方のデータブロックに対して９０°回転させれば、第１のパターンを有するデータブロック１０２（データブロック１０２Ａ）と第２のパターンを有するデータブロック１０２（データブロック１０２Ｂ）の積和は、正のピーク数となる。これは、データブロック１０２Ａとデータブロック１０２Ｂの何れか一方を９０°回転させると、データ値の積が全て＋１となるためである。これは、データブロック１０２Ａ、１０２Ｂの一方を９０°回転させると、データ値の積が全て＋１になるためである。
【００３２】
また、ウォータマーク１００のデータブロック１０２Ａ、１０２Ｂは、他方のブロックに対する特に、０°、９０°、１８０°に近い一方のブロックの小さな回転に対してロバストである。当業者には明らかであるが、以下の説明からウォータマーク１００のこれらの性質により、埋込ウォータマークが、例えば回転、大きさの変更、移動等によって「幾何学的に」変更された場合でも、データフレーム内の埋込ウォータマークの検出の精度を向上させることができる。
【００３３】
なお、ウォータマーク１００の基本構造は、例示的なものであり、本発明の範囲から逸脱することなく、ウォータマーク１００の基本構造を様々に変更及び修正することができる。ロバスト性を高めるために、ウォータマーク１００は、所定の性質を示す例えばデータブロック１０２等のデータブロックによって構成することが好ましい。例えば、各データブロック１０２は、データブロック１０２の中心からその境界（又は周縁）への如何なる径方向にそっても、実質的に同じ（例えば、一定の）値を有する。例えば、図２Ａ及び図２Ｂに示すデータブロック１０２Ａ及びデータブロック１０２Ｂは、このような径方向に沿って、＋１及び−１の何れかの値を有する。この説明から明らかなように、このような構成により、大きさの変更（例えば、大きさの増加、大きさの減少、アスペクト比の変更等）にかかわらず、埋込ウォータマークの検出における高いロバスト性が実現される。
【００３４】
図３は、図１に示すウォータマーク１００をビデオデータ１５０等のコンテンツデータのフレームに埋め込む処理を概念的に示す図である。包括的に言えば、基本埋込器（basic embedder）１６０を用いてウォータマーク１００のデータをビデオデータ１５０のフレームの画素データに画素毎に統合し（例えば、加算し）、コンテンツデータと埋込ウォータマーク１００からなる複数のデータ値を含むデータ１７０のフレームを生成することができる。
【００３５】
ここに示す実施例では、ウォータマーク１００は、ビデオデータ１５０のフレーム全体を覆うために十分な数のデータブロック１０２を含んでいるが、本発明の範囲から逸脱することなく、如何なるサイズのウォータマーク１００を用いてもよい。例えば、ウォータマーク１００は、ビデオデータ１５０のフレームより小さくてもよく及び／又はウォータマーク１００は、ビデオデータ１５０の複数のフレーム内に分散されていてもよい。例えば、ビデオデータ１５０のフレームが動画における複数のフレーム内の１つのフレームを表している場合、ウォータマーク１００は、ビデオデータにおける１つ以上のフレームに分散していてもよい。何れの場合も、埋込ウォータマーク１００は、データ１７０の２次元フレームにおいて、人間の目には知覚できないことが好ましい。
【００３６】
図４は、フレーム１７０等のコンテンツデータのフレームに含まれた埋込ウォータマーク１００Ａを基準ウォータマーク１００とどのように相関させるかを図式的に説明する図である。なお、説明を明瞭にするために、ここでは、埋込ウォータマーク１００Ａに付随するビデオ画像のコンテンツデータは示していない。ここでは、埋込ウォータマーク１００Ａは、回転されておらず、大きさを変更されておらず、期待される位置から移動されてもいないものとする。したがって、埋込ウォータマーク１００Ａと基準ウォータマーク１００とは、正確に整列（整合）している。したがって、（例えば、白色の点のフレーム１７２として示すように）埋込ウォータマーク１００Ａのデータ値による、データ１７０のフレームのデータ値（すなわち、画素値）と、及び基準ウォータマーク１００の対応するデータ値との積への貢献が最大になる。このような整列が存在している場合、フレーム１７２の積和の値は、実質的に大きくなる。ここで、図５に示すように、歪んだ埋込ウォータマーク１００Ｂと基準ウォータマーク１００との間の位置ずれが存在する場合、埋込ウォータマーク１００Ｂが僅かに回転され、大きさを変更され及び／又は位置を移動されているだけであっても、積のアレー１７４には、＋１と−１が略々同数含まれることになる。したがって、積のアレー１７４の和の値は、比較的小さくなる。
【００３７】
一方、本発明の原理に基づいてウォータマーク１００を埋め込み、埋込ウォータマーク１００を検出すれば、回転、大きさの変更及び／又は移動があった場合でも埋込ウォータマーク１００を有効に検出することができる。
【００３８】
本発明の少なくとも１つの側面においては、埋め込まれたウォータマークは、データの２次元フレームにおいて検出される。コンテンツデータは、静止画像、動画像、オーディオデータ等如何なる種類の情報であってもよい。データのフレームは、例えば、コンピュータにより読取可能な媒体からデータを読み出す、通信チャンネルを介してデータを受信する等、如何なる手法で入手してもよい。データが未だ２次元アレーに組織化されない場合、如何なる周知の技術を用いてデータから２次元アレーを生成してもよい。なお、本発明の範囲から逸脱することなく、ウォータマーク全体を単一のデータフレームに埋め込んでもよく、又はウォータマーク部分を複数のデータフレームに分散させてもよい。
【００３９】
図６は、本発明の１つ以上の側面に基づいて実行される好適なアクション及び／又は機能を示す図である。これらの機能には、フィルタリング２００、絶対値算出２０２、フーリエ変換２０４、ピーク検出／選択２０６、歪み（例えば、回転大きさの変更、移動）検出２０８、ウォータマーク検出２１０が含まれる。これらの機能は、例えば、適当な回路を備える装置として実現してもよく、及び／又は１つ以上のソフトウェアプログラムの制御の下で動作する適切な処理装置として実現してもよい。実際、本発明のある側面は、図６に示すような動作及び／又はここに説明する他の動作を適切なプロセッサに実行させるソフトウェアプログラムを含む記録媒体として実現してもよい。なお、説明を明瞭にするために、図６では、機能ブロックを区分して示しているが、本発明の範囲から逸脱することなく、これらのブロックを統合し、又は他の様々な手法によって区分してもよい。
【００４０】
フィルタ機能２００では、好ましくは、データ（すなわち、コンテンツデータと埋め込まれたウォータマーク）のフレームをフィルタリングし、フィルタリングされたデータのフレームを生成し、フィルタリングされたデータのフレームのある２次元周波数特性を得る。例えば、データのフレームのフィルタリングは、コンテンツデータのフレームに対応する幾つかの又は全ての周波数成分に対して、埋込ウォータマークに対応する少なくとも幾つかの高調波周波数成分が強調されるように行うことが望ましい。
【００４１】
以下、図６のフィルタリング処理２００について、図７〜図１０を用いてより詳細に説明する。図７は、本発明に用いられる望ましいフィルタリング処理２００のある側面を図式的に示している。図８は、フィルタリング処理２００に基づいて実行されるあるアクション／機能を示すフローチャートである。図９及び図１０は、この処理によって得られる結果を示している。
【００４２】
図７及び図８に示すように、基準データブロック２５０は、埋込ウォータマーク１００を含むデータのフレームの各データ値上（好ましくは中心）に配置される（アクション２６０）。説明を明瞭にするために、図７では、コンテンツデータを示さず、埋込ウォータマーク１００のみを示している。更に、本発明は、何らかの原因によって歪んだ埋込ウォータマーク１００Ａの検出を可能とするものであるが、ここでは、埋込ウォータマーク１００は、歪んでいない状態、（すなわち、回転、大きさの変更、移動等がない状態）で示されている。
【００４３】
基準データブロック２５０は、好ましくは、基準ウォータマーク１００内に見出される（埋込ウォータマーク１００内で期待される）パターンの１つに基づいて構成されたデータ値（画素値、オーディオ値等）のアレーを含んでいる。例えば、基準データブロック２５０は、図２Ａ及び図２Ｂに示す第１及び第２のパターンの何れかに基づいて構成されたデータ値を含んでいてもよい。ここでは、基準データブロック２５０は、第１のパターン（図２Ａ）に基づいて構成されたデータ値を含んでいる。
【００４４】
アクション２６２においては、基準データブロック２５０のデータ値と、データのフレームのデータ値のそれぞれの組（例えば、基準データブロック２５０で覆われているデータ値の組）との積和を算出する。換言すれば、埋込ウォータマーク１００を含んでいるデータのフレームの部分の上の基準データブロック２５０の各整列位置について、一対一の積和計算を行う。アクション２６２における積和の計算結果の一例として、図９では、値が大きい位置を非常に明るく、（例えば、白）又は非常に暗く（例えば、黒い）で示している。
【００４５】
基準データブロック２５０の中心２５２を例えば、第１のパターンを有するデータのフレームのデータブロック１０２Ａの中心２５４に位置するデータ値上に配置すると、基準データブロック２５０の値と、データのフレームの値のそれぞれとの間について算出された積和（アクション２６２）は、比較的大きい正の値となる。図９の位置２５４では、この結果は、明るい白色として示されている。
【００４６】
基準データブロック２５０の中心２５２を第２のパターンのデータブロック１０２Ｂの中心２５６に合わせると、積和演算の結果は、比較的大きい負の値となる。図９の位置２５６では、この結果は、非常に暗い色、すなわち黒色で示されている。なお、図９に図式的に示すアレーは、数値的な結果を黒、灰色、白のコントラストとして表現している。
【００４７】
そして、図８のアクション２６２において算出された各積和について、絶対値を算出する（アクション２６４）（なお、アクション２６４は、図６のアクション／機能２０２に対応している）。アクション２６２及びアクション２６４における計算は、次のデータ値に移行し（アクション２６６）、データのフレームの終わりに到達したか否かを判定する（アクション２６８）ことによって、データのフレームの各データ値に対して実行される。図１０に示すように、積和演算の絶対値を算出することにより、例えば、明るい白色の点２５８として表されるピークの幾何学的パターンである数値のアレーが生成される。各ピークは、データブロック１０２が第１のパターンであるか第２のパターンであるかにかかわらず、埋込ウォータマーク１００のデータブロック１０２の中心を表す。
【００４８】
再び図６を参照すると、フーリエ変換演算２０４は、好ましくは、フィルタリングされたデータのフレームに対して２次元フーリエ変換を行い、フィルタリングされたデータのフレームの２次元周波数スペクトルを生成する処理を含んでいる。この２次元フーリエ変換には、周知の高速フーリエ変換（Fast Fourier transform：以下、ＦＦＴという。）アルゴリズムを含む如何なる手法を用いてもよい。
【００４９】
図１１は、例えば、図１０に示すフィルタリングされたデータのフレーム等のフィルタリングされたデータのフレームの２次元周波数スペクトル３２０の具体例を示している。２次元周波数スペクトル３２０は、白色の円として示される複数のピーク３２２を含み、これらは、灰色のドットとして示されるより多くの、より低い値の中に示されている。ピーク３２２は、埋込ウォータマーク１００に対応する高調波周波数成分の幾つかの振幅と位相成分を表している。なお、実際の２次元周波数スペクトルは、図１１に示すものより多くのピーク３２２を含んでいるが、ここでは、説明を明瞭にするために、多くのピークを省略して示している。埋込ウォータマーク１００自体の場合と同様、フィルタリングされたデータのフレームのフーリエ変換（この場合、ＦＦＴ）は、埋込ウォータマーク１００に由来するある幾何学的特性を含んでいる。具体的には、スペクトル３２０の少なくとも幾つかの高調波周波数成分３２２は、原点３２４の周りの矩形パターン内に位置する。原点３２４は、例えば、直流成分（ＤＣ）等の１つ以上の低い周波数成分を表す。ｘ軸とｙ軸が原点３２４で交差するデカルト座標系に周波数スペクトル３２０が配置されていると仮定すると、各高調波周波数成分３２２は、ｘ，ｙ座標の対として表現することができる。
【００５０】
図６に示すピーク検出及び／又は選択機能２０６は、フィルタ機能２０７に関連付けられていることが望ましい。フィルタ機能２０７は、好ましくは、フィルタリングされたデータのフレームの２次元周波数スペクトル３２０における好ましくないピーク３２２を抑圧するために、１つ以上のフィルタリングアルゴリズムを実行する。例えば、図１１に示すように、原点３２４の近傍に多くのピーク３２２Ａが出現することがある。したがって、ピーク３２２Ａは、埋込ウォータマーク１００が回転され、大きさを変更され、又は移動されているか否かに関する情報を殆ど含んでおらず、無用であり、除外又は無視してもよい。
【００５１】
ピーク検出／選択機能２０６（図６）では、２次元周波数スペクトル３２０に含まれている複数のピーク３２２の中から埋込ウォータマーク１００に対応している少なくとも幾つかの下側の高調波周波数成分３２２（図１１）を選択することが好ましい。例えば、本発明の幾つかの側面においては、第１の高調波周波数成分及び／又は第２の高調波周波数成分を選択するとよい。本発明に基づく使用のためには、埋込ウォータマーク１００の第２の高調波に対応している高調波周波数成分３２２を選択することがより好ましい。例えば、図１１に示す高調波周波数成分３２２（原点３２４の近傍に集まる成分を除く）は、埋込ウォータマーク１００に対応する第２の高調波周波数成分を表している。後述するように、埋込ウォータマーク１００が歪んでいるか否か及びどのように歪んでいるかを判定するためには、図１１に示す選択された高調波周波数成分３２２の一部のみを分析すればよい。
【００５２】
図６及び図１１に示す具体例において、歪み検出機能２０８では、好ましくは、埋込ウォータマーク１００に関連する回転値、大きさの変更値（以下、リサイズ値という。）、移動値のうちの少なくとも１つを判定する。これらの値は、埋込ウォータマーク１００に対応する選択された高調波周波数成分３２２の幾何学的位置の１つ以上の偏りを計算することによって、又は選択された高調波周波数成分３２２の位相の１つ以上の偏りを計算することによって求められる。
【００５３】
埋込ウォータマーク１００Ａに対応する選択された高調波周波数成分３２２の幾何学的な位置又は位相の偏りは、２次元フーリエ変換のある一般的な性質を利用することによって判定することができる。これらの性質には、ある回転値（すなわち、角度）によってデータのフレームが回転されると、データのフレームのフーリエ変換の結果における周波数成分が対応して回転するという性質が含まれる。ここで、埋込ウォータマーク１００に対応する高調波周波数成分の対応する回転は、明らかである。２次元フーリエ変換の他の性質として、何らかの大きさの変更、例えば、ｘ方向における（すなわち、ｘ軸に沿った）データのフレームの拡大又は縮小により、フーリエ変換の結果における周波数成分の位置に関して、この変更に反比例する大きさの変更が生じるという性質がある。ここで、埋込ウォータマーク１００に対応する高調波周波数成分３２２は、大きさの変更の結果、原点３２４に対する位置を変更される。例えば、ｘ方向の（すなわち、ｘ軸に沿った）データのフレームの如何なる大きさの変更も、これに反比例するような、埋込ウォータマーク１００の高調波周波数成分３２２の原点３２４に対するｘ方向における位置の変化をもたらす。同様に、ｙ方向の（すなわち、ｙ軸に沿った）データのフレームの如何なる大きさの変更も、これに反比例するような、埋込ウォータマーク１００の高調波周波数成分３２２の原点３２４に対するｙ方向における位置の変化をもたらす。更に、２次元フーリエ変換の一般的な性質として、データのフレームが移動する（すなわち、空間的にシフトする）と、フーリエ変換の結果の周波数成分の位相成分が対応して変化し、振幅は変化しないという性質がある。これにより、埋込ウォータマーク１００の高調波周波数成分３２２は、このような移動に起因する不規則な位相を示すこととなる。以下、これらの性質について、より詳細に説明する。
【００５４】
図１２は、図６に示す歪み検出機能２０８のアクション及び／又は機能に基づく処理のフローチャートである。アクション３００において、選択された高調波周波数成分３２２の少なくとも幾つかの幾何学的位置の偏りを判定することにより、埋込ウォータマーク１００に対応している回転値を算出する。例えば、図１１を参照すると、回転値は、第１の軸３２６と基準軸３２８との間の角度を計算することによって求めることができる。第１の軸３２６は、原点３２４等の基準点と、コンポーネント３２２Ｂ等の選択された高調波周波数成分３２２の少なくとも１つとを結ぶ線である。基準軸３２８は、基準ウォータマーク１００によって定義され、好ましくは、ｘ軸及びｙ軸の１つに沿って延びる。
【００５５】
好ましくは、埋込ウォータマーク１００に対応する回転値は、実質的に、以下に比例する数値を算出することによって求められる。
arctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））
ここで、Ｆｙｌ及びＦｘｌは、それぞれ、例えば、図１１に示すコンポーネント３２２Ｂ等、埋込ウォータマーク１００に対応する選択された高調波周波数成分３２２の１つのｙ軸座標及びｘ軸座標を表している。最も好ましくは、埋込ウォータマーク１００に対応する回転値は、実質的に、
（１８０／Π）＊arctan（（Ｆｙ１＊Ｗ）／（Ｆｘ１＊Ｈ））
に等しい数値を算出することによって求められる。
【００５６】
例えば、高調波周波数成分３２２Ｂのｙ軸座標Ｆｙｌがゼロであり、ｘ軸座標がＦｘｌが何らかの正数であるとする。この場合、arctan関数の偏角は、ゼロであり、したがって、求められた回転値（角度）は、ゼロである。ピーク３２２Ｂのｘ，ｙ座標は、埋込ウォータマーク１００（図７）が回転されていないことを示している。この実施例では、求められた回転角は、ゼロであるが、この結果は、９０°を法とするデータのフレーム（及び埋込ウォータマーク１００Ａ）の回転を表している。したがって、回転に起因する埋込ウォータマーク１００の実際の歪みは、ｎを０、１、２・・・として、０＋ｎ＊９０°である可能性がある。この問題の解決については、埋込ウォータマーク１００に隠されたメッセージを検出する処理に関連して、後に詳細に説明する。但し、データのフレームを９０°回転させると、そのコンテンツデータは、観賞に適するものではなくなるため、海賊版において、データのフレームが９０°回転されている可能性は低い。
【００５７】
図１３は、埋込ウォータマーク１００が少なくとも回転されている場合におけるフィルタリングされたデータのフレームの２次元フーリエ変換３２０Ａの具体例を示している。ここでarctan関数の偏角は、約０．２であり、求められた回転値（角度）は、約１２°である。この場合も、回転値は、データのフレーム及び埋込ウォータマーク１００の９０°を法とする回転を表ししている。したがって、回転に起因する埋込ウォータマーク１００Ａの実際の歪みは、ｎを０、１、２・・・として、１２＋ｎ＊９０°である可能性がある。
【００５８】
なお、埋め込まれたウォータマークの回転値を計算するアクション及び／又は機能（図１２のアクション３００）は、２つ以上の選択された高調波周波数成分３２２について回転値を算出し、複数の算出結果から１つの回転値を選択する処理を含んでいてもよい。これに代えて、何らかの手法で算出された回転値の幾つか又は全ては、例えば、平均して、最終的な回転値を求める等の手法によって統合してもよい。
【００５９】
図１２に示すアクション３０２において、少なくとも幾つかの選択された高調波周波数成分３２２の幾何学的位置の他の偏りを判定することによって、埋込ウォータマーク１００に対応するリサイズ値を算出する。この処理は、好ましくは、埋込ウォータマーク１００の少なくとも１つの選択された高調波周波数成分３２２の期間Ｐと、基準ウォータマーク１００によって定義される基準期間Ｐｒとを比較する処理を含む。
【００６０】
最も好ましくは、期間Ｐの判定は、ｘ軸期間Ｐｘの判定（アクション３０４）と、ｙ軸期間の判定（アクション３０６）Ｐｙとに分解される。ｘ軸期間Ｐｘは、好ましくは、選択された高調波周波数成分３２２の１つの幾何学的位置から算出される。ｙ軸期間Ｐｙは、好ましくは、選択された高調波周波数成分３２２の他の１つの幾何学的位置から算出される。ｘ軸期間Ｐｘを算出するために用いられる選択された高調波周波数成分は、好ましくは、実質的にｘ軸に沿って存在する成分又は実質的にｘ軸に沿って存在する筈であるが、回転に起因する歪みを含んでいる成分の何れかである。
【００６１】
例えば、図１３に示す具体例において、埋込ウォータマーク１００Ａが回転によって歪んでいる場合、好ましくは、ｘ軸期間Ｐｘを決定するために、実質的にｘ軸に沿って存在する筈であるが、回転による歪みを含んでいる高調波周波数成分３２２Ｄを選択する。ｙ軸期間Ｐｙを算出するために用いられる選択された高調波周波数成分は、好ましくは、実質的にｙ軸に沿って存在する成分又は実質的にｙ軸に沿って存在する筈であるが、回転に起因する歪みを含んでいる成分の何れかである。図１３に示すように、ｙ軸期間Ｐｙを決定するために、実質的にｙ軸に沿って存在する筈であるが、回転による歪みを含んでいる高調波周波数成分３２２Ｅを選択する。
【００６２】
リサイズ値は、ｘ軸期間Ｐｘとｙ軸期間Ｐｙから、それぞれｘ軸リサイズ値とｙ軸リサイズ値とを求めることによって算出される。これにより、埋込ウォータマーク１００Ａの拡大、減少及び／又は縦横比の変更（すなわちｘ軸寸法又はｙ軸寸法の一方又は他方の拡大又は縮小）に関する情報を好適に得ることができる。
【００６３】
ｘ軸リサイズ値は、ｘ軸期間Ｐｘと、基準ウォータマーク１００によって定義されるｘ軸基準期間Ｐｒｘとの比率を求めることによって算出される。ｘ軸期間Ｐｘは、好ましくは、実質的に以下の値を算出することによって求められる。
（Ｈ＊Ｗ）／（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２
ここで、ＦｘｌとＦｙｌは、それぞれ、埋込ウォータマーク１００に対応する選択された高調波周波数成分（例えば、高調波周波数成分３２２Ｄ）のｘ軸座標とｙ軸座標であり、Ｈは、２次元フーリエ変換３２０Ａのｙ軸の総寸法であり、Ｗは、２次元フーリエ変換３２０Ａのｘ軸の総寸法である。基準ウォータマーク１００のｘ軸基準期間Ｐｒｘは、好ましくは、基準ウォータマーク１００のデータブロックのある幾何学的特性を調べることによって判定される。図２Ａに示すように、基準ウォータマーク１００は、複数の２次元データブロック１０２を含んでおり、各データブロック１０２は、列と行に構成された複数のデータ値を含んでいる。各列のデータ値の数は、基準ウォータマーク１００のｘ軸基準期間Ｐｒｘに等しい。
【００６４】
ｙ軸リサイズ値は、ｙ軸期間Ｐｙと、基準ウォータマーク１００によって定義されるｙ軸基準期間Ｐｒｙとの比率を求めることによって算出される。ｙ軸期間Ｐｙは、好ましくは、実質的に以下の値を算出することによって求められる。
（Ｈ＊Ｗ）／（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２
ここで、Ｆｘ２とＦｙ２は、それぞれ、埋込ウォータマーク１００に対応する選択された高調波周波数成分（例えば、高調波周波数成分３２２Ｅ）のｘ軸座標とｙ軸座標である。図２Ａに示すように、各データブロック１０２の行の数は、基準ウォータマーク１００のｙ軸基準期間Ｐｒｙに等しい。
【００６５】
図１２に示す埋込ウォータマーク１００の移動値を算出するアクション及び／又は機能（アクション３０８）では、好ましくは、埋込ウォータマーク１００に対応する選択された高調波周波数成分３２２の少なくとも幾つかの位相における１つ以上の偏りを求める。詳しくは、埋込ウォータマーク１００の移動値の判定は、少なくとも２つの選択された高調波周波数成分３２２から位相に関する情報を得る処理を含む。
【００６６】
好ましくは、埋込ウォータマーク１００の移動値を算出する処理は、（位相の１つに基づいて）第１の方向における第１の距離を算出する処理（アクション３１０）と、（他の位相に基づいて）第２の方向における第２の距離を算出する処理（アクション３１２）とを含む。第１の距離は、埋込ウォータマーク１００が移動された（又はシフトされた）量を表し、第１の方向は、その移動の方向を表す。第２の距離は、埋込ウォータマーク１００が移動された（又はシフトされた）他の量を表し、第２の方向は、その移動の方向を表す。第１及び第２の距離は、それぞれ互いに直交する軸に沿った距離であることが望ましい。例えば、第１及び第２の方向の一方は、好ましくは、ｘ軸又はｙ軸から回転値に対応する角度だけ傾いた軸に沿う方向とする。第１及び第２の方向の他方は、この軸に直交する軸に沿う方向とする。
【００６７】
第１の距離は、好ましくは、選択された第１の高調波周波数成分（例えば、図１３のコンポーネント３２２Ｄ）について第１の位相θ１に比例する数値を計算することによって求められる。第２の距離は、好ましくは、選択された第２の高調波周波数成分（例えば、図１３のコンポーネント３２２Ｅ）について第２の位相θ２に比例する数値を計算することによって求められる。
【００６８】
好ましくは、第１の距離は、実質的に以下の値を求めることによって算出される。
（θ１＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ１＊Ｈ）２＋（Ｆｙｌ＊Ｗ）２）１／２）
ここで、ＦｘｌとＦｙｌは、それぞれ、選択された第１の高調波周波数成分（例えば、高調波周波数成分３２２Ｄ）のｘ軸座標とｙ軸座標である。
【００６９】
好ましくは、第２の距離は、実質的に以下の値を求めることによって算出される。
（θ２＊Ｈ＊Ｗ）／（２Π＊（（Ｆｘ２＊Ｈ）２＋（Ｆｙ２＊Ｗ）２）１／２）
ここで、Ｆｘ２とＦｙ２は、それぞれ、選択された第２の高調波周波数成分（例えば、高調波周波数成分３２２Ｅ）のｘ軸座標とｙ軸座標である。
【００７０】
上述のように、第１の方向は、好ましくは、図１２のアクション３００によって算出された回転値によって定義される軸に沿う。詳しくは、第１の方向は、好ましくは、実質的に以下に比例する数値を算出することによって求められる。
arctan（（Ｆｙ１＊Ｗ）／（Ｆｘｌ＊Ｈ））
同様に、第２の方向は、好ましくは、図１２のアクション３００によって算出された回転値によって定義される軸に沿う。詳しくは、第２の方向は、好ましくは、実質的に以下に比例する数値を算出することによって求められる。
arctan（（Ｆｙ２＊Ｗ）／（Ｆｘ２＊Ｈ））
図６を参照して説明すると、一旦、埋込ウォータマーク１００の歪みが判定されると（アクション２０８）、埋込ウォータマーク１００及びその隠されたメッセージが検出される（アクション２１０）。図１４は、本発明の少なくとも１つの側面に基づいて、図６のアクション２１０において、埋込ウォータマーク１００及びその隠されたメッセージ検出する処理のより詳細なアクション及び／又は機能を示すフローチャートである。アクション４００において、好ましくは、埋込ウォータマーク１００について、先に算出した回転値、リサイズ値、移動値のうちの少なくとも１つの値に基づいて、埋込ウォータマーク１００の少なくとも幾つかのデータブロック１０２に対応するデータのフレーム内の位置を判定する。最も好ましくは、この位置は、埋込ウォータマーク１００の各データブロック１０２の中心に対応している。
【００７１】
アクション４０２において、フィルタリングされたメッセージ値のアレーが判定される。ここで、フィルタリングされたメッセージ値は、位置が判定された埋込ウォータマーク１００のデータブロック１０２の１つに対応している。好ましくは、フィルタリングされた各メッセージ値は、実質的に、基準データブロック２５０のデータ値と、埋込ウォータマーク１００の任意の１つのデータブロック１０２のデータ値のそれぞれの組との間の相関値（例えば、積和）に等しい。この任意のデータブロック１０２のデータ値のそれぞれの組は、好ましくは、中心２５２（図７）が埋込ウォータマーク１００のデータブロック１０２のそれぞれの位置（例えば、中心）に重なっている場合、基準データブロック２５０で覆われたデータ値である。
【００７２】
なお、フィルタリングされたメッセージ値は、図６〜図１０を用いてここに説明したフィルタリングされたデータのフレーム内に含まれている。実際、フィルタリングされたメッセージ値は、理想的には、フィルタリングされたデータのフレーム（図９）に含まれているピーク２５４、２５６等のそれぞれに対応している。したがって、フィルタリングされたメッセージ値の再計算を行う必要はなく、これらの値は、フィルタリングされたデータのフレームから導出できる。これに代えてフィルタリングされたメッセージ値は、他の手法で算出してもよく、すなわち、基準データブロック２５０を回転値に比例する量だけ回転させた後に、基準データブロック２５０と、埋込ウォータマーク１００のデータブロックのデータ値のそれぞれの組との間の相関値、例えば積和を求めてもよい。更に他の実施例（又は、追加的側面）として、フィルタリングされたメッセージ値を算出する処理は、リサイズ値（例えば、ｘ軸値とｙ軸値）に比例する１つ以上の量によって基準データブロック２５０の大きさを変更した後に積和を求める処理を含んでいいてもよい。理論的には、これらの代替的な手法を用いることによって、より正確なメッセージ値のアレーを求めることができる。
【００７３】
アクション４０４において、好ましくは、それぞれが基準ウォータマーク１００の少なくとも幾つかのデータブロック１０２の１つに対応しているフィルタリングされた基準メッセージ値のアレーを算出する。具体的には、フィルタリングされた各基準メッセージ値は、実質的に、基準データブロック２５０と、基準ウォータマーク１００のデータブロック１０２のデータ値との積和に等しい。好ましくはフィルタリングされた基準メッセージ値のアレーは、予め定められたものであり、これは、適切なストレージデバイスからアレーを読み出すことによって容易に得ることができる。
【００７４】
アクション４０６においては、好ましくは、埋込ウォータマーク１００が回転によって歪んでいるか否かを判定する。これは、回転値を分析することによって容易に判定できる。埋込ウォータマーク１００が回転されていないと判定された場合、処理は、アクション４０８に移行する。このアクション４０８においては、好ましくは、埋込ウォータマーク１００が移動によって歪んでいるか否かを判定する。埋込ウォータマーク１００が移動によって歪んでいないと判定された場合、処理は、アクション４１０に移行し、ここで、フィルタリングされたメッセージ値のアレーとフィルタリングされた基準メッセージ値のアレーとの間の相関値を算出する。特に相関演算は、好ましくは、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとの積和を算出する処理を含む。この積和が閾値以上になった場合、埋込ウォータマーク１００が基準ウォータマーク１００のメッセージに対応するメッセージを含むと判定される（アクション４１２及びアクション４１４）。これに応じて、適切な処理を行う。
【００７５】
なお、本発明に基づいて、様々な異なる基準ウォータマークを用いることができる。埋込ウォータマーク１００は、以下のような本発明の他の側面に基づいて、基準ウォータマークの１つに照合することができる。
（１）アクション４０４において、フィルタリングされた基準メッセージ値のアレーの組を判定する。
（２）アクション４１０において、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーのそれぞれとについて、個々の積和を算出する。
（３）アクション４１２、４１３、４１４において、フィルタリングされたメッセージ値のアレーと、１つの基準ウォータマークに関連付けられたフィルタリングされた基準メッセージ値のアレーとの積和の１つが閾値以上である場合、埋込ウォータマーク１００が基準ウォータマークの１つのメッセージに対応するメッセージを含むと判定する。
【００７６】
また、アクション４０８において、埋込ウォータマーク１００が移動によって歪んでいると判定された場合、処理は、アクション４２０（図１５）に分岐し、このアクション４２０において、アクション４１０の場合と同様、例えば、積和を算出することによって、フィルタリングされたメッセージ値のアレーとフィルタリングされた基準メッセージ値のアレーの間の相関値を算出する。好ましくは相関演算の結果は、保存される。所定数の相関値がまだ算出されていない場合（アクション４２２）、処理は、好ましくは、アクション４２４に移行し、ここで、フィルタリングされたメッセージ値のアレーとフィルタリングされた基準メッセージ値のアレーを、整数個のメッセージ位置に対応する量だけ、水平に及び／又は垂直に互いに相対的に移動させる。そして、フィルタリングされたメッセージ値のアレーとフィルタリングされた基準メッセージ値のアレーとの間の相関値を再び算出し、保存する（アクション４２０）。これらのステップは、好ましくは、所定数の相関値、例えば、１０個の相関値が算出されるまで繰り返される（アクション４２２）。続いて、処理フローは、相関結果の１つが閾値以上であるか否かを判定することによって、埋込ウォータマーク１００Ａが基準ウォータマーク１００のメッセージに対応するメッセージを含むか否かを判定する処理に進む（アクション４２６、４２７、４２８）。
【００７７】
上述した移動及び相関のステップは、算出された移動値（例えば、第１の方向の第１の距離第２の方向の第２の距離）が実際の移動ではなく移動値の法（モジューロ値）を表すものであるため、繰り返し実行される。実際の埋め込まれた基準メッセージアレーを参照しなければ、ウォータマークの埋込ブロックのリサイズされた寸法を法とする移動値しか算出できない。これらの法と、リサイズ値及び回転値とにより、歪んだ埋込ウォータマークにおけるブロックの位置の「グリッド」を算出することができる。埋め込まれたメッセージアレーと基準メッセージアレーとの間で、異なるオフセットを有する幾つかの相関値を算出するすることによって、移動値について、及び埋込ウォータマーク１００が基準ウォータマーク１００に一致しているか否かについて、より信頼できる判定を行うことができる。
【００７８】
また、アクション４０６（図１４）において、埋込ウォータマーク１００Ａが回転によって歪んでいると判定された場合、処理は、アクション４５２（図１６）に分岐する。アクション４５２においては、好ましくは、フィルタリングされたメッセージ値のアレーとフィルタリングされた基準メッセージ値のアレーの間の相関値（例えば、積和）を求め、保存する。
【００７９】
そして、アクション４５４において、好ましくは、フィルタリングされたメッセージ値のアレーと、フィルタリングされた基準メッセージ値のアレーとを再び相対的に９０°回転させる。アクション４５６においては、アレーが相対的に３６０°回転されているか否かを判定する。アレーが相対的に３６０°回転されていない場合、処理は、アクション４５２に戻り、フィルタリングされたメッセージ値のアレーとフィルタリングされた基準メッセージ値のアレーのと間の他の相関を算出し、結果を保存する。この処理は、好ましくは、アクション４５６において３６０°の回転に達するまで繰り返される。そして、処理は、アクション４５８に進み、ここで、埋込ウォータマーク１００が基準ウォータマーク１００に対応するか否かを判定する。対応関係が存在している場合、処理は、アクション４６０に進み、対応関係が存在していない場合、処理は、アクション４５９に進む（ウォータマークは、検出されない）。ここでは、相関結果の１つ（例えば、積和の１つ）が閾値以上である場合に、対応関係が存在すると判定する。なお、複数の基準ウォータマークが用いられている場合（及びフィルタリングされたメッセージアレーについて、複数の回転値／相関値が算出される場合）、閾値以上の最も高い相関値を有するフィルタリングされたメッセージ値のアレーを有するフィルタリングされた基準ウォータマークアレーが対応する基準ウォータマークアレーであると判定される。これにより、埋込ウォータマーク１００が選択された基準ウォータマークのメッセージ（例えば、基準ウォータマーク１００）に対応するメッセージを含んでいると判定される（アクション４６０）。これに応じて、適切な処理を行う。
【００８０】
回転値は、埋込ウォータマーク１００の実際の回転ではなく、回転の法を表しているため、好ましくは、９０°の回転を繰り返し、相関値を求める。これは、フーリエ変換３２０（図１１）において、２つのピーク３２２があった場合、埋め込まれたウォータマークにおいて、どちらのピークが「水平」方向を表し、どちらのピークが「垂直」方向を表しているか未知であるためである。したがって、フィルタリングされたメッセージ値のアレーをフィルタリングされた基準メッセージ値のアレーに対して９０°回転させることによって、埋込ウォータマーク１００と基準ウォータマーク１００との間の対応をより高い信頼度で判定することができる。
【００８１】
なお、埋込ウォータマーク１００が回転され、移動されている場合に対応するよう、図１６に示す処理フローを容易に変更することができる。実際、図１５のアクション４２０、４２２、４２４を図１６のアクション４５２に挿入することにより、この機能を実現することができる。
【００８２】
図１７は、本発明の１つ以上他の側面に基づいて実行される処理のフローチャートである。詳しくは、このフローチャートは、ウォータマーク検出２１０（図６）のアクション及び／又は機能を実行するための他の手法を示している。詳しくは、アクション４００、４０２、４０４（図１４）を実行した後、処理は、アクション４８０に進み、好ましくは、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値を算出する。基準ウォータマーク１００及びフィルタリングされた基準メッセージ値のアレーは、予め定められたものであるため、この２次元フーリエ変換値は、所定のものであることが望ましい。２次元フーリエ変換としては、例えば、ＦＦＴ等、周知の如何なる手法を用いてもよい。
【００８３】
次に、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換（例えば、ＦＦＴ）を行う（アクション４８２）。次に、アクション４８４において、好ましくは、ポイント毎に、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積を求めることにより、変更されたアレーを算出する。次に、変更されたアレーを逆フーリエ変換する（アクション４８６）。そして、アクション４８８において、変更されたアレーの逆フーリエ変換の結果の最大値を判定する。
【００８４】
アクション４９０においては、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値とを９０°の整数倍、例えば一倍によって、相対的に回転させる。アクション４９２において、３６０°の回転に達したか否かを判定する。回転が３６０°に達していない場合、処理は、アクション４８４に戻り、ポイント毎に、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、（回転された）フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値との積を求めることによって次の変更されたアレーを算出する。
【００８５】
アクション４８４、４８６、４８８、４９０は、フィルタリングされた基準メッセージ値のアレーの２次元フーリエ変換値と、フィルタリングされたメッセージ値のアレーの２次元フーリエ変換値とが相対的に３６０°回転されるまで（アクション４９２）繰り返される。ここで、処理は、アクション４９４に進み、埋込ウォータマーク１００が基準ウォータマーク１００に対応するか否かを判定する。具体的には、変更されたアレーの逆フーリエ変換値の最大値の１つが閾値を超えている場合、埋込ウォータマーク１００が基準ウォータマーク１００に対応していると判定する。なお、複数の基準ウォータマークが用いられている場合（これに基づいて、複数の逆フーリエ変換値が算出された場合）、フィルタリングされたメッセージ値が最も高い逆フーリエ変換結果をもたらすフィルタリングされた基準メッセージアレーが埋込ウォータマーク１００に対応すると判定される（但し、この値が十分大きく、閾値以上であることを前提とする）。対応関係が見出されなかった場合、処理は、アクション４９５に進む（ウォータマークは検出されない）。対応関係が見出された場合、アクション４９６において、埋込ウォータマーク１００Ａのメッセージと基準ウォータマーク１００のメッセージとが照合され、適切な処理を行う。
【００８６】
本発明の１つ以上の側面に基づき、図６、図８、図１２及び図１４〜図１７に示す（及びこれらを参照して説明した）処理は、例えば、１つ以上の特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）及び／又はプログラミング可能なデジタルシグナルプロセッサ、マイクロプロセッサ、１つ以上のソフトウェアプログラムの制御の下で動作するコンピュータ等の１つ以上の処理装置を用いることによって、市販のデジタル及び／又はアナログコンポーネントを用いてハードウェアで実現することができる。これに代えて、本発明の１つ以上の側面を実現するために、上述した機能を例えばコンピュータ等の適切な処理装置が実行可能なソフトウェアプログラムとして実現してもよい。このようなソフトウェアプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、メモリチップをはじめとする適切な記録媒体に保存してもよい。
【００８７】
以上、本発明を特定の実施例を参照して説明したが、これらの実施例は、本発明の原理及び用途を例示的に示しているにすぎない。したがって、ここに説明した実施例は、様々に変更することができ、このような他の構成も、添付の請求の範囲において定義される本発明の思想及び範囲から逸脱するものではない。
【図面の簡単な説明】
【００８８】
【図１】本発明における使用に適したブロックに基づくウォータマークの構造を概念的に示す図である。
【図２Ａ】図１のウォータマークの構造に関する詳細を示す図である。
【図２Ｂ】図１のウォータマークの構造に関する詳細を示す図である。
【図３】図１に示すウォータマークをデータのフレームに埋め込む処理を概念的に示す図である。
【図４】埋込ウォータマークを基準ウォータマークとどのように相関させるかを図式的に説明する図である。
【図５】埋込ウォータマーク（例えば、回転されたデータのフレームに含まれる）の位置ずれが、基準ウォータマークとの相関にどのように影響するかを図式的に示す図である。
【図６】本発明の１つ以上の側面に基づいて実行される好適なアクション及び／又は機能を示すブロック図である。
【図７】本発明の１つ以上の側面に基づくフィルタリング処理を図式的に説明する図である。
【図８】本発明に基づいて実行され、図６に示すアクション及び／又は機能に関連するアクション／機能を示すフローチャートである。
【図９】図８に示すアクション及び／又は機能を実行することによって得られる結果を示す図である。
【図１０】図８に示すアクション及び／又は機能を実行することによって得られる結果を示す図である。
【図１１】埋め込まれたウォータマークが回転されていない場合における、本発明のある側面に基づき、２次元フーリエ変換されたフィルタリングされたデータのフレームを示す図である。
【図１２】本発明に基づいて実行される、図６に示す歪み検出アクション及び／又は機能に基づく処理のフローチャートである。
【図１３】埋め込まれたウォータマークが少なくとも回転されている場合における、本発明のある側面に基づき、２次元フーリエ変換されたフィルタリングされたデータのフレームを示す図である。
【図１４】本発明のある側面に基づき、少なくとも回転され、大きさが変更され、又は移動されたデータのフレームに埋め込まれたウォータマークを検出するためのアクション及び／又は機能を示すフローチャートである。
【図１５】図１４に示すアクション及び／又は機能に追加して実行されるアクション及び／又は機能のフローチャートである。
【図１６】図１４に示すアクション及び／又は機能に追加して実行される更なるアクション及び／又は機能のフローチャートである。
【図１７】本発明の代替的な側面に基づき、少なくとも回転され、大きさが変更され、又は移動されたデータのフレームに埋め込まれたウォータマークを検出するためのアクション及び／又は機能を示すフローチャートである。
【図１】
2005529526.tif 000003
2005529526.tif 000004
【図３】
2005529526.tif 000005
【図４】
2005529526.tif 000006
【図５】
2005529526.tif 000007
【図６】
2005529526.tif 000008
【図７】
2005529526.tif 000009
【図８】
2005529526.tif 000010
【図９】
2005529526.tif 000011
【図１０】
2005529526.tif 000012
【図１１】
2005529526.tif 000013
【図１２】
2005529526.tif 000014
【図１３】
2005529526.tif 000015
【図１４】
2005529526.tif 000016
【図１５】
2005529526.tif 000017
【図１６】
2005529526.tif 000018
【図１７】
2005529526.tif 000019
【国際調査報告】
2005529526.tif 000020