JP4024153B2 - Digital watermark embedding method and encoding device and decoding device capable of using the method - Google Patents

Digital watermark embedding method and encoding device and decoding device capable of using the method Download PDF

Info

Publication number
JP4024153B2
JP4024153B2 JP2003003987A JP2003003987A JP4024153B2 JP 4024153 B2 JP4024153 B2 JP 4024153B2 JP 2003003987 A JP2003003987 A JP 2003003987A JP 2003003987 A JP2003003987 A JP 2003003987A JP 4024153 B2 JP4024153 B2 JP 4024153B2
Authority
JP
Japan
Prior art keywords
watermark
blocks
embedded
data
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003003987A
Other languages
Japanese (ja)
Other versions
JP2004221715A (en
Inventor
亜輝臣 国狭
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2003003987A priority Critical patent/JP4024153B2/en
Publication of JP2004221715A publication Critical patent/JP2004221715A/en
Application granted granted Critical
Publication of JP4024153B2 publication Critical patent/JP4024153B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、電子透かし技術に関し、特に電子透かしの埋め込み方法、およびその方法を利用可能な符号化装置と復号装置に関する。
【0002】
【従来の技術】
ここ数年、インターネット利用人口が急増し、インターネット利用の新たなステージともいえるブロードバンド時代に入ろうとしている。ブロードバンド通信では通信帯域が格段に広がるため、音声、静止画、動画などデータ量の大きいコンテンツの配信も気軽にできるようになる。このようなデジタルコンテンツの流通が盛んになると、コンテンツの著作権の保護がより一層求められることになる。
【0003】
ネットワーク上に流通するコンテンツのデータは他人に容易にコピーされ、著作権に対する保護が十分ではないのが現状である。そこで著作権を保護するために、コンテンツの作成者や利用者の情報を電子透かしとしてコンテンツデータに埋め込む技術が開発されている。この電子透かし技術を用いることにより、ネットワーク上で流通するコンテンツデータから電子透かしを抽出して、不正利用を検出したり、不正コピーの流通経路を追跡することが可能となる。
【0004】
従来の電子透かしの埋め込み技術には、電子透かし情報を埋め込む処理の自由度を維持しつつ、耐性の強い電子透かしの埋め込みを可能とするものがある(たとえば、非特許文献1参照)。
【0005】
【非特許文献1】
Ingemar J. Cox, Joe Kilian, F. Thomson Leighton, and Talal Shamoon, "Secure Spread Spectrum Watermarking for Multimedia," IEEE Trans. on Image Processing, Vol. 6, No. 12, December 1997.
【0006】
【発明が解決しようとする課題】
電子透かしは、不正利用者による改ざんを防止するために、利用者には分からないようにコンテンツデータに埋め込まれる。しかしコンテンツデータは、流通過程や利用過程で、圧縮符号化や各種フィルタリングなどの信号処理が加えられたり、ユーザにより加工されたり、あるいは透かし情報が改ざんされるなど、さまざまな操作を受けることがあり、その過程で埋め込まれた電子透かしデータの一部が変更されたり、消失する可能性がある。したがって電子透かしはこういった操作に対する耐性が要求される。
【0007】
電子透かしの耐性を高めるための電子透かしの埋め込み技術が提案されているが、人間の視覚特性に合わせて、画像のエッジ部分やテクスチャ領域の中でも変化の大きな部分など高周波成分に電子透かしを埋め込む方法であり、個々のコンテンツデータの内容に強く依存し、透かし埋め込み後のコンテンツデータに対するさまざまな操作に対して耐性を強化するには、汎用性や柔軟性の面で限界がある。
【0008】
また、画像を圧縮符号化する際、画像をブロックに分割して、ブロック単位で圧縮符号化が行われる。ブロック分割することで、処理に必要なメモリ量を一定量に抑えることができるからである。一方、電子透かしは画像全体に埋め込まれるのが普通であり、ブロック単位の圧縮符号化との整合性がなく、画像全体をバッファするメモリを前提とした埋め込み処理であるため、大きなメモリ容量が必要である。
【0009】
本発明はこうした状況に鑑みてなされたもので、その目的は、耐性の強い電子透かしを埋め込み、電子透かしの検出誤差を低減することの可能な技術の提供にある。また別の目的は、圧縮符号化および復号に同期して、電子透かしの埋め込みおよび抽出を行うことの可能な技術の提供にある。
【0010】
【課題を解決するための手段】
本発明のある態様は電子透かし埋め込み方法に関する。この方法は、ホストデータの圧縮符号化と同期して、圧縮符号化の行われるブロックを電子透かしの埋め込み単位として、複数のブロックに実質的に同一の電子透かしデータを重複して埋め込む。
【0011】
ここでいうブロックとは、ホストデータを分割して圧縮符号化する際の処理単位であり、通常、一定のサイズであり、その処理単位毎にメモリに格納されて圧縮符号化処理がなされる。圧縮符号化の処理単位で電子透かしが埋め込まれるため、メモリ効率がよく、圧縮符号化と連動してリアルタイムに電子透かしの埋め込み処理が可能である。また複数のブロックに実質的に同一の電子透かしデータが繰り返し埋め込まれるため、透かしの耐性が強化される。ここで「実質的に同一の電子透かしデータ」とは、同一の電子透かしをブロック番号などの情報を用いてブロックごとに変更して埋め込む場合や、透かしのデータをブロックのデータに依存してスクランブルする場合も含める趣旨である。
【0012】
ホストデータは、電子透かしを埋め込む対象となるオリジナルデータであり、たとえば静止画、動画、音声などのデータである。埋め込まれる電子透かしには、オリジナルデータの識別情報、作成者情報、利用者情報などが含まれる。その他、認証を目的として、ホストデータのダイジェストデータ、すなわちホストデータの特徴を端的に表したデータを電子透かしとして埋め込むことも可能である。電子透かしの耐性とは、電子透かしの埋め込まれたホストデータが改変されるなどの攻撃を受けた場合や、電子透かしの埋め込まれたホストデータに圧縮符号化やフィルタリングなどの信号処理が施された場合など、電子透かしの埋め込み後のホストデータに対して何らかの操作が加えられた場合に電子透かしデータがもつ頑強性をいう。
【0013】
前記複数のブロックの各々に前記透かしデータを埋め込む際、前記透かしデータをスクランブルして生成された複数の透かしデータの候補を埋め込み、埋め込まれた透かしの候補の耐性をそれぞれ評価し、その評価が良好である前記透かしデータの候補が埋め込まれたブロックを埋め込みブロックとして選択してもよい。このようにブロックごとに透かしデータをスクランブルして高い耐性をもつ透かしデータを埋め込むことにより、ブロックごとのデータの特性を活かして、透かしの耐性をさらに強化することができる。
【0014】
電子透かしを埋め込む側では、電子透かしデータをスクランブルする際、元の電子透かしデータを複数の透かしデータの候補に対応づける1対多の写像が用いられる。電子透かしを抽出する側では、逆写像を行って、スクランブルされた透かしデータから元の電子透かしデータを得る。そのため電子透かしを抽出する側では、元の電子透かしデータと複数の透かしデータの候補の対応テーブルが利用されてもよい。また、電子透かしを埋め込む側で、元の電子透かしデータから所定の初期値のもとで複数の透かしデータの候補を生成するスクランブル関数が利用されてもよい。この場合、電子透かしを抽出する側では、スクランブルに利用された初期値とスクランブル関数にもとづいて、抽出された電子透かしの逆スクランブルが行われる。
【0015】
本発明の別の態様は符号化装置に関する。この装置は、ホストデータをブロック単位で圧縮符号化する符号化処理部と、ホストデータの圧縮符号化と同期して、圧縮符号化の行われる複数のブロックに実質的に同一の電子透かしデータを埋め込む透かし埋め込み処理部とを含む。前記透かし埋め込み処理部は、前記透かしデータをスクランブルして複数の透かしデータの候補を生成するスクランブル部と、前記ブロックに前記複数の透かしデータの候補のそれぞれを埋め込み、複数の埋め込みブロックの候補を生成する埋め込み部と、前記複数の埋め込みブロックの候補の各々について、当該電子透かしの耐性を評価する評価部と、前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の一つを選択する選択部とを含む。
【0016】
前記埋め込み部は、前記複数のブロックに埋め込まれる前記透かしデータの情報系列を誤り訂正符号化したときのパリティ系列を、前記複数のブロックの内、一部のブロックに電子透かしとして埋め込んでもよい。前記透かし埋め込み処理部は、圧縮符号化の行われるN個のブロックの内、K個のブロックに埋め込まれるべき前記透かしデータの情報ビットからなる情報系列を、符号化率がK/Nの誤り訂正符号を用いて誤り訂正符号化し、残りの(N−K)個のブロックに埋め込まれるべき、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列を生成するブロック誤り訂正符号化部をさらに含んでもよい。透かしデータの情報ビットがnビット(nは整数)であるとすると、K個のブロックに埋め込まれる情報系列はn×Kビットである。このK個のブロックに埋め込まれた情報系列の全体をK/Nの符号化率で誤り訂正符号化すると、全体でn×(N−K)ビットのパリティ系列が得られる。このパリティ系列をnビットずつ区切ることにより得られるnビットの冗長ビットを(N−K)個のブロックに電子透かしとして埋め込む。K個のブロックを情報系列埋め込み用ブロックと呼び、(N−K)個のブロックをパリティ系列埋め込み用ブロックと呼ぶ。情報系列埋め込み用ブロックに埋め込まれる情報ビット、およびパリティ系列埋め込み用ブロックに埋め込まれる冗長ビットはともにnビットであるから、電子透かしとしての埋め込み時には特に区別することなく両者を同一の方式で埋め込むことができる。
【0017】
本発明のさらに別の態様は復号装置に関する。この装置は、符号化ホストデータをブロック単位で復号する復号処理部と、前記符号化ホストデータの復号と同期して、復号の行われる複数のブロックから実質的に同一の電子透かしデータを抽出する透かし抽出処理部とを含む。前記透かし抽出処理部は、復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出する抽出部と、前記スクランブルされた透かしデータのスクランブルを解除するデスクランブル部と、前記複数のブロックから抽出された複数の前記透かしデータを多数決判定することにより、埋め込まれた透かしデータを特定する判定部とを含む。複数のブロックから透かしデータを抽出して多数決判定することにより、透かしデータの検出精度を向上させることができる。
【0018】
前記抽出部は、前記複数のブロックから抽出される前記透かしデータの情報系列の誤り訂正のためのパリティ系列を、前記複数のブロックの内、一部のブロックから電子透かしとして抽出してもよい。前記透かし抽出処理部は、復号の行われるN個のブロックの内、K個のブロックから抽出される前記透かしデータの情報ビットからなる情報系列を、残りの(N−K)個のブロックから抽出される、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列により、誤り訂正するブロック誤り訂正復号部をさらに含んでもよい。
【0019】
本発明のさらに別の態様はコンピュータプログラムに関する。このプログラムは、ホストデータの圧縮符号化と同期して、スクランブルして生成された複数の電子透かしデータの候補を、圧縮符号化の行われるブロックに埋め込み、複数の埋め込みブロックの候補を生成するステップと、前記複数の埋め込みブロックの候補の各々について、埋め込まれた電子透かしの耐性を評価するステップと、前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の1つを最終的に電子透かしが埋め込まれたブロックとして選択するステップとをコンピュータに実行させる。
【0020】
本発明のさらに別の態様もコンピュータプログラムに関する。このプログラムは、符号化ホストデータの復号と同期して、復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出するステップと、前記スクランブルされた透かしデータのスクランブルを解除するステップと、前記複数のブロックから抽出された複数の前記透かしデータを多数決判定して、埋め込まれた透かしデータを特定するステップとをコンピュータに実行させる。
【0021】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【0022】
【発明の実施の形態】
実施の形態1
図1は、実施の形態1に係る符号化装置100の構成を示す。この構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた電子透かし埋め込み機能および圧縮符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【0023】
符号化装置100は、ホストデータSを圧縮符号化する符号化処理部10と、圧縮符号化が行われるホストデータSのブロックVに透かし情報Iを埋め込む透かし埋め込み処理部38とを含む。ホストデータSは、たとえば音声、静止画、動画などのデータである。透かし情報Iは、そのホストデータSの識別情報、作成者情報、利用者情報など著作権に関する情報、ホストデータSの改ざん検出を行う認証情報、タイムスタンプなどである。以下では、ホストデータSとして画像を例に挙げ、ブロックVは二次元のピクセルデータであるとして説明するが、ホストデータSが音声であっても、圧縮符号化の処理単位として一次元のブロックVを考えることができ、同様の処理が可能である。
【0024】
ホストデータSは符号化処理部10のブロック分割部12によりブロックVに分割され、直交変換部14により離散コサイン変換や離散ウェーブレット変換などの直交変換により、空間周波数成分に変換される。直交変換部14により直交変換されたブロックVは、透かし埋め込み処理部38に供給される。透かし埋め込み処理部38はブロックVに透かし情報Iを埋め込み、埋め込みブロックWを符号化処理部10の量子化部16に与える。量子化部16は埋め込みブロックWを量子化する。可変長符号化部18は、ホストデータSの量子化された埋め込みブロックWを可変長符号化することにより、ホストデータSを圧縮し、透かし入り符号化ホストデータTを出力する。
【0025】
透かし埋め込み処理部38の暗号化部32は、秘密鍵Kを用いて、透かし情報Iを暗号化して、透かしデータXを生成する。暗号化部32は、ブロック分割部12から現在符号化処理中のブロックVのブロック番号の入力を受けて、ブロック番号によって透かし情報Iを暗号化することもできる。この場合、同一の透かし情報Iに対してブロック毎に異なる透かしデータXが生成されるが、暗号を復号して元の透かし情報Iを一意に復元できるため、ブロック番号によって異なる透かしデータXを実質的に同一の透かしであるとして扱う。
【0026】
変更部34は、暗号化部32から透かしデータXの入力を、直交変換部14から現在符号化処理中のブロックVの入力を受けて、ブロックVに依存して透かしデータXをスクランブルし、スクランブルされた透かしデータX’を出力する。埋め込み部36は、秘密鍵Kを用いて、直交変換部14から入力される現在符号化処理中のブロックVにスクランブルされた透かしデータX’を埋め込み、埋め込みブロックWを出力して量子化部16に与える。秘密鍵Kに依存しない埋め込み方式を用いてもよい。
【0027】
透かし埋め込み処理部38による透かし埋め込み処理は、符号化処理部10によって圧縮符号化がなされるホストデータSのすべてのブロックVについて、繰り返し行われ、すべてのブロックVに同一もしくは実質的に同一の透かしデータXが埋め込まれることになる。
【0028】
変更部34と埋め込み部36は協同して、複数のスクランブルされた透かしデータX’を生成し、それぞれをブロックVに埋め込み、複数の埋め込みブロックWの候補を生成し、それらの候補の一つを選択する機能をもつ。
【0029】
図2は変更部34と埋め込み部36の機能構成図である。L個のマルチプレクサ20は、透かしデータXの先頭にそれぞれ初期データC〜CL−1を挿入したL種類のビット系列Xを生成する。L個のスクランブラ22はL種類のビット系列をそれぞれスクランブルして、L種類のスクランブルされた透かしデータX’を生成する。L個のECC(Error Correction Code)部24はL種類のスクランブルされた透かしデータX’のそれぞれに誤り訂正のためのパリティを付加した透かしデータX’を生成する。ECC部24は、透かしビットの検出率を向上させるためのオプションであって、アプリケーションによっては必要ない場合もあり、この構成を省略してもよい。また、スクランブラ22とECC部24の順序を逆にして、L種類のビット系列に誤り訂正のためのパリティを付加した後に、それらをスクランブルして、L種類のスクランブルされた透かしデータを生成してもよい。
【0030】
L個の埋め込み部26は、L種類のスクランブルされた透かしデータX’のそれぞれを、圧縮符号化の行われるブロックVに埋め込み、L種類の埋め込みブロックWの候補を生成する。L個のSNR計算部28は、L種類の埋め込みブロックWの候補のそれぞれについて、透かしデータXの耐性を評価する。セレクタ30は、耐性の評価値が最良である埋め込みブロックWの候補を選択し、それを最終的な埋め込みブロックWとして出力する。
【0031】
図3は、実施の形態1に係る復号装置200の構成を示す。符号化装置100により電子透かしが埋め込まれて圧縮された、透かし入り符号化ホストデータTは、ネットワーク上で流通し、コンピュータにおいて利用される。その過程で透かし入り符号化ホストデータTは圧縮符号化や改ざんなどの操作を受ける。画像データであれば、JPEG圧縮、フィルタリング、量子化、色補正などの信号処理や、スケーリング、クロッピング、回転、並行移動等の幾何学的な変換など有用性のある操作が施されたり、電子透かしを除去したり改変するなどの不正な攻撃が加えられたりする。そのような操作による変形を埋め込みホストデータTに対するノイズNとみなし、ノイズNが付加した透かし入り符号化ホストデータTをT’(=T+N)と表記する。同様に透かし入り符号化ホストデータTの埋め込みブロックWについてもノイズNが付加したものをW’(=W+N)と表記する。
【0032】
復号装置200は、透かし入り符号化ホストデータT’を復号する復号処理部60と、透かし入り符号化ホストデータT’の埋め込みブロックW’から透かし情報Iを抽出する透かし抽出処理部40とを含む。
【0033】
透かし入り符号化ホストデータT’は復号処理部60の可変長符号復号部62により可変長符号が復号され、ブロック分割部64により埋め込みブロックW’に分割される。逆量子化部66は埋め込みブロックW’を逆量子化する。逆直交変換部68は埋め込みブロックW’を逆直交変換して、透かし入りホストデータU’を出力する。逆量子化部66は、透かしの抽出のために、逆量子化後の埋め込みブロックW’を透かし抽出処理部40に与える。
【0034】
透かし抽出処理部40の抽出部42は、秘密鍵Kを用いて、逆量子化部66から入力される現在復号処理中の埋め込みブロックW’に埋め込まれた透かしデータX’を抽出する。ECC復号部44はこの透かしデータX’に付加されているパリティビットを用いて誤り訂正を行い、透かしデータX’を生成する。デスクランブラ46は、誤り訂正後の透かしデータX’のスクランブルを解除し、透かしデータXを出力する。暗号復号部48は、秘密鍵Kを用いて、暗号化されている透かしデータXを復号して元の透かし情報Iを出力する。
【0035】
以上の透かし抽出処理を、復号処理部60が復号する透かし入り符号化ホストデータT’の埋め込みブロックW’に対して、繰り返し行うことで、すべての埋め込みブロックW’からそれぞれ透かし情報Iを抽出することができる。多数決判定部50は、すべての埋め込みブロックW’から抽出された複数の透かし情報Iを多数決判定して、最も多い透かし情報Iを正しい透かし情報Iであると特定する。
【0036】
多数決判定部50は、多数決判定により特定された透かし情報Iが検出された埋め込みブロックW’の数が所定の閾値より小さい場合には、透かしが埋め込まれていないと判断する。あるいは、何らかの透かしが埋め込まれていることが仮定されている場合には、多数決判定部50は、ホストデータSに対する改ざんが多数のブロックVに及んでいるため、正しい透かしの検出ができない旨の警告を出力してもよい。また、多数決判定部50は、最終的に特定された透かし情報Iとは異なる透かしが検出された埋め込みブロックW’については、改ざんの可能性があると判断し、その埋め込みブロックW’のブロック番号を通知する警告メッセージを出力することもできる。
【0037】
なお、多数決判定部50は、暗号復号部48により暗号が復号される前の透かしデータXについて、多数決判定を行うようにしてもよい。また、多数決判定部50は、抽出された複数の透かしビット列全体を互いに比較して、多数決判定により正しい透かしビット列を特定してもよく、あるいは、透かしの情報語の単位で互いに比較して、正しい情報語を特定してもよい。さらに、透かしデータXの情報ビット単位で多数決判定を行い、ビット毎に正しい値を特定してもよい。
【0038】
以上の構成の符号化装置100および復号装置200による電子透かしの埋め込みと抽出の手順を説明する。図10は、符号化装置100の透かし埋め込み処理部38による電子透かしの埋め込み手順を説明するフローチャートである。フローチャートの説明にあたり、図4から図9を適宜参照する。
【0039】
マルチプレクサ20は、暗号化部32により暗号化された透かしデータXの先頭にL種類の初期データを挿入してL個の符号系列を生成し(S10)、スクランブラ22は、それらの符号系列をスクランブルしてL種類のスクランブルされた透かしデータX’を生成する(S12)。
【0040】
図4は、透かしデータXとL種類のスクランブルされた透かしデータX’との関係を示す。(n−r)ビットの透かしデータXの先頭に、rビットの冗長語を識別データID[0]〜ID[L−1]として付加し、L種類の透かしデータの候補を作成する。最大2種類の候補が作成される。これらの候補に含まれる透かしデータXのビット列はこれから述べるスクランブル方式により、スクランブルされる。
【0041】
スクランブル方式の一例として、伝送や磁気記録におけるデジタル変調の際に利用されるGS(Guided Scramble)方式を採用する。GS方式は、ある一定のデータブロック長からなる情報系列に対して、L種類の符号系列を生成し、これらを次に送信する符号系列の候補として扱う。これらの候補の中から、伝送媒体の性質に合わせて最適なものを選択して最終的な符号系列とする。このGS方式により、多様性に富んだ符号系列の候補を簡単な方法で生成することができる。
【0042】
符号化装置100におけるマルチプレクサ20とスクランブラ22がGS符号化器の一部として機能する。GS符号化器は、Mビットからなる情報系列D(x)の直前にL種類のrビットの冗長語c(i=0,・・・,L−1)を付加し、L種類の符号系列c+D(x)を生成する。この符号系列の符号長は(M+r)ビットとなる。このようにして冗長語が付加された符号系列に対して、次式のようにN次元のスクランブル多項式S(x)で除算することにより商T(x)を求める。
【0043】
(x)=QS(x)[(c+D(x))x] (1)
ただし、Q[b]はbをaで除算した商を示す。商集合{T(x),・・・,TL−1(x)}がスクランブル後の符号系列の候補である。これらの候補の各々について、その符号系列が実際に用いられた際の性能を評価し、その評価値が最良であるものを最終的な符号系列として選択する。
【0044】
復調時には、復号装置40におけるデスクランブラ46がGS復号器として機能し、符号系列にS(x)を乗算し、下位Nビットと上位rビットの変換情報を捨てることにより、元の情報系列D(x)が得られる。
【0045】
ここでスクランブル多項式S(x)として、S(x)=x+1を用いた場合を説明する。M mod r=0の場合、(1)式は次式に示す畳み込み演算で表現可能である。
【0046】
=d(+)c (j=0)
=d(+)tj−1 (j=1,・・・,M/r−1)
ただし、i=0,・・・,L−1であり、dは元の情報系列D(x)をrビットずつ区切ったビット列、tは変換後の符号系列T(x)の先頭のrビットの冗長語c以降をrビットずつ区切ったビット列である。また(+)は排他的論理和(EX−OR)演算を示す。
【0047】
図5はこの符号化時の畳み込み演算を説明する図である。たとえば、M=6、r=2の場合を考える。元の情報系列D(x)=(1,0,1,0,0,1)に対して、冗長語c=(0,0)を付加して、変換後の符号系列T(x)を生成する。上記の符号化時の畳み込み演算により、t=d(+)c=(1,0)(+)(0,0)=(1,0)、t=d(+)t=(1,0)(+)(1,0)=(0,0)、t=d(+)t=(0,1)(+)(0,0)=(0,1)となり、変換後の符号系列T=(0,0,1,0,0,0,0,1)が得られる。ここで変換後の符号系列Tの先頭の2ビットは冗長語cであることに注意する。
【0048】
同様にして、冗長語c=(0,1)、c=(1,0)、c=(1,1)に対して、それぞれ変換後の符号系列T=(0,1,1,1,0,1,0,0)、T=(1,0,0,0,1,0,1,1)、T=(1,1,0,1,1,1,1,0)が得られる。
【0049】
復号時は次式のように畳み込み演算を行うことにより、元の情報系列D(x)が得られる。
【0050】
=t(+)c (j=0)
=t(+)tj−1 (j=1,・・・,M/r−1)
【0051】
図6はこの復号時の畳み込み演算を説明する図である。前述の例において、変換後の符号化系列T=(0,0,1,0,0,0,0,1)が与えられると、先頭の2ビットから冗長語c=(0,0)が得られ、上記の復号時の畳み込み演算により、d=t(+)c=(1,0)(+)(0,0)=(1,0)、d=t(+)t=(0,0)(+)(1,0)=(1,0)、d=t(+)t=(0,1)(+)(0,0)=(0,1)となり、元の情報系列D(x)=(1,0,1,0,0,1)が得られる。他の変換後の符号化系列T,T,Tについてもこの畳み込み演算により、元の情報系列D(x)が得られる。
【0052】
再び図10を参照する。スクランブラ22によって生成されたL種類のスクランブルされた透かしデータX’は、ECC部24により誤り訂正のためのパリティを付加された後に、埋め込み部26によりホストデータVのブロックVに埋め込まれる(S14)。
【0053】
L種類のスクランブルされた透かしデータX’をx,x,・・・,xL−1とする。各透かしデータの候補のビット系列は、次式のように表される。先頭のrビットは識別データである。また、スクランブル処理後のビット0は、−1に置き換えて、以下の処理を行う。
【0054】
={−1,・・・,−1,−1,x ,x ,・・・,x n−r−1
={−1,・・・,−1,1,x ,x ,・・・,x n−r−1
・・・
L−1={1,・・・,1,1,xL−1 ,xL−1 ,・・・,xL−1 n−r−1
【0055】
ホストデータSのブロックV内から、nビットの透かしデータの埋め込み対象としてサンプル集合のペア(V,V)を選択する。埋め込みサンプルの集合V,Vは、それぞれ次のようにn個の要素をもつ。
【0056】
={v ,v ,・・・,v n−1
={v ,v ,・・・,v n−1
ここでサンプルの集合V,Vの要素であるサブセットv 、v (i=0,1,・・・,n−1)は、いずれも同一のブロックV内でランダムに選択されたm個のサンプルデータからなる。
【0057】
={v i,0,v i,1,・・・,v i,m−1
={v i,0,v i,1,・・・,v i,m−1
【0058】
透かしデータの候補x(k=0,・・・,L−1)をサンプル集合のペア(V,V)に次のように埋め込み、L種類の埋め込みブロックの候補Wを生成する。
【0059】
+k i,j=v i,j+α i,j・x
−k i,j=v i,j−α i,j・x
ここでα i,jおよびα i,jは人間の視覚モデルにもとづいて知覚されるノイズを減少するためのスケーリングパラメータであり、いずれも正の値である。あるいは、α i,jおよびα i,jは、ある確率分布、たとえばガウシアン分布、一様分布などに従うように、秘密鍵Kによって生成される正の値であってもよい。この場合、透かしの埋め込み強度は減少するが、埋め込まれた透かしの秘匿性は向上する。このようにして、k番目の透かしデータの候補の各ビットx は各サブセットv 、v のそれぞれm個のサンプルに重複して埋め込まれる。重複の数mが大きいほど、透かしビットが失われる可能性が低くなり、検出誤差が小さくなる一方で、ホストデータに埋め込むことができる透かしのビット数が減少する。α i,jおよびα i,jは、視覚上の劣化を検知できないように各ピクセル毎に設定される値であり、原理的には、埋め込むピクセル数mを増やしても、人間の視覚上、画質の劣化は検知されない。しかし、1ビットを埋め込むのに費やすピクセル数が増加するということは、埋め込み領域には制限があるため、埋め込むことができるビット数が減少することを意味し、したがって埋め込み率の低下を招くことなる。
【0060】
符号化処理部10の直交変換部14が、ホストデータSを離散コサイン変換(Discrete Cosine Transform)により変換するときは、ブロックVはDCTブロックであり、サンプル集合の各サブセットv 、v のm個のサンプルデータは、1つのDCTブロックに含まれるm個のDCT係数である。
【0061】
図7は、離散コサイン変換されたホストデータSのブロックVにスクランブルされた透かしデータX’が埋め込まれる様子を説明する図である。同図のように、JPEGで用いられている離散コサイン変換では、ホストデータSの空間領域は縦横8ピクセルからなるブロックVに分割され、それぞれのブロックVが空間周波数成分に変換される。直交変換後の各ブロックVにスクランブルされた透かしデータX’の透かしビット列xが埋め込まれる。
【0062】
図8は、8×8のサイズのDCTブロックであるブロックV内の2m個のDCT係数に透かしビットx が埋め込まれる様子を示している。各サブセットv 、v として選ばれるそれぞれm個のDCT係数は、秘密鍵Kに基づいて選択される。このようにして、1ビットの透かしが1つのブロックVに埋め込まれる。この処理をn回繰り返すことで、ブロックV内の2nm個のDCT係数にnビットの透かしデータが埋め込まれる。
【0063】
直交変換部14が、ホストデータSを離散ウェーブレット変換(Discrete Wavelet Transform)により変換するときは、ブロックVは、離散ウェーブレット変換により生成されるサブバンドであり、サンプル集合の各サブセットv 、v のm個のサンプルデータは、1つのサブバンドに含まれるm個のウェーブレット変換係数である。
【0064】
図9は、離散ウェーブレット変換されたホストデータSの各サブバンドを説明する図である。同図に示すとおり、ホストデータSは離散ウェーブレット変換により4つの周波数サブバンドへ分割される。これらのサブバンドは、縦横両方向において低周波成分を有するLLサブバンドと、縦横のいずれかひとつの方向において低周波成分を有し、かつもう一方の方向において高周波成分を有するHLおよびLHサブバンドと、縦横両方向において高周波成分を有するHHサブバンドである。各サブバンドの縦横のピクセル数は処理前のホストデータSのそれぞれ1/2であり、一回のフィルタリングでサイズが1/4のサブバンドデータが得られる。
【0065】
こうして得られたサブバンドのうち、LLサブバンドに対して離散ウェーブレット変換によるフィルタリング処理が再度施され、さらにLL、HL、LH、HHの4つのサブバンドに分割される。このフィルタリングは所定の回数行われ、最後のフィルタリングで生じたLLサブバンドがホストデータVのDC成分に最も近いデータとなる。
【0066】
同図の例では、ホストデータSに離散ウェーブレット変換が3回施され、第1階層のHLサブバンドHL、LHサブバンドLHおよびHHサブバンドHH、第2階層のHLサブバンドHL、LHサブバンドLHおよびHHサブバンドHH、第3階層のLLサブバンドLL、HLサブバンドHL、LHサブバンドLH、およびHHサブバンドHHの順に圧縮符号化が行われる。透かし埋め込み処理部38は、これらのサブバンドの各々を透かしデータX’の埋め込みブロックとして透かしデータX’を埋め込む。各サブセットv 、v として選ばれるそれぞれm個のウェーブレット変換係数は、各サブバンドから秘密鍵Kに基づいて選択される。
【0067】
図10に戻り、SNR計算部28は、L種類の埋め込みブロックの候補Wに対して透かしデータxの耐性、すなわち埋め込み強度を評価し(S16)、セレクタ30は埋め込み強度が最大となる埋め込みブロックの候補Wを最終的な埋め込みブロックWとして選択する(S18)。
【0068】
埋め込み強度の評価式を与える前に、埋め込みブロックWに対して信号処理や画像処理などにより変形が加えられた場合に、透かしデータX’がどのように検出されるかを検討する。埋め込みブロックWに加えられる変形をノイズNとして扱う。ノイズの付加された埋め込みブロックW’から透かしデータX’を抽出する方法を説明する。埋め込みブロックの集合のペア(W’,W’)を次のように定義する。埋め込みブロックの集合W’,W’は次のようにそれぞれn個の要素をもつ。
【0069】
W’={w’ ,w’ ,・・・,w’ n−1
W’={w’ ,w’ ,・・・,w’ n−1
ここで埋め込みブロックの集合W’,W’の要素である各サブセットw’ 、w’ は、電子透かしの埋め込み位置に対応して、次のように埋め込みブロックW’のm個のサンプルデータからなる。
w’ ={w’ i,0,w’ i,1,・・・,w’ i,m−1
w’ ={w’ i,0,w’ i,1,・・・,w’ i,m−1
【0070】
透かしビットx を検出するために、次の検出値zを計算する。
=Σj=0 m−1(w’ i,j−w’ i,j
=Σj=0 m−1[(w i,j+n i,j)−(w i,j+n i,j)]
=Σj=0 m−1[(v i,j−v i,j)+(α i,j+α i,j)・x +(n i,j−n i,j)]
ここでΣj=0 m−1(v i,j−v i,j)はmが十分に大きいとき、一般にガウス分布に従い、0に近づく。またノイズの項Σj=0 m−1(n i,j−n i,j)についても同様に0に近づく。したがって、zはΣj=0 m−1[(α i,j+α i,j)・x ]の値で近似できる。(α i,j+α i,j)は正であるから、透かしビットx が1ならばzは正であり、透かしビットx が−1ならばzは負である。したがってzの正負により透かしビットx の値を判定することができる。
【0071】
埋め込み強度の評価は、ホストデータSのブロックVを透かしデータXに対するノイズとみなして、埋め込まれた透かしデータxに対して検出される透かしデータの分散を計算することにより行われる。分散が小さいほど、耐性が強いと考えることができる。埋め込みブロックの候補のペア(W+k,W−k)に対して次式によりSN比を評価して、最適な候補Kを選択する。
【0072】
K=argmax(P/σ
=Σi=0 n−1|Σj=0 m−1(w+k i,j−w−k i,j)|/n
σ =Σi=0 n−1|Σj=0 m−1(w+k i,j−w−k i,j)−P 1/2・x /n
【0073】
透かしビットx が{1,−1}のいずれであるかを判定するための前述の検出値zは、埋め込みブロックWにノイズが付加される前の状態では、z=Σj=0 m−1(w+k i,j−w−k i,j)で与えられることを考慮すると、分散σ は、透かしビットに関する検出値zと実際に埋め込まれた透かしビットの平均値P 1/2・x との差の自乗をi=0,・・・,n−1について評価して平均化したものであると言える。ただし、Pは検出値zのi=0,・・・,n−1についての自乗平均であり、埋め込まれた透かしの平均パワーを示す。したがって、埋め込まれた透かしデータxと抽出される透かしデータとの間のユークリッド距離が小さく、透かしビットを検出するための検出値の絶対値が大きいほど、P/σ の値は大きくなる。言い換えれば、P/σ が最大となる候補を選択することは、透かしビットの検出誤差が最小である候補を選択することを意味する。
【0074】
検出値zについて、v i,j>v i,jかつx =1ならばz>>0となり、v i,j<v i,jかつx =−1ならばz<<0となる。したがって前述の評価により最適な透かしデータxの候補を選択することは、検出値zによる透かしビットx の検出性能を向上させるために、v i,j>v i,jならばx’=1となり、v i,j<v i,jならばx’=−1となるように、元の透かしビットxをx’に変更することを意味する。これがGS方式のガイディングルールであり、これにより検出値zのレスポンスが改善する。
【0075】
SNR計算部28は、L種類の埋め込みブロックWの候補について、透かしデータXの耐性を評価する際に、圧縮符号化の際の量子化誤差を考慮に入れてもよい。具体的には、埋め込まれた透かしデータと検出される透かしデータとの間の分散により埋め込み強度を評価する際に、埋め込みホストデータWに対する量子化誤差を考慮した以下の重み付け分散を用いる。
【0076】
K=argmax(P/σ
=Σi=0 n−1|Σj=0 m−1(w*+k i,j−w*−k i,j)|/n
σ =Σi=0 n−1|Σj=0 m−1(w*+k i,j−w*−k i,j)−P 1/2・x /n
ここでw*+k i,j、w*−k i,jは量子化がなされた後の埋め込みホストデータWである。たとえばJPEG2000による圧縮符号化がなされる場合、w*+k i,j、w*−k i,jはJPEG2000の量子化方法を用いて以下のように計算することができる。
【0077】
JPEG2000の規格書「ISO/IEC 15444-1: JPEG 2000 image coding system, JPEG 2000 final committee draft, 18 August 2000」にもとづいて、JPEG2000の量子化方法を簡単に説明する。サブバンドbにおける量子化前のウェーブレット変換係数をa(u,v)、サブバンドbにおける量子化後のウェーブレット変換係数をq(u,v)とすると、JPEG2000では以下の量子化式を用いてウェーブレット変換係数の量子化が行われる。
【0078】
(u,v)=sign(a(u,v))・[|a(u,v)|/Δb]
ここで[x]はxを越えない最大の整数を表す。Δbはサブバンドbにおける量子化ステップであり、次式で与えられる。
Δb=2^(R−ε)・(1+μ/211
ここでRはサブバンドbにおけるダイナミックレンジ、εはサブバンドbにおける量子化の指数、μはサブバンドbにおける量子化の仮数である。
【0079】
このようにJPEG2000では、同一のサブバンドに属するウェーブレット変換係数は同じ量子化ステップで除算され、整数の値に丸められる。ブロックVに埋め込まれる透かしデータXはこのような量子化演算に対して耐性をもつ必要があるため、JPEG2000による量子化がなされた後の埋め込みブロックWの値を算出して、上述のようにその算出された埋め込みブロックWに対して透かしデータの耐性を評価する。透かし埋め込み処理部38は、符号化処理部10による圧縮符号化に同期して透かしの埋め込み処理を行うため、符号化処理部10において用いられる量子化パラメータを適宜参照することができる。
【0080】
図11は、復号装置200の透かし抽出処理部40による電子透かしの抽出手順を説明するフローチャートである。透かし抽出処理部40の抽出部42は、ノイズの付加された埋め込みブロックW’を受け取ると、ECC復号部44が硬入力の復号器で構成される場合には、検出値zを次のように計算し、検出値zの正負で、透かしビットx’が{−1,1}のいずれであるかを判定し、透かしデータX’を得る(S30)。また、ECC復号部44が軟入力の復号器で構成される場合には、検出値zを{−1,1}に硬判定することなく、そのまま、ECC復号部44に送る。
【0081】
=Σj=0 m−1(w’ i,j−w’ i,j
=Σj=0 m−1[(w i,j+n i,j)−(w i,j+n i,j)]
=Σj=0 m−1[(v i,j−v i,j)+(α i,j+α i,j)・x’+(n i,j−n i,j)]
【0082】
抽出された透かしデータX’はさらにECC復号部44により誤り訂正がなされ、デスクランブラ46によりスクランブルを解除され、元の透かしデータXが得られる(S32)。
【0083】
多数決判定部50は、複数の埋め込みブロックW’から得られる複数の透かしデータXを多数決判定することにより、埋め込まれた透かしを特定する(S34)。多数決判定部50は、多数決判定により特定された透かしと同じ透かしデータXが抽出された埋め込みブロックW’の数が所定の閾値より小さい場合(S36のN)、透かしが埋め込まれていないと判定する(S38)。特定された透かしが抽出された埋め込みブロックW’の数が所定の閾値以上の場合(S36のY)、特定された透かしとは異なる透かしデータXが抽出された埋め込みブロックW’について改ざんの可能性がある旨を警告する(S40)。
【0084】
以上述べたように、実施の形態によれば、ホストデータSの圧縮符号化処理に同期して透かしを埋め込むため、圧縮符号化に利用される小容量のメモリを利用して、圧縮符号化と同時に透かしの埋め込みが可能である。また、同様に透かし入り符号化ホストデータTの復号に同期して透かしを抽出することができる。
【0085】
また、GS方式を利用することにより、電子透かしを埋め込む画像や音声などのメディアデータが与えられると、透かしビット系列をそのメディアデータに埋め込みやすいビット系列に変換した上で埋め込むことができる。したがって信号処理、幾何変換、圧縮、データの改ざんなどに対する電子透かしの耐性を強化することができ、透かしの検出精度が大幅に改善する。
【0086】
また、複数のブロックVに実質的に同一の透かしを重複して埋め込むため、透かしの耐性をさらに強化することができる。また、ブロックVのデータ特性によっては、透かしの埋め込みが困難な場合もあるが、複数のブロックVを埋め込み対象とすることにより、比較的埋め込みやすいブロックに耐性を強化した透かしを埋め込むことができ、透かし抽出時の多数決判定により、全体として透かしの検出精度を向上させることができる。さらに、多数決判定により、ブロック単位で改ざんの有無を調べることができる。
【0087】
実施の形態2
図12は実施の形態2に係る符号化装置100の構成図である。本実施の形態では、GS符号化による透かしの埋め込みを行う前に誤り訂正符号化を行う点が、実施の形態1とは異なる。以下、実施の形態1と共通する構成については同一符号を付して説明を省き、実施の形態1とは異なる構成と動作について説明する。
【0088】
本実施の形態の透かし埋め込み処理部38は、圧縮符号化の行われるN個のブロックVの各々に独立に(n−r)ビットの透かし系列を埋め込む際、各ブロックVの(n−r)ビットの透かし系列を全てのブロックVにまたがって連結した(n−r)×Nビットのビット系列が、符号化率K/Nで誤り訂正符号化された一つの符号語を構成するように誤り訂正符号化を行う。このようなN個のブロックV全体を用いる誤り訂正符号の一例として、リードソロモン符号やBCH符号などのブロック符号(以下、ブロックECCと呼ぶ)を用いる。この誤り訂正符号化の処理により、圧縮符号化の行われる複数のブロックVの内、一部のブロックVに、冗長データが埋め込まれることになる。
【0089】
ブロックECC部33は、暗号化部32によって生成された透かしデータXの情報ビットDを後述のブロック誤り訂正符号により符号化して、冗長ビットPを出力する。セレクタ35は、暗号化部32から透かしデータXの情報ビットDの入力を、ブロックECC部33から透かしデータXの冗長ビットPの入力を受け、ブロック分割部12から入力される現在符号化処理中のブロックVのブロック番号にもとづいて、情報ビットDと冗長ビットPのどちらかを選択し、変更部34に与える。変更部34と埋め込み部36により、情報ビットDまたは冗長ビットPがGS符号化されて、現在符号化処理中のブロックVに透かしとして埋め込まれる。
【0090】
図13はブロック誤り訂正符号を説明する図である。ホストデータSのN個のブロックVは、K個の情報系列埋め込み用ブロック110と、(N−K)個のパリティ系列埋め込み用ブロック120に分けられる。暗号化部32により生成された(n−r)ビットの透かしデータXの情報ビットDは、K個の情報系列埋め込み用ブロック110の各々に埋め込まれる。K個の情報系列埋め込み用ブロック110に埋め込まれる(n−r)×Kビットの情報系列の全体をK/Nの符号化率で誤り訂正符号化すると、全体で(n−r)×(N−K)ビットのパリティ系列が得られる。このパリティ系列を(n−r)ビットずつ区切ることにより(n−r)ビットの冗長ビットPが得られる。この冗長ビットPが残りの(N−K)個のパリティ系列埋め込み用ブロック120の各々に埋め込まれる。
【0091】
一つのブロックVに埋め込まれる冗長ビットPのビット数は情報ビットDのビット数と同じであるから、特に冗長ビットPであるか情報ビットDであるかを区別せず、ホストデータSのブロックVに透かしとして埋め込むことができる。再び図12を参照し、セレクタ35は、現在符号化処理中のブロックVが情報系列埋め込み用ブロック110である場合は、情報ビットDを選択し、現在符号化処理中のブロックVがパリティ系列埋め込み用ブロック120である場合は、冗長ビットPを選択する。(n−r)ビットの情報ビットDまたは冗長ビットPは、変更部34によりrビットの冗長語を付加された後にスクランブルされ、埋め込み部36によりブロックVに埋め込まれる。
【0092】
図14は、実施の形態2に係る復号装置200の構成図である。実施の形態1の復号装置200とは異なり、透かし抽出処理部40は、ブロックECC復号部49をさらに含む。デスクランブラ46によりスクランブルを解除された透かしデータXは、現在復号処理中の埋め込みブロックW’が図13で説明した情報系列埋め込み用ブロック110に該当する場合は、情報ビットDであり、パリティ系列埋め込み用ブロック120に該当する場合は、冗長ビットPである。ブロックECC復号部49は、K個の情報系列埋め込み用ブロック110から抽出された情報ビットDからなる情報系列を、(N−K)個のパリティ系列埋め込み用ブロック120から抽出された冗長ビットPからなるパリティ系列により、誤り訂正する。これにより、K個の情報系列埋め込み用ブロック110から誤り訂正復号されたK個の透かしデータXが得られる。
【0093】
暗号復号部48は、誤り訂正復号された透かしデータXの暗号を復号して透かし情報Iを生成する。多数決判定部50は、K個の情報系列埋め込み用ブロック110から得られたK個の透かし情報Iを多数決判定する。本実施の形態では、(N−K)個のパリティ系列埋め込み用ブロック120はパリティ系列の埋め込みに使用されているので、これらのブロックからは透かし情報Iが得られないことに注意する。ただし、復号されたパリティ系列を多数決判定に利用することは可能である。この場合は、図12の透かし埋め込み処理部38のブロックECC部33から出力されるパリティ系列と復号されたパリティ系列との比較結果を多数決判定に利用する。そのためには、透かし抽出処理部40が、図12の暗号化部32およびブロックECC部33と同一の機能構成をさらに含むことが必要である。
【0094】
なお、実施の形態1では、透かしデータXのスクランブルの段階で、図2のECC部24による誤り訂正符号化を行っていたが、本実施の形態のようにブロック誤り訂正符号化を行う場合は、スクランブルの段階でのECC部24による誤り訂正符号化は省略してもよい。
【0095】
実施の形態1のECC部24のように、ブロック毎に、独立に、誤り訂正符号化を行う方式では、透かしの埋め込みにくい単調なデータを含むブロックや、強い攻撃を受けたブロックなど、非常に大きなノイズを含むブロックがある場合、誤り訂正が十分に働かないことがある。本実施の形態では、他のブロックと共同で誤り訂正符号化を行うため、いずれかのブロックで誤りが生じたとしても、その誤り数が訂正能力内であれば、他のブロックの助けを借りて誤り訂正することができ、符号長がN倍になったことで誤り訂正能力が向上する。
【0096】
実施の形態3
図15は実施の形態3に係る符号化装置100の構成図である。本実施の形態では、ブロック全体を誤り訂正符号化の単位とする点は、実施の形態2と同じであるが、使用される誤り訂正符号化方式が異なる。以下、実施の形態2と共通する構成については同一符号を付して説明を省き、実施の形態2とは異なる構成と動作について説明する。
【0097】
本実施の形態の透かし埋め込み処理部38は、圧縮符号化の行われるN個のブロックVの各々に独立に(n−r)ビットの透かし系列を埋め込む際、各ブロックVの(n−r)ビットの透かし系列を全てのブロックVにまたがって連結した(n−r)×Nビットのビット系列が、符号化率K/Nで誤り訂正符号化された一つの符号語を構成するように誤り訂正符号化を行う。このようなN個のブロックV全体を用いる誤り訂正符号の一例として、畳み込み符号を用いる。なお、畳み込み符号の代わりに、ターボ符号などのより誤り訂正能力の高い符号化方式を用いることも可能である。
【0098】
畳み込み符号化部37は、暗号化部32によって生成された透かしデータXの入力を受け、組織型の畳み込み符号によって透かしデータXのビット系列を逐次符号化し、情報ビットとパリティビットを交互に出力し、変更部34に与える。変更部34と埋め込み部36により、(n−r)×K/Nビットの情報ビットDと(n−r)×(1−K/N)ビットの冗長ビットPがGS符号化されて、現在符号化処理中のブロックVにnビットの透かしとして埋め込まれる。
【0099】
図16はブロック全体の畳み込み符号化を説明する図である。ホストデータSのN個のブロックVの各々に、(n−r)*K/Nビットの情報ビットDと(n−r)*(1−K/N)ビットの冗長ビットPで構成された(n−r)ビットの透かしビットがGS符号化された後に埋め込まれ、ブロック全体で見た場合、(n−r)×Kビットの情報系列と(n−r)×(N−K)ビットの冗長系列により構成された透かし系列がGS符号化された後に埋め込まれる。したがって、ホストデータS全体に埋め込まれている(n−r)ビットの透かし系列で見た場合、符号化率K/Nの誤り訂正符号化がなされた一つの符号語が形成されている。
【0100】
畳み込み符号化部37は、非組織型の畳み込み符号を用いて、透かしデータXのビット系列を誤り訂正符号化してもよい。非組織型の畳み込み符号の場合、情報ビットとパリティビットの区別なく、2種類の符号化ビットが交互に生成され、各ブロックVに(n−r)ビットの符号化系列が埋め込まれる。
【0101】
図17は、実施の形態3に係る復号装置200の構成図である。実施の形態2の復号装置200のブロックECC復号部49に代えて、畳み込み符号復号部51が用いられる。組織型の畳み込み符号の場合、現在復号処理中の埋め込みブロックW’から抽出される透かしデータXにはそれぞれ情報ビットDと冗長ビットPが含まれる。畳み込み符号復号部51は、N個の埋め込みブロックW’から抽出された情報系列とパリティ系列を一つの符号語として扱い、N個の埋め込みブロックW’全体で誤り訂正を行う。非組織型の畳み込み符号の場合には、情報ビットとパリティビットの区別がなく、N個の埋め込みブロックW’全体から抽出される符号化系列に対して誤り訂正が行われる。
【0102】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0103】
上記の説明では、ホストデータSをブロック分割したときのすべてのブロックVに実質的に同一の透かしを埋め込むこととしたが、複数のブロックに同一の透かしを埋め込むのは、透かしの耐性強化のためであるから、耐性が弱まるが、一部のブロックまたは1つのブロックにだけ透かしを埋め込むことにしてもよい。また、1つの電子透かしをいくつかの部分に分け、ホストデータSの複数のブロックVに分散して埋め込んでもよい。いずれの場合でも、圧縮符号化および復号の処理に同期して、ブロック単位で透かしの埋め込みおよび抽出が可能であり、処理効率が向上する効果に変わりはない。また、このような処理により、複数種類の透かしの埋め込みが可能となる。
【0104】
また、実施の形態2および3では、すべてのブロックに埋め込まれている透かしを用いて一つの誤り訂正符号語を形成するようにしたが、この誤り訂正符号語の長さをh分の1にして、h個の誤り訂正符号語で全ブロックに埋め込まれる透かしを構成し、それらをすべてのブロックに埋め込むようにしてもよい。ただし、hが大きいほど、誤り訂正能力は低下する。
【0105】
また、上記の説明では透かし埋め込み対象のブロックVとして、直交変換の処理単位としてのブロックを想定し、DCTブロックや離散ウェーブレット変換のサブバンドをブロックVとして扱ったが、本発明の趣旨は、圧縮符号化の処理単位としてのブロックを透かし埋め込み対象とすることであるから、たとえば画像を所定サイズの領域に分割し、その分割画像をバッファリングして圧縮符号化を行う場合は、そのような分割画像を透かし埋め込み対象のブロックVとして扱ってもよい。また、静止画圧縮の標準規格であるJPEG2000では、画像をタイルという小領域に分割して、各タイルに対してウェーブレット変換を施すタイリングと呼ばれる手法が取られることがあるが、この場合には、タイルをブロックVとして扱ってもよい。したがって、これらの場合には、ブロックVには、複数のDCTブロックが含まれることや、離散ウェーブレット変換の複数のサブバンドが含まれることもありえる。いずれにしても、圧縮符号化の処理単位を透かし埋め込み対象とすることで、圧縮符号化および復号のプロセスと同期して、透かしの埋め込みおよび抽出がなされることで、必要メモリの削減と処理時間の短縮が図られる。
【0106】
また、上記の説明では、量子化前のブロックに対して、電子透かしデータが埋め込まれたが、量子化されたブロックに対して、電子透かしデータを埋め込んでもよい。もっともその場合は、透かしの埋め込みにより圧縮率が低下する。
【0107】
また、上記の説明では、複数の透かしデータの候補または埋め込み位置の候補を生成するために、多様性に富んだ候補の生成が可能なGS方式を用いたが、他のスクランブル方式を適用してもよく、また何らかの方法でランダムに候補のデータを生成してもよい。また実施の形態では、逆スクランブルにより、生成された透かしデータの候補から元の透かしデータを再現したが、生成された透かしデータの候補と元の透かしデータとを対応づけたテーブルを備え、このテーブルを参照して元の透かしデータを求めてもよい。
【0108】
またスクランブルの際に初期データとして使用した識別データは、透かしデータの先頭に挿入されて復号側に提供されていたが、この識別データを透かしには埋め込まずに、符号化側で秘密鍵として保持、管理してもよい。その場合、復号側はこの秘密鍵を取得した上で、透かしデータのスクランブルを解除する。
【0109】
また、上記の説明では、図2で示したように、L種類の透かしデータの候補を生成するために、L個のマルチプレクサ20、スクランブラ22、ECC部24、埋め込み部26、およびSNR計算部28が並列に設けられたが、これらの部材を単一構成にして、L種類の透かしデータの候補を逐次的に生成、評価して最適な候補を選択してもよい。
【0110】
【発明の効果】
本発明によれば、電子透かしの埋め込みと抽出処理を効率化し、透かしの耐性と検出精度を改善することができる。
【図面の簡単な説明】
【図1】 実施の形態1に係る符号化装置の構成図である。
【図2】 図1の変更部と埋め込み部の機能構成図である。
【図3】 実施の形態1に係る復号装置の構成図である。
【図4】 元の透かしデータとL種類のスクランブルされた透かしデータとの関係を説明する図である。
【図5】 符号化時の畳み込み演算を説明する図である。
【図6】 復号時の畳み込み演算を説明する図である。
【図7】 離散コサイン変換されたホストデータのブロックに透かしデータが埋め込まれる様子を説明する図である。
【図8】 図7のブロックに透かしビットが埋め込まれる様子を説明する図である。
【図9】 離散ウェーブレット変換されたホストデータのサブバンドを説明する図である。
【図10】 実施の形態1に係る電子透かしの埋め込み手順を説明するフローチャートである。
【図11】 実施の形態1に係る電子透かしの抽出手順を説明するフローチャートである。
【図12】 実施の形態2に係る符号化装置の構成図である。
【図13】 実施の形態2に係るブロック誤り訂正を説明する図である。
【図14】 実施の形態2に係る復号装置の構成図である。
【図15】 実施の形態3に係る符号化装置の構成図である。
【図16】 実施の形態3に係るブロック全体の畳み込み符号を説明する図である。
【図17】 実施の形態3に係る復号装置の構成図である。
【符号の説明】
10 符号化処理部、 12 ブロック分割部、 14 直交変換部、 16量子化部、 18 可変長符号化部、 20 マルチプレクサ、 22 スクランブラ、 24 ECC部、 26 埋め込み部、 28 SNR計算部、 32 暗号化部、 33 ブロックECC部、 34 変更部、 36 埋め込み部、 37 畳み込み符号化部、 38 透かし埋め込み処理部、 40 透かし抽出処理部、 42 抽出部、 44 ECC復号部、 46 デスクランブラ、 48 暗号復号部、 49 ブロックECC復号部、 50 多数決判定部、 51 畳み込み符号復号部、 60 復号処理部、 62 可変長符号復号部、 64 ブロック分割部、 66 逆量子化部、 68 逆直交変換部、 100 符号化装置、 200 復号装置。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a digital watermark technique, and more particularly to a digital watermark embedding method and an encoding device and a decoding device that can use the method.
[0002]
[Prior art]
Over the past few years, the Internet population has increased rapidly and is entering a broadband era, a new stage of Internet usage. With broadband communication, the communication band is greatly expanded, so it is possible to easily distribute content with a large amount of data such as voice, still images, and moving images. When such digital content distribution becomes popular, protection of the copyright of the content will be further demanded.
[0003]
The content data distributed on the network is easily copied by others and the copyright protection is not sufficient. Therefore, in order to protect the copyright, a technique for embedding information of a content creator and a user into content data as a digital watermark has been developed. By using this digital watermark technology, it is possible to extract digital watermarks from content data distributed on the network, detect unauthorized use, and track distribution routes of unauthorized copies.
[0004]
Some conventional digital watermark embedding techniques enable embedding of a strong digital watermark while maintaining the degree of freedom of the process of embedding digital watermark information (see Non-Patent Document 1, for example).
[0005]
[Non-Patent Document 1]
Ingemar J. Cox, Joe Kilian, F. Thomson Leighton, and Talal Shamoon, "Secure Spread Spectrum Watermarking for Multimedia," IEEE Trans. On Image Processing, Vol. 6, No. 12, December 1997.
[0006]
[Problems to be solved by the invention]
The digital watermark is embedded in the content data so as not to be understood by the user in order to prevent tampering by an unauthorized user. However, content data may be subjected to various operations in the distribution process and usage process, such as signal processing such as compression coding and various filtering, processing by the user, and alteration of watermark information. In this process, a part of the embedded digital watermark data may be changed or lost. Therefore, the digital watermark is required to be resistant to such operations.
[0007]
Digital watermark embedding technology has been proposed to increase the resistance of digital watermarks, but in accordance with human visual characteristics, a method for embedding digital watermarks in high-frequency components such as edge portions of images and portions with large changes in texture regions Therefore, there is a limit in terms of versatility and flexibility to reinforce resistance to various operations on content data after embedding a watermark, which strongly depends on the contents of individual content data.
[0008]
In addition, when compressing and encoding an image, the image is divided into blocks, and compression encoding is performed in units of blocks. This is because the amount of memory required for processing can be suppressed to a certain amount by dividing the block. On the other hand, digital watermarks are usually embedded in the entire image, and are inconsistent with compression coding in units of blocks, and are embedded based on a memory that buffers the entire image, so a large memory capacity is required. It is.
[0009]
The present invention has been made in view of such circumstances, and an object thereof is to provide a technique capable of embedding a strong digital watermark and reducing a detection error of the digital watermark. Another object is to provide a technique capable of embedding and extracting a digital watermark in synchronization with compression encoding and decoding.
[0010]
[Means for Solving the Problems]
One embodiment of the present invention relates to a digital watermark embedding method. In this method, in synchronism with the compression encoding of host data, substantially the same digital watermark data is redundantly embedded in a plurality of blocks using a block on which compression encoding is performed as a digital watermark embedding unit.
[0011]
The block here is a processing unit when the host data is divided and compressed and encoded, and usually has a fixed size, and is stored in the memory for each processing unit and subjected to the compression encoding process. Since the digital watermark is embedded in the compression coding processing unit, the memory efficiency is high, and the digital watermark embedding process can be performed in real time in conjunction with the compression coding. Also, since substantially the same digital watermark data is repeatedly embedded in a plurality of blocks, the watermark resistance is enhanced. Here, “substantially the same digital watermark data” refers to the case where the same digital watermark is embedded by changing the block number or other information for each block, or the watermark data is scrambled depending on the block data. The purpose is to include.
[0012]
The host data is original data to be embedded with a digital watermark, and is data such as a still image, a moving image, and audio. The embedded digital watermark includes original data identification information, creator information, user information, and the like. In addition, for the purpose of authentication, digest data of host data, that is, data that directly represents the characteristics of host data can be embedded as a digital watermark. Digital watermark resistance refers to the case where the host data with embedded digital watermark is subjected to an attack such as alteration, or the host data with embedded digital watermark is subjected to signal processing such as compression coding or filtering. This refers to the robustness of the digital watermark data when some operation is applied to the host data after the digital watermark is embedded.
[0013]
When embedding the watermark data in each of the plurality of blocks, a plurality of watermark data candidates generated by scrambling the watermark data are embedded, and the tolerance of the embedded watermark candidates is evaluated, and the evaluation is good. The block in which the watermark data candidate is embedded may be selected as an embedded block. As described above, by scrambled the watermark data for each block and embedding watermark data having high tolerance, the tolerance of the watermark can be further enhanced by taking advantage of the data characteristics of each block.
[0014]
On the electronic watermark embedding side, when the digital watermark data is scrambled, a one-to-many mapping that associates the original digital watermark data with a plurality of watermark data candidates is used. On the digital watermark extraction side, reverse mapping is performed to obtain the original digital watermark data from the scrambled watermark data. Therefore, on the side of extracting a digital watermark, a correspondence table of original digital watermark data and a plurality of watermark data candidates may be used. In addition, a scramble function for generating a plurality of watermark data candidates based on a predetermined initial value from the original digital watermark data may be used on the side of embedding the digital watermark. In this case, on the side of extracting the digital watermark, the extracted digital watermark is descrambled based on the initial value and the scramble function used for scrambling.
[0015]
Another aspect of the present invention relates to an encoding apparatus. This apparatus includes an encoding processing unit that compresses and encodes host data in units of blocks, and substantially the same digital watermark data in a plurality of blocks that are subjected to compression encoding in synchronization with the compression encoding of host data. A watermark embedding processing unit to be embedded. The watermark embedding processing unit scrambles the watermark data to generate a plurality of watermark data candidates, and embeds each of the plurality of watermark data candidates in the block to generate a plurality of embedded block candidates. And selecting each of the plurality of embedded block candidates based on the evaluation value of the tolerance, and an evaluation unit that evaluates the resistance of the digital watermark for each of the plurality of embedded block candidates Part.
[0016]
The embedding unit may embed a parity sequence when an information sequence of the watermark data embedded in the plurality of blocks is subjected to error correction coding as a digital watermark in a part of the plurality of blocks. The watermark embedding processing unit converts an information sequence composed of information bits of the watermark data to be embedded in K blocks out of N blocks subjected to compression encoding, and performs error correction with a coding rate of K / N A block error correction encoding unit that generates a parity sequence composed of redundant bits having the same bit length as the information bits to be error correction encoded using a code and embedded in the remaining (N−K) blocks But you can. If the information bits of the watermark data are n bits (n is an integer), the information series embedded in K blocks is n × K bits. When the entire information sequence embedded in the K blocks is subjected to error correction coding at a coding rate of K / N, a parity sequence of n × (NK) bits is obtained as a whole. The n redundant bits obtained by dividing the parity sequence by n bits are embedded in (NK) blocks as a digital watermark. K blocks are called information sequence embedding blocks, and (N−K) blocks are called parity sequence embedding blocks. Since both the information bits embedded in the information sequence embedding block and the redundant bits embedded in the parity sequence embedding block are n bits, they can be embedded in the same method without distinction when embedding as a digital watermark. it can.
[0017]
Yet another embodiment of the present invention relates to a decoding apparatus. This apparatus extracts substantially the same digital watermark data from a plurality of blocks to be decoded in synchronization with decoding of the encoded host data and a decoding processing unit for decoding the encoded host data in units of blocks. And a watermark extraction processing unit. The watermark extraction processing unit includes: an extraction unit that extracts scrambled watermark data from each of a plurality of blocks to be decoded; a descrambling unit that unscrambles the scrambled watermark data; and the plurality of blocks A determination unit that identifies embedded watermark data by performing majority determination of the plurality of extracted watermark data. By extracting watermark data from a plurality of blocks and making a majority decision, watermark data detection accuracy can be improved.
[0018]
The extraction unit may extract a parity sequence for error correction of an information sequence of the watermark data extracted from the plurality of blocks as a digital watermark from a part of the plurality of blocks. The watermark extraction processing unit extracts, from the remaining (N−K) blocks, an information sequence including information bits of the watermark data extracted from K blocks among N blocks to be decoded. The block may further include a block error correction decoding unit that performs error correction using a parity sequence including redundant bits having the same bit length as the information bits.
[0019]
Yet another embodiment of the present invention relates to a computer program. The program includes a step of embedding a plurality of digital watermark data candidates generated by scrambling in a block subjected to compression encoding in synchronization with compression encoding of host data to generate a plurality of embedded block candidates And, for each of the plurality of embedded block candidates, evaluating the resistance of the embedded digital watermark, and finally selecting one of the plurality of embedded block candidates based on the evaluation value of the digital watermark And selecting the block as an embedded block.
[0020]
Still another embodiment of the present invention also relates to a computer program. The program includes a step of extracting scrambled watermark data from each of a plurality of blocks to be decoded in synchronization with decoding of encoded host data, a step of unscrambled the scrambled watermark data, and A step of determining the majority of the plurality of watermark data extracted from the plurality of blocks and identifying the embedded watermark data.
[0021]
It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, etc. are also effective as an aspect of the present invention.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
Embodiment 1
FIG. 1 shows a configuration of encoding apparatus 100 according to Embodiment 1. This configuration can be realized in hardware by a CPU, memory, or other LSI of any computer, and in software by a program with a digital watermark embedding function and a compression encoding function loaded in the memory. However, here, functional blocks realized by their cooperation are depicted. Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.
[0023]
The encoding apparatus 100 includes an encoding processing unit 10 that compresses and encodes host data S, and a watermark embedding processing unit 38 that embeds watermark information I in a block V of host data S on which compression encoding is performed. The host data S is data such as audio, still images, and moving images. The watermark information I is information relating to copyright such as identification information of the host data S, creator information, user information, authentication information for detecting falsification of the host data S, a time stamp, and the like. In the following description, an image is taken as an example of the host data S, and the block V is described as being two-dimensional pixel data. The same processing is possible.
[0024]
The host data S is divided into blocks V by the block dividing unit 12 of the encoding processing unit 10, and is converted into spatial frequency components by orthogonal transformation such as discrete cosine transformation and discrete wavelet transformation by the orthogonal transformation unit. The block V orthogonally transformed by the orthogonal transformation unit 14 is supplied to the watermark embedding processing unit 38. The watermark embedding processing unit 38 embeds the watermark information I in the block V and supplies the embedding block W to the quantization unit 16 of the encoding processing unit 10. The quantization unit 16 quantizes the embedded block W. The variable length encoding unit 18 compresses the host data S by variable length encoding the quantized embedded block W of the host data S, and outputs watermarked encoded host data T.
[0025]
The encryption unit 32 of the watermark embedding processing unit 38 encrypts the watermark information I using the secret key K, and generates watermark data X. The encryption unit 32 can also receive the input of the block number of the block V currently being encoded from the block division unit 12 and can encrypt the watermark information I by the block number. In this case, different watermark data X is generated for each block with respect to the same watermark information I. However, since the original watermark information I can be uniquely restored by decrypting the code, the watermark data X that differs depending on the block number is substantially changed. Are treated as the same watermark.
[0026]
The changing unit 34 receives the input of the watermark data X from the encryption unit 32 and the input of the block V currently being encoded from the orthogonal transform unit 14, scrambles the watermark data X depending on the block V, and scrambles it. The watermark data X ′ thus output is output. Using the secret key K, the embedding unit 36 embeds the scrambled watermark data X ′ input from the orthogonal transform unit 14 into the block V currently being encoded, and outputs the embedded block W to output the quantizing unit 16. To give. An embedding method that does not depend on the secret key K may be used.
[0027]
The watermark embedding processing by the watermark embedding processing unit 38 is repeatedly performed for all the blocks V of the host data S to be compression-encoded by the encoding processing unit 10, and the same or substantially the same watermark is applied to all the blocks V. Data X is embedded.
[0028]
The changing unit 34 and the embedding unit 36 cooperate to generate a plurality of scrambled watermark data X ′, embed each in the block V, generate a plurality of embedded block W candidates, and select one of these candidates. Has a function to select.
[0029]
FIG. 2 is a functional configuration diagram of the changing unit 34 and the embedding unit 36. The L multiplexers 20 have initial data C at the head of the watermark data X, respectively.0~ CL-1L-type bit sequence X with insertedbIs generated. The L scramblers 22 scramble each of the L types of bit sequences, and the L types of scrambled watermark data X ′.bIs generated. The L error correction code (ECC) units 24 include L types of scrambled watermark data X ′.bWatermark data X 'with parity for error correction added to eachcIs generated. The ECC unit 24 is an option for improving the watermark bit detection rate and may not be necessary depending on the application, and this configuration may be omitted. Also, the order of the scrambler 22 and the ECC unit 24 is reversed, and parity for error correction is added to the L types of bit sequences, and then they are scrambled to generate L types of scrambled watermark data. May be.
[0030]
The L embedding units 26 are provided with L types of scrambled watermark data X ′.cAre embedded in a block V on which compression encoding is performed, and L types of embedded block W candidates are generated. The L SNR calculators 28 evaluate the tolerance of the watermark data X for each of the L types of embedded block W candidates. The selector 30 selects an embedded block W candidate having the best tolerance evaluation value, and outputs it as the final embedded block W.
[0031]
FIG. 3 shows a configuration of decoding apparatus 200 according to Embodiment 1. The watermarked encoded host data T, in which the digital watermark is embedded and compressed by the encoding device 100, is distributed on the network and used in the computer. In the process, the watermarked encoded host data T is subjected to operations such as compression encoding and tampering. For image data, useful operations such as signal processing such as JPEG compression, filtering, quantization, and color correction, and geometric transformations such as scaling, cropping, rotation, and translation are performed. Unauthorized attacks such as removing or altering The deformation caused by such an operation is regarded as noise N with respect to the embedded host data T, and the watermarked encoded host data T to which the noise N is added is expressed as T ′ (= T + N). Similarly, the embedded block W of the watermarked encoded host data T to which noise N is added is denoted as W ′ (= W + N).
[0032]
The decoding apparatus 200 includes a decoding processing unit 60 that decodes the watermarked encoded host data T ′ and a watermark extraction processing unit 40 that extracts the watermark information I from the embedded block W ′ of the watermarked encoded host data T ′. .
[0033]
The watermarked encoded host data T ′ is decoded by the variable length code decoding unit 62 of the decoding processing unit 60 and divided by the block dividing unit 64 into the embedded blocks W ′. The inverse quantization unit 66 inversely quantizes the embedded block W ′. The inverse orthogonal transform unit 68 performs inverse orthogonal transform on the embedded block W ′ and outputs watermarked host data U ′. The inverse quantization unit 66 provides the watermark extraction processing unit 40 with the embedded block W ′ after the inverse quantization in order to extract the watermark.
[0034]
The extraction unit 42 of the watermark extraction processing unit 40 uses the secret key K, and the watermark data X ′ embedded in the embedded block W ′ currently being decrypted and input from the inverse quantization unit 66.cTo extract. The ECC decoding unit 44 uses the watermark data X ′.cError correction using the parity bit added to the watermark data X ′bIs generated. The descrambler 46 uses the watermark data X ′ after error correction.bIs scrambled and watermark data X is output. The encryption / decryption unit 48 decrypts the encrypted watermark data X using the secret key K, and outputs the original watermark information I.
[0035]
By repeating the above-described watermark extraction processing on the embedded block W ′ of the watermarked encoded host data T ′ decoded by the decoding processing unit 60, the watermark information I is extracted from all the embedded blocks W ′. be able to. The majority decision determining unit 50 performs majority decision on the plurality of watermark information I extracted from all the embedded blocks W ′, and identifies the most watermark information I as the correct watermark information I.
[0036]
The majority decision determining unit 50 determines that the watermark is not embedded when the number of embedded blocks W ′ in which the watermark information I specified by the majority decision is detected is smaller than a predetermined threshold. Alternatively, if it is assumed that some kind of watermark is embedded, the majority decision unit 50 warns that correct watermark detection cannot be performed because the falsification of the host data S has reached a large number of blocks V. May be output. Further, the majority decision determining unit 50 determines that there is a possibility that the embedded block W ′ in which the watermark different from the finally specified watermark information I is detected has been tampered with, and the block number of the embedded block W ′. It is also possible to output a warning message to notify
[0037]
The majority decision determination unit 50 may perform majority decision on the watermark data X before encryption is decrypted by the encryption / decryption unit 48. Further, the majority decision determining unit 50 may compare the whole extracted plurality of watermark bit sequences with each other and specify the correct watermark bit sequence by majority decision, or may compare the results with each other in units of watermark information words. An information word may be specified. Further, the majority decision may be performed for each information bit of the watermark data X, and a correct value may be specified for each bit.
[0038]
A procedure for embedding and extracting a digital watermark by the encoding apparatus 100 and the decoding apparatus 200 having the above configuration will be described. FIG. 10 is a flowchart for explaining a digital watermark embedding procedure by the watermark embedding processing unit 38 of the encoding apparatus 100. In the description of the flowchart, FIGS. 4 to 9 are appropriately referred to.
[0039]
The multiplexer 20 generates L code sequences by inserting L types of initial data at the head of the watermark data X encrypted by the encryption unit 32 (S10), and the scrambler 22 It is scrambled to generate L types of scrambled watermark data X ′ (S12).
[0040]
FIG. 4 shows the relationship between the watermark data X and the L types of scrambled watermark data X ′. At the beginning of the (n−r) -bit watermark data X, r-bit redundant words are added as identification data ID [0] to ID [L−1] to create L types of watermark data candidates. 2 maxrKind candidates are created. The bit string of the watermark data X included in these candidates is scrambled by the scramble method described below.
[0041]
As an example of the scramble system, a GS (Guided Scramble) system used for digital modulation in transmission or magnetic recording is adopted. In the GS method, L types of code sequences are generated for an information sequence having a certain data block length, and these are treated as candidates for a code sequence to be transmitted next. Among these candidates, an optimum one is selected in accordance with the properties of the transmission medium to obtain a final code sequence. By this GS method, a variety of code sequence candidates can be generated by a simple method.
[0042]
The multiplexer 20 and the scrambler 22 in the encoding device 100 function as a part of the GS encoder. The GS encoder performs L kinds of r-bit redundant words c immediately before the information sequence D (x) consisting of M bits.i(I = 0,..., L−1) is added, and L types of code sequences cixM+ D (x) is generated. The code length of this code sequence is (M + r) bits. By dividing the code sequence to which redundant words are added in this way by an N-dimensional scrambled polynomial S (x) as shown in the following equation, the quotient Ti(X) is obtained.
[0043]
Ti(X) = QS (x)[(CixM+ D (x)) xN] (1)
However, Qa[B] indicates a quotient obtained by dividing b by a. Quotient set {T0(X), ..., TL-1(X)} is a scrambled code sequence candidate. For each of these candidates, the performance when the code sequence is actually used is evaluated, and the one with the best evaluation value is selected as the final code sequence.
[0044]
At the time of demodulation, the descrambler 46 in the decoding device 40 functions as a GS decoder, multiplies the code sequence by S (x), and discards the conversion information of the lower N bits and the upper r bits, thereby removing the original information sequence D ( x) is obtained.
[0045]
Here, S (x) = x as scramble polynomial S (x)rA case where +1 is used will be described. When M mod r = 0, the expression (1) can be expressed by the convolution operation shown in the following expression.
[0046]
tj= Dj(+) Ci  (J = 0)
tj= Dj(+) Tj-1  (J = 1,..., M / r-1)
Where i = 0,..., L−1 and djIs a bit string obtained by dividing the original information series D (x) by r bits, tjIs the converted code sequence TiThe first r-bit redundant word c in (x)iThis is a bit string obtained by dividing the rest by r bits. (+) Indicates an exclusive OR (EX-OR) operation.
[0047]
FIG. 5 is a diagram for explaining the convolution operation at the time of encoding. For example, consider the case where M = 6 and r = 2. For the original information series D (x) = (1, 0, 1, 0, 0, 1), the redundant word c0= (0,0) is added, and the converted code sequence T0(X) is generated. By the above convolution operation at the time of encoding, t0= D0(+) C0= (1, 0) (+) (0, 0) = (1, 0), t1= D1(+) T0= (1,0) (+) (1,0) = (0,0), t2= D2(+) T1= (0,1) (+) (0,0) = (0,1), and the converted code sequence T0= (0,0,1,0,0,0,0,1) is obtained. Here, the converted code sequence T0The first 2 bits of the redundant word c0Note that
[0048]
Similarly, the redundant word c1= (0,1), c2= (1,0), c3= (1, 1) for each converted code sequence T1= (0,1,1,1,0,1,0,0), T2= (1, 0, 0, 0, 1, 0, 1, 1), T3= (1,1,0,1,1,1,1,0) is obtained.
[0049]
At the time of decoding, the original information series D (x) is obtained by performing a convolution operation as in the following equation.
[0050]
dj= Tj(+) Ci  (J = 0)
dj= Tj(+) Tj-1  (J = 1,..., M / r-1)
[0051]
FIG. 6 is a diagram for explaining the convolution operation at the time of decoding. In the above example, the converted encoded sequence T0= (0, 0, 1, 0, 0, 0, 0, 1), the redundant word c from the first two bits0= (0,0) is obtained, and by the above convolution operation at the time of decoding, d0= T0(+) C0= (1,0) (+) (0,0) = (1,0), d1= T1(+) T0= (0,0) (+) (1,0) = (1,0), d2= T2(+) T1= (0,1) (+) (0,0) = (0,1), and the original information series D (x) = (1,0,1,0,0,1) is obtained. Other converted encoded sequence T1, T2, T3Also, the original information series D (x) is obtained by this convolution operation.
[0052]
Refer to FIG. 10 again. The L types of scrambled watermark data X ′ generated by the scrambler 22 are added with parity for error correction by the ECC unit 24 and then embedded in the block V of the host data V by the embedding unit 26 (S14). ).
[0053]
L types of scrambled watermark data X '0, X1, ..., xL-1And The bit sequence of each watermark data candidate is expressed as follows. The leading r bits are identification data. Also, bit 0 after the scramble process is replaced with -1, and the following process is performed.
[0054]
x0= {-1, ...,-1, -1, x0 0, X0 1, ..., x0 n-r-1}
x1= {-1, ...,-1,1, x1 0, X1 1, ..., x1 n-r-1}
...
xL-1= {1, ..., 1,1, xL-1 0, XL-1 1, ..., xL-1 n-r-1}
[0055]
From the block V of the host data S, a pair of sample sets (V+, V) Is selected. Set of embedded samples V+, VEach has n elements as follows.
[0056]
V+= {V+ 0, V+ 1, ..., v+ n-1}
V= {V 0, V 1, ..., v n-1}
Here a set of samples V+, VA subset v that is an element of+ i, V i(I = 0, 1,..., N−1) are composed of m pieces of sample data randomly selected in the same block V.
[0057]
v+ i= {V+ i, 0, V+ i, 1, ..., v+ i, m-1}
v i= {V i, 0, V i, 1, ..., v i, m-1}
[0058]
Watermark data candidate xk(K = 0,..., L−1) is a sample set pair (V+, V) As follows, and L types of embedded block candidates WkIs generated.
[0059]
w+ K i, j= V+ i, j+ Α+ i, j・ Xk i
w-K i, j= V i, j i, j・ Xk i
Where α+ i, jAnd α i, jIs a scaling parameter for reducing noise perceived based on the human visual model, and is a positive value. Or α+ i, jAnd α i, jMay be a positive value generated by the secret key K so as to follow a certain probability distribution, such as a Gaussian distribution, a uniform distribution, or the like. In this case, the embedding strength of the watermark is reduced, but the confidentiality of the embedded watermark is improved. In this way, each bit x of the kth watermark data candidatek iIs each subset v+ i, V iAre embedded in m samples. The greater the number of duplicates m, the less likely the watermark bits are lost and the smaller the detection error, while the fewer the number of watermark bits that can be embedded in the host data. α+ i, jAnd α i, jIs a value set for each pixel so that visual deterioration cannot be detected. In principle, even if the number m of pixels to be embedded is increased, deterioration of image quality is not detected by human vision. However, an increase in the number of pixels used to embed one bit means that the number of bits that can be embedded is reduced because the embedment area is limited, thus leading to a decrease in the embedment rate. .
[0060]
When the orthogonal transformation unit 14 of the encoding processing unit 10 transforms the host data S by discrete cosine transform, the block V is a DCT block, and each subset v of the sample set+ i, V iThe m sample data are m DCT coefficients included in one DCT block.
[0061]
FIG. 7 is a diagram for explaining how the scrambled watermark data X ′ is embedded in the block V of the host data S subjected to discrete cosine transform. As shown in the figure, in the discrete cosine transform used in JPEG, the spatial region of the host data S is divided into blocks V each consisting of 8 pixels vertically and horizontally, and each block V is converted into a spatial frequency component. Watermark bit string x of watermark data X 'scrambled to each block V after orthogonal transformationkIs embedded.
[0062]
FIG. 8 shows a watermark bit x with 2m DCT coefficients in block V, which is a DCT block of 8 × 8 size.k iShows the state of embedded. Each subset v+ i, V iEach of the m DCT coefficients selected as is selected based on the secret key K. In this way, a 1-bit watermark is embedded in one block V. By repeating this process n times, n-bit watermark data is embedded in 2 nm DCT coefficients in the block V.
[0063]
When the orthogonal transform unit 14 transforms the host data S by the discrete wavelet transform, the block V is a subband generated by the discrete wavelet transform, and each subset v of the sample set+ i, V iM sample data are m wavelet transform coefficients included in one subband.
[0064]
FIG. 9 is a diagram for explaining each subband of the host data S subjected to discrete wavelet transform. As shown in the figure, the host data S is divided into four frequency subbands by discrete wavelet transform. These subbands include LL subbands having low frequency components in both vertical and horizontal directions, HL and LH subbands having low frequency components in any one of vertical and horizontal directions, and high frequency components in the other direction. This is an HH subband having a high frequency component in both vertical and horizontal directions. The number of vertical and horizontal pixels in each subband is ½ of the host data S before processing, and subband data having a size of ¼ can be obtained by one filtering.
[0065]
Of the subbands obtained in this way, the filtering process by the discrete wavelet transform is again performed on the LL subband, and further divided into four subbands of LL, HL, LH, and HH. This filtering is performed a predetermined number of times, and the LL subband generated by the last filtering becomes data closest to the DC component of the host data V.
[0066]
In the example of the figure, the discrete wavelet transform is performed three times on the host data S, and the HL subband HL of the first layer is applied.1, LH subband LH1And HH subband HH1, HL subband HL of the second layer2, LH subband LH2And HH subband HH2, LL subband LL of the third layer3, HL subband HL3, LH subband LH3, And HH subband HH3In this order, compression encoding is performed. The watermark embedding processing unit 38 embeds the watermark data X ′ using each of these subbands as an embedded block of the watermark data X ′. Each subset v+ i, V iEach of the m wavelet transform coefficients selected as is selected from each subband based on the secret key K.
[0067]
Returning to FIG. 10, the SNR calculation unit 28 selects L types of embedded block candidates W.kWatermark data xkResistance, i.e., the embedding strength, is evaluated (S16), and the selector 30 selects the embedding block candidate W that maximizes the embedding strength.kIs selected as the final embedded block W (S18).
[0068]
Before giving an embedding strength evaluation formula, how the watermark data X ′ is detected when the embedding block W is deformed by signal processing, image processing, or the like will be considered. The deformation applied to the embedded block W is treated as noise N. A method of extracting the watermark data X ′ from the noise-embedded embedded block W ′ will be described. A pair of sets of embedded blocks (W '+, W ’) Is defined as follows. Set of embedding blocks W ′+, W ’Each has n elements as follows.
[0069]
W ’+= {W ’+ 0, W ’+ 1, ..., w '+ n-1}
W ’= {W ’ 0, W ’ 1, ..., w ' n-1}
Here, a set W ′ of embedded blocks+, W ’Each subset w ′ that is an element of+ i, W ’ iCorresponds to the embedding position of the digital watermark, and consists of m sample data of the embedding block W ′ as follows.
w ’+ i= {W ’+ i, 0, W ’+ i, 1, ..., w '+ i, m-1}
w ’ i= {W ’ i, 0, W ’ i, 1, ..., w ' i, m-1}
[0070]
Watermark bit xk iTo detect the following detection value ziCalculate
zi= Σj = 0 m-1(W ’+ i, j-W ’ i, j)
= Σj = 0 m-1[(W+ i, j+ N+ i, j)-(W i, j+ N i, j]]
= Σj = 0 m-1[(V+ i, j-V i, j) + (Α+ i, j+ Α i, j) Xk i+ (N+ i, j-N i, j]]
Where Σj = 0 m-1(V+ i, j-V i, j) Generally follows a Gaussian distribution and approaches 0 when m is sufficiently large. The noise term Σj = 0 m-1(N+ i, j-N i, j) Approaches 0 in the same manner. Therefore, ziIs Σj = 0 m-1[(Α+ i, j+ Α i, j) Xk i]. (Α+ i, j+ Α i, j) Is positive, so the watermark bit xk iZ is 1iIs positive and the watermark bit xk iZ if -1iIs negative. Therefore ziWatermark bit xk iCan be determined.
[0071]
The embedding strength is evaluated by regarding the block V of the host data S as noise with respect to the watermark data X, and the embedded watermark data xkIs performed by calculating the variance of the detected watermark data. It can be considered that the smaller the variance, the stronger the tolerance. Embedded block candidate pairs (W+ K, W-K) To evaluate the signal-to-noise ratio according to the following equation and select an optimal candidate K.
[0072]
K = argmaxk(Pk/ Σk 2)
Pk= Σi = 0 n-1| Σj = 0 m-1(W+ K i, j-W-K i, j) |2/ N
σk 2= Σi = 0 n-1| Σj = 0 m-1(W+ K i, j-W-K i, j-Pk 1/2・ Xk i2/ N
[0073]
Watermark bit xk iDetection value z for determining whether {1} is {1, -1}iIs z before the noise is added to the embedded block W.i= Σj = 0 m-1(W+ K i, j-W-K i, j), The variance σk 2Is the detected value z for the watermark bitsiAnd the average value P of the watermark bits actually embeddedk 1/2・ Xk iIt can be said that the square of the difference is evaluated and averaged for i = 0,..., N−1. However, PkIs the detected value ziOf squares of i = 0,..., N−1, indicating the average power of the embedded watermark. Therefore, the embedded watermark data xkAnd Euclidean distance between the extracted watermark data and the extracted watermark data are smaller and the absolute value of the detected value for detecting the watermark bit is larger.k/ Σk 2The value of increases. In other words, Pk/ Σk 2Selecting a candidate that maximizes the value means selecting a candidate having the smallest watermark bit detection error.
[0074]
Detection value ziV+ i, j> V i, jAnd xk i= 1 if zi>> 0 and v+ i, j<V i, jAnd xk i== z if -1i<< 0. Therefore, the optimum watermark data x is evaluated according to the above evaluation.kSelecting a candidate for the detected value ziWatermark bit x byk iIn order to improve the detection performance of+ i, j> V i, jThen x ’i= 1, v+ i, j<V i, jThen x ’i= Original watermark bit x such that = 1iX ’iMeans to change. This is the GS method guiding rule.iResponse is improved.
[0075]
The SNR calculation unit 28 may take into account a quantization error at the time of compression encoding when evaluating the tolerance of the watermark data X for L types of embedded block W candidates. Specifically, when evaluating the embedding strength by the variance between the embedded watermark data and the detected watermark data, the following weighted variance considering the quantization error with respect to the embedded host data W is used.
[0076]
K = argmaxk(Pk/ Σk 2)
Pk= Σi = 0 n-1| Σj = 0 m-1(W* + K i, j-W* -K i, j) |2/ N
σk 2= Σi = 0 n-1| Σj = 0 m-1(W* + K i, j-W* -K i, j-Pk 1/2・ Xk i2/ N
Where w* + K i, j, W* -K i, jIs embedded host data W after quantization. For example, when JPEG2000 compression encoding is performed, w* + K i, j, W* -K i, jCan be calculated using the JPEG2000 quantization method as follows.
[0077]
Based on the JPEG2000 standard “ISO / IEC 15444-1: JPEG 2000 image coding system, JPEG 2000 final committee draft, 18 August 2000”, the JPEG 2000 quantization method will be briefly described. The wavelet transform coefficient before quantization in subband b is expressed as ab(U, v), the wavelet transform coefficient after quantization in subband b is qbAssuming that (u, v), in JPEG 2000, the wavelet transform coefficient is quantized using the following quantization formula.
[0078]
qb(U, v) = sign (ab(U, v)) ・ [| ab(U, v) | / Δb]
Here, [x] represents the maximum integer not exceeding x. Δb is the quantization step in subband b and is given by:
Δb = 2 ^ (Rb−εb) ・ (1 + μb/ 211)
Where RbIs the dynamic range in subband b, εbIs the quantization index in subband b, μbIs the mantissa of quantization in subband b.
[0079]
Thus, in JPEG2000, wavelet transform coefficients belonging to the same subband are divided by the same quantization step and rounded to an integer value. Since the watermark data X embedded in the block V needs to be resistant to such a quantization operation, the value of the embedded block W after being quantized by JPEG2000 is calculated, and as described above, The resistance of the watermark data is evaluated for the calculated embedded block W. Since the watermark embedding processing unit 38 performs watermark embedding processing in synchronization with the compression encoding performed by the encoding processing unit 10, the watermark embedding processing unit 38 can appropriately refer to the quantization parameter used in the encoding processing unit 10.
[0080]
FIG. 11 is a flowchart for explaining a digital watermark extraction procedure performed by the watermark extraction processing unit 40 of the decoding device 200. Upon receiving the noise-embedded embedded block W ′, the extraction unit 42 of the watermark extraction processing unit 40 detects the detected value z when the ECC decoding unit 44 is configured with a hard input decoder.iIs calculated as follows, and the detected value ziWhether the watermark bit x ′ is {−1, 1} or not is determined to obtain watermark data X ′ (S30). When the ECC decoding unit 44 is composed of a soft input decoder, the detected value ziIs sent to the ECC decoding unit 44 as it is without making a hard decision to {-1, 1}.
[0081]
zi= Σj = 0 m-1(W ’+ i, j-W ’ i, j)
= Σj = 0 m-1[(W+ i, j+ N+ i, j)-(W i, j+ N i, j]]
= Σj = 0 m-1[(V+ i, j-V i, j) + (Α+ i, j+ Α i, j) ・ X ’i+ (N+ i, j-N i, j]]
[0082]
The extracted watermark data X 'is further subjected to error correction by the ECC decoder 44, descrambled by the descrambler 46, and the original watermark data X is obtained (S32).
[0083]
The majority decision determining unit 50 identifies the embedded watermark by making a majority decision on the plurality of watermark data X obtained from the plurality of embedded blocks W '(S34). The majority decision unit 50 determines that the watermark is not embedded when the number of embedded blocks W ′ from which the same watermark data X as the watermark specified by the majority decision is extracted is smaller than a predetermined threshold (N in S36). (S38). If the number of embedded blocks W ′ from which the specified watermark is extracted is equal to or greater than a predetermined threshold (Y in S36), the possibility of falsification of the embedded block W ′ from which the watermark data X different from the specified watermark is extracted There is a warning (S40).
[0084]
As described above, according to the embodiment, in order to embed a watermark in synchronization with the compression encoding process of the host data S, the compression encoding is performed using a small-capacity memory used for the compression encoding. At the same time, watermarks can be embedded. Similarly, the watermark can be extracted in synchronization with the decoding of the watermarked encoded host data T.
[0085]
Also, by using the GS method, when media data such as an image or sound for embedding a digital watermark is given, the watermark bit sequence can be embedded after being converted into a bit sequence that can be easily embedded in the media data. Therefore, it is possible to enhance the digital watermark resistance against signal processing, geometric transformation, compression, data tampering, and the like, and the watermark detection accuracy is greatly improved.
[0086]
Further, since substantially the same watermark is redundantly embedded in the plurality of blocks V, the watermark resistance can be further enhanced. Also, depending on the data characteristics of the block V, it may be difficult to embed a watermark, but by embedding a plurality of blocks V, it is possible to embed a watermark with enhanced resistance to a block that is relatively easy to embed, Through the majority decision at the time of watermark extraction, the watermark detection accuracy can be improved as a whole. Furthermore, the presence of tampering can be checked in block units by majority decision.
[0087]
Embodiment 2
FIG. 12 is a configuration diagram of encoding apparatus 100 according to Embodiment 2. This embodiment is different from the first embodiment in that error correction coding is performed before watermark embedding by GS coding. In the following, the same reference numerals are given to configurations common to the first embodiment, description thereof is omitted, and configurations and operations different from the first embodiment will be described.
[0088]
The watermark embedding processing unit 38 according to the present embodiment embeds an (n−r) -bit watermark sequence independently in each of the N blocks V on which compression encoding is performed, and (n−r) of each block V An error occurs such that a bit sequence of (n−r) × N bits obtained by concatenating a watermark sequence of bits across all the blocks V forms one codeword that is error-correction coded at a coding rate K / N. Perform correction encoding. As an example of such an error correction code using the entire N blocks V, a block code (hereinafter referred to as a block ECC) such as a Reed-Solomon code or a BCH code is used. By this error correction encoding process, redundant data is embedded in some blocks V among the plurality of blocks V subjected to compression encoding.
[0089]
The block ECC unit 33 encodes the information bits D of the watermark data X generated by the encryption unit 32 using a block error correction code described later, and outputs redundant bits P. The selector 35 receives the input of the information bit D of the watermark data X from the encryption unit 32 and the input of the redundant bit P of the watermark data X from the block ECC unit 33, and is currently performing the encoding process input from the block division unit 12. Based on the block number of the block V, either the information bit D or the redundant bit P is selected and given to the changing unit 34. The information bit D or the redundant bit P is GS-encoded by the changing unit 34 and the embedding unit 36 and embedded as a watermark in the block V currently being encoded.
[0090]
FIG. 13 is a diagram for explaining a block error correction code. The N blocks V of the host data S are divided into K information sequence embedding blocks 110 and (N−K) parity sequence embedding blocks 120. The information bits D of the (n−r) -bit watermark data X generated by the encryption unit 32 are embedded in each of the K information series embedding blocks 110. When the entire (n−r) × K-bit information sequence embedded in the K information sequence embedding blocks 110 is subjected to error correction coding at a coding rate of K / N, the total (n−r) × (N -K) A parity sequence of bits is obtained. By dividing this parity sequence by (n−r) bits, (n−r) redundant bits P are obtained. This redundant bit P is embedded in each of the remaining (N−K) parity sequence embedding blocks 120.
[0091]
Since the number of redundant bits P embedded in one block V is the same as the number of information bits D, it is not particularly distinguished whether it is redundant bits P or information bits D, and the block V of the host data S is not distinguished. Can be embedded as a watermark. Referring to FIG. 12 again, when the block V currently being encoded is the information sequence embedding block 110, the selector 35 selects the information bit D, and the block V currently being encoded is embedded in the parity sequence. In the case of the block 120, the redundant bit P is selected. The information bits D or redundant bits P of (n−r) bits are scrambled after an r-bit redundant word is added by the changing unit 34 and embedded in the block V by the embedding unit 36.
[0092]
FIG. 14 is a configuration diagram of the decoding device 200 according to the second embodiment. Unlike the decoding device 200 according to the first embodiment, the watermark extraction processing unit 40 further includes a block ECC decoding unit 49. The watermark data X descrambled by the descrambler 46 is the information bit D when the embedded block W ′ currently being decoded corresponds to the information sequence embedding block 110 described with reference to FIG. In the case of corresponding to the block 120, the redundant bit P is used. The block ECC decoding unit 49 generates an information sequence composed of information bits D extracted from the K information sequence embedding blocks 110 from the redundant bits P extracted from the (NK) parity sequence embedding blocks 120. An error correction is performed using the parity sequence. As a result, K pieces of watermark data X subjected to error correction decoding are obtained from the K pieces of information series embedding blocks 110.
[0093]
The encryption / decryption unit 48 generates watermark information I by decoding the encryption of the watermark data X that has been subjected to error correction decoding. The majority decision determination unit 50 makes a majority decision on the K pieces of watermark information I obtained from the K pieces of information series embedding blocks 110. In this embodiment, since (N−K) parity sequence embedding blocks 120 are used for embedding parity sequences, it is noted that the watermark information I cannot be obtained from these blocks. However, it is possible to use the decoded parity sequence for majority decision. In this case, the comparison result between the parity sequence output from the block ECC unit 33 of the watermark embedding processing unit 38 in FIG. 12 and the decoded parity sequence is used for majority decision. For this purpose, it is necessary that the watermark extraction processing unit 40 further includes the same functional configuration as that of the encryption unit 32 and the block ECC unit 33 of FIG.
[0094]
In the first embodiment, error correction coding is performed by the ECC unit 24 in FIG. 2 at the stage of scrambling the watermark data X. However, in the case of performing block error correction coding as in the present embodiment. The error correction coding by the ECC unit 24 at the scramble stage may be omitted.
[0095]
As in the ECC unit 24 of the first embodiment, the error correction coding method is independent for each block, such as a block including monotonous data that is difficult to embed a watermark or a block that has been subjected to a strong attack. If there are blocks containing large noise, error correction may not work sufficiently. In this embodiment, since error correction coding is performed jointly with other blocks, even if an error occurs in any block, if the number of errors is within the correction capability, with the help of the other blocks. Thus, the error correction capability is improved by increasing the code length by N times.
[0096]
Embodiment 3
FIG. 15 is a configuration diagram of encoding apparatus 100 according to Embodiment 3. In the present embodiment, the point that the entire block is used as a unit for error correction coding is the same as in Embodiment 2, but the error correction coding method used is different. Hereinafter, configurations common to the second embodiment are denoted by the same reference numerals, description thereof is omitted, and configurations and operations different from those of the second embodiment are described.
[0097]
The watermark embedding processing unit 38 according to the present embodiment embeds an (n−r) -bit watermark sequence independently in each of the N blocks V on which compression encoding is performed, and (n−r) of each block V An error occurs such that a bit sequence of (n−r) × N bits obtained by concatenating a watermark sequence of bits across all the blocks V forms one codeword that is error-correction coded at a coding rate K / N. Perform correction encoding. A convolutional code is used as an example of such an error correction code that uses the entire N blocks V. In place of the convolutional code, it is also possible to use a coding method having higher error correction capability such as a turbo code.
[0098]
The convolutional encoding unit 37 receives the watermark data X generated by the encryption unit 32, sequentially encodes the bit sequence of the watermark data X using a systematic convolutional code, and alternately outputs information bits and parity bits. To the change unit 34. The changing unit 34 and the embedding unit 36 GS-encode (n−r) × K / N bits of information D and (n−r) × (1−K / N) redundant bits P, It is embedded as an n-bit watermark in the block V being encoded.
[0099]
FIG. 16 is a diagram for explaining the convolutional coding of the entire block. Each of the N blocks V of the host data S is composed of (n−r) * K / N information bits D and (n−r) * (1−K / N) redundant bits P. When the watermark bits of (n−r) bits are embedded after GS encoding and viewed as a whole block, an information sequence of (n−r) × K bits and (n−r) × (N−K) bits A watermark sequence composed of redundant sequences is embedded after GS encoding. Therefore, when viewed from the (n−r) -bit watermark sequence embedded in the entire host data S, one codeword subjected to error correction coding at the coding rate K / N is formed.
[0100]
The convolutional encoding unit 37 may perform error correction encoding on the bit sequence of the watermark data X using an unorganized convolutional code. In the case of a non-systematic convolutional code, two types of encoded bits are alternately generated without distinguishing between information bits and parity bits, and an encoded sequence of (n−r) bits is embedded in each block V.
[0101]
FIG. 17 is a configuration diagram of the decoding apparatus 200 according to Embodiment 3. A convolutional code decoding unit 51 is used instead of the block ECC decoding unit 49 of the decoding apparatus 200 according to the second embodiment. In the case of the systematic convolutional code, the watermark data X extracted from the embedded block W ′ currently being decoded includes information bits D and redundant bits P, respectively. The convolutional code decoding unit 51 treats the information sequence and the parity sequence extracted from the N embedded blocks W ′ as one code word, and performs error correction on the entire N embedded blocks W ′. In the case of an unstructured convolutional code, there is no distinction between information bits and parity bits, and error correction is performed on a coded sequence extracted from all N embedded blocks W ′.
[0102]
The present invention has been described based on the embodiments. Those skilled in the art will understand that these embodiments are exemplifications, and that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. By the way.
[0103]
In the above description, the substantially same watermark is embedded in all the blocks V when the host data S is divided into blocks. However, the same watermark is embedded in a plurality of blocks in order to enhance the resistance of the watermark. Therefore, although the tolerance is weakened, a watermark may be embedded only in some blocks or only one block. Further, one digital watermark may be divided into several parts and distributed and embedded in a plurality of blocks V of the host data S. In either case, the watermark can be embedded and extracted in units of blocks in synchronization with the compression encoding and decoding processes, and the effect of improving the processing efficiency remains unchanged. In addition, by such processing, a plurality of types of watermarks can be embedded.
[0104]
In the second and third embodiments, one error correction codeword is formed using a watermark embedded in all blocks, but the length of this error correction codeword is set to 1 / h. Thus, a watermark to be embedded in all blocks may be configured with h error correction codewords and embedded in all blocks. However, the error correction capability decreases as h increases.
[0105]
In the above description, the block V as a watermark embedding target is assumed to be a block as a unit of orthogonal transform processing, and a DCT block or a subband of discrete wavelet transform is treated as a block V. However, the gist of the present invention is compression Since a block as an encoding processing unit is a watermark embedding target, for example, when an image is divided into regions of a predetermined size and the divided image is buffered and compressed and encoded, such division is performed. The image may be handled as a block V to be watermark embedded. In addition, in JPEG2000, which is a standard for still image compression, a technique called tiling may be used in which an image is divided into small areas called tiles and wavelet transform is performed on each tile. The tile may be treated as a block V. Therefore, in these cases, the block V may include a plurality of DCT blocks or a plurality of subbands of the discrete wavelet transform. In any case, by setting the processing unit of compression coding as a watermark embedding target, watermark embedding and extraction are performed in synchronization with the compression coding and decoding processes, thereby reducing the required memory and processing time. Is shortened.
[0106]
In the above description, the digital watermark data is embedded in the block before quantization. However, the digital watermark data may be embedded in the quantized block. In that case, however, the compression rate is lowered by embedding the watermark.
[0107]
In the above description, in order to generate a plurality of watermark data candidates or embedding position candidates, the GS method capable of generating a variety of candidates is used. However, other scramble methods can be applied. Alternatively, candidate data may be randomly generated by some method. In the embodiment, the original watermark data is reproduced from the generated watermark data candidates by descrambling. , The original watermark data may be obtained.
[0108]
The identification data used as the initial data at the time of scrambling was inserted at the beginning of the watermark data and provided to the decoding side, but this identification data is not embedded in the watermark but is held as a secret key on the encoding side. , You may manage. In that case, the decryption side acquires the secret key and then descrambles the watermark data.
[0109]
In the above description, as shown in FIG. 2, L multiplexers 20, scramblers 22, ECC units 24, embedding units 26, and SNR calculation units are used to generate L types of watermark data candidates. 28 are provided in parallel, but these members may be configured in a single configuration, and L types of watermark data candidates may be sequentially generated and evaluated to select the optimal candidate.
[0110]
【The invention's effect】
According to the present invention, it is possible to improve the efficiency of watermark embedding and extraction, and improve watermark tolerance and detection accuracy.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an encoding apparatus according to Embodiment 1. FIG.
FIG. 2 is a functional configuration diagram of a changing unit and an embedding unit in FIG. 1;
3 is a configuration diagram of a decoding apparatus according to Embodiment 1. FIG.
FIG. 4 is a diagram illustrating a relationship between original watermark data and L types of scrambled watermark data.
FIG. 5 is a diagram illustrating a convolution operation at the time of encoding.
FIG. 6 is a diagram illustrating a convolution operation at the time of decoding.
FIG. 7 is a diagram illustrating a state in which watermark data is embedded in a block of host data that has been subjected to discrete cosine transform.
FIG. 8 is a diagram illustrating a state in which watermark bits are embedded in the block of FIG.
FIG. 9 is a diagram for explaining a subband of host data subjected to discrete wavelet transform;
FIG. 10 is a flowchart for explaining a digital watermark embedding procedure according to the first embodiment;
FIG. 11 is a flowchart for explaining a digital watermark extraction procedure according to the first embodiment;
12 is a configuration diagram of an encoding apparatus according to Embodiment 2. FIG.
FIG. 13 is a diagram for explaining block error correction according to the second embodiment.
14 is a block diagram of a decoding apparatus according to Embodiment 2. FIG.
15 is a configuration diagram of an encoding apparatus according to Embodiment 3. FIG.
FIG. 16 is a diagram for explaining convolutional codes for the entire block according to Embodiment 3;
FIG. 17 is a configuration diagram of a decoding apparatus according to Embodiment 3.
[Explanation of symbols]
10 coding processing unit, 12 block division unit, 14 orthogonal transform unit, 16 quantization unit, 18 variable length coding unit, 20 multiplexer, 22 scrambler, 24 ECC unit, 26 embedding unit, 28 SNR calculation unit, 32 cipher Conversion unit, 33 block ECC unit, 34 changing unit, 36 embedding unit, 37 convolutional encoding unit, 38 watermark embedding processing unit, 40 watermark extraction processing unit, 42 extraction unit, 44 ECC decoding unit, 46 descrambler, 48 encryption decoding Unit, 49 block ECC decoding unit, 50 majority decision determination unit, 51 convolutional code decoding unit, 60 decoding processing unit, 62 variable length code decoding unit, 64 block division unit, 66 inverse quantization unit, 68 inverse orthogonal transform unit, 100 code 200 decoding apparatus.

Claims (12)

ホストデータをブロック単位で圧縮符号化する符号化処理部と、
ホストデータの圧縮符号化と同期して、圧縮符号化の行われる複数のブロックに子透かしデータを埋め込む透かし埋め込み処理部とを含み、
前記透かし埋め込み処理部は、
前記透かしデータをスクランブルして複数の透かしデータの候補を生成するスクランブル部と、
前記ブロックに前記複数の透かしデータの候補のそれぞれを埋め込み、複数の埋め込みブロックの候補を生成する埋め込み部と、
前記複数の埋め込みブロックの候補の各々について、当該電子透かしの耐性を評価する評価部と、
前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の一つを選択する選択部とを含むことを特徴とする符号化装置。
An encoding processing unit that compresses and encodes host data in units of blocks;
And compression coding of host data and synchronization, and a watermark embedding processing unit embeds the child watermark data collector into a plurality of blocks made of compression coding,
The watermark embedding processing unit
A scramble unit that scrambles the watermark data to generate a plurality of watermark data candidates;
An embedding unit that embeds each of the plurality of watermark data candidates in the block and generates a plurality of embedded block candidates;
For each of the plurality of embedded block candidates, an evaluation unit that evaluates the resistance of the digital watermark;
And a selection unit that selects one of the plurality of embedded block candidates based on the tolerance evaluation value.
前記評価部は、前記耐性を、前記ホストデータを前記透かしデータに対するノイズと見なした場合に計算されるSN比により評価することを特徴とする請求項に記載の符号化装置。The encoding apparatus according to claim 1 , wherein the evaluation unit evaluates the tolerance based on an S / N ratio calculated when the host data is regarded as noise with respect to the watermark data. 前記評価部は、前記埋め込みブロックを圧縮符号化する際の量子化誤差を考慮して前記耐性を評価することを特徴とする請求項またはに記載の符号化装置。The evaluation unit, the encoding apparatus according to claim 1 or 2 in consideration of the quantization error in compression encoding of the embedded blocks and evaluating the resistance. 前記埋め込み部は、前記複数のブロックに埋め込まれる前記透かしデータをブロックにまたがって連結したデータ系列が誤り訂正符号化された一つの符号語を構成するように誤り訂正符号化を行った上で、前記透かしデータをブロック単位で埋め込むことを特徴とする請求項に記載の符号化装置。The embedding unit performs error correction coding so that a data sequence obtained by concatenating the watermark data embedded in the plurality of blocks across blocks constitutes one codeword in which error correction coding is performed, The encoding apparatus according to claim 1 , wherein the watermark data is embedded in units of blocks. 前記埋め込み部は、前記複数のブロックに埋め込まれる前記透かしデータの情報系列を誤り訂正符号化したときのパリティ系列を、前記複数のブロックの内、一部のブロックに電子透かしとして埋め込むことを特徴とする請求項に記載の符号化装置。The embedding unit embeds a parity sequence when an information sequence of the watermark data embedded in the plurality of blocks is subjected to error correction coding as a digital watermark in a part of the plurality of blocks. The encoding device according to claim 1 . 前記透かし埋め込み処理部は、圧縮符号化の行われるN個のブロックの内、K個のブロックに埋め込まれるべき前記透かしデータの情報ビットからなる情報系列を、符号化率がK/Nの誤り訂正符号を用いて誤り訂正符号化し、残りの(N−K)個のブロックに埋め込まれるべき、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列を生成するブロック誤り訂正符号化部をさらに含むことを特徴とする請求項に記載の符号化装置。The watermark embedding processing unit converts an information sequence composed of information bits of the watermark data to be embedded in K blocks out of N blocks subjected to compression encoding, and performs error correction with a coding rate of K / N A block error correction encoding unit that generates a parity sequence composed of redundant bits having the same bit length as the information bits, which is to be error correction encoded using a code, and to be embedded in the remaining (N−K) blocks The encoding apparatus according to claim 5 , wherein: 符号化ホストデータをブロック単位で復号する復号処理部と、
前記符号化ホストデータの復号と同期して、復号の行われる複数のブロックから子透かしデータを抽出する透かし抽出処理部とを含み、
前記透かし抽出処理部は、
復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出する抽出部と、
前記スクランブルされた透かしデータのスクランブルを解除するデスクランブル部と、
前記複数のブロックから抽出された複数の前記透かしデータを多数決判定することにより、埋め込まれた透かしデータを特定する判定部とを含むことを特徴とする復号装置。
A decoding processor that decodes encoded host data in units of blocks;
In synchronism with the decoding of the encoded host data, and a watermark extracting unit for extracting child watermark data collector from a plurality of blocks made of decoding,
The watermark extraction processing unit
An extractor for extracting scrambled watermark data from each of a plurality of blocks to be decoded;
A descrambling unit for descrambling the scrambled watermark data;
A decoding apparatus comprising: a determination unit that identifies embedded watermark data by performing a majority decision on the plurality of watermark data extracted from the plurality of blocks.
前記判定部は、多数決判定により特定された透かしデータとは異なる透かしデータが抽出されたブロックについて、改ざんの可能性がある旨の警告を出力することを特徴とする請求項に記載の復号装置。8. The decoding apparatus according to claim 7 , wherein the determination unit outputs a warning that there is a possibility of falsification of a block in which watermark data different from the watermark data specified by the majority determination is extracted. . 前記抽出部は、前記複数のブロックから抽出される前記透かしデータの情報系列の誤り訂正のためのパリティ系列を、前記複数のブロックの内、一部のブロックから電子透かしとして抽出することを特徴とする請求項に記載の復号装置。The extraction unit extracts a parity sequence for error correction of an information sequence of the watermark data extracted from the plurality of blocks as a digital watermark from a part of the plurality of blocks. The decoding device according to claim 7 . 前記透かし抽出処理部は、復号の行われるN個のブロックの内、K個のブロックから抽出される前記透かしデータの情報ビットからなる情報系列を、残りの(N−K)個のブロックから抽出される、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列により、誤り訂正するブロック誤り訂正復号部をさらに含むことを特徴とする請求項に記載の復号装置。The watermark extraction processing unit extracts, from the remaining (N−K) blocks, an information sequence including information bits of the watermark data extracted from K blocks among N blocks to be decoded. The decoding apparatus according to claim 9 , further comprising a block error correction decoding unit configured to perform error correction using a parity sequence including redundant bits having the same bit length as the information bits. ホストデータの圧縮符号化と同期して、スクランブルして生成された複数の電子透かしデータの候補を、圧縮符号化の行われるブロックに埋め込み、複数の埋め込みブロックの候補を生成するステップと、
前記複数の埋め込みブロックの候補の各々について、埋め込まれた電子透かしの耐性を評価するステップと、
前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の1つを最終的に電子透かしが埋め込まれたブロックとして選択するステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
Synchronizing with the compression encoding of the host data, embedding a plurality of digital watermark data candidates generated by scrambling into a block subjected to compression encoding, and generating a plurality of embedded block candidates;
Evaluating the embedded digital watermark resistance for each of the plurality of embedded block candidates;
A computer program causing a computer to execute a step of finally selecting one of the plurality of embedded block candidates as a block in which a digital watermark is embedded based on the evaluation value of the tolerance.
符号化ホストデータの復号と同期して、復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出するステップと、
前記スクランブルされた透かしデータのスクランブルを解除するステップと、
前記複数のブロックから抽出された複数の前記透かしデータを多数決判定して、埋め込まれた透かしデータを特定するステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
Extracting scrambled watermark data from each of a plurality of blocks to be decoded in synchronization with decoding of the encoded host data;
Descrambling the scrambled watermark data; and
A computer program for causing a computer to execute majority determination of a plurality of the watermark data extracted from the plurality of blocks and to specify embedded watermark data.
JP2003003987A 2003-01-10 2003-01-10 Digital watermark embedding method and encoding device and decoding device capable of using the method Expired - Fee Related JP4024153B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003003987A JP4024153B2 (en) 2003-01-10 2003-01-10 Digital watermark embedding method and encoding device and decoding device capable of using the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003003987A JP4024153B2 (en) 2003-01-10 2003-01-10 Digital watermark embedding method and encoding device and decoding device capable of using the method

Publications (2)

Publication Number Publication Date
JP2004221715A JP2004221715A (en) 2004-08-05
JP4024153B2 true JP4024153B2 (en) 2007-12-19

Family

ID=32895091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003003987A Expired - Fee Related JP4024153B2 (en) 2003-01-10 2003-01-10 Digital watermark embedding method and encoding device and decoding device capable of using the method

Country Status (1)

Country Link
JP (1) JP4024153B2 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4765054B2 (en) * 2004-05-19 2011-09-07 国立大学法人山口大学 Analog encoding system
EP1729285A1 (en) * 2005-06-02 2006-12-06 Deutsche Thomson-Brandt Gmbh Method and apparatus for watermarking an audio or video signal with watermark data using a spread spectrum
WO2007049479A1 (en) * 2005-10-25 2007-05-03 The University Of Electro-Communications Information processing apparatus, information processing method, and program
JP4625406B2 (en) * 2005-12-21 2011-02-02 株式会社リコー Information embedding device, information extracting device, information embedding method, information extracting method, information embedding program, information extracting program, and information storage medium
WO2009025006A1 (en) * 2007-08-20 2009-02-26 Fujitsu Limited Image processor
JP2010041710A (en) 2008-07-11 2010-02-18 Ricoh Co Ltd Apparatus, method for detecting embedded information,program, and recording medium
CN102187673B (en) 2008-08-19 2014-07-30 汤姆森特许公司 Luminance evaluation
WO2010021682A1 (en) 2008-08-19 2010-02-25 Thomson Licensing Cabac/avc compliant watermarking of syntax elements in compressed video
KR101612729B1 (en) 2008-08-19 2016-04-15 톰슨 라이센싱 A propagation map
BRPI0917456B1 (en) 2008-08-19 2020-09-15 Contentarmor METHOD FOR SERVICE TO VIDEO FLOW OF ADAPTATIVE BINARY ARITHMETIC CODING WITH CONTEXT BASED (CABAC)
US20110142418A1 (en) * 2008-08-20 2011-06-16 Shan He Blockiness and fidelity in watermarking
CN102132564B (en) 2008-08-20 2013-09-11 汤姆森特许公司 Selection of watermarks for the watermarking of compressed video
CN102754124B (en) 2010-02-09 2016-08-03 汤姆森许可贸易公司 Use the watermark detection propagating figure
CN106780278B (en) * 2016-11-25 2020-08-04 陕西师范大学 Self-recovery image encryption and decryption method combining zero watermark and block classification fusion
CN107087086B (en) * 2017-04-27 2019-02-05 齐鲁工业大学 A kind of high-capacity reversible information concealing method based on code division multiplexing
JP7042567B2 (en) * 2017-07-07 2022-03-28 合同会社DMM.com Distribution of digital content with embedded user-specific information
CN110211018B (en) * 2019-06-12 2021-06-04 山东科技大学 Chaos encryption reversible information hiding method based on odd-even discrimination strategy
CN113297592B (en) * 2021-05-10 2023-02-07 复旦大学 Relational database-oriented watermark tracing method, device and storage medium
CN118014815A (en) * 2024-03-12 2024-05-10 淮南师范学院 Image watermark embedding method, image watermark extracting method, image watermark embedding device, image watermark extracting device, image watermark embedding equipment and storage medium

Also Published As

Publication number Publication date
JP2004221715A (en) 2004-08-05

Similar Documents

Publication Publication Date Title
JP4266677B2 (en) Digital watermark embedding method and encoding device and decoding device capable of using the method
JP4107851B2 (en) Digital watermark embedding method and encoding device and decoding device capable of using the method
JP3960959B2 (en) Digital watermark embedding apparatus and method, and digital watermark extraction apparatus and method
JP4024153B2 (en) Digital watermark embedding method and encoding device and decoding device capable of using the method
JP4155956B2 (en) Digital watermark embedding apparatus and method, and digital watermark extraction apparatus and method
Sallee Model-based methods for steganography and steganalysis
TWI439135B (en) Watermarking encoded content
Yang et al. A contrast-sensitive reversible visible image watermarking technique
US7360093B2 (en) System and method for authentication of JPEG image data
Lee et al. A public verifiable copy protection technique for still images
US7313696B2 (en) Method for authentication of JPEG image data
US7493489B2 (en) System and method for authentication of JPEG image data
Zain Strict authentication watermarking with JPEG compression (SAW-JPEG) for medical images
US7627761B2 (en) System for authentication of JPEG image data
Korus et al. A scheme for censorship of sensitive image content with high-quality reconstruction ability
EP3602478B1 (en) Video watermarking
Chandramouli et al. Multiple-description framework for oblivious watermarking
Ayyappan et al. A review on reversible data hiding techniques
Puteaux et al. Hierarchical high capacity data hiding in JPEG crypto-compressed images
Chang et al. High-Capacity Reversible Data Hiding Method for JPEG Images.
JP4267038B2 (en) Digital watermark embedding device and digital watermark extraction device
JP5571756B2 (en) Watermark encoded content
Hassan et al. Variable block-size image authentication with localization and self-recovery
Ramkumar et al. On the design of data hiding methods robust to lossy compression
Zhang et al. Image watermarking algorithm based on the code division multiple access technique

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071002

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

Free format text: PAYMENT UNTIL: 20101012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees