JP4092608B2 - Image processing apparatus, image processing method, and program storage medium - Google Patents
Image processing apparatus, image processing method, and program storage medium Download PDFInfo
- Publication number
- JP4092608B2 JP4092608B2 JP16052999A JP16052999A JP4092608B2 JP 4092608 B2 JP4092608 B2 JP 4092608B2 JP 16052999 A JP16052999 A JP 16052999A JP 16052999 A JP16052999 A JP 16052999A JP 4092608 B2 JP4092608 B2 JP 4092608B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- image
- information
- embedded
- correlation
- 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
Landscapes
- Editing Of Facsimile Originals (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像処理装置および画像処理方法、並びにプログラム格納媒体に関し、再生画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に情報を埋め込むことができるようにする画像処理装置および画像処理方法、並びにプログラム格納媒体に関する。
【0002】
【従来の技術】
信号に対して、そのデータ量を増加させることなく、情報を埋め込む手法としては、例えば、ディジタルオーディオデータの最下位ビットや、下位2ビットなどを、埋め込む情報に変換するものなどがある。この手法は、ディジタルオーディオデータの下位ビットが、その音質にあまり影響を与えないことを利用し、その下位ビットを、単に、埋め込む情報に置き換えるものであり、従って、再生時には、情報が埋め込まれたディジタルオーディオデータは、その下位ビットを元に戻さずに、そのまま出力される。即ち、情報が埋め込まれた下位ビットを、元に戻すのは困難であり、また、下位ビットは、音質に、あまり影響を与えないことから、ディジタルオーディオデータは、情報が埋め込まれた状態で出力される。
【0003】
【発明が解決しようとする課題】
しかしながら、以上のような手法では、本来の信号と異なる信号が出力される。従って、信号がオーディオデータである場合には、その音質に、また、信号がビデオデータである場合には、その画質に、少なからず影響がある。
【0004】
本発明は、このような状況に鑑みてなされたものであり、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に情報を埋め込むことができるようにするものである。
【0005】
【課題を解決するための手段】
請求項1に記載の画像処理装置は、画像を構成する一部の画素を選択する選択手段と、選択手段によって選択された画素の画素値を、情報にしたがって、所定のビット数だけローテーションすることにより、画素に、情報を埋め込むローテーション手段とを含むことを特徴とする。
【0006】
ローテーション手段には、選択手段によって選択された画素のうちの一部の画素の画素値を、最下位ビットから最上位ビットの方向にローテーションさせ、残りの画素の画素値を、最上位ビットから最下位ビットの方向にローテーションさせることができる。
【0007】
画像を所定のブロックに分割する分割手段をさらに設けることができ、この場合、選択手段には、ブロックを構成する一部の画素を選択させることができる。
【0008】
請求項4に記載の画像処理方法は、画像を構成する一部の画素を選択する選択ステップと、選択ステップで選択された画素の画素値を、情報にしたがって、所定のビット数だけローテーションすることにより、画素に、情報を埋め込むローテーションステップとを含むことを特徴とする。
【0009】
請求項5に記載のプログラム格納媒体に格納されるプログラムは、画像を構成する一部の画素を選択する選択ステップと、選択ステップで選択された画素の画素値を、情報にしたがって、所定のビット数だけローテーションすることにより、画素に、情報を埋め込むローテーションステップとを含む処理をコンピュータに実行させることを特徴とする。
【0010】
請求項6に記載の画像処理装置は、情報埋め込み画像を構成する一部の画素を選択する選択手段と、選択手段によって選択された画素の画素値を、所定のビット数だけローテーションするローテーション手段と、画素値がローテーションされた画素と、選択手段によって選択された画素以外の画素との間の相関を演算する相関演算手段と、相関に基づいて、選択手段によって選択された画素を復号するための、画素値を、ローテーションするビット数を決定する決定手段と、決定手段によって決定されたビット数に基づいて、選択手段によって選択された画素を復号するとともに、その画素に埋め込まれた情報を復号する復号手段とを含むことを特徴とする。
【0011】
ローテーション手段には、選択手段によって選択された画素のうちの一部の画素の画素値を、最下位ビットから最上位ビットの方向にローテーションさせ、残りの画素の画素値を、最上位ビットから最下位ビットの方向にローテーションさせることができる。
【0012】
情報埋め込み画像を所定のブロックに分割する分割手段をさらに設けることができ、この場合、選択手段には、ブロックを構成する一部の画素を選択させることができる。
【0013】
相関演算手段には、画素値がローテーションされた画素について、その画素の周辺にある画素であって、選択手段によって選択された画素以外の画素との間の相関を演算させることができる。
【0014】
相関演算手段には、画素値がローテーションされた画素について、選択手段によって選択された画素以外の画素との間の相関の他、既に復号された画素との間の相関も演算させることができる。
【0015】
請求項11に記載の画像処理方法は、情報埋め込み画像を構成する一部の画素を選択する選択ステップと、選択ステップで選択された画素の画素値を、所定のビット数だけローテーションするローテーションステップと、画素値がローテーションされた画素と、選択ステップで選択された画素以外の画素との間の相関を演算する相関演算ステップと、相関に基づいて、選択ステップで選択された画素を復号するための、画素値をローテーションするビット数を決定する決定ステップと、決定ステップで決定されたビット数に基づいて、選択ステップで選択された画素を復号するとともに、その画素に埋め込まれた情報を復号する復号ステップとを含むことを特徴とする。
【0016】
請求項12に記載のプログラム格納媒体に格納されるプログラムは、情報埋め込み画像を構成する一部の画素を選択する選択ステップと、選択ステップで選択された画素の画素値を、所定のビット数だけローテーションするローテーションステップと、画素値がローテーションされた画素と、選択ステップで選択された画素以外の画素との間の相関を演算する相関演算ステップと、相関に基づいて、選択ステップで選択された画素を復号するための、画素値をローテーションするビット数を決定する決定ステップと、決定ステップで決定されたビット数に基づいて、選択ステップで選択された画素を復号するとともに、その画素に埋め込まれた情報を復号する復号ステップとを含む処理をコンピュータに実行させることを特徴とする。
【0017】
請求項13に記載の画像処理装置は、画像を構成する一部の画素を選択する第1の選択手段と、第1の選択手段によって選択された画素の画素値を、情報にしたがって、所定のビット数だけローテーションすることにより、画素に、情報を埋め込み、情報埋め込み画像を出力する第1のローテーション手段と、情報埋め込み画像を構成する一部の画素を選択する第2の選択手段と、第2の選択手段によって選択された画素の画素値を、所定のビット数だけローテーションする第2のローテーション手段と、画素値がローテーションされた画素と、第2の選択手段によって選択された画素以外の画素との間の相関を演算する相関演算手段と、相関に基づいて、第2の選択手段によって選択された画素を復号するための、画素値をローテーションするビット数を決定する決定手段と、決定手段によって決定されたビット数に基づいて、第2の選択手段によって選択された画素を復号するとともに、その画素に埋め込まれた情報を復号する復号手段とを含むことを特徴とする。
【0018】
請求項1に記載の画像処理装置および請求項4に記載の画像処理方法、並びに請求項5に記載のプログラム格納媒体においては、画像を構成する一部の画素が選択され、その選択された画素の画素値が、情報にしたがって、所定のビット数だけローテーションされることにより、画素に、情報が埋め込まれる。
【0019】
請求項6に記載の画像処理装置および請求項11に記載の画像処理方法、並びに請求項12に記載のプログラム格納媒体においては、情報埋め込み画像を構成する一部の画素が選択され、その選択された画素の画素値が、所定のビット数だけローテーションされる。さらに、その画素値がローテーションされた画素と、選択された画素以外の画素との間の相関が演算され、その相関に基づいて、選択された画素を復号するための、画素値をローテーションするビット数が決定される。そして、その決定されたビット数に基づいて、選択された画素が復号されるとともに、その画素に埋め込まれた情報が復号される。
【0020】
請求項13に記載の画像処理装置においては、画像を構成する一部の画素が選択され、その選択された画素の画素値が、情報にしたがってローテーションされることにより、画素に、情報が埋め込まれ、情報埋め込み画像が出力される。一方、情報埋め込み画像を構成する一部の画素が選択され、その選択された画素の画素値が、所定のビット数だけ、所定のビット数だけローテーションされる。さらに、その画素値がローテーションされた画素と、選択された画素以外の画素との間の相関が演算され、その相関に基づいて、選択された画素を復号するための、画素値をローテーションするビット数が決定される。そして、その決定されたビット数に基づいて、選択された画素が復号されるとともに、その画素に埋め込まれた情報が復号される。
【0021】
【発明の実施の形態】
図1は、本発明を適用した画像伝送システム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない)の一実施の形態の構成例を示している。
【0022】
この画像伝送システムは、符号化装置10および復号装置20で構成されており、符号化装置10は、符号化対象としての、例えば、画像を符号化して符号化データを出力し、復号装置20は、その符号化データを、元の画像に復号するようになされている。
【0023】
即ち、画像データベース1は、符号化すべき画像(例えば、ディジタル画像)を記憶している。そして、画像データベース1からは、そこに記憶されている画像が読み出され、埋め込み符号化器3に供給される。
【0024】
また、付加情報データベース2は、符号化対象の画像に埋め込むべき情報としての付加情報(ディジタルデータ)を記憶している。そして、付加情報データベース2からも、そこに記憶されている付加情報が読み出され、埋め込み符号化器3に供給される。
【0025】
埋め込み符号化器3では、画像データベース1からの画像、および付加情報データベース2からの付加情報が受信される。さらに、埋め込み符号化器3は、画像データベース1からの画像が有するエネルギの偏りを利用して復号を行うことができるように、その画像を、付加情報データベース2からの付加情報にしたがって符号化して出力する。即ち、埋め込み符号化器3は、画像が有するエネルギの偏りを利用して復号を行うことができるように、画像に付加情報を埋め込むことで、その画像を符号化し、符号化データを出力する。埋め込み符号化器3が出力する符号化データは、例えば、光磁気ディスク、磁気ディスク、光ディスク、磁気テープ、相変化ディスクなどでなる記録媒体4に記録され、あるいは、また、例えば、地上波、衛星回線、CATV(Cable Television)網、インターネット、公衆回線などでなる伝送媒体5を介して伝送され、復号装置20に提供される。
【0026】
復号装置20は、埋め込み復号器6で構成され、そこでは、記録媒体4または伝送媒体5を介して提供される符号化データが受信される。さらに、埋め込み復号器6は、その符号化データを、画像が有するエネルギの偏りを利用して、元の画像および付加情報に復号する。復号された画像は、例えば、図示せぬモニタに供給されて表示される。また、復号された付加情報は、例えば、所定の処理を行うのに用いられる。
【0027】
次に、図1の埋め込み符号化器3における符号化、および埋め込み復号器6における復号の原理について説明する。
【0028】
一般に、情報と呼ばれるものは、エネルギ(エントロピー)の偏り(普遍性)を有し、この偏りが、情報(価値ある情報)として認識される。即ち、例えば、ある風景を撮影して得られる画像が、そのような風景の画像であると認識されるのは、画像(画像を構成する各画素の画素値など)が、その風景に対応したエネルギの偏りを有するからであり、エネルギの偏りがない画像は、雑音等にすぎず、情報としての利用価値はない。
【0029】
従って、価値ある情報に対して、何らかの操作を施し、その情報が有する本来のエネルギの偏りを、いわば破壊した場合でも、その破壊されたエネルギの偏りを元に戻すことで、何らかの操作が施された情報も、元の情報に戻すことができる。即ち、情報を符号化して得られる符号化データは、その情報が有する本来のエネルギの偏りを利用して、元の情報に復号することができる。
【0030】
情報が有するエネルギ(の偏り)を表すものとしては、例えば、相関性があり、情報の相関性とは、その情報の構成要素(例えば、画像であれば、その画像を構成する画素やラインなど)どうしの相関(例えば、自己相関や、ある構成要素と他の構成要素との距離など)を意味する。
【0031】
即ち、例えば、いま、図2に示すようなHラインでなる画像があった場合に、その上から1行目のライン(第1ライン)と、他のラインとの相関は、一般に、図3(A)に示すように、第1ラインとの距離が近いライン(図2における画面の上の行のライン)ほど大きくなり、第1ラインとの距離が遠いライン(図2における画面の下の行のライン)ほど小さくなる(第1ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関の偏りがある)。
【0032】
そこで、いま、図2の画像において、第1ラインから近い第Mラインと、第1ラインから遠い第Nラインとを入れ替え(1<M<N≦H)、その入れ替え後の画像について、第1ラインと、他のラインとの相関を計算すると、それは、例えば、図3(B)に示すようになる。
【0033】
即ち、入れ替え後の画像では、第1ラインから近い第Mライン(入れ替え前の第Nライン)との相関が小さくなり、第1ラインから遠い第Nライン(入れ替え前の第Mライン)との相関が大きくなる。
【0034】
従って、図3(B)では、第1ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関の偏りが破壊されている。しかしながら、画像については、一般に、第1ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関の偏りを利用することにより、破壊された相関の偏りを、元に戻すことができる。即ち、図3(B)において、第1ラインから近い第Mラインとの相関が小さく、第1ラインから遠い第Nラインとの相関が大きいのは、画像が有する本来の相関の偏りからすれば、明らかに不自然であり(おかしく)、第Mラインと第Nラインとは入れ替えるべきである。そして、図3(B)における第Mラインと第Nラインとを入れ替えることで、図3(A)に示すような相関、即ち、元の画像を復号することができる。
【0035】
ここで、図2および図3で説明した場合においては、ラインの入れ替えが、画像の符号化を行うこととなる。また、その符号化に際し、埋め込み符号化器3では、例えば、何ライン目を移動するかや、どのラインどうしを入れ替えるかなどが、付加情報にしたがって決定されることになる。一方、埋め込み復号器6では、符号化後の画像、即ち、ラインの入れ替えられた画像を、その相関を利用して、ラインを元の位置に入れ替えることにより、元の画像に戻すことが、画像を復号することとなる。さらに、その復号に際し、埋め込み復号器6において、例えば、何ライン目を移動したかや、どのラインどうしを入れ替えたかなどを検出することが、画像に埋め込まれた付加情報を復号することになる。
【0036】
次に、図4は、以上のような画像の相関性を利用して元に戻すことができるように、画像に付加情報を埋め込む埋め込み符号化を行う図1の埋め込み符号化器3の構成例を示している。
【0037】
画像データベース1から供給される画像は、フレームメモリ31に供給されるようになされており、フレームメモリ31は、画像データベース1からの画像を、例えば、フレーム単位で一時記憶するようになされている。
【0038】
CPU(Central Processing Unit)32は、プログラムメモリ33に記憶されたプログラムを実行することで、フレームメモリ31に記憶された画像を対象に、後述する埋め込み符号化処理を行うようになされている。即ち、CPU32は、付加情報データベース2から供給される付加情報を、フレームメモリ31に記憶された画像に埋め込むようになされている。
【0039】
プログラムメモリ33は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)などで構成され、CPU32に、埋め込み符号化処理を行わせるためのコンピュータプログラムを記憶している。
【0040】
出力I/F(Interface)34は、フレームメモリ31から、付加情報の埋め込まれた画像を読み出し、符号化データとして出力するようになされている。
【0041】
なお、フレームメモリ31は、複数のフレームを記憶することのできるように、複数バンクで構成されており、バンク切り替えを行うことで、フレームメモリ31では、画像データベース1から供給される画像の記憶、CPU32による埋め込み符号化処理の対象となっている画像の記憶、および埋め込み符号化処理後の画像(符号化データ)の出力を、同時に行うことができるようになされている。これにより、画像データベース1から供給される画像が、動画であっても、符号化データのリアルタイム出力を行うことができるようになされている。
【0042】
次に、図5は、図4のCPU32が、プログラムメモリ33に記憶されたプログラムを実行することで実現される埋め込み符号化器3の機能的構成例を示している。
【0043】
ブロック分割部41には、符号化対象としての画像が、例えば、1フレーム単位で供給されるようになっており、ブロック分割部41は、その1フレーム単位の画像を、所定の大きさのブロックに分割して、ビットローテーション部42に供給するようになっている。
【0044】
ビットローテーション部42には、ブロック分割部41からブロックが供給される他、画像に埋め込む付加情報が供給されるようになっており、ビットローテーション部42は、ブロック分割部41からのブロックを構成する一部の画素を選択し、その画素(以下、適宜、選択画素という)の画素値を、付加情報にしたがってローテーションすることにより、選択画素に、付加情報を埋め込むようになっている。選択画素に付加情報が埋め込まれたブロックは、符号化ブロックとして符号化画像メモリ43に供給されるようになっている。
【0045】
符号化画像メモリ43は、ビットローテーション部42から供給される符号化ブロックを順次記憶し、1フレーム分の符号化ブロックを記憶すると、その1フレーム分の符号化ブロックを、符号化データとして出力するようになっている。
【0046】
次に、図6のフローチャートを参照して、図5の埋め込み符号化器3において行われる埋め込み符号化処理について説明する。
【0047】
上述したように、ブロック分割部41には、符号化対象としての画像が、1フレーム単位で供給されるようになっており、ブロック分割部41は、1フレームの画像を受信すると、ステップS1において、その1フレームの画像を、所定の大きさのブロックに分割する。即ち、ブロック分割部41は、1フレームの画像を、例えば、図7(A)に示すように、横×縦が4×4画素のブロックに分割する。ブロック分割41において得られたブロックは、例えば、ラインスキャン順に、順次、ビットローテーション部42に供給される。
【0048】
ビットローテーション部42は、ブロック分割部41からブロックを受信すると、そのブロックを、注目ブロックとし、ステップS2において、注目ブロックを構成する一部の画素を選択する。即ち、ビットローテーション部42は、注目ブロックを構成する画素のうち、例えば、図7(A)に●印および斜線を付した○印で示すような、五の目格子を構成するような位置関係にある画素を、選択画素として選択する。従って、ここでは、ブロックを構成する1/2の画素が、選択画素として選択される。
【0049】
そして、ステップS3に進み、ビットローテーション部42において、選択画素の画素値が、付加情報にしたがってローテーションされることで、選択画素に、付加情報が埋め込まれる。即ち、ビットローテーション部42は、選択画素のうち、図7(A)において斜線を付した○印で示す選択画素の画素値を、そのLSB(Least Significant Bit)からMSB(Most Significant Bit)の方向に、付加情報の値に対応するビット数だけローテーション(以下、適宜、左ローテーションという)する。
【0050】
ここで、ローテーションは、基本的には、ビットシフトと同一であるが、LSBからMSB方向にローテーションを行う場合には、MSBは捨てずにLSBに移動され、逆に、MSBからLSB方向にローテーションを行う場合には、LSBは捨てずにMSBに移動される。
【0051】
さらに、ビットローテーション部42は、選択画素のうち、図7(A)において●印で示す選択画素の画素値を、そのMSBからLSBの方向に、付加情報に対応するビット数だけローテーション(以下、適宜、右ローテーションという)する。
【0052】
ここで、画素値が左ローテーションまたは右ローテーションされる画素を、それぞれ左ローテーション画素または右ローテーション画素というものとすると、本実施の形態では、選択画素の斜め方向について、左ローテーション画素と右ローテーション画素とが交互に並ぶようになっており、従って、選択画素の半分が左ローテーションされ、残りの半分が右ローテーションされる。
【0053】
例えば、いま、画素値が8ビットで表されるとし、ある左ローテーション画素の画素値が、00111101B(Bは、その前の数字が2進数であることを表す)であり、また、ある右ローテーション画素の画素値が、10010111Bであったとする。さらに、付加情報が2であるとすると、図7(B)に示すように、画素値が00111101Bの左ローテーション画素、または画素値が10010111Bである右ローテーション画素は、2ビットだけ左ローテーション、または右ローテーションされ、それぞれの画素値は、11110100B、または11100101Bとされる。ブロック内の他の左ローテーション画素および右ローテーション画素も、同様に、付加情報に従ってローテーションされる。
【0054】
なお、画素値が8ビットで表される場合においては、0乃至7ビットのローテーションが可能であり、従って、この場合、1のブロックには、0乃至7の付加情報(3ビットで表される付加情報)を埋め込むことができる。
【0055】
ステップS3で選択画素のローテーションが行われたブロックは、符号化ブロックとして、符号化画像メモリ43に供給されて記憶される。そして、ステップS4に進み、ビットローテーション部42において、1フレームの画像を分割して得られたブロックのうち、まだ、注目ブロックとして処理していないブロック(以下、適宜、未処理ブロックという)があるかどうかが判定される。ステップS4において、未処理ブロックがあると判定された場合、その未処理ブロックのいずれかが注目ブロックとされ、ステップS2に戻り、以下、同様の処理が繰り返される。
【0056】
また、ステップS4において、未処理ブロックがないと判定された場合、即ち、符号化画像メモリ43に、1フレーム分の符号化ブロックが記憶された場合、その1フレーム分の符号化ブロックが、符号化画像メモリ43から読み出される。そして、ステップS5に進み、ブロック分割部41において、次に処理すべきフレームがあるかどうかが判定される。ステップS5において、次に処理すべきフレームがあると判定された場合、ステップS1に戻り、そのフレームを対象に、以下、同様の処理が行われる。
【0057】
一方、ステップS5において、次に処理すべきフレームがないと判定された場合、埋め込み符号化処理を終了する。
【0058】
以上のように、画像を構成する一部の画素を選択し、その選択画素の画素値を、付加情報にしたがってローテーションすることにより、画素に、付加情報を埋め込むことで、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に付加情報を埋め込むことができる。
【0059】
即ち、付加情報が埋め込まれた選択画素(図7(A)において、斜線を付した○印および●印で示す画素)の画素値は、画像の相関性、即ち、ここでは、付加情報が埋め込まれなかった画素(図7(A)において、○印で示す画素)等との間の相関を利用することにより、後述するように、オーバヘッドなしで、元の画素と付加情報に復号(戻す)ことができる。従って、その結果得られる復号画像(再生画像)には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【0060】
次に、図8は、図5の埋め込み符号化器3が出力する符号化データを、画像の相関性を利用して元の画像と付加情報に復号する図1の埋め込み復号器6の構成例を示している。
【0061】
符号化データ、即ち、付加情報が埋め込まれた画像(以下、適宜、埋め込み画像という)は、フレームメモリ51に供給されるようになされており、フレームメモリ51は、埋め込み画像を、例えば、フレーム単位で一時記憶するようになされている。なお、フレームメモリ51も、図4のフレームメモリ31と同様に構成され、バンク切り替えを行うことにより、埋め込み画像が、動画であっても、そのリアルタイム処理が可能となっている。
【0062】
出力I/F52は、フレームメモリ51から、CPU53による、後述する埋め込み復号処理の結果得られる画像(復号画像)を読み出して出力するようになされている。
【0063】
CPU53は、プログラムメモリ54に記憶されたプログラムを実行することで、埋め込み復号処理を行うようになされている。即ち、CPU53は、フレームメモリ51に記憶された埋め込み画像を、画像の相関性を利用して元の画像と付加情報に復号するようになされている。
【0064】
プログラムメモリ54は、例えば、図4のプログラムメモリ33と同様に構成され、CPU53に、埋め込み復号化処理を行わせるためのコンピュータプログラムを記憶している。
【0065】
次に、図9は、図8のCPU53が、プログラムメモリ54に記憶されたプログラムを実行することで実現される埋め込み復号器6の機能的構成例を示している。
【0066】
符号化データとしての埋め込み画像は、例えば、1フレーム単位で、ブロック分割部61に供給されるようになっている。ブロック分割部61は、埋め込み画像を、図5のブロック分割部41における場合と同様に、所定の大きさのブロック、即ち、符号化ブロックに分割し、ビット逆ローテーション部62に順次供給するようになっている。
【0067】
ビット逆ローテーション部62は、ブロック分割部61からの符号化ブロックを構成する画素のうち、図5のビットローテーション部42が選択するものと同一の位置にある画素を、選択画素として選択し、その選択画素の画素値を、ローテーションビット用レジスタ63から供給されるローテーション値に対応するビット数だけローテーションし、差分値計算部64に供給するようになっている。さらに、ビット逆ローテーション部62は、最適ローテーションビット保存用レジスタ69に記憶された最適ローテーションビットだけ、選択画素の画素値をローテーションし、これにより、符号化ブロックを元のブロックに復号して、復号画像メモリ71に供給するようになっている。
【0068】
ローテーションビット用レジスタ63は、画素値をローテーションするビット数としてのローテーション値を設定し、ビット逆ローテーション部62およびスイッチ65に供給するようになっている。即ち、画素値がth_rビットで表される場合、その画素値は、0乃至th_r−1ビットだけローテーションすることが可能であり(th_rビット以上のビット数のローテーションは、0乃至th_r−1ビットのいずれかのビット数のローテーションに等しい)、この場合、ローテーションビット用レジスタ63は、0乃至th_r−1ビットを、順次、ローテーション値として設定し、ビット逆ローテーション部62およびスイッチ65に供給する。
【0069】
差分値計算部64は、ビット逆ローテーション部64から供給される、選択画素の画素値がローテーションされた符号化ブロックを受信し、その符号化ブロックについて、選択画素と、それに隣接する画素との相関値、即ち、ここでは、例えば、それぞれの画素値の差分絶対値和を計算する。この相関値としての画素値の差分絶対値和は、スイッチ66および比較器68に供給されるようになっている。
【0070】
スイッチ65は、比較器68の制御にしたがって、ローテーションビット用レジスタ63が出力するローテーション値を、最適ローテーションビット保存用レジスタ69に供給するようになっている。スイッチ66は、比較器68の制御にしたがって、差分値計算部64が出力する相関値を、最小差分値保存用レジスタ67に供給するようになっている。
【0071】
最小差分値保存用レジスタ67は、スイッチ66を介して、差分値計算部64から供給される相関値を、いま処理の対象となっている符号化ブロック(以下、適宜、注目符号化ブロックという)についての最大の相関値として記憶するようになっている。なお、本実施の形態では、上述したように、符号化ブロックについての選択画素と、それに隣接する画素との間の相関値は、それぞれの画素値の差分絶対値和を採用していることから、最大の相関値とは、画素値の差分絶対値和の最小値を意味することとなる。
【0072】
最小差分値保存用レジスタ67が記憶する最大の相関値としての、画素値の差分絶対値和の最小値(最小差分絶対値和)は、比較器68に供給されるようになっており、比較器68は、差分値計算部64が出力する差分絶対値和と、最小差分値保存用レジスタ67が記憶している最小差分絶対値和とを比較し、その比較結果に基づいて、スイッチ65および66を制御するようになっている。
【0073】
最適ローテーションビット保存用レジスタ69は、スイッチ65を介して、ローテーションビット用レジスタ63から供給されるローテーション値を、符号化ブロックの選択画素の画素値をローテーションする最適なビット数である最適ローテーションビットとして記憶し、必要に応じて、ビット逆ローテーション部62および復号付加情報メモリ70に供給するようになっている。
【0074】
復号付加情報メモリ70は、最適ローテーションビット保存用レジスタ69から供給される最適ローテーションビットに対応する値を、符号化ブロックに埋め込まれた付加情報の復号結果として一時記憶して出力するようになっている。復号画像メモリ71は、ビット逆ローテーション部62が出力する、選択画素の画素値が最適ローテーションビットだけローテーションされた符号化ブロックを、元のブロックの復号結果として一時記憶し、1フレーム分のブロックの復号結果を記憶すると、その1フレーム分の復号画像を出力するようになっている。
【0075】
次に、図10のフローチャートを参照して、図9の埋め込み復号器6において行われる埋め込み復号処理について説明する。
【0076】
上述したように、ブロック分割部61には、埋め込み画像が、1フレーム単位で供給されるようになっており、ブロック分割部61は、1フレームの埋め込み画像を受信すると、ステップS11において、その1フレームの埋め込み画像を、図5のブロック分割部41と同様に、所定の大きさのブロックに分割する。即ち、ブロック分割部61は、1フレームの埋め込み画像を、図11(A)に示すように、横×縦が4×4画素の符号化ブロックに分割する。ブロック分割61において得られた符号化ブロックは、例えば、ラインスキャン順に、順次、ビット逆ローテーション部62に供給される。
【0077】
ビット逆ローテーション部62は、ブロック分割部61から符号化ブロックを受信すると、ステップS12において、その符号化ブロックを注目符号化ブロックとして、その注目符号化ブロックを構成する一部の画素を、選択画素として選択する。即ち、ビット逆ローテーション部62は、注目符号化ブロックを構成する画素から、図11(A)に斜線を付した○印および●印で示す、図5のビットローテーション部42が選択画素として選択する画素と同一の画素を、選択画素として選択する。さらに、ビット逆ローテーション部62は、選択画素のうち、図5のビットローテーション部42において左ローテーション画素または右ローテーション画素とされたものを、それぞれ右ローテーション画素または左ローテーション画素とする。
【0078】
即ち、符号化ブロックの選択画素のうち、図5のビットローテーション部42において左ローテーション画素とされた画素は、その画素値を、そこに埋め込まれた付加情報に対応するビット数だけ、左ローテーションとは逆に右ローテーションすることで、元の画素に復号することができる。同様に、図5のビットローテーション部42において右ローテーション画素とされた画素は、その画素値を、そこに埋め込まれた付加情報に対応するビット数だけ、右ローテーションとは逆に左ローテーションすることで、元の画素に復号することができる。
【0079】
そこで、ビット逆ローテーション部62は、図5のビットローテーション部42において左ローテーション画素または右ローテーション画素とされたものを、それぞれ右ローテーション画素または左ローテーション画素とするようになっている。従って、ビット逆ローテーション部62では、図7(A)で説明した場合とは逆に、図11(A)において斜線を付した○印で示す画素が、右ローテーション画素とされ、また、●印で示す画素が、左ローテーション画素とされる。
【0080】
その後、ステップS13に進み、ローテーションビット用レジスタ63は、ローテーション値nを0に初期化し、また、最小差分値保存用レジスタ67は、その記憶値(最小差分絶対値和)を、所定の大きな値(例えば、記憶することのできる最大値など)に初期化する。さらに、ローテーションビット用レジスタ63は、ローテーション値nを、ビット逆ローテーション部62に供給するとともに、通常はオフ状態となっているスイッチ65に出力し、ステップS14に進む。
【0081】
ステップS14では、ビット逆ローテーション部62において、注目符号化ブロックの左ローテーション画素または右ローテーション画素の画素値が、ローテーションビット用レジスタ63からのローテーション値nだけ、それぞれ左ローテーションまたは右ローテーションされ、そのローテーション後の注目符号化ブロックが、差分値計算部64に供給される。
【0082】
即ち、例えば、いま、画素値が8ビットで表されるとし、ある右ローテーション画素の画素値が、11110100Bであり、また、ある左ローテーション画素の画素値が、11100101Bであったとする。さらに、ローテーション値nが2であるとすると、図11(B)に示すように、画素値が11110100Bの右ローテーション画素、または画素値が11100101Bである左ローテーション画素は、2ビットだけ右ローテーション、または左ローテーションされ、それぞれの画素値は、00111101B、または10010111Bとされる。注目符号化ブロック内の他の左ローテーションおよび右ローテーション画素も、同様に、ローテーション値nに従ってローテーションされる。
【0083】
差分値計算部64は、ビット逆ローテーション部62から、選択画素の画素値がnビットだけローテーションされた注目符号化ブロックを受信すると、ステップS15において、注目符号化ブロックについての相関値(注目符号化ブロックを構成する画素どうしの相関値)として、選択画素とそれに隣接する画素との相関値の総和、即ち、ここでは、例えば、選択画素とそれに隣接する画素との画素値の差分絶対値和を計算する。
【0084】
具体的には、図12に示すように、符号化ブロックにおいては、●印および斜線を付した○印で示す選択画素は、1以上の、選択画素でない画素、即ち、埋め込み符号化処理において、画素値がローテーションされていない画素(以下、適宜、非選択画素という)に隣接している。差分値計算部64では、符号化ブロックにおいて、選択画素と、その選択画素に隣接している非選択画素との画素値どうしの差分の絶対値(差分絶対値)が計算され、その総和(差分絶対値和)が、符号化ブロックについての相関値として求められる。
【0085】
なお、選択画素に複数の非選択画素が隣接している場合には、例えば、図12において実線の矢印で示すように、その複数の非選択画素それぞれについて、選択画素との差分絶対値が計算される。
【0086】
また、上述の場合においては、符号化ブロック内の画素のみを用いて相関値を求めるようにしたが、相関値は、符号化ブロック外の画素をも用いて求めるようにすることが可能である。
【0087】
即ち、例えば、いま、埋め込み画像を構成する符号化ブロックが、ラインスキャン順に、注目符号化ブロックとして処理されていくとすると、ある注目符号化ブロックを処理するときには、その左、上、または左上に隣接する符号化ブロックについての埋め込み復号は、既に終了し、元の画素値に戻されている。また、注目符号化ブロックの、左や上に隣接する画素、さらには、その右や下に隣接する画素の中には、画素値がローテーションされていない画素(非選択画素)がある。
【0088】
注目符号化ブロック外の画素であっても、画素値が、以上のように元の画素値になっている画素(図12において点線の○印で示す)は、図12において点線の矢印で示すように、注目符号化ブロック内の選択画素との差分絶対値を計算するのに用いるようにすることができる。
【0089】
さらに、上述の場合には、符号化ブロックについての相関値を求めるのに、選択画素と、その選択画素に隣接している非選択画素との画素値どうしの差分絶対値を用いるようにしたが、その他、例えば、選択画素に隣接していなくても、その選択画素の周辺にある非選択画素との画素値どうしの差分絶対値をも用いるようにすることが可能である。
【0090】
また、選択画素との差分絶対値は、その選択画素に対して空間的に近接する画素の他、時間的に近接する画素を対象にして求めることも可能である。
【0091】
以上のようにして、差分値計算部64において求められた注目符号化ブロックについての相関値としての画素値の差分絶対値和は、比較器68に供給されるとともに、通常はオフ状態となっているスイッチ66に供給される。
【0092】
比較器68は、差分値計算部64から、注目符号化ブロックについての差分絶対値和を受信すると、ステップS15において、その差分絶対値和が、最小差分値保存用レジスタ67の記憶値(最小差分絶対値和)より小さいかどうかを判定する。
【0093】
ステップS16において、差分計算部64からの差分絶対値和が、最小差分値保存用レジスタ67の記憶値より小さいと判定された場合、即ち、選択画素の画素値をnビットだけローテーションした注目符号化ブロックについての相関値の方が、その注目符号化ブロックについて、いままでに得られた相関値よりも大きく、従って、選択画素の画素値をnビットだけローテーションした注目符号化ブロックが、元のブロックとなっていることの確からしさが大きい場合、ステップS17に進み、比較器68は、スイッチ65および66を一時、オフ状態からオン状態にして、ステップS18に進む。
【0094】
これにより、ステップS17では、ローテーションビット用レジスタ63が出力するローテーション値nが、スイッチ65を介して、最適ローテーションビット保存用レジスタ69に供給され、最適ローテーションビット保存用レジスタ69では、そこに最適ローテーションビットn_minとして既に記憶されている記憶値に替えて、ローテーションビット用レジスタ63からのローテーション値nが、新たな最適ローテーションビット(注目符号化ブロックを復号するのに、選択画素をローテーションする最も適切なビット数)n_minとして記憶される。
【0095】
さらに、ステップS17では、差分値計算部64が出力する差分絶対値和が、スイッチ66を介して、最小差分値保存用レジスタ67に供給され、最小差分値保存用レジスタ67では、そこに最小差分値として既に記憶されている記憶値に替えて、差分値計算部64が出力する差分絶対値和が、新たな最小差分絶対値和(注目符号化ブロックについての最大の相関値)として記憶される。
【0096】
一方、ステップS16において、差分計算部64からの差分絶対値和が、最小差分値保存用レジスタ67の記憶値より小さくないと判定された場合、即ち、選択画素の画素値をnビットだけローテーションした注目符号化ブロックについての相関値が、その注目符号化ブロックについて、いままでに得られた最大の相関値以下で、従って、選択画素の画素値をnビットだけローテーションした注目符号化ブロックが、元のブロックとなっていることの確からしさが大きくない場合、ステップS17をスキップして、ステップS18に進み、ローテーションビット用レジスタ63において、ローテーション値nが1だけインクリメントされる。
【0097】
そして、ステップS19に進み、ローテーションビット用レジスタ63において、ローテーション値nが、画素値のビット数th_rより小さいかどうかが判定される。ステップS19において、ローテーション値nが、画素値のビット数th_rより小さいと判定された場合、即ち、ローテーション値nが、画素値をローテーションすることのできるビット数の範囲内にある場合、ステップS14に戻り、以下、同様の処理が繰り返される。
【0098】
また、ステップS19において、ローテーション値nが、画素値のビット数th_rより小さくないと判定された場合、即ち、ローテーション値nを、画素値のローテーションが可能なすべての値として、注目符号化ブロックについての相関値(差分絶対値和)の計算を行った場合、ステップS20に進み、注目符号化ブロックの選択画素の画素値が、最適ローテーションビットn_minだけローテーションされることにより、その注目符号化ブロックが元のブロックに復号されるとともに、そこに埋め込まれていた付加情報が復号される。
【0099】
即ち、最適ローテーションビット保存用レジスタ69は、そこに記憶されている最適ローテーションビットn_minを、ビット逆ローテーション部62に供給し、ビット逆ローテーション部62では、その最適ローテーションビットn_minだけ、注目符号化ブロックの左ローテーション画素または右ローテーション画素の画素値が、ステップS14で説明したように、それぞれ左ローテーションまたは右ローテーションされ、これにより、元のブロックに復号される。この復号されたブロックは、復号画像メモリ71に供給されて、対応するアドレスに記憶される。
【0100】
さらに、最適ローテーションビット保存用レジスタ69は、そこに記憶されている最適ローテーションビットn_minを、注目符号化ブロックに埋め込まれていた付加情報の復号結果として、復号付加情報メモリ70に供給して記憶させる。
【0101】
その後、ステップS21に進み、ビット逆ローテーション部62において、1フレームの埋め込み画像を分割して得られた符号化ブロックのうち、まだ、注目符号化ブロックとして処理していないブロック(このブロックも、以下、適宜、未処理ブロックという)があるかどうかが判定される。ステップS21において、未処理ブロックがあると判定された場合、その未処理ブロックのいずれか(例えば、ラインスキャン順で、次に符号化ブロックとすべきもの)が注目符号化ブロックとされ、ステップS12に戻り、以下、同様の処理が繰り返される。
【0102】
また、ステップS21において、未処理ブロックがないと判定された場合、即ち、1フレーム分のブロックの復号結果が、復号画像メモリ71に記憶されるとともに、その1フレームに埋め込まれたすべての付加情報の復号結果が、復号付加情報メモリ70に記憶された場合、その1フレームの復号画像が、復号画像メモリ71から読み出されるとともに、付加情報の復号結果が、復号付加情報メモリ70から読み出される。
【0103】
そして、ステップS22に進み、ブロック分割部61において、次に処理すべき埋め込み画像のフレームがあるかどうかが判定される。ステップS22において、次に処理すべき埋め込み画像のフレームがあると判定された場合、ステップS11に戻り、そのフレームを対象に、以下、同様の処理が行われる。
【0104】
一方、ステップS22において、次に処理すべき埋め込み画像のフレームがないと判定された場合、埋め込み復号処理を終了する。
【0105】
以上のように、付加情報が埋め込まれた画像である符号化データを、画像の相関性を利用して、元の画像と付加情報に復号するようにしたので、その復号のためのオーバヘッドがなくても、符号化データを、元の画像と付加情報に復号することができる。従って、その復号画像(再生画像)には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【0106】
ここで、画素値が8ビットで表される自然画像を、4×4画素のブロックに分割して、埋め込み符号化処理を行い(従って、この場合、1ブロックにつき、3ビットの付加情報を埋め込むことができるから、付加情報の埋め込みレートは、3ビット/16ピクセルとなる)、その結果得られる埋め込み画像に対して、埋め込み復号処理を施すシミュレーションを行ったところ、すべての画素値が正常に復号された(従って、付加情報も、すべて正常に復号された)。
【0107】
また、同様の自然画像を、2×2画素のブロックに分割して、埋め込み符号化処理を行い(この場合の、付加情報の埋め込みレートは、3ビット/4ピクセルで、上述の場合の4倍)、その結果得られる埋め込み画像に対して、埋め込み復号処理を施すシミュレーションを行ったところ、97.92%の画素値が正常に復号された。
【0108】
従って、ブロックを構成する画素数を多くすれば、精度良く復号することができるが、1フレーム当たりに、埋め込むことのできる付加情報の量、即ち、埋め込みレートは減少する。一方、ブロックを構成する画素数を少なくすれば、埋め込みレートは増加するが、復号の精度が劣化する。以上から、ブロックを構成する画素数は、埋め込みレートと、復号の精度とをバランスさせるように決めるのが望ましい。
【0109】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアとしての埋め込み符号化器3や埋め込み復号器6に組み込まれているコンピュータ、または各種のプログラムをインストールすることで各種の処理を行う汎用のコンピュータ等にインストールされる。
【0110】
そこで、図13を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる媒体について説明する。
【0111】
プログラムは、図13(A)に示すように、コンピュータ101に内蔵されている記録媒体としてのハードディスク102に予めインストールした状態でユーザに提供することができる。
【0112】
あるいはまた、プログラムは、図13(B)に示すように、フロッピーディスク111、CD-ROM(Compact Disc Read Only Memory)112,MO(Magneto optical)ディスク113,DVD(Digital Versatile Disc)114、磁気ディスク115、半導体メモリ116などの記録媒体に、一時的あるいは永続的に格納し、パッケージソフトウエアとして提供することができる。
【0113】
さらに、プログラムは、図13(C)に示すように、ダウンロードサイト121から、ディジタル衛星放送用の人工衛星122を介して、コンピュータ123に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワーク131を介して、コンピュータ123に有線で転送し、コンピュータ123において、内蔵するハードディスクなどに格納させるようにすることができる。
【0114】
本明細書における媒体とは、これら全ての媒体を含む広義の概念を意味するものである。
【0115】
また、本明細書において、媒体により提供されるプログラムを記述するステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0116】
なお、本実施の形態においては、埋め込み符号化処理および埋め込み復号処理において、画像を、4×4画素のブロックに分割するようにしたが、その他の画素数で構成されるブロックに分割することも可能である。さらに、ブロックの形状は、長方形に限定されるものではない。
【0117】
また、本実施の形態では、1フレームを構成するブロックすべてに対して、付加情報を埋め込むようにしたが、1フレームを構成する幾つかのブロックにのみ、付加情報を埋め込むようにすることも可能である。なお、この場合、付加情報を埋め込まないブロックを構成する画素は、付加情報が埋め込まれたブロックを復号する際に、相関値を演算するのに用いることが可能である。
【0118】
さらに、本実施の形態では、1フレームをブロックに分割して付加情報を埋め込むようにしたが、各フレームを、ブロックに分割せずに、即ち、各フレームをブロックとして、付加情報を埋め込むことや、複数フレームを1ブロックとして、付加情報を埋め込むことも可能である。
【0119】
また、画素値のローテーションは、画素値が、例えば、YUVやRGBなどの複数成分で表現される場合には、そのすべての成分に対して、同一の付加情報にしたがったローテーションを施すようにすることもできるし、各成分それぞれに対して、異なる付加情報にしたがったローテーションを施すようにすることもできる。
【0120】
さらに、本実施の形態では、ブロックを構成する画素から、五の目格子状に、画素を選択し、その選択画素に、付加情報を埋め込むようにしたが、付加情報を埋め込む画素の選択パターンは、これに限定されるものではない。また、本実施の形態では、ブロックを構成する1/2の画素を選択し、その選択画素の画素値を、付加情報にしたがってローテーションするようにしたが、このようなローテーションを行う画素も、ブロックを構成する1/2の画素に限定されるものではない。但し、付加情報を埋め込んだ画素の復号にあたっては、上述したように、付加情報が埋め込まれていない画素を用いて相関値を求めるのが望ましく、また、画素どうしの相関は、基本的に、それらの間の空間的または時間的距離が離れるほど小さくなっていく。従って、正確な復号を行う観点からは、付加情報を埋め込む画素として選択する画素は、空間的または時間的に、いわゆる疎らになるように選択するのが望ましい。
【0121】
また、本実施の形態では、選択画素の斜め方向について、左ローテーション画素と右ローテーション画素とが交互に並ぶように、左ローテーション画素および右ローテーション画素を設定するようにしたが、左ローテーション画素および右ローテーション画素は、その他のパターンにしたがって設定することも可能である。
【0122】
さらに、本実施の形態では、選択画素のうちの一部を左ローテーション画素とするとともに、残りを右ローテーション画素として、それぞれを、付加情報にしたがって左ローテーションまたは右ローテーションするようにしたが、選択画素のすべてを、左ローテーションまたは右ローテーションするようにすることも可能である。
【0123】
また、付加情報として用いる情報は、特に限定されるものではなく、例えば、画像や、音声、テキスト、コンピュータプログラム、その他のデータを付加情報として用いることが可能である。なお、画像データベース1の画像の一部を付加情報とし、残りを、フレームメモリ31への供給対象とすれば、その残りの部分に、付加情報とされた画像の一部分が埋め込まれるから、画像の圧縮が実現されることになる。
【0124】
【発明の効果】
請求項1に記載の画像処理装置および請求項4に記載の画像処理方法、並びに請求項5に記載のプログラム格納媒体によれば、画像を構成する一部の画素が選択され、その選択された画素の画素値が、情報にしたがって、所定のビット数だけローテーションされることにより、画素に、情報が埋め込まれる。従って、画像の相関性を利用することにより、オーバヘッドなしで、元の画像と情報に復号することが可能なデータを得ることができる。
【0125】
請求項6に記載の画像処理装置および請求項11に記載の画像処理方法、並びに請求項12に記載のプログラム格納媒体によれば、情報埋め込み画像を構成する一部の画素が選択され、その選択された画素の画素値が、所定のビット数だけローテーションされる。さらに、その画素値がローテーションされた画素と、選択された画素以外の画素との間の相関が演算され、その相関に基づいて、選択された画素を復号するための、画素値をローテーションするビット数が決定される。そして、その決定されたビット数に基づいて、選択された画素が復号されるとともに、その画素に埋め込まれた情報が復号される。従って、情報埋め込み画像を、画像の相関性を利用することにより、元の画像と情報に復号することが可能となる。
【0126】
請求項13に記載の画像処理装置によれば、画像を構成する一部の画素が選択され、その選択された画素の画素値が、情報にしたがって、所定のビット数だけローテーションされることにより、画素に、情報が埋め込まれ、情報埋め込み画像が出力される。一方、情報埋め込み画像を構成する一部の画素が選択され、その選択された画素の画素値が、所定のビット数だけローテーションされる。さらに、その画素値がローテーションされた画素と、選択された画素以外の画素との間の相関が演算され、その相関に基づいて、選択された画素を復号するための、画素値をローテーションするビット数が決定される。そして、その決定されたビット数に基づいて、選択された画素が復号されるとともに、その画素に埋め込まれた情報が復号される。従って、情報埋め込み画像を、画像の相関性を利用することにより、オーバヘッドなしで、元の画像と情報に復号することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用した画像伝送システムの一実施の形態の構成例を示すブロック図である。
【図2】符号化対象の画像を示す図である。
【図3】相関性を利用した符号化/復号を説明するための図である。
【図4】図1の埋め込み符号化器3のハードウェア構成例を示すブロック図である。
【図5】図4の埋め込み符号化器3の機能的構成例を示すブロック図である。
【図6】図5の埋め込み符号化器3による埋め込み符号化処理を説明するためのフローチャートである。
【図7】埋め込み符号化処理を説明するための図である。
【図8】図1の埋め込み復号器6のハードウェア構成例を示すブロック図である。
【図9】図8の埋め込み復号器6の機能的構成例を示すブロック図である。
【図10】図9の埋め込み復号器6による埋め込み復号処理を説明するためのフローチャートである。
【図11】図10のステップS11,S12、およびS14の処理を説明するための図である。
【図12】図10のステップS15の処理を説明するための図である。
【図13】本発明を適用した媒体を説明するための図である。
【符号の説明】
1 画像データベース, 2 付加情報データベース, 3 埋め込み符号化器, 4 記録媒体, 5 伝送媒体, 6 埋め込み復号器, 10 符号化装置, 20 復号装置, 31 フレームメモリ, 32 CPU, 33 プログラムメモリ, 34 出力I/F, 41 ブロック分割部, 42 ビットローテーション部, 43 符号化画像メモリ, 51 フレームメモリ,52 出力I/F, 53 CPU, 54 プログラムメモリ, 61 ブロック分割部, 62 ビット逆ローテーション部, 63 ローテーションビット用レジスタ, 64 差分値計算部, 65,66 スイッチ, 67 最小差分値保存用レジスタ, 68 比較器, 69 最適ローテーションビット保存用レジスタ, 70 復号付加情報メモリ, 71 復号画像メモリ, 101 コンピュータ, 102 ハードディスク, 103 半導体メモリ, 111 フロッピーディスク, 112 CD-ROM, 113 MOディスク, 114 DVD, 115 磁気ディスク, 116 半導体メモリ, 121 ダウンロードサイト, 122 衛星, 123 コンピュータ, 131 ネットワーク[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and an image processing method, and Program storage medium An image processing apparatus and an image processing method capable of embedding information in an image while minimizing degradation of the image quality of the reproduced image and without increasing the amount of data, and Program storage medium About.
[0002]
[Prior art]
As a technique for embedding information in a signal without increasing the amount of data, there is, for example, a method of converting the least significant bit or the lower two bits of digital audio data into information to be embedded. This method uses the fact that the lower bits of digital audio data do not significantly affect the sound quality, and simply replaces the lower bits with information to be embedded. Therefore, at the time of playback, the information is embedded. The digital audio data is output as it is without returning its lower bits. In other words, it is difficult to restore the low-order bits embedded with information, and the low-order bits do not affect the sound quality so much, so the digital audio data is output with the information embedded. Is done.
[0003]
[Problems to be solved by the invention]
However, in the above method, a signal different from the original signal is output. Therefore, when the signal is audio data, the sound quality is affected, and when the signal is video data, the image quality is affected.
[0004]
The present invention has been made in view of such a situation, and makes it possible to embed information in an image while minimizing deterioration in image quality and without increasing the amount of data.
[0005]
[Means for Solving the Problems]
The image processing apparatus according to
[0006]
The rotation means rotates the pixel values of some of the pixels selected by the selection means in the direction from the least significant bit to the most significant bit, and changes the pixel values of the remaining pixels from the most significant bit to the most significant bit. It can be rotated in the direction of the lower bits.
[0007]
A dividing unit that divides the image into predetermined blocks can be further provided. In this case, the selecting unit can select a part of pixels constituting the block.
[0008]
The image processing method according to
[0009]
Claim 5 Stored on program storage medium According to the information, the program selects a part of pixels constituting the image, and selects pixel values of the pixels selected in the selection step according to the information. Only a certain number of bits A rotation step of embedding information in the pixel by rotation Let the computer execute the process It is characterized by that.
[0010]
The image processing apparatus according to claim 6, a selection unit that selects a part of pixels constituting the information-embedded image, and a rotation unit that rotates the pixel value of the pixel selected by the selection unit by a predetermined number of bits. A correlation calculating means for calculating a correlation between a pixel whose pixel value has been rotated and a pixel other than the pixel selected by the selecting means, and for decoding the pixel selected by the selecting means based on the correlation The pixel value is determined based on the number of bits determined by the determining means, and the pixel selected by the selecting means is decoded and the information embedded in the pixel is decoded. And a decoding means.
[0011]
The rotation means rotates the pixel values of some of the pixels selected by the selection means in the direction from the least significant bit to the most significant bit, and changes the pixel values of the remaining pixels from the most significant bit to the most significant bit. It can be rotated in the direction of the lower bits.
[0012]
A dividing unit that divides the information-embedded image into predetermined blocks can be further provided. In this case, the selection unit can select some pixels constituting the block.
[0013]
The correlation calculation means can calculate the correlation between the pixels whose pixel values are rotated and the pixels that are in the vicinity of the pixels other than the pixels selected by the selection means.
[0014]
The correlation calculation means can calculate the correlation between the pixel whose pixel value is rotated and the correlation with the already decoded pixel in addition to the correlation with the pixel other than the pixel selected by the selection means.
[0015]
The image processing method according to claim 11, wherein a selection step for selecting a part of pixels constituting the information embedding image, and a rotation step for rotating the pixel value of the pixel selected in the selection step by a predetermined number of bits, A correlation calculation step of calculating a correlation between a pixel whose pixel value has been rotated and a pixel other than the pixel selected in the selection step, and for decoding the pixel selected in the selection step based on the correlation A decision step for deciding the number of bits for rotating the pixel value, and decoding for decoding the pixel selected in the selection step and decoding information embedded in the pixel based on the number of bits decided in the decision step And a step.
[0016]
Claim 12 Stored on program storage medium The program includes a selection step for selecting a part of pixels constituting the information embedded image, a rotation step for rotating the pixel value of the pixel selected in the selection step by a predetermined number of bits, and a pixel in which the pixel value is rotated. And a correlation calculation step for calculating a correlation between pixels other than the pixel selected in the selection step, and the number of bits for rotating the pixel value for decoding the pixel selected in the selection step based on the correlation And a decoding step of decoding the pixel selected in the selection step and decoding the information embedded in the pixel based on the number of bits determined in the determination step Let the computer execute the process It is characterized by that.
[0017]
The image processing device according to claim 13 is a first selection unit that selects a part of pixels constituting an image, and the pixel value of the pixel selected by the first selection unit according to the information. Only a certain number of bits By rotating, the first rotation means for embedding information in the pixels and outputting the information embedded image, the second selection means for selecting a part of the pixels constituting the information embedded image, and the second selection means Between the second rotation means for rotating the pixel value of the pixel selected by the predetermined number of bits, the pixel whose pixel value has been rotated, and a pixel other than the pixel selected by the second selection means Correlation calculation means for calculating correlation, determination means for determining the number of bits for rotating the pixel value for decoding the pixel selected by the second selection means based on the correlation, and the determination means Based on the number of bits, the pixel selected by the second selection unit is decoded and the information embedded in the pixel is decoded. Characterized in that it comprises a decoding means.
[0018]
The image processing device according to
[0019]
The image processing device according to claim 6, the image processing method according to claim 11, and the image processing method according to claim 12. Program storage medium In, a part of pixels constituting the information-embedded image is selected, and the pixel value of the selected pixel is rotated by a predetermined number of bits. Further, a correlation between a pixel whose pixel value is rotated and a pixel other than the selected pixel is calculated, and a bit for rotating the pixel value for decoding the selected pixel based on the correlation The number is determined. Based on the determined number of bits, the selected pixel is decoded, and information embedded in the pixel is decoded.
[0020]
The image processing apparatus according to claim 13, wherein a part of pixels constituting the image is selected, and the pixel value of the selected pixel is rotated according to the information, so that the information is embedded in the pixel. , An information embedded image is output. On the other hand, a part of pixels constituting the information embedding image is selected, and the pixel value of the selected pixel is a predetermined number of bits. Only a certain number of bits Rotated. Further, a correlation between a pixel whose pixel value is rotated and a pixel other than the selected pixel is calculated, and a bit for rotating the pixel value for decoding the selected pixel based on the correlation The number is determined. Based on the determined number of bits, the selected pixel is decoded, and information embedded in the pixel is decoded.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a diagram of an image transmission system to which the present invention is applied (a system is a logical collection of a plurality of devices, regardless of whether the devices of each configuration are in the same housing). The structural example of embodiment is shown.
[0022]
The image transmission system includes an encoding device 10 and a decoding device 20, and the encoding device 10 encodes, for example, an image as an encoding target and outputs encoded data. The decoding device 20 The encoded data is decoded into the original image.
[0023]
That is, the
[0024]
The
[0025]
The embedded
[0026]
The decoding device 20 includes an embedded decoder 6 where encoded data provided via the
[0027]
Next, the principle of encoding in the embedded
[0028]
In general, what is called information has a bias (universality) of energy (entropy), and this bias is recognized as information (worthy information). That is, for example, an image obtained by photographing a certain landscape is recognized as such a landscape image because the image (pixel value of each pixel constituting the image) corresponds to the landscape. This is because the image has an energy bias, and an image having no energy bias is merely noise or the like, and is not useful as information.
[0029]
Therefore, even if some operation is performed on valuable information and the original energy bias of the information is destroyed, the operation is performed by returning the destroyed energy bias to the original state. Information can also be restored to the original information. That is, encoded data obtained by encoding information can be decoded into the original information by utilizing the original energy bias of the information.
[0030]
The information representing the energy (bias) of the information has, for example, a correlation, and the information correlation is a component of the information (for example, in the case of an image, pixels and lines constituting the image) ) Interrelationship (for example, autocorrelation, distance between one component and another).
[0031]
That is, for example, when there is an image composed of H lines as shown in FIG. 2, the correlation between the first line from the top (first line) and other lines is generally shown in FIG. As shown in (A), the closer to the first line (the line in the upper row of the screen in FIG. 2), the larger the line, and the farther the distance from the first line (the lower line in the screen in FIG. (The line of the line) becomes smaller (the correlation becomes larger as the distance from the first line is closer, and the correlation becomes smaller as the distance is farther away).
[0032]
Therefore, in the image of FIG. 2, the Mth line that is closer to the first line and the Nth line that is farther from the first line are replaced (1 <M <N ≦ H). When the correlation between a line and another line is calculated, it is as shown in FIG. 3B, for example.
[0033]
That is, in the image after replacement, the correlation with the Mth line (Nth line before replacement) close to the first line becomes small, and the correlation with the Nth line (Mth line before replacement) far from the first line. Becomes larger.
[0034]
Therefore, in FIG. 3B, the correlation bias that the correlation increases as the distance from the first line decreases and the correlation decreases as the distance from the first line decreases. However, for an image, in general, the correlation bias that the correlation increases as the distance from the first line increases, and the correlation decreases as the distance from the first line decreases, so that the broken correlation bias can be restored. That is, in FIG. 3B, the correlation with the Mth line close to the first line is small, and the correlation with the Nth line far from the first line is large because of the inherent correlation bias of the image. It is clearly unnatural (funny) and the Mth and Nth lines should be interchanged. Then, by exchanging the Mth line and the Nth line in FIG. 3B, the correlation as shown in FIG. 3A, that is, the original image can be decoded.
[0035]
Here, in the case described with reference to FIG. 2 and FIG. 3, the replacement of the line results in the encoding of the image. In the encoding, the embedded
[0036]
Next, FIG. 4 is a configuration example of the embedded
[0037]
An image supplied from the
[0038]
A CPU (Central Processing Unit) 32 executes a program stored in the
[0039]
The
[0040]
An output I / F (Interface) 34 reads an image in which additional information is embedded from the
[0041]
The
[0042]
Next, FIG. 5 shows a functional configuration example of the embedded
[0043]
The
[0044]
The
[0045]
The encoded
[0046]
Next, the embedded encoding process performed in the embedded
[0047]
As described above, the image to be encoded is supplied to the
[0048]
When the
[0049]
In step S3, the
[0050]
Here, the rotation is basically the same as the bit shift, but when the rotation is performed from the LSB to the MSB direction, the MSB is moved to the LSB without being discarded, and conversely, the rotation is performed from the MSB to the LSB direction. When performing, LSB is moved to MSB without being discarded.
[0051]
Further, the
[0052]
Here, assuming that the pixels whose pixel values are left-rotated or right-rotated are referred to as left-rotation pixels or right-rotation pixels, respectively, in the present embodiment, the left rotation pixel, the right rotation pixel, So that half of the selected pixels are rotated to the left and the other half are rotated to the right.
[0053]
For example, if the pixel value is represented by 8 bits, the pixel value of a certain left rotation pixel is 00111101B (B represents that the preceding number is a binary number), and a certain right rotation Assume that the pixel value of the pixel is 10010111B. Further, if the additional information is 2, as shown in FIG. 7B, the left rotation pixel having a pixel value of 00111101B or the right rotation pixel having a pixel value of 10010111B is left rotation by 2 bits or right Each pixel value is rotated to 11110100B or 11100101B. The other left rotation pixels and right rotation pixels in the block are similarly rotated according to the additional information.
[0054]
In the case where the pixel value is represented by 8 bits, 0 to 7 bits can be rotated. Therefore, in this case, one block has 0 to 7 additional information (represented by 3 bits). Additional information) can be embedded.
[0055]
The block on which the selected pixel is rotated in step S3 is supplied to and stored in the encoded
[0056]
When it is determined in step S4 that there is no unprocessed block, that is, when an encoded block for one frame is stored in the encoded
[0057]
On the other hand, if it is determined in step S5 that there is no frame to be processed next, the embedded encoding process is terminated.
[0058]
As described above, by selecting a part of pixels constituting the image and rotating the pixel value of the selected pixel according to the additional information, the additional information is embedded in the pixel, thereby degrading the image quality of the image. It is possible to embed additional information in an image without maximizing and without increasing the amount of data.
[0059]
That is, the pixel value of the selected pixel in which the additional information is embedded (in FIG. 7A, the pixel indicated by the hatched circles and ●) is the correlation of the image, that is, the additional information is embedded here. By using a correlation with a pixel that has not been detected (a pixel indicated by a circle in FIG. 7A), etc., as described later, the original pixel and additional information are decoded (returned) without overhead. be able to. Accordingly, in the decoded image (reproduced image) obtained as a result, image quality deterioration due to embedding additional information basically does not occur.
[0060]
Next, FIG. 8 shows a configuration example of the embedded decoder 6 in FIG. 1 that decodes the encoded data output from the embedded
[0061]
The encoded data, that is, an image in which additional information is embedded (hereinafter referred to as an embedded image as appropriate) is supplied to the
[0062]
The output I /
[0063]
The
[0064]
The
[0065]
Next, FIG. 9 shows a functional configuration example of the embedded decoder 6 realized by the
[0066]
The embedded image as encoded data is supplied to the
[0067]
The bit
[0068]
The rotation bit register 63 sets a rotation value as the number of bits for rotating the pixel value, and supplies the rotation value to the bit
[0069]
The difference value calculation unit 64 receives the encoded block in which the pixel value of the selected pixel is rotated, which is supplied from the bit inverse rotation unit 64, and for the encoded block, the correlation between the selected pixel and the adjacent pixel. In this case, for example, the sum of absolute differences of the respective pixel values is calculated. The sum of absolute differences of pixel values as the correlation value is supplied to the
[0070]
The
[0071]
The minimum difference
[0072]
The minimum value of the sum of absolute differences of pixel values (minimum sum of absolute differences) as the maximum correlation value stored in the minimum difference
[0073]
The optimum rotation
[0074]
The decoding
[0075]
Next, the embedded decoding process performed in the embedded decoder 6 of FIG. 9 will be described with reference to the flowchart of FIG.
[0076]
As described above, an embedded image is supplied to the
[0077]
When the bit
[0078]
That is, among the selected pixels of the encoding block, the pixel that is the left rotation pixel in the
[0079]
In view of this, the bit
[0080]
Thereafter, the process proceeds to step S13, where the rotation bit register 63 initializes the rotation value n to 0, and the minimum difference
[0081]
In step S14, the pixel value of the left rotation pixel or the right rotation pixel of the coding block of interest is rotated by the rotation value n from the rotation bit register 63, respectively, in the bit
[0082]
That is, for example, assume that the pixel value is represented by 8 bits, the pixel value of a certain right rotation pixel is 11110100B, and the pixel value of a certain left rotation pixel is 11100101B. Further, when the rotation value n is 2, as shown in FIG. 11B, the right rotation pixel having a pixel value of 11110100B or the left rotation pixel having a pixel value of 11100101B is rotated by 2 bits to the right, or The left pixel is rotated, and each pixel value is set to 00111101B or 10010111B. Similarly, the other left rotation and right rotation pixels in the target coding block are rotated according to the rotation value n.
[0083]
When the difference value calculation unit 64 receives from the bit
[0084]
Specifically, as shown in FIG. 12, in the coding block, the selected pixels indicated by ● and hatched ○ are one or more pixels that are not selected pixels, that is, in the embedded coding process. It is adjacent to a pixel whose pixel value is not rotated (hereinafter referred to as non-selected pixel as appropriate). The difference value calculation unit 64 calculates the absolute value (difference absolute value) of the difference between the pixel value of the selected pixel and the non-selected pixel adjacent to the selected pixel in the coding block, and the sum (difference) (Absolute value sum) is obtained as the correlation value for the encoded block.
[0085]
If a plurality of non-selected pixels are adjacent to the selected pixel, for example, as indicated by solid arrows in FIG. 12, the absolute value of the difference from the selected pixel is calculated for each of the plurality of non-selected pixels. Is done.
[0086]
In the above case, the correlation value is obtained using only the pixels in the coding block. However, the correlation value can also be obtained using the pixels outside the coding block. .
[0087]
In other words, for example, if the coding blocks constituting the embedded image are processed as the target coding block in the line scan order, when processing a certain target coding block, the left, top, or top left Embedded decoding for adjacent coding blocks has already been completed, and the original pixel values have been restored. Further, among the pixels adjacent to the left and top of the target encoding block, and the pixels adjacent to the right and bottom thereof, there are pixels whose pixel values are not rotated (non-selected pixels).
[0088]
A pixel whose pixel value is the original pixel value as described above even if it is a pixel outside the target coding block (indicated by a dotted circle in FIG. 12) is indicated by a dotted arrow in FIG. As described above, the absolute value of the difference from the selected pixel in the target coding block can be calculated.
[0089]
Further, in the above-described case, the absolute value of the difference between the selected pixel and the non-selected pixel adjacent to the selected pixel is used to obtain the correlation value for the encoded block. In addition, for example, even if it is not adjacent to the selected pixel, it is possible to use an absolute difference value between pixel values of the non-selected pixels around the selected pixel.
[0090]
Also, the absolute value of the difference from the selected pixel can be obtained for pixels that are temporally close to the selected pixel as well as pixels that are spatially close to the selected pixel.
[0091]
As described above, the difference absolute value sum of the pixel values as the correlation value for the target coding block obtained by the difference value calculation unit 64 is supplied to the
[0092]
When the
[0093]
In step S16, when it is determined that the sum of absolute differences from the difference calculation unit 64 is smaller than the value stored in the minimum difference
[0094]
As a result, in step S17, the rotation value n output from the rotation bit register 63 is supplied to the optimum rotation
[0095]
Furthermore, in step S17, the sum of absolute differences output from the difference value calculator 64 is supplied to the minimum difference
[0096]
On the other hand, when it is determined in step S16 that the sum of absolute differences from the difference calculation unit 64 is not smaller than the stored value of the minimum difference
[0097]
In step S19, it is determined in the rotation bit register 63 whether the rotation value n is smaller than the bit number th_r of the pixel value. If it is determined in step S19 that the rotation value n is smaller than the bit number th_r of the pixel value, that is, if the rotation value n is within the range of the number of bits that can rotate the pixel value, the process proceeds to step S14. Thereafter, the same processing is repeated thereafter.
[0098]
In step S19, when it is determined that the rotation value n is not smaller than the bit number th_r of the pixel value, that is, the rotation value n is set as all values that can rotate the pixel value, When the correlation value (sum of absolute difference values) is calculated, the process proceeds to step S20, and the pixel value of the selected pixel of the target encoding block is rotated by the optimal rotation bit n_min. While decoding into the original block, the additional information embedded therein is decoded.
[0099]
That is, the optimum rotation
[0100]
Further, the optimum rotation
[0101]
Thereafter, the process proceeds to step S21, and among the encoded blocks obtained by dividing the one-frame embedded image in the bit
[0102]
When it is determined in step S21 that there is no unprocessed block, that is, the decoding result of the block for one frame is stored in the decoded
[0103]
In step S22, the
[0104]
On the other hand, if it is determined in step S22 that there is no frame of an embedded image to be processed next, the embedded decoding process is terminated.
[0105]
As described above, encoded data, which is an image in which additional information is embedded, is decoded into the original image and additional information using the correlation between images, so there is no overhead for decoding. However, the encoded data can be decoded into the original image and additional information. Accordingly, the decoded image (reproduced image) basically does not deteriorate in image quality due to the embedded additional information.
[0106]
Here, a natural image whose pixel value is represented by 8 bits is divided into 4 × 4 pixel blocks, and embedded coding processing is performed (thus, in this case, 3-bit additional information is embedded per block). Therefore, the embedding rate of the additional information is 3 bits / 16 pixels), and when the simulation for performing the embedded decoding process is performed on the embedded image obtained as a result, all the pixel values are normally decoded. (Thus, all additional information was successfully decoded).
[0107]
Further, the same natural image is divided into 2 × 2 pixel blocks and embedded coding processing is performed (in this case, the embedded rate of additional information is 3 bits / 4 pixels, which is four times the above case). ) When a simulation was performed on the embedded image obtained as a result of the embedded decoding process, a pixel value of 97.92% was normally decoded.
[0108]
Therefore, if the number of pixels constituting the block is increased, decoding can be performed with high accuracy, but the amount of additional information that can be embedded per frame, that is, the embedding rate is reduced. On the other hand, if the number of pixels constituting the block is reduced, the embedding rate increases, but the decoding accuracy deteriorates. From the above, it is desirable to determine the number of pixels constituting the block so as to balance the embedding rate and the decoding accuracy.
[0109]
Next, the series of processes described above can be performed by hardware or software. When a series of processing is performed by software, a computer constituting the software is installed in the embedded
[0110]
Therefore, with reference to FIG. 13, a medium used for installing a program for executing the above-described series of processes in a computer and making it executable by the computer will be described.
[0111]
As shown in FIG. 13A, the program can be provided to the user in a state where it is installed in advance on a hard disk 102 as a recording medium built in the computer 101.
[0112]
Alternatively, as shown in FIG. 13B, the program includes a
[0113]
Further, as shown in FIG. 13C, the program is wirelessly transferred from a
[0114]
The medium in this specification means a broad concept including all these media.
[0115]
Further, in the present specification, the steps describing the program provided by the medium do not necessarily have to be processed in time series in the order described in the flowchart, but are executed in parallel or individually (for example, Parallel processing or object processing).
[0116]
In the present embodiment, the image is divided into 4 × 4 pixel blocks in the embedded encoding process and the embedded decoding process. However, the image may be divided into blocks composed of other numbers of pixels. Is possible. Furthermore, the shape of the block is not limited to a rectangle.
[0117]
In this embodiment, the additional information is embedded in all the blocks constituting one frame. However, it is also possible to embed the additional information only in some blocks constituting one frame. It is. In this case, pixels constituting a block in which the additional information is not embedded can be used to calculate a correlation value when decoding the block in which the additional information is embedded.
[0118]
Furthermore, in the present embodiment, one frame is divided into blocks and additional information is embedded. However, each frame is not divided into blocks, that is, each frame is used as a block, and additional information is embedded. It is also possible to embed additional information with a plurality of frames as one block.
[0119]
In addition, when the pixel value is expressed by a plurality of components such as YUV and RGB, the rotation of the pixel value is performed according to the same additional information for all of the components. It is also possible to rotate each component according to different additional information.
[0120]
Furthermore, in this embodiment, the pixels are selected from the pixels constituting the block in the form of a fifth lattice, and the additional information is embedded in the selected pixels. However, the selection pattern of the pixels in which the additional information is embedded is However, the present invention is not limited to this. Further, in the present embodiment, half of the pixels constituting the block are selected, and the pixel value of the selected pixel is rotated according to the additional information. However, the pixel that performs such rotation is also a block. It is not limited to ½ pixel that constitutes. However, in decoding the pixels in which the additional information is embedded, as described above, it is desirable to obtain the correlation value using the pixels in which the additional information is not embedded. In addition, the correlation between the pixels is basically the same. The smaller the spatial or temporal distance between. Therefore, from the viewpoint of performing accurate decoding, it is desirable that the pixels to be selected as the pixels in which the additional information is embedded are selected so as to be sparse in terms of space or time.
[0121]
In the present embodiment, the left rotation pixel and the right rotation pixel are set so that the left rotation pixel and the right rotation pixel are alternately arranged in the diagonal direction of the selected pixel. The rotation pixels can be set according to other patterns.
[0122]
Furthermore, in the present embodiment, some of the selected pixels are left rotation pixels and the rest are right rotation pixels, and each of them is left or right rotated according to additional information. It is also possible to rotate all of the left or right.
[0123]
The information used as the additional information is not particularly limited, and for example, an image, sound, text, a computer program, or other data can be used as the additional information. If a part of the image in the
[0124]
【The invention's effect】
The image processing device according to
[0125]
The image processing device according to claim 6, the image processing method according to claim 11, and the image processing method according to claim 12. Program storage medium According to this, a part of pixels constituting the information embedded image is selected, and the pixel value of the selected pixel is rotated by a predetermined number of bits. Further, a correlation between a pixel whose pixel value is rotated and a pixel other than the selected pixel is calculated, and a bit for rotating the pixel value for decoding the selected pixel based on the correlation The number is determined. Based on the determined number of bits, the selected pixel is decoded, and information embedded in the pixel is decoded. Therefore, the information-embedded image can be decoded into the original image and information by using the correlation between the images.
[0126]
According to the image processing device of claim 13, a part of pixels constituting the image is selected, and the pixel value of the selected pixel is determined according to the information. Only a certain number of bits By rotation, information is embedded in the pixel, and an information embedded image is output. On the other hand, some pixels constituting the information-embedded image are selected, and the pixel values of the selected pixels are rotated by a predetermined number of bits. Further, a correlation between a pixel whose pixel value is rotated and a pixel other than the selected pixel is calculated, and a bit for rotating the pixel value for decoding the selected pixel based on the correlation The number is determined. Based on the determined number of bits, the selected pixel is decoded, and information embedded in the pixel is decoded. Therefore, the information embedded image can be decoded into the original image and information without overhead by using the correlation of the image.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of an embodiment of an image transmission system to which the present invention is applied.
FIG. 2 is a diagram illustrating an image to be encoded.
FIG. 3 is a diagram for explaining encoding / decoding using correlation.
4 is a block diagram illustrating a hardware configuration example of an embedded
5 is a block diagram illustrating a functional configuration example of an embedded
6 is a flowchart for explaining an embedded encoding process by the embedded
FIG. 7 is a diagram for explaining an embedded encoding process.
8 is a block diagram illustrating a hardware configuration example of the embedded decoder 6 in FIG. 1;
9 is a block diagram illustrating a functional configuration example of the embedded decoder 6 in FIG. 8;
10 is a flowchart for explaining an embedded decoding process by the embedded decoder 6 of FIG. 9;
11 is a diagram for explaining the processing in steps S11, S12, and S14 in FIG.
12 is a diagram for explaining the processing in step S15 in FIG. 10;
FIG. 13 is a diagram for explaining a medium to which the present invention is applied;
[Explanation of symbols]
1 image database, 2 additional information database, 3 embedded encoder, 4 recording medium, 5 transmission medium, 6 embedded decoder, 10 encoding device, 20 decoding device, 31 frame memory, 32 CPU, 33 program memory, 34 output I / F, 41 block division unit, 42 bit rotation unit, 43 encoded image memory, 51 frame memory, 52 output I / F, 53 CPU, 54 program memory, 61 block division unit, 62 bit reverse rotation unit, 63 rotation Bit register, 64 difference value calculation unit, 65, 66 switch, 67 minimum difference value storage register, 68 comparator, 69 optimum rotation bit storage register, 70 decoding additional information memory, 71 decoding image memory, 101 computer, 102 Dodisuku, 103 semiconductor memory, 111 a floppy disk, 112 CD-ROM, 113 MO disk, 114 DVD, 115 magnetic disk, 116 a semiconductor memory, 121 a download site 122 satellite, 123 computer, 131 network
Claims (13)
前記画像を構成する一部の画素を選択する選択手段と、
前記選択手段によって選択された前記画素の画素値を、前記情報にしたがって、所定のビット数だけローテーションすることにより、前記画素に、前記情報を埋め込むローテーション手段と
を含むことを特徴とする画像処理装置。An image processing apparatus that performs processing for embedding information in an image,
Selecting means for selecting some of the pixels constituting the image;
Rotating means for embedding the information in the pixel by rotating the pixel value of the pixel selected by the selecting means by a predetermined number of bits in accordance with the information. .
ことを特徴とする請求項1に記載の画像処理装置。The rotation means rotates the pixel values of some of the pixels selected by the selection means in the direction from the least significant bit to the most significant bit, and converts the pixel values of the remaining pixels to the most significant bit. The image processing apparatus according to claim 1, wherein the image processing apparatus rotates in a direction from the least significant bit to the least significant bit.
前記選択手段は、前記ブロックを構成する一部の画素を選択する
ことを特徴とする請求項1に記載の画像処理装置。Further comprising dividing means for dividing the image into predetermined blocks;
The image processing apparatus according to claim 1, wherein the selection unit selects a part of pixels constituting the block.
前記画像を構成する一部の画素を選択する選択ステップと、
前記選択ステップで選択された前記画素の画素値を、前記情報にしたがって、所定のビット数だけローテーションすることにより、前記画素に、前記情報を埋め込むローテーションステップと
を含むことを特徴とする画像処理方法。An image processing method for performing processing for embedding information in an image,
A selection step of selecting some pixels constituting the image;
A rotation step of embedding the information in the pixel by rotating the pixel value of the pixel selected in the selection step by a predetermined number of bits according to the information. .
前記画像を構成する一部の画素を選択する選択ステップと、
前記選択ステップで選択された前記画素の画素値を、前記情報にしたがって、所定のビット数だけローテーションすることにより、前記画素に、前記情報を埋め込むローテーションステップと
を含む処理を、前記コンピュータに実行させるプログラムを格納するプログラム格納媒体。 A program storage medium for storing a program for causing a computer to execute processing for embedding information in an image,
A selection step of selecting some pixels constituting the image;
The pixel value of the pixel selected in the selection step is rotated by a predetermined number of bits according to the information , thereby causing the computer to execute a process including a rotation step of embedding the information in the pixel. A program storage medium for storing programs .
前記情報埋め込み画像を構成する一部の画素を選択する選択手段と、
前記選択手段によって選択された前記画素の画素値を、所定のビット数だけローテーションするローテーション手段と、
画素値がローテーションされた前記画素と、前記選択手段によって選択された前記画素以外の画素との間の相関を演算する相関演算手段と、
前記相関に基づいて、前記選択手段によって選択された前記画素を復号するための、画素値をローテーションするビット数を決定する決定手段と、
前記決定手段によって決定されたビット数に基づいて、前記選択手段によって選択された前記画素を復号するとともに、その画素に埋め込まれた前記情報を復号する復号手段と
を含むことを特徴とする画像処理装置。An image processing apparatus that performs processing for decoding an information embedded image, which is an image in which information is embedded, into an original image and information,
Selecting means for selecting a part of pixels constituting the information-embedded image;
Rotation means for rotating the pixel value of the pixel selected by the selection means by a predetermined number of bits;
Correlation calculation means for calculating a correlation between the pixel whose pixel value is rotated and a pixel other than the pixel selected by the selection means;
Determining means for determining the number of bits to rotate the pixel value for decoding the pixel selected by the selecting means based on the correlation;
And a decoding unit that decodes the pixel selected by the selection unit based on the number of bits determined by the determination unit and decodes the information embedded in the pixel. apparatus.
ことを特徴とする請求項6に記載の画像処理装置。The rotation means rotates the pixel values of some of the pixels selected by the selection means in the direction from the least significant bit to the most significant bit, and converts the pixel values of the remaining pixels to the most significant bit. The image processing apparatus according to claim 6, wherein the image processing apparatus rotates in the direction from the least significant bit to the least significant bit.
前記選択手段は、前記ブロックを構成する一部の画素を選択する
ことを特徴とする請求項6に記載の画像処理装置。Further comprising a dividing means for dividing the information-embedded image into predetermined blocks;
The image processing apparatus according to claim 6, wherein the selection unit selects a part of pixels constituting the block.
ことを特徴とする請求項6に記載の画像処理装置。The correlation calculation unit calculates a correlation between the pixel whose pixel value is rotated and a pixel around the pixel, the pixel being other than the pixel selected by the selection unit. The image processing apparatus according to claim 6.
ことを特徴とする請求項6に記載の画像処理装置。The correlation calculation unit calculates a correlation between the pixel whose pixel value is rotated and a correlation with a pixel other than the pixel selected by the selection unit as well as a correlation with an already decoded pixel. The image processing apparatus according to claim 6.
前記情報埋め込み画像を構成する一部の画素を選択する選択ステップと、
前記選択ステップで選択された前記画素の画素値を、所定のビット数だけローテーションするローテーションステップと、
画素値がローテーションされた前記画素と、前記選択ステップで選択された前記画素以外の画素との間の相関を演算する相関演算ステップと、
前記相関に基づいて、前記選択ステップで選択された前記画素を復号するための、画素値をローテーションするビット数を決定する決定ステップと、
前記決定ステップで決定されたビット数に基づいて、前記選択ステップで選択された前記画素を復号するとともに、その画素に埋め込まれた前記情報を復号する復号ステップと
を含むことを特徴とする画像処理方法。An image processing method for performing processing for decoding an information embedded image, which is an image in which information is embedded, into an original image and information,
A selection step of selecting some of the pixels constituting the information-embedded image;
A rotation step of rotating the pixel value of the pixel selected in the selection step by a predetermined number of bits;
A correlation calculation step of calculating a correlation between the pixel whose pixel value has been rotated and a pixel other than the pixel selected in the selection step;
A determination step of determining the number of bits to rotate the pixel value for decoding the pixel selected in the selection step based on the correlation;
And a decoding step of decoding the pixel selected in the selection step based on the number of bits determined in the determination step and decoding the information embedded in the pixel. Method.
前記情報埋め込み画像を構成する一部の画素を選択する選択ステップと、
前記選択ステップで選択された前記画素の画素値を、所定のビット数だけローテーションするローテーションステップと、
画素値がローテーションされた前記画素と、前記選択ステップで選択された前記画素以外の画素との間の相関を演算する相関演算ステップと、
前記相関に基づいて、前記選択ステップで選択された前記画素を復号するための、画素値をローテーションするビット数を決定する決定ステップと、
前記決定ステップで決定されたビット数に基づいて、前記選択ステップで選択された前記画素を復号するとともに、その画素に埋め込まれた前記情報を復号する復号ステップと
を含む処理を、前記コンピュータに実行させるプログラムを格納するプログラム格納媒体。 A program storage medium for storing a program that causes a computer to execute processing for decoding an information embedded image, which is an image in which information is embedded, into an original image and information,
A selection step of selecting some of the pixels constituting the information-embedded image;
A rotation step of rotating the pixel value of the pixel selected in the selection step by a predetermined number of bits;
A correlation calculation step of calculating a correlation between the pixel whose pixel value has been rotated and a pixel other than the pixel selected in the selection step;
A determination step of determining the number of bits to rotate the pixel value for decoding the pixel selected in the selection step based on the correlation;
Based on the number of bits determined in the determination step, the computer executes a process including decoding the pixel selected in the selection step and decoding the information embedded in the pixel A program storage medium for storing a program to be executed .
前記情報埋め込み画像を、元の画像と情報に復号する埋め込み復号器と
を備える画像処理装置であって、
前記埋め込み符号化器は、
前記画像を構成する一部の画素を選択する第1の選択手段と、
前記第1の選択手段によって選択された前記画素の画素値を、前記情報にしたがって、所定のビット数だけローテーションすることにより、前記画素に、前記情報を埋め込み、前記情報埋め込み画像を出力する第1のローテーション手段と
を含み、
前記埋め込み復号器は、
前記情報埋め込み画像を構成する一部の画素を選択する第2の選択手段と、
前記第2の選択手段によって選択された前記画素の画素値を、所定のビット数だけローテーションする第2のローテーション手段と、
画素値がローテーションされた前記画素と、前記第2の選択手段によって選択された前記画素以外の画素との間の相関を演算する相関演算手段と、
前記相関に基づいて、前記第2の選択手段によって選択された前記画素を復号するための、画素値をローテーションするビット数を決定する決定手段と、
前記決定手段によって決定されたビット数に基づいて、前記第2の選択手段によって選択された前記画素を復号するとともに、その画素に埋め込まれた前記情報を復号する復号手段と
を含む
ことを特徴とする画像処理装置。An embedded encoder that embeds information in an image and outputs an information embedded image that is an image in which the information is embedded;
An image processing apparatus comprising: an original image and an embedded decoder for decoding the information embedded image into information,
The embedded encoder is:
First selection means for selecting some of the pixels constituting the image;
The pixel value of the pixel selected by the first selection means is rotated by a predetermined number of bits according to the information, thereby embedding the information in the pixel and outputting the information embedded image. Rotation means, and
The embedded decoder is
Second selection means for selecting some of the pixels constituting the information-embedded image;
Second rotation means for rotating the pixel value of the pixel selected by the second selection means by a predetermined number of bits;
Correlation calculation means for calculating a correlation between the pixel whose pixel value is rotated and a pixel other than the pixel selected by the second selection means;
Determining means for determining the number of bits for rotating the pixel value for decoding the pixel selected by the second selecting means based on the correlation;
And decoding means for decoding the pixel selected by the second selection means based on the number of bits determined by the determination means and decoding the information embedded in the pixel. An image processing apparatus.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16052999A JP4092608B2 (en) | 1999-06-08 | 1999-06-08 | Image processing apparatus, image processing method, and program storage medium |
US09/587,838 US6870944B1 (en) | 1999-06-08 | 2000-06-06 | Image processing apparatus, image processing method, and storage medium |
EP00304811A EP1059606B1 (en) | 1999-06-08 | 2000-06-07 | Image processing apparatus, image processing methods, and storage media |
DE60030911T DE60030911T2 (en) | 1999-06-08 | 2000-06-07 | Image processing apparatus and method and storage medium |
KR1020000030985A KR100667612B1 (en) | 1999-06-08 | 2000-06-07 | Image processing apparatus, image processing method, and storage medium |
CNB001202073A CN1148964C (en) | 1999-06-08 | 2000-06-08 | Image processing device and method, and memory medium |
US10/915,806 US7606431B2 (en) | 1999-06-08 | 2004-08-11 | Image processing apparatus, image processing method, and storage medium |
US10/915,829 US6940996B2 (en) | 1999-06-08 | 2004-08-11 | Image processing apparatus, image processing method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16052999A JP4092608B2 (en) | 1999-06-08 | 1999-06-08 | Image processing apparatus, image processing method, and program storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000350010A JP2000350010A (en) | 2000-12-15 |
JP4092608B2 true JP4092608B2 (en) | 2008-05-28 |
Family
ID=15716949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16052999A Expired - Fee Related JP4092608B2 (en) | 1999-06-08 | 1999-06-08 | Image processing apparatus, image processing method, and program storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4092608B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4556087B2 (en) * | 2001-03-22 | 2010-10-06 | ソニー株式会社 | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM, AND PROGRAM RECORDING MEDIUM |
CN100341330C (en) * | 2005-02-25 | 2007-10-03 | 吉林大学 | Audio-embedded video frequency in audio-video mixed signal synchronous compression and method of extraction |
-
1999
- 1999-06-08 JP JP16052999A patent/JP4092608B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000350010A (en) | 2000-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4822304B2 (en) | Image processing apparatus, image processing method, and recording medium | |
JP3924967B2 (en) | Encoding apparatus and method, decoding apparatus and method, recording medium, and data processing system | |
JP4147700B2 (en) | Encoding apparatus, encoding method, and recording medium | |
US7738711B2 (en) | Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal | |
JP4182603B2 (en) | Encoding apparatus and encoding method, decoding apparatus and decoding method, recording medium, and data processing apparatus | |
US7606431B2 (en) | Image processing apparatus, image processing method, and storage medium | |
JP4092608B2 (en) | Image processing apparatus, image processing method, and program storage medium | |
JP4099687B2 (en) | Image processing apparatus, image processing method, and medium | |
US6738492B1 (en) | Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal | |
JP4556147B2 (en) | Decoding device, decoding method, recording medium, and data processing device | |
KR100711012B1 (en) | Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal | |
EP0993199A2 (en) | Apparatus and method for image data coding with additional data embedding | |
JPH10271500A (en) | Encoder its method, decoder and its method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080118 |
|
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: 20080207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080220 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130314 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140314 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |