画像透かし入れ
デジタル画像の透かし入れのための方法およびシステムを提示する。一側面では、デジタル画像に情報を埋め込む方法は、デジタル画像を、周波数領域における係数を有する一組の係数ブロックに変換するステップと、係数ブロックのうちの1つ以上に透かしインジケータを埋め込むステップと、所定数の係数ブロックを有する1つ以上の透かしブロックに透かしを埋め込むステップとを含む。埋め込まれた透かしは、出力された透かし入りデジタル画像の中で実質的に不可視である。別の側面は、デジタル画像から透かしを抽出する方法であり、デジタル画像を係数行列に変換するステップと、所定の透かしインジケータに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル画像の透かし入れに関する。
【背景技術】
【0002】
デジタル撮像は、画像をデジタルデータで表すことを可能にする。ワールドワイドウェブ(WWW)の可用性およびアクセス、ならびにデジタル撮像技術の広範囲にわたる可用性の増大に伴って、デジタル画像の数およびそれらを使用する頻度が増大している。多数のアプリケーションは、閲覧、編集、または共有等の目的のために、特定のデジタル画像または画像集へのアクセシビリティを多数の異なるユーザに提供する。例えば、人、動物、物体、および景色のデジタル画像は、しばしば、選択した人々の群または一般大衆と画像を共有することを意図して、それらの画像の所有者によってWWW上に掲載される。
【0003】
しかしながら、WWW上のこれらのデジタル画像のアクセシビリティは、他者が、不正な目的でそれらをコピーして使用することを容易にしている。例えば、Google’s Orkutのソーシャルネットワーキングコミュニティのメンバーは、自分自身のブログに掲載した材料の所有者として、自分自身を識別するように、画像を掲載する場合がある。別の人が、この画像をコピーして、それを自分のものであるとして他の場所に掲載する場合がある。デジタル画像を正当なユーザ以外の人がコピーして使用することができる、前述のような数多くの例が存在する。
【0004】
画像の不正なコピーを低減するために使用される1つの技術は、透かし入れの技術である。デジタル画像の透かし入れは、その画像へのデジタル透かし(単純に「透かし」と称する)の埋め込みを含む。透かしは、デジタルシグネチャ、ユーザ識別子、ロゴ、またはその起源または所有に関して画像を十分に識別することができる類似した値であることができる。埋め込まれた透かしが原画像の見た目を変えないことが大変望ましく、すなわち、透かしは、実質的に人間の目に不可視であるべきである。従来の透かし入れ方法の多くにおいて、透かしは、原画像の見た目を知覚可能に変化させる。
【0005】
デジタル画像は、概して、Joint Photographic Experts Group(JPEGまたはJPG)等の圧縮形態、または他の種類の画像圧縮形式で、WWW上に掲載される。画像圧縮方法は、選択された画像画素の値を変化させるので、画像の見た目が変化するように、および/または透かしが復元不可能になるというように、埋め込まれた透かしが影響を受ける可能性がある。したがって、透かしが、JPEG60またはJPEG80圧縮等の高レベルの圧縮に耐えるように頑健であることも望ましい。
【0006】
しばしば、デジタル画像をコピーする人はまた、例えば原画像をトリミングすることによって、画像を変化させることにも関与する。有効にするためには、そのようなトリミングが行われた後に、埋め込まれた透かしが、コピーされた画像から検出可能および/または取り出し可能でもあるべきである。
【0007】
デジタル透かし入れには、数多くのアプローチが提案されてきた。例えば、1つのアプローチは、画像に対する離散コサイン変換(DCT)係数行列(DCT行列)の生成、係数行列を1つ以上の透かしブロックに分割すること、および透かしブロックのそれぞれにデジタルシグネチャを埋め込むことを含む。非特許文献1は、そのようなアプローチを説明している。Lieらによって説明される方法は、対応するDCT行列の中の異なる画像の区間に、反復して透かしを埋め込む。しかしながら、この方法は、トリミングに対して脆弱であり、計算的に高価である。例えば、Linらの方法を使用して埋め込まれた透かしを有する透かし入り画像は、トリミングした画像が透かし入り画像として認識されることを妨げる可能性がある。また、Lieらによって説明される方法は、画像が透かし入りであることを判定するために、元々埋め込まれた透かしの本質的部分の識別を必要とすることによって、比較的に高い計算コストを被る。
【0008】
したがって、デジタル画像の透かし入れのための改良された方法およびシステムが必要である。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】Wen−Nung Lie、Guo−Shiang Lin、Chih−Liang Wu、およびTa−Chun Wangによる「Robust Image Watermarking On the DCT Domain」、IEEE International Symposium on Circuits and Systems、Geneva、(2000)
【発明の概要】
【課題を解決するための手段】
【0010】
デジタル画像の透かし入れのための方法およびシステムを提示する。一実施形態は、透かし入りデジタル画像を作成するようにデジタル画像に情報を埋め込む方法である。方法は、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するステップと、係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、透かし入りデジタル画像を生成するように、透かしブロックのそれぞれに透かしを埋め込むステップと、透かし入りデジタル画像を出力するステップとを含む。
【0011】
別の実施形態は、デジタル画像から透かしを抽出する方法である。方法は、デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、投影係数ブロック分布の各係数ブロックにおける所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【0012】
さらに別の実施形態は、デジタル画像に透かしを入れるためのシステムである。システムは、プロセッサと、メモリと、画像変換モジュールと、透かし埋め込みモジュールとを含む。画像変換モジュールは、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される。透かし埋め込みモジュールは、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成される。透かしインジケータ埋め込みモジュールは、複数の係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される。
【0013】
さらなる実施形態は、デジタル画像から透かしを抽出するためのシステムであって、プロセッサと、メモリと、画像変換モジュールと、透かしインジケータ検出モジュールと、透かし抽出器モジュールとを有する。画像変換モジュールは、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される。透かしインジケータ検出モジュールは、投影係数ブロック分布の各係数ブロックにおける所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するように構成される。透かし抽出器モジュールはさらに、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成される。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【0014】
本発明のさらなる特徴および利点、ならびにその種々の実施形態の構造および動作は、添付の図面を参照して、以下に詳細に記載される。本発明は、本明細書に記載される具体的実施形態に限定されないことが留意される。そのような実施形態は、例示するためだけに本明細書に提示される。追加の実施形態は、本明細書に包含される教示に基づき、関連技術分野に精通する者に明らかとなるであろう。
【図面の簡単な説明】
【0015】
実施例が添付の図面中に図示され得る、本発明の実施形態が参照される。これらの図面は、制限ではなく、例示であることが意図される。本発明は、概して、これらの実施形態の文脈において記載されるが、本発明の範囲をこれらの特定の実施形態に制限することは意図されないことを理解されたい。
【図1】図1は、本発明の実施形態による、デジタル画像に透かしを埋め込む方法のフローチャートである。
【図2】図2は、本発明の実施形態による、画像の係数配列表現を示す図である。
【図3】図3は、本発明の実施形態による、透かし情報を埋め込むことができる画像の配列表現で例示的場所を示す図である。
【図4】図4は、本発明の実施形態による、デジタル画像に透かしを埋め込む方法のフローチャートである。
【図5】図5は、本発明の実施形態による、デジタル画像が透かしを含むかどうかを判定する方法のフローチャートである。
【図6】図6は、本発明の実施形態による、画像が透かし入りであるかどうかを判定するためのプロセスを例示する図である。
【図7】図7は、本発明の実施形態による、画像から埋め込まれた透かしを抽出するためのプロセスを例示する図である。
【図8】図8は、本発明の実施形態による、画像から埋め込まれた透かしを抽出するためのプロセスの側面を例示する図である。
【図9】図9は、本発明の実施形態による、画像に透かしを入れるためのシステムの図である。
【図10】図10は、本発明の実施形態による、透かしを入れる前および後の画像を示す図である。
【発明を実施するための形態】
【0016】
本発明は、特定の用途の実例的実施形態を参照して本明細書に記載されるが、本発明は、それに限定されないことを理解されたい。本明細書の教示が入手可能な当業者は、その範囲内の追加の修正、用途、および実施形態、ならびに本発明が大いに役立ち得る追加の分野を認識するであろう。
【0017】
デジタル画像の中の透かしは、画像、さらにはその画像のあらゆるデジタルコピーを識別するために使用することができる。透かしは、その画像の起源および/または所有に関するあらゆる識別基準を含むことができる。例えば、デジタルシグネチャ、ユーザ識別子、ロゴ、コード等は、デジタル画像で使用される一部の種類の透かしである。
【0018】
透かしは、デジタル画像の起源または所有を識別することを支援し、デジタル画像の不正な使用を低減することを支援するように、様々なアプリケーションのデジタル画像に使用することができる。本発明の実施形態を使用することができる1つの例示的環境は、WWW上での画像の不正なコピーおよび掲載を低減することを含む。例えば、本発明の実施形態は、どちらもGoogle(Mountain View、California)によって提供されるウェブに基づくサービスである、PICASAまたはORKUTに掲載された写真への、元々の掲載者のユーザ識別子を備える透かしの埋め込みを可能にし得る。透かし入り画像がコピーされて他の場所に掲載される時は常に、本発明の実施形態は、あらゆる関係するエンティティが、その画像が透かし入りであるかどうかを判定して、透かし入りであれば、埋め込まれた透かしを取り出すことを可能にすることができる。掲載された画像が既に透かし入りであると知覚することは、その信頼性に関する判定を可能にする。実際の埋め込まれた透かしの検索は、画像をその出処まで追跡することを可能にする。
【0019】
本発明の実施形態では、デジタル画像の透かし入れのための方法およびシステムを提示する。例示的実施形態は、透かし入りデジタル画像を作成するようにデジタル画像に情報を埋め込む方法と、デジタル画像から透かしを抽出する方法と、デジタル画像に透かしを入れるための方法とを含む。透かし入りデジタル画像を作成するための1つの方法は、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するステップと、係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、透かし入りデジタル画像を生成するように、透かしブロックのそれぞれに透かしを埋め込むステップと、透かし入りデジタル画像を出力するステップとを含む。透かしを抽出する方法は、デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、投影係数ブロック分布の各係数ブロックの中の所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【0020】
実施形態では、複数の利点が得られ得る。本発明の実施形態は、圧縮およびトリミングに対する増大した頑健性を達成するために、画像の上に透かしデータを重複させ得、また、規定の領域の上に透かしの各インスタンスを展開させ得る。透かしデータ要素の違った順序の回復は、実施形態において行われ得る。さらに、トリミングおよび圧縮に対する透かし入れの頑健性の増強も得られ得る。透かしの抽出から検出を分離することによって、本発明の実施形態は、プロセスの計算効率を大幅に増大させ得、また、頑健性を高め得る。例えば、本発明の実施形態は、非常に高度な圧縮および/またはトリミングに対する透かしの検出を可能にし、また、高度な圧縮および/またはトリミングに対する埋め込まれた透かしの抽出も可能にすることができる。本発明の実施形態はまた、人間の目には実質的に不可視であり、したがって、原画像を知覚可能に歪ませない、透かしを埋め込み得る。
【0021】
実施形態では、実用的であり、多数の画像を処理する環境での使用に対して計算的に効率的であり、かつ、WWWを含む環境におけるデジタル画像の誤用の低減に有効なツールとなるように圧縮およびトリミングに対して頑健である、透かし入れを提供する。
【0022】
(透かしの埋め込み)
図1は、本発明の実施形態による、デジタル画像に透かしを埋め込むためのプロセス100を例示する(ステップ102〜116)。ステップ102で、画像は、例えば離散コサイン変換(DCT)領域における係数の行列といった、代表的な数値係数行列に変換される。以下、係数の行列は、代替可能に「係数行列」または「DCT行列」と称する。本明細書の説明は、DCT領域における係数に基づく。しかしながら、デジタル画像に対応する係数行列を生ずる、周波数領域における他の変換も可能であり、本発明の実施形態の範囲内であることが意図される。
【0023】
図2は、本発明の実施形態による、係数行列200を例示する。係数行列200は、例えば、M×N係数を含む。例えば、DCT変換を使用して画像が変換される時、係数は、DCT係数である。M×Nの係数202等の係数は、例えば8×8係数といった所定のサイズの係数ブロック204等の、係数ブロック(CB)に論理的に区切られる。係数行列200の係数ブロックは、GOB206等のブロック群(GOB)に論理的に群化される。例えば、4つの隣接するDCTブロックは、対応するGOB206に含めることができる。次いで、係数行列200のGOBは、透かしブロック208等の透かしブロック(WB)に群化される。各透かしブロック208の中のGOBの数は、埋め込まれている透かしの特性に依存することができる。係数、係数ブロック、ブロック群、ならびに透かしブロックの機能および用途は、種々のプロセスに関して以下に説明する。
【0024】
係数行列(例えば、200)の中の係数(例えば、202)は、デジタル画像の画素に対応することができる。例えば、DCT変換は、デジタル画像の1つ以上の画素の各群に、周波数領域における1つの値を割り当てる。画像のDCT行列(2次元DCT)を計算する1つの方法は、Andrew B.Watsonの「Image Compression Using the Discrete Cosine Transform」、Mathematica Journal、v4(1)p.81−88(1994)で説明されている。
【0025】
ステップ104で、係数行列(例えば、200)の係数ブロック(例えば、204)が識別され、各係数ブロックに透かしインジケータが埋め込まれる。例えば、係数行列がM×N係数から成る場合、それを8×8係数ブロックに区切ることで、M/8×N/8係数ブロックとなる。透かしインジケータは、M/8×N/8係数ブロックのそれぞれに埋め込むことができる。
【0026】
透かしインジケータは、「透かしインジケータ係数セット」と称される、各係数ブロックの中の所定の一組の係数を、別の値と置換することによって埋め込むことができる。一実施形態では、各係数ブロックにおいて、係数の所定の対角の係数は、画像の透かしの存在を示す新しい値に設定することができる。例えば、図3に示されるように、GOB206で、それぞれの係数ブロック308A、308B、308C、および308Dの対角302A、302B、302C、および302Dを、透かしインジケータを埋め込むために選択することができる。対角302Aの中の係数ブロック、すなわち係数ブロック308Aに対応する透かしインジケータ係数セットは、その対角の係数の平均値に設定することができる。同様に、係数行列の中の全ての他の係数ブロックで302Aに対応する対角のそれぞれの係数は、それぞれの対角の係数の平均値に設定することができる。
【0027】
前述の実施例では、各係数ブロックに透かしインジケータを埋め込むための対角が選択されるが、これは、それらの対角の中の係数が、画像のDCT変換において、知覚範囲を上回り、かつJPEG圧縮による影響を実質的に受けない周波数構成要素を表すからである。同様に反復的で容易に決定可能な様式での、透かしインジケータ係数セットのための係数の他の選択肢が可能であり、本発明の実施形態の範囲内であることが意図される。また、透かしインジケータ係数セットの中の係数は、平均値以外の値に設定することも可能であることに留意されたい。
【0028】
反復的で容易に決定可能な様式での透かしインジケータの埋め込みは、本発明の実施形態の特性である、低減された実行時間、およびトリミングおよび圧縮に対する頑健性に寄与する。
【0029】
ステップ106で、GOB境界が決定される。一実施形態では、例えば、図2および3に示されるように、GOBは、2×2の係数ブロック配列、すなわち、2行および2列の係数ブロックで配置される4つの係数ブロックを含み得る。GOBを構成する選択される係数ブロックの数および編成についての他の選択肢が可能であり、本開示の教示の範囲内であることが意図される。
【0030】
ステップ108で、GOBの中の1つの係数ブロックが、「情報ブロック」に選択され、GOB内の別の2つのブロックが、「寄与ブロック」に選択される。情報ブロックは、透かしの全体または一部を保持する、係数ブロックである。寄与ブロックは、それに基づいて透かしデータが情報ブロックに埋め込まれる係数値を提供する、対応する情報ブロックと同じGOBの中の他の係数ブロックである。透かし係数セットのための係数値を導出するために使用される、寄与ブロックの中の係数は、透かし寄与係数セットと称することができる。一実施形態では、2×2係数ブロックのGOB206において、係数ブロック308Dは、情報ブロックに選択され、係数ブロック308Bおよび308Cは、寄与ブロックとして選択される。寄与ブロック308Bは、「上側ブロック」と称し、寄与ブロック308Cは、「左側ブロック」と称する。選択パターンは、係数行列の全てのGOBに共通である。
【0031】
所定数の係数は、情報ブロックで選択され(「透かし係数セット」と称する)、それらの値は、選択された透かしを符号化するように修正される。例えば、図3では、係数対角304Dを選択して、透かしの一部を埋め込むことができる。情報ブロックおよび寄与ブロック、ならびに透かし係数セットの数および編成についての他の選択肢が可能であり、本発明の実施形態の範囲内であることが意図される。
【0032】
ステップ110で、1つのWBに必要とされるGOBの数は、透かしおよび各GOBに埋め込まれる透かしのビット数に基づいて決定される。所定の透かしは、1つ以上の「透かしユニット」に分割することができ、各透かしユニットは、異なるGOBに埋め込むことができる。例えば、透かしが32ビット列であり、かつ8ビットの透かしを各GOBに埋め込むことにした場合、4つのGOBが、対応するWBを構成することができる。各WBは、選択された透かしの完全なインスタンスを埋め込むように、少なくとも十分な数のGOBを含む。
【0033】
ステップ112で、透かしは、順序抽出が保証されない時であっても頑健であるように定義することができる。例えば、透かし入り画像がトリミングされた時には、透かし入り画像から透かしを抽出する際に透かしの一部が誤った順序で返される可能性がある。「センチネルユニット」と称される付加的なデータを、所定の透かしの透かしユニットの間の選択された地点に挿入することができる。
【0034】
例えば、トリミングされた可能性が高く、32ビットの透かしが埋め込まれる、比較的に大きい画像を考察する。各GOBに4ビットを埋め込む場合、32ビットの透かし全体のうちの1つのインスタンスを埋め込むには、合計で8つのGOBが必要である。したがって、対応するWBは、少なくとも8つのGOBを含むべきである。概して、32ビットの透かしの4ビット部分(すなわち、透かしユニット)は、順番に対応するGOBに埋め込まれる。しかし、透かし入り画像がトリミングされる場合、それらの透かしの4ビット部分が取り出される順序は、それらが埋め込まれた順序と同じでないことがある。したがって、センチネルユニットは、透かしの透かしユニットの規則正しい順序で、所定の場所に散在させられ得る。例えば、4つのセンチネルユニットs1、s2、s3、s4は、{s1、d1、d2、d3、s2、d4、d5、d6、s3、d7、d8、s4}のような処理済みの透かしを構成する、合計で12の組み合わせられた透かしユニットおよびセンチネルユニットを有するように、{d1、d2、d3、d4、d5、d6、d7、d8}の8つの透かしユニットの順序に散在させられることができる。この処理済みの透かしユニットの順序は、3×4のGOB配列でWBに埋め込まれた場合、透かしユニットの抽出が順序を保たない時であっても、透かしユニットの順序を完全に決定することができる。
【0035】
ステップ114で、透かしは、抽出の際の順序を保つための処理の有無に関わらず、係数行列の中に埋め込まれる。本発明の一実施形態では、ステップ114は、図4の例示的プロセスにさらに詳細に例示されるように、係数行列の中に透かしを埋め込むために使用することができる。
【0036】
所定数の対角304Dの中の係数の値は、選択された透かしの各ビットを埋め込むように修正することができる。例えば、係数対角304Dの中の係数306Dは、対応する上側ブロックの中の係数306Bおよび左側ブロックの中の係数306Cの平均値に設定し、所定の一定値だけ上または下に調整することができる。埋め込まれる透かしの対応するビットが1である場合、上側ブロックおよび左側ブロックからの対応する係数の平均値は、所定の定数Qだけインクリメントされる。埋め込まれるビットが0である場合、上側ブロックおよび左側ブロックからの対応する係数の平均値は、所定の定数Qだけデクリメントされる。
【0037】
埋め込まれた透かしを表すように修正された値(すなわち、透かし係数セット)を有することになる対角304Dの中の係数は、無作為の選択に基づいて、または他の何らかの基準に基づいて予め定められる。デジタル画像のDCT変換では、対角304Dの中の係数は、概して、知覚画像に影響を及ぼさずに変化させることができる、周波数構成要素を表す。前述の実施例に従い、対応する透かしユニットを埋め込むために、対角304Dの中の任意の4つの係数を使用することができる。
【0038】
GOB206の対角304Dに1つの透かしユニットを埋め込むことと同様に、透かしインスタンス全体が順番に係数行列の各WBに埋め込まれるように、その透かしインスタンスの残りの透かしユニットを他のWBのGOBに埋め込むためにプロセスを繰り返す。
【0039】
図4に示されるプロセス114に戻ると、透かしは、以下のように係数行列の中に埋め込むことができる。ステップ402で、WBが選択される。概して、各WBは、対応する係数行列内のその配置の順番に、例えば、係数行列の左端から始まり、WBの次の行に移動する前に水平方向に横断して移動して、処理することができる。ステップ404で、選択された各WBについて、そのWB内のGOBが選択される。各インスタンスの中のGOBはまた、例えば、対応するWBの左端から始まり、WBの次の行に移動する前に水平方向に横断して移動する順番に選択することができる。
【0040】
ステップ406で、選択されたGOB内で、係数は、新しい値で更新されるように選択され、埋め込まれる透かしデータに従って修正される。前述のように、更新される係数、すなわち、透かし係数セットは、予め定めることができる。
【0041】
ステップ408で、透かし係数セットの中の1つの係数について、値は、上側ブロックおよび左側ブロックの中の対応する位置の係数の平均に設定される。次いで、ステップ410で、透かし係数セットの中のその係数について、埋め込まれるビットが0であるか1であるかに依存して、値は、それぞれ、所定の定数Qだけデクリメントまたはインクリメントされる。
【0042】
ステップ412で、処理されている透かしユニットについてより多くのデータを埋め込む必要があるかどうかに関して判定が行われる。YESの場合、処理は、現在のGOBの中の修正すべき次の係数を選択するために、ステップ406に戻る。NOの場合、ステップ414で、現在のWBにおいてより多くのGOBが処理されるべきことが分かった場合、処理は、ステップ404に戻り、次のGOBおよび次の埋め込まれる透かしユニットを選択する。現在のWBにおいてそれ以上のGOBが処理されず、ステップ416で、処理されるより多くのWBがある場合、処理は、ステップ402に移動し、次のWBを選択して透かしのインスタンスを埋め込む。ステップ416で、それ以上のWBが処理されないことが分かった場合は、デジタル画像の中の利用可能な全てのWBが、透かしのインスタンスを埋め込むように処理されている。プロセス114の完了時に、透かしインスタンスの全ての透かしユニットは、係数行列の各WBに埋め込まれる。
【0043】
図5は、本発明の実施形態による、画像が透かし入りであるかどうかを判定するために使用することができる、プロセス500を例示する。画像が既に透かし入りであることが分かった場合、プロセス500は、透かしを取り出すことを可能にする。画像が透かしを有さないことが分かった場合は、透かしが画像に埋め込まれる。
【0044】
一実施例では、プロセス500は、例えばウェブクローラまたは他のデバイスによって収集され、プロセス500にアクセス可能な1つ以上の記憶領域の中に置かれた一組の画像全体を処理する、プロセスの一部であり得る。ステップ501で、デジタル画像、例えばJPEG形式のデジタル画像は、例えばプロセス500にアクセス可能なWWWまたは他のリポジトリから取り出される。
【0045】
ステップ502で、デジタル画像は、埋め込まれた透かしを既に有するかどうかを判定するように処理される。透かしが既に埋め込まれたかどうかを判定する例示的な方法を、図6に関して後に説明する。ステップ504で、プロセス500は、ステップ502で透かしが検出されたかどうかに基づいて、処理の2つの分岐のうちの1つを選択する。透かしが検出された場合、処理は、ステップ510へ進み、透かしを抽出する。透かしを抽出する例示的な方法を、図6に関して後に説明する。ステップ502でいかなる透かしも検出されなかった場合、処理は、ステップ506へ進み、透かしを埋め込む。透かしを埋め込むために使用することができる例示的なプロセス100は、図1に関して前述した。
【0046】
(透かしの検出)
図6は、本発明の実施形態による、画像がデジタル透かしを含むかどうかを判定する、プロセス600を例示する。ステップ601で、画像は、前述のように係数行列に変換される。ステップ601は、別のプロセスによって係数行列が以前に生成されていない場合、またはプロセス600に利用できない場合にだけ必要である。ステップ602で、出発点が、処理されているデジタル画像を表す係数行列の中で決定される。例えば、プロセス600は、係数行列の場所(0,0)の係数を出発点とみなし得る。タプル(0,0)の第1の要素は係数行列の中の係数の行の位置を表し、第2の要素は列の位置を表す。プロセス600は、例えば8×8の係数ブロックで、第1の係数ブロックの左上角を係数(0,0)とみなすことによって、処理を開始することができる。したがって、ステップ602で、係数ブロック境界が決定される。このような境界決定に基づく全ての係数ブロックの一群は、係数ブロック分布と称することができる。係数ブロック分布の初期決定はまた、投影係数ブロック分布(projected coefficient block distribution)とみなされ得る。
【0047】
ステップ604で、想定された係数ブロック境界、すなわち、投影係数ブロック分布に基づいて、各係数ブロックの透かしインジケータ係数セットが処理される。例えば、図3に示される対角302Aに対応する6つの要素の対角は、対応する透かしインジケータ係数セットを構成するであろうことが予め定められ得る。
【0048】
各係数ブロックでは、透かしインジケータ係数セットの標準偏差が計算される。例えば、このステップでは、対角302Aの6つ全ての要素に対する標準偏差が計算される。
【0049】
ステップ606で、それぞれの透かしインジケータ係数セットが所定の透かしインジケータの閾値を下回る標準偏差を有する、係数ブロックのパーセンテージが決定される。したがって、決定されたパーセンテージが透かしインジケータの閾値よりも大きい場合は、ステップ608で、画像が透かしを含むものと判定される。そうでなければ、画像が透かし含まないという判定を行うことができる前にさらなる処理が必要である。
【0050】
ステップ606で決定された係数ブロックのパーセンテージが所定の透かしインジケータの閾値未満であった場合、プロセス600は、ステップ602に戻り、新しい係数ブロック境界、すなわち、新しい投影係数ブロック分布を選択する。
【0051】
プロセス600がステップ602に戻る度に、係数ブロック境界、具体的には、係数行列の中の第1の係数ブロックの左上の係数が、1つの係数ブロックの中の各係数を覆う様式で移動させられる。例えば、この実施例では、係数ブロックの左上の係数を、係数行列の左上角に固定される係数の8×8配列の中の次の要素に移動させる度に、プロセス600は、ステップ602に戻る。したがって、各投影係数ブロック分布は、係数の8×8配列内の新しい係数オフセットに基づく。
【0052】
新しい係数ブロック境界が選択された後に、処理は、ステップ604から606を通して進行する。1つの反復の際に、ステップ606で、所定の透かしインジケータの閾値未満である透かしインジケータ係数セットの標準偏差を有する係数ブロックのパーセンテージが、所望のパーセンテージよりも大きい場合は、ステップ608で、対応する画像が透かし入りであると判定される。
【0053】
一方で、プロセス600が、ステップ606で、透かしインジケータ係数セットの標準偏差が所定の透かしインジケータの閾値を下回る係数ブロックのパーセンテージを発見せずに、係数ブロック全体、例えば係数の8×8配列全体を通して反復した場合、画像は透かし入りではないと断定される。画像が透かし入りではないと判定された場合、例えば、画像に透かしを埋め込むように、プロセス100を起動し得る。
【0054】
ステップ606で、透かしインジケータ係数の標準偏差が所定の透かしインジケータの閾値を上回る、DCTブロックのパーセンテージが発見されたと判定された場合は、画像は透かし入りであると断定され、例えばプロセス700等のプロセスを、透かしを抽出するために使用することができる。
【0055】
本発明の種々の実施形態は、比較的に効率的な様式で、特定の画像が透かしを含むかどうかを判定することが可能である。最悪の事態では、検出プロセスは、1つの係数ブロックの配列サイズの各係数にわたって反復する。また、透かしがあらゆる係数ブロックに埋め込まれるので、透かし入り画像が圧縮またはトリミングされた時であっても、検出は非常に頑健である。
【0056】
(透かしの抽出)
図7は、画像から透かしを抽出するために使用することができる、プロセス700を例示する。透かしの抽出のプロセスは、WBの境界、すなわち、「透かしブロック分布」の決定、および次の、対応する「透かしユニットベクトル」、すなわち、透かしインスタンスの透かしユニットのベクトルの決定に基づく。
【0057】
透かしのサイズ、すなわち、透かしの長さは、各アプリケーションについて予め定めることができる。例えば、本発明の実施形態が、ORKUTソーシャルネットワーキングサイトに掲載される画像に適用される場合、関連する透かし埋め込みアプリケーションおよび透かし取り出しアプリケーションは、ORKUTアプリケーションの要件に基づいて、所定の長さの透かしを使用するように構成することができる。例えば、32ビットの透かしが、ORKUTと関連する利用者IDの決定部分を埋め込むために十分であり得る。同様に、係数ブロックサイズ、GOBサイズ、WBサイズ、透かしインジケータ係数(透かしインジケータ係数セット)の位置、および透かし係数(透かし係数セット)の位置は、プロセス700が、埋め込まれた透かしを取り出すように、画像を処理し始めた時に、該プロセスによって知ることができる。
【0058】
例えばプロセス600を使用して、画像が透かし入りであるかどうかを既に判定していることによって、処理されているデジタル画像に対応する係数行列の中の係数ブロック境界をプロセス700に使用することができる。ステップ702で、透かしの判定および取り出しのための出発点が決定される。一実施形態では、プロセス700の出発点は、透かし検出プロセスによって決定される、係数行列の左上において係数ブロック境界として選択される。例えば、プロセス700は、係数行列場所804の係数を出発点とみなし得る。すなわち、係数行列の中の第1のWBの第1の係数ブロックである。透かしのサイズ、すなわち、透かしの長さは、各アプリケーションについて予め定めることができる。したがって、ステップ702で、WB境界が決定される。これは、投影透かしブロック分布(projected watermark block distribution)とみなすことができる。
【0059】
ステップ704で、現在想定されているWB境界、すなわち、現在の投影透かしブロック分布に基づいて、透かしインスタンスを埋め込む係数に対応するデータベクトルが、処理されている画像の中の各WBから取り出される。現在の投影透かしブロック分布に基づいて、それぞれのGOB境界が決定される。例えば、図8の画像800では、プロセス700は、1つの投影透かしブロック分布において、WB810に基づいてWB境界を想定した時に、GOB808を含む、対応するGOB境界を決定することができる。
【0060】
投影透かしブロック分布の中の各WBから、透かしユニットベクトルが生成され、係数行列のその投影透かしブロック分布のための透かしユニットベクトルセットを生ずる。ステップ706で、プロセス700が、より多くの係数ブロックオフセットにわたって反復すべきかどうかを判定し、結果がYESであれば、プロセス700は、ステップ702に戻る。一実施例では、投影GOB内の各係数ブロックオフセットは、順々に試みることができる。
【0061】
ステップ702および704は、各投影透かしブロック分布について繰り返される。各投影透かしブロック分布は、1つのGOBの範囲内で異なる係数ブロックオフセットを考慮することによって決定され得る。
【0062】
投影透かしブロック分布の現在処理されているWBに対する各GOBでは、透かし係数セットの中の各係数は、寄与ブロック、例えば上側ブロックおよび左側ブロックの中の対応する係数の平均値に対して比較される。透かし係数セットの中の係数が、寄与ブロックの中の対応する係数の平均値よりも高かった場合、その係数は、埋め込まれた透かしにおける「1」を表すものとみなすことができる。透かし係数セットの中の係数が、上側ブロックおよび左側ブロックの中の対応する係数の平均値よりも低かった場合、その係数は、「0」を表すものとみなすことができる。画像のための全体の透かしユニットベクトルセットは、投影透かしブロック分布について、投影透かしブロック分布に従って、各WBの各GOBの中の透かし係数セットの各係数について、この係数平均の比較を繰り返すことによって生成することができる。
【0063】
他の実施形態では、ステップ706で、係数ブロックオフセット以外の基準に基づいて順々に、ステップ702から704を反復してもよく、例えば、係数ブロックオフセットは、ランダムパターンで試みてもよく、または行および列索引に基づく他のオフセットを使用することができる。
【0064】
ステップ706で、十分な数の透かしユニットベクトルセットが生成されたと判定された時、例えば、ステップ702から704が投影GOB内の係数ブロックオフセットの全てにわたって反復された時に、プロセス700は、ステップ708に進む。ステップ708で、複数組の透かしユニットベクトルのうちの1つが、埋め込まれたデータを表すものとして選択される。
【0065】
一実施形態では、埋め込まれたデータを表すものとして複数組の透かしデータのうちの1つの選択は、透かしユニットベクトルの各組について計算される相関計量に基づいてもよい。相関計量は、例えば、多数決要素の発生の頻度に基づくことができる。一実施形態では、各GOBについて、透かしユニットベクトルの全てにわたって、対応する一組の透かしユニットベクトルにおいて、最も頻繁に生じる透かしユニットを識別することができる。その一組の透かしユニットベクトルの相関計量は、全てのGOBにわたって合計した、最も頻繁に生じる透かしユニットの発生数であり得る。
【0066】
透かしユニットの発生の頻度に基づいて相関計量を決定するための前述した方法は、例えば選択された局所領域の破壊等の、JPG画像に観察される多数の種類の破壊に対して非常に耐性があることが観察されている。相関計量を決定する他の方法が可能であり、この開示の教示の範囲内であることが意図される。例えば、ビット単位の相関は、相関計量値に到達するように、各セットの中の透かしユニットベクトルの全ての間で実施することができる。
【0067】
ステップ710で、埋め込まれたデータを表すように、最も高い相関を伴う一組の透かしユニットベクトルが決定される。例えば、埋め込まれたデータを表すように、最も高い相関計量を有する一組の透かしユニットベクトルを選択することができる。次いで、各ベクトルが1つのWBの中の透かし係数を表すので、実際の埋め込まれた透かしを、一組のベクトルから決定することができる。例えば、大部分の他のベクトルに一致するベクトルを選択することができ、取り込まれたそのデータユニットは、埋め込まれた透かしを表す。
【0068】
画像がトリミングされた場合、選択されたベクトルは、埋め込まれた透かしを表すのに適切な順序の透かしユニットを有していない可能性が非常に高い。違った順序での抽出で処理された後に、透かしが埋め込まれた場合、例えば、実際の透かしユニット(例えば、前述のプロセス100のステップ110および112の説明を参照されたい)の間にセンチネルユニットを挿入し、次いで、挿入されたセンチネルユニットを使用することによって、実際のデータユニットは、実際の透かしを得るように並び替えられ得る。違った順序でデータユニットを抽出し、さらには実際の透かしを決定することが可能である能力は、本明細書に開示される方法およびシステムを、トリミングに対して頑健であるものにする主要な特性である。
【0069】
(他の例示的実施形態)
別の実施形態では、透かしおよび透かしインジケータを、画像の1つ以上の選択された領域だけに埋め込むことができる。いくつかの用途では、新しいデータを埋め込むことを制限することで、透かしの破壊に耐え、データマークの埋め込みおよび抽出の際の計算効率を向上させる、方法の能力を向上させ得る。例えば、一組の所定のホットスポットのうちの1つ以上を、透かしを入れる各画像の中で識別することができる。透かしは、それらのホットスポットだけに挿入することができる。一実施形態では、顔、または目、口、鼻等の他のより具体的なホットスポットを検出するように、顔検出またはエッジ検出機構を採用することができ、透かしおよび透かしインジケータを、選択されたホットスポットを覆う画像の領域の中に挿入することができる。
【0070】
図9は、本発明の実施形態による、画像に透かしを埋め込み、画像が透かし入りであるかどうかを判定し、および/または画像から透かしを抽出する、埋め込みシステム900である。システム900は、プロセッサ901と、メモリ903と、記憶装置905と、入力インターフェース907と、出力インターフェース909と、通信デバイス930と、透かし入れモジュール910とを含む、汎用または特殊用途コンピュータであり得る。
【0071】
プロセッサ901には、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または類似した処理デバイスが挙げられる。メモリ903には、ランダムアクセスメモリ等の一時的なデジタルメモリデバイスが挙げられ、記憶デバイス905には、ハードディスク、フラッシュメモリ、または読取専用メモリ(ROM)等の永続的な記憶デバイスが挙げられるが、これに限定されない。入力インターフェース907には、1つ以上のキーボード、マウス、ペン型入力デバイス、ネットワークへの接続部、または外部のデバイスへの接続部が挙げられるが、これに限定されない。出力デバイス909には、1つ以上のディスプレイ、ネットワークへの接続部、または他の外部デバイスが挙げられるが、これに限定されない。通信デバイス930には、周辺機器相互接続(PCI)規格、または拡張業界標準アーキテクチャ(EISA)に準拠するデバイスなどが挙げられるが、これに限定されない。
【0072】
透かしモジュール910は、本発明の実施形態の機能を実装する、副モジュールを含む。透かしモジュール910は、係数計算モジュール912と、透かし埋め込みモジュール914と、透かしインジケータ埋め込みモジュール916と、透かし抽出器モジュール918と、透かし検出器モジュール920とを含む。これらのモジュールのそれぞれの機能は、ハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせを使用して実装することができる。
【0073】
これらの副モジュールの機能は、プロセッサ901の管理下で実装することができる。例えば、プロセッサ901は、入力インターフェース907を通しての画像の受信、透かしモジュール910の中の1つ以上のモジュールを使用した画像の処理、および出力インターフェース909を通しての処理済み画像の出力を制御することができる。例えば、透かしモジュール910を使用した画像の処理中に、原画像および処理されている画像がメモリ903に存在し得る。記憶装置905は、例えば、処理中に、情報を一時的に記憶するために、または後処理画像および情報を記憶するために使用され得る。モジュール912から920はまた、2つ以上の相互結合したコンピュータ上に分散様式で実装され得る。
【0074】
係数計算モジュール912は、例えば画像の係数行列を生成するように、例えばJPG形式の画像といった画像を、周波数領域の係数表現に変換する機能を含む。前述のように、係数行列は、画像のDCT変換に対応するDCT行列であることができる。係数計算モジュール912はまた、本発明に従って処理する前または後に、係数行列をJPG等の画像形式に転換する機能を含む。例えば、係数計算モジュール912は、逆DCT変換を実施する能力を含むことができる。係数計算モジュール912は、プロセス100のステップ102および116に関して説明される機能の全てまたは一部を含むことができる。一実施形態では、係数計算モジュール912は、前述のようにプロセス100のステップ102および116を実装するように構成される。
【0075】
透かし埋め込みモジュール914は、所定の透かしを画像の係数行列表現に埋め込む機能を含む。例えば、透かし埋め込みモジュール914は、プロセス100のステップ106、108、110、112、および114に関して説明される機能の全てまたは一部を含むことができる。一実施形態では、透かし埋め込みモジュール914は、前述のようにプロセス100のステップ106、108、110、112、および114を実装するように構成される。
【0076】
透かしインジケータ埋め込みモジュール916は、本発明の実施形態による、画像に透かしインジケータを埋め込む機能を含む。例えば、透かしインジケータ埋め込みモジュール916は、プロセス100のステップ104に関して説明される機能を含むことができる。一実施形態では、透かしインジケータ埋め込みモジュール916は、前述のようにプロセス100のステップ104を実装するように構成される。
【0077】
透かし抽出器モジュール918は、本発明の実施形態による、画像から埋め込まれた実際の透かしを抽出する機能を含む。例えば、透かし抽出器モジュールは、プロセス700に関して説明される機能を含むことができる。一実施形態では、透かし抽出器モジュール918は、前述のようにプロセス700のステップ702から710を実装するように構成される。
【0078】
透かし検出器モジュール920は、本発明の実施形態による、画像の中の透かしの存在を検出する機能を含む。例えば、透かし検出器モジュール920は、画像を処理して、十分な数の透かしインジケータの存在を発見することができる。透かし検出器モジュール920は、プロセス600に関して説明される機能を含むことができる。一実施形態では、透かし抽出器モジュール920は、前述のようにプロセス600のステップ601から608を実装するように構成される。
【0079】
図10は、本発明の実施形態による、処理の前および後の例示的な画像を示す。画像1001は、処理前の画像であり、画像1002は、本発明の実施形態に従って処理した後の同じ画像1001である。画像1002には、16×16の画素領域毎に32ビットの透かしが埋め込まれ、透かしインジケータは、8×8の画素領域毎に含まれている。2つの画像の比較は、本発明の実施形態に従って埋め込まれた透かしを有する画像1002が、画像1001とはいかなる知覚可能な差異も有さないこと、すなわち、透かしが実質的に不可視であることを示している。
【0080】
発明の概要および要約の項は、本発明者らによって検討されるような、本発明の全てではないが1つ以上の例示的実施形態を説明してもよく、したがって、決して本発明および添付の図面を制限することを目的としない。
【0081】
特定の機能の実装およびその関係を例証する機能的構成要素を用いて、本発明を上記で説明している。これらの機能的構成要素の境界は、説明の便宜上、本明細書では任意に規定されている。特定の機能およびその関係が適切に実施される限り、代替境界を規定することができる。
【0082】
具体的実施形態の先述の説明は、本発明の一般概念から逸脱することなく、必要以上の実験を伴わずに、当技術分野内の知識を適用することによって、他者が種々の用途についてそのような具体的実施形態を容易に修正および/または適合させることができる、本発明の一般的性質を完全に明らかにする。したがって、そのような適合および修正は、本明細書で提示される教示および指導に基づいて、開示された実施形態の同等物の意味および範囲内となることを目的とする。本明細書の用語または表現が、教示および指導に照らして当業者によって解釈されるように、本明細書の表現または用語は、限定ではなく説明の目的によるものであると理解されたい。
【0083】
本発明の幅および範囲は、上記の例示的実施形態のうちのいずれかによって決して制限されるべきではないが、以下の請求項およびそれらの同等物のみに従って定義されるべきである。
【技術分野】
【0001】
本発明は、デジタル画像の透かし入れに関する。
【背景技術】
【0002】
デジタル撮像は、画像をデジタルデータで表すことを可能にする。ワールドワイドウェブ(WWW)の可用性およびアクセス、ならびにデジタル撮像技術の広範囲にわたる可用性の増大に伴って、デジタル画像の数およびそれらを使用する頻度が増大している。多数のアプリケーションは、閲覧、編集、または共有等の目的のために、特定のデジタル画像または画像集へのアクセシビリティを多数の異なるユーザに提供する。例えば、人、動物、物体、および景色のデジタル画像は、しばしば、選択した人々の群または一般大衆と画像を共有することを意図して、それらの画像の所有者によってWWW上に掲載される。
【0003】
しかしながら、WWW上のこれらのデジタル画像のアクセシビリティは、他者が、不正な目的でそれらをコピーして使用することを容易にしている。例えば、Google’s Orkutのソーシャルネットワーキングコミュニティのメンバーは、自分自身のブログに掲載した材料の所有者として、自分自身を識別するように、画像を掲載する場合がある。別の人が、この画像をコピーして、それを自分のものであるとして他の場所に掲載する場合がある。デジタル画像を正当なユーザ以外の人がコピーして使用することができる、前述のような数多くの例が存在する。
【0004】
画像の不正なコピーを低減するために使用される1つの技術は、透かし入れの技術である。デジタル画像の透かし入れは、その画像へのデジタル透かし(単純に「透かし」と称する)の埋め込みを含む。透かしは、デジタルシグネチャ、ユーザ識別子、ロゴ、またはその起源または所有に関して画像を十分に識別することができる類似した値であることができる。埋め込まれた透かしが原画像の見た目を変えないことが大変望ましく、すなわち、透かしは、実質的に人間の目に不可視であるべきである。従来の透かし入れ方法の多くにおいて、透かしは、原画像の見た目を知覚可能に変化させる。
【0005】
デジタル画像は、概して、Joint Photographic Experts Group(JPEGまたはJPG)等の圧縮形態、または他の種類の画像圧縮形式で、WWW上に掲載される。画像圧縮方法は、選択された画像画素の値を変化させるので、画像の見た目が変化するように、および/または透かしが復元不可能になるというように、埋め込まれた透かしが影響を受ける可能性がある。したがって、透かしが、JPEG60またはJPEG80圧縮等の高レベルの圧縮に耐えるように頑健であることも望ましい。
【0006】
しばしば、デジタル画像をコピーする人はまた、例えば原画像をトリミングすることによって、画像を変化させることにも関与する。有効にするためには、そのようなトリミングが行われた後に、埋め込まれた透かしが、コピーされた画像から検出可能および/または取り出し可能でもあるべきである。
【0007】
デジタル透かし入れには、数多くのアプローチが提案されてきた。例えば、1つのアプローチは、画像に対する離散コサイン変換(DCT)係数行列(DCT行列)の生成、係数行列を1つ以上の透かしブロックに分割すること、および透かしブロックのそれぞれにデジタルシグネチャを埋め込むことを含む。非特許文献1は、そのようなアプローチを説明している。Lieらによって説明される方法は、対応するDCT行列の中の異なる画像の区間に、反復して透かしを埋め込む。しかしながら、この方法は、トリミングに対して脆弱であり、計算的に高価である。例えば、Linらの方法を使用して埋め込まれた透かしを有する透かし入り画像は、トリミングした画像が透かし入り画像として認識されることを妨げる可能性がある。また、Lieらによって説明される方法は、画像が透かし入りであることを判定するために、元々埋め込まれた透かしの本質的部分の識別を必要とすることによって、比較的に高い計算コストを被る。
【0008】
したがって、デジタル画像の透かし入れのための改良された方法およびシステムが必要である。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】Wen−Nung Lie、Guo−Shiang Lin、Chih−Liang Wu、およびTa−Chun Wangによる「Robust Image Watermarking On the DCT Domain」、IEEE International Symposium on Circuits and Systems、Geneva、(2000)
【発明の概要】
【課題を解決するための手段】
【0010】
デジタル画像の透かし入れのための方法およびシステムを提示する。一実施形態は、透かし入りデジタル画像を作成するようにデジタル画像に情報を埋め込む方法である。方法は、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するステップと、係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、透かし入りデジタル画像を生成するように、透かしブロックのそれぞれに透かしを埋め込むステップと、透かし入りデジタル画像を出力するステップとを含む。
【0011】
別の実施形態は、デジタル画像から透かしを抽出する方法である。方法は、デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、投影係数ブロック分布の各係数ブロックにおける所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【0012】
さらに別の実施形態は、デジタル画像に透かしを入れるためのシステムである。システムは、プロセッサと、メモリと、画像変換モジュールと、透かし埋め込みモジュールとを含む。画像変換モジュールは、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される。透かし埋め込みモジュールは、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成される。透かしインジケータ埋め込みモジュールは、複数の係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される。
【0013】
さらなる実施形態は、デジタル画像から透かしを抽出するためのシステムであって、プロセッサと、メモリと、画像変換モジュールと、透かしインジケータ検出モジュールと、透かし抽出器モジュールとを有する。画像変換モジュールは、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される。透かしインジケータ検出モジュールは、投影係数ブロック分布の各係数ブロックにおける所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するように構成される。透かし抽出器モジュールはさらに、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成される。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【0014】
本発明のさらなる特徴および利点、ならびにその種々の実施形態の構造および動作は、添付の図面を参照して、以下に詳細に記載される。本発明は、本明細書に記載される具体的実施形態に限定されないことが留意される。そのような実施形態は、例示するためだけに本明細書に提示される。追加の実施形態は、本明細書に包含される教示に基づき、関連技術分野に精通する者に明らかとなるであろう。
【図面の簡単な説明】
【0015】
実施例が添付の図面中に図示され得る、本発明の実施形態が参照される。これらの図面は、制限ではなく、例示であることが意図される。本発明は、概して、これらの実施形態の文脈において記載されるが、本発明の範囲をこれらの特定の実施形態に制限することは意図されないことを理解されたい。
【図1】図1は、本発明の実施形態による、デジタル画像に透かしを埋め込む方法のフローチャートである。
【図2】図2は、本発明の実施形態による、画像の係数配列表現を示す図である。
【図3】図3は、本発明の実施形態による、透かし情報を埋め込むことができる画像の配列表現で例示的場所を示す図である。
【図4】図4は、本発明の実施形態による、デジタル画像に透かしを埋め込む方法のフローチャートである。
【図5】図5は、本発明の実施形態による、デジタル画像が透かしを含むかどうかを判定する方法のフローチャートである。
【図6】図6は、本発明の実施形態による、画像が透かし入りであるかどうかを判定するためのプロセスを例示する図である。
【図7】図7は、本発明の実施形態による、画像から埋め込まれた透かしを抽出するためのプロセスを例示する図である。
【図8】図8は、本発明の実施形態による、画像から埋め込まれた透かしを抽出するためのプロセスの側面を例示する図である。
【図9】図9は、本発明の実施形態による、画像に透かしを入れるためのシステムの図である。
【図10】図10は、本発明の実施形態による、透かしを入れる前および後の画像を示す図である。
【発明を実施するための形態】
【0016】
本発明は、特定の用途の実例的実施形態を参照して本明細書に記載されるが、本発明は、それに限定されないことを理解されたい。本明細書の教示が入手可能な当業者は、その範囲内の追加の修正、用途、および実施形態、ならびに本発明が大いに役立ち得る追加の分野を認識するであろう。
【0017】
デジタル画像の中の透かしは、画像、さらにはその画像のあらゆるデジタルコピーを識別するために使用することができる。透かしは、その画像の起源および/または所有に関するあらゆる識別基準を含むことができる。例えば、デジタルシグネチャ、ユーザ識別子、ロゴ、コード等は、デジタル画像で使用される一部の種類の透かしである。
【0018】
透かしは、デジタル画像の起源または所有を識別することを支援し、デジタル画像の不正な使用を低減することを支援するように、様々なアプリケーションのデジタル画像に使用することができる。本発明の実施形態を使用することができる1つの例示的環境は、WWW上での画像の不正なコピーおよび掲載を低減することを含む。例えば、本発明の実施形態は、どちらもGoogle(Mountain View、California)によって提供されるウェブに基づくサービスである、PICASAまたはORKUTに掲載された写真への、元々の掲載者のユーザ識別子を備える透かしの埋め込みを可能にし得る。透かし入り画像がコピーされて他の場所に掲載される時は常に、本発明の実施形態は、あらゆる関係するエンティティが、その画像が透かし入りであるかどうかを判定して、透かし入りであれば、埋め込まれた透かしを取り出すことを可能にすることができる。掲載された画像が既に透かし入りであると知覚することは、その信頼性に関する判定を可能にする。実際の埋め込まれた透かしの検索は、画像をその出処まで追跡することを可能にする。
【0019】
本発明の実施形態では、デジタル画像の透かし入れのための方法およびシステムを提示する。例示的実施形態は、透かし入りデジタル画像を作成するようにデジタル画像に情報を埋め込む方法と、デジタル画像から透かしを抽出する方法と、デジタル画像に透かしを入れるための方法とを含む。透かし入りデジタル画像を作成するための1つの方法は、デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するステップと、係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、透かし入りデジタル画像を生成するように、透かしブロックのそれぞれに透かしを埋め込むステップと、透かし入りデジタル画像を出力するステップとを含む。透かしを抽出する方法は、デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、投影係数ブロック分布の各係数ブロックの中の所定の透かしインジケータ係数セットに基づいて、デジタル画像が透かし入りであるかどうかを判定するステップと、投影透かしブロック分布の投影透かしブロックから透かしを取り出すステップとを含む。投影透かしブロック分布は、投影係数ブロック分布に基づく。
【0020】
実施形態では、複数の利点が得られ得る。本発明の実施形態は、圧縮およびトリミングに対する増大した頑健性を達成するために、画像の上に透かしデータを重複させ得、また、規定の領域の上に透かしの各インスタンスを展開させ得る。透かしデータ要素の違った順序の回復は、実施形態において行われ得る。さらに、トリミングおよび圧縮に対する透かし入れの頑健性の増強も得られ得る。透かしの抽出から検出を分離することによって、本発明の実施形態は、プロセスの計算効率を大幅に増大させ得、また、頑健性を高め得る。例えば、本発明の実施形態は、非常に高度な圧縮および/またはトリミングに対する透かしの検出を可能にし、また、高度な圧縮および/またはトリミングに対する埋め込まれた透かしの抽出も可能にすることができる。本発明の実施形態はまた、人間の目には実質的に不可視であり、したがって、原画像を知覚可能に歪ませない、透かしを埋め込み得る。
【0021】
実施形態では、実用的であり、多数の画像を処理する環境での使用に対して計算的に効率的であり、かつ、WWWを含む環境におけるデジタル画像の誤用の低減に有効なツールとなるように圧縮およびトリミングに対して頑健である、透かし入れを提供する。
【0022】
(透かしの埋め込み)
図1は、本発明の実施形態による、デジタル画像に透かしを埋め込むためのプロセス100を例示する(ステップ102〜116)。ステップ102で、画像は、例えば離散コサイン変換(DCT)領域における係数の行列といった、代表的な数値係数行列に変換される。以下、係数の行列は、代替可能に「係数行列」または「DCT行列」と称する。本明細書の説明は、DCT領域における係数に基づく。しかしながら、デジタル画像に対応する係数行列を生ずる、周波数領域における他の変換も可能であり、本発明の実施形態の範囲内であることが意図される。
【0023】
図2は、本発明の実施形態による、係数行列200を例示する。係数行列200は、例えば、M×N係数を含む。例えば、DCT変換を使用して画像が変換される時、係数は、DCT係数である。M×Nの係数202等の係数は、例えば8×8係数といった所定のサイズの係数ブロック204等の、係数ブロック(CB)に論理的に区切られる。係数行列200の係数ブロックは、GOB206等のブロック群(GOB)に論理的に群化される。例えば、4つの隣接するDCTブロックは、対応するGOB206に含めることができる。次いで、係数行列200のGOBは、透かしブロック208等の透かしブロック(WB)に群化される。各透かしブロック208の中のGOBの数は、埋め込まれている透かしの特性に依存することができる。係数、係数ブロック、ブロック群、ならびに透かしブロックの機能および用途は、種々のプロセスに関して以下に説明する。
【0024】
係数行列(例えば、200)の中の係数(例えば、202)は、デジタル画像の画素に対応することができる。例えば、DCT変換は、デジタル画像の1つ以上の画素の各群に、周波数領域における1つの値を割り当てる。画像のDCT行列(2次元DCT)を計算する1つの方法は、Andrew B.Watsonの「Image Compression Using the Discrete Cosine Transform」、Mathematica Journal、v4(1)p.81−88(1994)で説明されている。
【0025】
ステップ104で、係数行列(例えば、200)の係数ブロック(例えば、204)が識別され、各係数ブロックに透かしインジケータが埋め込まれる。例えば、係数行列がM×N係数から成る場合、それを8×8係数ブロックに区切ることで、M/8×N/8係数ブロックとなる。透かしインジケータは、M/8×N/8係数ブロックのそれぞれに埋め込むことができる。
【0026】
透かしインジケータは、「透かしインジケータ係数セット」と称される、各係数ブロックの中の所定の一組の係数を、別の値と置換することによって埋め込むことができる。一実施形態では、各係数ブロックにおいて、係数の所定の対角の係数は、画像の透かしの存在を示す新しい値に設定することができる。例えば、図3に示されるように、GOB206で、それぞれの係数ブロック308A、308B、308C、および308Dの対角302A、302B、302C、および302Dを、透かしインジケータを埋め込むために選択することができる。対角302Aの中の係数ブロック、すなわち係数ブロック308Aに対応する透かしインジケータ係数セットは、その対角の係数の平均値に設定することができる。同様に、係数行列の中の全ての他の係数ブロックで302Aに対応する対角のそれぞれの係数は、それぞれの対角の係数の平均値に設定することができる。
【0027】
前述の実施例では、各係数ブロックに透かしインジケータを埋め込むための対角が選択されるが、これは、それらの対角の中の係数が、画像のDCT変換において、知覚範囲を上回り、かつJPEG圧縮による影響を実質的に受けない周波数構成要素を表すからである。同様に反復的で容易に決定可能な様式での、透かしインジケータ係数セットのための係数の他の選択肢が可能であり、本発明の実施形態の範囲内であることが意図される。また、透かしインジケータ係数セットの中の係数は、平均値以外の値に設定することも可能であることに留意されたい。
【0028】
反復的で容易に決定可能な様式での透かしインジケータの埋め込みは、本発明の実施形態の特性である、低減された実行時間、およびトリミングおよび圧縮に対する頑健性に寄与する。
【0029】
ステップ106で、GOB境界が決定される。一実施形態では、例えば、図2および3に示されるように、GOBは、2×2の係数ブロック配列、すなわち、2行および2列の係数ブロックで配置される4つの係数ブロックを含み得る。GOBを構成する選択される係数ブロックの数および編成についての他の選択肢が可能であり、本開示の教示の範囲内であることが意図される。
【0030】
ステップ108で、GOBの中の1つの係数ブロックが、「情報ブロック」に選択され、GOB内の別の2つのブロックが、「寄与ブロック」に選択される。情報ブロックは、透かしの全体または一部を保持する、係数ブロックである。寄与ブロックは、それに基づいて透かしデータが情報ブロックに埋め込まれる係数値を提供する、対応する情報ブロックと同じGOBの中の他の係数ブロックである。透かし係数セットのための係数値を導出するために使用される、寄与ブロックの中の係数は、透かし寄与係数セットと称することができる。一実施形態では、2×2係数ブロックのGOB206において、係数ブロック308Dは、情報ブロックに選択され、係数ブロック308Bおよび308Cは、寄与ブロックとして選択される。寄与ブロック308Bは、「上側ブロック」と称し、寄与ブロック308Cは、「左側ブロック」と称する。選択パターンは、係数行列の全てのGOBに共通である。
【0031】
所定数の係数は、情報ブロックで選択され(「透かし係数セット」と称する)、それらの値は、選択された透かしを符号化するように修正される。例えば、図3では、係数対角304Dを選択して、透かしの一部を埋め込むことができる。情報ブロックおよび寄与ブロック、ならびに透かし係数セットの数および編成についての他の選択肢が可能であり、本発明の実施形態の範囲内であることが意図される。
【0032】
ステップ110で、1つのWBに必要とされるGOBの数は、透かしおよび各GOBに埋め込まれる透かしのビット数に基づいて決定される。所定の透かしは、1つ以上の「透かしユニット」に分割することができ、各透かしユニットは、異なるGOBに埋め込むことができる。例えば、透かしが32ビット列であり、かつ8ビットの透かしを各GOBに埋め込むことにした場合、4つのGOBが、対応するWBを構成することができる。各WBは、選択された透かしの完全なインスタンスを埋め込むように、少なくとも十分な数のGOBを含む。
【0033】
ステップ112で、透かしは、順序抽出が保証されない時であっても頑健であるように定義することができる。例えば、透かし入り画像がトリミングされた時には、透かし入り画像から透かしを抽出する際に透かしの一部が誤った順序で返される可能性がある。「センチネルユニット」と称される付加的なデータを、所定の透かしの透かしユニットの間の選択された地点に挿入することができる。
【0034】
例えば、トリミングされた可能性が高く、32ビットの透かしが埋め込まれる、比較的に大きい画像を考察する。各GOBに4ビットを埋め込む場合、32ビットの透かし全体のうちの1つのインスタンスを埋め込むには、合計で8つのGOBが必要である。したがって、対応するWBは、少なくとも8つのGOBを含むべきである。概して、32ビットの透かしの4ビット部分(すなわち、透かしユニット)は、順番に対応するGOBに埋め込まれる。しかし、透かし入り画像がトリミングされる場合、それらの透かしの4ビット部分が取り出される順序は、それらが埋め込まれた順序と同じでないことがある。したがって、センチネルユニットは、透かしの透かしユニットの規則正しい順序で、所定の場所に散在させられ得る。例えば、4つのセンチネルユニットs1、s2、s3、s4は、{s1、d1、d2、d3、s2、d4、d5、d6、s3、d7、d8、s4}のような処理済みの透かしを構成する、合計で12の組み合わせられた透かしユニットおよびセンチネルユニットを有するように、{d1、d2、d3、d4、d5、d6、d7、d8}の8つの透かしユニットの順序に散在させられることができる。この処理済みの透かしユニットの順序は、3×4のGOB配列でWBに埋め込まれた場合、透かしユニットの抽出が順序を保たない時であっても、透かしユニットの順序を完全に決定することができる。
【0035】
ステップ114で、透かしは、抽出の際の順序を保つための処理の有無に関わらず、係数行列の中に埋め込まれる。本発明の一実施形態では、ステップ114は、図4の例示的プロセスにさらに詳細に例示されるように、係数行列の中に透かしを埋め込むために使用することができる。
【0036】
所定数の対角304Dの中の係数の値は、選択された透かしの各ビットを埋め込むように修正することができる。例えば、係数対角304Dの中の係数306Dは、対応する上側ブロックの中の係数306Bおよび左側ブロックの中の係数306Cの平均値に設定し、所定の一定値だけ上または下に調整することができる。埋め込まれる透かしの対応するビットが1である場合、上側ブロックおよび左側ブロックからの対応する係数の平均値は、所定の定数Qだけインクリメントされる。埋め込まれるビットが0である場合、上側ブロックおよび左側ブロックからの対応する係数の平均値は、所定の定数Qだけデクリメントされる。
【0037】
埋め込まれた透かしを表すように修正された値(すなわち、透かし係数セット)を有することになる対角304Dの中の係数は、無作為の選択に基づいて、または他の何らかの基準に基づいて予め定められる。デジタル画像のDCT変換では、対角304Dの中の係数は、概して、知覚画像に影響を及ぼさずに変化させることができる、周波数構成要素を表す。前述の実施例に従い、対応する透かしユニットを埋め込むために、対角304Dの中の任意の4つの係数を使用することができる。
【0038】
GOB206の対角304Dに1つの透かしユニットを埋め込むことと同様に、透かしインスタンス全体が順番に係数行列の各WBに埋め込まれるように、その透かしインスタンスの残りの透かしユニットを他のWBのGOBに埋め込むためにプロセスを繰り返す。
【0039】
図4に示されるプロセス114に戻ると、透かしは、以下のように係数行列の中に埋め込むことができる。ステップ402で、WBが選択される。概して、各WBは、対応する係数行列内のその配置の順番に、例えば、係数行列の左端から始まり、WBの次の行に移動する前に水平方向に横断して移動して、処理することができる。ステップ404で、選択された各WBについて、そのWB内のGOBが選択される。各インスタンスの中のGOBはまた、例えば、対応するWBの左端から始まり、WBの次の行に移動する前に水平方向に横断して移動する順番に選択することができる。
【0040】
ステップ406で、選択されたGOB内で、係数は、新しい値で更新されるように選択され、埋め込まれる透かしデータに従って修正される。前述のように、更新される係数、すなわち、透かし係数セットは、予め定めることができる。
【0041】
ステップ408で、透かし係数セットの中の1つの係数について、値は、上側ブロックおよび左側ブロックの中の対応する位置の係数の平均に設定される。次いで、ステップ410で、透かし係数セットの中のその係数について、埋め込まれるビットが0であるか1であるかに依存して、値は、それぞれ、所定の定数Qだけデクリメントまたはインクリメントされる。
【0042】
ステップ412で、処理されている透かしユニットについてより多くのデータを埋め込む必要があるかどうかに関して判定が行われる。YESの場合、処理は、現在のGOBの中の修正すべき次の係数を選択するために、ステップ406に戻る。NOの場合、ステップ414で、現在のWBにおいてより多くのGOBが処理されるべきことが分かった場合、処理は、ステップ404に戻り、次のGOBおよび次の埋め込まれる透かしユニットを選択する。現在のWBにおいてそれ以上のGOBが処理されず、ステップ416で、処理されるより多くのWBがある場合、処理は、ステップ402に移動し、次のWBを選択して透かしのインスタンスを埋め込む。ステップ416で、それ以上のWBが処理されないことが分かった場合は、デジタル画像の中の利用可能な全てのWBが、透かしのインスタンスを埋め込むように処理されている。プロセス114の完了時に、透かしインスタンスの全ての透かしユニットは、係数行列の各WBに埋め込まれる。
【0043】
図5は、本発明の実施形態による、画像が透かし入りであるかどうかを判定するために使用することができる、プロセス500を例示する。画像が既に透かし入りであることが分かった場合、プロセス500は、透かしを取り出すことを可能にする。画像が透かしを有さないことが分かった場合は、透かしが画像に埋め込まれる。
【0044】
一実施例では、プロセス500は、例えばウェブクローラまたは他のデバイスによって収集され、プロセス500にアクセス可能な1つ以上の記憶領域の中に置かれた一組の画像全体を処理する、プロセスの一部であり得る。ステップ501で、デジタル画像、例えばJPEG形式のデジタル画像は、例えばプロセス500にアクセス可能なWWWまたは他のリポジトリから取り出される。
【0045】
ステップ502で、デジタル画像は、埋め込まれた透かしを既に有するかどうかを判定するように処理される。透かしが既に埋め込まれたかどうかを判定する例示的な方法を、図6に関して後に説明する。ステップ504で、プロセス500は、ステップ502で透かしが検出されたかどうかに基づいて、処理の2つの分岐のうちの1つを選択する。透かしが検出された場合、処理は、ステップ510へ進み、透かしを抽出する。透かしを抽出する例示的な方法を、図6に関して後に説明する。ステップ502でいかなる透かしも検出されなかった場合、処理は、ステップ506へ進み、透かしを埋め込む。透かしを埋め込むために使用することができる例示的なプロセス100は、図1に関して前述した。
【0046】
(透かしの検出)
図6は、本発明の実施形態による、画像がデジタル透かしを含むかどうかを判定する、プロセス600を例示する。ステップ601で、画像は、前述のように係数行列に変換される。ステップ601は、別のプロセスによって係数行列が以前に生成されていない場合、またはプロセス600に利用できない場合にだけ必要である。ステップ602で、出発点が、処理されているデジタル画像を表す係数行列の中で決定される。例えば、プロセス600は、係数行列の場所(0,0)の係数を出発点とみなし得る。タプル(0,0)の第1の要素は係数行列の中の係数の行の位置を表し、第2の要素は列の位置を表す。プロセス600は、例えば8×8の係数ブロックで、第1の係数ブロックの左上角を係数(0,0)とみなすことによって、処理を開始することができる。したがって、ステップ602で、係数ブロック境界が決定される。このような境界決定に基づく全ての係数ブロックの一群は、係数ブロック分布と称することができる。係数ブロック分布の初期決定はまた、投影係数ブロック分布(projected coefficient block distribution)とみなされ得る。
【0047】
ステップ604で、想定された係数ブロック境界、すなわち、投影係数ブロック分布に基づいて、各係数ブロックの透かしインジケータ係数セットが処理される。例えば、図3に示される対角302Aに対応する6つの要素の対角は、対応する透かしインジケータ係数セットを構成するであろうことが予め定められ得る。
【0048】
各係数ブロックでは、透かしインジケータ係数セットの標準偏差が計算される。例えば、このステップでは、対角302Aの6つ全ての要素に対する標準偏差が計算される。
【0049】
ステップ606で、それぞれの透かしインジケータ係数セットが所定の透かしインジケータの閾値を下回る標準偏差を有する、係数ブロックのパーセンテージが決定される。したがって、決定されたパーセンテージが透かしインジケータの閾値よりも大きい場合は、ステップ608で、画像が透かしを含むものと判定される。そうでなければ、画像が透かし含まないという判定を行うことができる前にさらなる処理が必要である。
【0050】
ステップ606で決定された係数ブロックのパーセンテージが所定の透かしインジケータの閾値未満であった場合、プロセス600は、ステップ602に戻り、新しい係数ブロック境界、すなわち、新しい投影係数ブロック分布を選択する。
【0051】
プロセス600がステップ602に戻る度に、係数ブロック境界、具体的には、係数行列の中の第1の係数ブロックの左上の係数が、1つの係数ブロックの中の各係数を覆う様式で移動させられる。例えば、この実施例では、係数ブロックの左上の係数を、係数行列の左上角に固定される係数の8×8配列の中の次の要素に移動させる度に、プロセス600は、ステップ602に戻る。したがって、各投影係数ブロック分布は、係数の8×8配列内の新しい係数オフセットに基づく。
【0052】
新しい係数ブロック境界が選択された後に、処理は、ステップ604から606を通して進行する。1つの反復の際に、ステップ606で、所定の透かしインジケータの閾値未満である透かしインジケータ係数セットの標準偏差を有する係数ブロックのパーセンテージが、所望のパーセンテージよりも大きい場合は、ステップ608で、対応する画像が透かし入りであると判定される。
【0053】
一方で、プロセス600が、ステップ606で、透かしインジケータ係数セットの標準偏差が所定の透かしインジケータの閾値を下回る係数ブロックのパーセンテージを発見せずに、係数ブロック全体、例えば係数の8×8配列全体を通して反復した場合、画像は透かし入りではないと断定される。画像が透かし入りではないと判定された場合、例えば、画像に透かしを埋め込むように、プロセス100を起動し得る。
【0054】
ステップ606で、透かしインジケータ係数の標準偏差が所定の透かしインジケータの閾値を上回る、DCTブロックのパーセンテージが発見されたと判定された場合は、画像は透かし入りであると断定され、例えばプロセス700等のプロセスを、透かしを抽出するために使用することができる。
【0055】
本発明の種々の実施形態は、比較的に効率的な様式で、特定の画像が透かしを含むかどうかを判定することが可能である。最悪の事態では、検出プロセスは、1つの係数ブロックの配列サイズの各係数にわたって反復する。また、透かしがあらゆる係数ブロックに埋め込まれるので、透かし入り画像が圧縮またはトリミングされた時であっても、検出は非常に頑健である。
【0056】
(透かしの抽出)
図7は、画像から透かしを抽出するために使用することができる、プロセス700を例示する。透かしの抽出のプロセスは、WBの境界、すなわち、「透かしブロック分布」の決定、および次の、対応する「透かしユニットベクトル」、すなわち、透かしインスタンスの透かしユニットのベクトルの決定に基づく。
【0057】
透かしのサイズ、すなわち、透かしの長さは、各アプリケーションについて予め定めることができる。例えば、本発明の実施形態が、ORKUTソーシャルネットワーキングサイトに掲載される画像に適用される場合、関連する透かし埋め込みアプリケーションおよび透かし取り出しアプリケーションは、ORKUTアプリケーションの要件に基づいて、所定の長さの透かしを使用するように構成することができる。例えば、32ビットの透かしが、ORKUTと関連する利用者IDの決定部分を埋め込むために十分であり得る。同様に、係数ブロックサイズ、GOBサイズ、WBサイズ、透かしインジケータ係数(透かしインジケータ係数セット)の位置、および透かし係数(透かし係数セット)の位置は、プロセス700が、埋め込まれた透かしを取り出すように、画像を処理し始めた時に、該プロセスによって知ることができる。
【0058】
例えばプロセス600を使用して、画像が透かし入りであるかどうかを既に判定していることによって、処理されているデジタル画像に対応する係数行列の中の係数ブロック境界をプロセス700に使用することができる。ステップ702で、透かしの判定および取り出しのための出発点が決定される。一実施形態では、プロセス700の出発点は、透かし検出プロセスによって決定される、係数行列の左上において係数ブロック境界として選択される。例えば、プロセス700は、係数行列場所804の係数を出発点とみなし得る。すなわち、係数行列の中の第1のWBの第1の係数ブロックである。透かしのサイズ、すなわち、透かしの長さは、各アプリケーションについて予め定めることができる。したがって、ステップ702で、WB境界が決定される。これは、投影透かしブロック分布(projected watermark block distribution)とみなすことができる。
【0059】
ステップ704で、現在想定されているWB境界、すなわち、現在の投影透かしブロック分布に基づいて、透かしインスタンスを埋め込む係数に対応するデータベクトルが、処理されている画像の中の各WBから取り出される。現在の投影透かしブロック分布に基づいて、それぞれのGOB境界が決定される。例えば、図8の画像800では、プロセス700は、1つの投影透かしブロック分布において、WB810に基づいてWB境界を想定した時に、GOB808を含む、対応するGOB境界を決定することができる。
【0060】
投影透かしブロック分布の中の各WBから、透かしユニットベクトルが生成され、係数行列のその投影透かしブロック分布のための透かしユニットベクトルセットを生ずる。ステップ706で、プロセス700が、より多くの係数ブロックオフセットにわたって反復すべきかどうかを判定し、結果がYESであれば、プロセス700は、ステップ702に戻る。一実施例では、投影GOB内の各係数ブロックオフセットは、順々に試みることができる。
【0061】
ステップ702および704は、各投影透かしブロック分布について繰り返される。各投影透かしブロック分布は、1つのGOBの範囲内で異なる係数ブロックオフセットを考慮することによって決定され得る。
【0062】
投影透かしブロック分布の現在処理されているWBに対する各GOBでは、透かし係数セットの中の各係数は、寄与ブロック、例えば上側ブロックおよび左側ブロックの中の対応する係数の平均値に対して比較される。透かし係数セットの中の係数が、寄与ブロックの中の対応する係数の平均値よりも高かった場合、その係数は、埋め込まれた透かしにおける「1」を表すものとみなすことができる。透かし係数セットの中の係数が、上側ブロックおよび左側ブロックの中の対応する係数の平均値よりも低かった場合、その係数は、「0」を表すものとみなすことができる。画像のための全体の透かしユニットベクトルセットは、投影透かしブロック分布について、投影透かしブロック分布に従って、各WBの各GOBの中の透かし係数セットの各係数について、この係数平均の比較を繰り返すことによって生成することができる。
【0063】
他の実施形態では、ステップ706で、係数ブロックオフセット以外の基準に基づいて順々に、ステップ702から704を反復してもよく、例えば、係数ブロックオフセットは、ランダムパターンで試みてもよく、または行および列索引に基づく他のオフセットを使用することができる。
【0064】
ステップ706で、十分な数の透かしユニットベクトルセットが生成されたと判定された時、例えば、ステップ702から704が投影GOB内の係数ブロックオフセットの全てにわたって反復された時に、プロセス700は、ステップ708に進む。ステップ708で、複数組の透かしユニットベクトルのうちの1つが、埋め込まれたデータを表すものとして選択される。
【0065】
一実施形態では、埋め込まれたデータを表すものとして複数組の透かしデータのうちの1つの選択は、透かしユニットベクトルの各組について計算される相関計量に基づいてもよい。相関計量は、例えば、多数決要素の発生の頻度に基づくことができる。一実施形態では、各GOBについて、透かしユニットベクトルの全てにわたって、対応する一組の透かしユニットベクトルにおいて、最も頻繁に生じる透かしユニットを識別することができる。その一組の透かしユニットベクトルの相関計量は、全てのGOBにわたって合計した、最も頻繁に生じる透かしユニットの発生数であり得る。
【0066】
透かしユニットの発生の頻度に基づいて相関計量を決定するための前述した方法は、例えば選択された局所領域の破壊等の、JPG画像に観察される多数の種類の破壊に対して非常に耐性があることが観察されている。相関計量を決定する他の方法が可能であり、この開示の教示の範囲内であることが意図される。例えば、ビット単位の相関は、相関計量値に到達するように、各セットの中の透かしユニットベクトルの全ての間で実施することができる。
【0067】
ステップ710で、埋め込まれたデータを表すように、最も高い相関を伴う一組の透かしユニットベクトルが決定される。例えば、埋め込まれたデータを表すように、最も高い相関計量を有する一組の透かしユニットベクトルを選択することができる。次いで、各ベクトルが1つのWBの中の透かし係数を表すので、実際の埋め込まれた透かしを、一組のベクトルから決定することができる。例えば、大部分の他のベクトルに一致するベクトルを選択することができ、取り込まれたそのデータユニットは、埋め込まれた透かしを表す。
【0068】
画像がトリミングされた場合、選択されたベクトルは、埋め込まれた透かしを表すのに適切な順序の透かしユニットを有していない可能性が非常に高い。違った順序での抽出で処理された後に、透かしが埋め込まれた場合、例えば、実際の透かしユニット(例えば、前述のプロセス100のステップ110および112の説明を参照されたい)の間にセンチネルユニットを挿入し、次いで、挿入されたセンチネルユニットを使用することによって、実際のデータユニットは、実際の透かしを得るように並び替えられ得る。違った順序でデータユニットを抽出し、さらには実際の透かしを決定することが可能である能力は、本明細書に開示される方法およびシステムを、トリミングに対して頑健であるものにする主要な特性である。
【0069】
(他の例示的実施形態)
別の実施形態では、透かしおよび透かしインジケータを、画像の1つ以上の選択された領域だけに埋め込むことができる。いくつかの用途では、新しいデータを埋め込むことを制限することで、透かしの破壊に耐え、データマークの埋め込みおよび抽出の際の計算効率を向上させる、方法の能力を向上させ得る。例えば、一組の所定のホットスポットのうちの1つ以上を、透かしを入れる各画像の中で識別することができる。透かしは、それらのホットスポットだけに挿入することができる。一実施形態では、顔、または目、口、鼻等の他のより具体的なホットスポットを検出するように、顔検出またはエッジ検出機構を採用することができ、透かしおよび透かしインジケータを、選択されたホットスポットを覆う画像の領域の中に挿入することができる。
【0070】
図9は、本発明の実施形態による、画像に透かしを埋め込み、画像が透かし入りであるかどうかを判定し、および/または画像から透かしを抽出する、埋め込みシステム900である。システム900は、プロセッサ901と、メモリ903と、記憶装置905と、入力インターフェース907と、出力インターフェース909と、通信デバイス930と、透かし入れモジュール910とを含む、汎用または特殊用途コンピュータであり得る。
【0071】
プロセッサ901には、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または類似した処理デバイスが挙げられる。メモリ903には、ランダムアクセスメモリ等の一時的なデジタルメモリデバイスが挙げられ、記憶デバイス905には、ハードディスク、フラッシュメモリ、または読取専用メモリ(ROM)等の永続的な記憶デバイスが挙げられるが、これに限定されない。入力インターフェース907には、1つ以上のキーボード、マウス、ペン型入力デバイス、ネットワークへの接続部、または外部のデバイスへの接続部が挙げられるが、これに限定されない。出力デバイス909には、1つ以上のディスプレイ、ネットワークへの接続部、または他の外部デバイスが挙げられるが、これに限定されない。通信デバイス930には、周辺機器相互接続(PCI)規格、または拡張業界標準アーキテクチャ(EISA)に準拠するデバイスなどが挙げられるが、これに限定されない。
【0072】
透かしモジュール910は、本発明の実施形態の機能を実装する、副モジュールを含む。透かしモジュール910は、係数計算モジュール912と、透かし埋め込みモジュール914と、透かしインジケータ埋め込みモジュール916と、透かし抽出器モジュール918と、透かし検出器モジュール920とを含む。これらのモジュールのそれぞれの機能は、ハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせを使用して実装することができる。
【0073】
これらの副モジュールの機能は、プロセッサ901の管理下で実装することができる。例えば、プロセッサ901は、入力インターフェース907を通しての画像の受信、透かしモジュール910の中の1つ以上のモジュールを使用した画像の処理、および出力インターフェース909を通しての処理済み画像の出力を制御することができる。例えば、透かしモジュール910を使用した画像の処理中に、原画像および処理されている画像がメモリ903に存在し得る。記憶装置905は、例えば、処理中に、情報を一時的に記憶するために、または後処理画像および情報を記憶するために使用され得る。モジュール912から920はまた、2つ以上の相互結合したコンピュータ上に分散様式で実装され得る。
【0074】
係数計算モジュール912は、例えば画像の係数行列を生成するように、例えばJPG形式の画像といった画像を、周波数領域の係数表現に変換する機能を含む。前述のように、係数行列は、画像のDCT変換に対応するDCT行列であることができる。係数計算モジュール912はまた、本発明に従って処理する前または後に、係数行列をJPG等の画像形式に転換する機能を含む。例えば、係数計算モジュール912は、逆DCT変換を実施する能力を含むことができる。係数計算モジュール912は、プロセス100のステップ102および116に関して説明される機能の全てまたは一部を含むことができる。一実施形態では、係数計算モジュール912は、前述のようにプロセス100のステップ102および116を実装するように構成される。
【0075】
透かし埋め込みモジュール914は、所定の透かしを画像の係数行列表現に埋め込む機能を含む。例えば、透かし埋め込みモジュール914は、プロセス100のステップ106、108、110、112、および114に関して説明される機能の全てまたは一部を含むことができる。一実施形態では、透かし埋め込みモジュール914は、前述のようにプロセス100のステップ106、108、110、112、および114を実装するように構成される。
【0076】
透かしインジケータ埋め込みモジュール916は、本発明の実施形態による、画像に透かしインジケータを埋め込む機能を含む。例えば、透かしインジケータ埋め込みモジュール916は、プロセス100のステップ104に関して説明される機能を含むことができる。一実施形態では、透かしインジケータ埋め込みモジュール916は、前述のようにプロセス100のステップ104を実装するように構成される。
【0077】
透かし抽出器モジュール918は、本発明の実施形態による、画像から埋め込まれた実際の透かしを抽出する機能を含む。例えば、透かし抽出器モジュールは、プロセス700に関して説明される機能を含むことができる。一実施形態では、透かし抽出器モジュール918は、前述のようにプロセス700のステップ702から710を実装するように構成される。
【0078】
透かし検出器モジュール920は、本発明の実施形態による、画像の中の透かしの存在を検出する機能を含む。例えば、透かし検出器モジュール920は、画像を処理して、十分な数の透かしインジケータの存在を発見することができる。透かし検出器モジュール920は、プロセス600に関して説明される機能を含むことができる。一実施形態では、透かし抽出器モジュール920は、前述のようにプロセス600のステップ601から608を実装するように構成される。
【0079】
図10は、本発明の実施形態による、処理の前および後の例示的な画像を示す。画像1001は、処理前の画像であり、画像1002は、本発明の実施形態に従って処理した後の同じ画像1001である。画像1002には、16×16の画素領域毎に32ビットの透かしが埋め込まれ、透かしインジケータは、8×8の画素領域毎に含まれている。2つの画像の比較は、本発明の実施形態に従って埋め込まれた透かしを有する画像1002が、画像1001とはいかなる知覚可能な差異も有さないこと、すなわち、透かしが実質的に不可視であることを示している。
【0080】
発明の概要および要約の項は、本発明者らによって検討されるような、本発明の全てではないが1つ以上の例示的実施形態を説明してもよく、したがって、決して本発明および添付の図面を制限することを目的としない。
【0081】
特定の機能の実装およびその関係を例証する機能的構成要素を用いて、本発明を上記で説明している。これらの機能的構成要素の境界は、説明の便宜上、本明細書では任意に規定されている。特定の機能およびその関係が適切に実施される限り、代替境界を規定することができる。
【0082】
具体的実施形態の先述の説明は、本発明の一般概念から逸脱することなく、必要以上の実験を伴わずに、当技術分野内の知識を適用することによって、他者が種々の用途についてそのような具体的実施形態を容易に修正および/または適合させることができる、本発明の一般的性質を完全に明らかにする。したがって、そのような適合および修正は、本明細書で提示される教示および指導に基づいて、開示された実施形態の同等物の意味および範囲内となることを目的とする。本明細書の用語または表現が、教示および指導に照らして当業者によって解釈されるように、本明細書の表現または用語は、限定ではなく説明の目的によるものであると理解されたい。
【0083】
本発明の幅および範囲は、上記の例示的実施形態のうちのいずれかによって決して制限されるべきではないが、以下の請求項およびそれらの同等物のみに従って定義されるべきである。
【特許請求の範囲】
【請求項1】
透かし入りデジタル画像を作成するために、デジタル画像に情報を埋め込む方法であって、
(a)該デジタル画像を、周波数領域における係数を有する一組の係数ブロックに変換するステップと、
(b)該一組の係数ブロックのうちの複数の係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、
(c)透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込むステップであって、該複数の透かしブロックの各透かしブロックは、該一組の係数ブロックからの所定数の係数ブロックを有する、ステップと、
(d)該透かし入りデジタル画像を出力するステップと
を含み、ステップ(a)から(d)は、少なくとも1つのメモリに記憶された命令に基づいて、少なくとも1つのプロセッサを使用して実施される、方法。
【請求項2】
各透かしブロックは、所定数のブロック群を有し、各ブロック群は、前記一組の係数ブロックからの所定数の係数ブロックを有し、前記透かしを埋め込むステップは、
透かしを複数の透かしユニットに分割するステップと、
該複数の透かしユニットから1つの透かしユニットを選択するステップと、
各透かしブロックにおけるブロック群の該選択された透かしユニットを符号化するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記符合化するステップは、
各透かしブロックにおける前記ブロック群から、1つのブロック群の透かし係数セットを選択するステップと、
該透かし係数セットの係数を修正するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記透かし係数セットの係数は、1つの係数ブロックから選択される、請求項3に記載の方法。
【請求項5】
所定の透かし係数セットの係数を修正する前記ステップは、
前記透かし係数セットに対する透かし寄与係数セットを選択するステップであって、該透かし寄与係数セットおよび該透かし係数セットは、1つのブロック群の中に位置する、ステップと、
該透かし寄与係数セットに基づいて、該透かし係数セットの各係数を計算するステップと
を含む、請求項3に記載の方法。
【請求項6】
前記透かし係数セットは、埋め込まれる前記透かしユニットに従ってさらに修正される、請求項5に記載の方法。
【請求項7】
各透かしユニットは、1つ以上のセンチネルユニットを含み、該センチネルユニットは、透かし内の各透かしユニットの順序を規定する、請求項2に記載の方法。
【請求項8】
前記透かしインジケータを埋め込むステップは、前記透かしインジケータ係数セットを修正するステップを含む、請求項1に記載の方法。
【請求項9】
前記透かしインジケータ係数セットは、その標準偏差が所定の透かしインジケータの閾値を下回るように修正される、請求項8に記載の方法。
【請求項10】
前記デジタル画像を一組の係数ブロックに変換するステップは、
前記デジタル画像の離散コサイン変換(DCT)を計算するステップと、
該デジタル画像のDCTを一組の係数ブロックとして表すステップと
を含む、請求項9に記載の方法。
【請求項11】
少なくとも1つのプロセッサ上で実施される、デジタル画像から透かしを抽出する方法であって、
(a)該デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、
(b)投影係数ブロック分布における各係数ブロックの透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するステップであって、該投影係数ブロック分布は、該係数行列における係数オフセットに基づく、ステップと、
(c)投影透かしブロック分布の透かしブロックから透かしを取り出すステップであって、該投影透かしブロック分布は、該投影係数ブロック分布のブロックオフセットに基づく、ステップと
を含み、ステップ(a)から(c)は、少なくとも1つのメモリに記憶された命令に基づいて、少なくとも1つのプロセッサを使用して実施される、方法。
【請求項12】
前記デジタル画像が透かし入りであるかどうかを判定するステップは、
(i)前記係数行列における投影係数ブロックオフセットを選択するステップと、
(ii)該係数行列における複数の投影係数ブロックのそれぞれの透かしインジケータ係数セットに基づいて、統計測度を判定するステップと、
(iii)該デジタル画像が透かし入りであるかどうかを判定するために、該統計測度を所定の閾値と比較するステップと
を含む、請求項11に記載の方法。
【請求項13】
前記統計測度は、前記透かしインジケータ係数セットの係数の標準偏差を含む、請求項12に記載の方法。
【請求項14】
前記デジタル画像が、ステップ(iii)で透かし入りであると判定されるまで、または係数ブロックの領域内の全ての前記投影係数ブロックオフセットに対して、ステップ(i)、(ii)、および(iii)の繰り返しが完了するまで、ステップ(i)、(ii)、および(iii)を繰り返し、該投影係数ブロックオフセットを変更するステップをさらに含む、請求項12に記載の方法。
【請求項15】
前記透かしを取り出すステップは、
複数の投影透かしブロック分布を生成するステップであって、各投影透かしブロック分布は、異なる係数ブロックオフセットに基づく、ステップと、
各投影透かしブロック分布から透かしユニットベクトルセットを抽出するステップと、
該抽出された透かしユニットベクトルセットのうちの1つを選択するステップと、
該1つの選択された透かしユニットベクトルセットに基づいて、透かしを判定するステップと
を含む、請求項11に記載の方法。
【請求項16】
前記透かしユニットベクトルセットのうちの1つを選択するステップは、
各透かしユニットベクトルセットに対する相関計量を生成するステップと、
該相関計量に基づいて、1つの透かしユニットベクトルセットを選択するステップと
を含む、請求項15に記載の方法。
【請求項17】
デジタル画像に透かしを入れるためのシステムであって
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサに連結された画像変換モジュールであって、該少なくとも1つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも1つのプロセッサに連結された透かし埋め込みモジュールであって、該少なくとも1つのプロセッサを使用して、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成され、各透かしブロックは、所定の第2の数の係数ブロックを備える、透かし埋め込みモジュールと、
該少なくとも1つのプロセッサに連結されたインジケータ埋め込みモジュールであって、該少なくとも1つのプロセッサを使用して、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される透かしインジケータ埋め込みモジュールと
を備える、システム。
【請求項18】
デジタル画像から透かしを抽出するためのシステムであって、
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサに連結された画像変換モジュールであって、該少なくとも1つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも1つのプロセッサに連結されたインジケータ検出モジュールであって、該少なくとも1つのプロセッサを使用して、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するように構成される透かしインジケータ検出モジュールと、
該少なくとも1つのプロセッサに連結された透かし抽出器モジュールであって、該少なくとも1つのプロセッサを使用して、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成され、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、透かし抽出器モジュールと
を備える、システム。
【請求項19】
少なくとも1つのプロセッサにデジタル画像に透かしを埋め込ませるためのコンピュータプログラム論理を記録しているコンピュータ可読媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム論理は、
該少なくとも1つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる、第1のプログラム論理と、
該少なくとも1つのプロセッサに、透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込ませる第2のプログラム論理であって、各透かしブロックは、所定の第2の数の係数ブロックを備える、第2のプログラム論理と、
該少なくとも1つのプロセッサに、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込ませる第3のプログラム論理と
を備える、コンピュータプログラム製品。
【請求項20】
少なくとも1つのプロセッサにデジタル画像から透かしを抽出させるためのコンピュータプログラム論理を記録しているコンピュータ可読媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム論理は、
該少なくとも1つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる第1のプログラム論理と、
該少なくとも1つのプロセッサに、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定させる第2のプログラム論理と、
該少なくとも1つのプロセッサに、投影透かしブロック分布の投影透かしブロックから透かしを取り出させる第3のプログラム論理であって、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、第3のプログラム論理と
を備える、コンピュータプログラム製品。
【請求項1】
透かし入りデジタル画像を作成するために、デジタル画像に情報を埋め込む方法であって、
(a)該デジタル画像を、周波数領域における係数を有する一組の係数ブロックに変換するステップと、
(b)該一組の係数ブロックのうちの複数の係数ブロックのそれぞれに透かしインジケータを埋め込むステップと、
(c)透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込むステップであって、該複数の透かしブロックの各透かしブロックは、該一組の係数ブロックからの所定数の係数ブロックを有する、ステップと、
(d)該透かし入りデジタル画像を出力するステップと
を含み、ステップ(a)から(d)は、少なくとも1つのメモリに記憶された命令に基づいて、少なくとも1つのプロセッサを使用して実施される、方法。
【請求項2】
各透かしブロックは、所定数のブロック群を有し、各ブロック群は、前記一組の係数ブロックからの所定数の係数ブロックを有し、前記透かしを埋め込むステップは、
透かしを複数の透かしユニットに分割するステップと、
該複数の透かしユニットから1つの透かしユニットを選択するステップと、
各透かしブロックにおけるブロック群の該選択された透かしユニットを符号化するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記符合化するステップは、
各透かしブロックにおける前記ブロック群から、1つのブロック群の透かし係数セットを選択するステップと、
該透かし係数セットの係数を修正するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記透かし係数セットの係数は、1つの係数ブロックから選択される、請求項3に記載の方法。
【請求項5】
所定の透かし係数セットの係数を修正する前記ステップは、
前記透かし係数セットに対する透かし寄与係数セットを選択するステップであって、該透かし寄与係数セットおよび該透かし係数セットは、1つのブロック群の中に位置する、ステップと、
該透かし寄与係数セットに基づいて、該透かし係数セットの各係数を計算するステップと
を含む、請求項3に記載の方法。
【請求項6】
前記透かし係数セットは、埋め込まれる前記透かしユニットに従ってさらに修正される、請求項5に記載の方法。
【請求項7】
各透かしユニットは、1つ以上のセンチネルユニットを含み、該センチネルユニットは、透かし内の各透かしユニットの順序を規定する、請求項2に記載の方法。
【請求項8】
前記透かしインジケータを埋め込むステップは、前記透かしインジケータ係数セットを修正するステップを含む、請求項1に記載の方法。
【請求項9】
前記透かしインジケータ係数セットは、その標準偏差が所定の透かしインジケータの閾値を下回るように修正される、請求項8に記載の方法。
【請求項10】
前記デジタル画像を一組の係数ブロックに変換するステップは、
前記デジタル画像の離散コサイン変換(DCT)を計算するステップと、
該デジタル画像のDCTを一組の係数ブロックとして表すステップと
を含む、請求項9に記載の方法。
【請求項11】
少なくとも1つのプロセッサ上で実施される、デジタル画像から透かしを抽出する方法であって、
(a)該デジタル画像を、周波数領域における係数を有する係数行列に変換するステップと、
(b)投影係数ブロック分布における各係数ブロックの透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するステップであって、該投影係数ブロック分布は、該係数行列における係数オフセットに基づく、ステップと、
(c)投影透かしブロック分布の透かしブロックから透かしを取り出すステップであって、該投影透かしブロック分布は、該投影係数ブロック分布のブロックオフセットに基づく、ステップと
を含み、ステップ(a)から(c)は、少なくとも1つのメモリに記憶された命令に基づいて、少なくとも1つのプロセッサを使用して実施される、方法。
【請求項12】
前記デジタル画像が透かし入りであるかどうかを判定するステップは、
(i)前記係数行列における投影係数ブロックオフセットを選択するステップと、
(ii)該係数行列における複数の投影係数ブロックのそれぞれの透かしインジケータ係数セットに基づいて、統計測度を判定するステップと、
(iii)該デジタル画像が透かし入りであるかどうかを判定するために、該統計測度を所定の閾値と比較するステップと
を含む、請求項11に記載の方法。
【請求項13】
前記統計測度は、前記透かしインジケータ係数セットの係数の標準偏差を含む、請求項12に記載の方法。
【請求項14】
前記デジタル画像が、ステップ(iii)で透かし入りであると判定されるまで、または係数ブロックの領域内の全ての前記投影係数ブロックオフセットに対して、ステップ(i)、(ii)、および(iii)の繰り返しが完了するまで、ステップ(i)、(ii)、および(iii)を繰り返し、該投影係数ブロックオフセットを変更するステップをさらに含む、請求項12に記載の方法。
【請求項15】
前記透かしを取り出すステップは、
複数の投影透かしブロック分布を生成するステップであって、各投影透かしブロック分布は、異なる係数ブロックオフセットに基づく、ステップと、
各投影透かしブロック分布から透かしユニットベクトルセットを抽出するステップと、
該抽出された透かしユニットベクトルセットのうちの1つを選択するステップと、
該1つの選択された透かしユニットベクトルセットに基づいて、透かしを判定するステップと
を含む、請求項11に記載の方法。
【請求項16】
前記透かしユニットベクトルセットのうちの1つを選択するステップは、
各透かしユニットベクトルセットに対する相関計量を生成するステップと、
該相関計量に基づいて、1つの透かしユニットベクトルセットを選択するステップと
を含む、請求項15に記載の方法。
【請求項17】
デジタル画像に透かしを入れるためのシステムであって
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサに連結された画像変換モジュールであって、該少なくとも1つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも1つのプロセッサに連結された透かし埋め込みモジュールであって、該少なくとも1つのプロセッサを使用して、複数の透かしブロックのそれぞれに透かしを埋め込んで透かし入りデジタル画像を生成するように構成され、各透かしブロックは、所定の第2の数の係数ブロックを備える、透かし埋め込みモジュールと、
該少なくとも1つのプロセッサに連結されたインジケータ埋め込みモジュールであって、該少なくとも1つのプロセッサを使用して、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込むように構成される透かしインジケータ埋め込みモジュールと
を備える、システム。
【請求項18】
デジタル画像から透かしを抽出するためのシステムであって、
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサに連結された画像変換モジュールであって、該少なくとも1つのプロセッサを使用して、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換するように構成される画像変換モジュールと、
該少なくとも1つのプロセッサに連結されたインジケータ検出モジュールであって、該少なくとも1つのプロセッサを使用して、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定するように構成される透かしインジケータ検出モジュールと、
該少なくとも1つのプロセッサに連結された透かし抽出器モジュールであって、該少なくとも1つのプロセッサを使用して、投影透かしブロック分布の投影透かしブロックから透かしを取り出すように構成され、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、透かし抽出器モジュールと
を備える、システム。
【請求項19】
少なくとも1つのプロセッサにデジタル画像に透かしを埋め込ませるためのコンピュータプログラム論理を記録しているコンピュータ可読媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム論理は、
該少なくとも1つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる、第1のプログラム論理と、
該少なくとも1つのプロセッサに、透かし入りデジタル画像を生成するために、複数の透かしブロックのそれぞれに透かしを埋め込ませる第2のプログラム論理であって、各透かしブロックは、所定の第2の数の係数ブロックを備える、第2のプログラム論理と、
該少なくとも1つのプロセッサに、複数の該係数ブロックのそれぞれに透かしインジケータを埋め込ませる第3のプログラム論理と
を備える、コンピュータプログラム製品。
【請求項20】
少なくとも1つのプロセッサにデジタル画像から透かしを抽出させるためのコンピュータプログラム論理を記録しているコンピュータ可読媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム論理は、
該少なくとも1つのプロセッサに、該デジタル画像を、周波数領域における係数の複数の係数ブロックに変換させる第1のプログラム論理と、
該少なくとも1つのプロセッサに、投影係数ブロック分布における各係数ブロックの所定の透かしインジケータ係数セットに基づいて、該デジタル画像が透かし入りであるかどうかを判定させる第2のプログラム論理と、
該少なくとも1つのプロセッサに、投影透かしブロック分布の投影透かしブロックから透かしを取り出させる第3のプログラム論理であって、該投影透かしブロック分布は、該投影係数ブロック分布に基づく、第3のプログラム論理と
を備える、コンピュータプログラム製品。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公表番号】特表2012−515513(P2012−515513A)
【公表日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2011−546384(P2011−546384)
【出願日】平成22年1月15日(2010.1.15)
【国際出願番号】PCT/US2010/021187
【国際公開番号】WO2010/083407
【国際公開日】平成22年7月22日(2010.7.22)
【出願人】(502208397)グーグル インコーポレイテッド (161)
【Fターム(参考)】
【公表日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年1月15日(2010.1.15)
【国際出願番号】PCT/US2010/021187
【国際公開番号】WO2010/083407
【国際公開日】平成22年7月22日(2010.7.22)
【出願人】(502208397)グーグル インコーポレイテッド (161)
【Fターム(参考)】
[ Back to top ]