(57)【特許請求の範囲】
【請求項１】
第１のデータを、第２のデータにしたがって符号化する符号化装置であって、
前記第１のデータの少なくとも一部のデータの度数分布を求める度数分布算出手段と、
前記度数分布に応じて、前記一部のデータの中から、前記第２のデータにしたがって変更する変更対象データを決定するとともに、前記変更対象データを変更する値である変更データを決定する決定手段と、
前記第２のデータにしたがって、前記変更対象データを前記変更データに変更することにより、前記第１のデータに、前記第２のデータに関連するデータを埋め込む符号化手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記第１および第２のデータを入力する入力手段をさらに備える
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記決定手段は、前記一部のデータの中から、度数が最大のデータを、前記変更対象データとして決定する
ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記決定手段は、前記第１のデータがとり得る値のうち、度数が０の値を、前記変更データとして決定する
ことを特徴とする請求項１に記載の符号化装置。
【請求項５】
前記決定手段は、複数の値を、前記変更データとして決定する
ことを特徴とする請求項１に記載の符号化装置。
【請求項６】
前記第１のデータは、複数の画素データから構成される画像データである
ことを特徴とする請求項１に記載の符号化装置。
【請求項７】
第１のデータを、第２のデータにしたがって符号化する符号化方法であって、
前記第１のデータの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、
前記度数分布に応じて、前記一部のデータの中から、前記第２のデータにしたがって変更する変更対象データを決定するとともに、前記変更対象データを変更する値である変更データを決定する決定ステップと、
前記第２のデータにしたがって、前記変更対象データを前記変更データに変更することにより、前記第１のデータに、前記第２のデータに関連するデータを埋め込む符号化ステップと
を備えることを特徴とする符号化方法。
【請求項８】
第１のデータを、第２のデータにしたがって符号化する符号化処理を、コンピュータに行わせるプログラムが記録されている記録媒体であって、
前記第１のデータの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、
前記度数分布に応じて、前記一部のデータの中から、前記第２のデータにしたがって変更する変更対象データを決定するとともに、前記変更対象データを変更する値である変更データを決定する決定ステップと、
前記第２のデータにしたがって、前記変更対象データを前記変更データに変更することにより、前記第１のデータに、前記第２のデータに関連するデータを埋め込む符号化ステップと
を備えるプログラムが記録されている
ことを特徴とする記録媒体。
【請求項９】
第１のデータを、第２のデータにしたがって符号化した符号化データを復号する復号装置であって、
前記符号化データの少なくとも一部のデータの度数分布を求める度数分布算出手段と、
前記度数分布に基づき、前記一部のデータの中から、前記第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとを決定する決定手段と、
前記変更データを、前記変更対象データに変更することにより、前記符号化データを、前記第１のデータに復号するとともに、前記符号化データに埋め込まれた前記第２のデータを復号する復号手段と
を備えることを特徴とする復号装置。
【請求項１０】
前記決定手段は、前記符号化データの中から、度数の変化が不連続になっているデータを、前記変更対象データまたは変更データとして決定する
ことを特徴とする請求項９に記載の復号装置。
【請求項１１】
前記決定手段は、複数の値を、前記変更データとして決定する
ことを特徴とする請求項９に記載の復号装置。
【請求項１２】
前記第１のデータは、複数の画素データから構成される画像データである
ことを特徴とする請求項９に記載の復号装置。
【請求項１３】
第１のデータを、第２のデータにしたがって符号化した符号化データを復号する復号方法であって、
前記符号化データの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、
前記度数分布に基づき、前記一部のデータの中から、前記第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとを決定する決定ステップと、
前記変更データを、前記変更対象データに変更することにより、前記符号化データを、前記第１のデータに復号するとともに、前記符号化データに埋め込まれた前記第２のデータを復号する復号ステップと
を備えることを特徴とする復号方法。
【請求項１４】
第１のデータを、第２のデータにしたがって符号化した符号化データを復号する復号処理を、コンピュータに行わせるプログラムが記録されている記録媒体であって、
前記符号化データの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、
前記度数分布に基づき、前記一部のデータの中から、前記第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとを決定する決定ステップと、
前記変更データを、前記変更対象データに変更することにより、前記符号化データを、前記第１のデータに復号するとともに、前記符号化データに埋め込まれた前記第２のデータを復号する復号ステップと
を備えるプログラムが記録されている
ことを特徴とする記録媒体。
【請求項１５】
第１のデータを、第２のデータにしたがって符号化して符号化データとし、その符号化データを復号するデータ処理装置であって、
前記第１のデータの少なくとも一部のデータの度数分布を求める第１の度数分布算出手段と、
前記第１のデータのうちの一部のデータの度数分布に応じて、前記第１のデータの少なくとも一部のデータの中から、前記第２のデータにしたがって変更する変更対象データを決定するとともに、前記変更対象データを変更する値である変更データを決定する第１の決定手段と、
前記第２のデータにしたがって、前記変更対象データを前記変更データに変更することにより、前記第１のデータに、前記第２のデータに関連するデータを埋め込み、前記符号化データとする符号化手段と、
前記符号化データの少なくとも一部のデータの度数分布を求める第２の度数分布算出手段と、
前記符号化データのうちの一部のデータの度数分布に基づき、前記符号化データの少なくとも一部のデータの中から、前記変更対象データおよび変更データを決定する第２の決定手段と、
前記変更データを、前記変更対象データに変更することにより、前記符号化データを、前記第１のデータに復号するとともに、前記符号化データに埋め込まれた前記第２のデータを復号する復号手段と
を備えることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化装置および符号化方法、復号装置および復号方法、記録媒体、並びにデータ処理装置に関し、特に、例えば、復号画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に情報を埋め込むことができるようにする符号化装置および符号化方法、復号装置および復号方法、記録媒体、並びにデータ処理装置に関する。
【０００２】
【従来の技術】
信号に対して、そのデータ量を増加させることなく、情報を埋め込む手法としては、例えば、ディジタルオーディオデータの最下位ビットや、下位２ビットなどを、埋め込む情報に変換するものなどがある。この手法は、ディジタルオーディオデータの下位ビットが、その音質にあまり影響を与えないことを利用し、その下位ビットを、単に、埋め込む情報に置き換えるものであり、従って、再生時には、情報が埋め込まれたディジタルオーディオデータは、その下位ビットを元に戻さずに、そのまま出力される。即ち、情報が埋め込まれた下位ビットを、元に戻すのは困難であり、また、下位ビットは、音質に、あまり影響を与えないことから、ディジタルオーディオデータは、情報が埋め込まれた状態で出力される。
【０００３】
【発明が解決しようとする課題】
しかしながら、以上のような手法では、本来の信号と異なる信号が出力される。従って、信号がオーディオデータである場合には、その音質に、また、信号がビデオデータである場合には、その画質に、少なからず影響がある。
【０００４】
本発明は、このような状況に鑑みてなされたものであり、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に情報を埋め込むことができるようにするものである。
【０００５】
【課題を解決するための手段】
本発明の符号化装置は、第１のデータの少なくとも一部のデータの度数分布を求める度数分布算出手段と、度数分布に応じて、一部のデータの中から、第２のデータにしたがって変更する変更対象データを決定するとともに、変更対象データを変更する値である変更データを決定する決定手段と、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータを埋め込む符号化手段とを備えることを特徴とする。
【０００６】
この符号化装置には、第１および第２のデータを入力する入力手段をさらに設けることができる。
【０００７】
決定手段には、一部のデータの中から、度数が最大のデータを、変更対象データとして決定させることができる。
【０００８】
また、決定手段には、第１のデータがとり得る値のうち、度数が０の値を、変更データとして決定させることができる。
【０００９】
さらに、決定手段には、複数の値を、変更データとして決定させることができる。
【００１０】
第１のデータは、複数の画素データから構成される画像データとすることができる。
【００１１】
本発明の符号化方法は、第１のデータの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、度数分布に応じて、一部のデータの中から、第２のデータにしたがって変更する変更対象データを決定するとともに、変更対象データを変更する値である変更データを決定する決定ステップと、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータを埋め込む符号化ステップとを備えることを特徴とする。
【００１２】
本発明の第１の記録媒体は、第１のデータの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、度数分布に応じて、一部のデータの中から、第２のデータにしたがって変更する変更対象データを決定するとともに、変更対象データを変更する値である変更データを決定する決定ステップと、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータを埋め込む符号化ステップとを備えるプログラムが記録されていることを特徴とする。
【００１３】
本発明の復号装置は、符号化データの少なくとも一部のデータの度数分布を求める度数分布算出手段と、度数分布に基づき、一部のデータの中から、第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとを決定する決定手段と、変更データを、変更対象データに変更することにより、符号化データを、第１のデータに復号するとともに、符号化データに埋め込まれた第２のデータを復号する復号手段とを備えることを特徴とする。
【００１４】
決定手段には、符号化データの中から、度数の変化が不連続になっているデータを、変更対象データまたは変更データとして決定させることができる。
【００１５】
また、決定手段には、複数の値を、変更データとして決定させることができる。
【００１６】
第１のデータは、複数の画素データから構成される画像データとすることができる。
【００１７】
本発明の復号方法は、符号化データの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、度数分布に基づき、一部のデータの中から、第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとを決定する決定ステップと、変更データを、変更対象データに変更することにより、符号化データを、第１のデータに復号するとともに、符号化データに埋め込まれた第２のデータを復号する復号ステップとを備えることを特徴とする。
【００１８】
本発明の第２の記録媒体は、符号化データの少なくとも一部のデータの度数分布を求める度数分布算出ステップと、度数分布に基づき、一部のデータの中から、第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとを決定する決定ステップと、変更データを、変更対象データに変更することにより、符号化データを、第１のデータに復号するとともに、符号化データに埋め込まれた第２のデータを復号する復号ステップとを備えるプログラムが記録されていることを特徴とする。
【００１９】
本発明のデータ処理装置は、第１のデータの少なくとも一部のデータの度数分布を求める第１の度数分布算出手段と、その度数分布に応じて、第１のデータの少なくとも一部のデータの中から、第２のデータにしたがって変更する変更対象データを決定するとともに、変更対象データを変更する値である変更データを決定する第１の決定手段と、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータを埋め込み、符号化データとする符号化手段と、符号化データの少なくとも一部のデータの度数分布を求める第２の度数分布算出手段と、その度数分布に基づき、符号化データの少なくとも一部のデータの中から、変更対象データおよび変更データを決定する第２の決定手段と、変更データを、変更対象データに変更することにより、符号化データを、第１のデータに復号するとともに、符号化データに埋め込まれた第２のデータを復号する復号手段とを備えることを特徴とする。
【００２０】
本発明の符号化装置および符号化方法、並びに第１の記録媒体においては、第１のデータの少なくとも一部のデータの度数分布が求められ、その度数分布に応じて、一部のデータの中から、第２のデータにしたがって変更する変更対象データが決定されるとともに、変更対象データを変更する値である変更データが決定される。そして、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータが埋め込まれる。
【００２１】
本発明の復号装置および復号方法、並びに第２の記録媒体においては、符号化データの少なくとも一部のデータの度数分布が求められ、その度数分布に基づき、一部のデータの中から、第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとが決定される。そして、変更データを、変更対象データに変更することにより、符号化データが、第１のデータに復号されるとともに、符号化データに埋め込まれた第２のデータが復号される。
【００２２】
本発明のデータ処理装置においては、第１のデータの少なくとも一部のデータの度数分布が求められ、その度数分布に応じて、第１のデータの少なくとも一部のデータの中から、第２のデータにしたがって変更する変更対象データが決定されるとともに、変更対象データを変更する値である変更データが決定される。そして、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータが埋め込まれ、符号化データとされる。一方、符号化データの少なくとも一部のデータの度数分布が求められ、その度数分布に基づき、符号化データの少なくとも一部のデータの中から、変更対象データおよび変更データが決定される。そして、変更データを、変更対象データに変更することにより、符号化データが、第１のデータに復号されるとともに、符号化データに埋め込まれた第２のデータが復号される。
【００２３】
【発明の実施の形態】
図１は、本発明を適用した画像伝送システム（システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない）の一実施の形態の構成例を示している。
【００２４】
この画像伝送システムは、符号化装置１０および復号装置２０で構成されており、符号化装置１０は、符号化対象としての、例えば、画像を符号化して符号化データを出力し、復号装置２０は、その符号化データを、元の画像に復号するようになされている。
【００２５】
即ち、画像データベース１は、符号化すべき画像（例えば、ディジタル画像）を記憶している。そして、画像データベース１からは、そこに記憶されている画像が読み出され、埋め込み符号化器３に供給される。
【００２６】
また、付加情報データベース２は、符号化対象の画像に埋め込むべき情報としての付加情報（ディジタルデータ）を記憶している。そして、付加情報データベース２からも、そこに記憶されている付加情報が読み出され、埋め込み符号化器３に供給される。
【００２７】
埋め込み符号化器３では、画像データベース１からの画像、および付加情報データベース２からの付加情報が受信される。さらに、埋め込み符号化器３は、画像データベース１からの画像が有するエネルギの偏りを利用して復号を行うことができるように、その画像を、付加情報データベース２からの付加情報にしたがって符号化して出力する。即ち、埋め込み符号化器３は、画像が有するエネルギの偏りを利用して復号を行うことができるように、画像に付加情報を埋め込むことで、その画像を符号化し、符号化データを出力する。埋め込み符号化器３が出力する符号化データは、例えば、半導体メモリ、光磁気ディスク、磁気ディスク、光ディスク、磁気テープ、相変化ディスクなどでなる記録媒体４に記録され、あるいは、また、例えば、地上波、衛星回線、ＣＡＴＶ（Cable Television）網、インターネット、公衆回線などでなる伝送媒体５を介して伝送され、復号装置２０に提供される。
【００２８】
復号装置２０は、埋め込み復号器６で構成され、そこでは、記録媒体４または伝送媒体５を介して提供される符号化データが受信される。さらに、埋め込み復号器６は、その符号化データを、画像が有するエネルギの偏りを利用して、元の画像および付加情報に復号する。復号された画像は、例えば、図示せぬモニタに供給されて表示される。
【００２９】
なお、付加情報としては、例えば、元の画像に関連するテキストデータや、音声データ、その画像を縮小した縮小画像等は勿論、元の画像に無関係なデータも用いることができる。
【００３０】
次に、図１の埋め込み符号化器３における符号化（埋め込み符号化）、および埋め込み復号器６における復号（埋め込み復号）の原理について説明する。
【００３１】
一般に、情報と呼ばれるものは、エネルギ（エントロピー）の偏り（普遍性）を有し、この偏りが、情報（価値ある情報）として認識される。即ち、例えば、ある風景を撮影して得られる画像が、そのような風景の画像であると人によって認識されるのは、画像（画像を構成する各画素の画素値など）が、その風景に対応したエネルギの偏りを有するからであり、エネルギの偏りがない画像は、雑音等にすぎず、情報としての利用価値はない。
【００３２】
従って、価値ある情報に対して、何らかの操作を施し、その情報が有する本来のエネルギの偏りを、いわば破壊した場合でも、その破壊されたエネルギの偏りを元に戻すことで、何らかの操作が施された情報も、元の情報に戻すことができる。即ち、情報を符号化して得られる符号化データは、その情報が有する本来のエネルギの偏りを利用して、元の価値ある情報に復号することができる。
【００３３】
ここで、情報が有するエネルギ（の偏り）を表すものとしては、例えば、相関性、連続性、相似性などがある。
【００３４】
情報の相関性とは、その情報の構成要素（例えば、画像であれば、その画像を構成する画素やラインなど）どうしの相関（例えば、自己相関や、ある構成要素と他の構成要素との距離など）を意味する。例えば、画像の相関性を表すものとしては、画像のライン間の相関があり、この相関を表す相関値としては、例えば、２つのラインにおける、対応する各画素値の差分の２乗和等を用いることができる（この場合、相関値が小さいことは、ライン間の相関が大きいことを表し、相関値が大きいことは、ライン間の相関が小さいことを表す）。
【００３５】
即ち、例えば、いま、図２に示すようなＨライン１０２を有する画像１０１があった場合に、その上から１行目のライン（第１ライン）１０３と、他のラインとの相関は、一般に、図３（Ａ）に示すように、第１ライン１０３との距離が近いライン（図２における画像１０１の上側のライン）ほど、第Ｍライン１０４についての相関２０１として示すように大きくなり、第１ライン１０３との距離が遠いライン（図２における画像の下側のライン）ほど、第Ｎライン１０５についての相関２０２として示すように小さくなる。従って、第１ライン１０３から近いほど、第１ライン１０３との相関が大きくなり、遠いほど相関が小さくなるという相関の偏りがある。
【００３６】
そこで、いま、図２の画像１０１において、第１ライン１０３から比較的近い第Ｍライン１０４と、第１ライン１０３から比較的遠い第Ｎライン１０５との画素値を入れ替える操作を行い（１＜Ｍ＜Ｎ≦Ｈ）、その入れ替え後の画像１０１について、第１ライン１０３と、他のラインとの相関を計算値すると、それは、例えば、図３（Ｂ）に示すようになる。
【００３７】
即ち、入れ替え後の画像１０１では、第１ライン１０３から近い第Ｍライン（入れ替え前の第Ｎライン１０５）との相関２０３が小さくなり、第１ライン１０３から遠い第Ｎライン（入れ替え前の第Ｍライン１０４）との相関２０４が大きくなる。
【００３８】
従って、図３（Ｂ）では、第１ライン１０３から近いほど相関が大きくなり、遠いほど相関が小さくなるという相関性の偏りが破壊されている。しかしながら、画像については、一般に、第１ライン１０３から近いほど相関が大きくなり、遠いほど相関が小さくなるという相関性の偏りを利用することにより、破壊された相関性の偏りを復元することができる。即ち、図３（Ｂ）において、第１ライン１０３から近い第Ｍラインとの相関２０３が小さく、第１ライン１０３から遠い第Ｎラインとの相関２０４が大きいのは、画像１０１が有する本来の相関性の偏りからすれば、明らかに不自然であり（おかしく）、第Ｍラインと第Ｎラインとは入れ替えるべきである。そして、図３（Ｂ）における第Ｍラインと第Ｎラインとを入れ替えることで、図３（Ａ）に示すような本来の相関性の偏りを有する画像、即ち、元の画像１０１を復号することができる。
【００３９】
ここで、図２および図３で説明した場合においては、ラインの入れ替えが、画像の符号化を行うこととなる。また、その符号化に際し、埋め込み符号化器３では、例えば、何ライン目を移動するかや、どのラインどうしを入れ替えるかなどが、付加情報にしたがって決定されることになる。一方、埋め込み復号器６では、符号化後の画像、即ち、ラインの入れ替えられた画像を、その相関を利用して、ラインを元の位置に入れ替えることにより、元の画像に戻すことが、画像を復号することとなる。さらに、その復号に際し、埋め込み復号器６において、例えば、何ライン目を移動したかや、どのラインどうしを入れ替えたかなどを検出することが、画像に埋め込まれた付加情報を復号することになる。
【００４０】
次に、情報の連続性についてであるが、例えば、画像のある１ラインについて注目した場合に、その注目ラインにおいて、図４（Ａ）に示すような、画素値の変化パターンが連続している波形３０１が観察されたとすると、その注目ラインと離れた他のラインでは、注目ラインとは異なる画素値の変化パターンが観察される。従って、注目ラインと、その注目ラインと離れた他のラインとにおいては、画素値の変化パターンが異なり、連続性においても偏りがある。即ち、画像のある部分の画素値の変化パターンに注目すると、その注目部分に隣接する部分には、同様の画素値の変化パターンが存在し、注目部分から離れるにつれて、異なる画素値の変化パターンが存在するという連続性の偏りがある。
【００４１】
そこで、いま、図４（Ａ）に示した、画像のあるラインにおける、画素値の変化パターンが連続している波形３０１の一部を、例えば、図４（Ｂ）に示すように、離れたラインにおける波形３０２と入れ替える。
【００４２】
この場合、画像の連続性の偏りが破壊される。しかしながら、近接する部分の画素値の変化パターンは連続しており、離れるほど、画素値の変化パターンが異なるという連続性の偏りを利用することにより、破壊された連続性の偏りを復元することができる。即ち、図４（Ｂ）において、波形の一部３０２の画素値の変化パターンが、他の部分の画素値の変化パターンに比較して大きく異なっているのは、波形が有する本来の連続性の偏りからすれば、明らかに不自然であり、他の部分の画素値の変化パターンと異なっている部分３０２は、他の部分の画素値の変化パターンと同様の波形に入れ替えるべきである。そして、そのような入れ替えを行うことで、連続性の偏りが復元され、これにより、図４（Ｂ）に示した波形から、図４（Ａ）に示した元の波形を復号することができる。
【００４３】
ここで、図４で説明した場合においては、波形の一部を、その周辺の画素値の変化パターンとは大きく異なる画素値の変化パターンの波形に入れ替えることが、画像の符号化を行うこととなる。また、その符号化に際し、埋め込み符号化器３では、例えば、波形のどの部分の画素値の変化パターンを入れ替えるのかや、画素値の変化パターンをどの程度大きく変化させるのかなどが、付加情報にしたがって決定されることになる。一方、埋め込み復号器６では、符号化後の信号、即ち、大きく異なる画素値の変化パターンを一部に有する波形を、周辺の画素値の変化パターンは連続しており、離れるほど、画素値の変化パターンが異なるという連続性の偏りを利用して、元の波形に戻すことが、その元の波形を復号することとなる。さらに、その復号に際し、埋め込み復号器６において、例えば、波形のどの部分の画素値の変化パターンが大きく変化していたのかや、画素値の変化パターンがどの程度大きく変化していたのかなどを検出することが、埋め込まれた付加情報を復号することになる。
【００４４】
次に、情報の相似性についてであるが、例えば、風景を撮影した画像等の一部は、画像のフラクタル性（自己相似性）を利用して生成することができることが知られている。即ち、例えば、図５（Ａ）に示すような、海４０１と森４０２を撮影した画像においては、海４０１全体の画素値の変化パターンと、その海４０１の一部の画素値の変化パターンとの相似性は高いが、それらの変化パターンと、海４０１から離れた森４０２の画素値の変化パターンとの相似性は低いという相似性の偏りがある。ここで、画像の相似性は、上述のように画素値の変化パターンを比較して考えるのではなく、エッジ形状を比較して考えても良い。
【００４５】
そこで、いま、図５（Ａ）に示した海４０１の一部４０３と、森４０２の一部４０４とを入れ替える。
【００４６】
この場合、画像の相似性の偏りが破壊され、図５（Ｂ）に示すような画像が得られる。しかしながら、近接する部分の画素値の変化パターンは相似性が高く、離れるほど、画素値の変化パターンの相似性が低くなるという相似性の偏りを利用することにより、破壊された相似性の偏りを復元することができる。即ち、図５（Ｂ）において、海４０１の画像の一部が、海４０１と相似性の低い森４０２の画像の一部４０４になっていること、および森４０２の画像の一部が、森４０２と相似性の低い海４０１の画像の一部４０３となっていることは、画像が有する本来の相似性の偏りからすれば、明らかに不自然である。具体的には、図５（Ｂ）において、海４０１の画像の中の、森４０２の画像の一部４０４についての相似性は、海４０１の他の部分についての相似性に比較して極端に低くなっており、また、森４０２の画像の中の、海４０１の画像の一部４０３についての相似性も、森４０２の他の部分についての相似性に比較して極端に低くなっている。
【００４７】
従って、画像が本来有する相似性の偏りからすれば、海４０１の画像の一部となっている、森４０２の画像の一部４０４と、森４０２の画像の一部となっている、海４０１の画像の一部４０３とは入れ替えるべきである。そして、そのような入れ替えを行うことで、画像の相似性の偏りが復元され、これにより、図５（Ｂ）に示した画像から、図５（Ａ）に示した元の画像を復号することができる。
【００４８】
ここで、図５で説明した場合においては、海４０１の画像の一部４０３と、森４０２の画像の一部４０４とを入れ替えることが、画像の符号化を行うこととなる。また、その符号化に際し、埋め込み符号化器３では、例えば、海４０１の画像のどの部分（画面上の位置）と、森４０２の画像のどの部分とを入れ替えるのかなどが、付加情報にしたがって決定されることになる。一方、埋め込み復号器６では、符号化後の信号、即ち、海４０１の一部が、森４０２の一部４０４となっているとともに、森４０２の一部が、海４０１の一部４０３となっている画像を、周辺の画素値の変化パターンの相似性は高く、離れるほど、画素値の変化パターンの相似性が低くなっていくという相似性の偏りを利用して、元の画像に戻すことが、その元の画像を復号することとなる。さらに、その復号に際し、埋め込み復号器６において、例えば、海の画像のどの部分と、森の画像のどの部分とが入れ替えられていたのかなどを検出することが、埋め込まれた付加情報を復号することになる。
【００４９】
以上のように、埋め込み符号化器３において、符号化対象の画像が有するエネルギの偏りを利用して復号を行うことができるように、その画像を、付加情報にしたがって符号化して、符号化データを出力する場合には、埋め込み復号器６では、その符号化データを、画像が有するエネルギの偏りを利用することにより、復号のためのオーバヘッドなしで、元の画像および付加情報に復号することができる。
【００５０】
また、符号化対象の画像には、付加情報が埋め込まれることで、その埋め込みの結果得られる画像は、元の画像と異なる画像とされ、人が価値ある情報として認識することのできる画像ではなくなることから、符号化対象の画像については、オーバヘッドなしの暗号化を実現することができる。
【００５１】
さらに、完全可逆の電子透かしを実現することができる。即ち、従来の電子透かしでは、例えば、画質にあまり影響のない画素値の下位ビットが、電子透かしに対応する値に、単に変更されていたが、この場合、その下位ビットを、元の値に戻すことは困難である。従って、復号画像の画質は、電子透かしとしての下位ビットの変更により、少なからず劣化する。これに対して、符号化データを、元の画像が有するエネルギの偏りを利用して復号する場合には、劣化のない元の画像および付加情報を得ることができ、従って、付加情報を電子透かしとして用いることで、電子透かしに起因して復号画像の画質が劣化することはない。
【００５２】
また、埋め込まれた付加情報は、符号化データから画像を復号することで取り出すことができるので、画像の符号化結果とともに、オーバヘッドなしでサイドインフォメーションを提供することができる。言い換えれば、付加情報を取り出すためのオーバヘッドなしで、その付加情報を画像に埋め込むことができるので、その埋め込みの結果得られる符号化データは、付加情報の分だけ圧縮（埋め込み圧縮）されているということができる。従って、例えば、ある画像の半分を符号化対象とするとともに、残りの半分を付加情報とすれば、符号化対象である半分の画像に、残りの半分の画像を埋め込むことができるから、この場合、画像は、単純には、１／２に圧縮されることになる。
【００５３】
さらに、符号化データは、元の画像が有するエネルギの偏りという、いわば統計量を利用して復号されるため、誤りに対する耐性の強いものとなる。即ち、ロバスト性の高い符号化であるロバスト符号化（統計的符号化）を実現することができる。
【００５４】
また、符号化データは、元の画像が有するエネルギの偏りを利用して復号されるため、そのエネルギの偏りに特徴があるほど、即ち、例えば、画像については、そのアクティビティが高いほど、あるいは、冗長性が低いほど、多くの付加情報を埋め込むことができる。ここで、上述したように、付加情報の埋め込みの結果得られる符号化データは、付加情報の分だけ圧縮されているということができるが、この圧縮という観点からすれば、符号化対象の情報が有するエネルギの偏りを利用して復号を行うことができるように、その情報を、付加情報にしたがって符号化する方式（埋め込み符号化方式）によれば、画像のアクティビティが高いほど、あるいは、画像の冗長性が低いほど、圧縮率が高くなる。この点、埋め込み符号化方式は、従来の符号化方式と大きく異なる（従来の符号化方式である、例えばＭＰＥＧ（Moving Picture Experts Group）方式などでは、基本的に、画像のアクティビティが高いほど、あるいは、画像の冗長性が低いほど、圧縮率は低くなる）。
【００５５】
さらに、例えば、上述したように、画像を符号化対象とする一方、付加情報として、画像とは異なるメディアの、例えば、音声を用いるようにすることで、音声をキーとして、画像の提供を行うようなことが可能となる。即ち、符号化装置１０側において、例えば、契約者が発話した音声「開けゴマ」など付加情報として画像に埋め込んでおき、復号装置２０側では、ユーザに、音声「開けゴマ」を発話してもらい、その音声と、画像に埋め込まれた音声とを用いて話者認識を行うようにする。このようにすることで、例えば、話者認識の結果、ユーザが契約者である場合にのみ、自動的に、画像を提示するようなことが可能となる。なお、この場合、付加情報としての音声は、いわゆる特徴パラメータではなく、音声波形そのものを用いることが可能である。
【００５６】
また、例えば、音声を符号化対象とする一方、付加情報として、音声とは異なるメディアの、例えば、画像を用いるようにすることで、画像をキーとして、音声の提供を行うようなこと（例えば、顔認識後の音声応答）が可能となる。即ち、符号化装置１０側において、例えば、ユーザへの応答としての音声に、そのユーザの顔の画像を埋め込み、復号装置２０側では、ユーザの顔を撮影し、その結果得られる画像とマッチングする顔画像が埋め込まれている音声を出力するようにすることで、ユーザごとに異なる音声応答を行う音声応答システムを実現することが可能となる。
【００５７】
さらに、音声に、音声を埋め込んだり、画像に、画像を埋め込んだりするような、あるメディアの情報に、それと同一メディアの情報を埋め込むようなことも可能である。あるいは、また、画像に、契約者の音声と顔画像を埋め込んでおけば、ユーザの音声と顔画像とが、画像に埋め込まれているものと一致するときのみ、その画像を提示するようにする、いわば二重鍵システムなどの実現も可能となる。
【００５８】
また、例えば、テレビジョン放送信号を構成する、いわば同期した画像と音声のうちのいずれか一方に、他方を埋め込むようなことも可能であり、この場合、異なるメディアの情報どうしを統合した、いわば統合符号化を実現することができる。
【００５９】
さらに、埋め込み符号化方式では、上述したように、情報には、そのエネルギの偏りに特徴があるほど、多くの付加情報を埋め込むことができる。従って、例えば、ある２つの情報について、エネルギの偏りに特徴がある方を適応的に選択し、その選択した方に、他方を埋め込むようにすることで、全体のデータ量を制御することが可能となる。即ち、２つの情報どうしの間で、一方の情報によって、他方の情報量を、いわば吸収するようなことが可能となる。そして、このように全体のデータ量を制御することができる結果、伝送路の伝送帯域や使用状況、その他の伝送環境にあったデータ量による情報伝送（環境対応ネットワーク伝送）が可能となる。
【００６０】
また、例えば、画像に、その画像を縮小した画像を埋め込むことで（あるいは、音声に、その音声を間引いたものを埋め込むことで）、データ量を増加することなく、いわゆる階層符号化（下位階層の情報を少なくすることにより、上位階層の情報を生成する符号化）を実現することができる。
【００６１】
さらに、例えば、画像に、その画像を検索するためのキーとなる画像を埋め込んでおくことで、そのキーとなる画像に基づいて、画像の検索を行うデータベースを実現することが可能となる。
【００６２】
次に、図６は、画像の連続性を利用して元に戻すことができるように、画像に付加情報を埋め込む埋め込み符号化を行う場合の図１の埋め込み符号化器３の構成例を示している。
【００６３】
画像データベース１から供給される画像は、フレームメモリ３１に供給されるようになされており、フレームメモリ３１は、画像データベース１からの画像を、例えば、フレーム単位で一時記憶するようになされている。
【００６４】
ＣＰＵ（Central Processing Unit）３２は、プログラムメモリ３３に記憶されたプログラムを実行することで、後述する埋め込み符号化処理を行うようになされている。即ち、ＣＰＵ３２は、プログラムメモリ３３に記憶されているプログラムにしたがって、付加情報データベース２からメモリ３４を介して供給される付加情報を受信し、その付加情報を、フレームメモリ３１に記憶された画像に埋め込むようになされている。具体的には、ＣＰＵ３２は、フレームメモリ３１に記憶された画像を構成する画素値を、メモリ３４に記憶された付加情報にしたがって変更することで、その画素値に、付加情報を埋め込むようになされている。この付加情報が埋め込まれた画像は、符号化データとして出力されるようになされている。
【００６５】
プログラムメモリ３３は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などで構成され、ＣＰＵ３２に、埋め込み符号化処理を行わせるためのコンピュータプログラムや必要なデータを記憶している。
【００６６】
メモリ３４は、付加情報データベース２が記憶している付加情報を読み出し、一時記憶するようになされている。出力バッファ３５は、ＣＰＵ３２によって埋め込み符号化処理が行われることにより得られる符号化データを一時記憶して出力するようになされている。
【００６７】
なお、フレームメモリ３１は、複数のフレームを記憶することのできるように、複数バンクで構成されており、バンク切り替えを行うことで、フレームメモリ３１では、画像データベース１から供給される画像の記憶、およびＣＰＵ３２による埋め込み符号化処理の対象となっている画像の記憶を、同時に行うことができるようになされている。これにより、画像データベース１から供給される画像が、動画であっても、符号化データのリアルタイム出力を行うことができるようになされている。
【００６８】
次に、図７は、図６の埋め込み符号化器３の機能的な構成例を示している。なお、この図７に示した機能的な構成は、ＣＰＵ３２がプログラムメモリ３３に記憶されたコンピュータプログラムを実行することで実現されるようになされている。
【００６９】
フレームメモリ３１、メモリ３４、または出力バッファ３５それぞれは、図６で説明したものと同一のものである。
【００７０】
度数分布算出部４１は、フレームメモリ３１に記憶された符号化対象の画像の画素値の度数分布（ヒストグラム）を、例えば、１フレーム単位で求め、変更対象画素値／変更値決定部４２に供給するようになされている。変更対象画素値／変更値決定部４２は、度数分布算出部４１から供給される画素値の度数分布に基づき、フレームメモリ３１に記憶された符号化対象の画像を構成する画素値の中から、付加情報にしたがって変更する画素値（以下、適宜、変更対象画素値という）を決定するとともに、その変更対象画素値を変更する値（以下、適宜、変更値という）を決定し、画素値変更部４３に供給するようになされている。画素値変更部４３は、フレームメモリ３１に記憶された符号化対象のフレームを構成する画素値を、所定の順序としての、例えば、ラスタスキャン順で読み出し、その読み出した画素値が、変更対象画素値に一致しない場合には、そのまま出力バッファ３５に供給して対応するアドレスに記憶させるようになされている。また、画素値変更部４３は、読み出した画素値が、変更対象画素値に一致する場合には、メモリ３４に記憶された付加情報を読み出し、その付加情報にしたがって、変更対象画素値を変更値に変更するか、またはそのままとし、出力バッファ３５に供給して対応するアドレスに記憶させるようになされている。
【００７１】
次に、図８のフローチャートを参照して、図７の埋め込み符号化器３において行われる埋め込み符号化処理について説明する。
【００７２】
画像データベース１からは、そこに記憶されている画像が読み出され、フレームメモリ３１に、順次供給されて記憶される。また、付加情報データベース２からは、そこに記憶されている付加情報が読み出され、メモリ３４に、順次供給されて記憶される。
【００７３】
一方、度数分布算出部４１では、ステップＳ１において、フレームメモリ３１に記憶された符号化対象の１フレームを構成する画素値が読み出され、その度数分布が算出される。
【００７４】
ここで、図９に、実際の画像の画素値の度数分布を示す。なお、図９は、それぞれ８ビットが割り当てられたＲＧＢコンポーネント信号で構成される１フレームの画像のＲコンポーネントの度数分布を示している。Ｒコンポーネントには、ここでは、上述したように、８ビットが割り当てられおり、従って、０乃至２５５等の２５６の範囲の画素値をとり得るが、図９では、２５０以上の画素値となる画素は存在していない。さらに、図９から明らかなように、一般に、画像には、各画素値（ここでは、０乃至２５５それぞれの値）が、同じような数だけ存在するのではなく、多数存在する画素値もあれば、まったく存在しない画素値もある。しかしながら、画素値の度数分布の変化は、一般に連続している。
【００７５】
度数分布算出部４１で求められた画素値の度数分布は、変更対象画素値／変更値決定部４２に供給される。変更対象画素値／変更値決定部４２は、画素値の度数分布を受信すると、ステップＳ２に進み、その度数分布に基づき、フレームメモリ３１に記憶された符号化対象の画像を構成する画素値の中から、変更対象画素値とするものを決定するとともに、その変更対象画素値を変更する値である変更値を決定する。即ち、変更対象画素値／変更値決定部４２は、例えば、度数分布から、最も度数の高い画素値を検出し、それを、変更対象画素値として決定する。さらに、変更対象画素値／変更値決定部４２は、度数分布から、度数が０になっている画素値を検出し、それを、変更値として決定する（度数が０になっている画素値が複数ある場合には、例えば、そのうちの１つを選択して、変更値として決定する）。
【００７６】
ここで、本実施の形態では、変更対象画素値に、付加情報が埋め込まれる。そこで、埋め込むことのできる付加情報のデータ量を多くするために、最も度数の高い画素値を、変更対象画素値とするようにしている。従って、変更対象画素値とする画素値は、度数の最も高いものに限定されるものではない。
【００７７】
変更対象画素値／変更値決定部４２において、変更対象画素値および変更値が決定されると、その変更対象画素値および変更値は、画素値変更部４３に供給される。
【００７８】
画素値変更部４３は、変更対象画素値および変更値を受信すると、ステップＳ３において、フレームメモリ３１に記憶された符号化対象のフレームを構成する最も左上の画素値を読み出し、ステップＳ４に進む。ステップＳ４では、画素値変更部４３において、ステップＳ４で読み出された画素値が変更対象画素値であるかどうかが判定され、変更対象画素値でないと判定された場合、ステップＳ５乃至Ｓ７をスキップして、ステップＳ８に進み、その画素値が、そのまま出力バッファ３５に供給されて、対応するアドレスに書き込まれる。
【００７９】
また、ステップＳ４において、ステップＳ４で読み出された画素値が変更対象画素値であると判定された場合、ステップＳ５に進み、画素値変更部４３は、メモリ３４から付加情報を読み出し、ステップＳ６に進む。ここで、ステップＳ５では、付加情報が、例えば、１ビット単位で読み出されるものとする。
【００８０】
ステップＳ６では、画素値変更部４３において、ステップＳ５で読み出された１ビットの付加情報が０または１のうちのいずれであるかが判定される。ステップＳ６において、付加情報が、０または１のうちの、例えば、０であると判定された場合、ステップＳ７をスキップして、ステップＳ８に進み、画素値変更部３４において、変更対象画素値が、そのまま出力バッファ３５に供給されて、対応するアドレスに書き込まれる。即ち、０である付加情報は、変更対象画素値を変更しないことで、その変更対象画素値を有する画素に埋め込まれる。
【００８１】
また、ステップＳ６において、付加情報が、０または１のうちの、例えば、１であると判定された場合、ステップＳ７に進み、画素値変更部４３において、変更対象画素値が変更値に変更され、ステップＳ８に進む。ステップＳ８では、画素値変更部４３において、ステップＳ７で変更された変更値が、出力バッファ３５に供給されて、対応するアドレスに書き込まれる。即ち、１である付加情報は、変更対象画素値を変更値に変更することで、その変更対象画素値を有していた画素に埋め込まれる。
【００８２】
ステップＳ８の処理後は、ステップＳ９に進み、いま符号化対象とされているフレームの画素の読み出しがすべて終了したかどうかが判定される。ステップＳ９において、いま符号化対象とされているフレームの画素すべての読み出しが、まだ終了していないと判定された場合、ステップＳ３に戻り、ラスタスキャン順に、次に処理すべき画素値が読み出され、以下、同様の処理が繰り返される。
【００８３】
また、ステップＳ９において、いま符号化対象とされているフレームの画素すべての読み出しが終了したと判定された場合、ステップＳ１０に進み、出力バッファ３５に記憶されている、付加情報が埋め込まれたフレームが、符号化データとして読み出されて出力される。そして、ステップＳ１１に進み、フレームメモリ３１に、次に処理すべきフレームが記憶されているかどうかが判定され、記憶されていると判定された場合、ステップＳ１に戻り、そのフレームを符号化対象として、同様の処理が繰り返される。
【００８４】
また、ステップＳ１１において、フレームメモリ３１に、次に処理すべきフレームが記憶されていないと判定された場合、埋め込み符号化処理を終了する。
【００８５】
以上のような埋め込み符号化処理によれば、ある１フレームの画像は、次のような符号化データに符号化される。
【００８６】
即ち、例えば、符号化対象のフレームに、図１０（Ａ）において・で示すように、変更対象画素値が分布しているとすると、各変更対象画素値のうち、ラスタスキャン順で、０の付加情報に対応する位置にあるものは、そのままとされ、１の付加情報に対応する位置にあるものは、図１０（Ｂ）において×で示すように、図１０（Ａ）のフレームには存在しない画素値、即ち、度数が０の画素値である変更値に変更される。
【００８７】
以上のように、フレームメモリ３１に記憶された画像を構成する画素値のうち、度数の最も高い画素値である変更対象画素値を、付加情報にしたがって、その画像に存在しない画素値である変更値に変更することにより、付加情報を埋め込む場合には、画像の連続性（画像を構成する画素値の度数分布の連続性）の偏りを利用して、変更値を、元の変更対象画素値に変更することで、元の画像を復号することができるとともに、付加情報を復号することができる。従って、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に付加情報を埋め込むことができる。
【００８８】
即ち、変更値は、画像の連続性、つまり、ここでは、画像を構成する画素値の度数分布の連続性を利用することにより、オーバヘッドなしで、元の画素値（変更対象画素値）に復号する（戻す）こができ、さらに、変更値と変更対象画素値を検出することで、付加情報を復号することができる。従って、その結果得られる復号画像（再生画像）には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【００８９】
なお、符号化対象のフレームに、存在しない画素値がない場合には、変更対象画素値を変更すると、その変更後の画素値と、符号化対象のフレームに最初から存在する画素値とを区別することが困難となる。そこで、図８の埋め込み符号化処理のステップＳ１において、度数分布を算出した後に、その度数分布から、フレームに、存在しない画素値がないことが判明した場合には、そのフレームには付加情報を埋め込まず、次のフレームを、符号化対象として、埋め込み符号化処理を行うのが望ましい。
【００９０】
次に、図１１は、図７の埋め込み符号化器３が出力する符号化データを、画像の連続性を利用して元の画像と付加情報に復号する図１の埋め込み復号器６の構成例を示している。
【００９１】
符号化データ、即ち、付加情報が埋め込まれた画像（以下、適宜、埋め込み画像ともいう）は、入力バッファ５１に供給されるようになされており、入力バッファ５１は、埋め込み画像を、例えば、フレーム単位で一時記憶するようになされている。なお、入力バッファ５１も、図６のフレームメモリ３１と同様に構成され、バンク切り替えを行うことにより、埋め込み画像が、動画であっても、そのリアルタイム処理が可能となっている。
【００９２】
ＣＰＵ５２は、プログラムメモリ５３に記憶されたプログラムを実行することで、後述する埋め込み復号処理を行うようになされている。即ち、ＣＰＵ５２は、入力バッファ５１に記憶された埋め込み画像を、画像の連続性を利用して元の画像と付加情報に復号するようになされている。具体的には、ＣＰＵ５２は、入力バッファ５１に記憶された復号対象のフレームの画素値のうち、変更対象画素値と変更値とを検出することで、付加情報を復号し、さらに、変更値を変更対象画素値に変更することで、元の画像を復号するようになされている。
【００９３】
プログラムメモリ５３は、例えば、図６のプログラムメモリ３３と同様に構成され、ＣＰＵ５２に、埋め込み復号化処理を行わせるためのコンピュータプログラムや必要なデータを記憶している。
【００９４】
フレームメモリ５４は、ＣＰＵ５２において復号された画像を、例えば、１フレーム単位で記憶して出力するようになされている。メモリ５５は、ＣＰＵ５２で復号された付加情報を一時記憶して出力するようになされている。
【００９５】
次に、図１２は、図１１の埋め込み復号器６の機能的な構成例を示している。なお、この図１２に示した機能的な構成は、ＣＰＵ５２がプログラムメモリ５３に記憶されたコンピュータプログラムを実行することで実現されるようになされている。
【００９６】
入力バッファ５１、フレームメモリ５４、またはメモリ５５それぞれは、図１１で説明したものと同一のものである。
【００９７】
度数分布算出部６１は、入力バッファ５１に記憶された復号対象の埋め込み画像のフレームを構成する画素値を読み出し、その度数分布を求めて、変更対象画素値／変更値決定部６２に供給するようになされている。変更対象画素値／変更値決定部６２は、度数分布算出部６１からの画素値の度数分布に基づき、埋め込み画像を構成する画素値の中から、埋め込み符号化器３において変更対象画素値と変更値それぞれに決定された画素値を求め（決定し）、画素値変更部６３に供給するようになされている。画素値変更部６３は、変更対象画素値／変更値決定部６２の出力から、変更対象画素値および変更値を認識し、入力バッファ５１に記憶された復号対象の埋め込み画像のフレームの中の変更対象画素値および変更値を検出することで、その埋め込み画像に埋め込まれた付加情報を復号して、メモリ５５に供給するようになされている。さらに、画素値変更部６３は、埋め込み画像の中の変更値を変更対象画素値に変更することで、その埋め込み画像を、元の画像に復号し、フレームメモリ５４に供給するようになされている。
【００９８】
次に、図１３のフローチャートを参照して、図１２の埋め込み復号器６において行われる埋め込み復号処理について説明する。
【００９９】
入力バッファ５１では、そこに供給される埋め込み画像（符号化データ）が、例えば、１フレーム単位で順次記憶される。
【０１００】
一方、度数分布算出部６１では、ステップＳ２１において、入力バッファ５１に記憶された復号対象の埋め込み画像のフレームが読み出され、そのフレームを構成する画素値の度数分布が求められる。この度数分布は、変更対象画素値／変更値決定部６２に供給される。
【０１０１】
変更対象画素値／変更値決定部６２は、度数分布算出部６１から度数分布を受信すると、ステップＳ２２において、その度数分布に基づいて、埋め込み符号化器３において決定された変更対象画素値および変更値を求める。
【０１０２】
即ち、埋め込み画像に符号化された元の画像を構成する画素値が、例えば、図１４（Ａ）に示すような連続した度数分布を有していたとすると、埋め込み符号化器３では、度数の最も高い画素値Ｐ1が変更対象画素値として決定される。なお、図１４では、画素値のとりうる範囲が、０乃至ＭＡＸとされており、また、元の画像は、画素値Ｐmin以下の画素および画素値Ｐmax以上の画素が存在しないものとなっている（０＜Ｐmin＜Ｐmax＜ＭＡＸ）。
【０１０３】
さらに、この場合、埋め込み符号化器３において、画素値Ｐmin以下の、元の画像に存在しないある画素値Ｐ2が変更値として決定され、埋め込み符号化が行われたとすると、その結果得られる埋め込み画像の画素値の度数分布は、例えば、図１４（Ｂ）に示すようなものとなる。即ち、変更対象画素値Ｐ1の度数は、それに近い画素値（例えば、両隣の画素値）の度数に比較して極端に低くなり、変更値Ｐ2の度数は、逆に、それに近い画素値の度数に比較して極端に高くなる。
【０１０４】
その結果、例えば、画素値の小さいものから、画素値ｎの度数と画素値ｎ＋１の度数との差分（＝画素値ｎの度数−画素値ｎ＋１の度数）（以下、適宜、度数差分という）を求めていくと、その度数差分は、変更対象画素値Ｐ1の付近（ｎ＝Ｐ1のときと、ｎ＋１＝Ｐ1のとき）において、図１５（Ａ）に示すように、極端に大きくなった後、極端に小さくなる（不連続になる）。また、度数差分は、変更値Ｐ2の付近（ｎ＝Ｐ2のときと、ｎ＋１＝Ｐ2のとき）において、図１５（Ｂ）に示すように、極端に小さくなった後、極端に大きくなる（不連続になる）。
【０１０５】
従って、埋め込み符号化器３において決定された変更対象画素値および変更値は、度数差分をサーチしていくことで求めることができ、変更対象画素値／変更値決定部６２では、そのようにして、埋め込み画像の画素値の度数分布に基づき、埋め込み符号化器３において決定された変更対象画素値および変更値を求めるようになされている。
【０１０６】
図１３に戻り、変更対象画素値／変更値決定部６２は、埋め込み符号化器３において決定された変更対象画素値および変更値を求めると、それらを、画素値変更部６３に出力し、ステップＳ２３に進む。
【０１０７】
ステップＳ２３では、画素値変更部６３において、入力バッファ５１に記憶された復号対象の埋め込み画像のフレームを構成する最も左上の画素値が読み出され、ステップＳ２４に進み、その画素値が判定される。ステップＳ２４において、読み出された画素値が、変更対象画素値および変更値のいずれでもないと判定された場合、画素値変更部６３は、ステップＳ２８に進み、その画素値を、フレームメモリ５４に供給し、対応するアドレスに記憶させる。ここで、変更対象画素値および変更値のいずれでもない画素には、付加情報は埋め込まれていないから、その復号は行われない（することができない）（する必要がない）。
【０１０８】
また、ステップＳ２４において、読み出された画素値が、変更対象画素値であると判定された場合、ステップＳ２５に進み、画素値変更部６３は、メモリ５５に、付加情報の復号結果として、０または１のうちの、変更対象画素値に対応する０を供給して記憶させる。そして、ステップＳ２８に進み、画素値変更部６３は、変更対象画素値を、そのまま、フレームメモリ５４に供給し、対応するアドレスに記憶させる。
【０１０９】
さらに、ステップＳ２４において、読み出された画素値が、変更値であると判定された場合、ステップＳ２６に進み、画素値変更部６３は、変更値を、変更対象画素値に変更し、これにより、元の画素値に復号して、ステップＳ２７に進む。ステップＳ２７では、画素値変更部６３において、メモリ５５に対して、付加情報の復号結果として、０または１のうちの、変更値に対応する１が供給されて書き込まれる。そして、ステップＳ２８に進み、画素値変更部６３は、変更対象画素値（ステップＳ２６において、変更値を変更したもの）を、フレームメモリ５４に供給し、対応するアドレスに記憶させる。
【０１１０】
ステップＳ２８の処理後は、ステップＳ２９に進み、いま復号対象とされている埋め込み画像のフレームの画素の読み出しがすべて終了したかどうかが判定される。ステップＳ２９において、いま復号対象とされている埋め込み画像のフレームの画素すべての読み出しが、まだ終了していないと判定された場合、ステップＳ２３に戻り、ラスタスキャン順に、次に処理すべき画素値が読み出され、以下、同様の処理が繰り返される。
【０１１１】
また、ステップＳ２９において、いま復号対象とされている埋め込み画像の画素すべての読み出しが終了したと判定された場合、フレームメモリ５４またはメモリ５５にそれぞれ記憶された１フレームの復号画像または付加情報が読み出されて出力される。そして、ステップＳ３０に進み、入力バッファ５１に、次に処理すべき埋め込み画像のフレームが記憶されているかどうかが判定され、記憶されていると判定された場合、ステップＳ２１に戻り、そのフレームを復号対象として、同様の処理が繰り返される。
【０１１２】
また、ステップＳ３０において、入力バッファ５１に、次に処理すべき埋め込み画像のフレームが記憶されていないと判定された場合、埋め込み復号処理を終了する。
【０１１３】
以上のように、付加情報が埋め込まれた画像である符号化データを、画像の連続性を利用して、元の画像と付加情報に復号するようにしたので、その復号のためのオーバヘッドがなくても、符号化データを、元の画像と付加情報に復号することができる。従って、その復号画像には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【０１１４】
なお、本実施の形態では、埋め込み符号化処理において、付加情報にしたがい、変更対象画素値を、そのままとする（変更対象画素値に変更する）か、または変更値に変更するようにしたが、符号化対象の画像に、存在しない画素値が２以上ある場合には、例えば、そのうちの２つを第１の変更値と第２の変更値とし、付加情報にしたがい、変更対象画素値を、第１の変更値に変更するか、または第２の変更値に変更するようにすることが可能である。ここで、変更対象画素値を、そのままとするか、または変更値に変更する場合には、符号化対象の画像に、存在しない画素値が１つあれば良いが、変更対象画素値を、第１または第２の変更値に変更する場合には、符号化対象の画像に、存在しない画素値が２以上ある必要がある。しかしながら、変更対象画素値を、第１または第２の変更値に変更する場合には、埋め込み画像には、変更対象画素値が存在しなくなるので、埋め込み復号器６において、埋め込み画像の度数分布から、より精度良く、変更対象画素値を求めることが可能となる。
【０１１５】
さらに、符号化対象の画像に、存在しない画素値が複数ある場合には、その複数の画素値をすべて変更値とし、付加情報にしたがい、変更対象画素値を、複数の変更値のうちのいずれかに変更するようにすることが可能である。この場合、１画素に、２ビット以上の付加情報を埋め込むことが可能となる。
【０１１６】
また、本実施の形態では、埋め込み符号化処理において、符号化対象の画像の画素値を、ラスタスキャン順に処理するようにしたが、その処理の順番は、ラスタスキャン順に限定されるものではない。即ち、度数分布を求める画素値を読み出すことができれば良いので、処理の順番は、列方向や斜め方向であってもかまわない。
【０１１７】
さらに、本実施の形態では、フレーム単位で度数分布を求めるようにしたが、度数分布は、その他、例えば、１フレームを幾つかのブロックに分けて、そのブロック単位で求めても良いし、複数フレーム単位で求めても良い。
【０１１８】
また、本実施の形態では、埋め込み復号器６において、埋め込み符号化器３で決定された変更対象画素値および変更値を求めるようにしたが、変更対象画素値および変更値は、僅かな量のデータであり、埋め込み画像に、オーバーヘッドとして含めるようにしても良い。
【０１１９】
さらに、埋め込み符号化の対象とする画像が、例えば、ＲＧＢコンポーネント信号で構成されるカラー画像などである場合には、ＲＧＢそれぞれについて、埋め込み符号化処理を施すことが可能である。
【０１２０】
また、付加情報として用いる情報は、特に限定されるものではなく、例えば、画像や、音声、テキスト、コンピュータプログラム、制御信号、その他のデータを付加情報として用いることが可能である。なお、画像データベース１の画像の一部を付加情報とし、残りを、フレームメモリ３１への供給対象とすれば、その残りの部分に、付加情報とされた画像の一部分が埋め込まれるから、画像の圧縮が実現されることになる。
【０１２１】
さらに、本実施の形態では、付加情報を、画像に埋め込むようにしたが、付加情報は、その他、例えば、音声等の、値の度数分布の形状が連続性を有するメディアに埋め込むことが可能である。
【０１２２】
また、ここでは、画像に、付加情報そのものを埋め込むようにしたが、画像には、その他、例えば、付加情報の特徴量（例えば、付加情報のヒストグラムや、分散、ダイナミックレンジ等）を埋め込むようにすることも可能である。
【０１２３】
次に、図１６は、図６の埋め込み符号化器３の第２の機能的な構成例を示している。なお、図中、図７における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図１６の埋め込み符号化器３は、差分計算部７１が新たに設けられている他は、図７における場合と同様に構成されている。
【０１２４】
差分計算部７１は、フレームメモリ３１に記憶された符号化対象の画像を構成する各画素について、その画素と空間的または時間的に近接する画素を参照画素として、その参照画素との差分に対応する差分データを計算し、フレームメモリ３１に記憶させるようになっている。
【０１２５】
即ち、差分計算部７１は、例えば、符号化対象の画像を構成する各画素の画素値について、その左隣にある画素を参照画素として、その参照画素の画素値を減算し、その減算結果を、差分データとして、フレームメモリ３１に記憶させるようになっている。従って、図１６の実施の形態では、度数分布算出部４１、変更対象画素値／変更値決定部４２、および画素値変更部４３において、そのような差分データでなる画像（差分画像）を対象に、上述したような埋め込み符号化処理が行われるようになっている。
【０１２６】
次に、図１７のフローチャートを参照して、図１６の埋め込み符号化器３における埋め込み符号化処理について説明する。
【０１２７】
図１６の埋め込み符号化器３では、まず最初に、ステップＳ４０において、差分計算部７１が、フレームメモリ３１に記憶された符号化対象の画像を構成する各画素の画素値について、その左隣にある画素の画素値を減算し、その減算結果を、差分データとして、フレームメモリ３１に記憶させる。
【０１２８】
そして、ステップＳ４１乃至Ｓ５１において、図８のステップＳ１乃至Ｓ１１における場合とそれぞれ同様の処理が行われ、これにより、差分データを対象として、図８で説明した場合と同様の埋め込み符号化処理が行われ、付加情報が埋め込まれる。
【０１２９】
以上のように、画素値そのものではなく、画素値から参照画素の画素値を減算した差分データに対して、付加情報を埋め込むことで、より効率的な埋め込み符号化を行うことが可能となる。
【０１３０】
即ち、上述した場合では、差分計算部７１において、画像を構成する画素について、その隣接する画素を参照画素として、その参照画素を減算して得られる差分データを求めるようにしたが、隣接する画素どうしの差は、一般に小さいことから、差分データは、０付近に集中する。
【０１３１】
従って、差分データに付加情報を埋め込む場合には、変更対象画素値とされる最も度数の高い差分データの数は、画素値そのものに付加情報を埋め込む場合に比較して、膨大な個数となり、その結果、そのような膨大な数の差分データに対して、多量の付加情報を埋め込むことが可能となる。
【０１３２】
次に、図１８は、図１６の埋め込み符号化器３が出力する符号化データを復号する埋め込み復号器６の機能的な構成例を示している。なお、図中、図１２における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図１８の埋め込み復号器６は、差分復元部８１が新たに設けられている他は、図１２における場合と同様に構成されている。
【０１３３】
差分復元部８１は、フレームメモリ５４に記憶された差分データでなる差分画像を、元の画像に復元するようになっている。即ち、差分復元部８１は、フレームメモリ５４に記憶された差分データについて、その差分データを求めるときに参照画素として用いた画素の画素値を加算し、その加算値を、元の画素値として、フレームメモリ５４に書き込むようになっている。
【０１３４】
次に、図１８の埋め込み復号器６による埋め込み復号処理について、図１９のフローチャートを参照して説明する。
【０１３５】
図１８の埋め込み復号器６では、ステップＳ６１乃至Ｓ７０において、図１３のステップＳ２１乃至Ｓ３０における場合とそれぞれ同様の処理が、上述したような差分画像に付加情報を埋め込んで得られる符号化データを対象に行われる。但し、ステップＳ６９からＳ７０に進む間に、ステップＳ７１において、差分復元部８１は、フレームメモリ５４に記憶された差分データを、元の画素値に復元し、フレームメモリ５４に書き込む。
【０１３６】
即ち、図１６の埋め込み符号化器３が出力する符号化データは、上述したように、差分データに、付加情報が埋め込まれたものであるから、そのような符号化データに対して、図１３のステップＳ２１乃至Ｓ２８とそれぞれ同様のステップＳ６１乃至Ｓ６８の処理が施されることにより、フレームメモリ５４には、差分データが書き込まれることになる。ステップＳ７１では、差分復元部８１において、その差分データに対して、それを求めるときに参照画素として用いた画素の画素値が加算され、その加算値が、元の画素値として、フレームメモリ５４に書き込まれる。なお、フレームメモリ５４に書き込まれた元の画素値は、画像の復号結果として出力される他、その右隣の画素についての差分データを復元する際の参照画素として用いられる。
【０１３７】
以上のような埋め込み復号処理によれば、上述したように、多量の付加情報が埋め込まれた画像を、元の画像と付加情報とに復号することができる。
【０１３８】
ところで、いま埋め込み符号化の対象とする符号化対象画素の画素値をＡと、その左隣の画素である参照画素の画素値をＢと、差分データをＣと、それぞれ表すと、差分データは、式Ｃ＝Ａ−Ｂで表される。
【０１３９】
画素値どうしの単純な差分である差分データＣは、符号化対象の画像を構成する画素がＮビットで表されるとすると、最大でＮ＋１ビットで表される値になる（例えば、画素が、０乃至２５５の範囲の８ビットで表されるとすると、そのような画素どうしの単純な差分は、−２５５乃至＋２５５の範囲の値となり、その表現に、９ビットが必要となる）。この場合、差分データのビット数が、元の画素値のビット数よりも増加することになり、その結果、埋め込み符号化の対象とするデータ量が増加することがあり、好ましくない。
【０１４０】
そこで、例えば、図２０に示すように表現される差分データを用いることにより、上述したようなビット数の増加を防止することができる。
【０１４１】
即ち、符号化対象の画素（画素値）Ａが、参照画素（参照画素の画素値）Ｂ以下である場合には、符号化対象の画素Ａから参照画素Ｂを減算し、その減算値を、そのまま差分データＣとする。具体的には、例えば、符号化対象の画素値Ａが２００で、参照画素値Ｂが１０である場合には、図２０（Ａ）に示すように、２００−１０＝１９０が、差分データＣとされる。
【０１４２】
一方、符号化対象の画素Ａが、参照画素Ｂより大きい場合には、図２０（Ｂ）に示すように、符号化対象の画素Ａから参照画素Ｂを減算し、その減算値に、ある値を加算し、その加算結果を、差分データＣとする。即ち、画素がＮビットで表現されるとすると、符号化対象の画素Ａから参照画素Ｂを減算して得られる減算値に、２Nを加算し、その加算結果を、差分データＣとする。具体的には、例えば、画素が８ビットで表され、符号化対象の画素値Ａが１０で、参照画素値Ｂが２００である場合には、図２０（Ｂ）に示すように、１０−２００＋２8＝６６が、差分データＣとされる。
【０１４３】
以上のような差分データＣを求めるようにすることで、その差分データＣのビット数は、元の画素のビット数と変わらない（元の画素がＮビットで表現されるものであれば、差分データもＮビットで表現することができる）。従って、埋め込み符号化の対象とするデータ量の増加を防止することができる。
【０１４４】
次に、以上のようにして差分データＣを求めた場合には、その差分データＣは、次のようにして、元の画素（符号化対象の画素）Ａに復元することができる。
【０１４５】
即ち、まず、差分データＣを参照画素Ｂと加算し、その加算値を求める。そして、いま、画素がＮビットで表されるとすると、その加算値が２N−１以下である場合には、その加算値が、そのまま、元の画素Ａの復元結果となる。
【０１４６】
一方、差分データＣとを参照画素Ｂとの加算値が２N−１より大きい場合には、その加算値から、２Nを減算する。この場合、その減算値が、元の画素Ａの復元結果となる。
【０１４７】
以上のようにすることで、ある画素Ａと、他の画素Ｂとの差分を、そのビット数を増加させずに表現することができ、さらに、その差分を、元の画素Ａに復元することができる。
【０１４８】
次に、図２１のフローチャートを参照して、図１６の差分計算部７１において、図２０で説明したような表現の差分データを求めさせるための差分計算処理について説明する。
【０１４９】
この場合、差分計算処理では、まず最初に、ステップＳ８１において、符号化対象の画素の画素値Ａが、参照画素の画素値Ｂ以上である（より大きい）かどうかが判定される。そして、ステップＳ８１において、画素値Ａが画素値Ｂ以上であると判定された場合、画素値Ａから画素値Ｂが減算され、その減算値が、差分データＣとして出力されて、フレームメモリ３１に書き込まれる。
【０１５０】
一方、ステップＳ８１において、画素値Ａが画素値Ｂ以上でないと判定された場合（画素値Ａが画素値Ｂよりも小さい場合）、ステップＳ８４に進み、画素値Ａから画素値Ｂが減算される。さらに、ステップＳ８４では、画素値にＮビットが割り当てられているとすると、その画素値Ａから画素値Ｂを減算した減算値に、２Nが加算され、その加算値が、差分データＣとして出力されて、フレームメモリ３１に書き込まれる。
【０１５１】
次に、図２２のフローチャートを参照して、図１８の差分復元部８１において、図２０で説明したような表現の差分データＣを、元の画素値Ａに復元するための差分復元処理について説明する。
【０１５２】
この場合、差分復元処理では、まず最初に、ステップＳ９１において、差分データＣと、その差分データＣを求めるときに参照画素として用いた画素（本実施の形態では、差分データに対応する画素の左隣の画素）の画素値Ｂとが加算され、その加算値Ａ’が求められる。そして、ステップＳ９２に進み、画素値にＮビットが割り当てられているとすると、ステップＳ９１で求められた加算値Ａ’が、２N−１以下であるか否かが判定される。ステップＳ９２において、加算値Ａ’が、２N−１以下であると判定された場合、ステップＳ９３に進み、加算値Ａ’が、元の画素値Ａとして出力され、フレームメモリ５４に書き込まれる。
【０１５３】
一方、ステップＳ９２において、加算値Ａ’が、２N−１以下でないと判定された場合（加算値Ａ’がＮビットで表現される値より大きい場合）、ステップＳ９４に進み、加算値Ａ’から２Nが減算され、その減算値が、元の画素値Ａとされる。そして、ステップＳ９５に進み、差分復元部８１において、その元の画素値Ａが出力され、フレームメモリ５４に書き込まれる。
【０１５４】
以上のような表現の差分データを用いることで、効率的な埋め込み符号化を、画素値の差分をとることによるデータ量の増加を防止して行うことが可能となる。
【０１５５】
即ち、上述したような表現の差分データを用いる場合には、その差分データは、０や２N−１付近に集中する。具体的には、図２３（Ａ）は、ある１フレームの画像の画素値の度数分布を示しているが、この画像について差分データを演算すると、その差分データの度数分布は、図２３（Ｂ）に示すようになる。また、図２４（Ａ）は、他の１フレームの画像の画素値の度数分布を示しているが、この画像について差分データを演算すると、その差分データの度数分布は、図２４（Ｂ）に示すようになる。なお、図２３および図２４における画素値には８ビットが割り当てられている。
【０１５６】
いずれにしても、隣接する画素どうしについては、一般に、その画素値が近い（連続している）ことから、それらの間の差は、一般に小さく、その結果、図２０で説明した表現の差分データは、０や２５５（＝２8−１）付近に集中する。
【０１５７】
従って、この場合、画素値の差分をとることによるデータ量の増加を防止して、多量の付加情報を埋め込むことができる。即ち、差分データに付加情報を埋め込む場合には、変更対象画素値とされる最も度数の高い差分データの数は、画素値そのものに付加情報を埋め込む場合に比較して、膨大な個数となり（図２３および図２４の実施の形態では、差分データの度数分布において最も高い度数は、画素値の度数分布において最も高い度数の１０倍近くになっている）、その結果、そのような膨大な数の差分データに対して、多数の付加情報を埋め込むことが可能となる。
【０１５８】
次に、図２１で説明した差分計算処理によって差分データを求める場合や、図２２に示した差分復元処理によって差分データを元の画素値に復元する場合には、画素値どうし等の大小関係を判断し、その判断結果によって、処理の分岐を行う必要がある。このような大小関係の判断および処理の分岐は、処理を行う上で、算術演算や論理演算に比較して時間を要するから、判断および処理の分岐を行わずに、上述のような表現の差分データを求めることができるのが望ましい。
【０１５９】
そこで、図２５は、判断および処理の分岐を行わずに、上述のような表現の差分データを求める図１６の差分計算部７１の構成例を示している。なお、ここでは、符号化対象の画像を構成する画素に、例えば、８ビットが割り当てられているものとする。
【０１６０】
フレームメモリ３１に記憶された符号化対象の画像を構成する画素のうち、差分データを求めるものである符号化対象画素は、演算器９１に供給されるようになっており、また、その差分データを求めるのに参照画素として用いられるもの（本実施の形態では、符号化対象画素の左隣の画素）は、演算器９２に供給されるようになっている。
【０１６１】
演算器９１には、上述したように、符号化対象画素が供給される他、符号化対象画素に割り当てられているビット数Ｎで表される最大の数＋１（＝２N）（以下、適宜、ビット最大値という）も供給されるようになっている。即ち、本実施の形態では、符号化対象画素のビット数Ｎは８ビットであるから、演算器９１には、（２8−１）＋１＝２５６が供給されるようになっている。そして、演算器９１は、符号化対象画素を、ビット最大値と加算し、その加算値を、演算器９２に出力するようになっている。
【０１６２】
演算器９２は、演算器９１の出力から、参照画素を減算し、その減算値を、ＡＮＤゲート９３の一方の入力端子に供給するようになっている。
【０１６３】
ＡＮＤゲート９３の他方の入力端子には、ビット最大値−１（従って、Ｎビットで表される数の最大値（＝２N-1））が、演算器９２の出力の下位Ｎビットを除くビットをマスクするためのマスク値として供給されるようになっている。そして、ＡＮＤゲート９３は、演算器９２の出力と、マスク値とのビットごとの論理積を演算することにより、演算器９２の出力の下位Ｎビットを抽出し、その下位Ｎビットを、符号化対象画素に対する差分データとして出力するようになっている。ここで、本実施の形態では、符号化対象画素のビット数Ｎは８ビットであるから、ＡＮＤゲート９３には、２５５がマスク値として供給されるようになっており、従って、ＡＮＤゲート９３では、演算器９２の出力の下位８ビットが、差分データとして出力されるようになっている。
【０１６４】
次に、図２６のフローチャートを参照して、図２５の差分計算部７１において行われる、符号化対象画素に対する差分データを求める差分計算処理について説明する。
【０１６５】
差分計算部７１では、まず最初に、ステップＳ１０１において、演算器９１が、符号化対象画素とビット最大値２５６（＝２8）とを加算し、その加算値を、演算器９２に出力する。そして、ステップＳ１０２に進み、演算器９２において、演算器９１からの加算値から、参照画素が減算され、その減算値が、ＡＮＤゲート９３に出力される。ＡＮＤゲート９３では、ステップＳ１０３において、演算器９２からの減算値が、マスク値（２５５）によってマスクされ（減算値とマスク値との、ビットごとの論理積が演算され）、これにより、演算器９２が出力する減算値の下位Ｎビットが抽出される。この下位Ｎビットは、符号化対象画素に対する差分データとして出力されて、フレームメモリ３１に書き込まれ、差分計算処理を終了する。
【０１６６】
なお、図２６の差分計算処理は、フレームメモリ３１に記憶された符号化対象の画素すべてを、順次、符号化対象画素として行われる。
【０１６７】
以上の差分計算処理によれば、符号化対象画素をdataと、参照画素をrefと、差分データをdiffと、それぞれ表すとき、式diff＝（２N＋data−ref）＆（２N−１）にしたがって、Ｎビットの差分データdiffが求められることになる（＆は、ビットごとの論理積を表す）。従って、判断や処理の分岐を行うことなく、差分データdiffを求めることができる。即ち、ビット数が増加しない差分データを、高速に求めることができる。
【０１６８】
次に、図２７は、判断および処理の分岐を行わずに、上述のような表現の差分データを元の画素値に復元する図１８の差分復元部８１の構成例を示している。
【０１６９】
フレームメモリ５４に記憶された差分データ、およびその差分データを求めるときに参照画素として用いた、既に復元された画素は、演算器１０１に供給されるようになっている。演算器１０１は、それらの差分データと参照画素とを加算し、ＡＮＤゲート１０２の一方の入力端子に供給するようになっている。
【０１７０】
ＡＮＤゲート１０２の他方の入力端子には、ビット最大値−１（従って、Ｎビットで表される数の最大値（＝２N−１））が、演算器１０１の出力の下位Ｎビットを除くビットをマスクするためのマスク値として供給されるようになっている。そして、ＡＮＤゲート１０２は、演算器１０１の出力と、マスク値とのビットごとの論理積を演算することにより、演算器１０１の出力の下位Ｎビットを抽出し、その下位Ｎビットを、差分データを復元した復元画素として出力するようになっている。ここで、本実施の形態では、上述したように、ビット最大値は２５６（＝２8）であるから、ＡＮＤゲート１０２には、２５５がマスク値として供給されるようになっており、その結果、ＡＮＤゲート１０２では、演算器１０１の出力の下位８ビットが、復元画素として出力されるようになっている。
【０１７１】
次に、図２８のフローチャートを参照して、図２７の差分復元部８１において行われる、差分データから元の画素値を復元する差分復元処理について説明する。
【０１７２】
差分復元部８１では、まず最初に、ステップＳ１１１において、演算器１０１が、差分データと、参照画素とを加算し、その加算値を、ＡＮＤゲート１０２に供給する。ＡＮＤゲート１０２では、ステップＳ１１２において、演算器１０１からの加算値が、マスク値によってマスクされ（加算値とマスク値との、ビットごとの論理積が演算され）、これにより、演算器１０１が出力する加算値の下位Ｎビットが抽出される。この下位Ｎビットは、差分データを元の画素に復元した復元画素として出力されて、フレームメモリ５４に書き込まれ、差分復元処理を終了する。
【０１７３】
なお、図２８の差分復元処理は、フレームメモリ５４に記憶された差分データすべてについて、順次行われる。
【０１７４】
以上の差分復元処理によれば、元の画素をdataと、参照画素をrefと、差分データをdiffと、それぞれ表すとき、式data＝（diff＋ref）＆（２N−１）にしたがって、Ｎビットの元の画素dataが復元されることになる。従って、判断や処理の分岐を行うことなく、ビット数が増加していない差分データdiffを、元の画素dataに、高速に復元することができる。
【０１７５】
なお、本実施の形態では、ＣＰＵ３２または５２に、コンピュータプログラムを実行させることで、埋め込み符号化処理または埋め込み復号処理をそれぞれ行うようにしたが、これらの処理は、それ専用のハードウェアによって行うことも可能である。
【０１７６】
さらに、本実施の形態では、ある画素についての差分データを求める場合において、その画素の左隣の画素を、参照画素として用いるようにしたが、その他、例えば、前のフレームの同一位置にある画素や、動き補償を行った後の前のフレームの同一位置にある画素等を、参照画素として用いることも可能である。
【０１７７】
また、差分データを求める画素の左隣の画素を参照画素として用いる場合には、最左端の画素については、例えば、その左隣に、画素値が０の画素があるものとして、差分データを求めるようにすることができる。
【０１７８】
次に、上述した一連の処理は、コンピュータに、プログラムをインストールして行わせることが可能である。
【０１７９】
そこで、図２９を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる、そのプログラムが記録されている記録媒体について説明する。
【０１８０】
プログラムは、図２９（Ａ）に示すように、コンピュータ６０１に内蔵されている記録媒体としてのハードディスク６０２や半導体メモリ６０３に予め記録しておくことができる。
【０１８１】
あるいはまた、プログラムは、図２９（Ｂ）に示すように、フロッピーディスク６１１、CD-ROM(Compact Disc Read Only Memory)６１２，MO(Magneto optical)ディスク６１３，DVD(Digital Versatile Disc)６１４、磁気ディスク６１５、半導体メモリ６１６などの記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このような記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１８２】
なお、プログラムは、上述したような記録媒体からコンピュータにインストールする他、図２９（Ｃ）に示すように、ダウンロードサイト６２１から、ディジタル衛星放送用の人工衛星６２２を介して、コンピュータ６０１に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワーク６３１を介して、コンピュータ６０１に有線で転送し、コンピュータ６０１において、内蔵するハードディスク６０２などにインストールすることができる。
【０１８３】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１８４】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１８５】
次に、図３０は、図２９のコンピュータ６０１の構成例を示している。
【０１８６】
コンピュータ６０１は、図３０に示すように、CPU(Central Processing Unit)６４２を内蔵している。CPU６４２には、バス６４１を介して、入出力インタフェース６４５が接続されており、CPU６４２は、入出力インタフェース６４５を介して、ユーザによって、キーボードやマウス等で構成される入力部６４７が操作されることにより指令が入力されると、それにしたがって、図２９（Ａ）の半導体メモリ６０３に対応するROM(Read Only Memory)６４３に格納されているプログラムを実行する。あるいは、また、CPU６４２は、ハードディスク６０２に格納されているプログラム、衛星６２２若しくはネットワーク６３１から転送され、通信部６４８で受信されてハードディスク６０２にインストールされたプログラム、ドライブ６４９に装着されたフロッピディスク６１１、CD-ROM６１２、MOディスク６１３、DVD６１４、若しくは磁気ディスク６１５から読み出されてハードディスク６０２にインストールされたプログラム、または半導体メモリ６１６から読み出されたプログラムを、RAM(Random Access Memory)６４４にロードして実行する。これにより、CPU６４２では、図８や、図１３、図１７、図１９、図２１、図２２、図２６、図２８に示したフローチャートにしたがった処理が行われる。そして、CPU６４２は、その処理結果を、必要に応じて、例えば、入出力インタフェース６４５を介して、LCD(Liquid CryStal Display)等で構成される表示部６４６に出力し、あるいは通信部６４８から送信する。
【０１８７】
【発明の効果】
本発明の符号化装置および符号化方法、並びに第１の記録媒体によれば、第１のデータの少なくとも一部のデータの度数分布が求められ、その度数分布に応じて、一部のデータの中から、第２のデータにしたがって変更する変更対象データが決定されるとともに、変更対象データを変更する値である変更データが決定される。そして、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータが埋め込まれる。従って、度数分布の連続性を利用することで、第１および第２のデータを復号することができる。
【０１８８】
本発明の復号装置および復号方法、並びに第２の記録媒体によれば、符号化データの少なくとも一部のデータの度数分布が求められ、その度数分布に基づき、一部のデータの中から、第２のデータにしたがって変更された変更対象データと、その変更対象データを変更した値である変更データとが決定される。そして、変更データを、変更対象データに変更することにより、符号化データが、第１のデータに復号されるとともに、符号化データに埋め込まれた第２のデータが復号される。従って、劣化のない第１および第２のデータを得ることが可能となる。
【０１８９】
本発明のデータ処理装置によれば、第１のデータの少なくとも一部のデータの度数分布が求められ、その度数分布に応じて、第１のデータの少なくとも一部のデータの中から、第２のデータにしたがって変更する変更対象データが決定されるとともに、変更対象データを変更する値である変更データが決定される。そして、第２のデータにしたがって、変更対象データを変更データに変更することにより、第１のデータに、第２のデータに関連するデータが埋め込まれ、符号化データとされる。一方、符号化データの少なくとも一部のデータの度数分布が求められ、その度数分布に基づき、符号化データの少なくとも一部のデータの中から、変更対象データおよび変更データが決定される。そして、変更データを、変更対象データに変更することにより、符号化データが、第１のデータに復号されるとともに、符号化データに埋め込まれた第２のデータが復号される。従って、第１のデータに、第２のデータを埋め込んだ符号化データを得て、さらに、その符号化データを、劣化のない第１および第２のデータに復号することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した画像伝送システムの一実施の形態の構成例を示すブロック図である。
【図２】符号化対象の画像を示す図である。
【図３】相関性を利用した符号化／復号を説明するための図である。
【図４】連続性を利用した符号化／復号を説明するための図である。
【図５】相似性を利用した符号化／復号を説明するための図である。
【図６】図１の埋め込み符号化器３のハードウェアの構成例を示すブロック図である。
【図７】図６の埋め込み符号化器３の機能的構成例を示すブロック図である。
【図８】埋め込み符号化処理を説明するためのフローチャートである。
【図９】実際の画像の画素値の度数分布を示す図である。
【図１０】埋め込み符号化処理の結果を説明するための図である。
【図１１】図１の埋め込み復号器６のハードウェアの構成例を示すブロック図である。
【図１２】図１１の埋め込み復号器６の機能的構成例を示すブロック図である。
【図１３】埋め込み復号処理を説明するためのフローチャートである。
【図１４】図１３のステップＳ２２の処理を説明するための図である。
【図１５】図１３のステップＳ２２の処理を説明するための図である。
【図１６】図６の埋め込み符号化器３の他の機能的構成例を示すブロック図である。
【図１７】図１６の埋め込み符号化器３が行う埋め込み符号化処理を説明するためのフローチャートである。
【図１８】図１１の埋め込み復号器６の他の機能的構成例を示すブロック図である。
【図１９】図１８の埋め込み復号器６が行う埋め込み復号処理を説明するためのブロック図である。
【図２０】符号化対象画素について、参照画素との差分を表現する差分データを、ビット数を増加させることなく求める方法を説明するための図である。
【図２１】図１６の差分計算部７１による差分計算処理を説明するためのフローチャートである。
【図２２】図１８の差分復元部８１による差分復元処理を説明するためのフローチャートである。
【図２３】差分データの度数分布を示す図である。
【図２４】差分データの度数分布を示す図である。
【図２５】図１６の差分計算部７１の構成例を示す図である。
【図２６】図２５の差分計算部７１が行う差分計算処理を説明するためのフローチャートである。
【図２７】図１８の差分復元部８１の構成例を示す図である。
【図２８】図２７の差分復元部８１が行う差分復元処理を説明するためのフローチャートである。
【図２９】本発明を適用した記録媒体を説明するための図である。
【図３０】図２９のコンピュータ６０１の構成例を示すブロック図である。
【符号の説明】
１  画像データベース，  ２  付加情報データベース，  ３  埋め込み符号化器，  ４  記録媒体，  ５  伝送媒体，  ６  埋め込み復号器，  １０  符号化装置，  ２０  復号装置，  ３１  フレームメモリ，  ３２  ＣＰＵ，  ３３  プログラムメモリ，  ３４  メモリ，  ３５  出力バッファ，  ４１  度数分布算出部，  ４２  変更対象画素値／変更値決定部，  ４３  画素値変更部，  ５１  入力バッファ，  ５２  ＣＰＵ，  ５３  プログラムメモリ，  ５４  フレームメモリ，  ５５  メモリ，  ６１  度数分布算出部，  ６２  変更対象画素値／変更値決定部，  ６３  画素値変更部，  ７１  差分計算部，  ８１  差分復元部，  ９１，９２  演算器，  ９３  ＡＮＤゲート，  １０１  演算器，  １０２  ＡＮＤゲート，  ６０１  コンピュータ，  ６０２  ハードディスク，６０３  半導体メモリ，  ６１１  フロッピーディスク，  ６１２  CD-ROM，６１３  MOディスク，  ６１４  DVD，  ６１５  磁気ディスク，  ６１６  半導体メモリ，  ６２１  ダウンロードサイト，  ６２２  衛星，  ６３１  ネットワーク，  ６４１  バス，  ６４２  CPU，  ６４３  ROM，  ６４４  RAM，  ６４５  入出力インタフェース，  ６４６  表示部，  ６４７  入力部，  ６４８  通信部，  ６４９  ドライブ
【図１】
0004143884.tif 000002
【図２】
0004143884.tif 000003
【図３】
0004143884.tif 000004
【図４】
0004143884.tif 000005
【図５】
0004143884.tif 000006
【図６】
0004143884.tif 000007
【図７】
0004143884.tif 000008
【図８】
0004143884.tif 000009
【図９】
0004143884.tif 000010
【図１０】
0004143884.tif 000011
【図１１】
0004143884.tif 000012
【図１２】
0004143884.tif 000013
【図１３】
0004143884.tif 000014
【図１４】
0004143884.tif 000015
【図１５】
0004143884.tif 000016
【図１６】
0004143884.tif 000017
【図１７】
0004143884.tif 000018
【図１８】
0004143884.tif 000019
【図１９】
0004143884.tif 000020
【図２０】
0004143884.tif 000021
【図２１】
0004143884.tif 000022
【図２２】
0004143884.tif 000023
【図２３】
0004143884.tif 000024
【図２４】
0004143884.tif 000025
【図２５】
0004143884.tif 000026
【図２６】
0004143884.tif 000027
【図２７】
0004143884.tif 000028
【図２８】
0004143884.tif 000029
【図２９】
0004143884.tif 000030
【図３０】
0004143884.tif 000031