(57)【特許請求の範囲】
【請求項１】
変換処理により圧縮符号化されたデータ（以下、圧縮符号化データ）を入力する手段と、
該圧縮符号化データで用いられた符号化制御パラメータ値と異なる符号化制御パラメータ値を用いて該圧縮符号化データを再符号化することにより、該圧縮符号化データに電子透かし情報を挿入する手段とを具備することを特徴とする電子透かし挿入方式。
【請求項２】
請求項１に記載の電子透かし挿入方式において、
前記圧縮符号化データは、ＪＰＥＧ又はＭＰＥＧで圧縮された画像信号であることを特徴とする電子透かし挿入方式。
【請求項３】
請求項１に記載の電子透かし挿入方式において、
前記圧縮符号化データは、ＭＰＥＧで圧縮されたオーディオ信号であることを特徴とする電子透かし挿入方式。
【請求項４】
請求項１乃至３のいずれかに記載の電子透かし挿入方式において、
前記符号化制御パラメータ値は量子化ステップ値であり、
前記入力された圧縮符号化データを部分的に復号して求められた変換係数を、圧縮符号化時の量子化ステップ値とは異なる量子化ステップ値を用いて再量子化することを特徴とする電子透かし挿入方式。
【請求項５】
請求項４に記載の電子透かし挿入方式において、
前記入力された圧縮符号化データを部分的に復号して求められた変換係数を、圧縮符号化時の量子化ステップ値よりも細かな量子化ステップ値を用いて再量子化することを特徴とする電子透かし挿入方式。
【請求項６】
請求項５に記載の電子透かし挿入方式において、
前記細かな量子化ステップ値は、圧縮符号化時の量子化ステップ値をある数で割った値であることを特徴とする電子透かし挿入方式。
【請求項７】
請求項４に記載の電子透かし挿入方式において、
前記量子化ステップ値により量子化された変換係数のすべてが、ある一定の条件を持つように電子透かしが挿入されることを特徴とする電子透かし挿入方式。
【請求項８】
請求項７に記載の電子透かし挿入方式において、
前記条件とは、変換係数すべてをある数で割ったときの剰余が等しいことである電子透かし挿入方式。
【請求項９】
請求項６乃至８のいずれかに記載の電子透かし挿入方式において、
データの埋め込み方法として、埋め込みデータが"１"の場合は前記条件で再量子化し、  埋め込みデータが"０"の場合は、再量子化しないことを特徴とする電子透かし挿入方式。
【請求項１０】
請求項４乃至９のいずれかに記載の電子透かし挿入方式において、
非零変換係数の個数が予め定められた数以下の場合のみ電子透かしの挿入を行い、ビット数の増加を抑制することを特徴とする電子透かし挿入方式。
【請求項１１】
請求項４乃至１０のいずれかに記載の電子透かし挿入方式において、
透かしを埋め込む箇所の情報に対し、Matrix Encodingを適用することにより、ビット数の増加を抑制することを特徴とする電子透かし挿入方式。
【請求項１２】
請求項４に記載の電子透かし挿入方式において、
前記条件として、MPEGで符号化されたオーディオデータに対して、量子化ステップ数にある数を加えた値を新たな量子化ステップ数として用い、該量子化ステップ数を用いて再量子化することを特徴とする電子透かし挿入方式。
【請求項１３】
請求項５に記載の電子透かし挿入方式において、
前記細かな量子化ステップ値は、入力された圧縮符号化データの量子化ステップをいくつかの数で割った複数の値であり、該量子化ステップ値を用いて再量子化することにより多値の電子透かし情報を挿入することを特徴とする電子透かし挿入方式。
【請求項１４】
請求項１３に記載の電子透かし挿入方式において、
データの埋め込み方法として、埋め込みデータがｎビットの場合は、入力された圧縮符号化データの量子化ステップ値を因数分解して２ｎ−１個の因数に分解し、これらに対応した量子化ステップ値に対して埋め込みデータを決定することを特徴とする電子透かし挿入方式。
【請求項１５】
請求項５に記載の電子透かし挿入方式において、
前記細かな量子化ステップ値は、入力された圧縮符号化データの量子化ステップを素因数分解して２以上かつ最小の素数で割った値であり、該量子化ステップ値を用いて再量子化することにより、電子透かし情報挿入後のデータ量増加を抑制することを特徴とする電子透かし挿入方式。
【請求項１６】
請求項７に記載の電子透かし挿入方式であって、
前記条件として、
あるマクロブロック（MB(A)とする）とスキャン順で次のマクロブロック（MB(B)とする）において、MB(A)とMB(B)で同じ量子化ステップが利用されているためにMB(B)の量子化ステップ値が符号化されていなかった場合において、
MB(A)に電子透かしを埋め込むにあたって、MB（A）への量子化ステップ値を変更する場合、
透かし埋め込みにより変更された量子化ステップ値が継承されてしまうのを防ぐために元のMB(A)の量子化ステップ値をMB(B)の量子化ステップ値として符号化することを特徴とする電子透かし挿入方式。
【請求項１７】
請求項７に記載の電子透かし挿入方式において、
前記条件として、IntraマクロブロックとInterマクロブロックの量子化のされ方の違いに基づき、透かし挿入時のDCT係数値の変更方法を適応的に切り替えることを特徴とする電子透かし挿入方式。
【請求項１８】
変換処理により圧縮符号化された電子透かし情報が挿入されたデータ（以下、圧縮符号化データ）を入力する手段と、
該圧縮符号化データから得られる符号化制御パラメータおよび変換係数値から冗長性を検出し、該冗長性の有無により挿入された透かし情報値を求める手段を具備したことを特徴とする電子透かし検出方式。
【請求項１９】
請求項１８に記載の電子透かし検出方式において、
前記符号化制御パラメータ値は量子化ステップ値であり、
前記入力された圧縮符号化データを部分的に復号して求められた変換係数値が特定の値ですべて割り切れるかどうかにより透かし情報値を決定することを特徴とする電子透かし検出方式。
【請求項２０】
請求項１９に記載の電子透かし検出方式において、
前記特定の値の大きさにより、多値の検出を行うことを特徴とする電子透かし検出方式。
【請求項２１】
請求項１８に記載の電子透かし検出方式において、
前記圧縮符号化データが圧縮符号化オーディオデータであり、
入力された圧縮符号化オーディオデータを部分的に復号して求められた変換係数値が入力された量子化ステップ数とは異なる量子化ステップ数により変化があるかどうかにより透かし情報値を決定することを特徴とする電子透かし検出方式。
【請求項２２】
請求項２１に記載の電子透かし検出方式において、
前記異なる量子化ステップ数として、入力量子化ステップ数よりも小さな量子化ステップ数を用いることを特徴とする電子透かし検出方式。
【請求項２３】
入力されたデータを圧縮符号化するための符号化制御パラメータ値を求める手段と、
電子透かし挿入する値に応じて、該符号化制御パラメータ値に対して異なる符号化制御パラメータを求める手段と、
該求められた新たな符号化制御パラメータを用いて前記入力されたデータを圧縮することにより電子透かしを挿入する手段と、
該手段により得られた圧縮符号化データを出力する手段とを具備することを特徴とする電子透かし挿入方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像、音声等の符号化信号もしくは同信号の圧縮時に電子透かしを挿入する電子透かし挿入方式および該電子透かしを挿入された信号からの電子透かしを検出する検出方式に関するものである。
【背景技術】
【０００２】
MPEGやJPEGなどで圧縮された動画や静止画像に電子透かしを挿入する技術が開示されている。通常、量子化されたDCT係数を操作する方法、動きベクトルを操作する方法、量子化パラメータを操作する方法などが開示されている。
【０００３】
また、電子透かし挿入の性能として、（１）透かしを入れても情報量が変わらない透かし挿入方法（下記の非特許文献１など）や、（２）透かし挿入された画像データに対して、透かし情報を取り除くと、元の透かし挿入前の圧縮画像に戻す手法（下記の特許文献１など）が開示されている。また、MPEGなどの圧縮オーディオ情報についても、量子化パラメータやサブバンド係数を操作する手法（下記の特許文献２など）が開示されている。  
【特許文献１】特開2007-116513号公報
【特許文献２】特開2006-330256号公報
【非特許文献１】「デジタルコンテンツのコピー追跡のための電子透かしの基礎検討」、（1999年５月18日）、水谷肇伸、小川一人、和泉吉則著、（社）映像情報メディア学会発行、１〜６頁
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記（１）の場合、電子透かしを挿入すると、もともと最適な符号化条件で符号化された符号化情報が改ざんされるため、透かしデータ挿入量が多くなるにつれて、改ざん量も増加し、その結果として、透かしデータが挿入された符号化データを復号した場合、透かしデータが入る前の圧縮画像を復号した場合に比べ、画質が劣化する問題があった。
【０００５】
また、前記（２）の場合は、透かし情報挿入前の圧縮画像に戻すことが可能であるが、透かし情報を一旦抽出して取り除く処理が必要なほか、透かし情報が挿入された圧縮画像をそのまま復号した場合、前記（１）と同様に画質劣化が大きいという問題があった。このため、画質を維持しながら大量の透かし情報を挿入することは、非常に困難であった。
【０００６】
また、MPEGなどで圧縮されたオーディオ情報についても、同様に透かし情報を挿入することによって音質が劣化する問題があった。
【０００７】
本発明は、前記した従来技術に鑑みてなされたものであり、その目的は、画像または音声などの品質を完全に保持する電子透かし挿入方式および検出方式を提供することにある。
【課題を解決するための手段】
【０００８】
前記した目的を達成するために、本発明は、変換処理により圧縮符号化されたデータ（以下、圧縮符号化データ）を入力する手段と、該圧縮符号化データで用いられた符号化制御パラメータ値と異なる符号化制御パラメータ値を用いて該圧縮符号化データを再符号化することにより、該圧縮符号化データに電子透かし情報を挿入する手段とを具備する電子透かし挿入方式を提供する点に第１の特徴がある。
【０００９】
また、変換処理により圧縮符号化された電子透かし情報が挿入されたデータ（以下、圧縮符号化データ）を入力する手段と、該圧縮符号化データから得られる符号化制御パラメータおよび変換係数値から冗長性を検出し、該冗長性の有無により挿入された透かし情報値を求める手段を具備する電子透かし検出方式を提供する点に第２の特徴がある。
【００１０】
さらに、非零変換係数の個数が予め定められた数以下の場合のみ電子透かしの挿入を行うことによりビット数の増加を抑制する点に第３の特徴がある。
【発明の効果】
【００１１】
本発明によれば、電子透かしが挿入された圧縮データをそのまま再生しても元のデータの品質が完全に保持されており（一切損なわれてなく）、かつ符号量の増加を抑制可能な電子透かし方式および検出方式を実現することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下に、図面を参照して、本発明を詳細に説明する。図１に本発明の一実施形態の透かし埋め込みの手順を、図２に図１の透かし埋込に対する透かし検出の手順を示す。
【００１３】
まず、透かし埋め込みの手順について図１を参照して説明する。
【００１４】
最初に、当該制御パラメータが埋め込み対象であるか否かの判断がなされ（ステップＳ１）、埋め込み対象であれば、埋め込む透かしビットが“0”であるか“1”であるかの判断をする（ステップＳ２）。そして、埋め込む透かしビットが“0”の場合はそのまま何もせず終了し、一方、ビットが“1”の場合は圧縮符号化データ１で用いられている符号化制御パラメータ値１ａを変換し（ステップＳ３）、さらに、該変更された符号化制御パラメータ値１ａを用いて該圧縮符号化データ１における変換係数群１ｂを再圧縮する（ステップＳ４）。
【００１５】
次に、透かし検出の手順について、図２を参照して説明する。
【００１６】
まず、圧縮符号化データ２の制御パラメータが透かし埋め込み対象の制御パラメータであるか否かのチェックをし、透かし埋め込み対象の制御パラメータである場合には、制御パラメータ２ａの内容のチェックを行う（ステップＳ１０）。その結果、制御パラメータ２ａが変化した形跡がない場合は、ビット”0”を出力し終了する（ステップＳ１１）。なお、制御パラメータが変化したか否かを判断するための手段の例については後述する。一方、制御パラメータ２ａが変化した可能性がある場合は、引き続きその制御パラメータにより制御されている変換係数２ｂの冗長性チェックを行う（ステップＳ１２）。その結果、全ての変換係数２ｂが冗長であることが判明した場合は“1”を出力して終了する（ステップＳ１３）。逆に全ての変換係数２ｂが冗長とはいえない場合は何もせずに終了する。
【００１７】
次に、本発明の第２実施形態について説明する。この実施形態は、本発明を具体的にMPEG-2ビデオ信号に適用した場合についてであるが、本発明はこれに限定されるものではなく、JPEGなどにも適用することができる。
【００１８】
MPEG-2ビデオ信号は、図３に示すとおり、階層的な構造をとっている。すなわち、１つのシーケンス１０はシーケンスヘッダ（SH）、１つ以上のGOP (Group of Picture)、およびシーケンスエンドコード（SEC）から構成される。GOPはヘッダおよび１枚以上のピクチャ（Picture）１１からなり、ピクチャ１１ａはヘッダおよび１つ以上のスライス（Slice）からなっている。さらに、スライス内部にはスライスヘッダ、および１つ以上のマクロブロック(MB)が存在する。MBはヘッダ、および16画素×16ラインの輝度ブロック、２つの色差ブロックからなる。
【００１９】
ここで、スライスの内部に存在するスライスヘッダにはスライススタートコードの他に量子化ステップを示す量子化スケールコード(以下、MQと記す)が含まれている。このMQは、スキャン順にMBを見たときに、特別にMQが指示されるまでは、該MQが指示されるまでの各MB中のDCT係数に対する量子化スケールを示すことになる。
【００２０】
一方、上記したとおり、MBヘッダにもMQを含めることができる。仮にMBヘッダにMQが存在した場合は、そのMBのMQを示すこととなる。さらに、スライスヘッダのMQ同様、スキャン順で後段にあるMBでMQが現れない限り、そのMQは継承されて利用される。
【００２１】
なお、MB中のMQの有無はCoded_MQフラグで判断することが出来るようになっており、Coded_MQフラグ==Trueの場合はMQが存在する、すなわち、そのMBのMQは当該MBで指定されるMQが使用されることとなる。一方、Coded_MQフラグ==Falseの場合はMQが存在しないため、スキャン順で直前のMBのMQが継承される。
【００２２】
（１）透かしの埋め込み方法
【００２３】
MPEG-1/2ビデオの符号化において、Intra-MBのAC係数およびInter-MBのDC/AC係数は式（１）に従い再構成される。rec［m，n］は、再構成されたＡＣ係数又はＤＣ係数を示す。
【００２４】
【数１】
0004919213.tif 000002
【００２５】
ここで、0≦ｍ，ｎ≦7であり、QTINTRAとQTINTERはそれぞれIntra-MB、Inter-MBに対するデフォルトの量子化テーブルである。また、ｑDCTC［m］［n］はDCT係数、sign（ｑDCTC［m］［n］）は−１、０または＋１を示す。
【００２６】
次に、MB(k) はスライス内でｋ番目のMBを示すこととし(k=1、2、…、kmax)、制御パラメータQ(k)はMB(k)におけるCODED_MQフラグとMQ値を示すこととする。なお、
Q(k) ＝ 0の場合、CODED_MQ==FalseであるためMQ値は存在せず、 
Q(k) ＞ 0の場合、CODED_MQ==TrueでQ(k)はそのMBのMQ値を示すこととする。
【００２７】
まず、Ｉピクチャの場合について説明する。特にQ(k0)=α×β（ただし、α、βは整数、かつβ≠１）となるMB(k0)を考える。明らかにαとβはQ(k0)の因数である。Q(k0)が素数の場合、因数は１つであり、Ｑ(k0)自身のみである。この場合、以下のアルゴリズム１を用いてMB(k0)を変換するとする。
アルゴリズム１（MBのQおよび係数の変換 ）
1: Q(k0)←α
2: for Y，Cb，and Cr channel do
3:  for all nonzero qDCTC[m][n] do
4:   qDCTC[m][n] ←βqDCTC[m][n]
5:  end for
6: end for
【００２８】
ここで、αは新しいMQ値として、またβはMB(k0)の非零AC係数qDCTCへの乗数として選ばれた値である。ところが、１でない限りαとβの役割は入替え可能である。情報を埋め込むためには、MB(k0)は“1”を埋めるために変換されるか、“0”を埋め込んでそのままとするかのどちらかである。特に、オリジナルのQ(k0)が割り切れた場合の因数βは、βの乗数によって補償される（アルゴリズム１の４行目に書かれている通り）。したがって、スキャン順で透かしの埋め込みによりMBが変換されるまでは完全に画質が保存されることになる。
【００２９】
次に、スライスレベルで完全に画質を保存するために、後に続くMBのMQを更新する。MB(k0+1)はQ(k0+1)としてαの代わりにα×βに置き換える必要がある。もちろん、Q(k0+1)>0（つまりα×βでない値を示している）、もしくは該MBがスライス内の最後のMBの場合はこの置き換えを行う必要はない。
【００３０】
一方、INTER-MBについては、アルゴリズム１の４行目を以下のように入れ替えるだけで同様の処理が可能となる。
【００３１】
【数２】
0004919213.tif 000003
【００３２】
ここで、ｘは非零のDCT係数qDCTC（これはDC係数も含まれている）、y＝(β-1)/2である。すべての操作が整数レベルで行われるので、yは整数でなければならない。したがって、INTER-MBにおいて、乗数定数βは奇数となることに注意する必要がある。
【００３３】
なお、本発明の電子透かし埋め込み方式においては、2値（すなわち0/1の1ビット）の埋め込みだけでなく、これを多値の埋め込みに拡張することも可能である。
【００３４】
例えば、Q=16に対して、
(α，β)=(16， 1)の場合を“０”（もしくは“00”）
(α，β)=(8, 2)の場合を“１”（もしくは“01”）
(α，β)=(4, 4)の場合を“２”（もしくは“10”）
(α，β)=(2, 8)の場合を“３”（もしくは“11”）
とすることで、 １つの量子化係数に４値（もしくは2ビット）の情報を埋め込むことが可能となる。
【００３５】
これを一般化して書くと、Qを素因数分解した際に、β=ｃ(≠１)のN乗を因数として持つ場合、
(α，β)=(Q, 1)の場合を“０”、
(α，β)=(Q/c, c)の場合を“１”、
(α，β)=(Q/c2, c2)の場合を“２”、
…
(α，β)=(Q/cN-1, cN-1)の場合を“N-1”、
(α，β)=(Q/cN, cN)の場合を“N”
とすることにより(N+1)値の埋め込みを行うことができる。
ただし、 Q=cNの場合はα=Q/cN=1となる場合を除く（この場合は、N値の埋め込みが可能ということになる）。
【００３６】
図５は、上記したMPEG2への透かし埋め込みのアルゴリズム（スライス単位）をフローチャートで表したものであるが、該フローチャートの詳細は上記で説明済みであるのでその説明は省略する。
【００３７】
(2)透かし検出方法
【００３８】
埋め込まれた透かしデータを検出するために、MPEGデータのパースと同様に修正されたビデオデータをパースする。
【００３９】
まず、Ｉピクチャ（INTRA-MB）の場合について説明する。
【００４０】
Q=α×βとなるMBに到達したら、bit“0”を取り出す。一方、Q＝αとなるMBに到達した時には、次の２つのMBである可能性がある。
(i)Q=α×βにより変換されたMBであり、 bit“1”を持つ。
(ii)元々からQ=αであるMBである。
【００４１】
このように、１つのMBが２つの意味を持ってしまうという問題を打開するために、各非零AC係数ｘに対しβで割ったときの剰余mod(x、β)を考える。仮にすべてのｘに対しその結果が０である、つまりｘがβで割り切れる場合（mod(x、β)=0）は、(i)の場合であると判断し、bit“1”を取り出す。一方、そうでなければ(ii)の場合であると判断し何も取り出さない。なお、MB内の全非零AC係数が特定の因数βで割り切れることはまれである。 以上のようにすれば、変換されたMBが“１”を持つものかそうでないかを判別することができる。
【００４２】
下記のアルゴリズム２を使えば、変換されたMBをもとの状態に戻すことが出来る。
アルゴリズム2 ：変換されたMBの修復
1: Q ←α×β
2: for Y，Cb，and Cr channel do
3:  for all nonzero qDCTC[m][n] do
4:   qDCTC[m][n] ←  qDCTC[m][n]/β
5:  end for
6: end for
【００４３】
その後、次に符号化されるMQの値のため後段のMBがスキャンされる。もしα×βであればMQ(k)はもともとMQが符号化されていなかったと判断されるため、それを元に戻すためにCODED_MQフラグがfalseになる。そうでなければ、元々、符号化されたMQを持っていたということになる。
【００４４】
前述の議論については、 INTER-MBに対しても簡単な修正で適用可能である。特に(i)の際の条件mod(x、β)=0を、 
mod (x−y、β) = 0 if x > 0
mod (x＋y、β) = 0 otherwise。
と、置換するだけである。これは前記(1)式に由来している。また、変換が行われているINTER-MBを修復する際にはアルゴリズム２の４行目を、
(x−y)=β if x > 0;
(x+y)=β otherwise、
と置換するだけでよい。
【００４５】
図６は、上記したMPEG2からの透かし検出のアルゴリズム（スライス単位）をフローチャートで表したものであるが、該フローチャートの詳細は上記で説明済みであるのでその説明は省略する。
【００４６】
次に、透かしの埋め込みおよび透かし検出の具体例を説明する。具体的に、Ｉピクチャを使った透かし埋め込み・検出例を図７に示す。
【００４７】
図７の上段がオリジナルのMQとDCT係数を、下段が修正後のMQとDCT係数を表している。左側のセルの列はQ(k)を表している。 Q(k)>0の場合はQ(k)の値が、そうでない場合はXが格納されている。Xが格納されているMB(k)は前段のMB(k)のQ(k)値を継承する。
【００４８】
まず、埋め込み処理について説明する。ここで、上段のQ(k)=α×β＝4×2 = 8となるすべてのMB(k)を使って、電子透かし（バイナリメッセージ）を埋め込む場合を想定する。
【００４９】
もし、MB(k0)にビット“1”を格納するためにQ(k0)に変換を施す場合は、下段のMB(k0)のQ(k0)は、Q(k0)=α=4となり、かつDCT係数の中の全ての非零AC係数に因数β（=2）が掛けられる。このように、因数を掛けることでDCT係数が大きくなりビット量も増加するが、逆量子化後のDCT係数は元と同じになり、画質そのものは完全に保存されることが分かる。その次のMB(k0+1)のQ(k0+1)はQ(k0+1)=10であり、8ではないから、下段のQ(k0+1)も10のままでよい。
【００５０】
同様に、Q(k0+2)=8で、ここにビット“1”を格納する場合、Q(k0)と同様の処理が施され、Q(k0+2)=4となる。その次のMB(k0+3)におけるQ(k0+3)はX（=0）であるため、ここにビット“0”が格納される。また、X（=0）のまま下段に移すとQ(k0+2)=4が継承されてQ(k0+3)=4として扱われてしまうことになるため、Q(k0+3)がXから８に変えられる。さらにその次のMB(k0+4)のQ(k0+4)はQ(k0+4)=11であり、8ではないから、下段のQ(k0+4)も11のままでよい。
【００５１】
次に、検出処理について説明する。図７の下段のセル群において、電子透かし（バイナリメッセージ）検出器はQ(k0)=α=4を抽出するため、MB(k0)が最初のキャリアであると認識される。全ての非零AC係数がβ(=2)で割り切れることから、検出器はビット“1”を引き出し、MB(k0)を元の状態に戻し、次のQ(k0+1)のチェックに移る。Q(k0+1)=10（すなわち8でない）であることから、MB(k0+1)には、透かしは埋め込まれていないと認識される。
【００５２】
次に、MB(k0+2)もMB(k0)同様最初のキャリアであると認識され、さらに、全ての非零AC係数がβ(=2)で割り切れたとすると、ビット“1”が引き出される。よって検出器はMB(k0+2)を元の状態に戻し、Q(k0+3)のチェックを行う。ここで、Q(k0+3)=8であるため、MB(k0+3)は前の状態が引き継がれたMBであると認識される。よって、MQ(k0+3)=0とされる。Q(k0+4)=11は8ではないので、MB(k0+4)には透かしは埋め込まれていないと認識される。また、Q(k0+4)はそのままである。
【００５３】
INTERの場合も同様の方法をとることが出来る。ただし、βは奇数でないといけないため、ここではα=3、 β=3の場合を考える。図８にその詳細を示す。
【００５４】
まず、透かしデータの埋め込み処理について説明する。ここで、Q(k)=α×β＝3×3 = 9となるすべてのMB(k)を使って、電子透かし（バイナリメッセージ）を埋め込む場合を想定する。
もし、MB(k0)においてビット“1”を格納するために変換を施す場合は、Q(k0)=α=3となり、すべての非零AC係数xに対し、次の因数を用いた場合分け演算が行われる。
βx + (β-1)/2 すなわち 3x+1   (x>0)
βx - (β-1)/2 すなわち 3x-1   (その他)
【００５５】
このよう演算を行うことで係数が大きくなりビット量も増加するが、逆量子化後のDCT係数は元と同じになり、画質そのものは保存されることが分かる。
【００５６】
その次の係数として、本来であれば、MB(k0+1)におけるQ(k0+1)を元に戻さないといけないが、もともとQ(k0+1)=10という形で別の量子化パラメータとして符号化されているため、そのままでよい。
【００５７】
同様に、Q(k0+2)=9で、ここにビット“1”を格納する場合、Q(k0)同様の処理が施され、Q(k0+2)=3となる。後段のMB(k0+3)におけるQ(k0+3)=0であるため、このままだとQ(k0+3)=3として扱われてしまうことになる。よって、これを元に戻さないといけない。そのため、Q(k0+3)がXから9になっている。
【００５８】
次に、透かしデータの検出処理を説明する。図８の下側のセル群に着目すると、電子透かし（バイナリメッセージ）検出器はQ(k0)=α=3であるため、MB(k0)が最初のキャリアであると認識される。全ての非零DCT係数が、
mod (x − y，β) = 0 （x > 0）
mod (x ＋ y，β) = 0 （その他）
【００５９】
ただし、y = (β-1)/2
(上の３つの式を(3)式とする)
を満足するため、検出器はビット“1”を引き出し、MB(k0)を元の状態に戻す。Q(k0+1)=10であることからMQ(k0+1)=0にすることは行われない。
【００６０】
次に、MB(k0+2)もMB(k0)同様最初のキャリアであると認識され、さらに、全ての非零DCT係数で(3)式を満足したとすると、ビット“1”が引き出される。よって、検出器はMB(k0+2)を元の状態に戻し、Q(k0+3)のチェックを行う。ここで、Q(k0+3)=9であるため、MB(k0+3)は前の状態が引き継がれたMBであると認識される。よって、MQ(k0+3)=0とされる。MB(k0+4)=11で9ではないので、そのままである。
【００６１】
(3)増加するビット量を抑制する方法
【００６２】
透かしを埋め込むことによりMQを変化させると、非零AC係数が全て大きくなる。AC係数は、スキャン順にAC係数が表れるまでの０の個数（０ラン）と係数の大きさ（レベル）を符号化する。MPEG-2のランとレベルの符号化ビットを図４に示す。図４に書かれている通り、一般的にレベルが上がるほど、ビット量は増える。よって、透かしを埋め込むことにより全体のビット量が増加するという問題が生じる。埋め込むことのできるビットメッセージ（電子透かし）の長さに対し、この全体の符号量の増加を抑制するために以下に掲げる３つの方法をとることができる。
【００６３】
(a) 因数として小さな値（例：β=2 又は 3）のみを用いる方法。
【００６４】
因数として小さな値の場合のみ変換（透かし埋め込み）を行うことにより、各非零DCT係数は2、3倍程度にしか増加しないため、同係数に対する符号量の増加を最小に抑えることができる。
【００６５】
(b) 透かし埋め込みの際、Q(k)>0となるすべてのMB(k)を使う代わりに、非零DCT係数の個数がある定数以下の場合のみ本方式を適用することで、符号量の増加を抑制することができる。例えば、非零係数が１０個の場合と５個の場合を比較したとき、１０個の場合に変換を行うよりも５個の場合に変換を行う方が、すなわち非零係数の個数が少ない場合のみ透かし埋め込みに対応する方が、総合的に増加するDCT係数の個数が減るためである。
【００６６】
(c) Matrix Encoding (ME)と呼ばれる方法を用いて、ビットメッセージ（電子透かし）の長さに対し増加する符号量を抑制することができる。ここで、ある整数ｊを使ってMatrix EncodingをME(j)と書くとすると、これは2j-1箇所の場所のうち最大１箇所のみが変化する場合、この変化情報を使ってｊビットの情報を保持する方法である。ここで、場所とはQ>０となるMBを意味し、修正はMBの変化を意味する。変化させるMBの個数が減るので、ファイルサイズの増分をより小さくすることができる。
【００６７】
なお、ME(j)について詳しく述べると以下のとおりである。
【００６８】
例えば、j=3の場合を考える。ビットメッセージをw=w1、w2、w3とすると、対象となるビット埋め込み箇所(x)は23-1=7箇所となる。これをx1、x2、…、x7とする。図９にその例を示す。
ここで、xとwの関係は図９にあるとおりとし、さらに、もともとx1=x2=…=x7=0であったとする。このとき、仮に、(w1、w2、w3)=(0、1、0)としたい場合は、x2=0→1とすればよく、同様に(w1、w2、w3)=(1、1、0)としたい場合はx4=0→1とすればよい。このように１箇所だけを変化させることにより、3つのビットの情報を表すことができる。
【００６９】
逆に検出の際には、x1〜x7のうち１箇所だけ変化しているビットを検出すればよい。例えば、x3=1だとしたら、(w1、w2、w3)=(0、0、1)であることがわかる。
【００７０】
なお、上記の Matrix Encoding (ME)法は、例えば、「Ron Crandall, “Some Notes on Steganography”, 1998」に開示されている。  
【００７１】
(4)符号化（圧縮）時の透かし埋め込み
【００７２】
ここまで、すでに圧縮されたビデオ信号に対する透かし埋め込み方式に関して説明をしてきたが、符号化と同時に透かし埋め込みを行うことも可能である。その方法は圧縮されたビデオ信号への透かし埋め込み方式と同様である。
【００７３】
例えば、MPEG-2ビデオ符号化時に本方式を適用する場合、各マクロブロックで量子化パラメータMQを計算するが、電子透かしとして“０”を埋め込むマクロブロックのMQをα×βにすればよい。一方、“１”を埋め込むマクロブロックについてはMQをβとし、さらにそこに属するDCT係数の非零係数がすべてβの倍数になるようにすればよい。DCT係数をすべてβ倍とするためには、一時的にMQ=α×βとしDCT係数を計算した上で、その後でMQ=βとしてDCT係数をすべてβ倍することにより対処可能である。
【００７４】
(5)オーディオ信号への埋め込み・検出
【００７５】
以上、MPEG-2ビデオ信号について述べてきたが、これらの処理はMPEG-2ビデオだけでなく、例えばMP3などのオーディオ符号化にも用いることが出来る。
【００７６】
例えば、MP3に本方式を適用することを考えると、MP3の再構成におけるスケールファクタ（scalefactor）とMDCT係数の関係は、次のようになる。
【００７７】
Rec[] = c×（MDCT係数）4/3 * 2-scalefactor
【００７８】
（ｃは定数）
【００７９】
ここで、Rec[]の値を変化させることなく、すなわち音質を保持しながら、スケールファクタを増加させつつ、MDCT係数が元の数の倍数となるための条件は、MDCT：4倍の場合であり、このときスケールファクタは+8すればよい。同様に、MDCT：8倍の場合は、スケールファクタは+16すればよい。
【００８０】
一方で、完全でないまでも、ある程度音質を保持したままスケールファクタを増加させつつ、MDCT係数が元の数の倍数となるための条件は、MDCT：2倍の場合はスケールファクタは+3、MDCT：3倍の場合はスケールファクタは+5、・・・・とすればよい。
【００８１】
以上のことを基に、透かしの埋め込み方法について説明する。
【００８２】
まず、あるスケールファクタにおいて“0”を埋めたい場合は何もしない。一方で“1”を埋めたい場合はスケールファクタがある値(例えばαとする)の場合、これを+8した上でMDCT係数を4倍すればよい。このようにすることで音質を保持したまま透かしを埋め込むことが可能となる。なお、MP3の場合、スケールファクタはサブバンドごとに符号化するため、MPEG-2 Videoのときのようにスキャン順に後ろのフレームへの影響を考慮する必要はない。
【００８３】
次に、透かしデータの検出であるが、スケールファクタがαの場合、透かし“0”が埋まっていると判断し、スケールファクタがα+8であればMDCT係数がすべて4の倍数になっている場合に限り透かし“1”が埋まっているものと判断する。
【００８４】
なお、多少音質に影響を与えても良いのであれば、スケールファクタを+3した上でMDCT：2倍、スケールファクタを+5した上でMDCT：3倍とする方法をとることも可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態の処理手順（透かし埋め込み）の概要を示す説明図である。
【図２】本発明の一実施形態の処理手順（透かし検出）の概要を示す説明図である。
【図３】の符号化構造の説明図である。
【図４】MPEG2のビデオラン・レベル表の一部を示す図である。
【図５】本発明の第２実施形態の処理手順（透かし埋め込み：スライス単位）の概要を示すフローチャートである。
【図６】本発明の第２実施形態の処理手順（透かし検出：スライス単位）の概要を示すフローチャートである。
【図７】透かし情報の埋め込み・検出（イントラ）の一具体例の説明図である。
【図８】透かし情報の埋め込み・検出（インター）の一具体例の説明図である。
【図９】Matrix  Encodingの説明図である。
【符号の説明】
【００８６】
１，２・・・圧縮符号化データ、１ａ，２ａ・・・制御パラメータ、１ｂ、２ｂ・・・変換係数群、１０・・・シーケンス、１１・・・ピクチャ。
【図１】
0004919213.tif 000004
【図２】
0004919213.tif 000005
【図３】
0004919213.tif 000006
【図４】
0004919213.tif 000007
【図５】
0004919213.tif 000008
【図６】
0004919213.tif 000009
【図７】
0004919213.tif 000010
【図８】
0004919213.tif 000011
【図９】
0004919213.tif 000012