(57)【要約】【課題】電子透かしの埋め込み処理には大きなメモリが必要であり、処理に時間がかかっていた。【解決手段】ブロック分割部１２はホストデータＳを複数のブロックＶに分割する。直交変換部１４はブロックＶを空間周波数成分に変換する。暗号化部３２は、秘密鍵Ｋを用いて、透かし情報Ｉを暗号化して、透かしデータＸを生成する。変更部３４は、透かしデータＸをスクランブルした透かしデータＸ’を出力する。埋め込み部３６は、直交変換部１４から入力される現在符号化処理中のブロックＶにスクランブルされた透かしデータＸ’を埋め込み、埋め込みブロックＷを出力して量子化部１６に与える。量子化部１６は埋め込みブロックＷを量子化する。可変長符号化部１８は量子化された埋め込みブロックＷの集合を可変長符号化して圧縮し、透かし入り符号化ホストデータＴを出力する。【選択図】        図１
2004221715.tif 000002
【特許請求の範囲】
【請求項１】
ホストデータの圧縮符号化と同期して、圧縮符号化の行われるブロックを電子透かしの埋め込み単位として、複数のブロックに実質的に同一の電子透かしデータを重複して埋め込むことを特徴とする電子透かし埋め込み方法。
【請求項２】
前記複数のブロックの各々に前記透かしデータを埋め込む際、前記透かしデータをスクランブルして生成された複数の透かしデータの候補を埋め込み、埋め込まれた透かしの候補の耐性をそれぞれ評価し、その評価が良好である前記透かしデータの候補が埋め込まれたブロックを埋め込みブロックとして選択することを特徴とする請求項１に記載の電子透かし埋め込み方法。
【請求項３】
ホストデータをブロック単位で圧縮符号化する符号化処理部と、
ホストデータの圧縮符号化と同期して、圧縮符号化の行われる複数のブロックに実質的に同一の電子透かしデータを埋め込む透かし埋め込み処理部とを含み、
前記透かし埋め込み処理部は、
前記透かしデータをスクランブルして複数の透かしデータの候補を生成するスクランブル部と、
前記ブロックに前記複数の透かしデータの候補のそれぞれを埋め込み、複数の埋め込みブロックの候補を生成する埋め込み部と、
前記複数の埋め込みブロックの候補の各々について、当該電子透かしの耐性を評価する評価部と、
前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の一つを選択する選択部とを含むことを特徴とする符号化装置。
【請求項４】
前記評価部は、前記耐性を、前記ホストデータを前記透かしデータに対するノイズと見なした場合に計算されるＳＮ比により評価することを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記評価部は、前記埋め込みブロックを圧縮符号化する際の量子化誤差を考慮して前記耐性を評価することを特徴とする請求項３または４に記載の符号化装置。
【請求項６】
前記埋め込み部は、前記複数のブロックに埋め込まれる前記透かしデータをブロックにまたがって連結したデータ系列が誤り訂正符号化された一つの符号語を構成するように誤り訂正符号化を行った上で、前記透かしデータをブロック単位で埋め込むことを特徴とする請求項３に記載の符号化装置。
【請求項７】
前記埋め込み部は、前記複数のブロックに埋め込まれる前記透かしデータの情報系列を誤り訂正符号化したときのパリティ系列を、前記複数のブロックの内、一部のブロックに電子透かしとして埋め込むことを特徴とする請求項３に記載の符号化装置。
【請求項８】
前記透かし埋め込み処理部は、圧縮符号化の行われるＮ個のブロックの内、Ｋ個のブロックに埋め込まれるべき前記透かしデータの情報ビットからなる情報系列を、符号化率がＫ／Ｎの誤り訂正符号を用いて誤り訂正符号化し、残りの（Ｎ−Ｋ）個のブロックに埋め込まれるべき、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列を生成するブロック誤り訂正符号化部をさらに含むことを特徴とする請求項７に記載の符号化装置。
【請求項９】
符号化ホストデータをブロック単位で復号する復号処理部と、
前記符号化ホストデータの復号と同期して、復号の行われる複数のブロックから実質的に同一の電子透かしデータを抽出する透かし抽出処理部とを含み、
前記透かし抽出処理部は、
復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出する抽出部と、
前記スクランブルされた透かしデータのスクランブルを解除するデスクランブル部と、
前記複数のブロックから抽出された複数の前記透かしデータを多数決判定することにより、埋め込まれた透かしデータを特定する判定部とを含むことを特徴とする復号装置。
【請求項１０】
前記判定部は、多数決判定により特定された透かしデータとは異なる透かしデータが抽出されたブロックについて、改ざんの可能性がある旨の警告を出力することを特徴とする請求項９に記載の復号装置。
【請求項１１】
前記抽出部は、前記複数のブロックから抽出される前記透かしデータの情報系列の誤り訂正のためのパリティ系列を、前記複数のブロックの内、一部のブロックから電子透かしとして抽出することを特徴とする請求項９に記載の復号装置。
【請求項１２】
前記透かし抽出処理部は、復号の行われるＮ個のブロックの内、Ｋ個のブロックから抽出される前記透かしデータの情報ビットからなる情報系列を、残りの（Ｎ−Ｋ）個のブロックから抽出される、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列により、誤り訂正するブロック誤り訂正復号部をさらに含むことを特徴とする請求項１１に記載の復号装置。
【請求項１３】
ホストデータの圧縮符号化と同期して、スクランブルして生成された複数の電子透かしデータの候補を、圧縮符号化の行われるブロックに埋め込み、複数の埋め込みブロックの候補を生成するステップと、
前記複数の埋め込みブロックの候補の各々について、埋め込まれた電子透かしの耐性を評価するステップと、
前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の１つを最終的に電子透かしが埋め込まれたブロックとして選択するステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１４】
符号化ホストデータの復号と同期して、復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出するステップと、
前記スクランブルされた透かしデータのスクランブルを解除するステップと、
前記複数のブロックから抽出された複数の前記透かしデータを多数決判定して、埋め込まれた透かしデータを特定するステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、電子透かし技術に関し、特に電子透かしの埋め込み方法、およびその方法を利用可能な符号化装置と復号装置に関する。
【０００２】
【従来の技術】
ここ数年、インターネット利用人口が急増し、インターネット利用の新たなステージともいえるブロードバンド時代に入ろうとしている。ブロードバンド通信では通信帯域が格段に広がるため、音声、静止画、動画などデータ量の大きいコンテンツの配信も気軽にできるようになる。このようなデジタルコンテンツの流通が盛んになると、コンテンツの著作権の保護がより一層求められることになる。
【０００３】
ネットワーク上に流通するコンテンツのデータは他人に容易にコピーされ、著作権に対する保護が十分ではないのが現状である。そこで著作権を保護するために、コンテンツの作成者や利用者の情報を電子透かしとしてコンテンツデータに埋め込む技術が開発されている。この電子透かし技術を用いることにより、ネットワーク上で流通するコンテンツデータから電子透かしを抽出して、不正利用を検出したり、不正コピーの流通経路を追跡することが可能となる。
【０００４】
従来の電子透かしの埋め込み技術には、電子透かし情報を埋め込む処理の自由度を維持しつつ、耐性の強い電子透かしの埋め込みを可能とするものがある（たとえば、非特許文献１参照）。
【０００５】
【非特許文献１】
Ｉｎｇｅｍａｒ  Ｊ．  Ｃｏｘ，  Ｊｏｅ  Ｋｉｌｉａｎ，  Ｆ．  Ｔｈｏｍｓｏｎ  Ｌｅｉｇｈｔｏｎ，  ａｎｄ  Ｔａｌａｌ  Ｓｈａｍｏｏｎ，  ”Ｓｅｃｕｒｅ  Ｓｐｒｅａｄ  Ｓｐｅｃｔｒｕｍ  Ｗａｔｅｒｍａｒｋｉｎｇ  ｆｏｒ  Ｍｕｌｔｉｍｅｄｉａ，”  ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ，  Ｖｏｌ．  ６，  Ｎｏ．  １２，  Ｄｅｃｅｍｂｅｒ  １９９７．
【０００６】
【発明が解決しようとする課題】
電子透かしは、不正利用者による改ざんを防止するために、利用者には分からないようにコンテンツデータに埋め込まれる。しかしコンテンツデータは、流通過程や利用過程で、圧縮符号化や各種フィルタリングなどの信号処理が加えられたり、ユーザにより加工されたり、あるいは透かし情報が改ざんされるなど、さまざまな操作を受けることがあり、その過程で埋め込まれた電子透かしデータの一部が変更されたり、消失する可能性がある。したがって電子透かしはこういった操作に対する耐性が要求される。
【０００７】
電子透かしの耐性を高めるための電子透かしの埋め込み技術が提案されているが、人間の視覚特性に合わせて、画像のエッジ部分やテクスチャ領域の中でも変化の大きな部分など高周波成分に電子透かしを埋め込む方法であり、個々のコンテンツデータの内容に強く依存し、透かし埋め込み後のコンテンツデータに対するさまざまな操作に対して耐性を強化するには、汎用性や柔軟性の面で限界がある。
【０００８】
また、画像を圧縮符号化する際、画像をブロックに分割して、ブロック単位で圧縮符号化が行われる。ブロック分割することで、処理に必要なメモリ量を一定量に抑えることができるからである。一方、電子透かしは画像全体に埋め込まれるのが普通であり、ブロック単位の圧縮符号化との整合性がなく、画像全体をバッファするメモリを前提とした埋め込み処理であるため、大きなメモリ容量が必要である。
【０００９】
本発明はこうした状況に鑑みてなされたもので、その目的は、耐性の強い電子透かしを埋め込み、電子透かしの検出誤差を低減することの可能な技術の提供にある。また別の目的は、圧縮符号化および復号に同期して、電子透かしの埋め込みおよび抽出を行うことの可能な技術の提供にある。
【００１０】
【課題を解決するための手段】
本発明のある態様は電子透かし埋め込み方法に関する。この方法は、ホストデータの圧縮符号化と同期して、圧縮符号化の行われるブロックを電子透かしの埋め込み単位として、複数のブロックに実質的に同一の電子透かしデータを重複して埋め込む。
【００１１】
ここでいうブロックとは、ホストデータを分割して圧縮符号化する際の処理単位であり、通常、一定のサイズであり、その処理単位毎にメモリに格納されて圧縮符号化処理がなされる。圧縮符号化の処理単位で電子透かしが埋め込まれるため、メモリ効率がよく、圧縮符号化と連動してリアルタイムに電子透かしの埋め込み処理が可能である。また複数のブロックに実質的に同一の電子透かしデータが繰り返し埋め込まれるため、透かしの耐性が強化される。ここで「実質的に同一の電子透かしデータ」とは、同一の電子透かしをブロック番号などの情報を用いてブロックごとに変更して埋め込む場合や、透かしのデータをブロックのデータに依存してスクランブルする場合も含める趣旨である。
【００１２】
ホストデータは、電子透かしを埋め込む対象となるオリジナルデータであり、たとえば静止画、動画、音声などのデータである。埋め込まれる電子透かしには、オリジナルデータの識別情報、作成者情報、利用者情報などが含まれる。その他、認証を目的として、ホストデータのダイジェストデータ、すなわちホストデータの特徴を端的に表したデータを電子透かしとして埋め込むことも可能である。電子透かしの耐性とは、電子透かしの埋め込まれたホストデータが改変されるなどの攻撃を受けた場合や、電子透かしの埋め込まれたホストデータに圧縮符号化やフィルタリングなどの信号処理が施された場合など、電子透かしの埋め込み後のホストデータに対して何らかの操作が加えられた場合に電子透かしデータがもつ頑強性をいう。
【００１３】
前記複数のブロックの各々に前記透かしデータを埋め込む際、前記透かしデータをスクランブルして生成された複数の透かしデータの候補を埋め込み、埋め込まれた透かしの候補の耐性をそれぞれ評価し、その評価が良好である前記透かしデータの候補が埋め込まれたブロックを埋め込みブロックとして選択してもよい。このようにブロックごとに透かしデータをスクランブルして高い耐性をもつ透かしデータを埋め込むことにより、ブロックごとのデータの特性を活かして、透かしの耐性をさらに強化することができる。
【００１４】
電子透かしを埋め込む側では、電子透かしデータをスクランブルする際、元の電子透かしデータを複数の透かしデータの候補に対応づける１対多の写像が用いられる。電子透かしを抽出する側では、逆写像を行って、スクランブルされた透かしデータから元の電子透かしデータを得る。そのため電子透かしを抽出する側では、元の電子透かしデータと複数の透かしデータの候補の対応テーブルが利用されてもよい。また、電子透かしを埋め込む側で、元の電子透かしデータから所定の初期値のもとで複数の透かしデータの候補を生成するスクランブル関数が利用されてもよい。この場合、電子透かしを抽出する側では、スクランブルに利用された初期値とスクランブル関数にもとづいて、抽出された電子透かしの逆スクランブルが行われる。
【００１５】
本発明の別の態様は符号化装置に関する。この装置は、ホストデータをブロック単位で圧縮符号化する符号化処理部と、ホストデータの圧縮符号化と同期して、圧縮符号化の行われる複数のブロックに実質的に同一の電子透かしデータを埋め込む透かし埋め込み処理部とを含む。前記透かし埋め込み処理部は、前記透かしデータをスクランブルして複数の透かしデータの候補を生成するスクランブル部と、前記ブロックに前記複数の透かしデータの候補のそれぞれを埋め込み、複数の埋め込みブロックの候補を生成する埋め込み部と、前記複数の埋め込みブロックの候補の各々について、当該電子透かしの耐性を評価する評価部と、前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の一つを選択する選択部とを含む。
【００１６】
前記埋め込み部は、前記複数のブロックに埋め込まれる前記透かしデータの情報系列を誤り訂正符号化したときのパリティ系列を、前記複数のブロックの内、一部のブロックに電子透かしとして埋め込んでもよい。前記透かし埋め込み処理部は、圧縮符号化の行われるＮ個のブロックの内、Ｋ個のブロックに埋め込まれるべき前記透かしデータの情報ビットからなる情報系列を、符号化率がＫ／Ｎの誤り訂正符号を用いて誤り訂正符号化し、残りの（Ｎ−Ｋ）個のブロックに埋め込まれるべき、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列を生成するブロック誤り訂正符号化部をさらに含んでもよい。透かしデータの情報ビットがｎビット（ｎは整数）であるとすると、Ｋ個のブロックに埋め込まれる情報系列はｎ×Ｋビットである。このＫ個のブロックに埋め込まれた情報系列の全体をＫ／Ｎの符号化率で誤り訂正符号化すると、全体でｎ×（Ｎ−Ｋ）ビットのパリティ系列が得られる。このパリティ系列をｎビットずつ区切ることにより得られるｎビットの冗長ビットを（Ｎ−Ｋ）個のブロックに電子透かしとして埋め込む。Ｋ個のブロックを情報系列埋め込み用ブロックと呼び、（Ｎ−Ｋ）個のブロックをパリティ系列埋め込み用ブロックと呼ぶ。情報系列埋め込み用ブロックに埋め込まれる情報ビット、およびパリティ系列埋め込み用ブロックに埋め込まれる冗長ビットはともにｎビットであるから、電子透かしとしての埋め込み時には特に区別することなく両者を同一の方式で埋め込むことができる。
【００１７】
本発明のさらに別の態様は復号装置に関する。この装置は、符号化ホストデータをブロック単位で復号する復号処理部と、前記符号化ホストデータの復号と同期して、復号の行われる複数のブロックから実質的に同一の電子透かしデータを抽出する透かし抽出処理部とを含む。前記透かし抽出処理部は、復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出する抽出部と、前記スクランブルされた透かしデータのスクランブルを解除するデスクランブル部と、前記複数のブロックから抽出された複数の前記透かしデータを多数決判定することにより、埋め込まれた透かしデータを特定する判定部とを含む。複数のブロックから透かしデータを抽出して多数決判定することにより、透かしデータの検出精度を向上させることができる。
【００１８】
前記抽出部は、前記複数のブロックから抽出される前記透かしデータの情報系列の誤り訂正のためのパリティ系列を、前記複数のブロックの内、一部のブロックから電子透かしとして抽出してもよい。前記透かし抽出処理部は、復号の行われるＮ個のブロックの内、Ｋ個のブロックから抽出される前記透かしデータの情報ビットからなる情報系列を、残りの（Ｎ−Ｋ）個のブロックから抽出される、前記情報ビットと同一ビット長の冗長ビットからなるパリティ系列により、誤り訂正するブロック誤り訂正復号部をさらに含んでもよい。
【００１９】
本発明のさらに別の態様はコンピュータプログラムに関する。このプログラムは、ホストデータの圧縮符号化と同期して、スクランブルして生成された複数の電子透かしデータの候補を、圧縮符号化の行われるブロックに埋め込み、複数の埋め込みブロックの候補を生成するステップと、前記複数の埋め込みブロックの候補の各々について、埋め込まれた電子透かしの耐性を評価するステップと、前記耐性の評価値に基づいて前記複数の埋め込みブロックの候補の１つを最終的に電子透かしが埋め込まれたブロックとして選択するステップとをコンピュータに実行させる。
【００２０】
本発明のさらに別の態様もコンピュータプログラムに関する。このプログラムは、符号化ホストデータの復号と同期して、復号の行われる複数のブロックの各々からスクランブルされた透かしデータを抽出するステップと、前記スクランブルされた透かしデータのスクランブルを解除するステップと、前記複数のブロックから抽出された複数の前記透かしデータを多数決判定して、埋め込まれた透かしデータを特定するステップとをコンピュータに実行させる。
【００２１】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００２２】
【発明の実施の形態】
実施の形態１
図１は、実施の形態１に係る符号化装置１００の構成を示す。この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた電子透かし埋め込み機能および圧縮符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２３】
符号化装置１００は、ホストデータＳを圧縮符号化する符号化処理部１０と、圧縮符号化が行われるホストデータＳのブロックＶに透かし情報Ｉを埋め込む透かし埋め込み処理部３８とを含む。ホストデータＳは、たとえば音声、静止画、動画などのデータである。透かし情報Ｉは、そのホストデータＳの識別情報、作成者情報、利用者情報など著作権に関する情報、ホストデータＳの改ざん検出を行う認証情報、タイムスタンプなどである。以下では、ホストデータＳとして画像を例に挙げ、ブロックＶは二次元のピクセルデータであるとして説明するが、ホストデータＳが音声であっても、圧縮符号化の処理単位として一次元のブロックＶを考えることができ、同様の処理が可能である。
【００２４】
ホストデータＳは符号化処理部１０のブロック分割部１２によりブロックＶに分割され、直交変換部１４により離散コサイン変換や離散ウェーブレット変換などの直交変換により、空間周波数成分に変換される。直交変換部１４により直交変換されたブロックＶは、透かし埋め込み処理部３８に供給される。透かし埋め込み処理部３８はブロックＶに透かし情報Ｉを埋め込み、埋め込みブロックＷを符号化処理部１０の量子化部１６に与える。量子化部１６は埋め込みブロックＷを量子化する。可変長符号化部１８は、ホストデータＳの量子化された埋め込みブロックＷを可変長符号化することにより、ホストデータＳを圧縮し、透かし入り符号化ホストデータＴを出力する。
【００２５】
透かし埋め込み処理部３８の暗号化部３２は、秘密鍵Ｋを用いて、透かし情報Ｉを暗号化して、透かしデータＸを生成する。暗号化部３２は、ブロック分割部１２から現在符号化処理中のブロックＶのブロック番号の入力を受けて、ブロック番号によって透かし情報Ｉを暗号化することもできる。この場合、同一の透かし情報Ｉに対してブロック毎に異なる透かしデータＸが生成されるが、暗号を復号して元の透かし情報Ｉを一意に復元できるため、ブロック番号によって異なる透かしデータＸを実質的に同一の透かしであるとして扱う。
【００２６】
変更部３４は、暗号化部３２から透かしデータＸの入力を、直交変換部１４から現在符号化処理中のブロックＶの入力を受けて、ブロックＶに依存して透かしデータＸをスクランブルし、スクランブルされた透かしデータＸ’を出力する。埋め込み部３６は、秘密鍵Ｋを用いて、直交変換部１４から入力される現在符号化処理中のブロックＶにスクランブルされた透かしデータＸ’を埋め込み、埋め込みブロックＷを出力して量子化部１６に与える。秘密鍵Ｋに依存しない埋め込み方式を用いてもよい。
【００２７】
透かし埋め込み処理部３８による透かし埋め込み処理は、符号化処理部１０によって圧縮符号化がなされるホストデータＳのすべてのブロックＶについて、繰り返し行われ、すべてのブロックＶに同一もしくは実質的に同一の透かしデータＸが埋め込まれることになる。
【００２８】
変更部３４と埋め込み部３６は協同して、複数のスクランブルされた透かしデータＸ’を生成し、それぞれをブロックＶに埋め込み、複数の埋め込みブロックＷの候補を生成し、それらの候補の一つを選択する機能をもつ。
【００２９】
図２は変更部３４と埋め込み部３６の機能構成図である。Ｌ個のマルチプレクサ２０は、透かしデータＸの先頭にそれぞれ初期データＣ０〜ＣＬ−１を挿入したＬ種類のビット系列Ｘｂを生成する。Ｌ個のスクランブラ２２はＬ種類のビット系列をそれぞれスクランブルして、Ｌ種類のスクランブルされた透かしデータＸ’ｂを生成する。Ｌ個のＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）部２４はＬ種類のスクランブルされた透かしデータＸ’ｂのそれぞれに誤り訂正のためのパリティを付加した透かしデータＸ’ｃを生成する。ＥＣＣ部２４は、透かしビットの検出率を向上させるためのオプションであって、アプリケーションによっては必要ない場合もあり、この構成を省略してもよい。また、スクランブラ２２とＥＣＣ部２４の順序を逆にして、Ｌ種類のビット系列に誤り訂正のためのパリティを付加した後に、それらをスクランブルして、Ｌ種類のスクランブルされた透かしデータを生成してもよい。
【００３０】
Ｌ個の埋め込み部２６は、Ｌ種類のスクランブルされた透かしデータＸ’ｃのそれぞれを、圧縮符号化の行われるブロックＶに埋め込み、Ｌ種類の埋め込みブロックＷの候補を生成する。Ｌ個のＳＮＲ計算部２８は、Ｌ種類の埋め込みブロックＷの候補のそれぞれについて、透かしデータＸの耐性を評価する。セレクタ３０は、耐性の評価値が最良である埋め込みブロックＷの候補を選択し、それを最終的な埋め込みブロックＷとして出力する。
【００３１】
図３は、実施の形態１に係る復号装置２００の構成を示す。符号化装置１００により電子透かしが埋め込まれて圧縮された、透かし入り符号化ホストデータＴは、ネットワーク上で流通し、コンピュータにおいて利用される。その過程で透かし入り符号化ホストデータＴは圧縮符号化や改ざんなどの操作を受ける。画像データであれば、ＪＰＥＧ圧縮、フィルタリング、量子化、色補正などの信号処理や、スケーリング、クロッピング、回転、並行移動等の幾何学的な変換など有用性のある操作が施されたり、電子透かしを除去したり改変するなどの不正な攻撃が加えられたりする。そのような操作による変形を埋め込みホストデータＴに対するノイズＮとみなし、ノイズＮが付加した透かし入り符号化ホストデータＴをＴ’（＝Ｔ＋Ｎ）と表記する。同様に透かし入り符号化ホストデータＴの埋め込みブロックＷについてもノイズＮが付加したものをＷ’（＝Ｗ＋Ｎ）と表記する。
【００３２】
復号装置２００は、透かし入り符号化ホストデータＴ’を復号する復号処理部６０と、透かし入り符号化ホストデータＴ’の埋め込みブロックＷ’から透かし情報Ｉを抽出する透かし抽出処理部４０とを含む。
【００３３】
透かし入り符号化ホストデータＴ’は復号処理部６０の可変長符号復号部６２により可変長符号が復号され、ブロック分割部６４により埋め込みブロックＷ’に分割される。逆量子化部６６は埋め込みブロックＷ’を逆量子化する。逆直交変換部６８は埋め込みブロックＷ’を逆直交変換して、透かし入りホストデータＵ’を出力する。逆量子化部６６は、透かしの抽出のために、逆量子化後の埋め込みブロックＷ’を透かし抽出処理部４０に与える。
【００３４】
透かし抽出処理部４０の抽出部４２は、秘密鍵Ｋを用いて、逆量子化部６６から入力される現在復号処理中の埋め込みブロックＷ’に埋め込まれた透かしデータＸ’ｃを抽出する。ＥＣＣ復号部４４はこの透かしデータＸ’ｃに付加されているパリティビットを用いて誤り訂正を行い、透かしデータＸ’ｂを生成する。デスクランブラ４６は、誤り訂正後の透かしデータＸ’ｂのスクランブルを解除し、透かしデータＸを出力する。暗号復号部４８は、秘密鍵Ｋを用いて、暗号化されている透かしデータＸを復号して元の透かし情報Ｉを出力する。
【００３５】
以上の透かし抽出処理を、復号処理部６０が復号する透かし入り符号化ホストデータＴ’の埋め込みブロックＷ’に対して、繰り返し行うことで、すべての埋め込みブロックＷ’からそれぞれ透かし情報Ｉを抽出することができる。多数決判定部５０は、すべての埋め込みブロックＷ’から抽出された複数の透かし情報Ｉを多数決判定して、最も多い透かし情報Ｉを正しい透かし情報Ｉであると特定する。
【００３６】
多数決判定部５０は、多数決判定により特定された透かし情報Ｉが検出された埋め込みブロックＷ’の数が所定の閾値より小さい場合には、透かしが埋め込まれていないと判断する。あるいは、何らかの透かしが埋め込まれていることが仮定されている場合には、多数決判定部５０は、ホストデータＳに対する改ざんが多数のブロックＶに及んでいるため、正しい透かしの検出ができない旨の警告を出力してもよい。また、多数決判定部５０は、最終的に特定された透かし情報Ｉとは異なる透かしが検出された埋め込みブロックＷ’については、改ざんの可能性があると判断し、その埋め込みブロックＷ’のブロック番号を通知する警告メッセージを出力することもできる。
【００３７】
なお、多数決判定部５０は、暗号復号部４８により暗号が復号される前の透かしデータＸについて、多数決判定を行うようにしてもよい。また、多数決判定部５０は、抽出された複数の透かしビット列全体を互いに比較して、多数決判定により正しい透かしビット列を特定してもよく、あるいは、透かしの情報語の単位で互いに比較して、正しい情報語を特定してもよい。さらに、透かしデータＸの情報ビット単位で多数決判定を行い、ビット毎に正しい値を特定してもよい。
【００３８】
以上の構成の符号化装置１００および復号装置２００による電子透かしの埋め込みと抽出の手順を説明する。図１０は、符号化装置１００の透かし埋め込み処理部３８による電子透かしの埋め込み手順を説明するフローチャートである。フローチャートの説明にあたり、図４から図９を適宜参照する。
【００３９】
マルチプレクサ２０は、暗号化部３２により暗号化された透かしデータＸの先頭にＬ種類の初期データを挿入してＬ個の符号系列を生成し（Ｓ１０）、スクランブラ２２は、それらの符号系列をスクランブルしてＬ種類のスクランブルされた透かしデータＸ’を生成する（Ｓ１２）。
【００４０】
図４は、透かしデータＸとＬ種類のスクランブルされた透かしデータＸ’との関係を示す。（ｎ−ｒ）ビットの透かしデータＸの先頭に、ｒビットの冗長語を識別データＩＤ［０］〜ＩＤ［Ｌ−１］として付加し、Ｌ種類の透かしデータの候補を作成する。最大２ｒ種類の候補が作成される。これらの候補に含まれる透かしデータＸのビット列はこれから述べるスクランブル方式により、スクランブルされる。
【００４１】
スクランブル方式の一例として、伝送や磁気記録におけるデジタル変調の際に利用されるＧＳ（Ｇｕｉｄｅｄ  Ｓｃｒａｍｂｌｅ）方式を採用する。ＧＳ方式は、ある一定のデータブロック長からなる情報系列に対して、Ｌ種類の符号系列を生成し、これらを次に送信する符号系列の候補として扱う。これらの候補の中から、伝送媒体の性質に合わせて最適なものを選択して最終的な符号系列とする。このＧＳ方式により、多様性に富んだ符号系列の候補を簡単な方法で生成することができる。
【００４２】
符号化装置１００におけるマルチプレクサ２０とスクランブラ２２がＧＳ符号化器の一部として機能する。ＧＳ符号化器は、Ｍビットからなる情報系列Ｄ（ｘ）の直前にＬ種類のｒビットの冗長語ｃｉ（ｉ＝０，・・・，Ｌ−１）を付加し、Ｌ種類の符号系列ｃｉｘＭ＋Ｄ（ｘ）を生成する。この符号系列の符号長は（Ｍ＋ｒ）ビットとなる。このようにして冗長語が付加された符号系列に対して、次式のようにＮ次元のスクランブル多項式Ｓ（ｘ）で除算することにより商Ｔｉ（ｘ）を求める。
【００４３】
Ｔｉ（ｘ）＝ＱＳ（ｘ）［（ｃｉｘＭ＋Ｄ（ｘ））ｘＮ］    （１）
ただし、Ｑａ［ｂ］はｂをａで除算した商を示す。商集合｛Ｔ０（ｘ），・・・，ＴＬ−１（ｘ）｝がスクランブル後の符号系列の候補である。これらの候補の各々について、その符号系列が実際に用いられた際の性能を評価し、その評価値が最良であるものを最終的な符号系列として選択する。
【００４４】
復調時には、復号装置４０におけるデスクランブラ４６がＧＳ復号器として機能し、符号系列にＳ（ｘ）を乗算し、下位Ｎビットと上位ｒビットの変換情報を捨てることにより、元の情報系列Ｄ（ｘ）が得られる。
【００４５】
ここでスクランブル多項式Ｓ（ｘ）として、Ｓ（ｘ）＝ｘｒ＋１を用いた場合を説明する。Ｍ  ｍｏｄ  ｒ＝０の場合、（１）式は次式に示す畳み込み演算で表現可能である。
【００４６】
ｔｊ＝ｄｊ（＋）ｃｉ  （ｊ＝０）
ｔｊ＝ｄｊ（＋）ｔｊ−１  （ｊ＝１，・・・，Ｍ／ｒ−１）
ただし、ｉ＝０，・・・，Ｌ−１であり、ｄｊは元の情報系列Ｄ（ｘ）をｒビットずつ区切ったビット列、ｔｊは変換後の符号系列Ｔｉ（ｘ）の先頭のｒビットの冗長語ｃｉ以降をｒビットずつ区切ったビット列である。また（＋）は排他的論理和（ＥＸ−ＯＲ）演算を示す。
【００４７】
図５はこの符号化時の畳み込み演算を説明する図である。たとえば、Ｍ＝６、ｒ＝２の場合を考える。元の情報系列Ｄ（ｘ）＝（１，０，１，０，０，１）に対して、冗長語ｃ０＝（０，０）を付加して、変換後の符号系列Ｔ０（ｘ）を生成する。上記の符号化時の畳み込み演算により、ｔ０＝ｄ０（＋）ｃ０＝（１，０）（＋）（０，０）＝（１，０）、ｔ１＝ｄ１（＋）ｔ０＝（１，０）（＋）（１，０）＝（０，０）、ｔ２＝ｄ２（＋）ｔ１＝（０，１）（＋）（０，０）＝（０，１）となり、変換後の符号系列Ｔ０＝（０，０，１，０，０，０，０，１）が得られる。ここで変換後の符号系列Ｔ０の先頭の２ビットは冗長語ｃ０であることに注意する。
【００４８】
同様にして、冗長語ｃ１＝（０，１）、ｃ２＝（１，０）、ｃ３＝（１，１）に対して、それぞれ変換後の符号系列Ｔ１＝（０，１，１，１，０，１，０，０）、Ｔ２＝（１，０，０，０，１，０，１，１）、Ｔ３＝（１，１，０，１，１，１，１，０）が得られる。
【００４９】
復号時は次式のように畳み込み演算を行うことにより、元の情報系列Ｄ（ｘ）が得られる。
【００５０】
ｄｊ＝ｔｊ（＋）ｃｉ  （ｊ＝０）
ｄｊ＝ｔｊ（＋）ｔｊ−１  （ｊ＝１，・・・，Ｍ／ｒ−１）
【００５１】
図６はこの復号時の畳み込み演算を説明する図である。前述の例において、変換後の符号化系列Ｔ０＝（０，０，１，０，０，０，０，１）が与えられると、先頭の２ビットから冗長語ｃ０＝（０，０）が得られ、上記の復号時の畳み込み演算により、ｄ０＝ｔ０（＋）ｃ０＝（１，０）（＋）（０，０）＝（１，０）、ｄ１＝ｔ１（＋）ｔ０＝（０，０）（＋）（１，０）＝（１，０）、ｄ２＝ｔ２（＋）ｔ１＝（０，１）（＋）（０，０）＝（０，１）となり、元の情報系列Ｄ（ｘ）＝（１，０，１，０，０，１）が得られる。他の変換後の符号化系列Ｔ１，Ｔ２，Ｔ３についてもこの畳み込み演算により、元の情報系列Ｄ（ｘ）が得られる。
【００５２】
再び図１０を参照する。スクランブラ２２によって生成されたＬ種類のスクランブルされた透かしデータＸ’は、ＥＣＣ部２４により誤り訂正のためのパリティを付加された後に、埋め込み部２６によりホストデータＶのブロックＶに埋め込まれる（Ｓ１４）。
【００５３】
Ｌ種類のスクランブルされた透かしデータＸ’をｘ０，ｘ１，・・・，ｘＬ−１とする。各透かしデータの候補のビット系列は、次式のように表される。先頭のｒビットは識別データである。また、スクランブル処理後のビット０は、−１に置き換えて、以下の処理を行う。
【００５４】
ｘ０＝｛−１，・・・，−１，−１，ｘ００，ｘ０１，・・・，ｘ０ｎ−ｒ−１｝
ｘ１＝｛−１，・・・，−１，１，ｘ１０，ｘ１１，・・・，ｘ１ｎ−ｒ−１｝
・・・
ｘＬ−１＝｛１，・・・，１，１，ｘＬ−１０，ｘＬ−１１，・・・，ｘＬ−１ｎ−ｒ−１｝
【００５５】
ホストデータＳのブロックＶ内から、ｎビットの透かしデータの埋め込み対象としてサンプル集合のペア（Ｖ＋，Ｖ−）を選択する。埋め込みサンプルの集合Ｖ＋，Ｖ−は、それぞれ次のようにｎ個の要素をもつ。
【００５６】
Ｖ＋＝｛ｖ＋０，ｖ＋１，・・・，ｖ＋ｎ−１｝
Ｖ−＝｛ｖ−０，ｖ−１，・・・，ｖ−ｎ−１｝
ここでサンプルの集合Ｖ＋，Ｖ−の要素であるサブセットｖ＋ｉ、ｖ−ｉ（ｉ＝０，１，・・・，ｎ−１）は、いずれも同一のブロックＶ内でランダムに選択されたｍ個のサンプルデータからなる。
【００５７】
ｖ＋ｉ＝｛ｖ＋ｉ，０，ｖ＋ｉ，１，・・・，ｖ＋ｉ，ｍ−１｝
ｖ−ｉ＝｛ｖ−ｉ，０，ｖ−ｉ，１，・・・，ｖ−ｉ，ｍ−１｝
【００５８】
透かしデータの候補ｘｋ（ｋ＝０，・・・，Ｌ−１）をサンプル集合のペア（Ｖ＋，Ｖ−）に次のように埋め込み、Ｌ種類の埋め込みブロックの候補Ｗｋを生成する。
【００５９】
ｗ＋ｋｉ，ｊ＝ｖ＋ｉ，ｊ＋α＋ｉ，ｊ・ｘｋｉ
ｗ−ｋｉ，ｊ＝ｖ−ｉ，ｊ−α−ｉ，ｊ・ｘｋｉ
ここでα＋ｉ，ｊおよびα−ｉ，ｊは人間の視覚モデルにもとづいて知覚されるノイズを減少するためのスケーリングパラメータであり、いずれも正の値である。あるいは、α＋ｉ，ｊおよびα−ｉ，ｊは、ある確率分布、たとえばガウシアン分布、一様分布などに従うように、秘密鍵Ｋによって生成される正の値であってもよい。この場合、透かしの埋め込み強度は減少するが、埋め込まれた透かしの秘匿性は向上する。このようにして、ｋ番目の透かしデータの候補の各ビットｘｋｉは各サブセットｖ＋ｉ、ｖ−ｉのそれぞれｍ個のサンプルに重複して埋め込まれる。重複の数ｍが大きいほど、透かしビットが失われる可能性が低くなり、検出誤差が小さくなる一方で、ホストデータに埋め込むことができる透かしのビット数が減少する。α＋ｉ，ｊおよびα−ｉ，ｊは、視覚上の劣化を検知できないように各ピクセル毎に設定される値であり、原理的には、埋め込むピクセル数ｍを増やしても、人間の視覚上、画質の劣化は検知されない。しかし、１ビットを埋め込むのに費やすピクセル数が増加するということは、埋め込み領域には制限があるため、埋め込むことができるビット数が減少することを意味し、したがって埋め込み率の低下を招くことなる。
【００６０】
符号化処理部１０の直交変換部１４が、ホストデータＳを離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）により変換するときは、ブロックＶはＤＣＴブロックであり、サンプル集合の各サブセットｖ＋ｉ、ｖ−ｉのｍ個のサンプルデータは、１つのＤＣＴブロックに含まれるｍ個のＤＣＴ係数である。
【００６１】
図７は、離散コサイン変換されたホストデータＳのブロックＶにスクランブルされた透かしデータＸ’が埋め込まれる様子を説明する図である。同図のように、ＪＰＥＧで用いられている離散コサイン変換では、ホストデータＳの空間領域は縦横８ピクセルからなるブロックＶに分割され、それぞれのブロックＶが空間周波数成分に変換される。直交変換後の各ブロックＶにスクランブルされた透かしデータＸ’の透かしビット列ｘｋが埋め込まれる。
【００６２】
図８は、８×８のサイズのＤＣＴブロックであるブロックＶ内の２ｍ個のＤＣＴ係数に透かしビットｘｋｉが埋め込まれる様子を示している。各サブセットｖ＋ｉ、ｖ−ｉとして選ばれるそれぞれｍ個のＤＣＴ係数は、秘密鍵Ｋに基づいて選択される。このようにして、１ビットの透かしが１つのブロックＶに埋め込まれる。この処理をｎ回繰り返すことで、ブロックＶ内の２ｎｍ個のＤＣＴ係数にｎビットの透かしデータが埋め込まれる。
【００６３】
直交変換部１４が、ホストデータＳを離散ウェーブレット変換（Ｄｉｓｃｒｅｔｅ  Ｗａｖｅｌｅｔ  Ｔｒａｎｓｆｏｒｍ）により変換するときは、ブロックＶは、離散ウェーブレット変換により生成されるサブバンドであり、サンプル集合の各サブセットｖ＋ｉ、ｖ−ｉのｍ個のサンプルデータは、１つのサブバンドに含まれるｍ個のウェーブレット変換係数である。
【００６４】
図９は、離散ウェーブレット変換されたホストデータＳの各サブバンドを説明する図である。同図に示すとおり、ホストデータＳは離散ウェーブレット変換により４つの周波数サブバンドへ分割される。これらのサブバンドは、縦横両方向において低周波成分を有するＬＬサブバンドと、縦横のいずれかひとつの方向において低周波成分を有し、かつもう一方の方向において高周波成分を有するＨＬおよびＬＨサブバンドと、縦横両方向において高周波成分を有するＨＨサブバンドである。各サブバンドの縦横のピクセル数は処理前のホストデータＳのそれぞれ１／２であり、一回のフィルタリングでサイズが１／４のサブバンドデータが得られる。
【００６５】
こうして得られたサブバンドのうち、ＬＬサブバンドに対して離散ウェーブレット変換によるフィルタリング処理が再度施され、さらにＬＬ、ＨＬ、ＬＨ、ＨＨの４つのサブバンドに分割される。このフィルタリングは所定の回数行われ、最後のフィルタリングで生じたＬＬサブバンドがホストデータＶのＤＣ成分に最も近いデータとなる。
【００６６】
同図の例では、ホストデータＳに離散ウェーブレット変換が３回施され、第１階層のＨＬサブバンドＨＬ１、ＬＨサブバンドＬＨ１およびＨＨサブバンドＨＨ１、第２階層のＨＬサブバンドＨＬ２、ＬＨサブバンドＬＨ２およびＨＨサブバンドＨＨ２、第３階層のＬＬサブバンドＬＬ３、ＨＬサブバンドＨＬ３、ＬＨサブバンドＬＨ３、およびＨＨサブバンドＨＨ３の順に圧縮符号化が行われる。透かし埋め込み処理部３８は、これらのサブバンドの各々を透かしデータＸ’の埋め込みブロックとして透かしデータＸ’を埋め込む。各サブセットｖ＋ｉ、ｖ−ｉとして選ばれるそれぞれｍ個のウェーブレット変換係数は、各サブバンドから秘密鍵Ｋに基づいて選択される。
【００６７】
図１０に戻り、ＳＮＲ計算部２８は、Ｌ種類の埋め込みブロックの候補Ｗｋに対して透かしデータｘｋの耐性、すなわち埋め込み強度を評価し（Ｓ１６）、セレクタ３０は埋め込み強度が最大となる埋め込みブロックの候補Ｗｋを最終的な埋め込みブロックＷとして選択する（Ｓ１８）。
【００６８】
埋め込み強度の評価式を与える前に、埋め込みブロックＷに対して信号処理や画像処理などにより変形が加えられた場合に、透かしデータＸ’がどのように検出されるかを検討する。埋め込みブロックＷに加えられる変形をノイズＮとして扱う。ノイズの付加された埋め込みブロックＷ’から透かしデータＸ’を抽出する方法を説明する。埋め込みブロックの集合のペア（Ｗ’＋，Ｗ’−）を次のように定義する。埋め込みブロックの集合Ｗ’＋，Ｗ’−は次のようにそれぞれｎ個の要素をもつ。
【００６９】
Ｗ’＋＝｛ｗ’＋０，ｗ’＋１，・・・，ｗ’＋ｎ−１｝
Ｗ’−＝｛ｗ’−０，ｗ’−１，・・・，ｗ’−ｎ−１｝
ここで埋め込みブロックの集合Ｗ’＋，Ｗ’−の要素である各サブセットｗ’＋ｉ、ｗ’−ｉは、電子透かしの埋め込み位置に対応して、次のように埋め込みブロックＷ’のｍ個のサンプルデータからなる。
ｗ’＋ｉ＝｛ｗ’＋ｉ，０，ｗ’＋ｉ，１，・・・，ｗ’＋ｉ，ｍ−１｝
ｗ’−ｉ＝｛ｗ’−ｉ，０，ｗ’−ｉ，１，・・・，ｗ’−ｉ，ｍ−１｝
【００７０】
透かしビットｘｋｉを検出するために、次の検出値ｚｉを計算する。
ｚｉ＝Σｊ＝０ｍ−１（ｗ’＋ｉ，ｊ−ｗ’−ｉ，ｊ）
＝Σｊ＝０ｍ−１［（ｗ＋ｉ，ｊ＋ｎ＋ｉ，ｊ）−（ｗ−ｉ，ｊ＋ｎ−ｉ，ｊ）］
＝Σｊ＝０ｍ−１［（ｖ＋ｉ，ｊ−ｖ−ｉ，ｊ）＋（α＋ｉ，ｊ＋α−ｉ，ｊ）・ｘｋｉ＋（ｎ＋ｉ，ｊ−ｎ−ｉ，ｊ）］
ここでΣｊ＝０ｍ−１（ｖ＋ｉ，ｊ−ｖ−ｉ，ｊ）はｍが十分に大きいとき、一般にガウス分布に従い、０に近づく。またノイズの項Σｊ＝０ｍ−１（ｎ＋ｉ，ｊ−ｎ−ｉ，ｊ）についても同様に０に近づく。したがって、ｚｉはΣｊ＝０ｍ−１［（α＋ｉ，ｊ＋α−ｉ，ｊ）・ｘｋｉ］の値で近似できる。（α＋ｉ，ｊ＋α−ｉ，ｊ）は正であるから、透かしビットｘｋｉが１ならばｚｉは正であり、透かしビットｘｋｉが−１ならばｚｉは負である。したがってｚｉの正負により透かしビットｘｋｉの値を判定することができる。
【００７１】
埋め込み強度の評価は、ホストデータＳのブロックＶを透かしデータＸに対するノイズとみなして、埋め込まれた透かしデータｘｋに対して検出される透かしデータの分散を計算することにより行われる。分散が小さいほど、耐性が強いと考えることができる。埋め込みブロックの候補のペア（Ｗ＋ｋ，Ｗ−ｋ）に対して次式によりＳＮ比を評価して、最適な候補Ｋを選択する。
【００７２】
Ｋ＝ａｒｇｍａｘｋ（Ｐｋ／σｋ２）
Ｐｋ＝Σｉ＝０ｎ−１｜Σｊ＝０ｍ−１（ｗ＋ｋｉ，ｊ−ｗ−ｋｉ，ｊ）｜２／ｎ
σｋ２＝Σｉ＝０ｎ−１｜Σｊ＝０ｍ−１（ｗ＋ｋｉ，ｊ−ｗ−ｋｉ，ｊ）−Ｐｋ１／２・ｘｋｉ｜２／ｎ
【００７３】
透かしビットｘｋｉが｛１，−１｝のいずれであるかを判定するための前述の検出値ｚｉは、埋め込みブロックＷにノイズが付加される前の状態では、ｚｉ＝Σｊ＝０ｍ−１（ｗ＋ｋｉ，ｊ−ｗ−ｋｉ，ｊ）で与えられることを考慮すると、分散σｋ２は、透かしビットに関する検出値ｚｉと実際に埋め込まれた透かしビットの平均値Ｐｋ１／２・ｘｋｉとの差の自乗をｉ＝０，・・・，ｎ−１について評価して平均化したものであると言える。ただし、Ｐｋは検出値ｚｉのｉ＝０，・・・，ｎ−１についての自乗平均であり、埋め込まれた透かしの平均パワーを示す。したがって、埋め込まれた透かしデータｘｋと抽出される透かしデータとの間のユークリッド距離が小さく、透かしビットを検出するための検出値の絶対値が大きいほど、Ｐｋ／σｋ２の値は大きくなる。言い換えれば、Ｐｋ／σｋ２が最大となる候補を選択することは、透かしビットの検出誤差が最小である候補を選択することを意味する。
【００７４】
検出値ｚｉについて、ｖ＋ｉ，ｊ＞ｖ−ｉ，ｊかつｘｋｉ＝１ならばｚｉ＞＞０となり、ｖ＋ｉ，ｊ＜ｖ−ｉ，ｊかつｘｋｉ＝−１ならばｚｉ＜＜０となる。したがって前述の評価により最適な透かしデータｘｋの候補を選択することは、検出値ｚｉによる透かしビットｘｋｉの検出性能を向上させるために、ｖ＋ｉ，ｊ＞ｖ−ｉ，ｊならばｘ’ｉ＝１となり、ｖ＋ｉ，ｊ＜ｖ−ｉ，ｊならばｘ’ｉ＝−１となるように、元の透かしビットｘｉをｘ’ｉに変更することを意味する。これがＧＳ方式のガイディングルールであり、これにより検出値ｚｉのレスポンスが改善する。
【００７５】
ＳＮＲ計算部２８は、Ｌ種類の埋め込みブロックＷの候補について、透かしデータＸの耐性を評価する際に、圧縮符号化の際の量子化誤差を考慮に入れてもよい。具体的には、埋め込まれた透かしデータと検出される透かしデータとの間の分散により埋め込み強度を評価する際に、埋め込みホストデータＷに対する量子化誤差を考慮した以下の重み付け分散を用いる。
【００７６】
Ｋ＝ａｒｇｍａｘｋ（Ｐｋ／σｋ２）
Ｐｋ＝Σｉ＝０ｎ−１｜Σｊ＝０ｍ−１（ｗ＊＋ｋｉ，ｊ−ｗ＊−ｋｉ，ｊ）｜２／ｎ
σｋ２＝Σｉ＝０ｎ−１｜Σｊ＝０ｍ−１（ｗ＊＋ｋｉ，ｊ−ｗ＊−ｋｉ，ｊ）−Ｐｋ１／２・ｘｋｉ｜２／ｎ
ここでｗ＊＋ｋｉ，ｊ、ｗ＊−ｋｉ，ｊは量子化がなされた後の埋め込みホストデータＷである。たとえばＪＰＥＧ２０００による圧縮符号化がなされる場合、ｗ＊＋ｋｉ，ｊ、ｗ＊−ｋｉ，ｊはＪＰＥＧ２０００の量子化方法を用いて以下のように計算することができる。
【００７７】
ＪＰＥＧ２０００の規格書「ＩＳＯ／ＩＥＣ  １５４４４−１：  ＪＰＥＧ  ２０００  ｉｍａｇｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ，  ＪＰＥＧ  ２０００  ｆｉｎａｌ  ｃｏｍｍｉｔｔｅｅ  ｄｒａｆｔ，  １８  Ａｕｇｕｓｔ  ２０００」にもとづいて、ＪＰＥＧ２０００の量子化方法を簡単に説明する。サブバンドｂにおける量子化前のウェーブレット変換係数をａｂ（ｕ，ｖ）、サブバンドｂにおける量子化後のウェーブレット変換係数をｑｂ（ｕ，ｖ）とすると、ＪＰＥＧ２０００では以下の量子化式を用いてウェーブレット変換係数の量子化が行われる。
【００７８】
ｑｂ（ｕ，ｖ）＝ｓｉｇｎ（ａｂ（ｕ，ｖ））・［｜ａｂ（ｕ，ｖ）｜／Δｂ］
ここで［ｘ］はｘを越えない最大の整数を表す。Δｂはサブバンドｂにおける量子化ステップであり、次式で与えられる。
Δｂ＝２＾（Ｒｂ−εｂ）・（１＋μｂ／２１１）
ここでＲｂはサブバンドｂにおけるダイナミックレンジ、εｂはサブバンドｂにおける量子化の指数、μｂはサブバンドｂにおける量子化の仮数である。
【００７９】
このようにＪＰＥＧ２０００では、同一のサブバンドに属するウェーブレット変換係数は同じ量子化ステップで除算され、整数の値に丸められる。ブロックＶに埋め込まれる透かしデータＸはこのような量子化演算に対して耐性をもつ必要があるため、ＪＰＥＧ２０００による量子化がなされた後の埋め込みブロックＷの値を算出して、上述のようにその算出された埋め込みブロックＷに対して透かしデータの耐性を評価する。透かし埋め込み処理部３８は、符号化処理部１０による圧縮符号化に同期して透かしの埋め込み処理を行うため、符号化処理部１０において用いられる量子化パラメータを適宜参照することができる。
【００８０】
図１１は、復号装置２００の透かし抽出処理部４０による電子透かしの抽出手順を説明するフローチャートである。透かし抽出処理部４０の抽出部４２は、ノイズの付加された埋め込みブロックＷ’を受け取ると、ＥＣＣ復号部４４が硬入力の復号器で構成される場合には、検出値ｚｉを次のように計算し、検出値ｚｉの正負で、透かしビットｘ’が｛−１，１｝のいずれであるかを判定し、透かしデータＸ’を得る（Ｓ３０）。また、ＥＣＣ復号部４４が軟入力の復号器で構成される場合には、検出値ｚｉを｛−１，１｝に硬判定することなく、そのまま、ＥＣＣ復号部４４に送る。
【００８１】
ｚｉ＝Σｊ＝０ｍ−１（ｗ’＋ｉ，ｊ−ｗ’−ｉ，ｊ）
＝Σｊ＝０ｍ−１［（ｗ＋ｉ，ｊ＋ｎ＋ｉ，ｊ）−（ｗ−ｉ，ｊ＋ｎ−ｉ，ｊ）］
＝Σｊ＝０ｍ−１［（ｖ＋ｉ，ｊ−ｖ−ｉ，ｊ）＋（α＋ｉ，ｊ＋α−ｉ，ｊ）・ｘ’ｉ＋（ｎ＋ｉ，ｊ−ｎ−ｉ，ｊ）］
【００８２】
抽出された透かしデータＸ’はさらにＥＣＣ復号部４４により誤り訂正がなされ、デスクランブラ４６によりスクランブルを解除され、元の透かしデータＸが得られる（Ｓ３２）。
【００８３】
多数決判定部５０は、複数の埋め込みブロックＷ’から得られる複数の透かしデータＸを多数決判定することにより、埋め込まれた透かしを特定する（Ｓ３４）。多数決判定部５０は、多数決判定により特定された透かしと同じ透かしデータＸが抽出された埋め込みブロックＷ’の数が所定の閾値より小さい場合（Ｓ３６のＮ）、透かしが埋め込まれていないと判定する（Ｓ３８）。特定された透かしが抽出された埋め込みブロックＷ’の数が所定の閾値以上の場合（Ｓ３６のＹ）、特定された透かしとは異なる透かしデータＸが抽出された埋め込みブロックＷ’について改ざんの可能性がある旨を警告する（Ｓ４０）。
【００８４】
以上述べたように、実施の形態によれば、ホストデータＳの圧縮符号化処理に同期して透かしを埋め込むため、圧縮符号化に利用される小容量のメモリを利用して、圧縮符号化と同時に透かしの埋め込みが可能である。また、同様に透かし入り符号化ホストデータＴの復号に同期して透かしを抽出することができる。
【００８５】
また、ＧＳ方式を利用することにより、電子透かしを埋め込む画像や音声などのメディアデータが与えられると、透かしビット系列をそのメディアデータに埋め込みやすいビット系列に変換した上で埋め込むことができる。したがって信号処理、幾何変換、圧縮、データの改ざんなどに対する電子透かしの耐性を強化することができ、透かしの検出精度が大幅に改善する。
【００８６】
また、複数のブロックＶに実質的に同一の透かしを重複して埋め込むため、透かしの耐性をさらに強化することができる。また、ブロックＶのデータ特性によっては、透かしの埋め込みが困難な場合もあるが、複数のブロックＶを埋め込み対象とすることにより、比較的埋め込みやすいブロックに耐性を強化した透かしを埋め込むことができ、透かし抽出時の多数決判定により、全体として透かしの検出精度を向上させることができる。さらに、多数決判定により、ブロック単位で改ざんの有無を調べることができる。
【００８７】
実施の形態２
図１２は実施の形態２に係る符号化装置１００の構成図である。本実施の形態では、ＧＳ符号化による透かしの埋め込みを行う前に誤り訂正符号化を行う点が、実施の形態１とは異なる。以下、実施の形態１と共通する構成については同一符号を付して説明を省き、実施の形態１とは異なる構成と動作について説明する。
【００８８】
本実施の形態の透かし埋め込み処理部３８は、圧縮符号化の行われるＮ個のブロックＶの各々に独立に（ｎ−ｒ）ビットの透かし系列を埋め込む際、各ブロックＶの（ｎ−ｒ）ビットの透かし系列を全てのブロックＶにまたがって連結した（ｎ−ｒ）×Ｎビットのビット系列が、符号化率Ｋ／Ｎで誤り訂正符号化された一つの符号語を構成するように誤り訂正符号化を行う。このようなＮ個のブロックＶ全体を用いる誤り訂正符号の一例として、リードソロモン符号やＢＣＨ符号などのブロック符号（以下、ブロックＥＣＣと呼ぶ）を用いる。この誤り訂正符号化の処理により、圧縮符号化の行われる複数のブロックＶの内、一部のブロックＶに、冗長データが埋め込まれることになる。
【００８９】
ブロックＥＣＣ部３３は、暗号化部３２によって生成された透かしデータＸの情報ビットＤを後述のブロック誤り訂正符号により符号化して、冗長ビットＰを出力する。セレクタ３５は、暗号化部３２から透かしデータＸの情報ビットＤの入力を、ブロックＥＣＣ部３３から透かしデータＸの冗長ビットＰの入力を受け、ブロック分割部１２から入力される現在符号化処理中のブロックＶのブロック番号にもとづいて、情報ビットＤと冗長ビットＰのどちらかを選択し、変更部３４に与える。変更部３４と埋め込み部３６により、情報ビットＤまたは冗長ビットＰがＧＳ符号化されて、現在符号化処理中のブロックＶに透かしとして埋め込まれる。
【００９０】
図１３はブロック誤り訂正符号を説明する図である。ホストデータＳのＮ個のブロックＶは、Ｋ個の情報系列埋め込み用ブロック１１０と、（Ｎ−Ｋ）個のパリティ系列埋め込み用ブロック１２０に分けられる。暗号化部３２により生成された（ｎ−ｒ）ビットの透かしデータＸの情報ビットＤは、Ｋ個の情報系列埋め込み用ブロック１１０の各々に埋め込まれる。Ｋ個の情報系列埋め込み用ブロック１１０に埋め込まれる（ｎ−ｒ）×Ｋビットの情報系列の全体をＫ／Ｎの符号化率で誤り訂正符号化すると、全体で（ｎ−ｒ）×（Ｎ−Ｋ）ビットのパリティ系列が得られる。このパリティ系列を（ｎ−ｒ）ビットずつ区切ることにより（ｎ−ｒ）ビットの冗長ビットＰが得られる。この冗長ビットＰが残りの（Ｎ−Ｋ）個のパリティ系列埋め込み用ブロック１２０の各々に埋め込まれる。
【００９１】
一つのブロックＶに埋め込まれる冗長ビットＰのビット数は情報ビットＤのビット数と同じであるから、特に冗長ビットＰであるか情報ビットＤであるかを区別せず、ホストデータＳのブロックＶに透かしとして埋め込むことができる。再び図１２を参照し、セレクタ３５は、現在符号化処理中のブロックＶが情報系列埋め込み用ブロック１１０である場合は、情報ビットＤを選択し、現在符号化処理中のブロックＶがパリティ系列埋め込み用ブロック１２０である場合は、冗長ビットＰを選択する。（ｎ−ｒ）ビットの情報ビットＤまたは冗長ビットＰは、変更部３４によりｒビットの冗長語を付加された後にスクランブルされ、埋め込み部３６によりブロックＶに埋め込まれる。
【００９２】
図１４は、実施の形態２に係る復号装置２００の構成図である。実施の形態１の復号装置２００とは異なり、透かし抽出処理部４０は、ブロックＥＣＣ復号部４９をさらに含む。デスクランブラ４６によりスクランブルを解除された透かしデータＸは、現在復号処理中の埋め込みブロックＷ’が図１３で説明した情報系列埋め込み用ブロック１１０に該当する場合は、情報ビットＤであり、パリティ系列埋め込み用ブロック１２０に該当する場合は、冗長ビットＰである。ブロックＥＣＣ復号部４９は、Ｋ個の情報系列埋め込み用ブロック１１０から抽出された情報ビットＤからなる情報系列を、（Ｎ−Ｋ）個のパリティ系列埋め込み用ブロック１２０から抽出された冗長ビットＰからなるパリティ系列により、誤り訂正する。これにより、Ｋ個の情報系列埋め込み用ブロック１１０から誤り訂正復号されたＫ個の透かしデータＸが得られる。
【００９３】
暗号復号部４８は、誤り訂正復号された透かしデータＸの暗号を復号して透かし情報Ｉを生成する。多数決判定部５０は、Ｋ個の情報系列埋め込み用ブロック１１０から得られたＫ個の透かし情報Ｉを多数決判定する。本実施の形態では、（Ｎ−Ｋ）個のパリティ系列埋め込み用ブロック１２０はパリティ系列の埋め込みに使用されているので、これらのブロックからは透かし情報Ｉが得られないことに注意する。ただし、復号されたパリティ系列を多数決判定に利用することは可能である。この場合は、図１２の透かし埋め込み処理部３８のブロックＥＣＣ部３３から出力されるパリティ系列と復号されたパリティ系列との比較結果を多数決判定に利用する。そのためには、透かし抽出処理部４０が、図１２の暗号化部３２およびブロックＥＣＣ部３３と同一の機能構成をさらに含むことが必要である。
【００９４】
なお、実施の形態１では、透かしデータＸのスクランブルの段階で、図２のＥＣＣ部２４による誤り訂正符号化を行っていたが、本実施の形態のようにブロック誤り訂正符号化を行う場合は、スクランブルの段階でのＥＣＣ部２４による誤り訂正符号化は省略してもよい。
【００９５】
実施の形態１のＥＣＣ部２４のように、ブロック毎に、独立に、誤り訂正符号化を行う方式では、透かしの埋め込みにくい単調なデータを含むブロックや、強い攻撃を受けたブロックなど、非常に大きなノイズを含むブロックがある場合、誤り訂正が十分に働かないことがある。本実施の形態では、他のブロックと共同で誤り訂正符号化を行うため、いずれかのブロックで誤りが生じたとしても、その誤り数が訂正能力内であれば、他のブロックの助けを借りて誤り訂正することができ、符号長がＮ倍になったことで誤り訂正能力が向上する。
【００９６】
実施の形態３
図１５は実施の形態３に係る符号化装置１００の構成図である。本実施の形態では、ブロック全体を誤り訂正符号化の単位とする点は、実施の形態２と同じであるが、使用される誤り訂正符号化方式が異なる。以下、実施の形態２と共通する構成については同一符号を付して説明を省き、実施の形態２とは異なる構成と動作について説明する。
【００９７】
本実施の形態の透かし埋め込み処理部３８は、圧縮符号化の行われるＮ個のブロックＶの各々に独立に（ｎ−ｒ）ビットの透かし系列を埋め込む際、各ブロックＶの（ｎ−ｒ）ビットの透かし系列を全てのブロックＶにまたがって連結した（ｎ−ｒ）×Ｎビットのビット系列が、符号化率Ｋ／Ｎで誤り訂正符号化された一つの符号語を構成するように誤り訂正符号化を行う。このようなＮ個のブロックＶ全体を用いる誤り訂正符号の一例として、畳み込み符号を用いる。なお、畳み込み符号の代わりに、ターボ符号などのより誤り訂正能力の高い符号化方式を用いることも可能である。
【００９８】
畳み込み符号化部３７は、暗号化部３２によって生成された透かしデータＸの入力を受け、組織型の畳み込み符号によって透かしデータＸのビット系列を逐次符号化し、情報ビットとパリティビットを交互に出力し、変更部３４に与える。変更部３４と埋め込み部３６により、（ｎ−ｒ）×Ｋ／Ｎビットの情報ビットＤと（ｎ−ｒ）×（１−Ｋ／Ｎ）ビットの冗長ビットＰがＧＳ符号化されて、現在符号化処理中のブロックＶにｎビットの透かしとして埋め込まれる。
【００９９】
図１６はブロック全体の畳み込み符号化を説明する図である。ホストデータＳのＮ個のブロックＶの各々に、（ｎ−ｒ）＊Ｋ／Ｎビットの情報ビットＤと（ｎ−ｒ）＊（１−Ｋ／Ｎ）ビットの冗長ビットＰで構成された（ｎ−ｒ）ビットの透かしビットがＧＳ符号化された後に埋め込まれ、ブロック全体で見た場合、（ｎ−ｒ）×Ｋビットの情報系列と（ｎ−ｒ）×（Ｎ−Ｋ）ビットの冗長系列により構成された透かし系列がＧＳ符号化された後に埋め込まれる。したがって、ホストデータＳ全体に埋め込まれている（ｎ−ｒ）ビットの透かし系列で見た場合、符号化率Ｋ／Ｎの誤り訂正符号化がなされた一つの符号語が形成されている。
【０１００】
畳み込み符号化部３７は、非組織型の畳み込み符号を用いて、透かしデータＸのビット系列を誤り訂正符号化してもよい。非組織型の畳み込み符号の場合、情報ビットとパリティビットの区別なく、２種類の符号化ビットが交互に生成され、各ブロックＶに（ｎ−ｒ）ビットの符号化系列が埋め込まれる。
【０１０１】
図１７は、実施の形態３に係る復号装置２００の構成図である。実施の形態２の復号装置２００のブロックＥＣＣ復号部４９に代えて、畳み込み符号復号部５１が用いられる。組織型の畳み込み符号の場合、現在復号処理中の埋め込みブロックＷ’から抽出される透かしデータＸにはそれぞれ情報ビットＤと冗長ビットＰが含まれる。畳み込み符号復号部５１は、Ｎ個の埋め込みブロックＷ’から抽出された情報系列とパリティ系列を一つの符号語として扱い、Ｎ個の埋め込みブロックＷ’全体で誤り訂正を行う。非組織型の畳み込み符号の場合には、情報ビットとパリティビットの区別がなく、Ｎ個の埋め込みブロックＷ’全体から抽出される符号化系列に対して誤り訂正が行われる。
【０１０２】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０３】
上記の説明では、ホストデータＳをブロック分割したときのすべてのブロックＶに実質的に同一の透かしを埋め込むこととしたが、複数のブロックに同一の透かしを埋め込むのは、透かしの耐性強化のためであるから、耐性が弱まるが、一部のブロックまたは１つのブロックにだけ透かしを埋め込むことにしてもよい。また、１つの電子透かしをいくつかの部分に分け、ホストデータＳの複数のブロックＶに分散して埋め込んでもよい。いずれの場合でも、圧縮符号化および復号の処理に同期して、ブロック単位で透かしの埋め込みおよび抽出が可能であり、処理効率が向上する効果に変わりはない。また、このような処理により、複数種類の透かしの埋め込みが可能となる。
【０１０４】
また、実施の形態２および３では、すべてのブロックに埋め込まれている透かしを用いて一つの誤り訂正符号語を形成するようにしたが、この誤り訂正符号語の長さをｈ分の１にして、ｈ個の誤り訂正符号語で全ブロックに埋め込まれる透かしを構成し、それらをすべてのブロックに埋め込むようにしてもよい。ただし、ｈが大きいほど、誤り訂正能力は低下する。
【０１０５】
また、上記の説明では透かし埋め込み対象のブロックＶとして、直交変換の処理単位としてのブロックを想定し、ＤＣＴブロックや離散ウェーブレット変換のサブバンドをブロックＶとして扱ったが、本発明の趣旨は、圧縮符号化の処理単位としてのブロックを透かし埋め込み対象とすることであるから、たとえば画像を所定サイズの領域に分割し、その分割画像をバッファリングして圧縮符号化を行う場合は、そのような分割画像を透かし埋め込み対象のブロックＶとして扱ってもよい。また、静止画圧縮の標準規格であるＪＰＥＧ２０００では、画像をタイルという小領域に分割して、各タイルに対してウェーブレット変換を施すタイリングと呼ばれる手法が取られることがあるが、この場合には、タイルをブロックＶとして扱ってもよい。したがって、これらの場合には、ブロックＶには、複数のＤＣＴブロックが含まれることや、離散ウェーブレット変換の複数のサブバンドが含まれることもありえる。いずれにしても、圧縮符号化の処理単位を透かし埋め込み対象とすることで、圧縮符号化および復号のプロセスと同期して、透かしの埋め込みおよび抽出がなされることで、必要メモリの削減と処理時間の短縮が図られる。
【０１０６】
また、上記の説明では、量子化前のブロックに対して、電子透かしデータが埋め込まれたが、量子化されたブロックに対して、電子透かしデータを埋め込んでもよい。もっともその場合は、透かしの埋め込みにより圧縮率が低下する。
【０１０７】
また、上記の説明では、複数の透かしデータの候補または埋め込み位置の候補を生成するために、多様性に富んだ候補の生成が可能なＧＳ方式を用いたが、他のスクランブル方式を適用してもよく、また何らかの方法でランダムに候補のデータを生成してもよい。また実施の形態では、逆スクランブルにより、生成された透かしデータの候補から元の透かしデータを再現したが、生成された透かしデータの候補と元の透かしデータとを対応づけたテーブルを備え、このテーブルを参照して元の透かしデータを求めてもよい。
【０１０８】
またスクランブルの際に初期データとして使用した識別データは、透かしデータの先頭に挿入されて復号側に提供されていたが、この識別データを透かしには埋め込まずに、符号化側で秘密鍵として保持、管理してもよい。その場合、復号側はこの秘密鍵を取得した上で、透かしデータのスクランブルを解除する。
【０１０９】
また、上記の説明では、図２で示したように、Ｌ種類の透かしデータの候補を生成するために、Ｌ個のマルチプレクサ２０、スクランブラ２２、ＥＣＣ部２４、埋め込み部２６、およびＳＮＲ計算部２８が並列に設けられたが、これらの部材を単一構成にして、Ｌ種類の透かしデータの候補を逐次的に生成、評価して最適な候補を選択してもよい。
【０１１０】
【発明の効果】
本発明によれば、電子透かしの埋め込みと抽出処理を効率化し、透かしの耐性と検出精度を改善することができる。
【図面の簡単な説明】
【図１】実施の形態１に係る符号化装置の構成図である。
【図２】図１の変更部と埋め込み部の機能構成図である。
【図３】実施の形態１に係る復号装置の構成図である。
【図４】元の透かしデータとＬ種類のスクランブルされた透かしデータとの関係を説明する図である。
【図５】符号化時の畳み込み演算を説明する図である。
【図６】復号時の畳み込み演算を説明する図である。
【図７】離散コサイン変換されたホストデータのブロックに透かしデータが埋め込まれる様子を説明する図である。
【図８】図７のブロックに透かしビットが埋め込まれる様子を説明する図である。
【図９】離散ウェーブレット変換されたホストデータのサブバンドを説明する図である。
【図１０】実施の形態１に係る電子透かしの埋め込み手順を説明するフローチャートである。
【図１１】実施の形態１に係る電子透かしの抽出手順を説明するフローチャートである。
【図１２】実施の形態２に係る符号化装置の構成図である。
【図１３】実施の形態２に係るブロック誤り訂正を説明する図である。
【図１４】実施の形態２に係る復号装置の構成図である。
【図１５】実施の形態３に係る符号化装置の構成図である。
【図１６】実施の形態３に係るブロック全体の畳み込み符号を説明する図である。
【図１７】実施の形態３に係る復号装置の構成図である。
【符号の説明】
１０  符号化処理部、  １２  ブロック分割部、  １４  直交変換部、  １６量子化部、  １８  可変長符号化部、  ２０  マルチプレクサ、  ２２  スクランブラ、  ２４  ＥＣＣ部、  ２６  埋め込み部、  ２８  ＳＮＲ計算部、  ３２  暗号化部、  ３３  ブロックＥＣＣ部、  ３４  変更部、  ３６  埋め込み部、  ３７  畳み込み符号化部、  ３８  透かし埋め込み処理部、  ４０  透かし抽出処理部、  ４２  抽出部、  ４４  ＥＣＣ復号部、  ４６  デスクランブラ、  ４８  暗号復号部、  ４９  ブロックＥＣＣ復号部、  ５０  多数決判定部、  ５１  畳み込み符号復号部、  ６０  復号処理部、  ６２  可変長符号復号部、  ６４  ブロック分割部、  ６６  逆量子化部、  ６８  逆直交変換部、  １００  符号化装置、  ２００  復号装置。
【図１】
2004221715.tif 000003
【図２】
2004221715.tif 000004
【図３】
2004221715.tif 000005
【図４】
2004221715.tif 000006
【図５】
2004221715.tif 000007
【図６】
2004221715.tif 000008
【図７】
2004221715.tif 000009
【図８】
2004221715.tif 000010
【図９】
2004221715.tif 000011
【図１０】
2004221715.tif 000012
【図１１】
2004221715.tif 000013
【図１２】
2004221715.tif 000014
【図１３】
2004221715.tif 000015
【図１４】
2004221715.tif 000016
【図１５】
2004221715.tif 000017
【図１６】
2004221715.tif 000018
【図１７】
2004221715.tif 000019