実施の形態1.
この発明の実施の形態1では、29.97fps(frames per second)の非圧縮YUV動画像に電子透かしを埋め込む電子透かし埋込装置について説明する。
図1は、実施の形態1の電子透かし埋込装置の一例を示すブロック構成図である。また、図2は、実施の形態1の電子透かし埋込手順の一例を示すフローチャートである。以下、図1のブロック構成を図2の処理ステップで示される動作に対応付けて説明する。
図1に示す電子透かし埋込装置は、ビット列生成手段1、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5、電子透かし埋込手段6を備えている。
ビット列生成手段1は、デジタルデータとしての鍵に対し一意に特定されるビット列を生成する(図2のビット列生成ステップ(ST1))。本実施の形態では、先ず、128ビットの鍵に対し、SHA−1(Secure Hash Algorithm)を使用し、160ビットの第1のハッシュ値を生成する。次に、第1のハッシュ値に対し、SHA−1を使用し、160ビットの第2のハッシュ値を生成する。更に、第2のハッシュ値に対し、SHA−1を使用し、160ビットの第3のハッシュ値を生成する。これを繰り返し、第1のハッシュ値から順に単純連結したビット列を生成すべきビット列とする(図3(a)参照)。
繰り返し周期特定手段2は、ビット列生成手段1が生成したビット列の一部を使用し、電子透かしの埋込を実施するにあたり、繰り返し同じ処理を施す周期を特定する(図2の繰り返し周期特定ステップ(ST2))。本実施の形態では、図4に示すようなビット列を使用する。即ち、ビット列生成手段1が生成したビット列の1バイト目(第1ビットから第8ビット)を取り出し、符号無し整数として解釈した上で、その整数が63以下であれば64を足した値を、64以上であればその値を、繰り返し周期として使用する。図4では、ビット列値が176であった場合に使用値を176とする例を示しており、今後、本実施の形態ではこの例示に基づき説明する。ここで、176は、29.97Hz時間における176を表すものとする。つまり、176の時間は176/29.97秒である。本実施の形態では29.97fpsの動画像を扱っているので、176の時間の間には動画像のフレームが176存在することになり、176フレーム毎に同じ処理を繰り返して電子透かしの埋込を行うこととなる。特に断らない限り、今後、時刻及び時間は、29.97Hz時間によるものとする。
埋込領域特定手段3は、ビット列生成手段1が生成したビット列の一部を使用し、電子透かしの埋込を実施するにあたり画面上の埋込領域を特定する(図2の埋込領域特定ステップ(ST3))。本実施の形態では、図4に示すようなビット列を使用する。即ち、2バイト目から8バイト目までの7バイトを取り出し、埋込領域の形状、大きさ、位置を特定する。先ず、2バイト目のビット列値を取り出し、符号無し整数と解釈した上で、その整数のmodulo 2を計算し、計算結果が0であれば長方形を、1であれば楕円を、埋込領域の形状として使用する。次に、3バイト目と4バイト目のビット列値を取り出し、符号無し整数と解釈した上で、3バイト目は、その整数が7以下であれば8を、8以上であればその値を、横位置を表す数値の分母として使用し、4バイト目は、分母として使用する値を法としてその整数のmoduloを計算した値(分母として使用する値でその整数を割った余り)を、埋込領域中心の横位置を表す数値の分子として使用する。同様にして、5バイト目と6バイト目のビット列値から、埋込領域中心の縦位置を表す数値の分母と分子を算出する。更に、7バイト目のビット列値を取り出し、符号無し整数と解釈した上で、既に算出済の横位置の分母を4で割り、小数部を切り捨てた値を法としてその整数のmoduloを計算し、0であれば1を、1以上であればその値を、埋込領域の横幅を表す数値の分子として使用する。同様にして、8バイト目のビット列値から、埋込領域の縦幅を表す数値の分子を算出する。
図4では、2バイト目から8バイト目のビット列値が、順に231、23、42、118、209、67、98であった場合に、埋込領域の形状を楕円(1が相当)、横位置の分母を23、埋込領域中心の横位置の分子を19、縦位置の分母を118、埋込領域中心の縦位置の分子を91、埋込領域の横幅の分子を2、埋込領域の縦幅の分子を11とする例を示しており、今後、本実施の形態ではこの例示に基づき説明する。この場合、埋込領域形状は楕円であり、楕円の中心は、横方向については画面の左端を0、右端を1とした時に、左から19/23の位置であり、かつ縦方向については画面の上端を0、下端を1とした時に、上から91/118の位置であり、楕円の横幅は、画面の横幅全体を1とした時に2/23の長さであり、楕円の縦幅は、画面の縦幅全体を1とした時に11/118の長さである(図5参照)。
このようにして、動画像の画面における空間的な埋込領域が特定される。もし、埋込領域形状特定段階で長方形が選択されていれば、楕円の中心を長方形の中心として、また楕円の横幅及び縦幅を長方形の横幅及び縦幅として解釈し、埋込領域を特定する。なお、図4の例では該当しないが、場合によっては、埋込領域として特定された領域が画面の枠からはみ出すことがある。その場合には、埋込領域として特定された領域であってかつ画面の枠内である領域を埋込対象領域として最終的に決定すればよい。あるいは、ビット列を使用する際に埋込領域が画面の枠外にはみ出さないように制約を設けて、埋込領域の位置及び大きさを特定するようにしてもよい。埋込対象となるのは実際には画素であり、本実施の形態では、この楕円内に存在する画素に対応する輝度値を画素に特徴付けられた値として電子透かしを埋め込む。
図1において、埋込時期特定手段4は、ビット列生成手段1が生成したビット列の一部を使用し、電子透かしの埋込を実施するにあたり埋込処理を施す時期を特定する(図2の埋込時期特定ステップ(ST4))。本実施の形態では、図4に示す通りビット列を使用する。即ち、9バイト目と10バイト目を取り出し、埋込開始時点及び埋込継続期間を特定する。先ず、9バイト目のビット列値を取り出し、符号無し整数と解釈した上で、繰り返し周期から16を減じた値を法としてその整数のmoduloを計算した値を、埋込開始時点として使用する。次に、10バイト目のビット列値を取り出し、符号無し整数と解釈した上で、繰り返し周期から埋込開始時点を減じそれに1を加えた値を法としてその整数のmoduloを計算し、15以下であれば16を、16以上であればその値を、埋込継続期間として使用する。
図4では、9バイト目と10バイト目のビット列値が、それぞれ70、252であった場合に、埋込開始時点を70、埋込継続期間を38とする例を示しており、今後、本実施の形態ではこの例示に基づき説明する。この場合、176の時間をサイクルとした埋込処理において、そのサイクル内を0から176までの時刻で表記した場合に、70の時刻から埋込を開始して、38の時間だけ埋込処理を継続する、即ち、108の時刻で埋込を終了する。図5では埋込時期についても例示している。動画像が29.97fpsで時刻が29.97Hz時間のため、図5では、時刻0に最初のフレームが、時刻1に次のフレームが配置され、整数時刻にフレームが対応するよう図示している。時刻70に相当するフレームから時刻107に相当するフレームまでを埋込対象とする。ここで、時刻108に相当するフレームまでとしないのは、時刻70に相当するフレームから時刻107に相当するフレームまでは38フレーム存在し、これを時間に直すと29.97Hz時間で38の時間(38/29.97秒)であり、先に算出した埋込継続時間に合致するためである。実装上の問題として、仮に時刻108に相当するフレームまでの埋込としたり、あるいは時刻71に相当するフレームから時刻108に相当するフレームまでの埋込としたりするアルゴリズムで埋込装置が構成されたとしても、埋込装置の機能や性能に大差はない。
図1において、電子透かし波形特定手段5は、ビット列生成手段1が生成したビット列の一部を使用し、電子透かしの埋込を実施するにあたり適用する電子透かし波形を特定する(図2の電子透かし波形特定ステップ(ST5))。本実施の形態では、図4に示す通りビット列を使用する。即ち、ビット列生成手段1が生成したビット列の11バイト目から13バイト目までの3バイトを取り出し、電子透かし波形の形状及び周期、また電子透かし波形適用開始時の位相を特定する。先ず、11バイト目のビット列値を取り出し、符号無し整数と解釈した上で、その整数のmodulo 2を計算し、計算結果が0であれば周期矩形波を、1であれば周期正弦波を、電子透かし波形の形状として使用する。次に、12バイト目のビット列値を取り出し、符号無し整数と解釈した上で、埋込継続期間に1を加えた値を法としてその整数のmoduloを計算し、3以下であれば4を、4以上の奇数であれば1を減じた値を、4以上の偶数であればその値を、電子透かし波形の周期として使用する。更に、13バイト目のビット列値を取り出し、符号無し整数と解釈した上で、電子透かし波形の周期を法としてその整数のmoduloを計算し、その値を電子透かし波形適用開始時の位相として使用する。電子透かし埋込開始時点、電子透かし波形の周期、電子透かし波形の適用開始時の位相を、それぞれEmbedStart、WavePeriod、WavePhaseとする場合、本実施の形態において、電子透かし波形WatermarkWaveは、矩形波の場合と正弦波の場合においてそれぞれ以下のようにする。
矩形波の場合
WatermarkWave(t)=A
(0≦(t-EmbedStart+WavePhase)modulo WavePeriod<WavePeriod/2)
WatermarkWave(t)=−A
(WavePeriod/2≦(t-EmbedStart+WavePhase)modulo WavePeriod<WavePeriod)
正弦波の場合
WatermarkWave(t)=round(B×sin[2π(t-EmbedStart+WavePhase−0.5)/WavePeriod])
ここで、Aは正整数、Bは正数、πは円周率、round()は小数部分を四捨五入して整数値に丸める関数、tは繰り返しサイクルの開始時点を0とした場合の29.97Hz時刻とする。図4では、11バイト目から13バイト目のビット列値が、順に6、183、126であった場合に、電子透かし波形の形状を矩形波(0が相当)、電子透かし波形の周期を26、電子透かし波形適用開始時の位相を22とする例を示しており、今後、本実施の形態ではこの例示に基づき説明する。本実施の形態では、埋込期間が時刻70から時刻108である。これに従い、埋込対象を時刻70に相当するフレームから時刻107に相当するフレームまでの38枚とすることを既に述べた。電子透かし波形の形状は矩形波でありその周期は26なので、電子透かし波形を図示すると、図5のWatermarkWave(t’)のようになる。この波形の位相22から適用するので、図5のWatermarkWave(t’)のうち、角丸矩形で囲んだ部分が実際に適用する電子透かし波形となる。
図1において、電子透かし埋込手段6は、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が出力した各種パラメータを採用して、電子透かしを埋め込む(図2の電子透かし埋込ステップ(ST6))。図5は、本実施の形態による電子透かし埋込の様子を示している。繰り返し周期特定手段2により、繰り返し周期は176と決定された。従って、176の時間が経つ毎に繰り返して同じ処理を施すことで電子透かしを埋め込む。図5では、繰り返しサイクルの開始時点を時刻0として時間軸tを設定している。時間が29.97Hz時間であり、動画像が29.97fpsのため、整数時刻に対し1枚ずつフレームが相当する。176の時間を繰り返し周期とするため、時刻176に相当するフレームは時刻0に相当するフレームと、時刻177に相当するフレームは時刻1に相当するフレームと、同じように処理される。それ以降も同様である。埋込領域特定手段3により、埋込領域は、画面左端から19/23、画面上端から91/118の位置を中心とし、横幅が画面全横幅に対し2/23、縦幅が画面全縦幅に対し11/118である楕円と決定された。また、埋込時期特定手段4により、電子透かしの埋込期間は、時刻70から38の時間に渡ることが決定された。埋込領域特定手段3により決定された埋込領域であってかつ埋込時期特定手段4により決定された期間内である動画像の範囲に対して電子透かしを埋め込む。電子透かし波形特定手段5により、電子透かし波形が矩形波であること、その周期が26であって、適用開始時(時刻70)の電子透かし波形の位相が22であることが決定された。以上の決定内容の通り電子透かしを埋め込む。
具体的には、時刻70に相当するフレームには透かし信号値として−Aを適用する。即ち、原信号からAを減じる。時刻73に相当するフレームまで−Aを適用した後、時刻74に相当するフレームから時刻86に相当するフレームまでは透かし信号値としてAを適用する。即ち、原信号にAを加える。このようにして時刻107に相当するフレームまで電子透かしを埋め込む。本実施の形態では、輝度値に対して埋め込むので、埋め込んだ後の輝度値は、図5の埋込後の輝度値(t)に示すようになる。ここで、電子透かしデータとして1を埋め込むか0を埋め込むかの切り分けは、電子透かし信号適用の加減の別によって行うことができる。本実施の形態では、1を埋め込む場合は電子透かし波形をそのまま適用し、0を埋め込む場合は電子透かし波形の極性(符号)を転換して適用するものとする。よって、図5に例示した埋込後の輝度値(t)は、1を埋め込んだ場合のグラフとなる。0を埋め込んだ場合は、加算及び減算が図5と逆転する。図5中の輝度値(t)において、破線が埋込前の信号、実線が埋込後の信号を表している。
これまで説明してきたように電子透かしを埋め込むことで1ビットの電子透かしデータを埋め込むことができる。電子透かしデータとして複数ビットを埋め込む場合は、以下のようにすればよい。図4に示した通り、1ビットを埋め込むために、2バイト目から13バイト目までの12バイトのビット列を使用し、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が各種パラメータを決定して、そのパラメータに基づき、電子透かしデータの第1ビットを埋め込む。続いて、14バイト目から25バイト目までの12バイトのビット列を2バイト目から13バイト目と同様に使用し、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が各種パラメータを決定して、そのパラメータに基づき、電子透かしデータの第2ビットを埋め込む。以下、同様にして、電子透かしデータの第3ビット以降を埋め込んでいけば、任意ビットの電子透かしデータを埋め込むことができる。
ここで、埋込領域と埋込時期で特定される第2ビットの埋込範囲が、空間的かあるいは時間的に、第1ビットの埋込範囲と重複する可能性がある。ここで、埋込範囲の空間的な重複とは、画面上の二つの埋込領域に重複があることを、また、埋込範囲の時間的な重複とは、埋込時期に重複があることを表すものとする。空間的な重複か時間的な重複のいずれか一方のみであれば、空間方向と時間方向の双方を考慮した場合に埋込範囲としては重複しないので問題ない。しかし、空間的かつ時間的な埋込範囲の重複が起こった場合には対処が必要である。この場合、本実施の形態では、埋込領域の形状から電子透かし波形適用開始時の位相までの全ての決定内容を破棄し、次のビット列を使用して、再度決定し直すものとする。即ち、12n−10バイト目から12n+1バイト目までのビット列を使用して決定した埋込範囲は、それより前に決定しているあらゆる埋込範囲と空間的かつ時間的な重複がない場合のみ採用し、そうでなければ、12(n+1)−10バイト目から12(n+1)+1バイト目までのビット列を使用して決定し直しを試みるものとする。例えば、14バイト目から25バイト目までのビット列を使用して埋め込もうとした電子透かしデータの第2ビットの埋込範囲が電子透かしデータの第1ビットの埋込範囲と空間的かつ時間的に重複した場合は、26バイト目から37バイト目までのビット列を使用して決定し直す。そのようにして、初めて電子透かしデータの第1ビットの埋込範囲と空間的か時間的のうち少なくともいずれか一方に重複しない埋込範囲が得られた時点で、そのパラメータによる埋込を電子透かしデータの第2ビットに割り当てる。このようにすることで、電子透かしデータの各ビットに重複しない埋込範囲を割り当てることができる。
更に、個々の埋込範囲に対して、電子透かしデータを1ビットずつ割り当てる以外にも、様々なバリエーションが可能である。例えば、埋め込むビット数は1ビットであっても、空間的および時間的な埋込範囲のうち、少なくともいずれか一方が重複しないよう複数の埋込範囲を設け、その全ての埋込範囲に同一ビットを埋め込むことで、冗長度のある埋込を実現できる。また、埋め込む電子透かしデータが8ビットである場合に、埋込範囲を重複しないよう24個設定できるまで、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5によるパラメータ設定作業を繰り返し、第iの埋込範囲(1≦i≦24)に電子透かしデータの第((i−1)modulo 8)+1ビットを埋め込むようにすれば、8ビットの電子透かしデータのそれぞれのビットを三つの埋込範囲に対して適用することになり、冗長に複数ビットを埋め込むことができる。他にも、幾つ目の埋込範囲に電子透かしデータの幾つ目のビットを割り当てるかを、別途、ビット列生成手段1が生成したビット列を元に特定する手段を設けて特定することも可能であり、そのような実施の形態も可能である。
以上のように、これまで説明してきた本実施の形態では、電子透かしの埋込対象となる画面内で埋込領域は、鍵がなければ生成できないビット列に基づいて決定されているので、簡単には推測できない。そのため、動画像に埋め込まれた電子透かしを消そうとする攻撃者は電子透かしの埋込に使われている領域を簡単には特定できなくなり、結果として電子透かしの攻撃耐性が向上するというメリットがある。また、電子透かしの埋込対象となる期間は、鍵がなければ生成できないビット列に基づいて決定されているので、簡単には推測できない。そのため、仮に攻撃者が埋込領域を特定したか、偶然当てたとしても、埋込期間を特定できないため、有効な攻撃が困難となり、結果として攻撃耐性が向上するというメリットがある。
更に、電子透かし波形の形状、周期、電子透かし埋込開始時の電子透かし波形の位相は、鍵がなければ生成できないビット列に基づいて決定されているので、簡単には推測できない。そのため、攻撃者は、動画像の輝度、青色色差、赤色色差の各成分、あるいはRGB形式であれば、R、G、Bの各成分などに対し、周波数成分の強度や位相を解析し、電子透かし信号成分の抽出や、電子透かし信号成分の持つ周波数や位相の推測を試みるしかないが、画面の領域によって電子透かしが埋め込まれているか埋め込まれていないかも異なり、また埋め込まれている場合も領域が異なれば電子透かしの周波数成分や位相も異なるため、電子透かしの周波数成分や位相の特定は困難である。加えて、攻撃者は、埋込領域及び埋込時期に関する正確な情報も得られていないであろうから、動画像の品質を損なわずに電子透かしを効率的に攻撃することは困難である。そのため、高い攻撃耐性が得られるというメリットがある。
高い攻撃耐性が得られるというメリットに加え、これまで説明してきた本実施の形態の重要な特徴として、埋込アルゴリズムが公開されても、電子透かしの安全性に殆ど影響しないことが挙げられる。埋込アルゴリズムに関する完全な知識があっても、埋込に使用した鍵を知らなければ、埋め込まれた電子透かしデータを検出することができない。検出ができないどころか、電子透かしの信号が、動画像の画面のどの領域に、時間的にどの期間に埋め込まれているか検討をつけることすらできず、また、電子透かし信号の周波数成分や位相に関する情報も得られない。そのため、アルゴリズムに関する完全な知識があっても、動画像の品質を損なわずに電子透かしを効率的に消失させる攻撃は困難である。
これまで説明してきた本実施の形態では、29.97fpsの動画像に電子透かしを埋め込んだが、その他のフレームレートの動画像に電子透かしを埋め込むこともできる。例えば、23.976fpsの動画像を対象として電子透かしを埋め込む場合、鍵が同じであれば、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が出力する各種パラメータは、同じとなる。繰り返し周期特定手段2により、繰り返し周期は、176と決定される。本実施の形態では、繰り返し周期の176は29.97Hz時間で解釈するため176/29.97秒を意味する。電子透かし埋込対象となる動画像が23.976fpsの場合は、おそらく埋込処理の1サイクル内に140フレーム乃至141フレームが存在することになる。
埋込時期特定手段4により、埋込開始時点は70、埋込継続期間は38と決定される。約140フレームが存在する埋込処理の1サイクル内で、サイクルの先頭から57枚目辺り(時刻70辺り)のフレームから埋込を開始し、約30枚のフレーム(38の時間分のフレーム)に電子透かしを埋め込むことになる。ここで、埋込処理を開始するフレームや終了するフレームが、埋込装置の実装上の問題で1フレーム程ずれても、電子透かしの性能には大きな影響を与えない。電子透かし波形特定手段5が決定する、電子透かし波形の周期や、電子透かし波形適用開始時の位相についても、同様に29.97Hz時間で解釈して処理する。59.94fpsの動画像を扱うこともできる。この場合は、176の時間の中にフレームが352枚存在し、埋込処理のサイクル内で時刻70に相当するフレーム(埋込処理のサイクル内で141枚目のフレーム)から埋込を開始し、76枚のフレームに対して電子透かしを埋め込むことになる。このように、任意のフレームレートの動画像に対して電子透かしを埋め込むことができる。
これまで説明してきた本実施の形態では、繰り返し周期、埋込開始時点、埋込継続期間、電子透かし波形の周期、電子透かし波形適用開始時の位相(以下、本段落ではこれらを上記各種パラメータと呼ぶ)を29.97Hz時間として解釈したが、他の時間単位をとることもできる。例えば、デジタルシネマ装置のように、24fpsの動画像を扱うと決まっているならば、上記各種パラメータを24Hz時間と解釈するよう埋込装置を設計することによって、各整数時刻に一枚ずつフレームが対応するため、アルゴリズムを簡略化することができる。また、上記各種パラメータの次元をあくまで時間(時刻)とし、フレーム数(フレーム番号)としない理由は次の通りである。即ち、上記各種パラメータの次元を時間ではなくフレーム数とすると、29.97fpsの動画像と23.976fpsの動画像に対して異なる時間スケールの埋込を施すことになり、これらの動画像が後にフレームレート変換され電子透かし埋込時のフレームレートを特定できない場合に電子透かしの検出ができなくなってしまう。この危険性を避けるため、本実施の形態では、上記各種パラメータの次元を時間としている。24fpsの動画像しか扱わないデジタルシネマ装置として本発明を実施する場合など、電子透かし埋込時のフレームレートが特定できる場合は、上記各種パラメータをフレーム数(フレーム番号)と解釈して処理する実装も可能である。
これまで説明してきた本実施の形態では、非圧縮YUV動画像を対象とし、その輝度信号(Y)に対し電子透かしを埋め込んだが、青色色差信号(U)や赤色色差信号(V)に対して電子透かしを埋め込んでもよいし、これらのうちの複数信号に対して埋め込んでもよい。また、信号形式はYUV形式でなくとも、RGB形式でもよい。RGB形式であれば、赤色信号(R)、緑色信号(G)、青色信号(B)のうちの一つの信号または複数信号に対して電子透かしを埋め込む。このように、信号形式や埋込対象とする信号成分については任意の実装が可能である。更に、これまで説明してきた本実施の形態では非圧縮動画像を対象としたが、MPEG−2(Moving Picture Experts Group)やITU−T勧告H.264に代表される何らかの動画像圧縮方式で圧縮された動画像を対象とすることもできる。この場合、電子透かし埋込装置の実装方法は二通りある。第一の方法は、先ず圧縮動画像を伸張し非圧縮動画像とした上で、これまで説明してきた本実施の形態の電子透かし埋込装置を適用し、その後、電子透かしの埋め込まれた非圧縮動画像を再圧縮する方法である。第二の方法は、画面全体に対する伸張/再圧縮は行わずに、上記第一の方法を適用した場合に近い電子透かし埋込済動画像出力結果が得られるように、圧縮された動画像データを編集するか必要に応じて部分的に伸張/再圧縮しながら電子透かしを埋め込む方法である。このように、任意の形式の動画像に対し電子透かしを埋め込むことができる。
これまで説明してきた本実施の形態では、128ビットの鍵を使用したが、その他のビット長の鍵を使用することもできる。例えば、鍵を192ビットや256ビットとしても、図3(a)の構成のビット列生成手段1でビット列を得ることができる。また、使用するハッシュ関数もSHA−1に限らず、例えば、SHA−256、SHA−512、MD5(Message Digest)など様々なハッシュ関数を使用できるし、これらのうちの複数を組み合わせて使用してもよい。また、鍵を第1のハッシュ値の生成だけに使うのではなく、第nのハッシュ値に鍵を連接したデジタルデータに対するハッシュ値を第n+1のハッシュとするような構成も可能である。更に、ビット列生成手段1を実装するのに使用するプログラミング言語が標準ライブラリなどにより擬似乱数機能を備えている場合はそれを利用することもできる。
図3(b)は、ライブラリ関数srand()とrand()を使用してビット列生成手段1を構成する一例を示している。ここで、srand()は、擬似乱数生成機能にシードと呼ばれるデータを与え、生成する擬似乱数列を一意に特定する関数である。また、rand()は与えられたシードに対応する擬似乱数列から順に乱数値を取り出す関数である。このようなライブラリ関数を使用して、鍵をシードとしてsrand()で設定しておき、各種パラメータを特定していく段階でrand()で乱数を取り出して使用する形態のプログラムにより、ビット列生成手段1を実装することができる。この実装形態では、srand()を実行した時点で乱数列が特定されるので、srand()がビット列生成手段1における鍵を使用してビット列を特定する機能を実現している。また、rand()は、特定されたビット列を使用する時点でその都度取り出す関数であり、ビット列生成手段1と、ビット列生成手段1が生成したビット列を使用する各手段との間のビット列値の伝送部分の役割を担う形となる。このように、ビット列生成手段1は、鍵が与えられれば生成されるビット列が一意に特定される任意の構成をとることができる。
これまで説明してきた本実施の形態では、繰り返し周期特定手段2は、ビット列値をそのまま使用するのではなく、63以下であれば64を足す処理を加えることで、繰り返し周期を64以上255以下の値となるよう調整した。繰り返し周期を64以上とする調整は、繰り返し周期が短くなり過ぎることで電子透かしの埋込が十分に行えなくなる危険性を避けるために行ったが、このような調整を行わない実装や、64とは別の下限値を設ける実装も考えられる。また、これまで説明してきた本実施の形態では、ビット列を1バイトしか使用しなかったため、繰り返し周期の上限が255だったが、ビット列を2バイト使用し、繰り返し周期の上限を65535とすることもできる。あるいは、使用するビット列は1バイトだが、ビット列値に必ず64を足して使用することで、繰り返し周期を64以上319以下となるように制御することもできる。このように、ビット列の使用方法、内部のアルゴリズムの詳細部分については、様々な実装形態が考えられ、繰り返し周期特定手段2は、ビット列から繰り返し周期を一意に特定する任意の構成をとることができる。
これまで説明してきた本実施の形態では、埋込領域特定手段3は、埋込領域の形状を、長方形と楕円のいずれかから選択し、さらにその埋込領域の中心の位置、横幅、縦幅を、画面全体に対する相対的な位置及び大きさで指定した。しかし、埋込領域の形状は、長方形(特別な場合として正方形も含む)や楕円(特別な場合として円を含む)に限らず他の形であってもよい。例えば、図6に示すように、ビット列生成手段1が生成したビット列を用いて、画面の上辺、下辺、左辺、右辺のそれぞれを3分割する点(合計8点)を決め、それらの点をN字型とZ字型の線で結び、画面を16の領域に分割してから、そのうちの一つの領域をビット列生成手段1が生成したビット列を用いて決定することによっても、電子透かし埋込領域を決定することができる。この場合は、領域の位置や大きさを別途決定する手続きによらなくても、埋込領域は一意に決定される。
また、ビット列の使い方にも様々な方法がある。これまで説明してきた本実施の形態では、埋込領域を長方形とするか楕円とするかを決定するために1バイトのビット列を参照するとしたが、例えば、1ビットだけ参照することによってもこの決定を行うことができる。また、埋込領域の、中心の位置、横幅、縦幅の決定を、分母と分子をそれぞれビット列生成手段1が生成したビット列を使用して決定してから分数を作ることによって行ったが、例えば、分母値を固定としておき、分子だけをビット列生成手段1が生成したビット列から決定することもできる。他にも、領域の大きさが大きくなり過ぎたり小さくなり過ぎたりするのを避けるために、領域の横幅や縦幅に上限や下限を設け、上限または下限を超えた場合に再設定する方式を採用したり、あるいは、上限及び下限に収まるようにビット列値から使用するパラメータを算出するアルゴリズムを組むなど、様々な実現形態が考えられる。
更に、時間的に変動する埋込領域を設定することも可能である。例えば、埋込領域特定手段3が、ビット列生成手段1が生成したビット列を用い、埋込領域の形状及び大きさ、埋込領域の埋込開始時点での位置及び埋込終了時点での位置を特定するものとし、実際の埋込領域は、埋込開始時点から埋込終了時点にかけて画面内を平行移動してゆくように設計することもできる。このように、埋込領域特定手段3は、ビット列から埋込領域を一意に特定する任意の構成をとることができる。
これまで説明してきた本実施の形態では、埋込時期特定手段4は、埋込開始時点と埋込継続期間を指定した。しかし、埋込開始時点と埋込終了時点を指定する方法や、埋込継続期間と埋込終了時点を指定する方法でも、埋込時期を特定できるので、そのような実装も可能である。また、埋込開始時点は、埋込処理の1サイクルの先頭に固定しておき、埋込継続期間または埋込終了時点をビット列生成手段1が生成したビット列から決定するような実装も可能である。このように、埋込時期特定手段4は、ビット列から埋込時期を一意に特定する任意の構成をとることができる。
これまで説明してきた本実施の形態では、電子透かし波形特定手段5は、電子透かし波形の形状を、矩形波と正弦波のいずれかから選択し、さらにその波形の周期と適用開始時の位相を指定した。しかし、電子透かし波形の形状は、矩形波や正弦波に限らず他の形であってもよい。例えば、矩形波に近いが、立ち上がり(極性反転)が少し穏やかな波形を使用することもできる。このような波形を使用することで、電子透かし信号の極性が反転(加算と減算の切り替え)の際に電子透かし埋込済信号において急な信号値の減少または増加を防ぐことができるため、画質の劣化が人に視認される危険性を軽減できる。電子透かし波形の周期や適用開始時の位相についても、その値の取りうる範囲や分布を自由に設計してよい。このように、電子透かし波形特定手段5は、ビット列から適用される電子透かし波形を一意に特定する任意の構成をとることができる。
これまで説明してきた本実施の形態では、電子透かし埋込手段6は、電子透かし波形を、1を埋め込む際はそのまま、0を埋め込む際は極性を反転して、各画素の輝度値に対して適用するものとした。しかし、1を埋め込む際に極性を反転し、0を埋め込む際にそのまま適用する方法もありうる。また、1を埋め込む際に電子透かし波形をそのまま適用するのか極性を反転して適用するのかを、ビット列生成手段1が生成したビット列により決定する方法をとることもできる。また、埋込対象となる信号は輝度値だけでなく、青色色差値や赤色色差値とすることもできる。更に、埋込対象を、各画素値とするのではなく、例えば、フレーム内の当該埋込領域の輝度値の平均値といった領域に特徴付けられた値とすることもできる。このようにすると、当該埋込領域内の全ての画素の輝度値に対して埋め込むのではなく、そこから、検出率向上や画質劣化抑制に適した画素のみを選択し、当該埋込領域の輝度値の平均値が、図5の埋込後の輝度値(t)のようになるように、電子透かしを埋め込めばよい。
電子透かし埋込領域と周辺領域の空間的境界部分や、電子透かし埋込期間と前後の期間との時間的境界部分の電子透かし埋込に際して、特別な配慮を実装することも可能である。例えば、空間的境界部分においては、本来適用する電子透かし波形WatermarkWave(t)を半減させWatermarkWave(t)/2を適用したり、あるいは埋込対象画素を選択的にしたりするなど、電子透かしの信号量を軽減する実装が考えられる。これは、当該空間的境界部分に電子透かしの埋込によって生じる輝度信号値の不連続を原因とする画質の劣化が人に視認される危険性を軽減する効果がある。これと同様の配慮は時間的境界部分についても適用できる。即ち、時間的境界部分においては、電子透かし信号を通常の半分にしたり、あるいは埋込対象画素を選択的にしたりするなど、電子透かしの信号量を軽減する実装により、当該時間的境界部分に電子透かしの埋込によって生じる輝度信号値の不連続を原因とする画質の劣化が人に視認される危険性を軽減する効果がある。
これまで説明してきた本実施の形態では、埋込処理の1サイクル内に複数の埋込範囲を設ける際に、新しく設ける埋込範囲が、それまでに設けた埋込範囲のうちのどれか一つとでも空間的かつ時間的に重複した場合は、新しく設ける埋込範囲を特定するパラメータ及びその埋込範囲に適用する電子透かし波形に関するパラメータを無効として破棄し、ビット列生成手段1が生成した次のビット列を使用してそれらパラメータを再設定し直すものとしたが、その他の実装も可能である。例えば、既に設定済の埋込範囲とこれから設定する埋込範囲に空間的かつ時間的な重複があった場合、重複部分は既に設定済の埋込範囲として扱い、これから設定する埋込範囲のうち重複部分を除いた部分を有効として扱う方法が考えられる。この方法を採用する場合であっても、設定する埋込範囲が既に設定済みの埋込範囲に空間的かつ時間的に完全に包含される場合は、無効としてパラメータを破棄し、再設定する必要がある。
他にも、ビット列生成手段1が生成したビット列を使用して埋込領域や埋込時期を特定するアルゴリズム自体を、既に設定済の埋込範囲と重複しないように組んでおく方法もある。例えば、複数の埋込範囲の重複を事前に避け、動画像の画面領域及び時間を有効に使用する一例として、以下のようなアルゴリズムが考えられる。埋込領域特定手段3は、ビット列生成手段1が生成したビット列を用いて、図6に示すように、画面の上辺、下辺、左辺、右辺のそれぞれを3分割する点(合計8点)を決め、それらの点をN字型とZ字型の線で結び、画面を16の領域に分割することで、16の埋込領域を特定する。埋込時期特定手段4は、ビット列生成手段1が生成したビット列を用いて、16の埋込領域のそれぞれに対し、埋込処理の1サイクル内で前半(図6の第1時期)と後半(図6の第2時期)を分ける分割点(合計16点)を決め、それぞれの埋込領域を時間的に二分割する。これにより、空間的かつ時間的に重複しない32の埋込範囲が特定される。これら32の埋込範囲に対して、個々に、電子透かし波形特定手段5が、ビット列生成手段1が生成したビット列を用いて、これまで説明してきた本実施の形態における方法で、電子透かし波形の形状、電子透かし波形の周期、電子透かし波形適用開始時の位相を特定する。このようにすることで、空間的にも時間的にも動画像の全範囲を電子透かしの埋込に使用することになる。最大で32ビットの情報ビットを埋め込める他、それより少ないビット数の情報ビットに、誤り検出ビットや誤り訂正ビットを加えて、埋め込むこともできる。
以上のように実施の形態1の電子透かし埋込装置によれば、動画像の画面中、少なくとも一部の領域または複数の分割された領域における個々の領域において、画素に特徴付けられた値または領域に特徴付けられた値に対し、所定の値を加算または減算し、時間方向の遷移に応じてこれら加算または減算を繰り返すことにより動画像に電子透かしを埋め込む電子透かし埋込手段を備え、電子透かし埋込手段は、任意の埋込領域に対して任意の周波数を有する電子透かし波形を適用して電子透かしを埋め込むようにしたので、電子透かしを埋め込んだ場合の高い攻撃耐性を得ることができる。
また、実施の形態1の電子透かし埋込装置によれば、与えられたビット列により埋込領域を特定する埋込領域特定手段と、与えられたビット列により電子透かしを埋め込む時期を特定する埋込時期特定手段と、与えられたビット列により加算及び減算の手順を特定する電子透かし波形特定手段を備え、電子透かし埋込手段は、埋込領域特定手段で特定された埋込領域に、埋込時期特定手段で特定された埋込時期で、かつ、電子透かし波形特定手段で特定された手順で電子透かしを埋め込むようにしたので、電子透かしが埋め込まれている領域や時期、加減算の手順等を簡単には推測できないため、高い攻撃耐性を実現することができる。
また、実施の形態1の電子透かし埋込装置によれば、埋込領域特定手段が、与えられたビット列により、埋込領域の形状、大きさ、画面上の位置のうち全部若しくは一部を特定することで埋込領域を特定するか、埋込時期特定手段が、与えられたビット列により、埋込を開始する時点、埋込を継続する期間、埋込を停止する時点のうち全部若しくは一部を特定することで電子透かしを埋め込む時期を特定するか、電子透かし波形特定手段が、与えられたビット列により、電子透かし波形の形状、周期、適用開始時の位相のうち全部若しくは一部を特定することで、加算及び減算の手順を特定するかにより、これら埋込領域特定手段、埋込時期特定手段および電子透かし波形特定手段のうち少なくともいずれか一つの手段は、埋込領域、埋込時期および加算及び減算の手順のうち少なくともいずれか一つを特定するようにしたので、埋込領域、埋込時期および加算及び減算の手順をより確実に特定することができる。
また、実施の形態1の電子透かし埋込装置によれば、電子透かしの空間的および時間的な埋込範囲のうち、少なくともいずれか一方が重複しないよう複数設け、電子透かし埋込手段は、複数の埋込範囲に対してそれぞれ電子透かしを埋め込むようにしたので、電子透かしの攻撃耐性をより向上させることができる。
また、実施の形態1の電子透かし埋込装置によれば、電子透かし埋込手段は、複数の埋込範囲に対し、異なる情報ビットを割り当て電子透かしとして埋め込むことで、複数の情報ビットを埋め込むようにしたので、電子透かしの攻撃耐性をより向上させることができる。
また、実施の形態1の電子透かし埋込装置によれば、与えられたビット列により、電子透かしを埋め込む繰り返しの周期を特定する繰り返し周期特定手段を備え、電子透かし埋込手段は、繰り返し周期特定手段により特定された繰り返し周期で電子透かしを埋め込むようにしたので、電子透かしの攻撃耐性をより向上させることができる。
また、実施の形態1の電子透かし埋込装置によれば、与えられた鍵に応じて一意なビット列を生成するビット列生成手段を備え、ビット列生成手段が生成したビット列を、与えられたビット列として用いるようにしたので、埋込アルゴリズムが分かったとしても電子透かしの安全性にほとんど影響がなく、結果として、より電子透かしの攻撃耐性を向上させることができる。
また、実施の形態1の電子透かし埋込方法によれば、動画像の画面中、少なくとも一部の領域または複数の分割された領域のそれぞれにおいて、画素に特徴付けられた値または領域に特徴付けられた値に対し、所定の値を加算または減算し、時間方向の遷移に応じてこれら加算または減算を繰り返すことにより動画像に電子透かしを埋め込む電子透かし埋込ステップを備え、電子透かし埋込ステップでは、任意の埋込領域に対して任意の周波数を有する電子透かし波形を適用して電子透かしを埋め込むようにしたので、電子透かしを埋め込んだ場合の高い攻撃耐性を得ることができる。
また、実施の形態1の電子透かし埋込方法によれば、与えられたビット列により埋込領域を特定する埋込領域特定ステップと、与えられたビット列により電子透かしを埋め込む時期を特定する埋込時期特定ステップと、与えられたビット列により加算及び減算の手順を特定する電子透かし波形特定ステップとを備え、電子透かし埋込ステップでは、埋込領域特定ステップで特定された埋込領域に、埋込時期特定ステップで特定された埋込時期で、かつ、電子透かし波形特定ステップで特定された手順で電子透かしを埋め込むようにしたので、電子透かしが埋め込まれている領域や時期、加減算の手順等を簡単には推測できないため、高い攻撃耐性を実現することができる。
実施の形態2.
この発明の実施の形態では、非圧縮YUV動画像に電子透かしを埋め込み、その電子透かし埋込に使用した鍵も電子透かしとして埋め込む電子透かし埋込装置について説明する。
図7は、この発明の実施の形態の電子透かし埋込装置の一例を示すブロック構成である。また、図8は、この発明の実施の形態の電子透かし埋込手順の一例を示すフローチャートである。図7のブロック構成を図8の処理ステップで示される動作に対応付けて説明する。
図7において、鍵を埋め込む電子透かし埋込装置101は、この発明の実施の形態1の電子透かし埋込装置をカスタマイズしたものであり、128ビットの鍵を使用して、128ビットのデータを、非圧縮YUV動画像の青色色差(U)と赤色色差(V)に埋め込む(図8の第1の鍵を使用して第2の鍵を電子透かしとして埋め込む電子透かし埋込ステップ(ST101))。このようなカスタマイズは、例えば、64の空間的かつ時間的に重複しない埋込領域を設け、青色色差成分の各埋込領域に1ビットずつ埋め込むデータを割り当て、かつ、64の空間的かつ時間的に重複しない埋込領域をまた別に設け、赤色色差成分の各埋込領域に1ビットずつ埋め込むデータを割り当てることで達成される。鍵を埋め込む電子透かし埋込装置に、使用する鍵として与える128ビットのデータを、本実施の形態では、第1の鍵と呼ぶ。また、鍵を埋め込む電子透かし埋込装置に、埋め込むデータとして与える128ビットのデータを、本実施の形態では、第2の鍵と呼ぶ。
図7において、電子透かしデータを埋め込む電子透かし埋込装置102は、実施の形態1の電子透かし埋込装置であり、128ビットの鍵を使用して、電子透かしデータを、非圧縮YUV動画像の輝度(Y)に埋め込む(図8の第2の鍵を使用して電子透かしデータを電子透かしとして埋め込む電子透かし埋込ステップ(ST102))。電子透かしデータを埋め込む電子透かし埋込装置に、使用する鍵として与える128ビットのデータは、第2の鍵である。また、電子透かしデータを埋め込む電子透かし埋込装置に、埋め込むデータとして与えるデータは、著作権データなどの電子透かしとして埋め込む目的となるデータであり、本実施の形態では、このデータを電子透かしデータと呼ぶ。
これまで説明してきた本実施の形態によれば、一つの動画像に対して電子透かしデータを埋め込んでいく途中で、第2の鍵を変更することができる。図9は、第2の鍵を変更しながら電子透かしを埋め込む様子の一例を示す概念図である。本実施の形態では、第1の鍵は変更せずに、一つの動画像に電子透かしを埋め込む間は同じ鍵(鍵E)を使用する。第2の鍵は、変更することができる。例えば、100分の動画像コンテンツに対し、最初の20分は鍵Aを、次の30分は鍵Bを、その次の20分は鍵Cを、そして最後の30分は鍵Dを使用するという具合に、随時変更が可能である。もちろん、変更せずに同じ鍵を使い続けてもよいし、もっと頻繁に変更してもよく、鍵の変更のタイミングは任意に設定することが可能である。例えば、図9の時点Tの付近では、第1の鍵が鍵Eであり、第2の鍵が鍵Aである。従って、時点Tの付近において、鍵を埋め込む電子透かし埋込装置は、鍵Eを鍵として使用し、鍵Aを電子透かしとして、青色色差成分及び赤色色差成分に埋め込む。埋め込むデータを鍵Aを鍵Bに切り替える際は、埋込処理の1サイクルが終了して次のサイクルに移るタイミングで切り替えればよい。また、電子透かしデータを埋め込む電子透かし埋込装置は、鍵Aを鍵として使用し、電子透かしデータを電子透かしとして、輝度成分に埋め込む。第2の鍵を鍵Aから鍵Bに切り替える際は、埋込処理の1サイクルが終了して次のサイクルに移るタイミングで切り替えればよい。この際、鍵が切り替わることにより、一般的には繰り返し周期が変更される。もちろん、繰り返し周期だけでなく、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が決定する各種パラメータも変更される。
以上のように、これまで説明してきた本実施の形態では、第1の鍵さえ変更せずに使用すれば、電子透かしデータを埋め込む際に使用する第2の鍵を任意のタイミングで変更することができる。これにより、電子透かしデータの埋込に使用する鍵を任意のタイミングでは変更できなかった実施の形態1の電子透かし埋込装置に比べ、実施の形態2の電子透かし埋込装置は更に高い安全性を達成できる。即ち、電子透かしデータは、鍵が固定される実施の形態1の電子透かし埋込装置においては同一の埋込処理の繰り返しによって埋め込まれるのに対し、鍵の変更が可能な実施の形態2の電子透かし埋込装置においては鍵が切り替わる度に異なる埋込処理となるため、攻撃者による電子透かしデータの抽出や消失の試みを、より困難なものとすることができる。
これまで説明してきた本実施の形態では、第1の鍵を128ビット、第2の鍵を128ビットとしたが、既に、この発明の実施の形態1の電子透かし埋込装置で、使用する鍵と埋め込むデータの双方を任意長にできることを説明した。本実施の形態の電子透かし埋込装置は、この発明の実施の形態1の電子透かし埋込装置により構成されるのだから、第1の鍵及び第2の鍵は、128ビット以外であってもよく、任意長とすることができる。
これまで説明してきた本実施の形態では、非圧縮YUV動画像を対象とし、第2の鍵を色差成分に、電子透かしデータを輝度成分に埋め込んだが、既に、この発明の実施の形態1の電子透かし埋込装置で、電子透かし埋込対象となる信号成分が任意のものでよいこと、対象となる動画像の形式が任意のものでよいことを説明した。本実施の形態の電子透かし埋込装置は、この発明の実施の形態1の電子透かし埋込装置により構成されるのだから、対象動画像の形式や電子透かし埋込対象となる信号成分については任意の実装が可能である。ただし、第2の鍵と電子透かしデータの双方を同一信号成分(例えば輝度成分)に埋め込む場合は、埋込領域及び埋込期間により特定される第2の鍵の埋込範囲と電子透かしデータの埋込範囲が重複しないように特別にアルゴリズム上の配慮をした上で電子透かし埋込装置を構築する必要がある。
以上のように、実施の形態2の電子透かし埋込装置によれば、実施の形態1の電子透かし埋込装置を前段と後段に設け、前段の電子透かし埋込装置の埋め込むデータと後段の電子透かし埋込装置で使用する鍵を第2の鍵とすると共に、前段の電子透かし埋込装置の出力画像を、後段の電子透かし埋込装置の入力画像とし、かつ、後段の電子透かし埋込装置で、第2の鍵の埋込範囲と空間的および時間的の少なくともいずれか一方が重複しないよう電子透かしを埋め込むようにしたので、一つの動画像に対して電子透かしデータを埋め込んでいく途中で、第2の鍵を変更することができるため、電子透かしの埋込として更に高い安全性を得ることができる。
実施の形態3.
この発明の実施の形態3では、この発明の実施の形態1の電子透かし埋込装置により電子透かしが埋め込まれた非圧縮YUV動画像から電子透かしを検出する電子透かし検出装置について説明する。
図10は、この発明の実施の形態3の電子透かし検出装置の一例を示すブロック構成である。また、図11は、この発明の実施の形態3の電子透かし検出手順の一例を示すフローチャートである。図10のブロック構成を図11の処理ステップで示される動作に対応付けて説明する。
図10において、ビット列生成手段1、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5は、実施の形態1の電子透かし埋込装置におけるビット列生成手段1、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5と、それぞれ同一の機能で構成される。また、電子透かし検出手段7は、これら繰り返し周期特定手段2〜電子透かし波形特定手段5が出力した各種パラメータを採用して電子透かしを検出する手段であり、動画像補正手段8は、電子透かし検出対象となる動画像に対して、電子透かしの埋込領域を特定するための幾何学的画像補正を行う手段であるが、これらの詳細については後述する。
また、図11において、ビット列生成ステップ(ST11)、繰り返し周期特定ステップ(ST12)、埋込領域特定ステップ(ST13)、埋込時期特定ステップ(ST14)、電子透かし波形特定ステップ(ST15)は、この発明の実施の形態1の電子透かし埋込手順におけるビット列生成ステップ(ST1)、繰り返し周期特定ステップ(ST2)、埋込領域特定ステップ(ST3)、埋込時期特定ステップ(ST4)、電子透かし波形特定ステップ(ST5)と、それぞれ同一の処理で構成される。つまり、この発明の実施の形態1の電子透かし埋込装置で電子透かしを埋め込む際に使用した鍵と同一の鍵を、本実施の形態の電子透かし検出装置に与えれば、本電子透かし検出装置の繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4及び電子透かし波形特定手段5は、埋込時と同一の、繰り返し周期、埋込領域、埋込時期、電子透かし波形をそれぞれ特定することとなるため、これにより、電子透かしの検出が可能となる。一方、埋込時と鍵が異なれば、ビット列生成手段1は埋込時と全く異なるビット列を生成するため、埋込時と異なる繰り返し周期、埋込領域、埋込時期、電子透かし波形を特定することになり、この場合は、正しく検出することはできない。
この発明の実施の形態1で説明したように、ビット列生成手段1は、鍵が与えられれば生成されるビット列が一意に特定される任意の構成をとることができる。また、この発明の実施の形態1で説明したように、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5は、繰り返し周期、埋込領域、埋込時期、電子透かし波形をそれぞれ一意に特定する任意の構成をとることができる。ただし、電子透かし検出装置を実装するにあたり、電子透かしを正しく検出するためには、検出装置が対象とする電子透かし埋込装置と同一のアルゴリズムを持つ、ビット列生成手段1、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5を構成することが前提である。これ以降、本実施の形態では、鍵として128ビットのデジタルデータを使用し、ビット列生成手段1が図3(a)の構成をとり、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が図4の方法で各種パラメータを決定する電子透かし検出装置を前提として説明する。
図10において、電子透かし検出手段7は、繰り返し周期特定手段2、埋込領域特定手段3、埋込時期特定手段4、電子透かし波形特定手段5が出力した各種パラメータを採用して、電子透かしを検出する(図11の電子透かし検出ステップ(ST17)を実行する)手段である。ところで、本電子透かし検出装置では、先ず、繰り返し周期特定手段2により繰り返し周期が特定される。ただし、繰り返し周期特定手段2は、埋込処理のサイクルの切れ目を特定することはできない。即ち、図4の方法でビット列から繰り返し周期が176であることを特定できるが、埋込処理のサイクルの切れ目(図5のt=0やt=176の時点)を特定できないため、このままでは電子透かし検出手段7は正しい検出処理を実施できない。この問題に対処する方法は後述するとして、ここでは、サイクルの切れ目を特定できたとして説明を進める。埋込処理のサイクルの切れ目を特定できれば、埋込領域特定手段3、埋込時期特定手段4により、埋込領域と埋込時期が特定されることになり、その結果、空間的かつ時間的に検出対象とすべき埋込範囲が特定される。更に、電子透かし波形特定手段5が、当該埋込範囲に適用した電子透かし信号の波形を特定できるため、検出処理の準備が整う。
本実施の形態の電子透かし検出装置では、動画像の画面全領域または一部領域内において、または複数の分割された領域において個々に、画素毎に画素に特徴付けられた値に対しまたは領域に特徴付けられた値に対し微小値を加算または減算し、時間方向の遷移に応じて加算と減算を繰り返すことにより動画像に電子透かしを埋め込む手段により電子透かしが埋め込まれていることを前提としている。このようにして埋め込まれた電子透かしの検出は、電子透かしが埋め込まれている信号と、電子透かしとして埋め込む信号との相関関係を計算することで検出することができる。つまり、埋込領域特定手段3により特定された領域に対し、埋込時期特定手段4により特定された期間において、電子透かし波形特定手段5により特定された電子透かし信号と電子透かしが埋め込まれている輝度信号との相関を、繰り返し周期特定手段2により特定された繰り返し周期で繰り返しながら検出処理に使用できる動画像の部分を活用して計算する。尚、相関を計算することで電子透かしを検出する方法は、例えば、特許文献1や特許文献2に開示されており、公知の方法であるため、ここでの説明は省略する。
この発明の実施の形態1の電子透かし埋込装置は、上述したように、電子透かしデータとして1を埋め込む場合に電子透かし信号をそのまま埋め込み、0を埋め込む場合に極性を反転させて(符号を逆にして)埋め込む。そのため、本実施の形態の電子透かし検出装置における合理的な電子透かしの検出方法の一例は、検出対象となる信号と電子透かし信号との相関値の計算結果において、設定された閾値を超える強い正の相関値が得られたならば1が埋め込まれていると判断し、設定された閾値を下回る強い負の相関値が得られたならば0が埋め込まれていると判断し、そのどちらでもない場合に検出失敗または電子透かしは埋め込まれていなかったと判断するというものである。以後、本実施の形態ではこのような判断方法による電子透かしの検出を3値検出法と呼ぶ。また、正の相関値が得られたならば1が埋め込まれていると判断し、そうでないならば0が埋め込まれていると判断するような実装も考えられる。以後、本実施の形態ではこのような判断方法による電子透かしの検出を2値検出法と呼ぶ。
複数ビットの電子透かしデータが埋め込まれている場合も同様の方法で検出することができる。例えば、16ビットの電子透かしを埋め込むこの発明の実施の形態1の電子透かし埋込装置により埋め込まれた電子透かしを検出する電子透かし検出装置を想定する。この場合、埋め込まれた全16ビットに対して、3値検出法を適用し、例えば、全16ビットにおいて、1か0かの判断ができた場合に検出成功とし、16ビット中1ビットでも検出失敗または電子透かしが埋め込まれていなかったと判断された場合に検出失敗とすることで、16ビットの電子透かしの検出処理を実施できる。2値検出法を適用する場合は、例えば、全16ビットの個々の検出結果をそのまま採用し、16ビットの電子透かしの検出結果として採用する方法が考えられる。ただし、この方法だと、電子透かしが全く埋め込まれていない動画像に対して検出処理を施した場合であっても何らかの16ビットのデータが検出に成功したかのように出力されてしまう問題がある。2値検出法を採用した際に起こるこの問題に対処するには、例えば、予め16ビットのデータに8ビットの誤り検出ビットを付加し、24ビットの電子透かしデータとして埋め込んでおき、24ビットの電子透かしデータの検出後、8ビットの誤り検出ビットを用いた誤り検出処理により誤りが検出されなければ検出成功とし、誤りが検出されれば検出失敗かまたは電子透かしは埋め込まれていなかったとする方法をとればよい。
これまで本実施の形態では、繰り返される電子透かし埋込処理のサイクルの切れ目を特定できるとして説明してきた。このサイクルの切れ目の特定方法を次に説明する。
埋込処理サイクルの切れ目を特定する方法は二つある。一つ目の方法は、サイクルの切れ目を特定するための信号を電子透かしとして埋め込んでおき、その信号を検出する方法である。動画像において電子透かしを用いて時間方向の同期をとる方法としては、例えば、特開2006−295605号公報に記載されているような方法を使用できる。
二つ目の方法は、サイクルの切れ目を事前に特定せず、サイクルの切れ目に当たる可能性のある任意の時点をサイクルの切れ目と仮定して検出を試みる方法である。例えば、動画像に対し電子透かし検出処理を行う場合、繰り返し周期特定手段2が繰り返し周期を176だと特定した時点で、検出対象となる動画像において29.97Hz時間で176の連続する期間(176/29.97秒の期間)のどこかにサイクルの切れ目があるはずであり、検出対象となる動画像が29.97fpsであれば、その期間内に存在する176枚のフレームのうちどれか1枚はサイクルの切れ目から±1/59.94秒以下の誤差の範囲内にあると考えることができる。ここで、176枚のフレームのそれぞれがサイクルの切れ目であると仮定して、176通りの検出処理を行う。おそらく、176通りの検出のうち、大半は、3値検出法に基づいて、あるいは2値検出法と誤り検出処理を併用する方法に基づいて、検出失敗または電子透かしは埋め込まれていなかったという結果になる。そして、残りのごく一部は、3値検出法に基づいて、あるいは2値検出法と誤り検出処理を併用する方法に基づいて、検出成功となる。そして、後から、これらの検出に成功したケースは、真のサイクルの切れ目と仮定したサイクルの切れ目が非常に近かったということが結果として分かる。1通りでも検出成功となれば最終結論を検出成功とし、176通りの全てにおいて検出失敗または電子透かしは埋め込まれていなかったという結果になった場合のみ、最終結論を検出失敗または電子透かしは埋め込まれていなかったとする。
これまで説明してきた本実施の形態では、非圧縮YUV動画像を対象とし、その輝度信号(Y)に埋め込まれた電子透かしを検出したが、この発明の実施の形態1の電子透かし埋込装置が、青色色差信号(U)や赤色色差信号(V)に対して電子透かしを埋め込んでいる場合や、これらのうちの複数信号に対して埋め込んでいる場合には、それに合わせて電子透かし検出装置を構成することで、電子透かしが検出可能となる。また、この発明の実施の形態1の電子透かし埋込装置が、RGB動画像の赤色信号(R)、緑色信号(G)、青色信号(B)のうちの一つの信号または複数信号に対して電子透かしを埋め込んでいる場合は、それに合わせて電子透かし検出装置を構成することで、電子透かしが検出可能となる。このように、本実施の形態の電子透かし検出装置は、任意の形式の動画像から電子透かしを検出するように構成可能だが、正しく電子透かしを検出するためには、電子透かし埋込装置の構成に合わせて、検出装置を構成することが必要となる。
これまで説明してきた本実施の形態の電子透かし検出装置により、この発明の実施の形態1の電子透かし埋込装置により電子透かしが埋め込まれた動画像そのもの、その動画像がデジタル的に複製されたもの、その動画像が、画面枠内の画像を全て保持したまま、横サイズ、縦サイズ、アスペクト比の変更を伴うなどして、符号化/復号化、圧縮/伸張、デジタル/アナログ変換を経て複製されたものから電子透かしを検出することができる。ただし、一度画面表示されその画面を撮影することにより作成された複製や、上下左右の端領域に切り捨てがある場合など画面枠内の画像が保存されていない複製からは電子透かしを検出できない。この理由は、埋込領域特定手段3が動画像の画面枠を基準とした相対的な位置及び大きさにより埋込領域を特定するが、検出対象とする動画像の画面枠は電子透かしを埋め込んだ際の画面枠をそのまま保存していないために、真に電子透かしが埋め込まれた領域を特定したことにならないからである。
この問題の解決法は多々考えられる。一つは、この発明の実施の形態1の電子透かし埋込装置により電子透かしを埋め込んだ動画像を保存しておき、本実施の形態の電子透かし検出装置で電子透かしの検出を試みる際に、保存しておいた動画像と比較することで検出対象となる動画像における原画像からの歪や切り捨てられた領域を特定して、その情報を元に真の埋込領域を特定する方法である。他には、埋込時の動画像を参照しなくて済む方法として、動画像に与えられているであろう幾何学的変換を検出して元の動画像を推定する方法があり、例えば、特開2006−295688号公報や特表2006−524458号公報に開示された方法が適用できる。このように、既存技術によって電子透かし埋込時の動画像を推定し補正する手段(図10における動画像補正手段8、また図11における動画像を補正するステップ(ST16))を経て補正された動画像から電子透かし検出を行うことで、埋込領域特定手段3が特定した埋込領域と真に電子透かしが埋め込まれた領域をほぼ一致させることができる。
以上のように、実施の形態3の電子透かし検出装置によれば、与えられたビット列により電子透かしの埋込領域を特定する埋込領域特定手段と、与えられたビット列により電子透かしを検出する時期を特定する埋込時期特定手段と、与えられたビット列により電子透かしの検出で使用する信号を特定する電子透かし波形特定手段と、電子透かし検出対象の動画像の画面中、少なくとも一部の領域または複数の分割された領域における個々の領域において、画素に特徴付けられた値または領域に特徴付けられた値と、埋込領域特定手段で特定された埋込領域から、埋込時期特定手段で特定された埋込時期で、かつ、電子透かし波形特定手段で特定された信号との相関関係を計算することにより画素に特徴付けられた値または領域に特徴付けられた値に埋め込まれた電子透かし信号を検出する電子透かし検出手段とを備えたので、実施の形態1の電子透かし埋込装置で埋め込まれた電子透かしを検出することができる。
また、実施の形態3の電子透かし検出装置によれば、埋込領域特定手段が、与えられたビット列により、埋込領域の形状、大きさ、画面上の位置のうち全部若しくは一部を特定することで埋込領域を特定するか、埋込時期特定手段が、与えられたビット列により、検出を開始する時点、検出を継続する期間、検出を停止する時点のうち全部若しくは一部を特定することで電子透かしを検出する時期を特定するか、電子透かし波形特定手段が、与えられたビット列により、電子透かし波形の形状、周期、適用開始時の位相のうち全部若しくは一部を特定することで、検出で使用する信号を特定するかにより、埋込領域特定手段、埋込時期特定手段および電子透かし波形特定手段のうち少なくともいずれか一つの手段は、埋込領域、電子透かしの検出時期および検出で使用する信号のうち少なくともいずれか一つを特定するようにしたので、埋込領域、埋込時期および検出で使用する信号を確実に特定することができる。
また、実施の形態3の電子透かし検出装置によれば、電子透かし検出手段は、電子透かしの空間的および時間的な埋込範囲のうち、少なくともいずれか一方が重複しないよう複数設けた埋込範囲から、それぞれ電子透かしを検出するようにしたので、複数の埋込範囲の電子透かしに対応した検出を行うことができる。
また、実施の形態3の電子透かし検出装置によれば、電子透かし検出手段は、複数の埋込範囲から、それら埋込範囲に割り当てられた情報ビットを電子透かしとして検出することで、複数の情報ビットを検出するようにしたので、電子透かしとして複数の情報ビットを取り出すことができる。
また、実施の形態3の電子透かし検出装置によれば、与えられたビット列により電子透かしを検出する繰り返しの周期を特定する繰り返し周期特定手段を備え、電子透かし検出手段は、繰り返し周期特定手段により特定された繰り返し周期で電子透かしを検出するようにしたので、電子透かしが所定の繰り返し周期で繰り返される場合でも確実に電子透かしを検出することができる。
また、実施の形態3の電子透かし検出装置によれば、与えられた鍵に応じて一意なビット列を生成するビット列生成手段を備え、ビット列生成手段が生成したビット列を与えられたビット列として用いるようにしたので、実施の形態1と同様の鍵を与えることで同様のビット列を生成することができる。
また、実施の形態3の電子透かし検出装置によれば、電子透かし検出対象となる動画像に対して、電子透かしの埋込領域を特定するための幾何学的画像補正を行う動画像補正手段を備え、電子透かし検出手段は、動画像補正手段が出力した動画像から電子透かしを検出するようにしたので、動画像に対して幾何学的な補正が必要な場合でも確実に電子透かしを検出することができる。
また、実施の形態3の電子透かし検出方法によれば、与えられたビット列により電子透かしの埋込領域を特定する埋込領域特定ステップと、与えられたビット列により電子透かしを検出する時期を特定する埋込時期特定ステップと、与えられたビット列により電子透かしの検出で使用する信号を特定する電子透かし波形特定ステップと、電子透かし検出対象の動画像の画面中、少なくとも一部の領域または複数の分割された領域における個々の領域において、画素に特徴付けられた値または領域に特徴付けられた値と、埋込領域特定ステップで特定された埋込領域から、埋込時期特定ステップで特定された埋込時期で、かつ、電子透かし波形特定ステップで特定された信号との相関関係を計算することにより画素に特徴付けられた値または領域に特徴付けられた値に埋め込まれた電子透かし信号を検出する電子透かし検出ステップとを備えたので、実施の形態1の電子透かし埋込方法で埋め込まれた電子透かしを検出することができる。
実施の形態4.
この発明の実施の形態4では、この発明の実施の形態2の電子透かし埋込装置により電子透かしが埋め込まれた非圧縮YUV動画像から電子透かしを検出する電子透かし検出装置について説明する。
図12は、この発明の実施の形態4の電子透かし検出装置の一例を示すブロック構成である。また、図13は、この発明の実施の形態4の電子透かし検出手順の一例を示すフローチャートである。図12のブロック構成を図13の処理ステップで示される動作に対応付けて説明する。
図12において、鍵を検出する電子透かし検出装置201は、この発明の実施の形態3の電子透かし検出装置をカスタマイズしたものであり、128ビットの鍵を使用して、128ビットの埋め込まれたデータを、非圧縮YUV動画像の青色色差(U)と赤色色差(V)から検出する(図13の第1の鍵を使用して電子透かしとして埋め込まれた第2の鍵を検出する電子透かし検出ステップ(ST201))。このカスタマイズは、この発明の実施の形態2の電子透かし埋込装置の鍵を埋め込む電子透かし埋込装置101で埋め込まれた電子透かしを検出するようになされるものとする。鍵を検出する電子透かし検出装置201に、使用する鍵として与える128ビットのデータを、本実施の形態では、第1の鍵と呼ぶ。また、鍵を検出する電子透かし検出装置201から検出した128ビットのデータを、本実施の形態では第2の鍵と呼ぶ。
図12において、電子透かしデータを検出する電子透かし検出装置202は、この発明の実施の形態3の電子透かし検出装置であり、128ビットの鍵を使用して、電子透かしデータを、非圧縮YUV動画像の輝度(Y)から検出する(図13の第2の鍵を使用して電子透かしとして埋め込まれた電子透かしデータを検出する電子透かし検出ステップ(ST202))。電子透かしデータを検出する電子透かし検出装置202に、使用する鍵として与える128ビットのデータは、第2の鍵である。また、電子透かしデータを検出する電子透かし検出装置202から検出されるデータは、著作権データなどの電子透かしとして埋め込む目的となるデータであり、本実施の形態では、このデータを電子透かしデータと呼ぶ。
これまで説明してきた本実施の形態の電子透かし検出装置に対して、電子透かしの検出対象となる非圧縮YUV動画像と、電子透かし検出に必要となる128ビットの第1の鍵を与えることで、まず第2の鍵を検出することができ、その後検出された第2の鍵を使用して、電子透かしデータを検出することができる。第2の鍵は頻繁に変更されるかも知れないので、必ず、電子透かしデータの検出対象となる動画像の部位から第2の鍵を検出しなければならない。
これまで説明してきた本実施の形態では、第1の鍵を128ビット、第2の鍵を128ビットとしたが、想定するこの発明の実施の形態2の電子透かし埋込装置に合わせた設計にさえしていれば、任意の構成とすることができる。
以上のように、実施の形態4の電子透かし検出装置によれば、実施の形態2の電子透かし埋込装置により出力された動画像から電子透かしを検出する電子透かし検出装置であって、実施の形態3の電子透かし検出装置を前段と後段に設け、前段の電子透かし検出装置に対して所定の鍵を与えて第2の鍵を検出し、検出した第2の鍵を後段の電子透かし検出装置に与えて電子透かしデータを検出するようにしたので、実施の形態2の電子透かし埋込装置から出力された動画像から電子透かしを検出することができる。