JP3683766B2 - 画像処理装置およびその方法 - Google Patents
画像処理装置およびその方法 Download PDFInfo
- Publication number
- JP3683766B2 JP3683766B2 JP2000012520A JP2000012520A JP3683766B2 JP 3683766 B2 JP3683766 B2 JP 3683766B2 JP 2000012520 A JP2000012520 A JP 2000012520A JP 2000012520 A JP2000012520 A JP 2000012520A JP 3683766 B2 JP3683766 B2 JP 3683766B2
- Authority
- JP
- Japan
- Prior art keywords
- image data
- embedding
- data
- embedded
- hash value
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/005—Robust watermarking, e.g. average attack or collusion attack resistant
- G06T1/0057—Compression invariant watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0052—Embedding of the watermark in the frequency domain
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Multimedia (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Editing Of Facsimile Originals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Processing Or Creating Images (AREA)
- Television Signal Processing For Recording (AREA)
- Facsimile Image Signal Circuits (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、著作権情報などの認証情報(埋め込みデータ)を埋め込んだ画像データ等を、圧縮のために量子化しても、埋め込まれた認証データが失われないようにした画像処理装置およびその方法に関する。
【0002】
【従来の技術】
例えば、国際公開WO97/49235号公報(文献1)は、ピクセル・ブロック・コーディング(Pixel Block Coding;PBC)により、画像データ等のコンテンツデータに著作権情報など(以下、一般的に認証情報あるいは埋め込みデータ等とも記す)を、視覚的に感知できないように埋め込む方式(以下、このようにコンテンツデータに感知できないように認証方法を埋め込む方式を「エレクトロニックウォーターマーキング方式」とも記す)を開示する。
【0003】
また、国際公開WO98/116928号公報(文献2)は、文献1等に開示されたエレクトロニックウォーターマーキング方式を応用して、画像データの改変を禁止し、著作物を有効に保護する方法を開示する。
また、特開平10−164549号公報(文献3)は、文献1等に開示されたエレクトロニックウォーターマーキング方式を改良し、画像データに認証情報を一体不可分に埋め込むことにより、画像データの改変を検出する方法を開示する。
【0004】
また、これらの文献の他、特開平09−151747号公報、特開平10−83310号公報、特開平10−106149号公報、特開平10−161933号公報、特開平10−164349号公報、特開平10−285562号公報、特開平10−334272号公報、特開平10−240626号公報、特開平10−240129号公報(文献4〜12)等も、エレクトロニックウォーターマーキング方式に関する発明を開示する。
【0005】
しかしながら、これらの文献に開示された方式は、認証情報を埋め込んだ後の画像データの圧縮符号化を充分に考慮していなかった。つまり、これらの方式により埋め込まれた認証情報が量子化値より少ない場合には、埋め込まれた画像データが量子化の結果、消失してしまう可能性がある。
【0006】
【発明が解決しようとする課題】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、圧縮符号化に適した画像処理装置およびその方法を提供することを目的とする。
特定的には、本発明は、認証情報を埋め込んだ後に量子化処理をしても、埋め込まれた認証情報が失われることがない画像処理装置およびその方法を提供することを目的とする。
【0007】
【課題を達成するための手段】
上記目的を達成するために、本発明にかかる画像処理装置は、所定の処理により加わる誤差によって量子化処理後の値が変化しないように画像データの値を変換する変換手段と、画像データに対して前記所定の処理を行う処理手段と、前記所定の処理がなされた画像データを量子化処理する量子化手段とを有する。
【0008】
好適には、前記処理手段は、前記画像データを分割し、分割した画像データそれぞれに埋め込みデータを埋め込む埋込処理を行い、前記分割された画像データそれぞれに埋め込まれた埋め込みデータを検出する検出手段をさらに有する。
【0009】
好適には、前記変換手段は、画像データに含まれる画素それぞれの形式を変換する形式変換手段と、前記量子化処理に用いられる量子化値に基づいて、前記形式が変換された画素データの値を調節処理する調節手段とを有し、前記形式が変換された画素データそれそれが、前記所定の処理により加わる誤差の値により量子化処理後の値が変化しないようになるまで、前記形式変換処理と、前記調節処理とを繰り返す。
【0010】
好適には、前記処理手段は、前記画像データに対して埋込データを埋め込む埋込処理を前記所定の処理として行う。
【0011】
好適には、前記処理手段は、所定の鍵情報と前記画像データとに基づいてハッシュ値を計算するハッシュ値計算手段と、計算の結果として得られた前記ハッシュ値を、前記画像データに埋め込む埋込処理手段とを有する。
【0012】
好適には、前記画像データに埋め込まれた埋込データを検出する検出手段をさらに有する。
【0013】
好適には、前記量子化された画像データを逆量子化する逆量子化手段と、前記逆量子化された画像データに埋め込まれたハッシュ値を抽出する抽出手段と、前記画像データと、前記ハッシュ値の計算に用いられた鍵情報とに基づいて、ハッシュ値を計算する計算手段と、前記抽出されたハッシュ値と前記計算されたハッシュ値とに基づいて、前記量子化された画像データに改ざんが加えられたか否かを検出する改ざん検出手段とを有する。
【0014】
また、本発明にかかる画像処理方法は、所定の処理により加わる誤差によって量子化処理後の値が変化しないように画像データの値を変換し、画像データに対して前記所定の処理を行い、前記所定の処理がなされた画像データを量子化処理する。
【0015】
また、本発明にかかる記録媒体は、所定の処理により加わる誤差によって量子化処理後の値が変化しないように画像データの値を変換する変換ステップと、画像データに対して前記所定の処理を行う処理ステップと、前記所定の処理がなされた画像データを量子化処理する量子化ステップとをコンピュータに実行させるプログラムを記録する。
【0016】
【発明の実施の形態】
[第1実施形態]
以下、本発明の第1実施形態を説明する。
【0017】
[改変判定装置1]
図1は、本発明にかかる画像処理方法を実現する画像処理装置1の構成を示す図である。
図1に示すように、画像処理装置1は、CRT表示装置あるいは液晶表示装置等の表示装置100、キーボードおよびマウス等を含む入力装置102、ディジタルカメラインターフェースIF(カメラIF)104、メモリカードインターフェース(メモリカードIF)106、MO装置およびCD装置等の記憶装置108、および、メモリ112およびマイクロプロセッサ(CPU)114等を含むコンピュータ本体(PC本体)110から構成され、必要に応じて、さらに通信装置116が付加される。
つまり、画像処理装置1は、一般的なコンピュータに、カメラIF104およびメモリカードIF106を付加した構成を採る。
【0018】
画像処理装置1は、これらの構成部分により、ディジタルカメラ140が撮影した画像データ(JPEG、BMPあるいはYUVなど形式を問わない)を、カメラIF104を介して受け入れる。あるいは、画像処理装置1は、ディジタルカメラ140がメモリカード142に記録した画像データを、メモリカードIF106を介して受け入れる。
【0019】
さらに、画像処理装置1は、光磁気ディスク(MO)あるいはコンパクトディスク(CD)等の記録媒体120に記録されて記憶装置108に供給される埋込・検出プログラム2(図2等を参照して後述する)を、メモリ112にロードして実行し、受け入れた画像データに対して、量子化処理しても失われることがないように電子透かし(埋め込みデータ)の埋め込み処理を行う。
【0020】
また、画像処理装置1は、埋込・検出プログラム2を実行し、画像データに埋め込まれた電子透かしを検出し、画像データに対して改ざんが加えられたか否か等を判定する。
【0021】
[埋込・検出プログラム2]
まず、埋込・検出プログラム2の構成および動作を説明する。
図2は、図1に示した画像処理装置1が実行し、本発明にかかる画像処理方法を実現する埋込・検出プログラム2の構成を示す図である。
図2に示すように、埋込・検出プログラム2は、OS80、埋込・抽出部3、鍵情報データベース(DB)22および画像データベース(DB)24から構成される。
埋込・抽出部3は、埋込パラメータDB20、制御部26、埋込部30および抽出部40から構成される。
【0022】
[OS80]
OS80は、例えば、OS/2(IBM社)あるいはウィンドウズ(マイクロソフト社)等のオペレーティングシステムソフトウェアであって、埋込・検出プログラム2の各構成部分の実行制御を行う。
【0023】
[制御部26]
埋込・抽出部3の制御部26は、例えば、表示装置100に操作用のGUI画像(図示せず)を表示し、表示されたGUI画像に対するユーザの操作を受け入れ、必要に応じて、受け入れた操作を示す操作データを、埋込・検出プログラム2の各構成部分に供給する。
また、制御部26は、受け入れたユーザの操作に応じて、埋込・検出プログラム2の各構成部分の動作を制御する。
【0024】
[画像DB24]
画像DB24は、埋込部30が電子透かしを埋め込んだ圧縮画像データ(JPEGデータ)を記憶装置108に挿入された記録媒体120、あるいは、メモリカードIF106に挿入されたメモリカード142に記憶・管理し、記憶・管理した画像データを読み出して抽出部40に対して出力する。
【0025】
[鍵情報DB22]
鍵情報DB22は、画像DB22が管理するJPEGデータと、埋込部30が、このJPEGデータへ電子透かしを埋め込む際に、乱数を発生させるために用いる鍵(例えば64ビットの数値)とを対応付けた鍵情報を記憶装置108等に記憶・管理し、記憶・管理した鍵情報を読み出して埋込部30および抽出部40に対して出力する。
【0026】
[埋込パラメータDB20]
埋込パラメータDB20は、電子透かしの埋め込みに用いるパラメータを記憶・管理し、埋込部30に対して出力する。
【0027】
[埋込部30]
図3は、図2に示した埋込部30の構成を示す図である。
図4は、注目DCT係数を示す図である。
図3に示すように、埋込部30は、埋込前処理部32、ハッシュ(Hash)値計算部300、ハッシュ値埋込部302および出力フォーマット変換部304から構成される。
埋込部30は、これらの構成部分により、まず、各種(JPEG、RGB(ビットマップ(BMP))および輝度・色差(YUV)等)の形式の画像データから、予め定められたハッシュ関数とキーとを用いて、注目するDCT(図4)係数のハッシュ値を計算する。
【0028】
さらに、埋込部30は、計算の結果として得たハッシュ値を、画像データ自体に対して電子透かしの手法を用いて埋め込む、あるいは、画像データのヘッダ部分に埋め込む等の方法により、画像データに付加する。
なお、埋込部30を画像データのY,U,V各成分から得られたDCT係数に対して、電子透かしの手法を用いてハッシュ値を埋め込むように構成することも、Y,Cr,Cb各成分から得られたDCT係数に対してハッシュ値を埋め込むように構成することも可能であるが、説明の明確化のために、以下、埋込部30が、計算して得たハッシュ値を、画像データのY,U,V各成分から得られたDCT係数に対して埋め込む場合を具体例とする。
【0029】
[埋込前処理32]
図5は、図3に示した埋込前処理部32の構成を示す図である。
また、図5に示すように、埋込パラメータDB20(図2)の埋込前処理32は、フォーマット認識部320、逆量子化部(Q-1)322、量子化値計算部324、JPEG’/BMP変換部326、YUV/BMP変換部328、BMP/JPEG’変換部330およびDCT係数調整部332から構成される。
【0030】
埋込部30は、これらの構成部分により、DCT変換してハッシュ値を埋め込んで電子透かしを埋め込み、さらに、圧縮符号化してJPEG形式の圧縮画像データ(JPEGデータ)とした場合であっても、埋め込んだハッシュ値が失われない状態(安定状態)になるように、画像データ(BMPデータ)に対して埋込前処理を行う。
【0031】
[フォーマット認識部320]
埋込前処理32において、フォーマット認識部320は、入力された各種形式の画像データ(JPEGデータ,BMPデータ,YUV形式の画像データ(YUVデータ)等)のデータフォーマットを識別し、入力された画像データがいずれの形式であるかを判断し、JPEGデータが入力された場合には、入力されたJPEGデータを復号部322に対して出力し、BMPデータが入力された場合には、入力されたBMPデータをBMP/JPEG’変換部330に対して出力し、YUVデータが入力された場合には、入力されたYUVデータをYUV/BMP変換部328に対して出力する。
【0032】
さらに、フォーマット認識部320は、BMPデータにおいてハッシュ値を埋め込む領域を、例えば16×16画素構成のMCU単位で指定する領域指定データAを受け、領域指定データAが示すMCUそれぞれに含まれるDCT係数が安定状態であるか否かを示すMCUテーブルT(T[X][Y]、例えば、BMPデータが720×480画素構成である場合にはX=45,Y=30)を作成する。
【0033】
なお、領域指定データAにより指定される領域は、JPEG’/BMP変換部326およびYUV/BMP変換部328による変換処理の対象とはならない。画質に与える影響を最小にすることができるという意味で、領域指定データAを、画面の端の領域を指定するように作成すると、そうでない場合に比べてより好適である。
フォーマット認識部320は、作成したMCUテーブルTを、JPEGデータ、BMPデータおよびYUVデータそれぞれに付して、復号部322、BMP/JPEG’変換部330およびYUV/BMP変換部328にそれぞれに対して出力する。
【0034】
上述のように、MCUテーブルTは、例えば45×30のマトリクス形式で表され、MCUテーブルTの各要素T[X][Y]それぞれは、例えば、対応するMCUのDCT係数データが安定状態である場合には値1、安定でない場合には値0を採る。
フォーマット認識部320は、下式1に示すように、MCUテーブルTの初期値として、領域指定データAが示すMCUに対応するMCUテーブルTの要素T[X][Y]の値を1とし、これら以外のMCUテーブルの要素T[X][Y]の値を0とする。
【0035】
【数1】
【0036】
[復号部322]
JPEGデータは、DCT係数に対して量子化処理およびハフマン(Huffman)符号化処理を施すことにより生成される。復号部322は、まず、フォーマット認識部320から入力されたJPEGデータをハフマン復号する。
また、復号部322は、復号したJPEGデータのY,U,V各成分からそれらの量子化値q[k]を計算し、埋込量子化値計算部324に対して出力する。また、復号部322は、計算の結果として得た量子化値q[k]それぞれを用いて、ハフマン復号したJPEGデータのY,U,V各成分を逆量子化して、Y,U,V各成分のDCT係数JPEG’を生成し、MCUテーブルTと対応づけてJPEG’/BMP変換部326に対して出力する。
【0037】
[YUV/BMP変換部328]
YUV/BMP変換部328は、YUVデータを、下式2に示すようにBMPデータ(RGB)に変換し、MCUテーブルTと対応付けてBMP/JPEG’変換部330に対して出力する。
なお、YUV/BMP変換部328によりYUVデータをBMPデータに変換する理由は、YUVデータのY,U,V各成分が、オーバーフローあるいはアンダーフローを起こしていなくても(0≦Y<256,−128≦U,V<128)、BMPデータに変換した場合に、BMPデータのR,G,B各成分にオーバーフローあるいはアンダーフローが生じる場合があるので、このような場合においても、最終的に得られるDCT係数を安定状態とすることができるようにするためである。
【0038】
【数2】
R = (int)(Y + V*1.4020)
G = (int)(Y - U*0.3441 - V*0.7139)
B = (int)(Y + U*1.7718 - V*0.0012) (2)
但し、
R = R>255 ? 255 : R<0 ? 0 : R
G = G>255 ? 255 : G<0 ? 0 : G
B = G>255 ? 255 : B<0 ? 0 : B
ここで、A = B ? C : Dは、C codeのものと同じで、
A= C (if B is TRUE)
A= D (if B is NOT TRUE)
である。
【0039】
[JPEG’/BMP変換部326]
JPEG’/BMP変換部326は、復号部322およびDCT係数調整部332から入力されるDCT係数JPEG’の内、領域指定データAが示す領域以外のMCUのY,U,V成分それぞれのDCT係数を逆DCT(IDCT)処理する。
JPEG’/BMP変換部326は、さらに、IDCT処理の結果として選られたY,U,V成分を、YUV/BMP変換部328と同様に上記式2に従ってBMPデータに変換し、MCUテーブルTと対応づけてBMP/JPEG’変換部330に対して出力する。
【0040】
[BMP/JPEG’変換部330]
BMP/JPEG’変換部330は、JPEG’/BMP変換部326、フォーマット認識部320またはYUV/BMP変換部328から入力されるBMPデータの内、同じくこれらから入力されるMCUテーブルTの値0の要素T[X][Y](T[X][Y]=0)に対応するMCUに含まれるBMPデータのR,G,B成分それぞれを、下式3に示すように、Y,U,V各成分に変換し、さらに、変換の結果として選られたY,U,V各成分を、8×8構成のDCTブロックごとにDCT処理してDCT係数JPEG’を生成する。
つまり、BMP/JPEG’変換部330は、入力されるBMPデータの内、まだ安定状態になっていないBMPデータをDCT係数JPEG’に変換する。BMP/JPEG’変換部330は、変換処理の結果として得られたDCT係数JPEG’を、MCUテーブルTと対応づけてDCT係数調整部332に対して出力する。
【0041】
【数3】
Y = R*0.2990 + G*0.5870 +B*0.1140
U = -R*0.1684 - G*0.3316 +B*0.5000
V = R*0.5000 - G*0.4187 -B*0.0813 (3)
【0042】
[埋込量子化値計算部324]
埋込量子化値計算部324は、領域指定データAにより示されるDCT係数(注目DCT係数)dct_Coeffiの埋込量子化値q_emb[k]を算出する。
さらに埋込量子化値計算部324の処理を詳細に説明する。
埋込量子化値計算部324は、注目DCT係数dct_coeffiおよびデコーダ最大計算誤差δを、埋込パラメータDB20(図2)から受ける。
【0043】
[注目DCT係数dct_coeffi]
ここでは、注目DCT係数dct_coeffiを詳細に説明する。
注目DCT係数dct_coeffiは、電子透かしの埋め込みに用いる8×8画素構成のDCTブロックに含まれる1つ以上のDCT係数であり、Y,U,V成分のいずれのDCT係数であってもよいが、以下、説明の明確化のために、注目DCT係数dct_coeffiとしてY成分のDCT係数の内の直流成分dct_coeffi(0,0)を用い、ハッシュ値の埋め込みのために、同じくY成分のDCT係数の内の(1,1),(1,2),(2,1),(2,2)を利用する場合を具体例とする。
【0044】
[デコーダ最大計算誤差δ]
ここでは、デコーダ最大計算誤差δを詳細に説明する。
また、ハッシュ値を埋め込んだJPEGデータを伸長復号処理するデコーダが違う場合には、システム間でIDCT処理の結果に誤差が生じる可能性がある。デコーダ最大計算誤差δは、埋め込み量子化値:システム(decoder)の違いから生じるIDCT処理の誤差の2倍の値に設定される。
なお、IDCT処理の誤差は、ほとんどの場合、2以下である。従って、デコーダ最大計算誤差δの設定値は4以上あれば充分である。以下、デコーダ最大計算誤差δの値を、充分に大きい12に設定する場合を具体例として説明する。
【0045】
埋込量子化値計算部324は、埋込前処理32に入力された画像データがJPEGデータである場合には、復号部322から入力された量子化値q[k]を、JPEGデータでない場合には、例えば、入力装置102を介してユーザが入力する量子化値q[k]を用いて以下の処理を行う。
なお、埋込量子化値計算部324は、例えば、埋込前処理32に入力された画像データがJPEGデータでなく、しかも、入力装置102から量子化値q[k]の入力がない場合には、量子化値q[k]の全ての要素の値をデコーダ最大計算誤差δに設定する(q[k]=δ)。
【0046】
次に、埋込量子化値計算部324は、領域指定データAが示す注目DCT係数dct_coeffiそれそれに対応する埋込量子化値q_emb[k](k({dct_coeffi}))を、下式4に示すように計算する。
なお、埋込量子化値q_emb[k]は、ハッシュ値を埋め込んだDCT係数を量子化処理するために用いられる量子化値であって、量子化値q[k]の整数倍の値を採る。
【0047】
【数4】
q_emb[k] = (int((δ-1)/q[k]+1)*q[k] (4)
【0048】
なお、量子化値q[k]がデコーダ最大計算誤差δよりも大きい場合(q[k]≧δ)、埋込量子化値q_emb[k]と量子化値q[k]とは一致する(q_emb[k]=q[k])。
また、埋込前処理32にJPEGデータが入力される場合、量子化値q[k]の変更は不要である。
【0049】
[DCT係数調整部332]
DCT係数調整部332は、JPEG’/BMP変換部326、BMP/JPEG’変換部330およびDCT係数調整部332により構成されるループ処理を制御し、このループ処理を所定の回数(例えば5回)繰り返して、BMP/JPEG’変換部330から入力された注目DCT係数dct_coeffiが、埋込量子化値q_emb[k]の整数倍に近い値をとるように、つまり、注目DCT係数dct_coeffiが安定状態になるようにそれらの値を調整する。
【0050】
以下、さらにDCT係数調整部332の処理を詳細に説明する。
DCT係数調整部332は、埋込パラメータDB20(図2)から安定化閾値Δを受ける。
安定化閾値Δは、注目DCT係数dct_coeffiが、埋込量子化値q_emb[k]の整数倍に近い値になっているか否かを判断するために用いられる閾値であって、例えばデコーダ最大計算誤差δよりも小さい値、例えば1程度の値に設定される(δ>Δ=1.0)。
【0051】
DCT係数調整部332は、次に、領域指定データAにより示されるMCUのDCTブロックそれぞれに含まれる各DCT係数が、下式5を満たしているか否かを判断する。
DCT係数調整部332は、判断対象のDCTブロックに含まれるDCT係数のすべてが下式5を満たしている場合には、このDCTブロックに対応するMCUテーブルTの要素T[X][Y]の値を安定状態を示す1とし(T[X][Y]=1)、これ以外の場合には0とする(T[X][Y]=0)。
【0052】
【数5】
|c[k] - coeff_emb[k]*q_emb[k]| < Δ/2 (5)
【0053】
DCT係数調整部332は、全てのMCUの全てのDCTブロックに含まれるDCT係数が式5を満し、安定状態になっている場合には、注目DCT係数dct_coeffiおよびその他のDCT係数を画像DB24(図2)に対して出力し、安定状態になっていない場合には、安定状態になっていないDCT係数が安定状態になるように調節する。
なお、DCT係数調整部332は、coeffi_emb[k]を、領域指定データAが示す注目DCT係数dct_coeffiとして、それ以外のDCT係数は、量子化処理した値(coeffi[k]=c[k]/q[k])を、画像DB24(図2)に対して出力する。
【0054】
[DCT係数の安定化]
ここでは、DCT係数調整部332がDCT係数を安定状態にする処理(安定化処理)を詳細に説明する。
DCT係数調整部332は、値が0のMCUテーブルTの要素T[X][Y]に対応するMCUのDCT係数を、下式6に示すように変換する。
【0055】
【数6】
【0056】
式6において、αは0〜0.5の間の値を採る数値であって(0≦α≦0.5)、αの値を大きくすると、安定化処理が再生画像に与える変化を小さくすることができる。しかしながら、変換後のcoeff[k]の値の絶対値は常に大きくなり、安定状態にした後のDCT係数を変換して得られるBMPデータのR,G,B成分の値に近づくので、BMPデータのR,G,B成分の値にオーバーフロー・アンダーフローが生じやすい。
一方、αを小さくすると、変換後のcoeff[k]の値の絶対値は常に小さくなり、安定状態にした後のDCT係数を変換して得られるBMPデータのR,G,B成分それぞれの値は128に近づくので、BMPデータのR,G,B成分の値にオーバーフロー・アンダーフローが生じにくい。
【0057】
このようなαの性質を考慮し、安定化処理が再生画像に与える影響を極力少なくし、かつ、安定化したDCT係数を変換して得られるBMPデータにオーバーフロー・アンダーフローが生じないようにするために、DCT係数調整部332は、JPEG’/BMP変換部326、BMP/JPEG’変換部330およびDCT係数調整部332によるループ処理を1回行うごとに、αの値を減らしてゆくようにする。
【0058】
例えば、JPEG’/BMP変換部326、BMP/JPEG’変換部330およびDCT係数調整部332によるループ処理の回数をloopcountとすると、DCT係数調整部332は、下式7に示すように、ループ処理の回数に応じてαの値を少なくする。
【0059】
【数7】
【0060】
DCT係数調整部332は、上述した調整を、値が0のMCUテーブルTの要素T[X][Y]に対応するMCUに含まれるDCTブロック全てのDCT係数に対して行い、JPEG’/BMP変換部326に対して出力する。
【0061】
なお、ごくまれに、JPEG’/BMP変換部326における処理でオーバーフロー・アンダーフローが生じていて、ループ処理を5回繰り返した後でも、式5の条件を満たすことがないDCT係数が存在することがある。
このような場合に対応するために、DCT係数調整部332は、ループ処理を5回繰り返した後は、さらに、DCT係数の値が式5の条件を満たすようになるまでループ処理を1回ずつ追加して行い、ループ処理を1回追加するたびに、coeff_emb[k]の絶対値を1(但し、何らかの制約がある場合、その制約を満たす1以上の最小数)づつ減らす。
このように、ループ処理を追加し、ループ処理1回ごとにcoeff_emb[k]の絶対値を1(但し、何らかの制約がある場合、その制約を満たす1以上の最小数)づつ減らすことにより、DCT係数調整部332は、画像の変化を極力少なくしつつ、ループ処理を有限回数に抑える。
【0062】
以上説明した埋込前処理32の処理により、図6(A)に示すように分布していた注目DCT係数dct_coeffiの値は、図6(B)に示すように、埋込量子化値q_emb[k]の整数倍に近い値を採るようになり、埋込量子化値q_emb[k]の整数倍を中心とする広がりσ(σ<δ)の範囲内に分布するようになる。
【0063】
[ハッシュ値計算部300]
再び図3を参照する。
以上説明した埋込前処理32(図3,4)の処理により、{dec_coeffi}の全てのDCT係数が埋め込みの量子化値q_emb[k]の整数倍の近傍に来て安定化している。即ち、上述した式5を満たしている。問題は、埋込前処理32の出力から得られるJPEGデータを、JPEG’/BMP変換部326(図5)以外BMPエンコーダにより処理して式5に示した性質が保てるか否かである。
例えば、埋込前処理32(図3,4)の出力データをinput.bmp、え44以外のエンコーダで作られるBMPデータをinput2.bmpとすると、これらの違いは、JPEGデータをiDCTし、さらにYUVデータに変換し、これをBMPデータに変換する処理における計算の誤差であり、この誤差のために、2つのinput.bmpとinput2.bmpとが、下式8に示すように、量子化値を跨いでしまう可能性が高い。即ち、input.bmpから導かれたDCT係数c2[k]が、下式8を満たす可能性は小さい。
【0064】
【数8】
err[k] = |c2[k] - coeff_emb[k]*q_emb[k]|>=q_emb[k]/2 (>=δ/2) (8)
【0065】
例えば、あるBMPエンコーダでiDCT処理結果(iDCTデータ)あるいはYUVデータをBMPデータに変換する処理を小数点第1位まで用いて計算する際に、iDCTデータの計算誤差が最悪0.05あり、iDCT処理で、係数1つにつき64回の加算または減算を行うとすると、計算誤差は最悪3.35(=0.05×63+3)となるが、上述したように、最大誤差δを12より大きい値にとれば、上述した式8を満たすことはない。
【0066】
逆に、iDCT等の計算で少数第1位以上の誤差があるようなシステムは、誤差が大きすぎで、単なる変換だけで画像が大きく変化してしまい、使用に耐えないシステムと言える。多数のシステムを調べると、最悪で err[k]=3.0程度である。
よって、全ての{dct_coeffi}に対して全てのq_emb[k]による量子化値coeff_emb[k]は、JPEGデータをBMPデータに変換する処理に耐えられることになる。そのため、coeff_emb[k]のハッシュ値を取り、その結果をJPEGデータのヘッダ部分に書き込むか、画像自体に電子透かしで埋めておけば良い。
【0067】
埋め込みに使われる領域Aを除き、鍵DBからえられる、埋め込み者、検出者で共通の鍵Kを使い、ハッシュ値DCT_hashを、下式9に示すように計算する。
【0068】
【数9】
DCT_hash = hash(K, coeff_emb[k]) (9)
【0069】
なお、式9におけるhash( )としては、MD5などがある。また、鍵Kとしては、64ビット鍵、DCT_hashは64ビット長が妥当な長さである。
【0070】
[ハッシュ値埋込部302]
ハッシュ値埋込部302は、ハッシュ値計算部300で選られたDCT_hashを画像に埋め込む。画像に埋め込むアルゴリズムは何を用いてもよいが、画像を痛めない方法としてはLSB法がよい。
LSB法とは、電子透かしをデジタルコンテンツに埋め込む方式の1つで、コンテンツの特徴量のLSB(least significant bit、最下位bit)をある規則に従って変化させることによって、情報を埋め込む。LSBを変化させる理由は、埋め込み後のデジタルコンテンツ(画像、音)の変化が殆ど無い為である。
【0071】
以下、具体例を挙げて説明する。
埋込パラメータDB20(図2)から得られる埋め込みに利用するDCT係数{dct_coeffi}の要素がn個あり、hash_embが64ビットで、1つのサブブロック(8×8画素)にmビットを埋め込む事を考える(n>=m)。
つまり、埋め込みに64/m個のサブブロックが必要となる。
【0072】
ここで、埋め込みによる画質の痛みを極力防ぐ為に、Aの候補を予め幾つか決めておいて(例:画面の上、下、右、左端の4個所)、そのどこかに埋めて、検出時に全て試すという方法もある。
さて、ここで、{dct_coeffi}のLSBに埋めたいbitを埋めていくわけである。
【0073】
【数10】
emb_coeff[k] = 2p + emb_bit[k] (10)
pはある整数、emb_bit[k]は係数kに埋めたいbit,0 or 1
【0074】
上式10を満たすようにemb_coeff[k]を変更後、Aの領域のみのDCT係数をJPEG’/BMP変換部326(図5)に入力し、A内の全ての{dct_coeffi}のDCT係数が、上式10を満たしつつ安定になるようにすれば良い。
この場合、常に、emb_coeff[k]の値の絶対値が大きくならない方向に変更していれば、つまりαを小さく取れば、収束は速く、式6が達成できる。式6が達成出来れば、Aは安定の為、BMPデータに変換した後も、埋めたビットが変化しない。
【0075】
[出力フォーマット変換部304]
出力フォーマット変換部304は、ハッシュ値埋込部302の出力結果に対して量子化処理などを行い、入力装置102(図1)を介して設定されるユーザ所望の出力フォーマットに変換する。
出力フォーマットがJPEGの際、{dct_coeffi}に属するDCT係数も、q_emb[k]ではなく、q[k]で量子化する。q[k]で量子化された値coeff[k]は、emb_codff[k],q[k],q_emb[k]より、coeff[k] = emb_coeff[k]*q_emb[k]/q[k]によって計算される。
【0076】
[検出部40]
以下、検出部40(図2)を説明する。
埋め込み装置で埋め込まれた画像データを入力し、鍵Kより注目するDCT成分のハッシュ値を計算し、領域Aに埋め込まれているハッシュ値と比較し、画像自体が改ざんされたかどうかを検出する。
【0077】
[検出前処理部42]
図7は、図2に示した検出部40の構成を示す図である。
図8は、図7に示した検出前処理部42の構成を示す図である。
検出部40において、検出前処理部42は、入力画像より埋め込み量子化値q_えmb[k]を逆算する。
【0078】
[フォーマット認識部420]
フォーマット認識部420は、入力画像のフォーマットを認識し、JPEGなら復号部422に対して出力し、BMP,YUVならBMP,YUV/JPEG’変換部424に対して出力する。
【0079】
[復号部422]
復号部422は、入力画像を復号し、Aを除く画像全体の注目するDCT成分の係数を逆量子化して、JPEG’画像とする。
【0080】
[BMP,YUV/JPEG’変換部424]
BMP,YUV/JPEG’変換部424は、入力されたBMP,YUVデータをDCT処理し、JPEG’データに変換する。
【0081】
[量子化値逆算部426]
【0082】
図9および図10は、図8に示した量子化値逆算部426における埋め込み量子化値逆算処理を示す第1および第2のフローチャートである。
量子化値逆算部426は、復号部422およびBMP,YUV/JPEG’変換部424の出力の注目するDCT成分k∈{dct_coeffi}の画像全体での絶対値の最大係数をmax[k]として、各々の仮定した量子化値iの回りにどのくらいDCT係数が集まっているかのヒストグラムからに示すように計算する。
図9に示すように、フォーマット認識部420への入力フォーマットがJPEGの場合、i=q[k]*n(n=1,2,....)に対してのみ調べれば良い。
【0083】
図9に示した処理により求められたヒストグラム[i]の最大値を与えるiを、max_iとおき、図10に示した処理にしたがって、q_emb[k]を決定する。
図10では、図9でq_えmb[k]が、max_iの倍数であることからq_emb[k]を求めている。
【0084】
ここで、T_threは1より少し小さい値で、T_thre=0.8辺りが妥当である。ここで、T_threの値の精度等より図9および図10に示した処理によりうまくq_emb[k]が求められない例外的な画像に関して、埋め込み処理の過程において、図9および図10に示した処理により、正しくq_emb[k]が満たされるようなヒストグラムになるようにすればよい。
例えば、q_emb[k]*2nの周りに多く係数が集まってしまうような場合、画像全体のうち、痛みが少なそうなところで、q_emb[k]*2n+1に埋め込むようにすれば良い。
【0085】
[ハッシュ値抽出部400]
再び図7を参照する。
ハッシュ値抽出400は、埋め込み領域Aにおいて、埋込パラメータDB20からの埋め込みDCT成分{dct_coeffi}の係数c[k]と、検出前処理部42によって計算された、埋め込み量子化値q_emb[k]より、以下の方法でLSBをしらべ、それらを並べて埋め込まれたハッシュ値embed_hashを計算する。
【0086】
【数11】
LSB = (int)((c[k]+β)/q_emb[k]) mod 2
但し、β = c[k]>=0 ? q_emb[k]/2 : -q_emb[k]/2 (11)
【0087】
[ハッシュ値計算部402]
ハッシュ値計算部402は、A以外の領域に対して、{dct_coeffi}の係数C[k]q_emb[k]より、上記式6においてでα=0.5として、coeff_emb[k]を求め、上記式9によりDCT_hashを計算する。
【0088】
[改ざん検出部404]
改ざん検出部404は、ハッシュ値抽出400およびハッシュ値計算部402から得られるDCT_hash,embed_hashが、DCT_hash==embed_hashなら改ざんなし、それ以外の場合(DCT_hash≠embed_hash)には改ざん有りとして、表示装置100(図1)等に表示する。
【0089】
[全体動作]
図11は、埋込・検出プログラム2(図2)による埋め込み処理を示すフローチャートである。
図12は、埋込・検出プログラム2(図2)による検出処理を示すフローチャートである。
なお、図11および図12の各処理中の括弧内の番号は、その処理を行う埋込・検出プログラム2の構成部分(図3,5,7,8)に付された符号を示す。
埋込・検出プログラム2の各構成部分は、図11に示すように埋め込み処理を行い、図12に示すように検出処理を行う。
【0090】
[変形例]
以下、本発明に係る埋め込み装置の変形例を説明する。
図13は、埋込・検出プログラム2(図2)において埋込部30の代わりに用いられる埋込部50の構成を示す図である。
図14は、図13に示した埋込前処理部52の構成を示す図である。
図15は、図13に示した改ざんマーク埋込部54の構成を示す図である。
【0091】
なお、埋込部50の構成部分の内、出力フォーマット変換部502は、埋込部30(図3)の出力フォーマット変換部304に同じであり、埋込前処理部52の構成部分の内、フォーマット認識部520、復号部522、BMP,YUV/JPEG’変換部524、量子化値変換部526および量子化値計算部526は、それぞれ埋込前処理32(図5)のフォーマット認識部320、復号部322、JPEG’/BMP変換部326、YUV/BMP変換部328および埋込量子化値計算部324に同じである。
また、埋込部50においては領域Aは存在しない。
【0092】
[埋め込み前処理部52]
埋込前処理部52は、入力画像より、DCT係数を抽出する。
【0093】
[改ざんマーク埋め込み部54]
改ざんマーク埋込部54は、改ざんマークあるいはデータを埋め込む部分で、埋め込みアルゴリズムは何でも良く、画像を痛めない方法としてはLSB法がある。
【0094】
[画像分割部540]
画像を8×8画素のブロック(イントラブロック)単位に分割し、入力注目DCT成分l,係数c[k]と画像位置(x,y)を出力する。
【0095】
[乱数発生部542]
乱数発生部542は、鍵Kより乱数Rを発生させる。Rは、埋め込みに必要なbit数だけのbitが必要で、720x480画素の場合、90x60xn = 5400n bit以上である必要がある。Rの作成方法は色々あるが、LFSRを使う場合、b=(int)(1+log25400n)bitのLFSRを使って、Kをkey,R0を鍵DBより得られる初期値(鍵の1部と考えても良い)、LFSRbをb bitのLFSR計算部として、下式12により求められる。
【数12】
R=LFSRb(K,R0) (12)
【0096】
[合成部544]
合成部544は、データを埋め込む場合に、埋め込みデータとRより埋め込みbit列R'を合成して作成する。なお、合成部544が、改ざんマークを埋め込む場合、R'=Rとなる。データを埋め込む場合は、下式13により示されるR’が埋め込みbitになる。ここで、^はxorを意味する。但し、dataは5400n bitの埋め込みdataで、埋め込みたいdataがm bitで、m<5400n bitの場合、埋め込みdataをm周期で繰り返し、5400n/m回繰り返して埋める、等の方法もある。
【0097】
【数13】
R' = R ^ data (13)
【0098】
[LSB操作部546]
LSB操作部546は、R’とq_emb[k],c[k],k,(x,y)より,{dct_coeffi}に属するDCT係数のLSBを操作する。先ず、埋め込みビットemb_bit[k]は、下式14を埋め、あとは、上記式10を満たすように、{dct_coeffi}に属する全てのDCT係数をT[x][y]=0を満たす全てのMCUに対して行う。
【0099】
【数14】
emb_bit[k] = (R'>>(xn+90yn+l))&1 (14)
【0100】
[DCT成分分割部528]
DCT成分分割部528は、復号部522およびBMP,YUV/JPEG’変換部524から入力されるDCT係数(量子化されていない)を注目DCT({dct_coeffi})とそうでないものに分ける。
【0101】
[量子化値計算部526]
量子化値計算部526は、上述したように埋込量子化値計算部324と同じである。但し、T[45][60]を、初期状態(T[x][y]=0、for all x, y)で出力する。
【0102】
図16は、図15に示した埋込後処理部56の構成を示す図である。
なお、埋込後処理部56の構成部分の内、DCT係数調整564は、埋込前処理32のDCT係数調整部332(図5)と同じである。
【0103】
[JPEG’/BMP変換部560]
JPEG’/BMP変換部560は、入力されたJPEG’画像をiDCT変換して、オーバーフロー/アンダーフロー処理をして、BMPフォーマットの画像に変換する。
【0104】
[BMP/JPEG’変換部562]
BMP/JPEG’変換部600は、入力BMP画像をDCT変換し、JPEG’フォーマットの画像に変換する。
【0105】
図17は、埋込・検出プログラム2(図2)において、検出部40の代わりに用いられる検出部60の構成を示す図である。
検出部60は、図13〜16に示した検出部40により埋め込まれた画像データが、データ埋め込みでなく、改ざんマークを埋め込みである場合、その画像の改ざんの有無を検出し、改ざん場所を8×8画素のブロック単位で特定する。
{dct_coeffi}の要素がn個ある場合、各々の8×6画素構成のブロック(イントラブロック)の改ざん検出率は1-2-nであり、本発明例の様にn=4の場合、その確率は93.75%である。
【0106】
[検出前処理部600]
検出前処理部600は、図7に示した検出前処理部42と同じである。但し、埋込領域Aはない。
【0107】
[埋め込みデータ抽出部602]
埋込データ抽出部602は、{dct_coeffi}の要素のDCT係数のLSBを抽出し、埋め込みデータを抽出する。
イントラロケーション(x,y) (0<=x<60,0<=y<90), {dct_coeffi}の要素数nのLSBを式11により計算し、それを(xn+90yn+l)bit目に持つ5400nbitの抽出データembed_dataを計算する。
【0108】
[埋め込みデータ計算部604]
埋込データ計算部604は、図15に示した乱数発生部542および合成部544と同じ方法で、埋め込みbit列R’を計算する。
【0109】
[改ざん検出・場所特定部606]
改ざん検出場所特定部606は、embed_data,R’から入力画像に改ざんがあったかどうか、あった場合、何処が改ざんされたかを特定する。つまり、改ざん検出場所特定部606は、embed_data==R’の場合、改ざんなしと判定し、これ以外の場合(embed_data<>R’)には、ビット単位で値が合わない部分を全て探す。その際、例えば、p bit目(0 origin)が合わない場合、改ざんのあったintra location (x,y)は、以下の式によって特定出来る。
【0110】
【数15】
x = (int)(p/n) mod 90
y = (int)(p/n/90) (15)
【0111】
[出力フォーマット変換部608]
出力フォーマット変換部608は、画像DB24より入力した画像を、改ざん場所がわかるように変化させて出力する。
【0112】
[全体動作]
図18および図19は、検出部40および検出部60の処理を示すフローチャートであり、図中の括弧内の番号は、各処理を行う構成部分の符号を示す。
検出部40および検出部60は、図18に示すように埋め込み処理を行い、図19に示すように検出処理を行う。
【0113】
【発明の効果】
上述したように、本発明にかかる画像処理装置およびその方法は、圧縮符号化に適している。
特定的には、本発明にかかる画像処理装置およびその方法によれば、認証情報を埋め込んだ後に量子化処理をしても、埋め込まれた認証情報が失われることがない。
【図面の簡単な説明】
【図1】本発明にかかる画像処理方法を実現する画像処理装置の構成を示す図である。
【図2】図1に示した画像処理装置が実行し、本発明にかかる画像処理方法を実現する埋込・検出プログラムの構成を示す図である。
【図3】図2に示した埋込部の構成を示す図である。
【図4】注目DCT係数を示す図である。
【図5】図3に示した埋込前処理部の構成を示す図である。
【図6】(A)は、図3に示した埋込前処理による安定化処理の前の注目DCT係数dct_coeffiの値の頻度をq[k]=3,q_emb[k]の場合について例示し、(B)は埋込前処理による安定化処理の後の注目DCT係数dct_coeffiの値の頻度を同様に例示するヒストグラムである。
【図7】図2に示した検出部の構成を示す図である。
【図8】図7に示した検出前処理部の構成を示す図である。
【図9】図8に示した量子化値逆算部における処理を示す第1のフローチャートである。
【図10】図8に示した量子化値逆算部における処理を示す第2のフローチャートである。
【図11】埋込・検出プログラム(図2)による埋め込み処理を示すフローチャートである。
【図12】埋込・検出プログラム(図2)による検出処理を示すフローチャートである。
【図13】埋込・検出プログラム(図2)において埋込部の代わりに用いられる埋込部の構成を示す図である。
【図14】図13に示した埋込前処理部の構成を示す図である。
【図15】図13に示した改ざんマーク埋込部の構成を示す図である。
【図16】図15に示した埋込後処理部の構成を示す図である。
【図17】埋込・検出プログラム(図2)において用いられる第2の検出部の構成を示す図である。
【図18】検出部および検出部(図13〜17)の処理を示す第1のフローチャートである。
【図19】検出部および検出部(図13〜17)の処理を示す第2のフローチャートである。
【符号の説明】
1・・・画像処理装置
100・・・表示装置
102・・・入力装置
104・・・カメラIF
106・・・メモリカードIF
108・・・記憶装置
110・・・PC本体
112・・・メモリ
114・・・CPU
116・・・通信装置
120・・・記録媒体
140・・・ディジタルカメラ
142・・・メモリカード
2・・・埋込・検出プログラム
20・・・埋込パラメータDB
22・・・鍵情報DB
24・・・画像DB
26・・・制御部
30・・・埋込部
32・・・埋込前処理
320・・・フォーマット認識部
322・・・復号部
324・・・埋込量子化値計算部
326・・・JPEG’/BMP変換部
328・・・YUV/BMP変換部
330・・・BMP/JPEG’変換部
332・・・DCT係数調整部
300・・・ハッシュ値計算部
302・・・ハッシュ値埋込部
304・・・出力フォーマット変換部
40・・・検出部
42・・・検出前処理部
420・・・フォーマット認識部
422・・・復号部
424・・・BMP,YUV/JPEG’変換部
426・・・量子化値逆算部
400・・・ハッシュ値抽出
402・・・ハッシュ値計算部
404・・・改ざん検出部
50・・・埋込部
52・・・埋込前処理部
520・・・フォーマット認識部
522・・・復号部
524・・・BMP,YUV/JPEG’変換部
526・・・量子化値計算部
528・・・DCT成分分割部
54・・・改ざんマーク埋込部
540・・・画像分割部
542・・・乱数発生部
544・・・合成部
546・・・LSB操作部
56・・・埋込後処理部
560・・・JPEG’/BMP変換部
562・・・BMP/JPEG’変換部
564・・・DCT係数調整部
502・・・出力フォーマット変換部
60・・・検出部
600・・・検出前処理部
602・・・埋込データ抽出部
604・・・埋込データ計算部
606・・・改ざん検出場所特定部
608・・・出力フォーマット変換部
80・・・OS
Claims (12)
- 画像データに含まれる画素の形式をBMP形式に変換処理した後、JPEG形式に変換処理する形式変換手段(326,330)と、
画像データに埋込データを埋め込む際に、埋込データから得られる埋込量子化値の整数倍と、前記JPEG形式に変換処理した画素データのDCT係数の差分を計算するDCT係数調整手段(332)と、
前記差分が既定値以下となるDCT係数が得られるまで前記形式変換手段と、前記DCT係数調整手段とを繰り返す手段と、
前記得られたDCT係数を用いて画像データに埋込データを埋め込む埋込処理手段と、
前記埋込処理がなされた画像データを量子化処理する量子化手段(304)と
を有する画像処理装置。 - 前記埋込処理手段は、
所定の鍵情報と前記画像データとに基づいてハッシュ値を計算するハッシュ値計算手段(300)と、
計算の結果として得られた前記ハッシュ値を、前記画像データに埋め込む埋込処理手段(302)と
を有する請求項1に記載の画像処理装置。 - 前記画像データに埋め込まれた埋め込みデータを検出する検出手段(60)
をさらに有する請求項2に記載の画像処理装置。 - 前記量子化された画像データを逆量子化する逆量子化手段(422)と、
前記逆量子化された画像データに埋め込まれたハッシュ値を抽出する抽出手段(400)と、
前記画像データと、前記ハッシュ値の計算に用いられた鍵情報とに基づいて、ハッシュ値を計算する計算手段(402)と、
前記抽出されたハッシュ値と前記計算されたハッシュ値とに基づいて、前記量子化された画像データに改ざんが加えられたか否かを検出する改ざん検出手段(404)と
を有する請求項3に記載の画像処理装置。 - 画像データに含まれる画素の形式をBMP形式に変換処理した後、JPEG形式に変換処理する形式変換ステップと、
画像データに埋込データを埋め込む際に、埋込データから得られる埋込量子化値の整数倍と、前記JPEG形式に変換処理した画素データのDCT係数の差分を計算するDCT係数調整ステップと、
前記差分が既定値以下となるDCT係数が得られるまで前記形式変換手段と、前記DCT係数調整手段とを繰り返すステップと、
前記得られたDCT係数を用いて画像データに埋込データを埋め込む埋込処理ステップと、
前記埋込処理がなされた画像データを量子化処理する量子化ステップと
を有する画像処理方法。 - 前記埋込処理ステップは、
所定の鍵情報と前記画像データとに基づいてハッシュ値を計算するハッシュ値計算ステップと、
計算の結果として得られた前記ハッシュ値を、前記画像データに埋め込む埋込処理ステップと
を有する請求項5に記載の画像処理方法。 - 前記画像データに埋め込まれた埋込データを検出する検出ステップ
をさらに有する請求項6に記載の画像処理方法。 - 前記量子化された画像データを逆量子化する逆量子化ステップと、
前記逆量子化された画像データに埋め込まれたハッシュ値を抽出する抽出ステップと、
前記画像データと、前記ハッシュ値の計算に用いられた鍵情報とに基づいて、ハッシュ値を計算する計算ステップと、
前記抽出されたハッシュ値と前記計算されたハッシュ値とに基づいて、前記量子化された画像データに改ざんが加えられたか否かを検出する改ざん検出ステップと
を有する請求項7に記載の画像処理方法。 - 画像データに含まれる画素の形式をBMP形式に変換処理した後、JPEG形式に変換処理する形式変換ステップと、
画像データに埋込データを埋め込む際に、埋込データから得られる埋込量子化値の整数倍と、前記JPEG形式に変換処理した画素データのDCT係数の差分を計算するDCT係数調整ステップと、
前記差分が既定値以下となるDCT係数が得られるまで前記形式変換手段と、前記DCT係数調整手段とを繰り返すステップと、
前記得られたDCT係数を用いて画像データに埋込データを埋め込む埋込処理ステップと、
前記埋込処理がなされた画像データを量子化処理する量子化ステップと
をコンピュータに実行させるプログラムを記録した記録媒体。 - 前記埋込処理ステップは、
所定の鍵情報と前記画像データとに基づいてハッシュ値を計算するハッシュ値計算ステップと、
計算の結果として得られた前記ハッシュ値を、前記画像データに埋め込む埋込処理ステップと
を有する請求項9に記載の記録媒体。。 - 前記画像データに埋め込まれた埋込データを検出する検出ステップ
をさらに有する請求項10に記載の記録媒体。 - 前記量子化された画像データを逆量子化する逆量子化ステップと、
前記逆量子化された画像データに埋め込まれたハッシュ値を抽出する抽出ステップと、
前記画像データと、前記ハッシュ値の計算に用いられた鍵情報とに基づいて、ハッシュ値を計算する計算ステップと、
前記抽出されたハッシュ値と前記計算されたハッシュ値とに基づいて、前記量子化された画像データに改ざんが加えられたか否かを検出する改ざん検出ステップと
を有する請求項11に記載の記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000012520A JP3683766B2 (ja) | 2000-01-21 | 2000-01-21 | 画像処理装置およびその方法 |
GB0030896A GB2359211B (en) | 2000-01-21 | 2000-12-18 | Image processing apparatus and method therefor |
US09/764,628 US7046817B2 (en) | 2000-01-21 | 2001-01-18 | Image processing apparatus and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000012520A JP3683766B2 (ja) | 2000-01-21 | 2000-01-21 | 画像処理装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001203878A JP2001203878A (ja) | 2001-07-27 |
JP3683766B2 true JP3683766B2 (ja) | 2005-08-17 |
Family
ID=18540227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000012520A Expired - Fee Related JP3683766B2 (ja) | 2000-01-21 | 2000-01-21 | 画像処理装置およびその方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7046817B2 (ja) |
JP (1) | JP3683766B2 (ja) |
GB (1) | GB2359211B (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7929808B2 (en) * | 2001-10-30 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Systems and methods for generating digital images having image meta-data combined with the image data |
TW545061B (en) * | 2002-01-25 | 2003-08-01 | Univ Nat Central | Method for embedding and extracting of watermark in image compression system, and the embedded hardware structure |
US20050259819A1 (en) * | 2002-06-24 | 2005-11-24 | Koninklijke Philips Electronics | Method for generating hashes from a compressed multimedia content |
JP4104055B2 (ja) * | 2002-06-25 | 2008-06-18 | 富士フイルム株式会社 | 画像データ管理装置 |
US7493489B2 (en) | 2002-07-22 | 2009-02-17 | Xerox Corporation | System and method for authentication of JPEG image data |
US7360093B2 (en) | 2002-07-22 | 2008-04-15 | Xerox Corporation | System and method for authentication of JPEG image data |
EP1388813A2 (en) | 2002-08-09 | 2004-02-11 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for image watermarking |
JP4280475B2 (ja) * | 2002-09-24 | 2009-06-17 | キヤノン株式会社 | 撮像装置 |
CN100525386C (zh) | 2002-09-24 | 2009-08-05 | 佳能株式会社 | 图像摄取装置 |
JP3982686B2 (ja) * | 2002-11-21 | 2007-09-26 | 株式会社リコー | 符号生成装置、符号生成プログラム、および記憶媒体 |
US7693297B2 (en) | 2004-08-05 | 2010-04-06 | Xiao-Ping Zhang | Watermark embedding and detecting methods, systems, devices and components |
JP4624359B2 (ja) * | 2004-09-06 | 2011-02-02 | 三菱電機株式会社 | 電子透かし装置 |
US20060203272A1 (en) * | 2005-03-11 | 2006-09-14 | Manalo Manuel A | Print accounting by embedded PDL comments |
JP2006319949A (ja) | 2005-04-11 | 2006-11-24 | Toshiba Tec Corp | 非可逆圧縮画像に対する電子透かし作成装置、電子透かし作成プログラム及び電子透かし作成方法 |
JP2007043234A (ja) * | 2005-07-29 | 2007-02-15 | Fuji Xerox Co Ltd | 画像形成装置、画像ファイル生成装置、記録媒体、画像形成方法、画像ファイル生成方法、及びプログラム |
US7623717B2 (en) * | 2005-08-31 | 2009-11-24 | Microsoft Corporation | Capturing device for embedding software into raw sensor data |
US7729508B2 (en) * | 2006-01-11 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Modifying data |
JP4999877B2 (ja) * | 2009-04-13 | 2012-08-15 | 日本電信電話株式会社 | 改ざん検出用認証符号埋め込み方法および装置並びにそのプログラム、改ざん検出方法および装置並びにそのプログラム |
US20130279882A1 (en) * | 2012-04-23 | 2013-10-24 | Apple Inc. | Coding of Video and Audio with Initialization Fragments |
US9647846B1 (en) * | 2015-06-30 | 2017-05-09 | Symantec Corporation | Systems and methods for verifying the authenticity of graphical images |
JP6530354B2 (ja) * | 2016-08-03 | 2019-06-12 | 日本電信電話株式会社 | 映像コンテンツ保管システム、映像コンテンツ保管方法及び映像コンテンツ保管プログラム |
CN112218090B (zh) * | 2020-10-20 | 2022-05-27 | 桂林电子科技大学 | 一种彩色二维码嵌入彩色图像的信息隐藏及提取方法 |
CN114401092A (zh) * | 2021-12-17 | 2022-04-26 | 浙江工商大学 | 基于区块链和ipfs的图像文件共享平台侵权保护方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568570A (en) * | 1994-09-30 | 1996-10-22 | Eastman Kodak Company | Method and apparatus for reducing quantization artifacts in a hierarchical image storage and retrieval system |
DE69636084T2 (de) * | 1995-09-28 | 2006-09-14 | Nec Corp. | Verfahren und Vorrichtung zum Einfügen eines Spreizspektrumwasserzeichens in Multimediadaten |
US5765176A (en) * | 1996-09-06 | 1998-06-09 | Xerox Corporation | Performing document image management tasks using an iconic image having embedded encoded information |
US6037984A (en) * | 1997-12-24 | 2000-03-14 | Sarnoff Corporation | Method and apparatus for embedding a watermark into a digital image or image sequence |
US6064764A (en) * | 1998-03-30 | 2000-05-16 | Seiko Epson Corporation | Fragile watermarks for detecting tampering in images |
-
2000
- 2000-01-21 JP JP2000012520A patent/JP3683766B2/ja not_active Expired - Fee Related
- 2000-12-18 GB GB0030896A patent/GB2359211B/en not_active Expired - Fee Related
-
2001
- 2001-01-18 US US09/764,628 patent/US7046817B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2359211B (en) | 2003-10-29 |
US7046817B2 (en) | 2006-05-16 |
US20010010729A1 (en) | 2001-08-02 |
GB0030896D0 (en) | 2001-01-31 |
JP2001203878A (ja) | 2001-07-27 |
GB2359211A (en) | 2001-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3683766B2 (ja) | 画像処理装置およびその方法 | |
US7548633B2 (en) | Data processing apparatus and method, data processing program, and storage medium | |
US7251343B2 (en) | Image protection | |
US7366320B2 (en) | Information-embedding apparatus, encoder, tamper-detecting apparatus, information-embedding method, tamper-detecting method, and recording medium having program recorded therein for executing both of the methods | |
Fridrich et al. | Steganalysis of JPEG images: Breaking the F5 algorithm | |
US6064764A (en) | Fragile watermarks for detecting tampering in images | |
US7360093B2 (en) | System and method for authentication of JPEG image data | |
US20040145661A1 (en) | Image processing method, and image processing apparatus | |
US20060153424A1 (en) | Image processing apparatus and method, program code and storage medium | |
JP3932110B2 (ja) | 画像処理装置、画像処理システム、電子情報機器、画像処理方法、制御プログラムおよび可読記録媒体 | |
US6633652B1 (en) | Method of inserting a watermark and authenticating a digital signal | |
EP1908007B1 (en) | Image watermarking | |
JP2021076844A (ja) | 画像データのステガノグラフィック処理および圧縮のための方法およびデバイス | |
KR20040022072A (ko) | 웨이블릿 기반의 디지털 워터마크 삽입/추출장치 및 방법 | |
JP2001119557A (ja) | 電子透かし埋め込み装置および方法 | |
US7627761B2 (en) | System for authentication of JPEG image data | |
US6944314B2 (en) | Digital information embedding device embedding digital watermark information in exact digital content, computer-readable recording medium having digital information embedding program recorded therein, and method of embedding digital information | |
JP3805141B2 (ja) | 画像処理方法及び装置と記憶媒体 | |
JP2004179804A (ja) | 暗号情報の送受信システム、送受信方法及び暗号情報埋め込み用プログラム | |
Zain et al. | Reversible watermarking surviving jpeg compression | |
JP4106311B2 (ja) | 情報埋め込み装置、符号化装置、改ざん検出装置、その方法及び当該方法を実行するためのプログラムを記録した記録媒体 | |
AU2002318848B2 (en) | Image Protection | |
JP2000358148A (ja) | 改変判定装置およびその方法 | |
AU2006265780B2 (en) | Image watermarking | |
JP2001024878A (ja) | 画像処理装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031203 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040227 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040603 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040803 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041029 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20041115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050517 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050526 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080603 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090603 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100603 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110603 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110603 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120603 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120603 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130603 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |