(57)【特許請求の範囲】
【請求項１】
透かし入りデジタル画像を作成するために、デジタル画像に情報を埋め込む方法であって、
（ａ）該デジタル画像を、周波数領域における係数を有する一組の係数ブロックに変換するステップと、
（ｂ）該一組の係数ブロックのうちの複数の係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、
（ｃ）透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込むステップであって、該複数の透かしブロックの各透かしブロックは、該一組の係数ブロックからの所定数の係数ブロックを有する、ステップと、
（ｄ）該透かし入りデジタル画像を出力するステップと
を含み、ステップ（ａ）から（ｄ）は、少なくとも１つのメモリに記憶された命令に基づいて、少なくとも１つのプロセッサを使用して実施される、方法。
【請求項２】
各透かしブロックは、所定数のブロック群を有し、各ブロック群は、前記一組の係数ブロックからの所定数の係数ブロックを有し、前記透かしを埋め込むステップは、
透かしを複数の透かしユニットに分割するステップと、
該複数の透かしユニットから１つの透かしユニットを選択するステップと、
各透かしブロックにおけるブロック群の該選択された透かしユニットを符号化するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記符号化するステップは、
各透かしブロックにおける前記ブロック群から、１つのブロック群の透かし係数セットを選択するステップと、
該透かし係数セットの係数を修正するステップと
を含む、請求項２に記載の方法。
【請求項４】
前記透かし係数セットの係数は、１つの係数ブロックから選択される、請求項３に記載の方法。
【請求項５】
所定の透かし係数セットの係数を修正する前記ステップは、
前記透かし係数セットに対する透かし寄与係数セットを選択するステップであって、該透かし寄与係数セットおよび該透かし係数セットは、１つのブロック群の中に位置する、ステップと、
該透かし寄与係数セットに基づいて、該透かし係数セットの各係数を計算するステップと
を含む、請求項３に記載の方法。
【請求項６】
前記透かし係数セットは、埋め込まれる前記透かしユニットに従ってさらに修正される、請求項５に記載の方法。
【請求項７】
各透かしユニットは、１つ以上のセンチネルユニットを含み、該センチネルユニットは、透かし内の各透かしユニットの順序を規定する、請求項２に記載の方法。
【請求項８】
前記透かしインジケータを埋め込むステップは、前記透かしインジケータ係数セットを修正するステップを含む、請求項１に記載の方法。
【請求項９】
前記透かしインジケータ係数セットは、その標準偏差が所定の透かしインジケータの閾値を下回るように修正される、請求項８に記載の方法。
【請求項１０】
前記デジタル画像を一組の係数ブロックに変換するステップは、
前記デジタル画像の離散コサイン変換（ＤＣＴ）を計算するステップと、
該デジタル画像のＤＣＴを一組の係数ブロックとして表すステップと
を含む、請求項９に記載の方法。
【請求項１１】
少なくとも１つのプロセッサ上で実施される、デジタル画像から透かしを抽出する方法であって、
（ａ）該デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、
（ｂ）投影係数ブロック分布における各係数ブロックの透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するステップであって、該投影係数ブロック分布は、該係数行列における係数オフセットに基づく、ステップと、
（ｃ）投影透かしブロック分布の透かしブロックから透かしを取り出すステップであって、該投影透かしブロック分布は、該投影係数ブロック分布のブロックオフセットに基づく、ステップと
を含み、ステップ（ａ）から（ｃ）は、少なくとも１つのメモリに記憶された命令に基づいて、少なくとも１つのプロセッサを使用して実施される、方法。
【請求項１２】
前記デジタル画像が透かし入りであるかどうかを判定するステップは、
（ｉ）前記係数行列における投影係数ブロックオフセットを選択するステップと、
（ｉｉ）該係数行列における複数の投影係数ブロックのそれぞれの透かしインジケータ係数セットに基づいて、統計測度を判定するステップと、
（ｉｉｉ）該デジタル画像が透かし入りであるかどうかを判定するために、該統計測度を所定の閾値と比較するステップと
を含む、請求項１１に記載の方法。
【請求項１３】
前記統計測度は、前記透かしインジケータ係数セットの係数の標準偏差を含む、請求項１２に記載の方法。
【請求項１４】
前記デジタル画像が、ステップ（ｉｉｉ）で透かし入りであると判定されるまで、または係数ブロックの領域内の全ての前記投影係数ブロックオフセットに対して、ステップ（ｉ）、（ｉｉ）、および（ｉｉｉ）の繰り返しが完了するまで、ステップ（ｉ）、（ｉｉ）、および（ｉｉｉ）を繰り返し、該投影係数ブロックオフセットを変更するステップをさらに含む、請求項１２に記載の方法。
【請求項１５】
前記透かしを取り出すステップは、
複数の投影透かしブロック分布を生成するステップであって、各投影透かしブロック分布は、異なる係数ブロックオフセットに基づく、ステップと、
各投影透かしブロック分布から透かしユニットベクトルセットを抽出するステップと、
該抽出された透かしユニットベクトルセットのうちの１つを選択するステップと、
該１つの選択された透かしユニットベクトルセットに基づいて、透かしを判定するステップと
を含む、請求項１１に記載の方法。
【請求項１６】
前記透かしユニットベクトルセットのうちの１つを選択するステップは、
各透かしユニットベクトルセットに対する相関計量を生成するステップと、
該相関計量に基づいて、１つの透かしユニットベクトルセットを選択するステップと
を含む、請求項１５に記載の方法。
【請求項１７】
デジタル画像に透かしを入れるためのシステムであって
少なくとも１つのプロセッサと、
該少なくとも１つのプロセッサに連結された画像変換モジュールであって、該少なくとも１つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも１つのプロセッサに連結された透かし埋め込みモジュールであって、該少なくとも１つのプロセッサを使用して、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成され、各透かしブロックは、所定の第２の数の係数ブロックを備える、透かし埋め込みモジュールと、
該少なくとも１つのプロセッサに連結された透かしインジケータ埋め込みモジュールであって、該少なくとも１つのプロセッサを使用して、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される透かしインジケータ埋め込みモジュールと
を備える、システム。
【請求項１８】
デジタル画像から透かしを抽出するためのシステムであって、
少なくとも１つのプロセッサと、
該少なくとも１つのプロセッサに連結された画像変換モジュールであって、該少なくとも１つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも１つのプロセッサに連結された透かしインジケータ検出モジュールであって、該少なくとも１つのプロセッサを使用して、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するように構成される透かしインジケータ検出モジュールと、
該少なくとも１つのプロセッサに連結された透かし抽出器モジュールであって、該少なくとも１つのプロセッサを使用して、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成され、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、透かし抽出器モジュールと
を備える、システム。
【請求項１９】
少なくとも１つのプロセッサにデジタル画像に透かしを埋め込ませるためのコンピュータプログラム論理を記録しているコンピュータ可読記録媒体であって、該コンピュータプログラム論理は、
該少なくとも１つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる、第１のプログラム論理と、
該少なくとも１つのプロセッサに、透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込ませる第２のプログラム論理であって、各透かしブロックは、所定の第２の数の係数ブロックを備える、第２のプログラム論理と、
該少なくとも１つのプロセッサに、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込ませる第３のプログラム論理と
を備える、コンピュータ可読記録媒体。
【請求項２０】
少なくとも１つのプロセッサにデジタル画像から透かしを抽出させるためのコンピュータプログラム論理を記録しているコンピュータ可読記録媒体であって、該コンピュータプログラム論理は、
該少なくとも１つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる第１のプログラム論理と、
該少なくとも１つのプロセッサに、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定させる第２のプログラム論理と、
該少なくとも１つのプロセッサに、投影透かしブロック分布の投影透かしブロックから透かしを取り出させる第３のプログラム論理であって、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、第３のプログラム論理と
を備える、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル画像の透かし入れに関する。
【背景技術】
【０００２】
デジタル撮像は、画像をデジタルデータで表すことを可能にする。ワールドワイドウェブ（ＷＷＷ）の可用性およびアクセス、ならびにデジタル撮像技術の広範囲にわたる可用性の増大に伴って、デジタル画像の数およびそれらを使用する頻度が増大している。多数のアプリケーションは、閲覧、編集、または共有等の目的のために、特定のデジタル画像または画像集へのアクセシビリティを多数の異なるユーザに提供する。例えば、人、動物、物体、および景色のデジタル画像は、しばしば、選択した人々の群または一般大衆と画像を共有することを意図して、それらの画像の所有者によってＷＷＷ上に掲載される。
【０００３】
しかしながら、ＷＷＷ上のこれらのデジタル画像のアクセシビリティは、他者が、不正な目的でそれらをコピーして使用することを容易にしている。例えば、Ｇｏｏｇｌｅ’ｓ  Ｏｒｋｕｔのソーシャルネットワーキングコミュニティのメンバーは、自分自身のブログに掲載した材料の所有者として、自分自身を識別するように、画像を掲載する場合がある。別の人が、この画像をコピーして、それを自分のものであるとして他の場所に掲載する場合がある。デジタル画像を正当なユーザ以外の人がコピーして使用することができる、前述のような数多くの例が存在する。
【０００４】
画像の不正なコピーを低減するために使用される１つの技術は、透かし入れの技術である。デジタル画像の透かし入れは、その画像へのデジタル透かし（単純に「透かし」と称する）の埋め込みを含む。透かしは、デジタルシグネチャ、ユーザ識別子、ロゴ、またはその起源または所有に関して画像を十分に識別することができる類似した値であることができる。埋め込まれた透かしが原画像の見た目を変えないことが大変望ましく、すなわち、透かしは、実質的に人間の目に不可視であるべきである。従来の透かし入れ方法の多くにおいて、透かしは、原画像の見た目を知覚可能に変化させる。
【０００５】
デジタル画像は、概して、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧまたはＪＰＧ）等の圧縮形態、または他の種類の画像圧縮形式で、ＷＷＷ上に掲載される。画像圧縮方法は、選択された画像画素の値を変化させるので、画像の見た目が変化するように、および／または透かしが復元不可能になるというように、埋め込まれた透かしが影響を受ける可能性がある。したがって、透かしが、ＪＰＥＧ６０またはＪＰＥＧ８０圧縮等の高レベルの圧縮に耐えるように頑健であることも望ましい。
【０００６】
しばしば、デジタル画像をコピーする人はまた、例えば原画像をトリミングすることによって、画像を変化させることにも関与する。有効にするためには、そのようなトリミングが行われた後に、埋め込まれた透かしが、コピーされた画像から検出可能および／または取り出し可能でもあるべきである。
【０００７】
デジタル透かし入れには、数多くのアプローチが提案されてきた。例えば、１つのアプローチは、画像に対する離散コサイン変換（ＤＣＴ）係数行列（ＤＣＴ行列）の生成、係数行列を１つ以上の透かしブロックに分割すること、および透かしブロックのそれぞれにデジタルシグネチャを埋め込むことを含む。非特許文献１は、そのようなアプローチを説明している。Ｌｉｅらによって説明される方法は、対応するＤＣＴ行列の中の異なる画像の区間に、反復して透かしを埋め込む。しかしながら、この方法は、トリミングに対して脆弱であり、計算的に高価である。例えば、Ｌｉｎらの方法を使用して埋め込まれた透かしを有する透かし入り画像は、トリミングした画像が透かし入り画像として認識されることを妨げる可能性がある。また、Ｌｉｅらによって説明される方法は、画像が透かし入りであることを判定するために、元々埋め込まれた透かしの本質的部分の識別を必要とすることによって、比較的に高い計算コストを被る。
【０００８】
したがって、デジタル画像の透かし入れのための改良された方法およびシステムが必要である。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Ｗｅｎ−Ｎｕｎｇ  Ｌｉｅ、Ｇｕｏ−Ｓｈｉａｎｇ  Ｌｉｎ、Ｃｈｉｈ−Ｌｉａｎｇ  Ｗｕ、およびＴａ−Ｃｈｕｎ  Ｗａｎｇによる「Ｒｏｂｕｓｔ  Ｉｍａｇｅ  Ｗａｔｅｒｍａｒｋｉｎｇ  Ｏｎ  ｔｈｅ  ＤＣＴ  Ｄｏｍａｉｎ」、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ、Ｇｅｎｅｖａ、（２０００）
【発明の概要】
【課題を解決するための手段】
【００１０】
デジタル画像の透かし入れのための方法およびシステムを提示する。一実施形態は、透かし入りデジタル画像を作成するようにデジタル画像に情報を埋め込む方法である。方法は、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するステップと、係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、透かし入りデジタル画像を生成するように、透かしブロックのそれぞれに透かしを埋め込むステップと、透かし入りデジタル画像を出力するステップとを含む。
【００１１】
別の実施形態は、デジタル画像から透かしを抽出する方法である。方法は、デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、投影係数ブロック分布の各係数ブロックにおける所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【００１２】
さらに別の実施形態は、デジタル画像に透かしを入れるためのシステムである。システムは、プロセッサと、メモリと、画像変換モジュールと、透かし埋め込みモジュールとを含む。画像変換モジュールは、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される。透かし埋め込みモジュールは、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成される。透かしインジケータ埋め込みモジュールは、複数の係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される。
【００１３】
さらなる実施形態は、デジタル画像から透かしを抽出するためのシステムであって、プロセッサと、メモリと、画像変換モジュールと、透かしインジケータ検出モジュールと、透かし抽出器モジュールとを有する。画像変換モジュールは、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される。透かしインジケータ検出モジュールは、投影係数ブロック分布の各係数ブロックにおける所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するように構成される。透かし抽出器モジュールはさらに、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成される。投影透かしブロック分布は、投影係数ブロック分布に基づく。
本明細書は、例えば、以下の項目も提供する。
（項目１）
透かし入りデジタル画像を作成するために、デジタル画像に情報を埋め込む方法であって、
（ａ）該デジタル画像を、周波数領域における係数を有する一組の係数ブロックに変換するステップと、
（ｂ）該一組の係数ブロックのうちの複数の係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、
（ｃ）透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込むステップであって、該複数の透かしブロックの各透かしブロックは、該一組の係数ブロックからの所定数の係数ブロックを有する、ステップと、
（ｄ）該透かし入りデジタル画像を出力するステップと
を含み、ステップ（ａ）から（ｄ）は、少なくとも１つのメモリに記憶された命令に基づいて、少なくとも１つのプロセッサを使用して実施される、方法。
（項目２）
各透かしブロックは、所定数のブロック群を有し、各ブロック群は、前記一組の係数ブロックからの所定数の係数ブロックを有し、前記透かしを埋め込むステップは、
透かしを複数の透かしユニットに分割するステップと、
該複数の透かしユニットから１つの透かしユニットを選択するステップと、
各透かしブロックにおけるブロック群の該選択された透かしユニットを符号化するステップと
を含む、項目１に記載の方法。
（項目３）
前記符号化するステップは、
各透かしブロックにおける前記ブロック群から、１つのブロック群の透かし係数セットを選択するステップと、
該透かし係数セットの係数を修正するステップと
を含む、項目２に記載の方法。
（項目４）
前記透かし係数セットの係数は、１つの係数ブロックから選択される、項目３に記載の方法。
（項目５）
所定の透かし係数セットの係数を修正する前記ステップは、
前記透かし係数セットに対する透かし寄与係数セットを選択するステップであって、該透かし寄与係数セットおよび該透かし係数セットは、１つのブロック群の中に位置する、ステップと、
該透かし寄与係数セットに基づいて、該透かし係数セットの各係数を計算するステップと
を含む、項目３に記載の方法。
（項目６）
前記透かし係数セットは、埋め込まれる前記透かしユニットに従ってさらに修正される、項目５に記載の方法。
（項目７）
各透かしユニットは、１つ以上のセンチネルユニットを含み、該センチネルユニットは、透かし内の各透かしユニットの順序を規定する、項目２に記載の方法。
（項目８）
前記透かしインジケータを埋め込むステップは、前記透かしインジケータ係数セットを修正するステップを含む、項目１に記載の方法。
（項目９）
前記透かしインジケータ係数セットは、その標準偏差が所定の透かしインジケータの閾値を下回るように修正される、項目８に記載の方法。
（項目１０）
前記デジタル画像を一組の係数ブロックに変換するステップは、
前記デジタル画像の離散コサイン変換（ＤＣＴ）を計算するステップと、
該デジタル画像のＤＣＴを一組の係数ブロックとして表すステップと
を含む、項目９に記載の方法。
（項目１１）
少なくとも１つのプロセッサ上で実施される、デジタル画像から透かしを抽出する方法であって、
（ａ）該デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、
（ｂ）投影係数ブロック分布における各係数ブロックの透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するステップであって、該投影係数ブロック分布は、該係数行列における係数オフセットに基づく、ステップと、
（ｃ）投影透かしブロック分布の透かしブロックから透かしを取り出すステップであって、該投影透かしブロック分布は、該投影係数ブロック分布のブロックオフセットに基づく、ステップと
を含み、ステップ（ａ）から（ｃ）は、少なくとも１つのメモリに記憶された命令に基づいて、少なくとも１つのプロセッサを使用して実施される、方法。
（項目１２）
前記デジタル画像が透かし入りであるかどうかを判定するステップは、
（ｉ）前記係数行列における投影係数ブロックオフセットを選択するステップと、
（ｉｉ）該係数行列における複数の投影係数ブロックのそれぞれの透かしインジケータ係数セットに基づいて、統計測度を判定するステップと、
（ｉｉｉ）該デジタル画像が透かし入りであるかどうかを判定するために、該統計測度を所定の閾値と比較するステップと
を含む、項目１１に記載の方法。
（項目１３）
前記統計測度は、前記透かしインジケータ係数セットの係数の標準偏差を含む、項目１２に記載の方法。
（項目１４）
前記デジタル画像が、ステップ（ｉｉｉ）で透かし入りであると判定されるまで、または係数ブロックの領域内の全ての前記投影係数ブロックオフセットに対して、ステップ（ｉ）、（ｉｉ）、および（ｉｉｉ）の繰り返しが完了するまで、ステップ（ｉ）、（ｉｉ）、および（ｉｉｉ）を繰り返し、該投影係数ブロックオフセットを変更するステップをさらに含む、項目１２に記載の方法。
（項目１５）
前記透かしを取り出すステップは、
複数の投影透かしブロック分布を生成するステップであって、各投影透かしブロック分布は、異なる係数ブロックオフセットに基づく、ステップと、
各投影透かしブロック分布から透かしユニットベクトルセットを抽出するステップと、
該抽出された透かしユニットベクトルセットのうちの１つを選択するステップと、
該１つの選択された透かしユニットベクトルセットに基づいて、透かしを判定するステップと
を含む、項目１１に記載の方法。
（項目１６）
前記透かしユニットベクトルセットのうちの１つを選択するステップは、
各透かしユニットベクトルセットに対する相関計量を生成するステップと、
該相関計量に基づいて、１つの透かしユニットベクトルセットを選択するステップと
を含む、項目１５に記載の方法。
（項目１７）
デジタル画像に透かしを入れるためのシステムであって
少なくとも１つのプロセッサと、
該少なくとも１つのプロセッサに連結された画像変換モジュールであって、該少なくとも１つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも１つのプロセッサに連結された透かし埋め込みモジュールであって、該少なくとも１つのプロセッサを使用して、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成され、各透かしブロックは、所定の第２の数の係数ブロックを備える、透かし埋め込みモジュールと、
該少なくとも１つのプロセッサに連結された透かしインジケータ埋め込みモジュールであって、該少なくとも１つのプロセッサを使用して、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される透かしインジケータ埋め込みモジュールと
を備える、システム。
（項目１８）
デジタル画像から透かしを抽出するためのシステムであって、
少なくとも１つのプロセッサと、
該少なくとも１つのプロセッサに連結された画像変換モジュールであって、該少なくとも１つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも１つのプロセッサに連結された透かしインジケータ検出モジュールであって、該少なくとも１つのプロセッサを使用して、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するように構成される透かしインジケータ検出モジュールと、
該少なくとも１つのプロセッサに連結された透かし抽出器モジュールであって、該少なくとも１つのプロセッサを使用して、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成され、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、透かし抽出器モジュールと
を備える、システム。
（項目１９）
少なくとも１つのプロセッサにデジタル画像に透かしを埋め込ませるためのコンピュータプログラム論理を記録しているコンピュータ可読媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム論理は、
該少なくとも１つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる、第１のプログラム論理と、
該少なくとも１つのプロセッサに、透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込ませる第２のプログラム論理であって、各透かしブロックは、所定の第２の数の係数ブロックを備える、第２のプログラム論理と、
該少なくとも１つのプロセッサに、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込ませる第３のプログラム論理と
を備える、コンピュータプログラム製品。
（項目２０）
少なくとも１つのプロセッサにデジタル画像から透かしを抽出させるためのコンピュータプログラム論理を記録しているコンピュータ可読媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム論理は、
該少なくとも１つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる第１のプログラム論理と、
該少なくとも１つのプロセッサに、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定させる第２のプログラム論理と、
該少なくとも１つのプロセッサに、投影透かしブロック分布の投影透かしブロックから透かしを取り出させる第３のプログラム論理であって、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、第３のプログラム論理と
を備える、コンピュータプログラム製品。
【００１４】
本発明のさらなる特徴および利点、ならびにその種々の実施形態の構造および動作は、添付の図面を参照して、以下に詳細に記載される。本発明は、本明細書に記載される具体的実施形態に限定されないことが留意される。そのような実施形態は、例示するためだけに本明細書に提示される。追加の実施形態は、本明細書に包含される教示に基づき、関連技術分野に精通する者に明らかとなるであろう。
【図面の簡単な説明】
【００１５】
実施例が添付の図面中に図示され得る、本発明の実施形態が参照される。これらの図面は、制限ではなく、例示であることが意図される。本発明は、概して、これらの実施形態の文脈において記載されるが、本発明の範囲をこれらの特定の実施形態に制限することは意図されないことを理解されたい。
【図１】図１は、本発明の実施形態による、デジタル画像に透かしを埋め込む方法のフローチャートである。
【図２】図２は、本発明の実施形態による、画像の係数配列表現を示す図である。
【図３】図３は、本発明の実施形態による、透かし情報を埋め込むことができる画像の配列表現で例示的場所を示す図である。
【図４】図４は、本発明の実施形態による、デジタル画像に透かしを埋め込む方法のフローチャートである。
【図５】図５は、本発明の実施形態による、デジタル画像が透かしを含むかどうかを判定する方法のフローチャートである。
【図６】図６は、本発明の実施形態による、画像が透かし入りであるかどうかを判定するためのプロセスを例示する図である。
【図７】図７は、本発明の実施形態による、画像から埋め込まれた透かしを抽出するためのプロセスを例示する図である。
【図８】図８は、本発明の実施形態による、画像から埋め込まれた透かしを抽出するためのプロセスの側面を例示する図である。
【図９】図９は、本発明の実施形態による、画像に透かしを入れるためのシステムの図である。
【図１０】図１０は、本発明の実施形態による、透かしを入れる前および後の画像を示す図である。
【発明を実施するための形態】
【００１６】
本発明は、特定の用途の実例的実施形態を参照して本明細書に記載されるが、本発明は、それに限定されないことを理解されたい。本明細書の教示が入手可能な当業者は、その範囲内の追加の修正、用途、および実施形態、ならびに本発明が大いに役立ち得る追加の分野を認識するであろう。
【００１７】
デジタル画像の中の透かしは、画像、さらにはその画像のあらゆるデジタルコピーを識別するために使用することができる。透かしは、その画像の起源および／または所有に関するあらゆる識別基準を含むことができる。例えば、デジタルシグネチャ、ユーザ識別子、ロゴ、コード等は、デジタル画像で使用される一部の種類の透かしである。
【００１８】
透かしは、デジタル画像の起源または所有を識別することを支援し、デジタル画像の不正な使用を低減することを支援するように、様々なアプリケーションのデジタル画像に使用することができる。本発明の実施形態を使用することができる１つの例示的環境は、ＷＷＷ上での画像の不正なコピーおよび掲載を低減することを含む。例えば、本発明の実施形態は、どちらもＧｏｏｇｌｅ（Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ、Ｃａｌｉｆｏｒｎｉａ）によって提供されるウェブに基づくサービスである、ＰＩＣＡＳＡまたはＯＲＫＵＴに掲載された写真への、元々の掲載者のユーザ識別子を備える透かしの埋め込みを可能にし得る。透かし入り画像がコピーされて他の場所に掲載される時は常に、本発明の実施形態は、あらゆる関係するエンティティが、その画像が透かし入りであるかどうかを判定して、透かし入りであれば、埋め込まれた透かしを取り出すことを可能にすることができる。掲載された画像が既に透かし入りであると知覚することは、その信頼性に関する判定を可能にする。実際の埋め込まれた透かしの検索は、画像をその出処まで追跡することを可能にする。
【００１９】
本発明の実施形態では、デジタル画像の透かし入れのための方法およびシステムを提示する。例示的実施形態は、透かし入りデジタル画像を作成するようにデジタル画像に情報を埋め込む方法と、デジタル画像から透かしを抽出する方法と、デジタル画像に透かしを入れるための方法とを含む。透かし入りデジタル画像を作成するための１つの方法は、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するステップと、係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、透かし入りデジタル画像を生成するように、透かしブロックのそれぞれに透かしを埋め込むステップと、透かし入りデジタル画像を出力するステップとを含む。透かしを抽出する方法は、デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、投影係数ブロック分布の各係数ブロックの中の所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【００２０】
実施形態では、複数の利点が得られ得る。本発明の実施形態は、圧縮およびトリミングに対する増大した頑健性を達成するために、画像の上に透かしデータを重複させ得、また、規定の領域の上に透かしの各インスタンスを展開させ得る。透かしデータ要素の違った順序の回復は、実施形態において行われ得る。さらに、トリミングおよび圧縮に対する透かし入れの頑健性の増強も得られ得る。透かしの抽出から検出を分離することによって、本発明の実施形態は、プロセスの計算効率を大幅に増大させ得、また、頑健性を高め得る。例えば、本発明の実施形態は、非常に高度な圧縮および／またはトリミングに対する透かしの検出を可能にし、また、高度な圧縮および／またはトリミングに対する埋め込まれた透かしの抽出も可能にすることができる。本発明の実施形態はまた、人間の目には実質的に不可視であり、したがって、原画像を知覚可能に歪ませない、透かしを埋め込み得る。
【００２１】
実施形態では、実用的であり、多数の画像を処理する環境での使用に対して計算的に効率的であり、かつ、ＷＷＷを含む環境におけるデジタル画像の誤用の低減に有効なツールとなるように圧縮およびトリミングに対して頑健である、透かし入れを提供する。
【００２２】
（透かしの埋め込み）
図１は、本発明の実施形態による、デジタル画像に透かしを埋め込むためのプロセス１００を例示する（ステップ１０２〜１１６）。ステップ１０２で、画像は、例えば離散コサイン変換（ＤＣＴ）領域における係数の行列といった、代表的な数値係数行列に変換される。以下、係数の行列は、代替可能に「係数行列」または「ＤＣＴ行列」と称する。本明細書の説明は、ＤＣＴ領域における係数に基づく。しかしながら、デジタル画像に対応する係数行列を生ずる、周波数領域における他の変換も可能であり、本発明の実施形態の範囲内であることが意図される。
【００２３】
図２は、本発明の実施形態による、係数行列２００を例示する。係数行列２００は、例えば、Ｍ×Ｎ係数を含む。例えば、ＤＣＴ変換を使用して画像が変換される時、係数は、ＤＣＴ係数である。Ｍ×Ｎの係数２０２等の係数は、例えば８×８係数といった所定のサイズの係数ブロック２０４等の、係数ブロック（ＣＢ）に論理的に区切られる。係数行列２００の係数ブロックは、ＧＯＢ２０６等のブロック群（ＧＯＢ）に論理的に群化される。例えば、４つの隣接するＤＣＴブロックは、対応するＧＯＢ２０６に含めることができる。次いで、係数行列２００のＧＯＢは、透かしブロック２０８等の透かしブロック（ＷＢ）に群化される。各透かしブロック２０８の中のＧＯＢの数は、埋め込まれている透かしの特性に依存することができる。係数、係数ブロック、ブロック群、ならびに透かしブロックの機能および用途は、種々のプロセスに関して以下に説明する。
【００２４】
係数行列（例えば、２００）の中の係数（例えば、２０２）は、デジタル画像の画素に対応することができる。例えば、ＤＣＴ変換は、デジタル画像の１つ以上の画素の各群に、周波数領域における１つの値を割り当てる。画像のＤＣＴ行列（２次元ＤＣＴ）を計算する１つの方法は、Ａｎｄｒｅｗ  Ｂ．Ｗａｔｓｏｎの「Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｕｓｉｎｇ  ｔｈｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ」、Ｍａｔｈｅｍａｔｉｃａ  Ｊｏｕｒｎａｌ、ｖ４（１）ｐ．８１−８８（１９９４）で説明されている。
【００２５】
ステップ１０４で、係数行列（例えば、２００）の係数ブロック（例えば、２０４）が識別され、各係数ブロックに透かしインジケータが埋め込まれる。例えば、係数行列がＭ×Ｎ係数から成る場合、それを８×８係数ブロックに区切ることで、Ｍ／８×Ｎ／８係数ブロックとなる。透かしインジケータは、Ｍ／８×Ｎ／８係数ブロックのそれぞれに埋め込むことができる。
【００２６】
透かしインジケータは、「透かしインジケータ係数セット」と称される、各係数ブロックの中の所定の一組の係数を、別の値と置換することによって埋め込むことができる。一実施形態では、各係数ブロックにおいて、係数の所定の対角の係数は、画像の透かしの存在を示す新しい値に設定することができる。例えば、図３に示されるように、ＧＯＢ２０６で、それぞれの係数ブロック３０８Ａ、３０８Ｂ、３０８Ｃ、および３０８Ｄの対角３０２Ａ、３０２Ｂ、３０２Ｃ、および３０２Ｄを、透かしインジケータを埋め込むために選択することができる。対角３０２Ａの中の係数ブロック、すなわち係数ブロック３０８Ａに対応する透かしインジケータ係数セットは、その対角の係数の平均値に設定することができる。同様に、係数行列の中の全ての他の係数ブロックで３０２Ａに対応する対角のそれぞれの係数は、それぞれの対角の係数の平均値に設定することができる。
【００２７】
前述の実施例では、各係数ブロックに透かしインジケータを埋め込むための対角が選択されるが、これは、それらの対角の中の係数が、画像のＤＣＴ変換において、知覚範囲を上回り、かつＪＰＥＧ圧縮による影響を実質的に受けない周波数構成要素を表すからである。同様に反復的で容易に決定可能な様式での、透かしインジケータ係数セットのための係数の他の選択肢が可能であり、本発明の実施形態の範囲内であることが意図される。また、透かしインジケータ係数セットの中の係数は、平均値以外の値に設定することも可能であることに留意されたい。
【００２８】
反復的で容易に決定可能な様式での透かしインジケータの埋め込みは、本発明の実施形態の特性である、低減された実行時間、およびトリミングおよび圧縮に対する頑健性に寄与する。
【００２９】
ステップ１０６で、ＧＯＢ境界が決定される。一実施形態では、例えば、図２および３に示されるように、ＧＯＢは、２×２の係数ブロック配列、すなわち、２行および２列の係数ブロックで配置される４つの係数ブロックを含み得る。ＧＯＢを構成する選択される係数ブロックの数および編成についての他の選択肢が可能であり、本開示の教示の範囲内であることが意図される。
【００３０】
ステップ１０８で、ＧＯＢの中の１つの係数ブロックが、「情報ブロック」に選択され、ＧＯＢ内の別の２つのブロックが、「寄与ブロック」に選択される。情報ブロックは、透かしの全体または一部を保持する、係数ブロックである。寄与ブロックは、それに基づいて透かしデータが情報ブロックに埋め込まれる係数値を提供する、対応する情報ブロックと同じＧＯＢの中の他の係数ブロックである。透かし係数セットのための係数値を導出するために使用される、寄与ブロックの中の係数は、透かし寄与係数セットと称することができる。一実施形態では、２×２係数ブロックのＧＯＢ２０６において、係数ブロック３０８Ｄは、情報ブロックに選択され、係数ブロック３０８Ｂおよび３０８Ｃは、寄与ブロックとして選択される。寄与ブロック３０８Ｂは、「上側ブロック」と称し、寄与ブロック３０８Ｃは、「左側ブロック」と称する。選択パターンは、係数行列の全てのＧＯＢに共通である。
【００３１】
所定数の係数は、情報ブロックで選択され（「透かし係数セット」と称する）、それらの値は、選択された透かしを符号化するように修正される。例えば、図３では、係数対角３０４Ｄを選択して、透かしの一部を埋め込むことができる。情報ブロックおよび寄与ブロック、ならびに透かし係数セットの数および編成についての他の選択肢が可能であり、本発明の実施形態の範囲内であることが意図される。
【００３２】
ステップ１１０で、１つのＷＢに必要とされるＧＯＢの数は、透かしおよび各ＧＯＢに埋め込まれる透かしのビット数に基づいて決定される。所定の透かしは、１つ以上の「透かしユニット」に分割することができ、各透かしユニットは、異なるＧＯＢに埋め込むことができる。例えば、透かしが３２ビット列であり、かつ８ビットの透かしを各ＧＯＢに埋め込むことにした場合、４つのＧＯＢが、対応するＷＢを構成することができる。各ＷＢは、選択された透かしの完全なインスタンスを埋め込むように、少なくとも十分な数のＧＯＢを含む。
【００３３】
ステップ１１２で、透かしは、順序抽出が保証されない時であっても頑健であるように定義することができる。例えば、透かし入り画像がトリミングされた時には、透かし入り画像から透かしを抽出する際に透かしの一部が誤った順序で返される可能性がある。「センチネルユニット」と称される付加的なデータを、所定の透かしの透かしユニットの間の選択された地点に挿入することができる。
【００３４】
例えば、トリミングされた可能性が高く、３２ビットの透かしが埋め込まれる、比較的に大きい画像を考察する。各ＧＯＢに４ビットを埋め込む場合、３２ビットの透かし全体のうちの１つのインスタンスを埋め込むには、合計で８つのＧＯＢが必要である。したがって、対応するＷＢは、少なくとも８つのＧＯＢを含むべきである。概して、３２ビットの透かしの４ビット部分（すなわち、透かしユニット）は、順番に対応するＧＯＢに埋め込まれる。しかし、透かし入り画像がトリミングされる場合、それらの透かしの４ビット部分が取り出される順序は、それらが埋め込まれた順序と同じでないことがある。したがって、センチネルユニットは、透かしの透かしユニットの規則正しい順序で、所定の場所に散在させられ得る。例えば、４つのセンチネルユニットｓ１、ｓ２、ｓ３、ｓ４は、｛ｓ１、ｄ１、ｄ２、ｄ３、ｓ２、ｄ４、ｄ５、ｄ６、ｓ３、ｄ７、ｄ８、ｓ４｝のような処理済みの透かしを構成する、合計で１２の組み合わせられた透かしユニットおよびセンチネルユニットを有するように、｛ｄ１、ｄ２、ｄ３、ｄ４、ｄ５、ｄ６、ｄ７、ｄ８｝の８つの透かしユニットの順序に散在させられることができる。この処理済みの透かしユニットの順序は、３×４のＧＯＢ配列でＷＢに埋め込まれた場合、透かしユニットの抽出が順序を保たない時であっても、透かしユニットの順序を完全に決定することができる。
【００３５】
ステップ１１４で、透かしは、抽出の際の順序を保つための処理の有無に関わらず、係数行列の中に埋め込まれる。本発明の一実施形態では、ステップ１１４は、図４の例示的プロセスにさらに詳細に例示されるように、係数行列の中に透かしを埋め込むために使用することができる。
【００３６】
所定数の対角３０４Ｄの中の係数の値は、選択された透かしの各ビットを埋め込むように修正することができる。例えば、係数対角３０４Ｄの中の係数３０６Ｄは、対応する上側ブロックの中の係数３０６Ｂおよび左側ブロックの中の係数３０６Ｃの平均値に設定し、所定の一定値だけ上または下に調整することができる。埋め込まれる透かしの対応するビットが１である場合、上側ブロックおよび左側ブロックからの対応する係数の平均値は、所定の定数Ｑだけインクリメントされる。埋め込まれるビットが０である場合、上側ブロックおよび左側ブロックからの対応する係数の平均値は、所定の定数Ｑだけデクリメントされる。
【００３７】
埋め込まれた透かしを表すように修正された値（すなわち、透かし係数セット）を有することになる対角３０４Ｄの中の係数は、無作為の選択に基づいて、または他の何らかの基準に基づいて予め定められる。デジタル画像のＤＣＴ変換では、対角３０４Ｄの中の係数は、概して、知覚画像に影響を及ぼさずに変化させることができる、周波数構成要素を表す。前述の実施例に従い、対応する透かしユニットを埋め込むために、対角３０４Ｄの中の任意の４つの係数を使用することができる。
【００３８】
ＧＯＢ２０６の対角３０４Ｄに１つの透かしユニットを埋め込むことと同様に、透かしインスタンス全体が順番に係数行列の各ＷＢに埋め込まれるように、その透かしインスタンスの残りの透かしユニットを他のＷＢのＧＯＢに埋め込むためにプロセスを繰り返す。
【００３９】
図４に示されるプロセス１１４に戻ると、透かしは、以下のように係数行列の中に埋め込むことができる。ステップ４０２で、ＷＢが選択される。概して、各ＷＢは、対応する係数行列内のその配置の順番に、例えば、係数行列の左端から始まり、ＷＢの次の行に移動する前に水平方向に横断して移動して、処理することができる。ステップ４０４で、選択された各ＷＢについて、そのＷＢ内のＧＯＢが選択される。各インスタンスの中のＧＯＢはまた、例えば、対応するＷＢの左端から始まり、ＷＢの次の行に移動する前に水平方向に横断して移動する順番に選択することができる。
【００４０】
ステップ４０６で、選択されたＧＯＢ内で、係数は、新しい値で更新されるように選択され、埋め込まれる透かしデータに従って修正される。前述のように、更新される係数、すなわち、透かし係数セットは、予め定めることができる。
【００４１】
ステップ４０８で、透かし係数セットの中の１つの係数について、値は、上側ブロックおよび左側ブロックの中の対応する位置の係数の平均に設定される。次いで、ステップ４１０で、透かし係数セットの中のその係数について、埋め込まれるビットが０であるか１であるかに依存して、値は、それぞれ、所定の定数Ｑだけデクリメントまたはインクリメントされる。
【００４２】
ステップ４１２で、処理されている透かしユニットについてより多くのデータを埋め込む必要があるかどうかに関して判定が行われる。ＹＥＳの場合、処理は、現在のＧＯＢの中の修正すべき次の係数を選択するために、ステップ４０６に戻る。ＮＯの場合、ステップ４１４で、現在のＷＢにおいてより多くのＧＯＢが処理されるべきことが分かった場合、処理は、ステップ４０４に戻り、次のＧＯＢおよび次の埋め込まれる透かしユニットを選択する。現在のＷＢにおいてそれ以上のＧＯＢが処理されず、ステップ４１６で、処理されるより多くのＷＢがある場合、処理は、ステップ４０２に移動し、次のＷＢを選択して透かしのインスタンスを埋め込む。ステップ４１６で、それ以上のＷＢが処理されないことが分かった場合は、デジタル画像の中の利用可能な全てのＷＢが、透かしのインスタンスを埋め込むように処理されている。プロセス１１４の完了時に、透かしインスタンスの全ての透かしユニットは、係数行列の各ＷＢに埋め込まれる。
【００４３】
図５は、本発明の実施形態による、画像が透かし入りであるかどうかを判定するために使用することができる、プロセス５００を例示する。画像が既に透かし入りであることが分かった場合、プロセス５００は、透かしを取り出すことを可能にする。画像が透かしを有さないことが分かった場合は、透かしが画像に埋め込まれる。
【００４４】
一実施例では、プロセス５００は、例えばウェブクローラまたは他のデバイスによって収集され、プロセス５００にアクセス可能な１つ以上の記憶領域の中に置かれた一組の画像全体を処理する、プロセスの一部であり得る。ステップ５０１で、デジタル画像、例えばＪＰＥＧ形式のデジタル画像は、例えばプロセス５００にアクセス可能なＷＷＷまたは他のリポジトリから取り出される。
【００４５】
ステップ５０２で、デジタル画像は、埋め込まれた透かしを既に有するかどうかを判定するように処理される。透かしが既に埋め込まれたかどうかを判定する例示的な方法を、図６に関して後に説明する。ステップ５０４で、プロセス５００は、ステップ５０２で透かしが検出されたかどうかに基づいて、処理の２つの分岐のうちの１つを選択する。透かしが検出された場合、処理は、ステップ５１０へ進み、透かしを抽出する。透かしを抽出する例示的な方法を、図６に関して後に説明する。ステップ５０２でいかなる透かしも検出されなかった場合、処理は、ステップ５０６へ進み、透かしを埋め込む。透かしを埋め込むために使用することができる例示的なプロセス１００は、図１に関して前述した。
【００４６】
（透かしの検出）
図６は、本発明の実施形態による、画像がデジタル透かしを含むかどうかを判定する、プロセス６００を例示する。ステップ６０１で、画像は、前述のように係数行列に変換される。ステップ６０１は、別のプロセスによって係数行列が以前に生成されていない場合、またはプロセス６００に利用できない場合にだけ必要である。ステップ６０２で、出発点が、処理されているデジタル画像を表す係数行列の中で決定される。例えば、プロセス６００は、係数行列の場所（０，０）の係数を出発点とみなし得る。タプル（０，０）の第１の要素は係数行列の中の係数の行の位置を表し、第２の要素は列の位置を表す。プロセス６００は、例えば８×８の係数ブロックで、第１の係数ブロックの左上角を係数（０，０）とみなすことによって、処理を開始することができる。したがって、ステップ６０２で、係数ブロック境界が決定される。このような境界決定に基づく全ての係数ブロックの一群は、係数ブロック分布と称することができる。係数ブロック分布の初期決定はまた、投影係数ブロック分布（ｐｒｏｊｅｃｔｅｄ  ｃｏｅｆｆｉｃｉｅｎｔ  ｂｌｏｃｋ  ｄｉｓｔｒｉｂｕｔｉｏｎ）とみなされ得る。
【００４７】
ステップ６０４で、想定された係数ブロック境界、すなわち、投影係数ブロック分布に基づいて、各係数ブロックの透かしインジケータ係数セットが処理される。例えば、図３に示される対角３０２Ａに対応する６つの要素の対角は、対応する透かしインジケータ係数セットを構成するであろうことが予め定められ得る。
【００４８】
各係数ブロックでは、透かしインジケータ係数セットの標準偏差が計算される。例えば、このステップでは、対角３０２Ａの６つ全ての要素に対する標準偏差が計算される。
【００４９】
ステップ６０６で、それぞれの透かしインジケータ係数セットが所定の透かしインジケータの閾値を下回る標準偏差を有する、係数ブロックのパーセンテージが決定される。したがって、決定されたパーセンテージが透かしインジケータの閾値よりも大きい場合は、ステップ６０８で、画像が透かしを含むものと判定される。そうでなければ、画像が透かし含まないという判定を行うことができる前にさらなる処理が必要である。
【００５０】
ステップ６０６で決定された係数ブロックのパーセンテージが所定の透かしインジケータの閾値未満であった場合、プロセス６００は、ステップ６０２に戻り、新しい係数ブロック境界、すなわち、新しい投影係数ブロック分布を選択する。
【００５１】
プロセス６００がステップ６０２に戻る度に、係数ブロック境界、具体的には、係数行列の中の第１の係数ブロックの左上の係数が、１つの係数ブロックの中の各係数を覆う様式で移動させられる。例えば、この実施例では、係数ブロックの左上の係数を、係数行列の左上角に固定される係数の８×８配列の中の次の要素に移動させる度に、プロセス６００は、ステップ６０２に戻る。したがって、各投影係数ブロック分布は、係数の８×８配列内の新しい係数オフセットに基づく。
【００５２】
新しい係数ブロック境界が選択された後に、処理は、ステップ６０４から６０６を通して進行する。１つの反復の際に、ステップ６０６で、所定の透かしインジケータの閾値未満である透かしインジケータ係数セットの標準偏差を有する係数ブロックのパーセンテージが、所望のパーセンテージよりも大きい場合は、ステップ６０８で、対応する画像が透かし入りであると判定される。
【００５３】
一方で、プロセス６００が、ステップ６０６で、透かしインジケータ係数セットの標準偏差が所定の透かしインジケータの閾値を下回る係数ブロックのパーセンテージを発見せずに、係数ブロック全体、例えば係数の８×８配列全体を通して反復した場合、画像は透かし入りではないと断定される。画像が透かし入りではないと判定された場合、例えば、画像に透かしを埋め込むように、プロセス１００を起動し得る。
【００５４】
ステップ６０６で、透かしインジケータ係数の標準偏差が所定の透かしインジケータの閾値を上回る、ＤＣＴブロックのパーセンテージが発見されたと判定された場合は、画像は透かし入りであると断定され、例えばプロセス７００等のプロセスを、透かしを抽出するために使用することができる。
【００５５】
本発明の種々の実施形態は、比較的に効率的な様式で、特定の画像が透かしを含むかどうかを判定することが可能である。最悪の事態では、検出プロセスは、１つの係数ブロックの配列サイズの各係数にわたって反復する。また、透かしがあらゆる係数ブロックに埋め込まれるので、透かし入り画像が圧縮またはトリミングされた時であっても、検出は非常に頑健である。
【００５６】
（透かしの抽出）
図７は、画像から透かしを抽出するために使用することができる、プロセス７００を例示する。透かしの抽出のプロセスは、ＷＢの境界、すなわち、「透かしブロック分布」の決定、および次の、対応する「透かしユニットベクトル」、すなわち、透かしインスタンスの透かしユニットのベクトルの決定に基づく。
【００５７】
透かしのサイズ、すなわち、透かしの長さは、各アプリケーションについて予め定めることができる。例えば、本発明の実施形態が、ＯＲＫＵＴソーシャルネットワーキングサイトに掲載される画像に適用される場合、関連する透かし埋め込みアプリケーションおよび透かし取り出しアプリケーションは、ＯＲＫＵＴアプリケーションの要件に基づいて、所定の長さの透かしを使用するように構成することができる。例えば、３２ビットの透かしが、ＯＲＫＵＴと関連する利用者ＩＤの決定部分を埋め込むために十分であり得る。同様に、係数ブロックサイズ、ＧＯＢサイズ、ＷＢサイズ、透かしインジケータ係数（透かしインジケータ係数セット）の位置、および透かし係数（透かし係数セット）の位置は、プロセス７００が、埋め込まれた透かしを取り出すように、画像を処理し始めた時に、該プロセスによって知ることができる。
【００５８】
例えばプロセス６００を使用して、画像が透かし入りであるかどうかを既に判定していることによって、処理されているデジタル画像に対応する係数行列の中の係数ブロック境界をプロセス７００に使用することができる。ステップ７０２で、透かしの判定および取り出しのための出発点が決定される。一実施形態では、プロセス７００の出発点は、透かし検出プロセスによって決定される、係数行列の左上において係数ブロック境界として選択される。例えば、プロセス７００は、係数行列場所８０４の係数を出発点とみなし得る。すなわち、係数行列の中の第１のＷＢの第１の係数ブロックである。透かしのサイズ、すなわち、透かしの長さは、各アプリケーションについて予め定めることができる。したがって、ステップ７０２で、ＷＢ境界が決定される。これは、投影透かしブロック分布（ｐｒｏｊｅｃｔｅｄ  ｗａｔｅｒｍａｒｋ  ｂｌｏｃｋ  ｄｉｓｔｒｉｂｕｔｉｏｎ）とみなすことができる。
【００５９】
ステップ７０４で、現在想定されているＷＢ境界、すなわち、現在の投影透かしブロック分布に基づいて、透かしインスタンスを埋め込む係数に対応するデータベクトルが、処理されている画像の中の各ＷＢから取り出される。現在の投影透かしブロック分布に基づいて、それぞれのＧＯＢ境界が決定される。例えば、図８の画像８００では、プロセス７００は、１つの投影透かしブロック分布において、ＷＢ８１０に基づいてＷＢ境界を想定した時に、ＧＯＢ８０８を含む、対応するＧＯＢ境界を決定することができる。
【００６０】
投影透かしブロック分布の中の各ＷＢから、透かしユニットベクトルが生成され、係数行列のその投影透かしブロック分布のための透かしユニットベクトルセットを生ずる。ステップ７０６で、プロセス７００が、より多くの係数ブロックオフセットにわたって反復すべきかどうかを判定し、結果がＹＥＳであれば、プロセス７００は、ステップ７０２に戻る。一実施例では、投影ＧＯＢ内の各係数ブロックオフセットは、順々に試みることができる。
【００６１】
ステップ７０２および７０４は、各投影透かしブロック分布について繰り返される。各投影透かしブロック分布は、１つのＧＯＢの範囲内で異なる係数ブロックオフセットを考慮することによって決定され得る。
【００６２】
投影透かしブロック分布の現在処理されているＷＢに対する各ＧＯＢでは、透かし係数セットの中の各係数は、寄与ブロック、例えば上側ブロックおよび左側ブロックの中の対応する係数の平均値に対して比較される。透かし係数セットの中の係数が、寄与ブロックの中の対応する係数の平均値よりも高かった場合、その係数は、埋め込まれた透かしにおける「１」を表すものとみなすことができる。透かし係数セットの中の係数が、上側ブロックおよび左側ブロックの中の対応する係数の平均値よりも低かった場合、その係数は、「０」を表すものとみなすことができる。画像のための全体の透かしユニットベクトルセットは、投影透かしブロック分布について、投影透かしブロック分布に従って、各ＷＢの各ＧＯＢの中の透かし係数セットの各係数について、この係数平均の比較を繰り返すことによって生成することができる。
【００６３】
他の実施形態では、ステップ７０６で、係数ブロックオフセット以外の基準に基づいて順々に、ステップ７０２から７０４を反復してもよく、例えば、係数ブロックオフセットは、ランダムパターンで試みてもよく、または行および列索引に基づく他のオフセットを使用することができる。
【００６４】
ステップ７０６で、十分な数の透かしユニットベクトルセットが生成されたと判定された時、例えば、ステップ７０２から７０４が投影ＧＯＢ内の係数ブロックオフセットの全てにわたって反復された時に、プロセス７００は、ステップ７０８に進む。ステップ７０８で、複数組の透かしユニットベクトルのうちの１つが、埋め込まれたデータを表すものとして選択される。
【００６５】
一実施形態では、埋め込まれたデータを表すものとして複数組の透かしデータのうちの１つの選択は、透かしユニットベクトルの各組について計算される相関計量に基づいてもよい。相関計量は、例えば、多数決要素の発生の頻度に基づくことができる。一実施形態では、各ＧＯＢについて、透かしユニットベクトルの全てにわたって、対応する一組の透かしユニットベクトルにおいて、最も頻繁に生じる透かしユニットを識別することができる。その一組の透かしユニットベクトルの相関計量は、全てのＧＯＢにわたって合計した、最も頻繁に生じる透かしユニットの発生数であり得る。
【００６６】
透かしユニットの発生の頻度に基づいて相関計量を決定するための前述した方法は、例えば選択された局所領域の破壊等の、ＪＰＧ画像に観察される多数の種類の破壊に対して非常に耐性があることが観察されている。相関計量を決定する他の方法が可能であり、この開示の教示の範囲内であることが意図される。例えば、ビット単位の相関は、相関計量値に到達するように、各セットの中の透かしユニットベクトルの全ての間で実施することができる。
【００６７】
ステップ７１０で、埋め込まれたデータを表すように、最も高い相関を伴う一組の透かしユニットベクトルが決定される。例えば、埋め込まれたデータを表すように、最も高い相関計量を有する一組の透かしユニットベクトルを選択することができる。次いで、各ベクトルが１つのＷＢの中の透かし係数を表すので、実際の埋め込まれた透かしを、一組のベクトルから決定することができる。例えば、大部分の他のベクトルに一致するベクトルを選択することができ、取り込まれたそのデータユニットは、埋め込まれた透かしを表す。
【００６８】
画像がトリミングされた場合、選択されたベクトルは、埋め込まれた透かしを表すのに適切な順序の透かしユニットを有していない可能性が非常に高い。違った順序での抽出で処理された後に、透かしが埋め込まれた場合、例えば、実際の透かしユニット（例えば、前述のプロセス１００のステップ１１０および１１２の説明を参照されたい）の間にセンチネルユニットを挿入し、次いで、挿入されたセンチネルユニットを使用することによって、実際のデータユニットは、実際の透かしを得るように並び替えられ得る。違った順序でデータユニットを抽出し、さらには実際の透かしを決定することが可能である能力は、本明細書に開示される方法およびシステムを、トリミングに対して頑健であるものにする主要な特性である。
【００６９】
（他の例示的実施形態）
別の実施形態では、透かしおよび透かしインジケータを、画像の１つ以上の選択された領域だけに埋め込むことができる。いくつかの用途では、新しいデータを埋め込むことを制限することで、透かしの破壊に耐え、データマークの埋め込みおよび抽出の際の計算効率を向上させる、方法の能力を向上させ得る。例えば、一組の所定のホットスポットのうちの１つ以上を、透かしを入れる各画像の中で識別することができる。透かしは、それらのホットスポットだけに挿入することができる。一実施形態では、顔、または目、口、鼻等の他のより具体的なホットスポットを検出するように、顔検出またはエッジ検出機構を採用することができ、透かしおよび透かしインジケータを、選択されたホットスポットを覆う画像の領域の中に挿入することができる。
【００７０】
図９は、本発明の実施形態による、画像に透かしを埋め込み、画像が透かし入りであるかどうかを判定し、および／または画像から透かしを抽出する、埋め込みシステム９００である。システム９００は、プロセッサ９０１と、メモリ９０３と、記憶装置９０５と、入力インターフェース９０７と、出力インターフェース９０９と、通信デバイス９３０と、透かし入れモジュール９１０とを含む、汎用または特殊用途コンピュータであり得る。
【００７１】
プロセッサ９０１には、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または類似した処理デバイスが挙げられる。メモリ９０３には、ランダムアクセスメモリ等の一時的なデジタルメモリデバイスが挙げられ、記憶デバイス９０５には、ハードディスク、フラッシュメモリ、または読取専用メモリ（ＲＯＭ）等の永続的な記憶デバイスが挙げられるが、これに限定されない。入力インターフェース９０７には、１つ以上のキーボード、マウス、ペン型入力デバイス、ネットワークへの接続部、または外部のデバイスへの接続部が挙げられるが、これに限定されない。出力デバイス９０９には、１つ以上のディスプレイ、ネットワークへの接続部、または他の外部デバイスが挙げられるが、これに限定されない。通信デバイス９３０には、周辺機器相互接続（ＰＣＩ）規格、または拡張業界標準アーキテクチャ（ＥＩＳＡ）に準拠するデバイスなどが挙げられるが、これに限定されない。
【００７２】
透かしモジュール９１０は、本発明の実施形態の機能を実装する、副モジュールを含む。透かしモジュール９１０は、係数計算モジュール９１２と、透かし埋め込みモジュール９１４と、透かしインジケータ埋め込みモジュール９１６と、透かし抽出器モジュール９１８と、透かし検出器モジュール９２０とを含む。これらのモジュールのそれぞれの機能は、ハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせを使用して実装することができる。
【００７３】
これらの副モジュールの機能は、プロセッサ９０１の管理下で実装することができる。例えば、プロセッサ９０１は、入力インターフェース９０７を通しての画像の受信、透かしモジュール９１０の中の１つ以上のモジュールを使用した画像の処理、および出力インターフェース９０９を通しての処理済み画像の出力を制御することができる。例えば、透かしモジュール９１０を使用した画像の処理中に、原画像および処理されている画像がメモリ９０３に存在し得る。記憶装置９０５は、例えば、処理中に、情報を一時的に記憶するために、または後処理画像および情報を記憶するために使用され得る。モジュール９１２から９２０はまた、２つ以上の相互結合したコンピュータ上に分散様式で実装され得る。
【００７４】
係数計算モジュール９１２は、例えば画像の係数行列を生成するように、例えばＪＰＧ形式の画像といった画像を、周波数領域の係数表現に変換する機能を含む。前述のように、係数行列は、画像のＤＣＴ変換に対応するＤＣＴ行列であることができる。係数計算モジュール９１２はまた、本発明に従って処理する前または後に、係数行列をＪＰＧ等の画像形式に転換する機能を含む。例えば、係数計算モジュール９１２は、逆ＤＣＴ変換を実施する能力を含むことができる。係数計算モジュール９１２は、プロセス１００のステップ１０２および１１６に関して説明される機能の全てまたは一部を含むことができる。一実施形態では、係数計算モジュール９１２は、前述のようにプロセス１００のステップ１０２および１１６を実装するように構成される。
【００７５】
透かし埋め込みモジュール９１４は、所定の透かしを画像の係数行列表現に埋め込む機能を含む。例えば、透かし埋め込みモジュール９１４は、プロセス１００のステップ１０６、１０８、１１０、１１２、および１１４に関して説明される機能の全てまたは一部を含むことができる。一実施形態では、透かし埋め込みモジュール９１４は、前述のようにプロセス１００のステップ１０６、１０８、１１０、１１２、および１１４を実装するように構成される。
【００７６】
透かしインジケータ埋め込みモジュール９１６は、本発明の実施形態による、画像に透かしインジケータを埋め込む機能を含む。例えば、透かしインジケータ埋め込みモジュール９１６は、プロセス１００のステップ１０４に関して説明される機能を含むことができる。一実施形態では、透かしインジケータ埋め込みモジュール９１６は、前述のようにプロセス１００のステップ１０４を実装するように構成される。
【００７７】
透かし抽出器モジュール９１８は、本発明の実施形態による、画像から埋め込まれた実際の透かしを抽出する機能を含む。例えば、透かし抽出器モジュールは、プロセス７００に関して説明される機能を含むことができる。一実施形態では、透かし抽出器モジュール９１８は、前述のようにプロセス７００のステップ７０２から７１０を実装するように構成される。
【００７８】
透かし検出器モジュール９２０は、本発明の実施形態による、画像の中の透かしの存在を検出する機能を含む。例えば、透かし検出器モジュール９２０は、画像を処理して、十分な数の透かしインジケータの存在を発見することができる。透かし検出器モジュール９２０は、プロセス６００に関して説明される機能を含むことができる。一実施形態では、透かし抽出器モジュール９２０は、前述のようにプロセス６００のステップ６０１から６０８を実装するように構成される。
【００７９】
図１０は、本発明の実施形態による、処理の前および後の例示的な画像を示す。画像１００１は、処理前の画像であり、画像１００２は、本発明の実施形態に従って処理した後の同じ画像１００１である。画像１００２には、１６×１６の画素領域毎に３２ビットの透かしが埋め込まれ、透かしインジケータは、８×８の画素領域毎に含まれている。２つの画像の比較は、本発明の実施形態に従って埋め込まれた透かしを有する画像１００２が、画像１００１とはいかなる知覚可能な差異も有さないこと、すなわち、透かしが実質的に不可視であることを示している。
【００８０】
発明の概要および要約の項は、本発明者らによって検討されるような、本発明の全てではないが１つ以上の例示的実施形態を説明してもよく、したがって、決して本発明および添付の図面を制限することを目的としない。
【００８１】
特定の機能の実装およびその関係を例証する機能的構成要素を用いて、本発明を上記で説明している。これらの機能的構成要素の境界は、説明の便宜上、本明細書では任意に規定されている。特定の機能およびその関係が適切に実施される限り、代替境界を規定することができる。
【００８２】
具体的実施形態の先述の説明は、本発明の一般概念から逸脱することなく、必要以上の実験を伴わずに、当技術分野内の知識を適用することによって、他者が種々の用途についてそのような具体的実施形態を容易に修正および／または適合させることができる、本発明の一般的性質を完全に明らかにする。したがって、そのような適合および修正は、本明細書で提示される教示および指導に基づいて、開示された実施形態の同等物の意味および範囲内となることを目的とする。本明細書の用語または表現が、教示および指導に照らして当業者によって解釈されるように、本明細書の表現または用語は、限定ではなく説明の目的によるものであると理解されたい。
【００８３】
本発明の幅および範囲は、上記の例示的実施形態のうちのいずれかによって決して制限されるべきではないが、以下の請求項およびそれらの同等物のみに従って定義されるべきである。
【図１】
0005568097.tif 000002
【図２】
0005568097.tif 000003
【図３】
0005568097.tif 000004
【図４】
0005568097.tif 000005
【図５】
0005568097.tif 000006
【図６】
0005568097.tif 000007
【図７】
0005568097.tif 000008
【図８】
0005568097.tif 000009
【図９】
0005568097.tif 000010
【図１０】
0005568097.tif 000011