(57)【特許請求の範囲】
【請求項１】
Ｎビットで表されるデータどうしの差分に相当する差分データを求めるデータ処理装置であって、
第１のデータと、２Nとを加算し、その加算値を求める加算手段と、
前記加算値から、第２のデータを減算し、その減算値を求める減算手段と、
前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する抽出手段と
を含むデータ処理装置。
【請求項２】
前記第１および第２のデータは、画素値である
請求項１に記載のデータ処理装置。
【請求項３】
前記第２のデータは、前記第１のデータを予測符号化するときに参照する画素値である
請求項２に記載のデータ処理装置。
【請求項４】
前記差分データを符号化する符号化手段をさらに含む
請求項１に記載のデータ処理装置。
【請求項５】
Ｎビットで表されるデータどうしの差分に相当する差分データを求めるデータ処理方法であって、
第１のデータと、２Nとを加算し、その加算値を求める加算ステップと、
前記加算値から、第２のデータを減算し、その減算値を求める減算ステップと、
前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する抽出ステップと
を含むデータ処理方法。
【請求項６】
Ｎビットで表されるデータどうしの差分に相当する差分データを元のデータに復元するデータ処理装置であって、
第１のデータと、２Nとを加算し、その加算値を求め、
前記加算値から、第２のデータを減算し、その減算値を求め、
前記減算値の下位Ｎビットを抽出する
ことにより得られる、前記第１のデータと第２のデータとの差分に相当する差分データを、前記第２のデータと加算し、その加算値を求める加算手段と、
前記加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する抽出手段と
を含むデータ処理装置。
【請求項７】
前記第１および第２のデータは、画素値である
請求項６に記載のデータ処理装置。
【請求項８】
前記第２のデータは、前記第１のデータを予測符号化するときに参照する画素値である
請求項７に記載のデータ処理装置。
【請求項９】
符号化された符号化データを受信し、その符号化データを復号して、前記差分データを出力する復号手段をさらに含む
請求項６に記載のデータ処理装置。
【請求項１０】
Ｎビットで表されるデータどうしの差分に相当する差分データを元のデータに復元するデータ処理方法であって、
第１のデータと、２Nとを加算し、その加算値を求め、
前記加算値から、第２のデータを減算し、その減算値を求め、
前記減算値の下位Ｎビットを抽出する
ことにより得られる、前記第１のデータと第２のデータとの差分に相当する差分データを、前記第２のデータと加算し、その加算値を求める加算ステップと、
前記加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する抽出ステップと
を含むデータ処理方法。
【請求項１１】
Ｎビットで表されるデータどうしの差分に相当する差分データを求め、その差分データを元のデータに復元するデータ処理装置であって、
第１のデータと、２Nとを加算し、その加算値である第１の加算値を求める第１の加算手段と、
前記第１の加算値から、第２のデータを減算し、その減算値を求める減算手段と、
前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する第１の抽出手段と、
前記差分データを、前記第２のデータと加算し、その加算値である第２の加算値を求める第２の加算手段と、
前記第２の加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する第２の抽出手段と
を含むデータ処理装置。
【請求項１２】
Ｎビットで表されるデータどうしの差分に相当する差分データを求め、その差分データを元のデータに復元するデータ処理方法であって、
第１のデータと、２Nとを加算し、その加算値である第１の加算値を求める第１の加算ステップと、
前記第１の加算値から、第２のデータを減算し、その減算値を求める減算ステップと、
前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する第１の抽出ステップと、
前記差分データを、前記第２のデータと加算し、その加算値である第２の加算値を求める第２の加算ステップと、
前記第２の加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する第２の抽出ステップと
を含むデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法に関し、特に、例えば、データどうしの差分を求める処理や、その差分を元のデータに復元する処理を、ビット数を増加させずに高速で行うことができるようにするデータ処理装置およびデータ処理方法に関する。
【０００２】
【従来の技術】
例えば、従来より、画像の画質の劣化を極力抑えて、高圧縮率で符号化する方法の１つとして、予測符号化がある。予測符号化は、符号化対象の画素（画素値）を、他の画素を参照することで予測し、その予測結果の、真値（符号化対象の画素）に対する予測誤差を符号化するものであり、符号化対象の画素をＡと、参照される画素（参照画素）をＢと、予測誤差をＣと、それぞれ表すと、予測誤差Ｃは、式Ｃ＝Ａ−Ｂで表される。
【０００３】
ここで、符号化対象の画像が静止画であれば、例えば、符号化対象の画素Ａと同一フレーム（またはフィールド）にある、その画素Ａの近傍の画素を、参照画素Ｂとして用いることができる。また、符号化対象の画像が動画であれば、例えば、符号化対象の画素Ａのフレームに近接するフレームにある画素を、参照画素Ｂとして用いることができる。例えば、動画の符号化方式であるＭＰＥＧ（Moving Picture Experts Group）方式では、符号化対象の画素Ａのフレームに近接するフレームが動き補償され、その動き補償後の画素が、参照画素Ｂとして用いられる。
【０００４】
【発明が解決しようとする課題】
ところで、いま、符号化対象の画像を構成する画素が、Ｎビットで表されるとすると、画像どうしの単純な差分である予測誤差は、最大でＮ＋１ビットで表される値になる（例えば、画素が、０乃至２５５の範囲の８ビットで表されるとすると、そのような画素どうしの単純な差分は、−２５５乃至＋２５５の範囲の値となり、その表現に、９ビットが必要となる）。この場合、予測誤差のビット数が、元の画素のビット数よりも増加することになり、却って、データ量が増加することがある。
【０００５】
そこで、例えば、図１に示すように差分を表現することにより、上述したようなビット数の増加を防止する方法が考えられる。
【０００６】
即ち、符号化対象の画素Ａが、参照画素Ｂ以下である場合には、符号化対象の画素Ａから参照画素Ｂを減算し、その減算値を、そのまま予測誤差Ｃとする。具体的には、例えば、符号化対象の画素Ａが２００で、参照画素Ｂが１０である場合には、図１（Ａ）に示すように、２００−１０＝１９０が、予測誤差Ｃとされる。
【０００７】
一方、符号化対象の画素Ａが、参照画素Ｂより大きい場合には、図１（Ｂ）に示すように、符号化対象の画素Ａから参照画素Ｂを減算し、その減算値に、ある値を加算し、その加算結果を、予測誤差Ｃとする。即ち、画素がＮビットで表現されるとすると、符号化対象の画素Ａから参照画素Ｂを減算して得られる減算値に、２Nを加算し、その加算結果を、予測誤差Ｃとする。具体的には、例えば、画素が８ビットで表され、符号化対象の画素Ａが１０で、参照画素Ｂが２００である場合には、図１（Ｂ）に示すように、１０−２００＋２8＝６６が、予測誤差Ｃとされる。
【０００８】
以上のように予測誤差Ｃを求めることで、その予測誤差Ｃのビット数は、元の画素のビット数と変わらない（元の画素がＮビットで表現されるものであれば、予測誤差もＮビットで表現することができる）。
【０００９】
また、以上のようにして予測誤差Ｃを求めた場合には、その予測誤差は、次のようにして、元の画素（符号化対象の画素）Ａに復元することができる。
【００１０】
即ち、まず、予測誤差Ｃを参照画素Ｂと加算し、その加算値を求める。そして、いま、画素がＮビットで表されるとすると、その加算値が２N−１以下である場合には、その加算値が、そのまま、元の画素Ａの復元結果となる。
【００１１】
一方、予測誤差Ｃとを参照画素Ｂとの加算値が２N−１より大きい場合には、その加算値から、２Nを減算する。この場合、その減算値が、元の画素Ａの復元結果となる。
【００１２】
以上のようにすることで、あるデータと、他のデータとの差分を、そのビット数を増加させずに表現することができ、さらに、その差分を、元のデータに復元することができる。
【００１３】
しかしながら、上述の方法で差分を求める場合には、あるデータと、他のデータとの大小関係を判断し、その判断結果によって、処理の分岐を行う必要がある。また、その差分を復元する場合にも、そのような大小関係の判断と処理の分岐が必要となる。
【００１４】
そして、判断および処理の分岐は、処理を行う上で、算術演算や論理演算に比較して時間を要するから、判断および処理の分岐を行わずに、上述のような表現の差分を求めることができるのが望ましい。
【００１５】
本発明は、このような状況に鑑みてなされたものであり、データどうしの差分を求める処理や、その差分を元のデータに復元する処理を、ビット数を増加させずに、かつ高速で行うことができるようにするものである。
【００１６】
【課題を解決するための手段】
本発明の第１の側面のデータ処理装置は、Ｎビットで表されるデータどうしの差分に相当する差分データを求めるデータ処理装置であって、第１のデータと、２Nとを加算し、その加算値を求める加算手段と、前記加算値から、第２のデータを減算し、その減算値を求める減算手段と、前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する抽出手段とを含むデータ処理装置である。
【００１７】
本発明の第１の側面のデータ処理方法は、Ｎビットで表されるデータどうしの差分に相当する差分データを求めるデータ処理方法であって、第１のデータと、２Nとを加算し、その加算値を求める加算ステップと、前記加算値から、第２のデータを減算し、その減算値を求める減算ステップと、前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する抽出ステップとを含むデータ処理方法である。
【００１８】
本発明の第２の側面のデータ処理装置は、Ｎビットで表されるデータどうしの差分に相当する差分データを元のデータに復元するデータ処理装置であって、第１のデータと、２Nとを加算し、その加算値を求め、前記加算値から、第２のデータを減算し、その減算値を求め、前記減算値の下位Ｎビットを抽出することにより得られる、前記第１のデータと第２のデータとの差分に相当する差分データを、前記第２のデータと加算し、その加算値を求める加算手段と、前記加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する抽出手段とを含むデータ処理装置である。
【００１９】
本発明の第２の側面のデータ処理方法は、Ｎビットで表されるデータどうしの差分に相当する差分データを元のデータに復元するデータ処理方法であって、第１のデータと、２Nとを加算し、その加算値を求め、前記加算値から、第２のデータを減算し、その減算値を求め、前記減算値の下位Ｎビットを抽出することにより得られる、前記第１のデータと第２のデータとの差分に相当する差分データを、前記第２のデータと加算し、その加算値を求める加算ステップと、前記加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する抽出ステップとを含むデータ処理方法である。
【００２０】
本発明の第３の側面のデータ処理装置は、Ｎビットで表されるデータどうしの差分に相当する差分データを求め、その差分データを元のデータに復元するデータ処理装置であって、第１のデータと、２Nとを加算し、その加算値である第１の加算値を求める第１の加算手段と、前記第１の加算値から、第２のデータを減算し、その減算値を求める減算手段と、前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する第１の抽出手段と、前記差分データを、前記第２のデータと加算し、その加算値である第２の加算値を求める第２の加算手段と、前記第２の加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する第２の抽出手段とを含むデータ処理装置である。
【００２１】
本発明の第３の側面のデータ処理方法は、Ｎビットで表されるデータどうしの差分に相当する差分データを求め、その差分データを元のデータに復元するデータ処理方法であって、第１のデータと、２Nとを加算し、その加算値である第１の加算値を求める第１の加算ステップと、前記第１の加算値から、第２のデータを減算し、その減算値を求める減算ステップと、前記減算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータと第２のデータとの差分に相当する差分データとして出力する第１の抽出ステップと、前記差分データを、前記第２のデータと加算し、その加算値である第２の加算値を求める第２の加算ステップと、前記第２の加算値の下位Ｎビットを抽出し、その下位Ｎビットを、前記第１のデータを復元した復元結果として出力する第２の抽出ステップとを含むデータ処理方法である。
【００２８】
本発明の第１の側面においては、第１のデータと、２Nとが加算され、その加算値から、第２のデータが減算される。そして、その減算値の下位Ｎビットが抽出され、第１のデータと第２のデータとの差分に相当する差分データとして出力される。
【００２９】
本発明の第２の側面においては、第１のデータと第２のデータとの差分に相当する差分データが、第２のデータと加算され、その加算値の下位Ｎビットが抽出されて、第１のデータを復元した復元結果として出力される。
【００３０】
本発明の第３の側面においては、第１のデータと、２Nとが加算され、その加算値である第１の加算値から、第２のデータが減算される。さらに、その減算値の下位Ｎビットが抽出され、第１のデータと第２のデータとの差分に相当する差分データとして出力される。そして、差分データが、第２のデータと加算され、その加算値である第２の加算値の下位Ｎビットが抽出されて、第１のデータを復元した復元結果として出力される。
【００３４】
【発明の実施の形態】
図２は、本発明を適用した画像伝送システム（システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない）の一実施の形態の構成例を示している。
【００３５】
伝送すべき画像データは、エンコーダ１に入力されるようになっている。ここで、本実施の形態では、画素（画素値）が、例えば、８ビットで表される（８ビットが割り当てられている）画像データが、エンコーダ１に入力されるものとする。また、８ビットでは、例えば、０乃至２５５の範囲の他、−１２８乃至＋１２７等の２５６の任意の範囲の値を表すことができるが、ここでは、画素は、例えば、０乃至２５５の範囲の値をとるものとする。
【００３６】
エンコーダ１では、画像データが符号化されることにより符号化データとされて出力される。この符号化データは、例えば、光ディスクや、光磁気ディスク、磁気ディスク、磁気テープ、相変化ディスク、半導体メモリ等の記録媒体２に供給されて記録される。あるいは、また、例えば、インターネットや、公衆回線、ＣＡＴＶ（Cable Television）網、衛星回線等の伝送媒体３を介して伝送される。
【００３７】
以上のようにして記録媒体２に記録された符号化データは、そこから再生されて、デコーダ４に供給される。あるいは、また、伝送媒体３を介して伝送されてくる符号化データが、デコーダ４に供給される。
【００３８】
デコーダ４では、そこに供給される符号化データが復号され、これにより、元の画像データ（復号画像）とされる。この復号画像は、例えば、図示せぬモニタ等に供給されて表示される。
【００３９】
次に、図３は、図２のエンコーダ１の構成例を示している。
【００４０】
画像データは、例えば、１フレーム単位で、ブロック化部１１に供給されるようになっており、ブロック化部１１は、１フレームの画像データを、例えば、８×８画素等の所定の大きさのブロックに分割し、各ブロックをメモリ１２および差分計算部１３に供給する。メモリ１２では、ブロック化部１１から供給される画素が、ブロック単位で、順次記憶される。
【００４１】
差分計算部１３は、ブロック化部１１から供給されるブロック単位の各画素を、順次、処理対象画素として、その処理対象画素と空間的に同一位置にある、１フレーム前の画素を、参照画素として、メモリ１２から読み出す。そして、差分計算部１３は、処理対象画素と参照画素との差分に相当する、前述の図１で説明したような表現のデータ（以下、適宜、差分データという）を求め、符号化部１４に出力する。
【００４２】
符号化部１４では、差分計算部１３からの差分データが、ブロック単位で、所定の符号化方式にしたがって符号化される。即ち、符号化部１４は、差分データを、例えば、ハフマンコーディング、あるいはランレングス等で符号化する。
【００４３】
符号化部１４による符号化の結果得られる符号化データは、フレーム化部１５に供給される。フレーム化部１５では、符号化部１４からのブロック単位の符号化データが、フレームごとに統合されて出力される。
【００４４】
次に、図４は、図３の差分計算部１３の構成例を示している。
【００４５】
ブロック化部１１から供給される処理対象画素は、演算器２１に供給されるようになっており、また、メモリ１２から読み出される参照画素は、演算器２２に供給されるようになっている。
【００４６】
演算器２１には、上述したように、処理対象画素が供給される他、処理対象画素に割り当てられているビット数Ｎで表される最大の数＋１（＝２N）（以下、適宜、ビット最大値という）も供給されるようになっている。即ち、本実施の形態では、処理対象画素のビット数Ｎは８ビットであるから、演算器２１には、（２8−１）＋１＝２５６が供給されるようになっている。そして、演算器２１は、処理対象画素を、ビット最大値と加算し、その加算値を、演算器２２に出力するようになっている。
【００４７】
演算器２２は、演算器２１の出力から、参照画素を減算し、その減算値を、ＡＮＤゲート２３の一方の入力端子に供給するようになっている。
【００４８】
ＡＮＤゲート２３の他方の入力端子には、ビット最大値−１（従って、Ｎビットで表される数の最大値（＝２N-1））が、演算器２２の出力の下位Ｎビットを除くビットをマスクするためのマスク値として供給されるようになっている。そして、ＡＮＤゲート２３は、演算器２２の出力と、マスク値とのビットごとの論理積を演算することにより、演算器２２の出力の下位Ｎビットを抽出し、その下位Ｎビットを、処理対象画素に対する差分データ（予測誤差）として出力するようになっている。ここで、本実施の形態では、処理対象画素のビット数Ｎは８ビットであるから、ＡＮＤゲート２３には、２５５がマスク値として供給されるようになっており、従って、ＡＮＤゲート２３では、演算器２２の出力の下位８ビットが、差分データとして出力されるようになっている。
【００４９】
次に、図５のフローチャートを参照して、図４の差分計算部１３において行われる、処理対象画素に対する差分データを求める差分計算処理について説明する。
【００５０】
差分計算部１３では、まず最初に、ステップＳ１において、演算器２１が、処理対象画素とビット最大値２５６（＝２8）とを加算し、その加算値を、演算器２２に出力する。そして、ステップＳ２に進み、演算器２２において、演算器２１からの加算値から、参照画素が減算され、その減算値が、ＡＮＤゲート２３に出力される。ＡＮＤゲート２３では、ステップＳ３において、演算器２２からの減算値が、マスク値（２５５）によってマスクされ（減算値とマスク値との、ビットごとの論理積が演算され）、これにより、演算器２２が出力する減算値の下位Ｎビットが抽出される。この下位Ｎビットは、処理対象画素に対する差分データとして出力され、差分計算処理を終了する。
【００５１】
なお、差分計算処理は、差分計算部１３に、画素が供給されるごとに、その画素を、処理対象画素として行われる。
【００５２】
以上の差分計算処理によれば、処理対象画素をdataと、参照画素をrefと、差分データをdiffと、それぞれ表すとき、式diff＝（２N＋data−ref）＆（２N−１）にしたがって、Ｎビットの差分データdiffが求められることになる（＆は、ビットごとの論理積を表す）。従って、判断や処理の分岐を行うことなく、差分データdiffを求めることができる。即ち、ビット数が増加しない差分データを、高速に求めることができる。
【００５３】
ここで、８ビットの画素を対象に、単純な差分をとった結果と、図５の差分計算処理によって差分データを求めた結果とを、図６に示す。
【００５４】
図６では、４×４画素のブロックが構成されており、図６（Ａ）は、処理対象画素のブロックを、図６（Ｂ）は、参照画素のブロックを、それぞれ示している。そして、図６（Ｃ）は、図６（Ａ）の処理対象画素から、図６（Ｂ）の参照画素を減算した、単純な差分を表しており、図６（Ｄ）は、図５の差分計算処理によって求めた差分データを示している。図６（Ｃ）では、負の値の画素が生じており、その表現には、処理対象画素のビット数より１ビット多い９ビットが必要となる。これに対して、図６（Ｄ）に示した差分データには、負の値が生じておらず、処理対象画素と同一ビット数である８ビットで表すことができる。
【００５５】
なお、図４および図５の実施の形態では、処理対象画素に対して、ビット最大値を加算した後に、参照画素を減算するようにしたが、処理対象画素から参照画素を減算した後に、ビット最大値を加算するようにしてもよい。
【００５６】
次に、図７は、エンコーダ１が図３に示したように構成される場合の、図２のデコーダ４の構成例を示している。
【００５７】
符号化データは、ブロック分解部３１に供給されるようになっており、ブロック分解部３１では、フレーム単位の符号化データが、ブロック単位に分解され、復号部３２に供給される。復号部３２では、ブロック単位の符号化データが復号される。即ち、復号部３２では、例えば、符号化部１４における場合と逆の逆の処理が行われることにより復号され、その復号の結果得られる差分データが、差分復元部３３に供給される。
【００５８】
差分復元部３３では、メモリ３４に記憶されている、既に復元された画素が読み出される。即ち、差分復元部３３では、復号部３２からの差分データを求めるときに参照画素として用いられた画素が読み出される。そして、差分復元部３３では、その参照画素と、復号部３２からの差分データとを加算する処理に相当する差分復元処理が行われ、これにより、元の画素が復元される。
【００５９】
この復元された画素は、メモリ３４に供給され、以降の差分データを復元するときに参照画素として用いるのに記憶されるとともに、フレーム化部３５に供給される。フレーム化部３５では、差分復元部３３からの画素が、フレームごとに統合され、これにより復号画像が構成されて出力される。
【００６０】
次に、図８は、図７の差分復元部３３の構成例を示している。
【００６１】
復号部３２から供給される差分データ、およびメモリ３４から供給される参照画素は、演算器４１に供給されるようになっている。演算器４１は、それらの差分データと参照画素とを加算し、ＡＮＤゲート４２の一方の入力端子に供給するようになっている。
【００６２】
ＡＮＤゲート４２の他方の入力端子には、ビット最大値−１（従って、Ｎビットで表される数の最大値（＝２N−１））が、演算器４１の出力の下位Ｎビットを除くビットをマスクするためのマスク値として供給されるようになっている。そして、ＡＮＤゲート４２は、演算器４１の出力と、マスク値とのビットごとの論理積を演算することにより、演算器４１の出力の下位Ｎビットを抽出し、その下位Ｎビットを、差分データを復元した復元画素として出力するようになっている。ここで、本実施の形態では、上述したように、ビット最大値は２５６（＝２8）であるから、ＡＮＤゲート４２には、２５５がマスク値として供給されるようになっており、その結果、ＡＮＤゲート４２では、演算器４１の出力の下位８ビットが、復元画素として出力されるようになっている。
【００６３】
次に、図９のフローチャートを参照して、図８の差分復元部３３において行われる、差分データから元の画素（復元画素）を復元する差分復元処理について説明する。
【００６４】
差分復元部３３では、まず最初に、ステップＳ１１において、演算器４１が、差分データと、参照画素とを加算し、その加算値を、ＡＮＤゲート４２に供給する。ＡＮＤゲート４２では、演算器４１からの加算値が、マスク値によってマスクされ（加算値とマスク値との、ビットごとの論理積が演算され）、これにより、演算器４１が出力する加算値の下位Ｎビットが抽出される。この下位Ｎビットは、差分データを元の画素に復元した復元画素として出力され、差分復元処理を終了する。
【００６５】
なお、差分復元処理は、差分復元部３３に、差分データが供給されるごとに、その差分データを対象に行われる。
【００６６】
以上の差分復元処理によれば、元の画素をdataと、参照画素をrefと、差分データをdiffと、それぞれ表すとき、式data＝（diff＋ref）＆（２N−１）にしたがって、Ｎビットの元の画素dataが復元されることになる。従って、判断や処理の分岐を行うことなく、ビット数が増加していない差分データdiffを、元の画素dataに、高速に復元することができる。
【００６７】
次に、上述したように、図５で説明した差分計算処理によれば、あるデータａについて、他のデータｂとの差分（ａ−ｂ）に相当する、ビット数の増加しない差分データｃを高速に求めることができ、さらに、図９で説明した差分復元処理によれば、その差分データｃを、高速に、元のデータａに復元することができる。この場合、差分復元処理は、差分（ａ−ｂ）について、データｂを加算する処理に相当する。従って、いま、ａ−ｂをｘとおくと、差分復元処理では、データｘとデータｂとの加算値に相当するデータａを、ビット数を増加させずに、高速に求めることができることになり、また、差分計算処理では、その加算値に相当するデータａから、元のデータｘを、高速に求めることができることになる。即ち、差分計算処理と差分復元処理によれば、２つのデータの加算または減算に相当する処理と、その処理の結果得られた値を元の値に復元する処理とを、ビット数を増加させずに、高速に行うことができる。
【００６８】
そこで、次に、このような高速な加算または減算と、その結果得られるデータを元に戻す処理を利用して行うことが可能な技術を、例えば、埋め込み符号化／復号を例にして説明する。
【００６９】
まず、埋め込み符号化／復号の原理について説明する。
【００７０】
一般に、情報と呼ばれるものは、エネルギ（エントロピー）の偏り（普遍性）を有し、この偏りが、情報（価値ある情報）として認識される。即ち、例えば、ある風景を撮影して得られる画像が、そのような風景の画像であると認識されるのは、画像（画像を構成する各画素の画素値など）が、その風景に対応したエネルギの偏りを有するからであり、エネルギの偏りがない画像は、雑音等にすぎず、情報としての利用価値はない。
【００７１】
従って、価値ある情報に対して、何らかの操作を施し、その情報が有する本来のエネルギの偏りを、いわば破壊した場合でも、その破壊されたエネルギの偏りを元に戻すことで、何らかの操作が施された情報も、元の情報に戻すことができる。即ち、情報を符号化して得られる符号化データは、その情報が有する本来のエネルギの偏りを利用して、元の情報に復号することができる。
【００７２】
ここで、情報が有するエネルギ（の偏り）を表すものとしては、例えば、相関性がある。
【００７３】
情報の相関性とは、その情報の構成要素（例えば、画像であれば、その画像を構成する画素やラインなど）どうしの相関（例えば、自己相関や、ある構成要素と他の構成要素との距離など）を意味する。
【００７４】
即ち、例えば、いま、図１０に示すようなＨライン（水平走査線）でなる画像があった場合に、その上から１行目のライン（第１ライン）と、他のラインとの相関は、一般に、図１１（Ａ）に示すように、第１ラインとの距離が近いライン（図１０における画面の上の行のライン）ほど大きくなり、第１ラインとの距離が遠いライン（図１０における画面の下の行のライン）ほど小さくなる（第１ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関の偏りがある）。
【００７５】
そこで、いま、図１０の画像において、第１ラインから近い第Ｍラインと、第１ラインから遠い第Ｎラインとを入れ替え（１＜Ｍ＜Ｎ≦Ｈ）、その入れ替え後の画像について、第１ラインと、他のラインとの相関を計算すると、それは、例えば、図１１（Ｂ）に示すようになる。
【００７６】
即ち、入れ替え後の画像では、第１ラインから近い第Ｍライン（入れ替え前の第Ｎライン）との相関が小さくなり、第１ラインから遠い第Ｎライン（入れ替え前の第Ｍライン）との相関が大きくなる。
【００７７】
従って、図１１（Ｂ）では、第１ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関の偏りが破壊されている。しかしながら、画像については、一般に、第１ラインから近いほど相関が大きくなり、遠いほど相関が小さくなるという相関の偏りを利用することにより、破壊された相関の偏りを、元に戻すことができる。即ち、図１１（Ｂ）において、第１ラインから近い第Ｍラインとの相関が小さく、第１ラインから遠い第Ｎラインとの相関が大きいのは、画像が有する本来の相関の偏りからすれば、明らかに不自然であり（おかしく）、第Ｍラインと第Ｎラインとは入れ替えるべきである。そして、図１１（Ｂ）における第Ｍラインと第Ｎラインとを入れ替えることで、図１１（Ａ）に示すような相関、即ち、元の画像を復号することができる。
【００７８】
ここで、図１０および図１１で説明した場合においては、埋め込み符号化では、ラインの入れ替えが、画像の符号化を行うこととなり、その符号化に際し、例えば、何ライン目を移動するかや、どのラインどうしを入れ替えるかなどが、埋め込むべき情報（以下、付加情報という）にしたがって決定されることになる。一方、埋め込み復号では、符号化後の画像、即ち、ラインの入れ替えられた画像を、その相関を利用して、ラインを元の位置に入れ替えることにより、元の画像に戻すことが、画像を復号することとなり、その復号に際し、例えば、何ライン目を移動したかや、どのラインどうしを入れ替えたかなどを検出することが、画像に埋め込まれた付加情報を復号することになる。
【００７９】
次に、図１２は、以上のようにして画像に付加情報を埋め込む埋め込み符号化を行う埋め込み符号化器として機能する図２のエンコーダ１のハードウェア構成例を示している。
【００８０】
埋め込み符号化すべき画像は、フレームメモリ５１に供給されるようになされており、フレームメモリ５１は、その画像を、例えば、フレーム単位で一時記憶するようになされている。
【００８１】
ＣＰＵ（Central Processing Unit）５２は、プログラムメモリ５３に記憶されたプログラムを実行することで、埋め込み符号化処理を行うようになされている。即ち、ＣＰＵ３２は、付加情報データベース５５から供給される付加情報を、例えば、１ビット単位で受信し、その１ビットごとの付加情報を、フレームメモリ５１に記憶された画像に埋め込むようになされている。具体的には、ＣＰＵ５２は、フレームメモリ５１に記憶された画像を構成する一部の画素を選択し、その選択した画素に対して、付加情報に対応した処理であって、画像の相関性を利用して元に戻すことができるものを施すことにより、画素に、付加情報を埋め込むようになされている。
【００８２】
プログラムメモリ５３は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などで構成され、ＣＰＵ５２に、埋め込み符号化処理を行わせるためのコンピュータプログラムを記憶している。
【００８３】
出力Ｉ／Ｆ（Interface）５４は、フレームメモリ５１から、付加情報の埋め込まれた画像を読み出し、符号化データとして出力するようになされている。付加情報データベース５５は、画像に埋め込む付加情報を記憶している。
【００８４】
なお、フレームメモリ５１は、複数のフレームを記憶することのできるように、複数バンクで構成されており、バンク切り替えを行うことで、フレームメモリ５１では、そこに供給される画像の記憶、ＣＰＵ５２による埋め込み符号化処理の対象となっている画像の記憶、および埋め込み符号化処理後の画像（符号化データ）の出力を、同時に行うことができるようになされている。これにより、埋め込み符号化対象の画像が、動画であっても、符号化データのリアルタイム出力を行うことができるようになされている。
【００８５】
次に、図１３は、図１２のＣＰＵ５２がプログラムメモリ５３に記憶されたプログラムを実行することにより実現される図１２の埋め込み符号化器としてのエンコーダ１の機能的構成例を示している。
【００８６】
画素選択部６１は、フレームメモリ５１に記憶された画像を構成する画素を順次読み出し、そのうちの一部を、埋め込み符号化の対象とする処理対象画素として選択し、埋め込み部６２に供給するようになっている。また、画素選択部６１は、フレームメモリ５１から読み出した画素のうち、処理対象画素として選択しなかったものを、記憶部６４に供給し、対応するアドレスに記憶させるようになっている。
【００８７】
埋め込み部６２には、上述したように、画素選択部６１から処理対象画素が供給される他、付加情報変換部６３から、付加情報を変換した変換結果として、例えば、０または２N-1（本実施の形態では、Ｎ＝８であるから、２N-1＝２7）が供給されるようになっている。埋め込み部６２は、図８に示した差分復元部３３を構成する演算器４１またはＡＮＤゲート４２とそれぞれ同様に構成される演算器７１またはＡＮＤゲート７２で構成されており、従って、画素選択部６１からの処理対象画素に対して、付加情報変換部６３からの付加情報の変換結果を加算した加算値に相当する値を、図８の差分復元部３３における場合と同様にして高速に演算し、その演算結果を、処理対象画素に、付加情報を埋め込んだ埋め込み結果として出力するようになっている。この埋め込み結果は、記憶部６４に供給され、対応するアドレスに記憶されるようになっている。
【００８８】
付加情報変換部６３には、付加情報データベース５５から、付加情報が、例えば、１ビット単位で供給されるようになっており、付加情報変換部６３は、その１ビットの付加情報を、０または２N-1に変換し、埋め込み部６２に供給するようになっている。記憶部６４は、画素選択部６１からの画素、および埋め込み部６２からの付加情報が埋め込まれた画素を一時記憶し、例えば、１フレーム分の画素を記憶すると、その１フレーム分の画素を、符号化データとして出力するようになっている。
【００８９】
次に、図１４のフローチャートを参照して、図１３のエンコーダ１において行われる埋め込み符号化処理について説明する。
【００９０】
フレームメモリ５１には、埋め込み符号化の対象とする画像が、１フレーム単位で供給されて記憶される。
【００９１】
一方、付加情報変換部６３は、付加情報データベース５５から、付加情報を１ビットずつ読み出すようになっており、付加情報変換部６３が、１ビットの付加情報を読み出すと、ステップＳ２１において、画素選択部６１は、その１ビットの付加情報を埋め込む処理の対象とする画素（処理対象画素）を、フレームメモリ５１に記憶された画像から選択し、埋め込み部６２に供給する。なお、ステップＳ２１で処理対象画素として選択されたなかった画素は、画素選択部６１において、フレームメモリ５１から読み出され、記憶部６４に供給されて記憶されるようになっている。
【００９２】
ここで、本実施の形態では、例えば、図１５に示すように、フレームメモリ５１に記憶された画像から、五の目格子状に、画素が選択されるようになされている。即ち、画素選択部６１では、図１５において、斜線を付していない画素が、例えば、ラインスキャン順に、順次、処理対象画素として選択されるようになされている。なお、図１５におけるｐ（ｘ，ｙ）は、左からｘ番目の、上からｙ番目の画素（画素値）を表している。
【００９３】
その後、付加情報変換部６３は、ステップＳ２２において、付加情報データベース５５から読み出した１ビットの付加情報を変換する。即ち、付加情報変換部６３は、付加情報が０または１のとき、その付加情報を、それぞれ０または２N-1に変換する。この付加情報の変換結果は、埋め込み部６２に供給される。
【００９４】
埋め込み部６２では、ステップＳ２３において、画素選択部６１からの処理対象画素に、付加情報変換部６３からの付加情報の変換結果としての０または２N-1を加算した加算値に相当する値が求められることで、処理対象画素に、付加情報が埋め込まれる。
【００９５】
即ち、埋め込み部６２では、演算器７１において、画素選択部６１からの処理対象画素に、付加情報変換部６３からの付加情報の変換結果が加算され、その加算値が、ＡＮＤゲート７２に供給される。ＡＮＤゲート７２では、演算器７１からの加算値の、下位Ｎビット以外がマスクされ、これにより、処理対象画素に、付加情報の変換結果としての０または２N-1を加算した加算値に相当する値が出力される。
【００９６】
ＡＮＤゲート７２の出力としての、付加情報が埋め込まれた処理対象画素は、ステップＳ２４において、記憶部６４に供給されて記憶される。そして、ステップＳ２１に戻り、以下、同様の処理を繰り返す。
【００９７】
以上の埋め込み符号化処理によれば、処理対象画素に対して、例えば、８ビットが割り当てられている場合には、それに、０または２7が加算された加算値に相当する値が、付加情報の埋め込み結果として出力されることになる。
【００９８】
なお、埋め込み符号化処理は、画素が、例えば、ＹＵＶなどで表現されている場合には、輝度成分Ｙ、または色成分Ｕ，Ｖのいずれに対して行っても良い。また、埋め込み符号化処理は、画素が、例えば、ＲＧＢで表現されている場合には、Ｒ，Ｇ，Ｂのいずれに対して行っても良い。
【００９９】
さらに、フレームメモリ５１に記憶された、ある１フレームの画像について埋め込み符号化処理が行われた後は、記憶部６４からは、その埋め込み符号化処理が行われた１フレームの画像（付加情報が埋め込まれた画像）が、符号化データとして読み出され、フレームメモリ５１に記憶された、次の１フレームの画像を対象に、埋め込み符号化処理が続行される。
【０１００】
以上のように、フレームメモリ５１に記憶された画像を構成する一部の画素を選択し、その選択した画素に対して、付加情報に対応した値を加算することで、画素に、付加情報を埋め込むことにより、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に付加情報を埋め込むことが可能となる。
【０１０１】
即ち、付加情報が埋め込まれた画素は、画像の相関性、即ち、ここでは、後述するような、付加情報が埋め込まれなかった画素との間の相関を利用することにより、オーバヘッドなしで、元の画素と付加情報に復号（戻す）ことが可能である。従って、その結果得られる復号画像（再生画像）には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【０１０２】
次に、図１６は、図１２の埋め込み符号化器としてのエンコーダ１が出力する符号化データを、画像の相関性を利用して元の画像と付加情報に復号する埋め込み復号器として機能する図２のデコーダの構成例を示している。
【０１０３】
符号化データ、即ち、付加情報が埋め込まれた画像（以下、適宜、埋め込み画像という）は、フレームメモリ８１に供給されるようになされており、フレームメモリ８１は、埋め込み画像を、例えば、フレーム単位で一時記憶するようになされている。なお、フレームメモリ８１も、図１２のフレームメモリ５１と同様に構成され、バンク切り替えを行うことにより、埋め込み画像が、動画であっても、そのリアルタイム処理が可能となっている。
【０１０４】
出力Ｉ／Ｆ８２は、フレームメモリ８１から、ＣＰＵ８３による埋め込み復号処理の結果得られる画像（復号画像）を読み出して出力するようになされている。
【０１０５】
ＣＰＵ８３は、プログラムメモリ８４に記憶されたプログラムを実行することで、埋め込み復号処理を行うようになされている。即ち、ＣＰＵ８３は、フレームメモリ８１に記憶された埋め込み画像を、画像の相関性を利用して元の画像と付加情報に復号するようになされている。具体的には、ＣＰＵ８３は、埋め込み画像を構成する一部の画素を、処理対象画素として選択し、図１７に示すように、その処理対象画素に対して、図１２のＣＰＵ５２が施した処理と逆の処理を施すことで、その画素値を変更する。さらに、図１７に示すように、ＣＰＵ８３は、画素値の変更前の処理対象画素Ｐ1と、その周辺画素（図１７の実施の形態では、左右に隣接する画素）との相関値Ｒ1（第１の相関）を演算するとともに、画素値の変更された処理対象画素Ｐ2と、その画素の周辺画素との相関値Ｒ2（第２の相関）を演算し、その相関値Ｒ1とＲ2とを比較する。そして、ＣＰＵ８３は、その比較結果に基づいて、画素値の変更前または変更後の処理対象画素のうちのいずれか一方を、復号結果とするとともに、その処理対象画素に埋め込まれた付加情報（ここでは、１ビットの１または０のうちのいずれか一方）を復号する。
【０１０６】
プログラムメモリ８３は、例えば、図１２のプログラムメモリ５３と同様に構成され、ＣＰＵ５３に、埋め込み復号化処理を行わせるためのコンピュータプログラムを記憶している。
【０１０７】
次に、図１８は、図１６のＣＰＵ８３がプログラムメモリ８４に記憶されたプログラムを実行することにより実現される埋め込み復号処理を行う図２のデコーダ２の機能的構成例を示している。
【０１０８】
フレームメモリ８１に記憶された符号化データは、前処理部９１および相関算出部９２に供給されるようになっている。
【０１０９】
前処理部９１は、図４に示した差分計算部１３を構成する演算器２１，２２、またはＡＮＤゲート２３とそれぞれ同様に構成される演算器１０１，１０２、またはＡＮＤゲート１０３で構成されている。また、演算器１０２には、参照画素ではなく、２N-1が供給されるようになっている。従って、前処理部９１は、符号化データから、２N-1を減算した減算値に相当する値（差分データ）を、図４の差分計算部１３における場合と同様にして高速に演算し、その演算結果を、相関算出部９２に供給するようになっている。
【０１１０】
相関算出部９２は、そこに供給される符号化データ（付加情報が埋め込まれた画像を構成する画素）のうち、エンコーダ１において付加情報が埋め込まれた画素を、処理対象画素として選択するようになっている。さらに、相関算出部９２は、処理対象画素と、その処理対象画素についての前処理部９１における演算結果それぞれについて、後述するような相関値を演算し、データ復元部９３に供給するようになっている。なお、相関算出部９２では、処理対象画素として選択しなかった画素は、そのまま、データ復元部９３を介して、復号された画素として出力されるようになっている。
【０１１１】
データ復元部９３は、相関算出部９２から供給される相関値に基づいて、付加情報が埋め込まれた画素を、元の付加情報と画素に復元して出力するようになっている。
【０１１２】
次に、図１９のフローチャートを参照して、埋め込み復号器としての図１８のデコーダ４において行われる埋め込み復号処理について説明する。
【０１１３】
フレームメモリ８１では、そこに供給される符号化データとしての埋め込み画像が、例えば、１フレーム単位で順次記憶される。そして、フレームメモリ８１に記憶された埋め込み画像を構成する画素が、例えば、ラインスキャン順に順次読み出され、前処理部９１および相関算出部９２に供給される。
【０１１４】
相関算出部９２は、フレームメモリ８１から埋め込み画像を構成する画素を受信すると、ステップＳ３１において、その中から、埋め込み復号を行う処理の対象とする画素（処理対象画素）を選択する。
【０１１５】
ここで、相関算出部９２では、図１５に示したように、図１３の画素選択部６１と同様に、フレームメモリ８１に記憶された埋め込み画像から、五の目格子状に、画素が選択されるようになされている。即ち、相関選択部９２では、ステップＳ３１の処理が行われるごとに、図１５において、斜線を付していない画素が、例えば、ラインスキャン順に、順次、処理対象画素として選択されるようになされている。
【０１１６】
その後、ステップＳ３２に進み、前処理部９１は、その後段の相関算出部９２で相関の算出を行うための前処理として、そこに供給される埋め込み画像を構成する画素から、２N-1を減算した減算値に相当する値を演算する。
【０１１７】
即ち、演算器１０１には、埋め込み画像を構成する画素と、ビット最大値２Nが供給されるようになっており、演算器１０１は、それらを加算して、その加算値を、演算器１０２に出力する。
【０１１８】
演算器１０２では、演算器１０１の出力から、２N-1が減算され、その減算値が、ＡＮＤゲート１０３の一方の入力端子に供給される。
【０１１９】
ＡＮＤゲート２３の他方の入力端子には、ビット最大値−１（＝２N-1）が、演算器１０２の出力の下位Ｎビットを除くビットをマスクするためのマスク値として供給されるようになっている。そして、ＡＮＤゲート２３では、演算器１０２の出力と、マスク値とのビットごとの論理積が演算されることにより、演算器１０２の出力の下位Ｎビットが抽出され、埋め込み画像を構成する画素から、２N-1を減算した減算値に相当する値として、相関算出部９２に供給される。
【０１２０】
従って、上述したように、画素に対して、８ビットが割り当てられている場合においては、ステップＳ３２では、埋め込み画像を構成する画素から、２7を減算した減算値に相当する値が求められる。
【０１２１】
なお、この減算（に相当する演算）は、画素値が、例えば、ＹＵＶなどで表現されている場合には、輝度成分Ｙ、または色成分Ｕ，Ｖのいずれに対して行っても良い。また、減算は、画素値が、例えば、ＲＧＢで表現されている場合には、Ｒ，Ｇ，Ｂのいずれに対して行っても良い。但し、ステップＳ３２における減算は、図１４のステップＳ２３における加算が行われたものと同一のものに対して行う必要がある。即ち、画素値が、例えば、ＹＵＶなどで表現されており、図１４のステップＳ２３における付加情報の埋め込みが、ＹＵＶのうちの、例えば、Ｙ成分に対してのみ行われた場合には、ステップＳ３２における減算は、やはり、Ｙ成分に対してのみ行う必要がある。
【０１２２】
ステップＳ３２の処理後は、ステップＳ３３に進み、相関演算部９２において、処理対象画素（ステップＳ３１で選択された画素）（以下、適宜、第１の画素という）Ｐ1と、その画素から２7を減算した減算値に相当する値（ステップＳ３２において前処理部９１によって求められた値）（以下、適宜、第２の画素という）Ｐ2のそれぞれについて、処理対象画素の周辺画素としての、例えば、その左右に隣接する画素との間の相関値が演算される。
【０１２３】
即ち、ステップＳ３３では、例えば、処理対象画素そのものである第１の画素Ｐ1と、その左右の画素それぞれの画素との差分の絶対値が演算され、その２つの絶対値の加算値が、第１の画素Ｐ1についての相関値Ｒ1として求められる。さらに、ステップＳ３３では、処理対象画素から２7を減算した減算値に相当する第２の画素Ｐ2についても、処理対象画素の左右の画素それぞれの画素との差分の絶対値どうしの加算値が演算され、それが、第２の画素Ｐ2の相関値Ｒ2として求められる。
【０１２４】
なお、ステップＳ３２において、処理対象画素について得られる第１の画素Ｐ1または第２の画素Ｐ2それぞれとの間の相関を求めるのに用いる画素は、処理対象画素の左右に隣接する画素に限定されるものではなく、上下に隣接する画素であっても良いし、時間的に隣接する画素であっても良い。また、必ずしも、空間的または時間的に隣接する画素である必要もない。但し、処理対象画素について得られる第１の画素Ｐ1または第２の画素Ｐ2それぞれとの相関を求めるにあたっては、図１５において、斜線を付した画素、即ち、付加情報が埋め込まれていない画素を用いるのが望ましい。これは、付加情報が埋め込まれた画素を用いて相関を求めても、元の画像についての相関を得ることができず、従って、画像の相関性を利用することができないため、付加情報が埋め込まれた画素から、元の画素および付加情報を、正確に復号するのが困難となるからである。また、画像の相関性を利用して、付加情報が埋め込まれた画素を復号する以上、相関値を求めるのに用いる画素は、付加情報が埋め込まれた画素との空間的または時間的距離が近いものであるのが望ましい。
【０１２５】
第１の画素Ｐ1についての相関値Ｒ1、および第２の画素Ｐ2についての相関値Ｒ2が算出されると、それらの相関値Ｒ1およびＲ2は、データ復元部９３に供給される。そして、データ復元部９３では、ステップＳ３４において、相関算出部９２からの相関値Ｒ1とＲ2とが比較される。
【０１２６】
ステップＳ３４において、相関値Ｒ1が、相関値Ｒ2より大きい（以上である）と判定された場合、ステップＳ３５に進み、データ復元部９３において、付加情報の復号結果として、０が出力される。さらに、ステップＳ３５では、処理対象画素の復号結果として、第１の画素Ｐ1が出力され、ステップＳ３１に戻る。
【０１２７】
即ち、第１の画素Ｐ1についての相関値Ｒ1の方が、第２の画素Ｐ2についての相関値Ｒ2より大きいということは、処理対象画素の復号結果としては、画素Ｐ2よりも、画素Ｐ1の方が確からしいこととなるので、処理対象画素の復号結果は、その確からしい画素Ｐ1とされる。さらに、画素Ｐ1は、処理対象画素そのものであるから、図１４のステップＳ２３で０が加算されたものと考えられる。そして、図１４の埋め込み符号化処理では、付加情報が０の場合には、０を加算することとしているから、第１の画素Ｐ1についての相関値Ｒ1の方が大きく、画素Ｐ1が、処理対象画素として確からしい場合には、そこに埋め込まれた付加情報は０ということになる。
【０１２８】
一方、ステップＳ３４において、相関値Ｒ2が、相関値Ｒ1より大きい（以上である）と判定された場合、ステップＳ３６に進み、データ復元部９３において、付加情報の復号結果として、１が出力される。さらに、ステップＳ３６では、処理対象画素の復号結果として、第２の画素Ｐ2が出力され、ステップＳ３１に戻る。
【０１２９】
即ち、第２の画素Ｐ2についての相関値Ｒ2の方が、第１の画素Ｐ1についての相関値Ｒ1より大きいということは、処理対象画素の復号結果としては、画素Ｐ1よりも、画素Ｐ2の方が確からしいこととなるので、処理対象画素の復号結果は、その確からしい画素Ｐ2とされる。さらに、画素Ｐ2は、ステップＳ３２で、画素Ｐ1から２7が減算されたものであるから、図１４のステップＳ２３で、元の画素に２7が加算されたものであると考えられる。そして、図１４の埋め込み符号化処理では、付加情報が１の場合には、２7を加算することとしているから、第２の画素Ｐ2についての相関値Ｒ2の方が大きく、画素Ｐ2が、処理対象画素の復号結果として確からしい場合には、そこに埋め込まれた付加情報は１ということになる。
【０１３０】
ここで、上述のようにして求められる相関値Ｒ1とＲ2との差分が小さい場合には、画素Ｐ1とＰ2のうちのいずれが、処理対象画素の復号結果として確からしいかは、一概にはいえない。そこで、このような場合には、処理対象画素の左右に隣接する画素だけでなく、他の画素をも用いて、画素Ｐ1，Ｐ2それぞれについての相関値を求め、その相関値を比較することで、画素Ｐ1，Ｐ2のうちのいずれが、処理対象画素の復号結果として確からしいかを決定することができる。
【０１３１】
以上のように、付加情報が埋め込まれた画像である符号化データを、画像の相関性を利用して、元の画像と付加情報に復号するようにしたので、その復号のためのオーバヘッドがなくても、符号化データを、元の画像と付加情報に復号することができる。従って、その復号画像（再生画像）には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【０１３２】
なお、上述の場合には、処理対象画素と、他の画素との相関値として、それらの画素の差分の絶対値を用いるようにしたが、相関値は、これに限定されるものではない。
【０１３３】
また、本実施の形態では、図１５に示したように、画像から、五の目格子状に、画素を選択し、その画素に、付加情報を埋め込むようにしたが、付加情報を埋め込む画素の選択パターンは、これに限定されるものではない。但し、付加情報を埋め込んだ画素の復号にあたっては、上述したように、付加情報が埋め込まれていない画素を用いて相関を求めるのが望ましく、また、画素どうしの相関は、基本的に、それらの間の空間的または時間的距離が離れるほど小さくなっていく。従って、正確な復号を行う観点からは、付加情報を埋め込む画素は、空間的または時間的に、いわゆる疎らになるように選択するのが望ましい。一方、多くの付加情報を埋め込む観点、即ち、圧縮率の観点からは、付加情報を埋め込む画素は、ある程度多くする必要がある。従って、付加情報を埋め込む画素は、復号の正確さと、圧縮率とをバランスさせて選択するのが望ましい。
【０１３４】
さらに、本実施の形態では、処理対象画素として選択された１画素に、１ビットの付加情報を埋め込むようにしたが、１画素に、２ビット以上の付加情報を埋め込むようにすることも可能である。例えば、１画素に、２ビットの付加情報を埋め込む場合には、その２ビットの付加情報にしたがって、例えば、０，２N×１／２2，２N×２／２2，２N×３／２2のうちのいずれかを、画素に加算するようにすれば良い。即ち、この場合、例えば、画素に８ビットが割り当てられており、処理対象画素が１００であるときには、図２０に示すように、処理対象画素に対し、付加情報に対応して、０，６４，１２８，１９２のうちのいずれかを加算した値が求められ、これにより、１００，１６４，２２８，３６のうちのいずれかとされることになる。なお、処理対象画素に付加情報を埋め込むために加算する値は、上述のように、２Nを等分した値に限定されるものではない。また、上述のように、処理対象画素に対し、０，６４，１２８，１９２のいずれかを加算して付加情報を埋め込む場合には、その復号は、付加情報が埋め込まれた画素から０，６４，１２８，１９２をそれぞれ減算し、それらの減算結果それぞれについて、上述のような相関値を求め、それらの相関値を比較することで行うことが可能である。
【０１３５】
さらに、本実施の形態では、画素に、０または２7のうちのいずれかを加算することで、付加情報を埋め込むようにしたが、画素に加算する値は、０または２7に限定されるものではない。但し、その２つの加算結果どうしが、あまり異なったものとならない場合には、図１９のステップＳ３３で求められる相関値Ｒ1とＲ2も、あまり異なったものとならなくなる。これは、画素および付加情報の復号結果の精度を劣化させることとなるから、付加情報にしたがって、画素に加算する値は、その加算結果が、できるだけ異なる値となるものが望ましい。
【０１３６】
さらに、付加情報として用いる情報は、特に限定されるものではなく、例えば、画像や、音声、テキスト、コンピュータプログラム、その他のデータを付加情報として用いることが可能である。なお、埋め込み符号化対象の画像データの一部を付加情報とし、残りを、フレームメモリ５１への供給対象とすれば、その残りの部分に、付加情報とされた画像の一部分が埋め込まれるから、画像の圧縮が実現されることになる。
【０１３７】
また、本実施の形態では、ＣＰＵ５２または８３に、コンピュータプログラムを実行させることで、埋め込み符号化処理または埋め込み復号処理をそれぞれ行うようにしたが、これらの処理は、それ専用のハードウェアによって行うことも可能である。
【０１３８】
さらに、本実施の形態では、ＣＰＵ５２または８３に実行させるコンピュータプログラムを、プログラムメモリ５３または８４にそれぞれ記憶させておくようにしたが、このコンピュータプログラムは、例えば、磁気テープ、磁気ディスク、光ディスク、光磁気ディスク、相変化ディスクなどの記録媒体や、インターネット、地上波、衛星回線、公衆網、ＣＡＴＶ（Cable Television）網などの伝送媒体を介して提供するようにすることが可能である。
【０１３９】
次に、上述の場合においては、画像を構成する画素を所定のパターンで選択し、その画素に、付加情報に対応する値を加算することで、付加情報の埋め込みを行うとともに、付加情報が埋め込まれた画素を、相関値を利用して、元の付加情報と画素に復号するようにしたが、埋め込み符号化／復号は、その他、例えば、画像を構成する画素を、その度数分布に基づいて選択し、その選択した画素を、付加情報にしたがって変更することで、付加情報を埋め込むとともに、付加情報が埋め込まれた画素を、画素の度数分布に基づいて、元の付加情報と画素に復号することによって行うことも可能である。
【０１４０】
そこで、図２１は、そのような埋め込み符号化を行う埋め込み符号化器の構成例を示している。
【０１４１】
埋め込み符号化すべき画像データは、フレームメモリ１３１に供給されるようになされており、フレームメモリ１３１は、そこに供給される画像を、例えば、フレーム単位で一時記憶するようになされている。
【０１４２】
なお、フレームメモリ１３１も、図１２のフレームメモリ５１と同様に、複数バンクで構成されており、バンク切り替えを行うことで、そこに供給される画像が、動画であっても、符号化データのリアルタイム出力を行うことができるようになされている。
【０１４３】
付加情報データベース１３２は、画像に埋め込むべき付加情報を記憶しており、メモリ１３４は、付加情報データベース１３２から供給される付加情報を一時記憶して、画素値変更部１４３に供給するようになっている。出力バッファ１３５は、画素値変更部１４３の出力を一時記憶して、符号化データとして出力するようになっている。
【０１４４】
度数分布算出部１４１は、フレームメモリ１３１に記憶された符号化対象の画像の画素値の度数分布を、例えば、１フレーム単位で求め、変更対象画素値／変更値決定部１４２に供給するようになされている。変更対象画素値／変更値決定部１４２は、度数分布算出部１４１から供給される画素値の度数分布に基づき、フレームメモリ１３１に記憶された符号化対象の画像を構成する画素値の中から、付加情報にしたがって変更する画素値（以下、適宜、変更対象画素値という）を決定するとともに、その変更対象画素値を変更する値（以下、適宜、変更値という）を決定し、画素値変更部１４３に供給するようになされている。
【０１４５】
画素値変更部１４３は、フレームメモリ１３１に記憶された符号化対象のフレームを構成する画素値を、所定の順序としての、例えば、ラインスキャン順に読み出し、その読み出した画素値が、変更対象画素値に一致しない場合には、そのまま出力バッファ１３５に供給して対応するアドレスに記憶させるようになされている。また、画素値変更部１４３は、読み出した画素値が、変更対象画素値に一致する場合には、メモリ１３４に記憶された付加情報を読み出し、その付加情報にしたがって、変更対象画素値を変更値に変更するか、またはそのままとし、出力バッファ１３５に供給して、対応するアドレスに記憶させるようになされている。
【０１４６】
次に、図２２のフローチャートを参照して、図２１の埋め込み符号化器において行われる埋め込み符号化処理について説明する。
【０１４７】
フレームメモリ１３１には、そこに供給される画像データが、１フレーム単位で、順次記憶される。また、付加情報データベース１３２からは、そこに記憶されている付加情報が読み出され、メモリ１３４に、順次供給されて記憶される。
【０１４８】
一方、度数分布算出部１４１では、ステップＳ４１において、フレームメモリ１３１に記憶された符号化対象の１フレームを構成する画素値が読み出され、その度数分布が算出される。
【０１４９】
ここで、図２３に、実際の画像の画素値の度数分布を示す。なお、図２３は、それぞれ８ビットが割り当てられたＲＧＢコンポーネント信号で構成される１フレームの画像のＲコンポーネントの度数分布を示している。Ｒコンポーネントには、ここでは、上述したように、８ビットが割り当てられおり、従って、０乃至２５５の範囲の画素値をとり得るが、図２３では、２５０以上の画素値となる画素は存在していない。さらに、図２３から明らかなように、一般に、画像には、各画素値（ここでは、０乃至２５５それぞれの値）が、同じような数だけ存在するのではなく、多数存在する画素値もあれば、まったく存在しない画素値もある。しかしながら、画素値の度数分布の変化は、一般に連続している。
【０１５０】
度数分布算出部１４１で求められた画素値の度数分布は、変更対象画素値／変更値決定部１４２に供給される。変更対象画素値／変更値決定部１４２は、画素値の度数分布を受信すると、ステップＳ４２に進み、その度数分布に基づき、フレームメモリ１３１に記憶された符号化対象の画像を構成する画素値の中から、変更対象画素値とするものを決定するとともに、その変更対象画素値を変更する値である変更値を決定する。即ち、変更対象画素値／変更値決定部１４２は、例えば、度数分布から、最も度数の高い画素値を検出し、それを、変更対象画素値として決定する。さらに、変更対象画素値／変更値決定部１４２は、度数分布から、度数が０になっている画素値を検出し、それを、変更値として決定する（度数が０になっている画素値が複数ある場合には、例えば、そのうちの１つを選択して、変更値として決定する）。
【０１５１】
ここで、本実施の形態では、変更対象画素値に、付加情報が埋め込まれる。そこで、埋め込むことのできる付加情報のデータ量を多くするために、最も度数の高い画素値を、変更対象画素値とするようにしている。従って、変更対象画素値とする画素値は、度数の最も高いものに限定されるものではない。
【０１５２】
変更対象画素値／変更値決定部１４２において、変更対象画素値および変更値が決定されると、その変更対象画素値および変更値は、画素値変更部１４３に供給される。
【０１５３】
画素値変更部１４３は、変更対象画素値および変更値を受信すると、ステップＳ４３において、フレームメモリ１３１に記憶された符号化対象のフレームを構成する最も左上の画素値を読み出し、ステップＳ４４に進む。ステップＳ４４では、画素値変更部１４３において、ステップＳ４３で読み出された画素値が変更対象画素値である（に一致する）かどうかが判定され、変更対象画素値でないと判定された場合、ステップＳ４５乃至Ｓ４７をスキップして、ステップＳ４８に進み、その画素値が、そのまま出力バッファ１３５に供給されて、対応するアドレスに書き込まれる。
【０１５４】
また、ステップＳ４４において、ステップＳ４３で読み出された画素値が変更対象画素値であると判定された場合、ステップＳ４５に進み、画素値変更部１４３は、メモリ１３４から付加情報を読み出し、ステップＳ４６に進む。ここで、ステップＳ４５では、付加情報が、例えば、１ビット単位で読み出されるものとする。
【０１５５】
ステップＳ４６では、画素値変更部１３４において、ステップＳ４５で読み出された１ビットの付加情報が０または１のうちのいずれであるかが判定される。ステップＳ４６において、付加情報が、０または１のうちの、例えば、０であると判定された場合、ステップＳ４７をスキップして、ステップＳ４８に進み、画素値変更部３４において、変更対象画素値が、そのまま出力バッファ１３５に供給されて、対応するアドレスに書き込まれる。即ち、０である付加情報は、変更対象画素値を変更しないことで、その変更対象画素値を有する画素に埋め込まれる。
【０１５６】
また、ステップＳ４６において、付加情報が、０または１のうちの、例えば、１であると判定された場合、ステップＳ４７に進み、画素値変更部１４３において、変更対象画素値が変更値に変更され、ステップＳ４８に進む。ステップＳ４８では、画素値変更部１３４において、ステップＳ４７で変更された変更値が、出力バッファ１３５に供給されて、対応するアドレスに書き込まれる。即ち、１である付加情報は、変更対象画素値を変更値に変更することで、その変更対象画素値を有していた画素に埋め込まれる。
【０１５７】
ステップＳ４８の処理後は、ステップＳ４９に進み、いま符号化対象とされているフレームの画素の読み出しがすべて終了したかどうかが判定される。ステップＳ４９において、いま符号化対象とされているフレームの画素すべての読み出しが、まだ終了していないと判定された場合、ステップＳ４３に戻り、画素値変更部１４３において、ラインスキャン順に、次に処理すべき画素値が、フレームメモリ１３１から読み出され、以下、同様の処理が繰り返される。
【０１５８】
また、ステップＳ４９において、いま符号化対象とされているフレームの画素すべての読み出しが終了したと判定された場合、ステップＳ５０に進み、出力バッファ１３５に記憶されている、付加情報が埋め込まれたフレームが、符号化データとして読み出されて出力される。そして、ステップＳ５１に進み、フレームメモリ１３１に、次に処理すべきフレームが記憶されているかどうかが判定され、記憶されていると判定された場合、ステップＳ４１に戻り、そのフレームを符号化対象として、同様の処理が繰り返される。
【０１５９】
また、ステップＳ５１において、フレームメモリ１３１に、次に処理すべきフレームが記憶されていないと判定された場合、埋め込み符号化処理を終了する。
【０１６０】
以上のような埋め込み符号化処理によれば、ある１フレームの画像は、次のような符号化データに符号化される。
【０１６１】
即ち、例えば、符号化対象のフレームに、図２４（Ａ）において・で示すように、変更対象画素値が分布しているとすると、各変更対象画素値のうち、ラインスキャン順で、０の付加情報に対応する位置にあるものは、そのままとされ、１の付加情報に対応する位置にあるものは、図２４（Ｂ）において×で示すように、図２４（Ａ）のフレームには存在しない画素値である変更値に変更される。
【０１６２】
以上のように、フレームメモリ１３１に記憶された画像を構成する画素値のうち、度数の最も高い画素値である変更対象画素値を、付加情報にしたがって、その画像に存在しない画素値である変更値に変更することにより、付加情報を埋め込む場合には、画像の連続性（画像を構成する画素値の度数分布の連続性）を利用して、変更値を、元の変更対象画素値に変更することで、元の画像を復号することができるとともに、付加情報を復号することができる。従って、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に付加情報を埋め込むことができる。
【０１６３】
即ち、変更値は、画像の連続性、つまり、ここでは、画像を構成する画素値の度数分布の連続性を利用することにより、オーバヘッドなしで、元の画素値（変更対象画素値）に復号する（戻す）こができ、さらに、変更値と変更対象画素値を検出することで、付加情報を復号することができる。従って、その結果得られる復号画像（再生画像）には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【０１６４】
なお、符号化対象のフレームに、存在しない画素値がない場合には、変更対象画素値を変更すると、その変更後の画素値と、符号化対象のフレームに最初から存在する画素値とを区別することが困難となる。そこで、図２２の埋め込み符号化処理のステップＳ４１において、度数分布を算出した後に、その度数分布から、フレームに、存在しない画素値がないことが判明した場合には、そのフレームには付加情報を埋め込まず、次のフレームを、符号化対象として、埋め込み符号化処理を行うのが望ましい。
【０１６５】
次に、図２５は、図２１の埋め込み符号化器が出力する符号化データとしての付加情報が埋め込まれた画像（埋め込み画像）を、画像の連続性を利用して元の画像と付加情報に復号する埋め込み復号器の構成例を示している。
【０１６６】
符号化データ、即ち、埋め込み画像は、入力バッファ１５１に供給されるようになっており、入力バッファ１５１は、埋め込み画像を、例えば、フレーム単位で一時記憶するようになされている。なお、入力バッファ１５１も、図２１のフレームメモリ１３１と同様に構成され、バンク切り替えを行うことにより、埋め込み画像が、動画であっても、そのリアルタイム処理が可能となっている。
【０１６７】
フレームメモリ１５４は、画素値変更部１６３において復号された画像を、例えば、１フレーム単位で記憶して出力するようになされている。メモリ１５５は、画素値変更部１６３で復号された付加情報を一時記憶して出力するようになされている。
【０１６８】
度数分布算出部１６１は、入力バッファ１５１に記憶された復号対象の埋め込み画像のフレームを構成する画素値を読み出し、その度数分布を求めて、変更対象画素値／変更値決定部１６２に供給するようになされている。変更対象画素値／変更値決定部１６２は、度数分布算出部１６１からの画素値の度数分布に基づき、埋め込み画像を構成する画素値の中から、埋め込み符号化器において変更対象画素値または変更値それぞれに決定された画素を求め（決定し）、画素値変更部１６３に供給するようになされている。画素値変更部１６３は、変更対象画素値／変更値決定部１６２の出力から、変更対象画素値および変更値を認識し、入力バッファ１５１に記憶された復号対象の埋め込み画像のフレームの中の変更対象画素値および変更値を検出することで、その埋め込み画像に埋め込まれた付加情報を復号して、メモリ１５５に供給するようになされている。さらに、画素値変更部１６３は、埋め込み画像の中の変更値を変更対象画素値に変更することで、その埋め込み画像を、元の画像に復号し、フレームメモリ１５４に供給するようになされている。
【０１６９】
次に、図２６のフローチャートを参照して、図２５の埋め込み復号器において行われる埋め込み復号処理について説明する。
【０１７０】
入力バッファ１５１では、そこに供給される埋め込み画像（符号化データ）が、例えば、１フレーム単位で順次記憶される。
【０１７１】
一方、度数分布算出部１６１では、ステップＳ６１において、入力バッファ１５１に記憶された復号対象の埋め込み画像のフレームが読み出され、そのフレームを構成する画素値の度数分布が求められる。この度数分布は、変更対象画素値／変更値決定部１６２に供給される。
【０１７２】
変更対象画素値／変更値決定部１６２は、度数分布算出部１６１から度数分布を受信すると、ステップＳ６２において、その度数分布に基づいて、図２１の埋め込み符号化器（変更対象画素値／変更値決定部１４２）において決定された変更対象画素値および変更値を求める。
【０１７３】
即ち、埋め込み画像に符号化された元の画像を構成する画素値が、例えば、図２７（Ａ）に示すような連続した度数分布を有していたとすると、図２１の埋め込み符号化器では、度数の最も高い画素値Ｐ1が変更対象画素値として決定される。なお、図２７では、画素値のとりうる範囲が、０乃至ＭＡＸとされており、また、元の画像（図２７（Ａ））は、画素値Ｐmin以下の画素および画素値Ｐmax以上の画素が存在しないものとなっている（０＜Ｐmin＜Ｐmax＜ＭＡＸ）。
【０１７４】
さらに、この場合、埋め込み符号化器において、画素値Ｐmin以下の、元の画像に存在しないある画素値Ｐ2が変更値として決定され、埋め込み符号化が行われたとすると、その結果得られる埋め込み画像の画素値の度数分布は、例えば、図２７（Ｂ）に示すようなものとなる。即ち、変更対象画素値Ｐ1の度数は、それに近い画素値（例えば、両隣の画素値）の度数に比較して極端に低くなり、変更値Ｐ2の度数は、逆に、それに近い画素値の度数に比較して極端に高くなる。
【０１７５】
その結果、例えば、画素値の小さいものから、画素値ｎの度数と画素値ｎ＋１の度数との差分（＝画素値ｎの度数−画素値ｎ＋１の度数）（以下、適宜、度数差分という）を求めていくと、その度数差分は、変更対象画素値Ｐ1の付近（ｎ＝Ｐ1のときと、ｎ＋１＝Ｐ1のとき）において、極端に大きくなった後、極端に小さくなる（不連続になる）。また、度数差分は、変更値Ｐ2の付近（ｎ＝Ｐ2のときと、ｎ＋１＝Ｐ2のとき）において、極端に小さくなった後、極端に大きくなる（不連続になる）。
【０１７６】
従って、埋め込み符号化器において決定された変更対象画素値および変更値は、度数差分をサーチしていくことで求めることができ、変更対象画素値／変更値決定部１６２では、そのようにして、埋め込み画像の画素値の度数分布に基づき、図２１の埋め込み符号化器において決定された変更対象画素値および変更値を求めるようになされている。
【０１７７】
図２６に戻り、ステップＳ６２において、変更対象画素値／変更値決定部１６２は、埋め込み符号化器において決定された変更対象画素値および変更値を求めると、それらを、画素値変更部１６３に出力し、ステップＳ６３に進む。
【０１７８】
ステップＳ６３では、画素値変更部１６３において、入力バッファ１５１に記憶された復号対象の埋め込み画像のフレームを構成する最も左上の画素値が読み出され、ステップＳ６４に進み、その画素値が判定される。ステップＳ６４において、読み出された画素値が、変更対象画素値および変更値のいずれでもないと判定された場合、画素値変更部１６４は、ステップＳ６８に進み、その画素値を、フレームメモリ１５４に供給し、対応するアドレスに記憶させる。ここで、変更対象画素値および変更値のいずれでもない画素には、付加情報は埋め込まれていないから、その復号は行われない（することができない）（する必要がない）。
【０１７９】
また、ステップＳ６４において、読み出された画素値が、変更対象画素値であると判定された場合、ステップＳ６５に進み、画素値変更部１６３は、メモリ１５５に、付加情報の復号結果として、０または１のうちの、変更対象画素値に対応する０を供給して記憶させる。そして、ステップＳ６８に進み、画素値変更部１６３は、変更対象画素値を、そのまま、フレームメモリ１５４に供給し、対応するアドレスに記憶させる。
【０１８０】
さらに、ステップＳ６４において、読み出された画素値が、変更値であると判定された場合、ステップＳ６６に進み、画素値変更部１６３は、変更値を、変更対象画素値に変更し、これにより、元の画素値に復号して、ステップＳ６７に進む。ステップＳ６７では、画素値変更部１６３において、メモリ１５５に対して、付加情報の復号結果として、０または１のうちの、変更値に対応する１が供給されて書き込まれる。そして、ステップＳ６８に進み、画素値変更部１６３は、変更対象画素値（ステップＳ６６において、変更値を変更したもの）を、フレームメモリ１５４に供給し、対応するアドレスに記憶させる。
【０１８１】
ステップＳ６８の処理後は、ステップＳ６９に進み、いま復号対象とされている埋め込み画像のフレームの画素の読み出しがすべて終了したかどうかが判定される。ステップＳ６９において、いま復号対象とされている埋め込み画像のフレームの画素すべての読み出しが、まだ終了していないと判定された場合、ステップＳ６３に戻り、画素値変更部１６３において、ラインスキャン順に、次に処理すべき画素値が、入力バッファ１５１から読み出され、以下、同様の処理が繰り返される。
【０１８２】
また、ステップＳ６９において、いま復号対象とされている埋め込み画像の画素すべての読み出しが終了したと判定された場合、フレームメモリ１５４またはメモリ１５５にそれぞれ記憶された１フレームの復号画像または付加情報が読み出されて出力される。そして、ステップＳ７０に進み、入力バッファ１５１に、次に処理すべき埋め込み画像のフレームが記憶されているかどうかが判定され、記憶されていると判定された場合、ステップＳ６１に戻り、そのフレームを復号対象として、同様の処理が繰り返される。
【０１８３】
また、ステップＳ７０において、入力バッファ１５１に、次に処理すべき埋め込み画像のフレームが記憶されていないと判定された場合、埋め込み復号処理を終了する。
【０１８４】
以上のように、付加情報が埋め込まれた画像である符号化データを、画像の連続性を利用して、元の画像と付加情報に復号するようにしたので、その復号のためのオーバヘッドがなくても、符号化データを、元の画像と付加情報に復号することができる。従って、その復号画像には、基本的に、付加情報を埋め込むことによる画質の劣化は生じない。
【０１８５】
なお、本実施の形態では、図２１の埋め込み符号化処理において、付加情報にしたがい、変更対象画素値を、そのままとする（変更対象画素値に変更する）か、または変更値に変更するようにしたが、符号化対象の画像に、存在しない画素値が２以上ある場合には、例えば、そのうちの２つを第１の変更値と第２の変更値とし、付加情報にしたがい、変更対象画素値を、第１の変更値に変更するか、または第２の変更値に変更するようにすることが可能である。ここで、変更対象画素値を、そのままとするか、または変更値に変更する場合には、符号化対象の画像に、存在しない画素値が１つあれば良いが、変更対象画素値を、第１または第２の変更値に変更する場合には、符号化対象の画像に、存在しない画素値が２以上ある必要がある。しかしながら、変更対象画素値を、第１または第２の変更値に変更する場合には、埋め込み画像には、変更対象画素値が存在しなくなるので、埋め込み復号器６において、埋め込み画像の度数分布から、より精度良く、変更対象画素値を求めることが可能となる。
【０１８６】
さらに、符号化対象の画像に、存在しない画素値が複数ある場合には、その複数の画素値をすべて変更値とし、付加情報にしたがい、変更対象画素値を、複数の変更値のうちのいずれかに変更するようにすることが可能である。この場合、１画素に、２ビット以上の付加情報を埋め込むことが可能となる。
【０１８７】
また、本実施の形態では、埋め込み符号化処理において、符号化対象の画像の画素値を、ラインスキャン順に処理するようにしたが、その処理の順番は、ラインスキャン順に限定されるものではない。但し、埋め込み符号化器と埋め込み復号器において、同一の順番で処理が行われるように設定しておく必要がある。
【０１８８】
さらに、本実施の形態では、フレーム単位で度数分布を求めるようにしたが、度数分布は、その他、例えば、１フレームを幾つかのブロックに分けて、そのブロック単位で求めても良いし、複数フレーム単位で求めても良い。
【０１８９】
また、本実施の形態では、図２５の埋め込み復号器において、図２１の埋め込み符号化器で決定された変更対象画素値および変更値を求めるようにしたが、変更対象画素値および変更値は、僅かな量のデータであり、埋め込み画像に、オーバーヘッドとして含めるようにしても良い。
【０１９０】
さらに、埋め込み符号化の対象とする画像が、例えば、ＲＧＢコンポーネント信号で構成されるカラー画像などである場合には、ＲＧＢそれぞれについて、埋め込み符号化処理を施すことが可能である。
【０１９１】
次に、図２１に示した埋め込み符号化器を、図３に示した符号化部１４に用いることで、画素値そのものを用いて埋め込み符号化を行う場合に比較して、より効果的な埋め込み符号化行うことが可能となる。
【０１９２】
即ち、例えば、いま、図３の差分計算部１３において、画像を構成する画素について、その隣接する画素（例えば、左隣の画素）との差分に相当する差分データを演算するものとすると、隣接する画素どうしの差は、一般に小さいことから、差分データは、特定の値に集中する。具体的には、図２８（Ａ）は、ある１フレームの画像の画素値の度数分布を示しているが、この画像について差分データを演算すると、その差分データの度数分布は、図２８（Ｂ）に示すようになる。また、図２９（Ａ）は、他の１フレームの画像の画素値の度数分布を示しているが、この画像について差分データを演算すると、その差分データの度数分布は、図２９（Ｂ）に示すようになる。なお、図２８および図２９における画素値には８ビットが割り当てられている。
【０１９３】
いずれにしても、隣接する画素どうしについては、一般に、その画素値が近いことから、それらの間の差は、一般に小さくなり、その結果、差分データは、０や２５５（＝２8−１）付近に集中する。
【０１９４】
従って、差分データに付加情報を埋め込む場合には、変更対象画素値とされる最も度数の高い差分データの数は、画素値そのものに付加情報を埋め込む場合に比較して、膨大な個数となり（図２８および図２９の実施の形態では、差分データの度数分布において最も高い度数は、画素値の度数分布において最も高い度数の１０倍近くになっている）、その結果、そのような膨大な数の差分データに対して、多数の付加情報を埋め込むことが可能となる。
【０１９５】
ここで、以上のように、図２１に示した埋め込み符号化器を、図３に示した符号化部１４に用いた場合には、それにより得られる符号化データ（埋め込み画像）は、図２５に示した埋め込み復号器を、図７に示した復号部３２に用いることで、元の画素と付加情報に復号することができる。
【０１９６】
なお、本実施の形態では、図３の符号化部１４に、ハフマンコーディングやランレングス等による符号化を行わせるようにしたが、これは、次のような理由による。即ち、差分データは、図２８（Ｂ）および図２９（Ｂ）に示したように、０付近および２５５付近に集中し、その他の値となることは少ない。従って、０付近および２５５付近の差分データには、少ないビット数を割り当てるとともに、その他の値の差分データには、ある程度のビット数を割り当てるようなハフマンコーディング等を行うことで、その結果得られる符号化データ全体のデータ量を削減することができる。そして、その場合でも、符号化データは、元の画像に復号することができる。
【０１９７】
但し、図３の符号化部１４には、ハフマンコーディングやランレングス等による符号化以外の、例えば、ＡＤＲＣ（Adaptive Dynamic Range Coding）方式による符号化等を行わせるようにすることも可能である。ここで、ＡＤＲＣ方式による符号化では、ブロックの画素（ここでは、差分データ）の最大値ＭＡＸと最小値ＭＩＮが検出され、ＤＲ＝ＭＡＸ−ＭＩＮが、ブロックの局所的なダイナミックレンジとして求められる。そして、ブロックの各画素から、最小値ＭＩＮが減算され、その減算値が、ＤＲ／２Kで除算（ＤＲ／２Kを量子化ステップ幅として量子化）されることにより、Ｋビットのデータに量子化される。なお、このＫビットのデータの復号は、次のようにして行うことができる。即ち、ＡＤＲＣ方式による復号では、Ｋビットのデータが、ＤＲ／２Kを量子化ステップ幅として逆量子化される。そして、その逆量子化結果に、ブロックの最小値ＭＩＮが加算され、その加算値が、復号結果として出力される。
【０１９８】
【発明の効果】
本発明の第１の側面によれば、ビット数を増加させることなく、第１のデータと第２のデータとの差分を表現する差分データを高速に求めることが可能となる。
【０１９９】
本発明の第２の側面によれば、第１のデータと第２のデータとの差分を表現する差分データから、元の第１のデータを高速に求めることが可能となる。
【０２００】
本発明の第３の側面によれば、ビット数を増加させることなく、第１のデータと第２のデータとの差分を表現する差分データを高速に求めることが可能となるとともに、そのような差分データから、元の第１のデータを高速に求めることが可能となる。
【図面の簡単な説明】
【図１】符号化対象画素について、参照画素との差分を表現する差分データを、ビット数を増加させることなく求める方法を説明するための図である。
【図２】本発明を適用した画像伝送システムの一実施の形態の構成例を示す図である。
【図３】図２のエンコーダ１の構成例を示すブロック図である。
【図４】図３の差分計算部１３の構成例を示す図である。
【図５】図４の差分計算部１３が行う差分計算処理を説明するためのフローチャートである。
【図６】画像について求められた差分データを示す図である。
【図７】図２のデコーダ４の構成例を示すブロック図である。
【図８】図７の差分復元部３３の構成例を示す図である。
【図９】図８の差分復元部３３が行う差分復元処理を説明するためのフローチャートである。
【図１０】符号化対象の画像を示す図である。
【図１１】相関性を利用した符号化／復号を説明するための図である。
【図１２】埋め込み符号化器として機能する図２のエンコーダ１のハードウェア構成例を示すブロック図である。
【図１３】図１２のエンコーダ１の機能的構成例を示すブロック図である。
【図１４】図１３のエンコーダ１による埋め込み符号化処理を説明するためのフローチャートである。
【図１５】図１４のステップＳ２１の処理を説明するための図である。
【図１６】埋め込み復号器として機能する図２のデコーダ４のハードウェア構成例を示すブロック図である。
【図１７】図１６のＣＰＵ８３の処理を説明するための図である。
【図１８】図１６のデコーダ４の機能的構成例を示すブロック図である。
【図１９】図１８のデコーダ４による埋め込み復号処理を説明するためのフローチャートである。
【図２０】画素に、２ビットの付加情報を埋め込む場合を説明するための図である。
【図２１】埋め込み符号化器の他の構成例を示すブロック図である。
【図２２】図２１の埋め込み符号化器による埋め込み符号化処理を説明するためのフローチャートである。
【図２３】実際の画像の画素値の度数分布を示す図である。
【図２４】図２２のフローチャートに示した埋め込み符号化処理の結果を説明するための図である。
【図２５】図２１の埋め込み符号化器の出力の埋め込み復号を行う埋め込み復号器の構成例を示すブロック図である。
【図２６】図２５の埋め込み復号器による埋め込み復号処理を説明するためのフローチャートである。
【図２７】図２６のステップＳ６２の処理を説明するための図である。
【図２８】差分データの度数分布を示す図である。
【図２９】差分データの度数分布を示す図である。
【符号の説明】
１  エンコーダ，  ２  記録媒体，  ３  伝送媒体，  ４  デコーダ，  １１ブロック化部，  １２  メモリ，  １３  差分計算部，  １４  符号化部，  １５  フレーム化部，  ２１，２２  演算器，  ２３  ＡＮＤゲート，  ３１  ブロック分解部，  ３２  復号部，  ３３  差分復元部，  ３４  メモリ，  ３５  フレーム化部，  ４１  演算器，  ４２  ＡＮＤゲート，  ５１  フレームメモリ，  ５２  ＣＰＵ，  ５３  プログラムメモリ，  ５４  出力Ｉ／Ｆ，  ５５  付加情報データベース，  ６１  画素選択部，  ６２  埋め込み部，  ６３  付加情報変換部，  ６４  記憶部，  ７１  演算器，  ７２  ＡＮＤゲート，  ８１  フレームメモリ，  ８２  出力Ｉ／Ｆ，  ８３  ＣＰＵ，  ８４  プログラムメモリ，  ９１  前処理部，  ９２  相関算出部，  ９３  データ復元部，  １０１，１０２  演算器，  １０３  ＡＮＤゲート，  １３１  フレームメモリ，  １３２  付加情報データベース，  １３４  メモリ，  １３５  出力バッファ，  １４１  度数分布算出部，  １４２  変更対象画素値／変更値決定部，  １４３  画素値変更部，  １５１  入力バッファ，  １５４  フレームメモリ，  １５５  メモリ，  １６１  度数分布算出部，  １６２  変更対象画素値／変更値決定部，  １６３  画素値変更部
【図１】
0004264606.tif 000002
【図２】
0004264606.tif 000003
【図３】
0004264606.tif 000004
【図４】
0004264606.tif 000005
【図５】
0004264606.tif 000006
【図６】
0004264606.tif 000007
【図７】
0004264606.tif 000008
【図８】
0004264606.tif 000009
【図９】
0004264606.tif 000010
【図１０】
0004264606.tif 000011
【図１１】
0004264606.tif 000012
【図１２】
0004264606.tif 000013
【図１３】
0004264606.tif 000014
【図１４】
0004264606.tif 000015
【図１５】
0004264606.tif 000016
【図１６】
0004264606.tif 000017
【図１７】
0004264606.tif 000018
【図１８】
0004264606.tif 000019
【図１９】
0004264606.tif 000020
【図２０】
0004264606.tif 000021
【図２１】
0004264606.tif 000022
【図２２】
0004264606.tif 000023
【図２３】
0004264606.tif 000024
【図２４】
0004264606.tif 000025
【図２５】
0004264606.tif 000026
【図２６】
0004264606.tif 000027
【図２７】
0004264606.tif 000028
【図２８】
0004264606.tif 000029
【図２９】
0004264606.tif 000030