図1は、本発明を適用した画像処理装置の一実施の形態の構成を示している。送信装置1には、ディジタル化された画像データが供給されるようになされている。送信装置1は、入力された画像データを間引くこと(その画素数を少なくすること)により圧縮、符号化し、その結果得られる符号化データを、例えば、光ディスク、光磁気ディスク、磁気テープ、相変化ディスクその他でなる記録媒体2に記録し、または、例えば、地上波、衛星回線、電話回線、CATV網、インターネットその他の伝送路3を介して伝送する。
受信装置4では、記録媒体2に記録された符号化データが再生され、または、伝送路3を介して伝送されてくる符号化データが受信され、その符号化データが伸張、復号化される。そして、その結果得られる復号画像は、図示せぬディスプレイに供給されて表示される。
なお、以上のような画像処理装置は、例えば、光ディスク装置、光磁気ディスク装置、磁気テープ装置その他の、画像の記録/再生を行う装置、あるいはまた、例えば、テレビ電話装置、テレビジョン放送システム、CATVシステムその他の、画像の伝送を行う装置などに適用される。また、後述するように、送信装置1が出力する符号化データのデータ量が少ないため、図1の画像処理装置は、伝送レートの低い、例えば、携帯電話機その他の、移動に便利な携帯端末などにも適用可能である。
図2は、送信装置1の構成例を示している。
I/F(InterFace)11は、外部から供給される画像データの受信処理と、送信機/記録装置16に対しての、符号化データの送信処理を行うようになされている。ROM(Read Only Memory)12は、IPL(Initial Program Loading)用のプログラムその他を記憶している。RAM(Random Access Memory)13は、外部記憶装置15に記録されているシステムプログラム(OS(Operating System))やアプリケーションプログラムを記憶したり、また、CPU(Central Processing Unit)14の動作上必要なデータを記憶するようになされている。CPU14は、ROM12に記憶されているIPLプログラムにしたがい、外部記憶装置15からシステムプログラムおよびアプリケーションプログラムを、RAM13に展開し、そのシステムプログラムの制御の下、アプリケーションプログラムを実行することで、I/F11から供給される画像データについての、後述するような符号化処理を行うようになされている。外部記憶装置15は、例えば、磁気ディスク装置などでなり、上述したように、CPU14が実行するシステムプログラムやアプリケーションプログラムを記憶している他、CPU14の動作上必要なデータも記憶している。送信機/記録装置16は、I/F11から供給される符号化データを、記録媒体2に記録し、または伝送路3を介して伝送するようになされている。
なお、I/F11,ROM12,RAM13,CPU14、および外部記憶装置15は、相互にバスを介して接続されている。
以上のように構成される送信装置1においては、I/F11に画像データが供給されると、その画像データは、CPU14に供給される。CPU14は、画像データを符号化し、その結果得られる符号化データを、I/F11に供給する。I/F11は、符号化データを受信すると、それを、送信機/記録装置16に供給する。送信機/記録装置16では、I/F11からの符号化データが、記録媒体2に記録され、または伝送路3を介して伝送される。
図3は、図2の送信装置1の、送信機/記録装置16を除く部分の機能的なブロック図である。
符号化すべき画像データは、圧縮部21、ローカルデコード部22、および誤差算出部23に供給されるようになされている。圧縮部21は、画像データを、その画素を、単純に間引くことにより圧縮するとともに、抽出された画素データのレベルを制限し、さらに、その結果得られる圧縮データ(間引きとレベル制限が行われた後の画像データ)を、判定部24からの制御にしたがって補正するようになされている。圧縮部21における補正の結果得られる補正データは、ローカルデコード部22および判定部24に供給されるようになされている。
ローカルデコード部22は、圧縮部21からの補正データに基づいて、元の画像を予測し、その予測値を、誤差算出部23に供給するようになされている。なお、ローカルデコード部22は、後述するように、補正データとの線形結合により、予測値を算出するための予測係数を求める処理を行い、その予測係数に基づいて、予測値を求める適応処理を行うようになされており、上述したように、予測値を、誤差算出部23に供給する他、そのとき求めた予測係数を、判定部24に供給するようにもなされている。
誤差算出部23は、そこに入力される、元の画像データ(原画像)に対する、ローカルデコード部22からの予測値の予測誤差を算出するようになされている。この予測誤差は、誤差情報として、判定部24に供給されるようになされている。
判定部24は、誤差算出部23からの誤差情報に基づいて、圧縮部21が出力した補正データを、元の画像の符号化結果とすることの適正さを判定するようになされている。そして、判定部24は、圧縮部21が出力した補正データを、元の画像の符号化結果とすることが適正でないと判定した場合には、圧縮部21を制御し、さらに、圧縮データを補正させ、その結果得られる新たな補正データを出力させるようになされている。また、判定部24は、圧縮部21が出力した補正データを、元の画像の符号化結果とすることが適正であると判定した場合には、圧縮部21から供給された補正データを、最適な圧縮データ(以下、適宜、最適圧縮データという)として多重化部25に供給するとともに、ローカルデコード部22から供給された予測係数を多重化部25に供給するようになされている。
多重化部25は、判定部24からの最適圧縮データ(補正データ)と、予測係数とを多重化し、その多重化結果を、符号化データとして、送信機/記録装置16(図2)に供給するようになされている。
次に、図4のフローチャートを参照して、その動作について説明する。圧縮部21に対して、画像データが供給されると、圧縮部21は、ステップS1において、その画像データを間引く(複数の画素から少ない数の画素を抽出する)ことにより圧縮する。また、抽出された画素データのレベルを、ステップS2において、MSB側の2ビットを抽出することで制限する。そして、この画素データを、最初は、補正を行わずに、ローカルデコード部22および判定部24に出力する。ローカルデコード部22では、ステップS3において、圧縮部21からの補正データ(最初は、上述したように、画像データを、単純に間引き、かつ、レベル制限した圧縮データそのもの)がローカルデコードされる。
即ち、ステップS3では、圧縮部21からの補正データとの線形結合により、元の画像の予測値を算出するための予測係数を求める処理が行われ、その予測係数に基づいて、予測値を求める適応処理が行われる。ローカルデコード部22において求められた予測値は誤差算出部23に、また、予測係数は判定部24に供給される。
ここで、ローカルデコード部22が出力する予測値で構成される画像は、受信装置4(図1)側において得られる復号画像と同一のものである。
誤差算出部23は、ローカルデコード部22から、元の画像の予測値を受信すると、ステップS4において、元の画像データに対する、ローカルデコード部22からの予測値の予測誤差を算出し、誤差情報として、判定部24に供給する。判定部24は、誤差算出部23から誤差情報を受信すると、ステップS5において、その誤差情報に基づいて、圧縮部21が出力した補正データを、元の画像の符号化結果とすることの適正さを判定する。
即ち、ステップS5においては、誤差情報が所定の閾値ε以下であるかどうかが判定される。ステップS5において、誤差情報が所定の閾値ε以下でないと判定された場合、圧縮部21が出力した補正データを、元の画像の符号化データとするのは適正でないと認識され、ステップS6に進み、判定部24は、圧縮部21を制御し、これにより、圧縮データを補正させる。圧縮部21は、判定部24の制御にしたがって、補正量(後述する補正値△)を変えて、圧縮データを補正し、その結果得られる補正データを、ローカルデコード部22および判定部24に出力する。そして、ステップS3に戻り、以下、同様の処理が繰り返される。
一方、ステップS5において、誤差情報が所定の閾値ε以下であると判定された場合、圧縮部21が出力した補正データを、元の画像の符号化結果とするのは適正であると認識され、判定部24は、所定の閾値ε以下の誤差情報が得られたときの補正データを、最適圧縮データとして、予測係数とともに、多重化部25に出力する。多重化部25では、ステップS7において、判定部24からの最適圧縮データと予測係数とが多重化され、その結果得られる符号化データが出力されて、処理を終了する。
以上のように、誤差情報が所定の閾値ε以下となったときにおける、圧縮データを補正した補正データを、元の画像の符号化結果とするようにしたので、受信装置4側においては、その補正データに基づいて、元の画像(原画像)とほぼ同一の画像を得ることが可能となる。
次に、図5は、図3の圧縮部21の構成例を示している。
符号化すべき画像データは、間引き回路30に入力されるようになされており、間引き回路30は、入力された画像データを1/Nに間引くようになされている。従って、間引き回路30からは、画像データを、1/Nに圧縮した圧縮データが出力されるようになされている。この圧縮データは、レベル制限回路31に入力され、例えば8ビットで表される各画素データのMSB側の2ビットだけを抽出することで、そのレベルが制限された後、補正回路32に供給されるようになされている。
補正回路32は、判定部24(図3)からの制御信号にしたがって、補正値ROM33にアドレスを与え、これにより、補正値△を読み出すようになされている。そして、補正回路32は、レベル制限回路31からの圧縮データに対して、補正値ROM33からの補正値△を、例えば加算することで、補正データを生成し、ローカルデコード部22および判定部24に供給するようになされている。補正値ROM33は、レベル制限回路31が出力する圧縮データを補正するための、各種の補正値△の組合せ(例えば、1フレーム分の圧縮データを補正するための補正値の組合せなど)を記憶しており、補正回路32から供給されるアドレスに対応する補正値△の組合せを読み出して、補正回路32に供給するようになされている。
次に、図6を参照して、図5の圧縮部21の処理について説明する。
例えば、1フレーム分などの画像データが、間引き回路30に供給されると、間引き回路30は、ステップS11において、その画像データを1/Nに間引き、その結果得られる圧縮データを、レベル制限回路31に出力する。
ここで、間引き回路30は、図7に示すように、画像データを、例えば、1/9に間引くようになされている。即ち、間引き回路30は、3×3(横×縦)の9画素を1単位とし、各単位の中心の画素(同図において、●印で示す部分)についての画素値のみを抽出し、他の部分(同図において、○印で示す部分)を削除する。なお、間引き回路30は、以上のような処理を、例えば、1フレーム(フィールド)単位で行うようになされている。従って、間引き回路30からレベル制限回路31に対しては、1フレームの画像データが1/9に間引きされた圧縮データとして供給される。但し、間引き回路30における間引き処理は、その他、1フレームの画像を幾つかのブロックに分割し、そのブロック単位で行うようにすることも可能である。
レベル制限回路31は、間引き回路30から、1/9に間引かれた画素データの供給を受けると、8ビットで表されている画素データのMSB側から2ビットを抽出することでレベルを制限する。すなわち、これにより、各画素データは2ビットで表されることになり、その後の処理が簡単となる。
補正回路32は、レベル制限回路31から圧縮データを受信すると、ステップS13において、判定部24(図3)から制御信号を受信したかどうかを判定する。ステップS13において、制御信号を受信していないと判定された場合、ステップS16に進み、補正回路32は、レベル制限回路31からの圧縮データを、そのまま補正データとして、ローカルデコード部22および判定部24に出力し、ステップS13に戻る。
即ち、判定部24は、上述したように、誤差情報に基づいて、圧縮部21(補正回路32)を制御するようになされており、レベル制限回路31から圧縮データが出力された直後は、まだ、誤差情報が得られないため(誤差情報が、誤差算出部23から出力されないため)、判定部24からは制御信号は出力されない。このため、レベル制限回路31から圧縮データが出力された直後は、補正回路32は、その圧縮データを補正せず(0を加算する補正をして)、そのまま補正データとして、ローカルデコード部22および判定部24に出力する。
一方、ステップS13において、判定部24からの制御信号を受信したと判定された場合、ステップS14において、補正回路32は、その制御信号にしたがったアドレスを、補正値ROM33に出力する。これにより、ステップS14では、補正値ROM33から、そのアドレスに記憶されている、1フレーム分の圧縮データを補正するための補正値△の組合せ(集合)が読み出され、補正回路32に供給される。補正回路32は、補正値ROM33から補正値△の組合せを受信すると、ステップS15において、1フレームの圧縮データそれぞれに、対応する補正値△を加算し、これにより、圧縮データを補正した補正データを算出する。その後は、ステップS16に進み、補正データが、補正回路32からローカルデコード部22および判定部24に出力され、ステップS13に戻る。
以上のようにして、圧縮部21は、判定部24の制御にしたがって、圧縮データを、種々の値に補正した補正データを出力することを繰り返す。
なお、判定部24は、1フレームの画像についての符号化を終了すると、その旨を表す制御信号を、圧縮部21に供給するようになされており、圧縮部21では、ステップS13において、そのような制御信号を受信したかどうかも判定されるようになされている。ステップS13において、1フレームの画像についての符号化が終了した旨の制御信号を受信したと判定された場合、次のフレームの画像が供給されるのを待って、ステップS11に戻り、ステップS11からの処理が繰り返される。
また、上述の場合においては、間引き回路30に、3×3画素の中心の画素についての画素データ(画素値)のみを抽出させることにより、圧縮データを生成させるようにしたが、その他、例えば、3×3画素の平均値を算出し、その平均値を、3×3画素の中心の画素の画素値として、圧縮データを生成させるようにすることなども可能である。
次に、図8は、図3のローカルデコード部22の構成例を示している。
圧縮部21からの補正データは、クラス分類用ブロック化回路41および予測値計算用ブロック化回路42に供給されるようになされている。クラス分類用ブロック化回路41は、補正データを、その性質に応じて所定のクラスに分類するための単位である、注目される補正データ(画素)(注目補正データ)を中心としたクラス分類用ブロックにブロック化するようになされている。
即ち、いま、図7において、上からi番目で、左からj番目の補正データ(圧縮データ)(または画素)(図中、●印で示す部分)をXijと表すとすると、クラス分類用ブロック化回路41は、注目画素(注目補正データ)Xijの上、左、右、下に隣接する4つの画素X(i-1)j,Xi(j-1),Xi(j+1),X(i-1)jに、自身を含め、合計5画素で構成されるクラス分類用ブロックを構成するようになされている。このクラス分類用ブロックは、クラス分類適応処理回路43に供給されるようになされている。
なお、この場合、クラス分類用ブロックは、十文字形に配列されている画素でなるブロックで構成されることとなるが、クラス分類用ブロックの形状は、十文字形である必要はなく、その他、例えば、長方形、正方形、その他の任意な形とすることが可能である。また、クラス分類用ブロックを構成する画素数も、5画素に限定されるものではない。
予測値計算用ブロック化回路42は、補正データを、元の画像の予測値を計算するための単位である、注目補正データを中心とした予測値計算用ブロックにブロック化するようになされている。即ち、いま、図7において、補正データXij(図中、●印で示す部分)を中心とする、元の画像(原画像)における3×3の9画素の画素値を、その最も左から右方向、かつ上から下方向に、Yij(1),Yij(2),Yij(3),Yij(4),Yij(5),Yij(6),Yij(7),Yij(8),Yij(9)と表すとすると、画素Yij(1)乃至Yij(9)の予測値の計算のために、予測値計算用ブロック化回路42は、例えば、画素Xijを中心とする5×5の25画素X(i-2)(j-2),X(i-2)(j-1),X(i-2)j,X(i-2)(j+1),X(i-2)(j+2),X(i-1)(j-2),X(i-1)(j-1),X(i-1)j,X(i-1)(j+1),X(i-1)(j+2),Xi(j-2),Xi(j-1),Xij,Xi(j+1),Xi(j+2),X(i+1)(j-2),X(i+1)(j-1),X(i+1)j,X(i+1)(j+1),X(i+1)(j+2),X(i+2)(j-2),X(i+2)(j-1),X(i+2)j,X(i+2)(j+1),X(i+2)(j+2)で構成される正方形状の予測値計算用ブロックを構成するようになされている。
具体的には、例えば、図7において四角形で囲む、元の画像における画素Y33(1)乃至Y33(9)の予測値の計算のためには、画素X11,X12,X13,X14,X15,X21,X22,X23,X24,X25,X31,X32,X33,X34,X35,X41,X42,X43,X44,X45,X51,X52,X53,X54,X55により、予測値計算用ブロックが構成される。
予測値計算用ブロック化回路42において得られた予測値計算用ブロックは、クラス分類適応処理回路43に供給されるようになされている。
なお、予測値計算用ブロックについても、クラス分類用ブロックにおける場合と同様に、その画素数および形状は、上述したものに限定されるものではない。但し、予測値計算用ブロックを構成する画素数は、クラス分類用ブロックを構成する画素数よりも多くするのが望ましい。
また、上述のようなブロック化を行う場合において(ブロック化以外の処理についても同様)、画像の画枠付近では、対応する画素が存在しないことがあるが、この場合には、例えば、画枠を構成する画素と同一の画素が、その外側に存在するものとして処理を行う。
クラス分類適応処理43は、クラス分類回路45および適応処理46で構成され、クラス分類適応処理を行うようになされている。
クラス分類適応処理とは、入力信号を、その特徴に基づいて幾つかのクラスに分類し、各クラスの入力信号に、そのクラスに適切な適応処理を施すもので、大きく、クラス分類処理と適応処理とに分かれている。
ここで、クラス分類処理および適応処理について簡単に説明する。
まず、クラス分類処理について説明する。
いま、例えば、図9(A)に示すように、ある注目画素と、それに隣接する3つの画素により、2×2画素でなるブロック(クラス分類用ブロック)を構成し、また、各画素は、1ビットで表現される(0または1のうちのいずれかのレベルをとる)ものとする。この場合、2×2の4画素のブロックは、各画素のレベル分布により、図9(B)に示すように、16(=(21)4)パターンに分類することができる。このようなパターン分けが、クラス分類処理であり、クラス分類回路45において行われる。
なお、クラス分類処理は、画像(ブロック内の画像)のアクティビティ(画像の複雑さ)(変化の激しさ)などをも考慮して行うようにすることが可能である。
ここで、通常、元の画素には、例えば8ビット程度が割り当てられる。また、本実施の形態においては、上述したように、クラス分類用ブロックは、5画素で構成される。従って、このようなクラス分類用ブロックを元の(8ビットの)画素で構成し、クラス分類処理を行ったのでは、(28)5という膨大な数のクラスに分類されることになる。
一方、本実施の形態では、上述したように、レベル制限回路31において、画素のビット数を小さくしており(8ビットから2ビットにしており)、これにより、クラス数を削減する(1024(=(22)5)にする)ことができる。
次に、適応処理について説明する。
例えば、いま、元の画像の画素値yの予測値E[y]を、その周辺の幾つかの画素の画素値(以下、適宜、学習データという)x1,x2,・・・と、所定の予測係数w1,w2,・・・の線形結合により規定される線形1次結合モデルにより求めることを考える。この場合、予測値E[y]は、次式で表すことができる。
E[y]=w1x1+w2x2+・・・+w25x25+w0
・・・(1)
但し、w0は、本来8ビットのデータxiを、その下位6ビットを削除して、2ビットのデータに変換したので、E[y]を8ビットで表現するために加算される、その下位6ビットに対応する、いわばオフセットの項(オフセット係数)である。なお、オフセット係数w0は、予測係数w1,w2,・・・と同様に、予測値を求めるための係数であるから、以下、適宜、予測係数に含めて扱うこととする。但し、ここでは、説明を簡単にするために、オフセット係数w0を無視して、適応処理を説明する。
いま、予測係数wの集合でなる行列W、学習データの集合でなる行列X、および予測値E[y]の集合でなる行列Y’を、
で定義すると、次のような観測方程式が成立する。
XW=Y’
・・・(2)
そして、この観測方程式に最小自乗法を適用して、元の画像の画素値yに近い予測値E[y]を求めることを考える。この場合、元の画像の画素値(以下、適宜、教師データという)yの集合でなる行列Y、および元の画像の画素値yに対する予測値E[y]の残差eの集合でなる行列Eを、
で定義すると、式(2)から、次のような残差方程式が成立する。
XW=Y+E
・・・(3)
この場合、元の画像の画素値yに近い予測値E[y]を求めるための予測係数w
iは、自乗誤差
を最小にすることで求めることができる。
従って、上述の自乗誤差を予測係数wiで微分したものが0になる場合、即ち、次式を満たす予測係数wiが、元の画像の画素値yに近い予測値E[y]を求めるため最適値ということになる。
そこで、まず、式(3)を、予測係数wiで微分することにより、次式が成立する。
式(4)および(5)より、式(6)が得られる。
さらに、式(3)の残差方程式における学習データx、予測係数w、教師データy、および残差eの関係を考慮すると、式(6)から、次のような正規方程式を得ることができる。
式(7)の正規方程式は、求めるべき予測係数wの数と同じ数だけたてることができ、従って、式(7)を解くことで、最適な予測係数wを求めることができる。式(7)を解くにあたっては、例えば、掃き出し法(Gauss-Jordanの消去法)などを適用することが可能である。
なお、以上の説明したことを、オフセット係数w0を含めた形に拡張することで、予測係数とともに、最適なオフセット係数w0も、あわせて求めることができる。
以上のようにして、クラスごとに、最適な予測係数wを求め、さらに、その予測係数wを用い、式(1)により、元の画像の画素値yに近い予測値E[y]を求めるのが適応処理であり、この適応処理が、適応処理回路46において行われるようになされている。
なお、適応処理は、間引かれた画像には含まれていない、元の画像に含まれる成分が再現される点で、補間処理とは異なる。即ち、適応処理では、式(1)だけを見る限りは、いわゆる補間フィルタを用いての補間処理と同様であるが、その補間フィルタのタップ係数に相当する予測係数wが、教師データyを用いての、いわば学習により求められるため、元の画像に含まれる成分を再現することができる。このことから、適応処理は、いわば画像の創造作用がある処理ということができる。
次に、図10のフローチャートを参照して、図8のローカルデコード部22の処理について説明する。
ローカルデコード部22においては、まず最初に、ステップS21において、圧縮部21からの補正データがブロック化される。即ち、クラス分類用ブロック化回路41において、補正データが、注目補正データを中心とした5画素で構成されるクラス分類用ブロックにブロック化され(図7)、クラス分類適応処理回路43に供給されるとともに、予測値計算用ブロック化回路42において、補正データが、注目補正データを中心とした5×5画素で構成される予測値計算用ブロックにブロック化され、クラス分類適応処理回路43に供給される。
クラス分類適応処理回路43には、上述したように、クラス分類用ブロックおよび予測値計算用ブロックの他、元の画像データが供給されるようになされており、クラス分類用ブロックはクラス分類回路45に、予測値計算用ブロックおよび元の画像データは適応処理回路46に供給されるようになされている。
クラス分類回路45は、ステップS22において、クラス分類用ブロックに対して、クラス分類処理を施す。即ち、クラス分類用ブロックを構成する各画素のレベル分布の状態を検出し、そのクラス分類用ブロックが属するクラス(そのクラス分類用ブロックを構成する注目補正データのクラス)を判定する。このクラスの判定結果は、クラス情報として、適応処理回路46に供給される。
なお、本実施の形態においては、2ビットで表される5画素で構成されるクラス分類用ブロックに対して、クラス分類処理が施されるので、各クラス分類用ブロックは、1024(=(22)5)のクラスのうちのいずれかに分類されることになる。
そして、ステップS23に進み、適応処理回路46において、クラス分類回路45からのクラス情報に基づいて、各クラスごとに適応処理が施され、これにより、クラスごとの予測係数および1フレーム分の元の画像データの予測値が算出される。
即ち、本実施の形態においては、例えば、クラスごとの26×9の予測係数が、1フレームごとに、原画像と補正データから算出される。そして、ある1つの補正データに注目した場合に、その注目補正データに対応する原画像の画素と、その画素の周りに隣接する8個の原画像の画素の、合計9個の画素についての予測値が、注目補正データを中心とする5×5の25画素でなる予測値計算用ブロックと、そのクラス情報に対応する26×9個の予測係数とを用いて、式(1)の線形一次式が計算されることにより算出される。
具体的には、例えば、いま、図7に示した補正データX33を中心とする5個の補正データX23,X32,X33,X34,X43でなるクラス分類用ブロック(補正データX33を注目補正データとするクラス分類用ブロック)についてのクラス情報Cが、クラス分類回路45から出力され、また、そのクラス分類用ブロックに対応する予測値計算用ブロックとして、補正データX33を中心とする5×5画素の補正データX11,X12,X13,X14,X15,X21,X22,X23,X24,X25,X31,X32,X33,X34,X35,X41,X42,X43,X44,X45,X51,X52,X53,X54,X55でなる予測値計算用ブロック(補正データX33を注目補正データとする予測値計算用ブロック)が、予測値計算用ブロック化回路42から出力されたものとすると、まず、その予測値計算用ブロックを構成する補正データを、学習データとするとともに、元の画像における、補正データX33を中心とする3×3画素(図7において四角形で囲んである部分)の画素値Y33(1)乃至Y33(9)を、教師データとして、式(7)に対応する正規方程式がたてられる。
さらに、所定期間としての、例えば、1フレームの中で、同一のクラス情報Cにクラス分類される他の予測値計算用ブロックについても同様にして、正規方程式がたてられ、画素値Y33(k)(ここでは、k=1,2,・・・,9)の予測値E[Y33(k)]を求めるための予測係数w1(k)乃至w25(k)(本実施の形態では、1つの予測値を求めるのに学習データが25個用いられており、さらに、1個のオフセット係数が必要とされるので、それに対応して、予測係数wは26個必要となる)を算出することができるだけの数の正規方程式が得られると(従って、そのような数の正規方程式が得られるまでは、ステップS23では、正規方程式をたてる処理までが行われる)、その正規方程式を解くことで、クラス情報Cについて、画素値Y33(k)の予測値E[Y33(k)]を求めるのに最適な26の予測係数(オフセット係数を含む)w0(k)乃至w25(k)が算出される(25個の補正データを用いて、9個の予測値を求めるため、1クラスについての予測係数の数は、25×9個に、9個の予測値に対応するだけのオフセット係数の数である9個を合わせた26×9個となる)。
この処理は、各クラスごとに行われ、各クラスごとに26×9個の予測係数が算出される。そして、クラス情報Cに対応する26×9個の予測係数と、予測値計算用ブロックとを用い、式(1)に対応する次式にしたがって、予測値E[Y33(k)]が求められる。
E[Y33(k)]=w1(k)X11+w2(k)X12+w3(k)X13
+w4(k)X14+w5(k)X15+w6(k)X21
+w7(k)X22+w8(k)X23+w9(k)X24
+w10(k)X25+w11(k)X31
+w12(k)X32+w13(k)X33
+w14(k)X34+w15(k)X35
+w16(k)X41+w17(k)X42
+w18(k)X43+w19(k)X44
+w20(k)X45+w21(k)X51
+w22(k)X52+w23(k)X53
+w24(k)X54+w25(k)X55
+w0(k)
・・・(8)
ステップS23では、以上のようにして、26×9の予測係数が、クラスごとに求められ、そのクラスごとの予測係数を用いて、注目補正データを中心とする3×3の原画像の画素の予測値が求められる。
その後、ステップS24に進み、クラスごとの26×9の予測係数は判定部24に供給され、3×3画素単位で求められる1フレーム分の予測値は誤差算出部23に供給される。そして、ステップS21に戻り、以下同様の処理が、例えば、上述したように1フレーム単位で繰り返される。
次に、図11は、図3の誤差算出部23の構成例を示している。
ブロック化回路51には、元の画像データが供給されるようになされており、そこでは、ブロック化回路51は、その画像データを、ローカルデコード部22から出力される予測値に対応する9個単位でブロック化し、その結果得られる3×3画素のブロック(例えば、図7に四角形で囲んで示すような3×3画素のブロック)を、自乗誤差算出回路52に出力するようになされている。自乗誤差算出部52には、上述したように、ブロック化回路51からブロックが供給される他、ローカルデコード部22から予測値が、9個単位(3×3画素のブロック単位)で供給されるようになされており、自乗誤差算出回路52は、原画像に対する、予測値の予測誤差としての自乗誤差を算出し、積算部55に供給するようになされている。
即ち、自乗誤差算出回路は52は、演算器53および54で構成されている。演算器53は、ブロック化回路51からのブロック化された画像データそれぞれから、対応する予測値を減算し、その減算値を、演算器54に供給するようになされている。演算器54は、演算器53の出力(元の画像データと予測値との差分)を自乗し、積算部55に供給するようになされている。
積算部55は、自乗誤差算出回路52から自乗誤差を受信すると、メモリ56の記憶値を読み出し、その記憶値と自乗誤差とを加算して、再び、メモリ56に供給して記憶させることを繰り返すことで、自乗誤差の積算値(誤差分散)を求めるようになされている。さらに、積算部55は、所定量(例えば、1フレーム分など)についての自乗誤差の積算が終了すると、その積算値を、メモリ56から読み出し、誤差情報として、判定部24に供給するようになされている。メモリ56は、1フレームについての処理が終了するごとに、その記憶値をクリアしながら、積算部55の出力値を記憶するようになされている。
次に、その動作について、図12のフローチャートを参照して説明する。誤差算出部23では、まず最初に、ステップS31において、メモリ56の記憶値が、例えば0にクリアされ、ステップS32に進み、ブロック化回路51において、画像データが、上述したようにブロック化され、その結果得られるブロックが、自乗誤差算出回路52に供給される。自乗誤差算出回路52では、ステップS33において、ブロック化回路51から供給されるブロックを構成する、元の画像の画像データと、ローカルデコード部22から供給される予測値との自乗誤差が算出される。
即ち、ステップS33では、演算器53において、ブロック化回路51より供給されたブロック化された画像データそれぞれから、対応する予測値が減算され、演算器54に供給される。さらに、ステップS33では、演算器54において、演算器53の出力が自乗され、積算部55に供給される。
積算部55は、自乗誤差算出回路52から自乗誤差を受信すると、ステップS34において、メモリ56の記憶値を読み出し、その記憶値と自乗誤差とを加算することで、自乗誤差の積算値を求める。積算部55において算出された自乗誤差の積算値は、メモリ56に供給され、前回の記憶値に上書きされることで記憶される。
そして、積算部55では、ステップS35において、所定量としての、例えば、1フレーム分についての自乗誤差の積算が終了したかどうかが判定される。ステップS35において、1フレーム分についての自乗誤差の積算が終了していないと判定された場合、ステップS32に戻り、再び、ステップS32からの処理を繰り返す。また、ステップS35において、1フレーム分についての自乗誤差の積算が終了したと判定された場合、ステップS36に進み、積算部55は、メモリ56に記憶された1フレーム分についての自乗誤差の積算値を読み出し、誤差情報として、判定部24に出力する。そして、ステップS31に戻り、次のフレームについて、再び、ステップS31からの処理を繰り返す。
従って、誤差算出部23では、元の画像データをYij(k)とするとともに、その予測値をE[Yij(k)]とするとき、次式にしたがった演算が行われることで、誤差情報Qが算出される。
Q=Σ(Yij(k)−E[Yij(k)])2
但し、Σは、1フレーム分についてのサメーションを意味する。
次に、図13は、図3の判定部24の構成例を示している。
予測係数メモリ61は、ローカルデコード部22から供給される予測係数を記憶するようになされている。補正データメモリ62は、圧縮部21から供給される補正データを記憶するようになされている。
なお、補正データメモリ62は、圧縮部21において、圧縮データが新たに補正され、これにより、新たな補正データが供給された場合には、既に記憶している補正データ(前回の補正データ)に代えて、新たな補正データを記憶するようになされている。また、このように補正データが、新たなものに更新されるタイミングで、ローカルデコード部22からは、その新たな補正データに対応する、新たなクラスごとの予測係数のセットが出力されるが、予測係数メモリ61においても、このように新たなクラスごとの予測係数が供給された場合には、既に記憶しているクラスごとの予測係数(前回のクラスごとの予測係数)に代えて、その新たなクラスごとの予測係数を記憶するようになされている。
誤差情報メモリ63は、誤差算出部23から供給される誤差情報を記憶するようになされている。なお、誤差情報メモリ63は、誤差算出部23から、今回供給された誤差情報の他に、前回供給された誤差情報も記憶するようになされている(新たな誤差情報が供給されても、さらに新たな誤差情報が供給されるまでは、既に記憶している誤差情報を保持するようになされている)。なお、誤差情報メモリ63は、新たなフレームについての処理が開始されるごとにクリアされるようになされている。
比較回路64は、誤差情報メモリ63に記憶された今回の誤差情報と、所定の閾値εとを比較し、さらに、必要に応じて、今回の誤差情報と前回の誤差情報との比較も行うようになされている。比較回路64における比較結果は、制御回路65に供給されるようになされている。
制御回路65は、比較回路64における比較結果に基づいて、補正データメモリ62に記憶された補正データを、元の画像の符号化結果とすることの適正(最適)さを判定し、最適でないと認識(判定)した場合には、新たな補正データの出力を要求する制御信号を、圧縮部21(補正回路32)(図5)に供給するようになされている。また、制御回路65は、補正データメモリ62に記憶された補正データを、元の画像の符号化結果とすることが最適であると認識した場合には、予測係数メモリ61に記憶されているクラスごとの予測係数を読み出し、多重化部25に出力するとともに、補正データメモリ62に記憶されている補正データを読み出し、最適圧縮データとして、やはり多重化部25に供給するようになされている。さらに、この場合、制御回路65は、1フレームの画像についての符号化を終了した旨を表す制御信号を、圧縮部21に出力し、これにより、上述したように、圧縮部21に、次のフレームについての処理を開始させるようになされている。
次に、図14を参照して、判定部24の動作について説明する。判定部24では、まず最初に、ステップS41において、誤差算出部23から誤差情報を受信したかどうかが、比較回路64によって判定され、誤差情報を受信していないと判定された場合、ステップS41に戻る。また、ステップS41において、誤差情報を受信したと判定された場合、即ち、誤差情報メモリ63に誤差情報が記憶された場合、ステップS42に進み、比較回路64において、誤差情報メモリ63に、いま記憶された誤差情報(今回の誤差情報)と、所定の閾値εとが比較され、いずれが大きいかが判定される。
ステップS42において、今回の誤差情報が、所定の閾値ε以上であると判定された場合、比較回路64において、誤差情報メモリ63に記憶されている前回の誤差情報が読み出される。そして、比較回路64は、ステップS43において、前回の誤差情報と、今回の誤差情報とを比較し、いずれが大きいかを判定する。
ここで、1フレームについての処理が開始され、最初に誤差情報が供給されたときには、誤差情報メモリ63には、前回の誤差情報は記憶されていないので、この場合には、判定部24においては、ステップS43以降の処理は行われず、制御回路65において、所定の初期アドレス(補正値ROM33(図5)において、補正値の初期値が記憶されているアドレス)を出力するように、補正回路32(図5)を制御する制御信号が出力されるようになされている。
ステップS43において、今回の誤差情報が、前回の誤差情報以下であると判定された場合、即ち、圧縮データの補正を行うことにより誤差情報が減少した場合、ステップS44に進み、制御回路65は、補正値△を、前回と同様に変化させるように指示する制御信号を、補正回路32に出力し、ステップS41に戻る。また、ステップS43において、今回の誤差情報が、前回の誤差情報より大きいと判定された場合、即ち、圧縮データの補正を行うことにより誤差情報が増加した場合、ステップS45に進み、制御回路65は、補正値△を、前回と逆に変化させるように指示する制御信号を、補正回路32に出力し、ステップS41に戻る。
なお、減少し続けていた誤差情報が、あるタイミングで上昇するようになったときは、制御回路65は、補正値△を、いままでの場合の、例えば1/2の大きさで、前回と逆に変化させるように指示する制御信号を出力するようになされている。
そして、ステップS41乃至S45の処理を繰り返すことにより、誤差情報が減少し、これにより、ステップS42において、今回の誤差情報が、所定の閾値εより小さいと判定された場合、ステップS46に進み、制御回路65は、予測係数メモリ61に記憶されているクラスごとの予測係数を読み出すとともに、補正データメモリ62に記憶されている1フレーム分の補正データを最適圧縮データとして読み出し、多重化部25に供給して、処理を終了する。
その後は、次のフレームについての誤差情報が供給されるのを待って、再び、図14に示すフローチャートにしたがった処理を繰り返す。
なお、補正回路32には、圧縮データの補正は、1フレームすべての圧縮データについて行わせるようにすることもできるし、その一部の圧縮データについてだけ行わせるようにすることもできる。一部の圧縮データについてだけ補正を行う場合においては、制御回路65に、例えば、誤差情報に対する影響の強い画素を検出させ、そのような画素についての圧縮データだけを補正するようにすることができる。誤差情報に対する影響の強い画素は、例えば、次のようにして検出することができる。即ち、まず最初に、間引き後に残った画素のレベル制御した圧縮データをそのまま用いて処理を行うことにより、その誤差情報を得る。そして、その圧縮データを、1つずつ、同一の補正値△だけ補正するような処理を行わせる制御信号を、制御回路65から補正回路32に出力し、その結果得られる誤差情報を、圧縮データをそのまま用いた場合に得られた誤差情報と比較し、その差が、所定値以上となる画素を、誤差情報に対する影響の強い画素として検出すれば良い。
以上のように、誤差情報を所定の閾値εより小さくする(以下にする)まで、圧縮データの補正が繰り返され、誤差情報が所定の閾値εより小さくなったときにおける補正データが、画像の符号化結果として出力されるので、受信装置4(図1)においては、間引き後の画像を構成する画素の画素値を、元の画像を復元するのに最も適当な値にした補正データから、原画像と同一(ほぼ同一)の復号画像(高画質の復号画像)を得ることが可能となる。
また、画像は、間引き処理により圧縮される他、レベル制限処理およびクラス分類適応処理などによっても圧縮されるため、非常に高圧縮率の符号化データを得ることができる。なお、送信装置1における、以上のような符号化処理は、間引きによる圧縮処理と、クラス分類適応処理とを、いわば有機的に統合して用いることにより、高能率圧縮を実現するものであり、このことから統合符号化処理ということができる。
次に、図15は、図1の受信装置4の構成例を示している。
受信機/再生装置71においては、記録媒体2に記録された符号化データが再生され、または伝送路3を介して伝送されてくる符号化データが受信され、分離部72に供給される。分離部72では、符号化データから、1フレーム分の補正データとクラスごとの予測係数が順次分離され、1フレーム分の補正データは、クラス分類用ブロック化回路73および予測値計算用ブロック化回路77に供給され、クラスごとの予測係数は、予測回路76に供給されて、その内蔵するメモリ76Aに記憶される。
クラス分類用ブロック化回路73、クラス分類回路75、または予測値計算用ブロック化回路77は、図8におけるクラス分類用ブロック化回路41、クラス分類回路45、または予測値計算用ブロック化回路42それぞれと同様に構成されており、従って、これらのブロックにおいては、図8における場合と同様の処理が行われ、これにより、予測値計算用ブロック化回路77からは予測値計算用ブロックが出力され、また、クラス分類回路75からはクラス情報が出力される。これらの予測値計算用ブロックおよびクラス情報は、予測回路76に供給される。
予測回路76では、クラス情報に対応した予測係数が、その内蔵するメモリ76Aに記憶されたクラスごとの予測係数の中から読み出され、その予測係数と、予測値計算用ブロック化回路77から供給される予測値計算用ブロックを構成する補正データとを用い、式(1)にしたがって予測値が算出され、そのような予測値で構成される1フレームの画像が、復号画像として出力される。この復号画像は、上述したように、元の画像とほぼ同一の画像となる。
なお、受信側においては、図15に示すような受信装置4でなくても、間引きされた画像を単純な補間により復号する装置により、予測係数を用いずに、通常の補間を行うことで復号画像を得ることができる。但し、この場合に得られる復号画像は、画質(解像度)の劣化したものとなる。
ところで、上述の場合おいては、図3のローカルデコード部22において予測係数を求め、これを用いて、予測値を算出するようにしたが、予測値は、予測係数を求めずに(あらかじめ学習により求めておいた予測係数を用いて)算出するようにすることが可能である。
即ち、図16は、図2の送信装置1の第2の機能的構成例を示している。なお、図中、図3における場合と対応する部分については、同一の符号を付してある。即ち、この送信装置1は、ローカルデコード部22に代えて、ローカルデコード部1022が設けられている他は、図3における場合と同様に構成されている。
但し、図3においては、ローカルデコード部22に原画像データが供給されるようになされていたが、図16においては、ローカルデコード部1022には、原画像データが供給されないようになっている。
図17は、図16のローカルデコード部1022の構成例を示している。なお、図中、図8における場合と対応する部分については、同一の符号を付してある。即ち、ローカルデコード部1022は、適応処理回路46に代えて、予測係数ROM81および予測回路82が設けられている他は、図8におけるローカルデコード部22と同様に構成されている。
予測係数ROM81は、あらかじめ学習(後述する)を行うことにより求められたクラスごとの26×9の予測係数を記憶しており、クラス分類回路45が出力するクラス情報を受信し、そのクラス情報に対応するアドレスに記憶されている予測係数を読み出して、予測回路82に供給する。
予測回路82では、予測値計算用ブロック化回路42からの5×5画素の予測値計算用ブロックと、予測係数ROM81からの26×9の予測係数とを用いて、式(1)(具体的には、例えば、式(8))に示した線形1次式が計算され、これにより、元の画像の3×3画素の予測値が算出される。
従って、図17のクラス分類適応処理回路43によれば、元の画像(原画像)を用いずに、その予測値が算出される。このため、上述したように、ローカルデコード部1022には、原画像が供給されないようになっている(供給する必要がないため、供給しないようになっている)。
次に、図18のフローチャートを参照して、図17のローカルデコード部1022の処理についてさらに説明する。
ローカルデコード部1022においては、まず最初に、ステップS1021,S1022において、図10のステップS21,S22における場合とそれぞれ同様の処理が行われ、これにより、クラス分類回路45からは、クラス情報が出力される。このクラス情報は、予測係数ROM81に供給される。また、予測値計算用ブロック化回路42からは、予測値計算用ブロックが出力され、予測回路82に供給される。
予測係数ROM81は、クラス情報を受信すると、ステップS1023において、そのクラス情報に対応する26×9の予測係数を、記憶しているクラスごとの予測係数の中から読み出し、予測回路82に供給する。
予測回路82には、予測係数ROM81から26×9の予測係数が供給される他、上述したように、予測値計算用ブロック化回路42から5×5画素の予測値計算用ブロックも供給される。そして、予測回路82では、ステップS1024において、予測係数ROM81からの26×9の予測係数と、予測値計算用ブロック化回路42からの5×5画素の予測値計算用ブロックとを用いて適応処理が行われることにより、即ち、具体的には、式(1)(または式(8))にしたがった演算が行われることにより、注目補正データ(ここでは、予測値計算用ブロックの中心にある画素)を中心とする3×3の原画像の画素の予測値が求められる。
その後、例えば、1フレーム分の予測値が求められると、ステップS1025に進み、予測係数ROM81に記憶されたクラスごとの26×9の予測係数が読み出され、判定部24に供給されるとともに、ステップS1024で求められた予測値が誤差算出部23に供給される。そして、ステップS1021に戻り、以下同様の処理が、例えば、1フレーム単位で繰り返される。
なお、この実施の形態では、クラスごとの予測係数は、予測係数ROM81に記憶されたものが使用され、従って、その値は変化しないから、ステップS1025において、クラスごとの予測係数を、判定部24に一度供給した後は、基本的に、再度供給する必要はない。
また、送信装置1が、図16に示したように構成される場合においても、受信装置4は、図15に示したように構成することで、原画像とほぼ同一の復号画像を得ることができる。
次に、図19は、図17の予測係数ROM81に記憶されている予測係数を得るための学習を行う画像処理装置の構成例を示している。
学習用ブロック化回路91および教師用ブロック化回路92には、あらゆる画像に適用可能な予測係数を得るための(従って、間引き処理される前の)学習用の画像データ(学習用画像)が供給されるようになされている。
学習用ブロック化回路91は、入力される画像データから、注目画素を中心とする、例えば、図7に●印で示した位置関係の25画素(5×5画素)を抽出し(この場合における注目画素は、X33)、この25画素で構成されるブロックを、学習用ブロックとして、レベル制限回路93に供給する。レベル制限回路93は、入力された画素データのレベルを制限し、クラス分類回路94と学習用データメモリ96に出力する。
また、教師用ブロック化回路92では、入力される画像データから、注目画素を中心とする、例えば、3×3の9画素で構成されるブロックが生成され、この9画素で構成されるブロックが、教師用ブロックとして、教師データメモリ98に供給される。
なお、学習用ブロック化回路91において、例えば、図7に●印で示した位置関係の25画素で構成される学習用ブロックが生成されるとき、教師用ブロック化回路92では、同図に四角形で囲んで示す3×3画素の教師用ブロックが生成されるようになされている。
クラス分類回路94では、学習用ブロックを構成する25画素から、その中心の9画素(3×3画素)が抽出され、この9画素でなるブロックに対して、クラス分類を施される。そして、それにより得られるクラス情報が、スイッチ95の端子aを介して、学習データメモリ96および教師データメモリ98に供給される。
学習データメモリ96または教師データメモリ98では、そこに供給されるクラス情報に対応するアドレス(AD)に、レベル制限回路93からの学習用ブロックまたは教師用ブロック化回路92からの教師用ブロックが、それぞれ記憶される。
従って、学習データメモリ96において、例えば、図7に●印で示した5×5画素でなるブロックが学習用ブロックとして、あるアドレスに記憶されたとすると、教師データメモリ98においては、そのアドレスと同一のアドレスに、同図において、四角形で囲んで示す3×3画素のブロックが、教師用ブロックとして記憶される。
以下、同様の処理が、あらかじめ用意されたすべての学習用の画像について繰り返され、これにより、学習用ブロックと、図17のローカルデコード部1022において、その学習用ブロックを構成する25画素と同一の位置関係を有する25の補正データで構成される予測値計算用ブロックを用いて予測値が求められる9画素で構成される教師用ブロックとが、学習用データメモリ96と、教師用データメモリ98とにおいて、同一のアドレスに記憶される。
なお、学習用データメモリ96と教師用データメモリ98においては、同一アドレスに複数の情報を記憶することができるようになされており、これにより、同一アドレスには、複数の学習用ブロックと教師用ブロックを記憶することができるようになされている。
学習用画像すべてについての学習用ブロックと教師用ブロックとが、学習データメモリ96と教師データメモリ98に記憶されると、端子aを選択していたスイッチ95が、端子bに切り替わり、これにより、カウンタ97の出力が、アドレスとして、学習データメモリ96および教師データメモリ98に供給される。カウンタ97は、所定のクロックをカウントし、そのカウント値を出力しており、学習データメモリ96または教師データメモリ98では、そのカウント値に対応するアドレスに記憶された学習用ブロックまたは教師用ブロックが読み出され、演算回路99に供給される。
従って、演算回路99には、カウンタ97のカウント値に対応するクラスの学習用ブロックのセットと、教師用ブロックのセットとが供給される。
演算回路99は、あるクラスについての学習用ブロックのセットと、教師用ブロックのセットとを受信すると、それらを用いて、例えば、最小自乗法により、誤差を最小とする予測係数を算出する。
即ち、例えば、いま、学習用ブロックを構成する画素の画素値を、x1,x2,x3,・・・とし、求めるべき予測係数をw0,w1,w2,w3,・・・とするとき、これらの線形1次結合により、教師用ブロックを構成する、ある画素の画素値yを求めるには、予測係数w0,w1,w2,w3,・・・は、式(1)に対応する次式を満たす必要がある。
y=w1x1+w2x2+w3x3+・・・+w0
そこで、演算回路99では、同一クラスの学習用ブロックと、対応する教師用ブロックとから、真値yに対する、予測値w1x1+w2x2+w3x3+・・・+w0の自乗誤差を最小とする予測係数w1,w2,w3,・・・,w0が、上述した式(7)に対応する正規方程式をたてて解くことにより求められる。
演算回路99において求められた、クラスごとの予測係数は、メモリ100に供給される。メモリ100には、演算回路99からの予測係数の他、カウンタ97からカウント値が供給されており、これにより、メモリ100においては、演算回路99からの予測係数が、カウンタ97からのカウント値に対応するアドレスに記憶される。
以上のようにして、メモリ100には、各クラスに対応するアドレスに、そのクラスのブロックの画素を予測するのに最適な予測係数が記憶される。
図17の予測係数ROM81には、以上のようにしてメモリ100に記憶された予測係数が記憶されている。
次に、図20は、図2の送信装置1の第3の機能的構成例を示している。なお、図中、図3における場合と対応する部分については、同一の符号を付してある。即ち、この送信装置1は、ローカルデコード部22または判定部24に代えて、ローカルデコード部2022または判定部2024がそれぞれ設けられているとともに、多重化部25が設けられていない他は、図3における場合と同様に構成されている。
但し、この場合も、図16における場合と同様に、ローカルデコード部2022には、原画像データが供給されないようになっている。さらに、図20の実施の形態では、ローカルデコード部2022は、予測係数を判定部2024に出力しないようになっている。
次に、図21のフローチャートを参照して、その動作について説明する。
圧縮部21に対して、画像データが供給されると、圧縮部21は、ステップS1001において、その画像データを間引くことにより圧縮し、さらに、ステップS1002において、そのレベルを制限し、最初は、補正を行わずに、ローカルデコード部2022および判定部2024に出力する。ローカルデコード部2022では、ステップS1003において、圧縮部21からの補正データ(最初は、上述したように、画像データを、単純に間引いた圧縮データのレベルを制限しただけのもの)がローカルデコードされる。
即ち、ステップS1003では、圧縮部21からの補正データが、例えば、図17に示したローカルデコード部1022における場合と同様にして、ローカルデコードされ、これにより、原画像の予測値が算出される。この予測値は、誤差算出部23に供給される。
誤差算出部23では、ステップS1004において、図4のステップS4における場合と同様にして、予測誤差が算出され、誤差情報として、判定部2024に供給される。判定部2024は、誤差算出部23から誤差情報を受信すると、ステップS1005において、図4のステップS4における場合と同様に、誤差算出部23からの誤差情報が所定の閾値ε以下であるかどうかを判定する。ステップS1005において、誤差情報が所定の閾値ε以下でないと判定された場合、ステップS1006に進み、判定部2024は、圧縮部21を制御し、これにより、圧縮データのレベルを制限したものを補正させる。そして、圧縮部21において、圧縮データが補正され、新たな補正データが出力されるのを待って、ステップS1003に戻る。
一方、ステップS1005において、誤差情報が所定の閾値ε以下であると判定された場合、判定部2024は、ステップS1007に進み、所定の閾値ε以下の誤差情報が得られたときの補正データを、最適圧縮データとして、送信機/記録装置16(図2)に出力し、処理を終了する。
従って、ここでは、クラスごとの予測係数は出力されない。
次に、図22は、図20のローカルデコード部2022の構成例を示している。なお、図中、図17における場合と対応する部分については、同一の符号を付してある。即ち、ローカルデコード部2022は、基本的に図17におけるローカルデコード部1022と同様に構成されている。
但し、図17においては、予測係数ROM81がそこに記憶されているクラスごとの予測係数を、判定部24に供給するようになっていたが、図22では、予測係数ROM81は、クラスごとの予測係数を、判定部24に供給しないようになっている。
次に、図23のフローチャートを参照して、その動作について説明する。
ローカルデコード部2022では、ステップS2021乃至S2024において、図18のステップS1021乃至1024における場合とそれぞれ同様の処理が行われる。そして、ステップS2025において、ステップS2024で求められた予測値のみが、誤差算出部23に供給され(予測係数は、判定部2024に供給されない)、ステップS2021に戻り、以下、同様の処理が、例えば、1フレーム単位で繰り返される。
次に、図24は、図20の判定部2024の構成例を示している。なお、図中、図13における場合と対応する部分については、同一の符号を付してある。即ち、上述したように、ローカルデコード部2022からは予測係数が供給されないため、判定部2024には、その予測係数を記憶するための予測係数メモリ61が設けられておらず、そのことを除けば、基本的に、図13の判定部24と同様に構成されている。
次に、図25のフローチャートを参照して、その動作について説明する。
判定部2024では、ステップS2041乃至2045において、図14のステップS41乃至S45における場合とそれぞれ同様の処理が行われ、これにより、誤差情報が減少するように、圧縮部21が制御される。
そして、ステップS2041乃至S2045の処理を繰り返すことにより、誤差情報が減少し、これにより、ステップS2042において、今回の誤差情報が、所定の閾値εより小さいと判定された場合、ステップS2046に進み、制御回路65は、補正データメモリ62に記憶されている1フレームの補正データを、最適圧縮データとして読み出し、送信機/記録装置16に供給して、処理を終了する。
その後は、次のフレームについての誤差情報が供給されるのを待って、再び、同様の処理を繰り返す。
次に、図26は、送信装置1が図20に示したように構成される場合の受信装置4の構成例を示している。なお、図中、図15における場合と対応する部分については、同一の符号を付してある。即ち、図26の受信装置4は、クラス分類回路75と予測回路76との間に予測係数ROM78が新たに設けられている他は、図15における場合と基本的に同様に構成されている。
送信装置1が図20に示したように構成される場合、上述したことから、受信機/再生装置71が出力する符号化データには、クラスごとの予測係数は含まれておらず、このため、分離部72では、符号化データから、補正データ(最適圧縮データ)だけが抽出され、クラス分類用ブロック化回路73および予測値計算用ブロック化回路77に供給される。
クラス分類用ブロック化回路73、クラス分類回路75、または予測値計算用ブロック化回路77では、図8におけるクラス分類用ブロック化回路41、クラス分類回路45、または予測値計算用ブロック化回路42それぞれと同様の処理が行われ、これにより、予測値計算用ブロック化回路77からは5×5画素の予測値計算用ブロックが出力され、また、クラス分類回路75からはクラス情報が出力される。予測値計算用ブロックは予測回路76に供給され、クラス情報は予測係数ROM78に供給される。
予測係数ROM78には、図22の予測係数ROM81に記憶されているクラスごとの予測係数と同一のものが記憶されており、クラス分類回路75からクラス情報が供給されると、そのクラス情報に対応した26×9の予測係数が読み出され、予測回路76に供給される。
予測回路76は、予測係数ROM78からの26×9の予測係数と、予測値計算用ブロック化回路77から供給される5×5画素の予測値計算用ブロックを構成する補正データとを用い、式(1)にしたがって、原画像の3×3画素の予測値を算出し、そのような予測値で構成される1フレームの画像を、復号画像として出力する。
送信装置1が図20に示したように構成されるとともに、受信装置4が図26に示したように構成される場合、クラスごとの26×9の予測係数を送受信せずに済むので、その分だけ、伝送容量または記録容量を低減することができる。
なお、予測係数ROM78や81には、クラスごとの予測係数を記憶させるのではなく、教師用ブロックを構成する画素値の平均値などを、クラスごとに記憶させるようにすることが可能である。この場合、クラス情報が与えられると、そのクラスに対応する画素値が出力されることになり、図17や図22のローカルデコード部1022や2022において、予測値計算用ブロック化回路42および予測回路82を設けずに済むようになる。また、図26の受信装置4においても同様に、予測値計算用ブロック化回路77および予測回路76を設けずに済むようになる。
なお、上述の場合には、誤差情報が、所定の閾値ε以下になるまで、圧縮データの補正を繰り返し行うようにしたが、圧縮データの補正の回数には、上限を設けるようにすることも可能である。即ち、例えば、リアルタイムで画像の伝送を行う場合などにおいては、1フレームについての処理が、所定の期間内に終了することが必要であるが、誤差情報は、そのような所定の期間内に収束するとは限らない。そこで、補正の回数に上限を設けることにより、所定の期間内に、誤差情報が閾値ε以下に収束しないときは、そのフレームについての処理を終了し(そのときにおける補正データを、符号化結果とし)、次のフレームについての処理を開始するようにすることが可能である。
また、上述の場合には、圧縮部21において、画像を、単純に間引き、即ち、3×3画素のブロックにおける中心画素を抽出し、これを圧縮データとするようにしたが、圧縮部21には、その他、例えば、ブロックを構成する9画素の平均値などを求めさせ、その平均値を、ブロックにおける中心画素の画素値とすることにより、その画素数を少なくし(間引き)、これを圧縮データとするようにすることも可能である。
次に、図27は、図2の送信装置1の第4の機能的構成例を示している。
ブロック化回路111には、符号化すべき画像データが入力されるようになされており、ブロック化回路111は、画像データを、その性質に応じて所定のクラスに分類するための単位である、注目画素を中心としたクラス分類用ブロックにブロック化し、ADRC(Adaptive Dynamic Range Coding)処理回路112および遅延回路115に供給するようになされている。
ADRC処理回路112は、ブロック化回路111からのブロック(クラス分類用ブロック)に対してADRC処理を施し、その結果得られるADRCコードで構成されるブロックを、クラス分類回路113に供給するようになされている。
ここで、ADRC処理よれば、クラス分類用ブロックを構成する画素のビット数が低減されるようになされている。
即ち、例えば、いま、説明を簡単にするため、図28(A)に示すように、直線上に並んだ4画素で構成されるブロックを考えると、ADRC処理においては、その画素値の最大値MAXと最小値MINが検出される。そして、DR=MAX−MINを、ブロックの局所的なダイナミックレンジとし、このダイナミックレンジDRに基づいて、ブロックを構成する画素の画素値がKビットに再量子化される。
即ち、ブロック内の各画素値から、最小値MINを減算し、その減算値をDR/2Kで除算する。そして、その結果得られる除算値に対応するコード(ADRCコード)に変換される。具体的には、例えば、K=2とした場合、図28(B)に示すように、除算値が、ダイナミックレンジDRを4(=22)等分して得られるいずれの範囲に属するかが判定され、除算値が、最も下のレベルの範囲、下から2番目のレベルの範囲、下から3番目のレベルの範囲、または最も上のレベルの範囲に属する場合には、それぞれ、例えば、00B,01B,10B、または11Bなどの2ビットにコード化される(Bは2進数であることを表す)。そして、復号側においては、ADRCコード00B,01B,10B、または11Bは、ダイナミックレンジDRを4等分して得られる最も下のレベルの範囲の中心値L00、下から2番目のレベルの範囲の中心値L01、下から3番目のレベルの範囲の中心値L10、または最も上のレベルの範囲の中心値L11にそれぞれ変換され、その値に、最小値MINが加算されることで復号が行われる。
ここで、このようなADRC処理はノンエッジマッチングと呼ばれる。
なお、ADRC処理については、本件出願人が先に出願した、例えば、特開平3−53778号公報などに、その詳細が開示されている。
以上のようなADRC処理によれば、ブロックを構成する画素に割り当てられているビット数より少ないビット数で再量子化を行うことにより、そのビット数を低減することができる。
図27に戻り、クラス分類回路113は、ADRC処理回路112からのブロックを、その性質に応じて所定のクラスに分類するクラス分類処理を行い、そのブロックがいずれのクラスに属するかを、クラス情報として、マッピング係数メモリ114に供給するようになされている。
ここで、符号化すべき画像データに、例えば8ビットが割り当てられている場合において、クラス分類用ブロックが、例えば、注目画素を中心とした3×3の9画素で構成されるときに、そのようなクラス分類用ブロックを対象にクラス分類処理を行ったのでは、(28)9という膨大な数のクラスに分類されることになる。
そこで、上述したように、ADRC処理回路112において、クラス分類用ブロックに対して、ADRC処理が施されるようになされており、これにより、クラス分類用ブロックを構成する画素のビット数を低減し、さらに、クラス数も削減するようになされている。即ち、ADRC処理回路112において、例えば1ビットのADRC処理が行われるとした場合には、クラス数は、(28)9から(21)9、即ち、512に低減される。
なお、本実施の形態では、クラス分類回路113において、ADRC処理回路112から出力されるADRCコードに基づいて、クラス分類処理が行われるが、クラス分類処理は、その他、例えば、DPCM(予測符号化)や、BTC(Block Truncation Coding)、VQ(ベクトル量子化)、DCT(離散コサイン変換)、アダマール変換などを施したデータを対象に行うようにすることも可能である。
再び、図27に戻り、マッピング係数メモリ114は、後述するような学習(マッピング係数学習)により得られるクラスごとのマッピング係数を記憶しており、クラス分類回路113から供給されるクラス情報に対応するマッピング係数を読み出し、演算回路116に供給するようになされている。
遅延回路115は、ブロック化回路111から供給されるブロックを、そのブロックのクラス情報に対応するマッピング係数が、マッピング係数メモリ114から読み出されるまで遅延し、演算回路116に供給するようになされている。
演算回路116は、遅延回路115から供給されるブロックを構成する画素の画素値と、マッピング係数メモリ114から供給される、そのブロックのクラスに対応するマッピング係数とを用いて所定の演算を行うことにより、画像を、その画素数を間引いて(少なくして)符号化した符号化データを算出するようになされている。即ち、演算回路116は、ブロック化回路111が出力するブロックを構成する各画素の画素値をy1,y2,・・・とするとともに、マッピング係数メモリ114が出力する、そのブロックのクラスに対応するマッピング係数をk1,k2,・・・とするとき、それらを引数とする所定の関数値f(y1,y2,・・・,k1,k2,・・・)を演算し、その関数値f(y1,y2,・・・,k1,k2,・・・)を、ブロック化回路111が出力するブロック(クラス分類用ブロック)を構成する画素のうちの、例えば中心の画素の画素値として出力するようになされている。
従って、ブロック化回路111が出力するクラス分類用ブロックを構成する画素数をN画素とすると、演算回路116は、画像データを1/Nに間引き、これを、符号化データとして出力するようになされている。
なお、演算回路116が出力する符号化データは、N画素で構成されるブロックの中心の1個の画素を選択して出力するような、いわば単純な間引き処理により得られるものではなく、上述したように、そのブロックを構成するN画素により規定される関数値f(y1,y2,・・・,k1,k2,・・・)であるが、この関数値f(y1,y2,・・・,k1,k2,・・・)は、見方を変えれば、単純な間引き処理により得られる、ブロックの中心の画素の画素値を、その周辺の画素値に基づいて補正したものと考えることができる。そこで、マッピング係数と、ブロックを構成する画素との演算の結果得られるデータである符号化データを、以下、適宜、補正データともいう。
また、演算回路116における演算処理は、ブロック化回路111が出力するクラス分類用ブロックを構成する各画素の画素値を、関数値f(y1,y2,・・・,k1,k2,・・・)にマッピング(写像)する処理とも考えることができる。そこで、そのような処理に用いられる係数k1,k2,・・・をマッピング係数と呼んでいる。
送信機/記録装置118は、演算回路116から符号化データとして供給される補正データを、記録媒体2に記録し、または伝送路3を介して伝送するようになされている。
次に、図29のフローチャートを参照して、その動作について説明する。
ブロック化回路111には、例えば、1フレーム(フィールド)単位で画像データが供給されるようになされており、ブロック化回路111では、ステップS61において、1フレームの画像が、クラス分類用ブロックにブロック化される。即ち、ブロック化回路111は、例えば、図7に四角形で囲んで示すように、画像データを、注目画素を中心とした3×3(横×縦)の9画素でなるクラス分類用ブロックに分割し、ADRC処理回路112および遅延回路115に、順次供給する。
なお、この場合、クラス分類用ブロックは、3×3画素でなる正方形状のブロックで構成されることとなるが、クラス分類用ブロックの形状は、正方形である必要はなく、その他、例えば、長方形や、十文字形、その他の任意な形とすることが可能である。また、クラス分類用ブロックを構成する画素数も、3×3の9画素に限定されるものではない。さらに、クラス分類用ブロックは、隣接する画素どうしで構成するのではなく、離れた画素どうしで構成するようにすることも可能である。但し、その形状および画素数は、後述する学習(マッピング係数学習)時における場合のものと一致している必要がある。
ADRC処理回路112は、ブロック化回路111からクラス分類用ブロックを受信すると、ステップS62において、そのブロックに対して、例えば、1ビットのADRC処理を施し、これにより、1ビットで表現される画素で構成されるブロックとする。ADRC処理の施されたクラス分類用ブロックは、クラス分類回路113に供給される。
クラス分類回路113では、ステップS63において、ADRC処理回路112からのクラス分類用ブロックがクラス分類され、その結果得られるクラス情報が、マッピング係数メモリ114に、アドレスとして供給される。これにより、マッピング係数メモリ114からは、クラス分類回路113より供給されたクラス情報に対応するマッピング係数が読み出され、演算回路116に供給される。
一方、遅延回路115では、ブロック化回路111からのクラス分類用ブロックが遅延され、そのブロックのクラス情報に対応するマッピング係数が、マッピング係数メモリ114から読み出されるのを待って、演算回路116に供給される。演算回路116では、ステップS64において、遅延回路115からのクラス分類用ブロックを構成する各画素の画素値と、マッピング係数メモリ114からのマッピング係数を用いて、上述した関数値f(・)(この関数fのかっこ内の・は、画素値y1,y2,・・・と、マッピング係数k1,k2,・・・の集合を表すものとする)が演算されることにより、クラス分類用ブロックを構成する中心の画素(中心画素)の画素値を補正した補正データが算出される。この補正データは、画像を符号化した符号化データとして、レベル制限回路117に供給される。
レベル制限回路117では、ステップS65において、符号化データから、例えば、そのMSB側の2ビットが抽出され、送信機/記録装置118に供給される。即ち、符号化データが、例えば8ビットで構成される場合には、その下位6ビットが削除され、上位2ビットだけが、送信機/記録装置16に供給される。送信機/記録装置118では、ステップS66において、レベル制限回路117からの符号化データが、記録媒体2に記録され、または伝送路3を介して伝送される。
そして、ステップS67に進み、1フレーム分の画像データについての処理が終了したかどうかが判定される。ステップS67において、1フレーム分の画像データについての処理が、まだ終了していないと判定された場合、ステップS62に戻り、次のクラス分類用ブロックを対象に、ステップS62以下の処理が繰り返される。また、ステップS67において、1フレーム分の画像データについての処理が終了したと判定された場合、ステップS61に戻り、次のフレームを対象に、ステップS61以下の処理が繰り返される。
次に、図30は、図27のマッピング係数メモリ114に記憶されているマッピング係数を算出するための学習(マッピング係数学習)処理を行う画像処理装置の構成例を示している。
メモリ121には、学習に適したディジタル画像データ(以下、適宜、学習用画像という)が1フレーム以上記憶されている。ブロック化回路122は、メモリ121に記憶されている画像データを読み出し、図27のブロック化回路111から出力されるクラス分類用ブロックと同一のブロックを構成して、ADRC処理回路123および演算回路125に供給するようになされている。
ADRC処理回路123またはクラス分類回路124は、図27のADRC処理回路112またはクラス分類回路113における場合とそれぞれ同様の処理を行うようになされている。従って、クラス分類回路124からは、ブロック化回路122が出力するブロックのクラス情報が出力されるようになされている。そして、このクラス情報は、マッピング係数メモリ131に、アドレスとして供給されるようになされている。
演算回路125は、ブロック化回路122から供給されるブロックを構成する画素と、マッピング係数メモリ131から供給されるマッピング係数とを用いて、図27の演算回路116における場合と同一の演算を行い、その結果得られる補正データ(関数値f(・))を、レベル制限回路126に供給するようになされている。レベル制限回路126は画素データのレベルを制限した後、ローカルデコード部127に出力している。
ローカルデコード部127は、レベル制限回路126から供給される補正データに基づいて、元の学習用画像の予測値(ブロック化回路122が出力するブロックを構成する画素の画素値の予測値)を予測し(算出し)、誤差算出部128に供給するようになされている。誤差算出部128は、ローカルデコード部127から供給される予測値に対応する学習用画像の画素値(真値)をメモリ121から読み出し、その学習用画像の画素値に対する、予測値の予測誤差を算出(検出)し、その予測誤差を、誤差情報として、判定部129に供給するようになされている。
判定部129は、誤差算出部128からの誤差情報と、所定の閾値ε1とを比較し、その比較結果に対応して、マッピング係数設定回路130を制御するようになされている。マッピング係数設定回路130は、判定部129の制御にしたがって、クラス分類回路124におけるクラス分類の結果得られるクラス数と同一の数のマッピング係数のセットを設定(変更)し、マッピング係数メモリ131に供給するようになされている。
マッピング係数メモリ131は、マッピング係数設定回路130から供給されるマッピング係数を一時記憶するようになされている。なお、マッピング係数メモリ131は、クラス分類回路124においてクラス分類されるクラスの数だけのマッピング係数(マッピング係数のセット)を記憶することのできる記憶領域を有しており、各記憶領域においては、マッピング係数設定回路130から、新たなマッピング係数が供給されると、既に記憶しているマッピング係数に代えて、その新たなマッピング係数が記憶されるようになされている。
また、マッピング係数メモリ131は、クラス分類回路124から供給されるクラス情報に対応するアドレスに記憶されたマッピング係数を読み出し、演算回路126に供給するようにもなされている。
次に、図31のフローチャートを参照して、その動作について説明する。
まず最初に、マッピング係数設定回路130は、ステップS71において、マッピング係数の初期値のセットを、クラス分類回路124においてクラス分類されるクラスの数だけ設定し、マッピング係数メモリ131に供給する。マッピング係数メモリ131では、マッピング係数設定回路130からのマッピング係数(初期値)が、対応するクラスのアドレスに記憶される。
そして、ブロック化回路122は、ステップS72において、メモリ121に記憶されている学習用画像すべてを、図27のブロック化回路111における場合と同様に、注目画素を中心とした3×3画素のブロックにブロック化する。さらに、ブロック化回路122は、そのブロックを、メモリ121から読み出し、ADRC処理回路123および演算回路125に順次供給する。
ADRC処理回路123では、ステップS73において、ブロック化回路122からのブロックに対して、図27のADRC処理回路112における場合と同様に、1ビットのADRC処理が施され、クラス分類回路124に供給される。
クラス分類回路124では、ステップS74において、ADRC処理回路123から供給されたブロックのクラスが決定され、そのクラス情報が、アドレスとして、マッピング係数メモリ131に供給される。これにより、ステップS75において、マッピング係数メモリ131の、クラス分類回路124より供給されるクラス情報に対応するアドレスから、マッピング係数が読み出され、演算回路125に供給される。
演算回路125は、ブロック化回路122からブロックを受信するとともに、マッピング係数メモリ131から、そのブロックのクラスに対応するマッピング係数を受信すると、ステップS76において、そのマッピング係数と、ブロック化回路122から供給されるブロックを構成する画素の画素値とを用いて、上述の関数値f(・)を演算する。この演算結果は、ブロック化回路122から出力されるブロックの中心画素の画素値を補正した補正データとして、レベル制限回路126に供給される。この補正ビットが、例えば8ビットで構成されているとすると、ステップS77において、その8ビットの補正データから、その上位2ビットが、レベル制限回路126で選択され、これにより、ビット数が2ビットに制限された画素データが、ローカルデコード部127に供給される。
即ち、例えば、上述の図7において、四角形で囲んで示すような3×3画素のブロックが、ブロック化回路122から出力されたものとすると、演算回路125では、同図において●印で示す画素の画素値を補正した補正データが求められ、レベル制限回路126でレベル制限された後、ローカルデコード部127に出力される。
従って、演算回路126では、学習用画像を構成する画素が、1/9に間引かれ、ローカルデコード部127に供給される。
図31に戻り、次にステップS78に進み、メモリ121に記憶されたすべての学習用画像についての補正データが求められたかどうかが判定される。ステップS78において、すべての学習用画像についての補正データが、まだ求められていないと判定された場合、ステップS73に戻り、すべての学習用画像についての補正データが求められるまで、ステップS73乃至S78の処理を繰り返す。
また、ステップS78において、すべての学習用画像についての補正データが求められたと判定された場合、即ち、メモリ121に記憶されたすべての学習用画像を、1/9に間引いた間引き画像が得られた場合(但し、この間引き画像は、学習用画像を、単純に1/9に間引いたものではなく、マッピング係数との演算により画素値が求められたものである)、ステップS79に進み、ローカルデコード部127において、その間引き画像がローカルデコードされることにより、元の学習用画像の予測値が算出される。この予測値は、誤差算出部128に供給される。
ここで、このローカルデコード部127において得られる予測値で構成される画像(但し、後述するように、誤差算出部128から出力される誤差情報が閾値ε1より小さくなったときにおけるもの)は、受信装置4(図1)側において得られる復号画像と同一のものである。
誤差算出部128では、ステップS80において、メモリ121から学習用画像が読み出され、その学習用画像に対する、ローカルデコード部127から供給される予測値の予測誤差が算出される。即ち、学習用画像の画素値をYijと表すとともに、ローカルデコード部127から出力される、その予測値をE[Yij]と表すとき、誤差算出部128では、次式で示される誤差分散(誤差の自乗和)Qが算出され、これが、誤差情報として、判定部129に供給される。
Q=Σ(Yij−E[Yij])2
但し、上式において、Σは、学習用画像の画素すべてについてのサメーションを表す。
判定部129は、誤差算出部128から誤差情報を受信すると、その誤差情報と所定の閾値ε1とを比較し、ステップS81において、その大小関係を判定する。ステップS81において、誤差情報が閾値ε1以上であると判定された場合、即ち、ローカルデコード部127において得られる予測値で構成される画像が、元の学習用画像と同一であるとは認められない場合、判定部129は、マッピング係数設定回路130に制御信号を出力する。マッピング係数設定回路130は、ステップS82において、判定部129からの制御信号にしたがい、マッピング係数を変更し、その変更後のマッピング係数を、マッピング係数メモリ131に新たに記憶させる。
そして、ステップS73に戻り、マッピング係数メモリ131に記憶された、変更後のマッピング係数を用いて、再び、ステップS73以下の処理が繰り返される。
ここで、マッピング係数設定回路130における、マッピング係数の変更は、ランダムに行っても良いし、また、今回の誤差情報が、前回の誤差情報より小さくなった場合には、前回と同様の傾向で変化させ、今回の誤差情報が、前回の誤差情報より大きくなった場合には、前回と逆の傾向で変化させるようにすることもできる。
さらに、マッピング係数の変更は、すべてのクラスについて行うようにすることもできるし、その一部のクラスについてだけ行うようにすることもできる。一部のクラスについてのマッピング係数だけの変更を行う場合においては、例えば、誤差情報に対する影響の強いクラスを検出させ、そのようなクラスについてのマッピング係数だけを変更するようにすることができる。誤差情報に対する影響の強いクラスは、例えば、次のようにして検出することができる。即ち、まず最初に、マッピング係数の初期値を用いて処理を行うことにより、その誤差情報を得る。そして、マッピング係数を、1クラスごとに同一の量だけ変化させ、その結果得られる誤差情報を、初期値を用いた場合に得られた誤差情報と比較し、その差が、所定値以上となるクラスを、誤差情報に対する影響の強いクラスとして検出すれば良い。
また、マッピング係数が、上述したk1,k2,・・・のように複数で1セットとされている場合には、その中の誤差情報に対する影響の強いものだけを変更させるようにすることもできる。
さらに、上述の場合においては、マッピング係数を、クラスごとに設定するようにしたが、マッピング係数は、その他、例えば、ブロックごとに独立して設定したり、また、近接するブロック単位などで設定したりするようにすることが可能である。
但し、マッピング係数を、例えば、ブロックごとに独立して設定するようにした場合などにおいては、ある1つのクラスに対して、複数セットのマッピング係数が得られることがある(この逆に、マッピング係数が、1セットも得られないクラスが生じることもある)。マッピング係数は、最終的には、クラスごとに決める必要があるため、上述のように、あるクラスに対して、複数セットのマッピング係数が得られた場合には、複数セットのマッピング係数に対して、例えば、マージや選択などの何らかの処理を施すことで、1セットのマッピング係数を決める必要がある。
一方、ステップS81において、誤差情報が閾値ε1より小さいと判定された場合、即ち、ローカルデコード部127において得られる予測値で構成される画像が、元の学習用画像と同一であると認められる場合、処理を終了する。
この時点で、マッピング係数メモリ131に記憶されている、クラスごとのマッピング係数が、もとの画像と同一と認められる復号画像(予測値)を復元することができる補正データを得るために最適なものとして、図27のマッピング係数メモリ114にセットされている。
従って、このようなマッピング係数を用いて補正データを生成することで、受信装置4(図1)側においては、元の画像とほぼ同一の画像を得ることが可能となる。
ここで、図30の実施の形態においては、上述したように、ブロック化回路122において、画像が3×3の9画素にブロック化され、また、ADRC処理回路123において、1ビットのADRC処理が行われるので、クラス分類回路124によるクラス分類により得られるクラス数は512(=(21)9)であり、従って、512セットのマッピング係数が得られる。
なお、図30において、ADRC処理回路123を介してクラス分類回路124に供給するブロックと、演算回路125に供給するブロックとは、同一である必要は必ずしもない。このことは、図27において、クラス分類回路113に供給するブロックと、演算回路116に供給するブロックとについても同様である。但し、クラス分類回路113および124に供給するブロックは同一である必要があり、また、演算回路116および125に供給するブロックも同一である必要がある。
次に、図32は、図30のローカルデコード部127の構成例を示している。
レベル制限回路126からの補正データは、クラス分類用ブロック化回路141および予測値計算用ブロック化回路142に供給されるようになされている。クラス分類用ブロック化回路141は、補正データを、その性質に応じて所定のクラスに分類するための単位である、注目補正データを中心としたクラス分類用ブロックにブロック化するようになされている。
即ち、上述したように、図7において、上からi番目で、左からj番目の補正データ(圧縮データ)(または画素)(図中、●印で示す部分)をXijと表すとすると、クラス分類用ブロック化回路141は、注目画素(注目補正データ)Xijの上、左、右、下に隣接する4つの画素X(i-1)j,Xi(j-1),Xi(j+1),X(i-1)jに、自身を含め、合計5画素で構成されるクラス分類用ブロックを生成するようになされている。このクラス分類用ブロックは、クラス分類回路144に供給されるようになされている。
なお、図32のクラス分類用ブロック化回路141において得られるクラス分類用ブロックは、予測値を求めるブロックのクラスを決定するために構成されるものであり、この点で、補正データを算出するブロックのクラスを決定するために、図27のブロック化回路111で生成されるものとは異なる。
予測値計算用ブロック化回路142は、補正データを、元の画像(ここでは、学習用画像)の予測値を計算するための単位である、注目補正データを中心とした予測値計算用ブロックにブロック化するようになされている。即ち、本実施の形態においては、例えば、補正データXijを中心とする、元の画像(原画像)における3×3の9画素の画素値Yij(1),Yij(2),Yij(3),Yij(4),Yij(5),Yij(6),Yij(7),Yij(8),Yij(9)の予測値が、画素Xijを中心とする5×5の25画素X(i-2)(j-2),X(i-2)(j-1),X(i-2)j,X(i-2)(j+1),X(i-2)(j+2),X(i-1)(j-2),X(i-1)(j-1),X(i-1)j,X(i-1)(j+1),X(i-1)(j+2),Xi(j-2),Xi(j-1),Xij,Xi(j+1),Xi(j+2),X(i+1)(j-2),X(i+1)(j-1),X(i+1)j,X(i+1)(j+1),X(i+1)(j+2),X(i+2)(j-2),X(i+2)(j-1),X(i+2)j,X(i+2)(j+1),X(i+2)(j+2)から求められるようになされており、予測値計算用ブロック化回路142は、このような25画素で構成される正方形状の予測値計算用ブロックを生成するようになされている。
具体的には、例えば、図7において四角形で囲む、元の画像における画素Y33(1)乃至Y33(9)の予測値の計算のためには、25個の画素(補正データ)X11,X12,X13,X14,X15,X21,X22,X23,X24,X25,X31,X32,X33,X34,X35,X41,X42,X43,X44,X45,X51,X52,X53,X54,X55により、予測値計算用ブロックが構成される。
予測値計算用ブロック化回路142において得られた予測値計算用ブロックは、予測回路146に供給されるようになされている。
なお、予測値計算用ブロックについても、クラス分類用ブロックにおける場合と同様に、その画素数および形状は、上述したものに限定されるものではない。但し、ローカルデコード部127において、予測値計算用ブロックを構成する画素数は、クラス分類用ブロックを構成する画素数よりも多くするのが望ましい。
クラス分類回路144は、クラス分類用ブロック化回路141からのブロックをクラス分類し、その分類結果としてのクラス情報を、予測係数ROM145に供給するようになされている。予測係数ROM145は、クラスごとの予測係数を記憶しており、クラス分類回路144からクラス情報を受信すると、そのクラス情報に対応するアドレスに記憶されている予測係数を読み出し、予測回路146に供給するようになされている。なお、予測係数ROM145に記憶されている予測係数は、図19で説明した予測係数学習により得られたものである。
予測回路146は、予測値計算用ブロック化回路142からの予測値計算用ブロックと、予測係数ROM145からの予測係数とを用いて、元の画像(学習用画像)の予測値を算出(予測)するようになされている。
次に、図33のフローチャートを参照して、その動作について説明する。
ローカルデコード部127においては、まず最初に、ステップS91において、レベル制限回路126からの補正データが順次受信されてブロック化される。即ち、クラス分類用ブロック化回路141において、補正データが、注目補正データを中心とする5画素のクラス分類用ブロックにブロック化され、クラス分類回路144に供給されるとともに、予測値計算用ブロック化回路142において、補正データが、注目補正データを中心とする5×5画素の予測値計算用ブロックにブロック化され、予測回路146に供給される。
なお、クラス分類用ブロック化回路141と予測値計算用ブロック化回路142では、対応するクラス分類用ブロックと予測値計算用ブロックが生成される。即ち、クラス分類用ブロック化回路141において、例えば図7の補正データX33を中心とする5画素のクラス分類用ブロックが生成されるとき、予測値計算用ブロックにおいては、同じく補正データX33を中心とする5×5画素の予測値計算用ブロックが生成される。
クラス分類回路144は、ステップS92において、クラス分類用ブロックに対して、クラス分類処理を施す。即ち、クラス分類用ブロックを構成する補正データのレベル分布の状態を検出し、そのクラス分類用ブロックが属するクラス(そのクラス分類用ブロックを構成する注目補正データのクラス)を判定する。このクラスの判定結果は、クラス情報として、予測係数ROM145に供給される。
なお、ここでも、1画素が2ビットで表される5画素で構成されるクラス分類用ブロックに対して、クラス分類処理が施されるので、各クラス分類用ブロックは、512(=(22)5)のクラスのうちのいずれかに分類されることになる。
そして、ステップS93に進み、予測係数ROM145の、クラス分類回路144からのクラス情報に対応するアドレスから予測係数が読み出され、ステップS94において、予測回路146は、その予測係数と、予測値計算用ブロック化回路142からの予測値計算用ブロックを構成する25の画素値とを用い、例えば、式(1)に対応する次のような線形1次式にしたがって、元の画像の画素値yの予測値E[y]を算出する。
E[y]=w1x1+w2x2+・・・+w25x25+w0
但し、w1,w2,・・・,w0は予測係数を表し、x1,x2,・・・は予測値計算用ブロックを構成する画素の画素値(補正データ)を表す。また、w0は、本来8ビットのデータxiを、2ビットのデータに変換したので、E[y]を8ビットで表現するために加算されるオフセット係数であるが、上述したように、補正データと乗算される係数w1,w2,・・・と同様に、予測係数として扱う。
ここで、図32の実施の形態においては、上述したように、予測値計算用ブロックを構成する25画素から、9画素の予測値が算出されるようになされている。
即ち、例えば、いま、図7に示した補正データX33を中心とする3×3の補正データX22乃至X24,X32乃至X34,X42乃至X44でなるクラス分類用ブロックについてのクラス情報Cが、クラス分類回路144から出力され、また、予測値計算用ブロックとして、補正データX33を中心とする5×5画素の補正データX11乃至X15,X21乃至X25,X31乃至,X35,X41乃至X45,X51乃至X55でなる予測値計算用ブロックが、予測値計算用ブロック化回路142から出力されたものとする。
さらに、予測係数ROM145には、クラス情報Cに対応するアドレスに、予測係数のセットとして、w0(k)乃至w25(k)が記憶されているものとする。
この場合、補正データX33を中心とする、元の画像における3×3画素(図7において四角形で囲んである部分)の画素値Y33(1)乃至Y33(9)の予測値E[Y33(1)]乃至E[Y33(9)]が、次式にしたがって算出される。
E[Y33(k)]=w1(k)X11+w2(k)X12+w3(k)X13
+w4(k)X14+w5(k)X15+w6(k)X21
+w7(k)X22+w8(k)X23+w9(k)X24
+w10(k)X25+w11(k)X31
+w12(k)X32+w13(k)X33
+w14(k)X34+w15(k)X35
+w16(k)X41+w17(k)X42
+w18(k)X43+w19(k)X44
+w20(k)X45+w21(k)X51
+w22(k)X52+w23(k)X53
+w24(k)X54+w25(k)X55
+w0(k)
ステップS94において、以上のようにして9個単位で予測値が求められていき、これにより、1フレーム分の予測値が求められると、その予測値は、ステップS95において、誤差算出部128に供給される。そして、ステップS91に戻り、以下、ステップS91乃至S95の処理が繰り返される。
なお、図32の予測係数ROM145に記憶されている予測係数を得るための学習(予測係数学習)を行う画像処理装置は、上述したように、図19に示した場合と同様の構成となる。そこでその説明は省略する。
次に、図34は、図27のマッピング係数メモリ114に記憶されているマッピング係数を算出するための学習(マッピング係数学習)処理を行う画像処理装置の他の構成例を示している。
なお、図30の画像処理装置によれば、関数fが、例えば、線形1次式で表される場合の他、非線形な式や、2次以上の式で表される場合も、最適な予測係数を求めることができるが、図34の画像処理装置では、関数fが、線形1次式で表される場合にのみ、最適な予測係数を求めることができるようになされている。
即ち、図34の画像処理装置は、図27において、ブロック化回路111が出力する3×3画素のブロックを構成する各画素の画素値をy1,y2,・・・,y9とするとともに、マッピング係数メモリ114が出力するマッピング係数をk1,k2,・・・,k9とする場合において、演算回路116が、次式にしたがって関数値f(y1,y2,・・・,k1,k2,・・・)を演算して補正データを求めるようになされているときに用いることができる。
f(・)=k1y1+k2y2+・・・+k9y9
最適補正データ算出部160には、学習に適した学習用画像が、例えば、1フレーム単位などで供給されるようになされている。なお、学習用画像を構成する画素には、例えば8ビットが割り当てられている。最適補正データ算出部160は、圧縮部170、レベル制御部171、補正部172、ローカルデコード部173、誤差算出部174、および判定部175で構成され、そこに入力される学習用画像から、その画素数を少なくして圧縮した画像であって、元の画像を予測するのに最適な画像を構成する画素値(以下、適宜、最適補正データという)を算出し、ラッチ回路176に供給するようになされている。
即ち、最適補正データ算出部160に供給された学習用画像は、圧縮部170および誤差算出部174に供給されるようになされている。圧縮部170は、図27の演算回路116が画素を間引く割合と同一の割合で、学習用画像を単純に間引き、即ち、本実施の形態においては、学習用画像を1/9に単純に間引き(3×3の9画素を1ブロックとするとき、そのブロックの中心の画素だけを抽出し)、これにより学習用画像を圧縮してレベル制限部171に供給するようになされている。レベル制限部171は、図27のレベル制限回路117と同様に、8ビットの画素データのレベルを制限した後、補正部172に出力するようになされている。
補正部172は、レベル制限部171から供給される、単純な間引きが行われて空間方向の圧縮がされた8ビットの圧縮データから、その上位2ビットが選択されることにより、2ビットにレベルが制限されたデータ(以下、適宜、単に、圧縮データという)を、判定部175からの制御にしたがって補正するようになされている。補正部172における補正の結果得られるデータ(このデータも、図27の演算回路116の出力と同様に、3×3画素のブロックの中心画素の画素値を補正したものであるので、以下、適宜、補正データという)は、ローカルデコード部173に供給するようになされている。
ローカルデコード部173は、図30のローカルデコード部127における場合と同様にして、補正部172からの補正データに基づいて、元の画像(学習用画像)を予測し、その予測値を、誤差算出部174に供給するようになされている。
誤差算出部174は、図30の誤差算出部128における場合と同様にして、そこに入力される、元の画像データに対する、ローカルデコード部173からの予測値の予測誤差を算出するようになされている。この予測誤差は、誤差情報として、判定部175に供給されるようになされている。
判定部175は、図30の判定部129における場合と同様にして、誤差算出部174からの誤差情報に基づいて、補正部172が出力した補正データを、元の画像の圧縮結果とすることの適正さを判定するようになされている。そして、判定部175は、補正部172が出力した補正データを、元の画像の圧縮結果とすることが適正でないと判定した場合には、補正部172を制御し、さらに、圧縮データを補正させ、その結果得られる新たな補正データを出力させるようになされている。また、判定部175は、補正部172が出力した補正データを、元の画像の圧縮結果とすることが適正であると判定した場合には、補正部172から供給された補正データを、最適補正データとして、ラッチ回路176に供給するようになされている。
ラッチ回路176は、メモリ176Aを内蔵しており、そのメモリ176Aに、補正部172から供給される最適補正データを記憶させるようになされている。さらに、ラッチ回路176は、メモリ176Aに記憶された最適補正データのうち、ブロック化回路177のメモリ177Aから読み出されるブロックの中心画素に対応するものを読み出し、メモリ180に供給するようになされている。なお、ラッチ回路176は、メモリ176Aに、1フレーム分の補正データが記憶されると、その旨を示す制御信号を、ブロック化回路177に出力するようになされている。
ブロック化回路177には、最適補正データ算出部160と同様に、学習用画像が1フレーム単位で供給されるようになされている。ブロック化回路177は、メモリ177Aを内蔵しており、そのメモリ177Aに、そこに供給される学習用画像を記憶させるようになされている。また、ブロック化回路177は、ラッチ回路176から制御信号を受信すると、メモリ177Aに記憶された学習用画像を、図27のブロック化回路111における場合と同様に、3×3画素で構成されるブロックに分割し、そのブロックを順次読み出して、ADRC処理回路178およびメモリ180に供給するようになされている。
なお、ブロック化回路177は、その内蔵するメモリ177Aからブロックを読み出すときに、そのブロックの位置を示す制御信号を、ラッチ回路176に供給するようになされている。ラッチ回路176では、この制御信号に基づいて、メモリ177Aから読み出される3×3画素のブロックが認識され、上述したように、そのブロックの中心画素に対応する最適補正データが、メモリ176Aから読み出されるようになされている。即ち、これにより、メモリ180に対しては、ある3×3画素のブロックと、そのブロックに対応する最適補正データとが同時に供給されるようになされている。
ADRC処理回路178またはクラス分類回路179は、図27のADRC処理回路112またはクラス分類回路113とそれぞれ同様に構成されている。そして、クラス分類回路179が出力する、ブロック化回路177からのブロックについてのクラス情報は、メモリ180に対して、アドレスとして供給されるようになされている。
メモリ180は、クラス分類回路179から供給されるクラス情報に対応するアドレスに、ラッチ回路176から供給される最適補正データと、ブロック化回路177から供給されるブロックとを対応付けて記憶するようになされている。なお、メモリ180は、1つのアドレスに複数の情報を記憶することができるようになされており、これにより、あるクラス情報に対応する最適補正データおよびブロックを、複数セット記憶することができるようになされている。
演算回路181は、メモリ180に記憶された、学習用画像の3×3のブロックを構成する9画素y1,y2,・・・,y9と、そのブロックに対応付けられている最適補正データy’とを読み出し、これらに最小自乗法を適用することで、クラスごとに、マッピング係数k1乃至k9を求め、メモリ182に供給するようになされている。メモリ182は、演算回路181から供給されるクラスごとのマッピング係数k1乃至k9を、そのクラスに対応したアドレスに記憶するようになされている。
次に、図35のフローチャートを参照して、その動作について説明する。
学習用画像が入力されると、その学習用画像は、ブロック化回路177のメモリ177Aに記憶されるとともに、最適補正データ算出部160に供給される。最適補正データ算出部160は、学習用画像を受信すると、ステップS101において、その学習用画像についての最適補正データを算出する。
このステップS101の処理は、図4のフローチャートの処理と同様である。すなわち、ステップS101では、図36のフローチャートに示すように、まず、圧縮部170が、ステップS111において、学習用画像を、1/9に間引くことにより圧縮データを生成する。このデータは、ステップS112において、レベル制限部171で制限された後、補正部172を介して、最初は、補正が行われずに、ローカルデコード部173に出力される。ローカルデコード部173では、ステップS113において、補正部172からの補正データ(最初は、上述したように、画像データを、単純に間引き、レベル制限した圧縮データそのもの)に基づいて、元の画像の予測値が算出される(ローカルデコードが行われる)。この予測値は、誤差算出部174に供給される。
誤差算出部174は、ローカルデコード部173から、元の画像の予測値を受信すると、ステップS114において、元の画像データに対する、ローカルデコード部173からの予測値の予測誤差を算出し、誤差情報として、判定部175に供給する。判定部175は、誤差算出部174から誤差情報を受信すると、ステップS115において、その誤差情報に基づいて、補正部172が出力した補正データを、元の画像の圧縮結果とすることの適正さを判定する。
即ち、ステップS115においては、誤差情報が所定の閾値ε以下であるかどうかが判定される。ステップS115において、誤差情報が所定の閾値ε以下でないと判定された場合、補正部172が出力した補正データを、元の画像の圧縮結果とするのは適正でないと認識され、ステップS116に進み、判定部175は、補正部172を制御し、これにより、レベル制限部171から出力された圧縮データを補正させる。補正部172は、判定部175の制御にしたがって、補正量(補正値△)を変えて、圧縮データを補正し、その結果得られる補正データを、ローカルデコード部173に出力する。そして、ステップS113に戻り、以下、同様の処理が繰り返される。
なお、圧縮データの補正は、例えば、上述の図14における場合と同様にして行うことが可能である。
一方、ステップS115において、誤差情報が所定の閾値ε以下であると判定された場合、補正部172が出力した補正データを、元の画像の圧縮結果とするのは適正であると認識され、判定部175は、所定の閾値ε以下の誤差情報が得られたときの補正データを、最適補正データとして、補正部172からラッチ回路176に出力させ、その内蔵するメモリ176Aに記憶させて、リターンする。
以上のようにして、誤差情報が所定の閾値ε以下となったときにおける、圧縮データを補正した補正データが、最適補正データとして、メモリ176Aに記憶される。なお、この最適補正データは、誤差情報を所定の閾値ε以下とするものであるから、これを用いて、予測値を算出することにより、元の画像(原画像)とほぼ同一の画像を得ることができる。
図35に戻り、ラッチ回路176は、そのメモリ176Aに、1フレーム分の最適補正データを記憶すると、制御信号を、ブロック化回路177に出力する。ブロック化回路177は、ラッチ回路176から制御信号を受信すると、ステップS102において、メモリ177Aに記憶された学習用画像を、3×3画素で構成されるブロックに分割する。そして、ブロック化回路177は、メモリ177Aに記憶された学習用画像のブロックを読み出して、ADRC処理回路178およびメモリ180に供給する。
また、同時に、ブロック化回路177は、メモリ177Aからブロックを読み出すときに、そのブロックの位置を示す制御信号を、ラッチ回路176に供給し、ラッチ回路176は、その制御信号に対応して、メモリ177Aから読み出された3×3画素のブロックを認識し、そのブロックの中心画素に対応する最適補正データを読み出して、メモリ180に供給する。
そして、ステップS103に進み、ADRC処理回路178において、ブロック化回路177からのブロックがADRC処理され、さらに、クラス分類回路179において、そのブロックがクラス分類される。このクラス分類結果は、アドレスとして、メモリ180に供給される。
メモリ180では、ステップS104において、クラス分類回路179から供給されるクラス情報に対応するアドレスに、ラッチ回路176から供給される最適補正データと、ブロック化回路177から供給されるブロック(学習データ)とが対応付けられて記憶される。
そして、ステップS105に進み、メモリ180に、1フレーム分のブロックおよび最適補正データが記憶されたかどうかが判定される。ステップS105において、メモリ180に、1フレーム分のブロックおよび最適補正データが、まだ記憶されていないと判定された場合、ブロック化回路177から次のブロックが読み出されるとともに、ラッチ回路176からそのブロックに対応する最適補正データが読み出され、ステップS103に戻り、以下、ステップS103以降の処理を繰り返す。
また、ステップS105において、メモリ180に、1フレーム分のブロックおよび最適補正データが記憶されたと判定された場合、ステップS106に進み、学習用画像すべてについて処理が終了したかどうかが判定される。ステップS106において、学習用画像すべてについての処理が、まだ終了していないと判定された場合、ステップS101に戻り、次の学習用画像について、ステップS101からの処理が繰り返される。
一方、ステップS106において、学習用画像すべてについての処理が終了したと判定された場合、ステップS107に進み、演算回路181は、メモリ180に記憶された最適補正データとブロックとを、クラスごとに読み出し、これらにより、式(7)に示したような正規方程式をたてる。さらに、演算回路181は、ステップS108において、その正規方程式を解くことで、誤差を最小にする、クラスごとのマッピング係数を算出する。このマッピング係数は、ステップS109において、メモリ182に供給されて記憶され、処理を終了する。
関数fが、線形1次式で表される場合においては、以上のようにしてメモリ182に記憶されたマッピング係数を、図27のマッピング係数メモリ114に記憶させ、これを用いて画像の符号化を行うことができる。
なお、クラスによっては、マッピング係数を求めることができるだけの数の正規方程式が得られない場合がある。このような場合は、図27の演算回路116において、ブロック化回路111から出力される3×3画素のブロックを構成する9画素の、例えば平均値などが出力されるようなマッピング係数、即ち、k1乃至k9=1/9などが、デフォルトの値として設定される。
次に、図37は、図27の送信装置1に対応する受信装置4の構成例を示している。
受信機/再生装置191においては、記録媒体2に記録された符号化データが再生され、または伝送路3を介して伝送されてくる符号化データが受信され、デコード部192に供給される。
デコード部192は、図32に示したローカルデコード部127におけるクラス分類用ブロック化回路141乃至予測回路146にそれぞれ対応するクラス分類用ブロック化回路193乃至予測回路198で構成されており、従って、デコード部192では、図32のローカルデコード部127における場合と同様にして、補正データから予測値が求められ、この予測値で構成される画像が復号画像として出力される。
即ち、受信機/再生装置191から出力される符号化データとしての補正データは、クラス分類用ブロック化回路193または予測値計算用ブロック化回路194に順次供給され、図32のクラス分類用ブロック化回路141または予測値計算用ブロック化回路142における場合と同様にして、クラス分類用ブロックまたは予測値計算用ブロックに、それぞれブロック化される。そして、クラス分類用ブロックはクラス分類回路196に、予測値計算用ブロックは予測回路198に、それぞれ供給される。
クラス分類回路196は、クラス分類用ブロック化回路193からのクラス分類用ブロックに対して、クラス分類処理を施し、クラス情報を、予測係数ROM197に出力する。
予測係数ROM197は、図32の予測係数ROM145と同様に、例えば、図19の画像処理装置において求められた、クラスごとの予測係数を記憶しており、クラス分類回路196からクラス情報を受信すると、そのクラス情報に対応する予測係数を読み出し、予測回路198に供給する。予測回路198では、予測係数ROM197からの予測係数と、予測値計算用ブロック化回路194からの予測値計算用ブロックを構成する補正データとを用い、式(1)に対応する線形1次式にしたがって、元の画像の予測値が算出され、これにより、元の画像が復号される。
補正データは、上述したように、誤差情報を所定の閾値以下とするものであり、従って、受信装置4においては、元の画像とほぼ同一の復号画像を得ることができる。
なお、マッピング係数を用いる場合においても、受信側においては、図37に示すような受信装置4ではなく、間引きされた画像を補間により復号する装置により、通常の補間を行うことで復号画像を得ることができる。但し、この場合に得られる復号画像は、画質(解像度)の劣化したものとなる。
以上、本発明を適用した画像処理装置について説明したが、このような画像処理装置は、例えば、NTSC方式などの標準方式のテレビジョン信号を符号化する場合の他、データ量の多い、いわゆるハイビジョン方式のテレビジョン信号などを符号化する場合に、特に有効である。
なお、本実施の形態においては、1フレームの画像を対象にブロック化を行うようにしたが、ブロックは、その他、例えば、時系列に連続する複数フレームにおける、同一位置の画素を集めて構成するようにすることも可能である。
また、本実施の形態においては、誤差情報として、誤差の自乗和を用いるようにしたが、誤差情報としては、その他、例えば、誤差の絶対値和や、その3乗以上したものの和などを用いるようにすることが可能である。いずれを誤差情報として用いるかは、例えば、その収束性などに基づいて決定するようにすることが可能である。
さらに、例えば、図10の実施の形態などでは、1フレーム単位で、正規方程式をたてて、クラスごとの予測係数を求めるようにしたが、予測係数の算出処理は、その他、例えば、1フィールド単位や複数フレーム単位で正規方程式をたてて行うようにすることも可能である。他の処理についても同様である。
また、本発明は、ハードウェアによっても、あるいは、上述した処理を行うためのアプリケーションプログラムが記録されたハードディスク等の記録媒体から、そのアプリケーションプログラムを読み出して、コンピュータに実行させることによっても、実現可能である。
さらに、本実施の形態では、画素値のレベルを、その上位2ビットに制限するようにしたが、画素値のレベルは、その他、例えば、上位3ビット以上などに制限することも可能である。
1 送信装置, 2 記録媒体, 3 伝送路, 4 受信装置, 11 I/F, 12 ROM, 13 RAM, 14 CPU, 15 外部記憶装置, 16 送信機/記録装置, 21 圧縮部, 22 ローカルデコード部, 23 誤差算出部, 24 判定部, 25 多重化部, 30 間引き回路, 31 レベル制限回路, 32 補正回路, 33 補正値ROM, 41 クラス分類用ブロック化回路, 42 予測値計算用ブロック化回路, 43 クラス分類適応処理回路, 45 クラス分類回路, 46 適応処理回路, 51 ブロック化回路, 52 自乗誤差算出回路, 53,54 演算器, 55 積算部, 56 メモリ, 61 予測係数メモリ, 62 補正データメモリ, 63 誤差情報メモリ, 64 比較回路, 65 制御回路, 71 受信機/再生装置, 72 分離部, 73 クラス分類用ブロック化回路, 75 クラス分類回路, 76 予測回路, 76A メモリ, 77 予測値計算用ブロック化回路, 78,81 予測係数ROM, 82 予測回路, 91 学習用ブロック化回路, 92 教師用ブロック化回路, 94 クラス分類回路, 95 スイッチ, 96 学習データメモリ, 97 カウンタ, 98 教師データメモリ, 99 演算回路, 100 メモリ, 111 ブロック化回路, 112 ADRC処理回路, 113 クラス分類回路, 114 マッピング係数メモリ, 115 遅延回路, 116 演算回路, 117 レベル制限回路, 118 送信機/記録装置, 121 メモリ, 122 ブロック化回路, 123 ADRC処理回路, 124 クラス分類回路, 125 演算回路, 126 レベル制限回路, 127 ローカルデコード部, 128 誤差算出部, 129 判定部, 130 マッピング係数設定回路, 131 マッピング係数メモリ, 141 クラス分類用ブロック化回路, 142 予測値計算用ブロック化回路, 144 クラス分類回路, 145 予測係数ROM, 146 予測回路, 160 最適補正データ算出部, 170 圧縮部, 171 レベル制限部, 172 補正部, 173 ローカルデコード部, 174 誤差算出部, 175 判定部, 176 ラッチ回路, 176A メモリ, 177 ブロック化回路, 177A メモリ, 178 ADRC処理回路, 179 クラス分類回路, 180 メモリ, 181 演算回路, 182 メモリ, 191 受信機/再生装置, 192 デコード部, 193 クラス分類用ブロック化回路, 194 予測値計算用ブロック化回路, 196 クラス分類回路, 197 予測係数ROM, 198 予測回路, 1022,2022 ローカルデコード部, 2024 判定部