JP4834007B2 - 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置 - Google Patents

電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置 Download PDF

Info

Publication number
JP4834007B2
JP4834007B2 JP2008017440A JP2008017440A JP4834007B2 JP 4834007 B2 JP4834007 B2 JP 4834007B2 JP 2008017440 A JP2008017440 A JP 2008017440A JP 2008017440 A JP2008017440 A JP 2008017440A JP 4834007 B2 JP4834007 B2 JP 4834007B2
Authority
JP
Japan
Prior art keywords
embedding
embedded
bit plane
data
digital watermark
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008017440A
Other languages
English (en)
Other versions
JP2008113470A (ja
Inventor
俊夫 藤根
蔵人 前野
Original Assignee
株式会社沖データ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社沖データ filed Critical 株式会社沖データ
Priority to JP2008017440A priority Critical patent/JP4834007B2/ja
Publication of JP2008113470A publication Critical patent/JP2008113470A/ja
Application granted granted Critical
Publication of JP4834007B2 publication Critical patent/JP4834007B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、画像データの改ざんの検出等に用いられる電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置に関するものである。
≪第1の従来技術≫
[フラジャイル電子透かし技術]
図31は、ビットプレーン(bit-plane)の概念の説明図である。図31には、縦4個、横3個からなる係数が描かれている。各係数は、符号ビットと絶対値で表現される。図31に示されるように、ビットプレーンには、係数をMSB(最上位ビット)からLSB(最下位ビット)までの各ビットで順次スライスして得られる各サンプルに対応する絶対値(「1」又は「0」)のビットプレーンと、係数の符号(「+」又は「−」)のビットプレーンとがある。
図32は、ビットマップ画像にフラジャイル(fragile)電子透かしを埋め込む動作の説明図である。図32に示されるように、電子透かし埋め込み時には、LSB以外のビットプレーン(厳密に検証する場合には、LSB以外のビットプレーンと、LSBの埋め込みに使用していないすべてのビット)からハッシュ値を計算し、公開鍵暗号方式で暗号化したハッシュ値(電子署名)をLSBに埋め込む。通常、LSB内の埋め込み位置は、鍵をシードにした擬似ランダムシーケンス等を用いてランダマイズされる。
図33は、フラジャイル電子透かしを検証する動作の説明図である。図33に示されるように、電子透かしの検証時には、署名データの埋め込まれた画像のLSB部分から、埋め込み側と同様の手順で埋め込み位置を決定し、埋め込みデータを取り出す。取り出したデータから、電子透かし埋め込み時に生成されたハッシュ値を解読する。また、LSB以外のビットプレーン(厳密に検証する場合には、LSB以外のビットプレーンと、LSBの埋め込みに使用していないすべてのビット)から埋め込み側と同様のアルゴリズムでハッシュ値を計算し、これを、解読したハッシュ値と比較する。比較の結果、両方のハッシュ値が一致すれば画像に改ざんが無いことがわかる(例えば、特許文献1参照)。
通常、画像データに比べて生成されるハッシュ値のビット長は非常に短い長さである。例えば、SHA1として知られているハッシュアルゴリズムの場合には、入力されるデータ長にかかわらず出力されるデータは160bitである。しかし、ハッシュ演算の特性上、画像に対して微少な変化があっただけで、生成されるハッシュ値は全く異なった値となる。このため、ハッシュ値を比較することにより、1ピクセルの改ざんであっても、検出することができる。また、1個のハッシュ値を計算する範囲を画像全体でなく、画像内のM×Nピクセルサイズのブロックで区切った範囲とすると、画像の改ざんをM×Nブロックの単位で検出することができ、画像内の改ざん箇所をブロック単位で特定することができる。
また、フラジャイル電子透かしには、ウェーブレット(Wavelet)変換やDCT(離散コサイン変換)、量子化等をした後の周波数空間上の係数に対して、ハッシュ値や署名データを埋め込む方式もある。この方式の場合にも、ビットマップに対する電子透かしの場合と同様であり、ハッシュ値の計算対象や署名データの埋め込み対象が、画像データそのものから周波数変換後の係数に置き換わっただけである。さらにまた、ハッシュ値の計算対象と埋め込み対象の座標を変える方式もあるが、この方式の場合にも、同様の検出方法を用いている。
[周波数空間上の係数の符号化方法]
ウェーブレット変換やDCT、量子化等をした後の周波数空間上の係数に電子透かしを埋め込む場合、同時に係数を符号化(圧縮)する場合がある。図34は周波数空間上の係数を符号化する構成を示すブロック図である。図34に示されるように、係数を符号化する構成は、入力画像に対して周波数変換を行う周波数変換手段1011と、変換係数をMSBからLSBに至るビットプレーンに展開し、所定の大きさのコードブロックごとに各ビットプレーンの符号化パス(符号化処理を行う手順)を決定するビットプレーン符号化パス生成手段1012と、符号化パスに従って算術符号化を行う算術符号化手段1013と、生成された算術符号から目標の符号量(圧縮後のビットレート又はファイルサイズと等価)になるように符号量を制御するレート制御手段1014とを有する。
ある符号化方法の一例では、周波数変換手段1011が画像を係数のビットプレーンに変換し、ビットプレーン符号化パス生成手段1012が一つのビットプレーンに対して一つの符号化パスを生成し、算術符号化手段1013が符号化パスに従って算術符号化を行う。図35は、ビットプレーン番号‘n−2’、‘n−3’、…、‘1’、‘0’のビットプレーン(図35において、Bit-plane (n-2), Bit-plane (n-3),…, Bit-plane (1), Bit-plane (0)と表記する。)のそれぞれに対して一つの符号化パス(図35において、Coding Pass Xと表記する。)が生成される場合の算術符号化プロセスの説明図である。すべてのビットプレーンの算術符号化を行い、その後、レート制御手段1014が符号量の制御を行う。その際、レート制御手段1014は、各符号化パスごとの算術符号化量をカウントし、目標の符号化量に達した時点で、それより後の算術符号化データを切り捨てる。このようにして算術符号が打ち切られる位置を「算術符号打ち切り点」と呼ぶ。
上記した例では、算術符号打ち切り点は、いずれかのビットプレーンの境界となるので、あるビットプレーンの一部の係数だけが圧縮後の算術符号データに含まれ、一部の係数が切り捨てられて、圧縮後の算術符号データに含まれないということはない。そのため、電子透かしを埋め込むときに、ある決められたビットプレーンに電子透かしを埋め込んでおき、そのビットプレーン以降に算術符号打ち切り点があれば、検証の際に、そのビットプレーンのすべてのデータを復号することができるので、すべての電子透かしを取り出すことができる。算術符号が行われる単位であるコードブロックごとに打ち切り点が異なっている場合も同様である。
しかし、例えば、次世代の静止画像符号化標準であるJPEG2000では、一つのビットプレーンを3種類の符号化パスで構成し、その後、各符号化パスに従って算術符号化を行っている。具体的には、周波数変換(この場合は、ウェーブレット変換)された係数の各ビットプレーンを、シグニフィカンスプロパゲーションパス(significance propagation pass)、マグニチュードリファイメントパス(magnitude refinement pass)、クリーンナップパス(cleanup pass)と呼ばれる3種類の符号化パスで算術符号化している。なお、ビットプレーンの各ビットがどの符号化パスで符号化されるかは、周辺の画素を含む既に符号化された上位のビットプレーンの状況に応じて異なる。
JPEG2000では、MSB側から何番目のビットプレーンで初めて「1」が出現するかを別途符号化し、最初に「1」が出現するビットプレーンは、クリーンナップパスのみで符号化される。以上の処理で生成される符号化パスを図示すると図36のようになる。図36では、あるコードブロックの符号化パス及び算術符号打ち切り点を示しているが、通常、それらはコードブロックごとに異なる。図36に示されるように、各ビットプレーン(図36において、Bit-plane (n-2), Bit-plane (n-3), Bit-plane (n-4), …, Bit-plane (0)と表記する。)に対して複数の符号化パス(図36において、Coding Pass A, Coding Pass B, Coding Pass Cと表記する。)に従う算術符号化を行い、その後、レート制御手段1014で符号量の制御を行う。その際、レート制御手段1014は、符号化パスの算術符号化量をカウントし、目標の符号化量に達した時点で、その後の算術符号化データを切り捨てる。
≪第2の従来技術≫
[ビットプレーンの打ち切りがある場合の電子透かし埋め込み方法]
上記したように、画像データを周波数変換した変換係数に対して、圧縮しながら、電子透かしを埋め込む場合には、所定の大きさのコードブロックごとに変換係数のビットプレーンを途中から打ち切ることにより圧縮する場合がある。このような場合にも、画像データ全体を改ざん検出の対象とするため、打ち切られたビットプレーンの直前のビットプレーンに電子透かしが埋め込まれる。具体的には、図37に示されるように、あるコードブロックにおいてビットプレーン番号‘2’以下のビットプレーンが打ち切られる場合、ビットプレーン番号‘3’のビットプレーンに電子透かしが埋め込まれる。
このようにすれば、復号する過程で検証する場合、ビットプレーン番号‘2’は打ち切られて存在しないので、復号できたビットプレーンのうち最下位のビットプレーン(ビットプレーン番号‘3’)に電子透かしが埋め込まれていることが分かる。従って、そのビットプレーンから電子透かしを抽出することができる。
≪第3の従来技術≫
第3の従来技術は、上記第1の従来技術と同じである。
特開2001−042768公報(図1〜図4)
≪第1の従来技術の課題≫
第1の従来技術では、一つのビットプレーンを複数の符号化パスを用いて算術符号化する場合に、ビットプレーン途中の符号化パス以降の算術符号が打ち切られる可能性がある。例えば、図36に示されるように、算術符号打ち切り点以降の符号化パスの算術符号が切り捨てられた場合、ビットプレーン番号n−4のビットプレーン(図36においては、Bit-plane (n-4)と表記する。)の一部しか符号化されないことになる。
従って、電子透かしを埋め込むときに、ある決められたビットプレーンに電子透かしを埋め込んでおいても、そのビットプレーンを符号化している符号化パスの途中で算術符号が打ち切られ、それ以降の算術符号化データが切り捨てられることが起こり得る。この場合には、電子透かしを埋め込んだ係数のうち、一部の係数が切り捨てられて、圧縮後の算術符号データに含まれないことになる。その結果、埋め込んだ電子透かしをすべて取り出すことができず(フラジャイル電子透かしでは、改ざんがない場合、検証の際には埋め込んだときと全く同じ電子透かしが抽出されなければならない。)、電子透かしを正しく検証できなくなるという問題がある。
≪第2の従来技術の課題≫
第2の従来技術では、圧縮されて電子透かしが埋め込まれた状態から、一度復号されると、どのビットプレーンで変換係数が打ち切られたかという情報が失われるので、電子透かしを埋め込んだビットプレーンを決定することができないという問題がある。
なお、JPEG2000の可逆型フィルタのような周波数変換を用いた場合、一度復号された画像を再び同じように周波数変換して変換係数を求めれば、全く同じ変換係数が得られる。そのため、図38(a)に示されるように、復号する際に打ち切られたビットプレーン(図38(a)においては、ビットプレーン番号‘2’、‘1’、‘0’)をすべて「0」として復号しておけば、再び同じように可逆型の周波数変換を行うことにより、打ち切られたビットプレーンはすべて「0」となる。従って、LSBから各ビットプレーンのビットを調べることにより、最初に「1」が出現するビットプレーンを電子透かしの埋め込まれたビットプレーンと判定することができる。ただし、この場合も、電子透かしを埋め込むことによって、電子透かしを埋め込んだビットプレーンのビットの中に「1」のビットが少なくとも1個存在するようにしなければならない。
ところが、図38(b)に示されるように、復号の際に、打ち切られたビットプレーンの最上位ビットプレーン(図38(b)においては、ビットプレーン番号‘2’)は、非0係数の場合、通常「1」として復号されるため、上記のような手段を用いることもできない。このような処理が行われる理由としては、量子化された値を逆量子化する場合、量子化ステップサイズの半分の値を加えて値を再構成するのが、一番画質がよいとされていることが挙げられる。あるビットプレーン番号以下のビットプレーンを打ち切るということは、「2の(ビットプレーン番号)乗」の量子化ステップサイズで量子化することと等価である。そのため、そのステップサイズの半分を加えることが、ちょうど打ち切られたビットプレーンのうち最上位のビットプレーンを「1」として、復号することと等価になる。ただし、打ち切られたその他の下位ビットプレーンの値をどのようにするかは、復号の際の自由裁量に任されており、復号して再び周波数変換をした場合、どのような値になるかは予測できない。
≪第3の従来技術の課題≫
第3の従来技術では、電子透かしの情報ビットの埋め込みに箇所によっては、画質の劣化が顕著になるという問題がある。
また、電子透かしの情報ビットを埋め込む係数を選択する際に、近傍にある係数群でグルーピングし、グループ内に情報ビットを埋め込む場合がある。しかし、グルーピング内に情報の埋め込みに適した箇所(例えば、図39に示される髪の毛等の高い周波数成分の領域)がない場合には、情報の埋め込みに適していない箇所(例えば、図39に示される均一な背景等の低い周波数成分の領域)に、情報の埋め込まなければならず、平坦な背景等において画質が劣化するという問題がある。また、JPEG2000のSNRスケーラビリティ使用時には、LSBよりもMSB側のビットプレーンに情報を埋め込むので、より一層、人間に知覚されやすくなる。
≪参考発明の目的≫
参考発明は、第1の従来技術の課題を解決するためのものであり、その目的は、電子透かしを確実に検出できるようにする電子透かし埋め込み方法及び電子透かし埋め込み装置を提供することである。
≪参考発明の目的≫
参考発明は、第2の従来技術の課題を解決するためのものであり、その目的は、電子透かしが埋め込まれたビットプレーンを確実に特定できるようにする電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
≪第3の発明の目的≫
第3の発明は、第3の従来技術の課題を解決するためのものであり、その目的は、電子透かしの埋め込みによる画質の劣化を抑制できるようにする電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
また、第3の発明の他の目的は、埋め込み係数選択時に、圧縮の特性を利用することで、圧縮効率の低下を抑制できるようにする電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
また、第3の発明のさらに他の目的は、メッセージの埋め込み可能容量を増やすことができる電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
参考発明の電子透かし埋め込み方法の一態様は、電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、入力画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第1の符号化パスを生成するステップと、前記第1の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第1の符号化データを生成するステップと、目標となる符号量から前記算術符号化における算術符号化量を制御し、算術符号打ち切り点を決定するステップと、得られた算術符号打ち切り点がビットプレーン境界にない場合に、得られた算術符号打ち切り点をビットプレーン境界に変更するステップと、前記入力画像データから署名データを生成するステップと、前記入力画像データに署名データを埋め込むステップと、前記署名データが埋め込まれた画像データを複数のビットプレーンに展開し、各ビットプレーン毎に第2の符号化パスを生成するステップと、前記算術符号打ち切り点まで、前記第2の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第2の符号化データを生成するステップとを有することを特徴としている。
また、参考発明の電子透かし埋め込み方法の一態様は、電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、電子透かしを埋め込むビットプレーンを示すID情報を埋め込むステップと、前記ID情報で指定されたビットプレーンにデータを埋め込むステップとを有することを特徴としている。また、参考発明の電子透かし検出方法の一態様は、電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、前記電子透かし埋め込み方法によって画像データに埋め込まれたID情報を抽出し、データが埋め込まれているビットプレーンを特定するステップと、特定したビットプレーンからデータを抽出するステップとを有することを特徴としている。
また、第3の発明の電子透かし埋め込み方法の一態様は、第1の上位ビットプレーン評価手段及び埋め込み手段を有する電子透かし埋め込み装置が、画像データに対して実行する電子透かし埋め込み方法であって、前記第1の上位ビットプレーン評価手段が、入力画像データに対して情報を埋め込むビットプレーン指定、この情報を埋め込むビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報を埋め込む位置の順番が画質への影響の低い順になるように、情報を埋め込む位置の順番を示すラベリングを行うステップと、前記埋め込み手段が、前記ラベリングによって示された順番に従って、前記入力画像データに、埋め込みデータを埋め込むステップとを有することを特徴としている。また、第3の発明の電子透かし検出方法の一態様は、画像データを受信する手段、第2の上位ビットプレーン評価手段、及び抽出手段を有する電子透かし検出装置が、画像データに対して実行する電子透かし検出方法であって、前記画像データを受信する手段が、前記電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信するステップと、前記第2の上位ビットプレーン評価手段が、前記受信した画像データに対して情報を抽出するビットプレーン指定、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番が画質への影響の低い順になるように、情報が埋め込まれた位置の順番を示すラベリングを行うステップと、前記抽出手段が、前記第2の上位ビットプレーン評価手段による前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出するステップとを有することを特徴としている。
参考発明によれば、各ビットプレーンが複数の符号化パスで構成され、算術符号化されている場合であっても、埋め込んだ署名データを検証側ですべて取り出せるようにすることができる。
また、参考発明によれば、電子透かしを検証する際に、電子透かしをどこに埋め込んだかを示す情報が外部から得られなくても、電子透かしが埋め込まれたビットプレーンを特定することができる。そのため、電子透かしが埋め込まれているビットプレーンを特定し、埋め込んでおいたデータを抽出することができる。
また、第3の発明によれば、埋め込みデータを画質の影響の少ない部分に埋め込むことができるため、画質を向上させることができる。
≪1.参考発明≫
≪1−1.第1の実施形態≫
[電子透かし埋め込み側の構成]
図1は、第1の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
図1に示されるように、第1の実施形態の電子透かし埋め込み側の構成は、入力端子1001を通して入力された画像データに周波数変換を施して変換係数を出力する周波数変換手段1011と、この周波数変換手段1011から出力された変換係数を記憶する変換係数記憶手段1021とを有する。また、第1の実施形態の電子透かし埋め込み側の構成は、周波数変換手段1011から出力された変換係数をビットプレーン符号化するための符号化パス(符号化処理を行う手順)を生成するビットプレーン符号化パス生成手段1012と、このビットプレーン符号化パス生成手段1012によって生成された各符号化パスに従って変換係数を算術符号化する算術符号化手段1013とを有する。さらに、第1の実施形態の電子透かし埋め込み側の構成は、算術符号化手段1013によって算術符号化された算術符号の符号量が目標符号量入力端子1003から入力された符号量になるように、生成される算術符号化データの符号量を制御するレート制御手段1014を有する。さらにまた、第1の実施形態の電子透かし埋め込み側の構成は、埋め込んだ電子透かしをすべて取り出せるようにするために、レート制御手段1014により決定された算術符号打ち切り点を変更する符号化パス制御手段1015を有する。
また、図1に示されるように、第1の実施形態の電子透かし埋め込み側の構成は、変換係数記憶手段1021に記憶された変換係数から署名データを生成する署名生成手段1101と、この署名生成手段1101から得られる署名データを変換係数に埋め込む署名埋め込み手段1102と、署名データが埋め込まれた変換係数をビットプレーン符号化するための符号化パスを生成するビットプレーン符号化パス生成手段1012Aと、このビットプレーン符号化パス生成手段1012Aによって生成された各符号化パスを算術符号化して、符号化/電子透かし埋め込み後の圧縮データを出力する算術符号化手段1013Aとを有する。算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに符号化パス制御手段1015で変更した符号化パスまで算術符号化を行い、符号化/電子透かし埋め込み後の圧縮データを得る。算術符号化手段1013Aで生成された符号化/電子透かし埋め込み後の圧縮データは、出力端子1004を通して出力され、ネットワーク等を経由して、以下に説明する電子透かし検証側の構成に渡される。
[電子透かし検証側の構成]
図2は、第1の実施形態の電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
図2に示されるように、第1の実施形態の電子透かし検証側の構成は、上記した電子透かし埋め込み側の構成の出力端子1004(図1)から出力された圧縮データを入力端子1006を通して受け取り、圧縮データを復号する復号手段1031を有する。また、第1の実施形態の電子透かし検証側の構成は、復号手段1031によって得られた係数から署名データを生成する署名生成手段1202と、復号手段1031によって得られた係数から電子透かし埋め込み側で埋め込まれた署名データを抽出する署名抽出手段1201と、署名抽出手段1201により抽出された署名データと署名生成手段1202により生成された署名データとを比較し、比較結果を出力する署名比較手段1203とを有する。署名比較手段1203から出力された比較結果は、出力端子1007を通して出力される。
[電子透かし埋め込み側の動作]
図1に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子1001へ入力する。周波数変換手段1011は、入力端子1001へ入力された画像データに対して、例えば、ウェーブレット変換やDCTのような周波数変換を行い、周波数空間上の係数を生成する。変換係数記憶手段1021は、周波数変換手段1011により生成された変換係数を記憶する。
ビットプレーン符号化パス生成部1012は、周波数変換手段1011で生成された変換係数を所定の大きさのコードブロック(Code-block)に分割し、各コードブロックごとにMSBからLSBに至る複数のビットプレーンに展開した上で、各ビットプレーンを符号化するための符号化パス(Coding pass)を予め決めておいたルールに応じて決定する。算術符号化手段1013は、ビットプレーン符号化パス生成手段1012で生成した符号化パスごとに算術符号化を行い、符号化(圧縮)されたデータを生成する。静止画像符号化標準であるJPEG2000を適用する場合は、周波数変換にはウェーブレット変換を用い、ウェーブレット変換係数の各ビットプレーンは前述の3種類の符号化パス(シグニフィカンスプロパゲーションパス、マグニチュードリファイメントパス、クリーンナップパス)で算術符号化する。
レート制御手段1014は、算術符号化量が入力端子1003から入力された目標符号化量になるように、各コードブロックごとに算術符号化手段1013で得られた各符号化パスごとの算術符号化量をカウントし、目標符号化量に達した時点で、それ以降の符号化パスを切り捨てる。この処理により、各コードブロックにおける算術符号打ち切り点が求まり、圧縮後の算術符号化データに含まれる符号化パスが決まる(後述する図3(a)参照)。
符号化パス制御手段1015は、レート制御手段1014で得られた算術符号打ち切り点が、あるビットプレーンのデータの一部が含まれないようなビットプレーンの途中にある場合(後述する図3(a)参照)、その算術符号打ち切り点をビットプレーンの境界になるように変更する(後述する図3(b)参照)。その後、各コードブロックにおいて、圧縮後の算術符号化データに含まれるビットプレーンのうち、最もLSB側のビットプレーンを署名データの埋め込まれるビットプレーンとする。
図3(a)及び(b)は、第1の実施形態における符号化パス制御方法の説明図である。図3(a)は、符号化パス制御手段1015による制御前のビットプレーンの符号化パスを示し、図3(b)は、符号化パス制御手段1015による制御後のビットプレーンの符号化パスを示す。図3(a)及び(b)においては、各ビットプレーンが3個の符号化パス(図において、Coding pass A,Coding pass B,Coding pass Cと記載する。)で構成されている。
レート制御手段1014は、コードブロックCB0(図3において、Code-block 0と表記する。)において、図3(a)に示されるように、ビットプレーン番号‘0’のビットプレーン(図3において、Bit-plane 0と表記する。)の途中の符号化パスA(図3において、Coding pass Aと表記する。)までが圧縮後の算術符号化データに含まれるように、算術符号打ち切り点を設定している。そこで、算術符号打ち切り点がビットプレーンの境界になるように、符号化パス制御手段1015により算術符号打ち切り点を変更し、図3(b)に示されるように、同じビットプレーン番号‘0’のビットプレーンの符号化パスCまでが圧縮後の算術符号化データに含まれるようにする。
また、レート制御手段1014は、コードブロックCB1(図3において、Code-block 1と表記する。)において、図3(a)に示されるように、ビットプレーン番号‘1’のビットプレーン(図3において、Bit-plane 1と表記する。)の途中の符号化パスA(図3において、Coding pass Aと表記する。)までが圧縮後の算術符号化データに含まれるように、算術符号打ち切り点を設定している。そこで、算術符号打ち切り点がビットプレーンの境界になるように、符号化パス制御手段1015により算術符号打ち切り点を変更し、図3(b)に示されるように、一つ上位のビットプレーン番号‘2’のビットプレーン(図3において、Bit-plane 2と表記する。)の符号化パスCまでが圧縮後の算術符号化データに含まれるように算術符号打ち切り点を変更する。この場合、算術符号打ち切り点をビットプレーン境界にすればよく、同じビットプレーンを含むようにしても、一つ上位のビットプレーンまで含むようにしてもよい。
また、レート制御手段1014は、コードブロックCB2(図3において、Code-block 2と表記する。)において、図3(a)に示されるように、ビットプレーン番号‘2’のビットブレーン(図3において、Bit-plane 2と表記する。)の途中の符号化パスB(図3において、Coding pass Bと表記する。)まで含まれるような算術符号打ち切り点を設定している。そこで、算術符号打ち切り点がビットプレーンの境界になるように、符号化パス制御手段1015により算術符号打ち切り点を変更し、同じビットプレーン‘2’の符号化パスCまでが圧縮後の算術符号化データに含まれるように算術符号打ち切り点を変更する。
コードブロックCB3(図3においてCode-block 3と表記する。)においては、図3(a)に示されるように、算術符号打ち切り点がビットプレーン境界にあるので、これを変更する必要はない。
以上の処理によって、符号化パス制御後の各コードブロックにおける圧縮後の算術符号データに含まれる符号化パスの状態は図3(b)のようになる。また、署名データの埋め込まれるビットプレーンは、各コードブロックで圧縮後の算術符号化データに含まれるビットプレーンのうち、最もLSB側のビットプレーンになる。従って、図3(b)の場合には、圧縮後の算術符号化データに含まれるビットプレーンの番号は、コードブロックCB0,CB1,CB2,CB3のそれぞれについて、‘0’、‘2’、‘2’、‘1’となる。
図3(a)及び(b)では、各ビットプレーンが3種類の符号化パスに分けられた場合を示すが、さらに多くの種類の符号化パスによって各ビットプレーンを構成した場合も同様に処理することができる。また、算術符号打ち切り点をビットプレーン境界に変更する際に、変更前における算術符号化量と変更後における算術符号化量との差異が一番小さくなるように、ビットプレーン境界を選択してもよい。
署名生成手段1101は、変換係数記憶手段1021で保持されている変換係数に対して、署名データを生成する。変換係数のうち生成した署名データを埋め込む係数を除く変換係数から署名データを求める。具体的には、(1)署名データを埋め込むビットプレーン(これは符号化パス制御手段1015によって求められた)以外のビットブレーンのデータと、(2)署名データを埋め込むビットプレーンのうち署名データの埋め込みに使用されないすべてのビットとを用いて、SHA1等のハッシュ関数で得られたハッシュ値や、ハッシュ値をRSA等の暗号アルゴリズムで暗号化したもの、ハッシュ値の一部等を署名データとする。
署名埋め込み手段1102は、変換係数記憶手段1021で保持されている変換係数に対して、署名生成手段1101から得られる署名データを埋め込む。埋め込み位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルされた位置とすることもできる。
ビットプレーン符号化パス生成部1012Aは、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、ビットプレーン符号化パス生成部1012と同様の処理を行う。即ち、署名データが埋め込まれた変換係数に対して、所定の大きさのコードブロックに分割し、そのコードブロックごとにMSBからLSBに至る複数のビットプレーンに展開した上で、各ビットプレーンを符号化するため、符号化パスを予め決めておいたルールに応じて決定する。算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに符号化パス制御手段1015で変更した符号化パスまで算術符号化を行い、符号化(圧縮)されたデータを得る。署名データが埋め込まれ、符号化された係数は、出力端子1004を通して出力される。
[電子透かし検証側の動作]
図2に示されるように、電子透かしを検証する圧縮画像データを入力端子1006へ入力する。入力端子1006へ入力される圧縮画像データは、復号手段1031へ渡される。復号手段1031は、算術符号化されているデータを復号し、周波数空間上における変換係数を生成する。
署名抽出手段1201は、変換係数に埋め込まれた署名データを抽出する。抽出は、署名データ埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置からデータを抽出することで行う。電子透かし埋め込み側でハッシュ値等を暗号化している場合、ここで暗号をデコードし、元のデータに戻し、署名比較手段1203へ渡す。
署名生成手段1202は、電子透かし埋め込み側と同様の方法により変換係数に対して署名データを生成する。ただし、電子透かし埋め込み側で暗号化等を使用している場合、ここで暗号化を行う必要はなく、署名抽出手段1201で暗号のデコードを行う。生成した署名データは、署名比較手段1203へ渡される。
署名比較手段1203は、署名抽出手段1201により抽出された署名データと、署名生成手段1202により生成された署名データを比較し、この比較に基づいて、画像データの改ざんの有無を判定する。例えば、両方の署名データが一致した場合は改ざん無し、一致しない場合は改ざん有りと判定する。判定結果は、比較結果出力端子1007を通して出力される。
[第1の実施形態の効果]
以上説明したように、第1の実施形態によれば、各ビットプレーンが複数の符号化パスで構成され、算術符号化されている場合であっても、算術符号打ち切り点を変更することによって、埋め込んだ署名データを検証側ですべて取り出せるようにすることができる。また、第1の実施形態によれば、符号化後のデータ量を目標符号化量とするために、符号化処理におけるレート制御を用いることができるので、電子透かし埋め込み側の構成から、目標とする符号量となる符号化データを出力することができる。
≪1−2.第2の実施形態≫
[電子透かし埋め込み側の構成]
図4は、第2の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図4において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図4に示されるように、第2の実施形態の電子透かし埋め込み側の構成は、無効符号化パス打ち切り手段1016を有する点が、上記第1の実施形態(図1)の電子透かし埋め込み側の構成と相違する。
[電子透かし埋め込み側の動作]
第2の実施形態の電子透かし埋め込み側の構成の動作は、無効符号化パス打ち切り手段1016の動作を除いて、第1の実施形態の電子透かし埋め込み側の構成(図1)の動作と同様である。図4に示される無効符号化パス打ち切り手段1016は、算術符号化手段1013Aで得られた符号化パスの符号結果において、各コードブロックで圧縮後の算術符号データに含まれるビットプレーンのうち、最もLSB側のビットプレーンの符号化パスで打ち切ってもよい符号化パスがあるかどうかを調べる。その結果、打ち切ってもよいと判断した符号化パスが存在する場合には、その符号化パスを圧縮後の算術符号化データに含まないように変更する。
具体的には、無効符号化パス打ち切り手段1016が、上記ビットプレーンにおいて、算術符号化順が遅い符号化パスから順(一つのビットプレーンが符号化パス1,…,n−1,nの順で符号化されていた場合、符号化パスn,n−1,…,1の順)に調べて、初めて有意なデータが含まれている符号化パスを求める。そして、その有意なデータが含まれている符号化パスまでを圧縮後の算術符号データに含める符号化パスとして、算術符号打ち切り点を変更する。ここで、有意なデータとは、符号化対象となるビットに少なくとも一つの「1」が含まれていることを意味する。符号化対象のビットがすべて「0」である場合は、その符号化パスを圧縮後の算術符号化データに含めなくても、復号する際に符号化されていない符号化パスに該当するビットは「0」として復号すれば(通常の復号処理ではそのように取り扱われる)、署名埋め込み後の変換係数の値を、埋め込み側の装置と検証側の装置で同じにすることができる。このため、上記したように、有意なデータの無い符号化パスを打ち切ることができる。上記以外の点について、第2の実施形態における電子透かし埋め込み側の動作は、第1の実施形態における電子透かし埋め込み側の動作と同じである。
[電子透かし検証側の構成及び動作]
第2の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
[第2の実施形態の効果]
以上説明したように、第2の実施形態によれば、算術符号化の符号化パスのうちで、不必要な符号化パスがあるか調べ、不必要な符号化パスがあればその符号化パスを圧縮後の算術符号化データに含めないようにすることにより、同じ変換係数値を復号できることを保証しながら、算術符号化量を削減し、圧縮率の高いデータを得ることができる。
≪1−3.第3の実施形態≫
上述した第1の実施形態の電子透かし埋め込み側の構成では、署名データを埋め込んだすべての変換係数に対して、算術符号化手段1013Aによる算術符号化を行う必要があった。これに対して、第3の実施形態の電子透かし埋め込み側の構成では、各ビットプレーン単位で算術符号を初期化/終端処理することで、算術符号化を各ビットプレーンで独立に処理できるようにし、署名データを埋め込んだビットプレーンのみを算術符号化手段1013Aにより算術符号化し、署名データを埋め込んでいないビットプレーンに対する算術符号化手段1013Aによる算術符号化を省略することができる。
[電子透かし埋め込み側の構成]
図5は、第3の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図5において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図5に示されるように、第3の実施形態の電子透かし埋め込み側の構成は、符号化器内部リセット手段1017を有する点、及び、レート制御手段1014から出力される算術符号化データを出力端子1004に出力する点が、上記第1の実施形態(図1)の電子透かし埋め込み側の構成と相違する。
[電子透かし埋め込み側の動作]
算術符号化手段1013で用いられる算術符号には、JPEG2000等で用いられるMQ符号化等がある。MQ符号化の入力としては、符号化対象となるビット(シンボル)及びコンテキストを用いている。コンテキストとは、周辺画像から注目画素の0又は1の予測を行う確率評価モデルであり、予め決められた初期値から符号化対象として入力されたビットに応じて順次更新される。また、算術符号化手段1013は、算術符号化用のレジスタを内部に持っており、このレジスタも順次更新しながら算術符号化を行っている。
算術符号化の各処理単位で独立に処理を行うためには、算術符号化用のコンテキストの初期化や内部レジスタの初期化を行う必要がある。また、符号化の終了時には、算術符号化用のレジスタから符号を吐き出す処理である終端処理を行う必要がある。第3の実施形態においては、算術符号化手段1013で算術符号化を行う際に、各ビットプレーン単位で独立に処理を行うため、符号化器内部リセット手段1017により、各ビットプレーンごとに処理の開始時と終了時に前述の初期化/終端処理を行う。
ビットプレーン符号化パス生成部1012Aは、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、ビットプレーン符号化パス生成部1012と同様の処理を行うが、符号化パス制御手段1015からの情報により、署名データを埋め込んでいないビットプレーンは、ビットの変更が行われないので、この処理をスキップする。また、同様に、算術符号化手段1013Aでも、符号化パス制御手段1015からの情報により、署名データを埋め込んでいないビットプレーンは、ビットの変更が行われないので、上記ビットプレーンの算術符号化は行わない。
ただし、署名データを埋め込んだビットプレーンは、ビットが変更されているので、ビットプレーン符号化パス生成部1012Aでは、ビットプレーン符号化パス生成部1012と同様の処理が行われる。そして、その符号化パスに対しては、算術符号化手段1013Aで、算術符号化を行う。この際、符号化器内部リセット手段1017により、各ビットプレーンごとに前述の初期化/終端処理を行うことで、各ビットプレーンを独立に処理でき、署名データを埋め込んだビットプレーンのみの算術符号化が可能となる。
その後、レート制御手段1014で確定している署名データを埋め込んでいないビットプレーンの算術符号化データと、算術符号化手段1013Aから得られる署名データを埋め込んだビットプレーンの算術符号化データを結合することにより、符号化(圧縮)されたデータを得る。上記以外の点について、第3の実施形態における電子透かし埋め込み側の動作は、第1の実施形態における電子透かし埋め込み側の動作と同じである。
[電子透かし検証側の構成及び動作]
第3の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
[第3の実施形態の効果]
以上説明したように、第3の実施形態によれば、算術符号化において各ビットプレーンを独立に処理するために、算術符号化の初期化/終端処理を行っている。それにより、再び算術符号化をする必要がない署名データを埋め込んでいないビットプレーンの算術符号化をスキップし、算術符号化を行う必要がある署名データの埋め込まれたビットプレーンのみを算術符号化することができ、演算処理量を減らすことができる。
≪1−4.第4の実施形態≫
上述した第1の実施形態の電子透かし埋め込み側の構成では、署名データを埋め込んだすべての変換係数に対して、算術符号化手段1013Aによる算術符号化を行う必要があった。これに対して、第4の実施形態の電子透かし埋め込み側の構成では、算術符号化手段1013Aによる算術符号化を途中から再開できるように算術符号化手段1013の符号化器の内部情報を記憶しておくことにより、算術符号化手段1013Aによる算術符号化を行う必要がある署名データの埋め込またビットプレーンのみを符号化することができ、署名データを埋め込んでいないビットプレーンに対する算術符号化手段1013Aによる算術符号化を省略することができる。
[電子透かし埋め込み側の構成]
図6は、第4の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図6において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図6に示されるように、第4の実施形態の電子透かし埋め込み側の構成は、符号化器内部情報記憶手段1018を有する点、及び、レート制御手段1014から出力される算術符号を出力端子1004に出力する点が、上記第1の実施形態(図1)における電子透かし埋め込み側の構成と相違する。
[電子透かし埋め込み側の動作]
算術符号化手段1013で用いられる算術符号には、JPEG2000等で用いられるMQ符号化等がある。MQ符号化の入力としては、符号化対象となるビット(シンボル)及びコンテキストを用いている。コンテキストとは、周辺画像から注目画素の0又は1の予測を行う確率評価モデルであり、予め決められた初期値から符号化対象として入力されたビットに応じて、順次更新される。また、算術符号化には、算術符号化用のレジスタを内部に持っており、このレジスタも順次更新しながら算術符号化を行っている。
算術符号化を途中から再開する場合、符号化器の内部情報(コンテキスト、レジスタ)を初期状態から符号化した場合と同じ状態にしておく必要がある。そのために、第4の実施形態では、符号化器内部状態記憶手段1018が、算術符号化手段1013で算術符号化を行う際に、ビットプレーンの境界から算術符号化を再開できるように、ビットプレーンごとに符号化器の内部情報を記憶している。
ビットプレーン符号化パス生成部1012Aで、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、ビットプレーン符号化パス生成部1012と同様の処理を行うが、符号化パス制御手段1015からの情報により、署名データを埋め込んでいないビットプレーンは、ビットの変更が行われないので、この処理をスキップする。また、同様に、算術符号化手段1013Aでも上記ビットプレーンの算術符号化は行わない。ただし、ビットプレーン符号化パス生成部1012Aは、署名データを埋め込んだビットプレーンに対しては、ビットが変更されているので、ビットプレーン符号化パス生成部1012と同様の処理を行う。そして、その符号化パスに対しては、算術符号化手段1013Aで、算術符号化を行う。この際、符号化器内部状態記憶手段1018により、保持されている符号化器の内部情報を用いて、符号化するビットプレーンを符号化した際と同じ内部情報を符号化器に設定してから、算術符号化の処理を行う。
その後、レート制御手段1014で確定している署名データを埋め込んでいないビットプレーンの算術符号化データと、算術符号化手段1013Aから得られる署名データを埋め込んだビットプレーンの算術符号化データを結合することにより、符号化(圧縮)されたデータを得る。上記以外の点について、第4の実施形態の電子透かし埋め込み側の動作は、第1の実施形態の電子透かし埋め込み側の動作と同じである。
[電子透かし検証側の構成及び動作]
第4の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
[第4の実施形態の効果]
以上説明したように、第4の実施形態によれば、算術符号化を途中から再開できるように符号化器の内部情報を記憶しておくことにより、再び算術符号化をする必要がない署名データを埋め込んでいないビットプレーンの算術符号化をスキップし、算術符号化を行う必要がある署名データの埋め込まれたビットプレーンのみを算術符号化することができ、演算処理量を減らすことができる。
≪1−5.第5の実施形態≫
上述した第1の実施形態の電子透かし埋め込みが側の構成では、まず変換係数に対して、算術符号化を行った後、署名データを埋め込み、さらに署名データを埋め込んだ係数に対して、もう一度算術符号化を行う必要があった。これに対して、第5の実施形態の電子透かし埋め込みが側の構成では、変換係数の算術符号化を行う前に、予め署名データを埋め込むビットプレーンを指定し、生成した署名データをそのビットプレーンに埋め込んだ後に、算術符号化を行う。
[電子透かし埋め込み側の構成]
図7は、第5の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図7において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。
図7に示されるように、第5の実施形態の電子透かし埋め込み側の構成は、入力端子1001から入力された画像データを、周波数変換する周波数変換手段1011と、周波数変換手段1011により生成された変換係数を記憶する変換係数記憶手段1021とを有する。また、第5の実施形態の電子透かし埋め込み側の構成は、変換係数から署名データを生成する署名生成手段1101と、署名生成手段1101から得られる署名データを埋め込む署名埋め込み手段1102と、署名データが埋め込まれた変換係数をビットプレーン符号化するために符号化パスを生成するビットプレーン符号化パス生成手段1012Aと、各符号化パスを算術符号化する算術符号化手段1013Aとを有する。算術符号化手段1013Aで生成された符号化/電子透かし埋め込み後の圧縮データは、出力端子1004を通して出力される。また、署名生成手段1101、埋め込む署名埋め込み手段1102、ビットプレーン符号化パス生成手段1012A、及び算術符号化手段1013Aには、ビットプレーン入力端子1005を通してビットプレーンが入力される。
[電子透かし埋め込み側の動作]
図7に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子1001へ入力する。入力端子1001へ入力される画像データは、周波数変換手段1011へ渡される。周波数変換手段1011では、入力された画像に対して、例えば、ウェーブレット変換のような周波数変換を行い、周波数空間上の係数を得る。また、変換係数記憶手段1021でその変換係数を記憶しておく。
署名生成手段1101は、周波数変換手段1011で得られた変換係数に対して、署名データを生成する。変換係数のうち生成した署名データを埋め込む係数を除く変換係数から署名データを求める。具体的には、埋め込みビットプレーン入力端子1005から入力された埋め込みビットプレーン以外と、そのビットプレーンのうち埋め込みに使用しないすべてのビットを用いて、SHA1等のハッシュ関数で得られたハッシュ値や、ハッシュ値をRSA等の暗号アルゴリズムで暗号化したもの、ハッシュ値の一部等を署名データとする。
署名埋め込み手段1102は、変換係数記憶手段1021で保持されている変換係数に対して、署名生成手段1101から得られる署名データを埋め込む。埋め込むビットプレーンは、埋め込みビットプレーン入力端子1005から入力されるビットプレーンである。埋め込み位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルすることによって得られた位置とすることもできる。
ビットプレーン符号化パス生成部1012Aは、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、所定の大ささのコードブロックに分割し、そのコードブロックごとにMSBからLSBに至る複数のビットプレーンに展開した上で、各ビットプレーンを符号化するため、符号化パスを予め決めておいたルールに応じて決定する。算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに算術符号化を行い、符号化(圧縮)されたデータを得る。ビットプレーン符号化パス生成部1012A、算術符号化手段1013Aとも符号化パスの生成及びその算術符号化は、埋め込みビットプレーン入力端子1005から入力されるビットプレーンまで行えばよい。署名データが埋め込まれ、符号化された係数データは、出力端子1004を通して出力され、電子透かし検証側の構成に渡される。
[電子透かし検証側の構成及び動作]
第5の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
[第5の実施形態の効果]
以上説明したように、第5の実施形態によれば、予め署名データを埋め込むビットプレーンを指定することで、変換係数を算術符号化する前に、生成した署名データを埋め込んでおき、その後、署名データを埋め込んだ変換係数の算術符号化を指定されたビットプレーンまで行うことで、第1の実施形態では2回行っていた算術符号化の処理を、1回に削減することができる。
≪1−6.第6の実施形態≫
上述した第1の実施形態の電子透かし埋め込み側の構成では、変換係数に対して生成した符号化パスを算術符号化し、レート制御を行う場合、符号化パスの境界で算術符号打ち切り点を決定していた。これに対して、第6の実施形態の電子透かし埋め込み側の構成では、予めレート制御において算術符号打ち切り点を求める際に、ビットプレーンの途中で打ち切り点が設定されないように、ビットプレーンの境界にのみ算術符号打ち切り点が設定されるような制約条件を設けて、レート制御を行う。
[電子透かし埋め込み側の構成]
図8は、第6の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図8において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。第6の実施形態の電子透かし埋め込み側の構成は、第1の実施形態におけるレート制御手段1014に代えて、制約条件付きレート制御手段1019を備え、符号化パス制御手段1015を省略した点が、第1の実施形態の電子透かし埋め込み側の構成と相違する。
[電子透かし埋め込み側の動作]
第6の実施形態の電子透かし埋め込み側の構成の動作は、制約条件付きレート制御手段1019、署名生成手段1101、及び算術符号化手段1013Aの動作を除いて、第1の実施形態の電子透かし埋め込み側の構成の動作と同様である。
通常、レート制御において、算術符号打ち切り点は符号化(圧縮)された画像の画質が最適になるように符号化パスの境界で算術符号打ち切り点が決定される。しかし、制約条件付きレート制御手段1019では、あるビットプレーンに埋め込んだ署名データを検証側ですべて取り出せるようにするため、ビットプレーン途中にある符号化パス以降の算術符号が打ち切られることがないように、算術符号打ち切り点を求める。
即ち、算術符号打ち切り点をビットプレーン境界にするという条件で、目標符号量入力端子1003から入力された符号量になるように、各コードブロックごとに算術符号化手段1013で得られた各符号化パスごとの算術符号化量をカウントし、目標の符号化量に達した時点で、それ以降のパスを切り捨てる。この処理により、各コードブロックにおける算術符号打ち切り点が求まり、圧縮後の算術符号データに含まれる符号化パスが決まる。算術符号打ち切り点をビットプレーン境界にするという条件を付けることで、すべてのコードブロックで、図3(b)のようなビットプレーン境界(符号化パスCoding pass Cの直後)に算術符号打ち切り点が設定される。ただし、第1の実施形態のように、レート制御で求めた算術符号打ち切り点を、画質を考慮せずに符号化パス制御手段で変更したこととは異なり、第6の実施形態では制約条件があるとは言え、その条件下では、目標となる符号量に対して、最適な画質の圧縮データが得られるように、レート制御を行うことができる。従って、ビットプレーンの境界に算術符号打ち切り点が存在するが、各コードブロックにおける算術符号打ち切り点は、図3(b)と全く同じとは限らない。また、制約条件付きレート制御手段1019では、各コードブロックで圧縮後の算術符号データに含まれるビットプレーンのうち、最もLSB側のビットプレーンを署名データの埋め込まれるビットプレーンとする。
署名生成手段1101は、変換係数記憶手段1021で保持されている変換係数に対して、署名データを生成する。第1の実施形態と異なる点は、制約条件付きレート制御手段1019で求めた、署名データを埋め込むビットプレーンの情報を用いて署名データを生成することである。
算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに算術符号化を行う。第1の実施形態と異なる点は、制約条件付きレート制御手段1019で決定した符号化パスまでの算術符号化を行い、符号化(圧縮)されたデータを得ることである。上記以外の点について、第6の実施形態の電子透かし埋め込み側の動作は、第1の実施形態の電子透かし埋め込み側の動作と同じである。
[電子透かし検証側の構成及び動作]
第6の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
[第6の実施形態の効果]
以上説明したように、第6の実施形態によれば、一つのビットプレーンが複数の符号化パスで構成され、算術符号化されている場合でも、レート制御で決定される算術符号打ち切り点をビットプレーン境界に限定してレート制御を行うことで、埋め込んだ署名データを検証側ですべて取り出せるようにすることができる。また、通常、算術符号打ち切り点は符号化(圧縮)された画像の画質が最適になるように符号化パスの境界で算術符号打ち切り点が決定されるが、ビットプレーン境界に制約することで、最適な画質は得られない。しかし、制約条件付きではあるが符号化処理におけるレート制御を用いることができるので、目標とする符号量に対して準最適(ビットプレーン境界に算術符号打ち切り点を設定するという条件では最適)な画質を得ることができる。
なお、第6の実施形態の電子透かし埋め込み側の構成に、第2〜第4の実施形態の電子透かし埋め込み側の構成を組み合わせることもできる。
≪2.参考発明≫
≪2−1.第7の実施形態≫
[電子透かし埋め込み側の構成]
図9は、第7の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
図9に示されるように、第7の実施形態の電子透かし埋め込み側の構成は、入力端子2001に入力された画像データ及びビットプレーン入力端子2002に入力された埋め込みビットプレーンを指定するデータを受け取り、電子透かしが入力端子2002から入力された埋め込みビットプレーンに埋め込まれたことを示すID情報を埋め込むID情報埋め込み手段2102を有する。また、第7の実施形態の電子透かし埋め込み側の構成は、ID情報が埋め込まれた画像データに対して、埋め込みデータ入力端子2003から入力されたデータを、入力端子2002から入力された埋め込みビットプレーンに埋め込むデータ埋め込み手段2104を有する。データ埋め込み手段2104によりデータが埋め込まれた画像データは、出力端子2004を通して出力され、以下に説明する電子透かし検証側の構成に渡される。
[電子透かし検証側の構成]
図10は、第7の実施形態の電子透かし検証側の構成を示すブロック図である。
図10に示されるように、第7の実施形態の電子透かし検証側の構成は、入力端子2005に入力された電子透かしの検証対象である画像データからID情報を抽出し、抽出したID情報からデータが埋め込まれたビットプレーンを特定するID情報抽出手段2202を有する。また、第7の実施形態の電子透かし検証側の構成は、画像データからデータを抽出するデータ抽出手段2204を有する。データ抽出手段2204の出力は、出力端子2006を通して出力される。
[電子透かし埋め込み側の動作]
図9に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子2001へ入力する。入力端子2001へ入力される画像データは、ピクセルデータ、又は、ピクセルデータを周波数変換して得られる変換係数である。
ID情報埋め込み手段2102には、埋め込みビットプレーン入力端子2002を通して電子透かしが埋め込まれるビットプレーン番号が入力される。ID情報埋め込み手段2102は、入力されたビットプレーン番号のビットプレーンに、予め決めておいたID情報を埋め込む。電子透かしを埋め込むビットプレーンは、図11に示されるように、各コードブロックCB1〜CB8ごとに異なっていてもよい。図11の例では、コードブロックCB3において、電子透かしが埋め込まれるビットプレーン番号‘5’のビットプレーンに対して、N(bits)のID情報を埋め込んでいる。
ただし、ID情報を埋め込んだ結果と全く同じビットパターンが、ID情報を埋め込んだビットプレーンより上位のビットプレーンに存在する場合がある。そのような条件下で電子透かしを検証すると、どちらが本当のID情報か区別できなくなる。そこで、上記のような場合には、上位のビットプレーンにおける該当するビットパターンのうち、少なくとも一つのビットの値を反転させておけばよい。
データ埋め込み手段2104には、埋め込みビットプレーン入力端子2002を通して電子透かしが埋め込まれるビットプレーン番号が入力される。データ埋め込み手段2104は、電子透かしが埋め込まれるビットプレーン番号のビットプレーンに、埋め込みデータ入力端子2003から入力されたデータを埋め込む。図11の例では、コードブロックCB3において、電子透かしが埋め込まれるビットプレーン番号‘5’のビットプレーンに対して、埋め込んだID情報に引き続いて、M(bits)のデータを埋め込んでいる。
なお、図11では、先頭のビット(図11の下側において、左端のビット)から順にN(bits)のID情報、M(bits)のデータを埋め込んいるが、埋め込むビット位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルされることによって得られた位置とすることもできる。また、図11の例においては、画像データの1ビットに対して1ビットのID情報、データを順に埋め込んでいるが、画像データの複数のビットに対して、1ビットのID情報、データを埋め込んでもよい。また、データを何ビット埋め込んだかを示すために、データ先頭にデータのサイズを付加してもよい。
また、データを埋め込むビットプレーンに必ずID情報を埋め込む必要はなく、埋め込みビットプレーン入力端子2002から入力されるビットプレーン番号より、例えば、一つ上又は一つ下のビットプレーンにID情報を埋め込むようにしてもよい。さらに、ID情報を一つのビットプレーンに埋め込むのではなく、鍵をシードにした疑似ランダムシーケンス等を用いて、データを埋め込むビットプレーンを中心に、ID情報を埋め込むビットプレーンをランダマイズして、複数のビットプレーンに分散させて、ID情報を埋め込むこともできる。
また、ID情報と共にデータを埋め込むビットプレーン番号も埋め込むことで、任意のビットプレーンにID情報を埋め込むことも可能になる。図12の例を用いて説明すると、コードブロックCB3においては、ID情報はビットプレーン番号‘7’のビットプレーンに、データはビットプレーン番号‘5’のビットプレーンに埋め込んでいる。従って、ID情報を埋め込む際に、データを埋め込むビットプレーン番号である‘5’(2進数4ビットで表現すると“0101”)も一緒に埋め込んでおけばよい。
さらに、ID情報と共にデータを埋め込むビットプレーン番号を複数個埋め込むことで、それらのビットプレーン番号が示す複数のビットプレーンにデータを分割して埋め込むことも可能である。
また、データ量を圧縮するために、ID情報、データを埋め込んだビットプレーンより下位のビットプレーンを必要に応じて打ち切る処理を行うこともできる。
埋め込み後、画像データ出力端子2004から、ID情報及びデータが埋め込まれた後の画像データが出力される。この画像データは、ネットワーク等を経由して電子透かし検証側の構成に渡される。
[電子透かし検証側の動作]
図10に示されるように、電子透かしを検証する画像データを入力端子2005へ入力する。入力端子2005へ入力される画像データは、ピクセルデータ、又は、ピクセルデータが周波数変換された変換係数である。
ID情報抽出手段2202では、各コードブロックの上位ビットプレーンから、ID情報埋め込み時と同じ手法によりID情報の埋め込み位置を決定し、埋め込んだ位置からID情報を抽出する。そして、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、そのビットプレーンをデータが埋め込まれたビットプレーンである判定する。
ただし、上記説明はデータを埋め込むビットプレーンにID情報を埋め込んでいる場合であり、データを埋め込むビットプレーンより一つ上又は一つ下のビットプレーンにID情報を埋め込み側で埋め込んでいる場合は、上記説明と同様に、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、そのビットプレーンより一つ下又は一つ上のビットプレーンをデータが埋め込まれたビットプレーンであると判定する。
また、鍵をシードにした擬似ランダムシーケンス等でデータを埋め込むビットプレーンを中心に、ID情報が複数のビットプレーンに分散されて埋め込まれている場合は、ID情報検索時に、上位のビットプレーンから順番に、ID情報埋め込み時と同じ手法により分散させたビットプレーンを決定して、そのビットプレーンからID情報を抽出し、埋め込んだID情報と一致するか調べることによって、データが埋め込まれたビットプレーンを決定することができる。
また、ID情報と共にデータを埋め込んだビットプレーン番号が埋め込まれている場合には、上記と同様に、まず抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、次にID情報と共に埋め込まれているビットプレーン番号を取り出す。その後、そのビットプレーン番号が指し示すビットプレーンをデータが埋め込まれたビットプレーンと判定する。図12の例を用いて説明すると、コードブロックCB3においては、ビットプレーン番号‘7’のビットプレーンからID情報が抽出でき、そのID情報と共に埋め込まれているビットプレーン番号を取り出すことによって、データが埋め込まれたビットプレーン番号が‘5’(2進数4ビットで表現すると“0101”)であることが分かる。
さらには、ID情報と共に埋め込むビットプレーン番号が複数個埋め込まれている場合は、それら複数のビットプレーンにデータが埋め込まれていると決定する。
データ抽出手段2204は、ID情報抽出手段2202で求められたビットプレーンから、画像データに埋め込まれたデータを抽出する。抽出には、データ埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置からデータを抽出することで行う。データのサイズがデータ先頭に付加されている場合は、データサイズを抽出してから、データ本体を抽出する。抽出したデータは、抽出結果出力端子2006を通して出力する。
[第7の実施形態の効果]
以上説明したように、第7の実施形態によれば、電子透かしを検証する際に、電子透かしをどこに埋め込んだかを示す情報が外部から得られなくても、画像に埋め込んでおいたID情報により、電子透かしが埋め込まれたビットプレーンを特定することができる。そのため、データ量を削減する目的でビットプレーンを打ち切り、打ち切られる直前のビットプレーンに電子透かしを埋め込んでおいた画像に対して、打ち切られたビットプレーンを任意の値で復号を行った場合でも、電子透かし検証側で、もう一度同じ周波数変換を行って変換係数を求め、更にデータが埋め込まれているビットプレーンであることを示すID情報を抽出することで、電子透かしが埋め込まれているビットプレーンを特定し、埋め込んでおいたデータを抽出することができる。
≪2−2.第8の実施形態≫
上述した第7の実施形態の電子透かし埋め込み側の構成では、電子透かしの埋め込まれているビットプレーンであることを示すID情報を常に同じビットパターンを用いて電子透かしの埋め込みを行っていた。これに対して、第8の実施形態の電子透かし埋め込み側の構成では、電子透かし検証側の構成において発生する乱数と同じ乱数を発生させ、その乱数をID情報として用いることによって、常に異なるビットパターンをID情報として用いることができる。
[電子透かし埋め込み側の構成]
図13は、第8の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図13において、図9(第7の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図13に示されるように、第8の実施形態の電子透かし埋め込み側の構成は、シード入力端子2008に入力されるシードを受け取り乱数を発生する乱数発生手段2112を有する点が、上記第7の実施形態の電子透かし埋め込み側の構成(図9)と相違する。
[電子透かし検証側の構成]
図14は、第8の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図14において、図10(第7の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図14に示されるように、第8の実施形態の電子透かし検証側の構成は、シード入力端子2009に入力されるシードを受け取り乱数を発生する乱数発生手段2112を有する点が、上記第7実施形態の電子透かし検証側の構成(図10)と相違する。
[電子透かし埋め込み側の動作]
図13に示されるように、乱数生成手段2112では、シード入力端子2008から、乱数を発生させるためのシードが入力され、乱数を生成する。ID情報埋め込み手段2102では、電子透かしを埋め込むビットプレーンにID情報を埋め込む際に、乱数生成手段2112で生成した乱数をID情報のビットパターンとして、ID情報を埋め込む。このように乱数を用いることにより、各コードブロックごとに異なるID情報が埋め込まれる。上記以外の点について、第8の実施形態における電子透かし埋め込み側の動作は、第7の実施形態における電子透かし埋め込み側の動作と同じである。
[電子透かし検証側の動作]
図14に示されるように、乱数生成手段2112では、シード入力端子2009から、乱数を発生させるためのシードが入力され、乱数を生成する。電子透かし検証側でも、電子透かし埋め込み側と同じシードが入力され、同じ乱数を生成する。ID情報抽出手段2202では、各コードブロックの上位ビットプレーンから、ID情報を抽出し、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求める際に、乱数生成手段2112で生成した乱数をID情報のビットパターンとして使用する。もちろん、使用するビットパターンは、各コードブロックごとに異なるが、電子透かしの埋め込み側と同じビットパターンとなる。上記以外の点について、第8の実施形態における電子透かし検証側の動作は、第7の実施形態における電子透かし検証側の動作と同じである。
[第8の実施形態の効果]
以上説明したように、第8の実施形態によれば、電子透かしを検証する際に、電子透かしを埋め込んだ位置に関する情報が外部から得られなくても、画像に埋め込んでおいたID情報により、電子透かしが埋め込まれたビットプレーンを特定することができる。そのため、データ量を削減する目的でビットプレーンを打ち切り、打ち切られる直前のビットプレーンに電子透かしを埋め込んでおいた画像に対して、打ち切られたビットプレーンを任意の値で復号を行った場合でも、電子透かし検証側で、もう一度同じ周波数変換を行って変換係数を求め、更にデータが埋め込まれているビットプレーンであることを示すID情報を抽出することで、電子透かしが埋め込まれているビットプレーンを特定し、埋め込んでおいたデータを抽出することができる。
また、第8の実施形態によれば、電子透かしが埋め込まれたビットプレーンを特定するためにID情報を埋め込む際、電子透かし埋め込み側と電子透かし検証側とで同じように発生させた乱数をID情報のビットパターンとして使用することができる。そのため、同一画像内でも、埋め込まれるID情報がすべて同じであるようなことはなく、悪意を持った第三者が容易にID情報を特定できないようにすることができる。
≪2−3.第9の実施形態≫
第9の実施形態の電子透かし検証側の構成は、改ざん検出を行うために画像データから署名データを生成し、その署名データを電子透かしとして埋め込む際に、署名データを埋め込んだビットプレーンに電子透かしを埋め込んだことを示すID情報を埋め込むと共に、検出時にどの部分の画像データから署名データが生成されたかを知るために、署名データを求める際に対象となった画像データがどの部分であったかを示す情報も同時に埋め込む。
[電子透かし埋め込み側の構成]
図15は、第9の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図15において、図9(第7の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。
図15に示されるように、第9の実施形態の電子透かし埋め込み側の構成は、入力端子2001に入力された画像データ及びビットプレーン入力端子2002に入力された埋め込みビットプレーンを指定するデータを受け取り、電子透かしが入力端子2002から入力された埋め込みビットプレーンに埋め込まれたことを示すID情報を埋め込むID情報埋め込み手段2102を有する。また、第9の実施形態の電子透かし埋め込み側の構成は、署名データを求める際にハッシュ生成の対象となった画像データがどの部分であったかを示す情報を埋め込む署名生成情報埋め込み手段2106を有する。さらに、第9の実施形態の電子透かし埋め込み側の構成は、画像データから署名データを生成する署名生成手段2108と、署名生成手段2108から得られる署名データを画像データに埋め込む署名埋め込み手段2110とを有する。署名埋め込み手段2110で生成された埋め込み後の画像データは、出力端子2004を通して出力される。出力された画像データは、例えば、ネットワークを経由して、以下に説明する電子透かし検証側の構成に渡される。
[電子透かし検証側の構成]
図16は、第9の実施形態の電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図16において、図10(第7の実施形態)の構成と同一又は対応する構成には同じ符号を付す。
図16に示されるように、第9の実施形態の電子透かし検証側の構成は、入力端子2005を通して入力された画像データからID情報を抽出し、抽出したID情報から署名データが埋め込まれたビットプレーンを特定するID情報抽出手段2202と、埋め込み側で埋め込まれた署名データを抽出する署名抽出手段2206とを有する。また、第9の実施形態の電子透かし検証側の構成は、署名データを求める際にハッシュ生成の対象となった画像データがどの部分であったかを示す情報を抽出する署名生成情報抽出手段2208と、その署名生成情報に基づき、画像データから署名データを生成する署名生成手段2210とを有する。さらに、第9の実施形態の電子透かし検証側の構成は、抽出された署名データと生成した署名データとを比較する署名比較手段2212を有する。署名比較生成手段2210から出力された比較結果は、出力端子2007を通して出力される。
[電子透かし埋め込み側の動作]
図15に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子2001へ入力する。入力端子2001へ入力される画像データは、ピクセルデータ、又は、ピクセルデータを周波数変換して得られる変換係数である。
ID情報埋め込み手段2102は、埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、そのビットプレーンに予め決めておいたID情報を埋め込む。図17は、第9の実施形態に係る電子透かし埋め込み方法の説明図である。図17においては、電子透かしを埋め込むコードブロックは、コードブロック番号が偶数のコードブロックCB2,CB4,CB6,CB8のみであり、電子透かしを埋め込むビットプレーンは、各コードブロックごとで異なっていてもよい。図17の例では、コードブロックCB2において、電子透かしが埋め込まれるビットプレーン番号‘6’のビットプレーンに対して、N(bits)のID情報を埋め込んでいる。ただし、ID情報を埋め込んだ結果と全く同じビットパターンが、ID情報を埋め込んだビットプレーンより上位のビットプレーンに存在する場合は、第7の実施形態と同様な処理を施す。
署名生成情報埋め込み手段2106では、埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、そのビットプレーンに、署名データを求める際にハッシュ生成の対象となった画像データがどの部分であったかを示す情報を埋め込む。
具体的には、署名データの埋め込み対象ではないコードブロックにおいて、署名データを求める際にハッシュを生成する対象のデータがどの部分であったかを、電子透かしの検証側で署名データを求める際に識別するため、ハッシュ生成に用いた画像データのうち、最も下位のビットプレーン番号を埋め込み対象のビットプレーンに埋め込む。例えば、図17では、コードブロックCB1とCB2のデータからハッシュを求め、署名データを生成し、コードブロックCB2に埋め込む場合の例を示している。コードブロックCB2は、ビットプレーン番号‘6’のビットプレーンに、署名とともにID情報を埋め込むので、電子透かしの検証側で、ID情報を抽出することにより、署名データが埋め込まれているビットプレーンを決定でき、また署名データを生成する際にハッシュ生成に用いた画像データも決定することができる(ビットプレーン番号‘7’〜‘10’のすべてのビットとビットプレーン番号‘6’のビットプレーンのうち、署名データの埋め込みに使用しないすべてのビット)。しかし、コードブロックCB1に関しては、ID情報が埋め込まれていないので、このままでは、署名生成の際にどの部分をハッシュ生成に用いたかを、電子透かし検証側で識別できない。そこで、図17のように、ビットプレーン番号‘3’以下のビットプレーンが打ち切られ、ビットプレーン番号‘4’以上のビットプレーンのデータを用いてハッシュを生成する場合、署名データの埋め込み対象でないコードブロックCB1において、ハッシュ生成に用いたデータのうち、最も下位のビットプレーン番号である‘4’(2進数4ビットで表現すると“0100”)をコードブックCB2のデータの埋め込み対象であるビットプレーンに埋め込んでおく。
署名生成手段2108は、画像データに対して署名データを生成する。埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、画像データのうち生成した署名データを埋め込むビットを除く画像データから署名データを求める。具体的には、図17のコードブロックCB1及びCB2においては、コードブロックCB1におけるビットプレーン番号‘4’〜‘10’のすべてのビットプレーンと、コードブロックCB2におけるビットプレーン番号‘7’〜‘10’のすべてのビットプレーンと、ビットプレーン番号‘6’のビットプレーンのうち、署名データの埋め込みに使用しないすべてのビットを用いて、SHA1等のハッシュ関数で得られたハッシュ値や、ハッシュ値をRSA等で暗号化したもの、ハッシュ値の一部等を署名データとする。
署名埋め込み手段2110は、埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、そのビットプレーンに署名生成手段2101から得られる署名データを埋め込む。図17の例では、コードブロックCB2において、電子透かしが埋め込まれるビットプレーン番号‘6’のビットプレーンに対して、既に埋め込まれたID情報、署名生成情報に引き続いて、M(bits)の署名データを埋め込んでいる。
なお、図17では、先頭のビットから順にID情報、署名生成情報と署名データを埋め込んでいるが、埋め込むビット位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルすることも可能である。また、画像データの1ビットに対して1ビットのID情報、署名生成情報、署名データを順に埋め込んでいるが、画像データの複数のビットに対して、1ビットのID情報、署名生成情報、署名データを埋め込んでもよい。
さらに、第7の実施形態と同様に、ID情報を署名生成情報や署名データと必ず同じビットプレーンに埋め込んでおく必要はない。また、ID情報、署名生成情報、署名データをそれぞれ複数のビットプレーンに分散させて埋め込んでおいてもよい。
また、データ量を圧縮するために、第7の実施形態と同様にID情報、署名生成情報、署名データを埋め込んだビットプレーンより下位のビットプレーン(例えば、図17におけるコードブロックCB2におけるビットプレーン番号‘5’以下)及びハッシュの生成に用いていないビットプレーン(例えば、図17におけるコードブロックCB1におけるビットプレーン番号‘3’以下)を必要に応じて打ち切る処理を行うこともできる。
署名埋め込み手段2110から出力されたID情報、署名生成情報及び署名データが埋め込まれた後の画像データは、画像データ出力端子2004を通して出力される。
[電子透かし検証例の動作]
図16に示されるように、電子透かしを検証する画像データを入力端子2005へ入力する。入力端子2005へ入力される画像データは、ピクセルデータ、又は、ピクセルデータが周波数変換された変換係数である。
ID情報抽出手段2202は、電子透かしの埋め込み対象のコードブロックにおける上位ビットプレーンから、ID情報埋め込み時と同じ手法によりID情報の埋め込み位置を決定し、埋め込んだ位置からID情報を抽出する。そして、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、そのビットプレーンを署名生成情報、署名データが埋め込まれたビットプレーンと判定する。
なお、ID情報が署名生成情報や署名データと異なるビットプレーンに埋め込まれている場合や、ID情報、署名生成情報、署名データがそれぞれ異なるビットプレーンに分散されて埋め込まれている場合でも、第7の実施形態と同様に署名生成情報や署名データが埋め込まれたビットプレーンを求めることができる。
署名抽出手段2206は、ID情報抽出手段2202で求めたビットプレーンから、画像データに埋め込まれた署名データを抽出する。抽出には、署名データ埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置から署名データを抽出することで行う。電子透かし埋め込み側でハッシュ値等を暗号化している場合、ここで暗号をデコードし、元のデータに戻し、署名比較手段2212へ渡す。
署名生成情報抽出手段2208は、ID情報抽出手段2202で求めたビットプレーンから、画像データに埋め込まれた署名生成情報を抽出する。抽出には、署名生成情報の埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置から、署名データを求める際にハッンュ生成で用いた画像データがどの部分であったかを示す情報を抽出することで行う。抽出した署名生成情報は、署名生成手段2210に渡す。
署名生成手段2210は、ID情報抽出手段2202と署名生成情報抽出手段2208から得られた情報を基に、電子透かし埋め込み側と同様の方法により画像データに対して署名データを生成する。即ち、署名データが埋め込まれているコードブロックに対しては、ID情報抽出手段2202で求めたビットプレーンに基づいて、署名データを求める際にハッシュ生成の対象となった画像データを決定でき、署名データが埋め込まれていないコードブロックに対しても、署名生成情報抽出手段2208で得られた情報(ハッシュ生成の対象となった画像データのうち最下位のビットプレーン番号)より、同じく署名データを求める際にハッシュ生成の対象となった画像データを決定できる。
ただし、電子透かし埋め込み側で暗号化等を使用している場合、ここで暗号化を行う必要はなく、署名抽出手段2206で暗号のデコードを行う。生成した署名データは、署名比較手段2212へ渡す。
署名比較手段2212では、署名抽出手段2206で抽出された署名データと、署名生成手段2210で生成された署名データとを比較する。例えば、両方の署名データが一致した場合は改ざん無し、一致しない場合は改ざん有りとし、その結果を比較結果出力端子2007を通して出力する。
[第9の実施形態の効果]
以上説明したように、第9の実施形態によれば、電子透かしが埋め込まれているビットプレーンであることを示すID情報及び署名データを求める際にハッシュを生成する対象のデータの位置に関する情報を示す署名生成情報を画像に埋め込んでおくことで、外部からそれらの情報が得られなくても、署名データが埋め込まれたビットプレーンと署名データを求める際にハッシュ生成で用いられた画像データを特定することができる。そのため、データ量を削減する目的で、署名生成や署名データの埋め込みに用いられていないビットプレーンを打ち切った画像に対して、打ち切られたビットプレーンを任意の値で復号を行った場合でも、電子透かし検証側で、もう一度同じ周波数変換を行って変換係数を求め、更に署名データと署名生成情報が埋め込まれているビットプレーンを示すID情報を抽出することで、署名データと署名生成情報が埋め込まれているビットプレーンを特定し、埋め込んでおいた署名データを抽出することができる。さらに、署名データを求める際にハッシュを生成する対象のデータがどの部分であったかを示す署名生成情報を抽出することで、どの部分の画像データから署名データが生成されたかも決定でき、電子透かし埋め込み側と同様に署名データを生成することができる。その結果、正しい改ざん検出結果を得ることができる。
≪3.第3の発明≫
≪3−1.第10の実施形態≫
[電子透かし埋め込み側の構成]
図18は、第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
図18に示されるように、第10の実施形態の電子透かし埋め込み側の構成は、入力端子3001に入力された画像データを、1又は複数のブロックに分割するブロック化手段3100を有する。また、第10の実施形態の電子透かし埋め込み側の構成は、ブロック化手段3100によりブロック化された画像データ及び埋め込みビットプレーン入力端子3003を通して入力される埋め込みビットプレーンを指定するデータを受け取り、ブロック化された画像データの上位ビットプレーンを調べる上位ビットプレーン評価手段3101を有する。さらに、第10の実施形態の電子透かし埋め込み側の構成は、ブロック化手段3100によりブロック化された画像データ、埋め込みビットプレーン入力端子3003を通して入力される埋め込みビットプレーンを指定するデータ、上位ビットプレーン評価手段3101から出力される評価結果、及び埋め込みデータ入力端子3002を通して入力されたデータを受け取り、埋め込みデータ入力端子3002から入力されたデータを画像データの指定されたビットプレーンの評価結果に基づく位置に埋め込む埋め込み手段3103を有する。埋め込み手段3103から出力されるデータ埋め込み後の画像データは、出力端子3004を通して出力される。
図19は、第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)のJPEG2000圧縮器への適用例を示すブロック図である。図19において、図18の構成と同一又は対応する構成には同じ符号を付す。
図19に示されるように、JPEG2000圧縮器は、図18の構成に加えて、入力画像データがカラー画像データである場合にカラー空間を変換するカラー変換手段3050と、入力画像データのタイル分割を行うタイル分割手段3054と、ウェーブレット変換を行うウェーブレット変換手段3051と、ウェーブレット係数を量子化する量子化手段3052と、電子透かしの埋め込まれた係数を符号化する符号化手段3053とを有する。符号化手段3053により符号化されたビットストリームは、埋め込み後画像ビットストリーム出力端子3005を通して出力される。
[電子透かし検証側の動作]
図22は、第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
図22に示されるように、第10の実施形態の電子透かし検証側の構成は、入力端子3010を通して入力された画像データを、ブロックに分割するブロック化手段3200を有する。また、第10の実施形態の電子透かし検証側の構成は、ブロック化手段3200によりブロック化された画像データ及び抽出ビットプレーン入力端子3013を経由して入力される抽出するビットプレーンを指定するデータを受け取り、ブロック化された画像データの上位ビットプレーンを調べる上位ビットプレーン評価手段3201を有する。さらに、第10の実施形態の電子透かし検証側の構成は、ブロック化手段3200によりブロック化された画像データ、抽出ビットプレーン入力端子3013を通して入力される抽出ビットプレーンを指定するデータ、及び上位ビットプレーン評価手段3201から出力される評価結果を受け取り、入力された画像データについて、指定された抽出ビットプレーンの中の上記評価結果に基づく位置からデータを抽出するに抽出手段3203を有する。抽出手段3203から出力される抽出結果は、出力端子3012を通して出力される。
図23は、第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)のJPEG2000伸張器への適用例を示すブロック図である。図23において、図22の構成と同一又は対応する構成には同じ符号を付す。図23に示されるように、JPEG2000伸張器へ適用した場合には、図22のブロック化手段3200に代えて、JPEG2000ビットストリームを復号し、ウェーブレット係数とブロック情報を出力する復号手段3204を有する。
[電子透かし埋め込み側の動作]
図18に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子3001へ入力する。ピクセルデータへ直接電子透かしを埋め込む場合は、入力データはピクセルデータとなる。また、周波数空間上での電子透かしの場合は、入力データはウェーブレット係数やDCT係数となる。
入力端子3001へ入力される画像データは、ブロック化手段3100へ渡される。ブロック化手段3100では、入力された画像データを、M×Nサイズのブロックへ分割する。ピクセルデータへの電子透かしの場合は、M×Nピクセルのブロックとなり、また、周波数空間上での電子透かしの場合は、ウェーブレット変換やDCT後の係数空間上におけるM×N係数のブロックとなる。このブロックは、ピクセル空間上で同じ位置を示す、異なる周波数の係数群で構成してもよいし、ピクセル空間上で近い位置を示す、同じ周波数の係数群で構成してもよい。
上位ビットプレーン評価手段3101は、画質への影響の低い順に画像データに対しラベリングを行う。通常、平滑な領域(低周波数成分しかないような領域)に加えられる変更は、複雑な領域(高周波数成分が近傍にあるような領域)へ加えられる変更よりも知覚されやすいので、複雑な領域近辺に高い優先度を与えるようにラベリングを行う。
図20は、第10の実施形態に係る電子透かし埋め込み方法の説明図である。図20においては、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べている。また、図20においては、ビットプレーン番号‘5’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図20において、網掛け箇所は、上位ビットプレーンに非0の値のある係数ビットであり、クロスハッチング箇所は、上位ビットプレーンが0である非0の係数ビットである。
例えば、各画像データ単位に、埋め込みビットプレーン(例えば、図20におけるビットプレーン番号‘5’のビットプレーン)よりも上位にあるデータのレベルに応じてラベリングを行う。この場合、ラベルは、データのレベルを基準にソートを行ったときの順番に相当する(例えば、図20においては、係数2,5,8,1の順)。また、値0の画像データは、値0の範囲内で、周囲に非0の画像データが存在する順でラベリングを行う。
これを式で表現すると、以下のようになる。埋め込みビットプレーンより上位のビットプレーンのデータをa(x,y)とすると、|a(x,y)|>0である画像データに対しては、a(x,y)の大きい順にラベリングを行う。また、|a(x,y)|=0である画像データに対しては、8近傍の画像データの値の絶対和、即ち、
(|a(x+1,y)|+|a(x,y+1)|
+|a(x−1,y)|+|a(x,y−1)|
+|a(x+1,y+1)|+|a(x−1,y+1)|
+|a(x+1,y−1)|+|a(x−1,y−1)|)
の大きい順にラベリングを行う。
埋め込み手段3103では、上位ビットプレーン評価手段3101でラベリングを行った順に、埋め込みを行う。埋め込みは、ラベリングを行った順に、各画像データに対して1ビットの埋め込みメッセージを順に埋め込んでいく。Xビットのメッセージの埋め込みには、X個の画像データが用いられる。また、メッセージ先頭にメッセージのサイズを埋め込んでもよい。この場合、X+Y個(Yは、メッセージ長を埋め込むのに必要なビット数)の画像データが用いられる。
図21は、第10の実施形態に係る電子透かし埋め込み方法の他の例説明図である。図21の上側には、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べた例が示されている。また、図21においては、ビットプレーン番号‘5’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図21において、網掛け箇所は、上位ビットプレーンに非0の値のある係数ビットであり、クロスハッチング箇所は、上位ビットプレーンが0である非0の係数ビットである。さらにまた、図21の中央付近には、各グループの埋め込みビットプレーン(上位ビットプレーンの値でソートした後)を示し、左側から右側に向けて、値の大きな係数ビットから値の小さな係数ビットが描かれている。図21には、画像や埋め込み係数を複数のグループに分け、各グループ単位に1ビット埋め込む場合が示されている。図21においては、複数グループへの分割方法は、各グループに、大きな値の係数が均等に割り振られるようにしている。
また、図21には、複数ビット情報に基づいて1ビット情報を計算し、計算によって得られた1ビット情報を埋め込む方法が説明されている。図21に示されるように、例えば、1ビットを埋め込むためのグループのデータが“0101”(4ビット)である場合に、これらの複数ビットのデータの排他的論理和(XOR)を計算する。この場合には、XOR演算の結果は0である。この演算結果0を、このグループに埋め込む値(1ビット)と比較し、比較の結果が異なる場合には、XOR演算の結果が埋め込むビット値に等しくなるように、各グループのある1ビットの値を変更する。
以上のようにして得られた画質への影響の低い順を示すラベリングの順番に、署名データを画像データに埋め込み、署名データが埋め込まれた画像データが、画像データ出力端子3004を通して、埋め込み後画像データ出力端子を通して出力される。
[電子透かし検証側の動作]
図22に示されるように、電子透かしを検証するターゲット画像の画像データを入力端子3010へ入力する。ピクセルデータへ直接電子透かしが埋め込まれている場合は、入力データはピクセルデータとなる。また、周波数空間上での電子透かしの場合は、入力データはウェーブレット係数やDCT係数となる。入力端子3010へ入力される画像データは、ブロック化手段3200へ渡される。ブロック化手段3200では、入力された画像データを、M×Nサイズのブロックへ分割する。ピクセルデータへの電子透かしの場合は、M×Nピクセルのブロックとなり、また、周波数空間上での電子透かしの場合は、ウェーブレット変換やDCT後の係数空間上におけるM×N係数のブロックとなる。
上位ビットプレーン評価手段3201は、抽出ビットプレーン入力端子3013から入力されたビットプレーン情報を用い、電子透かし埋め込み側の上位ビットプレーン評価手段3101(図18)と同じ方法で画像データのラベリングを行ない、ラベリング順に1係数から1ビットのメッセージを抽出する。メッセージ長をメッセージ先頭に埋め込んでいる場合は、メッセージ長を抽出してから、メッセージ本体を抽出する。抽出手段3203により抽出されたメッセージは、抽出結果出力端子3012を通して出力される。
[第10の実施形態の効果]
以上説明したように、第10の実施形態によれば、埋め込みデータを画質の影響の少ない部分に埋め込むことができるため、電子透かしが埋め込まれた画像の画質を向上させることができる。また、電子透かし検証側では、電子透かしが埋め込まれたビットプレーンよりも上位のビットプレーンの情報を用いてデータの埋め込み位置を検出するため、電子透かしが埋め込まれたビットブレーンと、それよりも上位のビットプレーンを取得した段階で、電子透かしの抽出を行うことができる。
≪3−2.第11の実施形態≫
[電子透かし埋め込み側の構成]
図24は、第11の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図24において、図18(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図24に示されるように、第11の実施形態の電子透かし埋め込み側の構成は、ブロック判定手段3102と、ゼロブロックマーキング手段3104とを有する点が、上記第10の実施形態の電子透かし埋め込み側の構成(図18)と相違する。
[電子透かし検証側の構成]
図26は、第11の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図26において、図22(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図26に示されるように、第11の実施形態の電子透かし検証側の構成は、ブロック判定手段3202を有する点が、上記第10の実施形態の電子透かし検証側の構成(図22)と相違する。
[電子透かし埋め込み側の動作]
図24に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子3001へ入力する。ピクセルデータへ直接電子透かしを埋め込む場合は、入力データはピクセルデータとなる。また、周波数空間上での電子透かしの場合は、入力データはウェーブレット係数やDCT係数となる。
入力端子3001へ入力される画像データは、ブロック化手段3100へ渡される。ブロック化手段3100では、入力された画像データを、M×Nサイズのブロックへ分割する。ピクセルデータへの電子透かしの場合は、M×Nピクセルのブロックとなり、また、周波数空間上での電子透かしの場合は、ウェーブレット変換やDCT後の係数空間上におけるM×N係数のブロックとなる。このブロックは、ピクセル空間上で同じ位置を示す、異なる周波数の係数群で構成してもよいし、ピクセル空間上で近い位置を示す、同じ周波数の係数群で構成してもよい。
ブロック判定手段3102は、埋め込みビットプレーン入力端子3003から入力されたデータにより指定されたビットプレーンをブロック単位に走査する。走査した結果、ビットプレーンのデータがすべて0(ゼロ)であるall0(オール0)ブロックをマークする。
上位ビットプレーン評価手段3101は、上位ビットプレーンを評価し、画質への影響の低い順に画像データに対しラベリングを行う。通常、平滑な領域(低周波数成分しかないような領域)に加えられる変更は、複雑な領域(高周波数成分が近傍にあるような領域)へ加えられる変更よりも知覚されやすいので、複雑な領域近辺に高い優先度を与えるようにラベリングを行う。ラベリングの方法は、上記第10の実施形態の場合と同様である。
埋め込み手段3103は、ブロック判定手段3102によってall0ブロックである判定されなかったブロックに属し、かつ、上位ビットプレーン評価手段3101によって、上位ビットプレーンに有意なデータがあるとされた画像データへのメッセージの埋め込みを行う。
メッセージが、上記条件の画像データ数よりも多い場合、さらに、ブロック判定手段3102によってall0ブロックである判定されたブロックに属し、かつ、上位ビットプレーン評価手段3101によって、上位ビットプレーンに有意なデータがあるとされた画像データに対しても、メッセージの埋め込みを行う。メッセージの埋め込み位置は、メッセージを埋め込む前に予め決定しておく。
ゼロブロックマーキング手段3104は、メッセージの埋め込まれたブロックで、埋め込みビットプレーンのデータがすべて0となったall0ブロックに、マーキングを行う。マーキングは、ブロックのメッセージを埋め込んだビットプレーン上で、メッセージの埋め込みに使用しなかった部分の少なくとも1画像データを1にすることで行う。1にする画像データは、メッセージ埋め込みに使用せず、かつ、上位ビットプレーン評価手段3101による評価値が大きいものとしてもよい。
図25は、第11の実施形態に係る電子透かし埋め込み法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)の他の例を示すブロック図である。ゼロブロックマーキング手段3104は、メッセージを埋め込む予定のブロックすべてに、マーキングを行う。マーキングは、ブロックのメッセージを埋め込んだビットプレーン上で、メッセージの埋め込みに使用しない部分の少なくとも1画像データを1にすることで行う。1にする画像データは、メッセージ埋め込みに使用せず、かつ、上位ビットプレーン評価手段による評価値が大きいものとしてもよい。署名等を埋め込む場合、マーキングを行ってから署名値を計算する必要があるが、その場合、図25の構成となる。
[電子透かし検証側の動作]
図26に示されるように、ブロック判定手段3202及び上位ビットプレーン評価手段3201は、電子透かし埋め込み側と同様の方法でブロックのマーキングを行う。抽出手段3203は、署名埋め込み側で埋め込み位置を決定したのと同じ方法で、画像データからメッセージを抽出する。
電子透かし埋め込み側では、ビットプレーンのデータが0のブロックへの埋め込みを避け、電子透かし検証側では、ビットプレーンのデータが0のブロックからの抽出を避けている。ゼロブロックマーキング手段3104は、メッセージの埋め込み位置を埋め込み側と検証側で同期させるため、ビッドプレーンのデータが0のブロックという状態が埋め込み側と検証側で変化しないために、マーキングを行う。第11の実施形態の電子透かし検証側の動作において、上記以外の点は、第10の実施形態の電子透かし検証側の動作と同様である。
[第11の実施形態の効果]
第11の実施形態によれば、ゼロビットプレーンへの埋め込みを避けているので、符号化効率を向上させることができる。
≪3−3.第12の実施形態≫
[電子透かし埋め込み側の構成]
図27は、第12の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図27において、図18(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図27に示されるように、第12の実施形態の電子透かし埋め込み側の構成は、埋め込みビットプレーンと画像データから、埋め込み対象の係数を決定する埋め込み係数決定手段3301と、決定した埋め込み係数を記憶する埋め込み位置記憶手段3302と、入力画像データに埋め込みデータを埋め込む埋め込み手段3103とを有する。
[電子透かし検証側の構成]
図28は、第12の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図28において、図22(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図28に示されるように、第12の実施形態の電子透かし検証側の構成は、埋め込みビットプレーンと画像データから、埋め込み対象の係数を決定する埋め込み係数決定手段3311と、決定した埋め込み係数を記憶する埋め込み位置記憶手段3312と、画像データから埋め込み画像を抽出する抽出手段3203とを有する。
[電子透かし埋め込み側の動作]
図27に示されるように、埋め込み係数決定手段3301は、入力された埋め込みビットプレーン情報を元に、埋め込み位置を決定する。決定方法は、第10及び第11の実施形態の上位ビットプレーン評価手段3101(図18、図24)や、ブロック判定手段3102(図24)の方法を用いてもよい。
埋め込み位置記憶手段3302は、埋め込み係数決定手段3301によって決定された埋め込み係数を記憶する。
埋め込み手段3103は、埋め込みビットプレーン入力端子3003から入力されたビットプレーンで、埋め込み係数決定3301により決定された係数に対し、情報の埋め込みを行う。
図29は、第12の実施形態に係る電子透かし埋め込み方法の説明図である。図29においては、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べている。また、図29においては、ビットプレーン番号‘5’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図29において、網掛け箇所は、埋め込みに使用した係数の、埋め込みビットプレーンよりも下位のビットプレーン(情報の埋め込みに追加して使用する部分)である。
図30は、第12の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。図30においては、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べている。また、図30においては、ビットプレーン番号‘0’‘4’‘7’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図30において、網掛け箇所は、埋め込みに使用した係数の、埋め込みビットプレーンよりも下位のビットプレーン(情報の埋め込みに追加して使用する部分)である。
図29又は図30に示されるように、埋め込み係数決定手段3301により決定された係数で、かつ、実際に埋め込みに使用した係数を埋め込み位置記憶手段3302から取得し、埋め込みビットプレーンよりもLSB側のビットプレーンに、情報の埋め込みを行う。
電子透かしを埋め込んだビットプレーン以下の部分は、元の係数値との誤差値を最小にするように、すべて0(all0)、すべて1(all1)、又はその中間値にしたり、埋め込みによってデータが変更しなかった場合、そのままにしたりする。また、すべてゼロ(all0)又はすべて1(all1)にした場合、それらの値を評価することで埋め込み位置が判明しやすくなるため、下位ビットをランダムな値で満たす(フィルする)こともある。この場合、データの埋め込みキャパシティを無駄に浪費していることになるので、下位ビットに情報の埋め込みを行う。
改ざん検出用の電子透かしの場合、埋め込みビットプレーン入力端子3003から入力されたビットプレーンに対しては署名データを埋め込み、それよりもLSB側の部分にはメッセージの埋め込みに使用してもよい。また、電子透かし検証時に、1ビットプレーン単位でのプログレッシブ伝送に対応するように、メッセージはビットプレーン順に埋め込んでもよい。第12の実施形態の電子透かし埋め込み側の動作において、上記以外の点は、第10及び第11の実施形態の電子透かし埋め込み側の動作と同様である。
[電子透かし検証側の動作]
図28に示されるように、埋め込み係数決定手段3311は、入力された検出ビットプレーン情報を元に、埋め込まれた位置を決定する。決定方法は、第10の実施形態における上位ビットプレーン評価手段3201(図22)や、第11の実施形態におけるブロック判定手段3202(図26)の方法を用いてもよい。
埋め込み位置記憶手段3312は、埋め込み係数決定手段3311によって決定された埋め込み係数を記憶する。
抽出手段3203は、決定された係数に対し、情報の抽出を行う。また、埋め込み係数決定手段3311により決定された係数で、かつ、実際に抽出に使用した係数を埋め込み位置記憶手段3312から取得し、抽出ビットプレーンよりもLSB側のビットプレーンから、情報の抽出を行う(図29、図30参照)。第12の実施形態の電子透かし検証側の動作において、上記以外の点は、第10及び第11の実施形態の電子透かし検証側の動作と同様である。
[第12の実施形態の効果]
以上説明したように、第12の実施形態によれば、MSBとLSBの間のビットプレーンに情報を埋め込んだ場合、それよりも下位のビットプレーンのデータに情報を埋め込むことで、埋め込み可能な情報量を飛躍的に増大させることができる。
≪4.他の利用形態≫
上記第1〜第12の実施形態の構成は、コンピュータシステムで構成することができる。この場合には、上記各実施形態における電子透かし埋め込み方法及び電子透かし検出方法を、コンピュータシステムにインストールされたアプリケーションプログラムに従って実行させることができる。このアプリケーションプログラムのインストール方法には、インストール用プログラムが記録された記憶媒体からのインストールやインターネットを経由したダウンロード等の方法がある。
上記第1〜第12の実施形態の構成は、コンピュータシステムで構成することができるので、上記第1〜第12の実施形態の内の幾つかの構成の機能を組み合わせたシステムを提供することも可能である。
参考発明の第1の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第1〜第6の実施形態の電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 (a)及び(b)は、参考発明の第1の実施形態の符号化パス制御方法の説明図である。 参考発明の第2の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第3の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第4の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第5の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第6の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第7の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第7の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 参考発明の第7の実施形態の電子透かし埋め込み方法の説明図である。 参考発明の第7の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。 参考発明の第8の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第8の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 参考発明の第9の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 参考発明の第9の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 参考発明の第9の実施形態に係る電子透かし埋め込み方法の説明図である。 第3の発明の第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 第3の発明の第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)のJPEG2000圧縮器への適用例を示すブロック図である。 第3の発明の第10の実施形態に係る電子透かし埋め込み方法の説明図である。 第3の発明の第10の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。 第3の発明の第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 第3の発明の第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)のJPEG2000伸張器への適用例を示すブロック図である。 第3の発明の第11の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 第3の発明の第11の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)の他の例を示すブロック図である。 第3の発明の第11の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 第3の発明の第12の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。 第3の発明の第12の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。 第3の発明の第12の実施形態に係る電子透かし埋め込み方法の説明図である。 第3の発明の第12の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。 ビットプレーンの概念の説明図である。 ビットマップ画像にフラジャイル電子透かしを埋め込む動作の説明図である。 フラジャイル電子透かしを検証する動作の説明図である。 周波数空間上の係数を符号化する構成を示すブロック図である。 一つのビットプレーンに対して1種類の符号化パスが生成される場合の算術符号化を示す説明図である。 一つのビットプレーンに対して3種類の符号化パスが生成される場合の算術符号化を示す説明図である。 ビットプレーン番号‘2’以下のビットプレーンが打ち切られ、ビットプレーン番号‘3’のビットプレーンに電子透かしが埋め込まれる場合を示す説明図である。 (a)は、復号の際に、打ち切られたビットプレーンをすべて「0」とした場合を示す説明図であり、(b)は、復号の際に、打ち切られたビットプレーンの最上位ビットプレーンが非0係数である場合を示す説明図である。 情報の埋め込みに適した領域と適していない領域を示す説明図である。
符号の説明
1011 周波数変換手段、
1012 ビットプレーン符号化パス生成手段、
1012A ビットプレーン符号化パス生成手段、
1013 算術符号化手段、
1013A 算術符号化手段、
1014 レート制御手段、
1015 符号化パス制御手段、
1016 無効符号化パス打ち切り手段、
1017 符号化器リセット手段、
1018 符号化器内部状態記憶手段、
1019 制御条件付きレート制御手段、
1021 変換係数記憶手段、
1031 復号手段、
1101 署名生成手段、
1102 署名埋め込み手段、
1201 署名抽出手段、
1202 署名生成手段、
1203 署名比較手段、
2102 ID情報埋め込み手段、
2104 データ埋め込み手段、
2106 署名生成情報埋め込み手段、
2108 署名生成手段、
2110 署名埋め込み手段、
2112 乱数生成手段、
2202 ID情報抽出手段、
2204 データ抽出手段、
2206 署名抽出手段、
2208 署名生成情報抽出手段、
2210 署名生成手段、
2212 署名比較手段、
3050 カラー変換手段、
3051 ウェーブレット変換手段、
3052 量子化手段、
3053 符号化手段、
3054 タイル分割手段、
3100 ブロック化手段、
3101 上位ビットプレーン評価手段、
3102 ブロック判定手段、
3103 埋め込み手段、
3104 ゼロブロックマーキング手段、
3200 ブロック化手段、
3201 上位ビットプレーン評価手段、
3202 ブロック判定手段、
3203 抽出手段、
3204 復号手段、
3301 埋め込み係数決定手段、
3302 埋め込み位置記憶手段、
3311 埋め込み係数決定手段、
3312 埋め込み位置記憶手段。

Claims (12)

  1. 第1の上位ビットプレーン評価手段及び埋め込み手段を有する電子透かし埋め込み装置が、画像データに対して実行する電子透かし埋め込み方法であって、
    前記第1の上位ビットプレーン評価手段が、入力画像データに対して情報を埋め込むビットプレーンが指定されると、この情報を埋め込むビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報を埋め込む位置の順番が画質への影響の低い順になるように、情報を埋め込む位置の順番を示すラベリングを行うステップと、
    前記埋め込み手段が、前記ラベリングによって示された順番に従って、前記入力画像データに、埋め込みデータを埋め込むステップと
    を有することを特徴とする電子透かし埋め込み方法。
  2. 画像データを受信する手段、第2の上位ビットプレーン評価手段、及び抽出手段を有する電子透かし検出装置が、画像データに対して実行する電子透かし検出方法であって、
    前記画像データを受信する手段が、請求項1に記載の電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信するステップと、
    前記第2の上位ビットプレーン評価手段が、前記受信した画像データに対して情報を抽出するビットプレーンが指定されると、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番が画質への影響の低い順になるように、情報が埋め込まれた位置の順番を示すラベリングを行うステップと、
    前記抽出手段が、前記第2の上位ビットプレーン評価手段による前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出するステップと
    を有することを特徴とする電子透かし検出方法。
  3. ブロック化手段、ブロック判定手段、及び埋め込みデータを埋め込む手段を有する前記電子透かし埋め込み装置が、画像データに対して実行する電子透かし埋め込み方法であって、
    前記ブロック化手段が、力画像データを複数のブロックに分けるステップと、
    前記ブロック判定手段が、入力画像データに対して情報を埋め込むビットプレーンとして指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するステップと、
    前記埋め込みデータを埋め込む手段が、前記入力画像データに、埋め込みデータを埋め込むステップとを有し、
    前記埋め込みデータを埋め込むステップにおいて、前記埋め込みデータを埋め込む手段が、前記オール0ブロック以外のブロックにデータを埋め込む
    ことを特徴とする請求項1に記載の電子透かし埋め込み方法。
  4. ブロック化手段、ブロック判定手段、第2の上位ビットプレーン評価手段、及び埋め込みデータを抽出する抽出手段を有する電子透かし検出装置が、画像データに対して実行する電子透かし検出方法であって、
    前記ブロック化手段が、請求項3に記載の電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信し、該受信した入力画像データを複数のブロックに分けるステップと、
    前記ブロック判定手段が、入力画像データに対して情報を埋め込むビットプレーンとして指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するステップと、
    前記第2の上位ビットプレーン評価手段が、前記受信した画像データに対して情報を抽出するビットプレーン指定、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番が画質への影響の低い順になるように、情報が埋め込まれた位置の順番を示すラベリングを行うステップと、
    前記データを抽出するステップにおいて、前記埋め込みデータを抽出する抽出手段が、前記オール0ブロック以外のブロックからデータを抽出する
    ことを特徴とする電子透かし検出方法。
  5. 埋め込み係数決定手段、埋め込み位置記憶手段、及びメッセージ情報を埋め込む埋め込み手段を有する電子透かし埋め込み装置が、画像データに対して実行する電子透かし埋め込み方法であって、
    前記埋め込み係数決定手段が、入力画像データに対して情報を埋め込むビットプレーンが指定されるとこの指定されたビットプレーンにおいて情報を埋め込む埋め込み位置を特定するステップと、
    前記埋め込み位置記憶手段が、前記埋め込み位置を記憶するステップと、
    前記メッセージ情報を埋め込む埋め込み手段が、前記情報を埋め込むビットプレーンよりも下位のビットプレーンにおける前記埋め込み位置に、メッセージ情報を埋め込むステップと
    を有することを特徴とする電子透かし埋め込み方法。
  6. 埋め込み係数決定手段、埋め込み位置記憶手段、及びメッセージ情報を抽出する抽出手段を有する電子透かし検出装置が、画像データに対して実行する電子透かし検出方法であって、
    前記埋め込み係数決定手段が、請求項5に記載の電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信し、この受信した画像データに対して情報埋め込まれるビットプレーンが指定されるとこの指定されたビットプレーンにおいて情報を埋め込む埋め込み位置を特定するステップと、
    前記埋め込み位置記憶手段が、前記埋め込み位置を記憶するステップと、
    前記メッセージ情報を抽出する抽出手段が、前記情報が埋め込まれるビットプレーンよりも下位のビットプレーンにおける前記埋め込み位置からメッセージ情報を抽出するステップと
    を有することを特徴とする電子透かし検出方法。
  7. 画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
    入力画像データに対して情報を埋め込むビットプレーンが指定され、この情報を埋め込むビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報を埋め込む位置の順番が画質への影響の低い順になるように、情報を埋め込む位置の順番を示すラベリングを行う第1の上位ビットプレーン評価手段と、
    前記ラベリングによって示された順番に従って、前記入力画像データに、埋め込みデータを埋め込む埋め込み手段と
    を有することを特徴とする電子透かし埋め込み装置。
  8. 画像データから電子透かしを検出する電子透かし検出装置であって、
    前記請求項7に記載の電子透かし埋め込み装置によってデータが埋め込まれた画像データを受信する手段と、
    前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番が画質への影響の低い順になるように、情報が埋め込まれた位置の順番を示すラベリングを行う第2の上位ビットプレーン評価手段と、
    前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出する抽出手段と
    を有することを特徴とする電子透かし検出装置。
  9. 画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
    入力画像データを複数のブロックに分けるブロック化手段と、
    指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するブロック判定手段と、
    前記入力画像データに、埋め込みデータを埋め込む手段とを有し、
    前記埋め込む手段が、前記オール0ブロック以外のブロックにデータを埋め込む
    ことを特徴とする請求項7に記載の電子透かし埋め込み装置。
  10. 画像データから電子透かしを検出する電子透かし検出装置であって、
    前記請求項9に記載の電子透かし埋め込み装置によってデータが埋め込まれた画像データを受信し、該受信した入力画像データを複数のブロックに分けるブロック化手段と、
    指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するブロック判定手段と、
    前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番が画質への影響の低い順になるように、情報が埋め込まれた位置の順番を示すラベリングを行う第2の上位ビットプレーン評価手段と、
    前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出する抽出手段とを有し、
    前記抽出手段において、前記オール0ブロック以外のブロックからデータを抽出する
    ことを特徴とする電子透かし検出装置。
  11. 画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
    入力画像データに対して情報を埋め込むビットプレーンが指定され、この指定されたビットプレーンにおいて情報が埋め込まれる埋め込み位置を特定する埋め込み係数決定手段と、
    前記埋め込み位置を記憶する埋め込み位置記憶手段と、
    前記情報を埋め込むビットプレーンよりも下位のビットプレーンにおける前記埋め込み位置に、メッセージ情報を埋め込む埋め込み手段と
    を有することを特徴とする電子透かし埋め込み装置。
  12. 画像データから電子透かしを検出する電子透かし検出装置であって、
    前記請求項11に記載の電子透かし埋め込み装置によってデータが埋め込まれた画像データを受信し、この受信した画像データに対して情報を埋め込むビットプレーンが指定され、この指定されたビットプレーンにおいて情報が埋め込まれる埋め込み位置を特定する埋め込み係数決定手段と、
    前記埋め込み位置を記憶する埋め込み位置記憶手段と、
    前記情報が埋め込まれるビットプレーンよりも下位のビットプレーンにおける前記埋め込み位置からメッセージ情報を抽出する抽出手段と
    を有することを特徴とする電子透かし検出装置。
JP2008017440A 2008-01-29 2008-01-29 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置 Expired - Fee Related JP4834007B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008017440A JP4834007B2 (ja) 2008-01-29 2008-01-29 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008017440A JP4834007B2 (ja) 2008-01-29 2008-01-29 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003115254A Division JP4144416B2 (ja) 2003-04-21 2003-04-21 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置

Publications (2)

Publication Number Publication Date
JP2008113470A JP2008113470A (ja) 2008-05-15
JP4834007B2 true JP4834007B2 (ja) 2011-12-07

Family

ID=39445680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008017440A Expired - Fee Related JP4834007B2 (ja) 2008-01-29 2008-01-29 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置

Country Status (1)

Country Link
JP (1) JP4834007B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275602B (zh) * 2020-01-16 2023-06-30 深圳市广道数字技术股份有限公司 人脸图像安全保护方法、系统及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001144932A (ja) * 1999-11-11 2001-05-25 Canon Inc 画像処理装置及びその方法
JP2002204357A (ja) * 2000-12-28 2002-07-19 Nikon Corp 画像復号化装置、画像符号化装置、および記録媒体

Also Published As

Publication number Publication date
JP2008113470A (ja) 2008-05-15

Similar Documents

Publication Publication Date Title
Celik et al. Reversible data hiding
Celik et al. Lossless generalized-LSB data embedding
US7389420B2 (en) Content authentication and recovery using digital watermarks
Fridrich et al. Lossless data embedding—new paradigm in digital watermarking
EP2130173B1 (en) Modifying a coded bitstream
JP2009518945A (ja) ウォーターマークエンコードコンテンツ
US20040145661A1 (en) Image processing method, and image processing apparatus
JPH11284843A (ja) ウォ―タマ―クをディジタル画像シ―ケンスのビットストリ―ム表現に組み込むための方法及び装置
JP2002325170A (ja) 画像処理装置及びその方法並びにプログラムコード、記憶媒体
Kumar et al. Reversible data hiding: A contemporary survey of state-of-the-art, opportunities and challenges
JP4024153B2 (ja) 電子透かし埋め込み方法およびその方法を利用可能な符号化装置と復号装置
JP4144416B2 (ja) 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置
Tew et al. Multi-layer authentication scheme for HEVC video based on embedded statistics
Akar et al. Data hiding in digital images using a partial optimization technique based on the classical LSB method
JP2008283479A (ja) 可逆的透かしデータ挿入方法、プログラム、装置および画像処理システム
JP4834006B2 (ja) 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置
JP4218539B2 (ja) 電子透かし埋め込み装置,電子透かし検出装置,電子透かし埋め込み方法,および電子透かし検出方法
JP4834007B2 (ja) 電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置
WO2007085632A1 (en) Method of watermarking digital data
JP4821200B2 (ja) データ変換装置、データ変換方法、データ変換プログラムおよびデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体
Li et al. AMBTC based high payload data hiding with modulo-2 operation and Hamming code
Tew et al. HEVC video authentication using data embedding technique
EP1743296B1 (en) Watermarking a compressed information signal
WO2013112744A2 (en) Compressed domain watermarking with reduced error propagation
JP4144469B2 (ja) 電子透かし検証装置および電子透かし検証方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110317

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110317

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110317

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110920

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110922

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4834007

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees