JP4518727B2 - Image encoding apparatus and method, recording medium, and program - Google Patents

Image encoding apparatus and method, recording medium, and program Download PDF

Info

Publication number
JP4518727B2
JP4518727B2 JP2002007325A JP2002007325A JP4518727B2 JP 4518727 B2 JP4518727 B2 JP 4518727B2 JP 2002007325 A JP2002007325 A JP 2002007325A JP 2002007325 A JP2002007325 A JP 2002007325A JP 4518727 B2 JP4518727 B2 JP 4518727B2
Authority
JP
Japan
Prior art keywords
correction data
prediction
correction
original image
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002007325A
Other languages
Japanese (ja)
Other versions
JP2003209847A (en
Inventor
哲二郎 近藤
健治 高橋
崇 中西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002007325A priority Critical patent/JP4518727B2/en
Publication of JP2003209847A publication Critical patent/JP2003209847A/en
Application granted granted Critical
Publication of JP4518727B2 publication Critical patent/JP4518727B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像符号化装置および方法、記録媒体、並びにプログラムに関し、特に、原画像とほぼ同一の復号画像が得られるように、画像を、例えば間引くことにより符号化する場合において、より原画像に近い画像を符号化し、復号することができるようにした、画像符号化装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
従来より、画像の符号化方法については、種々の方法が提案されているが、そのうちの1つに、例えば、画像を、その画素を間引くこと(subsampling)により圧縮して符号化する方法がある。
【0003】
しかしながら、このように間引いて圧縮した画像を、単純に補間により伸張した場合、その結果得られる復号画像の解像度が劣化する。
【0004】
このように復号画像の解像度が劣化する原因として、第1に、間引いた画像には、元の画像に含まれる高周波数成分が含まれていないことと、第2に、間引き後の画像を構成する画素の画素値が、元の画像を復元するのに、必ずしも適当でないことが考えられる。
【0005】
そこで、本出願人は、例えば、特願平9−208483号として、図1に示されるような画像符号化装置を先に提案した。
【0006】
図1の例においては、縮小画像作成部11が、入力された画像データを、例えば9個の画素から1つの画素だけを選択する(間引く)ことで縮小画像データを生成する。補正部12は、制御部15より供給される制御信号に基づいて、縮小画像作成部11より供給される縮小画像データを補正して、補正データを生成する。ローカルデコード部13は、補正部12により生成された補正データを、クラス分類適応処理を利用してデコードし、元の画像を予測する予測値を生成する。誤差算出部14は、ローカルデコード部13により算出された予測値を入力画像データと比較し、その誤差を予測誤差として算出して、制御部15に供給する。
【0007】
制御部15は、誤差算出部14により算出された予測誤差に基づいて制御信号を生成し、補正部12に供給する。補正部12は、この制御信号に基づいて縮小画像データを補正して、ローカルデコード部13に供給する。
【0008】
以上のような処理が繰り返し実行されることで、予測誤差が所定値以下になったとき、制御部15は、そのとき補正部12より出力される補正データを最適圧縮データとして、そのときローカルデコード部13により予測処理に用いられた予測係数とともに多重化部16に供給し、多重化させ、符号化データとして出力させる。
【0009】
【発明が解決しようとする課題】
しかしながら、先の提案においては、ローカルデコード部13において、予測処理に用いられる補正データが同一のフレーム内の補正データとされているため、特に、動きがある画像を正確に元の画像により近い画像として復号することが困難である課題があった。
【0010】
本発明はこのような状況に鑑みてなされたものであり、より正確に、原画像に近い画像を復号することができるようにするものである。
【0011】
【課題を解決するための手段】
本発明の画像符号化装置は、原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮手段と、圧縮手段により生成された縮小画像データの画素値、または、縮小画像データの画素値を補正した補正データの画素値を補正し、補正データを生成する補正手段と、補正手段により生成された補正データであって、原画像のうちの第1の原画像に対応する第1の補正データと、第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、第1の補正データと第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定手段と、第1の補正データを構成する画素のうちの1つを注目画素とし、第2の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素、または、第3の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、注目画素を少なくとも予測補正データとして抽出する抽出手段と、抽出手段により予測補正データとして抽出された画素の画素値、および、原画像の画素値の予測値を予測するための予測式の係数である予測係数を予測式に代入して、第1の原画像における注目画素を含む注目画素の近傍の領域の画素値の予測値を演算する演算手段と、演算手段により演算された予測値からなる予測画像の、第1の原画像に対する予測誤差を算出する予測誤差算出手段と、予測誤差算出手段により算出された予測誤差の所定の閾値との比較、または、補正データを生成した回数の所定の回数との比較を行うことにより、補正手段により生成された第1の補正データが第1の原画像の符号化結果として適正であるか否かを判定する判定手段と、判定手段により、第1の補正データが第1の原画像の符号化結果として適正であると判定された場合、そのときの第1の補正データを最適な圧縮データとして出力する出力手段とを備え、判定手段により、第1の補正データが第1の原画像の符号化結果として適正であると判定されるまで、補正手段は、予測誤差が減少するように画素値を補正する方向および量を調整しながら第1の補正データを生成し、動き推定手段は、第1の補正データと第2の補正データとの間の動き、または、第1の補正データと第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、抽出手段は、予測補正データを抽出し、演算手段は、注目画素の近傍の領域の画素値の予測値を演算し、予測誤差算出手段は、予測誤差を算出する処理を繰り返すことを特徴とする。
【0012】
前記動き推定手段は、補正手段により生成された第1の補正データ、第2の補正データ、および第3の補正データを保持する補正データ保持手段と、補正データ保持手段により保持されている第1の補正データと第2の補正データとの間の絶対差分和を計算する第1の計算手段と、補正データ保持手段により保持されている第1の補正データと第3の補正データとの間の絶対差分和を計算する第2の計算手段と、第1の計算手段により計算された絶対差分和の最小値を検出する第1の最小値検出手段と、第2の計算手段により計算された絶対差分和の最小値を検出する第2の最小値検出手段とを備えるようにすることができる。
【0013】
前記予測手段は、補正データを、その画素値に応じて所定のクラスに分類するクラス分類手段と、クラス毎に予測係数を保持し、クラス分類手段により分類されたクラスに対応する予測係数を出力する予測係数保持手段とをさらに備えるようにし、前記演算手段は、抽出手段により予測補正データとして抽出された画素の画素値、および、予測係数保持手段により出力された予測係数を予測式に代入して、予測値を演算することができる。
【0014】
前記出力手段は、出力する補正データが分類されたクラスに対応する予測係数をさらに出力することができる。
【0015】
本発明の画像符号化方法は、原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮ステップと、圧縮ステップの処理により生成された縮小画像データの画素値、または、縮小画像データの画素値を補正した補正データの画素値を補正し、補正データを生成する補正ステップと、補正ステップの処理により生成された補正データであって、原画像のうちの第1の原画像に対応する第1の補正データと、第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、第1の補正データと第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定ステップと、第1の補正データを構成する画素のうちの1つを注目画素とし、第2の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素、または、第3の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、注目画素を少なくとも予測補正データとして抽出する抽出ステップと、抽出ステップの処理により予測補正データとして抽出された画素の画素値、および、原画像の画素値の予測値を予測するための予測式の係数である予測係数を予測式に代入して、第1の原画像における注目画素を含む注目画素の近傍の領域の画素値の予測値を演算する演算ステップと、演算ステップの処理により演算された予測値からなる予測画像の、第1の原画像に対する予測誤差を算出する予測誤差算出ステップと、予測誤差算出ステップの処理により算出された予測誤差の所定の閾値との比較、または、補正データを生成した回数の所定の回数との比較を行うことにより、補正ステップの処理により生成された補正データが第1の原画像の符号化結果として適正であるか否かを判定する判定ステップと、判定ステップの処理により、第1の補正データが第1の原画像の符号化結果として適正であると判定された場合、そのときの第1の補正データを最適な圧縮データとして出力する出力ステップとを含み、判定ステップの処理により、第1の補正データが第1の原画像の符号化結果として適正であると判定されるまで、補正ステップの処理により、予測誤差が減少するように画素値を補正する方向および量を調整しながら第1の補正データを生成し、動き推定ステップの処理により、第1の補正データと第2の補正データとの間の動き、または、第1の補正データと第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、抽出ステップの処理により、予測補正データを抽出し、演算ステップの処理により、注目画素の近傍の領域の画素値の予測値を演算し、予測誤差算出ステップの処理により、予測誤差を算出する処理を繰り返すことを特徴とする。
【0016】
本発明の記録媒体のプログラムは、原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮ステップと、圧縮ステップの処理により生成された縮小画像データの画素値、または、縮小画像データの画素値を補正した補正データの画素値を補正し、補正データを生成する補正ステップと、補正ステップの処理により生成された補正データであって、原画像のうちの第1の原画像に対応する第1の補正データと、第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、第1の補正データと第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定ステップと、第1の補正データを構成する画素のうちの1つを注目画素とし、第2の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素、または、第3の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、注目画素を少なくとも予測補正データとして抽出する抽出ステップと、抽出ステップの処理により予測補正データとして抽出された画素の画素値、および、原画像の画素値の予測値を予測するための予測式の係数である予測係数を予測式に代入して、第1の原画像における注目画素を含む注目画素の近傍の領域の画素値の予測値を演算する演算ステップと、演算ステップの処理により演算された予測値からなる予測画像の、第1の原画像に対する予測誤差を算出する予測誤差算出ステップと、予測誤差算出ステップの処理により算出された予測誤差の所定の閾値との比較、または、補正データを生成した回数の所定の回数との比較を行うことにより、補正ステップの処理により生成された補正データが第1の原画像の符号化結果として適正であるか否かを判定する判定ステップと、判定ステップの処理により、第1の補正データが第1の原画像の符号化結果として適正であると判定された場合、そのときの第1の補正データを最適な圧縮データとして出力する出力ステップとを含み、判定ステップの処理により、第1の補正データが第1の原画像の符号化結果として適正であると判定されるまで、補正ステップの処理により、予測誤差が減少するように画素値を補正する方向および量を調整しながら第1の補正データを生成し、動き推定ステップの処理により、第1の補正データと第2の補正データとの間の動き、または、第1の補正データと第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、抽出ステップの処理により、予測補正データを抽出し、演算ステップの処理により、注目画素の近傍の領域の画素値の予測値を演算し、予測誤差算出ステップの処理により、予測誤差を算出する処理を繰り返すことを特徴とする。
【0017】
本発明のプログラムは、原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮ステップと、圧縮ステップの処理により生成された縮小画像データの画素値、または、縮小画像データの画素値を補正した補正データの画素値を補正し、補正データを生成する補正ステップと、補正ステップの処理により生成された補正データであって、原画像のうちの第1の原画像に対応する第1の補正データと、第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、第1の補正データと第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定ステップと、第1の補正データを構成する画素のうちの1つを注目画素とし、第2の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素、または、第3の補正データにおける注目画素に対応する位置から注目画素の動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、注目画素を少なくとも予測補正データとして抽出する抽出ステップと、抽出ステップの処理により予測補正データとして抽出された画素の画素値、および、原画像の画素値の予測値を予測するための予測式の係数である予測係数を予測式に代入して、第1の原画像における注目画素を含む注目画素の近傍の領域の画素値の予測値を演算する演算ステップと、演算ステップの処理により演算された予測値からなる予測画像の、第1の原画像に対する予測誤差を算出する予測誤差算出ステップと、予測誤差算出ステップの処理により算出された予測誤差の所定の閾値との比較、または、補正データを生成した回数の所定の回数との比較を行うことにより、補正ステップの処理により生成された補正データが第1の原画像の符号化結果として適正であるか否かを判定する判定ステップと、判定ステップの処理により、第1の補正データが第1の原画像の符号化結果として適正であると判定された場合、そのときの第1の補正データを最適な圧縮データとして出力する出力ステップとを含み、判定ステップの処理により、第1の補正データが第1の原画像の符号化結果として適正であると判定されるまで、補正ステップの処理により、予測誤差が減少するように画素値を補正する方向および量を調整しながら第1の補正データを生成し、動き推定ステップの処理により、第1の補正データと第2の補正データとの間の動き、または、第1の補正データと第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、抽出ステップの処理により、予測補正データを抽出し、演算ステップの処理により、注目画素の近傍の領域の画素値の予測値を演算し、予測誤差算出ステップの処理により、予測誤差を算出する処理を繰り返す処理をコンピュータに実行させることを特徴とする。
【0023】
本発明の画像符号化装置および方法、記録媒体、並びにプログラムにおいては、第1の原画像に対応する第1の補正データと、第1の原画像より時間的に前の第2の原画像に対応する第2の補正データ、または第1の原画像より時間的に後の第3の原画像に対応する第3の補正データの少なくとも一方を利用して、第1の原画像の動きが推定され、その動きベクトルに基づいて、第1の原画像が予測される。
【0025】
【発明の実施の形態】
図2は、本発明を適用した画像処理装置の一実施の形態の構成を示している。
【0026】
送信装置41には、ディジタル化された画像データが供給される。送信装置41は、入力された画像データを、例えば図3に示されるように、1/9に間引くこと(その画素数を少なくすること)により圧縮、符号化し、その結果得られる符号化データを、さらにクラス分類適応処理により予測し、例えば、光ディスク、光磁気ディスク、磁気テープ、相変化ディスク、その他でなる記録媒体42に記録したり、または、例えば、地上波、衛星回線、電話回線、CATV網、インターネット、その他の伝送路43を介して伝送する。
【0027】
受信装置44では、記録媒体42に記録された符号化データが再生され、または、伝送路43を介して伝送されてくる符号化データが受信される。その符号化データは、図4に示されるように、クラス分類適応処理に基づいて、伸張、復号される。そして、その結果得られる復号画像が、図示せぬディスプレイに供給されて表示される。
【0028】
なお、以上のような画像処理装置は、例えば、光ディスク装置や、光磁気ディスク装置、磁気テープ装置、その他の、画像の記録または再生を行う装置、あるいはまた、例えば、テレビ電話装置、テレビジョン放送システム、CATVシステム、その他の、画像の伝送を行う装置などに適用される。また、後述するように、送信装置41が出力する符号化データのデータ量が少ないため、図2の画像処理装置は、伝送レートの低い、例えば、携帯電話機、その他の、移動に便利な携帯端末などにも適用可能である。
【0029】
図5は、図2の送信装置41のハードウェアの構成例を示している。
【0030】
I/F(InterFace)61は、外部から供給される画像データの受信処理と、送信機/記録装置66に対しての、符号化データの送信処理を行う。ROM(Read Only Memory)62は、IPL(Initial Program Loading)用のプログラムその他を記憶している。RAM(Random Access Memory)63は、外部記憶装置65に記録されているシステムプログラム(OS(Operating System))やアプリケーションプログラムを記憶したり、また、CPU(Central Processing Unit)64の動作上必要なデータを記憶する。CPU64は、ROM62に記憶されているIPLプログラムにしたがい、外部記憶装置65からシステムプログラムおよびアプリケーションプログラムを、RAM63に展開し、そのシステムプログラムの制御の下、アプリケーションプログラムを実行することで、I/F61から供給される画像データについての、後述するような符号化処理を行う。
【0031】
外部記憶装置65は、例えば、磁気ディスク71、光ディスク72、光磁気ディスク73、または半導体メモリ74などでなり、上述したように、CPU64が実行するシステムプログラムやアプリケーションプログラムを記憶している他、CPU64が動作上必要とするデータも記憶している。送信機/記録装置66は、I/F61から供給される符号化データを、記録媒体42に記録したり、または伝送路43を介して伝送する。
【0032】
なお、I/F61,ROM62,RAM63,CPU64、および外部記憶装置65は、相互にバスを介して接続されている。
【0033】
以上のように構成される送信装置41においては、I/F61に画像データが供給されると、その画像データは、CPU64に供給される。CPU64は、画像データを符号化し、その結果得られる符号化データを、I/F61に供給する。I/F61は、符号化データを受信すると、それを、送信機/記録装置66に供給する。送信機/記録装置66は、I/F61からの符号化データを、記録媒体42に記録したり、または伝送路43を介して伝送する。
【0034】
図6は、図5の送信装置41の、送信機/記録装置66を除く部分の機能的な構成例を示している。
【0035】
符号化すべき画像データは、縮小画像作成部111および誤差算出部115に供給される。縮小画像生成部111は、画像データを、その画素を、例えば、単純に間引くことにより圧縮し、その結果得られる圧縮データ(間引きが行われた後の縮小画像データ)を補正部112に出力する。補正部112は、制御部116からの制御信号にしたがって、圧縮データを補正する。補正部112における補正の結果得られる補正データは、動き推定部113、ローカルデコード部114、および制御部116に供給される。動き推定部113は、画像データと補正データから画像の動きを推定し、動きベクトルをローカルデコード部114に出力する。
【0036】
ローカルデコード部114は、補正部112からの補正データと動き推定部113からの動きベクトルに基づいて、元の画像を予測し、その予測値を、誤差算出部115に供給する。なお、ローカルデコード部114は、後述するように、補正データと予測係数との線形結合により、予測値を算出する。そして、ローカルデコード部114は、予測値を、誤差算出部115に供給する他、そのとき求めたクラスごとの予測係数を、制御部116に供給する。
【0037】
誤差算出部115は、そこに入力される、元の画像データ(原画像)に対する、ローカルデコード部114からの予測値の予測誤差を算出する。この予測誤差は、誤差情報として、制御部116に供給される。
【0038】
制御部116は、誤差算出部115からの誤差情報に基づいて、補正部112が出力した補正データを、元の画像の符号化結果とすることの適正さを判定する。そして、制御部116は、補正部112が出力した補正データを、元の画像の符号化結果とすることが適正でないと判定した場合には、補正部112を制御し、さらに、圧縮データを補正させ、その結果得られる新たな補正データを出力させる。また、制御部116は、補正部112が出力した補正データを、元の画像の符号化結果とすることが適正であると判定した場合には、補正部112から供給された補正データを、最適な圧縮データ(以下、適宜、最適圧縮データという)として多重化部117に供給するとともに、ローカルデコード部114から供給されたクラスごとの予測係数を多重化部117に供給する。
【0039】
多重化部117は、制御部116からの最適圧縮データ(補正データ)と、クラスごとの予測係数とを多重化し、その多重化結果を、符号化データとして、送信機/記録装置66(図5)に供給する。
【0040】
次に、図7のフローチャートを参照して、送信装置41が実行する符号化処理について説明する。補正部112に対して、画像データが供給されると、補正部112は、ステップS11において、縮小画像作成処理を実行する。
【0041】
図8は、縮小画像作成処理の1つの例としての単純間引き処理を表している。最初に、ステップS31において、縮小画像作成部111は、圧縮される前の画像データを、m×n個の画素データで構成されるブロックに分割する。次に、ステップS32において、m×n個の画素データの中から1つの画素データを抽出し、その画素データをそのブロックを代表する1つの画素データとする。
【0042】
ステップS33において、縮小画像作成部111は、以上の処理が、そのフレームの全てのブロックについて終了したか否かを判定し、まだ処理していないブロックが残っている場合には、ステップS31に戻り、それ以降の処理を繰り返し実行する。全てのブロックについての処理が終了したと判定された場合、処理は終了される。
【0043】
すなわち、この例においては、図9に示されるように、例えば3×3個(m=n=3)の画素データa1乃至a9の中から、中央の1個の画素a5が選択される。同様にして、隣の3×3個のb1乃至b9の9個の画素の中から、中央の画素b5が選択される。
【0044】
以上のような単純間引き処理が繰り返し実行されることで、入力された画像データは、1/9の縮小画像データに圧縮される。
【0045】
図10は、縮小画像作成処理の他の例を表している。この例においては、ステップS51において、縮小画像作成部111は、入力された画像データをm×n個のブロックに分割する。ステップS52において、縮小画像作成部111は、ステップS51の処理で分割されたm×n個の画素の平均値を計算する。そして、その平均値をm×n個の画素で構成されるブロックを代表する1つの画素とする。
【0046】
ステップS53において、縮小画像作成部111は、全てのブロックについて同様の処理を実行したか否かを判定し、まだ処理していないブロックが残っている場合にはステップS51に戻り、それ以降の処理を繰り返し実行する。全てのブロックについての処理が終了したと判定された場合、処理は終了される。
【0047】
このようにして、例えば、図11に示されるように、a1乃至a9の3×3個の画素の平均値Aが、次式に基づいて演算される。
【0048】
【数1】

Figure 0004518727
【0049】
また、画素b1乃至b9の3×3個の画素の平均値Bが次式に基づいて演算される。
【0050】
【数2】
Figure 0004518727
【0051】
さらに、同様に、画素c1乃至c9の3×3個の画素の平均値Cが次式に基づいて演算される。
【0052】
【数3】
Figure 0004518727
【0053】
縮小画像作成部111で生成された縮小画像データ(圧縮データ)は、補正部112に供給され、最初は補正が行われずに、そのまま補正データとして、ローカルデコード部114と動き推定部113に供給される。
【0054】
ステップS12において、動き推定部113は、補正部112より供給された補正データに基づいて画像の動きを検出し、その動きに対応する動きベクトルを生成して、ローカルデコード部114に出力する。この動きベクトル推定処理の詳細については、図14と図15を参照して後述する。
【0055】
次に、ステップS13において、ローカルデコード部114は、補正部112からの補正データ(最初は、上述したように縮小画像データそのもの)を、クラス分類適応処理に基づいてデコードする(復号する)。
【0056】
この復号処理の詳細については、図16乃至図19を参照して後述するが、ローカルデコード部114は、補正部112より供給される補正データから、動き推定部113より供給される動きベクトルに基づいて、予測処理を行うための補正データ(予測タップ)で構成される予測値計算用ブロック(予測対象データ)を抽出し、その抽出した予測対象データに対して、クラス毎の予測係数を線形結合させることで、予測値を演算する。ローカルデコード部114で生成された予測値は、誤差算出部115に供給され、用いられた予測係数は、制御部116に供給される。
【0057】
ここで、ローカルデコード部114が出力する予測値で構成される画像は、受信装置44(図2)側において得られる復号画像と同一のものである。
【0058】
ステップS14において誤差算出部115は、ローカルデコード部114より供給された予測値と画像データ(縮小される前の画像データ)との予測誤差を算出し、誤差情報として制御部116に供給する。
【0059】
ステップS15において、制御部116は、誤差算出部115からの誤差情報に基づいて、最適化処理を実行する。すなわち、制御部116は、誤差算出部115からの予測誤差に基づいて、圧縮データを補正させる。補正部112は、制御部116からの制御信号に基づいて、補正量(後述する補正値Δ)を変更して圧縮データを補正し、その結果得られる補正データを動き推定部113、ローカルデコード部114、および制御部116に出力する。
【0060】
ステップS16において、動き推定部113は、画像の動きを再び検出し、動きベクトルを生成する。このとき、処理対象とされている補正データは、ステップS12における場合とは異なる値に補正されているため、異なる動きベクトルが得られる可能性がある。
【0061】
動き推定部113により生成された動きベクトルは、ローカルデコード部114に供給される。ローカルデコード部114は、ステップS17において、ステップS16の処理で動き推定部113により生成された動きベクトルを利用して、補正データの中から予測値計算用ブロックを抽出し、クラス分類適応処理を施すことで予測値を演算する。このとき、処理対象とされている予測値計算用ブロックは、ステップS13の処理における場合と異なるものとなるため、多くの場合、得られる予測値も異なるものとなる。
【0062】
ステップS18において、誤差算出部115は、ステップS17の処理でローカルデコード部114により生成された予測値の元の画像(原画像)の画像データとの差(予測誤差)を算出し、誤差情報として制御部116に出力する。
【0063】
制御部116は、ステップS19において、補正部112により生成された補正データを、原画像の符号化結果とすることの適正さを判定する。具体的には、例えば、予測誤差が所定の閾値εより小さいか否か、あるいは最適化処理を行った回数が、予め設定された所定の回数に達したか否かが判定される。予測誤差が所定の閾値εより大きい場合、あるいは、最適化の処理回数がまだ所定の回数に達していない場合、ステップS15に戻り、それ以降の処理が繰り返し実行される。
【0064】
ステップS19において、予測誤差が所定の閾値εより小さくなったと判定された場合、あるいは最適化処理が所定の回数実行されたと判定された場合、制御部116は、補正データを原画像の符号化結果とすることが適正であると判定し、ステップS20において、補正部112より、そのとき得られる補正データを最適圧縮データとして多重化部117に供給するとともに、ローカルデコード部114より、そのとき予測に用いられていた予測係数を多重化部117に出力する。多重化部117は、制御部116より供給される最適圧縮データと予測係数とを多重化し、符号化データとして送信機/記録装置66に供給する。
【0065】
送信機/記録装置66は、この符号化データを、記録媒体42に記録したり、伝送路43を介して伝送する。
【0066】
以上のように、予測誤差が所定の閾値ε以下となるか、または、最適化処理が所定回数に達したときにおける、縮小画像データを補正した補正データを、原画像の符号化結果とするようにしたので、受信装置44側においては、その補正データに基づいて、元の画像(原画像)とほぼ同一の画像を得ることが可能となる。
【0067】
図12は、図6の補正部112の構成例を示している。
【0068】
補正回路131は、制御部116(図6)からの制御信号にしたがって、補正値ROM132にアドレスを与え、これにより、補正値Δを読み出す。そして、補正回路131は、縮小画像作成部111からの縮小画像データ(圧縮データ)に対して、補正値ROM132からの補正値Δを、例えば加算することで、補正データを生成し、動き推定部113、ローカルデコード部114、および制御部116に供給する。補正値ROM132は、縮小画像作成部111が出力する圧縮データを補正するための、各種の補正値Δの組合せ(例えば、1フレーム分の圧縮データを補正するための補正値の組合せなど)を記憶しており、補正回路131から供給されるアドレスに対応する補正値Δの組合せを読み出して、補正回路131に供給する。
【0069】
次に、図13を参照して、図12の補正部112の処理について説明する。
【0070】
補正回路131は、縮小画像作成部111から圧縮データを受信すると、ステップS71において、制御部116(図6)から制御信号を受信したかどうかを判定する。ステップS71において、制御信号を受信していないと判定された場合、ステップS72およびS73の処理をスキップしてステップS74に進み、補正回路131は、縮小画像作成部111からの圧縮データを、そのまま補正データとして、動き推定部113、ローカルデコード部114、および制御部116に出力し、ステップS71に戻る。
【0071】
即ち、制御部116は、上述したように、誤差情報に基づいて、補正部112(補正回路131)を制御するようになされており、縮小画像作成部111から圧縮データが出力された直後は、まだ、誤差情報が得られないため(誤差情報が、誤差算出部115から出力されないため)、制御部116からは制御信号は出力されない。このため、縮小画像作成部111から圧縮データが出力された直後は、補正回路131は、その圧縮データを補正せず(0を加算する補正をして)、そのまま補正データとして、動き推定部113、ローカルデコード部114、および制御部116に出力する。
【0072】
一方、ステップS71において、制御部116からの制御信号を受信したと判定された場合、ステップS72に進み、補正回路131は、その制御信号にしたがったアドレスを、補正値ROM132に出力する。これにより、ステップS72では、補正値ROM132から、そのアドレスに記憶されている、1フレーム分の圧縮データを補正するための補正値Δの組合せ(集合)が読み出され、補正回路131に供給される。補正回路131は、補正値ROM132から補正値Δの組合せを受信すると、ステップS73において、1フレームの圧縮データそれぞれに、対応する補正値Δを加算し、これにより、圧縮データを補正した補正データを算出する。その後は、ステップS74に進み、補正データが、補正回路131から動き推定部113、ローカルデコード部114、および制御部116に出力され、ステップS71に戻る。
【0073】
以上のようにして、補正部112は、制御部116の制御にしたがって、圧縮データを、種々の値に補正した補正データを出力することを繰り返す。
【0074】
なお、制御部116は、例えば、1フレームの画像についての符号化を終了すると、その旨を表す制御信号を、補正部112に供給するようになされており、補正部112は、ステップS71において、そのような制御信号を受信したかどうかも判定する。ステップS71において、1フレームの画像についての符号化を終了した旨の制御信号を受信したと判定された場合、補正部112は、そのフレーム(フィールド)に対する処理を終了し、次のフレームが供給された場合、ステップS71乃至S74の処理を繰り返す。
【0075】
図14は、動き推定部113の構成例を表している。この例においては、フレームメモリ151に、補正部112より出力された補正データが1フレーム分記憶される。フレームメモリ151に記憶された1フレーム分の補正データは、そこから読み出され、後段のフレームメモリ152に転送され、記憶される。このときフレームメモリ151には、時間的に後の次のフレームの補正データが記憶される。フレームメモリ152に記憶された1フレーム分の補正データは、さらに、後段のフレームメモリ153に転送され、記憶される。フレームメモリ152には、それまでフレームメモリ151に記憶されていた1フレーム分の補正データが転送され、記憶される。そして、フレームメモリ151には、それまで記憶されていたフレームより、さらに時間的に後の1フレーム分の補正データが記憶される。
【0076】
このようにして、フレームメモリ151乃至153には、時間的に連続する3つのフレームの補正データが記憶される。すなわち、フレームメモリ152に記憶されている現在フレームの補正データより、時間的に前のフレームの補正データがフレームメモリ153に記憶され、時間的に後のフレームの補正データがフレームメモリ151に記憶される。
【0077】
動きベクトル検出部154は、フレームメモリ152に記憶されている現在フレームの補正データと、フレームメモリ151に記憶されている前フレームの補正データとの間の動きを検出し、動きベクトルを出力する。動きベクトル検出部155は、フレームメモリ152に記憶されている現在フレームの補正データと、フレームメモリ153に記憶されている後フレームの補正データとの間の動きを検出し、動きベクトルを出力する。動きベクトル検出部155が出力する動きベクトルを、便宜上、前フレーム動きベクトルと称し、動きベクトル検出部154が出力する動きベクトルを、後フレーム動きベクトルと称する。
【0078】
次に、図15のフローチャートを参照して、動き推定部113の前動きベクトル推定(検出)処理について説明する。なお、フレームメモリ151乃至153には、それぞれ、後フレーム、現在フレーム、または前フレームの補正データが、それぞれ記憶されているものとする。
【0079】
ステップS91において、動きベクトル検出部155は、内蔵するメモリに比較値をセットする。この比較値は、後述するステップS96において利用される。
【0080】
ステップS92において、動きベクトル検出部155は、内蔵する相対アドレス用メモリをクリアする。この相対アドレス用メモリには、後述するステップS98において、動きベクトル(前動きベクトル)に対応する相対アドレスが格納される。
【0081】
ステップS93において、動きベクトル検出部155は、フレームメモリ152に記憶されている現在フレームをブロックに分割する処理を行う。ステップS94において、動きベクトル検出部155は、フレームメモリ153に記憶されている前フレームの補正データをブロックに分割する処理を行う。
【0082】
ステップS95において、動きベクトル検出部155は、ステップS93の処理で分割された現在フレームの1つのブロックと、ステップS94の処理で分割された前フレームの1つのブロックとの対応する位置の補正データの差の絶対値の和、すなわち絶対差分和を計算する。
【0083】
ステップS96において、動きベクトル検出部155は、ステップS95の処理で計算された絶対差分和を評価値として、ステップS91の処理でセットされた比較値と比較する処理を行う。評価値が比較値より小さい場合には、ステップS97において、動きベクトル検出部155は、ステップS91の処理で、セットした比較値を、ステップS95の処理で計算して得られた評価値で更新する。そして、ステップS98において、動きベクトル検出部155は、その前フレームのブロックの現在フレームの注目画素を含むブロックの位置に対する相対的なアドレス(前動きベクトルに対応する)を相対アドレスメモリに格納する。
【0084】
ステップS96において、ステップS95の処理で計算された評価値が、比較値と等しいか、それより大きいと判定された場合には、ステップS97とステップS98の処理はスキップされる。
【0085】
次に、ステップS99に進み、動きベクトル検出部155は、前フレームの予め設定されている所定の探索範囲内の探索が終了したか否かを判定し、終了していない場合には、ステップS100に進み、前フレームのブロックの位置を変化させる。
【0086】
その後、ステップS94に戻り、変化された位置における前フレームのブロックが抽出され、ステップS95において、その前フレームのブロックと注目画素を含む現在フレームのブロックとの絶対差分和が計算される。ステップS96において、ステップS95で計算された絶対差分和としての評価値が比較値(前回のステップS97の処理で、前回のブロックの評価値に更新されている)と比較される。評価値が比較値より小さい場合には、ステップS97において、比較値を、その評価値に変更する処理が行われ、ステップS98において、相対アドレスメモリ内のアドレスが、いま処理対象とされているブロックの相対アドレスに変更される。
【0087】
ステップS96において、評価値が比較値と等しいか、それより大きいと判定された場合には、ステップS97とステップS98の処理はスキップされる。
【0088】
このような処理は、ステップS99において、前フレームの探索範囲内の全てのブロックについての処理が終了したと判定されるまで、繰り返し実行される。その結果、ステップS97の処理で、比較値として、探索範囲内の各ブロックの絶対差分和のうちの最小値が記憶されることになり、ステップS98の処理で、相対アドレスメモリに、その最小の絶対差分和に対応するブロックの相対アドレス、すなわち前動きベクトルが格納される。
【0089】
ステップS99において、前フレームの探索範囲の全ての探索が終了したと判定された場合、動きベクトル検出部155は、ステップS101において、ステップS98の処理で、相対アドレスメモリに格納した相対アドレスよりなる前フレーム動きベクトルをローカルデコード部114に出力する。
【0090】
以上においては、動きベクトル検出部155の動きベクトル推定処理について説明したが、動きベクトル検出部154においても、フレームメモリ152に記憶されている現在フレームの補正データと、フレームメモリ151に記憶されている後フレームの補正データとの間の動きを検出するために、同様の処理が実行される。
【0091】
この場合においては、図15におけるステップS94の処理で、前フレームのブロックを抽出するのに代えて、後フレームのブロックを抽出する処理が実行され、ステップS99の判定処理においては、前フレームの探索範囲内の処理が終了したか否かが判定されるのに代えて、後フレームの探索範囲内の探索処理が終了したか否かが判定される。ステップS101において、出力されるのは、前フレーム動きベクトルでなく、後フレーム動きベクトルとなる。その他の処理は、動きベクトル検出部155の前フレーム動きベクトルを検出するための処理と同様である。
【0092】
図16は、図6のローカルデコード部114の構成例を示している。
【0093】
補正部112からの補正データは、クラス分類用ブロック化回路261および予測値計算用ブロック化回路262に供給される。クラス分類用ブロック化回路261は、現在フレームの補正データを、その性質に応じて所定のクラスに分類するための単位である、注目補正データを中心としたクラス分類用ブロックにブロック化する。
【0094】
即ち、いま、図17において、上からi番目で、左からj番目の補正データ(圧縮データ)(または画素)(図中、黒の円形の印で示す部分)をXijと表すとすると、クラス分類用ブロック化回路261は、注目補正データXijの左上、上、右上、左、右、左下、下、右下に隣接する8つの補正データX(i-1)(j-1),X(i-1)j,X(i-1)(j+1),Xi(j-1),Xi(j+1),X(i-1)(j-1),X(i-1)j,X(i+1)(j+1)に、自身を含め、合計9個の補正データで構成されるクラス分類用ブロック242を構成する。このクラス分類用ブロック242は、クラス分類適応処理回路263に供給される。
【0095】
なお、この場合、クラス分類用ブロック242は、3×3画素でなる正方形状のブロックで構成されることとなるが、クラス分類用ブロック242の形状は、正方形である必要はなく、その他、例えば、図18に示されるように菱形にしたり、長方形、十文字形、その他の任意な形とすることが可能である。また、クラス分類用ブロックを構成する画素数も、3×3の9画素に限定されるものではない。
【0096】
予測値計算用ブロック化回路262は、動きベクトルに基づいて、補正データを、元の画像の予測値を計算するための単位である、注目補正データを基準とした予測値計算用ブロックにブロック化する。即ち、現在フレームにおいては、図17に示されるように、補正データ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)の予測値の計算のために、予測値計算用ブロック化回路262は、例えば、注目補正データ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)で構成される正方形状の予測値計算用ブロック251を構成する。
【0097】
具体的には、例えば、図17において四角形で囲む、元の画像における画素Y33(1)乃至Y33(9)の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により、予測値計算用ブロックが構成される(この場合の注目補正データは、X33となる)。
【0098】
予測値計算用ブロック化回路262は、さらに、動き推定部113より供給される動きベクトルに基づいて、図19に示されるように、現在フレーム201より時間的に前の前フレーム202と、時間的に後の後フレーム203の補正データからも、予測値計算用ブロック部251を構成する補正データを抽出する。
【0099】
図19の現在フレーム201は、図17に示されるフレームである。図19には、図17に黒い丸印で示される補正データのみが示されている。すなわち、図19においては、図17における白い丸印で示される原画像の画素は、その図示が省略されている。
【0100】
現在フレーム201の注目補正データ211は、図17の注目補正データX33に対応し、注目補正データ211より左側に2個、かつ上側に2個移動した位置の補正データ212は、図17の補正データX11に対応し、注目補正データ211のすぐ上の補正データとしての予測タップ213は、図17の補正データX23に対応する。
【0101】
現在フレーム(t=Tのフレーム)201より時間的に1フレーム前の前フレーム(t=T−1のフレーム)202における注目対応補正データ221は、現在フレーム201の注目補正データ211に対応する位置の補正データである。予測タップ222を構成する補正データは、動き推定部113の動きベクトル検出部155により検出された前フレーム動きベクトル223に基づいて、注目補正データ221を移動した位置の補正データである。予測値計算用ブロック化回路262は、この予測タップ222も、予測値計算用ブロック251を構成する補正データとして抽出する。
【0102】
同様に、予測値計算用ブロック化回路262は、現在フレーム201より時間的に後の後フレーム(t=T+1のフレーム)203における、現在フレーム201の注目補正データ211に対応する位置の補正データである注目対応補正データ231を、動きベクトル検出部154により検出された後フレーム動きベクトル233に基づいて移動した位置の補正データである予測タップ232を、予測値計算用ブロック251を構成する補正データとして抽出する。
【0103】
このように、この例においては、現在フレーム内の補正データだけでなく、現在フレームより時間的に前、または後のフレームの補正データが、予測値計算用ブロック25を構成する補正データとされるため、特に、原画像が動画像である場合においても、正確に原画像を復元することが可能となる。
【0104】
図20は、横軸を時間軸方向とし、縦軸をフレームの水平方向または垂直方向として、図19の前フレーム262、現在フレーム201、および後フレーム203の注目補正データと予測タップの位置関係を表している。
【0105】
予測値計算用ブロック化回路262において得られた予測値計算用ブロック251の補正データは、クラス分類適応処理回路263に供給される。
【0106】
なお、予測値計算用ブロック251についても、クラス分類用ブロック242における場合と同様に、その画素数および形状は、上述したものに限定されるものではない。但し、予測値計算用ブロック251を構成する画素数は、クラス分類用ブロック242を構成する画素数よりも多くするのが望ましい。
【0107】
また、上述のようなブロック化を行う場合において(ブロック化以外の処理についても同様)、画像の画枠付近では、対応する画素(補正データ)が存在しないことがあるが、この場合には、例えば、画枠を構成する画素と同一の画素が、その外側に存在するものとして処理を行う。
【0108】
クラス分類適応処理回路263は、ADRC(Adaptive Dynamic Range Coding)処理回路264、クラス分類回路265、予測係数ROM266、および予測回路267で構成され、クラス分類適応処理を行う。
【0109】
クラス分類適応処理とは、入力信号を、その特徴に基づいて幾つかのクラスに分類し、各クラスの入力信号に、そのクラスに適切な適応処理を施すもので、大きく、クラス分類処理と適応処理とに分かれている。
【0110】
ここで、クラス分類処理および適応処理について簡単に説明する。
【0111】
まず、クラス分類処理について説明する。
【0112】
いま、例えば、図21に示されるように、ある注目画素と、それに隣接する3つの画素により、2×2画素でなるブロック(クラス分類用ブロック)を構成し、また、各画素は、1ビットで表現される(0または1のうちのいずれかのレベルをとる)ものとする。この場合、注目画素を含む2×2の4画素のブロックは、各画素のレベル分布により、図22に示されるように、16(=(214)パターンに分類することができる。従って、いまの場合、注目画素は、16のパターンに分類することができ、このようなパターン分けが、クラス分類処理であり、クラス分類回路265において行われる。
【0113】
なお、クラス分類処理は、画像(ブロック内の画像)のアクティビティ(画像の複雑さ)(変化の激しさ)などをも考慮して行うようにすることが可能である。
【0114】
ところで、通常、各画素には、例えば8ビット程度が割り当てられる。また、本実施の形態においては、上述したように、クラス分類用ブロック242は、3×3の9個の補正データで構成される。従って、このようなクラス分類用ブロック242を対象にクラス分類処理を行うものとすると、(289という膨大な数のクラスが発生することになる。
【0115】
そこで、本実施の形態においては、ADRC処理回路264において、クラス分類用ブロック242に対して、ADRC処理が施され、これにより、クラス分類用ブロック242を構成する補正データのビット数を小さくすることで、クラス数が削減される。
【0116】
即ち、例えば、いま、説明を簡単にするため、図23に示されるように、4個の画素(補正データ)で構成されるブロックを考えると、ADRC処理においては、その画素値の最大値MAXと最小値MINが検出される。そして、DR=MAX−MINが、そのブロックの局所的なダイナミックレンジとされ、このダイナミックレンジDRに基づいて、ブロックを構成する画素の画素値がKビットに再量子化される。
【0117】
即ち、ブロック内の各画素値から、最小値MINが減算され、その減算された値がDR/2Kで除算される。そして、各画素値は、その結果得られる除算値に対応するコード(ADRCコード)に変換される。具体的には、例えば、K=2とした場合、図24に示されるように、除算値が、ダイナミックレンジDRを4(=22)等分して得られるいずれの範囲に属するかが判定され、除算値が、最も下のレベルの範囲、下から2番目のレベルの範囲、下から3番目のレベルの範囲、または最も上のレベルの範囲に属する場合には、それぞれ、例えば、00B,01B,10B、または11Bなどの2ビットにコード化される(Bは2進数であることを表す)。そして、復号側(受信装置44)において、ADRCコード00B,01B,10B、または11Bは、ダイナミックレンジDRを4等分して得られる最も下のレベルの範囲の中心値L00、下から2番目のレベルの範囲の中心値L01、下から3番目のレベルの範囲の中心値L10、または最も上のレベルの範囲の中心値L11にそれぞれ変換され、その値に、最小値MINが加算されることで復号が行われる。
【0118】
このようなADRC処理はノンエッジマッチングと呼ばれる。
【0119】
なお、ADRC処理については、本件出願人が先に出願した、例えば、特開平3−53778号公報などに、その詳細が開示されている。
【0120】
ブロックを構成する画素に割り当てられているビット数より少ないビット数で再量子化を行うADRC処理を施すことにより、上述したように、クラス数を削減することができ、このようなADRC処理が、ADRC処理回路264において行われる。
【0121】
なお、本実施の形態では、クラス分類回路265において、ADRC処理回路264から出力されるADRCコードに基づいて、クラス分類処理が行われるが、クラス分類処理は、その他、例えば、DPCM(予測符号化)や、BTC(Block Truncation Coding)、VQ(ベクトル量子化)、DCT(離散コサイン変換)、アダマール変換などを施したデータを対象に行うようにすることも可能である。
【0122】
次に、適応処理について説明する。
【0123】
例えば、いま、元の画像の画素値yの予測値E[y]を、その周辺の幾つかの画素の画素値(補正データの値)(以下、適宜、学習データという)x1,x2,・・・と、所定の予測係数w1,w2,・・・の線形結合により規定される線形1次結合モデルにより求めることを考える。この場合、予測値E[y]は、次式で表すことができる。
【0124】
E[y]=w11+w22+・・・
・・・(1)
【0125】
そこで、一般化するために、予測係数wの集合でなる行列W、学習データの集合でなる行列X、および予測値E[y]の集合でなる行列Y’を、
【数4】
Figure 0004518727
で定義すると、次のような観測方程式が成立する。
【0126】
XW=Y’
・・・(2)
【0127】
そして、この観測方程式に最小自乗法を適用して、元の画像の画素値yに近い予測値E[y]を求めることを考える。この場合、元の画像の画素値(以下、適宜、教師データという)yの集合でなる行列Y、および元の画像の画素値yに対する予測値E[y]の残差eの集合でなる行列Eを、
【数5】
Figure 0004518727
で定義すると、式(2)から、次のような残差方程式が成立する。
【0128】
XW=Y+E
・・・(3)
【0129】
この場合、元の画像の画素値yに近い予測値E[y]を求めるための予測係数wiは、自乗誤差
【数6】
Figure 0004518727
を最小にすることで求めることができる。
【0130】
従って、上述の自乗誤差を予測係数wiで微分したものが0になる場合、即ち、次式を満たす予測係数wiが、元の画像の画素値yに近い予測値E[y]を求めるため最適値ということになる。
【0131】
【数7】
Figure 0004518727
・・・(4)
【0132】
そこで、まず、式(3)を、予測係数wiで微分することにより、次式が成立する。
【0133】
【数8】
Figure 0004518727
・・・(5)
【0134】
式(4)および(5)より、式(6)が得られる。
【0135】
【数9】
Figure 0004518727
・・・(6)
【0136】
さらに、式(3)の残差方程式における学習データx、予測係数w、教師データy、および残差eの関係を考慮すると、式(6)から、次のような正規方程式を得ることができる。
【0137】
【数10】
Figure 0004518727
・・・(7)
【0138】
式(7)の正規方程式は、求めるべき予測係数wの数と同じ数だけたてることができ、従って、式(7)を解くことで、最適な予測係数wを求めることができる。なお、式(7)を解くにあたっては、例えば、掃き出し法(Gauss-Jordanの消去法)などを適用することが可能である。
【0139】
以上のようにして、クラスごとに最適な予測係数wを求め、さらに、その予測係数wを用い、式(1)により、元の画像の画素値yに近い予測値E[y]を求めるのが適応処理であり、この適応処理に基づく予測処理が、予測回路267において行われる。
【0140】
なお、適応処理は、間引かれた画像(圧縮データ)には含まれていない、元の画像に含まれる成分が再現される点で、単なる補間処理とは異なる。即ち、適応処理は、式(1)だけを見る限りは、いわゆる補間フィルタを用いての補間処理と同一であるが、その補間フィルタのタップ係数に相当する予測係数wが、教師データyを用いての、いわば学習により求められるため、元の画像に含まれる成分を再現することができる。このことから、適応処理は、いわば画像の創造作用がある処理ということができる。
【0141】
次に、図25のフローチャートを参照して、図16のローカルデコード部114の処理について説明する。
【0142】
ローカルデコード部114においては、まず最初に、ステップS121において、補正部112からの補正データがブロック化される。即ち、クラス分類用ブロック化回路261において、補正データが、注目補正データ(図17の補正データX33)を中心とする3×3画素のクラス分類用ブロック242(図17)にブロック化され、クラス分類適応処理回路263に供給されるとともに、予測値計算用ブロック化回路262において、現在フレームの補正データが、注目補正データ211(X33)を中心とする5×5画素の予測値計算用ブロック251(図17、図19)にブロック化される。
【0143】
さらにまた、予測値計算用ブロック化回路262は、動き推定部113より供給される前フレーム動きベクトル223に対応して求められる前フレーム202の補正データである予測タップ222と、後フレーム動きベクトル233に対応して求められる後フレーム203の補正データである予測タップ232を、それぞれ予測値計算用ブロック251を構成する補正データとする(図19)。従って、この例の場合、結局、合計27個(=5×5+1+1)の補正データが予測値計算用ブロック251の補正データとしてクラス分類適応処理回路263に供給される。
【0144】
クラス分類適応処理回路263において、クラス分類用ブロック242はADRC処理回路264に供給され、予測値計算用ブロック251は予測回路267に供給される。
【0145】
ADRC処理回路264は、クラス分類用ブロック242を受信すると、ステップS122において、そのクラス分類用ブロック242に対して、例えば、1ビットのADRC(1ビットで再量子化を行うADRC)処理を施し、これにより、補正データを、1ビットに変換(符号化)して、クラス分類回路265に出力する。クラス分類回路265は、ステップS123において、ADRC処理が施されたクラス分類用ブロック242に基づいて、クラス分類処理を実行する。即ち、ADRC処理が施されたクラス分類用ブロック242を構成する各補正データのレベル分布の状態を検出し、そのクラス分類用ブロックが属するクラス(そのクラス分類用ブロック242を構成する注目補正データ211(中心に配置された補正データ)のクラス)を判定する。このクラスの判定結果は、クラス情報として、予測係数ROM266に供給される。
【0146】
なお、本実施の形態においては、1ビットのADRC処理が施された3×3の9個の補正データで構成されるクラス分類用ブロック242に対して、クラス分類処理が施されるので、各クラス分類用ブロック242は、512(=(219)のクラスのうちのいずれかに分類されることになる。
【0147】
そして、ステップS124に進み、予測係数ROM266において、クラス分類回路265からのクラス情報に基づいて、予測係数が読み出され、予測回路267に供給される。予測回路267は、ステップS125において、各クラスごとに適応処理を施し、これにより、1フレームの元の画像データ(原画像データ)の予測値を算出する。
【0148】
即ち、本実施の形態においては、例えば、クラスごとに27×9個の予測係数が読み出される。さらに、ある1つの補正データに注目した場合に、その注目補正データに対応する元画像の画素と、その画素の周りに隣接する8個の元画像の画素の、合計9個の画素についての予測値が、注目補正データのクラス情報に対応する27×9個の予測係数と、その注目補正データを中心とする5×5画素でなる予測値計算用ブロックとを用いて、適応処理が行われることにより算出される。
【0149】
具体的には、例えば、いま、図17に示した補正データ(注目補正データ)X33を中心とする3×3の補正データX22,X23,X24,X32,X33,X34,X42,X43,X44でなるクラス分類用ブロック242についてのクラス情報Cが、クラス分類回路265から出力され、また、そのクラス分類用ブロック242に対応する予測値計算用ブロック251として、現在フレームの補正データ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と、前フレームの予測タップ222としての対応する補正データXmv1と、後フレームの予測タップ232としての補正データXmv2でなる予測値計算用ブロック251が、予測値計算用ブロック化回路262から出力される。
【0150】
そして、クラス情報Cについての予測係数w1乃至w27と、予測値計算用ブロック251とを用い、式(1)に対応する次式にしたがって、予測値E[Y33(k)]が求められる。
【0151】
Figure 0004518727
【0152】
ステップS125では、以上のようにして、27×9個のクラスごとの予測係数を用いて、注目補正データを中心とする3×3個の原画像の画素の予測値が求められる。
【0153】
その後、ステップS126に進み、クラスごとの27×9個の予測係数は制御部116に供給され、3×3個の予測値は誤差算出部115に供給される。そして、ステップS121に戻り、以下同様の処理が、例えば、上述したように1フレーム単位で繰り返される。
【0154】
図26は、図6の誤差算出部115の構成例を示している。
【0155】
ブロック化回路351には、元の画像データ(縮小される前の原画像の画像データ)が供給されている。ブロック化回路351は、その画像データの中から、注目画素を補正した場合に影響のある範囲の全ての画素を抽出し、自乗誤差算出回路352に出力する。例えば、図17の画素X33の値が補正される場合、予測タップ数X9(9は、X33(1)乃至X33(9)に対応する)個の画素が自乗誤差算出回路352に出力される。自乗誤差算出回路352には、上述したように、ブロック化回路351から元の画像データのブロックが供給される他、ローカルデコード部114から予測値が、9個単位(3×3画素のブロック単位)で供給される。自乗誤差算出回路352は、原画像に対する、予測値の予測誤差としての自乗誤差を算出し、積算部355に供給する。
【0156】
即ち、自乗誤差算出回路は352は、演算器353および354で構成されている。演算器353は、ブロック化回路351からのブロック化された画像データそれぞれから、対応する予測値を減算し、その減算値を、演算器354に供給する。演算器354は、演算器353の出力(元の画像データと予測値との差分)を自乗し、積算部355に供給する。
【0157】
積算部355は、自乗誤差算出回路352から自乗誤差を受信すると、メモリ356の記憶値を読み出し、その記憶値と自乗誤差とを加算して、再び、メモリ356に供給して記憶させることを繰り返すことで、自乗誤差の積算値(誤差分散)を求める。さらに、積算部355は、所定量(例えば、1フレーム分など)についての自乗誤差の積算が終了すると、その積算値を、メモリ356から読み出し、誤差情報として、制御部116に供給する。メモリ356は、1フレームについての処理が終了するごとに、その記憶値をクリアしながら、積算部355の出力値を記憶する。
【0158】
次に、その動作について、図27のフローチャートを参照して説明する。誤差算出部115では、まず最初に、ステップS131において、メモリ356の記憶値が、例えば0にクリア(初期化)され、ステップS132に進み、ブロック化回路351において、画像データが、上述したようにブロック化され、その結果得られるブロックが、自乗誤差算出回路352に供給される。自乗誤差算出回路352では、ステップS133において、ブロック化回路351から供給されるブロックを構成する、元の画像(原画像)の画像データと、ローカルデコード部114から供給される予測値との自乗誤差が算出される。
【0159】
即ち、ステップS133では、演算器353において、ブロック化回路351より供給されたブロック化された画像データそれぞれから、対応する予測値が減算され、演算器354に供給される。演算器354は、演算器353の出力を自乗し、積算部355に供給する。
【0160】
積算部355は、自乗誤差算出回路352から自乗誤差を受信すると、ステップS134において、メモリ356の記憶値を読み出し、その記憶値と自乗誤差とを加算することで、自乗誤差の積算値を求める。積算部355において算出された自乗誤差の積算値は、メモリ356に供給され、前回の記憶値に上書きされることで記憶される。
【0161】
そして、積算部355では、ステップS135において、所定量としての、例えば、1フレーム分についての自乗誤差の積算が終了したかどうかが判定される。ステップS135において、1フレーム分についての自乗誤差の積算が終了していないと判定された場合、ステップS132に戻り、再び、ステップS132からの処理が繰り返される。また、ステップS135において、1フレーム分についての自乗誤差の積算が終了したと判定された場合、ステップS136に進み、積算部355は、メモリ356に記憶された1フレーム分についての自乗誤差の積算値を読み出し、誤差情報として、制御部116に出力する。そして、ステップS131に戻り、次のフレームについての原画像および予測値が供給されるのを待って、再び、ステップS131からの処理が繰り返される。
【0162】
従って、誤差算出部115では、元の画像データをYij(k)とするとともに、その予測値をE[Yij(k)]とするとき、次式にしたがった演算が行われることで、誤差情報Qが算出される。
【0163】
Q=Σ(Yij(k)−E[Yij(k)])2
但し、Σは、1フレーム分についてのサメーションを意味する。
【0164】
図28は、図6の制御部116の構成例を示している。
【0165】
予測係数メモリ361は、ローカルデコード部114から供給される予測係数を記憶する。補正データメモリ362は、補正部112から供給される補正データを記憶する。
【0166】
なお、補正データメモリ362は、補正部112において、圧縮データが新たに補正され、これにより、新たな補正データが供給された場合には、既に記憶している補正データ(前回の補正データ)に代えて、新たな補正データを記憶する。また、このように補正データが、新たなものに更新されるタイミングで、ローカルデコード部114からは、その新たな補正データに対応する、新たなクラスごとの予測係数のセットが出力されるが、予測係数メモリ361も、このように新たなクラスごとの予測係数が供給された場合には、既に記憶しているクラスごとの予測係数(前回のクラスごとの予測係数)に代えて、その新たなクラスごとの予測係数を記憶する。
【0167】
誤差情報メモリ363は、誤差算出部115から供給される誤差情報を記憶する。なお、誤差情報メモリ363は、誤差算出部115から、今回供給された誤差情報の他に、前回供給された誤差情報も記憶する(新たな誤差情報が供給されても、さらに新たな誤差情報が供給されるまでは、既に記憶している誤差情報を保持する)。また、誤差情報メモリ363は、新たなフレームについての処理が開始されるごとにクリアされる。
【0168】
比較回路364は、誤差情報メモリ363に記憶された今回の誤差情報と、予め設定されている所定の閾値εとを比較し、さらに、必要に応じて、今回の誤差情報と前回の誤差情報との比較も行う。比較回路364における比較結果は、制御回路365に供給される。
【0169】
制御回路365は、比較回路364における比較結果に基づいて、補正データメモリ362に記憶された補正データを、元の画像の符号化結果とすることの適正(最適)さを判定し、最適でないと認識(判定)した場合には、新たな補正データの出力を要求する制御信号を、補正部112(補正回路131)(図12)に供給する。また、制御回路365は、補正データメモリ362に記憶された補正データを、元の画像の符号化結果とすることが最適であると認識した場合には、予測係数メモリ361に記憶されているクラスごとの予測係数を読み出し、多重化部117に出力するとともに、補正データメモリ362に記憶されている補正データを読み出し、最適圧縮データとして、やはり多重化部117に供給する。さらに、この場合、制御回路365は、1フレームの画像についての符号化を終了した旨を表す制御信号を、補正部112に出力し、これにより、上述したように、補正部112に、次のフレームについての処理を開始させる。
【0170】
次に、図29を参照して、制御部116が実行する最適化処理について説明する。
【0171】
制御部116では、まず最初に、ステップS141において、誤差算出部115から誤差情報を受信したかどうかが、比較回路364によって判定され、誤差情報を受信していないと判定された場合、ステップS141に戻る。また、ステップS141において、誤差情報を受信したと判定された場合、即ち、誤差情報メモリ363に誤差情報が記憶された場合、ステップS142に進み、比較回路364において、誤差情報メモリ363に、いま記憶された誤差情報(今回の誤差情報)と、所定の閾値εとが比較され、いずれが大きいかが判定される。
【0172】
ステップS142において、今回の誤差情報が、所定の閾値ε以上であると判定された場合、比較回路364において、誤差情報メモリ363に記憶されている前回の誤差情報が読み出される。そして、比較回路364は、ステップS143において、前回の誤差情報と、今回の誤差情報とを比較し、いずれが大きいかを判定する。
【0173】
なお、1フレームについての処理が開始され、最初に誤差情報が供給された場合には、誤差情報メモリ363には、前回の誤差情報は記憶されていない。そこで、この場合には、制御部116においては、ステップS143以降の処理は行われず、制御回路365において、所定の初期アドレスを補正値ROM132に出力するように、補正回路131(図12)を制御する制御信号が出力される。
【0174】
ステップS143において、今回の誤差情報が、前回の誤差情報以下であると判定された場合、即ち、圧縮データの補正を行うことにより誤差情報が減少した場合、ステップS144に進み、制御回路365は、補正値Δを、前回と同様に変化させるように指示する制御信号を、補正回路131に出力し、ステップS141に戻る。また、ステップS143において、今回の誤差情報が、前回の誤差情報より大きいと判定された場合、即ち、圧縮データの補正を行うことにより誤差情報が増加した場合、ステップS145に進み、制御回路365は、補正値Δを、前回と逆に変化させるように指示する制御信号を、補正回路131に出力し、ステップS141に戻る。
【0175】
なお、減少し続けていた誤差情報が、あるタイミングで上昇するようになったときは、制御回路365は、補正値Δを、いままでの場合の、例えば1/2の大きさで、前回と逆に変化させるように指示する制御信号を出力する。
【0176】
そして、ステップS141乃至S145の処理を繰り返すことにより、誤差情報が減少し、これにより、ステップS142において、今回の誤差情報が、所定の閾値εより小さくなったと判定された場合、ステップS146に進み、制御回路365は、予測係数メモリ361に記憶されているクラスごとの予測係数を読み出すとともに、補正データメモリ362に記憶されている1フレームの補正データを、最適圧縮データとして読み出し、多重化部117に供給して、処理を終了する。
【0177】
その後は、次のフレームについての誤差情報が供給されるのを待って、再び、図29に示すフローチャートにしたがった処理が繰り返される。
【0178】
なお、補正回路131には、圧縮データの補正は、1フレームすべての圧縮データについて行わせるようにすることもできるし、その一部の圧縮データについてだけ行わせるようにすることもできる。一部の圧縮データについてだけ補正を行う場合においては、制御回路365に、例えば、誤差情報に対する影響の強い画素を検出させ、そのような画素についての圧縮データだけを補正するようにすることができる。誤差情報に対する影響の強い画素は、例えば、次のようにして検出することができる。即ち、まず最初に、例えば、間引き後に残った画素についての圧縮データをそのまま用いて処理を行うことにより、その誤差情報を得る。そして、間引き後に残った画素についての圧縮データを、1つずつ、同一の補正値Δだけ補正するような処理を行わせる制御信号を、制御回路365から補正回路131に出力し、その結果得られる誤差情報を、圧縮データをそのまま用いた場合に得られた誤差情報と比較し、その差が、所定値以上となる画素を、誤差情報に対する影響の強い画素として検出すれば良い。
【0179】
以上のように、誤差情報を所定の閾値εより小さくする(以下にする)まで、圧縮データの補正が繰り返され、誤差情報が所定の閾値εより小さくなったときにおける補正データが、画像の符号化結果として出力されるので、受信装置44(図2)においては、間引き後の画像を構成する画素の画素値を、元の画像を復元するのに最も適当な値にした補正データから、原画像と同一(ほぼ同一)の復号画像を得ることが可能となる。
【0180】
また、画像は、間引き処理により圧縮される他、ADRC処理およびクラス分類適応処理などによっても圧縮されるため、非常に高圧縮率の符号化データを得ることができる。なお、送信装置41における、以上のような符号化処理は、間引きによる圧縮処理と、クラス分類適応処理とを、いわば有機的に統合して用いることにより、高能率圧縮を実現するものであり、このことから統合符号化処理ということができる。
【0181】
図30は、図2の受信装置44のハードウェアの構成例を表している。
【0182】
受信機/再生装置446は、送信装置41が符号化データを記録した記録媒体42を再生したり、送信装置41が伝送路43を介して伝送した符号化データを受信する。I/F461は、受信機/再生装置466に対しての符号化データの受信処理を行うとともに、復号された画像データを図示せぬ装置に出力する処理を実行する。
【0183】
ROM(Read Only Memory)462は、IPL(Initial Program Loading)用のプログラムその他を記憶している。RAM(Random Access Memory)463は、外部記憶装置465に記録されているシステムプログラム(OS(Operating System))やアプリケーションプログラムを記憶したり、また、CPU(Central Processing Unit)464の動作上必要なデータを記憶する。CPU464は、ROM462に記憶されているIPLプログラムにしたがい、外部記憶装置465からシステムプログラムおよびアプリケーションプログラムを、RAM463に展開し、そのシステムプログラムの制御の下、アプリケーションプログラムを実行することで、I/F461から供給される符号化データについての、後述するような復号処理を行う。
【0184】
外部記憶装置465は、例えば、磁気ディスク471、光ディスク472、光磁気ディスク473、または半導体メモリ474などでなり、上述したように、CPU464が実行するシステムプログラムやアプリケーションプログラムを記憶している他、CPU464の動作上必要なデータも記憶している。
【0185】
なお、I/F461,ROM462,RAM463,CPU464、および外部記憶装置465は、相互にバスを介して接続されている。
【0186】
以上のように構成される受信装置44においては、I/F461に受信機/再生装置466から符号化データが供給されると、その符号化データは、CPU464に供給される。CPU464は、符号化データを復号し、その結果得られる復号データを、I/F461に供給する。I/F461は、復号データ(画像データ)を受信すると、それを、図示せぬディスプレイ等に出力し、表示させる。
【0187】
図31は、図30の受信装置44の受信機/再生装置571を除く部分の機能的な構成例を示している。
【0188】
受信機/再生装置571においては、記録媒体42に記録された符号化データが再生されるか、または伝送路43を介して伝送されてくる符号化データ(処理対象データ)が受信されるか、分離部572に供給される。分離部572では、符号化データから、補正データ(最適圧縮データ)とクラスごとの予測係数とが抽出される。補正データは、クラス分類用ブロック化回路573、動き推定部577、および予測値計算用ブロック化回路578に供給され、クラスごとの予測係数は、予測回路576に供給されて、その内蔵するメモリ576Aに記憶される。
【0189】
クラス分類用ブロック化回路573、ADRC処理回路574、クラス分類回路575、予測回路576、または予測値計算用ブロック化回路578は、図16におけるクラス分類用ブロック化回路261、ADRC処理回路264、クラス分類回路265、予測回路267、または予測値計算用ブロック化回路262と、それぞれ同様に構成されており、また、動き推定部577は、図14(図6)の動き推定部113と同様に構成されている。従って、これらのブロックにおいては、図14と図16における場合と同様の処理が行われ、これにより、予測値計算用ブロック化回路578からは予測値計算用ブロックが出力され、また、クラス分類回路575からはクラス情報が出力される。これらの予測値計算用ブロックおよびクラス情報は、予測回路576に供給される。
【0190】
予測回路576は、クラス分類回路575から供給されるクラス情報に対応した27×9個の予測係数を、メモリ576Aから読み出し、その27×9個の予測係数と、予測値計算用ブロック化回路578から供給される5×5画素の予測値計算用ブロック251を構成する補正データとを用い、式(1)にしたがって、原画像の3×3画素の予測値を算出し、そのような予測値で構成される画像を、復号画像として、例えば、1フレーム単位で出力する。この復号画像は、上述したように、元の画像とほぼ同一の画像となる。
【0191】
次に、図31の受信装置44の復号処理について、図32のフローチャートを参照して説明する。
【0192】
最初に、ステップS161において、分離部572は、受信機/再生装置571より供給された符号化データから、補正データと予測係数を分離し、補正データをクラス分類用ブロック化回路573、動き推定部577、および予測値計算用ブロック化回路578に供給するとともに、予測係数を予測回路576のメモリ576Aに供給する。
【0193】
ステップS162において、クラス分類用ブロック化回路573は、クラス分類用ブロック化処理を行い、クラス分類用ブロックをADRC処理回路574に供給する。
【0194】
ステップS163において、ADRC処理回路574は、クラス分類用ブロック化回路573より供給されたクラス分類用ブロックの補正データを1ビットADRC処理し、クラス分類回路575に出力する。
【0195】
クラス分類回路575は、ステップS164において、ADRC処理回路574より供給されたデータに基づいて、クラス分類処理を行い、クラスコードを予測回路576に出力する。
【0196】
ステップS165において、動き推定部577は、分離部572より供給された補正データに基づいて、動き推定処理を行い、前フレーム動きベクトルと後フレーム動きベクトルを予測値計算用ブロック化回路578に供給する。
【0197】
予測値計算用ブロック化回路578は、ステップS166において、動き推定部577より供給される前フレーム動きベクトルと後フレーム動きベクトルに基づいて、分離部572より供給される補正データの中から、予測値計算用ブロックを構成する補正データを抽出する。
【0198】
ステップS167において、予測回路576は、クラス分類回路575から供給されるクラス情報に対応した27×9個の予測係数をメモリ576Aから読み出し、その27×9個の予測係数と、予測値計算用ブロック化回路578から供給される27個の予測値計算用ブロックを構成する補正データとを用い、式(1)に従って、原画像の3×3画素の予測値を算出する。
【0199】
その後、ステップS168に進み、予測回路576は、ステップS167の処理で算出した予測値を復号結果として出力する。
【0200】
なお、受信側においては、図31に示すような受信装置44でなくても、間引きされた画像を単純な補間により復号する装置により、予測係数を用いずに、復号画像を得ることができる。但し、この場合に得られる復号画像は、画質(解像度)が劣化したものとなる。
【0201】
図33は、図16の予測係数ROM266に記憶されている予測係数を得るための学習を行う画像処理装置の構成例を示している。
【0202】
この画像処理装置には、あらゆる画像に適応可能な予測係数を得るための学習用の画像データ(学習用画像)が供給される。図14に示される動き推定部113と同様に構成される動き推定部590は、入力された画像データから、前フレーム動きベクトルと後フレーム動きベクトルを検出し、学習用ブロック化回路591に供給する。
【0203】
学習用ブロック化回路591は、動き推定部590から供給される動きベクトルに基づいて、画像データから学習用ブロックを抽出し、ADRC処理回路593と学習データメモリ596に供給する。ADRC処理回路593は、学習用ブロック化回路591より供給される学習用ブロックを1ビットADRC処理し、処理した結果をクラス分類回路594に出力する。
【0204】
クラス分類回路594は、ADRC処理回路593より供給されたデータをクラス分類し、得られた結果をスイッチ595の端子aを介して学習データメモリ596のアドレス端子に供給する。
【0205】
スイッチ595はまた、端子bからカウンタ597の出力を学習データメモリ596のアドレス端子に供給する。
【0206】
教師用ブロック化回路592は、画像データから教師用ブロックを抽出し、教師データメモリ598に出力する。教師データメモリ598のアドレス端子には、スイッチ595により、端子aから取り込まれたクラス分類回路594の出力、または端子bから取り込まれたカウンタ597の出力が供給されている。
【0207】
演算回路599は、学習データメモリ596の出力と、教師データメモリ598の出力とを演算し、演算して得られた結果をメモリ600に供給する。メモリ600のアドレス端子には、カウンタ597の出力が供給されている。
【0208】
次に、図34のフローチャートを参照して、図33の画像処理装置の学習処理について説明する。
【0209】
ステップS181において、動き推定部590は、入力された画像データから前フレーム動きベクトルと後フレーム動きベクトルを抽出し、学習量ブロック化回路591に出力する。
【0210】
学習用ブロック化回路591は、ステップS182において、入力される画像データから、例えば、図17に黒い円形の印で示した位置関係の25画素(5×5画素)、並びに、図19に示される前フレームの予測タップ222と後フレームの予測タップ232に対応する2個の画素を抽出し、この27画素で構成されるブロックを、学習用ブロックとして、ADRC処理593および学習データメモリ596に供給する。
【0211】
また、教師用ブロック化回路592は、ステップS183において、入力される画像データから、例えば、3×3個の9画素で構成されるブロックを生成し、この9画素で構成されるブロックを、教師用ブロックとして、教師データメモリ598に供給する。
【0212】
なお、学習用ブロック化回路591において、例えば、図17と図19に黒い円形の印で示した位置関係の27画素を含む学習用ブロックが生成されるとき、教師用ブロック化回路592では、図17に四角形で囲んで示される3×3画素の教師用ブロックが生成される。
【0213】
ADRC処理回路593は、ステップS184において、学習用ブロックを構成する27画素から、例えば、その中心の9画素(3×3画素)を抽出し、この9画素でなるブロックに対して、図16のADRC処理回路264における場合と同様に、1ビットのADRC処理を施す。ADRC処理の施された3×3画素のブロックは、クラス分類回路594に供給される。クラス分類回路594は、ステップS185において、図16のクラス分類回路265における場合と同様に、ADRC処理回路593からのブロックをクラス分類処理し、それにより得られるクラス情報を、スイッチ595の端子aを介して、学習データメモリ596および教師データメモリ598に供給する。
【0214】
学習データメモリ596または教師データメモリ598は、それぞれステップS186,S187において、そこに供給されるクラス情報に対応するアドレスに、学習用ブロック化回路591からの学習用ブロックまたは教師用ブロック化回路592からの教師用ブロックを、それぞれ記憶する。
【0215】
従って、学習データメモリ596において、例えば、図17と図19に黒い円形の印で示した27(=5×5+2)個の画素でなるブロックが学習用ブロックとして、あるアドレスに記憶されたとすると、教師データメモリ598においては、そのアドレスと同一のアドレスに、図17において、四角形で囲んで示す3×3画素のブロックが、教師用ブロックとして記憶される。
【0216】
以下、同様の処理が、あらかじめ用意されたすべての学習用の画像について繰り返され、これにより、学習用ブロックと、図16のローカルデコード部114において、その学習用ブロックを構成する27画素と同一の位置関係を有する27個の補正データで構成される予測値計算用ブロックを用いて予測値が求められる9画素で構成される教師用ブロックとが、学習用データメモリ596と、教師用データメモリ598とにおいて、同一のアドレスに記憶される。
【0217】
なお、学習用データメモリ596と教師用データメモリ598においては、同一アドレスに複数の情報を記憶することができるようになされており、これにより、同一アドレスには、複数の学習用ブロックと教師用ブロックを記憶することができるようになされている。
【0218】
学習用画像すべてについての学習用ブロックと教師用ブロックとが、学習データメモリ596と教師データメモリ598に記憶されると、ステップS188において、端子aを選択していたスイッチ595が、端子bに切り替わり、これにより、カウンタ597の出力が、アドレスとして、学習データメモリ596および教師データメモリ598に供給される。カウンタ597は、所定のクロックをカウントし、そのカウント値を出力しており、学習データメモリ596または教師データメモリ598では、そのカウント値に対応するアドレスに記憶された学習用ブロックまたは教師用ブロックが読み出され、演算回路599に供給される。
【0219】
従って、演算回路599には、カウンタ597のカウント値に対応するクラスの学習用ブロックのセットと、教師用ブロックのセットとが供給される。
【0220】
演算回路599は、あるクラスについての学習用ブロックのセットと、教師用ブロックのセットとを受信すると、それらを用いて、最小自乗法により、誤差を最小とする予測係数を算出する。
【0221】
即ち、例えば、いま、学習用ブロックを構成する画素の画素値を、x1,x2,x3,・・・とし、求めるべき予測係数をw1,w2,w3,・・・とするとき、これらの線形1次結合により、教師用ブロックを構成する、ある画素の画素値yを求めるには、予測係数w1,w2,w3,・・・は、次式を満たす必要がある。
【0222】
y=w11+w22+w33+・・・
【0223】
そこで、演算回路599では、同一クラスの学習用ブロックと、対応する教師用ブロックとから、真値yに対する、予測値w11+w22+w33+・・・の自乗誤差を最小とする予測係数w1,w2,w3,・・・が、上述した式(7)に示す正規方程式をたてて解くことにより求められる。従って、この処理をクラスごとに行うことにより、各クラスごとに、27×9個の予測係数が生成される。
【0224】
演算回路599において求められた、クラスごとの予測係数は、ステップS189において、メモリ600に供給される。メモリ600には、演算回路599からの予測係数の他、カウンタ597からカウント値が供給されており、これにより、メモリ600においては、演算回路599からの予測係数が、カウンタ597からのカウント値に対応するアドレスに記憶される。
【0225】
以上のようにして、メモリ600には、各クラスに対応するアドレスに、そのクラスのブロックの3×3画素を予測するのに最適な27×9個の予測係数が記憶される。
【0226】
図16の予測係数ROM266には、以上のようにしてメモリ600に記憶されたクラスごとの予測係数が記憶される。
【0227】
なお、図19の例においては、現在フレーム201の1フレーム前の前フレーム202と、1フレーム後の後フレーム203からも予測タップを抽出するようにしたが、例えば、図35に示されるように、前フレーム202よりさらに1フレーム前の前フレーム204において、注目補正データ451に対して動きベクトル453に対応する位置の補正データを予測タップ452として抽出し、さらに、後フレーム203よりさらに1フレームだけ後の後フレーム205における注目対応補正データ461に対して動きベクトル463に対応する位置の補正データで構成される予測タップ462を抽出し、それらも予測値計算用ブロックの補正データとすることができる。
【0228】
また、以上においては、現在フレームより前のフレームと後のフレームの両方から予測タップを抽出するようにしたが、少なくとも一方からだけ予測タップを抽出するようにしてもよい。
【0229】
但し、時間的により広い範囲から予測タップを抽出するようにした方が、動きが速い動画像が原画像である場合においても、より、原画像に近い画像を復号することが可能となる。
【0230】
以上、本発明を適用した画像処理装置について説明したが、このような画像処理装置は、例えば、NTSC方式などの標準方式のテレビジョン信号を符号化する場合の他、データ量の多い、いわゆるハイビジョン方式のテレビジョン信号などを符号化する場合に、特に有効である。
【0231】
なお、本実施の形態においては、誤差情報として、誤差の自乗和を用いるようにしたが、誤差情報としては、その他、例えば、誤差の絶対値和や、その3乗以上したものの和などを用いるようにすることが可能である。いずれを誤差情報として用いるかは、例えば、その収束性などに基づいて決定するようにすることが可能である。
【0232】
また、本実施の形態では、誤差情報が、所定の閾値ε以下になるまで、圧縮データの補正を繰り返し行うようする場合において、圧縮データの補正の回数に、上限を設けるようにすることも可能である。即ち、例えば、リアルタイムで画像の伝送を行う場合などにおいては、1フレームについての処理が、所定の期間内に終了することが必要であるが、誤差情報は、そのような所定の期間内に収束するとは限らない。そこで、補正の回数に上限を設けることにより、所定の期間内に、誤差情報が閾値ε以下に収束しないときは、そのフレームについての処理を終了し(そのときにおける補正データを、符号化結果とし)、次のフレームについての処理を開始するようにすることが可能である。
【0233】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0234】
この記録媒体は、図5と図30に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク71,471(フロッピディスクを含む)、光ディスク72,472(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク73,473(MD(Mini-Disk)を含む)、もしくは半導体メモリ74,474などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM62,462や、ハードディスクなどで構成される。
【0235】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0236】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0237】
【発明の効果】
本発明によれば、より適正に補正された補正データを得ることができ、より原画像に近い復号画像を得ることが可能となる。
【図面の簡単な説明】
【図1】従来の画像圧縮処理を行う装置の構成例を示すブロック図である。
【図2】本発明を適用した画像処理装置の一実施の形態の構成を示すブロック図である。
【図3】図2の送信装置における圧縮処理を説明する図である。
【図4】図2における受信装置の復号処理を説明する図である。
【図5】図2の送信装置の構成例を示すブロック図である。
【図6】図2の送信装置の機能的構成例を示すブロック図である。
【図7】図6の送信装置の動作を説明するフローチャートである。
【図8】単純間引き処理を説明するフローチャートである。
【図9】単純間引き処理を説明する図である。
【図10】画像平均処理を説明するフローチャートである。
【図11】画像平均処理を説明する図である。
【図12】図6の補正部の構成例を示すブロック図である。
【図13】図12の補正部の動作を説明するフローチャートである。
【図14】図6の送信装置の動き推定部の構成例を示すブロック図である。
【図15】図14の動き推定部の処理を説明するフローチャートである。
【図16】図6のローカルデコード部の構成例を示すブロック図である。
【図17】クラス分類用ブロックを説明する図である。
【図18】クラス分類用ブロックの他の例を説明する図である。
【図19】予測値計算用ブロックを説明する図である。
【図20】予測値計算用ブロックを説明する他の図である。
【図21】クラス分類処理を説明するための図である。
【図22】クラス分類処理を説明するための図である。
【図23】ADRC処理を説明するための図である。
【図24】ADRC処理を説明するための図である。
【図25】図16のローカルデコード部の動作を説明するフローチャートである。
【図26】図6の誤差算出部の構成例を示すブロック図である。
【図27】図26の誤差算出部の動作を説明するフローチャートである。
【図28】図6の制御部の構成例を示すブロック図である。
【図29】図28の制御部の動作を説明するフローチャートである。
【図30】図2の受信装置の構成例を示すブロック図である。
【図31】図2の受信装置の機能的構成例を示すブロック図である。
【図32】図31の受信装置の動作を説明するフローチャートである。
【図33】図16の予測係数ROMに記憶されている予測係数を算出する画像処理装置の一実施の形態の構成を示すブロック図である。
【図34】図33の画像処理装置の動作を説明するフローチャートである。
【図35】予測タップを説明する図である。
【符号の説明】
41 送信装置, 42 記録媒体, 43 伝送路, 44 受信装置, 111 縮小画像生成部, 112 補正部, 113 動き推定部, 114ローカルデコード部, 115 誤差算出部, 116 制御部, 117 多重化部, 131 補正回路, 132 補正値ROM, 151,152,153 フレームメモリ, 154,155 動きベクトル検出部, 261 クラス分類用ブロック化回路, 262 予測値計算用ブロック化回路, 263 クラス分類適応処理回路, 264 ADRC処理回路, 265 クラス分類回路, 266 予測係数ROM, 267 予測回路, 351 ブロック化回路, 352 自乗誤差算出回路, 353,354 演算器, 355 積算部, 356 メモリ, 361 予測係数メモリ, 362 補正データメモリ, 363 誤差情報メモリ, 364 比較回路, 365 制御回路, 572 分離部, 573 クラス分類用ブロック化回路, 574 ADRC処理回路, 575 クラス分類回路, 576 予測回路, 576A メモリ, 577 動き推定部, 578 予測値計算用ブロック化回路, 590 動き推定部, 591 学習用ブロック化回路, 592 教師用ブロック化回路, 593 ADRC処理回路, 594 クラス分類回路, 595スイッチ, 596 学習データメモリ, 597 カウンタ, 598 教師データメモリ, 599 演算回路, 600 メモリ[0001]
BACKGROUND OF THE INVENTION
  The present inventionImage encoding apparatus and method, recording medium, and programIn particular, when an image is encoded by thinning, for example, so that a decoded image almost identical to the original image can be obtained, an image closer to the original image can be encoded and decoded.Image encoding apparatus and method, recording medium, and programAbout.
[0002]
[Prior art]
Various image encoding methods have been proposed in the past, and one of them is, for example, a method of compressing and encoding an image by subsampling its pixels, for example. .
[0003]
However, when the thinned and compressed image is simply expanded by interpolation, the resolution of the resulting decoded image deteriorates.
[0004]
As a cause of the degradation of the resolution of the decoded image in this way, firstly, the thinned image does not contain the high frequency component contained in the original image, and secondly, the image after thinning is configured. It is conceivable that the pixel value of the pixel to be used is not necessarily suitable for restoring the original image.
[0005]
Therefore, the present applicant has previously proposed an image encoding device as shown in FIG. 1 as Japanese Patent Application No. 9-208483, for example.
[0006]
In the example of FIG. 1, the reduced image creation unit 11 generates reduced image data by selecting (thinning out) only one pixel from nine pixels, for example, as input image data. The correction unit 12 corrects the reduced image data supplied from the reduced image creating unit 11 based on the control signal supplied from the control unit 15 to generate correction data. The local decoding unit 13 decodes the correction data generated by the correction unit 12 using the class classification adaptation process, and generates a prediction value for predicting the original image. The error calculation unit 14 compares the predicted value calculated by the local decoding unit 13 with the input image data, calculates the error as a prediction error, and supplies it to the control unit 15.
[0007]
The control unit 15 generates a control signal based on the prediction error calculated by the error calculation unit 14 and supplies the control signal to the correction unit 12. The correction unit 12 corrects the reduced image data based on the control signal and supplies the reduced image data to the local decoding unit 13.
[0008]
When the prediction error becomes equal to or less than a predetermined value by repeatedly executing the above processing, the control unit 15 sets the correction data output from the correction unit 12 at that time as the optimum compressed data, and then performs local decoding. This is supplied to the multiplexing unit 16 together with the prediction coefficient used in the prediction process by the unit 13, multiplexed, and output as encoded data.
[0009]
[Problems to be solved by the invention]
However, in the previous proposal, since the correction data used for the prediction process is the correction data in the same frame in the local decoding unit 13, in particular, an image with motion is accurately closer to the original image. There was a problem that it was difficult to decrypt as.
[0010]
The present invention has been made in view of such a situation, and makes it possible to decode an image close to the original image more accurately.
[0011]
[Means for Solving the Problems]
  The image encoding apparatus of the present invention compresses an original image by reducing the number of pixels to generate reduced image data, and the pixel value of the reduced image data generated by the compression unitOr, correct the pixel value of the correction data obtained by correcting the pixel value of the reduced image data,Correction dataGenerateCorrection means, correction data generated by the correction means, first correction data corresponding to the first original image of the original images, and a second temporally preceding the first original image. Movement between the second correction data corresponding to the original image, or the firstCorrection dataAnd a motion estimation means for generating a motion vector by estimating at least one of motion between the first correction image and the third correction data corresponding to the third original image temporally after the first original image, One of the pixels constituting the correction data is set as the target pixel, and the pixel at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the second correction data, or the third correction data Extraction means for extracting at least one pixel of the pixel moved from the position corresponding to the target pixel by the motion vector of the target pixel, and at least the target pixel as prediction correction data, and extracting as prediction correction data by the extraction means The prediction coefficient, which is a coefficient of the prediction formula for predicting the pixel value of the selected pixel and the prediction value of the pixel value of the original image, is substituted into the prediction formula, and the first original image A calculation unit that calculates a predicted value of a pixel value in a region in the vicinity of the target pixel including the target pixel, and a prediction that calculates a prediction error of the predicted image that includes the predicted value calculated by the calculation unit with respect to the first original image Generated by the correction means by comparing the error calculation means with a predetermined threshold of the prediction error calculated by the prediction error calculation means, or by comparing the number of times the correction data was generatedFirstA determination unit that determines whether the correction data is appropriate as an encoding result of the first original image;FirstWhen it is determined that the correction data is appropriate as the encoding result of the first original image,FirstOutput means for outputting correction data as optimum compressed data,Until the determination means determines that the first correction data is appropriate as the encoding result of the first original image,The correction means adjusts the direction and amount for correcting the pixel value so that the prediction error is reduced.FirstGenerate correction dataThe motion estimation means estimates at least one of a motion between the first correction data and the second correction data or a motion between the first correction data and the third correction data, A vector is generated, the extraction unit extracts prediction correction data, the calculation unit calculates a prediction value of a pixel value in a region near the target pixel, and the prediction error calculation unit repeats a process of calculating a prediction error.It is characterized by that.
[0012]
The motion estimation unit includes a correction data holding unit that holds the first correction data, the second correction data, and the third correction data generated by the correction unit, and a correction data holding unit that holds the first correction data. A first calculation means for calculating the sum of absolute differences between the correction data and the second correction data, and between the first correction data and the third correction data held by the correction data holding means. A second calculating means for calculating an absolute difference sum; a first minimum value detecting means for detecting a minimum value of the absolute difference sum calculated by the first calculating means; and an absolute value calculated by the second calculating means. Second minimum value detecting means for detecting the minimum value of the difference sum can be provided.
[0013]
  The predicting means calculates the correction dataPixel valueClassifying means for classifying into a predetermined class according toPer classA prediction coefficient holding means for holding a prediction coefficient and outputting a prediction coefficient corresponding to the class classified by the class classification means;The calculation means calculates the prediction value by substituting the pixel value of the pixel extracted as prediction correction data by the extraction means and the prediction coefficient output by the prediction coefficient holding means into the prediction formula. Dobe able to.
[0014]
  The output means includesThe correction data to be output corresponds to the classified classPrediction coefficients can be further output.
[0015]
  The image encoding method of the present invention compresses an original image by reducing the number of pixels to generate reduced image data, and the pixel value of the reduced image data generated by the processing of the compression stepOr, correct the pixel value of the correction data obtained by correcting the pixel value of the reduced image data,Correction dataGenerateA correction step and correction data generated by the processing of the correction step, the first correction data corresponding to the first original image of the original images, and the first temporally preceding the first original image. Movement between the second correction data corresponding to the two original images, or the firstCorrection dataA motion estimation step of estimating a motion vector by estimating at least one of motion between the first correction image and the third correction data corresponding to the third original image temporally after the first original image, One of the pixels constituting the correction data is set as the target pixel, and the pixel at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the second correction data, or the third correction data Extraction step for extracting at least one pixel of the pixel moved by the motion vector of the target pixel from the position corresponding to the target pixel, and at least the target pixel as prediction correction data, and prediction correction data by the processing of the extraction step Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting a pixel value of a pixel extracted as a pixel value and a prediction value of a pixel value of an original image into the prediction formula A first original image of a prediction image comprising a calculation step of calculating a prediction value of a pixel value of a region in the vicinity of the target pixel including the target pixel in the first original image, and a prediction value calculated by the processing of the calculation step Comparing the prediction error calculation step for calculating the prediction error with the predetermined threshold value of the prediction error calculated by the processing of the prediction error calculation step, or the predetermined number of times of generating the correction data By the determination step for determining whether or not the correction data generated by the processing of the correction step is appropriate as the encoding result of the first original image, and the processing of the determination step,FirstWhen it is determined that the correction data is appropriate as the encoding result of the first original image,FirstAn output step of outputting the correction data as optimum compressed data,Until it is determined by the process of the determination step that the first correction data is appropriate as the encoding result of the first original image,While adjusting the direction and amount to correct the pixel value so that the prediction error is reduced by the correction step processFirstGenerate correction dataThen, at least one of the movement between the first correction data and the second correction data or the movement between the first correction data and the third correction data is estimated by the process of the movement estimation step. Then, the motion vector is generated, the prediction correction data is extracted by the processing of the extraction step, the prediction value of the pixel value in the region near the target pixel is calculated by the processing of the calculation step, and the processing of the prediction error calculation step is performed, Repeat the process of calculating the prediction errorIt is characterized by that.
[0016]
  The program of the recording medium of the present invention isA compression step that compresses the original image by reducing the number of pixels and generates reduced image data, and a pixel value of the reduced image data generated by the processing of the compression stepOr, correct the pixel value of the correction data obtained by correcting the pixel value of the reduced image data,Correction dataGenerateA correction step and correction data generated by the processing of the correction step, the first correction data corresponding to the first original image of the original images, and the first temporally preceding the first original image. Movement between the second correction data corresponding to the two original images, or the firstCorrection dataA motion estimation step of estimating a motion vector by estimating at least one of motion between the first correction image and the third correction data corresponding to the third original image temporally after the first original image, One of the pixels constituting the correction data is set as the target pixel, and the pixel at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the second correction data, or the third correction data Extraction step for extracting at least one pixel of the pixel moved by the motion vector of the target pixel from the position corresponding to the target pixel, and at least the target pixel as prediction correction data, and prediction correction data by the processing of the extraction step Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting a pixel value of a pixel extracted as a pixel value and a prediction value of a pixel value of an original image into the prediction formula A first original image of a prediction image comprising a calculation step of calculating a prediction value of a pixel value of a region in the vicinity of the target pixel including the target pixel in the first original image, and a prediction value calculated by the processing of the calculation step Comparing the prediction error calculation step for calculating the prediction error with the predetermined threshold value of the prediction error calculated by the processing of the prediction error calculation step, or the predetermined number of times of generating the correction data By the determination step for determining whether or not the correction data generated by the processing of the correction step is appropriate as the encoding result of the first original image, and the processing of the determination step,FirstWhen it is determined that the correction data is appropriate as the encoding result of the first original image,FirstAn output step of outputting the correction data as optimum compressed data,Until it is determined by the process of the determination step that the first correction data is appropriate as the encoding result of the first original image,While adjusting the direction and amount to correct the pixel value so that the prediction error is reduced by the correction step processFirstGenerate correction dataThen, at least one of the movement between the first correction data and the second correction data or the movement between the first correction data and the third correction data is estimated by the process of the movement estimation step. Then, the motion vector is generated, the prediction correction data is extracted by the processing of the extraction step, the prediction value of the pixel value in the region near the target pixel is calculated by the processing of the calculation step, and the processing of the prediction error calculation step is performed, Repeat the process of calculating the prediction errorIt is characterized by that.
[0017]
  The program of the present inventionA compression step that compresses the original image by reducing the number of pixels and generates reduced image data, and a pixel value of the reduced image data generated by the processing of the compression stepOr, correct the pixel value of the correction data obtained by correcting the pixel value of the reduced image data,Correction dataGenerateA correction step and correction data generated by the processing of the correction step, the first correction data corresponding to the first original image of the original images, and the first temporally preceding the first original image. Movement between the second correction data corresponding to the two original images, or the firstCorrection dataA motion estimation step of estimating a motion vector by estimating at least one of motion between the first correction image and the third correction data corresponding to the third original image temporally after the first original image, One of the pixels constituting the correction data is set as the target pixel, and the pixel at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the second correction data, or the third correction data Extraction step for extracting at least one pixel of the pixel moved by the motion vector of the target pixel from the position corresponding to the target pixel, and at least the target pixel as prediction correction data, and prediction correction data by the processing of the extraction step Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting a pixel value of a pixel extracted as a pixel value and a prediction value of a pixel value of an original image into the prediction formula A first original image of a prediction image comprising a calculation step of calculating a prediction value of a pixel value of a region in the vicinity of the target pixel including the target pixel in the first original image, and a prediction value calculated by the processing of the calculation step Comparing the prediction error calculation step for calculating the prediction error with the predetermined threshold value of the prediction error calculated by the processing of the prediction error calculation step, or the predetermined number of times of generating the correction data By the determination step for determining whether or not the correction data generated by the processing of the correction step is appropriate as the encoding result of the first original image, and the processing of the determination step,FirstWhen it is determined that the correction data is appropriate as the encoding result of the first original image,FirstAn output step of outputting the correction data as optimum compressed data,Until it is determined by the process of the determination step that the first correction data is appropriate as the encoding result of the first original image,While adjusting the direction and amount to correct the pixel value so that the prediction error is reduced by the correction step processFirstGenerate correction dataThen, at least one of the movement between the first correction data and the second correction data or the movement between the first correction data and the third correction data is estimated by the process of the movement estimation step. Then, the motion vector is generated, the prediction correction data is extracted by the processing of the extraction step, the prediction value of the pixel value in the region near the target pixel is calculated by the processing of the calculation step, and the processing of the prediction error calculation step is performed, Repeat the process of calculating the prediction errorThe processing is executed by a computer.
[0023]
  Image coding apparatus and method of the present invention,In the recording medium and the program, the first correction data corresponding to the first original image and the second correction data corresponding to the second original image temporally prior to the first original image, or the second The motion of the first original image is estimated using at least one of the third correction data corresponding to the third original image that is temporally later than the first original image, and based on the motion vector, One original image is predicted.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 2 shows a configuration of an embodiment of an image processing apparatus to which the present invention is applied.
[0026]
The transmitting device 41 is supplied with digitized image data. The transmission device 41 compresses and encodes the input image data by thinning it out to 1/9 (reducing the number of pixels) as shown in FIG. 3, for example, and encodes the resulting encoded data. Further, prediction is performed by class classification adaptive processing, and recording is performed on a recording medium 42 including, for example, an optical disk, a magneto-optical disk, a magnetic tape, a phase change disk, or the like. Transmission is performed via a network, the Internet, or other transmission paths 43.
[0027]
The receiving device 44 reproduces the encoded data recorded on the recording medium 42 or receives the encoded data transmitted via the transmission path 43. The encoded data is decompressed and decoded based on the class classification adaptation process as shown in FIG. Then, the decoded image obtained as a result is supplied to a display (not shown) and displayed.
[0028]
Note that the image processing apparatus as described above is, for example, an optical disk apparatus, a magneto-optical disk apparatus, a magnetic tape apparatus, or other apparatus that records or reproduces an image, or, for example, a videophone apparatus or a television broadcast. The present invention is applied to a system, a CATV system, and other devices that transmit images. As will be described later, since the amount of encoded data output from the transmission device 41 is small, the image processing device in FIG. 2 has a low transmission rate, such as a mobile phone or other portable terminal that is convenient for movement. It is also applicable to.
[0029]
FIG. 5 shows a hardware configuration example of the transmission device 41 of FIG.
[0030]
An I / F (InterFace) 61 performs reception processing of image data supplied from the outside and transmission processing of encoded data to the transmitter / recording device 66. A ROM (Read Only Memory) 62 stores a program for IPL (Initial Program Loading) and others. A RAM (Random Access Memory) 63 stores system programs (OS (Operating System)) and application programs recorded in the external storage device 65, and data necessary for the operation of a CPU (Central Processing Unit) 64. Remember. In accordance with the IPL program stored in the ROM 62, the CPU 64 expands the system program and the application program from the external storage device 65 to the RAM 63, and executes the application program under the control of the system program. The image data supplied from the image data is encoded as described later.
[0031]
The external storage device 65 includes, for example, a magnetic disk 71, an optical disk 72, a magneto-optical disk 73, or a semiconductor memory 74, and stores the system program and application program executed by the CPU 64 as described above. Also stores data necessary for operation. The transmitter / recording device 66 records the encoded data supplied from the I / F 61 on the recording medium 42 or transmits it via the transmission path 43.
[0032]
The I / F 61, the ROM 62, the RAM 63, the CPU 64, and the external storage device 65 are connected to each other via a bus.
[0033]
In the transmission apparatus 41 configured as described above, when image data is supplied to the I / F 61, the image data is supplied to the CPU 64. The CPU 64 encodes the image data and supplies the encoded data obtained as a result to the I / F 61. When the I / F 61 receives the encoded data, the I / F 61 supplies it to the transmitter / recording device 66. The transmitter / recording device 66 records the encoded data from the I / F 61 on the recording medium 42 or transmits it via the transmission path 43.
[0034]
FIG. 6 shows a functional configuration example of a portion of the transmission apparatus 41 of FIG. 5 excluding the transmitter / recording apparatus 66.
[0035]
Image data to be encoded is supplied to the reduced image creation unit 111 and the error calculation unit 115. The reduced image generation unit 111 compresses the image data by, for example, simply thinning out the pixels, and outputs the compressed data obtained as a result (reduced image data after the thinning out) to the correction unit 112. . The correction unit 112 corrects the compressed data according to the control signal from the control unit 116. The correction data obtained as a result of correction in the correction unit 112 is supplied to the motion estimation unit 113, the local decoding unit 114, and the control unit 116. The motion estimation unit 113 estimates the motion of the image from the image data and the correction data, and outputs a motion vector to the local decoding unit 114.
[0036]
The local decoding unit 114 predicts the original image based on the correction data from the correction unit 112 and the motion vector from the motion estimation unit 113, and supplies the predicted value to the error calculation unit 115. Note that the local decoding unit 114 calculates a prediction value by linear combination of the correction data and the prediction coefficient, as will be described later. Then, the local decoding unit 114 supplies the prediction value to the error calculation unit 115 and also supplies the prediction coefficient for each class obtained at that time to the control unit 116.
[0037]
The error calculation unit 115 calculates the prediction error of the prediction value from the local decoding unit 114 for the original image data (original image) input thereto. This prediction error is supplied to the control unit 116 as error information.
[0038]
Based on the error information from the error calculation unit 115, the control unit 116 determines the appropriateness of using the correction data output from the correction unit 112 as the encoding result of the original image. If the control unit 116 determines that the correction data output from the correction unit 112 is not appropriate as the encoding result of the original image, the control unit 116 controls the correction unit 112 and further corrects the compressed data. And new correction data obtained as a result is output. In addition, when the control unit 116 determines that the correction data output from the correction unit 112 is appropriate as the encoding result of the original image, the control unit 116 uses the correction data supplied from the correction unit 112 as the optimum data. The compressed data (hereinafter referred to as optimum compressed data as appropriate) is supplied to the multiplexing unit 117, and the prediction coefficient for each class supplied from the local decoding unit 114 is supplied to the multiplexing unit 117.
[0039]
The multiplexing unit 117 multiplexes the optimum compressed data (correction data) from the control unit 116 and the prediction coefficient for each class, and the multiplexing result is used as encoded data in the transmitter / recording device 66 (FIG. 5). ).
[0040]
Next, an encoding process executed by the transmission device 41 will be described with reference to the flowchart of FIG. When image data is supplied to the correction unit 112, the correction unit 112 executes reduced image creation processing in step S11.
[0041]
FIG. 8 shows simple thinning processing as one example of reduced image creation processing. First, in step S31, the reduced image creating unit 111 divides the image data before being compressed into blocks composed of m × n pixel data. Next, in step S32, one pixel data is extracted from the m × n pixel data, and the pixel data is set as one pixel data representing the block.
[0042]
In step S33, the reduced image creating unit 111 determines whether or not the above processing has been completed for all the blocks of the frame. If there are still unprocessed blocks, the process returns to step S31. The subsequent processing is repeatedly executed. If it is determined that the processing for all the blocks has been completed, the processing is terminated.
[0043]
That is, in this example, as shown in FIG. 9, one central pixel a5 is selected from, for example, 3 × 3 (m = n = 3) pixel data a1 to a9. Similarly, the central pixel b5 is selected from the adjacent 9 pixels of 3 × 3 b1 to b9.
[0044]
By repeating the simple thinning process as described above, the input image data is compressed to 1/9 reduced image data.
[0045]
FIG. 10 shows another example of reduced image creation processing. In this example, in step S51, the reduced image creation unit 111 divides the input image data into m × n blocks. In step S52, the reduced image creating unit 111 calculates an average value of m × n pixels divided in the process of step S51. The average value is set as one pixel representing a block composed of m × n pixels.
[0046]
In step S53, the reduced image creating unit 111 determines whether or not the same processing has been executed for all the blocks, and if there is a block that has not been processed yet, the process returns to step S51, and the subsequent processing Repeatedly. If it is determined that the processing for all the blocks has been completed, the processing is terminated.
[0047]
In this manner, for example, as shown in FIG. 11, the average value A of 3 × 3 pixels a1 to a9 is calculated based on the following equation.
[0048]
[Expression 1]
Figure 0004518727
[0049]
Further, an average value B of 3 × 3 pixels of the pixels b1 to b9 is calculated based on the following equation.
[0050]
[Expression 2]
Figure 0004518727
[0051]
Further, similarly, an average value C of 3 × 3 pixels of the pixels c1 to c9 is calculated based on the following equation.
[0052]
[Equation 3]
Figure 0004518727
[0053]
The reduced image data (compressed data) generated by the reduced image creation unit 111 is supplied to the correction unit 112 and is not corrected at first, but is supplied as it is to the local decoding unit 114 and the motion estimation unit 113 as correction data. The
[0054]
In step S12, the motion estimation unit 113 detects the motion of the image based on the correction data supplied from the correction unit 112, generates a motion vector corresponding to the motion, and outputs the motion vector to the local decoding unit 114. Details of the motion vector estimation processing will be described later with reference to FIGS. 14 and 15.
[0055]
Next, in step S13, the local decoding unit 114 decodes (decodes) the correction data from the correction unit 112 (initially, the reduced image data itself as described above) based on the class classification adaptation process.
[0056]
Details of this decoding processing will be described later with reference to FIGS. 16 to 19, but the local decoding unit 114 is based on the motion vector supplied from the motion estimation unit 113 from the correction data supplied from the correction unit 112. Then, a prediction value calculation block (prediction target data) composed of correction data (prediction tap) for performing prediction processing is extracted, and the prediction coefficient for each class is linearly combined with the extracted prediction target data To calculate the predicted value. The prediction value generated by the local decoding unit 114 is supplied to the error calculation unit 115, and the used prediction coefficient is supplied to the control unit 116.
[0057]
Here, the image composed of the predicted values output from the local decoding unit 114 is the same as the decoded image obtained on the receiving device 44 (FIG. 2) side.
[0058]
In step S <b> 14, the error calculation unit 115 calculates a prediction error between the prediction value supplied from the local decoding unit 114 and the image data (image data before being reduced), and supplies it to the control unit 116 as error information.
[0059]
In step S <b> 15, the control unit 116 performs optimization processing based on the error information from the error calculation unit 115. That is, the control unit 116 corrects the compressed data based on the prediction error from the error calculation unit 115. The correction unit 112 corrects the compressed data by changing a correction amount (correction value Δ described later) based on a control signal from the control unit 116, and the correction data obtained as a result is used as the motion estimation unit 113, the local decoding unit. 114 and the control unit 116.
[0060]
In step S16, the motion estimation unit 113 detects the motion of the image again, and generates a motion vector. At this time, since the correction data to be processed is corrected to a value different from that in step S12, a different motion vector may be obtained.
[0061]
The motion vector generated by the motion estimation unit 113 is supplied to the local decoding unit 114. In step S17, the local decoding unit 114 uses the motion vector generated by the motion estimation unit 113 in the process of step S16 to extract a prediction value calculation block from the correction data, and performs a class classification adaptation process. Thus, the predicted value is calculated. At this time, since the prediction value calculation block to be processed is different from that in the process of step S13, the prediction values obtained are often different.
[0062]
In step S18, the error calculation unit 115 calculates a difference (prediction error) from the image data of the original image (original image) of the prediction value generated by the local decoding unit 114 in the process of step S17, and as error information. Output to the control unit 116.
[0063]
In step S19, the control unit 116 determines whether or not the correction data generated by the correction unit 112 is the encoding result of the original image. Specifically, for example, it is determined whether or not the prediction error is smaller than a predetermined threshold ε, or whether or not the number of times of performing the optimization process has reached a predetermined number of times set in advance. If the prediction error is larger than the predetermined threshold ε, or if the number of optimization processes has not yet reached the predetermined number, the process returns to step S15 and the subsequent processes are repeatedly executed.
[0064]
If it is determined in step S19 that the prediction error has become smaller than the predetermined threshold value ε, or if it is determined that the optimization process has been executed a predetermined number of times, the control unit 116 uses the correction data as a result of encoding the original image. In step S20, the correction unit 112 supplies the correction data obtained at that time to the multiplexing unit 117 as the optimum compressed data, and the local decoding unit 114 performs the prediction at that time. The used prediction coefficient is output to the multiplexing unit 117. The multiplexing unit 117 multiplexes the optimum compressed data and the prediction coefficient supplied from the control unit 116 and supplies them to the transmitter / recording device 66 as encoded data.
[0065]
The transmitter / recording device 66 records this encoded data on the recording medium 42 or transmits it via the transmission path 43.
[0066]
As described above, the correction data obtained by correcting the reduced image data when the prediction error is equal to or smaller than the predetermined threshold ε or the optimization process reaches the predetermined number of times is used as the encoding result of the original image. Therefore, on the receiving device 44 side, it is possible to obtain an image that is substantially the same as the original image (original image) based on the correction data.
[0067]
FIG. 12 shows a configuration example of the correction unit 112 of FIG.
[0068]
The correction circuit 131 gives an address to the correction value ROM 132 in accordance with a control signal from the control unit 116 (FIG. 6), and thereby reads the correction value Δ. Then, the correction circuit 131 generates correction data by adding, for example, the correction value Δ from the correction value ROM 132 to the reduced image data (compressed data) from the reduced image creating unit 111, thereby generating a correction data. 113, the local decoding unit 114, and the control unit 116. The correction value ROM 132 stores various combinations of correction values Δ for correcting the compressed data output from the reduced image creating unit 111 (for example, combinations of correction values for correcting compressed data for one frame). The combination of the correction values Δ corresponding to the addresses supplied from the correction circuit 131 is read out and supplied to the correction circuit 131.
[0069]
Next, processing of the correction unit 112 in FIG. 12 will be described with reference to FIG.
[0070]
When receiving the compressed data from the reduced image creating unit 111, the correction circuit 131 determines whether or not a control signal has been received from the control unit 116 (FIG. 6) in step S71. If it is determined in step S71 that the control signal has not been received, the process of steps S72 and S73 is skipped and the process proceeds to step S74. The correction circuit 131 corrects the compressed data from the reduced image creating unit 111 as it is. As data, it outputs to the motion estimation part 113, the local decoding part 114, and the control part 116, and returns to step S71.
[0071]
That is, as described above, the control unit 116 controls the correction unit 112 (correction circuit 131) based on the error information. Immediately after the compressed data is output from the reduced image creation unit 111, Since the error information is not yet obtained (because the error information is not output from the error calculation unit 115), the control signal is not output from the control unit 116. For this reason, immediately after the compressed data is output from the reduced image creating unit 111, the correction circuit 131 does not correct the compressed data (corrected by adding 0), and directly uses the corrected data as corrected data. And output to the local decoding unit 114 and the control unit 116.
[0072]
On the other hand, if it is determined in step S71 that the control signal from the control unit 116 has been received, the process proceeds to step S72, and the correction circuit 131 outputs the address according to the control signal to the correction value ROM 132. As a result, in step S 72, the combination (set) of correction values Δ for correcting the compressed data for one frame stored at the address is read from the correction value ROM 132 and supplied to the correction circuit 131. The When the correction circuit 131 receives the combination of the correction values Δ from the correction value ROM 132, in step S73, the correction circuit 131 adds the corresponding correction value Δ to each of the compressed data of one frame, whereby correction data obtained by correcting the compressed data is obtained. calculate. Thereafter, the process proceeds to step S74, and the correction data is output from the correction circuit 131 to the motion estimation unit 113, the local decoding unit 114, and the control unit 116, and the process returns to step S71.
[0073]
As described above, the correction unit 112 repeats outputting correction data obtained by correcting the compressed data into various values according to the control of the control unit 116.
[0074]
For example, when the encoding of one frame image is completed, the control unit 116 supplies a control signal indicating that to the correction unit 112. In step S71, the correction unit 112 It is also determined whether such a control signal has been received. In step S71, when it is determined that the control signal indicating that the encoding of one frame image has been completed is received, the correction unit 112 ends the processing for the frame (field) and the next frame is supplied. If so, the processes in steps S71 to S74 are repeated.
[0075]
FIG. 14 illustrates a configuration example of the motion estimation unit 113. In this example, the correction data output from the correction unit 112 is stored in the frame memory 151 for one frame. The correction data for one frame stored in the frame memory 151 is read therefrom, transferred to the subsequent frame memory 152, and stored. At this time, the frame memory 151 stores correction data of the next frame that is later in time. The correction data for one frame stored in the frame memory 152 is further transferred to the subsequent frame memory 153 and stored therein. Correction data for one frame that has been stored in the frame memory 151 until then is transferred and stored in the frame memory 152. The frame memory 151 stores correction data for one frame that is further temporally after the previously stored frames.
[0076]
In this way, correction data for three consecutive frames is stored in the frame memories 151 to 153. That is, the correction data of the previous frame in time from the correction data of the current frame stored in the frame memory 152 is stored in the frame memory 153, and the correction data of the frame subsequent in time is stored in the frame memory 151. The
[0077]
The motion vector detection unit 154 detects a motion between the correction data of the current frame stored in the frame memory 152 and the correction data of the previous frame stored in the frame memory 151, and outputs a motion vector. The motion vector detection unit 155 detects a motion between the correction data of the current frame stored in the frame memory 152 and the correction data of the subsequent frame stored in the frame memory 153, and outputs a motion vector. For the sake of convenience, the motion vector output from the motion vector detection unit 155 is referred to as a previous frame motion vector, and the motion vector output from the motion vector detection unit 154 is referred to as a subsequent frame motion vector.
[0078]
Next, the previous motion vector estimation (detection) process of the motion estimation unit 113 will be described with reference to the flowchart of FIG. It is assumed that correction data for the subsequent frame, the current frame, and the previous frame are stored in the frame memories 151 to 153, respectively.
[0079]
In step S91, the motion vector detection unit 155 sets a comparison value in a built-in memory. This comparison value is used in step S96 described later.
[0080]
In step S92, the motion vector detection unit 155 clears the built-in relative address memory. In the relative address memory, a relative address corresponding to a motion vector (previous motion vector) is stored in step S98 described later.
[0081]
In step S93, the motion vector detection unit 155 performs processing for dividing the current frame stored in the frame memory 152 into blocks. In step S94, the motion vector detection unit 155 performs processing for dividing the correction data of the previous frame stored in the frame memory 153 into blocks.
[0082]
In step S95, the motion vector detection unit 155 determines the correction data of the position corresponding to one block of the current frame divided by the process of step S93 and one block of the previous frame divided by the process of step S94. The sum of absolute values of differences, that is, the sum of absolute differences is calculated.
[0083]
In step S96, the motion vector detecting unit 155 performs a process of comparing the comparison value set in the process of step S91 with the absolute difference sum calculated in the process of step S95 as an evaluation value. If the evaluation value is smaller than the comparison value, in step S97, the motion vector detection unit 155 updates the set comparison value with the evaluation value obtained by the calculation in step S95 in the process of step S91. . In step S98, the motion vector detection unit 155 stores a relative address (corresponding to the previous motion vector) with respect to the position of the block including the target pixel of the current frame of the previous frame block in the relative address memory.
[0084]
If it is determined in step S96 that the evaluation value calculated in the process of step S95 is equal to or greater than the comparison value, the processes of step S97 and step S98 are skipped.
[0085]
Next, proceeding to step S99, the motion vector detection unit 155 determines whether or not the search within the predetermined search range set in advance for the previous frame has been completed. Proceed to, and change the position of the block of the previous frame.
[0086]
Thereafter, the process returns to step S94, and the previous frame block at the changed position is extracted. In step S95, the absolute difference sum between the previous frame block and the current frame block including the target pixel is calculated. In step S96, the evaluation value as the sum of absolute differences calculated in step S95 is compared with the comparison value (updated to the previous block evaluation value in the previous step S97). If the evaluation value is smaller than the comparison value, a process for changing the comparison value to the evaluation value is performed in step S97, and in step S98, the address in the relative address memory is the processing target now. Is changed to the relative address.
[0087]
If it is determined in step S96 that the evaluation value is equal to or greater than the comparison value, the processes in steps S97 and S98 are skipped.
[0088]
Such processing is repeatedly executed until it is determined in step S99 that the processing has been completed for all blocks within the search range of the previous frame. As a result, the minimum value of the absolute difference sums of the blocks in the search range is stored as a comparison value in the process of step S97, and the minimum value is stored in the relative address memory in the process of step S98. The relative address of the block corresponding to the absolute difference sum, that is, the previous motion vector is stored.
[0089]
When it is determined in step S99 that all the searches in the search range of the previous frame have been completed, the motion vector detection unit 155 performs the previous step including the relative address stored in the relative address memory in step S98 in step S101. The frame motion vector is output to the local decoding unit 114.
[0090]
In the above, the motion vector estimation processing of the motion vector detection unit 155 has been described. However, the motion vector detection unit 154 also stores the correction data of the current frame stored in the frame memory 152 and the frame memory 151. A similar process is executed to detect a motion between the correction data of the subsequent frames.
[0091]
In this case, in the process of step S94 in FIG. 15, instead of extracting the block of the previous frame, a process of extracting the block of the subsequent frame is executed. In the determination process of step S99, the search for the previous frame is performed. Instead of determining whether or not the processing within the range has ended, it is determined whether or not the search processing within the search range of the subsequent frame has ended. In step S101, the output is not the previous frame motion vector but the subsequent frame motion vector. The other processing is the same as the processing for detecting the previous frame motion vector of the motion vector detection unit 155.
[0092]
FIG. 16 shows a configuration example of the local decoding unit 114 of FIG.
[0093]
The correction data from the correction unit 112 is supplied to the class classification blocking circuit 261 and the prediction value calculation blocking circuit 262. The class classification blocking circuit 261 blocks the correction data of the current frame into a class classification block centered on attention correction data, which is a unit for classifying the correction data into a predetermined class according to the property.
[0094]
That is, in FIG. 17, the i-th correction data (compressed data) (or pixel) (or pixel) (the portion indicated by a black circle in the drawing) from the top and the j-th from the left is XijIn this case, the class classification blocking circuit 261 generates the attention correction data XijCorrection data X adjacent to the upper left, upper, upper right, left, right, lower left, lower, lower right of X(i-1) (j-1), X(i-1) j, X(i-1) (j + 1), Xi (j-1), Xi (j + 1), X(i-1) (j-1), X(i-1) j, X(i + 1) (j + 1)In addition, a class classification block 242 including a total of nine correction data including itself is configured. The class classification block 242 is supplied to the class classification adaptive processing circuit 263.
[0095]
In this case, the class classification block 242 is configured by a square block of 3 × 3 pixels, but the shape of the class classification block 242 does not have to be a square, As shown in FIG. 18, the shape can be a rhombus, a rectangle, a cross shape, or any other shape. Further, the number of pixels constituting the class classification block is not limited to 3 × 3 9 pixels.
[0096]
The prediction value calculation blocking circuit 262 blocks the correction data into prediction value calculation blocks based on the target correction data, which is a unit for calculating the prediction value of the original image based on the motion vector. To do. That is, in the current frame, as shown in FIG.ijThe pixel value of 3 × 3 9 pixels in the original image (original image) centered on (the part indicated by the black circular mark in the figure) is the leftmost to the right and the top to the bottom. Yij(1), Yij(2), Yij(3), Yij(4), Yij(5), Yij(6), Yij(7), Yij(8), YijIf expressed as (9), pixel Yij(1) to YijFor the calculation of the predicted value of (9), the predicted value calculation blocking circuit 262, for example, uses the attention correction data Xij5 × 5 25 pixels X centered on(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)The square-shaped predicted value calculation block 251 configured by
[0097]
Specifically, for example, the pixel Y in the original image surrounded by a rectangle in FIG.33(1) to Y33For the calculation of the predicted value of 9 pixels in (9), in the current frame, the pixel X11, X12, X13, X14, X15, Xtwenty one, Xtwenty two, Xtwenty three, Xtwenty four, Xtwenty five, X31, X32, X33, X34, X35, X41, X42, X43, X44, X45, X51, X52, X53, X54, X55Thus, a prediction value calculation block is configured (in this case, the attention correction data is X33Becomes).
[0098]
Based on the motion vector supplied from the motion estimator 113, the prediction value calculation blocking circuit 262 further compares the temporal frame before the current frame 201 with the previous frame 202 as shown in FIG. In addition, the correction data constituting the prediction value calculation block unit 251 is also extracted from the correction data of the later rear frame 203.
[0099]
A current frame 201 in FIG. 19 is the frame shown in FIG. FIG. 19 shows only correction data indicated by black circles in FIG. That is, in FIG. 19, the pixels of the original image indicated by white circles in FIG. 17 are not shown.
[0100]
The attention correction data 211 of the current frame 201 is the attention correction data X in FIG.3317, the correction data 212 at a position moved by two on the left side and two on the upper side of the attention correction data 211 is the correction data X in FIG.11, The prediction tap 213 as the correction data immediately above the target correction data 211 is the correction data X in FIG.twenty threeCorresponding to
[0101]
The attention corresponding correction data 221 in the previous frame (t = T−1 frame) 202 one frame before the current frame (t = T frame) 201 is a position corresponding to the attention correction data 211 of the current frame 201. Correction data. The correction data constituting the prediction tap 222 is correction data at a position where the attention correction data 221 is moved based on the previous frame motion vector 223 detected by the motion vector detection unit 155 of the motion estimation unit 113. The prediction value calculation blocking circuit 262 also extracts the prediction tap 222 as correction data constituting the prediction value calculation block 251.
[0102]
Similarly, the predicted value calculation blocking circuit 262 is correction data at a position corresponding to the target correction data 211 of the current frame 201 in a subsequent frame (t = T + 1 frame) 203 temporally after the current frame 201. Prediction tap 232, which is correction data of a position moved based on the post-frame motion vector 233 detected by the motion vector detection unit 154 from a certain attention correspondence correction data 231, is used as correction data constituting the prediction value calculation block 251. Extract.
[0103]
Thus, in this example, not only the correction data in the current frame but also the correction data of the frame before or after the current frame is the correction data constituting the prediction value calculation block 25. Therefore, particularly when the original image is a moving image, the original image can be accurately restored.
[0104]
20, the horizontal axis is the time axis direction and the vertical axis is the horizontal or vertical direction of the frame, and the positional relationship between the attention correction data and the prediction taps of the front frame 262, the current frame 201, and the rear frame 203 in FIG. Represents.
[0105]
The correction data of the prediction value calculation block 251 obtained in the prediction value calculation block forming circuit 262 is supplied to the class classification adaptive processing circuit 263.
[0106]
Note that the number of pixels and the shape of the prediction value calculation block 251 are not limited to those described above as in the case of the class classification block 242. However, it is desirable that the number of pixels constituting the prediction value calculation block 251 is larger than the number of pixels constituting the class classification block 242.
[0107]
In addition, when performing blocking as described above (the same applies to processing other than blocking), there may be no corresponding pixel (correction data) near the image frame of the image. In this case, For example, the processing is performed on the assumption that the same pixel as the pixel constituting the image frame exists outside the image frame.
[0108]
The class classification adaptive processing circuit 263 includes an ADRC (Adaptive Dynamic Range Coding) processing circuit 264, a class classification circuit 265, a prediction coefficient ROM 266, and a prediction circuit 267, and performs class classification adaptive processing.
[0109]
Class classification adaptation processing classifies input signals into several classes based on their characteristics, and applies appropriate adaptation processing to the input signals of each class. It is divided into processing.
[0110]
Here, the class classification process and the adaptation process will be briefly described.
[0111]
First, the class classification process will be described.
[0112]
Now, for example, as shown in FIG. 21, a block of 2 × 2 pixels (a block for class classification) is configured by a certain target pixel and three pixels adjacent thereto, and each pixel has 1 bit. (Takes a level of 0 or 1). In this case, a 2 × 2 4-pixel block including the pixel of interest has 16 (= (2) as shown in FIG. 22 according to the level distribution of each pixel.1)Four) Can be classified into patterns. Therefore, in this case, the target pixel can be classified into 16 patterns, and such pattern classification is a class classification process and is performed in the class classification circuit 265.
[0113]
The class classification processing can be performed in consideration of the activity (complexity of the image) (severity of change) of the image (image in the block).
[0114]
By the way, normally, for example, about 8 bits are assigned to each pixel. Further, in the present embodiment, as described above, the class classification block 242 is composed of 3 × 3 nine correction data. Therefore, when class classification processing is performed on such a class classification block 242, (28)9A huge number of classes will be generated.
[0115]
Therefore, in the present embodiment, the ADRC processing circuit 264 performs ADRC processing on the class classification block 242, thereby reducing the number of bits of correction data constituting the class classification block 242. This reduces the number of classes.
[0116]
That is, for the sake of simplicity, for example, when a block composed of four pixels (correction data) is considered as shown in FIG. 23, in the ADRC process, the maximum value MAX of the pixel values is considered. And the minimum value MIN is detected. Then, DR = MAX-MIN is set as the local dynamic range of the block, and the pixel values of the pixels constituting the block are requantized to K bits based on the dynamic range DR.
[0117]
That is, the minimum value MIN is subtracted from each pixel value in the block, and the subtracted value is DR / 2.KDivide by. Each pixel value is converted into a code (ADRC code) corresponding to the division value obtained as a result. Specifically, for example, when K = 2, as shown in FIG. 24, the division value has a dynamic range DR of 4 (= 22) It is determined which range is obtained by equally dividing, and the division value is the range of the lowest level, the range of the second level from the bottom, the range of the third level from the bottom, or the top In the case of belonging to the level range, for example, it is encoded into 2 bits such as 00B, 01B, 10B, or 11B (B represents a binary number). On the decoding side (receiving device 44), the ADRC code 00B, 01B, 10B, or 11B is the center value L of the lowest level range obtained by equally dividing the dynamic range DR into four.00, Center value L of the second level range from the bottom01, Center value L of the third level range from the bottomTenOr the center value L of the range of the highest level11And the minimum value MIN is added to the value to perform decoding.
[0118]
Such ADRC processing is called non-edge matching.
[0119]
The details of the ADRC processing are disclosed in, for example, Japanese Patent Application Laid-Open No. 3-53778 filed by the applicant of the present application.
[0120]
By applying ADRC processing that performs requantization with a smaller number of bits than the number of bits allocated to the pixels constituting the block, as described above, the number of classes can be reduced. This is performed in the ADRC processing circuit 264.
[0121]
In the present embodiment, the class classification circuit 265 performs class classification processing based on the ADRC code output from the ADRC processing circuit 264. The class classification processing may be performed by other methods such as DPCM (predictive coding). ), BTC (Block Truncation Coding), VQ (Vector Quantization), DCT (Discrete Cosine Transform), Hadamard Transform, and the like.
[0122]
Next, the adaptation process will be described.
[0123]
For example, the predicted value E [y] of the pixel value y of the original image is now set to the pixel values (correction data values) (hereinafter referred to as learning data as appropriate) x of some surrounding pixels.1, X2, ... and a predetermined prediction coefficient w1, W2Consider a linear primary combination model defined by the linear combination of. In this case, the predicted value E [y] can be expressed by the following equation.
[0124]
E [y] = w1x1+ W2x2+ ...
... (1)
[0125]
Therefore, in order to generalize, a matrix W composed of a set of prediction coefficients w, a matrix X composed of a set of learning data, and a matrix Y ′ composed of a set of predicted values E [y],
[Expression 4]
Figure 0004518727
Then, the following observation equation holds.
[0126]
XW = Y ’
... (2)
[0127]
Then, it is considered to apply the least square method to this observation equation to obtain a predicted value E [y] close to the pixel value y of the original image. In this case, a matrix Y consisting of a set of pixel values y of the original image (hereinafter referred to as teacher data as appropriate) y and a set of residuals e of predicted values E [y] for the pixel values y of the original image. E
[Equation 5]
Figure 0004518727
From the equation (2), the following residual equation is established.
[0128]
XW = Y + E
... (3)
[0129]
In this case, the prediction coefficient w for obtaining the predicted value E [y] close to the pixel value y of the original imageiIs the square error
[Formula 6]
Figure 0004518727
Can be obtained by minimizing.
[0130]
Therefore, the above square error is converted into the prediction coefficient w.iWhen the value differentiated by 0 is 0, that is, the prediction coefficient w satisfying the following equation:iHowever, this is the optimum value for obtaining the predicted value E [y] close to the pixel value y of the original image.
[0131]
[Expression 7]
Figure 0004518727
... (4)
[0132]
Therefore, first, Equation (3) is converted into the prediction coefficient w.iIs differentiated by the following equation.
[0133]
[Equation 8]
Figure 0004518727
... (5)
[0134]
From equations (4) and (5), equation (6) is obtained.
[0135]
[Equation 9]
Figure 0004518727
... (6)
[0136]
Further, considering the relationship among the learning data x, the prediction coefficient w, the teacher data y, and the residual e in the residual equation of Equation (3), the following normal equation can be obtained from Equation (6). .
[0137]
[Expression 10]
Figure 0004518727
... (7)
[0138]
The normal equation of Expression (7) can be established by the same number as the number of prediction coefficients w to be obtained. Therefore, the optimal prediction coefficient w can be obtained by solving Expression (7). In solving equation (7), for example, a sweep-out method (Gauss-Jordan elimination method) or the like can be applied.
[0139]
As described above, the optimum prediction coefficient w is obtained for each class, and further, the prediction value E [y] close to the pixel value y of the original image is obtained by the equation (1) using the prediction coefficient w. Is an adaptive process, and a prediction process based on the adaptive process is performed in the prediction circuit 267.
[0140]
Note that the adaptive processing is different from simple interpolation processing in that a component included in the original image that is not included in the thinned image (compressed data) is reproduced. That is, the adaptive process is the same as the interpolation process using a so-called interpolation filter as long as only Expression (1) is seen, but the prediction coefficient w corresponding to the tap coefficient of the interpolation filter uses the teacher data y. In other words, since it is obtained by learning, the components included in the original image can be reproduced. From this, it can be said that the adaptive process is a process having an image creating action.
[0141]
Next, processing of the local decoding unit 114 in FIG. 16 will be described with reference to the flowchart in FIG.
[0142]
In the local decoding unit 114, first, in step S121, the correction data from the correction unit 112 is blocked. That is, in the class classification blocking circuit 261, the correction data is the attention correction data (the correction data X in FIG. 17).33) At the center, the block is divided into a 3 × 3 pixel class classification block 242 (FIG. 17) and supplied to the class classification adaptive processing circuit 263. The data is the attention correction data 211 (X33) At the center, the block is divided into 5 × 5 pixel prediction value calculation blocks 251 (FIGS. 17 and 19).
[0143]
Furthermore, the prediction value calculation blocking circuit 262 includes a prediction tap 222 which is correction data of the previous frame 202 obtained corresponding to the previous frame motion vector 223 supplied from the motion estimation unit 113, and a subsequent frame motion vector 233. The prediction taps 232, which are correction data of the subsequent frame 203 obtained corresponding to the above, are used as correction data constituting the prediction value calculation block 251 (FIG. 19). Therefore, in the case of this example, a total of 27 (= 5 × 5 + 1 + 1) correction data is eventually supplied to the class classification adaptive processing circuit 263 as correction data for the prediction value calculation block 251.
[0144]
In the class classification adaptive processing circuit 263, the class classification block 242 is supplied to the ADRC processing circuit 264, and the prediction value calculation block 251 is supplied to the prediction circuit 267.
[0145]
Upon receiving the class classification block 242, the ADRC processing circuit 264 performs, for example, 1-bit ADRC (ADRC that performs re-quantization with 1 bit) on the class classification block 242 in step S 122, Thus, the correction data is converted (encoded) into 1 bit and output to the class classification circuit 265. In step S123, the class classification circuit 265 executes class classification processing based on the class classification block 242 that has been subjected to ADRC processing. That is, the level distribution state of each correction data constituting the class classification block 242 subjected to ADRC processing is detected, and the class to which the class classification block belongs (the attention correction data 211 constituting the class classification block 242). (Class of correction data arranged in the center) is determined. The class determination result is supplied to the prediction coefficient ROM 266 as class information.
[0146]
In the present embodiment, since the class classification process is performed on the class classification block 242 configured by 9 correction data of 3 × 3 subjected to the 1-bit ADRC process, The classification block 242 has 512 (= (21)9) In one of the classes.
[0147]
In step S124, the prediction coefficient ROM 266 reads the prediction coefficient based on the class information from the class classification circuit 265 and supplies the prediction coefficient to the prediction circuit 267. In step S125, the prediction circuit 267 performs an adaptive process for each class, thereby calculating a predicted value of original image data (original image data) of one frame.
[0148]
That is, in the present embodiment, for example, 27 × 9 prediction coefficients are read for each class. Furthermore, when attention is paid to a certain correction data, prediction is made for a total of nine pixels, that is, a pixel of the original image corresponding to the correction data of interest and eight pixels of the original image adjacent to the pixel. Adaptive processing is performed using 27 × 9 prediction coefficients whose values correspond to the class information of the target correction data and a prediction value calculation block having 5 × 5 pixels centered on the target correction data. Is calculated by
[0149]
Specifically, for example, the correction data (attention correction data) X shown in FIG.333 × 3 correction data X centered ontwenty two, Xtwenty three, Xtwenty four, X32, X33, X34, X42, X43, X44Is output from the class classification circuit 265, and the correction data X of the current frame is used as a prediction value calculation block 251 corresponding to the class classification block 242.335 × 5 pixel correction data X centered at11, X12, X13, X14, X15, Xtwenty one, Xtwenty two, Xtwenty three, Xtwenty four, Xtwenty five, X31, X32, X33, X34, X35, X41, X42, X43, X44, X45, X51, X52, X53, X54, X55And corresponding correction data X as the prediction tap 222 of the previous framemv1And correction data X as the prediction tap 232 of the subsequent framemv2Is output from the predicted value calculation block forming circuit 262.
[0150]
And the prediction coefficient w for class information C1Thru w27And the prediction value calculation block 251 and according to the following equation corresponding to equation (1), the prediction value E [Y33(K)] is required.
[0151]
Figure 0004518727
[0152]
In step S125, as described above, predicted values of pixels of 3 × 3 original images centered on the target correction data are obtained using the prediction coefficients for 27 × 9 classes.
[0153]
Thereafter, the process proceeds to step S126, in which 27 × 9 prediction coefficients for each class are supplied to the control unit 116, and 3 × 3 prediction values are supplied to the error calculation unit 115. Then, the process returns to step S121, and the same processing is repeated for each frame, for example, as described above.
[0154]
FIG. 26 shows a configuration example of the error calculation unit 115 of FIG.
[0155]
The original image data (image data of the original image before being reduced) is supplied to the blocking circuit 351. The blocking circuit 351 extracts from the image data all the pixels in the range affected when the pixel of interest is corrected, and outputs it to the square error calculation circuit 352. For example, when the value of the pixel X33 in FIG. 17 is corrected, the number of predicted taps X9 (9 corresponds to X33 (1) to X33 (9)) is output to the square error calculation circuit 352. As described above, the square error calculation circuit 352 is supplied with the block of the original image data from the block forming circuit 351, and the predicted value from the local decoding unit 114 is 9 units (3 × 3 pixel block unit). ). The square error calculation circuit 352 calculates a square error as a prediction error of the prediction value for the original image, and supplies the square error to the integrating unit 355.
[0156]
That is, the square error calculation circuit 352 is composed of computing units 353 and 354. The computing unit 353 subtracts the corresponding predicted value from each of the blocked image data from the blocking circuit 351 and supplies the subtracted value to the computing unit 354. The computing unit 354 squares the output of the computing unit 353 (the difference between the original image data and the predicted value) and supplies it to the integrating unit 355.
[0157]
When receiving the square error from the square error calculation circuit 352, the integrating unit 355 reads the stored value in the memory 356, adds the stored value and the square error, and repeatedly supplies the stored value to the memory 356 for storage. Thus, the squared error integrated value (error variance) is obtained. Further, when the integration of the square error for a predetermined amount (for example, for one frame) is completed, the integration unit 355 reads the integration value from the memory 356 and supplies it to the control unit 116 as error information. The memory 356 stores the output value of the integrating unit 355 while clearing the stored value every time processing for one frame is completed.
[0158]
Next, the operation will be described with reference to the flowchart of FIG. In the error calculation unit 115, first, in step S131, the stored value of the memory 356 is cleared (initialized) to, for example, 0, and the process proceeds to step S132. In the blocking circuit 351, the image data is processed as described above. The block obtained as a result of the block formation is supplied to the square error calculation circuit 352. In the square error calculation circuit 352, in step S133, the square error between the image data of the original image (original image) constituting the block supplied from the blocking circuit 351 and the predicted value supplied from the local decoding unit 114. Is calculated.
[0159]
That is, in step S133, the computing unit 353 subtracts the corresponding prediction value from each of the blocked image data supplied from the blocking circuit 351, and supplies it to the computing unit 354. The computing unit 354 squares the output of the computing unit 353 and supplies it to the integrating unit 355.
[0160]
When receiving the square error from the square error calculation circuit 352, the integrating unit 355 reads the stored value of the memory 356 in step S134, and adds the stored value and the square error to obtain the integrated value of the square error. The integrated value of the square error calculated in the integrating unit 355 is supplied to the memory 356 and stored by overwriting the previous stored value.
[0161]
Then, in step S135, the integrating unit 355 determines whether or not the integration of the square error for one frame, for example, as a predetermined amount has ended. If it is determined in step S135 that the square error accumulation for one frame has not been completed, the process returns to step S132, and the processing from step S132 is repeated again. If it is determined in step S135 that the square error has been accumulated for one frame, the process proceeds to step S136, where the accumulation unit 355 accumulates the square error for one frame stored in the memory 356. Is output to the control unit 116 as error information. Then, returning to step S131, the process from step S131 is repeated again after waiting for the supply of the original image and predicted value for the next frame.
[0162]
Therefore, the error calculation unit 115 converts the original image data into Yij(K) and the predicted value is E [Yij(K)], the error information Q is calculated by performing an operation according to the following equation.
[0163]
Q = Σ (Yij(K) -E [Yij(K)])2
However, Σ means summation for one frame.
[0164]
FIG. 28 shows a configuration example of the control unit 116 of FIG.
[0165]
The prediction coefficient memory 361 stores the prediction coefficient supplied from the local decoding unit 114. The correction data memory 362 stores correction data supplied from the correction unit 112.
[0166]
In the correction data memory 362, when the correction data is newly corrected in the correction unit 112, and new correction data is supplied as a result, the correction data memory 362 stores the correction data already stored (previous correction data). Instead, new correction data is stored. In addition, at the timing when the correction data is updated to a new one in this way, the local decoding unit 114 outputs a set of prediction coefficients for each new class corresponding to the new correction data. When the prediction coefficient for each new class is supplied in this way, the prediction coefficient memory 361 also replaces the already stored prediction coefficient for each class (prediction coefficient for the previous class) with the new prediction coefficient. Stores the prediction coefficient for each class.
[0167]
The error information memory 363 stores error information supplied from the error calculation unit 115. The error information memory 363 stores the error information supplied last time from the error calculation unit 115 in addition to the error information supplied this time (even if new error information is supplied, new error information is stored. Until it is supplied, the already stored error information is retained). The error information memory 363 is cleared every time processing for a new frame is started.
[0168]
The comparison circuit 364 compares the current error information stored in the error information memory 363 with a predetermined threshold value ε, and if necessary, further compares the current error information with the previous error information. Also compare. The comparison result in the comparison circuit 364 is supplied to the control circuit 365.
[0169]
Based on the comparison result in the comparison circuit 364, the control circuit 365 determines the appropriateness (optimum) of using the correction data stored in the correction data memory 362 as the encoding result of the original image. In the case of recognition (determination), a control signal requesting output of new correction data is supplied to the correction unit 112 (correction circuit 131) (FIG. 12). When the control circuit 365 recognizes that it is optimal to use the correction data stored in the correction data memory 362 as the encoding result of the original image, the control circuit 365 stores the class stored in the prediction coefficient memory 361. Each prediction coefficient is read out and output to the multiplexing unit 117, and the correction data stored in the correction data memory 362 is read out and supplied to the multiplexing unit 117 as optimum compressed data. Further, in this case, the control circuit 365 outputs a control signal indicating that the encoding of the image of one frame has been completed to the correction unit 112, thereby causing the correction unit 112 to receive the next signal as described above. Start processing on the frame.
[0170]
Next, an optimization process executed by the control unit 116 will be described with reference to FIG.
[0171]
In the control unit 116, first, in step S141, whether or not the error information is received from the error calculation unit 115 is determined by the comparison circuit 364. If it is determined that the error information is not received, the control unit 116 proceeds to step S141. Return. If it is determined in step S141 that the error information has been received, that is, if the error information is stored in the error information memory 363, the process proceeds to step S142, and the comparison circuit 364 stores the error information in the error information memory 363. The determined error information (current error information) is compared with a predetermined threshold ε to determine which is larger.
[0172]
If it is determined in step S142 that the current error information is greater than or equal to the predetermined threshold ε, the comparison circuit 364 reads the previous error information stored in the error information memory 363. In step S143, the comparison circuit 364 compares the previous error information with the current error information and determines which is larger.
[0173]
When error information is supplied for the first time when processing for one frame is started, the previous error information is not stored in the error information memory 363. Therefore, in this case, the control unit 116 does not perform the processing after step S143, and the control circuit 365 controls the correction circuit 131 (FIG. 12) so as to output a predetermined initial address to the correction value ROM 132. A control signal is output.
[0174]
If it is determined in step S143 that the current error information is equal to or less than the previous error information, that is, if the error information is reduced by correcting the compressed data, the process proceeds to step S144, and the control circuit 365 A control signal instructing to change the correction value Δ in the same manner as the previous time is output to the correction circuit 131, and the process returns to step S141. If it is determined in step S143 that the current error information is larger than the previous error information, that is, if the error information has increased by correcting the compressed data, the process proceeds to step S145, where the control circuit 365 Then, a control signal for instructing to change the correction value Δ opposite to the previous time is output to the correction circuit 131, and the process returns to step S141.
[0175]
When the error information that has continued to decrease starts to increase at a certain timing, the control circuit 365 sets the correction value Δ to the previous value, for example, at a magnitude that is 1/2. Conversely, a control signal instructing to change is output.
[0176]
Then, by repeating the processes of steps S141 to S145, the error information decreases, and when it is determined in step S142 that the current error information is smaller than the predetermined threshold ε, the process proceeds to step S146. The control circuit 365 reads the prediction coefficient for each class stored in the prediction coefficient memory 361, reads out one frame of correction data stored in the correction data memory 362 as optimum compressed data, and sends it to the multiplexing unit 117. Supply and finish the process.
[0177]
After that, after waiting for the error information for the next frame to be supplied, the processing according to the flowchart shown in FIG. 29 is repeated again.
[0178]
The correction circuit 131 can correct the compressed data for all the compressed data in one frame or only a part of the compressed data. In the case where correction is performed only for a part of the compressed data, the control circuit 365 can detect, for example, pixels that have a strong influence on the error information and correct only the compressed data for such pixels. . A pixel having a strong influence on error information can be detected as follows, for example. That is, first, for example, the error information is obtained by performing processing using the compressed data of the pixels remaining after the thinning out as they are. Then, a control signal for performing a process of correcting the compressed data for the pixels remaining after the thinning out one by one by the same correction value Δ is output from the control circuit 365 to the correction circuit 131 and obtained as a result. The error information may be compared with the error information obtained when the compressed data is used as it is, and a pixel whose difference is a predetermined value or more may be detected as a pixel having a strong influence on the error information.
[0179]
As described above, the correction of the compressed data is repeated until the error information is made smaller (below) than the predetermined threshold ε, and the correction data when the error information becomes smaller than the predetermined threshold ε is the code of the image. Therefore, in the receiving device 44 (FIG. 2), the pixel values of the pixels constituting the thinned image are converted from the correction data in which the pixel values are most appropriate for restoring the original image. It is possible to obtain a decoded image that is the same (substantially the same) as the image.
[0180]
In addition to being compressed by thinning processing, the image is also compressed by ADRC processing, class classification adaptation processing, and the like, so that encoded data with a very high compression rate can be obtained. In addition, the encoding process as described above in the transmission device 41 achieves high-efficiency compression by organically integrating the compression process by thinning and the class classification adaptive process, From this, it can be said that it is an integrated encoding process.
[0181]
FIG. 30 illustrates a hardware configuration example of the reception device 44 of FIG.
[0182]
The receiver / reproducing device 446 reproduces the recording medium 42 on which the transmission device 41 has recorded the encoded data, or receives the encoded data transmitted by the transmission device 41 via the transmission path 43. The I / F 461 performs processing for receiving encoded data with respect to the receiver / reproduction device 466, and also performs processing for outputting decoded image data to a device (not shown).
[0183]
A ROM (Read Only Memory) 462 stores a program for IPL (Initial Program Loading) and others. A RAM (Random Access Memory) 463 stores system programs (OS (Operating System)) and application programs recorded in the external storage device 465, and data necessary for the operation of a CPU (Central Processing Unit) 464. Remember. In accordance with the IPL program stored in the ROM 462, the CPU 464 expands the system program and application program from the external storage device 465 to the RAM 463, and executes the application program under the control of the system program, thereby executing the I / F 461. Decoding processing as described later is performed on the encoded data supplied from.
[0184]
The external storage device 465 is, for example, a magnetic disk 471, an optical disk 472, a magneto-optical disk 473, or a semiconductor memory 474, and stores the system program and application program executed by the CPU 464 as described above. Data necessary for the operation is also stored.
[0185]
The I / F 461, the ROM 462, the RAM 463, the CPU 464, and the external storage device 465 are connected to each other via a bus.
[0186]
In the receiving device 44 configured as described above, when encoded data is supplied to the I / F 461 from the receiver / reproducing device 466, the encoded data is supplied to the CPU 464. The CPU 464 decodes the encoded data and supplies the decoded data obtained as a result to the I / F 461. When receiving the decoded data (image data), the I / F 461 outputs the decoded data (image data) to a display or the like (not shown) and displays it.
[0187]
FIG. 31 shows a functional configuration example of a portion of the receiving device 44 of FIG. 30 excluding the receiver / reproducing device 571.
[0188]
In the receiver / reproducing device 571, whether the encoded data recorded on the recording medium 42 is reproduced, or the encoded data (processing target data) transmitted via the transmission path 43 is received, It is supplied to the separation unit 572. In the separation unit 572, correction data (optimum compressed data) and a prediction coefficient for each class are extracted from the encoded data. The correction data is supplied to the class classification blocking circuit 573, the motion estimation unit 577, and the prediction value calculation blocking circuit 578, and the prediction coefficient for each class is supplied to the prediction circuit 576, and the built-in memory 576A. Is remembered.
[0189]
The class classification blocking circuit 573, the ADRC processing circuit 574, the class classification circuit 575, the prediction circuit 576, or the prediction value calculation blocking circuit 578 are the class classification blocking circuit 261, the ADRC processing circuit 264, the class in FIG. The classification circuit 265, the prediction circuit 267, or the prediction value calculation blocking circuit 262 is configured in the same manner, and the motion estimation unit 577 is configured in the same manner as the motion estimation unit 113 in FIG. 14 (FIG. 6). Has been. Therefore, in these blocks, the same processing as in FIGS. 14 and 16 is performed, whereby the predicted value calculation block is output from the predicted value calculation block forming circuit 578, and the class classification circuit is also output. From 575, class information is output. These prediction value calculation blocks and class information are supplied to the prediction circuit 576.
[0190]
The prediction circuit 576 reads out 27 × 9 prediction coefficients corresponding to the class information supplied from the class classification circuit 575 from the memory 576A, and the 27 × 9 prediction coefficients and the prediction value calculation blocking circuit 578. Is used to calculate a predicted value of 3 × 3 pixels of the original image according to the formula (1) using the correction data constituting the predicted value calculation block 251 of 5 × 5 pixels supplied from Is output as a decoded image, for example, in units of one frame. As described above, this decoded image is almost the same as the original image.
[0191]
Next, the decoding process of the receiving device 44 in FIG. 31 will be described with reference to the flowchart in FIG.
[0192]
First, in step S161, the separation unit 572 separates the correction data and the prediction coefficient from the encoded data supplied from the receiver / reproduction device 571, and classifies the correction data into a class classification blocking circuit 573 and a motion estimation unit. 577 and the prediction value calculation blocking circuit 578, and the prediction coefficient is supplied to the memory 576A of the prediction circuit 576.
[0193]
In step S162, the class classification blocking circuit 573 performs class classification blocking processing, and supplies the class classification block to the ADRC processing circuit 574.
[0194]
In step S 163, the ADRC processing circuit 574 performs 1-bit ADRC processing on the correction data of the class classification block supplied from the class classification blocking circuit 573, and outputs it to the class classification circuit 575.
[0195]
In step S164, the class classification circuit 575 performs class classification processing based on the data supplied from the ADRC processing circuit 574, and outputs the class code to the prediction circuit 576.
[0196]
In step S165, the motion estimation unit 577 performs motion estimation processing based on the correction data supplied from the separation unit 572, and supplies the previous frame motion vector and the subsequent frame motion vector to the prediction value calculation blocking circuit 578. .
[0197]
In step S166, the predicted value calculation blocking circuit 578 selects a predicted value from the correction data supplied from the separation unit 572 based on the previous frame motion vector and the subsequent frame motion vector supplied from the motion estimation unit 577. The correction data constituting the calculation block is extracted.
[0198]
In step S167, the prediction circuit 576 reads out 27 × 9 prediction coefficients corresponding to the class information supplied from the class classification circuit 575 from the memory 576A, the 27 × 9 prediction coefficients, and a prediction value calculation block. The 3 × 3 pixel prediction value of the original image is calculated according to equation (1) using the correction data constituting the 27 prediction value calculation blocks supplied from the conversion circuit 578.
[0199]
Thereafter, the process proceeds to step S168, and the prediction circuit 576 outputs the prediction value calculated in the process of step S167 as a decoding result.
[0200]
On the receiving side, a decoded image can be obtained without using a prediction coefficient by a device that decodes a thinned image by simple interpolation, instead of the receiving device 44 as shown in FIG. However, the decoded image obtained in this case has deteriorated image quality (resolution).
[0201]
FIG. 33 shows a configuration example of an image processing apparatus that performs learning for obtaining a prediction coefficient stored in the prediction coefficient ROM 266 of FIG.
[0202]
This image processing apparatus is supplied with learning image data (learning image) for obtaining a prediction coefficient applicable to any image. A motion estimation unit 590 configured in the same manner as the motion estimation unit 113 shown in FIG. 14 detects the previous frame motion vector and the subsequent frame motion vector from the input image data, and supplies them to the learning blocking circuit 591. .
[0203]
The learning blocking circuit 591 extracts a learning block from the image data based on the motion vector supplied from the motion estimation unit 590 and supplies the learning block to the ADRC processing circuit 593 and the learning data memory 596. The ADRC processing circuit 593 performs 1-bit ADRC processing on the learning block supplied from the learning blocking circuit 591, and outputs the processed result to the class classification circuit 594.
[0204]
The class classification circuit 594 classifies the data supplied from the ADRC processing circuit 593, and supplies the obtained result to the address terminal of the learning data memory 596 via the terminal a of the switch 595.
[0205]
The switch 595 also supplies the output of the counter 597 from the terminal b to the address terminal of the learning data memory 596.
[0206]
The teacher block forming circuit 592 extracts a teacher block from the image data and outputs it to the teacher data memory 598. The output of the class classification circuit 594 fetched from the terminal a or the output of the counter 597 fetched from the terminal b is supplied to the address terminal of the teacher data memory 598 by the switch 595.
[0207]
The arithmetic circuit 599 calculates the output of the learning data memory 596 and the output of the teacher data memory 598 and supplies the result obtained by the calculation to the memory 600. The output of the counter 597 is supplied to the address terminal of the memory 600.
[0208]
Next, the learning process of the image processing apparatus of FIG. 33 will be described with reference to the flowchart of FIG.
[0209]
In step S181, the motion estimation unit 590 extracts the previous frame motion vector and the subsequent frame motion vector from the input image data, and outputs them to the learning amount blocking circuit 591.
[0210]
In step S182, the learning blocking circuit 591 shows, for example, 25 pixels (5 × 5 pixels) in the positional relationship indicated by the black circles in FIG. 17 and the FIG. 19 from the input image data. Two pixels corresponding to the prediction tap 222 of the previous frame and the prediction tap 232 of the subsequent frame are extracted, and a block composed of the 27 pixels is supplied to the ADRC process 593 and the learning data memory 596 as a learning block. .
[0211]
In step S183, the teacher blocking circuit 592 generates, for example, a block composed of 3 × 3 9 pixels from the input image data, and the block composed of 9 pixels is converted into a teacher block. It is supplied to the teacher data memory 598 as a block for use.
[0212]
In the learning block forming circuit 591, for example, when a learning block including 27 pixels in the positional relationship shown by black circles in FIGS. 17 and 19 is generated, the teacher blocking circuit 592 A teacher block of 3 × 3 pixels indicated by a rectangle in 17 is generated.
[0213]
In step S184, the ADRC processing circuit 593 extracts, for example, 9 pixels (3 × 3 pixels) at the center from the 27 pixels constituting the learning block, and applies the block of 9 pixels to FIG. As in the ADRC processing circuit 264, 1-bit ADRC processing is performed. The 3 × 3 pixel block subjected to ADRC processing is supplied to the class classification circuit 594. In step S185, the class classification circuit 594 classifies the block from the ADRC processing circuit 593 in the same manner as in the class classification circuit 265 of FIG. 16, and class information obtained thereby is sent to the terminal a of the switch 595. To the learning data memory 596 and the teacher data memory 598.
[0214]
In steps S186 and S187, the learning data memory 596 or the teacher data memory 598 has a learning block from the learning blocking circuit 591 or a teacher blocking circuit 592 at addresses corresponding to the class information supplied thereto, respectively. Each of the teacher blocks is stored.
[0215]
Therefore, in the learning data memory 596, for example, if a block of 27 (= 5 × 5 + 2) pixels indicated by black circles in FIGS. 17 and 19 is stored as a learning block at a certain address, In the teacher data memory 598, a block of 3 × 3 pixels indicated by a rectangle in FIG. 17 is stored as a teacher block at the same address as that address.
[0216]
Thereafter, the same processing is repeated for all learning images prepared in advance, whereby the learning block and the 27 pixels constituting the learning block in the local decoding unit 114 of FIG. 16 are the same. The teacher data block 596 and the teacher data memory 598 include a teacher block composed of 9 pixels whose predicted values are obtained using a predicted value calculation block composed of 27 correction data having a positional relationship. And stored at the same address.
[0217]
In the learning data memory 596 and the teacher data memory 598, a plurality of pieces of information can be stored at the same address, whereby a plurality of learning blocks and teacher data are stored at the same address. Blocks can be stored.
[0218]
When the learning blocks and the teacher blocks for all the learning images are stored in the learning data memory 596 and the teacher data memory 598, the switch 595 that has selected the terminal a is switched to the terminal b in step S188. Thereby, the output of the counter 597 is supplied to the learning data memory 596 and the teacher data memory 598 as addresses. The counter 597 counts a predetermined clock and outputs the count value. In the learning data memory 596 or the teacher data memory 598, the learning block or teacher block stored at the address corresponding to the count value is stored. It is read out and supplied to the arithmetic circuit 599.
[0219]
Accordingly, the arithmetic circuit 599 is supplied with a set of learning blocks of a class corresponding to the count value of the counter 597 and a set of teacher blocks.
[0220]
When the arithmetic circuit 599 receives a set of learning blocks and a set of teacher blocks for a certain class, the arithmetic circuit 599 calculates a prediction coefficient that minimizes an error by using the least square method.
[0221]
That is, for example, the pixel values of the pixels constituting the learning block are now expressed as x1, X2, XThree, ..., and the prediction coefficient to be obtained is w1, W2, WThree,..., In order to obtain the pixel value y of a certain pixel constituting the teacher block by these linear linear combinations, the prediction coefficient w1, W2, WThree,... Must satisfy the following equation.
[0222]
y = w1x1+ W2x2+ WThreexThree+ ...
[0223]
Therefore, in the arithmetic circuit 599, the predicted value w for the true value y is calculated from the learning blocks of the same class and the corresponding teacher blocks.1x1+ W2x2+ WThreexThreePrediction coefficient w that minimizes square error of + ...1, W2, WThree,... Are obtained by building and solving the normal equation shown in the equation (7). Therefore, by performing this process for each class, 27 × 9 prediction coefficients are generated for each class.
[0224]
The prediction coefficient for each class obtained by the arithmetic circuit 599 is supplied to the memory 600 in step S189. In addition to the prediction coefficient from the arithmetic circuit 599, the memory 600 is supplied with a count value from the counter 597. Thus, in the memory 600, the prediction coefficient from the arithmetic circuit 599 becomes the count value from the counter 597. Stored in the corresponding address.
[0225]
As described above, the memory 600 stores 27 × 9 prediction coefficients optimum for predicting 3 × 3 pixels of a block of the class at an address corresponding to each class.
[0226]
The prediction coefficient ROM 266 of FIG. 16 stores the prediction coefficient for each class stored in the memory 600 as described above.
[0227]
In the example of FIG. 19, the prediction tap is also extracted from the previous frame 202 one frame before the current frame 201 and the subsequent frame 203 after one frame, but as shown in FIG. 35, for example. In the previous frame 204 one frame before the previous frame 202, correction data at a position corresponding to the motion vector 453 is extracted as the prediction tap 452 with respect to the target correction data 451. A prediction tap 462 composed of correction data at a position corresponding to the motion vector 463 is extracted from the attention corresponding correction data 461 in the subsequent later frame 205, and these can also be used as correction data for a prediction value calculation block. .
[0228]
In the above description, the prediction tap is extracted from both the frame before and after the current frame. However, the prediction tap may be extracted from at least one of the frames.
[0229]
However, if the prediction taps are extracted from a wider range in terms of time, it is possible to decode an image closer to the original image even when the moving image having a fast motion is the original image.
[0230]
The image processing apparatus to which the present invention is applied has been described above. Such an image processing apparatus, for example, encodes a standard system television signal such as the NTSC system, or so-called high vision with a large amount of data. This is particularly effective when encoding a television signal of a system.
[0231]
In this embodiment, the error sum of squares is used as the error information. However, as the error information, for example, the sum of absolute values of errors, the sum of the third power or more, and the like are used. It is possible to do so. Which one is used as error information can be determined based on, for example, its convergence.
[0232]
Further, in the present embodiment, when the correction of the compressed data is repeatedly performed until the error information becomes equal to or less than the predetermined threshold ε, an upper limit can be set for the number of corrections of the compressed data. It is. That is, for example, when image transmission is performed in real time, processing for one frame needs to be completed within a predetermined period, but error information converges within such a predetermined period. Not always. Therefore, by setting an upper limit on the number of corrections, if the error information does not converge below the threshold ε within a predetermined period, the processing for that frame is terminated (the correction data at that time is used as the encoding result). ), It is possible to start processing for the next frame.
[0233]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software executes various functions by installing a computer incorporated in dedicated hardware or various programs. For example, a general-purpose personal computer is installed from a network or a recording medium.
[0234]
As shown in FIGS. 5 and 30, the recording medium is distributed to provide a program to the user separately from the apparatus main body, and includes magnetic disks 71 and 471 (including floppy disks) on which the program is recorded. ), Optical disks 72 and 472 (including CD-ROM (Compact Disk-Read Only Memory), DVD (Digital Versatile Disk)), magneto-optical disks 73 and 473 (including MD (Mini-Disk)), or semiconductor memory 74 , 474, etc., as well as ROM 62, 462 on which a program is recorded and a hard disk provided to the user in a state of being incorporated in the apparatus main body in advance.
[0235]
In the present specification, the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but is not necessarily performed in chronological order. It also includes processes that are executed individually.
[0236]
Further, in this specification, the system represents the entire apparatus constituted by a plurality of apparatuses.
[0237]
【The invention's effect】
According to the present invention, correction data corrected more appropriately can be obtained, and a decoded image closer to the original image can be obtained.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of a conventional apparatus that performs image compression processing.
FIG. 2 is a block diagram showing a configuration of an embodiment of an image processing apparatus to which the present invention is applied.
FIG. 3 is a diagram for explaining compression processing in the transmission apparatus of FIG. 2;
FIG. 4 is a diagram for explaining decoding processing of the receiving device in FIG. 2;
FIG. 5 is a block diagram illustrating a configuration example of the transmission apparatus in FIG. 2;
6 is a block diagram illustrating a functional configuration example of the transmission apparatus in FIG. 2;
7 is a flowchart for explaining the operation of the transmission apparatus in FIG. 6;
FIG. 8 is a flowchart illustrating a simple thinning process.
FIG. 9 is a diagram illustrating a simple thinning process.
FIG. 10 is a flowchart illustrating an image averaging process.
FIG. 11 is a diagram illustrating image averaging processing.
12 is a block diagram illustrating a configuration example of a correction unit in FIG. 6. FIG.
13 is a flowchart illustrating the operation of the correction unit in FIG.
14 is a block diagram illustrating a configuration example of a motion estimation unit of the transmission device in FIG. 6;
15 is a flowchart illustrating processing of a motion estimation unit in FIG.
16 is a block diagram illustrating a configuration example of a local decoding unit in FIG. 6. FIG.
FIG. 17 is a diagram for explaining a class classification block;
FIG. 18 is a diagram illustrating another example of a class classification block.
FIG. 19 is a diagram illustrating a predicted value calculation block.
FIG. 20 is another diagram for explaining a prediction value calculation block;
FIG. 21 is a diagram for explaining class classification processing;
FIG. 22 is a diagram for explaining class classification processing;
FIG. 23 is a diagram for explaining ADRC processing;
FIG. 24 is a diagram for explaining ADRC processing;
FIG. 25 is a flowchart for explaining the operation of the local decoding unit in FIG. 16;
26 is a block diagram illustrating a configuration example of an error calculation unit in FIG. 6;
FIG. 27 is a flowchart for explaining the operation of the error calculation unit of FIG. 26;
FIG. 28 is a block diagram illustrating a configuration example of a control unit in FIG. 6;
FIG. 29 is a flowchart for explaining the operation of the control unit of FIG. 28;
30 is a block diagram illustrating a configuration example of the reception device in FIG. 2;
31 is a block diagram illustrating a functional configuration example of the reception device in FIG. 2;
32 is a flowchart for explaining the operation of the receiving apparatus in FIG. 31;
33 is a block diagram illustrating a configuration of an embodiment of an image processing apparatus that calculates a prediction coefficient stored in a prediction coefficient ROM of FIG.
34 is a flowchart for explaining the operation of the image processing apparatus in FIG. 33;
FIG. 35 is a diagram illustrating a prediction tap.
[Explanation of symbols]
41 transmitting device, 42 recording medium, 43 transmission path, 44 receiving device, 111 reduced image generating unit, 112 correcting unit, 113 motion estimating unit, 114 local decoding unit, 115 error calculating unit, 116 control unit, 117 multiplexing unit, 131 Correction Circuit, 132 Correction Value ROM, 151, 152, 153 Frame Memory, 154, 155 Motion Vector Detection Unit, 261 Class Classification Blocking Circuit, 262 Prediction Value Calculation Blocking Circuit, 263 Class Classification Adaptive Processing Circuit, 264 ADRC processing circuit, 265 class classification circuit, 266 prediction coefficient ROM, 267 prediction circuit, 351 blocking circuit, 352 square error calculation circuit, 353, 354 calculator, 355 accumulator, 356 memory, 361 prediction coefficient memory, 362 Correction data memory, 363 error information memory, 364 comparison circuit, 365 control circuit, 572 separation unit, 573 class classification block circuit, 574 ADRC processing circuit, 575 class classification circuit, 576 prediction circuit, 576A memory, 577 motion estimation unit , 578 Prediction value calculation blocking circuit, 590 motion estimation unit, 591 learning blocking circuit, 592 teacher blocking circuit, 593 ADRC processing circuit, 594 class classification circuit, 595 switch, 596 learning data memory, 597 counter, 598 Teacher data memory, 599 arithmetic circuit, 600 memory

Claims (7)

原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮手段と、
前記圧縮手段により生成された前記縮小画像データの画素値、または、前記縮小画像データの画素値を補正した補正データの画素値を補正し、前記補正データを生成する補正手段と、
前記補正手段により生成された前記補正データであって、前記原画像のうちの第1の原画像に対応する第1の補正データと、前記第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、前記第1の補正データと前記第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定手段と、
前記第1の補正データを構成する画素のうちの1つを注目画素とし、前記第2の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素、または、前記第3の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、前記注目画素を少なくとも予測補正データとして抽出する抽出手段と、
前記抽出手段により前記予測補正データとして抽出された画素の画素値、および、前記原画像の画素値の予測値を予測するための予測式の係数である予測係数を前記予測式に代入して、前記第1の原画像における前記注目画素を含む前記注目画素の近傍の領域の画素値の予測値を演算する演算手段と、
前記演算手段により演算された前記予測値からなる予測画像の、前記第1の原画像に対する前記予測誤差を算出する予測誤差算出手段と、
前記予測誤差算出手段により算出された前記予測誤差の所定の閾値との比較、または、前記補正データを生成した回数の所定の回数との比較を行うことにより、前記補正手段により生成された前記第1の補正データが前記第1の原画像の符号化結果として適正であるか否かを判定する判定手段と、
前記判定手段により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定された場合、そのときの前記第1の補正データを最適な圧縮データとして出力する出力手段と
を備え、
前記判定手段により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定されるまで、
前記補正手段は、前記予測誤差が減少するように画素値を補正する方向および量を調整しながら前記第1の補正データを生成し、
前記動き推定手段は、前記第1の補正データと前記第2の補正データとの間の動き、または、前記第1の補正データと前記第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、
前記抽出手段は、前記予測補正データを抽出し、
前記演算手段は、前記注目画素の近傍の領域の画素値の予測値を演算し、
前記予測誤差算出手段は、前記予測誤差を算出する
処理を繰り返す
ことを特徴とする画像符号化装置。
Compression means for reducing the number of pixels of the original image and generating reduced image data;
Correction means for correcting the pixel value of the reduced image data generated by the compression means or the pixel value of correction data obtained by correcting the pixel value of the reduced image data, and generating the correction data;
The correction data generated by the correction means, the first correction data corresponding to the first original image of the original images, and the second temporally prior to the first original image. Movement between second correction data corresponding to the original image, or third correction data corresponding to a third original image temporally later than the first correction data and the first original image Motion estimation means for estimating at least one of the motions between and generating a motion vector;
One of the pixels constituting the first correction data is set as a target pixel, and a pixel at a position moved by the motion vector of the target pixel from a position corresponding to the target pixel in the second correction data, Alternatively, at least one of the pixels at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the third correction data, and the target pixel are extracted as at least prediction correction data. Extraction means to
Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting the pixel value of the pixel extracted as the prediction correction data by the extraction unit and the prediction value of the pixel value of the original image into the prediction formula, A computing means for computing a predicted value of a pixel value in a region near the target pixel including the target pixel in the first original image;
Prediction error calculation means for calculating the prediction error of the prediction image composed of the prediction values calculated by the calculation means with respect to the first original image;
By comparing the prediction error calculated by the prediction error calculation means with a predetermined threshold or by comparing the number of times the correction data has been generated with a predetermined number of times, the first error generated by the correction means is calculated . a determination unit configured to determine whether a proper first correction data as the coded result of the first original image,
When it is determined by the determination means that the first correction data is appropriate as the encoding result of the first original image, the first correction data at that time is output as optimum compressed data Means and
Until it is determined by the determination means that the first correction data is appropriate as an encoding result of the first original image,
The correction unit generates the first correction data while adjusting a direction and an amount of correcting a pixel value so that the prediction error is reduced ,
The motion estimation means estimates at least one of a motion between the first correction data and the second correction data, or a motion between the first correction data and the third correction data. And generate a motion vector,
The extraction means extracts the prediction correction data,
The calculation means calculates a predicted value of a pixel value in a region near the target pixel,
The prediction error calculation means calculates the prediction error
An image encoding apparatus characterized by repeating the processing .
前記動き推定手段は、
前記補正手段により生成された前記第1の補正データ、前記第2の補正データ、および前記第3の補正データを保持する補正データ保持手段と、
前記補正データ保持手段により保持されている前記第1の補正データと前記第2の補正データとの間の絶対差分和を計算する第1の計算手段と、
前記補正データ保持手段により保持されている前記第1の補正データと前記第3の補正データとの間の絶対差分和を計算する第2の計算手段と、
前記第1の計算手段により計算された前記絶対差分和の最小値を検出する第1の最小値検出手段と、
前記第2の計算手段により計算された前記絶対差分和の最小値を検出する第2の最小値検出手段と
を備えることを特徴とする請求項1に記載の画像符号化装置。
The motion estimation means includes
Correction data holding means for holding the first correction data, the second correction data, and the third correction data generated by the correction means;
First calculation means for calculating a sum of absolute differences between the first correction data and the second correction data held by the correction data holding means;
Second calculation means for calculating an absolute difference sum between the first correction data and the third correction data held by the correction data holding means;
First minimum value detecting means for detecting a minimum value of the absolute difference sum calculated by the first calculating means;
The image encoding apparatus according to claim 1, further comprising: a second minimum value detecting unit that detects a minimum value of the absolute difference sum calculated by the second calculating unit.
前記予測手段は、
前記補正データを、その画素値に応じて所定のクラスに分類するクラス分類手段と、
前記クラス毎に前記予測係数を保持し、前記クラス分類手段により分類された前記クラスに対応する予測係数を出力する予測係数保持手段と
をさらに備え、
前記演算手段は、前記抽出手段により前記予測補正データとして抽出された画素の画素値、および、前記予測係数保持手段により出力された前記予測係数を前記予測式に代入して、前記予測値を演算する
を備えることを特徴とする請求項1に記載の画像符号化装置。
The prediction means includes
Class classification means for classifying the correction data into a predetermined class according to the pixel value;
A prediction coefficient holding unit that holds the prediction coefficient for each class and outputs a prediction coefficient corresponding to the class classified by the class classification unit;
The calculation unit calculates the prediction value by substituting the pixel value of the pixel extracted as the prediction correction data by the extraction unit and the prediction coefficient output by the prediction coefficient holding unit into the prediction formula. The image encoding apparatus according to claim 1, further comprising:
前記出力手段は、出力する前記補正データが分類された前記クラスに対応する前記予測係数をさらに出力する
ことを特徴とする請求項3に記載の画像符号化装置。
The image encoding apparatus according to claim 3, wherein the output unit further outputs the prediction coefficient corresponding to the class into which the correction data to be output is classified.
原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮ステップと、
前記圧縮ステップの処理により生成された前記縮小画像データの画素値、または、前記縮小画像データの画素値を補正した補正データの画素値を補正し、前記補正データを生成する補正ステップと、
前記補正ステップの処理により生成された前記補正データであって、前記原画像のうちの第1の原画像に対応する第1の補正データと、前記第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、前記第1の補正データと前記第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定ステップと、
前記第1の補正データを構成する画素のうちの1つを注目画素とし、前記第2の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素、または、前記第3の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、前記注目画素を少なくとも予測補正データとして抽出する抽出ステップと、
前記抽出ステップの処理により前記予測補正データとして抽出された画素の画素値、および、前記原画像の画素値の予測値を予測するための予測式の係数である予測係数を前記予測式に代入して、前記第1の原画像における前記注目画素を含む前記注目画素の近傍の領域の画素値の予測値を演算する演算ステップと、
前記演算ステップの処理により演算された前記予測値からなる予測画像の、前記第1の原画像に対する前記予測誤差を算出する予測誤差算出ステップと、
前記予測誤差算出ステップの処理により算出された前記予測誤差の所定の閾値との比較、または、前記補正データを生成した回数の所定の回数との比較を行うことにより、前記補正ステップの処理により生成された前記補正データが前記第1の原画像の符号化結果として適正であるか否かを判定する判定ステップと、
前記判定ステップの処理により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定された場合、そのときの前記第1の補正データを最適な圧縮データとして出力する出力ステップと
を含み、
前記判定ステップの処理により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定されるまで、
前記補正ステップの処理により、前記予測誤差が減少するように画素値を補正する方向および量を調整しながら前記第1の補正データを生成し、
前記動き推定ステップの処理により、前記第1の補正データと前記第2の補正データとの間の動き、または、前記第1の補正データと前記第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、
前記抽出ステップの処理により、前記予測補正データを抽出し、
前記演算ステップの処理により、前記注目画素の近傍の領域の画素値の予測値を演算し、
前記予測誤差算出ステップの処理により、前記予測誤差を算出する
処理を繰り返す
ことを特徴とする画像符号化方法。
A compression step of compressing the original image by reducing the number of pixels and generating reduced image data;
A correction step of correcting the pixel value of the reduced image data generated by the processing of the compression step or the pixel value of correction data obtained by correcting the pixel value of the reduced image data, and generating the correction data;
The correction data generated by the process of the correction step, the first correction data corresponding to the first original image of the original images, and the first temporally prior to the first original image. Movement between second correction data corresponding to two original images, or a third corresponding to a third original image temporally later than the first correction data and the first original image. A motion estimation step for estimating at least one of motions between the correction data and generating a motion vector;
One of the pixels constituting the first correction data is set as a target pixel, and a pixel at a position moved by the motion vector of the target pixel from a position corresponding to the target pixel in the second correction data; Alternatively, at least one of the pixels at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the third correction data, and the target pixel are extracted as at least prediction correction data. An extraction step to
Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting the pixel value of the pixel extracted as the prediction correction data by the processing of the extraction step and the prediction value of the pixel value of the original image into the prediction formula. Calculating a predicted value of a pixel value of a region in the vicinity of the target pixel including the target pixel in the first original image;
A prediction error calculating step of calculating the prediction error of the predicted image composed of the predicted values calculated by the processing of the calculating step with respect to the first original image;
Generated by the processing of the correction step by comparing the prediction error calculated by the processing of the prediction error calculation step with a predetermined threshold or by comparing the number of times of generating the correction data with a predetermined number of times. A determination step of determining whether or not the corrected data is appropriate as an encoding result of the first original image;
When it is determined by the determination step that the first correction data is appropriate as the encoding result of the first original image, the first correction data at that time is output as optimum compressed data. Including an output step and
Until it is determined by the process of the determination step that the first correction data is appropriate as the encoding result of the first original image,
The correction step generates the first correction data while adjusting the direction and amount for correcting the pixel value so that the prediction error is reduced ,
At least one of the movement between the first correction data and the second correction data or the movement between the first correction data and the third correction data by the process of the movement estimation step. , Generate a motion vector,
The prediction correction data is extracted by the processing of the extraction step,
By the processing of the calculation step, a predicted value of a pixel value in a region near the target pixel is calculated,
The prediction error is calculated by the processing of the prediction error calculation step.
An image encoding method characterized by repeating the processing .
原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮ステップと、
前記圧縮ステップの処理により生成された前記縮小画像データの画素値、または、前記縮小画像データの画素値を補正した補正データの画素値を補正し、前記補正データを生成する補正ステップと、
前記補正ステップの処理により生成された前記補正データであって、前記原画像のうちの第1の原画像に対応する第1の補正データと、前記第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、前記第1の補正データと前記第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定ステップと、
前記第1の補正データを構成する画素のうちの1つを注目画素とし、前記第2の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素、または、前記第3の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、前記注目画素を少なくとも予測補正データとして抽出する抽出ステップと、
前記抽出ステップの処理により前記予測補正データとして抽出された画素の画素値、および、前記原画像の画素値の予測値を予測するための予測式の係数である予測係数を前記予測式に代入して、前記第1の原画像における前記注目画素を含む前記注目画素の近傍の領域の画素値の予測値を演算する演算ステップと、
前記演算ステップの処理により演算された前記予測値からなる予測画像の、前記第1の原画像に対する前記予測誤差を算出する予測誤差算出ステップと、
前記予測誤差算出ステップの処理により算出された前記予測誤差の所定の閾値との比較、または、前記補正データを生成した回数の所定の回数との比較を行うことにより、前記補正ステップの処理により生成された前記補正データが前記第1の原画像の符号化結果として適正であるか否かを判定する判定ステップと、
前記判定ステップの処理により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定された場合、そのときの前記第1の補正データを最適な圧縮データとして出力する出力ステップと
を含み、
前記判定ステップの処理により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定されるまで、
前記補正ステップの処理により、前記予測誤差が減少するように画素値を補正する方向および量を調整しながら前記第1の補正データを生成し、
前記動き推定ステップの処理により、前記第1の補正データと前記第2の補正データとの間の動き、または、前記第1の補正データと前記第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、
前記抽出ステップの処理により、前記予測補正データを抽出し、
前記演算ステップの処理により、前記注目画素の近傍の領域の画素値の予測値を演算し、
前記予測誤差算出ステップの処理により、前記予測誤差を算出する
処理を繰り返す
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
A compression step of compressing the original image by reducing the number of pixels and generating reduced image data;
A correction step of correcting the pixel value of the reduced image data generated by the processing of the compression step or the pixel value of correction data obtained by correcting the pixel value of the reduced image data, and generating the correction data;
The correction data generated by the process of the correction step, the first correction data corresponding to the first original image of the original images, and the first temporally prior to the first original image. Movement between second correction data corresponding to two original images, or a third corresponding to a third original image temporally later than the first correction data and the first original image. A motion estimation step for estimating at least one of motions between the correction data and generating a motion vector;
One of the pixels constituting the first correction data is set as a target pixel, and a pixel at a position moved by the motion vector of the target pixel from a position corresponding to the target pixel in the second correction data; Alternatively, at least one of the pixels at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the third correction data, and the target pixel are extracted as at least prediction correction data. An extraction step to
Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting the pixel value of the pixel extracted as the prediction correction data by the processing of the extraction step and the prediction value of the pixel value of the original image into the prediction formula. Calculating a predicted value of a pixel value of a region in the vicinity of the target pixel including the target pixel in the first original image;
A prediction error calculating step of calculating the prediction error of the predicted image composed of the predicted values calculated by the processing of the calculating step with respect to the first original image;
Generated by the processing of the correction step by comparing the prediction error calculated by the processing of the prediction error calculation step with a predetermined threshold or by comparing the number of times of generating the correction data with a predetermined number of times. A determination step of determining whether or not the corrected data is appropriate as an encoding result of the first original image;
When it is determined by the determination step that the first correction data is appropriate as the encoding result of the first original image, the first correction data at that time is output as optimum compressed data. Including an output step and
Until it is determined by the process of the determination step that the first correction data is appropriate as the encoding result of the first original image,
The correction step generates the first correction data while adjusting the direction and amount for correcting the pixel value so that the prediction error is reduced ,
At least one of the movement between the first correction data and the second correction data or the movement between the first correction data and the third correction data by the process of the movement estimation step. , Generate a motion vector,
The prediction correction data is extracted by the processing of the extraction step,
By the processing of the calculation step, a predicted value of a pixel value in a region near the target pixel is calculated,
The prediction error is calculated by the processing of the prediction error calculation step.
A recording medium on which a computer-readable program is recorded, wherein the processing is repeated .
原画像の画素数を少なくすることにより圧縮し、縮小画像データを生成する圧縮ステップと、
前記圧縮ステップの処理により生成された前記縮小画像データの画素値、または、前記縮小画像データの画素値を補正した補正データの画素値を補正し、前記補正データを生成する補正ステップと、
前記補正ステップの処理により生成された前記補正データであって、前記原画像のうちの第1の原画像に対応する第1の補正データと、前記第1の原画像より時間的に前の第2の原画像に対応する第2の補正データとの間の動き、または、前記第1の補正データと前記第1の原画像より時間的に後の第3の原画像に対応する第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成する動き推定ステップと、
前記第1の補正データを構成する画素のうちの1つを注目画素とし、前記第2の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素、または、前記第3の補正データにおける前記注目画素に対応する位置から前記注目画素の前記動きベクトルだけ移動させた位置の画素のうち少なくとも一方の画素、および、前記注目画素を少なくとも予測補正データとして抽出する抽出ステップと、
前記抽出ステップの処理により前記予測補正データとして抽出された画素の画素値、および、前記原画像の画素値の予測値を予測するための予測式の係数である予測係数を前記予測式に代入して、前記第1の原画像における前記注目画素を含む前記注目画素の近傍の領域の画素値の予測値を演算する演算ステップと、
前記演算ステップの処理により演算された前記予測値からなる予測画像の、前記第1の原画像に対する前記予測誤差を算出する予測誤差算出ステップと、
前記予測誤差算出ステップの処理により算出された前記予測誤差の所定の閾値との比較、または、前記補正データを生成した回数の所定の回数との比較を行うことにより、前記補正ステップの処理により生成された前記補正データが前記第1の原画像の符号化結果として適正であるか否かを判定する判定ステップと、
前記判定ステップの処理により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定された場合、そのときの前記第1の補正データを最適な圧縮データとして出力する出力ステップと
を含み、
前記判定ステップの処理により、前記第1の補正データが前記第1の原画像の符号化結果として適正であると判定されるまで、
前記補正ステップの処理により、前記予測誤差が減少するように画素値を補正する方向および量を調整しながら前記第1の補正データを生成し、
前記動き推定ステップの処理により、前記第1の補正データと前記第2の補正データとの間の動き、または、前記第1の補正データと前記第3の補正データとの間の動きの少なくとも一方を推定し、動きベクトルを生成し、
前記抽出ステップの処理により、前記予測補正データを抽出し、
前記演算ステップの処理により、前記注目画素の近傍の領域の画素値の予測値を演算し、
前記予測誤差算出ステップの処理により、前記予測誤差を算出する
処理を繰り返す
処理をコンピュータに実行させるプログラム。
A compression step of compressing the original image by reducing the number of pixels and generating reduced image data;
A correction step of correcting the pixel value of the reduced image data generated by the processing of the compression step or the pixel value of correction data obtained by correcting the pixel value of the reduced image data, and generating the correction data;
The correction data generated by the process of the correction step, the first correction data corresponding to the first original image of the original images, and the first temporally prior to the first original image. Movement between second correction data corresponding to two original images, or a third corresponding to a third original image temporally later than the first correction data and the first original image. A motion estimation step for estimating at least one of motions between the correction data and generating a motion vector;
One of the pixels constituting the first correction data is set as a target pixel, and a pixel at a position moved by the motion vector of the target pixel from a position corresponding to the target pixel in the second correction data; Alternatively, at least one of the pixels at the position moved by the motion vector of the target pixel from the position corresponding to the target pixel in the third correction data, and the target pixel are extracted as at least prediction correction data. An extraction step to
Substituting a prediction coefficient that is a coefficient of a prediction formula for predicting the pixel value of the pixel extracted as the prediction correction data by the processing of the extraction step and the prediction value of the pixel value of the original image into the prediction formula. Calculating a predicted value of a pixel value of a region in the vicinity of the target pixel including the target pixel in the first original image;
A prediction error calculating step of calculating the prediction error of the predicted image composed of the predicted values calculated by the processing of the calculating step with respect to the first original image;
Generated by the processing of the correction step by comparing the prediction error calculated by the processing of the prediction error calculation step with a predetermined threshold or by comparing the number of times of generating the correction data with a predetermined number of times. A determination step of determining whether or not the corrected data is appropriate as an encoding result of the first original image;
When it is determined by the determination step that the first correction data is appropriate as the encoding result of the first original image, the first correction data at that time is output as optimum compressed data. Including an output step and
Until it is determined by the process of the determination step that the first correction data is appropriate as the encoding result of the first original image,
The correction step generates the first correction data while adjusting the direction and amount for correcting the pixel value so that the prediction error is reduced ,
At least one of the movement between the first correction data and the second correction data or the movement between the first correction data and the third correction data by the process of the movement estimation step. , Generate a motion vector,
The prediction correction data is extracted by the processing of the extraction step,
By the processing of the calculation step, a predicted value of a pixel value in a region near the target pixel is calculated,
The prediction error is calculated by the processing of the prediction error calculation step.
A program that causes a computer to execute processing that repeats processing.
JP2002007325A 2002-01-16 2002-01-16 Image encoding apparatus and method, recording medium, and program Expired - Fee Related JP4518727B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002007325A JP4518727B2 (en) 2002-01-16 2002-01-16 Image encoding apparatus and method, recording medium, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002007325A JP4518727B2 (en) 2002-01-16 2002-01-16 Image encoding apparatus and method, recording medium, and program

Publications (2)

Publication Number Publication Date
JP2003209847A JP2003209847A (en) 2003-07-25
JP4518727B2 true JP4518727B2 (en) 2010-08-04

Family

ID=27645873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002007325A Expired - Fee Related JP4518727B2 (en) 2002-01-16 2002-01-16 Image encoding apparatus and method, recording medium, and program

Country Status (1)

Country Link
JP (1) JP4518727B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5621025B1 (en) * 2013-09-02 2014-11-05 泰 坂野 Image processing system, image processing method, and image processing program

Also Published As

Publication number Publication date
JP2003209847A (en) 2003-07-25

Similar Documents

Publication Publication Date Title
JP3748088B2 (en) Image processing apparatus and method, and learning apparatus and method
JP4462823B2 (en) Image signal processing apparatus and processing method, coefficient data generating apparatus and generating method used therefor, and program for executing each method
JPH11187407A (en) Image coder, and image coding method therefor, served medium, image decoder and image decoding method therefor, and system and method of learning
KR100574732B1 (en) Image coding apparatus, image coding method, image decoding method, image decoding apparatus, image data transmitting method and recording medium
JP4518727B2 (en) Image encoding apparatus and method, recording medium, and program
JP2012104969A (en) Motion vector generation device, motion vector generation method and computer program
JP3747970B2 (en) Image encoding device, image encoding method, image decoding device, and image decoding method
Marvasti-Zadeh et al. A novel boundary matching algorithm for video temporal error concealment
JP4554138B2 (en) Image encoding apparatus and method, image decoding apparatus and method, image processing system, recording medium, and program
JP3844031B2 (en) Image coding apparatus and image coding method, and image decoding apparatus and image decoding method
JP4552262B2 (en) Noise reduction apparatus and method
JP4016249B2 (en) Image encoding apparatus and encoding method, image decoding apparatus and decoding method, recording medium, program, and image processing system
JP4534951B2 (en) Image coding apparatus, image coding method, image processing system, image processing method, transmission method, and recording medium
JP3912558B2 (en) Image encoding apparatus, image encoding method, and recording medium
JP2003299096A (en) Information signal processing apparatus, method therefor, video signal processing apparatus and video display apparatus, apparatus and method of generating coefficient class data using the same, apparatus and method of generating coefficient class data, program for executing each method, and computer-readable medium recording this program
JP4140662B2 (en) Coefficient seed data generation apparatus and coefficient data generation apparatus
JP4552263B2 (en) Digital signal processing apparatus and method, and digital image signal processing apparatus and method
JP4552264B2 (en) Error correction apparatus and method
JP3952326B2 (en) Image coding apparatus, image coding method, image processing system, image processing method, transmission method, and recording medium
JP4158474B2 (en) Image signal processing apparatus and processing method, coefficient data generating apparatus and generating method used therefor, and program for executing each method
JPH1093980A (en) Image encoder and image encoding method, image decoder and image decoding method, transmitting method and recording medium
JP2000312364A (en) Image processing unit and image processing method
JP4566877B2 (en) Image processing apparatus and method
JP4807349B2 (en) Learning apparatus and method
JP3922286B2 (en) Coefficient learning apparatus and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070821

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071113

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071204

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080307

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100518

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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