JP4092608B2 - Image processing apparatus, image processing method, and program storage medium - Google Patents

Image processing apparatus, image processing method, and program storage medium Download PDF

Info

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
Application number
JP16052999A
Other languages
Japanese (ja)
Other versions
JP2000350010A (en
Inventor
哲二郎 近藤
小林  直樹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP16052999A priority Critical patent/JP4092608B2/en
Priority to US09/587,838 priority patent/US6870944B1/en
Priority to KR1020000030985A priority patent/KR100667612B1/en
Priority to EP00304811A priority patent/EP1059606B1/en
Priority to DE60030911T priority patent/DE60030911T2/en
Priority to CNB001202073A priority patent/CN1148964C/en
Publication of JP2000350010A publication Critical patent/JP2000350010A/en
Priority to US10/915,806 priority patent/US7606431B2/en
Priority to US10/915,829 priority patent/US6940996B2/en
Application granted granted Critical
Publication of JP4092608B2 publication Critical patent/JP4092608B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 claim 1, a selection unit that selects a part of pixels constituting an image, and a pixel value of the pixel selected by the selection unit according to information Only a certain number of bits Rotation means for embedding information in the pixel by rotation is included.
[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 claim 4, wherein a selection step of selecting a part of pixels constituting the image, and a pixel value of the pixel selected in the selection step according to the information Only a certain number of bits A rotation step of embedding information in a pixel by rotation is included.
[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 claim 1, the image processing method according to claim 4, and the image processing method according to claim 5. Program storage medium In, 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.
[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 image database 1 stores an image to be encoded (for example, a digital image). Then, the image stored in the image database 1 is read out and supplied to the embedded encoder 3.
[0024]
The additional information database 2 stores additional information (digital data) as information to be embedded in the image to be encoded. The additional information stored in the additional information database 2 is read out and supplied to the embedded encoder 3.
[0025]
The embedded encoder 3 receives an image from the image database 1 and additional information from the additional information database 2. Furthermore, the embedded encoder 3 encodes the image according to the additional information from the additional information database 2 so that the image can be decoded by using the energy bias of the image from the image database 1. Output. That is, the embedded encoder 3 embeds additional information in an image so that decoding can be performed using the energy bias of the image, thereby encoding the image and outputting encoded data. The encoded data output from the embedded encoder 3 is recorded on a recording medium 4 made of, for example, a magneto-optical disk, a magnetic disk, an optical disk, a magnetic tape, a phase change disk, or the like. The data is transmitted via a transmission medium 5 including a line, a CATV (Cable Television) network, the Internet, a public line, etc., and provided to the decoding device 20.
[0026]
The decoding device 20 includes an embedded decoder 6 where encoded data provided via the recording medium 4 or the transmission medium 5 is received. Further, the embedded decoder 6 decodes the encoded data into the original image and the additional information using the energy bias of the image. The decoded image is supplied to a monitor (not shown) and displayed, for example. The decoded additional information is used for performing predetermined processing, for example.
[0027]
Next, the principle of encoding in the embedded encoder 3 in FIG. 1 and decoding in the embedded decoder 6 will be described.
[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 encoder 3 determines, for example, which line is to be moved and which lines are to be exchanged according to the additional information. On the other hand, in the embedded decoder 6, the encoded image, that is, the image in which the line is replaced can be restored to the original image by replacing the line with the original position using the correlation. Will be decrypted. Further, in the decoding, detecting, for example, what line has been moved or which lines have been replaced in the embedded decoder 6 will decode the additional information embedded in the image.
[0036]
Next, FIG. 4 is a configuration example of the embedded encoder 3 in FIG. 1 that performs embedded encoding in which additional information is embedded in an image so that the image can be restored using the correlation of the image as described above. Is shown.
[0037]
An image supplied from the image database 1 is supplied to a frame memory 31. The frame memory 31 temporarily stores an image from the image database 1 in units of frames, for example.
[0038]
A CPU (Central Processing Unit) 32 executes a program stored in the program memory 33 so as to perform an embedded encoding process to be described later on an image stored in the frame memory 31. In other words, the CPU 32 is configured to embed additional information supplied from the additional information database 2 in an image stored in the frame memory 31.
[0039]
The program memory 33 is composed of, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), and the like, and stores a computer program for causing the CPU 32 to perform an embedded encoding process.
[0040]
An output I / F (Interface) 34 reads an image in which additional information is embedded from the frame memory 31 and outputs the image as encoded data.
[0041]
The frame memory 31 is configured by a plurality of banks so that a plurality of frames can be stored. By switching the banks, the frame memory 31 stores images supplied from the image database 1; Storage of an image that is the target of the embedded encoding process by the CPU 32 and output of an image (encoded data) after the embedded encoding process can be performed simultaneously. As a result, even if the image supplied from the image database 1 is a moving image, the encoded data can be output in real time.
[0042]
Next, FIG. 5 shows a functional configuration example of the embedded encoder 3 realized by the CPU 32 of FIG. 4 executing a program stored in the program memory 33.
[0043]
The block division unit 41 is supplied with an image to be encoded, for example, in units of one frame. The block division unit 41 converts the image in units of one frame into blocks of a predetermined size. And is supplied to the bit rotation unit 42.
[0044]
The bit rotation unit 42 is supplied with additional information embedded in an image in addition to being supplied with blocks from the block division unit 41, and the bit rotation unit 42 constitutes a block from the block division unit 41. Additional information is embedded in the selected pixel by selecting a part of the pixels and rotating the pixel value of the pixel (hereinafter, appropriately referred to as a selected pixel) according to the additional information. A block in which additional information is embedded in the selected pixel is supplied to the encoded image memory 43 as an encoded block.
[0045]
The encoded image memory 43 sequentially stores the encoded blocks supplied from the bit rotation unit 42. When the encoded block for one frame is stored, the encoded block for one frame is output as encoded data. It is like that.
[0046]
Next, the embedded encoding process performed in the embedded encoder 3 in FIG. 5 will be described with reference to the flowchart in FIG.
[0047]
As described above, the image to be encoded is supplied to the block dividing unit 41 in units of one frame, and when the block dividing unit 41 receives an image of one frame, in step S1 Then, the image of one frame is divided into blocks of a predetermined size. That is, the block dividing unit 41 divides an image of one frame into blocks each having horizontal × vertical 4 × 4 pixels as shown in FIG. 7A, for example. The blocks obtained in the block division 41 are sequentially supplied to the bit rotation unit 42, for example, in line scan order.
[0048]
When the bit rotation unit 42 receives a block from the block dividing unit 41, the bit rotation unit 42 sets the block as a target block, and selects some pixels constituting the target block in step S2. That is, the bit rotation unit 42 has a positional relationship that forms a five-eye lattice, for example, as shown by a circle and a hatched circle in FIG. Is selected as a selected pixel. Accordingly, here, half of the pixels constituting the block are selected as the selected pixels.
[0049]
In step S3, the bit rotation unit 42 rotates the pixel value of the selected pixel according to the additional information, so that the additional information is embedded in the selected pixel. That is, the bit rotation unit 42 changes the pixel value of the selected pixel indicated by the hatched circle in FIG. 7A among the selected pixels from the LSB (Least Significant Bit) to the MSB (Most Significant Bit) direction. In addition, rotation is performed by the number of bits corresponding to the value of the additional information (hereinafter, referred to as left rotation as appropriate).
[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 bit rotation unit 42 rotates the pixel values of the selected pixels indicated by ● in FIG. 7A in the direction from the MSB to the LSB by the number of bits corresponding to the additional information (hereinafter referred to as “additional information”). This is called right rotation).
[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 image memory 43 as an encoded block. Then, the process proceeds to step S4, and among the blocks obtained by dividing the image of one frame in the bit rotation unit 42, there is a block that has not yet been processed as the target block (hereinafter referred to as an unprocessed block as appropriate). It is determined whether or not. If it is determined in step S4 that there is an unprocessed block, one of the unprocessed blocks is set as the target block, the process returns to step S2, and the same processing is repeated thereafter.
[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 image memory 43, the encoded block for one frame is encoded. Read from the converted image memory 43. In step S5, the block division unit 41 determines whether there is a frame to be processed next. If it is determined in step S5 that there is a frame to be processed next, the process returns to step S1 and the same processing is performed for that frame.
[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 encoder 3 in FIG. 5 into the original image and additional information using the correlation of the images. Is shown.
[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 frame memory 51. The frame memory 51 stores the embedded image, for example, in frame units. It is made to memorize temporarily. The frame memory 51 is also configured in the same manner as the frame memory 31 of FIG. 4, and by performing bank switching, real-time processing is possible even if the embedded image is a moving image.
[0062]
The output I / F 52 reads and outputs an image (decoded image) obtained as a result of an embedded decoding process (to be described later) by the CPU 53 from the frame memory 51.
[0063]
The CPU 53 performs an embedded decoding process by executing a program stored in the program memory 54. That is, the CPU 53 is configured to decode the embedded image stored in the frame memory 51 into the original image and the additional information using the correlation between the images.
[0064]
The program memory 54 is configured, for example, in the same manner as the program memory 33 in FIG. 4, and stores a computer program for causing the CPU 53 to perform embedded decoding processing.
[0065]
Next, FIG. 9 shows a functional configuration example of the embedded decoder 6 realized by the CPU 53 of FIG. 8 executing a program stored in the program memory 54.
[0066]
The embedded image as encoded data is supplied to the block dividing unit 61 in units of one frame, for example. The block dividing unit 61 divides the embedded image into blocks of a predetermined size, that is, encoded blocks, as in the block dividing unit 41 of FIG. 5, and sequentially supplies them to the bit inverse rotation unit 62. It has become.
[0067]
The bit reverse rotation unit 62 selects, as a selection pixel, a pixel at the same position as that selected by the bit rotation unit 42 in FIG. 5 among the pixels constituting the encoded block from the block division unit 61. The pixel value of the selected pixel is rotated by the number of bits corresponding to the rotation value supplied from the rotation bit register 63 and supplied to the difference value calculation unit 64. Further, the bit reverse rotation unit 62 rotates the pixel value of the selected pixel by the optimum rotation bit stored in the optimum rotation bit storage register 69, thereby decoding the encoded block into the original block and decoding It is supplied to the image memory 71.
[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 reverse rotation unit 62 and the switch 65. That is, when the pixel value is represented by th_r bits, the pixel value can be rotated by 0 to th_r-1 bits (rotations with a bit number greater than th_r bits are 0 to th_r-1 bits). In this case, the rotation bit register 63 sequentially sets 0 to th_r−1 bits as a rotation value and supplies the rotation value to the bit reverse rotation unit 62 and the switch 65.
[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 switch 66 and the comparator 68.
[0070]
The switch 65 supplies the rotation value output from the rotation bit register 63 to the optimum rotation bit storage register 69 under the control of the comparator 68. The switch 66 supplies the correlation value output from the difference value calculation unit 64 to the minimum difference value storage register 67 under the control of the comparator 68.
[0071]
The minimum difference value storage register 67 converts the correlation value supplied from the difference value calculation unit 64 via the switch 66 into a coding block that is a target of processing (hereinafter, referred to as a target coding block as appropriate). Is stored as the maximum correlation value. In the present embodiment, as described above, the correlation value between the selected pixel for the coding block and the adjacent pixel employs the sum of absolute differences of the respective pixel values. The maximum correlation value means the minimum value of the sum of absolute differences of pixel values.
[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 value storage register 67 is supplied to the comparator 68 for comparison. The device 68 compares the difference absolute value sum output from the difference value calculation unit 64 with the minimum difference absolute value sum stored in the minimum difference value storage register 67, and based on the comparison result, the switch 65 and 66 is controlled.
[0073]
The optimum rotation bit storage register 69 uses the rotation value supplied from the rotation bit register 63 via the switch 65 as the optimum rotation bit that is the optimum number of bits for rotating the pixel value of the selected pixel of the coding block. It is stored and supplied to the bit reverse rotation unit 62 and the decoding additional information memory 70 as necessary.
[0074]
The decoding additional information memory 70 temporarily stores and outputs a value corresponding to the optimum rotation bit supplied from the optimum rotation bit storage register 69 as a decoding result of the additional information embedded in the coding block. Yes. The decoded image memory 71 temporarily stores, as a decoding result of the original block, the encoded block in which the pixel value of the selected pixel rotated by the optimal rotation bit, which is output from the bit reverse rotation unit 62, is stored in the block of one frame When the decoding result is stored, the decoded image for one frame is output.
[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 block dividing unit 61 in units of one frame. When the block dividing unit 61 receives an embedded image of one frame, in step S11, the 1 The frame embedded image is divided into blocks of a predetermined size in the same manner as the block dividing unit 41 in FIG. That is, the block dividing unit 61 divides one frame of the embedded image into encoded blocks each having horizontal × vertical 4 × 4 pixels as shown in FIG. The encoded blocks obtained in the block division 61 are sequentially supplied to the bit reverse rotation unit 62, for example, in line scan order.
[0077]
When the bit inverse rotation unit 62 receives the encoded block from the block dividing unit 61, in step S12, the encoded block is set as the target encoded block, and some of the pixels constituting the target encoded block are selected pixels. Choose as. That is, the bit reverse rotation unit 62 selects the pixels constituting the target coding block as the selection pixels by the bit rotation unit 42 in FIG. The same pixel as the pixel is selected as the selected pixel. Further, the bit reverse rotation unit 62 sets the selected pixels, which are the left rotation pixel or the right rotation pixel in the bit rotation unit 42 in FIG. 5, as the right rotation pixel or the left rotation pixel, respectively.
[0078]
That is, among the selected pixels of the encoding block, the pixel that is the left rotation pixel in the bit rotation unit 42 of FIG. 5 is the left rotation and the pixel value corresponding to the number of bits corresponding to the additional information embedded therein. Can be decoded back to the original pixel by rotating to the right. Similarly, the pixel that is the right rotation pixel in the bit rotation unit 42 in FIG. 5 is left-rotated by rotating the pixel value by the number of bits corresponding to the additional information embedded therein, as opposed to the right rotation. , Can be decoded back to the original pixel.
[0079]
In view of this, the bit reverse rotation unit 62 is configured so that the left rotation pixel or the right rotation pixel in the bit rotation unit 42 in FIG. 5 is a right rotation pixel or a left rotation pixel, respectively. Accordingly, in the bit reverse rotation unit 62, in contrast to the case described with reference to FIG. 7A, the pixel indicated by the hatched circle in FIG. 11A is the right rotation pixel, and the mark ● The pixel indicated by is a left rotation pixel.
[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 value storage register 67 sets the stored value (minimum difference absolute value sum) to a predetermined large value. (For example, the maximum value that can be stored). Further, the rotation bit register 63 supplies the rotation value n to the bit reverse rotation unit 62 and outputs it to the switch 65 which is normally in the OFF state, and proceeds to step S14.
[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 reverse rotation unit 62. The subsequent target encoded block is supplied to the difference value calculation unit 64.
[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 inverse rotation unit 62 the attention coding block in which the pixel value of the selected pixel is rotated by n bits, in step S15, the correlation value (attention coding) for the attention coding block. As the correlation value between the pixels constituting the block), the sum of the correlation values between the selected pixel and the adjacent pixels, that is, here, for example, the sum of absolute differences of the pixel values of the selected pixel and the adjacent pixels. calculate.
[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 comparator 68 and is normally in an off state. The switch 66 is supplied.
[0092]
When the comparator 68 receives the difference absolute value sum for the target coding block from the difference value calculation unit 64, the difference absolute value sum is stored in the minimum difference value storage register 67 (minimum difference) in step S15. It is determined whether it is smaller than the sum of absolute values.
[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 value storage register 67, that is, the target encoding in which the pixel value of the selected pixel is rotated by n bits. The correlation value for the block is larger than the correlation value obtained so far for the target encoded block, and therefore the target encoded block obtained by rotating the pixel value of the selected pixel by n bits is the original block. If the probability of being “A” is large, the process proceeds to step S17, and the comparator 68 temporarily switches the switches 65 and 66 from the off state to the on state, and then proceeds to step S18.
[0094]
As a result, in step S17, the rotation value n output from the rotation bit register 63 is supplied to the optimum rotation bit storage register 69 via the switch 65, and the optimum rotation bit storage register 69 stores the optimum rotation value there. Instead of the stored value already stored as the bit n_min, the rotation value n from the rotation bit register 63 becomes a new optimum rotation bit (the most appropriate rotation for rotating the selected pixel to decode the coding block of interest). The number of bits) is stored as n_min.
[0095]
Furthermore, in step S17, the sum of absolute differences output from the difference value calculator 64 is supplied to the minimum difference value storage register 67 via the switch 66, and the minimum difference value storage register 67 stores the minimum difference there. Instead of the stored value already stored as the value, the difference absolute value sum output by the difference value calculation unit 64 is stored as a new minimum difference absolute value sum (maximum correlation value for the target coding block). .
[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 value storage register 67, that is, the pixel value of the selected pixel is rotated by n bits. The correlation value for the target coding block is less than or equal to the maximum correlation value obtained so far for the target coding block. Therefore, the target coding block obtained by rotating the pixel value of the selected pixel by n bits is If the probability of being a block is not large, step S17 is skipped and the process proceeds to step S18 where the rotation value n is incremented by 1 in the rotation bit register 63.
[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 bit storage register 69 supplies the optimum rotation bit n_min stored therein to the bit reverse rotation unit 62, and the bit reverse rotation unit 62 adds only the optimum rotation bit n_min to the target coding block. The pixel values of the left rotation pixel or the right rotation pixel of the left rotation pixel or the right rotation pixel are respectively left-rotated or right-rotated as described in step S14, and are thereby decoded into the original block. The decoded block is supplied to the decoded image memory 71 and stored at a corresponding address.
[0100]
Further, the optimum rotation bit storage register 69 supplies the optimum rotation bit n_min stored therein to the decoded additional information memory 70 for storage as a decoding result of the additional information embedded in the target coding block. .
[0101]
Thereafter, the process proceeds to step S21, and among the encoded blocks obtained by dividing the one-frame embedded image in the bit reverse rotation unit 62, blocks that have not yet been processed as the target encoded block (this block is also described below). It is determined whether or not there is an unprocessed block as appropriate. If it is determined in step S21 that there is an unprocessed block, one of the unprocessed blocks (for example, the next encoded block in the line scan order) is set as the target encoded block, and the process proceeds to step S12. Thereafter, the same processing is repeated thereafter.
[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 image memory 71 and all the additional information embedded in the one frame is stored. Is stored in the decoded additional information memory 70, the decoded image of one frame is read from the decoded image memory 71, and the decoding result of the additional information is read from the decoded additional information memory 70.
[0103]
In step S22, the block dividing unit 61 determines whether there is a frame of an embedded image to be processed next. If it is determined in step S22 that there is a frame of an embedded image to be processed next, the process returns to step S11, and the same processing is performed for that frame.
[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 encoder 3 or embedded decoder 6 as dedicated hardware, or various programs are installed. Installed on a general-purpose computer or the like that performs various processes.
[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 floppy disk 111, a CD-ROM (Compact Disc Read Only Memory) 112, a MO (Magneto optical) disk 113, a DVD (Digital Versatile Disc) 114, a magnetic disk. 115, stored in a recording medium such as the semiconductor memory 116 temporarily or permanently, and provided as package software.
[0113]
Further, as shown in FIG. 13C, the program is wirelessly transferred from a download site 121 to a computer 123 via a digital satellite broadcasting artificial satellite 122, or a LAN (Local Area Network) or the Internet. It can be transferred to the computer 123 via the network 131 by wire and stored in a built-in hard disk or the like in the computer 123.
[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 image database 1 is set as additional information and the rest is a supply target to the frame memory 31, a part of the image set as the additional information is embedded in the remaining part. Compression will be realized.
[0124]
【The invention's effect】
The image processing device according to claim 1, the image processing method according to claim 4, and the image processing method according to claim 5. Program storage medium According to the above, 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. Therefore, by utilizing the correlation of images, it is possible to obtain data that can be decoded into the original image and information without overhead.
[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 encoder 3 in FIG. 1. FIG.
5 is a block diagram illustrating a functional configuration example of an embedded encoder 3 in FIG. 4;
6 is a flowchart for explaining an embedded encoding process by the embedded encoder 3 of FIG. 5; FIG.
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.
JP16052999A 1999-06-08 1999-06-08 Image processing apparatus, image processing method, and program storage medium Expired - Fee Related JP4092608B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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