(57)【特許請求の範囲】
【請求項１】
コンテンツを取得するコンテンツ取得部と、
電子透かし情報を取得する透かし情報取得部と、
前記電子透かし情報に基づいて可変長の同期フラグを生成する生成部と、
前記コンテンツに、前記電子透かし情報及び前記同期フラグを埋め込む埋め込み部と、
を備える電子透かし埋め込み装置。
【請求項２】
前記生成部は、
スクランブルおよび排他的論理和のいずれか、もしくは両方を用いて前記同期フラグを生成する請求項１記載の電子透かし埋め込み装置。
【請求項３】
コンテンツを取得し、
電子透かし情報を取得し、
前記電子透かし情報に基づいて可変長の同期フラグを生成し、
前記コンテンツに、前記電子透かし情報及び前記同期フラグを埋め込む処理をコンピュータが実行する電子透かし埋め込み方法。
【請求項４】
コンテンツを取得する取得部と、
前記コンテンツに埋め込まれたビット列を抽出する抽出部と、
抽出したビット列内の第１のビット列に基づいて同期フラグを生成し、生成した同期フラグと、前記第１のビット列に対して所定の位置関係にある第２のビット列との相関値を、前記第１のビット列を１ビットずつずらしながら算出し、前記相関値が前記第１のビット列と前記第２のビット列との合計のビット幅内で最大となる位置の第１のビット列を同期フラグとして検出する検出部と、
を備える電子透かし検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子化されたコンテンツに対して電子透かし情報を用いる電子透かし埋め込み装置、電子透かし埋め込み方法及び電子透かし検出装置に関する。
【背景技術】
【０００２】
電子透かしは、画像データや音声データに対し、人間が認識できないように付加情報を埋め込む技術である。コンテンツの著作権情報やユーザの購入情報などを電子透かしとして埋め込むと、コンテンツが不正流出した場合に著作権情報の有無や流出元を特定できる。
【０００３】
例えば、電子透かし埋め込み装置は、固有の秘匿データフラグとともに電子透かし情報をコンテンツに埋め込み、この秘匿データフラグを検出することで電子透かし情報を抽出する。秘匿データフラグは同期フラグとも呼ばれる。また、この秘匿データフラグを乱数により生成し、生成された秘匿データフラグをコンテンツに埋め込む技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１０９９１８号公報
【特許文献２】特開２００１−２０２４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電子透かし方式では、例えば時間方向に情報を埋め込んでいくため、例えばＫｂｉｔの情報を埋め込むとすると、コンテンツの長さに応じて情報を繰り返し埋め込むことになる。これは、コンテンツを不正使用しようとするハッカーが長いコンテンツの一部のシーンを切り出して利用するケースが考えられるので、どのシーンを切り出されても情報を検出できるようにするためである。
【０００６】
よって、Ｋｂｉｔの情報をコンテンツに繰り返し埋め込む場合、検出時に情報の先頭位置を特定するため同期フラグを付加するのが通信技術では一般的である。従来の同期フラグは固定の値、例えば"１１・・・１"などの値を使用する。そのため、時間方向に情報を繰り返し埋めていく場合には、その固定の値が周期的に表れることになる。
【０００７】
ハッカーからすれば、映像の中で周期的に同じ信号が表れるので、その部分を同期フラグと特定し、同期フラグとして使用され得る信号の候補などから埋め込んでいる情報を解析し、他の情報に書き換える可能性が増加する。
【０００８】
そこで、開示の技術は、上記問題に鑑みてなされたものであり、同期フラグの解析を困難にし、電子透かしのセキュリティを向上させることができる電子透かし埋め込み装置、電子透かし埋め込み方法及び電子透かし検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
開示の一態様における電子透かし埋め込み装置は、コンテンツを取得するコンテンツ取得部と、電子透かし情報を取得する透かし情報取得部と、前記電子透かし情報に基づいて可変長の同期フラグを生成する生成部と、前記コンテンツに、前記電子透かし情報及び前記同期フラグを埋め込む埋め込み部と、を備える。
【００１０】
また、開示の他の態様における電子透かし検出装置は、コンテンツを取得する取得部と、前記コンテンツに埋め込まれたビット列を抽出する抽出部と、抽出したビット列内の第１のビット列に基づいて同期フラグを生成し、生成した同期フラグと、前記第１のビット列に対して所定の位置関係にある第２のビット列との相関値を、前記第１のビット列を１ビットずつずらしながら算出し、前記相関値が前記第１のビット列と前記第２のビット列との合計のビット幅内で最大となる位置の第１のビット列を同期フラグとして検出する検出部と、を備える。
【発明の効果】
【００１１】
開示の技術によれば、同期フラグの解析を困難にし、電子透かしのセキュリティを向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】実施例におけるシステム構成の一例を示す図
【図２】情報処理装置の構成の一例を示す図。
【図３】実施例１における電子透かし埋め込み機能の一例を示すブロック図。
【図４】生成した固定長の同期フラグを透かし情報の前に付加する例を示す図。
【図５】同期フラグの生成処理（その１）の一例を示す図。
【図６】同期フラグの生成処理（その２）の一例を示す図。
【図７】同期フラグの生成処理（その３）の一例を示す図。
【図８】電子透かし方式の一例を示す図。
【図９】画像の変化の様子を示す図。
【図１０】２種類の電子透かしパターンの一例を示す図。
【図１１】実施例１における電子透かし埋め込み処理の一例を示すフローチャート。
【図１２】実施例２における電子透かし埋め込み機能の一例を示すブロック図。
【図１３】生成した可変長の同期フラグを透かし情報の前に付加する例を示す図。
【図１４】同期フラグの生成処理（その４）の一例を示す図。
【図１５】実施例２における電子透かし埋め込み処理の一例を示すフローチャート。
【図１６】実施例３における電子透かし検出機能の一例を示すブロック図。
【図１７】同期フラグの検出方法を説明するための図。
【図１８】１ｂｉｔずつＫ＋Ｎｂｉｔずらした時の相関値を表す図。
【図１９】実施例３における電子透かし検出処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、各実施例について、添付図面を参照しながら説明する。
【００１４】
＜システム＞
まず、開示の電子透かし埋め込み装置又は電子透かし検出装置が適用されるシステム例について説明する。図１は、実施例におけるシステム構成の一例を示す図である。図１に示す例では、情報処理装置１、コンテンツ配信サーバ２、ＤＲＭサーバ３、ビデオカメラ４、情報処理装置５を有する。
【００１５】
コンテンツ配信サーバ２は、動画、音声などのコンテンツを保持し、コンテンツを要求した情報処理装置１にコンテンツを配信する。
【００１６】
ＤＲＭ（Digital Rights Management）サーバ３は、ユーザＩＤを保持し、コンテンツを要求した情報処理装置１にユーザＩＤを配信する。
【００１７】
情報処理装置１は、コンテンツにユーザＩＤを埋め込む電子透かし埋め込みプログラムを保持する。情報処理装置１は、コンテンツ配信サーバ２から取得したコンテンツに、ＤＲＭサーバ３から取得したユーザＩＤを電子透かし埋め込みプログラムを実行して埋め込む。電子透かし情報は、ユーザＩＤ以外にも著作権情報などの所定の情報でもよい。電子透かし情報は、透かし情報とも称す。
【００１８】
情報処理装置１は、自装置の記憶部に記憶されるコンテンツに、自装置の記憶部に記憶される透かし情報を埋め込んでもよい。情報処理装置１は、透かし情報が埋め込まれたコンテンツを表示部に表示する。
【００１９】
このとき、ビデオカメラ４は、表示部に表示されたコンテンツを撮影し、動画共有サイトに不正にアップロードしたとする。
【００２０】
情報処理装置５は、コンテンツから電子透かしを検出する検出プログラムを保持する。情報処理装置５は、例えば、監視業者により操作される。情報処理装置５は、動画共有サイトにアップロードされたコンテンツから透かし情報を検出し、ユーザＩＤを検出する。監視業者は、コンテンツの流出元のユーザを特定し、このユーザに対して警告を行う。
【００２１】
図１に示すシステムは、あくまでも一例であり、上記システムに限定されるものではなく、透かし情報を埋め込み、透かし情報を検出するシステムに対して開示の電子透かし埋め込み装置、電子透かし検出装置を適用することができる。
【００２２】
［実施例１］
まず、電子透かし埋め込み装置として機能する情報処理装置１について説明する。
【００２３】
＜構成＞
図２は、情報処理装置１の構成の一例を示す図である。図２に示す情報処理装置１は、電子透かし情報を埋め込む電子透かし埋め込み装置として機能する。図２に示す情報処理装置１は、制御部１０、主記憶部２０、補助記憶部３０、通信部４０、記録媒体Ｉ／Ｆ部５０を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【００２４】
制御部１０は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵ（Central Processing Unit）である。また、制御部１０は、主記憶部２０や補助記憶部３０に記憶されたプログラムを実行する演算装置であり、通信部４０や各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。
【００２５】
また、制御部１０は、例えば補助記憶部３０に記憶される電子透かし情報を埋め込むためのプログラムを実行することで、電子透かし埋め込み機能の役割を果たす。
【００２６】
主記憶部２０は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部１０が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２７】
補助記憶部３０は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部３０には、通信部４０から取得された映像や音楽などの電子化されたコンテンツや透かし情報を記憶する。
【００２８】
また、補助記憶部３０は、記録媒体６０などから取得されたコンテンツや電子透かし情報を記憶しておいてもよい。
【００２９】
通信部４０は、有線又は無線で通信を行う。通信部４０は、例えば、サーバなどから映像や音楽などのコンテンツや電子透かし情報を取得し、例えば補助記憶部３０に記憶させる。
【００３０】
記録媒体Ｉ／Ｆ部（インターフェース）５０は、ＵＳＢ（Universal Serial Bus）などのデータ伝送路を介して接続された記録媒体６０（例えば、フラッシュメモリなど）と情報処理装置１とのインターフェースである。
【００３１】
また、記録媒体６０に、所定のプログラムを格納し、この記録媒体６０に格納されたプログラムは記録媒体Ｉ／Ｆ部５０を介して情報処理装置１にインストールされる。インストールされた所定のプログラムは、情報処理装置１により実行可能となる。
【００３２】
なお、記録媒体６０を例えばＳＤカードとした場合は、記録媒体Ｉ／Ｆ部５０は、ＳＤカードスロットである。
【００３３】
＜電子透かし情報の埋め込み機能＞
次に、電子透かし情報を埋め込む機能を有する制御部１０について詳しく説明する。図３は、実施例１における電子透かし埋め込み機能の一例を示すブロック図である。図３に示す制御部１０は、コンテンツ取得部１０１、透かし情報取得部１０２、固定長同期フラグ生成部１０３、埋め込み部１０４を備える。
【００３４】
コンテンツ取得部１０１は、コンテンツ配信サーバ２から受信されたコンテンツを取得する。コンテンツ取得部１０１は、例えば補助記憶部３０に記憶されているコンテンツを取得してもよい。取得されたコンテンツは、埋め込み部１０４に出力される。
【００３５】
例えば、コンテンツ取得部１０１は、取得したコンテンツとしての動画をフレーム単位に分割する。また、コンテンツ取得部１０１は、必要に応じてフレームの画像形式を変換する。例えば、コンテンツ取得部１０１は、入力された各フレームの形式がＹＵＶ形式である場合、ＲＧＢ形式への変換などを行う。
【００３６】
透かし情報取得部１０２は、ＤＲＭサーバ３から受信されたユーザＩＤを透かし情報として取得する。ここでは、透かし情報としてユーザＩＤを用いるが、埋め込む対象の情報は著作権に関する情報などいずれの情報でもよい。
【００３７】
透かし情報取得部１０２は、例えば、取得した透かし情報を"０"と"１"のビット列に変換する。例えば、透かし情報取得部１０２は、透かし情報が"ＦＵＪＩＴＳＵ"などのテキスト情報である場合、ＡＳＣIIコードに変換することで、"０ｘ４６（Ｆ）０ｘ５５（Ｕ）０ｘ４Ａ（Ｊ）０ｘ４９（Ｉ）０ｘ５４（Ｔ）０ｘ５３（Ｓ）０ｘ５５（Ｕ）"と１６進数で表現することができる。
【００３８】
透かし情報取得部１０２は、１６進数を２進数に変換すると、"０１０００１１０（Ｆ）０１０１０１０１（Ｕ）０１００１０１０（Ｊ）０１００１００１（Ｉ）０１０１０１００（Ｔ）０１０１００１１（Ｓ）０１０１０１０１（Ｕ）"というビット列を求めることができる。 透かし情報取得部１０２は、求めたビット列を透かし情報として固定長同期フラグ生成部１０３に出力する。
【００３９】
固定長同期フラグ生成部１０３は、取得した透かし情報に基づいて同期フラグを生成する。これにより、透かし情報によって異なる同期フラグが生成されるので、同期フラグの生成方法を知らないと同期フラグの検出が困難になる。実施例１で用いる同期フラグは、例えば固定長とする。
【００４０】
図４は、生成した固定長の同期フラグを透かし情報の前に付加する例を示す図である。図４に示す例では、Ｋビットの透かし情報に対し、Ｎビットの同期フラグが生成される。例えば、固定長同期フラグ生成部１０３は、透かし情報ａに基づき同期フラグａを生成し、透かし情報ｂに基づき同期フラグｂを生成する。固定長同期フラグ生成部１０３は、図４に示す例では、生成した同期フラグを透かし情報の前に付加する。また、固定長同期フラグ生成部１０３は、同期フラグを透かし情報の後ろに付加してもよい。
【００４１】
次に、図５〜７を用いて同期フラグの生成処理について説明する。図５は、同期フラグの生成処理（その１）の一例を示す図である。図５に示す例では、透かし情報を８ｂｉｔ、同期フラグを４ｂｉｔとして説明する。
【００４２】
まず、固定長同期フラグ生成部１０３は、読み込まれた透かし情報をスクランブルする。スクランブルは、乱数生成器などを利用してビットの入れ替えを行う処理である。乱数生成器のシードは常に固定の値を使用してもよいし、あらかじめ埋め込み側と検出側で決めた値を使用してもよい。
【００４３】
固定長同期フラグ生成部１０３は、スクランブルした透かし情報から４ｂｉｔを抜き出す。図５に示す例では先頭の４ｂｉｔを抜き出す例を示すが、あらかじめ埋め込み側と検出側で決めた場所であれば別の場所から抜き出してもよい。
【００４４】
次に、固定長同期フラグ生成部１０３は、抜き出した４ｂｉｔとあらかじめ用意した乱数列の２つのビット列の排他的論理和を求めることで、ビット反転を行う。ビット反転された４ｂｉｔが同期フラグとなる。これにより、暗号化などでよく用いられるスクランブルと排他論理和とを用いて、解読が困難な同期フラグを生成することができる。
【００４５】
ここで使用する乱数列は、外部から与えてもよいし、乱数生成器などを利用して生成してもよい。ただし、検出側でも同じ乱数列が必要なので、スクランブルで使用した乱数生成器のシード同様、検出側と同じ値を使用する。このシードと乱数列を検出側が知らないと、同期フラグの位置を検出できないため、例えば本来検出する権限のないユーザが同期フラグの位置を特定することは極めて困難になる。
【００４６】
図６は、同期フラグの生成処理（その２）の一例を示す図である。図６に示す例では、まず、固定長同期フラグ生成部１０３は、Ｋｂｉｔの透かし情報に対してブロック分割を行う。図６に示す例では、透かし情報は４つに分割される。
【００４７】
次に、固定長同期フラグ生成部１０３は、ブロック分割されたＫ／４ｂｉｔの各ブロックの透かし情報に対して圧縮処理を行う。圧縮処理は、Ｋ／４ｂｉｔがＮ／４ｂｉｔになるように処理される。固定長同期フラグ生成部１０３は、例えばＫ／４ｂｉｔから所定位置のＮ／４ｂｉｔを抜き出す。所定位置は、例えば前又は後ろから順にＮ／４ｂｉｔである。
【００４８】
次に、固定長同期フラグ生成部１０３は、圧縮されたＮ／４ｂｉｔの４つのブロックを統合し、統合したＮｂｉｔの情報をスクランブルする。固定長同期フラグ生成部１０３は、スクランブルされたＮｂｉｔの情報を同期フラグとする。
【００４９】
図７は、同期フラグの生成処理（その３）の一例を示す図である。図７に示す例では、まず、固定長同期フラグ生成部１０３は、Ｋｂｉｔの透かし情報に対して、擬似乱数を用いてスクランブルする。
【００５０】
次に、固定長同期フラグ生成部１０３は、スクランブルされたＫｂｉｔの情報と、元のＫｂｉｔの透かし情報との排他論理演算（ＸＯＲ）を行う。
【００５１】
次に、固定長同期フラグ生成部１０３は、排他論理和演算したＫｂｉｔの情報から所定位置のＮビットを抜き出す。固定長同期フラグ生成部１０３は、抜き出されたＮｂｉｔの情報を同期フラグとする。
【００５２】
以上、図５〜７に示す方法で、固定長同期フラグ生成部１０３は、Ｋｂｉｔの透かし情報からＮｂｉｔの同期フラグを生成することが可能である。しかし、同期フラグ生成処理は、図５〜７に示す方法だけに限定されることはなく、可逆の符号化方法であれば同じことが実現可能である。固定長同期フラグ生成部１０３は、例えば、生成した同期フラグを元の透かし情報の前に付加する。
【００５３】
固定長同期フラグ生成部１０３は、同期フラグが付加された透かし情報を埋め込み部１０４に出力する。
【００５４】
埋め込み部１０４は、固定長同期フラグ生成部１０３から取得した同期フラグが付加された透かし情報を、画像や音声等の埋め込み対象のコンテンツに電子透かしとして埋め込む。同期フラグが付加された透かし情報を第１透かし情報とも呼ぶ。コンテンツは、コンテンツ取得部１０１から取得される。埋め込み部１０４は、第１透かし情報を埋め込むために、コンテンツに応じた様々な透かし情報の埋め込み方法の何れかを利用することができる。
【００５５】
例えば、コンテンツが音声データである場合、埋め込み部１０４は、人の非可聴域に第１透かし情報を埋め込む。その際、埋め込み部１０４は、第１透かし情報に含まれるビット毎に、そのビットの値に応じた信号を生成する。そして、埋め込み部１０４は、第１透かし情報の先頭のビットから順に、各ビットの値に応じた信号を時系列に沿って音声データの非可聴域に重畳する。
【００５６】
また、コンテンツが動画像データである場合、埋め込み部１０４は、動画像データに含まれる時系列順に並んだ複数の画像に対して、第１透かし情報の先頭のビットから順に、一つずつビットを埋め込む。例えば、埋め込み部１０４は、各画像のそれぞれの所定位置の画素の輝度値を、第１透かし情報の先頭のビットから順に、そのビットの値に応じた輝度値にする。なお、所定位置は、例えば、画像の４隅のいずれかの画素とすることができる。
【００５７】
また、好適な電子透かしの方法を以下に説明する。セキュリティシステムの電子透かしの要件として、データ圧縮や切り取り、フィルタ処理、カメラ撮影等を経て、埋め込まれた電子透かしが消失する可能性があり、これらの消失要因に対して耐性を持つことが求められる。
【００５８】
これらの要件を満たす電子透かし方式として、時間方向で面積が変化する２種類のパターンを用意し、埋め込みたい情報に応じて２種類のパターンを切り替えながら時間方向に重畳していく方式がある。
【００５９】
図８は、電子透かし方式の一例を示す図である。図８に示す例では、動画の各フレームを時間方向に並べており、各フレームに電子透かしパターンを重畳している。電子透かしパターンは、例えば元画像の各画素の輝度を人の視覚には知覚できない範囲で低くするパターンとする。
【００６０】
図８に示す電子透かしパターンは、時間方向で面積が変化しており、例えばｔ＝０では面積が１００％で、その後は徐々に面積が小さくなり、ｔ＝４で面積が０％になる。さらに時間が進むと徐々に面積が増加し、ｔ＝８でｔ＝０と同じ面積１００％になる。電子透かしパターンの面積を変化に応じて画像全体の明るさが変化する。
【００６１】
図９は、画像の変化の様子を示す図である。図９（Ａ）は、電子透かしパターンの変化を示す。図９（Ｂ）は、図９（Ａ）に対応した面積の変化を表したグラフを示す。図９（Ｂ）に示すグラフについて、縦軸は透かしパターンの明るさ、横軸が時刻を表す。図９（Ｃ）は、図９（Ａ）に対応した明るさの変化を表したグラフを示す。図９（Ｃ）に示すグラフについて、縦軸は画像の明るさ、横軸が時刻を表す。
【００６２】
図９（Ｂ）と図９（Ｃ）に示すように、電子透かしパターンの面積が１００％の時は電子透かしパターンの明るさは最も低くなり、面積が０％の時は最も明るくなる。この振幅する電子透かしパターンの位相を変えて２種類の電子透かしパターンを生成した例を図１０に示す。
【００６３】
図１０は、２種類の電子透かしパターンの一例を示す図である。図１０に示す例では、１つ目の電子透かしパターン（ａ）は面積が０％→１００％→０％→１００％→０％と変化して「０」を表す。また、もう一方の電子透かしパターン（ｂ）は１００％→０％→１００％→０％→１００％と変化して「１」を表す。
【００６４】
つまり、２つの電子透かしパターンは、位相が１８０°異なる。例えば"００１１"という情報を埋め込みたいときは、埋め込み部１０４は、図１０に示す「０」を示す電子透かしパターン（ａ）を時間方向に２個連続で重畳し、続いて図１０に示す「１」を示す電子透かしパターン（ｂ）を重畳する。
【００６５】
検出は、情報を埋め込んだ映像に対して各フレームの画素値の平均値を算出し、時間方向の平均値の変化の波形に対してフーリエ変換を行い、埋め込んだ電子透かしパターンと同じ周期の信号のフーリエ係数から位相を求める。
【００６６】
情報を埋め込んだ映像からは、位相が１８０°異なる２種類の位相の信号が検出されるため、各位相の信号に "０"と"１"の情報を割り当てることで埋め込んだ情報を検出する。この方式は埋め込む情報を時間方向に分散することでデータ圧縮や切り取り、フィルタ処理、カメラ撮影等に対して強い耐性を持つ。
【００６７】
埋め込み部１０４は、固定長同期フラグ生成部１０３で生成された同期フラグを付加した透かし情報を時間方向に動画に埋め込んでいく。埋め込み部１０４は、図１０に示す電子透かしパターンを予め用意しておき、第１透かし情報のビットの並びと対応するように図１０に示す２種類の電子透かしパターンを切り替えながら、動画の各フレームに重畳する。
【００６８】
埋め込み部１０４は、例えば、各フレームへの２つのパターンの具体的な合成方法としては、式（１）に示すように元のフレームに透かしパターンを加算する方法が挙げられる。
【００６９】
【数１】
0005982806.tif 000002
Ｘ：入力された元のフレーム
Ｗ：電子透かしパターン
Ｘ'：元のフレームに電子透かしパターンを加算したフレーム
ｂ：透かしの強度
ｂの値が大きいほどWの影響が大きくなるため、電子透かしの耐性は強くなるが、電子透かしによる画質劣化も大きくなる。逆にｂの値が小さいほどWの影響が小さくなるため、電子透かしの耐性は弱くなるが、電子透かしによる画質劣化も小さくなる。
また、他の合成方法として式（２）に示すアルファブレンドによる合成も適用可能である。
【００７０】
【数２】
0005982806.tif 000003
Ｘ：入力された元のフレーム
Ｗ：電子透かしパターン
Ｘ'：元のフレームに２つのパターンを合成したフレーム
α：合成する比率であり０〜１の値
αの値が大きいほどＷの割合が大きくなるため、電子透かしの耐性は強くなるが、電子透かしによる画質劣化も大きくなる。逆にαの値が小さいほどＷの影響が小さくなるため、電子透かしの耐性は弱くなるが、電子透かしによる画質劣化も小さくなる。
【００７１】
埋め込み部１０４は、このように各種の透かしを埋め込む方法を用いることができる。よって、実施例では、コンテンツに透かしを埋め込む方法については特に限定せず、種々の方法を適用することが可能である。
【００７２】
以上の構成を有することで、透かし情報に基づいて決定された同期フラグを付加した透かし情報を、コンテンツに埋め込むことができる。
【００７３】
＜動作＞
次に、実施例１における電子透かし埋め込み装置の動作について説明する。図１１は、実施例１における電子透かし埋め込み処理の一例を示すフローチャートである。図１１に示すステップＳ１０１で、透かし情報取得部１０２は、例えば補助記憶部３０から透かし情報を読み込んで取得する。透かし情報は、例えばＫｂｉｔとする。
【００７４】
ステップＳ１０２で、固定長同期フラグ生成部１０３は、透かし情報取得部１０２から取得した透かし情報（Ｋ ｂｉｔ）に基づき、同期フラグ（Ｎ ｂｉｔ）を生成する。同期フラグの生成方法は、例えば図５〜７の何れかを予め設定しておけばよい。
【００７５】
ステップＳ１０３で、固定長同期フラグ生成部１０３は、生成した同期フラグを、元の透かし情報の前又は後に付加する。
【００７６】
ステップＳ１０４で、コンテンツ取得部１０１は、例えば補助記憶部３０からコンテンツを読み込んで取得する。コンテンツは、例えば動画などである。なお、ステップＳ１０１〜Ｓ１０３と、ステップＳ１０４とは順不同である。
【００７７】
ステップＳ１０５で、埋め込み部１０４は、コンテンツの所定単位毎に同期フラグが付加された透かし情報を重畳する。例えばコンテンツが動画である場合、埋め込み部１０４は、動画の各フレームに同期フラグが付加された透かし情報に基づく電子透かしパターン（図１０参照）を埋め込む。
【００７８】
ステップＳ１０６で、埋め込み部１０４は、コンテンツの最後であるか否かを判定する。コンテンツの最後である場合（ステップＳ１０６−ＹＥＳ）この埋め込み処理を終了し、コンテンツの最後ではない場合（ステップＳ１０６−ＮＯ）ステップＳ１０５に戻る。
【００７９】
以上、実施例１によれば、電子透かし情報に基づいて、固定長の同期フラグを生成し、同期フラグの検出を困難にしてセキュリティを向上させることができる。また、同期フラグは固定値ではなく、透かし情報により変化するため、同期フラグを生成する方法を知らない人には同期フラグの検出はきわめて困難になり、結果として透かし情報の改ざんなどのリスクを低減することができる。
【００８０】
［実施例２］
次に、実施例２における情報処理装置について説明する。実施例２における情報処理装置は、電子透かし埋め込み装置として機能する。実施例２では、電子透かし情報に基づいて、可変長の同期フラグを生成する。
【００８１】
＜構成＞
実施例２における情報処理装置の構成は、実施例１における情報処理装置１と同様であるため、その説明を省略する。なお、実施例２における情報処理装置の構成を説明する際、図２に示す符号と同じ符号を用いて説明する。
【００８２】
＜電子透かし情報の埋め込み機能＞
次に、電子透かし情報を埋め込む機能を有する制御部１０について詳しく説明する。図１２は、実施例に２における電子透かし埋め込み機能の一例を示すブロック図である。図１２に示す制御部１０は、コンテンツ取得部２０１、透かし情報取得部２０２、可変長同期フラグ生成部２０３、埋め込み部２０４を備える。ここで、コンテンツ取得部２０１、透かし情報取得部２０２、埋め込み部２０４は、実施例１のコンテンツ取得部１０１、透かし情報取得部１０２、埋め込み部１０４と同様の処理を行うので、その説明を省略する。
【００８３】
可変長同期フラグ生成部２０３は、取得した透かし情報に基づいて可変長の同期フラグを生成し、生成した同期フラグを透かし情報の前又は後ろに付加する。
【００８４】
図１３は、生成した可変長の同期フラグを透かし情報の前に付加する例を示す図である。図１３に示す例では、Ｋビットの透かし情報に対し、Ｔ（Ｔは可変）ビットの同期フラグが生成される。例えば、可変長同期フラグ生成部２０３は、透かし情報ａに基づきＡｂｉｔの同期フラグａを生成し、透かし情報ｂに基づきＢｂｉｔの同期フラグｂを生成する。ＡとＢは、任意の値である。
【００８５】
可変長同期フラグ生成部２０３は、図１３に示す例では、生成した同期フラグを透かし情報の前に付加する。また、可変長同期フラグ生成部２０３は、同期フラグを透かし情報の後ろに付加してもよい。
【００８６】
次に、図１４を用いて可変長の同期フラグの生成処理について説明する。図１４は、同期フラグの生成処理（その４）の一例を示す図である。図１４に示す例では、透かし情報を８ｂｉｔとして説明する。
【００８７】
まず、可変長同期フラグ生成部２０３は、読み込まれた透かし情報をスクランブルする。スクランブルは、乱数生成器などを利用してビットの入れ替えを行う処理である。乱数生成器のシードは常に固定の値を使用してもよいし、あらかじめ埋め込み側と検出側で決めた値を使用してもよい。
【００８８】
可変長同期フラグ生成部２０３は、スクランブルした透かし情報に対し、可変長符号化を行う。可変長符号化とは、ハフマン符号化やランレングス符号化のように元の情報に対して別の符号で置き換える処理を行い、符号長の長さを変える変換であり、情報の圧縮などで使用される技術である。
【００８９】
実施例２では、ハフマン符号のように変換テーブルを用意し、その変換テーブルに従って元の情報を別の符号に置き換える処理を行う。ハフマン符号では元の情報からハフマン木を生成して、情報の出現頻度から変換テーブルを動的に生成することで圧縮効率を高めている。
【００９０】
しかし、埋め込むたびに動的に変換テーブルを生成した場合、埋め込む透かし情報毎に異なる変換テーブルが生成されることになり、その場合、生成した変換テーブルを検出側に渡して情報を検出するのは実用的ではない。
【００９１】
そこで、実施例２では固定の変換テーブルで可変長符号化した例を示す。例えば、スクランブルされた透かし情報が"１００１０１１０"である時、このビット列を所定長さで区切る。ここでは４ｂｉｔで区切ることとする。
【００９２】
可変長同期フラグ生成部２０３は、前半部分"１００１"と後半部分"０１１０"のそれぞれのビット列に対して、図１４に示す変換テーブルで別の符号に置き換える。前半部分は"１０"、後半部分は"０"になり、一つのビット列に戻すと"１００"の３ｂｉｔの情報になる。透かし情報が異なれば、符号化した結果の長さは変わる。例えば、"０１０１１０１０"の場合は、変換結果が"１１１０１１０"の７ｂｉｔになる。
【００９３】
次に、可変長同期フラグ生成部２０３は、可変長に符号化された透かし情報と予め用意した乱数列の２つのビット列の排他的論理和を求めることで、ビット反転を行う。ビット反転されたビット列が同期フラグとなる。これにより、暗号化などでよく用いられるスクランブル及び／又は排他論理和とを用いて、解読が困難な可変長の同期フラグを生成することができる。
【００９４】
ここで使用する乱数列は、外部から与えてもよいし、乱数生成器などを利用して生成してもよい。ただし、検出側でも同じ乱数列が必要なので、スクランブルで使用した乱数生成器のシード同様、検出側と同じ値を使用する。このシードと乱数列を検出側が知らないと、同期フラグの位置を検出できないため、例えば本来検出する権限のないユーザが同期フラグの位置を特定することは極めて困難になる。さらに、同期フラグは可変長であるため、どの位置にあるかを特定することはさらに困難になる。
【００９５】
上述した方法でＫｂｉｔの透かし情報から長さが可変の同期フラグを生成することが可能である。しかし、この方法だけに限定することはなく、可逆の符号化方法であれば同じことが実現可能である。可変長同期フラグ生成部２０３は、生成した可変長の同期フラグを図１３に示す例では、元の透かし情報の前に付加する。
【００９６】
＜動作＞
次に、実施例２における電子透かし埋め込み装置の動作について説明する。図１５は、実施例２における電子透かし埋め込み処理の一例を示すフローチャートである。図１５に示すステップＳ２０１、Ｓ２０３〜Ｓ２０６の処理は、図１１に示すステップＳ１０１、Ｓ１０３〜Ｓ１０６の処理と同様であるため、その説明を省略する。
【００９７】
ステップＳ２０２で、可変長同期フラグ生成部２０３は、透かし情報取得部２０２から取得した透かし情報（Ｋｂｉｔ）に基づき、可変長の同期フラグを生成する。可変長の同期フラグの生成方法は、例えば図１４に示す方法などがある。
【００９８】
以上、実施例２によれば、電子透かし情報に基づいて、可変長の同期フラグを生成し、同期フラグの検出を困難にしてセキュリティを向上させることができる。また、同期フラグは固定値ではなく、透かし情報により値と長さが変化するため、同期フラグを生成する方法を知らない人には同期フラグの検出はきわめて困難になり、結果として透かし情報の改ざんなどのリスクを低減することができる。
【００９９】
［実施例３］
次に、実施例３における情報処理装置５について説明する。実施例３における情報処理装置５は、電子透かし検出装置として機能する。実施例３では、実施例１や実施例２で埋め込まれた電子透かし情報を検出する。
【０１００】
＜構成＞
実施例３における情報処理装置５の構成は、実施例１における情報処理装置１と同様であるため、その説明を省略する。なお、実施例３における情報処理装置の構成を説明する際、図２に示す符号と同じ符号を用いて説明する。
【０１０１】
＜電子透かし情報の検出機能＞
次に、電子透かし情報を検出する機能を有する制御部１０について詳しく説明する。図１６は、実施例３における電子透かし検出機能の一例を示すブロック図である。図１６に示す制御部１０は、コンテンツ取得部３０１、情報抽出部３０２、同期フラグ検出部３０３、透かし情報検出部３０４を有する。
【０１０２】
コンテンツ取得手段３０１は、動画共有サイトなどから、透かし情報が埋め込まれたコンテンツを取得する。コンテンツ取得部３０１は、取得したコンテンツを情報抽出部３０２に出力する。
【０１０３】
情報抽出部３０２は、コンテンツに埋め込まれたビット列を検出する。例えば、情報抽出部３０２は、コンテンツに埋め込まれた複数の透かし情報の各ビットを、実施例１や２における電子透かし埋め込み方法に応じた検出方法を用いて検出する。
【０１０４】
例えば、コンテンツが音声データであり、その音声データの非可聴域に透かし情報に含まれる各ビットの値に応じた信号が付加されているとする。この場合、情報抽出部３０２は、その信号に対応するテンプレートと非可聴域の信号とのテンプレートマッチングにより非可聴域内でテンプレートと一致する信号を検出する。情報抽出部３０２は、一致したテンプレートに対応するビット値を透かし情報に含まれるビットとして検出する。
【０１０５】
また、コンテンツが動画像データであり、各画像の所定の画素が透かし情報に含まれるビット値に応じた値を持っている場合、情報抽出部３０２は、その所定の画素の値に応じたビット値を検出する。情報抽出部３０２は、抽出したビット列を同期フラグ検出部３０３に出力する。
【０１０６】
また、情報抽出部３０２は、取得したコンテンツが動画であり、図８〜１０で説明した埋め込み方法で透かし情報が埋め込まれている場合、各フレームの画素値の平均値を算出し、画素値の平均の時間方向の波形に対してフーリエ変換を行う。
【０１０７】
情報抽出部３０２は、埋め込まれたパターンと同じ周期の信号についてフーリエ変換で算出したフーリエ係数から位相を求める。透かしを埋め込んだ動画に対してフーリエ変換した場合、位相の時間変化から、２つの１８０°異なる位相の信号が検出される。この２つの１８０°異なる位相のそれぞれが、埋め込まれた電子透かしパターンの"０"と"１"に対応している。
【０１０８】
よって、情報抽出部３０２は、それぞれの位相の信号に"０"と"１"を割り当てることで、埋め込まれているビット列を抽出する。
【０１０９】
同期フラグ検出部３０３は、情報抽出部３０２で抽出されたビット列から同期フラグの位置、つまり埋め込んだ情報の先頭を特定する。具体的な方法について図１７を用いて説明する。
【０１１０】
図１７は、同期フラグの検出方法を説明するための図である。図１７に示す例では、同期フラグ検出部３０３は、検出されたビット列の先頭から１ｂｉｔずつずらしながらＫｂｉｔの情報から、実施例１と同じ方法で同期フラグを生成している様子を示す。
【０１１１】
ここで、同期フラグを生成するために用いる乱数生成器のシードや乱数列は埋め込み時と同じ値を用いる。これらの値は、暗号化技術の鍵に対応し、この鍵を知らない人は同期フラグの位置を特定することができない。
【０１１２】
同期フラグ検出部３０３は、Ｋｂｉｔのビット列から生成した同期フラグ（Ｎｂｉｔ）と、Ｋｂｉｔの直前のＮｂｉｔとの相関値を算出する。ここで、Ｋｂｉｔのビット列から生成した同期フラグをＸ＝｛ｘ１，ｘ２，・・・，ｘＮ｝、Ｋｂｉｔのビット列の直前のＮｂｉｔのビット列をＹ＝｛ｙ１，ｙ２，・・・，ｙＮ｝とすると、相関値は式（３）で算出できる。
【０１１３】
【数３】
0005982806.tif 000004
１ｂｉｔずつずらしながら相関値を計算していった場合、同期フラグを埋め込んだ位置は、Ｋｂｉｔのビット列から生成した同期フラグとＫｂｉｔの直前のＮｂｉｔとが同じ値になるので相関値が最大になる。
【０１１４】
図１８は、１ｂｉｔずつＫ＋Ｎｂｉｔずらした時の相関値を表す図である。縦軸は相関値、横軸はずらしたビット数である。図１８に示す例では、αの位置が最大になっているため、同期フラグ検出部３０３は、αビットずらした位置が同期フラグの位置であることと判定する。これにより、同期フラグ検出部３０３は、埋め込んだ透かし情報の先頭を特定したことになり、埋め込んだ透かし情報が検出される。
【０１１５】
また、同期フラグ検出部３０３は、最初の同期フラグの位置を検出した場合、２つ目以降の同期フラグの検出については、Ｋ＋Ｎｂｉｔずつずらし、Ｋｂｉｔから生成した同期フラグと、Ｋｂｉｔの直前のＮｂｉｔとの類似度を算出する。同期フラグ検出部３０３は、この類似度が閾値以上であれば、Ｎｂｉｔの部分を同期フラグとして検出する。
【０１１６】
なお、同期フラグ検出部３０３は、ビット消失などを考慮し、Ｋ＋Ｎｂｉｔずつずらした後、１ｂｉｔずつ前後に数ｂｉｔずらして、同様の類似度計算を行って同期フラグを検出するようにすればよい。
【０１１７】
また、同期フラグ検出部３０３は、実施例２における可変長の同期フラグを検出する場合は、Ｋｂｉｔから実施例２で説明した可変長の同期フラグを生成し、Ｋｂｉｔの直前のｂｉｔ列であり、同期フラグと同じｂｉｔ数と、同期フラグとで類似度を求めればよい。他の処理は、前述した通り、１ｂｉｔずつずらしながら、可変長の同期フラグの生成、類似度の算出、同期フラグの検出を繰り返していけばよい。
【０１１８】
透かし情報検出部３０４は、検出された同期フラグの後のＫｂｉｔを透かし情報として検出する。この透かし情報は、例えば、情報処理装置５の表示部などに表示される。
【０１１９】
これにより、実施例１や実施例２で説明した処理で埋め込まれた透かし情報を適切に検出することができる。
【０１２０】
＜動作＞
次に、実施例３における情報処理装置５の動作について説明する。図１９は、実施例３における電子透かし検出処理の一例を示すフローチャートである。図１９に示す処理は、Ｋｂｉｔの透かし情報から生成されたＮｂｉｔの固定長の同期フラグを検出する。
【０１２１】
ステップＳ３０１で、コンテンツ取得部３０１は、同期フラグが埋め込まれたコンテンツを取得する。
【０１２２】
ステップＳ３０２で、情報抽出部３０２は、コンテンツから、埋め込み方法に対応する検出方法で、ビット列を抽出する。
【０１２３】
ステップＳ３０３で、情報抽出部３０２は、抽出したビット数が、Ｋ＋Ｎより多いか否かを判定する。抽出したビット数が、Ｋ＋Ｎより多い場合（ステップＳ３０３−ＹＥＳ）ステップＳ３０４に進み、抽出したビット数が、Ｋ＋Ｎ以下の場合（ステップＳ３０３−ＮＯ）ステップＳ３０２に戻る。
【０１２４】
ステップＳ３０４で、同期フラグ検出部３０３は、１ｂｉｔずつずらしながら、Ｋｂｉｔのビット列から同期フラグを生成し、Ｋｂｉｔの直前のＮｂｉｔのビット列と、同期フラグとの類似度を算出して同期フラグの位置を特定する。
【０１２５】
ステップＳ３０５で、同期フラグ検出部３０３は、同期フラグの検出がＯＫである否かを判定する。同期フラグの検出がＯＫである場合（ステップＳ３０５−ＹＥＳ）ステップＳ３０６に進み、同期フラグの検出がＮＧである場合（ステップＳ３０５−ＮＯ）ステップＳ３０２に進む。同期フラグの検出がＯＫであるとは、例えば、類似度が閾値以上である場合である。
【０１２６】
ステップＳ３０６で、透かし情報検出部３０４は、同期フラグの後に続くＫｂｉｔのビット列を透かし情報として検出する。
【０１２７】
ステップＳ３０７で、制御部１０は、コンテンツの最後まで同期フラグの検出を行ったか否かを判定する。コンテンツの最後である場合（ステップＳ３０７−ＹＥＳ）検出処理を終了し、コンテンツの最後ではない場合（ステップＳ３０７−ＮＯ）ステップＳ３０２に戻る。
【０１２８】
なお、可変長の同期フラグが用いられている場合は、ステップＳ３０４で、同期フラグ検出部３０３は、Ｋｂｉｔのビット列から可変長の同期フラグを生成し、類似度を求めるようにすればよい。
【０１２９】
以上、実施例３によれば、透かし情報から生成された固定長又は可変長の同期フラグを用いて埋め込まれた透かし情報を適切に検出することができる。
【０１３０】
［変形例］
なお、前述した各実施例で説明した電子透かし埋め込み処理及び電子透かし検出処理を実現するためのプログラムを記録媒体に記録することで、各実施例での電子透かし埋め込み処理及び電子透かし検出処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯装置に読み取らせて、前述した電子透かし埋め込み処理及び電子透かし検出処理を実現させることも可能である。
【０１３１】
なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１３２】
情報処理装置で実行されるプログラムは、各実施例で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部１０が補助記憶部３０からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部２０上にロードされ、１又は複数の各部が主記憶部２０上に生成されるようになっている。
【０１３３】
また、情報処理装置１は、コンテンツの再生プレーヤや携帯電話などにも適用可能である。
【０１３４】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１３５】
なお、以上の各実施例に関し、さらに以下の付記を開示する。
（付記１）
コンテンツを取得するコンテンツ取得部と、
電子透かし情報を取得する透かし情報取得部と、
前記電子透かし情報に基づいて同期フラグを生成する生成部と、
前記コンテンツに、前記電子透かし情報及び前記同期フラグを埋め込む埋め込み部と、
を備える電子透かし埋め込み装置。
（付記２）
前記生成部は、
前記電子透かし情報によって可変長の同期フラグを生成する付記１記載の電子透かし埋め込み装置。
（付記３）
前記生成部は、
前記電子透かし情報に対し、可変長に変換する符号化アルゴリズム、又は可変長テーブルを用いて前記可変長の同期フラグを生成する付記２記載の電子透かし埋め込み装置。
（付記４）
前記生成部は、
スクランブルおよび排他的論理和のいずれか、もしくは両方を用いて前記同期フラグを生成する付記１乃至３いずれか一項に記載の電子透かし埋め込み装置。
（付記５）
コンテンツを取得し、
電子透かし情報を取得し、
前記電子透かし情報に基づいて同期フラグを生成し、
前記コンテンツに、前記電子透かし情報及び前記同期フラグを埋め込む処理をコンピュータが実行する埋め電子透かし埋め込み方法。
（付記６）
コンテンツを取得する取得部と、
前記コンテンツに埋め込まれたビット列を抽出する抽出部と、
前記ビット列内の所定のビット列に対応する同期フラグを生成し、前記同期フラグと、前記所定のビット列の直前又は直後で前記同期フラグと同一の長さのビット列との相関値を、前記所定のビット列を１ビットずつずらしながら算出し、前記相関値が所定範囲内で最大となる位置の同期フラグを検出する検出部と、
を備える電子透かし検出装置。
【符号の説明】
【０１３６】
１、５  情報処理装置
１０  制御部
２０  主記憶部
３０  補助記憶部
４０  通信部
５０  記録媒体Ｉ／Ｆ部
１０１、２０１  コンテンツ取得部
１０２、２０２  透かし情報取得部
１０３  固定長同期フラグ生成部
１０４、２０４  埋め込み部
２０３  可変長同期フラグ生成部
３０１  コンテンツ取得部
３０２  情報抽出部
３０３  同期フラグ検出部
３０４  透かし情報検出部
【図１】
0005982806.tif 000005
【図２】
0005982806.tif 000006
【図３】
0005982806.tif 000007
【図４】
0005982806.tif 000008
【図５】
0005982806.tif 000009
【図６】
0005982806.tif 000010
【図７】
0005982806.tif 000011
【図１１】
0005982806.tif 000012
【図１２】
0005982806.tif 000013
【図１３】
0005982806.tif 000014
【図１４】
0005982806.tif 000015
【図１５】
0005982806.tif 000016
【図１６】
0005982806.tif 000017
【図１７】
0005982806.tif 000018
【図１８】
0005982806.tif 000019
【図１９】
0005982806.tif 000020
【図８】
0005982806.tif 000021
【図９】
0005982806.tif 000022
【図１０】
0005982806.tif 000023