JP3940986B2 - データ処理装置およびデータ処理方法、並びにプログラム - Google Patents
データ処理装置およびデータ処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP3940986B2 JP3940986B2 JP2001320766A JP2001320766A JP3940986B2 JP 3940986 B2 JP3940986 B2 JP 3940986B2 JP 2001320766 A JP2001320766 A JP 2001320766A JP 2001320766 A JP2001320766 A JP 2001320766A JP 3940986 B2 JP3940986 B2 JP 3940986B2
- Authority
- JP
- Japan
- Prior art keywords
- embedded
- data
- embedding
- operation rule
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
- Television Systems (AREA)
- Editing Of Facsimile Originals (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びにプログラムに関し、特に、例えば、画像データに対して、多くのデータを埋め込むとともに、そのデータが埋め込まれた画像データと、埋め込んだデータを復元すること等ができるようにするデータ処理装置およびデータ処理方法、並びにプログラムに関する。
【0002】
【従来の技術】
例えば、情報としてのあるデータ系列に対して、そのデータ量を増加させることなく、他の情報としての他のデータ系列を埋め込む手法としては、例えば、ディジタル音声データ(オーディオデータ)の最下位ビットや、下位2ビットなどを、埋め込む情報に変換するものなどがある。この手法は、ディジタル音声データの下位ビットが、その音質にあまり影響を与えないことを利用し、その下位ビットを、単に、他のデータ系列を構成するデータに置き換えるものであり、従って、再生時には、他のデータ系列が埋め込まれたディジタル音声データは、その下位ビットを元に戻さずに、そのまま出力される。即ち、この場合、他のデータ系列が埋め込まれた下位ビットを、元に戻すのは困難であり、また、下位ビットは、音質に、あまり影響を与えないことから、ディジタル音声データは、他のデータ系列が埋め込まれた状態で出力される。
【0003】
しかしながら、以上のような手法によれば、元の音声データと異なる音声データが出力される。即ち、元の音声データに埋め込まれた他のデータは、元の音声データにとっては、ノイズとなるから、他のデータが埋め込まれた音声データは、その音質が劣化したものとなる。
【0004】
また、音声データの他、画像データにも、上述の音声データにおける場合と同様にして、他のデータの埋め込みが可能であるが、この場合も、他のデータが埋め込まれた画像データは、その画質が劣化したものとなる。
【0005】
【発明が解決しようとする課題】
そこで、本件出願人は、画質を劣化させることなく(画質の劣化を最低限に抑えて)、元の画像データと、それに埋め込まれていた他のデータを復元することのできる埋め込み手法について、先に提案している。
【0006】
即ち、いま、他のデータを埋め込む対象となる画像データ等を、埋め込み対象データと、埋め込み対象データに埋め込まれる他のデータを、被埋め込みデータと、埋め込み対象データに対して被埋め込みデータを埋め込むことにより得られるデータを、埋め込み符号化データと、それぞれいうものとする。
【0007】
この場合、被埋め込みデータを、埋め込み対象データに埋め込む埋め込み処理では、例えば、図1Aに示すように、埋め込み対象データとしての画像データを構成する水平ラインが、その上方向から下方向に、順次、注目ラインとされる。そして、注目ラインが、被埋め込みデータに対応する分だけ、例えば、右方向にローテーションされることで、その被埋め込みデータが、埋め込み対象データとしての画像データ(の注目ライン)に埋め込まれる。ここで、図1Aは、被埋め込みデータとして、「2」が埋め込まれる場合を示しており、注目ラインが、被埋め込みデータ「2」に対応して、2画素分だけ、右方向にローテーションされている。
【0008】
埋め込み処理では、上述のようにして、埋め込み対象データとしての画像データが、被埋め込みデータに対応してローテーションされることにより、被埋め込みデータが、埋め込み対象データに埋め込まれ、これにより、埋め込み符号化データが生成される。この埋め込み符号化データは、埋め込み対象データとしての画像データの水平ラインを水平方向(ここでは右方向)にローテーションしたものであるから、そのデータ量は、埋め込み対象データと同一であり、従って、上述の埋め込み処理によれば、埋め込み対象データと被埋め込みデータは、埋め込み対象データのデータ量に圧縮されることになる。
【0009】
以上のような埋め込み符号化データを、元の埋め込み対象データと被埋め込みデータに復元する復元処理では、例えば、図1Bに示すように、埋め込み符号化データとされた画像データを構成する水平ラインが、その上方向から下方向に、順次、注目ラインとされる。さらに、注目ラインの1ライン上の水平ラインが基準ラインとされ、注目ラインが、埋め込み処理の場合とは反対方向の左方向に、1画素ずつローテーションされる。また、注目ラインをローテーションしながら、その注目ラインを構成する各画素と、基準ラインを構成する対応する画素との相関の総和などが、注目ラインと基準ラインの相関として計算され、その相関を最大にするローテーション量が求められる。そして、基準ラインが、相関を最大にするローテーション量だけローテーションされることにより元の位置に戻されるとともに、そのローテーション量が、その注目ラインに埋め込まれていた被埋め込みデータとして復元される。
【0010】
復元処理では、上述のようにして、埋め込み符号化データとしての画像データを構成する各水平ラインが、基準ラインとの相関を最大にする位置にローテーションされることにより、埋め込み対象データとしての画像データが復元されるとともに、各水平ラインのローテーション量に基づいて、埋め込み符号化データに埋め込まれていた被埋め込みデータが復元される。
【0011】
以上のように、先に提案した埋め込み処理および復元処理によれば、埋め込み対象データと被埋め込みデータを、埋め込み対象データのデータ量となる埋め込み符号化データに圧縮すること、即ち、被埋め込みデータの分だけ圧縮することができ、さらに、そのように圧縮された埋め込み符号化データを、元の埋め込み対象データと被埋め込みデータに復元することができる。
【0012】
ところで、より多くの被埋め込みデータを埋め込むことができれば便利であるが、ラインをローテーションするという操作ルールだけでは、画像データに埋め込むことのできる被埋め込みデータのデータ量は、その画像データを構成するライン数による制限を受ける。
【0013】
本発明は、このような状況に鑑みてなされたものであり、埋め込み対象データに対して、より多くの被埋め込みデータを埋め込む埋め込み処理と、その埋め込み処理によって得られた埋め込み符号化データを、元の埋め込み対象データと被埋め込みデータに復元する復元処理を行うことができるようにするものである。
【0014】
【課題を解決するための手段】
本発明の第1のデータ処理装置は、情報が有するエネルギの偏りを利用して他の情報が埋め込まれた情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、埋め込み対象データを、任意の被埋め込みデータに対応して操作し、埋め込み対象データに任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込み手段と、第1の操作ルールとは異なる第2の操作ルールにしたがい、第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、第1の操作ルールによる埋め込み符号化データに他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込み手段とを備え、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールであることを特徴とする。
【0015】
本発明の第1のデータ処理方法は、情報が有するエネルギの偏りを利用して他の情報が埋め込まれた情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、埋め込み対象データを、任意の被埋め込みデータに対応して操作し、埋め込み対象データに任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込みステップと、第1の操作ルールとは異なる第2の操作ルールにしたがい、第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、第1の操作ルールによる埋め込み符号化データに他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込みステップとを備え、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールであることを特徴とする。
【0016】
本発明の第1のプログラムは、情報が有するエネルギの偏りを利用して他の情報が埋め込まれた情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、埋め込み対象データを、任意の被埋め込みデータに対応して操作し、埋め込み対象データに任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込みステップと、第1の操作ルールとは異なる第2の操作ルールにしたがい、第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、第1の操作ルールによる埋め込み符号化データに他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込みステップとを備え、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールであることを特徴とする。
【0018】
本発明の第2のデータ処理装置は、第2の操作ルールによる埋め込み符号化データを、第2の操作ルールにしたがって操作するとともに、第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、第1の操作ルールによる埋め込み符号化データと他の任意の被埋め込みデータを復元する第1の復元手段と、第1の操作ルールによる埋め込み符号化データを、第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、埋め込み対象データと任意の被埋め込みデータを復元する第2の復元手段とを備え、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものであることを特徴とする。
【0019】
本発明の第2のデータ処理方法は、第2の操作ルールによる埋め込み符号化データを、第2の操作ルールにしたがって操作するとともに、第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、第1の操作ルールによる埋め込み符号化データと他の任意の被埋め込みデータを復元する第1の復元ステップと、第1の操作ルールによる埋め込み符号化データを、第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、埋め込み対象データと任意の被埋め込みデータを復元する第2の復元ステップとを備え、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものであることを特徴とする。
【0020】
本発明の第2のプログラムは、第2の操作ルールによる埋め込み符号化データを、第2の操作ルールにしたがって操作するとともに、第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、第1の操作ルールによる埋め込み符号化データと他の任意の被埋め込みデータを復元する第1の復元ステップと、第1の操作ルールによる埋め込み符号化データを、第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、埋め込み対象データと任意の被埋め込みデータを復元する第2の復元ステップとを備え、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものであることを特徴とする。
【0022】
本発明の第1のデータ処理装置およびデータ処理方法、並びにプログラムにおいては、情報が有するエネルギの偏りを利用して他の情報が埋め込まれた情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、埋め込み対象データが、任意の被埋め込みデータに対応して操作され、埋め込み対象データに任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データが生成される。そして、第1の操作ルールとは異なる第2の操作ルールにしたがい、第1の操作ルールによる埋め込み符号化データが、他の任意の被埋め込みデータに対応して操作され、第1の操作ルールによる埋め込み符号化データに他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データが生成される。この場合において、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールである。
【0023】
本発明の第2のデータ処理装置およびデータ処理方法、並びにプログラムにおいては、第2の操作ルールによる埋め込み符号化データが、第2の操作ルールにしたがって操作されるとともに、第1の操作ルールにしたがって操作され、その操作によって得られるデータのエネルギの偏りを利用して、第1の操作ルールによる埋め込み符号化データと他の任意の被埋め込みデータが復元される。そして、第1の操作ルールによる埋め込み符号化データが、第1の操作ルールにしたがって操作され、その操作によって得られるデータのエネルギの偏りを利用して、埋め込み対象データと任意の被埋め込みデータが復元される。この場合において、埋め込み対象データは、画像データであり、第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものである。
【0024】
【発明の実施の形態】
図2は、本発明を適用した埋め込み符号化/復号システムの一実施の形態の構成例を示している。
【0025】
この埋め込み符号化/復号システムは、符号化装置11および復号装置12で構成されている。符号化装置11は、埋め込み対象データとしての、例えば、画像データに対して、被埋め込みデータを埋め込むことにより、埋め込み符号化データを生成して出力し、復号装置12は、その埋め込み符号化データを、元の埋め込み対象データと被埋め込みデータに復号する。
【0026】
即ち、符号化装置11は、埋め込み対象データベース1、被埋め込みデータベース2、および埋め込み符号化器3で構成されている。
【0027】
埋め込み対象データベース1は、埋め込み対象データとしての、例えばディジタル画像データを記憶している。そして、埋め込み対象データベース1からは、そこに記憶されている画像データが読み出され、埋め込み符号化器3に供給される。
【0028】
また、被埋め込みデータベース2は、被埋め込みデータ(ディジタルデータ)を記憶している。そして、被埋め込みデータベース2からも、そこに記憶されている被埋め込みデータが読み出され、埋め込み符号化器3に供給される。
【0029】
埋め込み符号化器3では、埋め込み対象データベース1からの画像データ、および被埋め込みデータベース2からの被埋め込みデータが受信される。さらに、埋め込み符号化器3は、埋め込み対象データベース1からの画像データが有するエネルギの偏りを利用して復号を行うことができるように、その画像データを、被埋め込みデータベース2からの被埋め込みデータに対応して操作することで、画像データに、被埋め込みデータを埋め込み、埋め込み符号化データを生成して出力する。埋め込み符号化器3が出力する埋め込み符号化データは、例えば、半導体メモリ、光磁気ディスク、磁気ディスク、光ディスク、磁気テープ、相変化ディスクなどでなる記録媒体4に記録され、あるいは、また、例えば、地上波、衛星回線、CATV(Cable Television)網、インターネット、公衆回線などでなる伝送媒体5を介して伝送され、復号装置12に提供される。
【0030】
復号装置12は、復元器6で構成され、そこでは、記録媒体4または伝送媒体5を介して提供される埋め込み符号化データが受信される。さらに、復元器6は、その埋め込み符号化データを、埋め込み対象データとしての画像データが有するエネルギの偏りを利用して、元の画像データおよび被埋め込みデータに復元する。この復元された画像データは、例えば、図示せぬモニタに供給されて表示される。
【0031】
なお、被埋め込みデータとしては、例えば、埋め込み対象データとしての元の画像データに関連するテキストデータや、音声データ、その画像データを縮小した縮小画像データ等は勿論、元の画像データに無関係なデータも用いることができる。
【0032】
次に、図3は、図2の埋め込み符号化器3の構成例を示している。
【0033】
埋め込み対象データベース1から供給される埋め込み対象データとしての画像データは、フレームメモリ21に供給されるようになされており、フレームメモリ21は、埋め込み対象データベース1からの画像データを、例えば、フレーム単位で一時記憶する。
【0034】
埋め込み部22は、被埋め込みデータベース2に記憶された被埋め込みデータを受信し、その被埋め込みデータを、フレームメモリ21に記憶された埋め込み対象データとしての画像データに埋め込む埋め込み処理を行い、これにより、画像データのエネルギの偏りを利用して元に戻すことができる埋め込み符号化データを生成する。
【0035】
なお、フレームメモリ21は、複数のフレーム(またはフィールド)を記憶することのできるように、複数バンクで構成されており、バンク切り替えを行うことで、フレームメモリ21では、埋め込み対象データベース1から供給される画像データの記憶、埋め込み部22による埋め込み処理の対象となっている画像データの記憶、および埋め込み処理後の画像データ(埋め込み符号化データ)の出力を、同時に行うことができるようになっている。これにより、埋め込み対象データベース1から供給される画像データが、動画であっても、埋め込み符号化データのリアルタイム出力を行うことができるようになっている。
【0036】
次に、図4は、図3の埋め込み符号化器3が出力する埋め込み符号化データを、画像データのエネルギの偏りを利用して元の画像データと被埋め込みデータに復元する図2の復元器6の構成例を示している。
【0037】
埋め込み符号化データ、即ち、被埋め込みデータが埋め込まれた画像データ(以下、適宜、埋め込み画像データともいう)は、フレームメモリ31に供給されるようになされており、フレームメモリ31は、埋め込み画像データを、例えば、フレーム単位で一時記憶する。なお、フレームメモリ31も、図3のフレームメモリ21と同様に構成され、バンク切り替えを行うことにより、埋め込み画像データが、動画であっても、そのリアルタイム処理が可能となっている。
【0038】
復元部32は、フレームメモリ31に記憶された埋め込み画像データを、画像データのエネルギの偏りを利用して元の画像データと被埋め込みデータに復元する復元処理を行う。
【0039】
次に、上述の埋め込み符号化器3で行われる埋め込み処理と、復元器6で行われる復元処理の原理について説明する。
【0040】
一般に、情報と呼ばれるものは、エネルギ(エントロピー)の偏り(普遍性)を有し、この偏りが、情報(価値ある情報)として認識される。即ち、例えば、ある風景を撮影して得られる画像が、そのような風景の画像であると人によって認識されるのは、画像(画像を構成する各画素の画素値など)が、その風景に対応したエネルギの偏りを有するからであり、エネルギの偏りがない画像は、雑音等にすぎず、情報としての利用価値はない。
【0041】
従って、価値ある情報に対して、何らかの操作を施し、その情報が有する本来のエネルギの偏りを、いわば破壊した場合でも、その破壊されたエネルギの偏りを元に戻すことで、何らかの操作が施された情報も、元の情報に戻すことができる。即ち、情報を操作して得られるデータは、その情報が有する本来のエネルギの偏りを利用して、元の価値ある情報に復元することができる。
【0042】
ここで、情報が有するエネルギ(の偏り)を表すものとしては、例えば、相関性、連続性、相似性などがある。
【0043】
情報の相関性とは、その情報の構成要素(例えば、画像であれば、その画像を構成する画素や水平ラインなど)どうしの相関(例えば、自己相関や、ある構成要素と他の構成要素との距離など)を意味する。例えば、画像の相関性を表すものとしては、画像の水平ライン間の相関があり、この相関を表す相関値としては、例えば、2つの水平ラインにおける、対応する画素の画素値どうしの差分の2乗和等の逆数を用いることができる。
【0044】
即ち、例えば、いま、図5に示すようなH本の水平ラインを有する画像があった場合に、その上から1行目の水平ライン(第1水平ライン)と、他の水平ラインとの相関は、一般に、図6Aに示すように、第1水平ラインとの距離が近い水平ライン(図5における画像の上側の水平ライン)ほど、第M水平ラインについての相関として示すように大きくなり、第1水平ラインとの距離が遠い水平ライン(図5における画像の下側の水平ライン)ほど、第N水平ラインについての相関として示すように小さくなる。従って、第1水平ラインから近いほど、第1水平ラインとの相関が大きくなり、遠いほど相関が小さくなるという相関の偏りがある。
【0045】
そこで、いま、図5の画像において、第1水平ラインから比較的近い第M水平ラインと、第1水平ラインから比較的遠い第N水平ラインとの画素を入れ替える操作を行い(1<M<N≦H)、その入れ替え後の画像について、第1水平ラインと、他の水平ラインとの相関を計算値すると、それは、例えば、図6Bに示すようになる。
【0046】
即ち、入れ替え後の画像では、第1水平ラインから近い第M水平ライン(入れ替え前の第N水平ライン)との相関が小さくなり、第1水平ラインから遠い第N水平ライン(入れ替え前の第M水平ライン)との相関が大きくなる。
【0047】
従って、図6Bでは、第1水平ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関性の偏りが破壊されている。しかしながら、画像については、一般に、第1水平ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関性の偏りを利用することにより、破壊された相関性の偏りを復元することができる。即ち、図6Bにおいて、第1水平ラインから近い第M水平ラインとの相関が小さく、第1水平ラインから遠い第N水平ラインとの相関が大きいのは、画像が有する本来の相関性の偏りからすれば、明らかに不自然であり(おかしく)、第M水平ラインと第N水平ラインとは入れ替えるべきである。そして、図6Bにおける第M水平ラインと第N水平ラインとを入れ替えることで、図6Aに示すような本来の相関性の偏りを有する画像、即ち、元の画像を復元することができる。
【0048】
ここで、図5および図6で説明した場合においては、水平ラインの入れ替え操作が、画像データに対して、被埋め込みデータを埋め込むこととなる。そして、被埋め込みデータの埋め込みに際して、例えば、何水平ライン目を移動するかや、どの水平ラインどうしを入れ替えるかなどといった画像データに対する操作が、被埋め込みデータに対応して決定される。一方、被埋め込みデータが埋め込まれた埋め込み画像データ(埋め込み符号化データ)の水平ラインを、元の画像データの相関を利用して、元の位置に入れ替えることが、元の画像データを復元することになる。そして、その復元に際して、例えば、何水平ライン目を移動したかや、どの水平ラインどうしを入れ替えたかなどの埋め込み画像データに対する操作に基づいて、画像データに埋め込まれていた被埋め込みデータが復元される。
【0049】
次に、図7乃至図9を参照して、画像データの相関性を利用する埋め込み処理と復元処理の例について説明する。
【0050】
図7乃至図9の実施の形態では、埋め込み処理において、埋め込み対象データとしての画像データを構成する一部の画素が、処理対象画素として選択され、その選択された画素が、被埋め込みデータに対応してレベル方向に操作されることにより(画素値が操作されることにより)、その画素に対して、被埋め込みデータが埋め込まれる。一方、復元処理では、埋め込み処理によって得られた埋め込み画像データを構成する一部の画素(埋め込み処理で選択されたのと同一位置の画素)が、処理対象画素として選択され、図7に示すように、その処理対象画素に対して、埋め込み処理における場合と逆の操作が施されることで、その画素値が変更される。さらに、図7に示すように、画素値の変更前の処理対象画素と、その周辺画素(図7の実施の形態では、左右に隣接する画素)との相関値R1が演算されるとともに、画素値の変更された処理対象画素と、その画素の周辺画素との相関値R2が演算される。そして、その相関値R1とR2との大小関係に基づいて、画素値の変更前または変更後の処理対象画素のうちのいずれか一方が、元の画像データの復元結果とされるとともに、その処理対象画素に埋め込まれていた被埋め込みデータが復元される。
【0051】
図8は、図3の埋め込み符号化器3が、画像データの相関性を利用して行う埋め込み処理の例を示すフローチャートである。
【0052】
埋め込み対象データベース1では、そこに記憶されている埋め込み対象データとしての画像データが読み出され、例えば、1フレーム単位で、フレームメモリ21に供給されて記憶される。
【0053】
一方、埋め込み部22は、被埋め込みデータベース2から、被埋め込みデータを、例えば1ビットずつ受信し、ステップS1において、その1ビットの被埋め込みデータを埋め込む処理の対象とする画素(処理対象画素)を、フレームメモリ21に記憶された画像から選択する。
【0054】
ここで、本実施の形態では、例えば、フレームメモリ21に記憶された画像データから、五の目格子状に、画素が、順次選択され、処理対象画素とされるようになっている。
【0055】
その後、埋め込み部22は、ステップS2において、被埋め込みデータベース2から受信した被埋め込みデータが1または0のうちのいずれであるかを判定する。ステップS2において、被埋め込みデータが、1または0のうちの、例えば0であると判定された場合、ステップS1に戻る。即ち、埋め込み部22は、被埋め込みデータが0である場合には、処理対象画素に、何らの操作も施さずに(所定の定数としての0を加算し)、ステップS1に戻り、次の1ビットの被埋め込みデータが、被埋め込みデータベース2から送信されてくるのを待って、次に処理対象画素とすべき画素を選択し、以下、同様の処理を繰り返す。
【0056】
また、ステップS2において、被埋め込みデータが、1または0のうちの、例えば1であると判定された場合、ステップS3に進み、埋め込み部22は、処理対象画素に対して、所定の操作を施す。即ち、埋め込み部22は、所定の定数としての、例えば、2の、画像データを構成する画素に割り当てられているビット数−1乗を、処理対象画素の画素値に加算する。
【0057】
従って、画像データを構成する画素の画素値として、例えば、8ビットが割り当てられている場合には、ステップS3では、27が、処理対象画素の画素値に加算されることになる。
【0058】
なお、この加算は、画素値が、例えば、YUVなどで表現されている場合には、輝度成分Y、または色成分U,Vのいずれに対して行っても良い。また、加算は、画素値が、例えば、RGBで表現されている場合には、R,G,Bのいずれに対して行っても良い。即ち、ステップS3における加算は、画素値が複数の成分で構成される場合には、その複数の成分のうちの1つまたは2以上に対して行っても良いし、全部に対して行っても良い。また、ステップS3の加算は、複数の成分それぞれごとに、独立に行うことも可能である。
【0059】
ステップS3において、処理対象画素の画素値に、27が加算された後は、ステップS4に進み、その加算結果がオーバフローしているかどうかが判定される。ステップS4において、加算結果がオーバフローしていないと判定された場合、ステップS5をスキップして、ステップS6に進み、埋め込み部22は、その加算結果を、処理対象画素の画素値として、フレームメモリ21に書き込み(上書きし)、ステップS1に戻る。
【0060】
また、ステップS4において、加算結果がオーバフローしていると判定された場合、即ち、本実施の形態では、画素値が8ビットであるから、加算結果が、28以上となった場合、ステップS5に進み、埋め込み部22は、その加算値の補正を行う。即ち、ステップS5では、オーバフローした加算値が、例えば、そのオーバフローした分(オーバフローした加算値から28を減算した値)に補正される。そして、ステップS6に進み、埋め込み部22は、その補正後の加算結果を、処理対象画素の画素値として、フレームメモリ21に書き込み、次の1ビットの被埋め込みデータが、被埋め込みデータベース2から送信されてくるのを待って、ステップS1に戻る。
【0061】
なお、フレームメモリ21に記憶された、ある1フレームの画像データについて埋め込み処理が行われた後は、その1フレームの画像データ、即ち、埋め込み画像データは、フレームメモリ21から読み出されて出力される。そして、埋め込み部22は、フレームメモリ21に記憶された、次の1フレームの画像データを対象に、埋め込み処理を続行する。
【0062】
次に、図9のフローチャートを参照して、図8の埋め込み処理により得られる埋め込み画像データを復元する、復元器6による復元処理について説明する。
【0063】
フレームメモリ31では、そこに供給される埋め込み画像データが、例えば、1フレーム単位で順次記憶される。
【0064】
一方、復元部32は、ステップS11において、フレームメモリ31に記憶されたあるフレームの埋め込み画像データから、復元処理の対象とする画素(処理対象画素)を選択する。
【0065】
ここで、復元部32では、埋め込み部22と同様に、フレームメモリ31に記憶された埋め込み画像データから、五の目格子状に、画素が、順次選択される。即ち、埋め込み処理と復元処理では、同一の画素が、処理対象画素として選択される。
【0066】
その後、ステップS12に進み、復元部32は、処理対象画素に対し、図3の埋め込み部22が行った操作と逆の操作を施す。即ち、埋め込み部22は、所定の定数としての、例えば、2の、画像を構成する画素に割り当てられているビット数−1乗を、処理対象画素の画素値から減算する。
【0067】
従って、上述したように、埋め込み画像データを構成する画素の画素値として、例えば、8ビットが割り当てられている場合においては、ステップS12では、27が、処理対象画素の画素値から減算されることになる。
【0068】
なお、この減算は、画素値が、例えば、YUVなどで表現されている場合には、輝度成分Y、または色成分U,Vのいずれに対して行っても良い。また、減算は、画素値が、例えば、RGBで表現されている場合には、R,G,Bのいずれに対して行っても良い。但し、ステップS12における減算は、図8のステップS3における加算が行われたものと同一のものに対して行う必要がある。即ち、画素値が、例えば、YUVなどで表現されており、図8のステップS3における加算が、YUVのうちの、例えば、Y成分に対して行われた場合には、ステップS12における減算は、やはり、Y成分に対して行う必要がある。
【0069】
ステップS12において、処理対象画素の画素値から、27が減算された後は、ステップS13に進み、その減算結果がアンダフローしているかどうかが判定される。ステップS13において、減算結果がアンダフローしていないと判定された場合、ステップS14をスキップして、ステップS15に進む。
【0070】
また、ステップS13において、減算結果がアンダフローしていると判定された場合、即ち、加算結果が、0未満となった場合、ステップS14に進み、復元部32は、その減算値の補正を行う。即ち、ステップS14では、アンダフローした減算値が、例えば、その減算値に28を加算した値に補正され、ステップS15に進む。
【0071】
ステップS15では、処理対象画素の画素値(ステップS12で27を減算していないもの)(以下、適宜、第1の画素値という)P1と、その画素値から27を減算した減算値(以下では、ステップS14で補正されたものも含むものとする)(以下、適宜、第2の画素値という)P2のそれぞれについて、処理対象画素の周辺画素としての、例えば、その左右に隣接する画素との間の相関を表す相関値が演算される。
【0072】
即ち、ステップS15では、例えば、処理対象画素の第1の画素値P1と、その左右の画素それぞれの画素値との差分の絶対値が演算され、その結果得られる2つの絶対値の加算値の逆数が、処理対象画素の第1の画素値P1についての相関値R1として求められる。さらに、ステップS15では、処理対象画素の第2の画素値P2についても、その左右の画素それぞれの画素値との差分の絶対値どうしの加算値の逆数が演算され、それが、処理対象画素の第2の画素値P2の相関値R2として求められる。
【0073】
なお、ステップS15において、処理対象画素との間の相関を求めるのに用いる画素は、その左右に隣接する画素に限定されるものではなく、上下に隣接する画素であっても良いし、時間的に隣接する画素であっても良い。また、必ずしも、空間的または時間的に隣接する画素である必要もない。但し、処理対象画素との相関を求めるにあたっては、埋め込み画像データにおいて、被埋め込みデータが埋め込まれていない画素を用いるのが望ましい。これは、処理対象画素について、被埋め込みデータが埋め込まれた画素との相関を求めても、元の画像データについての相関を得ることができず、従って、画像データの相関性を利用することができないため、被埋め込みデータが埋め込まれた画素から、元の画素値および被埋め込みデータを、正確に復元するのが困難となるからである。また、画像データの相関性を利用して、処理対象画素を復元する以上、処理対象画素との相関値を求めるのに用いる画素は、その処理対象画素との空間的または時間的距離が近いものであるのが望ましい。
【0074】
第1の画素値P1についての相関値R1、および第2の画素値P2についての相関値R2の算出後は、ステップS16に進み、復元部32において、その相関値R1とR2とが比較される。
【0075】
ステップS16において、相関値R1が、相関値R2より大きい(または以上である)と判定された場合、ステップS17に進み、復元部32において、被埋め込みデータの復元結果として、0が出力され、ステップS11に戻る。そして、この場合、フレームメモリ31の記憶値は書き換えられず、従って、処理対象画素の画素値の復元結果は、その画素値P1のままとされる。
【0076】
即ち、第1の画素値P1についての相関値R1の方が、第2の画素値P2についての相関値R2より大きいということは、処理対象画素の画素値としては、画素値P2よりも、画素値P1の方が確からしいこととなるので、処理対象画素の画素値の復元結果は、その確からしい画素値P1とされる。さらに、画素値P1は、ステップS12で27が減算されていないものであるから、図8のステップS3で27が加算されていないと考えられる。そして、図8の埋め込み処理では、被埋め込みデータが0の場合には、27を加算しないこととしているから、第1の画素値P1についての相関値R1の方が大きく、画素値P1が、処理対象画素の画素値として確からしい場合には、そこに埋め込まれた被埋め込みデータは0ということになる。
【0077】
一方、ステップS16において、相関値R2が、相関値R1より大きい(以上である)と判定された場合、ステップS18に進み、復元部32において、フレームメモリ31に記憶された処理対象画素の画素値が、その画素値から27を減算した減算値、即ち、第2の画素値P2に書き換えられる。従って、この場合、処理対象画素の画素値の復元結果は、その画素値P2とされる。そして、ステップS19に進み、復元部32において、被埋め込みデータの復元結果として、1が出力され、ステップS11に戻る。
【0078】
即ち、第2の画素値P2についての相関値R2の方が、第1の画素値P1についての相関値R1より大きいということは、処理対象画素の画素値としては、画素値P1よりも、画素値P2の方が確からしいこととなるので、処理対象画素の画素値の復元結果は、その確からしい画素値P2とされる。さらに、画素値P2は、ステップS12で、画素値P1から27が減算されたものであるから、図8のステップS3で、元の画素値に27が加算されたものであると考えられる。そして、図8の埋め込み処理では、被埋め込みデータが1の場合には、27を加算することとしているから、第2の画素値P2についての相関値R2の方が大きく、画素値P2が、処理対象画素の画素値として確からしい場合には、そこに埋め込まれた被埋め込みデータは1ということになる。
【0079】
ここで、上述のようにして求められる相関値R1とR2との差分が小さい場合には、画素値P1とP2のうちのいずれが、処理対象画素の画素値として確からしいかは、一概には言えない。そこで、このような場合には、処理対象画素の左右に隣接する画素だけでなく、他の画素をも用いて、画素値P1,P2それぞれについての相関値を求め、その相関値を比較することで、画素値P1,P2のうちのいずれが、処理対象画素の画素値として確からしいかを決定することができる。
【0080】
以上のように、被埋め込みデータが埋め込まれた画像データである埋め込み画像データを、画像の相関性を利用して、元の画像データと被埋め込みデータに復元するようにしたので、その復元のためのオーバヘッドがなくても、埋め込み画像データを、元の画像データと被埋め込みデータに復元することができる。従って、その復元画像(復号画像)には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0081】
即ち、図8の埋め込み処理によれば、画像データの画素値に、被埋め込みデータの値に対応した所定値(図8の実施の形態では、0または27)を加算し、その加算値がオーバーフローしている場合には、その補正を行うという操作ルールにしたがい、画像データに対して、被埋め込みデータが埋め込まれ、埋め込み画像データが生成される。
【0082】
一方、図9の復元処理によれば、埋め込み処理における操作ルールにしたがい、埋め込み画像データに対して、埋め込み処理における場合とは逆の操作が行われ、その操作後のデータの相関に基づいて、埋め込み処理において行われた操作が、いわば特定される。そして、その特定された操作にしたがい、埋め込み画像データが、元の画像データと被埋め込みデータが復元される。
【0083】
従って、図8の埋め込み処理における操作ルールは、画像データの相関性を利用して、被埋め込みデータが埋め込まれた埋め込み画像データを元に戻すことができる操作ルールであるということができるが、埋め込み処理では、このような操作ルールを採用することで、画像データの画質を劣化させることなく(最低限の劣化に抑えて)、かつデータ量を増加せずに、画像データに被埋め込みデータを埋め込むことができる。
【0084】
即ち、被埋め込みデータが埋め込まれた画素は、画像の相関性、即ち、ここでは、被埋め込みデータが埋め込まれなかった画素との間の相関を利用することにより、オーバヘッドなしで、元の画素と被埋め込みデータに復元(戻す)ことができる。従って、その結果得られる復元画像(復号画像)には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0085】
なお、図7乃至図9の実施の形態では、処理対象画素と、他の画素との間の相関を表す相関値として、それらの画素値の差分の絶対値の逆数を用いるようにしたが、相関値は、これに限定されるものではない。
【0086】
また、図7乃至図9の実施の形態では、画像データから、五の目格子状に、画素を選択し、その画素に、被埋め込みデータを埋め込むようにしたが、被埋め込みデータを埋め込む画素の選択パターンは、これに限定されるものではない。但し、被埋め込みデータを埋め込んだ画素の復元にあたっては、上述したように、被埋め込みデータが埋め込まれていない画素を用いて相関を求めるのが望ましく、また、画素どうしの相関は、基本的に、それらの間の空間的または時間的距離が離れるほど小さくなっていく。従って、正確な復元を行う観点からは、被埋め込みデータを埋め込む画素は、空間的または時間的に、いわゆる疎らになるように選択するのが望ましい。一方、多くの被埋め込みデータを埋め込む観点、即ち、圧縮率の観点からは、被埋め込みデータを埋め込む画素は、ある程度多くする必要がある。従って、被埋め込みデータを埋め込む画素は、復元の正確さと、圧縮率とをバランスさせて選択するのが望ましい。
【0087】
さらに、図7乃至図9の実施の形態では、処理対象画素として選択された1画素に、1ビットの被埋め込みデータを埋め込むようにしたが、1画素に、2ビット以上の被埋め込みデータを埋め込むようにすることも可能である。例えば、1画素に、2ビットの被埋め込みデータを埋め込む場合には、その2ビットの被埋め込みデータにしたがって、例えば、0,26,27,26+27のうちのいずれかを、画素値に加算するようにすれば良い。
【0088】
また、図7乃至図9の実施の形態では、画素値に、0または27のうちのいずれかを加算することで(画素値に、27を加算しないか、または加算することで)、被埋め込みデータを埋め込むようにしたが、画素値に加算する値は、27に限定されるものではない。但し、画素値の下位ビットにしか影響を与えないような値を加算する場合には、その加算値と、元の画素値とが、あまり異なったものとならず、従って、図9のステップS15で求められる相関値R1とR2も、あまり異なったものとならなくなる。これは、画素値および被埋め込みデータの復元結果の精度を劣化させることとなるから、被埋め込みデータにしたがって、画素値に加算する値は、元の画素値の上位ビットに影響を与えるような値とするのが望ましい。
【0089】
さらに、図7乃至図9の実施の形態では、画素値に、所定値を加算することで、被埋め込みデータの埋め込みを行うようにしたが、被埋め込みデータの埋め込みは、加算以外の操作(例えば、ビット反転や、前述した水平ラインのローテーションなど)を、画素値に施すことによって行うことも可能である。但し、上述したように、画素値および被埋め込みデータの復元結果の精度の劣化を防止する観点から、画素値に施す操作は、元の画像についての相関と、操作を施した画像についての相関とが大きく異なるようなものであることが望ましい。
【0090】
また、図7乃至図9の実施の形態では、処理対象画素として選択された1画素に、1ビットの被埋め込みデータを埋め込むようにしたが、複数画素に、1ビットの被埋め込みデータを埋め込むようにすることも可能である。即ち、近接する2画素以上に対して、1ビットの被埋め込みデータに対応する同一の操作を行うようにすることが可能である。
【0091】
次に、情報の連続性を利用した埋め込み処理と復元処理について説明する。
【0092】
例えば、画像データのある1水平ラインについて注目した場合に、その注目ラインにおいて、図10Aに示すような、画素値の変化パターンが連続している波形WAVE#1が観察されたとすると、その注目ラインと離れた他の水平ラインでは、注目ラインとは異なる画素値の変化パターンが観察される。従って、注目ラインと、その注目ラインと離れた他の水平ラインとにおいては、画素値の変化パターンが異なり、連続性においても偏りがある。即ち、画像のある部分の画素値の変化パターンに注目すると、その注目部分に隣接する部分には、同様の画素値の変化パターンが存在し、注目部分から離れるにつれて、異なる画素値の変化パターンが存在するという連続性の偏りがある。
【0093】
そこで、いま、図10Aに示した、画像データのある水平ラインにおける、画素値の変化パターンが連続している波形WAVE#1の一部を、例えば、図10Bに示すように、離れた水平ラインにおける波形WAVE#2と入れ替える。
【0094】
この場合、画像データの連続性の偏りが破壊される。しかしながら、近接する部分の画素値の変化パターンは連続しており、離れるほど、画素値の変化パターンが異なるという連続性の偏りを利用することにより、破壊された連続性の偏りを復元することができる。即ち、図10Bにおいて、波形の一部WAVE#2の画素値の変化パターンが、他の部分の画素値の変化パターンに比較して大きく異なっているのは、波形が有する本来の連続性の偏りからすれば、明らかに不自然であり、他の部分の画素値の変化パターンと異なっている部分WAVE#2は、他の部分の画素値の変化パターンと同様の波形に入れ替えるべきである。そして、そのような入れ替えを行うことで、連続性の偏りが復元され、これにより、図10Bに示した波形から、図10Aに示した元の波形を復元することができる。
【0095】
ここで、図10で説明した場合においては、波形の一部を、その周辺の画素値の変化パターンとは大きく異なる画素値の変化パターンの波形に入れ替えることが、画像データに対して、被埋め込みデータを埋め込むこととなる。また、その埋め込みに際して、例えば、波形のどの部分の画素値の変化パターンを入れ替えるのかや、画素値の変化パターンをどの程度大きく変化させるのかなどが、被埋め込みデータにしたがって決定される。一方、被埋め込みデータが埋め込まれた埋め込み画像データ(埋め込み符号化データ)、即ち、大きく異なる画素値の変化パターンを一部に有する波形を、周辺の画素値の変化パターンは連続しており、離れるほど、画素値の変化パターンが異なるという連続性の偏りを利用して、元の波形に戻すことが、その元の波形を復元することとなる。そして、その復元に際して、例えば、波形のどの部分の画素値の変化パターンが大きく変化していたのかや、画素値の変化パターンがどの程度大きく変化していたのかなど、即ち、埋め込み画像データを、どのような操作によって、元の画像データ(波形)に戻したかによって、画像データに埋め込まれていた被埋め込みデータが復元される。
【0096】
次に、図11は、埋め込み符号化器3において、画像の連続性を利用した埋め込みが行われる場合の埋め込み処理の例を示すフローチャートである。
【0097】
まず最初に、ステップS21において、埋め込み部22は、埋め込み対象データベース1に記憶された埋め込み対象データとしての1フレーム分の画像データを、フレームメモリ21にさせる。さらに、ステップS21では、埋め込み部22は、フレームメモリ21に記憶された画像データの連続領域を検出し、その連続領域の位置を示す連続領域データを、図示せぬワーク用のメモリ(以下、適宜、ワークメモリという)に記憶させる。
【0098】
即ち、例えば、いま、図12Aに示すような、横×縦が224(= 7×32)×1600画素からなる画像データを対象に、その連続領域を検出する場合には、埋め込み部22は、画像データを、例えば、32×1画素毎の画像ブロックに分割し、各画像ブロック毎にDCT(Discrete Cosine Transform)処理を施して、画像ブロック毎のDCT係数を算出する。
【0099】
さらに、埋め込み部22は、画像ブロックをラスタスキャン順にスキャンして、順次、注目ブロックとし、例えば、注目ブロックに対応するDCT係数と左隣の隣接画像ブロックの対応するDCT係数との差分の絶対値和を順に算出して、注目ブロックの連続性評価値としてワークメモリに記憶させる。また、埋め込み部22は、算出された連続性評価値(差分値)が所定閾値以下である画像ブロックを連続領域と認識し、その画像ブロックの位置をワークメモリに記憶させる。
【0100】
ここで、本来、連続領域とされるべき画像ブロックの一部がノイズ等の影響により連続領域ではないと判断される可能性もあるので、そのような判断が行われるのを防止するために、埋め込み部22は、連続領域の検出の後、補正処理を行い、連続領域に隣接する、非連続領域とされた画像ブロックを、連続領域の画像ブロックに変換する。即ち、補正処理によれば、例えば、2つの連続領域に挟まれた短い区間の非連続領域の画像ブロックや、連続領域に隣接する1つ(または少数)の非連続領域の画像ブロックが、連続領域の画像ブロックに変換され(連続領域の画像ブロックとみなされ)、これにより、2つの連続領域と、その間に挟まれていた領域(非連続領域の画像ブロック)が、全体として、1つの連続領域に補正され、あるいは、1つの連続領域と、それに隣接する非連続領域の画像ブロックが、全体として、1つの連続領域に補正される。
【0101】
その後、ステップS22に進み、埋め込み部22は、被埋め込みデータデータベース2から、被埋め込みデータを、例えば6ビット(3ビット+3ビット)ずつ受信し、ステップS23に進む。
【0102】
ステップS23では、埋め込み部22は、上述の6ビットの被埋め込みデータを埋め込む画素群としての処理対象画像を選択、抽出する。即ち、ステップS23では、例えば、フレームメモリ21に記憶された1フレームの画像データが、仮想的に、上半分と下半分の領域(以下、適宜、それぞれを、上領域と下領域という)に分割され、その上領域と下領域のそれぞれの、例えば上から同一の位置にある水平ラインの連続領域が選択、抽出される。
【0103】
具体的には、例えば、フレームメモリ21に記憶された1フレームの画像データが、例えば、図12Aに示すように、1600ラインの水平ラインで構成される場合には、第1水平ラインから第800水平ラインまでの領域が、上領域とされ、第801水平ラインから第1600水平ラインまでの領域が、下領域とされる。そして、フレームメモリ21に記憶された画像データについて、最初に、ステップ23の処理が行われる場合には、図12Aに斜線を付して示すように、上領域の第1行である第1水平ラインと、下領域の第1行である第801水平ラインの連続領域が選択、抽出される。
【0104】
なお、埋め込み部22は、ステップS21においてワークメモリに記憶された連続領域データを参照して、第1水平ラインと、第801水平ラインの連続領域のみを選択、抽出する。ここで、図12の実施の形態においては、第1水平ラインと、第801水平ラインの全領域が連続領域であるとして、選択、抽出されている。
【0105】
そして、ステップS24に進み、埋め込み部22は、処理対象画像である、例えば、第1水平ラインの画像と、第801の水平ラインの画像を入れ替えることにより、画像データに、被埋め込みデータを埋め込む。
【0106】
即ち、図12Bは、被埋め込みデータが埋め込まれる前の第1水平ラインの画像データの画素値を示している。また、図12Cは、被埋め込みデータが埋め込まれる前の第801水平ラインの画像データの画素値を示している。図12Bおよび図12Cに示すように、第1水平ラインの領域と第801水平ラインの領域では、画素値の変化パターン(周波数特性)が異なっている。
【0107】
例えば、いま、上位3ビットが2で、下位3ビットが6の6ビットの被埋め込みデータを、画像データに埋め込むこととすると、埋め込み部22は、上位3ビットの2を埋め込むため、図12Bに示した第1水平ラインの左から2ブロック目の画像ブロックを選択するとともに、下位3ビットの6を埋め込むため、図12Cに示した第801水平ラインの左からの6ブロック目の画像ブロックを選択する。さらに、埋め込み部22は、選択された第1水平ラインの2ブロック目の画像ブロックと、第801水平ラインの6ブロック目の画像ブロックを入れ替える操作を行う。これにより、第1水平ラインの画素値の変化パターンが、図12Bから図12Dに示すように変更されるとともに、第801水平ラインの画素値の変化パターンが、図12Cから図12Eに示すように変更され、第1水平ラインと第801水平ラインに、上位3ビットが2を表し、かつ下位3ビットが6を表す6ビットの被埋め込みデータが埋め込まれる。
【0108】
その後、ステップS25において、埋め込み部22は、被埋め込みデータが埋め込まれた第1水平ラインと第801水平ラインの画像データを、フレームメモリ21に書き込み(上書きし)、ステップS26に進む。
【0109】
ステップS26では、埋め込み部22は、フレームメモリ21に記憶された1フレームの画像データのすべての水平ラインに、被埋め込みデータを埋め込んだかどうかを判定する。ステップS26において、まだ、すべての水平ラインに、被埋め込みデータを埋め込んでいないと判定された場合、ステップS22に戻り、埋め込み部22は、新たな被埋め込みデータを受信し、ステップS23に進む。ステップS23では、埋め込み部22は、上領域と下領域から、次の水平ラインを選択し、即ち、いまの場合は、第2水平ラインと第802水平ラインを選択し、以下、同様の処理を繰り返す。
【0110】
一方、ステップS26において、フレームメモリ21に記憶された1フレームの画像データのすべての水平ラインに、被埋め込みデータを埋め込んだと判定された場合、即ち、ステップS23で、第1水平ラインと第801水平ラインのセットから、第800ラインと第1600ラインのセットまでが、処理対象画像として選択された場合、埋め込み部22は、フレームメモリ21に記憶された画像データ、即ち、被埋め込みデータが埋め込まれた画像データ(埋め込み画像データ)を読み出して出力させ、埋め込み処理を終了する。
【0111】
なお、図11の埋め込み処理は、フレームメモリ21に記憶された画像データを対象に、フレーム単位で繰り返し行われる。
【0112】
次に、図13は、画像の連続性を利用して、埋め込み対象データとしての画像データに対して被埋め込みデータが埋め込まれた埋め込み符号化データを復元する復元処理の例を示すフローチャートである。
【0113】
まず最初に、ステップS31において、復元部32は、1フレーム単位の埋め込み符号化データ(埋め込み画像データ)を、フレームメモリ31に記憶させる。さらに、ステップS31では、復元部32は、図11のステップS21における場合と同様にして、埋め込み符号化データの中から連続領域を抽出し、その画像ブロックの位置を、連続領域データとして、図示せぬワークメモリに記憶させる。
【0114】
ここで、本実施の形態では、図12で説明したことから、1水平ラインに3ビットの被埋め込みデータが埋め込まれるが、この埋め込みは、1水平ラインのうち1つの画像ブロックを、他の水平ラインの画像ブロックに変更する操作によって行われる。従って、1水平ラインを構成する画像ブロックのうちの、少なくとも1つは、被埋め込みデータの埋め込みのための変更操作によって非連続領域になっている。しかしながら、連続領域の抽出の際には、図11のステップ21で説明したように、補正処理が行われるため、被埋め込みデータの埋め込みのための変更操作によって非連続領域とされた画像ブロックは、連続領域に変換される(連続領域とみなされる)。
【0115】
その後、ステップS32に進み、復元部32は、ステップS31でワークメモリに記憶された連続領域データを参照して、図11のステップS23における場合と同様に、フレームメモリ31に記憶された1フレームの埋め込み画像データを、上領域と下領域に、仮想的に分割し、その上領域と下領域それぞれから、同一位置の水平ラインの連続領域を、順次、選択、抽出する。
【0116】
従って、フレームメモリ31に記憶された埋め込み画像データについて、ステップS32の処理が最初に行われる場合には、上領域の第1行である第1水平ラインと、下領域の第1行である第801水平ラインが選択される。ここで、図11のステップS23で説明したように、埋め込み対象データとしての画像データの第1水平ラインと、第801水平ラインの全領域(全画像ブロック)が、連続領域であるとすると、ステップS32では、第1水平ラインと、第801水平ラインの全領域が抽出される。
【0117】
そして、ステップS33に進み、復元部32は、ステップS32で上領域と下領域それぞれから抽出された第1水平ラインの連続領域と、第801水平ラインの連続領域を構成する、上述の32×1画素単位の画像ブロックを、例えばDCT処理し、これにより、画像データの連続性を評価する評価値としてのDCT係数を算出して、ステップS34に進む。
【0118】
ステップS34では、復元部32は、上領域から抽出された第1水平ラインの連続領域を構成する画像ブロックを、例えば、左側から、順次、注目ブロックとし、その注目ブロックについて、例えば、注目ブロックのDCT係数から、その左隣の画像ブロックのDCT係数を減算し、そのDCT係数の差分値の絶対値和を算出する。さらに、復元部32は、下領域から抽出された第801水平ラインの連続領域についても同様に、その連続領域を構成する画像ブロックを、順次、注目ブロックとし、その注目ブロックについて、DCT係数の差分値の絶対値和を算出する。そして、復元部32は、算出したDCT係数の差分値の絶対値和を、ワークメモリに記憶させる。
【0119】
なお、注目ブロックの左隣の画像ブロックが存在しない場合、即ち、ここでは、連続領域を構成する左端の画像ブロックが注目ブロックとされた場合、その注目ブロックについてのDCT係数の差分値の絶対値和は、例えば、0とされる。
【0120】
その後、ステップS35に進み、復元部32は、ワークメモリに記憶された2つの水平ラインそれぞれについて、その連続領域を構成する画像ブロックのDCT係数の差分値の絶対値和(差分絶対値和)が1番目に大きい画像ブロックと、2番目に大きい画像ブロックの2つの画像ブロックを検出し、その画像ブロックの位置をワークメモリに記憶させる。即ち、例えば、いま、ワークメモリに、第1水平ラインの連続領域を構成する画像ブロックについてのDCT係数の差分絶対値和と、第801ラインの連続領域を構成する画像ブロックについてのDCT係数の差分絶対値和が記憶されている場合には、第1水平ラインにおいて、DCT係数の差分絶対値和が1番目に大きい画像ブロック(以下、適宜、第1位の画像ブロックという)と、2番目に大きい画像ブロック(以下、適宜、第2位の画像ブロックという)が検出され、その第1位と第2位の画像ブロックの位置が、ワークメモリに記憶されるとともに、第801水平ラインにおいても、第1位の画像ブロックと、第2位の画像ブロックが検出され、その第1位と第2位の画像ブロックの位置が、ワークメモリに記憶される。
【0121】
そして、ステップS36に進み、復元部32は、ワークメモリに記憶された、2つの水平ラインそれぞれについての第1位および第2位の画像ブロックの位置に基づいて、6ビットの被埋め込みデータを復元して出力する。
【0122】
即ち、復元部32は、第1位と第2の画像ブロックが隣接し、かつ第1位と第2位の画像ブロックについてのDCT係数の差分絶対値和どうしが同程度の値(差分絶対値和どうしの差が所定の閾値以下)の場合、その隣接する第1位と第2の画像ブロックのうちの、左側に位置する画像ブロック位置を、図11の埋め込み処理によって被埋め込みデータを埋め込むのに入れ替えられた画像ブロックの位置(以下、適宜、埋め込み位置という)として、ワークメモリに記憶させるとともに、その埋め込み位置に対応する値を、被埋め込みデータの復元結果として出力する。
【0123】
具体的には、例えば、図11の埋め込み処理において、第1水平ラインの連続領域につき、図12Bおよび図12Dに示したように、その左から3番目の画像ブロックと、第801水平ラインの画像ブロックとの入れ替え操作が行われた場合、その左から2番目と3番目の画像ブロックについては、そのDCT係数の差分絶対値和が大きくなる。従って、第1水平ラインについては、図13のステップS35において、その左から3番目と4番目の2つの隣接する画像ブロックが、第1位と第2位の画像ブロック(または第2位と第1位の画像ブロック)として検出され、その左側に位置する画像ブロック、即ち、左から3番目の画像ブロックの位置(埋め込み位置)に基づいて、上述の6ビットの被埋め込みデータのうちの上位3ビットが、2(=3−1)に復元される。
【0124】
また、例えば、図11の埋め込み処理において、第801水平ラインの連続領域につき、図12Cおよび図12Eに示したように、その左から7番目の画像ブロックと、第1水平ラインの画像ブロックとの入れ替え操作が行われた場合、その左から7番目と8番目の画像ブロックについては、そのDCT係数の差分絶対値和が大きくなる。従って、第801水平ラインについては、図13のステップS35において、その左から7番目と8番目の2つの隣接する画像ブロックが、第1位と第2位の画像ブロック(または第2位と第1位の画像ブロック)として検出され、その左側に位置する画像ブロック、即ち、左から7番目のブロックの位置(埋め込み位置)に基づいて、上述の6ビットの被埋め込みデータのうちの下位3ビットが、6(=7−1)に復元される。
【0125】
ここで、図11の埋め込み処理において、水平ラインの連続領域の左端の画像ブロックまたは右端の画像ブロックが、他の水平ラインの画像ブロックと入れ替えられることにより、被埋め込みデータが埋め込まれている場合には、DCT係数の差分絶対値和は、その入れ替えが行われた画像ブロックについてのみ、ある程度大きくなり、他のブロックについては、それほど大きくならない。このため、復元部32は、第1位と第2位の画像ブロックの位置が隣接していない場合、または第1位と第2位の画像ブロックについてのDCT係数の差分絶対値和どうしが同程度の値でない場合(差分絶対値和どうしの差が所定の閾値以上の場合)には、第1位の画像ブロックの位置に基づき、被埋め込みデータを復元する。即ち、この場合、第1位の画像ブロックが、左端または右端の画像ブロックであるとき、被埋め込みデータとして、0または7が、それぞれ復元される。
【0126】
以上のようにして、埋め込み位置に基づいて、被埋め込みデータが復元されると、ステップS37に進み、復元部32は、ステップS35においてワークメモリに記憶された、6ビットの被埋め込みデータを復元するのに用いられた2つの埋め込み位置にしたがい、フレームメモリ31に記憶された埋め込み画像データの、ステップS32で選択された2つの水平ラインにおける画像ブロックの位置を入れ替える。
【0127】
即ち、例えば、図11の埋め込み処理において、図12で説明したように、上領域の第1行である第1水平ラインの左から3番目の画像ブロックと、下領域の第1行である第801ラインの左から7番目の画像ブロックとが入れ替えられた場合には、図13のステップS35において、第1水平ラインについては、左から3番目を表す埋め込み位置が記憶され、第801水平ラインについては、左から7番目を表す埋め込み位置が記憶される。従って、この場合、ステップ37では、第1水平ラインの左から3番目の画像ブロックと、第801水平ラインの左から7番目の画像ブロックとが入れ替えられ、これにより、第1水平ラインおよび第801水平ラインが復元される。
【0128】
その後、復元部32は、復元した2つの水平ラインを、フレームメモリ31に上書きする形で書き込み、ステップS38に進む。ステップS38では、復元部32は、フレームメモリ31に記憶された1フレームの埋め込み画像データについて、埋め込み対象データとしての画像データと、そこに埋め込まれている被埋め込みデータの復元が終了したか否かを判定する。ステップS38において、フレームメモリ31に記憶された1フレームの埋め込み画像データについての復元が終了していないと判定された場合、ステップS32に戻り、フレームメモリ31に記憶された埋め込み画像データにおける上領域と下領域それぞれから、次の行の水平ラインが選択され、以下、同様の処理が繰り返される。
【0129】
また、ステップS38において、フレームメモリ31に記憶された1フレームの埋め込み画像データについての復元が終了したと判定された場合、ステップS39に進み、復元部32は、フレームメモリ31に記憶された画像データ、即ち、復元された埋め込み対象データとしての画像データを出力させ、処理を終了する。
【0130】
なお、図13の実施の形態によれば、埋め込み対象データとしての画像データは、2つの水平ラインごとに、即ち、その上領域と下領域それぞれの同一行の水平ラインごとに復元される。従って、復元された画像データは、上述のように、フレームメモリ31に記憶された1フレームの画像データすべてが復元された後に出力することもできるが、復元単位である2つの水平ラインが復元されるごとに出力することも可能である。
【0131】
以上のように、被埋め込みデータが埋め込まれた画像データである埋め込み画像データを、画像の連続性を利用して、元の画像データと被埋め込みデータに復元するようにしたので、その復元のためのオーバヘッドがなくても、埋め込み画像データを、元の画像データと被埋め込みデータに復元することができる。従って、その復元画像(復号画像)には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0132】
即ち、図11の埋め込み処理によれば、1の水平ラインにおける、6ビットの被埋め込みデータの上位3ビットに対応する位置の画像ブロックと、他の1つの水平ラインにおける、6ビットの被埋め込みデータの下位3ビットに対応する位置の画像ブロックとを入れ替えるという操作ルールにしたがい、画像データに対して、被埋め込みデータが埋め込まれ、埋め込み画像データが生成される。
【0133】
一方、図13の復元処理によれば、埋め込み画像データのDCT係数を、連続性の評価値として、その連続性を利用し、埋め込み処理における操作ルールにしたがって、埋め込み画像データに対して、埋め込み処理における場合とは逆の操作が行われる。そして、その操作によって、埋め込み画像データが、元の画像データと被埋め込みデータが復元される。
【0134】
従って、図11の埋め込み処理における操作ルールは、画像データの連続性を利用して、被埋め込みデータが埋め込まれた埋め込み画像データを元に戻すことができる操作ルールであるということができるが、埋め込み処理では、このような操作ルールを採用することで、画像データの画質を劣化させることなく(最低限の劣化に抑えて)、かつデータ量を増加せずに、画像データに被埋め込みデータを埋め込むことができる。
【0135】
なお、上述の場合には、埋め込み画像データのDCT係数を、連続性の評価値として用いるようにしたが、連続性の評価値としては、DCT係数以外のものを使用することが可能である。
【0136】
次に、情報の相似性を利用した埋め込み処理と復元処理について説明する。
【0137】
例えば、風景を撮影した画像等の一部は、画像のフラクタル性(自己相似性)を利用して生成することができることが知られている。そして、例えば、図14Aに示すような、海R1と森R2が表示されている画像においては、海R1全体の画素値の変化パターン(例えば、エッジ形状)と、その海R1の一部の画素値の変化パターンとの相似性は高いが、それらの変化パターンと、海R1から離れた森R2の画素値の変化パターンとの相似性は低いという相似性の偏りがある。
【0138】
そこで、いま、図14Aに示した海R1の一部R3と、森R2の一部R4とを入れ替える。
【0139】
この場合、画像の相似性の偏りが破壊され、図14Bに示すような画像が得られる。しかしながら、近接する部分の画素値の変化パターンは相似性が高く、離れるほど、画素値の変化パターンの相似性が低くなるという相似性の偏りを利用することにより、破壊された相似性の偏りを復元することができる。即ち、図14Bにおいて、海R1の画像の一部が、海R1と相似性の低い森R2の画像の一部R4になっていること、および森R2の画像の一部が、森R2と相似性の低い海R1の画像の一部R3となっていることは、画像が有する本来の相似性の偏りからすれば、明らかに不自然である。具体的には、図14Bにおいて、海R1の画像の中の、森R2の画像の一部R4についての相似性は、海R1の他の部分についての相似性に比較して極端に低くなっており、また、森R2の画像の中の、海R1の画像の一部R3についての相似性も、森R2の他の部分についての相似性に比較して極端に低くなっている。一方、海R1の中にある森R2の一部R4と、森R2との相似性、および森R2の中にある海R1の一部R3と、海R1の相似性は、いずれも高い。
【0140】
従って、画像が本来有する相似性の偏りからすれば、海R1の画像の一部となっている、森R2の画像の一部R4と、森R2の画像の一部となっている、海R1の画像の一部R3とは入れ替えるべきである。そして、そのような入れ替えを行うことで、画像の相似性の偏りが復元され、これにより、図14Bに示した画像から、図14Aに示した元の画像を復元することができる。
【0141】
ここで、図14で説明した場合においては、埋め込み対象データとしての海R1の画像の一部R3と、森R2の画像の一部R4とを入れ替えることが、被埋め込みデータを、埋め込み対象データに埋め込むことになる。また、その埋め込みに際して、例えば、海R1の画像のどの部分(画面上の位置)と、森R2の画像のどの部分とを入れ替えるのかなどが、被埋め込みデータにしたがって決定されることになる。一方、被埋め込みデータが埋め込まれた埋め込み画像データ(埋め込み符号化データ)、即ち、海R1の一部が、森R2の一部R4となっているとともに、森R2の一部が、海R1の一部R3となっている画像を、周辺の画素値の変化パターンの相似性は高く、離れるほど、画素値の変化パターンの相似性が低くなっていくという相似性の偏りを利用して、元の画像に戻すことが、その元の画像を復元することとなる。そして、その復元に際して、例えば、海の画像のどの部分と、森の画像のどの部分とが入れ替えられていたのかなど、即ち、埋め込み画像データを、どのような操作によって元の画像データに戻したかによって、画像データに埋め込まれていた被埋め込みデータを復元される。
【0142】
次に、図15を参照して、相似性について、さらに説明する。
【0143】
いま、例えば、図15Aに示すようなフラクタル画像を埋め込み対象データとして、そこに被埋め込みデータを埋め込むとした場合、被埋め込みデータに対応して、フラクタル画像の一部が、そのフラクタル画像とは相似でない画像に入れ替えられることで、フラクタル画像への被埋め込みデータの埋め込みが行われる。即ち、図15Aでは、樹木の葉の形状をしたフラクタル画像が埋め込み対象データとされているが、被埋め込みデータの埋め込みは、そのフラクタル画像の一部が、例えば、図15Bに示すように、三角形に入れ替えられることで行われる。即ち、図15では、図15BにおいてD1およびD2で示す部分が三角形になっており、このように、三角形に入れ替えられるフラクタル画像の位置や、フラクタル画像と入れ替える三角形の大きさ、数などが、被埋め込みデータにしたがって決定される。
【0144】
一方、上述のようにして、被埋め込みデータが埋め込み対象データとしてのフラクタル画像に埋め込まれた埋め込み符号化データは、例えば、次のようにして、フラクタル画像と被埋め込みデータとに復元される。即ち、例えば、図15Bにおいて、点線の四角形で囲んである部分については、三角形との入れ替えを行わないこととしておき、その点線の四角形で囲んである部分を、教師画像として、その教師画像と相似でない部分(ここでは、三角形)が検索される。さらに、教師画像と相似でない部分である三角形が、教師画像に含まれる、フラクタル画像の基準図形から生成される画像(フラクタル画像)に入れ替えられ、これにより、元のフラクタル画像(図15A)が復元される。そして、検索された三角形の位置や、大きさ、数などに基づいて、埋め込まれた被埋め込みデータが復元される。
【0145】
なお、上述の場合においては、教師画像に含まれる、フラクタル画像の基準図形を検出する必要があるが、これは、例えば、次のようにして行われる。即ち、図15Bの画像のうちの、教師画像と、それ以外の部分との相似性、および教師画像の自己相似性に基づいて、図15Bの画像を対象に、フラクタル画像の基準図形が検索され、教師画像以外の部分を、最も効率良く表すことができる図形が、基準図形として検出される。
【0146】
また、図15の実施の形態では、元のフラクタル画像の生成規則が認識されており、その生成規則に基づいて、三角形と入れ替える画像が、基準図形を用いて生成されるものとする。即ち、埋め込み対象データとしてのフラクタル画像と被埋め込みデータの復元時においては、三角形と入れ替える画像を生成するための、基準図形の大きさや、位置、回転量などが、生成規則に基づいて特定され、その特定された基準図形の大きさや、位置、回転量などにしたがって、基準図形が操作され、三角形と入れ替える画像(フラクタル画像)が生成されるものとする。
【0147】
次に、図16は、埋め込み符号化器3において、画像の相似性を利用した埋め込みが行われる場合の処理の例を示すフローチャートである。
【0148】
ステップS51において、埋め込み部22は、埋め込み対象データベース1から1フレーム分の画像データを、フレームメモリ21に転送して記憶させ、さらに、画像データの相似領域を検出し、その相似領域の位置を示す相似領域データを、ワークメモリに記憶させる。
【0149】
即ち、例えば、図17Aに示すような、56×1600画素からなるフラクタル画像を、埋め込み対象データとして、被埋め込みデータの埋め込みを行う場合には、埋め込み部22は、まず、その56×1600画素からなるフラクタル画像を、例えば、8×8画素毎の画像ブロックに分割し、その画像ブロックを、順次、注目ブロックとする。さらに、埋め込み部22は、注目ブロックを構成する画素を、例えば、ラスタスキャン順にスキャンし、注目ブロックと、その左右に隣接する画像ブロックである2つの周辺画像ブロックそれぞれとの相似性を算出する。
【0150】
具体的には、埋め込み部22は、注目ブロックの大きさ、位置、回転量を所定量だけ変更しながら、その注目ブロックと、左隣または右隣の画像ブロック(周辺画像ブロック)それぞれとのマッチングを行い、これにより、例えば、注目ブロックを構成する各画素と、周辺画像ブロックを構成する対応する画素との差分絶対値和の逆数を、マッチング度として求める。さらに、埋め込み部22は、注目ブロックと、2つの周辺画像ブロックそれぞれとの2つのマッチング度を平均し、その平均値を、注目ブロックの周辺との相似性を表す評価値(相似性評価値)として、ワークメモリに記憶させる。ここで、左端または右端の画像ブロックが、注目ブロックのときは、その左側または右側には、周辺画像ブロックが存在しないため、例えば、右側または左側の周辺画像ブロックとの間で求められた1つのマッチング度を、そのまま注目ブロックの相似性評価値とすることとする。埋め込み部22は、算出された相似性評価値(マッチング度)が所定に閾値以上となった画像ブロックを相似領域として認識し、その画像ブロックの位置を、ワークメモリに記憶させる。
【0151】
ここで、本来、相似領域とされるべき画像ブロックの一部がノイズ等の影響により相似領域ではないと判断される可能性もあるので、そのような判断が行われるのを防止するために、埋め込み部22は、相似領域の検出の後、補正処理を行い、相似領域に隣接する、非相似領域とされた画像ブロックを、相似領域の画像ブロックに変換する。即ち、補正処理によれば、例えば、2つの相似領域に挟まれた短い区間の非相似領域の画像ブロックや、相似領域に隣接する1つ(または少数)の非相似領域の画像ブロックが、相似領域の画像ブロックに変換され(相似領域の画像ブロックとみなされ)、これにより、2つの相似領域と、その間に挟まれていた領域(非相似領域の画像ブロック)が、全体として、1つの相似領域に補正され、あるいは、1つの相似領域と、それに隣接する非相似領域の画像ブロックが、全体として、1つの相似領域に補正される。
【0152】
次に、ステップS52において、埋め込み部22は、被埋め込みデータベース2から、被埋め込みデータを、例えば、6ビット(3ビット+3ビット)ずつ受信する。
【0153】
そして、ステップS53において、埋め込み部22は、上述の6ビットの被埋め込みデータを埋め込む画像ブロック群としての処理対象画像を選択、抽出する。即ち、ステップS53では、例えば、フレームメモリ21に記憶された1フレームの画像データが、仮想的に、上半分と下半分の領域(上領域と下領域)に分割され、その上領域と下領域のそれぞれの、例えば上から同一の行にある相似領域が選択、抽出される。
【0154】
具体的には、例えば、フレームメモリ21に記憶された1フレームの画像データが、例えば、図17Aに示すように、1600ラインの水平ラインで構成され、ステップS51で8×8画素の画像ブロックに分割された場合には、第1行から第100行までの画像ブロックの領域が、上領域とされ、第101行から第200行までの画像ブロックの領域が、下領域とされる。そして、フレームメモリ21に記憶された画像データについて、最初に、ステップ53の処理が行われる場合には、上領域の第1行の画像ブロックと、下領域の第1行の画像ブロックの相似領域が選択、抽出される。
【0155】
なお、埋め込み部22は、ステップS51においてワークメモリに記憶された連続領域データを参照して、第1行の画像ブロックと、第101行の画像ブロックの相似領域のみを選択、抽出する。ここで、図17の実施の形態においては、第1行と、第101行の全画像ブロックが相似領域であるとして、選択、抽出されている。
【0156】
その後、ステップS54に進み、埋め込み部22は、例えば、処理対象画像である、第1行の画像ブロックのうちの1つと、第101行の画像ブロックのうちの1つを入れ替えることにより、フレームメモリ21に記憶された画像データに被埋め込みデータを埋め込む。
【0157】
即ち、図17Aは、被埋め込みデータが埋め込まれる前の埋め込み対象データとしての画像データを示しており、図17Bは、被埋め込みデータが埋め込まれた後の埋め込み符号化データを示している。
【0158】
図17Aの埋め込み対象データにおいては、第1行の画像ブロックの領域と第101行の画像ブロックの領域とで、画素値の変化パターン、すなわち、画像ブロック内の図形の相似性が異なっている。
【0159】
いま、例えば、上位3ビットが2で、下位3ビットが6となっている6ビットの被埋め込みデータを、第1行と第101行の画像ブロックに埋め込むものとすると、埋め込み部22は、6ビットの被埋め込みデータのうちの上位3ビットの2に対応して、図17Aの第1行の左から3番目の画像ブロックを選択するとともに、6ビットの被埋め込みデータのうちの下位3ビットの6に対応して、図17Aの第101行の左から7番目の画像ブロックを選択する。さらに、埋め込み部22は、選択した第1行の左から3番目の画像ブロックと、第101行の左から7番目の画像ブロックとを入れ替え、これにより、図17Bに示すように、6ビットの被埋め込みデータを、第1行と第101行の画像ブロックに埋め込む。
【0160】
ここで、左から、i番目の画像ブロックを、以下、適宜、第i画像ブロックという。
【0161】
ステップS54において、被埋め込みデータを埋め込んだ後は、ステップS55に進み、埋め込み部22は、被埋め込みデータを埋め込んだ第1行の画像ブロックと、第101行の画像ブロックを、フレームメモリ21に上書きする形で書き込み、ステップS56に進む。
【0162】
ステップS56では、埋め込み部22は、フレームメモリ21に記憶された1フレームの画像データのすべての画像ブロックの行に、被埋め込みデータを埋め込んだかどうかを判定する。ステップS56において、まだ、すべての画像ブロックの行に、被埋め込みデータを埋め込んでいないと判定された場合、ステップS52に戻り、埋め込み部22は、新たな被埋め込みデータを受信し、ステップS53に進む。ステップS53では、埋め込み部22は、上領域と下領域から、次の行の画像ブロックを選択し、即ち、いまの場合は、第2行の画像ブロックと第102行の画像ブロックを選択し、以下、同様の処理を繰り返す。
【0163】
一方、ステップS56において、フレームメモリ21に記憶された1フレームの画像データのすべての画像ブロックの行に、被埋め込みデータを埋め込んだと判定された場合、即ち、ステップS53で、第1行と第101行の画像ブロックのセットから、第100行と第200行の画像ブロックのセットまでが、処理対象画像として選択された場合、埋め込み部22は、フレームメモリ21に記憶された画像データ、即ち、被埋め込みデータが埋め込まれた画像データ(埋め込み画像データ)を読み出して出力させ、埋め込み処理を終了する。
【0164】
なお、図16の埋め込み処理は、埋め込み対象データとしての画像データのフレームを対象として、適宜、繰り返し行われる。
【0165】
次に、図18は、画像の相似性を利用して、埋め込み対象データとしての画像データに対して被埋め込みデータが埋め込まれた埋め込み符号化データを復元する復元処理の例を示すフローチャートである。
【0166】
まず最初に、ステップS61において、復元部32は、1フレーム単位の埋め込み符号化データ(埋め込み画像データ)を、フレームメモリ31に順次記憶させる。さらに、ステップS31では、復元部32は、図16のステップS51における場合と同様にして、埋め込み符号化データの中から相似領域を抽出し、その画像ブロックの位置を、相似領域データとして、図示せぬワークメモリに記憶させる。
【0167】
ここで、本実施の形態では、図17で説明したことから、画像ブロックの1行に3ビットの被埋め込みデータが埋め込まれるが、この埋め込みは、1行を構成する画像ブロックのうちの1つの画像ブロックを変更する操作(入れ替える操作)によって行われる。従って、1行を構成する画像ブロックのうちの、少なくとも1つは、被埋め込みデータの埋め込みのための変更操作によって非相似領域になっている。しかしながら、相似領域の抽出の際には、図16のステップ51で説明したように、補正処理が行われるため、被埋め込みデータの埋め込みのための変更操作によって非相似領域とされた画像ブロックは、相似領域に変換される(相似領域とみなされる)。従って、ステップS31で抽出される相似領域には、図16の埋め込み処理で入れ替えが行われた画像ブロックが含まれる。
【0168】
その後、ステップS62に進み、復元部62は、ステップS61でワークメモリに記憶された相似領域データを参照して、図16のステップS53における場合と同様に、フレームメモリ31に記憶された1フレームの埋め込み画像データを、上領域と下領域に、仮想的に分割し、その上領域と下領域それぞれから、同一行の画像ブロックの相似領域を、順次、選択、抽出する。
【0169】
従って、フレームメモリ31に記憶された埋め込み画像データについて、ステップS62の処理が最初に行われる場合には、上領域の第1行と、下領域の第1行が選択される。ここで、図16のステップS53で説明したように、埋め込み対象データとしての画像データの第1行の画像ブロックと、第101行の画像ブロックのすべてが、相似領域であるとすると、ステップS62では、第1行と、第101行の全画像ブロックが、相似領域であるとして抽出される。
【0170】
そして、ステップS63に進み、復元部62は、図16のステップS51で説明した場合と同様にして、ステップS62で上領域と下領域それぞれから抽出された第1行の相似領域と、第101行の相似領域を構成する8×8画素単位の画像ブロックを、順次、注目ブロックとし、その注目ブロックについて、周辺画像ブロックとの間でマッチングを行う。これにより、復元部62は、注目ブロックについて、周辺画像ブロックとの間のマッチング度を求め、さらに、そのマッチング度から、図16および図17で説明した場合と同様にして、相似性評価値を求める。
【0171】
なお、上述の場合には、注目ブロックと左右の画像ブロック(周辺画像ブロック)それぞれのマッチング度の平均値を、注目ブロックの相似性評価値とするようにしたが、その他、例えば、注目ブロックと左右の画像ブロックそれぞれのマッチング度のうちの大きい方または小さい方を、相似性評価値として採用するようにすることも可能である。
【0172】
復元部62は、上述したようにして、上領域と下領域それぞれから抽出された第1行の相似領域と、第101行の相似領域を構成する画像ブロックそれぞれの相似性評価値を求めると、その相似性評価値を、ワークメモリに記憶させ、ステップS65に進む。
【0173】
ステップS65では、復元部32は、ワークメモリに記憶された2行(上領域の1行と、その行に対応する下領域の1行の、合計2行)の画像ブロックの相似領域それぞれから、相似性評価値が最大の画像ブロックを検出し、その画像ブロックの位置を、ワークメモリに記憶させる。即ち、例えば、いま、ワークメモリに、第1行の相似領域を構成する画像ブロックについての相似性評価値と、第101行の相似領域を構成する画像ブロックについての相似性評価値が記憶されている場合には、第1行において、相似性評価値が最大の画像ブロック(以下、適宜、最大相似性画像ブロックという)と、第101行において、最大相似性画像ブロックが検出され、その最大相似性画像ブロックの位置が、ワークメモリに記憶される。
【0174】
そして、ステップS66に進み、復元部32は、ワークメモリに記憶された、2行それぞれの最大相似性画像ブロックの位置に基づいて、6ビットの被埋め込みデータを復元して出力する。
【0175】
即ち、復元部32は、上領域または下領域の行の最大相似性画像ブロックが、第i画像ブロックである場合、i−1を、6ビットの被埋め込みデータの上位3ビットまたは下位3ビットとして、それぞれ復元し、さらに、その上位3ビットと下位3ビットから、6ビットの被埋め込みデータを構成して出力する。
【0176】
ここで、例えば、図17Bに示した場合では、第1行の最大相似性画像ブロックは、第3画像ブロックとなり、第101行の最大相似性画像ブロックは、第7画像ブロックとなる。従って、6ビットの被埋め込みデータの上位3ビットと下位3ビットは、それぞれ2と6になる。
【0177】
以上のようにして、最大相似性画像ブロックの位置に基づいて、被埋め込みデータが復元されると、ステップS67に進み、復元部32は、ステップS65においてワークメモリに記憶された、6ビットの被埋め込みデータを復元するのに用いた2つの最大相似性画像ブロックの位置にしたがい、フレームメモリ31に記憶された埋め込み画像データの、ステップS62で選択された2行の画像ブロックの位置を入れ替える。
【0178】
即ち、例えば、図16の埋め込み処理において、図17で説明したように、上領域の第1行の第3画像ブロックと、下領域の第1行(全体の第101行)の第7画像ブロックとが入れ替えられた場合には、図18のステップS65において、第1行については、第3画像ブロックの位置が記憶され、第101行については、第7画像ブロックの位置が記憶される。従って、この場合、ステップ67では、第1行の第3画像ブロックと、第101行の第7画像ブロックとが入れ替えられ、これにより、第1行および第101行の画像データが復元される。
【0179】
その後、復元部32は、復元した2行の画像データ(画像ブロック)を、フレームメモリ31に上書きする形で書き込み、ステップS68に進む。ステップS68では、復元部32は、フレームメモリ31に記憶された1フレームの埋め込み画像データについて、埋め込み対象データとしての画像データと、そこに埋め込まれている被埋め込みデータの復元が終了したか否かを判定する。ステップS68において、フレームメモリ31に記憶された1フレームの埋め込み画像データについての復元が終了していないと判定された場合、ステップS62に戻り、フレームメモリ31に記憶された埋め込み画像データにおける上領域と下領域それぞれから、次の行の画像ブロックが選択され、以下、同様の処理が繰り返される。
【0180】
また、ステップS68において、フレームメモリ31に記憶された1フレームの埋め込み画像データについての復元が終了したと判定された場合、ステップS69に進み、復元部32は、フレームメモリ31に記憶された画像データ、即ち、復元された埋め込み対象データとしての画像データを出力させ、処理を終了する。
【0181】
なお、図18の実施の形態においても、図13の実施の形態における場合と同様に、復元された画像データは、フレームメモリ31に記憶された1フレームの画像データすべてが復元された後に出力することもできるし、復元単位である2行の画像ブロックが復元されるごとに出力することも可能である。
【0182】
以上のように、被埋め込みデータが埋め込まれた画像データである埋め込み画像データを、画像の相似性を利用して、元の画像データと被埋め込みデータに復元するようにしたので、その復元のためのオーバヘッドがなくても、埋め込み画像データを、元の画像データと被埋め込みデータに復元することができる。従って、その復元画像(復号画像)には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0183】
即ち、図16の埋め込み処理によれば、1行の画像ブロックにおける、6ビットの被埋め込みデータの上位3ビットに対応する位置の画像ブロックと、他の行を構成する、6ビットの被埋め込みデータの下位3ビットに対応する位置の画像ブロックとを入れ替えるという操作ルールにしたがい、画像データに対して、被埋め込みデータが埋め込まれ、埋め込み画像データが生成される。
【0184】
一方、図18の復元処理によれば、埋め込み画像データのマッチング度を、相似性の評価値として、その相似性を利用し、埋め込み処理における操作ルールにしたがって、埋め込み画像データに対して、埋め込み処理における場合とは逆の操作が行われる。そして、その操作によって、埋め込み画像データが、元の画像データと被埋め込みデータが復元される。
【0185】
従って、図16の埋め込み処理における操作ルールは、画像データの相似性を利用して、被埋め込みデータが埋め込まれた埋め込み画像データを元に戻すことができる操作ルールであるということができるが、埋め込み処理では、このような操作ルールを採用することで、画像データの画質を劣化させることなく(最低限の劣化に抑えて)、かつデータ量を増加せずに、画像データに被埋め込みデータを埋め込むことができる。
【0186】
なお、上述の場合には、相似性評価値として、埋め込み画像データのマッチング度を用いるようにしたが、相似性評価値としては、マッチング度以外のものを使用することが可能である。
【0187】
以上のように、埋め込み符号化器3において、埋め込み対象データとしての画像データが有するエネルギの偏りを利用して復元を行うことができるように操作を行う操作ルールにしたがい、画像データを、被埋め込みデータに対応して操作することにより、画像データに被埋め込みデータを埋め込み、埋め込み符号化データを出力する場合には、復元器6では、その埋め込み符号化データを、画像データが有するエネルギの偏りを利用することにより、復元のためのオーバヘッドなしで、元の画像データおよび被埋め込みデータに復元することができる。
【0188】
また、埋め込み対象データとしての画像データには、被埋め込みデータが埋め込まれることで、その埋め込みの結果得られる埋め込み画像データ(埋め込み符号化データ)は、元の画像データと異なる画像とされ、人が価値ある情報として認識することのできる画像ではなくなることから、埋め込み対象データとしての画像データについては、オーバヘッドなしの暗号化を実現することができる。
【0189】
さらに、完全可逆の電子透かしを実現することができる。即ち、従来の電子透かしでは、例えば、画質にあまり影響のない画素値の下位ビットが、電子透かしに対応する値に、単に変更されていたが、この場合、その下位ビットを、元の値に戻すことは困難である。従って、復元画像の画質は、電子透かしとしての下位ビットの変更により、少なからず劣化する。これに対して、埋め込み符号化データを、埋め込み対象データとしての画像データが有するエネルギの偏りを利用して復元する場合には、劣化のない元の画像データおよび被埋め込みデータを得ることができ、従って、被埋め込みデータを電子透かしとして用いることで、電子透かしに起因して復元画像の画質が劣化することはない。
【0190】
また、埋め込み対象データに埋め込まれた被埋め込みデータは、埋め込み符号化データから埋め込み対象データを復元することで取り出す(復元する)ことができるので、埋め込み対象データとともに、オーバヘッドなしでサイドインフォメーションを提供することができる。言い換えれば、被埋め込みデータを取り出すためのオーバヘッドなしで、その被埋め込みデータを埋め込み対象データに埋め込むことができるので、その埋め込みの結果得られる埋め込み符号化データは、被埋め込みデータの分だけ圧縮(埋め込み圧縮)されているということができる。従って、例えば、ある画像の半分を埋め込み対象データとするとともに、残りの半分を被埋め込みデータとすれば、埋め込み対象データである半分の画像に、残りの半分の画像を埋め込むことができるから、この場合、画像は、単純には、1/2に圧縮されることになる。
【0191】
さらに、埋め込み符号化データは、情報が有するエネルギの偏りという、いわば統計量を利用して復元されるため、誤りに対する耐性の強いものとなる。即ち、ロバスト性の高い符号化であるロバスト符号化(統計的符号化)を実現することができる。
【0192】
また、例えば、画像データを埋め込み対象データとする一方、被埋め込みデータとして、画像データとは異なるメディアの、例えば、音声データを用いるようにすることで、音声をキーとして、画像データの提供を行うようなことが可能となる。即ち、図2の符号化装置11側において、例えば、契約者が発話した音声「開けゴマ」など被埋め込みデータとして、埋め込み対象データである画像データに埋め込んでおき、復元装置12側では、ユーザに、音声「開けゴマ」を発話してもらい、その音声と、画像データに埋め込まれた音声とを用いて話者認識を行うようにする。このようにすることで、例えば、話者認識の結果、ユーザが契約者である場合にのみ、自動的に、画像を提示するようなことが可能となる。なお、この場合、被埋め込みデータとしての音声は、いわゆる特徴パラメータではなく、音声波形そのものを用いることが可能である。
【0193】
また、例えば、音声データを埋め込み対象データとする一方、被埋め込みデータとして、音声とは異なるメディアの、例えば、画像データを用いるようにすることで、画像をキーとして、音声の提供を行うようなこと(例えば、顔認識後の音声応答)が可能となる。即ち、図2の符号化装置11側において、例えば、ユーザへの応答としての音声に、そのユーザの顔の画像を埋め込み、復元装置12側では、ユーザの顔を撮影し、その結果得られる画像とマッチングする顔画像が埋め込まれている音声を出力するようにすることで、ユーザごとに異なる音声応答を行う音声応答システムを実現することが可能となる。
【0194】
さらに、音声に、音声を埋め込んだり、画像に、画像を埋め込んだりするような、あるメディアの情報に、それと同一メディアの情報を埋め込むようなことも可能である。あるいは、また、画像に、契約者の音声と顔画像を埋め込んでおけば、ユーザの音声と顔画像とが、画像に埋め込まれているものと一致するときのみ、その画像を提示するようにする、いわば二重鍵システムなどの実現も可能となる。
【0195】
また、例えば、テレビジョン放送信号を構成する、いわば同期した画像と音声のうちのいずれか一方に、他方を埋め込むようなことも可能であり、この場合、異なるメディアの情報どうしを統合した、いわば統合符号化を実現することができる。
【0196】
さらに、埋め込み処理では、上述したように、情報には、そのエネルギの偏りに特徴があるほど、多くの被埋め込みデータを埋め込むことができる。従って、例えば、ある2つの情報について、エネルギの偏りに特徴がある方を適応的に選択し、その選択した方に、他方を埋め込むようにすることで、全体のデータ量を制御することが可能となる。即ち、2つの情報どうしの間で、一方の情報によって、他方の情報量を、いわば吸収するようなことが可能となる。そして、このように全体のデータ量を制御することができる結果、伝送路の伝送帯域や使用状況、その他の伝送環境にあったデータ量による情報伝送(環境対応ネットワーク伝送)が可能となる。
【0197】
また、例えば、画像に、その画像を縮小した画像を埋め込むことで(あるいは、音声に、その音声を間引いたものを埋め込むことで)、データ量を増加することなく、いわゆる階層符号化(下位階層の情報量を少なくすることにより、上位階層の情報を生成する符号化)を実現することができる。
【0198】
さらに、例えば、画像に、その画像を検索するためのキーとなる画像を埋め込んでおくことで、そのキーとなる画像に基づいて、画像の検索を行うデータベースを実現することが可能となる。
【0199】
以上のように、情報が有するエネルギ(の偏り)を表すものとしては、相関性、連続性、相似性などがあるが、以下においては、説明を簡単にするため、例えば、相関性にのみ注目して、説明を行う。そこで、まず、埋め込み対象データとして、画像データを用い、その画像データの相関性を利用する埋め込み処理と復元処理の他の例として、3つの方式(第1、第2、第3の方式)を紹介する。
【0200】
第1の方式では、埋め込み処理において、埋め込み対象データとしての画像データを構成する画素の位置を、例えば、1列(垂直方向に並ぶ画素列)単位で、被埋め込みデータに対応して入れ替える(画素スワップする)ことを操作ルールとして、その操作ルールにしたがい、埋め込み対象データとしての画像データが操作されることで、各列に、被埋め込みデータが埋め込まれる。
【0201】
即ち、第1の方式の埋め込み処理では、被埋め込みデータに基づいて、埋め込み対象データとしての、例えば、1フレームの画像データの各列の位置を、どのように入れ替えるかを表す画素スワップ情報が生成される。具体的には、例えば、埋め込み対象データとしての1フレームの画像データが、M行N列の画素で構成され、その画像データの第n列(左からn番目の列)を、第n’列に入れ替える場合には、nとn’とが対応付けられた画素スワップ情報が生成される(n,n’は、1以上N以下の整数)。
【0202】
ここで、1フレームの画像データの列数が、上述のように、N列である場合には、その入れ替え方は、そのすべての列を入れ替えの対象とすると、N!(!は、階乗を表す)通りだけある。従って、この場合、1フレームには、最大で、log2(N!)ビット(但し、小数点以下切り捨て)の被埋め込みデータの埋め込みが可能となる。
【0203】
画素スワップ情報の生成後は、その画素スワップ情報にしたがって、埋め込み対象データとしての画像データの各列の位置が入れ替えられる(画素スワップされる)ことで、埋め込み対象データに、被埋め込みデータが埋め込まれ、埋め込み符号化データ(埋め込み画像データ)が生成される。
【0204】
ここで、第1の方式では、上述のように、埋め込み対象データとしての画像データの各列を、被埋め込みデータに対応して画素スワップするという操作ルールにしたがって、被埋め込みデータが埋め込まれるので、この第1の方式を、以下、適宜、画素スワップ方式という。
【0205】
次に、図19のフローチャートを参照して、図3の埋め込み符号化器3で、画素スワップ方式による埋め込み処理が行われる場合の、その埋め込み処理について説明する。
【0206】
埋め込み対象データベース1からは、そこに記憶されている埋め込み対象データとしての画像データが、例えば、1フレーム単位で読み出され、フレームメモリ21に、順次供給されて記憶される。
【0207】
そして、埋め込み部22は、ステップS81において、1フレームの画像に埋め込み可能なデータ量の被埋め込みデータを、被埋め込みデータベース2から読み出す。即ち、例えば、上述したように、1フレームの画像の列数がN列であり、そのすべての列を画素スワップ(入れ替え)の対象とする場合には、1フレームには、最大で、log2(N!)ビットの被埋め込みデータの埋め込みが可能であるから、そのようなビット数(以下)の被埋め込みデータが、被埋め込みデータベース2から読み出される。
【0208】
そして、埋め込み部22は、ステップS82に進み、ステップS81で読み出した被埋め込みデータに基づいて、画素スワップ情報を生成する。即ち、埋め込み部22は、被埋め込みデータに基づき、フレームメモリ21に記憶された画像データのフレームの第1列乃至第N列のうちの、例えば、第1列を除く第2列乃至第N列それぞれを、第何列に画素スワップするかを表す画素スワップ情報を生成する。
【0209】
その後、ステップS83に進み、埋め込み部22は、画素スワップ情報にしたがって、フレームメモリ21に記憶された処理対象のフレームの各列の位置を画素スワップする。そして、列の画素スワップが行われたフレームは、フレームメモリ21から読み出され、埋め込み符号化データとして出力される。
【0210】
なお、フレームの各列の画素スワップは、フレームメモリ21における画像データ(を構成する画素)の記憶位置を変更することで行うことができるが、その他、例えば、フレームメモリ21からフレームを読み出すときのアドレスを制御することによって、結果として、列の画素スワップが行われたフレームが、フレームメモリ21から読み出されるようにすることも可能である。
【0211】
また、ここでは、画素スワップ情報には、第2列乃至第N列それぞれを、第何列に画素スワップするかを表す情報が含まれているが、第1列を、第何列に画素スワップするかを表す情報は含まれていない。従って、埋め込み部22では、第2列乃至第N列それぞれの画素スワップは行われるが、第1列の画素スワップは行われない。なお、第1列の画素スワップを行わない理由については、後述する。
【0212】
ステップS83において、フレームメモリ21から埋め込み符号化データが出力されると、ステップS84に進み、フレームメモリ21に、まだ処理の対象とされていないフレームが記憶されているかどうかが判定され、記憶されていると判定された場合、ステップS81に戻り、まだ処理されていないフレームを対象に、同様の処理が繰り返される。
【0213】
また、ステップS84において、フレームメモリ21に、まだ処理の対象とされていないフレームが記憶されていないと判定された場合、埋め込み処理を終了する。
【0214】
以上のように、フレームメモリ21に記憶された画像を構成する1以上の画素の集合としての、各列の画素の位置を、被埋め込みデータに対応して画素スワップすることにより、各列に、被埋め込みデータを埋め込む場合には、その逆の画素スワップ(ここでは、列の入れ替え)を行うことで、元の画像データを復元することができ、さらに、どのような画素スワップを行ったかということに基づいて、被埋め込みデータを復元することができる。従って、画像データの画質の劣化を極力なくし、かつデータ量を増加せずに、画像データに被埋め込みデータを埋め込むことができる。
【0215】
即ち、被埋め込みデータが埋め込まれた画像データである、列の位置の画素スワップが行われた画像データ(埋め込み画像データ)の各列は、その画像データの相関性、つまり、ここでは、例えば、元の画像データと同一の正しい位置にある列との間の相関を利用することにより、オーバヘッドなしで、元の位置に画素スワップすることができ、さらに、その画素スワップの仕方(各列を、どの列に画素スワップしたか)により、被埋め込みデータを復元ことができる。従って、その結果得られる復元画像には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0216】
なお、埋め込み符号化データに、正しい位置にある列が存在しない場合には、上述のように画像データの相関性を利用して、画像データと被埋め込みデータを復元するのは、一般には、困難である。そこで、ここでは、図19の埋め込み処理において、各フレームの第1列は、入れ替えを行わないで、そのまま、埋め込み符号化データとして出力するようにしている。
【0217】
但し、第1列を含むすべての列を入れ替えの対象として、埋め込み符号化を行うことも可能であり、この場合、例えば、入れ替え後の列の少なくとも1以上の元の位置を、オーバヘッドとして、埋め込み符号化データに含めることで、元の画像データと被埋め込みデータの復元が容易に可能となる。
【0218】
また、被埋め込みデータは、画像データの第1列以外のすべての列を一度に入れ替えることにより、その画像データに埋め込むことも、また、画像データの第1列以外の列を、順次入れ替えることにより、その画像データに埋め込むことも可能である。
【0219】
次に、画素スワップ方式による埋め込み処理により得られる埋め込み画像データは、以下のような、画像データの相関性を利用した画素スワップ方式による復元処理により、元の画像と被埋め込みデータに復元することができる。
【0220】
即ち、画素スワップ方式による復元処理では、埋め込み画像データを構成する列のうち、既に復元した最新の列と、他の列との相関を計算し、既に復元した列との相関を最大にする列を、その既に復元した列の右隣の位置に画素スワップすることを、埋め込み画像データを構成するすべての列について行うことで、元の画像データが復元され、さらに、埋め込み画像データを元の画像データに復元する際の、埋め込み画像データの各列の画素スワップの仕方に基づいて、被埋め込みデータが復元される。
【0221】
次に、図20のフローチャートを参照して、図4の復元器6において画素スワップ方式による復元処理が行われる場合の、その復元処理について説明する。
【0222】
フレームメモリ31では、そこに供給される埋め込み画像データが、例えば、1フレーム単位で順次記憶される。
【0223】
そして、復元部32は、ステップS91において、フレームの列数をカウントするための変数nに、初期値としての、例えば、1がセットされ、ステップS92に進み、変数nが、フレームの列数であるNから1を減算したN−1以下であるかどうかが判定される。
【0224】
ステップS92において、変数nがN−1以下であると判定された場合、ステップS93に進み、復元部32は、フレームメモリ31に記憶された埋め込み画像データのフレームから、第n列の画素(画素列)を読み出し、その第n列の各画素(の画素値)を要素として並べたベクトル(以下、適宜、列ベクトルという)vnを生成する。ここで、フレームがM行の画素で構成される場合には、列ベクトルvn(後述する列ベクトルvkも同様)は、M次元のベクトルとなる。
【0225】
その後、ステップS94において、復元部32は、第n列より右側にある列をカウントするための変数kに、初期値としてのn+1をセットし、ステップS95に進む。ステップS95では、復元部32は、ステップS93における場合と同様に、埋め込み画像データのフレームから、第k列の画素を読み出し、その第k列の画素を要素とする列ベクトルvkを生成して、ステップS96に進む。
【0226】
ステップS96では、復元部32は、列ベクトルvnおよびvkを用いて、第n列と第k列との間の相関を表す相関値を求める。
【0227】
即ち、復元部32は、まず、列ベクトルvnとvkとの距離d(n,k)を、次式にしたがって計算する。
【0228】
但し、上式において、Σは、mを、1からMに変化させてのサメーションを表す。また、A(i,j)は、処理対象になっている埋め込み画像データのフレームの第i行第j列の画素(画素値)を表す。
【0229】
さらに、復元部32は、列ベクトルvnとvkとの距離d(n,k)の逆数1/d(n,k)を、第n列と第k列との相関を表す相関値として求める。
【0230】
第n列と第k列との相関値の算出後は、ステップS97に進み、復元部32は、変数kが、フレームの列数であるNから1を減算したN−1以下であるかどうかを判定する。ステップS97において、変数kがN−1以下であると判定された場合、ステップS98に進み、復元部32は、変数kを1だけインクリメントして、ステップS95に戻り、以下、ステップS97において、変数kがN−1以下でないと判定されるまで、ステップS95乃至S98の処理を繰り返す。即ち、これにより、第n列と、それより右側にある埋め込み画像の列それぞれとの相関値が求められる。
【0231】
その後、ステップS97において、変数kがN−1以下でないと判定されると、ステップS99に進み、復元部32は、第n列との相関値を最大にするkを求めて、ステップS100に進む。そして、いま、第n列との相関値を最大にするkを、例えばKと表すと、復元部32は、ステップS100において、フレームメモリ31に記憶された処理対象の埋め込み画像データのフレームの第n+1列と第K列とを画素スワップ、即ち、第K列を、第n列の右隣の第n+1列に入れ替える。
【0232】
その後、ステップS101に進み、復元部32は、変数nを1だけインクリメントして、ステップS92に戻り、以下、ステップS92において、変数nがN−1以下でないと判定されるまで、ステップS92乃至S101の処理を繰り返す。
【0233】
ここで、本実施の形態では、埋め込み画像データの第1列は、元の画像データの第1列のままであるから、変数nが、初期値である1のときは、第1列との相関が最も高い埋め込み画像データの列が、第1列の右隣の第2列に画素スワップされる。第1列との相関が最も高い列は、画像データの相関性から、基本的に、元の画像データの第2列であるから、この場合、図19の埋め込み処理において、埋め込み画像データのどこかの列に画素スワップされた元の画像データの第2列は、元の位置(列)に戻される(復元される)ことになる。
【0234】
そして、変数nが2となると、上述したようにして元の位置に画素スワップされた第2列との相関が最も高い埋め込み画像データの列が、その第2列の右隣の第3列に画素スワップされる。第2列との相関が最も高い列は、やはり、画像データの相関性から、基本的に、元の画像データの第3列であるから、この場合、図19の埋め込み処理において、埋め込み画像データのどこかの列に画素スワップされた元の画像データの第3列は、元の位置に戻されることになる。
【0235】
以下、同様にして、フレームメモリ31に記憶された埋め込み画像データは、元の画像データに復元されていく。
【0236】
そして、ステップS92において、変数nがN−1以下でないと判定された場合、即ち、埋め込み画像データを構成する第2列乃至第N列すべてが、画像データの相関性を利用して元の位置に戻され、これにより、フレームメモリ31の記憶内容が、元の画像データに復元された場合、ステップS102に進み、復元部32は、その復元された画像データを、フレームメモリ31から読み出させる。さらに、ステップS102では、復元部32が、埋め込み画像データを元の画像データに復元した際の、埋め込み画像データの第2列乃至第N列それぞれの画素スワップの仕方(画素スワップ情報)に基づいて、埋め込み画像データに埋め込まれていた被埋め込みデータを復元して出力する。
【0237】
その後、ステップS103に進み、復元部32は、フレームメモリ31に、まだ処理の対象とされていない埋め込み画像データのフレームが記憶されているかどうかを判定し、記憶されていると判定した場合、ステップS91に戻り、まだ処理の対象とされていない埋め込み画像データのフレームを対象に、同様の処理を繰り返す。
【0238】
また、ステップS103において、フレームメモリ31に、まだ処理の対象とされていない埋め込み画像データのフレームが記憶されていないと判定された場合、復元処理を終了する。
【0239】
以上のように、被埋め込みデータが埋め込まれた画像データである埋め込み画像データを、画像データの相関性を利用して、元の画像データと被埋め込みデータに復元するようにしたので、その復元のためのオーバヘッドがなくても、符号化データを、元の画像と被埋め込みデータに復元することができる。従って、その復元画像には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0240】
なお、図20の復元処理においては、既に復元された最新の列(n=1の場合においては、埋め込み処理時に画素スワップされない第1列)と、まだ復元されていない列との相関を求め、その相関に基づいて、既に復元された最新の列の右隣の位置に画素スワップされるべき列を検出するようにしたが、その他、例えば、既に復元された複数の列それぞれと、まだ復元されていない列との相関を演算することにより、既に復元された最新の列の右隣に画素スワップされるべき列を検出するようにすることも可能である。
【0241】
また、上述の場合には、被埋め込みデータに基づき、埋め込み対象データとしての画像データ構成する画素を、列単位で画素スワップすることにより(垂直ラインの画素スワップを行うことにより)、被埋め込みデータを埋め込むようにしたが、被埋め込みデータの埋め込みは、その他、例えば、埋め込み対象データとしての画像データを、行単位で画素スワップしたり(水平ラインの画素スワップを行ったり)、また、時間方向に並ぶ所定数のフレームの同一位置にある画素列を画素スワップすることにより行うことも可能である。
【0242】
さらに、画素スワップ方式による埋め込み処理では、例えば、埋め込み対象データとしての画像データを、列単位で画素スワップし、さらに、行単位で画素スワップすることにより、被埋め込みデータを埋め込むことも可能である。
【0243】
ここで、列と行の両方の画素スワップを行って得られる埋め込み画像データについて、例えば、列の位置を元の位置に戻す復元処理を考えると、その復元処理では、式(1)のΣにおいて加算される項の順番が変化するだけで、加算される項自体は変化しない。従って、式(1)によって求められる距離d(n,k)は、画像データの列だけ画素スワップした場合と、列と行の両方を画素スワップした場合とで変化しないため、列と行の両方を画素スワップして得られた埋め込み画像データも、列だけ画素スワップして得られた埋め込み画像データと同様に、図20の復元処理によって、元の画像データと被埋め込みデータに復元することができる。即ち、列と行の両方を画素スワップして得られた埋め込み画像データは、図20の復元処理を、列と行について、それぞれ独立に行うことで、元の画像データと被埋め込みデータに復元することができる。
【0244】
以上から、埋め込み処理において、列と行の両方を画素スワップすることにより、画像データに被埋め込みデータを埋め込む場合には、行と列のうち、いずれの画素スワップを先または後に行うかは、復元処理に影響を与えない。従って、埋め込み処理においては、行と列の画素スワップのうちのいずれを先または後に行っても良いし、復元処理においても、行と列の画素スワップのうちのいずれを先または後に行っても良い。また、行と列の画素スワップを、交互に行うようなことも可能である。
【0245】
但し、埋め込み処理において、列だけの画素スワップを行う場合には、埋め込み画像データを元の画像データに復元した際の、埋め込み画像データの列の画素スワップの仕方が、被埋め込みデータの復元結果となるが、行と列の両方の画素スワップを行う場合には、埋め込み画像データの第m行n列の位置(m,n)にある画素が、復元画像(元の画像データ)のどの位置(m’,n’)に画素スワップされたかが、被埋め込みデータの復元結果となる。
【0246】
また、図19の埋め込み処理では、埋め込み対象データとしての画像データの第1列だけを固定にし、図20の復元処理では、この第1列を、いわば復元の基準として、埋め込み画像データの画素スワップを行うようにしたが、復元の基準は、第1列でなくても、あらかじめ、埋め込み処理と復元処理で設定しておけば、最後の第N列であっても良いし、その他の任意の列でも良い。さらに、復元の基準は、1列の画素すべてである必要はなく、極端には、1画素であっても良い。
【0247】
なお、例えば、第1列だけを、いわば復元の基準とし、画像データの相関を利用して、埋め込み画像データの画素スワップを行う場合には、1の列の画素スワップを誤ると、その後の列(ここでは、画素スワップを誤った列の右側にある列)の画素スワップも誤る可能性が高くなる。この場合、元の画像データを復元することができないから、被埋め込みデータを復元することもできなくなる。
【0248】
そこで、埋め込み処理においては、複数の列(例えば、全列から等間隔に選択した複数の列)を、復元の基準として残しておく(画素スワップの対象としない)ようにすることが可能である。
【0249】
次に、第2の方式では、埋め込み処理において、埋め込み対象データとしての画像データを構成する複数の画素の画素値を表すビット列の各ビットごとのビットプレーンを、被埋め込みデータに対応して入れ替える(従って、レベル方向の操作を行う)ビットプレーンスワップを行うことを操作ルールとして、その操作ルールにしたがい、埋め込み対象データとしての画像データが操作されることで、その画像データに、被埋め込みデータが埋め込まれる。
【0250】
即ち、第2の方式の埋め込み処理では、図21に示すように、埋め込み対象データとしての画像データが、複数の画素で構成される画像ブロックにブロック化され、さらに、画像ブロックが、その画像ブロックを構成する各画素の画素値を表すビット列の各ビットごとのビットプレーンに分割される。
【0251】
ここで、埋め込み対象データとしての画像データを構成する各画素値に、例えば、8ビットが割り当てられているとすると、画像ブロックは、画素値の最下位ビット、最下位ビットから2ビット目のビット、3ビット目のビット、・・・、7ビット目のビット、最上位ビット(以下、適宜、それぞれを第1乃至第8ビットという)それぞれからなるビットプレーンに分割される。
【0252】
そして、画像ブロックのビットプレーンが、被埋め込みデータに対応して並べ替えられる(ビットプレーンスワップされる)ことにより、画像データに、被埋め込みデータが埋め込まれる。
【0253】
なお、例えば、上述のように、埋め込み対象データとしての画像データを構成する画素値に8ビットが割り当てられている場合には、1の画像ブロックからは、8面のビットプレーンが得られる。そして、8面のビットプレーンの並べ替え方(ビットプレーンスワップの仕方)は、40320(=8!(!は階乗を表す))通りあるから、1つの画像ブロックには、最大で、log2(8!)ビット(但し、小数点以下は切り捨て)の被埋め込みデータを埋め込むことができる。従って、埋め込み処理では、被埋め込みデータが、そのようなビット数ごとに区切られ、埋め込み対象データとしての画像データを構成する各画像ブロックに埋め込まれる。
【0254】
ここで、第2の方式では、上述のように、埋め込み対象データとしての画像データの各画像ブロックのビットプレーンを、被埋め込みデータに対応してビットプレーンスワップするという操作ルールにしたがって、被埋め込みデータが埋め込まれるので、この第2の方式を、以下、適宜、ビットプレーンスワップ方式という。
【0255】
次に、図22のフローチャートを参照して、図3の埋め込み符号化器3で、ビットプレーンスワップ方式による埋め込み処理が行われる場合の、その埋め込み処理について説明する。
【0256】
まず最初に、ステップS111において、埋め込み部22は、1フレームの画像に埋め込むことのできる分の被埋め込みデータを、被埋め込みデータベース2から読み出し、1つの画像ブロックに埋め込むことのできる単位にフォーマットする(被埋め込みデータを分割する)。さらに、ステップS111では、埋め込み部22は、埋め込み対象データベース1に記憶された埋め込み対象データとしての画像データのフレームのうち、まだ処理の対象としていないフレームの画像データを、フレームメモリ21に記憶させる。
【0257】
そして、ステップS112に進み、埋め込み部22は、フレームメモリ21に記憶された1フレームの画像を、例えば、横×縦が4×4画素の画像ブロックに分割し、ステップS113に進む。ステップS113では、埋め込み部22は、フレームメモリ21に記憶された1フレームの画像データを構成する各画像ブロックを、ビットプレーンに分割し、ステップS114に進む。
【0258】
ステップS114では、埋め込み部22は、ビットプレーンに分割した各画像ブロックのうち、例えば、ラスタスキャン順で、まだ、注目ブロックとしていないものを、注目ブロックとし、その注目ブロックのビットプレーンを、ステップ111で得た1単位の被埋め込みデータに対応してビットプレーンスワップし、そのビットプレーンスワップ後の画像ブロックを、フレームメモリ21に上書きする形で書き込む。
【0259】
その後、ステップS115に進み、埋め込み部22は、フレームメモリ21に記憶された1フレームの画像を構成する画像ブロックすべてを注目ブロックとして処理(ビットプレーンを並べ替える処理)を行ったかどうかを判定する。ステップS115において、まだ、1フレームのブロックすべてを処理していないと判定された場合、ステップS114に戻り、埋め込み部22は、ラスタスキャン順で、また、注目ブロックとしていない画像ブロックを、新たに注目ブロックとして、以下、同様の処理を繰り返す。
【0260】
一方、ステップS115において、1フレームのブロックすべてを注目ブロックとして処理したと判定された場合、ステップS116に進み、埋め込み部22は、被埋め込みデータに対応してビットプレーンスワップが行われた画像ブロックで構成される1フレームの画像データ、即ち、埋め込み画像データを、フレームメモリ21から読み出して出力させ、処理を終了する。
【0261】
なお、以上の埋め込み処理は、埋め込み対象データベース1に記憶された埋め込み対象データとしての画像データの1フレームごとに繰り返し行われる。
【0262】
以上のように、各画像ブロックのビットプレーンを、被埋め込みデータに対応してビットプレーンスワップすることにより、各画像ブロックに、被埋め込みデータを埋め込む場合には、その逆のビットプレーンスワップを行うことで、元の画像データを復元することができ、さらに、どのようなビットプレーンスワップを行ったかということに基づいて、被埋め込みデータを復元することができる。従って、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に被埋め込みデータを埋め込むことができる。
【0263】
即ち、画像においては、画像ブロックを構成するビットプレーンにおけるビットどうしの相関は、基本的に、上位ビットのビットプレーンほど高い(下位ビットのビットプレーンほど低い)。従って、このような画像の相関性、即ち、ここでは、ビットプレーンを構成するビットどうしの相関を利用することにより、被埋め込みデータに対応してビットプレーンスワップされたビットプレーンは、オーバヘッドなしで、元の順番に並べ替えることができ、さらに、その並べ替え方により、被埋め込みデータを復元することができる。従って、復元された画像には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0264】
次に、ビットプレーンスワップ方式による埋め込み処理により得られる埋め込み画像データは、以下のような、画像データの相関性を利用したビットプレーンスワップ方式による復元処理により、元の画像データと被埋め込みデータに復元することができる。
【0265】
即ち、ビットプレーンスワップ方式による復元処理では、フレームごとの埋め込み画像データが、ビットプレーンスワップによる埋め込み処理における場合と同一の画像ブロックにブロック化され、さらに、各画像ブロックが、その画像ブロックを構成する画素の画素値を表すビット列の各ビットごとのビットプレーンに分割される。そして、各画像ブロックを構成する各ビットプレーン内のビットどうしの相関を表す相関値が求められる。
【0266】
具体的には、例えば、図23Aに示すように、まず、相関値を計算するビットプレーンが、注目ビットプレーンとして、画像ブロックから取り出される。そして、いま、画像ブロックが、例えば、上述したように、4×4画素で構成される場合、注目ビットプレーンも、横×縦が4×4ビットで構成されることになるが、その4×4ビットの注目ビットプレーンから、例えば、図23Bに示すような、その中心部分の2×2ビットA,B,C,Dそれぞれを中心とした所定の大きさの4つの小ブロックが構成される。ここで、図23Bは、ビットAを中心として構成された3×3ビットの小ブロックを示している。
【0267】
ビットプレーンスワップ方式による復元処理では、注目ビットプレーンから得られた各小ブロックについて、その中心のビットと同一の値のビットの数がカウントされ、そのカウント値が、小ブロックの中心ビットと、他のビットとの間の相関値として求められる。ここで、図23Bに示したビットAを中心とする小ブロックにおいては、その中心ビット(ここでは、ビットA)が0となっており、その左上、上、右上、右、右下、下、左下、左のビットが、それぞれ1,0,1,0,0,1,0,0になっている。従って、0になっている中心ビットと同一の値になっているのは、その中心ビットの上、左、右下、左下、左の5ビットであるため、中心ビットについての他のビットとの間の相関値は、5になる。
【0268】
ビットプレーンスワップ方式による復元処理では、上述のようにして、注目ビットプレーンから得られた、ビットA乃至Dそれぞれを中心とする各小ブロックについて、相関値が求められる。さらに、このようにして求められたビットA乃至Dそれぞれを中心とする小ブロックについての相関値どうしが加算され、その加算値が、注目ビットプレーンの相関値とされる。
【0269】
画像ブロックを構成する各ビットプレーンは、順次、注目ビットプレーンとされ、上述のようにして、相関値が求められる。そして、画像ブロックのすべてのビットプレーンの相関値を求められると、図24に示すように、相関値の高いビットプレーンが最上位ビット側に位置するとともに、相関値の低いビットプレーンが最下位ビット側に位置するように、即ち、相関値の昇順に、ビットプレーンがビットプレーンスワップされる。これにより、画像ブロックが復元される。ここで、図24では、濃度の薄いビットプレーンほど、相関値の高いビットプレーンを表している。
【0270】
画像ブロックが復元された後は、その復元された画像ブロック(以下、適宜、復元ブロックという)を構成するビットプレーンの並びと、復元前の画像ブロックを構成するビットプレーンの並びとを比較することで、画像ブロックの復元にあたって、各ビットプレーンが、どのようにビットプレーンスワップされたのかが検出され、そのビットプレーンスワップの仕方に基づいて、復元ブロックに埋め込まれていた被埋め込みデータが復元される。
【0271】
次に、図25フローチャートを参照して、図4の復元器6においてビットプレーンスワップ方式による復元処理が行われる場合の、その復元処理について説明する。
【0272】
復元部32は、ステップS121において、1フレームの埋め込み画像データを、フレームメモリ31に記憶させ、ステップS122に進む。ステップS122では、復元部32は、フレームメモリ31に記憶された1フレームの埋め込み画像データを、埋め込み処理における場合と同様に、画像ブロックにブロック化し、ステップS123に進む。ステップS123では、復元部32は、各画像ブロックをビットプレーンに分割し、ステップS124に進む。
【0273】
復元部32は、ステップS124において、ビットプレーンに分割された各画像ブロックを、例えば、ラスタスキャン順に、順次、注目ブロックとして、その注目ブロックの各ビットプレーンの相関値を、図23で説明したように計算し、ステップS125に進む。ステップS125では、復元部32は、ビットプレーンの相関値が昇順に並ぶように、注目ブロックのビットプレーンをビットプレーンスワップし、これにより、元の画像データを構成する画像ブロックを復元する。さらに、ステップS125では、復元部32は、復元した画像ブロック(復元ブロック)を、フレームメモリ31に上書きする形で書き込むとともに、その復元ブロックのビットプレーンの並びと、復元前の画像ブロックのビットプレーンの並びとを比較することで、埋め込み処理において、復元ブロックにつき、どのようなビットプレーンスワップが行われたかを認識する。そして、復元部32は、その認識結果に基づいて、復元ブロックに埋め込まれていた被埋め込みデータを復元する。
【0274】
その後、ステップS126に進み、復元部32は、フレームメモリ31に記憶された1フレームの埋め込み画像データの画像ブロックすべてを注目ブロックとして処理を行ったかどうかを判定し、まだ、1フレームのブロックすべてを処理していないと判定した場合、ステップS124に戻り、ラスタスキャン順で、まだ、注目ブロックとしていない画像ブロックを、新たに注目ブロックとして、以下、同様の処理を繰り返す。
【0275】
一方、ステップS126において、フレームメモリ31に記憶された1フレームの画像ブロックすべてを処理したと判定された場合、ステップS127に進み、復元部32は、フレームメモリ31に記憶された復元ブロックで構成される1フレームの画像データ、即ち、復元された元の画像データを読み出して出力させる。さらに、ステップS126では、復元部32は、ステップS125で復元した被埋め込みデータを出力し、復元処理を終了する。
【0276】
なお、以上の復元処理は、1フレームの埋め込み画像データごとに繰り返し行われる。
【0277】
以上のように、埋め込み対象データとしての画像データのビットプレーンをビットプレーンスワップすることにより被埋め込みデータが埋め込まれた埋め込み画像データについて、ビットプレーンスワップを行い、画像の相関性を利用して、ビットプレーンを元の画像データにおける並びに戻すようにしたので、オーバヘッドがなくても、埋め込み画像データを、元の画像データと被埋め込みデータに復元することができる。従って、その復元画像には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0278】
次に、第3の方式では、埋め込み処理において、埋め込み対象データとしての画像データを構成するライン(水平ラインもしくは垂直ライン、または時間方向に並ぶ複数の画素で構成されるライン)を、被埋め込みデータに対応してローテーションする(従って、空間方向または時間方向の操作を行う)ラインローテーションを行うことを操作ルールとして、その操作ルールにしたがい、埋め込み対象データとしての画像データが操作されることで、その画像データに、被埋め込みデータが埋め込まれる。
【0279】
即ち、第3の方式の埋め込み処理では、埋め込み対象データとしての画像データの、例えば、水平方向の各ライン(水平方向に並ぶ一連の画素)(水平ライン)を、被埋め込みデータに対応する分だけ、水平方向にずらすラインローテーションを行うことで、各水平ラインに、被埋め込みデータが埋め込まれる。
【0280】
ここで、第3の方式では、上述のように、埋め込み対象データとしての画像データのラインを、被埋め込みデータに対応してローテーションするという操作ルールにしたがって、被埋め込みデータが埋め込まれるので、この第3の方式を、以下、適宜、ラインローテーション方式という。
【0281】
次に、図26のフローチャートを参照して、図3の埋め込み符号化器3で、ラインローテーション方式による埋め込み処理が行われる場合の、その埋め込み処理について説明する。
【0282】
埋め込み対象データベース1からは、そこに記憶されている埋め込み対象データとしての画像データが読み出され、フレームメモリ21に、順次供給されて記憶される。
【0283】
そして、埋め込み部22は、ステップS131において、フレームメモリ21に記憶された画像データを構成する水平ラインのうち、まだ、注目ラインとしていないものを、注目ラインとして読み出し、ステップS132に進む。ステップS132では、埋め込み部22は、注目ラインが、第1水平ライン(1フレームの画像データの最上行の水平ライン)であるかどうかを判定する。ステップS132において、注目ラインが第1水平ラインであると判定された場合、ステップS133に進み、埋め込み部22は、その第1水平ラインを、そのまま、フレームメモリ21に上書きする形で書き込み、ステップS137に進む。即ち、第1水平ラインは、特に操作(ラインローテーション)されず、従って、被埋め込みデータは埋め込まれない。
【0284】
また、ステップS132において、注目ラインが第1水平ラインでないと判定された場合、即ち、注目ラインが、第2水平ライン以降のいずれかの水平ラインである場合、ステップS134に進み、埋め込み部22は、注目ラインに埋め込むべき被埋め込みデータを、被埋め込みデータベース2から読み出し、ステップS135に進む。ステップS135では、埋め込み部22は、注目ラインを、例えば、ステップS134で読み出された被埋め込みデータに対応する画素数分だけ、水平方向にローテーションする。
【0285】
即ち、例えば、いま、図27Aに示すように、第N水平ライン(N≠1)が注目ラインとされているとすると、埋め込み部22は、図27Bに示すように、その第N水平ラインを、被埋め込みデータの値と同一の画素数だけ、水平方向である左または右方向のうちの、例えば右方向にスライドする(ずらす)。そして、埋め込み部22は、そのスライドにより、フレームの右にはみ出した第N水平ラインの部分を、図27Cに示すように、その第N水平ラインの左側にはめ込む。
【0286】
埋め込み部22は、注目ラインをローテーションし、これにより、注目ラインに、被埋め込みデータを埋め込むと、ステップS136に進み、そのローテーション後の注目ラインを、フレームメモリ21に上書きする形で書き込み、ステップS137に進む。
【0287】
ステップS137では、埋め込み部22は、フレームメモリ21に記憶された画像データのすべての水平ラインを、注目ラインとして処理を行ったかどうかを判定する。ステップS137において、フレームメモリ21に記憶された画像データのすべての水平ラインを、まだ、注目ラインとしていないと判定された場合、ステップS131に戻り、まだ、注目ラインとしていない水平ライン(例えば、いままで注目ラインとされていた1ライン下の水平ラインが、新たに注目ラインとされ、以下、同様の処理が繰り返される。
【0288】
また、ステップS137において、フレームメモリ21に記憶された画像データのすべての水平ラインを、注目ラインとしたと判定された場合、即ち、フレームメモリ21に記憶された1フレームの画像データの各水平ライン(但し、ここでは、第1水平ラインを除く)に、被埋め込みデータが埋め込まれ、埋め込み画像データが生成された場合、埋め込み部22は、その1フレームの埋め込み画像データを、フレームメモリ21から読み出して出力させ、処理を終了する。
【0289】
なお、以上の埋め込み処理は、フレームメモリ21に記憶された画像データの各フレームについて、繰り返し行われる。
【0290】
図26の埋め込み処理によれば、ある1フレームの画像データは、次のような埋め込み画像データとされる。
【0291】
即ち、例えば、図28Aに示すような画像データに、被埋め込みデータとして、10,150,200,・・・を埋め込む場合においては、図28Bに示すように、第1水平ラインは、そのまま出力され、第2水平ラインは、最初の被埋め込みデータと同一の値である10画素だけ、右方向にローテーションされる。さらに、第3水平ラインは、2番目の被埋め込みデータと同一の値である150画素だけ、右方向にローテーションされ、第4水平ラインは、3番目の被埋め込みデータと同一の値である200画素だけ、右方向にローテーションされる。第5水平ライン以降も、同様に、被埋め込みデータに対応する画素数だけ、右方向にローテーションされていく。
【0292】
以上のように、フレームメモリ21に記憶された画像を構成する水平ラインを、被埋め込みデータに対応した画素数だけ、右方向にローテーションすることにより、各水平ラインに、被埋め込みデータを埋め込む場合には、その逆のローテーション(逆向きのローテーション)を行うことで、元の画像データを復元することができ、さらに、その逆のローテーションを行ったときのローテーション量に基づき、画像データに埋め込まれていた被埋め込みデータを復元することができる。従って、画像データの画質の劣化を極力なくし、かつデータ量を増加せずに、画像データに被埋め込みデータを埋め込むことができる。
【0293】
即ち、被埋め込みデータが埋め込まれた水平ラインは、元の位置から被埋め込みデータに対応するローテーション量(画素数)だけローテーションされているが、このような水平ラインは、画像データの相関性、即ち、ここでは、元の位置にある水平ラインとの間の相関を利用することにより、オーバヘッドなしで、元の位置に戻すことができる。さらに、水平ラインを元の位置に戻すことで、埋め込み処理によって、その水平ラインがローテーションされたローテーション量を認識することができ、そのローテーション量に基づいて、その水平ラインに埋め込まれていた被埋め込みデータを復元することができる。従って、その結果得られる復元画像には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0294】
なお、埋め込み画像データに、元の位置にある水平ラインが存在しない場合には、上述のように画像の相関性を利用して、画像データと被埋め込みデータを復元するのは、一般には、困難である。そこで、ここでは、図26の埋め込み処理において、各フレームの第1水平ラインには、被埋め込みデータを埋め込まないで(ローテーションしないで)、そのまま、埋め込み画像データとするようにしている。
【0295】
次に、ラインローテーション方式による埋め込み処理により得られる埋め込み画像データは、以下のような、画像データの相関性を利用したラインローテーション方式による復元処理により、元の画像データと被埋め込みデータに復元することができる。
【0296】
即ち、ラインローテーション方式による復元処理では、埋め込み画像データの各水平ラインが、例えば、その第1水平ラインから、順次、注目ラインとされるとともに、その注目ラインの1ライン上の水平ラインが、基準ラインとされる。
【0297】
なお、注目ラインは、これから元の位置に戻そうとしている水平ラインであり、また、いまの場合、上方向から下方向に向かって、水平ラインが、順次、注目ラインとされるので、基準ラインは、既に元の位置に戻されている水平ラインである。
【0298】
ラインローテーション方式による復元処理では、その後、注目ラインを、1画素ずつ右または左のうちのいずれか一方向にローテーションしながら、そのローテーション後の注目ラインと、基準ラインとの間の相関を表す相関値が演算される。
【0299】
具体的には、例えば、図29Aに示すように、注目ラインをローテーションせずに(注目ラインを、0画素分だけローテーションして)、その注目ラインを構成する画素の画素値と、基準ラインを構成する対応する画素の画素値との差分絶対値の総和の逆数が、注目ラインについての基準ラインとの間の相関値として計算される。さらに、図29Bに示すように、注目ラインが、1画素だけ右または左のうちのいずれかにローテーションされ(図29では、図27で説明した場合の逆方向である左方向にローテーションされている)、そのローテーション後の注目ラインについて、基準ラインとの間の相関値が計算される。以下、同様にして、注目ラインが元の位置(埋め込み画像データにおける元の位置)に戻るまで、注目ラインを、2画素、3画素、・・・と順次ローテーションしながら、基準ラインとの間の相関値が計算される。
【0300】
以上のようにして、各ローテーション量(ここでは、水平ラインを構成する画素数)でローテーションされた注目ラインについての相関値が計算された後は、各ローテーション量の中から、注目ラインについての相関値を最大にするローテーション量が検出される。そして、その検出されたローテーション量が、注目ラインを元の位置に戻すローテーション量として決定され(この決定されたローテーション量を、以下、適宜、決定ローテーション量という)、注目ラインが、決定ローテーション量だけ、相関値を計算する場合と同一の方向(上述の場合は、左方向)にローテーションされることで、元の位置に戻される。即ち、これにより、注目ラインが復元される。
【0301】
さらに、決定ローテーション量に基づいて、注目ラインに埋め込まれていた被埋め込みデータが復元される。
【0302】
次に、図30フローチャートを参照して、図4の復元器6においてラインローテーション方式による復元処理が行われる場合の、その復元処理について説明する。
【0303】
フレームメモリ31では、そこに供給される埋め込み画像データが、例えば、1フレーム単位で順次記憶される。
【0304】
そして、復元部32は、ステップS141において、フレームメモリ31に記憶された埋め込み画像データの、まだ注目ラインとされていない水平ラインのうちの、より上の行の水平ラインを、注目ラインとして読み出し、ステップS142に進む。ステップS142では、復元部32は、注目ラインが、第1水平ラインであるかどうかを判定する。ステップS142において、注目ラインが、第1水平ラインであると判定された場合、ステップS143に進み、復元部32は、第1水平ラインである注目ラインを、そのまま、フレームメモリ31に上書きする形で書き込み、ステップS150に進む。即ち、図28の埋め込み処理では、上述したように、第1水平ラインには、被埋め込みデータが埋め込まれていないため(従って、ローテーションされていない)、第1水平ラインは、特に操作されない。
【0305】
また、ステップS142において、注目ラインが、第1水平ラインでないと判定された場合、即ち、注目ラインが、第2水平ライン以降のいずれかの水平ラインである場合、ステップS144に進み、復元部32は、注目ラインの1ライン上の水平ラインを基準ラインとして、フレームメモリ31から読み出し、ステップS145に進む。ステップS145では、復元部32は、注目ラインと基準ラインとの間の相関値(ライン相関値)を計算し、その内蔵するメモリに記憶して、ステップS146に進む。
【0306】
ステップS146では、復元部32は、注目ラインを、例えば、左方向に、1画素だけローテーションし、ステップS147に進む。ステップS147では、復元部32は、ステップS146で注目ラインがローテーションされることにより、そのローテーション後の注目ラインの各画素が、フレームメモリ31に記憶されている注目ラインの各画素の位置に戻ったかどうかを判定する。
【0307】
ステップS147において、ローテーション後の注目ラインの各画素が、フレームメモリ31に記憶されている注目ラインの各画素の位置に戻っていないと判定された場合、ステップS145に戻り、ローテーション後の注目ラインと基準ラインとの間の相関値が計算され、以下、同様の処理が繰り返される。
【0308】
また、ステップS147において、ローテーション後の注目ラインの各画素が、フレームメモリ31に記憶されている注目ラインの各画素の位置に戻ったと判定された場合、ステップS148に進み、復元部32は、注目ラインについて、ステップS145乃至S147のループ処理を行うことにより得られた各ローテーション量に対する相関値の中から、その最大値を求める。さらに、ステップS148では、復元部32は、最大値となる相関値を与えるローテーション量を検出し、そのローテーション量を、決定ローテーション量として決定する。そして、復元部32は、その決定ローテーション量に基づいて、注目ラインに埋め込まれていた被埋め込みデータを復元して出力し、即ち、決定ローテーション量を、そのまま被埋め込みデータとして出力し、ステップS149に進む。
【0309】
ステップS149では、復元部32は、フレームメモリ31に記憶されている注目ラインを読み出し、決定ローテーション量だけ左方向にローテーションすることにより、注目ラインを復元する(注目ラインを、元の画像データにおける位置に戻す)。さらに、ステップS149では、復元部32は、ローテーション後の注目ラインを、フレームメモリ31に上書きする形で書き込み、ステップS150に進む。
【0310】
ステップS150では、復元部32は、フレームメモリ31に記憶された埋め込み画像データのすべての水平ラインを、注目ラインとして処理を行ったかどうかを判定する。ステップS150において、フレームメモリ31に記憶された埋め込み画像データのすべての水平ラインを、まだ、注目ラインとしていないと判定された場合、ステップS141に戻り、いままで注目ラインとされていた1ライン下の水平ラインが、新たに注目ラインとされ、以下、同様の処理が繰り返される。
【0311】
また、ステップS150において、フレームメモリ31に記憶された埋め込み画像データのすべての水平ラインを、注目ラインとしたと判定された場合、即ち、フレームメモリ31に記憶された1フレームの埋め込み画像データの各水平ライン(但し、ここでは、第1水平ラインを除く)に埋め込まれていた被埋め込みデータを復元するとともに、その埋め込み画像データを、元の画像データに復元した場合、復元部32は、その復元した画像データを、フレームメモリ31から読み出して出力させ、処理を終了する。
【0312】
なお、以上の復元処理は、フレームメモリ31に記憶された埋め込み画像データの各フレームについて、繰り返し行われる。
【0313】
以上のように、水平ラインをローテーションすることにより被埋め込みデータが埋め込まれた埋め込み画像データについて、水平ラインのローテーションを行い、画像の相関性を利用して、水平ラインを元の位置に戻すようにしたので、オーバヘッドがなくても、埋め込み画像データを、元の画像データと被埋め込みデータに復元することができる。従って、その復元画像には、基本的に、被埋め込みデータを埋め込むことによる画質の劣化は生じない。
【0314】
なお、図30の復元処理では、注目ラインと、基準ラインとの間の相関を表す相関値として、対応する画素どうしの差分絶対値の総和(差分絶対値和)を用いるようにしたが、その他、例えば、画素の差分の自乗和等を用いることも可能である。
【0315】
また、図26の埋め込み処理では、1つの水平ラインを、被埋め込みデータにしたがってローテーションするようにしたため、1つの水平ラインには、その水平ラインを構成する画素数だけの範囲内の値の被埋め込みデータの埋め込みが可能である。但し、1つの水平ラインを構成する画素数より大きい範囲内の値の被埋め込みデータの埋め込みであっても、例えば、2つの水平ラインなどの複数の水平ラインを、被埋め込みデータにしたがってローテーションするようにすることで行うことが可能である。
【0316】
ところで、上述した図26のラインローテーション方式による埋め込み処理では、埋め込み対象データとしての画像データの水平方向に並ぶ画素で構成される水平ラインを、水平方向にローテーションすることにより、被埋め込みデータの埋め込みを行うようにしたが、被埋め込みデータの埋め込みは、その他、例えば、画像データの垂直方向に並ぶ画素で構成される垂直ラインを、垂直方向にローテーションしたり、あるいは、斜め方向に並ぶ画素で構成されるラインを、その斜め方向にローテーションすることなどによって行うことも可能である。
【0317】
また、ラインローテーション方式による場合には、水平ラインまたは垂直ラインのうちのいずれか一方をローテーションすることにより、被埋め込みデータを埋め込み、その後、水平ラインまたは垂直ラインのうちの他方をローテーションすることにより、被埋め込みデータを、さらに埋め込むことが可能である。
【0318】
即ち、例えば、図31Aに示すように、ラインローテーション方式による埋め込み処理では、埋め込み対象データとしての画像データの水平ラインを、所定の被埋め込みデータ(以下、適宜、第1の被埋め込みデータという)に対応してローテーションすることにより、その第1の被埋め込みデータを埋め込み、さらに、その結果生成される埋め込み符号化データ(以下、適宜、第1の埋め込み符号化データという)としての画像データの垂直ラインを、別の被埋め込みデータ(以下、適宜、第2の被埋め込みデータという)に対応してローテーションすることにより、その第2の被埋め込みデータを埋め込むことが可能である。
【0319】
いま、第1の埋め込み符号化データとしての画像データの垂直ラインをローテーションすることにより、第2の被埋め込みデータを埋め込んで生成される埋め込み符号化データを、第2の埋め込み符号化データというものとすると、第2の埋め込み符号化データには、元の画像データの水平ラインだけでなく、垂直ラインもローテーションすることによって、被埋め込みデータが埋め込まれているから、図26の埋め込み処理で説明したように、画像データの水平ラインだけをローテーションする場合に比較して、より多くの被埋め込みデータを埋め込むことができる。
【0320】
即ち、例えば、埋め込み対象データとしての画像データの水平ラインと垂直ラインのライン数が同一であるとした場合には、画像データの水平ラインと垂直ラインの両方をローテーションして生成される第2の埋め込み符号化データには、画像データの水平ラインだけをローテーションして生成される第1の埋め込み符号化データにおける場合の2倍のデータ量の被埋め込みデータを埋め込むことができる。
【0321】
以上のような第2の埋め込み符号化データを、埋め込み対象データ、並びに第1および第2の被埋め込みデータに復元する復元処理は、やはり、画像の相関性を利用して、次のように行うことができる。
【0322】
即ち、埋め込み対象データとしての画像データの水平ラインをローテーションすると、その画像データにおける、水平ラインと直交する空間方向である垂直方向の相関性が破壊される。従って、画像データの水平ラインのみをローテーションすることにより生成される埋め込み符号化データについては、その水平ラインを、垂直方向の相関性を元に戻すように(図30の復元処理においては、基準ラインとの間の相関値が最大になるように)ローテーションすることで、元の画像データに復元することができる。
【0323】
画像データの垂直ラインのみをローテーションすることにより生成される埋め込み符号化データについても、上述の、水平ラインをローテーションすることにより生成される埋め込み符号化データにおける場合と同様にして、元の画像データに復元することができる。
【0324】
即ち、埋め込み対象データとしての画像データの垂直ラインをローテーションすると、その画像データにおける、垂直ラインと直交する空間方向である水平方向の相関性が破壊される。従って、画像データの垂直ラインをローテーションすることにより生成される埋め込み符号化データについては、その垂直ラインを、水平方向の相関性を元に戻すようにローテーションすることで、元の画像データに復元することができる。
【0325】
以上から、画像データの水平ラインをローテーションすると、垂直方向の相関性は破壊されるが、水平方向の相関性は影響を受けない。また、画像データの垂直ラインをローテーションすると、水平方向の相関性は破壊されるが、垂直方向の相関性は影響を受けない。そして、画像データの水平ラインをローテーションすることにより生成される埋め込み符号化データは、垂直方向の相関性だけを利用して、元の画像データに復元することができ、画像データの垂直ラインをローテーションすることにより生成される埋め込み符号化データは、水平方向の相関性だけを利用して、元の画像データに復元することができる。
【0326】
従って、図31Aに示したように、埋め込み対象データとしての画像データの水平ラインを、第1の被埋め込みデータに対応してローテーションすることにより、第1の埋め込み符号化データを生成し、その第1の埋め込み符号化データとしての画像データの垂直ラインを、第2の被埋め込みデータに対応してローテーションすることにより生成された第2の埋め込み符号化データは、図31Bに示すように、その垂直ラインを、水平方向の相関性を元に戻すようにローテーションすることで、第1の埋め込み符号化データと第2の被埋め込みデータに復元することができる。そして、第1の埋め込み符号化データは、その水平ラインを、垂直方向の相関性を元に戻すようにローテーションすることで、埋め込み対象データと第1の被埋め込みデータに復元することができる。即ち、第2の埋め込み符号化データは、元の埋め込み対象データと、第1および第2の被埋め込みデータに復元することができる。
【0327】
水平ラインのローテーションによる埋め込みと、垂直ラインのローテーションによる埋め込みとは、いずれも、被埋め込みデータに対応してラインをローテーションするという操作ルールにしたがって、埋め込み対象データを操作するラインローテーション方式による埋め込みであるが、水平ラインのローテーションは、垂直方向の相関にのみ影響を与え、垂直ラインのローテーションは、水平方向の相関にのみ影響を与えるものであるから、水平ラインのローテーションと、垂直ラインのローテーションとは、いわば、独立した操作または直交した操作であるということができる。このように、水平ラインのローテーションと、垂直ラインのローテーションとが、独立した操作であるがゆえに、画像データの水平ラインを第1の被埋め込みデータに対応してローテーションし、さらに、垂直ラインを第2の被埋め込みデータに対応してローテーションして得られる第2の埋め込み符号化データは、元の画像データと、第1および第2の被埋め込みデータに復元することができる。
【0328】
ところで、第2の埋め込み符号化データは、埋め込み対象データとしての画像データの水平ラインと垂直ラインがローテーションされたものであるから、画像データの、いわば空間的な相関性が、すべての空間方向について破壊されたものとなっている。
【0329】
従って、第2の埋め込み符号化データとしての画像データに対して、ラインローテーション方式による場合は勿論、その他の操作ルールにしたがって操作を行う、例えば、上述の画素スワップ方式や、ビットプレーンスワップ方式によって、さらに被埋め込みデータの埋め込みを行うと、対応する方式による復元処理では、第2の埋め込み符号化データも、その第2の埋め込み符号化データに埋め込んだ被埋め込みデータも復元することが困難となる。
【0330】
即ち、第2の埋め込み符号化データとしての画像データに対して、ラインローテーション方式によって、さらに別の被埋め込みデータ(以下、適宜、第3の被埋め込みデータという)を埋め込んだ場合、その第3の被埋め込みデータは、第2の埋め込み符号化データの水平ラインまたは垂直ラインを、第3の被埋め込みデータに対応してローテーションすることにより埋め込まれる。
【0331】
しかしながら、この第3の被埋め込みデータに対応する水平ラインまたは垂直ラインのローテーションは、第1の被埋め込みデータの埋め込みを行うための水平ラインのローテーション、または第2の被埋め込みデータの埋め込みを行うための垂直ラインのローテーションと重複する操作であるから、水平ラインのローテーションが、第1または第3の被埋め込みデータのうちのいずれの埋め込みによるものであるのかを区別することができず、あるいは、垂直ラインのローテーションが、第2または第3の被埋め込みデータのうちのいずれの埋め込みによるものであるのかを区別することができず、このため、第2の埋め込み符号化データも、第3の被埋め込みデータも復元することはできない。
【0332】
また、画素スワップ方式や、ビットプレーンスワップ方式による復号処理では、上述したことから、空間的に近接する画素との相関を利用して、元の画像データとそこに埋め込まれていた被埋め込みデータの復元が行われる。
【0333】
しかしながら、画第2の埋め込み符号化データとしての画像データについては、その空間方向の相関性が、すべての方向について破壊されているため、そのような第2の埋め込み符号化データに、画素スワップ方式や、ビットプレーンスワップ方式によって、第3の被埋め込みデータを埋め込むことは、エネルギの偏りのない、例えば、ノイズを埋め込み対象データとして、画素スワップ方式や、ビットプレーンスワップ方式によって、被埋め込みデータを埋め込むことと等価である。
【0334】
従って、そのような埋め込みにより得られた埋め込み符号化データについては、画像データ(情報としての価値がある画像データ)が有する空間方向の相関性を利用することができず、画素スワップ方式や、ビットプレーンスワップ方式による復元処理によっては、元の埋め込み対象データと被埋め込みデータを復元することはできない。
【0335】
以上から、空間方向の相関性がすべての方向について破壊されている第2の埋め込み符号化データに対して、画素スワップ方式や、ビットプレーンスワップ方式によって、第3の被埋め込みデータを埋め込み、埋め込み符号化データを生成した場合には、その埋め込み符号化データ(以下、適宜、第3の埋め込み符号化データという)については、第2の埋め込み符号化データとしての画像データの相関性を利用することによっては、第2の埋め込み符号化データと第3の被埋め込みデータを復元することはできない。
【0336】
ところで、ラインローテーション方式による埋め込み処理によって生成された第2の埋め込み符号化データに対して、さらに、同一のラインローテーション方式によって、第3の被埋め込みデータを埋め込んだ場合には、上述したように、第2の埋め込み符号化データを生成するときに行われる操作と、第3の埋め込み符号化データを生成するときに行われる操作とが重複することがあるので、仮に、第1の埋め込み符号化データ(または、埋め込み対象データ)としての画像データを復元することができても、第1乃至第3の被埋め込みデータすべてを復元することは困難である。
【0337】
一方、ラインローテーション方式による埋め込み処理によって生成された第2の埋め込み符号化データに対して、さらに、ラインローテーション方式とは異なる、例えば、ビットプレーンスワップ方式等によって、第3の被埋め込みデータを埋め込んだ場合には、第2の埋め込み符号化データを生成するときに行われる操作と、第3の埋め込み符号化データを生成するときに行われる操作とが重複することはない。
【0338】
従って、この場合は、仮に、第1の埋め込み符号化データ(または、埋め込み対象データ)としての画像データを復元することができれば、第1乃至第3の被埋め込みデータも、すべて復元することができる。
【0339】
即ち、仮に、第3の埋め込み符号化データから、第1の埋め込み符号化データを復元することができれば、第1の埋め込み符号化データから第3の埋め込み符号化データを生成する操作が特定される。そして、第1の埋め込み符号化データから第3の埋め込み符号化データを生成する操作は、第1の埋め込み符号化データに対して第2の被埋め込みデータを埋め込む操作と、その操作によって得られる第2の埋め込み符号化データに対して第3の被埋め込みデータを埋め込む操作とからなり、さらに、いまの場合、第2の被埋め込みデータを埋め込む操作と、第3の被埋め込みデータを埋め込む操作とは、重複することがない。
【0340】
従って、第1の埋め込み符号化データから第3の埋め込み符号化データを生成する操作が特定されれば、その操作に基づき、第2の埋め込み符号化データに対して第3の被埋め込みデータを埋め込んだ操作を(第1の埋め込み符号化データに対して第2の被埋め込みデータを埋め込んだ操作も)特定することができる。
【0341】
そこで、図32を参照して、第1の埋め込み符号化データから第3の埋め込み符号化データを生成する操作を特定し、さらに、第2の埋め込み符号化データに対して第3の被埋め込みデータを埋め込んだ操作を特定する方法について説明する。
【0342】
なお、以下では、例えば、第1の埋め込み符号化データは、埋め込み対象データとしての画像データの水平ラインを、第1の被埋め込みデータに対応してローテーションして生成され、第2の埋め込み符号化データは、第1の埋め込み符号化データとしての画像データの垂直ラインを、第2の被埋め込みデータに対応してローテーションして生成されたものとする。さらに、第3の埋め込み符号化データは、第2の埋め込み符号化データとしての画像データを、第3の被埋め込みデータに対応してビットプレーンスワップして生成されたものとする。
【0343】
また、図21乃至図25の実施の形態においては、ビットプレーンとして、4×4画素の画像ブロックを構成する画素群のビットプレーンを採用したが、以下では、例えば、1つの垂直ラインを構成する画素群のビットプレーンを採用するものとする。
【0344】
即ち、以下においては、ビットプレーンスワップ方式による埋め込み処理および復元処理では、1つの垂直ラインを、1つの画像ブロックとして、垂直ラインを構成する各画素の画素値を表すビット列の各ビットごとのビットプレーンがビットプレーンスワップされるものとする。但し、ビットプレーンスワップの対象となる画像ブロックは、垂直ラインに限定されるものではない。
【0345】
この場合、埋め込み対象データとしての画像データに対して、第1乃至第3の被埋め込みデータを埋め込む埋め込み処理は、図32Aに示すように行われる。
【0346】
即ち、まず、図31Aで説明したように、埋め込み対象データとしての画像データの水平ラインが、第1の被埋め込みデータに対応してローテーションされることにより、埋め込み対象データに対して第1の被埋め込みデータを埋め込んだ第1の埋め込み符号化データが生成され、さらに、その第1の埋め込み符号化データとしての画像データの垂直ラインが、第2の被埋め込みデータに対応してローテーションされることにより、第1の埋め込み符号化データに対して第2の被埋め込みデータを埋め込んだ第2の埋め込み符号化データが生成される。
【0347】
そして、図32Aに示すように、第2の埋め込み符号化データとしての画像データの各垂直ラインを画像ブロックとして、各画像ブロックのビットプレーンを、第3の被埋め込みデータに対応してビットプレーンスワップすることにより、第2の埋め込み符号化データに対して第3の被埋め込みデータを埋め込んだ第3の埋め込み符号化データが生成される。
【0348】
ここで、第2の埋め込み符号化データとしての画像データにおいて、ある垂直ラインが、元の位置(第1の埋め込み符号化データとしての画像データにおける元の位置)にあるとして、その元の位置にある垂直ラインを基準ラインとするとともに、その基準ラインの右隣の垂直ラインを注目ラインとして、注目ラインを元の位置に戻すことを考えると、注目ラインは、図29および図30で説明した場合と同様に、ラインローテーション方式による復元処理を行うことによって、元の位置に戻すことができる。
【0349】
即ち、注目ラインを、ローテーション量を変えながら、垂直方向にローテーションし、各ローテーション量に対して、基準ラインとの間の相関値を計算する。そして、その相関値を最大にするローテーション量だけローテーションした位置が、注目ラインの元の位置ということになる。
【0350】
ところで、上述のようにして、注目ラインについて求められる相関値は、その注目ラインのローテーション量に対して計算されるものであるから、ローテーション量を引数とする関数になっている。
【0351】
いま、この相関値を表す関数を、相関値関数というものとし、第2の埋め込み符号化データの、左からN番目の垂直ライン(第N垂直ライン)を注目ラインとして、その注目ラインについて、相関値関数を描くと、その相関値関数は、例えば、図32Bに示すようになる。なお、図32においては(後述する図33および図41においても同様)、相関値関数として、各ローテーション量に対する相関値そのものを表す関数ではなく、相関値の逆数を表す関数を示してある。
【0352】
図32Bでは、相関値関数は、その関数値が最小になるローテーション量の付近で、急峻な凹部が現れるものとなっている。なお、図32Bの相関値関数は、上述したように、相関値の逆数を表す関数であり、その関数値を最小にするローテーション量は、相関値を最大にするローテーション量であるから、注目ラインを元の位置に戻すローテーション量(決定ローテーション量)である。従って、相関値関数を、相関値そのものを表す関数とすれば、相関値関数は、急峻な凸部が現れるものとなり、その関数値を最大にするローテーション量が、決定ローテーション量となる。
【0353】
第2の埋め込み符号化データとしての画像データにおいて、注目ラインの相関値関数は、図32Bに示したように、急峻な凹部を有するという特徴を有するものとなるが、このような特徴は、第2の埋め込み符号化データに第2の被埋め込みデータが埋め込まれる前の画像データ、つまり、第1の埋め込み符号化データとしての画像データが有する水平方向の相関性(ここでは、注目ラインと基準ラインとの間の相関性)によるものである。
【0354】
即ち、第1の埋め込み符号化データは、元の画像データ(埋め込み対象データ)の水平ラインをローテーションしたものであり、上述したように、その垂直方向の相関性は破壊されているが、水平方向の相関性は破壊されておらず、元の画像データの水平方向の相関性を、そのまま有している。このため、第2の埋め込み符号化データの垂直ラインをローテーションした場合には、その垂直ラインが、第1の埋め込み符号化データにおける位置(元の位置)付近にローテーションされたときに、相関値が急激に増加する。このため、相関値関数は、図32Bに示したように、急峻な凹部を有するものとなる。
【0355】
ここで、上述したように、相関値関数の関数値は、相関値の逆数なので、相関値で考えれば、相関値は、その値が最大になるローテーション量の付近で、急峻な凸部が現れるものとなる。
【0356】
一方、図32Aに示したように、第2の埋め込み符号化データとしての画像データの各垂直ラインを画像ブロックとして、各画像ブロックのビットプレーンが、第3の被埋め込みデータに対応してビットプレーンスワップされることにより、第2の埋め込み符号化データに対して第3の被埋め込みデータが埋め込まれた第3の埋め込み符号化データについて、上述の第2の埋め込み符号化データにおける場合と同様に、第N垂直ラインを注目ラインとして、その注目ラインについて、その左隣の垂直ラインである基準ラインとの間の相関を表す相関値関数を描くと、その相関値関数は、例えば、図32Cに示すようになる。
【0357】
図32Cでは、相関値関数は、図32Bの相関値関数のような、急峻な凹部が現れるという特徴を有しないものとなっている。
【0358】
このように、第3の埋め込み符号化データの垂直ラインについての相関値関数が、第2の埋め込み符号化データの垂直ラインについての相関値関数のように、急峻な凹部を有しないのは、次のような理由による。
【0359】
即ち、第3の埋め込み符号化データは、第2の埋め込み符号化データの垂直ラインを画像ブロックとして、その画像ブロックのビットプレーンをビットプレーンスワップしたものであり、このビットプレーンスワップによれば、画像データが有する空間方向の相関性は破壊される。そして、ビットプレーンスワップにより相関性が破壊されている画像データの相関性を元に戻すには、ビットプレーンを元の並びに戻すビットプレーンスワップを行う必要があり、垂直ラインを、どの位置にローテーションしたとしても、ビットプレーンスワップにより破壊されている相関性を元に戻すことはできない。
【0360】
このため、第3の埋め込み符号化データとしての画像データの垂直ラインについての基準ラインとの間の相関値は、その垂直ラインのローテーション量によっては、それほど大きく変化しないものとなる。従って、その相関値の逆数を表す関数である相関値関数は、図32Cに示したように、急峻な凹部のない、図32Bの場合に比較して平坦なものとなる。
【0361】
ところで、第3の埋め込み符号化データの、ある垂直ラインを注目ラインとし、さらに、その注目ラインを画像ブロックとして、そのビットプレーンスワップを行い、そのビットプレーンスワップ後の注目ラインについて相関値関数を求めた場合、仮に、ビットプレーンスワップにより、注目ラインのビットプレーンが、元の並び(第2の埋め込み符号化データにおける並び)に戻っていれば、その相関値関数は、図32Bに示したように、急峻な凹部を有するものとなる。
【0362】
一方、注目ラインのビットプレーンが、元の並びに一致していなければ、その相関値関数は、ビットプレーンスワップを行わない場合と同様なもの、即ち、図32Cに示したように、急峻な凹部のないものとなる。
【0363】
従って、第3の埋め込み符号化データの、ある垂直ラインを注目ラインとして、その注目ラインのビットプレーンを、所定のパターンでビットプレーンスワップし、その結果得られる垂直ライン(以下、適宜、仮復元垂直ラインという)の相関値関数を求めた場合に、その相関値関数が、急峻な凹部を有するものであるときには、その関数値を最小にするローテーション量だけ、仮復元垂直ラインをローテーションした位置が、その仮復元垂直ラインの元の位置であり、さらに、仮復元垂直ラインを構成するビットプレーンの並びが、元の並びであることになる。
【0364】
以上から、仮復元垂直ラインについて、急峻な凹部を有する相関値関数が得られれば、その仮復元垂直ラインが、注目ラインの復元結果となり、さらに、注目ラインから仮復元垂直ラインを得るときの、注目ラインのビットプレーンのビットプレーンスワップのパターン(以下、適宜、スワップパターンという)に基づいて、注目ラインに埋め込まれた第3の被埋め込みデータを復元することができる。即ち、図32Dに示すように、第3の埋め込み符号化データを、第2の埋め込み符号化データと第3の被埋め込みデータに復元することができる。
【0365】
ここで、図32Bおよび図32Cに示した相関値関数は、模式的なものであるが、自然画が表示された実際の画像データについて相関値関数を求めると、その相関値関数は、例えば、図33に示すようになる。
【0366】
即ち、図33は、1920×1035画素で構成される画像データのY成分のみを対象に、水平ラインのローテーションと垂直ラインのローテーションを行い、さらに、垂直ラインのビットプレーンスワップを行って得られた第3の埋め込み符号化データの、ある垂直ラインを注目ラインとして、その注目ラインについて求めた相関値関数を示している。
【0367】
図33においてF1で示す相関値関数は、注目ラインのビットプレーンが元の並びとは異なる場合のものであり、急峻な凹部のない、比較的平坦なものとなっている。
【0368】
また、図33においてF2で示す相関値関数は、注目ラインのビットプレーンが元の並びと一致している場合のものであり、非常に急峻な凹部を有するものとなっている。
【0369】
次に、図34は、上述のように、ラインローテーション方式による埋め込みを行い、さらに、ビットプレーンスワップ方式による埋め込みを行うことにより、第3の埋め込み符号化データを生成する場合の、図3の埋め込み部22の構成例を示している。
【0370】
図34の実施の形態では、埋め込み部22は、水平ラインローテーション埋め込み部41、垂直ラインローテーション埋め込み部42、およびビットプレーンスワップ埋め込み部43で構成されている。
【0371】
水平ラインローテーション埋め込み部41は、被埋め込みデータベース2から、1フレームの水平ラインをローテーションすることにより埋め込むことのできる分を被埋め込みデータを、第1の被埋め込みデータとして読み出す。さらに、水平ラインローテーション埋め込み部41は、フレームメモリ21に記憶された埋め込み対象データとしての1フレームの画像データ(原画像データ)の水平ラインを、順次、注目ラインとして、その注目ラインを、第1の被埋め込みデータに対応して(水平方向に)ローテーションすることにより、その注目ラインに対して第1の被埋め込みデータを埋め込む。そして、水平ラインローテーション埋め込み部41は、埋め込み対象データとしての画像データのうちの、例えば、第1水平ラインを除くすべての水平ラインを注目ラインとして、第1の被埋め込みデータを埋め込み、これにより、第1の埋め込み符号化データを得ると、その第1の埋め込み符号化データを、垂直ラインローテーション埋め込み部42に出力する。
【0372】
垂直ラインローテーション埋め込み部42は、被埋め込みデータベース2から、1フレームの垂直ラインをローテーションすることにより埋め込むことのできる分の被埋め込みデータ(但し、第1の被埋め込みデータとしたものを除く)を、第2の被埋め込みデータとして読み出す。さらに、垂直ラインローテーション埋め込み部42は、水平ラインローテーション埋め込み部41から供給される第1の埋め込み符号化データとしての1フレームの画像データの垂直ラインを、順次、注目ラインとして、その注目ラインを、第2の被埋め込みデータに対応して(垂直方向に)ローテーションすることにより、その注目ラインに対して第2の被埋め込みデータを埋め込む。そして、垂直ラインローテーション埋め込み部42は、第1の埋め込み符号化データとしての画像データのうちの、例えば、第1垂直ラインを除くすべての垂直ラインを注目ラインとして、第2の被埋め込みデータを埋め込み、これにより、第2の埋め込み符号化データを得ると、その第2の埋め込み符号化データを、ビットプレーンスワップ埋め込み部43に出力する。
【0373】
ビットプレーンスワップ埋め込み部43は、被埋め込みデータベース2から、1フレームの垂直ラインをビットプレーンスワップすることにより埋め込むことのできる分の被埋め込みデータ(但し、第1および第2の被埋め込みデータとしたものを除く)を、第3の被埋め込みデータとして読み出す。さらに、ビットプレーンスワップ埋め込み部43は、垂直ラインローテーション埋め込み部42から供給される第2の埋め込み符号化データとしての1フレームの画像データの垂直ラインを、順次、注目ラインとして、その注目ラインを、第2の被埋め込みデータに対応して(レベル方向に)ビットプレーンスワップすることにより、その注目ラインに対して第3の被埋め込みデータを埋め込む。そして、ビットプレーンスワップ埋め込み部43は、第2の埋め込み符号化データとしての画像データのうちの、例えば、第1垂直ラインを除くすべての垂直ラインを注目ラインとして、第3の被埋め込みデータを埋め込み、これにより、第3の埋め込み符号化データを得ると、その第3の埋め込み符号化データを、フレームメモリ21に上書きする形で書き込む。
【0374】
次に、図35のフローチャートを参照して、図34の埋め込み部22による埋め込み処理について説明する。
【0375】
まず最初に、ステップS161において、水平ラインローテーション埋め込み部41は、フレームメモリ21から埋め込み対象データとしての1フレームの画像データを読み出す。さらに、ステップS161では、水平ラインローテーション埋め込み部41、垂直ラインローテーション部42、ビットプレーンスワップ埋め込み部43は、被埋め込みデータベース2から、第1乃至第3の被埋め込みデータそれぞれを読み出す。
【0376】
そして、ステップS162に進み、水平ラインローテーション埋め込み部41は、フレームメモリ21から読み出した埋め込み対象データとしての1フレームの画像データの水平ラインを、順次、注目ラインとして、その注目ラインを、第1の被埋め込みデータに対応してローテーションすることにより、その注目ラインに対して第1の被埋め込みデータを埋め込む。そして、水平ラインローテーション埋め込み部41は、埋め込み対象データとしての画像データのうちの、第1水平ラインを除くすべての水平ラインを注目ラインとして、第1の被埋め込みデータを埋め込むことにより、第1の埋め込み符号化データを生成すると、その第1の埋め込み符号化データを、垂直ラインローテーション埋め込み部42に出力して、ステップS163に進む。
【0377】
ステップS163では、垂直ラインローテーション埋め込み部42が、水平ラインローテーション埋め込み部41から供給される第1の埋め込み符号化データとしての1フレームの画像データの垂直ラインを、順次、注目ラインとして、その注目ラインを、第2の被埋め込みデータに対応してローテーションすることにより、その注目ラインに対して第2の被埋め込みデータを埋め込む。そして、垂直ラインローテーション埋め込み部42は、第1の埋め込み符号化データとしての画像データのうちの、第1垂直ラインを除くすべての垂直ラインを注目ラインとして、第2の被埋め込みデータを埋め込むことにより、第2の埋め込み符号化データを生成すると、その第2の埋め込み符号化データを、ビットプレーンスワップ埋め込み部43に出力して、ステップS164に進む。
【0378】
ステップS164では、ビットプレーンスワップ埋め込み部43が、垂直ラインローテーション埋め込み部42から供給される第2の埋め込み符号化データとしての1フレームの画像データの垂直ラインを、順次、注目ラインとして、その注目ラインを、第2の被埋め込みデータに対応してビットプレーンスワップすることにより、その注目ラインに対して第3の被埋め込みデータを埋め込む。
【0379】
即ち、これにより、注目ラインを構成する各画素の画素値が、例えば、図36Aに示すようなものである場合には、その注目ラインの各画素の画素値は、第3の被埋め込みデータに対応するビットプレーンスワップにより、図36Bに示すようなものに変更される。
【0380】
ここで、図36においては(後述する図41においても同様)、画素値が8ビットであるとして、注目ラインを構成する各画素の画素値の各ビットを、左側を上位ビットとするとともに、右側を下位ビットとして、正方形で表してある。また、図36において画素値の各ビットを表す正方形のうち、影を付してあるものは、値が0であることを、影を付していないものは、値が1であることを、それぞれ表す。
【0381】
図35に戻り、ステップS164において、ビットプレーンスワップ埋め込み部43は、第2の埋め込み符号化データとしての画像データのすべての垂直ラインを注目ラインとして、第3の被埋め込みデータを埋め込むことにより、第3の埋め込み符号化データを生成すると、その第3の埋め込み符号化データを、フレームメモリ21に上書きする形で書き込む。
【0382】
以上のようにして、フレームメモリ21に記憶された第3の埋め込み符号化データは、フレームメモリ21から読み出され、以下、フレームメモリ21に記憶された次のフレームの画像データを、埋め込み対象データとして、図35の処理が繰り返される。
【0383】
以上のように、ラインローテーション方式により第1および第2の被埋め込みデータを埋め込み、さらに、ビットプレーンスワップ方式により第3の被埋め込みデータを埋め込む場合には、ラインローテーション方式だけ、またはビットプレーンスワップ方式だけを採用する場合に比較して、より多くの被埋め込みデータを埋め込むことができる。
【0384】
次に、図37は、図34のビットプレーンスワップ埋め込み部43の構成例を示している。
【0385】
入力データ保持部51は、垂直ラインローテーション埋め込み部42(図349から供給される第2の埋め込み符号化データを一時記憶する。
【0386】
注目ライン選択部52は、入力データ保持部51に記憶された第2の埋め込み符号化データとしての1フレームの画像データを構成する垂直ラインから、注目ラインとするものを選択し、スワップ情報取得部54と、ビットプレーンスワップ部55に供給する。
【0387】
被埋め込みデータ保持部53は、被埋め込みデータベース2(図34)から読み出された第3の被埋め込みデータを一時記憶する。
【0388】
スワップ情報取得部54は、被埋め込みデータ保持部53から、注目ラインをビットプレーンスワップすることにより埋め込むことのできるデータ量だけの第3の被埋め込みデータを読み出し、その第3の被埋め込みデータに対応して、注目ラインのビットスワップの仕方(スワップパターン)を表すスワップ情報を生成する。即ち、例えば、画素値が8ビットである場合には、上述したように、40320通りのスワップパターンが存在するが、注目ラインをビットプレーンスワップするのに、どのスワップパターンを採用するかは、埋め込む第3の被埋め込みデータの値に対応して、一意に、あらかじめ決定されている。そして、スワップ情報取得部54は、被埋め込みデータ保持部53から読み出した第3の被埋め込みデータに一意に対応付けられているスワップパターンを表すスワップ情報を生成し、ビットプレーンスワップ部55に供給する。
【0389】
ここで、本実施の形態では、注目ラインは、1フレームの垂直ラインであるから、比較的多数の画素で構成される。従って、そのような多数の画素の画素値のあるビットで構成されるビットプレーンが、他のビットで構成されるビットプレーンと同一であることは、確率的に、極めて稀である。
【0390】
しかしながら、極めて稀であっても、注目ラインのあるビットのビットプレーンが、他のビットのビットプレーンと一致する場合があり得る。
【0391】
いま、注目ラインの第iビット(最下位ビットからiビット目)のビットプレーンと、第j(≠i)ビットのビットプレーンとが同一構成のビットプレーンとなっているとすると、第iビットのビットプレーンと第jビットのビットプレーンとを入れ替えるビットプレーンスワップを行っても、注目ラインのビットプレーンの並びは、ビットプレーンスワップの前と後とで変化しない(実質的に変化しない)。
【0392】
従って、この場合、第iビットのビットプレーンと第jビットのビットプレーンとを入れ替えるスワップパターンによるビットプレーンスワップと、入れ替えないスワップパターンによるビットプレーンスワップとは、そのビットプレーンスワップ結果からは区別することができない。
【0393】
そこで、スワップ情報取得部54は、そのような区別することのできない2以上のビットプレーンスワップのスワップパターンについては、そのうちの1つ、即ち、例えば、同一のビットプレーンどうしの入れ替えを行わないスワップパターンのみを有効にし、他のスワップパターンを無効とする。
【0394】
その結果、スワップ情報取得部54では、上述の例で言えば、第iビットと第jビットのビットプレーンを入れ替えるスワップパターンを表すスワップ情報は、生成されなくなる。
【0395】
なお、この場合、スワップパターンの総数は、無効とされるスワップパターンが存在しない場合に比較して少なくなるため、注目ラインに埋め込むことのできる第3の被埋め込みデータのデータ量(ビット数)も減少することになる。
【0396】
また、スワップ情報取得部54は、注目ラインについて、区別することのできないスワップパターンが存在するかどうかは、注目ライン選択部52から供給される注目ラインの各ビットのビットプレーンを参照することにより判定する。
【0397】
ビットプレーンスワップ部55は、注目ライン選択部52から供給される注目ラインのビットプレーンを、スワップ情報取得部54から供給されるスワップ情報が表すスワップパターンにしたがってビットプレーンスワップすることにより、そのスワップ情報に対応する第3の被埋め込みデータを埋め込む。そして、ビットプレーンスワップ部55は、第2の埋め込み符号化データとしての画像データを構成する垂直ラインすべてに対して、第3の被埋め込みデータを埋め込んだデータ、即ち、第3の埋め込み符号化データを生成すると、その第3の埋め込み符号化データを、フレームメモリ21(図34)に出力して書き込む。
【0398】
次に、図38のフローチャートを参照して、図37のビットプレーンスワップ埋め込み部43の処理について説明する。なお、この図38の処理は、ビットプレーンスワップ埋め込み部43が、図35のステップS164において行う処理である。
【0399】
ビットプレーンスワップ埋め込み部43では、まず最初に、ステップS171において、入力データ保持部51が、垂直ラインローテーション埋め込み部42(図34)から供給された第2の埋め込み符号化データを一時記憶する。さらに、ステップS171では、被埋め込みデータ保持部53が、被埋め込みデータベース2(図34)から読み出された第3の被埋め込みデータを記憶する。
【0400】
そして、ステップS172に進み、注目ライン選択部52が、入力データ保持部51に記憶された第2の埋め込み符号化データとしての1フレームの画像データを構成する垂直ラインから、注目ラインとするものを選択する。即ち、注目ライン選択部52は、例えば、第2の埋め込み符号化データとしての1フレームの画像データの第1垂直ラインから、順次、右方向の垂直ラインを、注目ラインとして選択するようになっており、ステップS172では、注目ライン選択部52は、第2の埋め込み符号化データとしての1フレームの画像データを構成する垂直ラインのうち、まだ、注目ラインとしていない、より左方向にある垂直ライン(いままで注目ラインとされていた垂直ラインの右隣の垂直ライン)を、注目ラインとして選択する。この注目ラインは、注目ライン選択部52から、スワップ情報取得部54およびビットプレーンスワップ部55に供給される。
【0401】
その後、ステップS173に進み、スワップ情報取得部54は、被埋め込みデータ保持部53から、注目ラインをビットプレーンスワップすることにより埋め込むことのできるデータ量だけの第3の被埋め込みデータを読み出し、その第3の被埋め込みデータに対応したスワップパターンを表すスワップ情報を生成する。
【0402】
スワップ情報取得部54が生成したスワップ情報は、ビットプレーンスワップ部55に供給され、ビットプレーンスワップ部55は、スワップ情報を受信すると、ステップS173からS174に進み、注目ライン選択部52から供給された注目ラインのビットプレーンを、スワップ情報取得部54から供給されたスワップ情報が表すスワップパターンにしたがってビットプレーンスワップすることにより、そのスワップ情報に対応する第3の被埋め込みデータを埋め込む。
【0403】
そして、ステップS175に進み、注目ライン選択部52は、入力データ保持部51に記憶された第2の埋め込み符号化データとしての1フレームの画像データのすべての垂直ラインを注目ラインとしたかどうかを判定し、まだ、第2の埋め込み符号化データとしての1フレームの画像データのすべての垂直ラインを注目ラインとしていないと判定した場合、ステップS172に戻る。この場合、ステップS172では、注目ライン選択部52において、上述したように、第2の埋め込み符号化データとしての1フレームの画像データの垂直ラインのうち、まだ、注目ラインとされていないものが、新たに注目ラインとして選択され、以下、同様の処理が繰り返される。
【0404】
また、ステップS175において、第2の埋め込み符号化データとしての1フレームの画像データのすべての垂直ラインを注目ラインとしたと判定された場合、ステップS176に進み、ビットプレーンスワップ部55は、第2の埋め込み符号化データとしての1フレームの画像データを構成する垂直ラインすべてに対して、第3の被埋め込みデータを埋め込んだデータ、即ち、第3の埋め込み符号化データを、フレームメモリ21(図34)に出力して上書きし、処理を終了する。
【0405】
次に、図39は、図34の埋め込み部22において生成される第3の埋め込み符号化データを、埋め込み対象データとしての画像データと、そこに埋め込まれていた第1乃至第3の被埋め込みデータに復元する場合の、図4の復元部32の構成例を示している。
【0406】
図39の実施の形態では、復元部32は、ビットプレーンスワップ戻し部61、垂直ラインローテーション戻し部62、および水平ラインローテーション戻し部63から構成されている。
【0407】
ビットプレーンスワップ戻し部61は、フレームメモリ31に記憶された第3の埋め込み符号化データを読み出し、その第3の埋め込み符号化データを、図32で説明したようにして、第2の埋め込み符号化データと、第3の被埋め込みデータに復元する。
【0408】
即ち、ビットプレーンスワップ戻し部61は、第3の埋め込み符号化データとしての1フレームの画像データの垂直ラインを、順次、注目ラインとし、その注目ラインをビットプレーンスワップ方式にしたがって操作し、さらに、ラインローテーション方式にしたがって操作する。
【0409】
具体的には、ビットプレーンスワップ戻し部61は、注目ラインをビットプレーンスワップすることにより、そのビットプレーンの全通りの並びを求める。また、ビットプレーンスワップ戻し部61は、各並びのビットプレーンで構成される注目ラインをローテーションすることにより、全ローテーション量でローテーションされた注目ラインを求める。そして、ビットプレーンスワップ戻し部61は、各並びのビットプレーンで構成される注目ラインについて、各ローテーション量に対する基準ラインとの相関を表す相関値を求め、その相関値の逆数のローテーション量に対する変化を表す相関値関数を求める。
【0410】
その後、ビットプレーンスワップ戻し部61は、各並びのビットプレーンで構成される注目ラインについて求められた相関値関数の中から、上述したような急峻な凹部を有するものを求め、その相関値関数に対応するビットプレーンの並びに、注目ラインのビットプレーンをビットプレーンスワップするスワップパターンを検出する。そして、ビットプレーンスワップ戻し部61は、注目ラインのビットプレーンを、検出したスワップパターンにしたがってビットプレーンスワップすることにより、第3の埋め込み符号化データとしての注目ラインを、第2の埋め込み符号化データとしての画像データの垂直ラインに復元し、さらに、検出したスワップパターンに基づいて、注目ラインに埋め込まれている第3の被埋め込みデータを復元する。
【0411】
ビットプレーンスワップ戻し部61は、第3の埋め込み符号化データとしての1フレームの画像データの垂直ラインすべてを注目ラインとして、上述の処理を行い、これにより、第2の埋め込み符号化データとしての1フレームの画像データと、そこに埋め込まれていた第3の被埋め込みデータを復元する。そして、ビットプレーンスワップ戻し部61は、復元した第2の埋め込み符号化データを、垂直ラインローテーション戻し部62に供給する。
【0412】
垂直ラインローテーション戻し部62と水平ラインローテーション戻し部63は、ビットプレーンスワップ戻し部61から供給される第2の埋め込み符号化データを、図31Bで説明したようなラインローテーション方式による復元処理によって、埋め込み対象データと、第1および第2の被埋め込みデータに復元する。
【0413】
即ち、垂直ラインローテーション戻し部62は、ビットプレーンスワップ戻し部61から供給される第2の埋め込み符号化データとしての画像データの垂直ラインを、順次、注目ラインとして、図31Bで説明したようなラインローテーション方式による復元処理を行い、これにより、第1の埋め込み符号化データと、そこに埋め込まれていた第2の被埋め込みデータを復元する。そして、垂直ラインローテーション戻し部62は、復元した第1の埋め込み符号化データを、水平ラインローテーション戻し部63に供給する。
【0414】
水平ラインローテーション戻し部63は、垂直ラインローテーション戻し部62から供給される第1の埋め込み符号化データとしての画像データの水平ラインを、順次、注目ラインとして、図31Bで説明したようなラインローテーション方式による復元処理を行い、これにより、埋め込み対象データとしての画像データと、そこに埋め込まれていた第1の被埋め込みデータを復元する。そして、水平ラインローテーション戻し部63は、復元した埋め込み対象データを、フレームメモリ31に上書きする形で書き込む。
【0415】
次に、図40のフローチャートを参照して、図39の復元部32による復元処理について説明する。
【0416】
ビットプレーンスワップ戻し部61は、まず最初に、ステップS181において、フレームメモリ31から第3の埋め込み符号化データとしての1フレームの画像データを読み出し、ステップS182に進む。
【0417】
ステップS182では、ビットプレーンスワップ戻し部61は、フレームメモリ31から読み出した第3の埋め込み符号化データを、第2の埋め込み符号化データと、第3の被埋め込みデータに復元する。
【0418】
即ち、図41Aに示すように、ビットプレーンスワップ戻し部61は、注目ラインをビットプレーンスワップし、さらに、各並びのビットプレーンで構成される注目ラインをローテーションしながら、注目ラインについて、その左隣の垂直ラインである基準ラインとの間の相関を表す相関値関数(ここでは、相関値の逆数を、その関数値とする相関値関数)を求める。そして、ビットプレーンスワップ戻し部61は、各並びのビットプレーンで構成される注目ラインについて求めた相関値関数の中から、図41Bに示すような急峻な凹部を有するものを求め、その相関値関数に対応するビットプレーンの並びに、注目ラインのビットプレーンをビットプレーンスワップするスワップパターンを検出する。その後、ビットプレーンスワップ戻し部61は、注目ラインのビットプレーンを、検出したスワップパターンにしたがってビットプレーンスワップすることにより、第3の埋め込み符号化データとしての注目ラインを、第2の埋め込み符号化データとしての画像データの垂直ラインに復元し、さらに、検出したスワップパターンに基づいて、注目ラインに埋め込まれている第3の被埋め込みデータを復元する。
【0419】
ビットプレーンスワップ戻し部61は、第3の埋め込み符号化データとしての1フレームの画像データの垂直ラインすべてを注目ラインとして、上述の処理を行い、これにより、第2の埋め込み符号化データとしての1フレームの画像データと、そこに埋め込まれていた第3の被埋め込みデータを復元すると、その復元した第2の埋め込み符号化データを、垂直ラインローテーション戻し部62に供給し、ステップS183に進む。
【0420】
ステップS183では、垂直ラインローテーション戻し部62は、ビットプレーンスワップ戻し部61から供給された第2の埋め込み符号化データとしての画像データの垂直ラインを、順次、注目ラインとして、図31Bで説明したようなラインローテーション方式による復元処理を行い、これにより、第1の埋め込み符号化データと、そこに埋め込まれていた第2の被埋め込みデータを復元する。そして、垂直ラインローテーション戻し部62は、復元した第1の埋め込み符号化データを、水平ラインローテーション戻し部63に供給し、ステップS184に進む。
【0421】
ステップS184では、水平ラインローテーション戻し部63は、垂直ラインローテーション戻し部62から供給された第1の埋め込み符号化データとしての画像データの水平ラインを、順次、注目ラインとして、図31Bで説明したようなラインローテーション方式による復元処理を行い、これにより、埋め込み対象データとしての画像データと、そこに埋め込まれていた第1の被埋め込みデータを復元する。
【0422】
そして、ステップS185に進み、水平ラインローテーション戻し部63は、復元した埋め込み対象データを、フレームメモリ31に出力し、上書きする形で書き込む。さらに、ステップS185では、ビットプレーンスワップ戻し部61、垂直ラインローテーション戻し部62、水平ラインローテーション戻し部63が、復元した第1乃至第3の被埋め込みデータをそれぞれ出力し、処理を終了する。
【0423】
以上のようにして、フレームメモリ31に書き込まれた埋め込み対象データは、フレームメモリ31から読み出され、以下、フレームメモリ31に記憶された次のフレームの第3の埋め込み符号化データを対象として、図40の処理が繰り返される。
【0424】
以上のように、ビットプレーンスワップ戻し部61において、第3の埋め込み符号化データをビットプレーンスワップ方式にしたがって操作するとともに、ラインローテーション方式にしたがって操作し、その操作後のデータの相関値関数を利用して復元処理を行うようにしたので、第3の埋め込み符号化データを、第2の埋め込み符号化データと、そこに埋め込まれていた第3の被埋め込みデータに復元することができ、さらに、垂直ラインローテーション戻し部62において、第2の埋め込み符号化データを、第1の埋め込み符号化データと、そこに埋め込まれていた第2の被埋め込みデータに復元し、水平ラインローテーション部63において、第1の埋め込み符号化データを、埋め込み対象データと、そこに埋め込まれていた第1の被埋め込みデータに復元することができる。
【0425】
即ち、埋め込み対象データに対して、第1乃至第3の被埋め込みデータという多くのデータが埋め込まれている第3の埋め込み符号化データを、元の埋め込み対象データと、第1乃至第3の被埋め込みデータに復元することができる。
【0426】
次に、図42は、図39のビットプレーンスワップ戻し部32の詳細構成例を示している。
【0427】
入力データ保持部71は、フレームメモリ31(図39)から供給される第3の埋め込み符号化データとしての1フレームの画像データを一時記憶する。
【0428】
基準ライン選択部72は、埋め込み符号化データ保持部82に記憶された、既に復元された第2の埋め込み符号化データとしての画像データを構成する垂直ラインの中から、所定の垂直ラインを選択し、基準ラインとして読み出す。即ち、基準ライン選択部72は、後述する注目ライン選択部73において注目ラインとされた垂直ラインの左隣の、既に第2の埋め込み符号化データに復元されている垂直ラインを、基準ラインとして選択する。そして、基準ライン選択部72は、基準ラインを、垂直ライン間相関値計算部76に供給する。
【0429】
注目ライン選択部73は、入力データ保持部71に記憶された第3の埋め込み符号化データとしての画像データを構成する垂直ラインを、順次、注目ラインとして選択して読み出し、ビットプレーンスワップ部74に供給する。ここで、注目ライン選択部73は、例えば、第3の埋め込み符号化データとしての画像データのフレームの第1垂直ラインから、順次、右方向の垂直ラインを、注目ラインとして選択するようになっている。
【0430】
ビットプレーンスワップ部74は、最適スワップ情報選択部80から供給される最適スワップ情報に対応するスワップパターンにしたがい、注目ラインのビットプレーンをビットプレーンスワップし、そのビットプレーンスワップ後の注目ラインを、第2の埋め込み符号化データを構成する垂直ラインの復元結果として、埋め込み符号化データ保持部82に供給する。また、ビットプレーンスワップ部74は、仮スワップ情報決定部81から供給される仮スワップ情報に対応するスワップパターンにしたがい、注目ラインのビットプレーンをビットプレーンスワップし、そのビットプレーンスワップ後の注目ラインを、上述の仮復元垂直ラインとして、ラインローテーション部75に供給する。
【0431】
ラインローテーション部75は、ビットプレーンスワップ部74から供給される仮復元垂直ラインを、全通りのローテーション量でローテーションし、各ローテーション量でローテーションした仮復元垂直ライン(以下、適宜、ローテーションラインという)を、垂直ライン間相関値計算部76に供給する。
【0432】
ここで、第3の埋め込み符号化データとしての画像データのフレームを構成する垂直ラインが、N画素で構成される場合には、ラインローテーション部75は、0乃至N−1画素分のローテーション量それぞれでローテーションしたローテーションラインを求める。
【0433】
垂直ライン間相関値計算部76は、ラインローテーション部75から供給される各ローテーション量のローテーションラインと、基準ライン選択部72から供給される基準ラインとの相関値を計算し、相関値保持部77に供給する。即ち、垂直ライン間相関値計算部76は、例えば、あるローテーション量のローテーションラインを構成する画素の画素値と、その画素に対応する基準ラインを構成する画素の画素値との差分絶対値を計算し、その総和(差分絶対値和)の逆数を求める。そして、垂直ライン間相関値計算部76は、各ローテーション量のローテーションラインについて、上述の差分絶対値和の逆数を求め、各ローテーション量のローテーションラインの相関値(基準ラインとの間の相関値)として、相関値保持部77に供給する。
【0434】
関数値保持部77は、垂直ライン間相関値計算部76から供給される各ローテーション量のローテーションラインの相関値を一時記憶する。
【0435】
相関値関数形状特徴量計算部78は、関数値保持部77に記憶された相関値を参照し、仮復元垂直ラインを各ローテーション量でローテーションしたときの、基準ラインとの相関を表す相関値関数(仮復元垂直ラインについての相関値関数)の特徴量を求め、相関値関数特徴量保持部79に供給する。
【0436】
ここで、仮復元垂直ラインについての相関値関数は、ここでは、上述したように、各ローテーション量でローテーションした仮復元垂直ラインと、基準ラインとの間の相関を表すものであり、関数値保持部77に記憶された相関値は、仮復元垂直ラインについての相関値関数の、各ローテーション量における関数値の逆数になっている。
【0437】
相関値関数形状特徴量計算部78は、このような関数値保持部77に記憶された相関値を参照することにより、例えば、仮復元垂直ラインについての相関値関数の関数値の最小値を、その相関値関数の特徴量として求める。
【0438】
なお、ここでは、相関値関数の特徴量として、その関数値の最小値を求めるようにしたが、相関値関数の特徴量は、これに限定されるものではない。即ち、相関値関数の特徴量は、相関値関数が、例えば、図33に示したように、急峻な凹部を有する形状のものであるかどうかを判定することができるものであれば良く、従って、相関値関数の特徴量としては、関数値の最小値の他、例えば、変化の割合(関数の微分値)等を採用することが可能である。
【0439】
相関値関数形状特徴量保持部79は、相関値関数形状特徴量計算部78から供給される仮復元垂直ラインについての相関値関数の特徴量(ここでは、上述したように、関数値の最小値)を一時記憶する。
【0440】
なお、相関値関数形状特徴量保持部79には、相関値関数形状特徴量計算部78から、仮復元垂直ラインについての相関値関数の特徴量が供給される他、仮スワップ情報決定部81から、その仮復元垂直ラインを生成するときのスワップパターンを表す仮スワップ情報が供給されるようになっている。そして、相関値関数形状特徴量保持部79は、仮復元垂直ラインについての相関値関数と、その仮復元垂直ラインを生成するときのスワップパターンを表す仮スワップ情報と対応付け、その相関値関数と仮スワップ情報のセットを記憶するようになっている。
【0441】
最適スワップ情報選択部80は、相関値関数形状特徴量保持部79に記憶された、各スワップパターンを表す仮スワップ情報に対応付けられている相関値関数の特徴量を参照することにより、同じく相関値関数形状特徴量保持部79に記憶された仮スワップ情報の中から、急峻な凹部を有する形状の相関値関数が得られた仮復元垂直ラインのスワップパターンを表す仮スワップ情報を選択し、その選択した仮スワップ情報を、注目ラインにとって、最適なビットプレーンスワップを行うスワップパターンを表すスワップ情報として、つまり、注目ラインのビットプレーンの並びを元の並びに復元するスワップパターンを表すスワップ情報(以下、適宜、最適スワップ情報という)として、ビットプレーンスワップ部74および被埋め込みデータ保持部83に供給する。
【0442】
即ち、本実施の形態では、相関値関数の特徴量として、その関数値の最小値を採用するが、この場合は、各スワップパターンにしたがって注目ラインをビットプレーンスワップした仮復元垂直ラインについての相関値関数のうち、その関数値の最小値が最小のものが、急峻な凹部を有する形状を有しているということができる。
【0443】
そこで、最適スワップ情報選択部80は、相関値関数形状特徴量保持部79に記憶された相関値関数の特徴量のうち、最小のものを検出し、さらに、その最小の特徴量に対応付けられている仮スワップ情報を選択する。そして、最適スワップ情報選択部80は、その選択した仮スワップ情報を、相関値関数形状特徴量保持部79から読み出し、最適スワップ情報として、ビットプレーンスワップ部74および被埋め込みデータ保持部83に供給する。
【0444】
なお、最適スワップ情報選択部80は、上述のように、相関値関数の特徴量のうちの最小のものを検出するが、これは、相関値そのものについて言えば、相関値の最大値を検出することと等価である。
【0445】
仮スワップ情報決定部81は、注目ラインをビットプレーンスワップするスワップパターンを決定し、そのスワップパターンを表すスワップ情報を、仮スワップ情報として、ビットプレーンスワップ部74に供給する。
【0446】
即ち、ビットプレーンスワップ部74は、注目ラインのビットプレーンの並びを、全通りの並びに並び替えるビットプレーンスワップを行うスワップパターンを、順次設定し、そのスワップパターンを表すスワップ情報を、仮スワップ情報として、ビットプレーンスワップ部74に供給する。
【0447】
埋め込み符号化データ保持部82は、ビットプレーンスワップ部74から供給される、最適スワップ情報が表すスワップパターンにしたがってビットプレーンスワップされた注目ラインを一時記憶する。
【0448】
被埋め込みデータ保持部83は、最適スワップ情報選択部80から供給される最適スワップ情報に基づき、注目ラインに埋め込まれている第3の被埋め込みデータを復元して一時記憶する。
【0449】
次に、図43のフローチャートを参照して、図42のビットプレーンスワップ戻し部61の処理について説明する。なお、この図43の処理は、ビットプレーンスワップ戻し部61が、図40のステップS182において行う処理である。
【0450】
まず最初に、入力データ保持部71は、フレームメモリ31から入力される第3の埋め込み符号化データとしての1フレームの画像データを一時記憶し、ステップS192に進む。
【0451】
ステップS192では、注目ライン選択部73が、入力データ保持部71に記憶された第3の埋め込み符号化データとしての1フレームの画像データの垂直ラインのうち、まだ、注目ラインとしていない、より左側の垂直ラインを、注目ラインとして選択し、ビットプレーンスワップ部74に供給する。さらに、ステップS192では、基準ライン選択部72が、埋め込み符号化データ保持部82に記憶された、既に、第2の埋め込み符号化データに復元されている画像データの垂直ラインのうちの、注目ラインの左隣の垂直ラインを、基準ラインとして選択し、垂直ライン間相関値計算部76に供給する。
【0452】
ここで、第1垂直ラインは、上述したように、埋め込み処理において、処理の対象とされないので、第3の埋め込み符号化データは埋め込まれていない。このため、注目ライン選択部73は、ステップS192において、第1垂直ラインを、注目ラインとして選択した場合には、その第1垂直ラインを、そのまま、ビットプレーンスワップ部74を介して、埋め込み符号化データ保持部82に供給して記憶させる。そして、注目ライン選択部73は、ステップS192に戻り、第3の埋め込み符号化データとしての1フレームの画像データの次の垂直ライン、即ち、第2垂直ラインを、注目ラインとして選択する。
【0453】
その後、ステップS193に進み、仮スワップ情報決定部81は、仮スワップ情報を生成し、ビットプレーンスワップ部74に供給する。
【0454】
即ち、例えば、上述したように、画素値が8ビットで構成される場合には、注目ラインも、8つのビットプレーンで構成され、その並びは、8!通り存在するが、この場合、ステップS193において、仮スワップ情報決定部81は、その8!通りのビットプレーンの並びにビットプレーンスワップするスワップパターンのうち、まだ、仮スワップ情報を生成していないものの1つを、注目ラインのビットプレーンスワップに用いるスワップパターンとして決定し、そのスワップパターンを表す仮スワップ情報を生成して、ビットプレーンスワップ部74および相関値関数形状特徴量保持部79に供給する。
【0455】
そして、ステップS194に進み、ビットプレーンスワップ部74は、仮決定部81から供給される仮スワップ情報が表すスワップパターンにしたがって、注目ラインをビットプレーンスワップし、そのビットプレーンスワップ結果を、仮復元垂直ラインとして、ラインローテーション部75に供給して、ステップS195に進む。
【0456】
ステップS195では、ラインローテーション部75が、ローテーション量を、前回のローテーション量に1を加算した値にセットし、そのローテーション量だけ、仮復元垂直ラインをローテーションする。
【0457】
ここで、ステップS195において、新たな仮復元垂直ラインに対して、最初のローテーションが行われる場合、ラインローテーション部75は、ローテーション量を、0に初期化する。
【0458】
ラインローテーション部75は、仮復元垂直ラインをローテーションすると、そのローテーションした仮復元垂直ラインであるローテーションラインを、垂直ライン間相関値計算部76に供給し、ステップS196に進む。
【0459】
ステップS196では、垂直ライン間相関値計算部76は、ラインローテーション部75からのローテーションラインと、基準ライン選択部72からの基準ラインとの間の相関値を計算し、相関値保持部77に供給して記憶させる。
【0460】
その後、ステップS197に進み、ラインローテーション部75は、仮復元垂直ラインを、全通りのローテーション量でローテーションしたかどうかを判定する。ステップS197において、まだ、仮復元垂直ラインを、全通りのローテーション量でローテーションしていないと判定された場合、ステップS195に戻り、上述したように、ラインローテーション部75は、ローテーション量を、前回のローテーション量に1を加算した値にセットし、以下、同様の処理を繰り返す。
【0461】
また、ステップS197において、仮復元垂直ラインを、全通りのローテーション量でローテーションしたと判定された場合、即ち、仮復元垂直ラインを各ローテーション量でローテーションしたものそれぞれと、基準ラインとの相関値がすべて求められ、相関値保持部77に記憶された場合、ステップS198に進み、相関値関数形状特徴量計算部78は、関数値保持部77に記憶された相関値を参照することにより、上述したように、仮復元垂直ラインについての相関値関数の関数値の最小値を、その相関値関数の特徴量として求める。そして、相関値関数形状特徴量計算部78は、仮復元垂直ラインについての相関値関数の特徴量を、相関値関数形状特徴量保持部79に供給し、仮スワップ情報決定部81が出力する仮スワップ情報と対応付けて記憶させ、ステップS199に進む。
【0462】
ステップS199では、仮スワップ情報決定部81が、注目ラインを構成するビットプレーンの全通りの並びについて、仮スワップ情報を生成したかどうかを判定する。ステップS199において、注目ラインを構成するビットプレーンの全通りの並びについて、まだ、仮スワップ情報を生成していないと判定された場合、ステップS193に戻り、仮スワップ情報決定部81は、上述したように、全通りのビットプレーンの並びのうち、まだ、仮スワップ情報を生成していない並びについてのスワップパターンの1つを、注目ラインのビットプレーンスワップに用いるスワップパターンとして決定し、以下、同様の処理を繰り返す。
【0463】
一方、ステップS199において、注目ラインを構成するビットプレーンの全通りの並びについて、仮スワップ情報を生成したと判定された場合、即ち、相関値関数形状特徴量保持部79に、注目ラインについて、ビットプレーンの全通りの並びに対応する仮スワップ情報と、その仮スワップ情報に対応する相関値関数の特徴量が記憶された場合、ステップS200に進み、最適スワップ情報選択部80は、相関値関数形状特徴量保持部79に記憶された、各スワップパターンを表す仮スワップ情報に対応付けられている相関値関数の特徴量を参照することにより、同じく相関値関数形状特徴量保持部79に記憶された仮スワップ情報の中から、急峻な凹部を有する形状の相関値関数が得られた仮復元垂直ラインのスワップパターンを表す仮スワップ情報を選択し、最適スワップ情報として決定して、ビットプレーンスワップ部74および被埋め込みデータ保持部83に供給する。
【0464】
即ち、ステップS200では、最適スワップ情報選択部80は、相関値関数形状特徴量保持部79に記憶された相関値関数の特徴量のうち、最小のものを検出し、さらに、その最小の特徴量に対応付けられている仮スワップ情報を選択する。そして、最適スワップ情報選択部80は、その選択した仮スワップ情報を、相関値関数形状特徴量保持部79から読み出し、最適スワップ情報として、ビットプレーンスワップ部74および被埋め込みデータ保持部83に供給する。
【0465】
そして、ステップS201に進み、ビットプレーンスワップ部74と、被埋め込みデータ保持部83は、最適スワップ情報に基づいて、注目ラインに対応する第2の埋め込み符号化データの垂直ラインと、そこに埋め込まれていた第3の被埋め込みデータを、それぞれ復元する。
【0466】
即ち、ステップS201では、ビットプレーンスワップ部74は、最適スワップ情報選択部80から供給される最適スワップ情報に対応するスワップパターンにしたがい、注目ラインのビットプレーンをビットプレーンスワップすることにより、第2の埋め込み符号化データを構成する垂直ラインを復元し、埋め込み符号化データ保持部82に供給して記憶させる。さらに、ステップS201では、被埋め込みデータ保持部83が、最適スワップ情報選択部80から供給される最適スワップ情報に基づき、注目ラインに埋め込まれている第3の被埋め込みデータを復元して一時記憶する。
【0467】
その後、ステップS202に進み、注目ライン選択部73は、入力データ保持部71に記憶された第3の埋め込み符号化データとしての画像データのフレームのすべての垂直ラインを、注目ラインとして選択したかどうかを判定する。ステップS202において、入力データ保持部71に記憶された第3の埋め込み符号化データとしての画像データのフレームのすべての垂直ラインを、まだ、注目ラインとして選択していないと判定された場合、ステップS192に戻り、注目ライン選択部73が、入力データ保持部71に記憶された第3の埋め込み符号化データとしての1フレームの画像データの垂直ラインのうち、まだ、注目ラインとしていない、より左側の垂直ラインを、注目ラインとして選択し、以下、上述の場合と同様の処理を繰り返す。
【0468】
一方、ステップS202において、入力データ保持部71に記憶された第3の埋め込み符号化データとしての画像データのフレームのすべての垂直ラインを、注目ラインとして選択したと判定された場合、即ち、入力データ保持部71に記憶された第3の埋め込み符号化データとしての1フレームの画像データが、第2の埋め込み符号化データと、そこに埋め込まれていた第3の被埋め込みデータに復元され、その第2の埋め込み符号化データと第3の被埋め込みデータが、埋め込み符号化データ保持部82と被埋め込みデータ保持部83にそれぞれ記憶された場合、ステップS203に進み、埋め込み符号化データ保持部82は、そこに記憶された第2の埋め込み符号化データを読み出し、垂直ラインローテーション戻し部62(図39)に供給する。さらに、ステップS203では、被埋め込みデータ保持部83が、そこに記憶された第3の被埋め込みデータを読み出して出力し、処理を終了する。
【0469】
なお、本実施の形態では、埋め込み処理において、注目ラインのビットプレーンの全通りの並びを許可するビットプレーンスワップを行うこととしたが、下位のビットのビットプレーンどうしの入れ替えしか行われないようなビットプレーンスワップは禁止する(そのようなビットプレーンスワップを、スワップパターンから除外する)ようにすることが可能である。
【0470】
即ち、垂直ラインについて、その下位ビットのビットプレーンどうしのみの入れ替えを行った場合(例えば、最下位ビットのビットプレーンと、その1ビット上位のビットのビットプレーンとの入れ替えを行った場合)と、ビットプレーンの入れ替えを行わない場合においては、相関値関数に、大きな違いが現れないことがある。そして、この場合、急峻な凹部を有する相関値関数の検出を誤り、埋め込み符号化データを、正しく復元すること(元に戻すこと)ができなくなることがある。
【0471】
このような復元の誤りは、下位ビットのビットプレーンどうしのみの入れ替えを禁止することで防止することができる。
【0472】
なお、上述のような復元の誤りは、垂直ラインについて、その下位ビットのビットプレーンどうしのみの入れ替えを行った場合と、ビットプレーンの入れ替えを行わない場合とで、画素値がほとんど変化しないことに起因する。
【0473】
このようなビットプレーンスワップ前と後で、画素値の変化が少ないことに起因する復元の誤りは、そのような画素値の変化が少ないビットプレーンスワップを禁止する(行わない)ようにする他、画素値を表すバイナリコードを、0(または1)の数が同一のバイナリコードで表現される画素値どうしの間隔が均一に粗になるように画素値が割り当てられたバイナリコードに変換して、埋め込み処理および復元処理を行うことによっても防止することができる。
【0474】
即ち、例えば、いま、説明を簡単にするために、注目ラインとしての垂直ラインが1画素で構成され、その画素値が8ビットで表現されるものとする。
【0475】
この場合、注目ラインを構成する画素の画素値が、例えば、「2」であるとすると、そのバイナリコードは、「00000010」であるから、このバイナリコードをビットプレーンスワップして得られるビットプレーンとしてのバイナリコードは、「00000001」、「00000010」、「00000100」、「00001000」、「00010000」、「00100000」、「01000000」、「10000000」の8通りが存在する。
【0476】
そして、この8通りのバイナリコード「00000001」、「00000010」、「00000100」、「00001000」、「00010000」、「00100000」、「01000000」、「10000000」が表す画素値は、それぞれ、「1」、「2」、「4」、「8」、「16」、「32」、「64」、「128」であり、この8パターンのバイナリコードに対応する画素値の間隔は、密のところもあれば、粗のところもある。即ち、画素値が小さい部分では、画素値どうしの間隔は密になり、画素値が大きい部分では、画素値どうしの間隔は粗になる。
【0477】
このため、注目ラインを構成する画素値「2」のように、間隔が密になっている画素値については、その下位ビットのみを入れ替えるビットプレーンスワップを行っても、画素値が、あまり変化しない。
【0478】
即ち、例えば、画素値「2」のバイナリコード「00000010」における最下位ビット(のビットプレーン)と、その1ビット上位のビット(のビットプレーン)とを入れ替えるビットプレーンスワップを行うと、バイナリコード「00000001」が得られるが、このビットプレーンスワップ後のバイナリコード「00000001」が表す画素値は「1」であり、ビットプレーンスワップ前の画素値「2」と1しか変わらない。
【0479】
このため、ビットプレーンスワップ前と後の注目ラインについての相関値も、あまり差のないものとなり、その結果、復元を誤る可能性が高くなる。
【0480】
そこで、0(または1)の数が同一のバイナリコードで表現される画素値どうしの間隔が均一に粗になるように画素値が割り当てられたバイナリコード(以下、適宜、新コードという)を採用し、注目ラインを構成する画素の画素値を表すバイナリコード(以下、適宜、従来コードという)を、新コードに変換することで、下位ビットのみを入れ替えるビットプレーンスワップであっても、そのビットプレーンスワップの前と後で、値が大きく異なる画素値を得ることが可能となる。
【0481】
即ち、図44および図45は、8ビットのバイナリコードに関して、従来コードが表す画素値と、新コードに割り当てられている画素値との対応関係を示している。
【0482】
図44および図45において、codeの列は、8ビットのバイナリコードとしての新コードおよび従来コードを表し、oldの列は、codeの列におけるバイナリコードを従来コードとして見た場合の、その従来コードが表す画素値を表す。また、newの列は、codeの列におけるバイナリコードを新コードとして見た場合の、その新コードに割り当てられている画素値を表す。
【0483】
新コードについては、0または1の数が同一の新コードに対して、各新コードに対応する画素値どうしの間隔が、均一で、かつ、なるべく粗になるように、画素値が割り当てられており、その結果、下位ビットのみを入れ替えるビットプレーンスワップであっても、そのビットプレーンスワップの前と後で、値が大きく異なる画素値を得ることができるようになっている。
【0484】
即ち、図46は、図44および図46における8ビットの新コードのうち、「1」が6ビットだけのもの(従って、「0」が2ビットだけのもの)の並びの全28パターンと、対応する画素値とを示している。
【0485】
例えば、図46の上から6番目のバイナリコード「01111101」と、7番目のバイナリコード「01111110」とは、その最下位ビットとその1ビット上位のビットとを入れ替えた関係にあるが、従来コードでは、それぞれ、画素値「125」と「126」を表すから、その差は1しかない。
【0486】
これに対して、バイナリコード「01111101」と、「01111110」とは、新コードでは、図46に示すように、それぞれ、画素値「49」と「62」を表すから、その差は13となる。
【0487】
従って、新コードによれば、ビットプレーンスワップの前と後で、値が大きく異なる画素値を得ることが可能となり、埋め込み処理および復元処理を、新コードを採用して行うことによって、ビットプレーンスワップの前と後で画素値があまり変化しないことに起因する復元の誤りを防止することができる。
【0488】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0489】
そこで、図47は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0490】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
【0491】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。
【0492】
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部108で受信し、内蔵するハードディスク105にインストールすることができる。
【0493】
コンピュータは、CPU(Central Processing Unit)102を内蔵している。CPU102には、バス101を介して、入出力インタフェース110が接続されており、CPU102は、入出力インタフェース110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、また、CPU102は、ハードディスク105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部108で受信されてハードディスク105にインストールされたプログラム、またはドライブ109に装着されたリムーバブル記録媒体111から読み出されてハードディスク105にインストールされたプログラムを、RAM(Random Access Memory)104にロードして実行する。これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、LCD(Liquid CryStal Display)やスピーカ等で構成される出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0494】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0495】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0496】
なお、被埋め込みデータは、特に限定されるものではなく、例えば、画像データや、音声データ、テキスト、コンピュータプログラム、制御信号、その他のデータを、被埋め込みデータとして用いることが可能である。
【0497】
また、本実施の形態では、埋め込み対象データとして画像データを採用し、被埋め込みデータを、その画像データに埋め込むようにしたが、埋め込み対象データとしては、その他、例えば、音声データ等を採用することも可能である。即ち、例えば、時系列の音声データを、適当なフレームに区切り、各フレームの音声データを、被埋め込みデータにしたがって入れ替えることで、被埋め込みデータを、音声に埋め込むことが可能である。
【0498】
さらに、本実施の形態では、埋め込み対象データの水平ラインをローテーションし、さらに、垂直ラインをローテーションして得られる第2の埋め込み符号化データに対して、ビットプレーンスワップ方式により、第3の被埋め込みデータを埋め込むようにしたが、その他、第3の被埋め込みデータは、埋め込み対象データの水平ラインまたは垂直ラインのいずれか一方のみをローテーションして得られる埋め込み符号化データに対して埋め込むことも可能である。
【0499】
また、本実施の形態では、ラインローテーション方式による埋め込みを行い、さらに、ビットプレーンスワップ方式による埋め込みを行うことで、より多くの被埋め込みデータを埋め込むようにしたが、その逆の順番で埋め込みを行うようにすることも可能である。さらに、このような多くの被埋め込みデータの埋め込みは、その他の任意の2つの方式の埋め込みを採用することで行うことが可能である。さらに、埋め込みは、3以上の複数の方式を採用して行うことも可能である。但し、採用する複数の方式の埋め込みは、上述したように、その埋め込みのための操作として、重複する操作を有しないものであることが望ましい。
【0500】
【発明の効果】
本発明の第1のデータ処理装置およびデータ処理方法、並びにプログラムによれば、情報が有するエネルギの偏りを利用して他の情報が埋め込まれた情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、埋め込み対象データが、任意の被埋め込みデータに対応して操作され、埋め込み対象データに任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データが生成される。そして、第1の操作ルールとは異なる第2の操作ルールにしたがい、第1の操作ルールによる埋め込み符号化データが、他の任意の被埋め込みデータに対応して操作され、第1の操作ルールによる埋め込み符号化データに他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データが生成される。従って、より多くの被埋め込みデータを埋め込むことが可能となる。
【0501】
本発明の第2のデータ処理装置およびデータ処理方法、並びにプログラムによれば、第2の操作ルールによる埋め込み符号化データが、第2の操作ルールにしたがって操作されるとともに、第1の操作ルールにしたがって操作され、その操作によって得られるデータのエネルギの偏りを利用して、第1の操作ルールによる埋め込み符号化データと他の任意の被埋め込みデータが復元される。そして、第1の操作ルールによる埋め込み符号化データが、第1の操作ルールにしたがって操作され、その操作によって得られるデータのエネルギの偏りを利用して、埋め込み対象データと任意の被埋め込みデータが復元される。従って、より多くの被埋め込みデータが埋め込まれた埋め込み符号化データを、元の埋め込み対象データと被埋め込みデータに復元することが可能となる。
【図面の簡単な説明】
【図1】ラインローテーション方式による埋め込み処理と復元処理の概要を説明する図である。
【図2】埋め込み符号化/復元システムの一実施の形態の構成例を示すブロック図である。
【図3】埋め込み符号化器3の構成例を示すブロック図である。
【図4】復元器6の構成例を示すブロック図である。
【図5】埋め込み対象データとしての画像データを示す図である。
【図6】相関性を利用した埋め込み/復元を説明するための図である。
【図7】相関性を利用した埋め込み/復元を説明するための図である。
【図8】埋め込み処理を説明するフローチャートである。
【図9】復元処理を説明するフローチャートである。
【図10】連続性を利用した埋め込み/復元を説明する図である。
【図11】埋め込み処理を説明するフローチャートである。
【図12】埋め込み処理および復元処理を説明する図である。
【図13】復元処理を説明するフローチャートである。
【図14】相似性を利用した埋め込み/復元を説明するための図である。
【図15】相似性を利用した埋め込み/復元を説明するための図である。
【図16】埋め込み処理を説明するフローチャートである。
【図17】埋め込み処理および復元処理を説明する図である。
【図18】復元処理を説明するフローチャートである。
【図19】埋め込み処理を説明するためのフローチャートである。
【図20】復元処理を説明するためのフローチャートである。
【図21】ビットプレーンスワップ方式による埋め込み処理を説明するための図である。
【図22】埋め込み処理を説明するためのフローチャートである。
【図23】ビットプレーンの相関の計算方法を説明するための図である。
【図24】ビットプレーンスワップ方式による復元処理を説明するための図である。
【図25】復元処理を説明するためのフローチャートである。
【図26】埋め込み処理を説明するためのフローチャートである。
【図27】ローテーションを説明するための図である。
【図28】埋め込み処理の結果を説明するための図である。
【図29】ラインローテーション方式による復元処理を説明するための図である。
【図30】復元処理を説明するためのフローチャートである。
【図31】水平ラインと垂直ラインの両方をローテーションする埋め込み処理と復元処理を説明する図である。
【図32】相関値関数を利用して復元可能な埋め込み処理と復元処理を説明する図である。
【図33】実際の画像の相関値関数を示す図である。
【図34】埋め込み部22の構成例を示すブロック図である。
【図35】埋め込み部22による埋め込み処理を説明するフローチャートである。
【図36】ビットプレーンスワップ埋め込み部43の処理を説明するための図である。
【図37】ビットプレーンスワップ埋め込み部43の構成例を示すブロック図である。
【図38】ビットプレーンスワップ埋め込み部43の処理を説明するフローチャートである。
【図39】復元部32の構成例を示すブロック図である。
【図40】復元部32の処理を説明するフローチャートである。
【図41】ビットプレーンスワップ戻し部61の処理を説明するための図である。
【図42】ビットプレーンスワップ戻し部61の構成例を示すブロック図である。
【図43】ビットプレーンスワップ戻し部61の処理を説明するフローチャートである。
【図44】新コードと画素値との対応関係を示す図である。
【図45】新コードと画素値との対応関係を示す図である。
【図46】新コードと画素値との対応関係を示す図である。
【図47】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
1 埋め込み対象データベース, 2 被埋め込みデータベース, 3 埋め込み符号化器, 4 記録媒体, 5 伝送媒体, 6 復元器, 11 符号化装置, 12 復号装置, 21 フレームメモリ, 22 埋め込み部, 31 フレームメモリ, 32 復元部, 41 水平ラインローテーション埋め込み部, 42 垂直ラインローテーション埋め込み部, 43 ビットプレーンスワップ埋め込み部, 51 入力データ保持部, 52 注目ライン選択部, 53 被埋め込みデータ保持部, 54 スワップ情報取得部, 55 ビットプレーンスワップ部, 61 ビットプレーンスワップ戻し部, 62 垂直ラインローテーション戻し部, 63 水平ラインローテーション戻し部,71 入力データ保持部, 72 基準ライン選択部, 73 注目ライン選択部, 74 ビットプレーンスワップ部, 75 ラインローテーション部,76 垂直ライン間相関値計算部, 77 相関値保持部, 78 相関値関数形状特徴量計算部, 79 相関値形状特徴量保持部, 80 最適スワップ情報選択部, 81 仮スワップ情報決定部, 82 埋め込み符号化データ保持部, 83 被埋め込みデータ保持部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部,107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体
Claims (15)
- データを埋め込む対象である埋め込み対象データを操作することにより、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込み、前記被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを出力するデータ処理装置であって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込み手段と、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込み手段と
を備え、
前記埋め込み対象データは、画像データであり、
前記第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、前記第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールである
ことを特徴とするデータ処理装置。 - 前記第1の操作ルールは、前記画像データの相関性を利用して前記第1の操作ルールによる埋め込み符号化データが前記画像データに復元される操作ルールである
ことを特徴とする請求項1に記載のデータ処理装置。 - データを埋め込む対象である埋め込み対象データを操作することにより、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込み、前記被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを出力するデータ処理装置であって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込み手段と、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込み手段と
を備え、
前記埋め込み対象データは、画像データであり、
前記第1の埋め込み手段は、前記画像データにおける所定方向に並ぶ画素列を、前記任意の被埋め込みデータに対応する分だけ、前記所定方向にローテーションすることを、前記第1の操作ルールとして、前記画像データに前記任意の被埋め込みデータを埋め込んだ前記第1の操作ルールによる埋め込み符号化データを生成し、
前記第2の埋め込み手段は、前記画像データにおける所定方向に並ぶ画素列を前記所定方向にローテーションすることにならない操作を行う操作ルールを、前記第2の操作ルールとして、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ前記第2の操作ルールによる埋め込み符号化データを生成する
ことを特徴とするデータ処理装置。 - 前記第2の埋め込み手段は、前記第1の操作ルールによる埋め込み符号化データとされた前記画像データの複数の画素の画素値を表すビット列の各ビットごとのビットプレーンを、前記他の任意の被埋め込みデータに対応して入れ替えるビットプレーンスワップを行うことを、前記第2の操作ルールとして、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ前記第2の操作ルールによる埋め込み符号化データを生成する
ことを特徴とする請求項3に記載のデータ処理装置。 - 前記第1の埋め込み手段は、
前記画像データを、第1の被埋め込みデータに対応して、水平または垂直方向のうちのいずれか1つの方向にローテーションすることにより、前記画像データに対して、前記第1の被埋め込みデータを埋め込んだ第1の埋め込み符号化データを生成し、
さらに、前記第1の埋め込み符号化データを、第2の被埋め込みデータに対応して、水平または垂直方向の垂直方向のうちの他の方向にローテーションすることにより、前記第1の埋め込み符号化データに対して、前記第2の被埋め込みデータを埋め込んだ第2の埋め込み符号化データを生成し、
前記第2の埋め込み手段は、前記第2の埋め込み符号化データを、第3の被埋め込みデータに対応してビットプレーンスワップすることにより、前記第2の埋め込み符号化データに対して、前記第3の被埋め込みデータを埋め込んだ第3の埋め込み符号化データを生成する
ことを特徴とする請求項4に記載のデータ処理装置。 - データを埋め込む対象である埋め込み対象データを操作することにより、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込み、前記被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを出力するデータ処理方法であって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込みステップと、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込みステップと
を備え、
前記埋め込み対象データは、画像データであり、
前記第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、前記第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールである
ことを特徴とするデータ処理方法。 - データを埋め込む対象である埋め込み対象データを操作することにより、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込み、前記被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを出力するデータ処理を、コンピュータに行わせるプログラムであって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成する第1の埋め込みステップと、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する第2の埋め込みステップと
を備え、
前記埋め込み対象データは、画像データであり、
前記第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作する操作ルールであり、前記第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作する操作ルールである
ことを特徴とするプログラム。 - データを埋め込む対象である埋め込み対象データを操作することにより生成された、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを、前記埋め込み対象データと被埋め込みデータに復元するデータ処理装置であって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成し、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する
ことにより得られた前記第2の操作ルールによる埋め込み符号化データを、前記第2の操作ルールにしたがって操作するとともに、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、前記第1の操作ルールによる埋め込み符号化データと前記他の任意の被埋め込みデータを復元する第1の復元手段と、
前記第1の操作ルールによる埋め込み符号化データを、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、前記埋め込み対象データと前記任意の被埋め込みデータを復元する第2の復元手段と
を備え、
前記埋め込み対象データは、画像データであり、
前記第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、前記第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものである
ことを特徴とするデータ処理装置。 - 前記第1の操作ルールは、前記埋め込み対象データの相関性を利用して前記第1の操作ルールによる埋め込み符号化データを前記埋め込み対象データに復元する操作ルールであり、
前記第1の復元手段は、
前記第2の操作ルールによる埋め込み符号化データを、前記第2の操作ルールにしたがって操作する第1の操作手段と、
前記第1の操作手段による操作によって得られたデータを、前記第1の操作ルールにしたがって操作する第2の操作手段と、
前記第2の操作手段による操作によって得られたデータの相関を求める相関演算手段と、
前記相関演算手段によって求められた相関に基づいて、前記第1の操作手段における前記第2の操作ルールによる埋め込み符号化データの操作を決定し、その操作を表す操作情報を出力する操作決定手段と
を有し、
前記操作決定手段が出力する操作情報に基づいて、前記第2の操作ルールによる埋め込み符号化データを、前記第1の操作ルールによる埋め込み符号化データと前記他の任意の被埋め込みデータに復元する
ことを特徴とする請求項8に記載のデータ処理装置。 - 前記第1の復元手段は、前記相関演算手段によって求められた相関を表す関数の特徴量を求める特徴量演算手段をさらに有し、
前記操作決定手段は、前記特徴演算手段において求められる前記相関を表す関数の特徴量に基づいて、前記第2の操作ルールによる埋め込み符号化データの操作を決定する
ことを特徴とする請求項9に記載のデータ処理装置。 - 前記第2の復元手段は、前記第1の操作ルールによる埋め込み符号化データを、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータの相関に基づいて、前記埋め込み対象データと前記任意の被埋め込みデータを復元する
ことを特徴とする請求項9に記載のデータ処理装置。 - 前記第2の操作ルールによる埋め込み符号化データは、
前記埋め込み対象データとしての画像データにおける所定方向に並ぶ画素列を、前記任意の被埋め込みデータに対応する分だけ、前記所定方向にローテーションすることを、前記第1の操作ルールとして、前記画像データに前記任意の被埋め込みデータを埋め込んだ前記第1の操作ルールによる埋め込み符号化データを生成し、
前記第1の操作ルールによる埋め込み符号化データとされた前記画像データの複数の画素の画素値を表すビット列の各ビットごとのビットプレーンを、前記他の任意の被埋め込みデータに対応して入れ替えるビットプレーンスワップを行うことを、前記第2の操作ルールとして、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ前記第2の操作ルールによる埋め込み符号化データを生成する
ことにより得られたものであり、
前記第1の復元手段は、
前記第2の操作ルールによる埋め込み符号化データとされた前記画像データをビットプレーンスワップするビットプレーンスワップ手段と、
前記ビットプレーンスワップ手段によるビットプレーンスワップによって得られたデータとしての画像データにおける前記所定方向に並ぶ画素列をローテーションするローテーション手段と、
前記ローテーション手段によるローテーションによって得られたデータとしての画像データの相関を求める相関演算手段と、
前記相関演算手段によって求められた相関に基づいて、前記ビットプレーンスワップ手段における、前記第2の操作ルールによる埋め込み符号化データとされた前記画像データの操作を決定し、その操作を表す操作情報を出力する操作決定手段と
を有し、
前記操作決定手段が出力する操作情報に基づいて、前記第2の操作ルールによる埋め込み符号化データとされた前記画像データを、前記第1の操作ルールによる埋め込み符号化データと前記他の任意の被埋め込みデータを復元する
ことを特徴とする請求項8に記載のデータ処理装置。 - 前記第2の操作ルールによる埋め込み符号化データは、
前記画像データを、第1の被埋め込みデータに対応して、水平または垂直方向のうちのいずれか1つの方向にローテーションすることにより、前記画像データに対して、前記第1の被埋め込みデータを埋め込んだ第1の埋め込み符号化データを生成し、
前記第1の埋め込み符号化データを、第2の被埋め込みデータに対応して、水平または垂直方向のうちの他の方向にローテーションすることにより、前記第1の埋め込み符号化データに対して、前記第2の被埋め込みデータを埋め込んだ第2の埋め込み符号化データを生成し、
前記第2の埋め込み符号化データを、第3の被埋め込みデータに対応してビットプレーンスワップすることにより、前記第2の埋め込み符号化データに対して、前記第3の被埋め込みデータを埋め込んだ前記第3の埋め込み符号化データを生成する
ことにより得られた前記第3の埋め込み符号化データであり、
前記ローテーション手段は、前記ビットプレーンスワップ手段によるビットプレーンスワップによって得られたデータとしての画像データにおける前記他の方向に並ぶ画素列をローテーションし、
前記相関演算手段は、前記ローテーション手段によるローテーションによって得られたデータとしての画像データの、前記1つの方向に隣接する画素列どうしの相関を求める
ことを特徴とする請求項12に記載のデータ処理装置。 - データを埋め込む対象である埋め込み対象データを操作することにより生成された、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを、前記埋め込み対象データと被埋め込みデータに復元するデータ処理方法であって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成し、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する
ことにより得られた前記第2の操作ルールによる埋め込み符号化データを、前記第2の操作ルールにしたがって操作するとともに、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、前記第1の操作ルールによる埋め込み符号化データと前記他の任意の被埋め込みデータを復元する第1の復元ステップと、
前記第1の操作ルールによる埋め込み符号化データを、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、前記埋め込み対象データと前記任意の被埋め込みデータを復元する第2の復元ステップと
を備え、
前記埋め込み対象データは、画像データであり、
前記第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、前記第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものである
ことを特徴とするデータ処理方法。 - データを埋め込む対象である埋め込み対象データを操作することにより生成された、前記埋め込み対象データに埋め込まれる被埋め込みデータを前記埋め込み対象データに埋め込んだ埋め込み符号化データを、前記埋め込み対象データと被埋め込みデータに復元するデータ処理を、コンピュータに行わせるプログラムであって、
情報が有するエネルギの偏りを利用して他の情報が埋め込まれた前記情報が元の情報に復元されるように操作を行う第1の操作ルールにしたがい、前記埋め込み対象データを、任意の被埋め込みデータに対応して操作し、前記埋め込み対象データに前記任意の被埋め込みデータを埋め込んだ第1の操作ルールによる埋め込み符号化データを生成し、
前記第1の操作ルールとは異なる第2の操作ルールにしたがい、前記第1の操作ルールによる埋め込み符号化データを、他の任意の被埋め込みデータに対応して操作し、前記第1の操作ルールによる埋め込み符号化データに前記他の任意の被埋め込みデータを埋め込んだ第2の操作ルールによる埋め込み符号化データを生成する
ことにより得られた前記第2の操作ルールによる埋め込み符号化データを、前記第2の操作ルールにしたがって操作するとともに、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、前記第1の操作ルールによる埋め込み符号化データと前記他の任意の被埋め込みデータを復元する第1の復元ステップと、
前記第1の操作ルールによる埋め込み符号化データを、前記第1の操作ルールにしたがって操作し、その操作によって得られるデータのエネルギの偏りを利用して、前記埋め込み対象データと前記任意の被埋め込みデータを復元する第2の復元ステップと
を備え、
前記埋め込み対象データは、画像データであり、
前記第1と2の操作ルールのうちの一方は、画像データを構成する画素の位置を、空間または時間方向に操作するものであり、前記第1と2の操作ルールのうちの他方は、画像データを構成する画素をレベル方向に操作するものである
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001320766A JP3940986B2 (ja) | 2001-10-18 | 2001-10-18 | データ処理装置およびデータ処理方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001320766A JP3940986B2 (ja) | 2001-10-18 | 2001-10-18 | データ処理装置およびデータ処理方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003125194A JP2003125194A (ja) | 2003-04-25 |
JP3940986B2 true JP3940986B2 (ja) | 2007-07-04 |
Family
ID=19138106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001320766A Expired - Fee Related JP3940986B2 (ja) | 2001-10-18 | 2001-10-18 | データ処理装置およびデータ処理方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3940986B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102550009A (zh) * | 2009-10-14 | 2012-07-04 | 索尼公司 | 用于彩色图像的联合标量嵌入式图形编码 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4971881B2 (ja) * | 2007-06-20 | 2012-07-11 | キヤノン株式会社 | 画像符号化装置及び画像復号装置、並びにそれらの制御方法 |
CN102256097B (zh) * | 2010-05-19 | 2013-06-05 | 车王电子股份有限公司 | 影像信号传输监控方法及其装置 |
-
2001
- 2001-10-18 JP JP2001320766A patent/JP3940986B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102550009A (zh) * | 2009-10-14 | 2012-07-04 | 索尼公司 | 用于彩色图像的联合标量嵌入式图形编码 |
Also Published As
Publication number | Publication date |
---|---|
JP2003125194A (ja) | 2003-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7738711B2 (en) | Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal | |
Liao et al. | New cubic reference table based image steganography | |
KR100922932B1 (ko) | 통신 장치, 통신 방법, 및 이에 사용되는 저장 매체 | |
Tang et al. | Reversible data hiding with differential compression in encrypted image | |
Dasgupta et al. | Optimized video steganography using genetic algorithm (GA) | |
JP4822304B2 (ja) | 画像処理装置および画像処理方法、並びに記録媒体 | |
Chang et al. | High capacity reversible data hiding scheme based on residual histogram shifting for block truncation coding | |
Wang et al. | A path optional lossless data hiding scheme based on VQ joint neighboring coding | |
JP4147700B2 (ja) | 符号化装置および符号化方法、並びに記録媒体 | |
Chang et al. | Reversible steganographic method using SMVQ approach based on declustering | |
He et al. | Reversible data hiding based on multilevel histogram modification and pixel value grouping | |
Pal et al. | A secure reversible color image watermarking scheme based on LBP, lagrange interpolation polynomial and weighted matrix | |
JP2000228721A (ja) | 透かしの挿入及びデジタル信号の認証方法 | |
Chang et al. | Data hiding for vector quantization images using mixed-base notation and dissimilar patterns without loss of fidelity | |
JP4556087B2 (ja) | データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体 | |
JP4182603B2 (ja) | 符号化装置および符号化方法、復号装置および復号方法、記録媒体、並びにデータ処理装置 | |
JP4232118B2 (ja) | データ処理装置、データ処理方法、およびプログラム | |
Yang et al. | Enhanced stego-image quality and embedding capacity for the partial reversible data hiding scheme | |
JP3940986B2 (ja) | データ処理装置およびデータ処理方法、並びにプログラム | |
AlShehri et al. | Fragile watermarking for image authentication using BRINT and ELM | |
Wu | Efficient reversible data hiding simultaneously exploiting adjacent pixels | |
Niu et al. | GIS watermarking: hiding data in 2D vector maps | |
JP4556147B2 (ja) | 復号装置および復号方法、記録媒体、並びにデータ処理装置 | |
JP3944821B2 (ja) | データ処理装置、データ処理方法、およびプログラム | |
Cheng et al. | A reversible data hiding scheme for VQ indices using histogram shifting of prediction errors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041004 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060713 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060906 |
|
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: 20070309 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070322 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100413 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110413 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120413 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130413 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130413 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140413 Year of fee payment: 7 |
|
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 |