JP2010068421A - 電子透かし装置及び電子透かし方法 - Google Patents

電子透かし装置及び電子透かし方法 Download PDF

Info

Publication number
JP2010068421A
JP2010068421A JP2008234983A JP2008234983A JP2010068421A JP 2010068421 A JP2010068421 A JP 2010068421A JP 2008234983 A JP2008234983 A JP 2008234983A JP 2008234983 A JP2008234983 A JP 2008234983A JP 2010068421 A JP2010068421 A JP 2010068421A
Authority
JP
Japan
Prior art keywords
data
block
bit
numerical value
embedded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008234983A
Other languages
English (en)
Inventor
Mitsuyoshi Suzuki
光義 鈴木
Hiroyuki Yamada
浩之 山田
Toyokazu Sugai
豊和 菅井
Minoru Wada
稔 和田
Koichi Nakajima
宏一 中島
Kunio Shibata
邦夫 柴田
Kotaro Asai
光太郎 浅井
Atsumichi Murakami
篤道 村上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008234983A priority Critical patent/JP2010068421A/ja
Publication of JP2010068421A publication Critical patent/JP2010068421A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ブロックの数よりも大きくなる可能性がある可変長の付加データを正確に検出することができるとともに、再生画像の劣化を防止することができるようにする。
【解決手段】データ埋め込み部15が所定の規則にしたがって埋め込み対象のブロックを選択し、係数並び替え部13による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むように構成する。
【選択図】図1

Description

この発明は、JPEG、MPEGなどのDCT方式の圧縮画像に電子透かしを埋め込む電子透かし装置及び電子透かし方法に関するものである。
電子透かしは、人間の目や耳に感知できない情報を画像コンテンツに埋め込む技術である。
例えば、画像コンテンツの著作権を保護する目的で、氏名などの少ない著作権情報を電子透かしとして画像コンテンツに埋め込む利用形態が考えられる。
この場合、悪意者がフィルターなどを利用して、画像コンテンツから著作権情報を消すことを試みても、著作権情報を消すことは困難である。
電子透かしは、一般的には、悪意者の攻撃から画像コンテンツを保護する目的で利用されるが、他の利用法もある。
即ち、攻撃耐性については問題とせず、多くのメタデータを画像コンテンツに埋め込む利用法もある。
例えば、撮影後の編集前の画像に対してメタデータ(例えば、撮影者、撮影日時、撮影場所、撮影時の状況、コメントなど)を埋め込み、画像を自由に編集した後、その画像に埋め込まれているメタデータを取り出すなどの利用法がある。
ここで、図20は従来の電子透かし装置の埋め込み側を示す構成図である。
図20において、JPEGコード101は電子透かしを埋め込む対象の原画の画像コードである。
低解像度静止画102は電子透かしとして埋め込む画像であり、テキストデータ103は電子透かしとして埋め込むデータである。
多重器104は低解像度静止画102とテキストデータ103を多重化して、付加データ(=低解像度静止画102+テキストデータ103)を生成する処理を実施する。
付加データ多重用メモリ105は多重器104により生成された付加データを保持するメモリである。
透かし埋め込みCPU106は付加データ多重用メモリ105に保持されている付加データを予め決められた規則にしたがって原画のJPEGコード101に埋め込むことで、電子透かし入りJPEGコード107を生成する処理を実施する。
次に動作について説明する。
まず、多重器104は、低解像度静止画102とテキストデータ103を入力すると、その低解像度静止画102とテキストデータ103を多重化することで、1つのまとまったデータである付加データを生成し、その付加データを付加データ多重用メモリ105に格納する。
透かし埋め込みCPU106は、多重器104が付加データを付加データ多重用メモリ105に格納すると、付加データ多重用メモリ105から付加データを取り出し、予め決められた規則にしたがって、その付加データを原画のJPEGコード101に埋め込むことで、電子透かし入りJPEGコード107を生成する。
付加データを電子透かしとして埋め込む具体的な手順は後述する。
次に、図21は従来の電子透かし装置の検出側を示す構成図である。
図21において、透かし検出CPU108は予め決められた規則にしたがって電子透かし入りJPEGコード107に埋め込まれている付加データを分離することで、分離後のJPEGコードである復元JPEGコード109と分離後の付加データを出力する処理を実施する。
復元JPEGコード109はJPEGコード101に相当する画像コードである。
付加データ分離用メモリ110は透かし検出CPU108により分離された付加データを保持するメモリである。
分離器111は付加データ分離用メモリ110に保持されている付加データを検出低解像度静止画112と検出テキストデータ113に分離する処理を実施する。
検出低解像度静止画112は低解像度静止画102に相当する画像である。
検出テキストデータ113はテキストデータ103に相当するデータである。
次に動作について説明する。
まず、透かし検出CPU108は、電子透かし入りJPEGコード107を入力すると、予め決められた規則にしたがって電子透かし入りJPEGコード107に埋め込まれている付加データを分離することで、JPEGコード101に相当する画像コードである復元JPEGコード109を出力する。
また、透かし検出CPU108は、分離後の付加データを付加データ分離用メモリ110に格納する。
付加データを検出する具体的な手順は後述する。
分離器111は、透かし検出CPU108が付加データを付加データ分離用メモリ110に格納すると、付加データ分離用メモリ110から付加データを取り出し、その付加データを検出低解像度静止画112と検出テキストデータ113に分離して出力する。
ここで、図22はMPEG・JPEGの符号化方式を示す説明図である。
MPEG・JPEGの符号化方式では、画像の輝度・色差成分を8画素×8画素のブロックに分割する。
ただし、MPEGでは、マクロブロックという輝度信号が16画素×16画素の上位レーヤーであるが、DCT変換を8画素×8画素のブロックで行うので、ブロックのレーヤーにだけ着目する。
図22(a)は画像のブロック分割例を示しており、元の画像の解像度が、例えば、水平160画素(20ブロック)×垂直120画素(15ブロック)であれば、20×15=300のブロックが存在する。
図23は従来の電子透かし装置における付加データの埋め込み手順を示すフローチャートである。
図25は従来の電子透かし装置により付加データが埋め込まれる様子を示す説明図である(以下の非特許文献1を参照)。
まず、透かし埋め込みCPU106は、画像のブロックより上のレーヤーを分離する(ステップST1)。
即ち、透かし埋め込みCPU106は、付加データを埋め込む対象はブロックのレーヤーであるため、ブロックより上のレーヤーをそのままの形式で分離し、CPU内のメモリに記録する。
次に、透かし埋め込みCPU106は、1フレーム内の各ブロックの係数データを2次元可変調復号することで、各ブロックの64係数を検出して、CPU内のメモリに記録する(ステップST2)。
次に、透かし埋め込みCPU106は、埋め込み対象のブロックの順番を決定する(ステップST3)。
即ち、付加データを原画のJPEGコード101に埋め込むことで、原画のJPEGコード101の一部が書き換えられるが、その際、付加データが埋め込まれたブロックの再生画質が劣化するので、透かし埋め込みCPU106は、その劣化が分かりづらくなるように(埋め込み対象のブロックが分散するように)、予め決められた鍵(埋め込みと検出で共通の鍵)を用いて、ブロックの番号1〜300が重複しないようにスクランブルすることで、埋め込むブロックの順番を決定する。
次に、透かし埋め込みCPU106は、予め決めた規則にしたがって付加データの数値を変更して、数値変更後の付加データd(i)(例えば、大きさがnビットの付加データであれば、d(1)〜d(n))をステップST3で決定された順番で埋め込む(ステップST4)。
図25では、付加データd(1)〜d(16)が16ビットの固定長のデータであり、各ブロックの係数が第1係数から第64係数まである例を示しており、各ブロックの係数の中で、最後の0でない係数の最下位ビットを付加データd(1)〜d(16)に置き換えることで、付加データd(1)〜d(16)を埋め込んでいる。
次に、透かし埋め込みCPU106は、ステップST4で付加データが埋め込まれた全ブロックの64係数を2次元可変調符号化することで、ブロックレーヤーの可変長コードを生成する(ステップST5)。
最後に、透かし埋め込みCPU106は、CPU内のメモリに記録しておいたブロックより上のレーヤーをそのままの形式でブロックレーヤーの可変長コードに合成し、画像コードとして生成する(ステップST6)。
図24は従来の電子透かし装置における付加データの検出手順を示すフローチャートである。
透かし検出CPU108は、透かし埋め込みCPU106と同様に、画像のブロックより上のレーヤーを分離する(ステップST11)。
次に、透かし検出CPU108は、透かし埋め込みCPU106と同様に、1フレーム内の各ブロックの係数データを2次元可変調復号することで、各ブロックの64係数を検出して、CPU内のメモリに記録する(ステップST12)。
次に、透かし検出CPU108は、透かし埋め込みCPU106と同様に、予め決められた鍵(埋め込みと検出で共通の鍵)を用いて、ブロックの番号1〜300が重複しないようにスクランブルすることで、埋め込みブロックの順番を決定する(ステップST13)。
次に、透かし検出CPU108は、ステップST13で決定されたブロックの順番で、当該ブロックから予め決めた規則にしたがって付加データd(i)を検出して数値を復元する(ステップST14)。
図25の例では、最後の0でない係数の最下位ビットを16ビット分だけ取ることで、付加データd(1)〜d(16)を検出する。
次に、透かし検出CPU108は、透かし埋め込みCPU106と同様に、全ブロックの64係数を2次元可変調符号化することで、ブロックレーヤーの可変長コードを生成する(ステップST15)。
最後に、透かし検出CPU108は、透かし埋め込みCPU106と同様に、CPU内のメモリに記録しておいたブロックより上のレーヤーをそのままの形式でブロックレーヤーの可変長コードに合成し、画像コードとして生成する(ステップST16)。
ここで、検出低解像度静止画112及び検出テキストデータ113は重要な情報であり、低解像度静止画102及びテキストデータ103と同一であるが、復元JPEGコード109は、元の画像コードの付加データを埋め込んだブロックの最下位ビットが元に戻らず、例えば、それを全て0に置き換えても、原画のJPEGコード101とわずかに異なり、再生した画像は多少劣化する。
図26は他の従来例により付加データが埋め込まれる様子を示す説明図である(以下の非特許文献2を参照)。
図25の例では、画像コードの一部を元に戻せない方法で付加データを埋め込んでいるが、図26の例では、16ビットの固定長の付加データd(1)〜d(16)を第64係数目に埋め込むようにしている。
通常、第64係数は、大部分が0であるが、0でないブロックもある。この従来例では、0でないブロックについても、d(i)(i=1〜16)(d(i)は“0”または“1”)に置き換えるようにしている。
この場合、付加データを正しく検出することができるが、元の画像コードを破壊してしまうことになる。
なお、DCT係数の最下位1ビットに付加データを埋め込む方式が以下の特許文献1,2に開示されているが、この方式では、元の画像コードを復元することができない。
特開2007−221387号公報 特開2007−221388号公報 伊藤浩、馬養浩一、鈴木光義著、"JPEG画像の真正性を証明する電子透かしの方法"、信学全大、D−11−33,2003 貴家仁志、"JPEG、MPEG画像へのバイナリデータの埋め込み法(多次元信号処理とその応用・実現論文小特集"、信学論J83−A(12),1349−1356,2000
従来の電子透かし装置は以上のように構成されているので、電子透かしとして埋め込む付加データについては正しく検出することができるが、復元された画像コードが、電子透かしが埋め込まれる原画の画像コードとわずかに異なってしまったり、画像コードを破壊してしまったりして、再生画像が劣化する課題があった。画像コードに既に付加データが埋め込まれている場合には、その付加データを壊してしまうことがある。
また、ブロックの数よりも大きくなる可能性がある可変長の付加データについては、付加データの先頭が分からないため、付加データを検出することができない課題があった。
この発明は上記のような課題を解決するためになされたもので、ブロックの数よりも大きくなる可能性がある可変長の付加データを正確に検出することができるとともに、再生画像の劣化を防止することができる電子透かし装置及び電子透かし方法を得ることを目的とする。
この発明に係る電子透かし装置は、DCT変換手段により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替え手段と、ヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出し手段とを設け、データ埋め込み手段が所定の規則にしたがって埋め込み対象のブロックを選択し、係数並び替え手段による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、ビット取り出し手段により取り出されたビットに対応する数値を埋め込むようにしたものである。
この発明によれば、DCT変換手段により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替え手段と、ヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出し手段とを設け、データ埋め込み手段が所定の規則にしたがって埋め込み対象のブロックを選択し、係数並び替え手段による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、ビット取り出し手段により取り出されたビットに対応する数値を埋め込むように構成したので、ブロックの数よりも大きくなる可能性がある可変長データを正確に検出することができるとともに、再生画像の劣化を防止することができる効果がある。
実施の形態1.
図1はこの発明の実施の形態1による電子透かし装置の埋め込み側を示す構成図である。
図1において、ビデオカメラ1は動画を撮影して、その動画の映像データを出力する処理を実施する。
MPEGエンコーダ2はビデオカメラ1から出力された映像データを圧縮して、原画MPEGコードを生成する処理を実施する。
MPEG埋め込みバッファメモリ3はMPEGエンコーダ2により生成された原画MPEGコードを保持するメモリである。
デジタルスチルカメラ4は静止画を撮影して、その静止画の静止画データを出力する処理を実施する。
静止画エンコーダ5はデジタルスチルカメラ4から出力された静止画データを圧縮して、静止画圧縮データを生成する処理を実施する。
静止画埋め込みバッファメモリ6は静止画エンコーダ5により生成された静止画圧縮データを保持するメモリである。
マイク7は音声を集音して、音声データを出力する処理を実施する。
音声エンコーダ8はマイク7から出力された音声データを圧縮して、音声圧縮データを生成する処理を実施する。
音声埋め込みバッファメモリ9は音声エンコーダ8により生成された音声圧縮データを保持するメモリである。
電波時計・GPS10はGPS衛星から送信されるGPSデータを受信して、現在時刻と現在位置を検出し、現在時刻と現在位置を示す時刻位置データ(テキストデータ)を出力する処理を実施する。
電子透かし埋め込み部11はMPEG埋め込みバッファメモリ3に保持されている原画MPEGコードに対して、静止画埋め込みバッファメモリ6に保持されている静止画圧縮データと、音声埋め込みバッファメモリ9に保持されている音声圧縮データと、電波時計・GPS10から出力された時刻位置データとを電子透かしとして埋め込む処理を実施する。
電子透かし埋め込み部11のDCT変換部12はMPEG埋め込みバッファメモリ3に保持されている原画MPEGコード(電子透かしを埋め込む対象の画像)をブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出する処理を実施する。
なお、DCT変換部12はDCT変換手段を構成している。
電子透かし埋め込み部11の係数並び替え部13はDCT変換部12により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える処理を実施する。
なお、係数並び替え部13は係数並び替え手段を構成している。
電子透かし埋め込み部11のビット取り出し部14はヘッダにユニークワード、シーケンス番号及びデータ長を示すビット情報が付加されている可変長データ(静止画圧縮データ、音声圧縮データ、時刻位置データ)の先頭から順番にビットを取り出す処理を実施する。
なお、ビット取り出し部14はビット取り出し手段を構成している。
電子透かし埋め込み部11のデータ埋め込み部15は鍵により定められた順番で埋め込み対象のブロックを選択し、係数並び替え部13による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込む処理を実施する。
なお、データ埋め込み部15はデータ埋め込み手段を構成している。
送信バッファメモリ16は電子透かし埋め込み部11により電子透かしが埋め込まれた原画MPEGコードである電子透かし入り画像データ17を保持し、その電子透かし入り画像データ17を回線などに送出する。
図2はこの発明の実施の形態1による電子透かし装置の検出側を示す構成図である。
図2において、受信バッファメモリ18は回線などから電子透かし入り画像データ17を受信して保持するメモリである。
電子透かし検出部19は受信バッファメモリ18に保持されている電子透かし入り画像データ17から、所定の規則にしたがって可変長データである静止画圧縮データ、音声圧縮データ及び時刻位置データを検出し、電子透かし入り画像データ17から可変長データを削除することで、原画MPEGコードを復元する処理を実施する。
電子透かし検出部19の数値読み出し部20はデータ埋め込み部15によりブロックが選択される際の規則と同一の規則にしたがって読み出し対象のブロックを選択し、そのブロックにおける領域の数値を読み出す処理を実施する。
なお、数値読み出し部20は数値読み出し手段を構成している。
データ検出部21は数値読み出し部20により読み出された数値の系列とユニークワードを比較して、その系列の中から可変長データである静止画圧縮データ、音声圧縮データ及び時刻位置データを検出するとともに、その可変長データが埋め込まれる前の原画の画像コードに相当するMPEGコードを復元する処理を実施する。
なお、データ検出部21はデータ検出手段を構成している。
MPEG復号バッファメモリ22は電子透かし検出部19から出力された復元MPEGコードを保持するメモリである。
MPEGデコーダ23はMPEG復号バッファメモリ22に保持されている復元MPEGコードを復号して検出映像データをディスプレイ24に出力する処理を実施する。
ディスプレイ24はMPEGデコーダ23から出力された検出映像データにしたがって映像を表示する。
静止画復号バッファメモリ25は電子透かし検出部19から出力された検出静止画圧縮データを保持するメモリである。
静止画デコーダ26は静止画復号バッファメモリ25に保持されている検出静止画圧縮データを復号して検出静止画データをモニタ27に出力する処理を実施する。
モニタ27は静止画デコーダ26から出力された検出静止画データにしたがって静止画を表示する。
音声復号バッファメモリ28は電子透かし検出部19から出力された検出音声圧縮データを保持するメモリである。
音声デコーダ29は音声復号バッファメモリ28に保持されている検出音声圧縮データを復号して検出音声データをスピーカ30に出力する処理を実施する。
スピーカ30は音声デコーダ29から出力された検出音声データにしたがって音声を再生する。
時刻表示器31は電子透かし検出部19から出力された検出時刻位置データにしたがって現在時刻と現在位置を表示する。
なお、図1は電子透かし装置の埋め込み側の構成を示し、図2は電子透かし装置の検出側の構成を示しているが、この実施の形態1の電子透かし装置は、埋め込み側の構成と検出側の構成の双方を備えているものとする。
次に動作について説明する。
ビデオカメラ1は、動画を撮影すると、その動画の映像データをMPEGエンコーダ2に出力する。
MPEGエンコーダ2は、ビデオカメラ1から映像データを受けると、その映像データを圧縮して原画MPEGコードを生成し、その原画MPEGコードをMPEG埋め込みバッファメモリ3に格納する。
デジタルスチルカメラ4は、静止画を撮影すると、その静止画の静止画データを静止画エンコーダ5に出力する。
静止画エンコーダ5は、デジタルスチルカメラ4から静止画データを受けると、その静止画データを圧縮して静止画圧縮データを生成し、その静止画圧縮データを静止画埋め込みバッファメモリ6に格納する。
マイク7は、音声を集音して、音声データを音声エンコーダ8に出力する。
音声エンコーダ8は、マイク7から音声データを受けると、その音声データを圧縮して音声圧縮データを生成し、その音声圧縮データを音声埋め込みバッファメモリ9に格納する。
電波時計・GPS10は、GPS衛星から送信されるGPSデータを受信して、現在時刻と現在位置を検出し、現在時刻と現在位置を示す時刻位置データを電子透かし埋め込み部11に出力する。
電子透かし埋め込み部11は、MPEG埋め込みバッファメモリ3に保持されている原画MPEGコードに対して、静止画埋め込みバッファメモリ6に保持されている静止画圧縮データと、音声埋め込みバッファメモリ9に保持されている音声圧縮データと、電波時計・GPS10から出力された時刻位置データとを電子透かしとして埋め込む処理を実施する。
電子透かし埋め込み部11における概略的な埋め込み手順は、図23の埋め込み手順と同様である。
以下、電子透かし埋め込み部11の特徴的な処理内容を具体的に説明する。
電子透かし埋め込み部11のDCT変換部12は、MPEG埋め込みバッファメモリ3に保持されている原画MPEGコードをブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出する。
図22(a)は画像のブロック分割例を示しており、元の画像の解像度が、例えば、水平160画素(20ブロック)×垂直120画素(15ブロック)であれば、20×15=300のブロックが存在する。
図22(b)は各ブロックの画素の成分を示しており、図22(c)は各ブロックの画素のDCT係数を示している。
電子透かし埋め込み部11の係数並び替え部13は、DCT変換部12が各ブロックの画素のDCT係数を算出すると、図22(d)に示すように、各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える処理を実施する。
電子透かし埋め込み部11のビット取り出し部14は、ヘッダにユニークワード、シーケンス番号及びデータ長を示すビット情報が付加されている可変長データの先頭から順番にビットを取り出す処理を実施する。
ここで、図3は可変長データのデータ構成を示す説明図である。
静止画データ、音声データ、時刻位置データ(テキストデータ)などの可変長データは、データ本体であるペイロードの前にヘッダが配置されている。
可変長データのヘッダには、例えば、32ビットのユニークワードと、8ビットのシーケンス番号と、16ビットのデータ長を示す情報ビットが格納されている。
“ユニークワード”は、電子透かしの埋め込み対象の画像の映像データと異なる可変長データが埋め込まれていることと、当該可変長データの先頭を特定するためのデータである。
ユニークワードは、通常の可変長データにはあり得ない語長の系列で構成されている。
図3の例では、32ビットの“DEADBEEF(16進)”で構成されている。
ただし、万が一、ユニークワードと同一の系列が可変長データのペイロード内に存在する場合、ペイロード内のデータをユニークワードと誤って検出してしまうため、ペイロード内の系列である“DEADBEEE(16進)”については最後の1ビットに“0”を追加することにより、“DEADBEEE(16進)+0(2進)”という別のコードに変更し、ペイロード内の系列である“DEADBEEF(16進)”については“DEADBEEE(16進)+1(2進)”という別のコードに変更する。
このように、ペイロード内の系列を変更すると、検出側では、“DEADBEEF(16進)”はユニークワードとして検出され、“DEADBEEE(16進)+0(2進)”はペイロード内の系列“DEADBEEE(16進)”として検出され、“DEADBEEE(16進)+1(2進)”はペイロード内の系列“DEADBEEF(16進)”として検出される。
“シーケンス番号”は、当該可変長データが何のデータ(例えば、静止画データ、音声データ、時刻位置データ)であるかを特定するための数値である。
“データ長”は、当該可変長データの終わりを特定するためのデータであり、可変長データの長さを示している。
なお、可変長データを秘匿する必要がある場合には、図示せぬ暗号化手段が、ペイロード用鍵を用いて、その可変長データのペイロードを暗号化し、検出時には、同じペイロード用鍵を用いて、その可変長データのペイロードを解読するようにする。
数人で可変長データを重畳するときは、これらのペイロード用鍵を各自が秘匿するようにすれば、他人がペイロードを解読することができなくなる。
また、画像を秘匿する必要がある場合には、図示せぬ暗号化手段が、画像復元用鍵を用いて、可変長データのヘッダを暗号化する。
画像を復元する権利を持つ人が共通で画像復元用鍵を持つようにすれば、可変長データのヘッダを除去して、元の画像を正確に復元することができる。
電子透かし埋め込み部11のデータ埋め込み部15は、係数並び替え部13が各ブロックの画素のDCT係数をジグザグスキャン順序に並び替えると、図4に示すように、並び替え後のブロックの中から、鍵により定められた順番で埋め込み対象のブロックを選択する。
データ埋め込み部15は、埋め込み対象のブロックを選択すると、そのブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込む処理を実施する。
ここで、図4はデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。
例えば、可変長データを画像の輝度信号にだけ埋め込む場合、画像の解像度が水平160画素×垂直120画素であれば、1フレームのブロック数は300個である(図22(a)を参照)。
このとき、左上のブロックから順番に、1ビットずつ埋め込むようにしてもよいが、画質が劣化しているブロックが左上に集中するのを避けるため、画質が劣化しているブロックが画像全体に分散するように、所定の鍵で埋め込むブロックの順序を決定する(埋め込むブロックが重複しないように決定する)。
そして、当該ブロックの係数に1ビットずつ埋め込み、可変長データを構成するnビットのうち、300のビットを埋め込んだ後は、同一のブロック順序で、次の係数に埋め込むようにする。
図4の例では、最初に、最も高周波成分側である第64係数の領域に300のビットを埋め込み、それ以降は、第63係数の領域、第62係数の領域、第61係数の領域、第60係数の領域に、順次、300のビットを埋め込んでいる。
最後に、第59係数の領域に残りのビットを埋め込んでいる。
このように、最も高周波成分側の領域から低周波成分側の領域に順次ビットを埋め込むことで、ブロックの数よりも大きなビット数の可変長データを埋め込むことができる。
なお、図4の例では、可変長データを構成するビットが“0”であれば、“−1”を埋め込み、可変長データを構成するビットが“1”であれば、“+1”を埋め込むようにしている。
この場合、画像コードの0領域における“0”と埋め込みビットを区別することができるため、検出側では、埋め込みビットが可変長データを構成するビットであることを認識することができる。
図4では、第59係数の領域に残りのビットを埋め込んでいる例を示しているが、可変長データのデータ長が更に長い場合、第59係数よりも更に低周波成分側の領域にビットを埋め込む必要がある。
図5の例では、第57係数の領域に可変長データd(i)を埋め込んだ後、可変長データd(i+1)を次のブロックに埋め込む際、可変長データd(i+1)を埋め込むブロックの位置が、当該ブロックの“0”でない最後尾のDCT係数の次の係数の位置であるため、その位置を強制的に“0”として、当該ブロックをスキップし、可変長データd(i+1)を次のブロックに埋め込むようにしている。
それ以降、第56係数の領域に埋め込む際、第56係数より高周波成分側に“0”(先に強制的に埋め込んだ“0”)があれば、当該領域は画像コードが埋め込まれているブロックであることが分かるので、可変長データd(j)の次の可変長データd(j+1)は当該ブロックをスキップして、次のブロックに埋め込むようにしている。
図5の例では、可変長データを検出する際、ヘッダにデータ長を示す情報ビットが記録されているので、そのデータ長まで、順次、可変長データd(1)〜d(n)を読み出せば検出することができる。
読み出しの途中で、“0”がある場合、“0”をスキップすれば、正確に可変長データd(1)〜d(n)を検出することができる。
また、可変長データd(1)〜d(n)を全て“0”にすることで、正確に元の画像コードを復元することができる。
上記のようにして、電子透かし埋め込み部11が電子透かしを原画MPEGコードに埋め込むことにより、電子透かし入り画像データ17を送信バッファメモリ16に書き込むと、送信バッファメモリ16から電子透かし入り画像データ17が回線などに送出される。
受信バッファメモリ18は、回線などから電子透かし入り画像データ17を受信して保持する。
電子透かし検出部19は、受信バッファメモリ18に保持されている電子透かし入り画像データ17から、可変長データである静止画圧縮データ、音声圧縮データ及び時刻位置データを検出し、電子透かし入り画像データ17から可変長データを削除することで、原画MPEGコードを復元する。
電子透かし検出部19における概略的な検出手順は、図24の検出手順と同様である。
以下、電子透かし検出部19の特徴的な処理内容を具体的に説明する。
電子透かし検出部19の数値読み出し部20は、電子透かし埋め込み部11のデータ埋め込み部15によりブロックが選択される際の規則と同一の規則にしたがって読み出し対象のブロックを選択する。
即ち、数値読み出し部20は、図4及び図5に示すように、データ埋め込み部15が選択するブロックの順番と同一の順番で読み出し対象のブロックを選択する。
数値読み出し部20は、読み出し対象のブロックを選択すると、そのブロックにおける領域の数値を読み出す処理を実施する。
電子透かし検出部19のデータ検出部21は、数値読み出し部20により読み出された数値の系列とユニークワード(可変長データのヘッダに記録されている32ビットのユニークワードと同一のユニークワード)を比較する。
データ検出部21は、数値読み出し部20により読み出された数値の系列の中に、当該ユニークワードと同一の系列があれば、その系列は検出対象の可変長データの先頭部分であると認識する。
データ検出部21は、可変長データの先頭部分を検出すると、先頭部分に続く系列とシーケンス番号(可変長データのヘッダに記録されている8ビットのシーケンス番号と同一のシーケンス番号)を比較する。
データ検出部21は、先頭部分に続く系列が静止画圧縮データのシーケンス番号と一致していれば、当該系列は、静止画圧縮データのヘッダの一部を構成している系列であると認識する。
また、データ検出部21は、先頭部分に続く系列が音声圧縮データのシーケンス番号と一致していれば、当該系列は、音声圧縮データのヘッダの一部を構成している系列であると認識する。
また、データ検出部21は、先頭部分に続く系列が時刻位置データのシーケンス番号と一致していれば、当該系列は、時刻位置データのヘッダの一部を構成している系列であると認識する。
データ検出部21は、可変長データ(静止画圧縮データ、音声圧縮データ、時刻位置データ)の種類を特定すると、上記系列に続く系列である16ビットのデータ長を示す情報ビットを検出する。
データ検出部21は、可変長データのデータ長を示す情報ビットを検出すると、可変長データのヘッダに続くペイロードの長さを認識して、可変長データのペイロードを検出する。
可変長データのペイロードには、“−1”または“+1”の数値が埋め込まれており、数値が“−1”であれば、可変長データのビットが“0”であると認識し、数値が“+1”であれば、可変長データのビットが“1”であると認識する。
データ検出部21は、上記のようにして、可変長データである静止画圧縮データ、音声圧縮データ及び時刻位置データを検出すると、検出静止画圧縮データ、検出音声圧縮データ及び検出時刻位置データとして、静止画復号バッファメモリ25、音声復号バッファメモリ28及び時刻表示器31に出力する。
データ検出部21は、数値読み出し部20により読み出された数値のうち、可変長データに係る数値以外の数値は、MPEGコードに係る数値であると認識する。
このとき、数値が“0”であれば、MPEGコードの0領域であり、数値が“0”でなければ、MPEGコードのDCT係数であると認識する。
データ検出部21は、MPEGコードのDCT係数を特定すると、各ブロックの順番を元に戻し(係数並び替え部13によりジグザグスキャン順序に並び替えられる前の状態に戻す)、各ブロックの画素のDCT係数を逆DCT変換して、各ブロックの画素の成分を求める(図22(c)→図22(b)の状態に戻す)。
データ検出部21は、逆DCT変換後のMPEGコードを復元MPEGコード(MPEGエンコーダ2から出力された原画MPEGコードに相当するMPEGコード)としてMPEG復号バッファメモリ22に出力する。
MPEGデコーダ23は、電子透かし検出部19が復元MPEGコードをMPEG復号バッファメモリ22に格納すると、その復元MPEGコードを復号して検出映像データをディスプレイ24に出力する。
ディスプレイ24は、MPEGデコーダ23から出力された検出映像データにしたがって映像を表示する。
静止画デコーダ26は、電子透かし検出部19が検出静止画圧縮データを静止画復号バッファメモリ25に格納すると、その検出静止画圧縮データを復号して検出静止画データをモニタ27に出力する。
モニタ27は、静止画デコーダ26から出力された検出静止画データにしたがって静止画を表示する。
音声デコーダ29は、電子透かし検出部19が検出音声圧縮データを音声復号バッファメモリ28に格納すると、その検出音声圧縮データを復号して検出音声データをスピーカ30に出力する。
スピーカ30は、音声デコーダ29から出力された検出音声データにしたがって音声を再生する。
時刻表示器31は、電子透かし検出部19から検出時刻位置データを受けると、その検出時刻位置データにしたがって現在時刻と現在位置を表示する。
この実施の形態1の電子透かし装置では、電子透かしの埋め込み時に、大量の可変長データを重畳して埋め込むことができるため、従来例のように、多重器104で付加データを予め多重化する必要がない。
また、検出時に、重畳された可変長データを個別に検出することができるので、従来例のように分離器111で付加データを分離する必要がない。
ここまでは、図4及び図5を用いて、可変長データの埋め込み方法を説明したが、図6のようにして、可変長データを埋め込むようにしてもよい。
図4及び図5では、“0”でない最後尾のDCT係数が第63係数までのとき有効であり、“0”でない最後尾のDCT係数が第64係数まである場合には適用することができないが、図6では、“0”でない最後尾のDCT係数が第64係数まである場合も適用することができる。
図4及び図5では、可変長データを構成するビットが“0”であれば、“−1”を埋め込み、可変長データを構成するビットが“1”であれば、“+1”を埋め込むようにしているが、図6では、可変長データを構成するビットが“0”であれば、“0”を埋め込み、可変長データを構成するビットが“1”であれば、“1”を埋め込むようにする。
データ埋め込み部15は、可変長データを構成するビットを埋め込む過程で、“0”でない最後尾のDCT係数を検出すると、そのDCT係数が正の値であれば、そのDCT係数に“1”を加算し、その可変長データを構成するビットを埋め込まずスキップして、次のブロックに埋め込むようにする。
ただし、“0”でない最後尾のDCT係数の絶対値が最大値であり、“1”を加算することができない場合、そのDCT係数に“1”を加算せずに、そのDCT係数の絶対値が最大値である旨を示す情報ビットを上記DCT係数より1つ高周波成分側の領域に含めるようにする。検出側では、1つ高周波成分側の領域に含められている情報ビットを見れば、そのDCT係数の絶対値が最大値であるために、“1”が加算されていないことを認識することができる。
図6の例では、第56係数の領域に可変長データd(i)を埋め込んだ後、可変長データd(i+1)を次のブロックに埋め込む際、可変長データd(i+1)を埋め込むブロックの位置が、当該ブロックの“0”でない最後尾のDCT係数の位置であるため、そのDCT係数に“1”を加算して、当該ブロックをスキップし、可変長データd(i+1)を次のブロックに埋め込むようにしている。
この場合、“0”でない最後尾のDCT係数は、“2”以上の正の値か、負の値になり、可変長データを構成するビット“0”,“1”と区別することができる。
なお、高周波成分の領域に、“2”以上の正の値か、負の値がある場合も、その値が画像コードであることが分かるので、可変長データを構成するビットの埋め込みをスキップするようにする。
図6の例では、可変長データを検出する際、ヘッダにデータ長を示す情報ビットが記録されているので、そのデータ長まで、順次、可変長データd(1)〜d(n)を読み出せば検出することができる。
読み出しの途中で、“2”以上の正の値か、負の値がある場合、それらをスキップすれば、正確に可変長データd(1)〜d(n)を検出することができる。
また、可変長データd(1)〜d(n)を削除して、正確に元の画像コードを復元する場合、“2”以上の正の値には“−1”を加えて、画像コードを元に戻せば、正確に元の画像コードを復元することができる。
ここでは、可変長データを構成するビットが“0”であれば、“0”を埋め込み、可変長データを構成するビットが“1”であれば、“1”を埋め込むものについて示したが、可変長データを構成するビットが“0”または“−1”である場合、可変長データを構成するビットが“0”であれば、“0”を埋め込み、可変長データを構成するビットが“−1”であれば、“−1”を埋め込むようにする。
データ埋め込み部15は、可変長データを構成するビットを埋め込む過程で、“0”でない最後尾のDCT係数を検出すると、そのDCT係数が負の値であれば、そのDCT係数に“−1”を加算し、その可変長データを構成するビットを埋め込まずスキップして、次のブロックに埋め込むようにする。
ただし、“0”でない最後尾のDCT係数の絶対値が最大値であり、“−1”を加算することができない場合、そのDCT係数に“−1”を加算せずに、そのDCT係数の絶対値が最大値である旨を示す情報ビットを上記DCT係数より1つ高周波成分側の領域に含めるようにする。検出側では、1つ高周波成分側の領域に含められている情報ビットを見れば、そのDCT係数の絶対値が最大値であるために、“−1”が加算されていないことを認識することができる。
この場合、“0”でない最後尾のDCT係数は、正の値か、“2”以下の負の値になり、可変長データを構成するビット“0”,“−1”と区別することができる。
可変長データを検出する際、正の値か、“2”以下の負の値がある場合、それらをスキップすれば、正確に可変長データd(1)〜d(n)を検出することができる。
図4及び図5では、シーケンスが1つだけの例を示したが、シーケンスが2つ以上ある場合、図6のようにして、可変長データを埋め込むようにする。
重畳する可変長データをシーケンス1とシーケンス2とすると、シーケンス1については上記の埋め込み方法で埋め込むようにする。
シーケンス2については、シーケンス1の全ての埋め込み終わった第59係数の1つ前の第58係数から、第1シーケンスと同じ埋め込み方法で埋め込むようにする。
第58係数に全て埋め込んだ後は、順次、第57係数、第56係数へと埋め込みを継続する。
可変長データの検出の際は、シーケンス1,2のヘッダにはユニークワードが記録されているので、第64係数のブロック埋め込み順の先頭からデータを読み出し、それがユニークワードであれば、それがシーケンスの先頭であることが分かり、その後のシーケンス番号を読み出して、検出対象のシーケンスか否かを判定する。
検出対象のシーケンスであれば、その後の可変長データのデータ長を示す情報ビットを検出して、その分のデータを読み込めば、正確に検出対象のシーケンスの可変長データを検出することができる。
次に、画像コードの全ての0領域に、可変長データを埋め込み尽くした場合について説明する。
例えば、画像コードの0領域に、可変長データ“0”(0000 0000 0000 0000二進数)、または、“−1”(1111 1111 1111 1111二進数2の補数表現)を埋め込んでいき、全ての0領域に可変長データを埋め込み尽くした場合、埋め込まれた可変長データに対して、下位2ビット目と、その上位ビットの全てを“0”、または、“1”として埋め込むことで、可変長データの埋め込みを継続することができる。
最初のビットが“0”(0000 0000 0000 0000二進数)だったものの下位2ビット目と、その上位ビットの全てに“0”を埋め込むと、“0”(0000 0000 0000 0000二進数)、“1”を埋め込むと、“−2”(1111 1111 1111 1110二進数)となる。
また、最初のビットが“−1”(1111 1111 1111 1111二進数)だったものの下位2ビット目と、その上位ビットの全てに“0”を埋め込むと、“+1”(0000 0000 0000 0001二進数)、“1”を埋め込むと、“−1”(1111 1111 1111 1110二進数)となる。
これらの結果は、数値で“−2”、“−1”、“0”、“+1”であり、絶対値が小さな数値である。
検出のときは、最下位の1ビット目が最初に埋め込まれた可変長データ、下位2ビット目が次に埋め込まれた可変長データであり、正確に検出することができる。
画像コードとの識別方法として、画像コードの最後の“0”でないDCT係数が正の値のときは“+1”を加え、負の値のときは“−2”を加えることで、“−3”以下、または、“+2”以上の数値に変更すればよい。上位3ビット目以降に埋め込むときも同様である。
以上で明らかなように、この実施の形態1によれば、DCT変換部12により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替え部13と、ヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出し部14とを設け、データ埋め込み部15が所定の規則にしたがって埋め込み対象のブロックを選択し、係数並び替え部13による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むように構成したので、ブロックの数よりも大きくなる可能性がある可変長データを正確に検出することが可能になり、また、再生画像の劣化を防止することが可能になる効果を奏する。
また、この実施の形態1によれば、データ埋め込み部15によりブロックが選択される際の規則と同一の規則にしたがって読み出し対象のブロックを選択し、そのブロックにおける領域の数値を読み出す数値読み出し部20と、数値読み出し部20により読み出された数値の系列とユニークワードを比較して、その系列の中から可変長データを検出するとともに、その可変長データが埋め込まれる前の画像の画像コードを検出するデータ検出部21とを設けるように構成したので、ブロックの数よりも大きくなる可能性がある可変長データを正確に検出することができるとともに、再生画像の劣化を防止することができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、ビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も高周波成分側の領域に埋め込むように構成したので、元の画像コードを破壊することなく、可変長データを埋め込むことができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、ビット取り出し部14により取り出されたビットが“0”であれば、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に“−1”を埋め込み、そのビットの値が“1”であれば、上記領域に“+1”を埋め込み、データ検出部21は、数値読み出し部20により読み出された数値が“0”であれば、その数値は可変長データの一部を構成しておらず、“0”の領域であると認識するように構成したので、元の画像コードと可変長データを正確に区別して検出することができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、“0”でない最後尾のDCT係数が正の値であれば、そのDCT係数に“+1”を加え、“0”でない最後尾のDCT係数が負の値であれば、そのDCT係数に“−1”を加え、データ検出部21は、数値読み出し部20により読み出された数値が“+2”以上であれば、その数値に“−1”を加え、その数値が“−2”以下であれば、その数値に“+1”を加えるように構成したので、可変長データを構成するビット“0”,“+1”、または、“0”,“−1”であるとき、そのビットの値をそのまま埋め込む場合でも、元の画像コードと可変長データを正確に区別して検出することができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、可変長データを構成するビットの値が“0”又は“+1”である場合、“0”でない最後尾のDCT係数が正の値であれば、そのDCT係数に“+1”を加え、データ検出部21は、数値読み出し部20により読み出された数値が“+2”以上であれば、その数値に“−1”を加えるように構成したので、可変長データを構成するビットの値が“0”又は“+1”であるとき、そのビットの値をそのまま埋め込む場合でも、元の画像コードと可変長データを正確に区別して検出することができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、可変長データを構成するビットの値が“0”又は“−1”である場合、“0”でない最後尾のDCT係数が負の値であれば、そのDCT係数に“−1”を加え、データ検出部21は、数値読み出し部20により読み出された数値が“−2”以下であれば、その数値に“+1”を加えるように構成したので、可変長データを構成するビットの値が“0”又は“−1”であるとき、そのビットの値をそのまま埋め込む場合でも、元の画像コードと可変長データを正確に区別して検出することができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、“0”でない最後尾のDCT係数の絶対値が最大値である場合、DCT係数を加算する処理を実施せずに、そのDCT係数の絶対値が最大値である旨を示す情報ビットを上記DCT係数より1つ高周波成分側の領域に含めるように構成したので、検出側では、1つ高周波成分側の領域に含められている情報ビットを見れば、そのDCT係数の絶対値が最大値であるために、“−1”が加算されていないことを認識することができる効果がある。
この実施の形態1によれば、データ埋め込み部15は、ビット取り出し部14が可変長データから1ビットを取り出す毎に、その1ビットを埋め込む対象のブロックが同一のブロックに重複しないように所定の鍵により定められた順番で選択するように構成したので、埋め込み対象のブロックが分散されて、再生画像の劣化を分かりづらくすることができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、所定の規則にしたがって選択した埋め込み対象のブロックに可変長データを埋め込むことができない場合、埋め込み対象のブロックを再選択して、当該ブロックに可変長データを埋め込み、数値読み出し部20は、上記ブロックを読み出し対象のブロックとして選択するように構成したので、元の画像コードを破壊することなく、可変長データを埋め込むことができる効果を奏する。
この実施の形態1によれば、ビット取り出し部14は、ヘッダにデータ長を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すように構成したので、可変長データのデータ長が変化しても、その可変長データの終わりを特定することができるようになり、可変長データを正確に検出することができる効果を奏する。
この実施の形態1によれば、データ埋め込み部15は、可変長データを構成するビットをブロックに埋め込む際、その可変長データの中にユニークワードと同一の系列が存在する場合、その系列を別のコードに置き換えるように構成したので、可変長データの本体のデータをユニークワードと誤認することを防止することができる効果を奏する。
この実施の形態1によれば、可変長データを秘匿する必要がある場合、ペイロード用鍵を用いて、その可変長データのペイロードを暗号化する一方、画像を秘匿する必要がある場合、画像復元用鍵を用いて、その可変長データのヘッダを暗号化するように構成したので、ユーザが所有している権限に応じて、例えば、可変長データを読むことはできなくても、可変長データを消去して元の画像コードを復元することができるなど、様々な使用方法を提供することができる効果を奏する。
実施の形態2.
上記実施の形態1では、データ埋め込み部15がビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も高周波成分側の領域に埋め込むものについて示したが、データ埋め込み部15がビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も低周波成分側の領域に埋め込むようにしてもよい。
図7はこの発明の実施の形態2による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。
図7の例では、可変長データを構成するビットが“0”であれば、データ埋め込み部15が“−1”を埋め込み、可変長データを構成するビットが“1”であれば、データ埋め込み部15が“+1”を埋め込むようにしている。
また、データ埋め込み部15は、上記実施の形態1と同様に、鍵により定められた順番で埋め込み対象のブロックを選択し、そのブロックにおいて、“0”でない最後尾のDCT係数を検出すると、そのDCT係数より1つ高周波成分側の領域に、ビット取り出し部14により取り出されたビットに対応する数値“−1”又は“+1”を埋め込むようにしている。
以降、“0”でない最後尾のDCT係数より1つ高周波成分側の領域に、既に、ビット取り出し部14により取り出されたビットに対応する数値“−1”又は“+1”を埋め込んでいる場合には、更に、1つ高周波成分側の領域に、ビット取り出し部14により取り出されたビットに対応する数値“−1”又は“+1”を埋め込むようにしている。
図7の例では、“0”でない最後尾のDCT係数より、1〜4、または、1〜5高周波成分側の領域に、ビット取り出し部14により取り出されたビットに対応する数値“−1”又は“+1”を埋め込んでいる。
また、図7の例では、全てのブロックに対する数値の埋め込み数(巡回数)を同じにするために、一部のブロック(4つの数値が埋められているブロック)に、ダミービットとして“1”を埋め込むようにしている。
検出側では、各ブロックの巡回数が等しいため、各ブロックの最も高い周波数成分からデータを順次読み出すことができる。
図8はデータ埋め込み部15による他の電子透かしの埋め込み方法を示す説明図である。
図8の例では、ダミーデータを埋め込まなくても済むように、“0”でない最後尾のDCT係数より1つ高周波成分側の領域に“0”を埋め込み、その領域より1つ高周波成分側の領域に、順次、ビット取り出し部14により取り出されたビットに対応する数値“−1”又は“+1”を埋め込むようにしている。
検出側では、各ブロックの最も高い周波数成分は可変長データであり、それより低い周波数成分にある最初の“0”が、可変長データと画像コードの分離の印となるので、可変長データを正確に検出することができる。
図9はデータ埋め込み部15による他の電子透かしの埋め込み方法を示す説明図である。
図9の例では、可変長データを構成するビットが“0”であれば、データ埋め込み部15が“0”を埋め込み、可変長データを構成するビットが“1”であれば、データ埋め込み部15が“1”を埋め込むようにしている。
データ埋め込み部15は、可変長データを構成するビットを埋め込む過程で、“0”でない最後尾のDCT係数を検出すると、そのDCT係数が正の値であれば、そのDCT係数に“+1”を加算し、そのDCT係数より1つ高周波側成分の領域に、ビット取り出し部14により取り出されたビットに対応する数値“0”又は“1”を埋め込むようにしている。
以降、“0”でない最後尾のDCT係数より1つ高周波成分側の領域に、既に、ビット取り出し部14により取り出されたビットに対応する数値“0”又は“1”を埋め込んでいる場合には、更に、1つ高周波成分側の領域に、ビット取り出し部14により取り出されたビットに対応する数値“0”又は“1”を埋め込むようにしている。ビット取り出し部14により取り出されたビットに対応する数値が第64係数まで埋め込んだ後は、次のブロックにスキップして埋め込みを継続する。
この場合、画像コードの最後(“0”でない最後尾のDCT係数)は、“2”以上の正の値か、負の値であり、可変長データを構成するビット“0”,“1”と区別することができる。
図9の例では、可変長データを検出する際、“2”以上の正の値と負の値が、画像コードと可変長データの分離の印であり、その分離の位置から1つ高周波成分側の領域からが可変長データである。
そして、その可変長データを構成するビットに対応する数値を順次検出していくが、第64係数の領域から数値を検出した後は、次のブロックにスキップして、その可変長データを構成するビットに対応する数値の検出を継続すれば、全ての可変長データを正確に検出することができる。
また、可変長データを削除して、元の画像コードを復元する場合、分離の印である“2”以上の数値に“−1”を加えて、画像コードを元に戻せば、元の画像コードを正確に復元することができる。
また、複数のシーケンスを重畳する場合、前に埋め込んだシーケンスより、1つ高周波成分側のDCT係数の埋め込みブロックの最初から次のシーケンスを埋め込めばよい。
ただし、上記実施の形態1のように、ダミーデータを入れない代わりに、各シーケンスの順回数の幅を一定にするために、第2シーケンス以降は、分離の印からの距離を一定とする。
図9の例では、可変長データを検出する際、画像コードと可変長データの分離の印を見つけ、その分離の印の位置から高周波成分側に同じ距離の位置から、埋め込みブロック順にデータを読み出して、ユニークワードを検出すれば、それが可変長データのシーケンスの先頭であり、その後のシーケンス番号を読み出して、検出対象のシーケンスか否かを判定する。
検出対象のシーケンスであれば、その後のデータ長を読み込んで、その分のデータを読み込めば、そのシーケンスの可変長データを正確に検出することができる。
なお、MPEGにおいて、PS(プログラムストリーム)やTS(トランスポートストリーム)は、MPEGのES(エレメンタリーストリーム)を固定長にパケット化してしまう関係上、可変長データをPSやTSに埋め込むときに画像のコード長が増加するため、パケットの分離、可変長データの埋め込み、再パケット化の過程が必要である。
したがって、予め、埋め込むデータ量が分かっているときは、その分のダミーデータを予め埋め込んでおいて、PSやTSにした後、ダミーデータを可変長データに変更することで埋め込み、画像のコード長が増加しないようにする。
これにより、そのままのパケット構造を維持することができるため、パケットの分離や再パケット化の過程が不要となる。
また、ダミービットを付加すると、そのダミービットの大きさに応じて画質が劣化することを利用すれば、コンテンツをユーザに提供する際の画像の画質を制御することができる。
例えば、異なる画像を復元する際の鍵を用いて、適当な大きさのダミービットを可変長データとして、徐々に画像に重畳することで、強制的に画像を徐々に劣化させるようにする。
この場合、ユーザは、各画像を復元する際の鍵で、徐々にダミービットを削除して、徐々に元の画像に近い状態に復元することができるが、その鍵の数により、復元可能な画像の画質の限界が制御される。
以上で明らかなように、この実施の形態2によれば、データ埋め込み部15がビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も低周波成分側の領域に埋め込むように構成したので、元の画像コードを破壊することなく、可変長データを埋め込むことができる効果を奏する。
また、この実施の形態2によれば、データ埋め込み部15がビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も低周波成分側の領域に“0”を埋め込み、その領域より高周波成分側の領域にビットに対応する数値を埋め込むように構成したので、ダミーデータを埋め込むことなく、元の画像コードと可変長データを正確に区別して検出することができる効果を奏する。
この実施の形態2によれば、データ埋め込み部15がビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、すべてのブロックに対する数値の埋め込み数が一致するように、一部のブロックにダミービットを埋め込むように構成したので、各ブロックの最も高い周波数成分からデータを順次読み出すことができる効果を奏する。
この実施の形態2によれば、データ埋め込み部15が可変長データであるダミービットを1回以上埋め込んで、徐々に画像を劣化させるように構成したので、ダミービットを埋め込む際の鍵の数により、復元可能な画像の画質の限界を制御することができる効果を奏する。
実施の形態3.
上記実施の形態1では、データ埋め込み部15がビット取り出し部14により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も高周波成分側の領域に埋め込むものについて示したが、データ埋め込み部15が鍵により定められた順番で埋め込み対象のブロックを選択し、係数並び替え部13による並び替え後の当該ブロックにおける所定の係数番号の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むようにしてもよい。
図10はこの発明の実施の形態3による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。
図10の例では、データ埋め込み部15が、できるだけ“0”の係数を多く含む任意の係数番号の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むようにしている。
例えば、任意の係数番号の領域の全てが“0”である場合、ブロック数に等しい数だけ、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むことができる。
即ち、データ埋め込み部15は、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むに際して、画像コードの分布を分析することにより、できるだけ“0”の係数を多く含む係数番号の領域を探索し、その係数番号の“0”の領域に、ビット取り出し部14により取り出されたビットに対応する数値“0”又は“1”を埋め込むようにする。
データ埋め込み部15は、1つの係数番号の領域に埋め込み切れない場合、複数の係数番号の領域に分けて埋め込むようにする。
画像コードと可変長データの分離方法としては、可変長データを構成するビットに対応する数値“0”又は“1”を埋め込む過程で、探索した係数番号の領域が、各ブロックの画像コードにおいて、“0”でない最後尾のDCT係数より低周波成分側の領域である場合、“0”でない最後尾のDCT係数が正の値であれば、そのDCT係数に“+1”を加算し、可変長データを構成するビットに対応する数値を埋め込まずにスキップして、次のブロックに継続して埋め込むようにする。
この場合、“0”でない最後尾のDCT係数は“2”以上の正の値か負の値であり、“2”以上の正の値か負の値であれば、“0”でない最後尾のDCT係数であることが分かるので、画像コードと可変長データを正確に区別して検出することができる。
ただし、探索した係数番号の領域よりも、高周波成分側の領域に、既に本方式の可変長データが埋め込まれている可能性があるが、その埋め込まれているデータが、可変長データであるか、画像コードであるかは、ユニークワードと照合することで判別することができる。
探索した係数番号の領域よりも、高周波成分側の領域に、異なる方式の電子透かしの可変長データが埋め込まれている場合、その埋め込まれているデータが、可変長データであるか否かを識別することができないため、その埋め込まれているデータが、画像コードであると認識せざるを得ない。
この場合、途中の0領域も、画像コードと認識することになるため、可変長データを埋め込めないことになる。
これでは、埋め込める可変長データの容量が削減されてしまうので、別の埋め込み方法として、画像コードの途中の0領域にも、可変長データを構成するビットに対応する数値“0”又は“1”を埋め込むようにする。
即ち、埋め込む位置のDCT係数が0以外のときは、そのDCT係数が正の値であれば、そのDCT係数に“+1”を加えて、そのDCT係数を“−1”以下、または、“+2”以上とすることで、画像コードであることを明確にして、その位置には可変長データを埋め込まないで、次のブロックにスキップするようにする。
検出時には、数値が“0”又は“1”であれば、可変長データを構成するビットに対応する数値であると認識し、数値が“−1”以下、または、“+2”以上であれば、画像コードとして次のブロックにスキップするようにする。
元の画像コードに復元する場合には、“+2”以上の数値に“−1”を加えるようにすればよい。
図11はデータ埋め込み部15による他の電子透かしの埋め込み方法を示す説明図である。
図10の例では、すべての係数番号の領域で、埋め込みブロックの順番が固定であるため、最初の順番のブロックに可変長データの埋め込みが集中し、そのブロックだけ大きく劣化してしまうようになる。
図11の例では、係数番号の領域毎に、埋め込みブロックの順番を決めて、その順序で埋め込んでいくようにしている。
これにより、小さな複数の可変長データを重畳するときも、埋め込むブロックが分散して、画質劣化が特定のブロックに偏ることがなくなる。
図12はデータ埋め込み部15による他の電子透かしの埋め込み方法を示す説明図である。
図12の例では、1シーケンスが1つの係数番号の領域に埋め込み切れない場合、そのシーケンスをいくつかのパーティションに分けて、複数の係数番号の領域に埋め込むようにしている。
このとき、1から順番にパーティション番号を付け、検出する際には、そのパーティション番号の順番に、パーティションを並べて結合することで、元のシーケンスに戻すようにしている。
図13は可変長データのデータ構成を示す説明図である。
図13の例では、ヘッダのシーケンス番号の後の定位置にパーティション番号を配置している。
パーティションの検出が終了した後、継続するパーティションが埋め込まれている係数番号を配置することで、容易に可変長データの検出を行うことができる。
また、他のシーケンスが、どの係数番号の領域に埋め込まれているかなどを示す情報ビットを埋め込めば、各シーケンスの検出をより容易に行うことができる。
以上で明らかなように、この実施の形態3によれば、データ埋め込み部15が鍵により定められた順番で埋め込み対象のブロックを選択し、係数並び替え部13による並び替え後の当該ブロックにおける所定の係数番号の領域に、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むように構成したので、元の画像コードを破壊することなく、可変長データを埋め込むことができる効果を奏する。
また、この実施の形態3によれば、データ埋め込み部15は、可変長データを構成するビットの値が“0”又は“+1”、あるいは、“0”又は“−1”である場合、所定の係数番号の領域が“0”であれば、その領域に上記ビットの値を埋め込み、所定の係数番号の領域が正の値であれば、その領域に“+1”を加え、所定の係数番号の領域が負の値であれば、その領域に“−1”を加え、データ検出部21は、数値読み出し部20により読み出された数値が“+2”以上であれば、上記数値に“−1”を加え、上記数値が“−2”以上であれば、上記数値に“+1”を加えるように構成したので、元の画像コードと可変長データを正確に区別して検出することができる効果を奏する。
この実施の形態3によれば、データ埋め込み部15は、ビット取り出し部14により取り出されたビットに対応する数値を埋め込むブロックが一巡する毎に、埋め込み対象のブロックの順番を変更するように構成したので、小さな複数の可変長データを重畳する場合でも、埋め込むブロックが分散されて、画質劣化が特定のブロックに偏ることを防止することができる効果を奏する。
この実施の形態3によれば、可変長データが複数のシーケンスから構成されている場合、ビット取り出し部14が、シーケンスの番号を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すように構成したので、1シーケンスが1つの係数番号の領域に埋め込み切れない場合でも、1シーケンスのデータを埋め込むことができる効果を奏する。
この実施の形態3によれば、ビット取り出し部14が、シーケンスが2巡回目以降に継続する場合の開始位置と、他のシーケンスの開始位置を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すように構成したので、各シーケンスを容易に検出することができる効果を奏する。
実施の形態4.
上記実施の形態1では、電子透かし埋め込み部11のDCT変換部12が、MPEG埋め込みバッファメモリ3に保持されている原画MPEGコードをブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出するものについて示したが、DCT変換部12が、原画MPEGコードを改ざん検出対象のブロックに分割して、各ブロックの画像コードのハッシュ値を算出し、そのハッシュ値を示す可変長データを生成するようにしてもよい。
この場合、DCT変換部12は可変長データ生成手段を構成している。
電子透かし検出部19の改ざん検出手段(図示せず)は、データ検出部21が上記実施の形態1と同様にして、可変長データを検出するとともに、その可変長データを埋め込む前の原画MPEGコード(復元MPEGコード)を復元すると、その復元MPEGコードのハッシュ値を算出し、そのハッシュ値とデータ検出部21により検出された可変長データが示すハッシュ値を比較して、改ざんの有無を判定する処理を実施する。
図14は改ざん検出ブロックを示す説明図である。
図14(a)は8×8のブロックB1〜B300と改ざん検出ブロックの対応関係を示し、図14(b)は改ざん検出ブロック番号(1〜25)を示している。
図14の例では、改ざん検出ブロック1は、B1、B2、B3、B4、B31、B32、B33、B34、B61、B62、B63、B64の12ブロックで構成されているが、この分割法は任意でよい。
DCT変換部12は、例えば、改ざん検出ブロック1を構成する12個のブロックB1、B2、B3、B4、B31、B32、B33、B34、B61、B62、B63、B64の画像コードを順に結合したデータに対して、SHAハッシュ関数を用いて、16ビットのハッシュ値h(1,1)〜h(1,16)を算出する。
DCT変換部12は、16ビットのハッシュ値h(1,1)〜h(1,16)を算出すると、そのハッシュ値h(1,1)〜h(1,16)を可変長データとして、その改ざん検出ブロック1に埋め込むようにする。
改ざん検出ブロック2〜25についても、改ざん検出ブロック1と同様にして、16ビットのハッシュ値h(2,1)〜h(2,16)、・・・・・、h(25,1)〜h(25,16)を算出し、そのハッシュ値h(2,1)〜h(2,16)、・・・・・、h(25,1)〜h(25,16)を可変長データとして、その改ざん検出ブロック2〜25に埋め込むようにする。
図15はこの発明の実施の形態4による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。
図15の例では、改ざん検出ブロック毎に区切り、その中で、上記実施の形態1〜3と同様の方法で、ハッシュ値を可変長データとして埋め込むようにしている。
電子透かし検出部19のデータ検出部21は、上記実施の形態1〜3と同様の方法で、改ざん検出ブロック毎に可変長データを検出するとともに、画像コードから全ての可変長データを除去して、可変長データを埋め込む前の原画MPEGコード(復元MPEGコード)を復元する。
電子透かし検出部19の改ざん検出手段は、DCT変換部12と同様にして、データ検出部21により復元された復元MPEGコードのハッシュ値h(1,1)〜h(1,16)、・・・・・、h(25,1)〜h(25,16)を算出する。
電子透かし検出部19の改ざん検出手段は、データ検出部21により検出された可変長データが示すハッシュ値(DCT変換部12により算出されたハッシュ値)と、自己が算出した復元MPEGコードのハッシュ値を比較する。
電子透かし検出部19の改ざん検出手段は、双方のハッシュ値が一致していれば、改ざんがなされていないと判断するが、一致していなければ、一致していない部分において、改ざんがなされていると判断する。
以上で明らかなように、この実施の形態4によれば、画像を改ざん検出対象のブロックに分割して、各ブロックの画像コードのハッシュ値を算出し、そのハッシュ値を示す可変長データを生成するDCT変換部12と、データ検出部21により検出された可変長データが埋め込まれる前の画像コードのハッシュ値を算出し、そのハッシュ値とデータ検出部21により検出された可変長データが示すハッシュ値を比較して、改ざんの有無を判定する改ざん検出手段とを設けるように構成したので、一部の画像領域単位で、改ざんを検出することができる効果を奏する。
実施の形態5.
図16はこの発明の実施の形態5による電子透かし装置が可変長データをMPEG画像コードに埋め込む方法を示す説明図である。
図16(a)は表示順のピクチャの並びを示しており、MPEG動画の場合、15フレームを1GOP(グループオブピクチャ)として、最初のフレーム内予測符号化のIピクチャ(I3フレーム)と、前方のフレームを用いる片方向フレーム間予測符号化のPピクチャ(P6、P9、P12、P15フレーム)と、前方と後方の両方のフレームを用いる双方向フレーム間予測符号化のBピクチャ(B1、B2、B4、B5、B7、B8、B10、B11、B13、B14)とから構成されている。
各Pピクチャは、その直前のIピクチャ又はPピクチャを用いて、フレーム間予測を行う。
また、各Bピクチャは、その直前のIピクチャ又はPピクチャと、直後のIピクチャ又はPピクチャを用いて、フレーム間予測を行う。
図16(b)は圧縮順の画像コードの並びを示しており、全てのブロックをDCT符号化するIピクチャが最もデータ量が多く、一部のブロックだけDCT符号化するPピクチャとBピクチャはデータ量が少ない。
PピクチャとBピクチャでは、DCT符号化するブロックがランダムに発生するため、ここに可変長データを埋め込むと複雑になるため、可変長データをIピクチャにのみ埋め込むのが簡明である。
ただし、可変長データをフレーム単位に1対1に埋め込みたい場合、各フレームの可変長データを可変長データ1〜可変長データ15として、これらの可変長データ1〜可変長データ15をIピクチャに埋め込み、各フレームと可変長データが1対1に対応するようにする。
図17は可変長データのデータ構成を示す説明図である。
可変長データのヘッダにGOPのフレーム番号1〜15(4ビット)を追加し、そのフレーム番号が例えば“5”であれば、ヘッダに続くペイロードは、フレーム5に関する可変長データ5であることを示している。
ただし、ヘッダに他のデータがある場合は、予め固定長でデータの配置を決めておき、正確に検出できるようする必要がある。
以上で明らかなように、この実施の形態5によれば、ビット取り出し部14が、ヘッダにMPEGの1GOPのフレーム番号を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すように構成したので、可変長データをMPEG画像コードに埋め込むことができる効果を奏する。
実施の形態6.
上記実施の形態1では、ビット取り出し部14がペイロードの前にヘッダが付加されている可変長データの先頭から順番にビットを取り出すものについて示したが、ビット取り出し部14が、ペイロードに画像コードの新しい量子化マトリックスが格納され、ヘッダに画像コードの元の量子化マトリックスが格納されている可変長データの先頭から順番にビットを取り出すようにしてもよい。
この場合、データ検出部21は、可変長データから元の量子化マトリックスを検出して、画像コードの新しい量子化マトリックスを元の量子化マトリックスに戻すことで、元の画像コードを復元するようにする。
係数データは、元々、DCT係数を各係数位置の量子化マトリックスで除算した数値であり、量子化マトリックスの大きな係数を変更すると、再生画像の劣化が大きくなる。
量子化マトリックスは、JPEGやMPEGの画像コードのブロックよりも上のレーヤーのヘッダ領域に記載されているので、0が多い高周波領域の量子化マトリックスを小さくすれば、係数の値を変更する際の劣化の度合いが減少する。
ただし、画像コードを復元するには、量子化マトリックスも元に戻す必要があるため、元の量子化マトリックスを可変長データとして画像コードに埋め込むようにする。
図18は量子化マトリックスの可変長データのデータ構成を示す説明図である。
図18の例では、64個の係数に対応する量子化値があり、この量子化値を左上から右下に順番に並べ、全てを2進数にして可変長データとしている。
図19は可変長データのデータ構成を示す説明図である。
図19の例では、可変長データのヘッダには、可変長データが量子化マトリックスである旨を示す8ビットのシーケンス番号(この例では、“33”)、この量子化マトリックスが有効となる4ビットのフレーム番号(この例は、“3”であり、GOPの第3ピクチャが該当する)、この量子化マトリックスが有効となる16ビットのブロック番号(この例では、“31”であり、第31ブロックが該当する)が配置されており、元の画像コードのどのフレームのどのブロックの量子化マトリックスがあったかを示し、画像コードを復元するときに、量子化マトリックスを元に戻して、元の画像コードに完全に復元する。
以上で明らかなように、この実施の形態6によれば、ビット取り出し部14が、ペイロードに画像コードの新しい量子化マトリックスが格納され、ヘッダに画像コードの元の量子化マトリックスが格納されている可変長データの先頭から順番にビットを取り出す一方、データ検出部21が、可変長データから元の量子化マトリックスを検出して、画像コードの新しい量子化マトリックスを元の量子化マトリックスに戻すことで、元の画像コードを復元するように構成したので、元の画像コードに復元が可能な方法で、画質劣化が最小限な可変長データの埋め込みを実現することができる効果を奏する。
この発明の実施の形態1による電子透かし装置の埋め込み側を示す構成図である。 この発明の実施の形態1による電子透かし装置の検出側を示す構成図である。 可変長データのデータ構成を示す説明図である。 この発明の実施の形態1による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態1による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態1による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態2による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態2による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態2による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態3による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態3による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態3による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 可変長データのデータ構成を示す説明図である。 改ざん検出ブロックを示す説明図である。 この発明の実施の形態4による電子透かし装置のデータ埋め込み部15による電子透かしの埋め込み方法を示す説明図である。 この発明の実施の形態5による電子透かし装置が可変長データをMPEG画像コードに埋め込む方法を示す説明図である。 可変長データのデータ構成を示す説明図である。 量子化マトリックスの可変長データのデータ構成を示す説明図である。 可変長データのデータ構成を示す説明図である。 従来の電子透かし装置の埋め込み側を示す構成図である。 従来の電子透かし装置の検出側を示す構成図である。 MPEG・JPEGの符号化方式を示す説明図である。 従来の電子透かし装置における付加データの埋め込み手順を示すフローチャートである。 従来の電子透かし装置における付加データの検出手順を示すフローチャートである。 従来の電子透かし装置により付加データが埋め込まれる様子を示す説明図である。 他の従来例により付加データが埋め込まれる様子を示す説明図である。
符号の説明
1 ビデオカメラ、2 MPEGエンコーダ、3 MPEG埋め込みバッファメモリ、4 デジタルスチルカメラ、5 静止画エンコーダ、6 静止画埋め込みバッファメモリ、7 マイク、8 音声エンコーダ、9 音声埋め込みバッファメモリ、10 電波時計・GPS、11 電子透かし埋め込み部、12 DCT変換部(DCT変換手段、可変長データ生成手段)、13 係数並び替え部(係数並び替え手段)、14 ビット取り出し部(ビット取り出し手段)、15 データ埋め込み部(データ埋め込み手段)、16 送信バッファメモリ、17 電子透かし入り画像データ、18 受信バッファメモリ、19 電子透かし検出部、20 数値読み出し部(数値読み出し手段)、21 データ検出部(データ検出手段)、22 MPEG復号バッファメモリ、23 MPEGデコーダ、24 ディスプレイ、25 静止画復号バッファメモリ、26 静止画デコーダ、27 モニタ、28 音声復号バッファメモリ、29 音声デコーダ、30 スピーカ、31 時刻表示器、101 JPEGコード、102 低解像度静止画、103 テキストデータ、104 多重器、105 付加データ多重用メモリ、106 透かし埋め込みCPU、107 電子透かし入りJPEGコード、108 透かし検出CPU、109 復元JPEGコード、110 付加データ分離用メモリ、111 分離器、112 検出低解像度静止画、113 検出テキストデータ。

Claims (32)

  1. 電子透かしを埋め込む対象の画像をブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出するDCT変換手段と、上記DCT変換手段により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替え手段と、ヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出し手段と、所定の規則にしたがって埋め込み対象のブロックを選択し、上記係数並び替え手段による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、上記ビット取り出し手段により取り出されたビットに対応する数値を埋め込むデータ埋め込み手段とを備えた電子透かし装置。
  2. データ埋め込み手段によりブロックが選択される際の規則と同一の規則にしたがって読み出し対象のブロックを選択し、上記ブロックにおける領域の数値を読み出す数値読み出し手段と、上記数値読み出し手段により読み出された数値の系列とユニークワードを比較して、上記系列の中から可変長データを検出するとともに、上記可変長データが埋め込まれる前の画像の画像コードを検出するデータ検出手段とを設けたことを特徴とする請求項1記載の電子透かし装置。
  3. データ埋め込み手段は、ビット取り出し手段により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も高周波成分側の領域に埋め込むことを特徴とする請求項1または請求項2記載の電子透かし装置。
  4. データ埋め込み手段は、ビット取り出し手段により取り出されたビットが“0”であれば、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に“−1”を埋め込み、上記ビットの値が“1”であれば、上記領域に“+1”を埋め込み、データ検出手段は、数値読み出し手段により読み出された数値が“0”であれば、上記数値は可変長データの一部を構成しておらず、“0”の領域であると認識することを特徴とする請求項3記載の電子透かし装置。
  5. データ埋め込み手段は、“0”でない最後尾のDCT係数が正の値であれば、上記DCT係数に“+1”を加え、“0”でない最後尾のDCT係数が負の値であれば、上記DCT係数に“−1”を加え、データ検出手段は、数値読み出し手段により読み出された数値が“+2”以上であれば、上記数値に“−1”を加え、上記数値が“−2”以下であれば、上記数値に“+1”を加えることを特徴とする請求項4記載の電子透かし装置。
  6. データ埋め込み手段は、可変長データを構成するビットの値が“0”又は“+1”である場合、“0”でない最後尾のDCT係数が正の値であれば、上記DCT係数に“+1”を加え、データ検出手段は、数値読み出し手段により読み出された数値が“+2”以上であれば、上記数値に“−1”を加えることを特徴とする請求項3記載の電子透かし装置。
  7. データ埋め込み手段は、可変長データを構成するビットの値が“0”又は“−1”である場合、“0”でない最後尾のDCT係数が負の値であれば、上記DCT係数に“−1”を加え、データ検出手段は、数値読み出し手段により読み出された数値が“−2”以下であれば、上記数値に“+1”を加えることを特徴とする請求項3記載の電子透かし装置。
  8. データ埋め込み手段は、“0”でない最後尾のDCT係数の絶対値が最大値である場合、DCT係数を加算する処理を実施せずに、上記DCT係数の絶対値が最大値である旨を示す情報ビットを上記DCT係数より1つ高周波成分側の領域に含めることを特徴とする請求項5から請求項7のうちのいずれか1項記載の電子透かし装置。
  9. データ埋め込み手段は、ビット取り出し手段が可変長データから1ビットを取り出す毎に、その1ビットを埋め込む対象のブロックが同一のブロックに重複しないように所定の鍵により定められた順番で選択することを特徴とする請求項1から請求項8のうちのいずれか1項記載の電子透かし装置。
  10. データ埋め込み手段は、所定の規則にしたがって選択した埋め込み対象のブロックに可変長データを埋め込むことができない場合、埋め込み対象のブロックを再選択して、当該ブロックに可変長データを埋め込み、数値読み出し手段は、上記ブロックを読み出し対象のブロックとして選択することを特徴とする請求項2記載の電子透かし装置。
  11. ビット取り出し手段は、ヘッダにデータ長を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すことを特徴とする請求項1から請求項10のうちのいずれか1項記載の電子透かし装置。
  12. データ埋め込み手段は、ビット取り出し手段により取り出されたビットに対応する数値を埋め込む際、上記可変長データの中にユニークワードと同一の系列が存在する場合、上記系列を別のコードに置き換えることを特徴とする請求項1から請求項11のうちのいずれか1項記載の電子透かし装置。
  13. 可変長データを秘匿する必要がある場合、ペイロード用鍵を用いて、上記可変長データのペイロードを暗号化する一方、画像を秘匿する必要がある場合、画像復元用鍵を用いて、上記可変長データのヘッダを暗号化する暗号化手段を設けたことを特徴とする請求項1から請求項12のうちのいずれか1項記載の電子透かし装置。
  14. データ埋め込み手段は、ビット取り出し手段により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も低周波成分側の領域に埋め込むことを特徴とする請求項1または請求項2記載の電子透かし装置。
  15. データ埋め込み手段は、ビット取り出し手段により取り出されたビットに対応する数値を埋め込む際、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域の中で、未だビットに対応する数値を埋め込んでいない最も低周波成分側の領域に“0”を埋め込み、上記領域より高周波成分側の領域にビットに対応する数値を埋め込むことを特徴とする請求項1または請求項2記載の電子透かし装置。
  16. データ埋め込み手段は、ビット取り出し手段により取り出されたビットに対応する数値を埋め込む際、すべてのブロックに対する数値の埋め込み数が一致するように、一部のブロックにダミービットを埋め込むことを特徴とする請求項1または請求項2記載の電子透かし装置。
  17. ビット取り出し手段は、ダミービットが付加されている可変長データの先頭から順番にビットを取り出すことを特徴とする請求項16記載の電子透かし装置。
  18. データ埋め込み手段は、可変長データであるダミービットを1回以上埋め込んで、徐々に画像を劣化させることを特徴とする請求項1または請求項2記載の電子透かし装置。
  19. 電子透かしを埋め込む対象の画像をブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出するDCT変換手段と、上記DCT変換手段により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替え手段と、ヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出し手段と、所定の規則にしたがって埋め込み対象のブロックを選択し、上記係数並び替え手段による並び替え後の当該ブロックにおける所定の係数番号の領域に、上記ビット取り出し手段により取り出されたビットに対応する数値を埋め込むデータ埋め込み手段とを備えた電子透かし装置。
  20. データ埋め込み手段によりブロックが選択される際の規則と同一の規則にしたがって読み出し対象のブロックを選択し、上記ブロックにおける領域の数値を読み出す数値読み出し手段と、上記数値読み出し手段により読み出された数値の系列とユニークワードを比較して、上記系列の中から可変長データを検出するとともに、上記可変長データが埋め込まれる前の画像の画像コードを検出するデータ検出手段とを設けたことを特徴とする請求項19記載の電子透かし装置。
  21. データ埋め込み手段は、すべてのブロックで共通するブロック内の係数番号を決定することを特徴とする請求項19または請求項20記載の電子透かし装置。
  22. データ埋め込み手段は、可変長データを構成するビットの値が“0”又は“+1”、あるいは、“0”又は“−1”である場合、所定の係数番号の領域が“0”であれば、上記領域に上記ビットの値を埋め込み、所定の係数番号の領域が正の値であれば、上記領域に“+1”を加え、所定の係数番号の領域が負の値であれば、上記領域に“−1”を加え、データ検出手段は、数値読み出し手段により読み出された数値が“+2”以上であれば、上記数値に“−1”を加え、上記数値が“−2”以下であれば、上記数値に“+1”を加えることを特徴とする請求項20記載の電子透かし装置。
  23. データ埋め込み手段は、ビット取り出し手段により取り出されたビットに対応する数値を埋め込むブロックが一巡する毎に、埋め込み対象のブロックの順番を変更することを特徴とする請求項19または請求項20記載の電子透かし装置。
  24. ビット取り出し手段は、可変長データが複数のシーケンスから構成されている場合、シーケンスの番号を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すことを特徴とする請求項1から請求項23のうちのいずれか1項記載の電子透かし装置。
  25. ビット取り出し手段は、当該シーケンスが2巡回目以降に継続する場合の開始位置と、他のシーケンスの開始位置を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すことを特徴とする請求項24記載の電子透かし装置。
  26. 画像を改ざん検出対象のブロックに分割して、各ブロックの画像コードのハッシュ値を算出し、上記ハッシュ値を示す可変長データを生成する可変長データ生成手段と、データ検出手段により検出された可変長データが埋め込まれる前の画像の画像コードのハッシュ値を算出し、上記ハッシュ値と上記データ検出手段により検出された可変長データが示すハッシュ値を比較して、改ざんの有無を判定する改ざん検出手段とを設けたことを特徴とする請求項2または請求項20記載の電子透かし装置。
  27. ビット取り出し手段は、ヘッダにMPEGの1GOPのフレーム番号を示す情報ビットが付加されている可変長データの先頭から順番にビットを取り出すことを特徴とする請求項1から請求項26のうちのいずれか1項記載の電子透かし装置。
  28. ビット取り出し手段は、ペイロードに画像コードの新しい量子化マトリックスが格納され、ヘッダに画像コードの元の量子化マトリックスが格納されている可変長データの先頭から順番にビットを取り出すことを特徴とする請求項1から請求項26のうちのいずれか1項記載の電子透かし装置。
  29. データ検出手段は、可変長データから元の量子化マトリックスを検出して、画像コードの新しい量子化マトリックスを元の量子化マトリックスに戻すことで、元の画像コードを復元することを特徴とする請求項28記載の電子透かし装置。
  30. DCT変換手段が電子透かしを埋め込む対象の画像をブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出するDCT変換ステップと、係数並び替え手段が上記DCT変換手段により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替えステップと、ビット取り出し手段がヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出しステップと、データ埋め込み手段が所定の規則にしたがって埋め込み対象のブロックを選択し、上記係数並び替え手段による並び替え後の当該ブロックにおけるDCT係数の中で、“0”でない最後尾のDCT係数より高周波成分側の“0”の領域に、上記ビット取り出し手段により取り出されたビットに対応する数値を埋め込むデータ埋め込みステップとを備えた電子透かし方法。
  31. DCT変換手段が電子透かしを埋め込む対象の画像をブロック単位に分割し、各ブロックの画素の成分をDCT変換して、各ブロックの画素のDCT係数を算出するDCT変換ステップと、係数並び替え手段が上記DCT変換手段により算出された各ブロックの画素のDCT係数をジグザグスキャン順序に並び替える係数並び替えステップと、ビット取り出し手段がヘッダにユニークワードが付加されている可変長データの先頭から順番にビットを取り出すビット取り出しステップと、データ埋め込み手段が所定の規則にしたがって埋め込み対象のブロックを選択し、上記係数並び替え手段による並び替え後の当該ブロックにおける所定の係数番号の領域に、上記ビット取り出し手段により取り出されたビットに対応する数値を埋め込むデータ埋め込みステップとを備えた電子透かし方法。
  32. 数値読み出し手段がデータ埋め込み手段によりブロックが選択される際の規則と同一の規則にしたがって読み出し対象のブロックを選択し、上記ブロックにおける領域の数値を読み出す数値読み出しステップと、データ検出手段が上記数値読み出し手段により読み出された数値の系列とユニークワードを比較して、上記系列の中から可変長データを検出するとともに、上記可変長データが埋め込まれる前の画像のデータを検出するデータ検出ステップとを設けたことを特徴とする請求項30または請求項31記載の電子透かし方法。
JP2008234983A 2008-09-12 2008-09-12 電子透かし装置及び電子透かし方法 Pending JP2010068421A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008234983A JP2010068421A (ja) 2008-09-12 2008-09-12 電子透かし装置及び電子透かし方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008234983A JP2010068421A (ja) 2008-09-12 2008-09-12 電子透かし装置及び電子透かし方法

Publications (1)

Publication Number Publication Date
JP2010068421A true JP2010068421A (ja) 2010-03-25

Family

ID=42193574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008234983A Pending JP2010068421A (ja) 2008-09-12 2008-09-12 電子透かし装置及び電子透かし方法

Country Status (1)

Country Link
JP (1) JP2010068421A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104361268A (zh) * 2014-11-28 2015-02-18 广州视源电子科技股份有限公司 一种水印的嵌入和读取方法、装置及系统
JP2015065545A (ja) * 2013-09-25 2015-04-09 大日本印刷株式会社 放送番組ポイント付与システム、利用者装置及びコンピュータプログラム
JP2017162048A (ja) * 2016-03-08 2017-09-14 三菱電機株式会社 バッファリングシステム
CN108900845A (zh) * 2018-07-16 2018-11-27 东莞理工学院 数字视频信息中元数据的可逆嵌入与提取方法及装置
CN112637605A (zh) * 2020-11-11 2021-04-09 中国科学院信息工程研究所 基于分析cavlc码字和非零dct系数个数的视频隐写分析方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015065545A (ja) * 2013-09-25 2015-04-09 大日本印刷株式会社 放送番組ポイント付与システム、利用者装置及びコンピュータプログラム
CN104361268A (zh) * 2014-11-28 2015-02-18 广州视源电子科技股份有限公司 一种水印的嵌入和读取方法、装置及系统
JP2017162048A (ja) * 2016-03-08 2017-09-14 三菱電機株式会社 バッファリングシステム
CN108900845A (zh) * 2018-07-16 2018-11-27 东莞理工学院 数字视频信息中元数据的可逆嵌入与提取方法及装置
CN112637605A (zh) * 2020-11-11 2021-04-09 中国科学院信息工程研究所 基于分析cavlc码字和非零dct系数个数的视频隐写分析方法和装置

Similar Documents

Publication Publication Date Title
Lin et al. Issues and solutions for authenticating MPEG video
JP3768705B2 (ja) 電子透かし埋め込み装置、出力制御装置及びコンピュータ読み取り可能な記憶媒体
CN102144237B (zh) 压缩媒体的有效水印方法
US7801326B2 (en) Digital watermark and film mark
JPH11284843A (ja) ウォ―タマ―クをディジタル画像シ―ケンスのビットストリ―ム表現に組み込むための方法及び装置
KR101336243B1 (ko) 부가 정보가 삽입된 영상 데이터의 전송 스트림 구조,송수신 방법 및 장치
US20070189377A1 (en) Data processing apparatus
TW200822756A (en) Creation and handling of a bitstream comprising video frames and auxiliary data
CN100493185C (zh) 修改素材的方法和装置
JP2017500773A (ja) デジタルオーディオ或いはオーディオ並びに/又はビデオコンテンツにマークを付ける装置及び方法
JP2010068421A (ja) 電子透かし装置及び電子透かし方法
US20130343725A1 (en) Correlation-based system for watermarking continuous digital media
JP4023324B2 (ja) 透かし埋め込み及び画像圧縮部
JP2009540644A (ja) 符号化装置及び検出装置
JP4997243B2 (ja) 画像符号化装置、その方法およびその集積回路
EP2451182B1 (en) Robust watermark
CN116437019A (zh) 一种全0行和全0列编码的密文域可逆信息隐藏方法
JP2004198760A (ja) 圧縮暗号化装置及び伸長復号化装置
JP4184339B2 (ja) 損失のないデータ埋込み
WO2007085632A1 (en) Method of watermarking digital data
JP3754847B2 (ja) データ処理方法、データ処理装置およびその記憶媒体
KR20050083866A (ko) 적응 워터마킹
JP2010187131A (ja) 電子透かし埋め込み検出方法とその装置、プログラム、記録媒体
Kuo et al. High embedding reversible data hiding scheme for JPEG
JP2004080094A (ja) 情報処理装置及び情報処理方法並びにプログラム及びコンピュータ読み取り可能な記録媒体