JP2004320672A - Electronic watermark embedding method, electronic watermark detecting method, electronic watermark embedding apparatus, and electronic watermark detecting apparatus - Google Patents

Electronic watermark embedding method, electronic watermark detecting method, electronic watermark embedding apparatus, and electronic watermark detecting apparatus Download PDF

Info

Publication number
JP2004320672A
JP2004320672A JP2003115254A JP2003115254A JP2004320672A JP 2004320672 A JP2004320672 A JP 2004320672A JP 2003115254 A JP2003115254 A JP 2003115254A JP 2003115254 A JP2003115254 A JP 2003115254A JP 2004320672 A JP2004320672 A JP 2004320672A
Authority
JP
Japan
Prior art keywords
data
bit plane
embedding
digital watermark
embedded
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.)
Granted
Application number
JP2003115254A
Other languages
Japanese (ja)
Other versions
JP4144416B2 (en
Inventor
Toshio Fujine
俊夫 藤根
Kurato Maeno
蔵人 前野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2003115254A priority Critical patent/JP4144416B2/en
Publication of JP2004320672A publication Critical patent/JP2004320672A/en
Application granted granted Critical
Publication of JP4144416B2 publication Critical patent/JP4144416B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an electronic watermark embedding method and apparatus, and electronic watermark detecting method and apparatus in which an electronic watermark can be surely detected. <P>SOLUTION: Input image data are developed into a plurality of bit planes from MSB to LSB, a first encoding path is generated for each bit plane, arithmetic encoding is performed according to the first encoding path, an arithmetic encoding quantity is controlled from a target code amount, an arithmetic code break-off point is determined, and the resultant arithmetic code break-off point is changed into a bit plane boundary. Signature data are generated from the input image data, the signature data are embedded in the input image data, the image data with the signature data embedded therein are developed into a plurality of bit planes, a second encoding path similar to the first encoding path is generated for each bit plane, and arithmetic encoding is performed according to the second encoding path to the arithmetic code break-off point, thereby generating encoded data. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、画像データの改ざんの検出等に用いられる電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置に関するものである。
【0002】
【従来の技術】
≪第1の従来技術≫
[フラジャイル電子透かし技術]
図31は、ビットプレーン(bit−plane)の概念の説明図である。図31には、縦4個、横3個からなる係数が描かれている。各係数は、符号ビットと絶対値で表現される。図31に示されるように、ビットプレーンには、係数をMSB(最上位ビット)からLSB(最下位ビット)までの各ビットで順次スライスして得られる各サンプルに対応する絶対値(「1」又は「0」)のビットプレーンと、係数の符号(「+」又は「−」)のビットプレーンとがある。
【0003】
図32は、ビットマップ画像にフラジャイル(fragile)電子透かしを埋め込む動作の説明図である。図32に示されるように、電子透かし埋め込み時には、LSB以外のビットプレーン(厳密に検証する場合には、LSB以外のビットプレーンと、LSBの埋め込みに使用していないすべてのビット)からハッシュ値を計算し、公開鍵暗号方式で暗号化したハッシュ値(電子署名)をLSBに埋め込む。通常、LSB内の埋め込み位置は、鍵をシードにした擬似ランダムシーケンス等を用いてランダマイズされる。
【0004】
図33は、フラジャイル電子透かしを検証する動作の説明図である。図33に示されるように、電子透かしの検証時には、署名データの埋め込まれた画像のLSB部分から、埋め込み側と同様の手順で埋め込み位置を決定し、埋め込みデータを取り出す。取り出したデータから、電子透かし埋め込み時に生成されたハッシュ値を解読する。また、LSB以外のビットプレーン(厳密に検証する場合には、LSB以外のビットプレーンと、LSBの埋め込みに使用していないすべてのビット)から埋め込み側と同様のアルゴリズムでハッシュ値を計算し、これを、解読したハッシュ値と比較する。比較の結果、両方のハッシュ値が一致すれば画像に改ざんが無いことがわかる(例えば、特許文献1参照)。
【0005】
通常、画像データに比べて生成されるハッシュ値のビット長は非常に短い長さである。例えば、SHA1として知られているハッシュアルゴリズムの場合には、入力されるデータ長にかかわらず出力されるデータは160bitである。しかし、ハッシュ演算の特性上、画像に対して微少な変化があっただけで、生成されるハッシュ値は全く異なった値となる。このため、ハッシュ値を比較することにより、1ピクセルの改ざんであっても、検出することができる。また、1個のハッシュ値を計算する範囲を画像全体でなく、画像内のM×Nピクセルサイズのブロックで区切った範囲とすると、画像の改ざんをM×Nブロックの単位で検出することができ、画像内の改ざん箇所をブロック単位で特定することができる。
【0006】
また、フラジャイル電子透かしには、ウェーブレット(Wavelet)変換やDCT(離散コサイン変換)、量子化等をした後の周波数空間上の係数に対して、ハッシュ値や署名データを埋め込む方式もある。この方式の場合にも、ビットマップに対する電子透かしの場合と同様であり、ハッシュ値の計算対象や署名データの埋め込み対象が、画像データそのものから周波数変換後の係数に置き換わっただけである。さらにまた、ハッシュ値の計算対象と埋め込み対象の座標を変える方式もあるが、この方式の場合にも、同様の検出方法を用いている。
【0007】
[周波数空間上の係数の符号化方法]
ウェーブレット変換やDCT、量子化等をした後の周波数空間上の係数に電子透かしを埋め込む場合、同時に係数を符号化(圧縮)する場合がある。図34は周波数空間上の係数を符号化する構成を示すブロック図である。図34に示されるように、係数を符号化する構成は、入力画像に対して周波数変換を行う周波数変換手段1011と、変換係数をMSBからLSBに至るビットプレーンに展開し、所定の大きさのコードブロックごとに各ビットプレーンの符号化パス(符号化処理を行う手順)を決定するビットプレーン符号化パス生成手段1012と、符号化パスに従って算術符号化を行う算術符号化手段1013と、生成された算術符号から目標の符号量(圧縮後のビットレート又はファイルサイズと等価)になるように符号量を制御するレート制御手段1014とを有する。
【0008】
ある符号化方法の一例では、周波数変換手段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は、各符号化パスごとの算術符号化量をカウントし、目標の符号化量に達した時点で、それより後の算術符号化データを切り捨てる。このようにして算術符号が打ち切られる位置を「算術符号打ち切り点」と呼ぶ。
【0009】
上記した例では、算術符号打ち切り点は、いずれかのビットプレーンの境界となるので、あるビットプレーンの一部の係数だけが圧縮後の算術符号データに含まれ、一部の係数が切り捨てられて、圧縮後の算術符号データに含まれないということはない。そのため、電子透かしを埋め込むときに、ある決められたビットプレーンに電子透かしを埋め込んでおき、そのビットプレーン以降に算術符号打ち切り点があれば、検証の際に、そのビットプレーンのすべてのデータを復号することができるので、すべての電子透かしを取り出すことができる。算術符号が行われる単位であるコードブロックごとに打ち切り点が異なっている場合も同様である。
【0010】
しかし、例えば、次世代の静止画像符号化標準であるJPEG2000では、一つのビットプレーンを3種類の符号化パスで構成し、その後、各符号化パスに従って算術符号化を行っている。具体的には、周波数変換(この場合は、ウェーブレット変換)された係数の各ビットプレーンを、シグニフィカンスプロパゲーションパス(significance propagation pass)、マグニチュードリファイメントパス(magnitude refinement pass)、クリーンナップパス(cleanup pass)と呼ばれる3種類の符号化パスで算術符号化している。なお、ビットプレーンの各ビットがどの符号化パスで符号化されるかは、周辺の画素を含む既に符号化された上位のビットプレーンの状況に応じて異なる。
【0011】
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は、符号化パスの算術符号化量をカウントし、目標の符号化量に達した時点で、その後の算術符号化データを切り捨てる。
【0012】
≪第2の従来技術≫
[ビットプレーンの打ち切りがある場合の電子透かし埋め込み方法]
上記したように、画像データを周波数変換した変換係数に対して、圧縮しながら、電子透かしを埋め込む場合には、所定の大きさのコードブロックごとに変換係数のビットプレーンを途中から打ち切ることにより圧縮する場合がある。このような場合にも、画像データ全体を改ざん検出の対象とするため、打ち切られたビットプレーンの直前のビットプレーンに電子透かしが埋め込まれる。具体的には、図37に示されるように、あるコードブロックにおいてビットプレーン番号‘2’以下のビットプレーンが打ち切られる場合、ビットプレーン番号‘3’のビットプレーンに電子透かしが埋め込まれる。
【0013】
このようにすれば、復号する過程で検証する場合、ビットプレーン番号‘2’は打ち切られて存在しないので、復号できたビットプレーンのうち最下位のビットプレーン(ビットプレーン番号‘3’)に電子透かしが埋め込まれていることが分かる。従って、そのビットプレーンから電子透かしを抽出することができる。
【0014】
≪第3の従来技術≫
第3の従来技術は、上記第1の従来技術と同じである。
【0015】
【特許文献】
特開2001−042768公報(図1〜図4)
【0016】
【発明が解決しようとする課題】
≪第1の従来技術の課題≫
第1の従来技術では、一つのビットプレーンを複数の符号化パスを用いて算術符号化する場合に、ビットプレーン途中の符号化パス以降の算術符号が打ち切られる可能性がある。例えば、図36に示されるように、算術符号打ち切り点以降の符号化パスの算術符号が切り捨てられた場合、ビットプレーン番号n−4のビットプレーン(図36においては、Bit−plane (n−4)と表記する。)の一部しか符号化されないことになる。
【0017】
従って、電子透かしを埋め込むときに、ある決められたビットプレーンに電子透かしを埋め込んでおいても、そのビットプレーンを符号化している符号化パスの途中で算術符号が打ち切られ、それ以降の算術符号化データが切り捨てられることが起こり得る。この場合には、電子透かしを埋め込んだ係数のうち、一部の係数が切り捨てられて、圧縮後の算術符号データに含まれないことになる。その結果、埋め込んだ電子透かしをすべて取り出すことができず(フラジャイル電子透かしでは、改ざんがない場合、検証の際には埋め込んだときと全く同じ電子透かしが抽出されなければならない。)、電子透かしを正しく検証できなくなるという問題がある。
【0018】
≪第2の従来技術の課題≫
第2の従来技術では、圧縮されて電子透かしが埋め込まれた状態から、一度復号されると、どのビットプレーンで変換係数が打ち切られたかという情報が失われるので、電子透かしを埋め込んだビットプレーンを決定することができないという問題がある。
【0019】
なお、JPEG2000の可逆型フィルタのような周波数変換を用いた場合、一度復号された画像を再び同じように周波数変換して変換係数を求めれば、全く同じ変換係数が得られる。そのため、図38(a)に示されるように、復号する際に打ち切られたビットプレーン(図38(a)においては、ビットプレーン番号‘2’、‘1’、‘0’)をすべて「0」として復号しておけば、再び同じように可逆型の周波数変換を行うことにより、打ち切られたビットプレーンはすべて「0」となる。従って、LSBから各ビットプレーンのビットを調べることにより、最初に「1」が出現するビットプレーンを電子透かしの埋め込まれたビットプレーンと判定することができる。ただし、この場合も、電子透かしを埋め込むことによって、電子透かしを埋め込んだビットプレーンのビットの中に「1」のビットが少なくとも1個存在するようにしなければならない。
【0020】
ところが、図38(b)に示されるように、復号の際に、打ち切られたビットプレーンの最上位ビットプレーン(図38(b)においては、ビットプレーン番号‘2’)は、非0係数の場合、通常「1」として復号されるため、上記のような手段を用いることもできない。このような処理が行われる理由としては、量子化された値を逆量子化する場合、量子化ステップサイズの半分の値を加えて値を再構成するのが、一番画質がよいとされていることが挙げられる。あるビットプレーン番号以下のビットプレーンを打ち切るということは、「2の(ビットプレーン番号)乗」の量子化ステップサイズで量子化することと等価である。そのため、そのステップサイズの半分を加えることが、ちょうど打ち切られたビットプレーンのうち最上位のビットプレーンを「1」として、復号することと等価になる。ただし、打ち切られたその他の下位ビットプレーンの値をどのようにするかは、復号の際の自由裁量に任されており、復号して再び周波数変換をした場合、どのような値になるかは予測できない。
【0021】
≪第3の従来技術の課題≫
第3の従来技術では、電子透かしの情報ビットの埋め込みに箇所によっては、画質の劣化が顕著になるという問題がある。
【0022】
また、電子透かしの情報ビットを埋め込む係数を選択する際に、近傍にある係数群でグルーピングし、グループ内に情報ビットを埋め込む場合がある。しかし、グルーピング内に情報の埋め込みに適した箇所(例えば、図39に示される髪の毛等の高い周波数成分の領域)がない場合には、情報の埋め込みに適していない箇所(例えば、図39に示される均一な背景等の低い周波数成分の領域)に、情報の埋め込まなければならず、平坦な背景等において画質が劣化するという問題がある。また、JPEG2000のSNRスケーラビリティ使用時には、LSBよりもMSB側のビットプレーンに情報を埋め込むので、より一層、人間に知覚されやすくなる。
【0023】
≪第1の発明の目的≫
第1の発明は、第1の従来技術の課題を解決するためのものであり、その目的は、電子透かしを確実に検出できるようにする電子透かし埋め込み方法及び電子透かし埋め込み装置を提供することである。
【0024】
≪第2の発明の目的≫
第2の発明は、第2の従来技術の課題を解決するためのものであり、その目的は、電子透かしが埋め込まれたビットプレーンを確実に特定できるようにする電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
【0025】
≪第3の発明の目的≫
第3の発明は、第3の従来技術の課題を解決するためのものであり、その目的は、電子透かしの埋め込みによる画質の劣化を抑制できるようにする電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
【0026】
また、第3の発明の他の目的は、埋め込み係数選択時に、圧縮の特性を利用することで、圧縮効率の低下を抑制できるようにする電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
【0027】
また、第3の発明のさらに他の目的は、メッセージの埋め込み可能容量を増やすことができる電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、及び電子透かし検出装置を提供することである。
【0028】
【課題を解決するための手段】
第1の発明の電子透かし埋め込み方法の一態様は、電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、入力画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第1の符号化パスを生成するステップと、前記第1の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第1の符号化データを生成するステップと、目標となる符号量から前記算術符号化における算術符号化量を制御し、算術符号打ち切り点を決定するステップと、得られた算術符号打ち切り点がビットプレーン境界にない場合に、得られた算術符号打ち切り点をビットプレーン境界に変更するステップと、前記入力画像データから署名データを生成するステップと、前記入力画像データに署名データを埋め込むステップと、前記署名データが埋め込まれた画像データを複数のビットプレーンに展開し、各ビットプレーン毎に第2の符号化パスを生成するステップと、前記算術符号打ち切り点まで、前記第2の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第2の符号化データを生成するステップとを有することを特徴としている。
【0029】
また、第2の発明の電子透かし埋め込み方法の一態様は、電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、電子透かしを埋め込むビットプレーンを示すID情報を埋め込むステップと、前記ID情報で指定されたビットプレーンにデータを埋め込むステップとを有することを特徴としている。また、第2の発明の電子透かし検出方法の一態様は、電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、前記電子透かし埋め込み方法によって画像データに埋め込まれたID情報を抽出し、データが埋め込まれているビットプレーンを特定するステップと、特定したビットプレーンからデータを抽出するステップとを有することを特徴としている。
【0030】
また、第3の発明の電子透かし埋め込み方法の一態様は、電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、入力画像データに対して情報を埋め込むビットプレーンが指定され、この情報を埋め込むビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報を埋め込む位置の順番を示すラベリングを行うステップと、前記ラベリングによって示された順番に従って、前記入力画像データに、埋め込みデータを埋め込むステップとを有することを特徴としている。また、第3の発明の電子透かし検出方法の一態様は、電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、前記電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信するステップと、前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番を示すラベリングを行うステップと、前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出するステップとを有することを特徴としている。
【0031】
【発明の実施の形態】
≪1.第1の発明≫
≪1−1.第1の実施形態≫
[電子透かし埋め込み側の構成]
図1は、第1の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【0032】
図1に示されるように、第1の実施形態の電子透かし埋め込み側の構成は、入力端子1001を通して入力された画像データに周波数変換を施して変換係数を出力する周波数変換手段1011と、この周波数変換手段1011から出力された変換係数を記憶する変換係数記憶手段1021とを有する。また、第1の実施形態の電子透かし埋め込み側の構成は、周波数変換手段1011から出力された変換係数をビットプレーン符号化するための符号化パス(符号化処理を行う手順)を生成するビットプレーン符号化パス生成手段1012と、このビットプレーン符号化パス生成手段1012によって生成された各符号化パスに従って変換係数を算術符号化する算術符号化手段1013とを有する。さらに、第1の実施形態の電子透かし埋め込み側の構成は、算術符号化手段1013によって算術符号化された算術符号の符号量が目標符号量入力端子1003から入力された符号量になるように、生成される算術符号化データの符号量を制御するレート制御手段1014を有する。さらにまた、第1の実施形態の電子透かし埋め込み側の構成は、埋め込んだ電子透かしをすべて取り出せるようにするために、レート制御手段1014により決定された算術符号打ち切り点を変更する符号化パス制御手段1015を有する。
【0033】
また、図1に示されるように、第1の実施形態の電子透かし埋め込み側の構成は、変換係数記憶手段1021に記憶された変換係数から署名データを生成する署名生成手段1101と、この署名生成手段1101から得られる署名データを変換係数に埋め込む署名埋め込み手段1102と、署名データが埋め込まれた変換係数をビットプレーン符号化するための符号化パスを生成するビットプレーン符号化パス生成手段1012Aと、このビットプレーン符号化パス生成手段1012Aによって生成された各符号化パスを算術符号化して、符号化/電子透かし埋め込み後の圧縮データを出力する算術符号化手段1013Aとを有する。算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに符号化パス制御手段1015で変更した符号化パスまで算術符号化を行い、符号化/電子透かし埋め込み後の圧縮データを得る。算術符号化手段1013Aで生成された符号化/電子透かし埋め込み後の圧縮データは、出力端子1004を通して出力され、ネットワーク等を経由して、以下に説明する電子透かし検証側の構成に渡される。
【0034】
[電子透かし検証側の構成]
図2は、第1の実施形態の電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【0035】
図2に示されるように、第1の実施形態の電子透かし検証側の構成は、上記した電子透かし埋め込み側の構成の出力端子1004(図1)から出力された圧縮データを入力端子1006を通して受け取り、圧縮データを復号する復号手段1031を有する。また、第1の実施形態の電子透かし検証側の構成は、復号手段1031によって得られた係数から署名データを生成する署名生成手段1202と、復号手段1031によって得られた係数から電子透かし埋め込み側で埋め込まれた署名データを抽出する署名抽出手段1201と、署名抽出手段1201により抽出された署名データと署名生成手段1202により生成された署名データとを比較し、比較結果を出力する署名比較手段1203とを有する。署名比較手段1203から出力された比較結果は、出力端子1007を通して出力される。
【0036】
[電子透かし埋め込み側の動作]
図1に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子1001へ入力する。周波数変換手段1011は、入力端子1001へ入力された画像データに対して、例えば、ウェーブレット変換やDCTのような周波数変換を行い、周波数空間上の係数を生成する。変換係数記憶手段1021は、周波数変換手段1011により生成された変換係数を記憶する。
【0037】
ビットプレーン符号化パス生成部1012は、周波数変換手段1011で生成された変換係数を所定の大きさのコードブロック(Code−block)に分割し、各コードブロックごとにMSBからLSBに至る複数のビットプレーンに展開した上で、各ビットプレーンを符号化するための符号化パス(Coding pass)を予め決めておいたルールに応じて決定する。算術符号化手段1013は、ビットプレーン符号化パス生成手段1012で生成した符号化パスごとに算術符号化を行い、符号化(圧縮)されたデータを生成する。静止画像符号化標準であるJPEG2000を適用する場合は、周波数変換にはウェーブレット変換を用い、ウェーブレット変換係数の各ビットプレーンは前述の3種類の符号化パス(シグニフィカンスプロパゲーションパス、マグニチュードリファイメントパス、クリーンナップパス)で算術符号化する。
【0038】
レート制御手段1014は、算術符号化量が入力端子1003から入力された目標符号化量になるように、各コードブロックごとに算術符号化手段1013で得られた各符号化パスごとの算術符号化量をカウントし、目標符号化量に達した時点で、それ以降の符号化パスを切り捨てる。この処理により、各コードブロックにおける算術符号打ち切り点が求まり、圧縮後の算術符号化データに含まれる符号化パスが決まる(後述する図3(a)参照)。
【0039】
符号化パス制御手段1015は、レート制御手段1014で得られた算術符号打ち切り点が、あるビットプレーンのデータの一部が含まれないようなビットプレーンの途中にある場合(後述する図3(a)参照)、その算術符号打ち切り点をビットプレーンの境界になるように変更する(後述する図3(b)参照)。その後、各コードブロックにおいて、圧縮後の算術符号化データに含まれるビットプレーンのうち、最もLSB側のビットプレーンを署名データの埋め込まれるビットプレーンとする。
【0040】
図3(a)及び(b)は、第1の実施形態における符号化パス制御方法の説明図である。図3(a)は、符号化パス制御手段1015による制御前のビットプレーンの符号化パスを示し、図3(b)は、符号化パス制御手段1015による制御後のビットプレーンの符号化パスを示す。図3(a)及び(b)においては、各ビットプレーンが3個の符号化パス(図において、Coding pass A,Coding pass B,Coding pass Cと記載する。)で構成されている。
【0041】
レート制御手段1014は、コードブロックCB0(図3において、Code−block 0と表記する。)において、図3(a)に示されるように、ビットプレーン番号‘0’のビットプレーン(図3において、Bit−plane 0と表記する。)の途中の符号化パスA(図3において、Coding pass Aと表記する。)までが圧縮後の算術符号化データに含まれるように、算術符号打ち切り点を設定している。そこで、算術符号打ち切り点がビットプレーンの境界になるように、符号化パス制御手段1015により算術符号打ち切り点を変更し、図3(b)に示されるように、同じビットプレーン番号‘0’のビットプレーンの符号化パスCまでが圧縮後の算術符号化データに含まれるようにする。
【0042】
また、レート制御手段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までが圧縮後の算術符号化データに含まれるように算術符号打ち切り点を変更する。この場合、算術符号打ち切り点をビットプレーン境界にすればよく、同じビットプレーンを含むようにしても、一つ上位のビットプレーンまで含むようにしてもよい。
【0043】
また、レート制御手段1014は、コードブロックCB2(図3において、Code−block 2と表記する。)において、図3(a)に示されるように、ビットプレーン番号‘2’のビットブレーン(図3において、Bit−plane 2と表記する。)の途中の符号化パスB(図3において、Coding pass Bと表記する。)まで含まれるような算術符号打ち切り点を設定している。そこで、算術符号打ち切り点がビットプレーンの境界になるように、符号化パス制御手段1015により算術符号打ち切り点を変更し、同じビットプレーン‘2’の符号化パスCまでが圧縮後の算術符号化データに含まれるように算術符号打ち切り点を変更する。
【0044】
コードブロックCB3(図3においてCode−block 3と表記する。)においては、図3(a)に示されるように、算術符号打ち切り点がビットプレーン境界にあるので、これを変更する必要はない。
【0045】
以上の処理によって、符号化パス制御後の各コードブロックにおける圧縮後の算術符号データに含まれる符号化パスの状態は図3(b)のようになる。また、署名データの埋め込まれるビットプレーンは、各コードブロックで圧縮後の算術符号化データに含まれるビットプレーンのうち、最もLSB側のビットプレーンになる。従って、図3(b)の場合には、圧縮後の算術符号化データに含まれるビットプレーンの番号は、コードブロックCB0,CB1,CB2,CB3のそれぞれについて、‘0’、‘2’、‘2’、‘1’となる。
【0046】
図3(a)及び(b)では、各ビットプレーンが3種類の符号化パスに分けられた場合を示すが、さらに多くの種類の符号化パスによって各ビットプレーンを構成した場合も同様に処理することができる。また、算術符号打ち切り点をビットプレーン境界に変更する際に、変更前における算術符号化量と変更後における算術符号化量との差異が一番小さくなるように、ビットプレーン境界を選択してもよい。
【0047】
署名生成手段1101は、変換係数記憶手段1021で保持されている変換係数に対して、署名データを生成する。変換係数のうち生成した署名データを埋め込む係数を除く変換係数から署名データを求める。具体的には、▲1▼署名データを埋め込むビットプレーン(これは符号化パス制御手段1015によって求められた)以外のビットブレーンのデータと、▲2▼署名データを埋め込むビットプレーンのうち署名データの埋め込みに使用されないすべてのビットとを用いて、SHA1等のハッシュ関数で得られたハッシュ値や、ハッシュ値をRSA等の暗号アルゴリズムで暗号化したもの、ハッシュ値の一部等を署名データとする。
【0048】
署名埋め込み手段1102は、変換係数記憶手段1021で保持されている変換係数に対して、署名生成手段1101から得られる署名データを埋め込む。埋め込み位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルされた位置とすることもできる。
【0049】
ビットプレーン符号化パス生成部1012Aは、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、ビットプレーン符号化パス生成部1012と同様の処理を行う。即ち、署名データが埋め込まれた変換係数に対して、所定の大きさのコードブロックに分割し、そのコードブロックごとにMSBからLSBに至る複数のビットプレーンに展開した上で、各ビットプレーンを符号化するため、符号化パスを予め決めておいたルールに応じて決定する。算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに符号化パス制御手段1015で変更した符号化パスまで算術符号化を行い、符号化(圧縮)されたデータを得る。署名データが埋め込まれ、符号化された係数は、出力端子1004を通して出力される。
【0050】
[電子透かし検証側の動作]
図2に示されるように、電子透かしを検証する圧縮画像データを入力端子1006へ入力する。入力端子1006へ入力される圧縮画像データは、復号手段1031へ渡される。復号手段1031は、算術符号化されているデータを復号し、周波数空間上における変換係数を生成する。
【0051】
署名抽出手段1201は、変換係数に埋め込まれた署名データを抽出する。抽出は、署名データ埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置からデータを抽出することで行う。電子透かし埋め込み側でハッシュ値等を暗号化している場合、ここで暗号をデコードし、元のデータに戻し、署名比較手段1203へ渡す。
【0052】
署名生成手段1202は、電子透かし埋め込み側と同様の方法により変換係数に対して署名データを生成する。ただし、電子透かし埋め込み側で暗号化等を使用している場合、ここで暗号化を行う必要はなく、署名抽出手段1201で暗号のデコードを行う。生成した署名データは、署名比較手段1203へ渡される。
【0053】
署名比較手段1203は、署名抽出手段1201により抽出された署名データと、署名生成手段1202により生成された署名データを比較し、この比較に基づいて、画像データの改ざんの有無を判定する。例えば、両方の署名データが一致した場合は改ざん無し、一致しない場合は改ざん有りと判定する。判定結果は、比較結果出力端子1007を通して出力される。
【0054】
[第1の実施形態の効果]
以上説明したように、第1の実施形態によれば、各ビットプレーンが複数の符号化パスで構成され、算術符号化されている場合であっても、算術符号打ち切り点を変更することによって、埋め込んだ署名データを検証側ですべて取り出せるようにすることができる。また、第1の実施形態によれば、符号化後のデータ量を目標符号化量とするために、符号化処理におけるレート制御を用いることができるので、電子透かし埋め込み側の構成から、目標とする符号量となる符号化データを出力することができる。
【0055】
≪1−2.第2の実施形態≫
[電子透かし埋め込み側の構成]
図4は、第2の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図4において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図4に示されるように、第2の実施形態の電子透かし埋め込み側の構成は、無効符号化パス打ち切り手段1016を有する点が、上記第1の実施形態(図1)の電子透かし埋め込み側の構成と相違する。
【0056】
[電子透かし埋め込み側の動作]
第2の実施形態の電子透かし埋め込み側の構成の動作は、無効符号化パス打ち切り手段1016の動作を除いて、第1の実施形態の電子透かし埋め込み側の構成(図1)の動作と同様である。図4に示される無効符号化パス打ち切り手段1016は、算術符号化手段1013Aで得られた符号化パスの符号結果において、各コードブロックで圧縮後の算術符号データに含まれるビットプレーンのうち、最もLSB側のビットプレーンの符号化パスで打ち切ってもよい符号化パスがあるかどうかを調べる。その結果、打ち切ってもよいと判断した符号化パスが存在する場合には、その符号化パスを圧縮後の算術符号化データに含まないように変更する。
【0057】
具体的には、無効符号化パス打ち切り手段1016が、上記ビットプレーンにおいて、算術符号化順が遅い符号化パスから順(一つのビットプレーンが符号化パス1,…,n−1,nの順で符号化されていた場合、符号化パスn,n−1,…,1の順)に調べて、初めて有意なデータが含まれている符号化パスを求める。そして、その有意なデータが含まれている符号化パスまでを圧縮後の算術符号データに含める符号化パスとして、算術符号打ち切り点を変更する。ここで、有意なデータとは、符号化対象となるビットに少なくとも一つの「1」が含まれていることを意味する。符号化対象のビットがすべて「0」である場合は、その符号化パスを圧縮後の算術符号化データに含めなくても、復号する際に符号化されていない符号化パスに該当するビットは「0」として復号すれば(通常の復号処理ではそのように取り扱われる)、署名埋め込み後の変換係数の値を、埋め込み側の装置と検証側の装置で同じにすることができる。このため、上記したように、有意なデータの無い符号化パスを打ち切ることができる。上記以外の点について、第2の実施形態における電子透かし埋め込み側の動作は、第1の実施形態における電子透かし埋め込み側の動作と同じである。
【0058】
[電子透かし検証側の構成及び動作]
第2の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
【0059】
[第2の実施形態の効果]
以上説明したように、第2の実施形態によれば、算術符号化の符号化パスのうちで、不必要な符号化パスがあるか調べ、不必要な符号化パスがあればその符号化パスを圧縮後の算術符号化データに含めないようにすることにより、同じ変換係数値を復号できることを保証しながら、算術符号化量を削減し、圧縮率の高いデータを得ることができる。
【0060】
≪1−3.第3の実施形態≫
上述した第1の実施形態の電子透かし埋め込み側の構成では、署名データを埋め込んだすべての変換係数に対して、算術符号化手段1013Aによる算術符号化を行う必要があった。これに対して、第3の実施形態の電子透かし埋め込み側の構成では、各ビットプレーン単位で算術符号を初期化/終端処理することで、算術符号化を各ビットプレーンで独立に処理できるようにし、署名データを埋め込んだビットプレーンのみを算術符号化手段1013Aにより算術符号化し、署名データを埋め込んでいないビットプレーンに対する算術符号化手段1013Aによる算術符号化を省略することができる。
【0061】
[電子透かし埋め込み側の構成]
図5は、第3の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図5において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図5に示されるように、第3の実施形態の電子透かし埋め込み側の構成は、符号化器内部リセット手段1017を有する点、及び、レート制御手段1014から出力される算術符号化データを出力端子1004に出力する点が、上記第1の実施形態(図1)の電子透かし埋め込み側の構成と相違する。
【0062】
[電子透かし埋め込み側の動作]
算術符号化手段1013で用いられる算術符号には、JPEG2000等で用いられるMQ符号化等がある。MQ符号化の入力としては、符号化対象となるビット(シンボル)及びコンテキストを用いている。コンテキストとは、周辺画像から注目画素の0又は1の予測を行う確率評価モデルであり、予め決められた初期値から符号化対象として入力されたビットに応じて順次更新される。また、算術符号化手段1013は、算術符号化用のレジスタを内部に持っており、このレジスタも順次更新しながら算術符号化を行っている。
【0063】
算術符号化の各処理単位で独立に処理を行うためには、算術符号化用のコンテキストの初期化や内部レジスタの初期化を行う必要がある。また、符号化の終了時には、算術符号化用のレジスタから符号を吐き出す処理である終端処理を行う必要がある。第3の実施形態においては、算術符号化手段1013で算術符号化を行う際に、各ビットプレーン単位で独立に処理を行うため、符号化器内部リセット手段1017により、各ビットプレーンごとに処理の開始時と終了時に前述の初期化/終端処理を行う。
【0064】
ビットプレーン符号化パス生成部1012Aは、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、ビットプレーン符号化パス生成部1012と同様の処理を行うが、符号化パス制御手段1015からの情報により、署名データを埋め込んでいないビットプレーンは、ビットの変更が行われないので、この処理をスキップする。また、同様に、算術符号化手段1013Aでも、符号化パス制御手段1015からの情報により、署名データを埋め込んでいないビットプレーンは、ビットの変更が行われないので、上記ビットプレーンの算術符号化は行わない。
【0065】
ただし、署名データを埋め込んだビットプレーンは、ビットが変更されているので、ビットプレーン符号化パス生成部1012Aでは、ビットプレーン符号化パス生成部1012と同様の処理が行われる。そして、その符号化パスに対しては、算術符号化手段1013Aで、算術符号化を行う。この際、符号化器内部リセット手段1017により、各ビットプレーンごとに前述の初期化/終端処理を行うことで、各ビットプレーンを独立に処理でき、署名データを埋め込んだビットプレーンのみの算術符号化が可能となる。
【0066】
その後、レート制御手段1014で確定している署名データを埋め込んでいないビットプレーンの算術符号化データと、算術符号化手段1013Aから得られる署名データを埋め込んだビットプレーンの算術符号化データを結合することにより、符号化(圧縮)されたデータを得る。上記以外の点について、第3の実施形態における電子透かし埋め込み側の動作は、第1の実施形態における電子透かし埋め込み側の動作と同じである。
【0067】
[電子透かし検証側の構成及び動作]
第3の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
【0068】
[第3の実施形態の効果]
以上説明したように、第3の実施形態によれば、算術符号化において各ビットプレーンを独立に処理するために、算術符号化の初期化/終端処理を行っている。それにより、再び算術符号化をする必要がない署名データを埋め込んでいないビットプレーンの算術符号化をスキップし、算術符号化を行う必要がある署名データの埋め込まれたビットプレーンのみを算術符号化することができ、演算処理量を減らすことができる。
【0069】
≪1−4.第4の実施形態≫
上述した第1の実施形態の電子透かし埋め込み側の構成では、署名データを埋め込んだすべての変換係数に対して、算術符号化手段1013Aによる算術符号化を行う必要があった。これに対して、第4の実施形態の電子透かし埋め込み側の構成では、算術符号化手段1013Aによる算術符号化を途中から再開できるように算術符号化手段1013の符号化器の内部情報を記憶しておくことにより、算術符号化手段1013Aによる算術符号化を行う必要がある署名データの埋め込またビットプレーンのみを符号化することができ、署名データを埋め込んでいないビットプレーンに対する算術符号化手段1013Aによる算術符号化を省略することができる。
【0070】
[電子透かし埋め込み側の構成]
図6は、第4の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図6において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図6に示されるように、第4の実施形態の電子透かし埋め込み側の構成は、符号化器内部情報記憶手段1018を有する点、及び、レート制御手段1014から出力される算術符号を出力端子1004に出力する点が、上記第1の実施形態(図1)における電子透かし埋め込み側の構成と相違する。
【0071】
[電子透かし埋め込み側の動作]
算術符号化手段1013で用いられる算術符号には、JPEG2000等で用いられるMQ符号化等がある。MQ符号化の入力としては、符号化対象となるビット(シンボル)及びコンテキストを用いている。コンテキストとは、周辺画像から注目画素の0又は1の予測を行う確率評価モデルであり、予め決められた初期値から符号化対象として入力されたビットに応じて、順次更新される。また、算術符号化には、算術符号化用のレジスタを内部に持っており、このレジスタも順次更新しながら算術符号化を行っている。
【0072】
算術符号化を途中から再開する場合、符号化器の内部情報(コンテキスト、レジスタ)を初期状態から符号化した場合と同じ状態にしておく必要がある。そのために、第4の実施形態では、符号化器内部状態記憶手段1018が、算術符号化手段1013で算術符号化を行う際に、ビットプレーンの境界から算術符号化を再開できるように、ビットプレーンごとに符号化器の内部情報を記憶している。
【0073】
ビットプレーン符号化パス生成部1012Aで、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、ビットプレーン符号化パス生成部1012と同様の処理を行うが、符号化パス制御手段1015からの情報により、署名データを埋め込んでいないビットプレーンは、ビットの変更が行われないので、この処理をスキップする。また、同様に、算術符号化手段1013Aでも上記ビットプレーンの算術符号化は行わない。ただし、ビットプレーン符号化パス生成部1012Aは、署名データを埋め込んだビットプレーンに対しては、ビットが変更されているので、ビットプレーン符号化パス生成部1012と同様の処理を行う。そして、その符号化パスに対しては、算術符号化手段1013Aで、算術符号化を行う。この際、符号化器内部状態記憶手段1018により、保持されている符号化器の内部情報を用いて、符号化するビットプレーンを符号化した際と同じ内部情報を符号化器に設定してから、算術符号化の処理を行う。
【0074】
その後、レート制御手段1014で確定している署名データを埋め込んでいないビットプレーンの算術符号化データと、算術符号化手段1013Aから得られる署名データを埋め込んだビットプレーンの算術符号化データを結合することにより、符号化(圧縮)されたデータを得る。上記以外の点について、第4の実施形態の電子透かし埋め込み側の動作は、第1の実施形態の電子透かし埋め込み側の動作と同じである。
【0075】
[電子透かし検証側の構成及び動作]
第4の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
【0076】
[第4の実施形態の効果]
以上説明したように、第4の実施形態によれば、算術符号化を途中から再開できるように符号化器の内部情報を記憶しておくことにより、再び算術符号化をする必要がない署名データを埋め込んでいないビットプレーンの算術符号化をスキップし、算術符号化を行う必要がある署名データの埋め込まれたビットプレーンのみを算術符号化することができ、演算処理量を減らすことができる。
【0077】
≪1−5.第5の実施形態≫
上述した第1の実施形態の電子透かし埋め込みが側の構成では、まず変換係数に対して、算術符号化を行った後、署名データを埋め込み、さらに署名データを埋め込んだ係数に対して、もう一度算術符号化を行う必要があった。これに対して、第5の実施形態の電子透かし埋め込みが側の構成では、変換係数の算術符号化を行う前に、予め署名データを埋め込むビットプレーンを指定し、生成した署名データをそのビットプレーンに埋め込んだ後に、算術符号化を行う。
【0078】
[電子透かし埋め込み側の構成]
図7は、第5の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図7において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。
【0079】
図7に示されるように、第5の実施形態の電子透かし埋め込み側の構成は、入力端子1001から入力された画像データを、周波数変換する周波数変換手段1011と、周波数変換手段1011により生成された変換係数を記憶する変換係数記憶手段1021とを有する。また、第5の実施形態の電子透かし埋め込み側の構成は、変換係数から署名データを生成する署名生成手段1101と、署名生成手段1101から得られる署名データを埋め込む署名埋め込み手段1102と、署名データが埋め込まれた変換係数をビットプレーン符号化するために符号化パスを生成するビットプレーン符号化パス生成手段1012Aと、各符号化パスを算術符号化する算術符号化手段1013Aとを有する。算術符号化手段1013Aで生成された符号化/電子透かし埋め込み後の圧縮データは、出力端子1004を通して出力される。また、署名生成手段1101、埋め込む署名埋め込み手段1102、ビットプレーン符号化パス生成手段1012A、及び算術符号化手段1013Aには、ビットプレーン入力端子1005を通してビットプレーンが入力される。
【0080】
[電子透かし埋め込み側の動作]
図7に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子1001へ入力する。入力端子1001へ入力される画像データは、周波数変換手段1011へ渡される。周波数変換手段1011では、入力された画像に対して、例えば、ウェーブレット変換のような周波数変換を行い、周波数空間上の係数を得る。また、変換係数記憶手段1021でその変換係数を記憶しておく。
【0081】
署名生成手段1101は、周波数変換手段1011で得られた変換係数に対して、署名データを生成する。変換係数のうち生成した署名データを埋め込む係数を除く変換係数から署名データを求める。具体的には、埋め込みビットプレーン入力端子1005から入力された埋め込みビットプレーン以外と、そのビットプレーンのうち埋め込みに使用しないすべてのビットを用いて、SHA1等のハッシュ関数で得られたハッシュ値や、ハッシュ値をRSA等の暗号アルゴリズムで暗号化したもの、ハッシュ値の一部等を署名データとする。
【0082】
署名埋め込み手段1102は、変換係数記憶手段1021で保持されている変換係数に対して、署名生成手段1101から得られる署名データを埋め込む。埋め込むビットプレーンは、埋め込みビットプレーン入力端子1005から入力されるビットプレーンである。埋め込み位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルすることによって得られた位置とすることもできる。
【0083】
ビットプレーン符号化パス生成部1012Aは、署名埋め込み手段1102で得られた署名データが埋め込まれた変換係数に対して、所定の大ささのコードブロックに分割し、そのコードブロックごとにMSBからLSBに至る複数のビットプレーンに展開した上で、各ビットプレーンを符号化するため、符号化パスを予め決めておいたルールに応じて決定する。算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに算術符号化を行い、符号化(圧縮)されたデータを得る。ビットプレーン符号化パス生成部1012A、算術符号化手段1013Aとも符号化パスの生成及びその算術符号化は、埋め込みビットプレーン入力端子1005から入力されるビットプレーンまで行えばよい。署名データが埋め込まれ、符号化された係数データは、出力端子1004を通して出力され、電子透かし検証側の構成に渡される。
【0084】
[電子透かし検証側の構成及び動作]
第5の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
【0085】
[第5の実施形態の効果]
以上説明したように、第5の実施形態によれば、予め署名データを埋め込むビットプレーンを指定することで、変換係数を算術符号化する前に、生成した署名データを埋め込んでおき、その後、署名データを埋め込んだ変換係数の算術符号化を指定されたビットプレーンまで行うことで、第1の実施形態では2回行っていた算術符号化の処理を、1回に削減することができる。
【0086】
≪1−6.第6の実施形態≫
上述した第1の実施形態の電子透かし埋め込み側の構成では、変換係数に対して生成した符号化パスを算術符号化し、レート制御を行う場合、符号化パスの境界で算術符号打ち切り点を決定していた。これに対して、第6の実施形態の電子透かし埋め込み側の構成では、予めレート制御において算術符号打ち切り点を求める際に、ビットプレーンの途中で打ち切り点が設定されないように、ビットプレーンの境界にのみ算術符号打ち切り点が設定されるような制約条件を設けて、レート制御を行う。
【0087】
[電子透かし埋め込み側の構成]
図8は、第6の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図8において、図1(第1の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。第6の実施形態の電子透かし埋め込み側の構成は、第1の実施形態におけるレート制御手段1014に代えて、制約条件付きレート制御手段1019を備え、符号化パス制御手段1015を省略した点が、第1の実施形態の電子透かし埋め込み側の構成と相違する。
【0088】
[電子透かし埋め込み側の動作]
第6の実施形態の電子透かし埋め込み側の構成の動作は、制約条件付きレート制御手段1019、署名生成手段1101、及び算術符号化手段1013Aの動作を除いて、第1の実施形態の電子透かし埋め込み側の構成の動作と同様である。
【0089】
通常、レート制御において、算術符号打ち切り点は符号化(圧縮)された画像の画質が最適になるように符号化パスの境界で算術符号打ち切り点が決定される。しかし、制約条件付きレート制御手段1019では、あるビットプレーンに埋め込んだ署名データを検証側ですべて取り出せるようにするため、ビットプレーン途中にある符号化パス以降の算術符号が打ち切られることがないように、算術符号打ち切り点を求める。
【0090】
即ち、算術符号打ち切り点をビットプレーン境界にするという条件で、目標符号量入力端子1003から入力された符号量になるように、各コードブロックごとに算術符号化手段1013で得られた各符号化パスごとの算術符号化量をカウントし、目標の符号化量に達した時点で、それ以降のパスを切り捨てる。この処理により、各コードブロックにおける算術符号打ち切り点が求まり、圧縮後の算術符号データに含まれる符号化パスが決まる。算術符号打ち切り点をビットプレーン境界にするという条件を付けることで、すべてのコードブロックで、図3(b)のようなビットプレーン境界(符号化パスCoding pass Cの直後)に算術符号打ち切り点が設定される。ただし、第1の実施形態のように、レート制御で求めた算術符号打ち切り点を、画質を考慮せずに符号化パス制御手段で変更したこととは異なり、第6の実施形態では制約条件があるとは言え、その条件下では、目標となる符号量に対して、最適な画質の圧縮データが得られるように、レート制御を行うことができる。従って、ビットプレーンの境界に算術符号打ち切り点が存在するが、各コードブロックにおける算術符号打ち切り点は、図3(b)と全く同じとは限らない。また、制約条件付きレート制御手段1019では、各コードブロックで圧縮後の算術符号データに含まれるビットプレーンのうち、最もLSB側のビットプレーンを署名データの埋め込まれるビットプレーンとする。
【0091】
署名生成手段1101は、変換係数記憶手段1021で保持されている変換係数に対して、署名データを生成する。第1の実施形態と異なる点は、制約条件付きレート制御手段1019で求めた、署名データを埋め込むビットプレーンの情報を用いて署名データを生成することである。
【0092】
算術符号化手段1013Aは、ビットプレーン符号化パス生成手段1012Aで生成した符号化パスごとに算術符号化を行う。第1の実施形態と異なる点は、制約条件付きレート制御手段1019で決定した符号化パスまでの算術符号化を行い、符号化(圧縮)されたデータを得ることである。上記以外の点について、第6の実施形態の電子透かし埋め込み側の動作は、第1の実施形態の電子透かし埋め込み側の動作と同じである。
【0093】
[電子透かし検証側の構成及び動作]
第6の実施形態の電子透かし検証側の構成及び動作は、第1の実施形態の電子透かし検証側の構成(図2)及び動作と同様である。
【0094】
[第6の実施形態の効果]
以上説明したように、第6の実施形態によれば、一つのビットプレーンが複数の符号化パスで構成され、算術符号化されている場合でも、レート制御で決定される算術符号打ち切り点をビットプレーン境界に限定してレート制御を行うことで、埋め込んだ署名データを検証側ですべて取り出せるようにすることができる。また、通常、算術符号打ち切り点は符号化(圧縮)された画像の画質が最適になるように符号化パスの境界で算術符号打ち切り点が決定されるが、ビットプレーン境界に制約することで、最適な画質は得られない。しかし、制約条件付きではあるが符号化処理におけるレート制御を用いることができるので、目標とする符号量に対して準最適(ビットプレーン境界に算術符号打ち切り点を設定するという条件では最適)な画質を得ることができる。
【0095】
なお、第6の実施形態の電子透かし埋め込み側の構成に、第2〜第4の実施形態の電子透かし埋め込み側の構成を組み合わせることもできる。
【0096】
≪2.第2の発明≫
≪2−1.第7の実施形態≫
[電子透かし埋め込み側の構成]
図9は、第7の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【0097】
図9に示されるように、第7の実施形態の電子透かし埋め込み側の構成は、入力端子2001に入力された画像データ及びビットプレーン入力端子2002に入力された埋め込みビットプレーンを指定するデータを受け取り、電子透かしが入力端子2002から入力された埋め込みビットプレーンに埋め込まれたことを示すID情報を埋め込むID情報埋め込み手段2102を有する。また、第7の実施形態の電子透かし埋め込み側の構成は、ID情報が埋め込まれた画像データに対して、埋め込みデータ入力端子2003から入力されたデータを、入力端子2002から入力された埋め込みビットプレーンに埋め込むデータ埋め込み手段2104を有する。データ埋め込み手段2104によりデータが埋め込まれた画像データは、出力端子2004を通して出力され、以下に説明する電子透かし検証側の構成に渡される。
【0098】
[電子透かし検証側の構成]
図10は、第7の実施形態の電子透かし検証側の構成を示すブロック図である。
【0099】
図10に示されるように、第7の実施形態の電子透かし検証側の構成は、入力端子2005に入力された電子透かしの検証対象である画像データからID情報を抽出し、抽出したID情報からデータが埋め込まれたビットプレーンを特定するID情報抽出手段2202を有する。また、第7の実施形態の電子透かし検証側の構成は、画像データからデータを抽出するデータ抽出手段2204を有する。データ抽出手段2204の出力は、出力端子2006を通して出力される。
【0100】
[電子透かし埋め込み側の動作]
図9に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子2001へ入力する。入力端子2001へ入力される画像データは、ピクセルデータ、又は、ピクセルデータを周波数変換して得られる変換係数である。
【0101】
ID情報埋め込み手段2102には、埋め込みビットプレーン入力端子2002を通して電子透かしが埋め込まれるビットプレーン番号が入力される。ID情報埋め込み手段2102は、入力されたビットプレーン番号のビットプレーンに、予め決めておいたID情報を埋め込む。電子透かしを埋め込むビットプレーンは、図11に示されるように、各コードブロックCB1〜CB8ごとに異なっていてもよい。図11の例では、コードブロックCB3において、電子透かしが埋め込まれるビットプレーン番号‘5’のビットプレーンに対して、N(bits)のID情報を埋め込んでいる。
【0102】
ただし、ID情報を埋め込んだ結果と全く同じビットパターンが、ID情報を埋め込んだビットプレーンより上位のビットプレーンに存在する場合がある。そのような条件下で電子透かしを検証すると、どちらが本当のID情報か区別できなくなる。そこで、上記のような場合には、上位のビットプレーンにおける該当するビットパターンのうち、少なくとも一つのビットの値を反転させておけばよい。
【0103】
データ埋め込み手段2104には、埋め込みビットプレーン入力端子2002を通して電子透かしが埋め込まれるビットプレーン番号が入力される。データ埋め込み手段2104は、電子透かしが埋め込まれるビットプレーン番号のビットプレーンに、埋め込みデータ入力端子2003から入力されたデータを埋め込む。図11の例では、コードブロックCB3において、電子透かしが埋め込まれるビットプレーン番号‘5’のビットプレーンに対して、埋め込んだID情報に引き続いて、M(bits)のデータを埋め込んでいる。
【0104】
なお、図11では、先頭のビット(図11の下側において、左端のビット)から順にN(bits)のID情報、M(bits)のデータを埋め込んいるが、埋め込むビット位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルされることによって得られた位置とすることもできる。また、図11の例においては、画像データの1ビットに対して1ビットのID情報、データを順に埋め込んでいるが、画像データの複数のビットに対して、1ビットのID情報、データを埋め込んでもよい。また、データを何ビット埋め込んだかを示すために、データ先頭にデータのサイズを付加してもよい。
【0105】
また、データを埋め込むビットプレーンに必ずID情報を埋め込む必要はなく、埋め込みビットプレーン入力端子2002から入力されるビットプレーン番号より、例えば、一つ上又は一つ下のビットプレーンにID情報を埋め込むようにしてもよい。さらに、ID情報を一つのビットプレーンに埋め込むのではなく、鍵をシードにした疑似ランダムシーケンス等を用いて、データを埋め込むビットプレーンを中心に、ID情報を埋め込むビットプレーンをランダマイズして、複数のビットプレーンに分散させて、ID情報を埋め込むこともできる。
【0106】
また、ID情報と共にデータを埋め込むビットプレーン番号も埋め込むことで、任意のビットプレーンにID情報を埋め込むことも可能になる。図12の例を用いて説明すると、コードブロックCB3においては、ID情報はビットプレーン番号‘7’のビットプレーンに、データはビットプレーン番号‘5’のビットプレーンに埋め込んでいる。従って、ID情報を埋め込む際に、データを埋め込むビットプレーン番号である‘5’(2進数4ビットで表現すると“0101”)も一緒に埋め込んでおけばよい。
【0107】
さらに、ID情報と共にデータを埋め込むビットプレーン番号を複数個埋め込むことで、それらのビットプレーン番号が示す複数のビットプレーンにデータを分割して埋め込むことも可能である。
【0108】
また、データ量を圧縮するために、ID情報、データを埋め込んだビットプレーンより下位のビットプレーンを必要に応じて打ち切る処理を行うこともできる。
【0109】
埋め込み後、画像データ出力端子2004から、ID情報及びデータが埋め込まれた後の画像データが出力される。この画像データは、ネットワーク等を経由して電子透かし検証側の構成に渡される。
【0110】
[電子透かし検証側の動作]
図10に示されるように、電子透かしを検証する画像データを入力端子2005へ入力する。入力端子2005へ入力される画像データは、ピクセルデータ、又は、ピクセルデータが周波数変換された変換係数である。
【0111】
ID情報抽出手段2202では、各コードブロックの上位ビットプレーンから、ID情報埋め込み時と同じ手法によりID情報の埋め込み位置を決定し、埋め込んだ位置からID情報を抽出する。そして、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、そのビットプレーンをデータが埋め込まれたビットプレーンである判定する。
【0112】
ただし、上記説明はデータを埋め込むビットプレーンにID情報を埋め込んでいる場合であり、データを埋め込むビットプレーンより一つ上又は一つ下のビットプレーンにID情報を埋め込み側で埋め込んでいる場合は、上記説明と同様に、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、そのビットプレーンより一つ下又は一つ上のビットプレーンをデータが埋め込まれたビットプレーンであると判定する。
【0113】
また、鍵をシードにした擬似ランダムシーケンス等でデータを埋め込むビットプレーンを中心に、ID情報が複数のビットプレーンに分散されて埋め込まれている場合は、ID情報検索時に、上位のビットプレーンから順番に、ID情報埋め込み時と同じ手法により分散させたビットプレーンを決定して、そのビットプレーンからID情報を抽出し、埋め込んだID情報と一致するか調べることによって、データが埋め込まれたビットプレーンを決定することができる。
【0114】
また、ID情報と共にデータを埋め込んだビットプレーン番号が埋め込まれている場合には、上記と同様に、まず抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、次にID情報と共に埋め込まれているビットプレーン番号を取り出す。その後、そのビットプレーン番号が指し示すビットプレーンをデータが埋め込まれたビットプレーンと判定する。図12の例を用いて説明すると、コードブロックCB3においては、ビットプレーン番号‘7’のビットプレーンからID情報が抽出でき、そのID情報と共に埋め込まれているビットプレーン番号を取り出すことによって、データが埋め込まれたビットプレーン番号が‘5’(2進数4ビットで表現すると“0101”)であることが分かる。
【0115】
さらには、ID情報と共に埋め込むビットプレーン番号が複数個埋め込まれている場合は、それら複数のビットプレーンにデータが埋め込まれていると決定する。
【0116】
データ抽出手段2204は、ID情報抽出手段2202で求められたビットプレーンから、画像データに埋め込まれたデータを抽出する。抽出には、データ埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置からデータを抽出することで行う。データのサイズがデータ先頭に付加されている場合は、データサイズを抽出してから、データ本体を抽出する。抽出したデータは、抽出結果出力端子2006を通して出力する。
【0117】
[第7の実施形態の効果]
以上説明したように、第7の実施形態によれば、電子透かしを検証する際に、電子透かしをどこに埋め込んだかを示す情報が外部から得られなくても、画像に埋め込んでおいたID情報により、電子透かしが埋め込まれたビットプレーンを特定することができる。そのため、データ量を削減する目的でビットプレーンを打ち切り、打ち切られる直前のビットプレーンに電子透かしを埋め込んでおいた画像に対して、打ち切られたビットプレーンを任意の値で復号を行った場合でも、電子透かし検証側で、もう一度同じ周波数変換を行って変換係数を求め、更にデータが埋め込まれているビットプレーンであることを示すID情報を抽出することで、電子透かしが埋め込まれているビットプレーンを特定し、埋め込んでおいたデータを抽出することができる。
【0118】
≪2−2.第8の実施形態≫
上述した第7の実施形態の電子透かし埋め込み側の構成では、電子透かしの埋め込まれているビットプレーンであることを示すID情報を常に同じビットパターンを用いて電子透かしの埋め込みを行っていた。これに対して、第8の実施形態の電子透かし埋め込み側の構成では、電子透かし検証側の構成において発生する乱数と同じ乱数を発生させ、その乱数をID情報として用いることによって、常に異なるビットパターンをID情報として用いることができる。
【0119】
[電子透かし埋め込み側の構成]
図13は、第8の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図13において、図9(第7の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図13に示されるように、第8の実施形態の電子透かし埋め込み側の構成は、シード入力端子2008に入力されるシードを受け取り乱数を発生する乱数発生手段2112を有する点が、上記第7の実施形態の電子透かし埋め込み側の構成(図9)と相違する。
【0120】
[電子透かし検証側の構成]
図14は、第8の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図14において、図10(第7の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図14に示されるように、第8の実施形態の電子透かし検証側の構成は、シード入力端子2009に入力されるシードを受け取り乱数を発生する乱数発生手段2112を有する点が、上記第7実施形態の電子透かし検証側の構成(図10)と相違する。
【0121】
[電子透かし埋め込み側の動作]
図13に示されるように、乱数生成手段2112では、シード入力端子2008から、乱数を発生させるためのシードが入力され、乱数を生成する。ID情報埋め込み手段2102では、電子透かしを埋め込むビットプレーンにID情報を埋め込む際に、乱数生成手段2112で生成した乱数をID情報のビットパターンとして、ID情報を埋め込む。このように乱数を用いることにより、各コードブロックごとに異なるID情報が埋め込まれる。上記以外の点について、第8の実施形態における電子透かし埋め込み側の動作は、第7の実施形態における電子透かし埋め込み側の動作と同じである。
【0122】
[電子透かし検証側の動作]
図14に示されるように、乱数生成手段2112では、シード入力端子2009から、乱数を発生させるためのシードが入力され、乱数を生成する。電子透かし検証側でも、電子透かし埋め込み側と同じシードが入力され、同じ乱数を生成する。ID情報抽出手段2202では、各コードブロックの上位ビットプレーンから、ID情報を抽出し、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求める際に、乱数生成手段2112で生成した乱数をID情報のビットパターンとして使用する。もちろん、使用するビットパターンは、各コードブロックごとに異なるが、電子透かしの埋め込み側と同じビットパターンとなる。上記以外の点について、第8の実施形態における電子透かし検証側の動作は、第7の実施形態における電子透かし検証側の動作と同じである。
【0123】
[第8の実施形態の効果]
以上説明したように、第8の実施形態によれば、電子透かしを検証する際に、電子透かしを埋め込んだ位置に関する情報が外部から得られなくても、画像に埋め込んでおいたID情報により、電子透かしが埋め込まれたビットプレーンを特定することができる。そのため、データ量を削減する目的でビットプレーンを打ち切り、打ち切られる直前のビットプレーンに電子透かしを埋め込んでおいた画像に対して、打ち切られたビットプレーンを任意の値で復号を行った場合でも、電子透かし検証側で、もう一度同じ周波数変換を行って変換係数を求め、更にデータが埋め込まれているビットプレーンであることを示すID情報を抽出することで、電子透かしが埋め込まれているビットプレーンを特定し、埋め込んでおいたデータを抽出することができる。
【0124】
また、第8の実施形態によれば、電子透かしが埋め込まれたビットプレーンを特定するためにID情報を埋め込む際、電子透かし埋め込み側と電子透かし検証側とで同じように発生させた乱数をID情報のビットパターンとして使用することができる。そのため、同一画像内でも、埋め込まれるID情報がすべて同じであるようなことはなく、悪意を持った第三者が容易にID情報を特定できないようにすることができる。
【0125】
≪2−3.第9の実施形態≫
第9の実施形態の電子透かし検証側の構成は、改ざん検出を行うために画像データから署名データを生成し、その署名データを電子透かしとして埋め込む際に、署名データを埋め込んだビットプレーンに電子透かしを埋め込んだことを示すID情報を埋め込むと共に、検出時にどの部分の画像データから署名データが生成されたかを知るために、署名データを求める際に対象となった画像データがどの部分であったかを示す情報も同時に埋め込む。
【0126】
[電子透かし埋め込み側の構成]
図15は、第9の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図15において、図9(第7の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。
【0127】
図15に示されるように、第9の実施形態の電子透かし埋め込み側の構成は、入力端子2001に入力された画像データ及びビットプレーン入力端子2002に入力された埋め込みビットプレーンを指定するデータを受け取り、電子透かしが入力端子2002から入力された埋め込みビットプレーンに埋め込まれたことを示すID情報を埋め込むID情報埋め込み手段2102を有する。また、第9の実施形態の電子透かし埋め込み側の構成は、署名データを求める際にハッシュ生成の対象となった画像データがどの部分であったかを示す情報を埋め込む署名生成情報埋め込み手段2106を有する。さらに、第9の実施形態の電子透かし埋め込み側の構成は、画像データから署名データを生成する署名生成手段2108と、署名生成手段2108から得られる署名データを画像データに埋め込む署名埋め込み手段2110とを有する。署名埋め込み手段2110で生成された埋め込み後の画像データは、出力端子2004を通して出力される。出力された画像データは、例えば、ネットワークを経由して、以下に説明する電子透かし検証側の構成に渡される。
【0128】
[電子透かし検証側の構成]
図16は、第9の実施形態の電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図16において、図10(第7の実施形態)の構成と同一又は対応する構成には同じ符号を付す。
【0129】
図16に示されるように、第9の実施形態の電子透かし検証側の構成は、入力端子2005を通して入力された画像データからID情報を抽出し、抽出したID情報から署名データが埋め込まれたビットプレーンを特定するID情報抽出手段2202と、埋め込み側で埋め込まれた署名データを抽出する署名抽出手段2206とを有する。また、第9の実施形態の電子透かし検証側の構成は、署名データを求める際にハッシュ生成の対象となった画像データがどの部分であったかを示す情報を抽出する署名生成情報抽出手段2208と、その署名生成情報に基づき、画像データから署名データを生成する署名生成手段2210とを有する。さらに、第9の実施形態の電子透かし検証側の構成は、抽出された署名データと生成した署名データとを比較する署名比較手段2212を有する。署名比較生成手段2210から出力された比較結果は、出力端子2007を通して出力される。
【0130】
[電子透かし埋め込み側の動作]
図15に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子2001へ入力する。入力端子2001へ入力される画像データは、ピクセルデータ、又は、ピクセルデータを周波数変換して得られる変換係数である。
【0131】
ID情報埋め込み手段2102は、埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、そのビットプレーンに予め決めておいたID情報を埋め込む。図17は、第9の実施形態に係る電子透かし埋め込み方法の説明図である。図17においては、電子透かしを埋め込むコードブロックは、コードブロック番号が偶数のコードブロックCB2,CB4,CB6,CB8のみであり、電子透かしを埋め込むビットプレーンは、各コードブロックごとで異なっていてもよい。図17の例では、コードブロックCB2において、電子透かしが埋め込まれるビットプレーン番号‘6’のビットプレーンに対して、N(bits)のID情報を埋め込んでいる。ただし、ID情報を埋め込んだ結果と全く同じビットパターンが、ID情報を埋め込んだビットプレーンより上位のビットプレーンに存在する場合は、第7の実施形態と同様な処理を施す。
【0132】
署名生成情報埋め込み手段2106では、埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、そのビットプレーンに、署名データを求める際にハッシュ生成の対象となった画像データがどの部分であったかを示す情報を埋め込む。
【0133】
具体的には、署名データの埋め込み対象ではないコードブロックにおいて、署名データを求める際にハッシュを生成する対象のデータがどの部分であったかを、電子透かしの検証側で署名データを求める際に識別するため、ハッシュ生成に用いた画像データのうち、最も下位のビットプレーン番号を埋め込み対象のビットプレーンに埋め込む。例えば、図17では、コードブロックCB1とCB2のデータからハッシュを求め、署名データを生成し、コードブロックCB2に埋め込む場合の例を示している。コードブロックCB2は、ビットプレーン番号‘6’のビットプレーンに、署名とともにID情報を埋め込むので、電子透かしの検証側で、ID情報を抽出することにより、署名データが埋め込まれているビットプレーンを決定でき、また署名データを生成する際にハッシュ生成に用いた画像データも決定することができる(ビットプレーン番号‘7’〜‘10’のすべてのビットとビットプレーン番号‘6’のビットプレーンのうち、署名データの埋め込みに使用しないすべてのビット)。しかし、コードブロックCB1に関しては、ID情報が埋め込まれていないので、このままでは、署名生成の際にどの部分をハッシュ生成に用いたかを、電子透かし検証側で識別できない。そこで、図17のように、ビットプレーン番号‘3’以下のビットプレーンが打ち切られ、ビットプレーン番号‘4’以上のビットプレーンのデータを用いてハッシュを生成する場合、署名データの埋め込み対象でないコードブロックCB1において、ハッシュ生成に用いたデータのうち、最も下位のビットプレーン番号である‘4’(2進数4ビットで表現すると“0100”)をコードブックCB2のデータの埋め込み対象であるビットプレーンに埋め込んでおく。
【0134】
署名生成手段2108は、画像データに対して署名データを生成する。埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、画像データのうち生成した署名データを埋め込むビットを除く画像データから署名データを求める。具体的には、図17のコードブロックCB1及びCB2においては、コードブロックCB1におけるビットプレーン番号‘4’〜‘10’のすべてのビットプレーンと、コードブロックCB2におけるビットプレーン番号‘7’〜‘10’のすべてのビットプレーンと、ビットプレーン番号‘6’のビットプレーンのうち、署名データの埋め込みに使用しないすべてのビットを用いて、SHA1等のハッシュ関数で得られたハッシュ値や、ハッシュ値をRSA等で暗号化したもの、ハッシュ値の一部等を署名データとする。
【0135】
署名埋め込み手段2110は、埋め込みビットプレーン入力端子2002から電子透かしが埋め込まれるビットプレーン番号が入力され、そのビットプレーンに署名生成手段2101から得られる署名データを埋め込む。図17の例では、コードブロックCB2において、電子透かしが埋め込まれるビットプレーン番号‘6’のビットプレーンに対して、既に埋め込まれたID情報、署名生成情報に引き続いて、M(bits)の署名データを埋め込んでいる。
【0136】
なお、図17では、先頭のビットから順にID情報、署名生成情報と署名データを埋め込んでいるが、埋め込むビット位置は、疑似ランダムシーケンスや、置換テーブルでスクランブルすることも可能である。また、画像データの1ビットに対して1ビットのID情報、署名生成情報、署名データを順に埋め込んでいるが、画像データの複数のビットに対して、1ビットのID情報、署名生成情報、署名データを埋め込んでもよい。
【0137】
さらに、第7の実施形態と同様に、ID情報を署名生成情報や署名データと必ず同じビットプレーンに埋め込んでおく必要はない。また、ID情報、署名生成情報、署名データをそれぞれ複数のビットプレーンに分散させて埋め込んでおいてもよい。
【0138】
また、データ量を圧縮するために、第7の実施形態と同様にID情報、署名生成情報、署名データを埋め込んだビットプレーンより下位のビットプレーン(例えば、図17におけるコードブロックCB2におけるビットプレーン番号‘5’以下)及びハッシュの生成に用いていないビットプレーン(例えば、図17におけるコードブロックCB1におけるビットプレーン番号‘3’以下)を必要に応じて打ち切る処理を行うこともできる。
【0139】
署名埋め込み手段2110から出力されたID情報、署名生成情報及び署名データが埋め込まれた後の画像データは、画像データ出力端子2004を通して出力される。
【0140】
[電子透かし検証例の動作]
図16に示されるように、電子透かしを検証する画像データを入力端子2005へ入力する。入力端子2005へ入力される画像データは、ピクセルデータ、又は、ピクセルデータが周波数変換された変換係数である。
【0141】
ID情報抽出手段2202は、電子透かしの埋め込み対象のコードブロックにおける上位ビットプレーンから、ID情報埋め込み時と同じ手法によりID情報の埋め込み位置を決定し、埋め込んだ位置からID情報を抽出する。そして、抽出したID情報と埋め込んだID情報が一致するビットプレーンを求め、そのビットプレーンを署名生成情報、署名データが埋め込まれたビットプレーンと判定する。
【0142】
なお、ID情報が署名生成情報や署名データと異なるビットプレーンに埋め込まれている場合や、ID情報、署名生成情報、署名データがそれぞれ異なるビットプレーンに分散されて埋め込まれている場合でも、第7の実施形態と同様に署名生成情報や署名データが埋め込まれたビットプレーンを求めることができる。
【0143】
署名抽出手段2206は、ID情報抽出手段2202で求めたビットプレーンから、画像データに埋め込まれた署名データを抽出する。抽出には、署名データ埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置から署名データを抽出することで行う。電子透かし埋め込み側でハッシュ値等を暗号化している場合、ここで暗号をデコードし、元のデータに戻し、署名比較手段2212へ渡す。
【0144】
署名生成情報抽出手段2208は、ID情報抽出手段2202で求めたビットプレーンから、画像データに埋め込まれた署名生成情報を抽出する。抽出には、署名生成情報の埋め込み時と同じ手法により埋め込み位置を決定し、埋め込んだ位置から、署名データを求める際にハッンュ生成で用いた画像データがどの部分であったかを示す情報を抽出することで行う。抽出した署名生成情報は、署名生成手段2210に渡す。
【0145】
署名生成手段2210は、ID情報抽出手段2202と署名生成情報抽出手段2208から得られた情報を基に、電子透かし埋め込み側と同様の方法により画像データに対して署名データを生成する。即ち、署名データが埋め込まれているコードブロックに対しては、ID情報抽出手段2202で求めたビットプレーンに基づいて、署名データを求める際にハッシュ生成の対象となった画像データを決定でき、署名データが埋め込まれていないコードブロックに対しても、署名生成情報抽出手段2208で得られた情報(ハッシュ生成の対象となった画像データのうち最下位のビットプレーン番号)より、同じく署名データを求める際にハッシュ生成の対象となった画像データを決定できる。
【0146】
ただし、電子透かし埋め込み側で暗号化等を使用している場合、ここで暗号化を行う必要はなく、署名抽出手段2206で暗号のデコードを行う。生成した署名データは、署名比較手段2212へ渡す。
【0147】
署名比較手段2212では、署名抽出手段2206で抽出された署名データと、署名生成手段2210で生成された署名データとを比較する。例えば、両方の署名データが一致した場合は改ざん無し、一致しない場合は改ざん有りとし、その結果を比較結果出力端子2007を通して出力する。
【0148】
[第9の実施形態の効果]
以上説明したように、第9の実施形態によれば、電子透かしが埋め込まれているビットプレーンであることを示すID情報及び署名データを求める際にハッシュを生成する対象のデータの位置に関する情報を示す署名生成情報を画像に埋め込んでおくことで、外部からそれらの情報が得られなくても、署名データが埋め込まれたビットプレーンと署名データを求める際にハッシュ生成で用いられた画像データを特定することができる。そのため、データ量を削減する目的で、署名生成や署名データの埋め込みに用いられていないビットプレーンを打ち切った画像に対して、打ち切られたビットプレーンを任意の値で復号を行った場合でも、電子透かし検証側で、もう一度同じ周波数変換を行って変換係数を求め、更に署名データと署名生成情報が埋め込まれているビットプレーンを示すID情報を抽出することで、署名データと署名生成情報が埋め込まれているビットプレーンを特定し、埋め込んでおいた署名データを抽出することができる。さらに、署名データを求める際にハッシュを生成する対象のデータがどの部分であったかを示す署名生成情報を抽出することで、どの部分の画像データから署名データが生成されたかも決定でき、電子透かし埋め込み側と同様に署名データを生成することができる。その結果、正しい改ざん検出結果を得ることができる。
【0149】
≪3.第3の発明≫
≪3−1.第10の実施形態≫
[電子透かし埋め込み側の構成]
図18は、第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【0150】
図18に示されるように、第10の実施形態の電子透かし埋め込み側の構成は、入力端子3001に入力された画像データを、1又は複数のブロックに分割するブロック化手段3100を有する。また、第10の実施形態の電子透かし埋め込み側の構成は、ブロック化手段3100によりブロック化された画像データ及び埋め込みビットプレーン入力端子3003を通して入力される埋め込みビットプレーンを指定するデータを受け取り、ブロック化された画像データの上位ビットプレーンを調べる上位ビットプレーン評価手段3101を有する。さらに、第10の実施形態の電子透かし埋め込み側の構成は、ブロック化手段3100によりブロック化された画像データ、埋め込みビットプレーン入力端子3003を通して入力される埋め込みビットプレーンを指定するデータ、上位ビットプレーン評価手段3101から出力される評価結果、及び埋め込みデータ入力端子3002を通して入力されたデータを受け取り、埋め込みデータ入力端子3002から入力されたデータを画像データの指定されたビットプレーンの評価結果に基づく位置に埋め込む埋め込み手段3103を有する。埋め込み手段3103から出力されるデータ埋め込み後の画像データは、出力端子3004を通して出力される。
【0151】
図19は、第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)のJPEG2000圧縮器への適用例を示すブロック図である。図19において、図18の構成と同一又は対応する構成には同じ符号を付す。
【0152】
図19に示されるように、JPEG2000圧縮器は、図18の構成に加えて、入力画像データがカラー画像データである場合にカラー空間を変換するカラー変換手段3050と、入力画像データのタイル分割を行うタイル分割手段3054と、ウェーブレット変換を行うウェーブレット変換手段3051と、ウェーブレット係数を量子化する量子化手段3052と、電子透かしの埋め込まれた係数を符号化する符号化手段3053とを有する。符号化手段3053により符号化されたビットストリームは、埋め込み後画像ビットストリーム出力端子3005を通して出力される。
【0153】
[電子透かし検証側の動作]
図22は、第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【0154】
図22に示されるように、第10の実施形態の電子透かし検証側の構成は、入力端子3010を通して入力された画像データを、ブロックに分割するブロック化手段3200を有する。また、第10の実施形態の電子透かし検証側の構成は、ブロック化手段3200によりブロック化された画像データ及び抽出ビットプレーン入力端子3013を経由して入力される抽出するビットプレーンを指定するデータを受け取り、ブロック化された画像データの上位ビットプレーンを調べる上位ビットプレーン評価手段3201を有する。さらに、第10の実施形態の電子透かし検証側の構成は、ブロック化手段3200によりブロック化された画像データ、抽出ビットプレーン入力端子3013を通して入力される抽出ビットプレーンを指定するデータ、及び上位ビットプレーン評価手段3201から出力される評価結果を受け取り、入力された画像データについて、指定された抽出ビットプレーンの中の上記評価結果に基づく位置からデータを抽出するに抽出手段3203を有する。抽出手段3203から出力される抽出結果は、出力端子3012を通して出力される。
【0155】
図23は、第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)のJPEG2000伸張器への適用例を示すブロック図である。図23において、図22の構成と同一又は対応する構成には同じ符号を付す。図23に示されるように、JPEG2000伸張器へ適用した場合には、図22のブロック化手段3200に代えて、JPEG2000ビットストリームを復号し、ウェーブレット係数とブロック情報を出力する復号手段3204を有する。
【0156】
[電子透かし埋め込み側の動作]
図18に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子3001へ入力する。ピクセルデータへ直接電子透かしを埋め込む場合は、入力データはピクセルデータとなる。また、周波数空間上での電子透かしの場合は、入力データはウェーブレット係数やDCT係数となる。
【0157】
入力端子3001へ入力される画像データは、ブロック化手段3100へ渡される。ブロック化手段3100では、入力された画像データを、M×Nサイズのブロックへ分割する。ピクセルデータへの電子透かしの場合は、M×Nピクセルのブロックとなり、また、周波数空間上での電子透かしの場合は、ウェーブレット変換やDCT後の係数空間上におけるM×N係数のブロックとなる。このブロックは、ピクセル空間上で同じ位置を示す、異なる周波数の係数群で構成してもよいし、ピクセル空間上で近い位置を示す、同じ周波数の係数群で構成してもよい。
【0158】
上位ビットプレーン評価手段3101は、画質への影響の低い順に画像データに対しラベリングを行う。通常、平滑な領域(低周波数成分しかないような領域)に加えられる変更は、複雑な領域(高周波数成分が近傍にあるような領域)へ加えられる変更よりも知覚されやすいので、複雑な領域近辺に高い優先度を与えるようにラベリングを行う。
【0159】
図20は、第10の実施形態に係る電子透かし埋め込み方法の説明図である。図20においては、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べている。また、図20においては、ビットプレーン番号‘5’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図20において、網掛け箇所は、上位ビットプレーンに非0の値のある係数ビットであり、クロスハッチング箇所は、上位ビットプレーンが0である非0の係数ビットである。
【0160】
例えば、各画像データ単位に、埋め込みビットプレーン(例えば、図20におけるビットプレーン番号‘5’のビットプレーン)よりも上位にあるデータのレベルに応じてラベリングを行う。この場合、ラベルは、データのレベルを基準にソートを行ったときの順番に相当する(例えば、図20においては、係数2,5,8,1の順)。また、値0の画像データは、値0の範囲内で、周囲に非0の画像データが存在する順でラベリングを行う。
【0161】
これを式で表現すると、以下のようになる。埋め込みビットプレーンより上位のビットプレーンのデータを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)|)
の大きい順にラベリングを行う。
【0162】
埋め込み手段3103では、上位ビットプレーン評価手段3101でラベリングを行った順に、埋め込みを行う。埋め込みは、ラベリングを行った順に、各画像データに対して1ビットの埋め込みメッセージを順に埋め込んでいく。Xビットのメッセージの埋め込みには、X個の画像データが用いられる。また、メッセージ先頭にメッセージのサイズを埋め込んでもよい。この場合、X+Y個(Yは、メッセージ長を埋め込むのに必要なビット数)の画像データが用いられる。
【0163】
図21は、第10の実施形態に係る電子透かし埋め込み方法の他の例説明図である。図21の上側には、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べた例が示されている。また、図21においては、ビットプレーン番号‘5’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図21において、網掛け箇所は、上位ビットプレーンに非0の値のある係数ビットであり、クロスハッチング箇所は、上位ビットプレーンが0である非0の係数ビットである。さらにまた、図21の中央付近には、各グループの埋め込みビットプレーン(上位ビットプレーンの値でソートした後)を示し、左側から右側に向けて、値の大きな係数ビットから値の小さな係数ビットが描かれている。図21には、画像や埋め込み係数を複数のグループに分け、各グループ単位に1ビット埋め込む場合が示されている。図21においては、複数グループへの分割方法は、各グループに、大きな値の係数が均等に割り振られるようにしている。
【0164】
また、図21には、複数ビット情報に基づいて1ビット情報を計算し、計算によって得られた1ビット情報を埋め込む方法が説明されている。図21に示されるように、例えば、1ビットを埋め込むためのグループのデータが“0101”(4ビット)である場合に、これらの複数ビットのデータの排他的論理和(XOR)を計算する。この場合には、XOR演算の結果は0である。この演算結果0を、このグループに埋め込む値(1ビット)と比較し、比較の結果が異なる場合には、XOR演算の結果が埋め込むビット値に等しくなるように、各グループのある1ビットの値を変更する。
【0165】
以上のようにして得られた画質への影響の低い順を示すラベリングの順番に、署名データを画像データに埋め込み、署名データが埋め込まれた画像データが、画像データ出力端子3004を通して、埋め込み後画像データ出力端子を通して出力される。
【0166】
[電子透かし検証側の動作]
図22に示されるように、電子透かしを検証するターゲット画像の画像データを入力端子3010へ入力する。ピクセルデータへ直接電子透かしが埋め込まれている場合は、入力データはピクセルデータとなる。また、周波数空間上での電子透かしの場合は、入力データはウェーブレット係数やDCT係数となる。入力端子3010へ入力される画像データは、ブロック化手段3200へ渡される。ブロック化手段3200では、入力された画像データを、M×Nサイズのブロックへ分割する。ピクセルデータへの電子透かしの場合は、M×Nピクセルのブロックとなり、また、周波数空間上での電子透かしの場合は、ウェーブレット変換やDCT後の係数空間上におけるM×N係数のブロックとなる。
【0167】
上位ビットプレーン評価手段3201は、抽出ビットプレーン入力端子3013から入力されたビットプレーン情報を用い、電子透かし埋め込み側の上位ビットプレーン評価手段3101(図18)と同じ方法で画像データのラベリングを行ない、ラベリング順に1係数から1ビットのメッセージを抽出する。メッセージ長をメッセージ先頭に埋め込んでいる場合は、メッセージ長を抽出してから、メッセージ本体を抽出する。抽出手段3203により抽出されたメッセージは、抽出結果出力端子3012を通して出力される。
【0168】
[第10の実施形態の効果]
以上説明したように、第10の実施形態によれば、埋め込みデータを画質の影響の少ない部分に埋め込むことができるため、電子透かしが埋め込まれた画像の画質を向上させることができる。また、電子透かし検証側では、電子透かしが埋め込まれたビットプレーンよりも上位のビットプレーンの情報を用いてデータの埋め込み位置を検出するため、電子透かしが埋め込まれたビットブレーンと、それよりも上位のビットプレーンを取得した段階で、電子透かしの抽出を行うことができる。
【0169】
≪3−2.第11の実施形態≫
[電子透かし埋め込み側の構成]
図24は、第11の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図24において、図18(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図24に示されるように、第11の実施形態の電子透かし埋め込み側の構成は、ブロック判定手段3102と、ゼロブロックマーキング手段3104とを有する点が、上記第10の実施形態の電子透かし埋め込み側の構成(図18)と相違する。
【0170】
[電子透かし検証側の構成]
図26は、第11の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図26において、図22(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図26に示されるように、第11の実施形態の電子透かし検証側の構成は、ブロック判定手段3202を有する点が、上記第10の実施形態の電子透かし検証側の構成(図22)と相違する。
【0171】
[電子透かし埋め込み側の動作]
図24に示されるように、電子透かしを埋め込むターゲット画像の画像データを入力端子3001へ入力する。ピクセルデータへ直接電子透かしを埋め込む場合は、入力データはピクセルデータとなる。また、周波数空間上での電子透かしの場合は、入力データはウェーブレット係数やDCT係数となる。
【0172】
入力端子3001へ入力される画像データは、ブロック化手段3100へ渡される。ブロック化手段3100では、入力された画像データを、M×Nサイズのブロックへ分割する。ピクセルデータへの電子透かしの場合は、M×Nピクセルのブロックとなり、また、周波数空間上での電子透かしの場合は、ウェーブレット変換やDCT後の係数空間上におけるM×N係数のブロックとなる。このブロックは、ピクセル空間上で同じ位置を示す、異なる周波数の係数群で構成してもよいし、ピクセル空間上で近い位置を示す、同じ周波数の係数群で構成してもよい。
【0173】
ブロック判定手段3102は、埋め込みビットプレーン入力端子3003から入力されたデータにより指定されたビットプレーンをブロック単位に走査する。走査した結果、ビットプレーンのデータがすべて0(ゼロ)であるall0(オール0)ブロックをマークする。
【0174】
上位ビットプレーン評価手段3101は、上位ビットプレーンを評価し、画質への影響の低い順に画像データに対しラベリングを行う。通常、平滑な領域(低周波数成分しかないような領域)に加えられる変更は、複雑な領域(高周波数成分が近傍にあるような領域)へ加えられる変更よりも知覚されやすいので、複雑な領域近辺に高い優先度を与えるようにラベリングを行う。ラベリングの方法は、上記第10の実施形態の場合と同様である。
【0175】
埋め込み手段3103は、ブロック判定手段3102によってall0ブロックである判定されなかったブロックに属し、かつ、上位ビットプレーン評価手段3101によって、上位ビットプレーンに有意なデータがあるとされた画像データへのメッセージの埋め込みを行う。
【0176】
メッセージが、上記条件の画像データ数よりも多い場合、さらに、ブロック判定手段3102によってall0ブロックである判定されたブロックに属し、かつ、上位ビットプレーン評価手段3101によって、上位ビットプレーンに有意なデータがあるとされた画像データに対しても、メッセージの埋め込みを行う。メッセージの埋め込み位置は、メッセージを埋め込む前に予め決定しておく。
【0177】
ゼロブロックマーキング手段3104は、メッセージの埋め込まれたブロックで、埋め込みビットプレーンのデータがすべて0となったall0ブロックに、マーキングを行う。マーキングは、ブロックのメッセージを埋め込んだビットプレーン上で、メッセージの埋め込みに使用しなかった部分の少なくとも1画像データを1にすることで行う。1にする画像データは、メッセージ埋め込みに使用せず、かつ、上位ビットプレーン評価手段3101による評価値が大きいものとしてもよい。
【0178】
図25は、第11の実施形態に係る電子透かし埋め込み法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)の他の例を示すブロック図である。ゼロブロックマーキング手段3104は、メッセージを埋め込む予定のブロックすべてに、マーキングを行う。マーキングは、ブロックのメッセージを埋め込んだビットプレーン上で、メッセージの埋め込みに使用しない部分の少なくとも1画像データを1にすることで行う。1にする画像データは、メッセージ埋め込みに使用せず、かつ、上位ビットプレーン評価手段による評価値が大きいものとしてもよい。署名等を埋め込む場合、マーキングを行ってから署名値を計算する必要があるが、その場合、図25の構成となる。
【0179】
[電子透かし検証側の動作]
図26に示されるように、ブロック判定手段3202及び上位ビットプレーン評価手段3201は、電子透かし埋め込み側と同様の方法でブロックのマーキングを行う。抽出手段3203は、署名埋め込み側で埋め込み位置を決定したのと同じ方法で、画像データからメッセージを抽出する。
【0180】
電子透かし埋め込み側では、ビットプレーンのデータが0のブロックへの埋め込みを避け、電子透かし検証側では、ビットプレーンのデータが0のブロックからの抽出を避けている。ゼロブロックマーキング手段3104は、メッセージの埋め込み位置を埋め込み側と検証側で同期させるため、ビッドプレーンのデータが0のブロックという状態が埋め込み側と検証側で変化しないために、マーキングを行う。第11の実施形態の電子透かし検証側の動作において、上記以外の点は、第10の実施形態の電子透かし検証側の動作と同様である。
【0181】
[第11の実施形態の効果]
第11の実施形態によれば、ゼロビットプレーンへの埋め込みを避けているので、符号化効率を向上させることができる。
【0182】
≪3−3.第12の実施形態≫
[電子透かし埋め込み側の構成]
図27は、第12の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。図27において、図18(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図27に示されるように、第12の実施形態の電子透かし埋め込み側の構成は、埋め込みビットプレーンと画像データから、埋め込み対象の係数を決定する埋め込み係数決定手段3301と、決定した埋め込み係数を記憶する埋め込み位置記憶手段3302と、入力画像データに埋め込みデータを埋め込む埋め込み手段3103とを有する。
【0183】
[電子透かし検証側の構成]
図28は、第12の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。図28において、図22(第10の実施形態)の構成と同一又は対応する構成には、同じ符号を付す。図28に示されるように、第12の実施形態の電子透かし検証側の構成は、埋め込みビットプレーンと画像データから、埋め込み対象の係数を決定する埋め込み係数決定手段3311と、決定した埋め込み係数を記憶する埋め込み位置記憶手段3312と、画像データから埋め込み画像を抽出する抽出手段3203とを有する。
【0184】
[電子透かし埋め込み側の動作]
図27に示されるように、埋め込み係数決定手段3301は、入力された埋め込みビットプレーン情報を元に、埋め込み位置を決定する。決定方法は、第10及び第11の実施形態の上位ビットプレーン評価手段3101(図18、図24)や、ブロック判定手段3102(図24)の方法を用いてもよい。
【0185】
埋め込み位置記憶手段3302は、埋め込み係数決定手段3301によって決定された埋め込み係数を記憶する。
【0186】
埋め込み手段3103は、埋め込みビットプレーン入力端子3003から入力されたビットプレーンで、埋め込み係数決定3301により決定された係数に対し、情報の埋め込みを行う。
【0187】
図29は、第12の実施形態に係る電子透かし埋め込み方法の説明図である。図29においては、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べている。また、図29においては、ビットプレーン番号‘5’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図29において、網掛け箇所は、埋め込みに使用した係数の、埋め込みビットプレーンよりも下位のビットプレーン(情報の埋め込みに追加して使用する部分)である。
【0188】
図30は、第12の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。図30においては、横方向左側から順に係数1〜8を並べ、縦方向下から順にビットプレーン番号‘0’〜‘10’を並べている。また、図30においては、ビットプレーン番号‘0’‘4’‘7’のビットプレーンが情報埋め込みに使用されるビットプレーンであり、黒色塗りつぶし箇所は、従来の情報埋め込みに使用した係数ビットである。また、図30において、網掛け箇所は、埋め込みに使用した係数の、埋め込みビットプレーンよりも下位のビットプレーン(情報の埋め込みに追加して使用する部分)である。
【0189】
図29又は図30に示されるように、埋め込み係数決定手段3301により決定された係数で、かつ、実際に埋め込みに使用した係数を埋め込み位置記憶手段3302から取得し、埋め込みビットプレーンよりもLSB側のビットプレーンに、情報の埋め込みを行う。
【0190】
電子透かしを埋め込んだビットプレーン以下の部分は、元の係数値との誤差値を最小にするように、すべて0(all0)、すべて1(all1)、又はその中間値にしたり、埋め込みによってデータが変更しなかった場合、そのままにしたりする。また、すべてゼロ(all0)又はすべて1(all1)にした場合、それらの値を評価することで埋め込み位置が判明しやすくなるため、下位ビットをランダムな値で満たす(フィルする)こともある。この場合、データの埋め込みキャパシティを無駄に浪費していることになるので、下位ビットに情報の埋め込みを行う。
【0191】
改ざん検出用の電子透かしの場合、埋め込みビットプレーン入力端子3003から入力されたビットプレーンに対しては署名データを埋め込み、それよりもLSB側の部分にはメッセージの埋め込みに使用してもよい。また、電子透かし検証時に、1ビットプレーン単位でのプログレッシブ伝送に対応するように、メッセージはビットプレーン順に埋め込んでもよい。第12の実施形態の電子透かし埋め込み側の動作において、上記以外の点は、第10及び第11の実施形態の電子透かし埋め込み側の動作と同様である。
【0192】
[電子透かし検証側の動作]
図28に示されるように、埋め込み係数決定手段3311は、入力された検出ビットプレーン情報を元に、埋め込まれた位置を決定する。決定方法は、第10の実施形態における上位ビットプレーン評価手段3201(図22)や、第11の実施形態におけるブロック判定手段3202(図26)の方法を用いてもよい。
【0193】
埋め込み位置記憶手段3312は、埋め込み係数決定手段3311によって決定された埋め込み係数を記憶する。
【0194】
抽出手段3203は、決定された係数に対し、情報の抽出を行う。また、埋め込み係数決定手段3311により決定された係数で、かつ、実際に抽出に使用した係数を埋め込み位置記憶手段3312から取得し、抽出ビットプレーンよりもLSB側のビットプレーンから、情報の抽出を行う(図29、図30参照)。第12の実施形態の電子透かし検証側の動作において、上記以外の点は、第10及び第11の実施形態の電子透かし検証側の動作と同様である。
【0195】
[第12の実施形態の効果]
以上説明したように、第12の実施形態によれば、MSBとLSBの間のビットプレーンに情報を埋め込んだ場合、それよりも下位のビットプレーンのデータに情報を埋め込むことで、埋め込み可能な情報量を飛躍的に増大させることができる。
【0196】
≪4.他の利用形態≫
上記第1〜第12の実施形態の構成は、コンピュータシステムで構成することができる。この場合には、上記各実施形態における電子透かし埋め込み方法及び電子透かし検出方法を、コンピュータシステムにインストールされたアプリケーションプログラムに従って実行させることができる。このアプリケーションプログラムのインストール方法には、インストール用プログラムが記録された記憶媒体からのインストールやインターネットを経由したダウンロード等の方法がある。
【0197】
上記第1〜第12の実施形態の構成は、コンピュータシステムで構成することができるので、上記第1〜第12の実施形態の内の幾つかの構成の機能を組み合わせたシステムを提供することも可能である。
【0198】
【発明の効果】
第1の発明によれば、各ビットプレーンが複数の符号化パスで構成され、算術符号化されている場合であっても、埋め込んだ署名データを検証側ですべて取り出せるようにすることができる。
【0199】
また、第2の発明によれば、電子透かしを検証する際に、電子透かしをどこに埋め込んだかを示す情報が外部から得られなくても、電子透かしが埋め込まれたビットプレーンを特定することができる。そのため、電子透かしが埋め込まれているビットプレーンを特定し、埋め込んでおいたデータを抽出することができる。
【0200】
また、第3の発明によれば、埋め込みデータを画質の影響の少ない部分に埋め込むことができるため、画質を向上させることができる。
【図面の簡単な説明】
【図1】第1の発明の第1の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図2】第1の発明の第1〜第6の実施形態の電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図3】(a)及び(b)は、第1の発明の第1の実施形態の符号化パス制御方法の説明図である。
【図4】第1の発明の第2の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図5】第1の発明の第3の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図6】第1の発明の第4の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図7】第1の発明の第5の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図8】第1の発明の第6の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図9】第2の発明の第7の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図10】第2の発明の第7の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図11】第2の発明の第7の実施形態の電子透かし埋め込み方法の説明図である。
【図12】第2の発明の第7の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。
【図13】第2の発明の第8の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図14】第2の発明の第8の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図15】第2の発明の第9の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図16】第2の発明の第9の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図17】第2の発明の第9の実施形態に係る電子透かし埋め込み方法の説明図である。
【図18】第3の発明の第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図19】第3の発明の第10の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)のJPEG2000圧縮器への適用例を示すブロック図である。
【図20】第3の発明の第10の実施形態に係る電子透かし埋め込み方法の説明図である。
【図21】第3の発明の第10の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。
【図22】第3の発明の第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図23】第3の発明の第10の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)のJPEG2000伸張器への適用例を示すブロック図である。
【図24】第3の発明の第11の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図25】第3の発明の第11の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)の他の例を示すブロック図である。
【図26】第3の発明の第11の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図27】第3の発明の第12の実施形態に係る電子透かし埋め込み方法を実施する電子透かし埋め込み側の構成(電子透かし埋め込み装置)を示すブロック図である。
【図28】第3の発明の第12の実施形態に係る電子透かし検出方法を実施する電子透かし検証側の構成(電子透かし検出装置)を示すブロック図である。
【図29】第3の発明の第12の実施形態に係る電子透かし埋め込み方法の説明図である。
【図30】第3の発明の第12の実施形態に係る電子透かし埋め込み方法の他の例の説明図である。
【図31】ビットプレーンの概念の説明図である。
【図32】ビットマップ画像にフラジャイル電子透かしを埋め込む動作の説明図である。
【図33】フラジャイル電子透かしを検証する動作の説明図である。
【図34】周波数空間上の係数を符号化する構成を示すブロック図である。
【図35】一つのビットプレーンに対して1種類の符号化パスが生成される場合の算術符号化を示す説明図である。
【図36】一つのビットプレーンに対して3種類の符号化パスが生成される場合の算術符号化を示す説明図である。
【図37】ビットプレーン番号‘2’以下のビットプレーンが打ち切られ、ビットプレーン番号‘3’のビットプレーンに電子透かしが埋め込まれる場合を示す説明図である。
【図38】(a)は、復号の際に、打ち切られたビットプレーンをすべて「0」とした場合を示す説明図であり、(b)は、復号の際に、打ち切られたビットプレーンの最上位ビットプレーンが非0係数である場合を示す説明図である。
【図39】情報の埋め込みに適した領域と適していない領域を示す説明図である。
【符号の説明】
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 埋め込み位置記憶手段。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a digital watermark embedding method, a digital watermark detecting method, a digital watermark embedding device, and a digital watermark detecting device used for detecting falsification of image data.
[0002]
[Prior art]
<< First prior art >>
[Fragile digital watermarking technology]
FIG. 31 is an explanatory diagram of the concept of a bit-plane. FIG. 31 illustrates four vertical and three horizontal coefficients. Each coefficient is represented by a sign bit and an absolute value. As shown in FIG. 31, in the bit plane, the absolute value (“1”) corresponding to each sample obtained by sequentially slicing the coefficient with each bit from the MSB (most significant bit) to the LSB (least significant bit). Or, there is a bit plane of "0") and a bit plane of a coefficient sign ("+" or "-").
[0003]
FIG. 32 is an explanatory diagram of an operation of embedding a fragile digital watermark in a bitmap image. As shown in FIG. 32, at the time of embedding a digital watermark, a hash value is obtained from a bit plane other than the LSB (for strict verification, a bit plane other than the LSB and all bits not used for embedding the LSB). The calculated hash value (digital signature) encrypted by the public key cryptosystem is embedded in the LSB. Normally, the embedding position in the LSB is randomized using a pseudo-random sequence using a key as a seed.
[0004]
FIG. 33 is an explanatory diagram of an operation for verifying a fragile digital watermark. As shown in FIG. 33, at the time of verifying the digital watermark, the embedding position is determined from the LSB portion of the image in which the signature data is embedded by the same procedure as the embedding side, and the embedded data is extracted. The hash value generated at the time of embedding the digital watermark is decrypted from the extracted data. In addition, a hash value is calculated from a bit plane other than the LSB (in the case of strict verification, a bit plane other than the LSB and all the bits not used for embedding the LSB) by the same algorithm as the embedding side, and Is compared with the decrypted hash value. As a result of the comparison, if both hash values match, it is known that the image has not been tampered with (for example, see Patent Document 1).
[0005]
Normally, the bit length of a hash value generated compared to image data is very short. For example, in the case of a hash algorithm known as SHA1, the output data is 160 bits regardless of the input data length. However, due to the characteristics of the hash calculation, even if there is only a slight change in the image, the generated hash value becomes a completely different value. Therefore, by comparing the hash values, it is possible to detect even falsification of one pixel. Further, if the range in which one hash value is calculated is not the entire image but a range divided by M × N pixel size blocks in the image, it is possible to detect tampering of the image in units of M × N blocks. In addition, a tampered portion in an image can be specified in block units.
[0006]
There is also a method of embedding a hash value or signature data in a coefficient on a frequency space after wavelet (Wavelet) transform, DCT (discrete cosine transform), quantization, or the like. This method is also similar to the case of digital watermarking for a bitmap, except that the hash value calculation target and the signature data embedding target are simply replaced by the coefficients after frequency conversion from the image data itself. Furthermore, there is a method of changing the coordinates of the hash value calculation target and the embedding target, and the same detection method is used in this method.
[0007]
[Coding method of coefficients in frequency space]
When embedding an electronic watermark in a coefficient in the frequency space after wavelet transform, DCT, quantization, or the like, the coefficient may be encoded (compressed) at the same time. FIG. 34 is a block diagram showing a configuration for encoding coefficients in the frequency space. As shown in FIG. 34, the configuration for encoding the coefficients includes a frequency conversion unit 1011 that performs frequency conversion on the input image, and a configuration in which the conversion coefficients are expanded on a bit plane from MSB to LSB to have a predetermined size. A bit plane encoding path generating unit 1012 for determining an encoding path (procedure for performing an encoding process) of each bit plane for each code block; an arithmetic encoding unit 1013 for performing arithmetic encoding according to the encoding path; And a rate control unit 1014 for controlling the code amount from the arithmetic code to a target code amount (equivalent to the compressed bit rate or file size).
[0008]
In one example of a coding method, a frequency conversion unit 1011 converts an image into bit planes of coefficients, and a bit plane coding pass generation unit 1012 generates one coding pass for one bit plane, and performs arithmetic coding. The coding means 1013 performs arithmetic coding according to the coding pass. FIG. 35 shows bit planes of bit plane numbers “n−2”, “n−3”,..., “1” and “0” (in FIG. 35, Bit-plane (n−2), Bit-plane (n -3),..., Bit-plane (1), Bit-plane (0)), one encoding pass (in FIG. 35, coding pass X) is generated. FIG. 4 is an explanatory diagram of an arithmetic encoding process in the case of Arithmetic coding of all bit planes is performed, and thereafter, the rate control unit 1014 controls the code amount. At that time, the rate control means 1014 counts the arithmetic coding amount for each coding pass, and when the target coding amount is reached, discards the arithmetic coding data after that. The position where the arithmetic code is discontinued in this way is called an "arithmetic code discontinuation point".
[0009]
In the above example, since the arithmetic code abort point is a boundary of any bit plane, only some coefficients of a certain bit plane are included in the compressed arithmetic code data, and some coefficients are truncated. , Is not included in the compressed arithmetic code data. Therefore, when embedding a digital watermark, embed the digital watermark in a predetermined bit plane, and if there is an arithmetic code breakpoint after that bit plane, decode all data in that bit plane during verification. So that all digital watermarks can be extracted. The same applies to the case where the censoring point is different for each code block which is a unit in which arithmetic coding is performed.
[0010]
However, for example, in JPEG2000, which is a next-generation still image coding standard, one bit plane is composed of three types of coding passes, and then arithmetic coding is performed according to each coding pass. Specifically, each bit plane of the frequency-transformed (in this case, wavelet transformed) coefficient is converted into a significance propagation pass, a magnitude refinement pass, and a cleanup pass. arithmetic coding using three types of coding passes called “pass”. It should be noted that the coding pass in which each bit of the bit plane is coded differs depending on the status of the already coded upper bit plane including peripheral pixels.
[0011]
In JPEG2000, the number of the bit plane from the MSB side where “1” first appears is separately encoded, and the bit plane where “1” first appears is encoded only by the cleanup pass. FIG. 36 shows an encoding path generated by the above processing. In FIG. 36, the coding path and the arithmetic code break point of a certain code block are shown, but they usually differ for each code block. As shown in FIG. 36, each bit plane (in FIG. 36, Bit-plane (n-2), Bit-plane (n-3), Bit-plane (n-4),..., Bit-plane (0 ) Are subjected to arithmetic coding according to a plurality of coding paths (in FIG. 36, denoted as Coding Pass A, Coding Pass B, and Coding Pass C), and thereafter, the rate control unit 1014 performs coding. Control the volume. At that time, the rate control means 1014 counts the arithmetic coding amount of the coding path, and when the target coding amount is reached, discards the arithmetic coding data thereafter.
[0012]
<< 2nd prior art >>
[Digital watermark embedding method when bit plane is censored]
As described above, when embedding an electronic watermark while compressing the transform coefficient obtained by frequency-converting image data, compression is performed by cutting off the bit plane of the transform coefficient for each code block having a predetermined size. May be. In such a case, a digital watermark is embedded in a bit plane immediately before the censored bit plane in order to make the entire image data subject to tampering detection. More specifically, as shown in FIG. 37, when a bit plane of bit plane number “2” or less is cut off in a certain code block, a digital watermark is embedded in the bit plane of bit plane number “3”.
[0013]
In this way, when verification is performed during the decoding process, the bit plane number “2” is aborted and does not exist, so that the least significant bit plane (bit plane number “3”) of the decoded bit planes is electronically assigned. It can be seen that the watermark is embedded. Therefore, a digital watermark can be extracted from the bit plane.
[0014]
<< 3rd prior art >>
The third related art is the same as the first related art.
[0015]
[Patent Document]
JP 2001-042768 A (FIGS. 1 to 4)
[0016]
[Problems to be solved by the invention]
<< Issues of the first prior art >>
In the first conventional technique, when one bit plane is arithmetically encoded using a plurality of encoding passes, there is a possibility that the arithmetic code after the encoding pass in the middle of the bit plane may be discontinued. For example, as shown in FIG. 36, when the arithmetic code of the encoding path after the arithmetic code break point is truncated, the bit plane of bit plane number n-4 (in FIG. 36, Bit-plane (n-4 ) Will be encoded only partially.
[0017]
Therefore, when embedding a digital watermark, even if the digital watermark is embedded in a predetermined bit plane, the arithmetic code is truncated in the middle of the encoding pass encoding the bit plane, and the arithmetic code thereafter It is possible that truncated data is truncated. In this case, some of the coefficients in which the digital watermark is embedded are truncated and are not included in the compressed arithmetic code data. As a result, all of the embedded digital watermarks cannot be taken out (in the case of fragile digital watermarking, if there is no tampering, the same digital watermark as in the case of embedding must be extracted in verification). There is a problem that verification cannot be performed correctly.
[0018]
<< Issues of the Second Prior Art >>
In the second conventional technique, once decoding is performed from a state in which a digital watermark is embedded in a compressed state, information as to which bit plane the transform coefficient has been aborted is lost. There is a problem that it cannot be determined.
[0019]
When a frequency conversion such as a JPEG2000 reversible filter is used, if the image once decoded is subjected to the same frequency conversion again to obtain a conversion coefficient, the same conversion coefficient can be obtained. Therefore, as shown in FIG. 38 (a), the bit planes that are truncated at the time of decoding (in FIG. 38 (a), bit plane numbers '2', '1', and '0') are all set to "0". , All the truncated bit planes become “0” by performing the same reversible frequency conversion again. Therefore, by examining the bits of each bit plane from the LSB, the bit plane in which “1” first appears can be determined as the bit plane in which the digital watermark is embedded. However, also in this case, by embedding the digital watermark, at least one bit of “1” must be present in the bits of the bit plane in which the digital watermark is embedded.
[0020]
However, as shown in FIG. 38B, at the time of decoding, the most significant bit plane of the truncated bit plane (the bit plane number “2” in FIG. 38B) has a non-zero coefficient. In this case, since the data is usually decoded as “1”, the above means cannot be used. The reason why such processing is performed is that when dequantizing a quantized value, it is considered that the best image quality is obtained by reconstructing the value by adding a value that is half the quantization step size. It is mentioned. Aborting a bit plane below a certain bit plane number is equivalent to quantizing with a quantization step size of “2 (the bit plane number)”. Therefore, adding half of the step size is equivalent to decoding with the most significant bit plane of the bit plane just censored being “1”. However, what to do with the values of the other lower bitplanes that have been censored is left to the discretion of the decoding, and if decoding and frequency conversion are performed again, can not predict.
[0021]
<< The problem of the third prior art >>
In the third conventional technique, there is a problem that the image quality is significantly deteriorated depending on the location where the information bit of the digital watermark is embedded.
[0022]
Further, when selecting a coefficient for embedding the information bit of the digital watermark, there is a case where the grouping is performed by a group of nearby coefficients and the information bit is embedded in the group. However, when there is no portion suitable for embedding information (for example, a region of a high frequency component such as a hair shown in FIG. 39) in the grouping, a portion not suitable for embedding information (for example, shown in FIG. 39). Information must be embedded in a low-frequency component region such as a uniform background), and there is a problem that the image quality deteriorates on a flat background or the like. Also, when the SNR scalability of JPEG2000 is used, information is embedded in the bit plane on the MSB side rather than the LSB, so that it is more easily perceived by humans.
[0023]
<< Object of the first invention >>
A first invention is to solve the problem of the first related art, and an object of the invention is to provide a digital watermark embedding method and a digital watermark embedding device that can reliably detect a digital watermark. is there.
[0024]
<< Object of the second invention >>
A second invention is to solve the problem of the second prior art, and an object of the invention is to provide a digital watermark embedding method and a digital watermark detection method for reliably specifying a bit plane in which a digital watermark is embedded. A method, a digital watermark embedding device, and a digital watermark detection device are provided.
[0025]
<< Object of the third invention >>
A third invention is to solve the problem of the third prior art, and an object of the invention is to provide a digital watermark embedding method, a digital watermark detection method, and a digital watermark embedding method that can suppress deterioration of image quality due to digital watermark embedding. An object of the present invention is to provide a digital watermark embedding device and a digital watermark detecting device.
[0026]
Another object of the third invention is to provide a digital watermark embedding method, a digital watermark detection method, and a digital watermark embedding device that can suppress a decrease in compression efficiency by using a compression characteristic when selecting an embedding coefficient. , And a digital watermark detection device.
[0027]
Still another object of the third invention is to provide a digital watermark embedding method, a digital watermark detecting method, a digital watermark embedding device, and a digital watermark detecting device that can increase the capacity of embedding a message.
[0028]
[Means for Solving the Problems]
One aspect of the digital watermark embedding method of the first invention is a digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side, wherein input image data is converted from a most significant bit to a least significant bit. Developing the data into a plurality of bit planes, generating one or more types of first encoding passes for each bit plane, and arithmetically encoding the data of each bit plane according to the first encoding pass. (1) controlling the arithmetic coding amount in the arithmetic coding based on a target code amount to determine an arithmetic code censoring point; and determining the obtained arithmetic code censoring point as a bit plane. Changing the obtained arithmetic code censoring point to a bit plane boundary if not at a boundary; and Generating signature data, embedding signature data in the input image data, developing the image data in which the signature data is embedded into a plurality of bit planes, and generating a second encoding pass for each bit plane. And a step of arithmetically encoding the data of each of the bit planes according to the second encoding pass up to the arithmetic code discontinuation point to generate second encoded data.
[0029]
One embodiment of the digital watermark embedding method of the second invention is a digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side, wherein ID information indicating a bit plane into which a digital watermark is embedded is stored. The method is characterized by including a step of embedding and a step of embedding data in a bit plane specified by the ID information. One embodiment of the digital watermark detection method of the second invention is a digital watermark detection method executed on image data by a configuration of a digital watermark verification side, wherein the digital watermark detection method is embedded in image data by the digital watermark embedding method. And extracting a bit plane in which the data is embedded, and extracting the data from the specified bit plane.
[0030]
An aspect of a digital watermark embedding method according to a third invention is a digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side, wherein a bit plane for embedding information in input image data is provided. Is specified, the data of the bit plane higher than the bit plane in which the information is embedded is evaluated, and a step of performing labeling indicating the order of the position where the information is embedded based on the evaluation result is performed. According to the order indicated by the labeling, Embedding embedded data in the input image data. One embodiment of the digital watermark detection method of the third invention is a digital watermark detection method executed on image data by a configuration of a digital watermark verification side, wherein data is embedded by the digital watermark embedding method. Receiving the image data, a bit plane for extracting information from the received image data is designated, and evaluates data of a bit plane higher than the designated bit plane, and based on the evaluation result, The method includes a step of performing labeling indicating an order of a position where information is embedded, and a step of extracting embedded data from the received image data according to the order indicated by the labeling.
[0031]
BEST MODE FOR CARRYING OUT THE INVENTION
{1. First invention≫
{1-1. First Embodiment≫
[Configuration of digital watermark embedding side]
FIG. 1 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the first embodiment.
[0032]
As shown in FIG. 1, the configuration of the digital watermark embedding side of the first embodiment includes a frequency conversion unit 1011 that performs frequency conversion on image data input through an input terminal 1001 and outputs a conversion coefficient, A conversion coefficient storage unit 1021 for storing the conversion coefficient output from the conversion unit 1011. Further, the configuration of the digital watermark embedding side according to the first embodiment includes a bit plane for generating an encoding path (procedure for performing an encoding process) for bit plane encoding the transform coefficient output from the frequency transform unit 1011. It has an encoding path generation unit 1012 and an arithmetic encoding unit 1013 that arithmetically encodes a transform coefficient according to each encoding path generated by the bit plane encoding path generation unit 1012. Further, the configuration of the digital watermark embedding side of the first embodiment is such that the code amount of the arithmetic code arithmetically coded by the arithmetic coding unit 1013 is equal to the code amount input from the target code amount input terminal 1003. It has a rate control means 1014 for controlling the code amount of the generated arithmetically coded data. Furthermore, the configuration on the digital watermark embedding side of the first embodiment is a coding path control unit that changes the arithmetic code cutoff point determined by the rate control unit 1014 so that all the embedded digital watermarks can be extracted. 1015.
[0033]
As shown in FIG. 1, the configuration of the digital watermark embedding side of the first embodiment includes a signature generation unit 1101 for generating signature data from the transform coefficient stored in the transform coefficient storage unit 1021, A signature embedding unit 1102 for embedding the signature data obtained from the unit 1101 into the transform coefficient, a bit plane encoding path generating unit 1012A for generating an encoding pass for bit plane encoding the transform coefficient in which the signature data is embedded, An arithmetic encoding unit 1013A that arithmetically encodes each encoding pass generated by the bit plane encoding pass generation unit 1012A and outputs compressed data after encoding / digital watermark embedding. The arithmetic coding unit 1013A performs arithmetic coding up to the coding pass changed by the coding pass control unit 1015 for each coding pass generated by the bit plane coding pass generation unit 1012A, and performs coding / digital watermarking. Get compressed data. The compressed data after the encoding / digital watermark embedding generated by the arithmetic encoding unit 1013A is output through an output terminal 1004 and passed to a configuration on the digital watermark verification side described below via a network or the like.
[0034]
[Configuration of Digital Watermark Verification Side]
FIG. 2 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side according to the first embodiment.
[0035]
As shown in FIG. 2, the configuration of the digital watermark verification side of the first embodiment receives compressed data output from the output terminal 1004 (FIG. 1) of the configuration of the digital watermark embedding side through an input terminal 1006. And decoding means 1031 for decoding the compressed data. The configuration of the digital watermark verification side according to the first embodiment includes a signature generation unit 1202 that generates signature data from the coefficient obtained by the decryption unit 1031, and a digital watermark embedding side based on the coefficient obtained by the decryption unit 1031. Signature extracting means 1201 for extracting the embedded signature data, signature comparing means 1203 for comparing the signature data extracted by the signature extracting means 1201 with the signature data generated by the signature generating means 1202, and outputting a comparison result; Having. The comparison result output from the signature comparison unit 1203 is output through the output terminal 1007.
[0036]
[Operation on the digital watermark embedding side]
As shown in FIG. 1, image data of a target image in which a digital watermark is to be embedded is input to an input terminal 1001. The frequency transform unit 1011 performs frequency transform such as wavelet transform or DCT on the image data input to the input terminal 1001, and generates coefficients in a frequency space. The conversion coefficient storage unit 1021 stores the conversion coefficient generated by the frequency conversion unit 1011.
[0037]
The bit plane coding path generation unit 1012 divides the transform coefficient generated by the frequency conversion unit 1011 into code blocks (Code-blocks) of a predetermined size, and generates a plurality of bits from MSB to LSB for each code block. After being developed into planes, a coding path for coding each bit plane is determined according to a predetermined rule. The arithmetic coding unit 1013 performs arithmetic coding for each coding pass generated by the bit plane coding pass generation unit 1012, and generates coded (compressed) data. When JPEG2000 which is a still image coding standard is applied, a wavelet transform is used for the frequency conversion, and each bit plane of the wavelet transform coefficient is divided into the above three types of coding paths (significance propagation path, magnitude refinement). Pass, cleanup pass).
[0038]
The rate control unit 1014 performs arithmetic coding for each coding pass obtained by the arithmetic coding unit 1013 for each code block so that the arithmetic coding amount becomes the target coding amount input from the input terminal 1003. The amount is counted, and when the target encoding amount is reached, the subsequent encoding passes are discarded. By this processing, the arithmetic code censoring point in each code block is determined, and the encoding path included in the compressed arithmetically encoded data is determined (see FIG. 3A described later).
[0039]
The encoding path control unit 1015 determines that the arithmetic code termination point obtained by the rate control unit 1014 is in the middle of a bit plane that does not include a part of the data of a certain bit plane (see FIG. )), And the arithmetic code abort point is changed to be on the boundary of the bit plane (see FIG. 3B described later). After that, in each code block, among the bit planes included in the compressed arithmetically encoded data, the bit plane closest to the LSB is set as the bit plane in which the signature data is embedded.
[0040]
FIGS. 3A and 3B are explanatory diagrams of an encoding path control method according to the first embodiment. FIG. 3A shows an encoding path of the bit plane before control by the encoding path control unit 1015, and FIG. 3B shows an encoding path of the bit plane after control by the encoding path control unit 1015. Show. In FIGS. 3A and 3B, each bit plane is configured by three coding passes (in the figure, coding pass A, coding pass B, and coding pass C).
[0041]
In the code block CB0 (denoted as Code-block 0 in FIG. 3), the rate control unit 1014, as shown in FIG. Arithmetic code truncation points are set so that up to a coding pass A (denoted as coding pass A in FIG. 3) in the middle of Bit-plane 0 is included in the compressed arithmetically coded data. are doing. Therefore, the coding path control unit 1015 changes the arithmetic code abort point so that the arithmetic code abort point is on the boundary of the bit plane, and as shown in FIG. The data up to the encoding pass C of the bit plane is included in the arithmetically encoded data after compression.
[0042]
Further, as shown in FIG. 3A, the rate control unit 1014 determines that the code block CB1 (denoted as Code-block 1 in FIG. 3) has a bit plane of bit plane number “1” (FIG. 3). In FIG. 3, the arithmetic code censoring point is set so that up to an encoding pass A (indicated as Coding pass A in FIG. 3) in the middle of Bit-plane 1 is included in the arithmetically encoded data after compression. Is set. Therefore, the arithmetic code abort point is changed by the encoding path control unit 1015 so that the arithmetic code abort point is on the boundary of the bit plane, and as shown in FIG. The arithmetic code censoring point is changed so that up to the coding pass C of the bit plane 2 ′ (denoted as Bit-plane 2 in FIG. 3) is included in the arithmetically coded data after compression. In this case, the arithmetic code termination point may be set at the bit plane boundary, and may include the same bit plane or may include up to the next higher bit plane.
[0043]
Further, as shown in FIG. 3A, the rate control unit 1014 determines whether the code block CB2 (denoted as Code-block 2 in FIG. 3) has a bit plane number “2” (FIG. 3). In FIG. 3, an arithmetic code break point is set so as to include a coding pass B (denoted as Coding pass B in FIG. 3) in the middle of Bit-plane 2. Therefore, the arithmetic code abort point is changed by the encoding path control unit 1015 so that the arithmetic code abort point is on the boundary of the bit plane, and the compressed arithmetic code C up to the encoding path C of the same bit plane '2' is changed. Change the arithmetic code truncation point to be included in the data.
[0044]
In the code block CB3 (denoted as Code-block 3 in FIG. 3), as shown in FIG. 3A, the arithmetic code break point is on the bit plane boundary, so that it is not necessary to change this.
[0045]
By the above processing, the state of the encoding path included in the compressed arithmetic code data in each code block after the encoding path control is as shown in FIG. The bit plane in which the signature data is embedded is the bit plane closest to the LSB side among the bit planes included in the arithmetically encoded data after compression in each code block. Therefore, in the case of FIG. 3B, the bit plane numbers included in the compressed arithmetically coded data are “0”, “2”, and “0” for each of the code blocks CB0, CB1, CB2, and CB3. 2 'and' 1 '.
[0046]
FIGS. 3A and 3B show a case where each bit plane is divided into three types of encoding passes. However, the same processing is performed when each bit plane is constituted by more types of encoding passes. can do. Further, when changing the arithmetic code censoring point to the bit plane boundary, the bit plane boundary may be selected so that the difference between the arithmetic coding amount before the change and the arithmetic coding amount after the change is minimized. Good.
[0047]
The signature generation unit 1101 generates signature data for the transform coefficient stored in the transform coefficient storage unit 1021. The signature data is obtained from the conversion coefficients excluding the coefficients for embedding the generated signature data among the conversion coefficients. Specifically, (1) data of bit planes other than the bit plane in which the signature data is embedded (this is obtained by the encoding path control unit 1015); and (2) the signature data of the bit plane in which the signature data is embedded. Using all bits not used for embedding, a hash value obtained by a hash function such as SHA1, a hash value encrypted by an encryption algorithm such as RSA, a part of the hash value, or the like is used as signature data. .
[0048]
The signature embedding unit 1102 embeds the signature data obtained from the signature generation unit 1101 into the conversion coefficient stored in the conversion coefficient storage unit 1021. The embedding position may be a pseudo-random sequence or a position scrambled by a replacement table.
[0049]
The bit plane encoding path generation unit 1012A performs the same processing as that performed by the bit plane encoding path generation unit 1012 on the transform coefficient in which the signature data obtained by the signature embedding unit 1102 is embedded. That is, the transform coefficient in which the signature data is embedded is divided into code blocks of a predetermined size, and each code block is developed into a plurality of bit planes from the MSB to the LSB. For this purpose, the encoding path is determined according to a predetermined rule. The arithmetic coding unit 1013A performs arithmetic coding up to the coding path changed by the coding path control unit 1015 for each coding pass generated by the bit plane coding pass generation unit 1012A, and encodes (compresses) the encoded data. Get. The coefficient in which the signature data is embedded and encoded is output through an output terminal 1004.
[0050]
[Operation on the digital watermark verification side]
As shown in FIG. 2, compressed image data for verifying a digital watermark is input to an input terminal 1006. The compressed image data input to the input terminal 1006 is passed to the decoding unit 1031. The decoding unit 1031 decodes the arithmetically coded data and generates a transform coefficient in the frequency space.
[0051]
The signature extracting unit 1201 extracts signature data embedded in a transform coefficient. The extraction is performed by determining an embedding position by the same method as that at the time of embedding the signature data, and extracting data from the embedding position. If the hash value or the like is encrypted on the digital watermark embedding side, the encryption is decoded here, the original data is restored, and the data is passed to the signature comparison unit 1203.
[0052]
The signature generation means 1202 generates signature data for the transform coefficient by the same method as that on the digital watermark embedding side. However, when encryption or the like is used on the digital watermark embedding side, there is no need to perform encryption here, and the signature is extracted by the signature extraction unit 1201. The generated signature data is passed to the signature comparison unit 1203.
[0053]
The signature comparison unit 1203 compares the signature data extracted by the signature extraction unit 1201 with the signature data generated by the signature generation unit 1202, and determines whether the image data has been tampered based on the comparison. For example, if both signature data match, it is determined that there is no tampering, and if they do not match, it is determined that there is tampering. The determination result is output through a comparison result output terminal 1007.
[0054]
[Effects of First Embodiment]
As described above, according to the first embodiment, even when each bit plane is configured with a plurality of coding passes and arithmetically coded, by changing the arithmetic code censoring point, It is possible to enable the verification side to extract all the embedded signature data. According to the first embodiment, rate control in the encoding process can be used in order to set the data amount after encoding to the target encoding amount. It is possible to output coded data having a code amount to be performed.
[0055]
{1-2. Second Embodiment≫
[Configuration of digital watermark embedding side]
FIG. 4 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the second embodiment. In FIG. 4, the same or corresponding components as those in FIG. 1 (first embodiment) are denoted by the same reference numerals. As shown in FIG. 4, the configuration of the digital watermark embedding side of the second embodiment is different from that of the first embodiment (FIG. 1) in that the digital watermark embedding side has an invalid coding path terminating unit 1016. Configuration is different.
[0056]
[Operation on the digital watermark embedding side]
The operation of the configuration of the digital watermark embedding side according to the second embodiment is the same as the operation of the configuration (FIG. 1) of the digital watermark embedding side according to the first embodiment except for the operation of the invalid coding path terminating unit 1016. is there. The invalid coding path truncation unit 1016 illustrated in FIG. 4 includes, in the coding result of the coding pass obtained by the arithmetic coding unit 1013A, the most significant bit plane included in the compressed arithmetic code data in each code block. It is checked whether there is a coding pass that may be terminated in the coding pass of the bit plane on the LSB side. As a result, if there is an encoding pass that is determined to be discontinued, the encoding pass is changed so as not to be included in the compressed arithmetically encoded data.
[0057]
Specifically, the invalid coding pass terminating unit 1016 determines that the arithmetic coding order of the bit planes is the slowest in the coding pass (the order of one bit plane is the coding pass 1,..., N−1, n). In this case, the encoding path is checked in the order of encoding paths n, n-1,..., 1), and the encoding path including significant data is obtained for the first time. Then, the arithmetic code censoring point is changed as an encoding pass in which the encoded data including the significant data is included in the compressed arithmetic code data. Here, the meaningful data means that at least one “1” is included in the bit to be encoded. If all the bits to be encoded are “0”, the bits corresponding to the encoding path that has not been encoded at the time of decoding, even if the encoding path is not included in the compressed arithmetically encoded data, If decoding is performed as “0” (this is handled in a normal decoding process), the value of the conversion coefficient after embedding the signature can be made the same between the embedding apparatus and the verification apparatus. Therefore, as described above, it is possible to abort an encoding pass having no significant data. Except for the above, the operation on the digital watermark embedding side in the second embodiment is the same as the operation on the digital watermark embedding side in the first embodiment.
[0058]
[Configuration and operation of digital watermark verification side]
The configuration and operation of the digital watermark verification side of the second embodiment are the same as the configuration (FIG. 2) and operation of the digital watermark verification side of the first embodiment.
[0059]
[Effect of Second Embodiment]
As described above, according to the second embodiment, it is determined whether or not there is an unnecessary encoding path among the encoding paths of arithmetic coding. Is not included in the arithmetically coded data after compression, the amount of arithmetic coding can be reduced and data with a high compression ratio can be obtained while ensuring that the same transform coefficient value can be decoded.
[0060]
{1-3. Third Embodiment≫
In the configuration of the digital watermark embedding side of the first embodiment described above, it is necessary to perform arithmetic coding by the arithmetic coding unit 1013A on all transform coefficients in which the signature data is embedded. On the other hand, in the configuration of the digital watermark embedding side of the third embodiment, arithmetic coding is initialized / terminated on a bit plane basis so that arithmetic coding can be independently processed in each bit plane. Only the bit plane in which the signature data is embedded can be arithmetically encoded by the arithmetic encoding unit 1013A, and the arithmetic encoding by the arithmetic encoding unit 1013A for the bit plane in which the signature data has not been embedded can be omitted.
[0061]
[Configuration of digital watermark embedding side]
FIG. 5 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the third embodiment. In FIG. 5, the same reference numerals are given to the same or corresponding components as those in FIG. 1 (first embodiment). As shown in FIG. 5, the configuration on the digital watermark embedding side of the third embodiment has a point that an encoder internal reset unit 1017 is provided and an arithmetic terminal that outputs arithmetically encoded data output from the rate control unit 1014. The point of output to 1004 is different from the configuration of the digital watermark embedding side of the first embodiment (FIG. 1).
[0062]
[Operation on the digital watermark embedding side]
Arithmetic codes used in the arithmetic coding means 1013 include MQ coding used in JPEG2000 and the like. As the input of the MQ encoding, a bit (symbol) to be encoded and a context are used. The context is a probability evaluation model for predicting 0 or 1 of a target pixel from a peripheral image, and is sequentially updated from a predetermined initial value according to a bit input as an encoding target. The arithmetic coding unit 1013 has a register for arithmetic coding therein, and performs arithmetic coding while sequentially updating the register.
[0063]
In order to perform processing independently in each processing unit of arithmetic coding, it is necessary to initialize a context for arithmetic coding and an internal register. Further, at the end of the encoding, it is necessary to perform a terminating process which is a process of discharging a code from a register for arithmetic encoding. In the third embodiment, when arithmetic coding is performed by the arithmetic coding unit 1013, processing is performed independently for each bit plane. Therefore, the encoder internal resetting unit 1017 performs processing for each bit plane. The above-described initialization / termination processing is performed at the start and end.
[0064]
The bit plane encoding path generation unit 1012A performs the same processing as that performed by the bit plane encoding path generation unit 1012 on the transform coefficient in which the signature data obtained by the signature embedding unit 1102 has been embedded. According to the information from the means 1015, the bit plane in which the signature data is not embedded is not changed in bit, so that this process is skipped. Similarly, the arithmetic coding unit 1013A does not change the bits of the bit planes in which the signature data is not embedded according to the information from the coding path control unit 1015. Not performed.
[0065]
However, since the bits of the bit plane in which the signature data is embedded are changed, the bit plane encoding path generation unit 1012A performs the same processing as the bit plane encoding path generation unit 1012. Then, arithmetic coding is performed on the coding pass by the arithmetic coding unit 1013A. At this time, by performing the above-described initialization / termination processing for each bit plane by the encoder internal reset unit 1017, each bit plane can be processed independently, and arithmetic coding of only the bit plane in which the signature data is embedded is performed. Becomes possible.
[0066]
Thereafter, the arithmetic coding data of the bit plane in which the signature data determined by the rate control unit 1014 is not embedded and the arithmetic coding data of the bit plane in which the signature data obtained from the arithmetic coding unit 1013A are embedded are combined. To obtain encoded (compressed) data. Except for the above, the operation of the digital watermark embedding side in the third embodiment is the same as the operation of the digital watermark embedding side in the first embodiment.
[0067]
[Configuration and operation of digital watermark verification side]
The configuration and operation of the digital watermark verification side according to the third embodiment are the same as the configuration (FIG. 2) and operation of the digital watermark verification side according to the first embodiment.
[0068]
[Effects of Third Embodiment]
As described above, according to the third embodiment, in order to independently process each bit plane in arithmetic coding, initialization / termination processing of arithmetic coding is performed. As a result, the arithmetic coding of the bit plane in which the signature data that does not need to be arithmetically encoded again is not embedded is skipped, and only the bit plane in which the signature data that needs to be arithmetically encoded is embedded is arithmetically encoded. And the amount of arithmetic processing can be reduced.
[0069]
{1-4. Fourth embodiment≫
In the configuration of the digital watermark embedding side of the first embodiment described above, it is necessary to perform arithmetic coding by the arithmetic coding unit 1013A on all transform coefficients in which the signature data is embedded. On the other hand, in the configuration of the digital watermark embedding side of the fourth embodiment, the internal information of the encoder of the arithmetic encoding unit 1013 is stored so that the arithmetic encoding by the arithmetic encoding unit 1013A can be restarted halfway. By doing so, it is possible to encode only the bit plane in which the signature data that needs to be subjected to the arithmetic coding by the arithmetic coding unit 1013A is embedded, and the arithmetic coding unit 1013A for the bit plane in which the signature data is not embedded. Arithmetic coding can be omitted.
[0070]
[Configuration of digital watermark embedding side]
FIG. 6 is a block diagram showing a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the fourth embodiment. 6, the same reference numerals are given to the same or corresponding components as those in FIG. 1 (first embodiment). As shown in FIG. 6, the configuration of the digital watermark embedding side of the fourth embodiment has a point that an encoder internal information storage unit 1018 is provided, and an arithmetic code output from the rate control unit 1014 is output to an output terminal 1004. Is different from the configuration on the digital watermark embedding side in the first embodiment (FIG. 1).
[0071]
[Operation on the digital watermark embedding side]
Arithmetic codes used in the arithmetic coding means 1013 include MQ coding used in JPEG2000 and the like. As the input of the MQ encoding, a bit (symbol) to be encoded and a context are used. The context is a probability evaluation model for predicting 0 or 1 of a target pixel from a peripheral image, and is sequentially updated from a predetermined initial value according to a bit input as an encoding target. In addition, arithmetic coding has a register for arithmetic coding therein, and performs arithmetic coding while sequentially updating the register.
[0072]
When arithmetic coding is restarted halfway, it is necessary to keep the internal information (context, register) of the encoder in the same state as when encoding from the initial state. For this purpose, in the fourth embodiment, the encoder internal state storage means 1018 stores the bit plane so that the arithmetic coding can be restarted from the boundary of the bit plane when the arithmetic coding means 1013 performs the arithmetic coding. The internal information of the encoder is stored every time.
[0073]
The bit plane coding path generation unit 1012A performs the same processing as the bit plane coding path generation unit 1012 on the transform coefficient in which the signature data obtained by the signature embedding unit 1102 is embedded. According to the information from the means 1015, the bit plane in which the signature data is not embedded is not changed in bit, so that this process is skipped. Similarly, the arithmetic coding means 1013A does not perform the arithmetic coding of the bit plane. However, the bit plane encoding path generation unit 1012A performs the same processing as that performed by the bit plane encoding path generation unit 1012 because the bits have been changed for the bit plane in which the signature data is embedded. Then, arithmetic coding is performed on the coding pass by the arithmetic coding unit 1013A. At this time, the same internal information as when the bit plane to be encoded is encoded is set in the encoder by using the internal information of the encoder held by the encoder internal state storage unit 1018. , Perform arithmetic coding processing.
[0074]
Thereafter, the arithmetic coding data of the bit plane in which the signature data determined by the rate control unit 1014 is not embedded and the arithmetic coding data of the bit plane in which the signature data obtained from the arithmetic coding unit 1013A are embedded are combined. To obtain encoded (compressed) data. Except for the above, the operation of the digital watermark embedding side of the fourth embodiment is the same as the operation of the digital watermark embedding side of the first embodiment.
[0075]
[Configuration and operation of digital watermark verification side]
The configuration and operation of the digital watermark verification side of the fourth embodiment are the same as the configuration (FIG. 2) and operation of the digital watermark verification side of the first embodiment.
[0076]
[Effect of Fourth Embodiment]
As described above, according to the fourth embodiment, by storing the internal information of the encoder so that arithmetic coding can be restarted halfway, signature data that does not need to be arithmetic-coded again Can be skipped, and only the bit plane in which the signature data that needs to be arithmetically encoded is embedded can be arithmetically encoded, thereby reducing the amount of arithmetic processing.
[0077]
{1-5. Fifth embodiment≫
In the configuration in which the digital watermark embedding of the first embodiment is performed, first, arithmetic coding is performed on the transform coefficient, signature data is embedded, and the coefficient embedded with the signature data is again arithmetically encoded. Coding had to be performed. On the other hand, in the digital watermark embedding configuration according to the fifth embodiment, a bit plane in which signature data is to be embedded is specified in advance before arithmetic coding of a transform coefficient, and the generated signature data is stored in the bit plane. After that, arithmetic coding is performed.
[0078]
[Configuration of digital watermark embedding side]
FIG. 7 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the fifth embodiment. 7, the same reference numerals are given to the same or corresponding components as those in FIG. 1 (first embodiment).
[0079]
As shown in FIG. 7, in the configuration of the digital watermark embedding side of the fifth embodiment, the image data input from the input terminal 1001 is generated by the frequency conversion unit 1011 for frequency conversion and the frequency conversion unit 1011. A conversion coefficient storage unit 1021 for storing a conversion coefficient. Further, the configuration of the digital watermark embedding side of the fifth embodiment includes a signature generation unit 1101 for generating signature data from a transform coefficient, a signature embedding unit 1102 for embedding the signature data obtained from the signature generation unit 1101, It has a bit-plane coding path generating unit 1012A for generating a coding pass for bit-plane coding the embedded transform coefficients, and an arithmetic coding unit 1013A for arithmetically coding each coding pass. The compressed data after the encoding / digital watermark embedding generated by the arithmetic encoding unit 1013A is output through the output terminal 1004. A bit plane is input to the signature generation unit 1101, the embedded signature embedding unit 1102, the bit plane encoding path generation unit 1012A, and the arithmetic encoding unit 1013A through the bit plane input terminal 1005.
[0080]
[Operation on the digital watermark embedding side]
As shown in FIG. 7, image data of a target image in which a digital watermark is to be embedded is input to an input terminal 1001. Image data input to the input terminal 1001 is passed to the frequency conversion unit 1011. The frequency transform unit 1011 performs a frequency transform such as a wavelet transform on the input image to obtain a coefficient in a frequency space. The conversion coefficient is stored in the conversion coefficient storage unit 1021.
[0081]
The signature generation unit 1101 generates signature data for the transform coefficient obtained by the frequency conversion unit 1011. The signature data is obtained from the conversion coefficients excluding the coefficients for embedding the generated signature data among the conversion coefficients. More specifically, a hash value obtained by a hash function such as SHA1 using a bit plane other than the embedded bit plane input from the embedded bit plane input terminal 1005 and all bits of the bit plane not used for embedding, A hash value encrypted by an encryption algorithm such as RSA, a part of the hash value, or the like is used as signature data.
[0082]
The signature embedding unit 1102 embeds the signature data obtained from the signature generation unit 1101 into the conversion coefficient stored in the conversion coefficient storage unit 1021. The bit plane to be embedded is a bit plane input from the embedded bit plane input terminal 1005. The embedding position may be a pseudo-random sequence or a position obtained by scrambling with a replacement table.
[0083]
The bit plane coding path generation unit 1012A divides the transform coefficient into which the signature data obtained by the signature embedding unit 1102 is embedded into code blocks of a predetermined size, and converts the code block from MSB to LSB for each code block. In order to encode each bit plane after being expanded into a plurality of bit planes, an encoding path is determined according to a predetermined rule. The arithmetic coding unit 1013A performs arithmetic coding for each coding pass generated by the bit plane coding pass generation unit 1012A to obtain coded (compressed) data. Both the bit plane coding path generation unit 1012A and the arithmetic coding unit 1013A may generate the coding path and perform the arithmetic coding thereof up to the bit plane input from the embedded bit plane input terminal 1005. The coefficient data in which the signature data is embedded and encoded is output through an output terminal 1004 and passed to the configuration on the digital watermark verification side.
[0084]
[Configuration and operation of digital watermark verification side]
The configuration and operation of the digital watermark verification side according to the fifth embodiment are the same as the configuration (FIG. 2) and operation of the digital watermark verification side according to the first embodiment.
[0085]
[Effects of Fifth Embodiment]
As described above, according to the fifth embodiment, by designating the bit plane in which the signature data is to be embedded in advance, the generated signature data is embedded before the transform coefficient is arithmetically encoded, and then the signature is generated. By performing the arithmetic coding of the transform coefficient in which the data is embedded up to the designated bit plane, the arithmetic coding process performed twice in the first embodiment can be reduced to one.
[0086]
{1-6. Sixth embodiment≫
In the configuration of the digital watermark embedding side according to the first embodiment described above, when an encoding path generated for a transform coefficient is arithmetically encoded and rate control is performed, an arithmetic code abort point is determined at a boundary of the encoding path. I was On the other hand, in the configuration of the digital watermark embedding side according to the sixth embodiment, when an arithmetic code censoring point is obtained in advance in rate control, the boundary of the bit plane is set so that the censoring point is not set in the middle of the bit plane. Rate control is performed by providing a constraint condition for setting an arithmetic code termination point only.
[0087]
[Configuration of digital watermark embedding side]
FIG. 8 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the sixth embodiment. 8, the same reference numerals are given to the same or corresponding components as those in FIG. 1 (first embodiment). The configuration of the digital watermark embedding side according to the sixth embodiment includes a rate control unit 1019 with constraints, instead of the rate control unit 1014 according to the first embodiment, and the point that the encoding path control unit 1015 is omitted. This is different from the configuration of the digital watermark embedding side of the first embodiment.
[0088]
[Operation on the digital watermark embedding side]
The operation of the configuration on the digital watermark embedding side of the sixth embodiment is the same as that of the digital watermark embedding of the first embodiment except for the operations of the rate control unit with constraint condition 1019, the signature generation unit 1101, and the arithmetic encoding unit 1013A. This is the same as the operation of the configuration on the side.
[0089]
Normally, in the rate control, the arithmetic code break point is determined at the boundary of the coding path so that the image quality of the encoded (compressed) image is optimized. However, the rate control unit 1019 with the constrained condition allows the verification side to extract all the signature data embedded in a certain bit plane, so that the arithmetic code after the encoding pass in the middle of the bit plane is not censored. , Find the arithmetic code censoring point.
[0090]
That is, on the condition that the arithmetic code censoring point is on the bit plane boundary, each coding block obtained by the arithmetic coding unit 1013 is obtained for each code block so that the code amount input from the target code amount input terminal 1003 is obtained. The arithmetic coding amount for each pass is counted, and when the target coding amount is reached, subsequent passes are truncated. By this processing, the arithmetic code censoring point in each code block is determined, and the encoding path included in the compressed arithmetic code data is determined. By applying the condition that the arithmetic code abort point is set to the bit plane boundary, the arithmetic code abort point is set at the bit plane boundary (immediately after the coding path Coding pass C) as shown in FIG. Is set. However, unlike the first embodiment, the arithmetic code censoring point obtained by the rate control is changed by the coding path control unit without considering the image quality. Nevertheless, under such conditions, the rate control can be performed so that compressed data with the optimum image quality can be obtained for the target code amount. Therefore, although the arithmetic code abort point exists at the boundary of the bit plane, the arithmetic code abort point in each code block is not always exactly the same as in FIG. Further, the rate control unit with constraint 1019 sets the bit plane closest to the LSB side among the bit planes included in the arithmetic code data after compression in each code block as the bit plane in which the signature data is embedded.
[0091]
The signature generation unit 1101 generates signature data for the transform coefficient stored in the transform coefficient storage unit 1021. The difference from the first embodiment is that the signature data is generated using the information of the bit plane in which the signature data is embedded, which is obtained by the rate control unit 1019 with the constraint condition.
[0092]
The arithmetic coding unit 1013A performs arithmetic coding for each coding pass generated by the bit plane coding pass generation unit 1012A. The difference from the first embodiment is that arithmetic coding is performed up to the coding pass determined by the rate control unit with constraint condition 1019 to obtain coded (compressed) data. In other respects, the operation of the digital watermark embedding side of the sixth embodiment is the same as the operation of the digital watermark embedding side of the first embodiment.
[0093]
[Configuration and operation of digital watermark verification side]
The configuration and operation of the digital watermark verification side of the sixth embodiment are the same as the configuration (FIG. 2) and operation of the digital watermark verification side of the first embodiment.
[0094]
[Effects of Sixth Embodiment]
As described above, according to the sixth embodiment, even when one bit plane is composed of a plurality of coding passes and arithmetically coded, the arithmetic code censoring point determined by the rate control is determined by the bit control. By performing rate control only on plane boundaries, it is possible to extract all the embedded signature data on the verification side. Usually, the arithmetic code break point is determined at the boundary of the coding path so that the image quality of the encoded (compressed) image is optimized. However, by restricting the arithmetic code break point to the bit plane boundary, Optimal image quality cannot be obtained. However, since the rate control in the encoding process can be used with constraints, the image quality is quasi-optimal (optimal under the condition that the arithmetic code break point is set at the bit plane boundary) for the target code amount. Can be obtained.
[0095]
The configuration of the digital watermark embedding side according to the sixth embodiment may be combined with the configuration of the digital watermark embedding side according to the second to fourth embodiments.
[0096]
{2. Second invention≫
{2-1. Seventh embodiment≫
[Configuration of digital watermark embedding side]
FIG. 9 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the seventh embodiment.
[0097]
As shown in FIG. 9, the configuration of the digital watermark embedding side according to the seventh embodiment receives image data input to an input terminal 2001 and data specifying an embedded bit plane input to a bit plane input terminal 2002. And ID information embedding means 2102 for embedding ID information indicating that the digital watermark is embedded in the embedded bit plane input from the input terminal 2002. The configuration of the digital watermark embedding side according to the seventh embodiment is such that, for image data in which ID information is embedded, data input from an embedded data input terminal 2003 is converted into an embedded bit plane input from an input terminal 2002. And a data embedding unit 2104 for embedding the data in the data. The image data in which the data is embedded by the data embedding unit 2104 is output through the output terminal 2004, and is passed to the configuration of the digital watermark verification side described below.
[0098]
[Configuration of Digital Watermark Verification Side]
FIG. 10 is a block diagram showing the configuration of the digital watermark verification side according to the seventh embodiment.
[0099]
As shown in FIG. 10, the configuration of the digital watermark verification side according to the seventh embodiment is to extract ID information from image data to be verified of a digital watermark input to the input terminal 2005, and to extract ID information from the extracted ID information. An ID information extracting unit 2202 for specifying a bit plane in which data is embedded is provided. Further, the configuration on the digital watermark verification side according to the seventh embodiment includes a data extracting unit 2204 that extracts data from image data. The output of the data extraction unit 2204 is output through the output terminal 2006.
[0100]
[Operation on the digital watermark embedding side]
As shown in FIG. 9, image data of a target image in which an electronic watermark is to be embedded is input to an input terminal 2001. The image data input to the input terminal 2001 is pixel data or a conversion coefficient obtained by performing frequency conversion on the pixel data.
[0101]
To the ID information embedding means 2102, a bit plane number in which a digital watermark is embedded is input through an embedded bit plane input terminal 2002. The ID information embedding means 2102 embeds predetermined ID information in the bit plane of the input bit plane number. As shown in FIG. 11, the bit plane in which the digital watermark is embedded may be different for each of the code blocks CB1 to CB8. In the example of FIG. 11, in the code block CB3, N (bits) ID information is embedded in the bit plane of the bit plane number '5' in which the digital watermark is embedded.
[0102]
However, the same bit pattern as the result of embedding the ID information may exist in a bit plane higher than the bit plane in which the ID information is embedded. If the digital watermark is verified under such conditions, it becomes impossible to distinguish which is the real ID information. Therefore, in the above case, the value of at least one bit in the corresponding bit pattern in the upper bit plane should be inverted.
[0103]
The data embedding unit 2104 receives a bit plane number in which a digital watermark is embedded through an embedded bit plane input terminal 2002. The data embedding unit 2104 embeds the data input from the embedded data input terminal 2003 in the bit plane of the bit plane number in which the digital watermark is embedded. In the example of FIG. 11, in the code block CB3, data of M (bits) is embedded in the bit plane of bit plane number '5' in which the digital watermark is embedded, following the embedded ID information.
[0104]
In FIG. 11, N (bits) ID information and M (bits) data are embedded in order from the first bit (the leftmost bit in the lower part of FIG. 11). Alternatively, a position obtained by scrambling with a replacement table can be used. In the example of FIG. 11, one-bit ID information and data are sequentially embedded for one bit of image data. However, one-bit ID information and data are embedded for a plurality of bits of image data. May be. The data size may be added to the head of the data to indicate how many bits the data has been embedded.
[0105]
Also, it is not necessary to embed ID information in a bit plane in which data is embedded, and ID information may be embedded in, for example, one bit plane higher or lower than the bit plane number input from the embedded bit plane input terminal 2002. It may be. Further, instead of embedding the ID information in one bit plane, using a pseudo random sequence or the like with a key as a seed, randomizing the bit plane in which the ID information is embedded, centering on the bit plane in which the data is embedded, ID information can be embedded in a bit plane.
[0106]
Also, by embedding the bit plane number for embedding data together with the ID information, it becomes possible to embed the ID information in an arbitrary bit plane. Referring to the example of FIG. 12, in the code block CB3, the ID information is embedded in the bit plane of the bit plane number '7', and the data is embedded in the bit plane of the bit plane number '5'. Therefore, when embedding the ID information, it is only necessary to embed the bit plane number '5' (“0101” when expressed in binary 4 bits) which is the data embedding.
[0107]
Furthermore, by embedding a plurality of bit plane numbers for embedding data together with ID information, it is possible to divide and embed data in a plurality of bit planes indicated by those bit plane numbers.
[0108]
Further, in order to compress the data amount, a process of cutting off bit planes lower than the bit plane in which ID information and data are embedded can be performed as necessary.
[0109]
After the embedding, the image data after embedding the ID information and the data is output from the image data output terminal 2004. This image data is passed to a configuration on the digital watermark verification side via a network or the like.
[0110]
[Operation on the digital watermark verification side]
As shown in FIG. 10, image data for verifying a digital watermark is input to an input terminal 2005. The image data input to the input terminal 2005 is pixel data or a conversion coefficient obtained by frequency-converting the pixel data.
[0111]
The ID information extracting means 2202 determines the embedding position of the ID information from the upper bit plane of each code block by the same method as when embedding the ID information, and extracts the ID information from the embedded position. Then, a bit plane in which the extracted ID information matches the embedded ID information is obtained, and the bit plane is determined to be the bit plane in which the data is embedded.
[0112]
However, the above description is for the case where ID information is embedded in a bit plane in which data is embedded, and in the case where ID information is embedded on the bit plane one level above or one bit below the bit plane in which data is embedded, As described above, a bit plane in which the extracted ID information matches the embedded ID information is determined, and a bit plane one level lower or one level higher than the bit plane is determined to be a bit plane in which data is embedded. .
[0113]
In addition, when ID information is dispersed and embedded in a plurality of bit planes centering on a bit plane in which data is embedded with a pseudo random sequence or the like using a key as a seed, when searching for ID information, the order from the upper bit plane is determined. In the meantime, a bit plane dispersed in the same manner as when the ID information is embedded is determined, the ID information is extracted from the bit plane, and it is checked whether the bit plane matches the embedded ID information. Can be determined.
[0114]
When the bit plane number in which the data is embedded together with the ID information is embedded, a bit plane in which the extracted ID information matches the embedded ID information is first obtained, and then the bit plane is embedded together with the ID information. Retrieve the bit plane number that has been set. Thereafter, the bit plane indicated by the bit plane number is determined to be the bit plane in which the data is embedded. Referring to the example of FIG. 12, in the code block CB3, ID information can be extracted from the bit plane of bit plane number '7', and by extracting the bit plane number embedded with the ID information, data can be extracted. It can be seen that the embedded bit plane number is “5” (“0101” when expressed in binary 4 bits).
[0115]
Further, when a plurality of bit plane numbers to be embedded together with the ID information are embedded, it is determined that data is embedded in the plurality of bit planes.
[0116]
The data extraction unit 2204 extracts data embedded in the image data from the bit plane obtained by the ID information extraction unit 2202. The extraction is performed by determining the embedding position by the same method as when embedding data, and extracting data from the embedding position. If the data size is added to the head of the data, the data size is extracted, and then the data body is extracted. The extracted data is output through an extraction result output terminal 2006.
[0117]
[Effects of Seventh Embodiment]
As described above, according to the seventh embodiment, at the time of verifying a digital watermark, even if information indicating where the digital watermark is embedded is not obtained from outside, it is possible to use the ID information embedded in the image. , It is possible to specify the bit plane in which the digital watermark is embedded. Therefore, even if a bit plane is cut off for the purpose of reducing the data amount and an image in which a digital watermark is embedded in a bit plane immediately before the cut off is decoded with an arbitrary value, the cut off bit plane is decoded. On the digital watermark verification side, the same frequency conversion is performed again to obtain a conversion coefficient, and ID information indicating that the bit plane has data embedded therein is extracted. Identified and embedded data can be extracted.
[0118]
{2-2. Eighth embodiment≫
In the configuration of the digital watermark embedding side according to the seventh embodiment described above, the digital watermark is always embedded using the same bit pattern as the ID information indicating the bit plane in which the digital watermark is embedded. On the other hand, in the configuration of the digital watermark embedding side according to the eighth embodiment, the same random number as the random number generated in the configuration of the digital watermark verification side is generated, and the random number is used as ID information. Can be used as ID information.
[0119]
[Configuration of digital watermark embedding side]
FIG. 13 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the eighth embodiment. In FIG. 13, the same or corresponding components as those in FIG. 9 (seventh embodiment) are denoted by the same reference numerals. As shown in FIG. 13, the configuration of the digital watermark embedding side of the eighth embodiment has a random number generation unit 2112 that receives a seed input to a seed input terminal 2008 and generates a random number. This is different from the configuration of the digital watermark embedding side of the embodiment (FIG. 9).
[0120]
[Configuration of Digital Watermark Verification Side]
FIG. 14 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side that performs the digital watermark detection method according to the eighth embodiment. 14, the same reference numerals are given to the same or corresponding components as those in FIG. 10 (seventh embodiment). As shown in FIG. 14, the configuration of the digital watermark verification side according to the eighth embodiment has a random number generation unit 2112 that receives a seed input to a seed input terminal 2009 and generates a random number. This is different from the configuration on the digital watermark verification side of the embodiment (FIG. 10).
[0121]
[Operation on the digital watermark embedding side]
As shown in FIG. 13, the random number generation unit 2112 receives a seed for generating a random number from a seed input terminal 2008 and generates a random number. When embedding the ID information in the bit plane in which the digital watermark is embedded, the ID information embedding unit 2102 embeds the ID information using the random number generated by the random number generation unit 2112 as a bit pattern of the ID information. By using random numbers in this way, different ID information is embedded for each code block. Except for the above points, the operation of the digital watermark embedding side in the eighth embodiment is the same as the operation of the digital watermark embedding side in the seventh embodiment.
[0122]
[Operation on the digital watermark verification side]
As shown in FIG. 14, a random number generation unit 2112 receives a seed for generating a random number from a seed input terminal 2009 and generates a random number. The same seed as the digital watermark embedding side is input to the digital watermark verification side, and the same random number is generated. The ID information extracting means 2202 extracts ID information from the upper bit plane of each code block, and obtains a bit plane in which the extracted ID information matches the embedded ID information. Used as a bit pattern of ID information. Of course, the bit pattern used is different for each code block, but is the same bit pattern as the digital watermark embedding side. Except for the above, the operation of the digital watermark verification side in the eighth embodiment is the same as the operation of the digital watermark verification side in the seventh embodiment.
[0123]
[Effects of Eighth Embodiment]
As described above, according to the eighth embodiment, at the time of verifying a digital watermark, even if information on the position where the digital watermark is embedded is not obtained from the outside, the ID information embedded in the image can be used. The bit plane in which the digital watermark is embedded can be specified. Therefore, even if a bit plane is cut off for the purpose of reducing the data amount and an image in which a digital watermark is embedded in a bit plane immediately before the cut off is decoded with an arbitrary value, the cut off bit plane is decoded. On the digital watermark verification side, the same frequency conversion is performed again to obtain a conversion coefficient, and ID information indicating that the bit plane has data embedded therein is extracted. Identified and embedded data can be extracted.
[0124]
According to the eighth embodiment, when embedding ID information in order to specify a bit plane in which a digital watermark is embedded, a random number generated in the same manner on the digital watermark embedding side and the digital watermark verification side is used. It can be used as a bit pattern of information. Therefore, even in the same image, the embedded ID information does not always have the same value, and it is possible to prevent a malicious third party from easily specifying the ID information.
[0125]
{2-3. Ninth embodiment≫
The configuration of the digital watermark verification side according to the ninth embodiment is to generate signature data from image data in order to detect tampering, and to embed the signature data as a digital watermark, in a bit plane in which the signature data is embedded. In addition to embedding ID information indicating that the signature data has been embedded, it indicates which part of the image data that was targeted when obtaining the signature data in order to know from which part of the image data the signature data was generated at the time of detection. Embed information at the same time.
[0126]
[Configuration of digital watermark embedding side]
FIG. 15 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the ninth embodiment. 15, the same reference numerals are given to the same or corresponding components as those in FIG. 9 (seventh embodiment).
[0127]
As shown in FIG. 15, the configuration on the digital watermark embedding side of the ninth embodiment receives image data input to an input terminal 2001 and data specifying an embedded bit plane input to a bit plane input terminal 2002. And ID information embedding means 2102 for embedding ID information indicating that the digital watermark is embedded in the embedded bit plane input from the input terminal 2002. The configuration of the digital watermark embedding side according to the ninth embodiment includes a signature generation information embedding unit 2106 for embedding information indicating which part of the image data subjected to hash generation when obtaining the signature data. Further, the configuration of the digital watermark embedding side of the ninth embodiment includes a signature generation unit 2108 that generates signature data from image data, and a signature embedding unit 2110 that embeds the signature data obtained from the signature generation unit 2108 into image data. Have. The embedded image data generated by the signature embedding unit 2110 is output through the output terminal 2004. The output image data is passed, for example, via a network to a configuration on the digital watermark verification side described below.
[0128]
[Configuration of Digital Watermark Verification Side]
FIG. 16 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side according to the ninth embodiment. 16, the same reference numerals are given to the same or corresponding components as those in FIG. 10 (seventh embodiment).
[0129]
As shown in FIG. 16, the configuration of the digital watermark verification side of the ninth embodiment extracts ID information from image data input through an input terminal 2005, and extracts a bit in which signature data is embedded from the extracted ID information. An ID information extracting unit 2202 for specifying a plane and a signature extracting unit 2206 for extracting signature data embedded on the embedding side are provided. The configuration of the digital watermark verification side according to the ninth embodiment includes a signature generation information extraction unit 2208 that extracts information indicating which part of image data subjected to hash generation at the time of obtaining signature data, Signature generation means 2210 for generating signature data from image data based on the signature generation information. Further, the configuration on the digital watermark verification side according to the ninth embodiment includes a signature comparison unit 2212 that compares the extracted signature data with the generated signature data. The comparison result output from the signature comparison generation unit 2210 is output through the output terminal 2007.
[0130]
[Operation on the digital watermark embedding side]
As shown in FIG. 15, image data of a target image in which an electronic watermark is embedded is input to an input terminal 2001. The image data input to the input terminal 2001 is pixel data or a conversion coefficient obtained by performing frequency conversion on the pixel data.
[0131]
An ID information embedding unit 2102 receives a bit plane number in which a digital watermark is embedded from an embedded bit plane input terminal 2002, and embeds predetermined ID information in the bit plane. FIG. 17 is an explanatory diagram of the digital watermark embedding method according to the ninth embodiment. In FIG. 17, code blocks in which a digital watermark is embedded are only code blocks CB2, CB4, CB6, and CB8 having even-numbered code block numbers, and the bit planes in which the digital watermark is embedded may be different for each code block. . In the example of FIG. 17, in the code block CB2, N (bits) ID information is embedded in the bit plane of the bit plane number '6' in which the digital watermark is embedded. However, if the same bit pattern as the result of embedding the ID information exists in a bit plane higher than the bit plane in which the ID information is embedded, the same processing as in the seventh embodiment is performed.
[0132]
The signature generation information embedding means 2106 receives the bit plane number in which the digital watermark is embedded from the embedding bit plane input terminal 2002, and stores in the bit plane which part of the image data that has been subjected to hash generation when obtaining the signature data. Embed information indicating whether or not it was.
[0133]
More specifically, in a code block that is not a target for embedding the signature data, which part of the data for which the hash is to be generated when obtaining the signature data is identified when the digital watermark verification side obtains the signature data. Therefore, of the image data used for hash generation, the lowest bit plane number is embedded in the bit plane to be embedded. For example, FIG. 17 shows an example in which a hash is obtained from the data of the code blocks CB1 and CB2, signature data is generated, and embedded in the code block CB2. Since the code block CB2 embeds the ID information together with the signature in the bit plane of the bit plane number '6', the digital watermark verification side extracts the ID information to determine the bit plane in which the signature data is embedded. Image data used for hash generation when generating signature data (all bits of bit plane numbers '7' to '10' and bit planes of bit plane number '6' can be determined. , All bits not used to embed the signature data). However, since the ID information is not embedded in the code block CB1, the digital watermark verification side cannot identify which part is used for hash generation at the time of signature generation. Therefore, as shown in FIG. 17, when a bit plane with a bit plane number “3” or less is cut off and a hash is generated using bit plane data with a bit plane number “4” or more, a code not to be embedded with signature data is used. In the block CB1, of the data used for hash generation, the lowest bit plane number “4” (“0100” when expressed in binary 4 bits) is stored in the bit plane to which the data of the codebook CB2 is embedded. Embed it.
[0134]
The signature generation unit 2108 generates signature data for the image data. The bit plane number in which the digital watermark is embedded is input from the embedded bit plane input terminal 2002, and the signature data is obtained from the image data excluding the bits for embedding the generated signature data. Specifically, in the code blocks CB1 and CB2 of FIG. 17, all the bit planes of the bit plane numbers '4' to '10' in the code block CB1 and the bit plane numbers '7' to '10' in the code block CB2 The hash value obtained by a hash function such as SHA1 or the hash value using all bits not used for embedding the signature data among all the bit planes of the Data encrypted by RSA or the like, a part of a hash value, or the like is used as signature data.
[0135]
The signature embedding unit 2110 receives the bit plane number in which the digital watermark is embedded from the embedding bit plane input terminal 2002, and embeds the signature data obtained from the signature generation unit 2101 in the bit plane. In the example of FIG. 17, in the code block CB2, for the bit plane of the bit plane number '6' in which the digital watermark is embedded, the ID data and the signature generation information which have already been embedded are followed by the signature data of M (bits). Is embedded.
[0136]
In FIG. 17, ID information, signature generation information, and signature data are embedded in order from the first bit, but the bit positions to be embedded can be scrambled by a pseudo random sequence or a replacement table. Also, one bit of ID information, signature generation information, and signature data are embedded in order for one bit of image data, but one bit of ID information, signature generation information, and signature are embedded for a plurality of bits of image data. Data may be embedded.
[0137]
Further, similarly to the seventh embodiment, it is not always necessary to embed ID information in the same bit plane as signature generation information and signature data. Further, the ID information, the signature generation information, and the signature data may be dispersedly embedded in a plurality of bit planes.
[0138]
In order to compress the data amount, similarly to the seventh embodiment, the bit planes lower than the bit plane in which the ID information, the signature generation information, and the signature data are embedded (for example, the bit plane number in the code block CB2 in FIG. 17) It is also possible to perform a process of cutting off bit planes that are not used for generation of a hash (for example, bit plane number “3” or less in code block CB1 in FIG. 17) that are not used for hash generation.
[0139]
The image data after the ID information, the signature generation information, and the signature data output from the signature embedding unit 2110 are embedded are output through the image data output terminal 2004.
[0140]
[Operation of Digital Watermark Verification Example]
As shown in FIG. 16, image data for verifying a digital watermark is input to an input terminal 2005. The image data input to the input terminal 2005 is pixel data or a conversion coefficient obtained by frequency-converting the pixel data.
[0141]
The ID information extracting unit 2202 determines the embedding position of the ID information from the upper bit plane in the code block in which the digital watermark is to be embedded by the same method as when the ID information is embedded, and extracts the ID information from the embedding position. Then, a bit plane in which the extracted ID information matches the embedded ID information is obtained, and the bit plane is determined to be the bit plane in which the signature generation information and the signature data are embedded.
[0142]
Note that even if the ID information is embedded in a bit plane different from the signature generation information or the signature data, or if the ID information, the signature generation information, and the signature data are dispersed and embedded in different bit planes, the seventh The bit plane in which the signature generation information and the signature data are embedded can be obtained as in the embodiment.
[0143]
The signature extracting unit 2206 extracts the signature data embedded in the image data from the bit plane obtained by the ID information extracting unit 2202. The extraction is performed by determining the embedding position by the same method as that at the time of embedding the signature data, and extracting the signature data from the embedding position. If the hash value or the like is encrypted on the digital watermark embedding side, the encryption is decoded here, the original data is restored, and the data is passed to the signature comparison unit 2212.
[0144]
The signature generation information extraction unit 2208 extracts the signature generation information embedded in the image data from the bit plane obtained by the ID information extraction unit 2202. For extraction, determine the embedding position using the same method as when embedding the signature generation information, and extract information indicating which part of the image data used in the generation of the hash when obtaining the signature data from the embedding position Do with. The extracted signature generation information is passed to the signature generation unit 2210.
[0145]
The signature generation unit 2210 generates signature data for the image data based on the information obtained from the ID information extraction unit 2202 and the signature generation information extraction unit 2208 by the same method as that on the digital watermark embedding side. That is, for a code block in which signature data is embedded, based on the bit plane obtained by the ID information extraction unit 2202, image data that has been subjected to hash generation when obtaining signature data can be determined. For the code block in which no data is embedded, the signature data is similarly obtained from the information obtained by the signature generation information extraction unit 2208 (the lowest bit plane number of the image data subjected to hash generation). At this time, it is possible to determine the image data that has been subjected to hash generation.
[0146]
However, if encryption or the like is used on the digital watermark embedding side, there is no need to perform encryption here, and the signature extraction unit 2206 decodes the encryption. The generated signature data is passed to the signature comparison unit 2212.
[0147]
The signature comparison unit 2212 compares the signature data extracted by the signature extraction unit 2206 with the signature data generated by the signature generation unit 2210. For example, if both signature data match, there is no tampering, and if they do not match, there is tampering, and the result is output through the comparison result output terminal 2007.
[0148]
[Effects of Ninth Embodiment]
As described above, according to the ninth embodiment, ID information indicating a bit plane in which a digital watermark is embedded and information relating to the position of data to be hashed when obtaining signature data are obtained. By embedding the signature generation information shown in the image, even if the information cannot be obtained from the outside, the bit plane in which the signature data is embedded and the image data used for hash generation when obtaining the signature data are specified. can do. Therefore, in order to reduce the amount of data, even if an image in which a bit plane that is not used for signature generation or embedding of signature data is cut off is decoded with an arbitrary value, the cut-off bit plane is decoded with an arbitrary value. On the watermark verification side, the same frequency conversion is performed again to obtain a conversion coefficient, and furthermore, signature data and signature generation information are embedded by extracting ID information indicating a bit plane in which the signature data and signature generation information are embedded. The specified bit plane can be specified, and the embedded signature data can be extracted. Furthermore, by extracting the signature generation information indicating which part of the data for which the hash is to be generated when obtaining the signature data, it is also possible to determine from which part of the image data the signature data was generated. The signature data can be generated in the same manner as the side. As a result, a correct tampering detection result can be obtained.
[0149]
{3. Third invention≫
{3-1. Tenth embodiment≫
[Configuration of digital watermark embedding side]
FIG. 18 is a block diagram showing a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the tenth embodiment.
[0150]
As shown in FIG. 18, the configuration of the digital watermark embedding side of the tenth embodiment includes a blocking unit 3100 that divides image data input to the input terminal 3001 into one or a plurality of blocks. Further, the configuration of the digital watermark embedding side according to the tenth embodiment receives the image data blocked by the blocking unit 3100 and the data specifying the embedded bit plane input through the embedded bit plane input terminal 3003, and performs the blocking. There is an upper bit plane evaluation unit 3101 for examining the upper bit plane of the image data obtained. Furthermore, the configuration of the digital watermark embedding side according to the tenth embodiment includes image data blocked by the blocking unit 3100, data specifying an embedded bit plane input through the embedded bit plane input terminal 3003, and upper bit plane evaluation. It receives the evaluation result output from the means 3101 and the data input through the embedded data input terminal 3002, and embeds the data input from the embedded data input terminal 3002 at a position based on the evaluation result of the designated bit plane of the image data. An embedding unit 3103 is provided. Image data after data embedding output from the embedding unit 3103 is output through an output terminal 3004.
[0151]
FIG. 19 is a block diagram showing an example in which the configuration (digital watermark embedding device) of the digital watermark embedding side that performs the digital watermark embedding method according to the tenth embodiment is applied to a JPEG2000 compressor. In FIG. 19, the same or corresponding components as those in FIG. 18 are denoted by the same reference numerals.
[0152]
As shown in FIG. 19, in addition to the configuration of FIG. 18, the JPEG2000 compressor includes a color conversion unit 3050 that converts a color space when input image data is color image data, and performs a tile division of the input image data. It has a tile dividing means 3054 for performing a wavelet transform, a wavelet transform means 3051 for performing a wavelet transform, a quantizing means 3052 for quantizing a wavelet coefficient, and an encoding means 3053 for encoding a coefficient in which a digital watermark is embedded. The bit stream encoded by the encoding means 3053 is output through an embedded image bit stream output terminal 3005.
[0153]
[Operation on the digital watermark verification side]
FIG. 22 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side that performs the digital watermark detection method according to the tenth embodiment.
[0154]
As shown in FIG. 22, the configuration on the digital watermark verification side according to the tenth embodiment includes a blocking unit 3200 that divides image data input through the input terminal 3010 into blocks. Further, the configuration of the digital watermark verification side according to the tenth embodiment is configured such that the image data blocked by the blocking means 3200 and the data which is input via the extraction bit plane input terminal 3013 and specifies the bit plane to be extracted are included. An upper bit plane evaluation unit 3201 for checking the upper bit plane of the received and blocked image data is provided. Further, the configuration of the digital watermark verification side according to the tenth embodiment includes the image data blocked by the blocking unit 3200, the data specifying the extraction bit plane input through the extraction bit plane input terminal 3013, and the upper bit plane. Extraction means 3203 is provided for receiving the evaluation result output from the evaluation means 3201 and extracting data from the position based on the evaluation result in the designated extraction bit plane for the input image data. The extraction result output from the extraction means 3203 is output through an output terminal 3012.
[0155]
FIG. 23 is a block diagram illustrating an example in which the configuration (digital watermark detection device) on the digital watermark verification side that performs the digital watermark detection method according to the tenth embodiment is applied to a JPEG2000 decompressor. 23, components that are the same as or correspond to those in FIG. 22 are given the same reference numerals. As shown in FIG. 23, when applied to a JPEG2000 decompressor, a decoding unit 3204 that decodes a JPEG2000 bit stream and outputs wavelet coefficients and block information is provided instead of the blocking unit 3200 in FIG.
[0156]
[Operation on the digital watermark embedding side]
As shown in FIG. 18, image data of a target image in which a digital watermark is to be embedded is input to an input terminal 3001. When embedding a digital watermark directly into pixel data, the input data is pixel data. In the case of a digital watermark in a frequency space, input data is wavelet coefficients or DCT coefficients.
[0157]
Image data input to input terminal 3001 is passed to blocking means 3100. The blocking unit 3100 divides the input image data into blocks of M × N size. In the case of a digital watermark on pixel data, the block is an M × N pixel block. In the case of a digital watermark on a frequency space, the block is a block of M × N coefficients on a coefficient space after wavelet transform or DCT. This block may be constituted by a coefficient group having the same position in the pixel space and having a different frequency, or may be constituted by a coefficient group having a close position in the pixel space and having the same frequency.
[0158]
The upper bit plane evaluation unit 3101 labels image data in ascending order of the effect on image quality. Normally, changes made to smooth regions (regions with only low frequency components) are more perceived than changes made to complex regions (regions with high frequency components nearby), so complex regions Labeling to give high priority to the neighborhood.
[0159]
FIG. 20 is an explanatory diagram of the digital watermark embedding method according to the tenth embodiment. In FIG. 20, coefficients 1 to 8 are arranged in order from the left side in the horizontal direction, and bit plane numbers '0' to '10' are arranged in order from the bottom in the vertical direction. In FIG. 20, the bit plane with bit plane number '5' is a bit plane used for information embedding, and black portions are coefficient bits used for conventional information embedding. In FIG. 20, the shaded portion is a coefficient bit having a non-zero value in the upper bit plane, and the cross-hatched portion is a non-zero coefficient bit in which the upper bit plane is 0.
[0160]
For example, labeling is performed for each image data unit according to the level of data that is higher than the embedded bit plane (for example, the bit plane with the bit plane number “5” in FIG. 20). In this case, the labels correspond to the order when sorting is performed based on the data level (for example, in FIG. 20, the order of coefficients 2, 5, 8, 1). In addition, labeling is performed on image data having a value of 0 in the order in which non-zero image data exists around the range of the value 0.
[0161]
This can be expressed as follows. Assuming that the data of the bit plane higher than the embedded bit plane is a (x, y), labeling is performed on image data with | a (x, y) |> 0 in descending order of a (x, y). Do. Further, for image data where | a (x, y) | = 0, the absolute sum of the values of the image data in the vicinity of 8, ie,
(| 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) |)
Labeling is performed in descending order of.
[0162]
The embedding unit 3103 performs embedding in the order in which the upper bit plane evaluation unit 3101 performs labeling. In the embedding, a 1-bit embedding message is sequentially embedded in each image data in the order in which the labeling is performed. X image data is used for embedding an X-bit message. Further, the size of the message may be embedded at the head of the message. In this case, X + Y (Y is the number of bits required to embed the message length) image data is used.
[0163]
FIG. 21 is an explanatory diagram of another example of the digital watermark embedding method according to the tenth embodiment. 21 shows an example in which coefficients 1 to 8 are arranged in order from the left side in the horizontal direction, and bit plane numbers '0' to '10' are arranged in order from the bottom in the vertical direction. In FIG. 21, the bit plane with bit plane number '5' is a bit plane used for information embedding, and the black solid portions are coefficient bits used for conventional information embedding. In FIG. 21, the shaded portion is a coefficient bit having a non-zero value in the upper bit plane, and the cross-hatched portion is a non-zero coefficient bit in which the upper bit plane is 0. Further, near the center of FIG. 21, embedded bit planes of each group (after sorting by the value of the upper bit plane) are shown, and from the left to the right, coefficient bits having a large value and coefficient bits having a small value are arranged from left to right. It is drawn. FIG. 21 shows a case where an image or an embedding coefficient is divided into a plurality of groups and one bit is embedded in each group unit. In FIG. 21, the method of dividing into a plurality of groups is such that a large value coefficient is equally allocated to each group.
[0164]
FIG. 21 illustrates a method of calculating 1-bit information based on a plurality of bits of information and embedding the 1-bit information obtained by the calculation. As shown in FIG. 21, for example, when data of a group for embedding 1 bit is “0101” (4 bits), an exclusive OR (XOR) of the data of a plurality of bits is calculated. In this case, the result of the XOR operation is 0. This operation result 0 is compared with a value (1 bit) to be embedded in this group. To change.
[0165]
The signature data is embedded in the image data in the order of the labeling having the least influence on the image quality obtained as described above, and the image data in which the signature data is embedded is passed through the image data output terminal 3004 to the embedded image. Output through the data output terminal.
[0166]
[Operation on the digital watermark verification side]
As shown in FIG. 22, image data of a target image for which a digital watermark is to be verified is input to an input terminal 3010. When a digital watermark is directly embedded in pixel data, input data is pixel data. In the case of a digital watermark in a frequency space, input data is wavelet coefficients or DCT coefficients. Image data input to input terminal 3010 is passed to blocking means 3200. The blocking unit 3200 divides the input image data into M × N size blocks. In the case of a digital watermark on pixel data, the block is an M × N pixel block. In the case of a digital watermark on a frequency space, the block is a block of M × N coefficients on a coefficient space after wavelet transform or DCT.
[0167]
Using the bit plane information input from the extracted bit plane input terminal 3013, the upper bit plane evaluation unit 3201 labels the image data in the same manner as the upper bit plane evaluation unit 3101 (FIG. 18) on the digital watermark embedding side. A one-bit message is extracted from one coefficient in the labeling order. If the message length is embedded at the beginning of the message, the message length is extracted before extracting the message body. The message extracted by the extracting means 3203 is output through an extraction result output terminal 3012.
[0168]
[Effects of Tenth Embodiment]
As described above, according to the tenth embodiment, the embedded data can be embedded in a portion having little influence on the image quality, so that the image quality of the image in which the digital watermark is embedded can be improved. In addition, the digital watermark verification side detects the data embedding position using the information of the bit plane higher than the bit plane in which the digital watermark is embedded. At the stage when the bit plane is obtained, the digital watermark can be extracted.
[0169]
{3-2. Eleventh embodiment≫
[Configuration of digital watermark embedding side]
FIG. 24 is a block diagram showing a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the eleventh embodiment. 24, components that are the same as or correspond to those in FIG. 18 (the tenth embodiment) are given the same reference numerals. As shown in FIG. 24, the configuration of the digital watermark embedding side of the eleventh embodiment is different from the digital watermark embedding side of the tenth embodiment in that a block determination unit 3102 and a zero block marking unit 3104 are provided. (FIG. 18).
[0170]
[Configuration of Digital Watermark Verification Side]
FIG. 26 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side that performs the digital watermark detection method according to the eleventh embodiment. 26, the same reference numerals are given to the same or corresponding components as those in FIG. 22 (tenth embodiment). As shown in FIG. 26, the configuration of the digital watermark verification side of the eleventh embodiment differs from the configuration of the digital watermark verification side of the tenth embodiment (FIG. 22) in having a block determination unit 3202. I do.
[0171]
[Operation on the digital watermark embedding side]
As shown in FIG. 24, image data of a target image in which an electronic watermark is embedded is input to an input terminal 3001. When embedding a digital watermark directly into pixel data, the input data is pixel data. In the case of a digital watermark in a frequency space, input data is wavelet coefficients or DCT coefficients.
[0172]
Image data input to input terminal 3001 is passed to blocking means 3100. The blocking unit 3100 divides the input image data into blocks of M × N size. In the case of a digital watermark on pixel data, the block is an M × N pixel block. In the case of a digital watermark on a frequency space, the block is a block of M × N coefficients on a coefficient space after wavelet transform or DCT. This block may be constituted by a coefficient group having the same position in the pixel space and having a different frequency, or may be constituted by a coefficient group having a close position in the pixel space and having the same frequency.
[0173]
The block determination unit 3102 scans a bit plane specified by data input from the embedded bit plane input terminal 3003 in block units. As a result of the scanning, an all0 (all 0) block in which the data of the bit plane is all 0 (zero) is marked.
[0174]
The upper bit plane evaluation unit 3101 evaluates the upper bit plane and performs labeling on the image data in ascending order of the effect on the image quality. Normally, changes made to smooth regions (regions with only low frequency components) are more perceived than changes made to complex regions (regions with high frequency components nearby), so complex regions Labeling to give high priority to the neighborhood. The labeling method is the same as in the case of the tenth embodiment.
[0175]
The embedding unit 3103 includes a message for image data that belongs to a block that has not been determined to be an all0 block by the block determination unit 3102, and that is determined by the upper bit plane evaluation unit 3101 to have significant data in the upper bit plane. Perform embedding.
[0176]
If the message is larger than the number of image data under the above conditions, furthermore, the data belonging to the block determined to be the all0 block by the block determination unit 3102 and significant data in the upper bit plane is determined by the upper bit plane evaluation unit 3101. The message is also embedded in the determined image data. The embedding position of the message is determined before embedding the message.
[0177]
The zero block marking unit 3104 performs marking on the all0 block in which the data of the embedded bit plane is all 0 in the block in which the message is embedded. The marking is performed by setting at least one image data of a portion not used for embedding the message to 1 on the bit plane in which the message of the block is embedded. The image data set to 1 may not be used for embedding a message, and may have a large evaluation value by the upper bit plane evaluation unit 3101.
[0178]
FIG. 25 is a block diagram illustrating another example of the configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the eleventh embodiment. The zero block marking unit 3104 performs marking on all blocks in which a message is to be embedded. Marking is performed by setting at least one image data of a portion not used for embedding a message to 1 on a bit plane in which a message of a block is embedded. The image data set to 1 may not be used for embedding a message, and may have a large evaluation value by the high-order bit plane evaluation unit. In the case of embedding a signature or the like, it is necessary to calculate a signature value after performing marking. In that case, the configuration is as shown in FIG.
[0179]
[Operation on the digital watermark verification side]
As shown in FIG. 26, the block determination unit 3202 and the upper bit plane evaluation unit 3201 perform block marking in the same manner as on the digital watermark embedding side. The extracting unit 3203 extracts the message from the image data in the same manner as the method for determining the embedding position on the signature embedding side.
[0180]
The digital watermark embedding side avoids embedding in a block where bit plane data is 0, and the digital watermark verification side avoids extracting a block where bit plane data is 0. The zero block marking means 3104 performs marking in order to synchronize the embedding position of the message between the embedding side and the verification side, so that the state of the block where the bit plane data is 0 does not change between the embedding side and the verification side. The operation of the digital watermark verification side according to the eleventh embodiment other than the above is the same as the operation of the digital watermark verification side according to the tenth embodiment.
[0181]
[Effects of Eleventh Embodiment]
According to the eleventh embodiment, since the embedding in the zero bit plane is avoided, the coding efficiency can be improved.
[0182]
{3-3. Twelfth embodiment≫
[Configuration of digital watermark embedding side]
FIG. 27 is a block diagram illustrating a configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the twelfth embodiment. In FIG. 27, the same or corresponding components as those in FIG. 18 (the tenth embodiment) are denoted by the same reference numerals. As shown in FIG. 27, the configuration of the digital watermark embedding side according to the twelfth embodiment includes an embedding coefficient determining unit 3301 that determines an embedding target coefficient from an embedding bit plane and image data, and stores the determined embedding coefficient. And an embedding unit 3103 for embedding the embedding data in the input image data.
[0183]
[Configuration of Digital Watermark Verification Side]
FIG. 28 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side that performs the digital watermark detection method according to the twelfth embodiment. In FIG. 28, the same or corresponding components as those in FIG. 22 (the tenth embodiment) are denoted by the same reference numerals. As shown in FIG. 28, the configuration of the digital watermark verification side according to the twelfth embodiment includes an embedding coefficient determination unit 3311 that determines an embedding target coefficient from an embedding bit plane and image data, and stores the determined embedding coefficient. And an extraction unit 3203 for extracting an embedded image from image data.
[0184]
[Operation on the digital watermark embedding side]
As shown in FIG. 27, the embedding coefficient determination unit 3301 determines an embedding position based on the input embedding bit plane information. As a determination method, the method of the upper bit plane evaluation unit 3101 (FIGS. 18 and 24) or the block determination unit 3102 (FIG. 24) of the tenth and eleventh embodiments may be used.
[0185]
The embedding position storage means 3302 stores the embedding coefficient determined by the embedding coefficient determining means 3301.
[0186]
The embedding unit 3103 embeds information in the bit plane input from the embedding bit plane input terminal 3003 with respect to the coefficient determined by the embedding coefficient determination 3301.
[0187]
FIG. 29 is an explanatory diagram of the digital watermark embedding method according to the twelfth embodiment. In FIG. 29, coefficients 1 to 8 are arranged in order from the left side in the horizontal direction, and bit plane numbers '0' to '10' are arranged in order from the bottom in the vertical direction. In FIG. 29, the bit plane of bit plane number '5' is a bit plane used for information embedding, and black portions are coefficient bits used for conventional information embedding. In FIG. 29, the shaded portions are bit planes (parts used in addition to information embedding) of the coefficients used for embedding which are lower than the embedding bit plane.
[0188]
FIG. 30 is an explanatory diagram of another example of the digital watermark embedding method according to the twelfth embodiment. In FIG. 30, coefficients 1 to 8 are arranged in order from the left side in the horizontal direction, and bit plane numbers '0' to '10' are arranged in order from the bottom in the vertical direction. In FIG. 30, the bit planes with bit plane numbers “0”, “4”, and “7” are bit planes used for information embedding, and black-filled portions are coefficient bits used for conventional information embedding. . In FIG. 30, the shaded portion is a bit plane lower than the embedding bit plane of the coefficient used for embedding (a portion used in addition to embedding information).
[0189]
As shown in FIG. 29 or FIG. 30, the coefficients determined by the embedding coefficient determination means 3301 and the coefficients actually used for embedding are acquired from the embedding position storage means 3302, and the coefficients on the LSB side of the embedding bit plane are obtained. The information is embedded in the bit plane.
[0190]
The portion below the bit plane in which the digital watermark is embedded is set to all 0 (all0), all 1 (all1), or an intermediate value so as to minimize the error value from the original coefficient value, or the data is embedded by embedding. If you did not change it, leave it alone. Further, when all the bits are set to zero (all0) or all ones (all1), the embedding position is easily determined by evaluating those values, and thus the lower bits may be filled (filled) with a random value. In this case, since the data embedding capacity is wasted, information is embedded in lower bits.
[0191]
In the case of a digital watermark for falsification detection, signature data may be embedded in the bit plane input from the embedded bit plane input terminal 3003, and the LSB side may be used for embedding a message. At the time of digital watermark verification, the message may be embedded in the bit plane order so as to support progressive transmission in units of one bit plane. Except for the points described above, the operation of the digital watermark embedding side of the twelfth embodiment is the same as the operation of the digital watermark embedding side of the tenth and eleventh embodiments.
[0192]
[Operation on the digital watermark verification side]
As shown in FIG. 28, the embedding coefficient determination unit 3311 determines the embedding position based on the input detection bit plane information. As the determination method, the method of the upper bit plane evaluation unit 3201 (FIG. 22) in the tenth embodiment or the method of the block determination unit 3202 (FIG. 26) in the eleventh embodiment may be used.
[0193]
The embedding position storage unit 3312 stores the embedding coefficient determined by the embedding coefficient determination unit 3311.
[0194]
The extracting unit 3203 extracts information from the determined coefficient. Also, a coefficient determined by the embedding coefficient determining unit 3311 and a coefficient actually used for extraction is obtained from the embedding position storage unit 3312, and information is extracted from a bit plane on the LSB side of the extracted bit plane. (See FIGS. 29 and 30). The operation of the digital watermark verification side according to the twelfth embodiment other than the above is the same as the operation of the digital watermark verification side according to the tenth and eleventh embodiments.
[0195]
[Effects of Twelfth Embodiment]
As described above, according to the twelfth embodiment, when information is embedded in the bit plane between the MSB and the LSB, the information can be embedded by embedding the information in the data of the lower bit plane. The amount can be increased dramatically.
[0196]
≪4. Other forms of use≫
The configurations of the first to twelfth embodiments can be configured by a computer system. In this case, the digital watermark embedding method and the digital watermark detection method in each of the above embodiments can be executed according to an application program installed in the computer system. As a method of installing the application program, there are methods such as installation from a storage medium on which the installation program is recorded and download via the Internet.
[0197]
Since the configurations of the first to twelfth embodiments can be configured by a computer system, it is also possible to provide a system that combines the functions of some configurations of the first to twelfth embodiments. It is possible.
[0198]
【The invention's effect】
According to the first aspect, even when each bit plane is composed of a plurality of encoding passes and is arithmetically encoded, all of the embedded signature data can be taken out on the verification side.
[0199]
According to the second aspect, when verifying a digital watermark, it is possible to specify the bit plane in which the digital watermark is embedded, even if information indicating where the digital watermark is embedded is not obtained from outside. . Therefore, it is possible to specify the bit plane in which the digital watermark is embedded, and to extract the embedded data.
[0200]
Further, according to the third aspect, since the embedded data can be embedded in a portion where the influence of the image quality is small, the image quality can be improved.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side that executes a digital watermark embedding method according to a first embodiment of the first invention.
FIG. 2 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side according to the first to sixth embodiments of the first invention;
FIGS. 3A and 3B are explanatory diagrams of an encoding path control method according to the first embodiment of the first invention. FIGS.
FIG. 4 is a block diagram showing a configuration (digital watermark embedding device) of a digital watermark embedding side that performs a digital watermark embedding method according to a second embodiment of the first invention.
FIG. 5 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side for performing a digital watermark embedding method according to a third embodiment of the first invention.
FIG. 6 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side that executes a digital watermark embedding method according to a fourth embodiment of the first invention.
FIG. 7 is a block diagram showing a configuration (digital watermark embedding device) of a digital watermark embedding side that performs a digital watermark embedding method according to a fifth embodiment of the first invention.
FIG. 8 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side for performing a digital watermark embedding method according to a sixth embodiment of the first invention.
FIG. 9 is a block diagram illustrating a configuration (digital watermark embedding device) on a digital watermark embedding side that performs a digital watermark embedding method according to a seventh embodiment of the second invention.
FIG. 10 is a block diagram showing a configuration (digital watermark detection device) on a digital watermark verification side for implementing a digital watermark detection method according to a seventh embodiment of the second invention.
FIG. 11 is an explanatory diagram of a digital watermark embedding method according to a seventh embodiment of the second invention.
FIG. 12 is an explanatory diagram of another example of the digital watermark embedding method according to the seventh embodiment of the second invention.
FIG. 13 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side for performing a digital watermark embedding method according to an eighth embodiment of the second invention.
FIG. 14 is a block diagram illustrating a configuration (digital watermark detection device) on a digital watermark verification side that performs a digital watermark detection method according to an eighth embodiment of the second invention.
FIG. 15 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side that executes a digital watermark embedding method according to a ninth embodiment of the second invention.
FIG. 16 is a block diagram showing a configuration (digital watermark detection device) on a digital watermark verification side for implementing a digital watermark detection method according to a ninth embodiment of the second invention.
FIG. 17 is an explanatory diagram of a digital watermark embedding method according to a ninth embodiment of the second invention.
FIG. 18 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side that performs a digital watermark embedding method according to a tenth embodiment of the third invention.
FIG. 19 is a block diagram showing an example in which a configuration (digital watermark embedding device) on the digital watermark embedding side that performs a digital watermark embedding method according to a tenth embodiment of the third invention is applied to a JPEG2000 compressor.
FIG. 20 is an explanatory diagram of a digital watermark embedding method according to a tenth embodiment of the third invention.
FIG. 21 is an explanatory diagram of another example of the digital watermark embedding method according to the tenth embodiment of the third invention.
FIG. 22 is a block diagram illustrating a configuration (digital watermark detection device) on a digital watermark verification side that performs a digital watermark detection method according to a tenth embodiment of the third invention.
FIG. 23 is a block diagram showing an example in which a configuration (digital watermark detection device) on the digital watermark verification side that performs a digital watermark detection method according to a tenth embodiment of the third invention is applied to a JPEG2000 decompressor.
FIG. 24 is a block diagram showing a configuration (digital watermark embedding device) on a digital watermark embedding side for performing a digital watermark embedding method according to an eleventh embodiment of the third invention.
FIG. 25 is a block diagram showing another example of the configuration (digital watermark embedding device) on the digital watermark embedding side that performs the digital watermark embedding method according to the eleventh embodiment of the third invention.
FIG. 26 is a block diagram illustrating a configuration (digital watermark detection device) on the digital watermark verification side that performs a digital watermark detection method according to an eleventh embodiment of the third invention.
FIG. 27 is a block diagram showing a configuration (digital watermark embedding device) of a digital watermark embedding side that performs a digital watermark embedding method according to a twelfth embodiment of the third invention.
FIG. 28 is a block diagram showing a configuration (digital watermark detection device) on the digital watermark verification side that performs a digital watermark detection method according to a twelfth embodiment of the third invention.
FIG. 29 is an explanatory diagram of a digital watermark embedding method according to a twelfth embodiment of the third invention.
FIG. 30 is an explanatory diagram of another example of the digital watermark embedding method according to the twelfth embodiment of the third invention.
FIG. 31 is an explanatory diagram of the concept of a bit plane.
FIG. 32 is an explanatory diagram of an operation of embedding a fragile digital watermark in a bitmap image.
FIG. 33 is an explanatory diagram of an operation of verifying a fragile digital watermark.
FIG. 34 is a block diagram illustrating a configuration for encoding coefficients in a frequency space.
FIG. 35 is an explanatory diagram showing arithmetic coding when one type of coding pass is generated for one bit plane.
FIG. 36 is an explanatory diagram showing arithmetic coding when three types of coding passes are generated for one bit plane.
FIG. 37 is an explanatory diagram showing a case where bit planes with bit plane numbers “2” and below are cut off and a digital watermark is embedded in the bit plane with bit plane number “3”.
FIG. 38A is an explanatory diagram showing a case where all censored bit planes are set to “0” at the time of decoding, and FIG. FIG. 11 is an explanatory diagram showing a case where the most significant bit plane is a non-zero coefficient.
FIG. 39 is an explanatory diagram showing a region suitable for embedding information and a region not suitable for embedding information.
[Explanation of symbols]
1011 frequency conversion means,
1012 bit plane coding path generating means,
1012A bit plane coding path generating means,
1013 arithmetic coding means,
1013A arithmetic coding means,
1014 rate control means,
1015 coding path control means,
1016 invalid coding pass truncation means,
1017 encoder reset means,
1018 encoder internal state storage means,
1019 rate control means with control condition,
1021 conversion coefficient storage means,
1031 decryption means,
1101 signature generation means,
1102 signature embedding means,
1201 signature extraction means;
1202 signature generation means;
1203 signature comparison means,
2102 ID information embedding means,
2104 data embedding means,
2106 signature generation information embedding means,
2108 signature generation means,
2110 signature embedding means,
2112 random number generating means,
2202 ID information extracting means,
2204 data extraction means,
2206 signature extraction means,
2208 signature generation information extraction means;
2210 signature generation means;
2212 signature comparison means;
3050 color conversion means,
3051 Wavelet transform means,
3052 quantization means,
3053 encoding means,
3054 tile dividing means,
3100 blocking means,
3101 upper bit plane evaluation means,
3102 block determination means,
3103 embedding means,
3104 zero block marking means,
3200 blocking means,
3201 upper bit plane evaluation means,
3202 a block determining means,
3203 extraction means,
3204 decoding means,
3301 embedding coefficient determination means,
3302 embedding position storage means,
3311 embedding coefficient determining means;
3312 embedding position storage means.

Claims (36)

電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
入力画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第1の符号化パスを生成するステップと、
前記第1の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第1の符号化データを生成するステップと、
目標となる符号量から前記算術符号化における算術符号化量を制御し、算術符号打ち切り点を決定するステップと、
得られた算術符号打ち切り点がビットプレーン境界にない場合に、得られた算術符号打ち切り点をビットプレーン境界に変更するステップと、
前記入力画像データから署名データを生成するステップと、
前記入力画像データに署名データを埋め込むステップと、
前記署名データが埋め込まれた画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第2の符号化パスを生成するステップと、
前記算術符号打ち切り点まで、前記第2の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第2の符号化データを生成するステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
Expanding the input image data into a plurality of bit planes from the most significant bit to the least significant bit, and generating one or more types of first encoding passes for each bit plane;
Arithmetically encoding the data of each bit plane according to the first encoding pass to generate first encoded data;
Controlling the arithmetic coding amount in the arithmetic coding from a target code amount, and determining an arithmetic code censoring point;
Changing the obtained arithmetic code abort point to a bit plane boundary if the obtained arithmetic code abort point is not at a bit plane boundary;
Generating signature data from the input image data;
Embedding signature data in the input image data;
Developing the image data in which the signature data is embedded into a plurality of bit planes from the most significant bit to the least significant bit, and generating one or more types of second encoding passes for each bit plane;
Arithmetically encoding the data of each of the bit planes according to the second encoding pass until the arithmetic code discontinuation point to generate second encoded data.
電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
入力画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第1の符号化パスを生成するステップと、
前記第1の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第1の符号化データを生成するステップと、
生成された算術符号と目標となる符号量から前記算術符号化における算術符号化量を制御し、算術符号打ち切り点をビットプレーン境界に制限して算術符号打ち切り点を決定するステップと、
前記入力画像データから署名データを生成するステップと、
前記入力画像データに署名データを埋め込むステップと、
前記署名データが埋め込まれた画像データを複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第2の符号化パスを生成するステップと、
前記算術符号打ち切り点まで、前記第2の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第2の符号化データを生成するステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
Expanding the input image data into a plurality of bit planes from the most significant bit to the least significant bit, and generating one or more types of first encoding passes for each bit plane;
Arithmetically encoding the data of each bit plane according to the first encoding pass to generate first encoded data;
Controlling the arithmetic coding amount in the arithmetic coding from the generated arithmetic code and the target code amount, and determining the arithmetic code censoring point by limiting the arithmetic code censoring point to a bit plane boundary;
Generating signature data from the input image data;
Embedding signature data in the input image data;
Developing the image data in which the signature data is embedded into a plurality of bit planes, and generating one or more types of second encoding passes for each bit plane;
Arithmetically encoding the data of each of the bit planes according to the second encoding pass until the arithmetic code discontinuation point to generate second encoded data.
署名データを埋め込んだ画像データを算術符号化した後の前記第2の符号化パスのうち不必要な符号化パスを圧縮後の算術符号データに含めないようにするステップを有することを特徴とする請求項1又は2のいずれかに記載の電子透かし埋め込み方法。The method further comprises a step of preventing unnecessary encoding paths of the second encoding path after arithmetically encoding the image data in which the signature data is embedded from being included in the compressed arithmetic code data. The digital watermark embedding method according to claim 1. 前記第2の符号化データを生成するステップにおいて、各ビットプレーン単位で算術符号を初期化/終端処理することで、算術符号化を各ビットプレーンで独立に処理できるようにし、署名データを埋め込んでいないビットプレーンに対する算術符号化を省略することを特徴とする請求項1又は2のいずれかに記載の電子透かし埋め込み方法。In the step of generating the second encoded data, arithmetic coding is initialized / terminated on a bit plane basis, so that arithmetic coding can be independently processed on each bit plane, and signature data is embedded. 3. The digital watermark embedding method according to claim 1, wherein arithmetic coding for a non-existing bit plane is omitted. 前記第2の符号化データを生成するステップにおいて、算術符号化を途中から再開できるようにし、署名データを埋め込んでいないビットプレーンに対する算術符号化を省略することで処理時間を削減できることを特徴とする請求項1又は2のいずれかに記載の電子透かし埋め込み方法。In the step of generating the second encoded data, arithmetic coding can be restarted halfway, and the processing time can be reduced by omitting arithmetic coding for bit planes in which signature data is not embedded. The digital watermark embedding method according to claim 1. 電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
署名データを埋め込むビットプレーンを指定する埋め込みビットプレーンデータが入力されるステップと、
指定されたビットプレーンに応じて、入力画像データから署名データを生成するステップと、
入力画像データに生成した前記署名データを埋め込むステップと、
署名データが埋め込まれた画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の符号化パスを生成するステップと、
前記指定されたビットプレーンまで、前記符号化パスに従って署名データが埋め込まれた画像データを算術符号化するステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
Inputting bit plane data for designating a bit plane in which signature data is to be embedded;
Generating signature data from the input image data according to the designated bit plane;
Embedding the generated signature data in the input image data;
Developing the image data in which the signature data is embedded into a plurality of bit planes from the most significant bit to the least significant bit, and generating one or more types of encoding paths for each bit plane;
Arithmetically encoding image data in which signature data is embedded according to the encoding pass up to the designated bit plane.
電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
電子透かしを埋め込むビットプレーンを示すID情報を埋め込むステップと、
前記ID情報で指定されたビットプレーンにデータを埋め込むステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
Embedding ID information indicating a bit plane in which an electronic watermark is embedded;
Embedding data in a bit plane specified by the ID information.
電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、
前記請求項7に記載の電子透かし埋め込み方法によって画像データに埋め込まれたID情報を抽出し、データが埋め込まれているビットプレーンを特定するステップと、
特定したビットプレーンからデータを抽出するステップと
を有することを特徴とする電子透かし検出方法。
A digital watermark detection method performed on image data by a configuration of a digital watermark verification side,
Extracting ID information embedded in image data by the digital watermark embedding method according to claim 7, and specifying a bit plane in which the data is embedded;
Extracting data from the specified bit plane.
電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
電子透かしを埋め込むビットプレーンを示すID情報を埋め込むステップと、
署名データを求める際に対象となった前記画像データに関する情報を埋め込んでおくステップと、
前記画像データから署名データを生成するステップと、
生成された前記署名データを前記画像データに埋め込むステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
Embedding ID information indicating a bit plane in which an electronic watermark is embedded;
Embedding information on the image data targeted when obtaining signature data;
Generating signature data from the image data;
Embedding the generated signature data in the image data.
電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、
前記請求項9に記載の電子透かし埋め込み方法によって画像データに埋め込まれたID情報を抽出し、署名データが埋め込まれているビットプレーンを特定するステップと、
特定したビットプレーンから署名データを取り出すステップと、
特定したビットプレーンから署名生成情報を取り出すステップと、
取り出した署名生成情報から署名データを生成するステップと、
抽出した署名データと生成した署名データを比較するステップと
を有することを特徴とする電子透かし検出方法。
A digital watermark detection method performed on image data by a configuration of a digital watermark verification side,
Extracting the ID information embedded in the image data by the digital watermark embedding method according to claim 9, and specifying a bit plane in which the signature data is embedded;
Extracting signature data from the specified bit plane;
Extracting signature generation information from the specified bit plane;
Generating signature data from the extracted signature generation information;
Comparing the extracted signature data with the generated signature data.
乱数生成手段により生成された乱数を前記ID情報として用いることを特徴とする請求項7又は9のいずれかに記載の電子透かし埋め込み方法。The digital watermark embedding method according to claim 7, wherein a random number generated by a random number generation unit is used as the ID information. 前記請求項11に記載の乱数生成手段と同じ構成の乱数生成手段により生成された乱数を前記ID情報として用いることを特徴とする請求項8又は10のいずれかに記載の電子透かし検出方法。12. The digital watermark detection method according to claim 8, wherein a random number generated by a random number generation unit having the same configuration as the random number generation unit according to claim 11 is used as the ID information. 電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
入力画像データに対して情報を埋め込むビットプレーンが指定され、この情報を埋め込むビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報を埋め込む位置の順番を示すラベリングを行うステップと、
前記ラベリングによって示された順番に従って、前記入力画像データに、埋め込みデータを埋め込むステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
A bit plane for embedding information is specified for input image data, data of a bit plane higher than the bit plane for embedding this information is evaluated, and labeling indicating the order of the position where the information is embedded is performed based on the evaluation result. Steps and
Embedding embedded data in the input image data in accordance with the order indicated by the labeling.
電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、
前記請求項13に記載の電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信するステップと、
前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番を示すラベリングを行うステップと、
前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出するステップと
を有することを特徴とする電子透かし検出方法。
A digital watermark detection method performed on image data by a configuration of a digital watermark verification side,
14. Receiving image data in which data has been embedded by the digital watermark embedding method according to claim 13.
A bit plane for extracting information with respect to the received image data is designated, data of a bit plane higher than the designated bit plane is evaluated, and an order of a position where the information is embedded is determined based on the evaluation result. Performing a labeling indicating
Extracting embedded data from the received image data in accordance with the order indicated by the labeling.
電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
入力画像データを複数のブロックに分けるステップと、
指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するステップと、
前記入力画像データに、埋め込みデータを埋め込むステップとをさらに有し、
前記埋め込みデータを埋め込むステップにおいて、前記オール0ブロック以外のブロックにデータを埋め込む
ことを特徴とする請求項13に記載の電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
Dividing the input image data into a plurality of blocks;
Scanning the designated bit plane in block units to identify all 0 blocks in which the data of the bit plane is all 0s;
Embedding embedded data in the input image data,
14. The digital watermark embedding method according to claim 13, wherein in the step of embedding the embedded data, data is embedded in a block other than the all-zero block.
電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、
前記請求項15に記載の電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信するステップと、
入力画像データを複数のブロックに分けるステップと、
指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するステップと、
前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番を示すラベリングを行うステップと、
前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出するステップとを有し、
前記データを抽出するステップにおいて、前記オール0ブロック以外のブロックからデータを抽出する
ことを特徴とする電子透かし検出方法。
A digital watermark detection method performed on image data by a configuration of a digital watermark verification side,
Receiving image data in which data is embedded by the digital watermark embedding method according to claim 15;
Dividing the input image data into a plurality of blocks;
Scanning the designated bit plane in block units to identify all 0 blocks in which the data of the bit plane is all 0s;
A bit plane for extracting information with respect to the received image data is designated, data of a bit plane higher than the designated bit plane is evaluated, and an order of a position where the information is embedded is determined based on the evaluation result. Performing a labeling indicating
Extracting embedded data from the received image data according to the order indicated by the labeling,
The digital watermark detection method according to claim 1, wherein in the step of extracting the data, data is extracted from blocks other than the all-zero block.
電子透かし埋め込み側の構成によって画像データに対して実行される電子透かし埋め込み方法であって、
入力画像データに対して情報を埋め込むビットプレーンが指定され、情報を埋め込む位置を特定するステップと、
前記埋め込み位置を記憶するステップと、
前記情報を埋め込む位置よりも下位のビットプレーンに、メッセージ情報を埋め込むステップと
を有することを特徴とする電子透かし埋め込み方法。
A digital watermark embedding method executed on image data by a configuration of a digital watermark embedding side,
A bit plane in which information is embedded in the input image data is specified, and a position in which the information is embedded is specified;
Storing the embedding position;
Embedding the message information in a bit plane lower than the position where the information is to be embedded.
電子透かし検証側の構成によって画像データに対して実行される電子透かし検出方法であって、
前記請求項17に記載の電子透かし埋め込み方法によってデータが埋め込まれた画像データを受信するステップと、
この受信した画像データに対して情報を埋め込むビットプレーンが指定され、情報を埋め込む位置を特定するステップと、
前記埋め込み位置を記憶するステップと、
前記情報を埋め込む位置よりも下位のビットプレーンからメッセージ情報を抽出するステップと
を有することを特徴とする電子透かし検出方法。
A digital watermark detection method performed on image data by a configuration of a digital watermark verification side,
Receiving image data in which data is embedded by the digital watermark embedding method according to claim 17;
A bit plane for embedding information in the received image data is specified, and a position for embedding information is specified;
Storing the embedding position;
Extracting message information from a bit plane lower than the position where the information is embedded.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
入力画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第1の符号化パスを生成する第1のビットプレーン符号化パス生成手段と、
前記第1の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第1の符号化データを生成する第1の算術符号化手段と、
目標となる符号量から前記算術符号化における算術符号化量を制御し、算術符号打ち切り点を決定するレート制御手段と、
得られた算術符号打ち切り点がビットプレーン境界にない場合に、得られた算術符号打ち切り点をビットプレーン境界に変更する符号化パス制御手段と、
前記入力画像データから署名データを生成する署名生成手段と、
前記入力画像データに署名データを埋め込む署名埋め込み手段と、
前記署名データが埋め込まれた画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第2の符号化パスを生成する第2のビットプレーン符号化パス生成手段と、
前記算術符号打ち切り点まで、前記第2の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第2の符号化データを生成する第2の算術符号化手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
A first bit plane encoding path generating means for expanding input image data into a plurality of bit planes from the most significant bit to the least significant bit and generating one or a plurality of types of first encoding paths for each bit plane When,
First arithmetic encoding means for arithmetically encoding the data of each of the bit planes to generate first encoded data according to the first encoding pass;
Rate control means for controlling the arithmetic coding amount in the arithmetic coding from the target code amount, and determining the arithmetic code cutoff point,
Encoding path control means for changing the obtained arithmetic code abort point to a bit plane boundary when the obtained arithmetic code abort point is not at a bit plane boundary;
Signature generation means for generating signature data from the input image data;
Signature embedding means for embedding signature data in the input image data;
A second bit for expanding the image data in which the signature data is embedded into a plurality of bit planes from the most significant bit to the least significant bit, and generating one or more types of second encoding passes for each bit plane Plane encoding path generating means;
And a second arithmetic encoding unit that arithmetically encodes the data of each bit plane according to the second encoding pass and generates second encoded data up to the arithmetic code cutoff point. Digital watermark embedding device.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
入力画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第1の符号化パスを生成する第1のビットプレーン符号化パス生成手段と、
前記第1の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第1の符号化データを生成する第1の算術符号化手段と、
生成された算術符号と目標となる符号量から前記算術符号化における算術符号化量を制御し、算術符号打ち切り点をビットプレーン境界に制限して算術符号打ち切り点を決定する制約条件付きレート制御手段と、
前記入力画像データから署名データを生成する署名生成手段と、
前記入力画像データに署名データを埋め込む署名埋め込み手段と、
前記署名データが埋め込まれた画像データを複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の第2の符号化パスを生成する第2のビットプレーン符号化パス生成手段と、
前記算術符号打ち切り点まで、前記第2の符号化パスに従って前記各ビットプレーンのデータを算術符号化して第2の符号化データを生成する第2の算術符号化手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
A first bit plane encoding path generating means for expanding input image data into a plurality of bit planes from the most significant bit to the least significant bit and generating one or a plurality of types of first encoding paths for each bit plane When,
First arithmetic encoding means for arithmetically encoding the data of each of the bit planes to generate first encoded data according to the first encoding pass;
Rate control means with constraint conditions for controlling the arithmetic coding amount in the arithmetic coding from the generated arithmetic code and the target code amount, and limiting the arithmetic code cutoff point to a bit plane boundary to determine the arithmetic code cutoff point When,
Signature generation means for generating signature data from the input image data;
Signature embedding means for embedding signature data in the input image data;
A second bit plane encoding path generating means for expanding the image data in which the signature data is embedded into a plurality of bit planes and generating one or a plurality of types of second encoding paths for each bit plane;
And a second arithmetic encoding unit that arithmetically encodes the data of each bit plane according to the second encoding pass and generates second encoded data up to the arithmetic code cutoff point. Digital watermark embedding device.
署名データを埋め込んだ画像データを算術符号化した後の前記第2の符号化パスのうち不必要な符号化パスを圧縮後の算術符号データに含めないようにする無効符号化パス打ち切り手段を有することを特徴とする請求項19又は20のいずれかに記載の電子透かし埋め込み装置。An invalid encoding path terminating means for preventing unnecessary encoding paths of the second encoding path after arithmetically encoding the image data in which the signature data is embedded from being included in the compressed arithmetic code data 21. The digital watermark embedding device according to claim 19, wherein: 前記第2の算術符号化手段において、各ビットプレーン単位で算術符号を初期化/終端処理することで、算術符号化を各ビットプレーンで独立に処理できるようにし、署名データを埋め込んでいないビットプレーンに対する算術符号化を省略させる符号化リセット手段を有することを特徴とする請求項19又は20のいずれかに記載の電子透かし埋め込み装置。In the second arithmetic coding means, arithmetic coding is initialized / terminated in units of bit planes, so that arithmetic coding can be independently processed in each bit plane, and bit planes in which signature data is not embedded. 21. The digital watermark embedding device according to claim 19, further comprising an encoding reset unit for omitting arithmetic encoding of the digital watermark. 前記第2の算術符号化手段において、算術符号化を途中から再開できるようにするため前記第1の算術符号化手段の符号化器内部の状態を記憶する符号化器内部状態記憶手段を有し、署名データを埋め込んでいないビットプレーンに対する前記第2の算術符号化手段による算術符号化を省略させることを特徴とする請求項19又は20のいずれかに記載の電子透かし埋め込み装置。In the second arithmetic coding means, there is provided an encoder internal state storage means for storing the internal state of the encoder of the first arithmetic coding means so that the arithmetic coding can be restarted halfway. 21. The digital watermark embedding device according to claim 19, wherein the arithmetic coding by the second arithmetic coding means for a bit plane in which signature data is not embedded is omitted. 画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
署名データを埋め込むビットプレーンを指定する埋め込みビットプレーンデータに応じて、入力画像データから署名データを生成する署名生成手段と、
前記入力画像データに署名データを埋め込む署名埋め込み手段と、
前記署名データが埋め込まれた画像データを最上位ビットから最下位ビットまでの複数のビットプレーンに展開し、各ビットプレーン毎に1又は複数種類の符号化パスを生成するビットプレーン符号化パス生成手段と、
前記指定されたビットプレーンまで、前記符号化パスに従って前記各ビットプレーンのデータを算術符号化して符号化データを生成する算術符号化手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
Signature generation means for generating signature data from input image data in accordance with embedded bit plane data specifying a bit plane in which signature data is embedded;
Signature embedding means for embedding signature data in the input image data;
Bit plane coding path generation means for expanding the image data in which the signature data is embedded into a plurality of bit planes from the most significant bit to the least significant bit, and generating one or a plurality of types of coding paths for each bit plane When,
An electronic watermark embedding device, comprising: arithmetic coding means for arithmetically coding data of each bit plane according to the coding path up to the designated bit plane to generate coded data.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
電子透かしを埋め込むビットプレーンを示すID情報を埋め込むID情報埋め込み手段と、
前記ID情報で指定されたビットプレーンにデータを埋め込むデータ埋め込み手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
ID information embedding means for embedding ID information indicating a bit plane in which an electronic watermark is embedded,
Data embedding means for embedding data in a bit plane specified by the ID information.
画像データから電子透かしを検出する電子透かし検出装置であって、
前記請求項25に記載の電子透かし埋め込み装置によって画像データに埋め込まれたID情報を抽出し、データが埋め込まれているビットプレーンを特定するID情報抽出手段と、
特定したビットプレーンからデータを抽出するデータ抽出手段と
を有することを特徴とする電子透かし検出装置。
An electronic watermark detection device for detecting an electronic watermark from image data,
An ID information extracting unit for extracting ID information embedded in image data by the digital watermark embedding device according to claim 25, and identifying a bit plane in which the data is embedded.
An electronic watermark detection device, comprising: data extraction means for extracting data from a specified bit plane.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
電子透かしを埋め込むビットプレーンを示すID情報を埋め込むID情報埋め込み手段と、
署名データを求める際に対象となった前記画像データに関する情報を埋め込んでおく署名生成情報埋め込み手段と、
前記画像データから署名データを生成する署名生成手段と、
生成された前記署名データを前記画像データに埋め込む署名埋め込み手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
ID information embedding means for embedding ID information indicating a bit plane in which an electronic watermark is embedded,
Signature generation information embedding means for embedding information regarding the image data targeted when obtaining signature data,
Signature generation means for generating signature data from the image data;
A digital watermark embedding device, comprising: signature embedding means for embedding the generated signature data in the image data.
画像データから電子透かしを検出する電子透かし検出装置であって、
前記請求項27に記載の電子透かし埋め込み装置によって画像データに埋め込まれたID情報を抽出し、署名データが埋め込まれているビットプレーンを特定するID情報抽出手段と、
特定したビットプレーンから署名データを取り出す署名生成情報抽出手段と、
特定したビットプレーンから署名生成情報を取り出す署名抽出手段と、
取り出した署名生成情報から署名データを生成する署名生成手段と、
抽出した署名データと生成した署名データを比較する署名比較手段と
を有することを特徴とする電子透かし検出装置。
An electronic watermark detection device for detecting an electronic watermark from image data,
28. ID information extracting means for extracting ID information embedded in image data by the digital watermark embedding device according to claim 27, and identifying a bit plane in which signature data is embedded.
Signature generation information extraction means for extracting signature data from the specified bit plane;
Signature extraction means for extracting signature generation information from the specified bit plane;
Signature generation means for generating signature data from the extracted signature generation information;
A digital watermark detection device, comprising: signature comparison means for comparing the extracted signature data with the generated signature data.
乱数を生成する乱数生成手段を有し、
前記乱数生成手段により生成された乱数を前記ID情報として用いる
ことを特徴とする請求項25又は27のいずれかに記載の電子透かし埋め込み装置。
Having a random number generating means for generating a random number,
28. The digital watermark embedding device according to claim 25, wherein a random number generated by the random number generation unit is used as the ID information.
前記請求項29に記載の乱数生成手段と同じ構成の乱数生成手段を有し、
この乱数生成手段により生成された乱数を前記ID情報として用いる
ことを特徴とする請求項26又は28のいずれかに記載の電子透かし検出装置。
A random number generation unit having the same configuration as the random number generation unit according to claim 29,
29. The digital watermark detection device according to claim 26, wherein the random number generated by the random number generation unit is used as the ID information.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
入力画像データに対して情報を埋め込むビットプレーンが指定され、この情報を埋め込むビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報を埋め込む位置の順番を示すラベリングを行う第1の上位ビットプレーン評価手段と、
前記ラベリングによって示された順番に従って、前記入力画像データに、埋め込みデータを埋め込む埋め込み手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
A bit plane in which information is to be embedded is specified for input image data, data of a bit plane higher than the bit plane in which the information is embedded is evaluated, and labeling indicating the order of the information embedding position is performed based on the evaluation result. First upper bit plane evaluation means;
An electronic watermark embedding device, comprising: an embedding unit that embeds embedded data in the input image data in the order indicated by the labeling.
画像データから電子透かしを検出する電子透かし検出装置であって、
前記請求項31に記載の電子透かし埋め込み装置によってデータが埋め込まれた画像データを受信する手段と、
前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番を示すラベリングを行う第2の上位ビットプレーン評価手段と、
前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出する抽出手段と
を有することを特徴とする電子透かし検出装置。
An electronic watermark detection device for detecting an electronic watermark from image data,
Means for receiving image data in which data is embedded by the digital watermark embedding apparatus according to claim 31;
A bit plane for extracting information with respect to the received image data is designated, data of a bit plane higher than the designated bit plane is evaluated, and an order of a position where the information is embedded is determined based on the evaluation result. Second higher-order bit plane evaluation means for performing labeling indicating
Extracting means for extracting embedded data from the received image data in accordance with the order indicated by the labeling.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
入力画像データを複数のブロックに分けるブロック化手段と、
指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するブロック判定手段と、
前記入力画像データに、埋め込みデータを埋め込む手段とを有し、
前記埋め込む手段がオール0ブロック以外のブロックにデータを埋め込む
ことを特徴とする請求項31に記載の電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
Blocking means for dividing the input image data into a plurality of blocks;
Block determining means for scanning the designated bit plane in block units and identifying all 0 blocks in which all data of the bit plane is 0;
Means for embedding embedded data in the input image data,
The digital watermark embedding device according to claim 31, wherein the embedding unit embeds data in a block other than the all-zero block.
画像データから電子透かしを検出する電子透かし検出装置であって、
前記請求項33に記載の電子透かし埋め込み装置によってデータが埋め込まれた画像データを受信し、入力画像データを複数のブロックに分けるブロック化手段と、
指定されたビットプレーンをブロック単位に走査し、ビットプレーンのデータがすべて0であるオール0ブロックを特定するブロック判定手段と、
前記受信した画像データに対して情報を抽出するビットプレーンが指定され、この指定されたビットプレーンよりも上位のビットプレーンのデータを評価し、この評価結果に基づいて情報が埋め込まれた位置の順番を示すラベリングを行う第2の上位ビットプレーン評価手段と、
前記ラベリングによって示された順番に従って、前記受信した画像データから埋め込みデータを抽出する抽出手段とを有し、
前記抽出手段において、前記オール0ブロック以外のブロックからデータを抽出する
ことを特徴とする電子透かし検出装置。
An electronic watermark detection device for detecting an electronic watermark from image data,
Blocking means for receiving image data embedded with data by the digital watermark embedding device according to claim 33, and dividing input image data into a plurality of blocks,
Block determining means for scanning the designated bit plane in block units and identifying all 0 blocks in which all data of the bit plane is 0;
A bit plane for extracting information with respect to the received image data is designated, data of a bit plane higher than the designated bit plane is evaluated, and an order of a position where the information is embedded is determined based on the evaluation result. Second higher-order bit plane evaluation means for performing labeling indicating
Extracting means for extracting embedded data from the received image data according to the order indicated by the labeling,
A digital watermark detection device, wherein the extraction means extracts data from blocks other than the all-zero block.
画像データに対して電子透かしを埋め込む電子透かし埋め込み装置であって、
入力画像データに対して情報を埋め込むビットプレーンが指定され、情報を埋め込む位置を特定する埋め込み係数決定手段と、
前記埋め込み位置を記憶する埋め込み位置記憶手段と、
前記情報を埋め込む位置よりも下位のビットプレーンに、メッセージ情報を埋め込む埋め込み手段と
を有することを特徴とする電子透かし埋め込み装置。
An electronic watermark embedding device for embedding an electronic watermark in image data,
A bit plane in which information is to be embedded in the input image data is specified, and an embedding coefficient determination unit that specifies a position in which the information is to be embedded,
An embedding position storing means for storing the embedding position;
An electronic watermark embedding apparatus, comprising: an embedding unit that embeds message information in a bit plane lower than a position where the information is embedded.
画像データから電子透かしを検出する電子透かし検出装置であって、
前記請求項35に記載の電子透かし埋め込み装置によってデータが埋め込まれた画像データを受信し、この受信した画像データに対して情報を埋め込むビットプレーンが指定され、情報を埋め込む位置を特定する埋め込み係数決定手段と、
前記埋め込み位置を記憶する埋め込み位置記憶手段と、
前記情報を埋め込む位置よりも下位のビットプレーンからメッセージ情報を抽出する抽出手段と
を有することを特徴とする電子透かし検出装置。
An electronic watermark detection device for detecting an electronic watermark from image data,
36. An image data in which data is embedded by the digital watermark embedding device according to claim 35, a bit plane in which information is embedded in the received image data is specified, and an embedding coefficient determination for specifying a position in which the information is embedded is specified. Means,
An embedding position storing means for storing the embedding position;
Extraction means for extracting message information from a bit plane lower than a position where the information is embedded.
JP2003115254A 2003-04-21 2003-04-21 Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device Expired - Fee Related JP4144416B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003115254A JP4144416B2 (en) 2003-04-21 2003-04-21 Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003115254A JP4144416B2 (en) 2003-04-21 2003-04-21 Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2008017426A Division JP4834006B2 (en) 2008-01-29 2008-01-29 Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device
JP2008017440A Division JP4834007B2 (en) 2008-01-29 2008-01-29 Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device

Publications (2)

Publication Number Publication Date
JP2004320672A true JP2004320672A (en) 2004-11-11
JP4144416B2 JP4144416B2 (en) 2008-09-03

Family

ID=33474507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003115254A Expired - Fee Related JP4144416B2 (en) 2003-04-21 2003-04-21 Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device

Country Status (1)

Country Link
JP (1) JP4144416B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006203787A (en) * 2005-01-24 2006-08-03 Toshiba Corp Image processing device, image processing method, and recorded material
JP2014524682A (en) * 2011-08-03 2014-09-22 シーエスピー − イノヴァツィオン ネル アイシーティー スカール Method and apparatus for transmitting and receiving multimedia content
CN108805786A (en) * 2017-05-05 2018-11-13 北京大学 Steganalysis method and device are matched based on least significant bit
CN111669615A (en) * 2020-05-13 2020-09-15 北京奇艺世纪科技有限公司 Video stream processing method and device
CN112423150A (en) * 2020-11-18 2021-02-26 大连理工大学 Remote video transmission device with frame check function and working method thereof
CN115103081A (en) * 2022-05-10 2022-09-23 西安理工大学 Encryption image reversible data hiding method based on hybrid prediction and Huffman coding
CN117036145A (en) * 2023-10-07 2023-11-10 江西财经大学 Meta-universe light field image robust zero watermarking method, system, equipment and storage medium

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4660212B2 (en) * 2005-01-24 2011-03-30 株式会社東芝 Image processing apparatus and image processing method
JP2006203787A (en) * 2005-01-24 2006-08-03 Toshiba Corp Image processing device, image processing method, and recorded material
JP2014524682A (en) * 2011-08-03 2014-09-22 シーエスピー − イノヴァツィオン ネル アイシーティー スカール Method and apparatus for transmitting and receiving multimedia content
CN108805786B (en) * 2017-05-05 2022-05-10 北京大学 Steganalysis method and device based on least significant bit matching
CN108805786A (en) * 2017-05-05 2018-11-13 北京大学 Steganalysis method and device are matched based on least significant bit
CN111669615B (en) * 2020-05-13 2022-09-30 北京奇艺世纪科技有限公司 Video stream processing method and device
CN111669615A (en) * 2020-05-13 2020-09-15 北京奇艺世纪科技有限公司 Video stream processing method and device
CN112423150B (en) * 2020-11-18 2022-01-04 大连理工大学 Working method of remote video transmission device with frame check function
CN112423150A (en) * 2020-11-18 2021-02-26 大连理工大学 Remote video transmission device with frame check function and working method thereof
CN115103081A (en) * 2022-05-10 2022-09-23 西安理工大学 Encryption image reversible data hiding method based on hybrid prediction and Huffman coding
CN115103081B (en) * 2022-05-10 2023-07-11 西安理工大学 Encrypted image reversible data hiding method based on mixed prediction and Huffman coding
CN117036145A (en) * 2023-10-07 2023-11-10 江西财经大学 Meta-universe light field image robust zero watermarking method, system, equipment and storage medium
CN117036145B (en) * 2023-10-07 2024-01-09 江西财经大学 Meta-universe light field image robust zero watermarking method, system, equipment and storage medium

Also Published As

Publication number Publication date
JP4144416B2 (en) 2008-09-03

Similar Documents

Publication Publication Date Title
He et al. A novel high-capacity reversible data hiding scheme for encrypted JPEG bitstreams
US20040145661A1 (en) Image processing method, and image processing apparatus
KR100970990B1 (en) System and Method for robust reversible data hiding and data recovery in the spatial domaim
US7360093B2 (en) System and method for authentication of JPEG image data
US7389420B2 (en) Content authentication and recovery using digital watermarks
Kobayashi et al. Bitstream-based JPEG image encryption with file-size preserving
JP2009518945A (en) Watermark encoded content
US7313696B2 (en) Method for authentication of JPEG image data
Kumar et al. Reversible data hiding: A contemporary survey of state-of-the-art, opportunities and challenges
JP4024153B2 (en) Digital watermark embedding method and encoding device and decoding device capable of using the method
US20070253592A1 (en) Method and System for Protecting and Authenticating a Digital Image
JP4144416B2 (en) Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device
US7493489B2 (en) System and method for authentication of JPEG image data
Akar et al. Data hiding in digital images using a partial optimization technique based on the classical LSB method
JP2006081169A (en) Method and device for adding water mark to digital data
JP4834006B2 (en) Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device
US7627761B2 (en) System for authentication of JPEG image data
JP2005217598A (en) Device for embedding digital watermark, digital watermark detector, method for embedding digital watermark, and method for detecting digital watermark
JP4834007B2 (en) Digital watermark embedding method, digital watermark detection method, digital watermark embedding device, and digital watermark detection device
WO2007085632A1 (en) Method of watermarking digital data
EP1743296B1 (en) Watermarking a compressed information signal
Tew et al. HEVC video authentication using data embedding technique
EP3602478B1 (en) Video watermarking
Gulášová et al. Steganalysis of stegostorage library
JP2004519131A (en) Partial encryption of assembled bitstream

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080129

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: 20080527

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: 20080609

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120627

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130627

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees