以下、図面を参照して、発明の実施の形態について説明する。
図1は、本発明を適用した画像処理システムの一実施の形態の構成例を示している。なお、システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは、問わない。
図1の画像処理システムでは、符号化対象の画像データが、符号化装置1に供給される。符号化装置1は、そこに供給される画像データを符号化し、その結果得られる符号化データを出力する。この符号化データは、記録媒体3に供給されて記録され、あるいは、伝送媒体4を介して伝送(送信)される。
ここで、記録媒体3としては、例えば、光ディスク、磁気ディスク、光磁気ディスク、磁気テープ、半導体メモリその他を採用することができる。伝送媒体4としては、例えば、インターネット、LAN、電話回線、衛星回線、地上波、赤外線その他の任意の有線回線または無線回線を採用することができる。
復号装置2には、記録媒体3から符号化データが再生されて供給される。また、復号装置2には、伝送媒体4を介して伝送されてくる符号化データが受信されて供給される。
復号装置2は、そこに供給される符号化データを復号し、その結果得られる復号画像データを出力する。この復号画像データは、例えば、図示せぬディスプレイ等に供給されて表示される。
次に、図2は、図1の符号化装置1の構成例を示している。
符号化装置1に入力された符号化対象の画像データは、メモリ11に供給される。メモリ11は、そこに供給される画像データを、例えば、1フレーム(またはフィールド)単位で記憶する。
高圧縮エンコーダ12は、メモリ11に記憶された画像データを、所定のブロックの単位で読み出し、そのブロックを、高圧縮の符号化方式である、例えば、ベクトル量子化(VQ(Vector Quantization))によって符号化する。そして、高圧縮エンコーダ12は、その符号化の結果得られる符号化データを、選択部15に供給する。
高エラー耐性エンコーダ13は、メモリ11に記憶された画像データを、所定のブロックの単位で読み出し、そのブロックを、高エラー耐性の符号化方式である、例えば、ADRCによって符号化する。そして、高エラー耐性エンコーダ13は、その符号化の結果得られる符号化データを、選択部15に供給する。
なお、高圧縮エンコーダ12が符号化の対象とするブロックと、高エラー耐性エンコーダ13が符号化の対象とするブロックとは、同一サイズであっても良いし、異なるサイズであっても良い。ここでは、高圧縮エンコーダ12が、例えば、横×縦が4×4画素のブロックを符号化の対象とし、高エラー耐性エンコーダ13が、例えば、横×縦が8×8画素のブロックを符号化の対象とするものとする。即ち、高圧縮エンコーダ12は、メモリ11に記憶された1フレームの画像データを、4×4画素のブロックに分割して、そのブロックを符号化するものとする。また、高エラー耐性エンコーダ13は、メモリ11に記憶された1フレームの画像データを、8×8画素のブロックに分割して、そのブロックを符号化するものとする。
ここで、高圧縮エンコーダ12がベクトル量子化による符号化の対象とする4×4画素のブロックを、以下、適宜、VQブロックという。また、高エラー耐性エンコーダ13がADRCによる符号化の対象とする8×8画素のブロックを、以下、適宜、ADRCブロックという。
評価判定部14は、メモリ11に記憶された画像データを、所定のブロックの単位ごとに評価し、その評価結果に基づいて、そのブロックの符号化に用いるべき符号化方式を判定する。そして、判定評価部14は、その判定結果に基づき、選択部15を制御する。
なお、評価判定部14が評価を行う単位のブロックを、以下、適宜、評価ブロックという。ここでは、例えば、メモリ11に記憶された1フレームの画像データを、8×8画素単位に分割したブロックを、評価ブロックとすることとする。
従って、ここでは、評価ブロックは、ADRCブロックに等しい。また、評価ブロックは、4つのVQブロックを含む(4つのVQブロックからなる)。即ち、評価ブロックは、1つのADRCブロックと、4つのVQブロックに、それぞれ対応する。
選択部15は、評価判定部14の制御にしたがい、高圧縮エンコーダ12が出力する符号化データ(以下、適宜、VQ符号化データという)、または高エラー耐性エンコーダ13が出力する符号化データ(以下、適宜、ADRC符号化データという)を選択し、最終的な符号化結果(評価ブロックの符号化結果)として出力する。
次に、図3は、図2の高圧縮エンコーダ12の構成例を示している。
上述したように、高圧縮エンコーダ12は、メモリ11(図2)に記憶された画像データを、VQブロックの単位で読み出し、そのVQブロックを、ベクトル量子化によって符号化する。
即ち、ブロック取得部21は、メモリ11から、VQブロック(の画像データ)を読み出し、最小値検出部22、最大値検出部23、および差分演算部25に供給する。
最小値検出部22は、ブロック取得部21から供給されたVQブロックを構成する4×4画素の画素値のうちの最小値MINを検出し、DR検出部24、差分演算部25、およびバッファ29に供給する。
同時に、最大値検出部23は、ブロック取得部21から供給されたVQブロックを構成する4×4画素の画素値のうちの最大値MAXを検出し、DR検出部24に供給する。
DR検出部24は、最大値検出部23から供給される最大値MAXから、最小値検出部22から供給される最小値MINを減算し、その減算値を、ブロック取得部21が出力したVQブロックのダイナミックレンジDRとして、正規化部26、およびバッファ29に供給する。
一方、差分演算部25は、ブロック取得部21から供給されたVQブロックを構成する4×4画素の画素値それぞれから、最小値検出部22から供給された最小値MINを減算し、その減算値を画素値としたVQブロックを、正規化部26に供給する。正規化部26は、差分演算部25から供給されたVQブロックを構成する4×4画素の画素値(差分演算部25で求められた減算値)それぞれを、DR検出部24から供給されたダイナミックレンジDRで除算することにより正規化し、ベクトル量子化部27に供給する。
ベクトル量子化部27は、コードブック記憶部28に記憶されたコードブックを参照することにより、正規化部26から供給されたVQブロックを構成する4×4画素の画素値(正規化部26で正規化された画素値)をコンポーネントとするベクトルをベクトル量子化し、そのベクトル量子化の結果得られるコード(以下、適宜、VQコードという)を、バッファ29に供給する。
バッファ29は、ブロック取得部21でメモリ11から読み出されたVQブロックについて、最小値検出部22から供給された最小値MIN、DR検出部24から供給されたダイナミックレンジDR、およびベクトル量子化部27から供給されたVQコードを、所定の順番で記憶し、その最小値MIN、ダイナミックレンジDR、およびVQコードを、VQ符号化データとして、選択部15(図2)に出力する。
図4は、図3の高圧縮エンコーダ12がVQブロックを符号化することにより得られるVQ符号化データのフォーマットを示している。
VQ符号化データは、その先頭から、例えば、VQブロックについてのダイナミックレンジDR、最小値MIN、およびVQコードが順次配置されて構成される。
なお、VQ符号化データを構成するダイナミックレンジDR、最小値MIN、およびVQコードは、いずれも固定長であり、従って、VQブロックのVQ符号化データ全体も、固定長である。
次に、図5は、図2の高エラー耐性エンコーダ13の構成例を示している。
上述したように、高エラー耐性エンコーダ13は、メモリ11(図2)に記憶された画像データを、ADRCブロックの単位で読み出し、そのADRCブロックを、ADRCによって符号化する。
ここで、KビットADRCにおいては、ADRCブロックを構成する画素の画素値の最大値MAXと最小値MINが検出され、DR=MAX-MINを、ADRCブロックのダイナミックレンジDRとし、このダイナミックレンジDRに基づいて、ADRCブロックを構成する各画素の画素値がKビットに再量子化される。即ち、ADRCブロックを構成する各画素の画素値から、最小値MINが減算され、その減算値がDR/2Kで除算(量子化)される。そして、以上のようにして得られる、ADRCブロックを構成するKビットの各画素の画素値を、所定の順番で並べたビット列が、ADRCコードとして出力される。
即ち、ブロック取得部41は、メモリ11から、ADRCブロック(の画像データ)を読み出し、最小値検出部42、最大値検出部43、および差分演算部45に供給する。
最小値検出部42は、ブロック取得部41から供給されたADRCブロックを構成する8×8画素の画素値のうちの最小値MINを検出し、DR検出部44、差分演算部45、およびバッファ48に供給する。
同時に、最大値検出部43は、ブロック取得部41から供給されたADRCブロックを構成する8×8画素の画素値のうちの最大値MAXを検出し、DR検出部44に供給する。
DR検出部44は、最大値検出部43から供給される最大値MAXから、最小値検出部42から供給される最小値MINを減算し、その減算値を、ブロック取得部41が出力したADRCブロックのダイナミックレンジDRとして、ビット数決定部46、およびバッファ48に供給する。
ビット数決定部46は、DR検出部44からのダイナミックレンジDRに応じて、ADRCブロックの各画素に対して割り当てる割り当てビット数Kを決定する。即ち、ビット数決定部46は、例えば、0乃至4ビットの範囲で、ダイナミックレンジDRが大であるほど、大きい値のビット数を、割り当てビット数Kに決定する。そして、ビット数決定部46は、DR検出部44からのダイナミックレンジDRを2の割り当てビット数K乗(2K)で除算した除算値DR/2Kを、量子化ステップとして、量子化部47に供給する。
一方、差分演算部45は、ブロック取得部41から供給されたADRCブロックを構成する8×8画素の画素値それぞれから、最小値検出部42から供給された最小値MINを減算し、その減算値を画素値としたADRCブロックを、量子化部47に供給する。
量子化部47は、差分演算部45から供給されたADRCブロックを構成する8×8画素の画素値(差分演算部45で求められた減算値)それぞれを、DR検出部44から供給された量子化ステップDR/2Kで除算すること(例えば、小数点以下切り捨て)により、割り当てビット数Kで表現される値に量子化(正規化)し、その量子化結果を、所定の順番で並べたビット列を、ADRCコードとして、バッファ48に供給する。
バッファ48は、ブロック取得部41でメモリ11から読み出されたADRCブロックについて、最小値検出部42から供給された最小値MIN、DR検出部44から供給されたダイナミックレンジDR、および量子化部47から供給されたADRCコードを、所定の順番で記憶し、その最小値MIN、ダイナミックレンジDR、およびADRCコードを、ADRC符号化データとして、選択部15(図2)に出力する。
図6は、図5の高エラー耐性エンコーダ13がADRCブロックを符号化することにより得られるADRC符号化データのフォーマットを示している。
ADRC符号化データは、その先頭から、例えば、ADRCブロックについてのダイナミックレンジDR、最小値MIN、およびADRCコードが順次配置されて構成される。
なお、ADRC符号化データを構成するダイナミックレンジDRおよび最小値MINは、いずれも固定長であるが、ADRCコードは可変長である。即ち、ADRCコードは、ADRCブロックを構成する8×8画素の画素値それぞれを量子化ステップDR/2Kで除算することにより、割り当てビット数Kで表現される値に量子化(正規化)して得られる、各画素ごとの量子化結果を並べたビット列であるから、そのビット長は、K×8×8ビットとなる。従って、ADRCコードのビット長は、割り当てビットK数によって異なる。その結果、また、ADRCブロックのADRC符号化データ全体は可変長(いわば半可変長)になる。
次に、図7は、図2の評価判定部14の構成例を示している。
高圧縮エンコーダ61は、図3の高圧縮エンコーダ12と同様に構成され、メモリ11(図2)に記憶された画像データを、VQブロック単位で符号化し、その結果得られるVQ符号化データを、高圧縮デコーダ62に供給する。高圧縮デコーダ62は、高圧縮エンコーダ61(高圧縮エンコーダ12(図3))の符号化方式に対応する復号方式で、高圧縮エンコーダ61から供給されたVQ符号化データを復号し、その結果得られるVQブロック(の復号結果)を、誤差計算部63に供給する。
誤差計算部63は、メモリ11(図2)から、評価ブロックの画像データを読み出し、その評価ブロックに対応する、高圧縮デコーダ62からの4つのVQブロックの復号画像データの、対応する評価ブロックの画像データに対する誤差(以下、適宜、VQ符号化誤差という)を求め、判定部67に供給する。
ここで、評価ブロックの画像データに対する、その評価ブロックに対応する4つのVQブロックの復号画像データの誤差(VQ符号化誤差)としては、例えば、評価ブロックを構成する画素それぞれの画像データ(画素値)と、4つのVQブロックを構成する、対応する画素の復号画像データ(復号画素値)との2乗和等を採用することができる。
一方、高エラー耐性エンコーダ64は、図5の高エラー耐性エンコーダ13と同様に構成され、メモリ11(図2)に記憶された画像データを、ADRCブロック単位で符号化し、その結果得られるADRC符号化データを、高エラー耐性デコーダ65に供給する。高エラー耐性デコーダ65は、高エラー耐性エンコーダ64(高エラー耐性エンコーダ13(図5))の符号化方式に対応する復号方式で、高エラー耐性エンコーダ64から供給されたADRC符号化データを復号し、その結果得られるADRCブロック(の復号結果)を、誤差計算部66に供給する。
誤差計算部66は、メモリ11(図2)から、誤差計算部63における場合と同一の評価ブロックの画像データを読み出し、その評価ブロックに対応する、高エラー耐性デコーダ65からの1つのADRCブロックの復号画像データの、対応する評価ブロックの画像データに対する誤差(以下、適宜、ADRC符号化誤差という)を求め、判定部67に供給する。
ここで、評価ブロックの画像データに対する、その評価ブロックに対応する1つのADRCブロックの復号画像データの誤差(ADRC符号化誤差)としては、例えば、評価ブロックを構成する画素それぞれの画像データ(画素値)と、1つのADRCブロックを構成する、対応する画素の復号画像データ(復号画素値)との2乗和等を採用することができる。
判定部67は、誤差計算部63と66からそれぞれ供給されるVQ符号化誤差とADRC符号化誤差を、評価ブロックの符号化に用いるべき符号化方式を判定するための評価値として、その評価値に基づき、評価ブロックの符号化に用いるべき符号化方式を判定する。即ち、判定部67は、評価ブロックについて得られたVQ符号化誤差(評価ブロックに対応する4つのVQブロックの復号画像データの誤差)とADRC符号化誤差(評価ブロックに対応する1つのADRCブロックの復号画像データの誤差)とを比較する。そして、判定部67は、VQ符号化誤差がADRC符号化誤差より小さい場合(または、以下の場合)、ベクトル量子化を、評価ブロックの符号化に用いるべきであると判定し、ADRC符号化誤差がVQ符号化誤差以下の場合(または、より小さい場合)、ADRCを、評価ブロックの符号化に用いるべきであると判定する。
判定部67は、評価ブロックの符号化に用いるべき符号化方式の判定後、その判定結果にしたがい、選択部15(図2)に対して、高圧縮エンコーダ12による、評価ブロックに対応する4つのVQブロックの符号化結果であるVQ符号化データの選択、または高エラー耐性エンコーダ13による、評価ブロックに対応する1つのADRCブロックの符号化結果であるADRC符号化データの選択を指示する選択信号を供給する。
即ち、判定部67は、ベクトル量子化を評価ブロックの符号化に用いるべきであると判定した場合、高圧縮エンコーダ12が出力する、その評価ブロックに対応する4つのVQブロックのVQ符号化データを選択することを指示する選択信号を、選択部15に供給する。また、判定部67は、ADRCを評価ブロックの符号化に用いるべきであると判定した場合、高エラー耐性エンコーダ13が出力する、その評価ブロックに対応する1つのADRCブロックのADRC符号化データを選択することを指示する選択信号を、選択部15に供給する。
なお、高圧縮エンコーダ61は、図2の高圧縮エンコーダ12によって兼用することが可能である。同様に、高エラー耐性エンコーダ64も、図2の高エラー耐性エンコーダ13によって兼用することが可能である。
次に、図8は、図7の高圧縮デコーダ62の構成例を示している。
高圧縮エンコーダ61(図7)が出力するVQ符号化データは、分離部81に供給される。ここで、1つのVQブロックのVQ符号化データは、図4に示したように、そのVQブロックのダイナミックレンジDR、最小値MIN、およびVQコードから構成される。
分離部81は、高圧縮エンコーダ61からのVQ符号化データを、ダイナミックレンジDR、最小値MIN、およびVQコードに分離し、VQコードをベクトル逆量子化部82に、ダイナミックレンジDRを逆正規化部84に、最小値MINを加算部85に、それぞれ供給する。
ベクトル逆量子化部82は、コードブック記憶部83に記憶されたコードブックを参照し、分離部81からのVQコードをベクトル逆量子化する。即ち、コードブック記憶部83は、図3のコードブック記憶部28と同一のコードブックを記憶しており、ベクトル逆量子化部82は、このコードブックに基づいて、分離部81からのVQコードに対応する、VQブロックを構成する4×4画素と同一の数のコンポーネントを有するコードベクトル(セントロイドベクトル)を求める。さらに、ベクトル逆量子化部82は、そのコードベクトルのコンポーネントを画素値とする4×4画素のVQブロックを、逆正規化部84に供給する。
逆正規化部84は、ベクトル逆量子化部82から供給されたVQブロックを構成する4×4画素の画素値それぞれに対して、分離部81から供給されたダイナミックレンジDRを乗算し、その乗算値それぞれを画素値とする4×4画素のVQブロックを、加算部85に供給する。
加算部85は、逆正規化部84から供給されたVQブロックを構成する4×4画素の画素値それぞれに対して、分離部81から供給された最小値MINを加算し、その加算値それぞれを画素値とする4×4画素のVQブロックを、1つのVQブロックのVQ符号化データの復号結果として出力する。
次に、図9は、図7の高エラー耐性デコーダ65の構成例を示している。
高エラー耐性エンコーダ64(図7)が出力するADRC符号化データは、分離部101に供給される。ここで、1つのADRCブロックのADRC符号化データは、図6に示したように、そのADRCブロックのダイナミックレンジDR、最小値MIN、およびADRCコードから構成される。
分離部101は、高エラー耐性エンコーダ64からのADRC符号化データを、ダイナミックレンジDR、最小値MIN、およびADRCコードに分離し、ADRCコードを逆量子化部103に、ダイナミックレンジDRをビット数認識部102に、最小値MINを加算部104に、それぞれ供給する。
ビット数認識部102は、分離部101からのダイナミックレンジDRに応じて、ADRCブロックの各画素に対して割り当てられた割り当てビット数Kを認識する。即ち、ビット数認識部102は、図5のビット数決定部46がダイナミックレンジDRに応じて画素に割り当てる割り当てビット数Kを認識しており、ビット数決定部46が割り当てビット数Kを決定するのと同様にして、ダイナミックレンジDRに基づき、ADRCブロックの各画素に対して割り当てられた割り当てビット数Kを認識する。さらに、ビット数認識部102は、分離部101からのダイナミックレンジDRを2の割り当てビット数K乗(2K)で除算した除算値DR/2Kを、量子化ステップとして、逆量子化部103に供給する。
なお、割り当てビット数Kは、ダイナミックレンジDRを参照せずに、次のようにして求めることも可能である。即ち、図6に示した1つのADRCブロックのADRC符号化データのADRCコードのビット長は、上述したように、K×8×8ビットである。従って、割り当てビット数Kは、ダイナミックレンジDRを参照しなくても、ADRCコードのビット長を、ADRCブロックを構成する8×8画素で除算することにより求めることが可能である。
逆量子化部103は、分離部101からのADRCコードを、ビット数認識部102から供給される量子化ステップDR/2Kにしたがって逆量子化する。即ち、ADRCコードは、ADRCブロックを構成する8×8画素の画素値それぞれの、量子化ステップDR/2Kによる量子化結果であるから、その8×8画素それぞれの量子化値が含まれる。逆量子化部103は、ADRCコードに含まれる8×8画素それぞれの量子化値それぞれに、量子化ステップDR/2Kを乗算し、その乗算値を画素値とする8×8画素のADRCブロックを、加算部104に供給する。
加算部104は、逆量子化部103から供給されたADRCブロックを構成する8×8画素の画素値それぞれに対して、分離部101から供給された最小値MINを加算し、その加算値それぞれを画素値とする8×8画素のADRCブロックを、1つのADRCブロックのADRC符号化データの復号結果として出力する。
次に、図10のフローチャートを参照して、図2の符号化装置1の処理について説明する。
メモリ11には、画像データが供給され、メモリ11は、その画像データを、1フレーム単位で記憶する。
そして、評価判定部14は、メモリ11に記憶された1フレーム単位の画像データを、評価ブロックに分割し、例えば、ラスタスキャン順に、注目ブロックとする。
そして、ステップS1において、高圧縮エンコーダ12、高エラー耐性エンコーダ13、および評価値判定部14は、注目ブロックを対象に処理を行う。即ち、ステップS1では、ステップS1−1,S1−2、およびS1−3の処理が行われる。
ステップS1−1では、高圧縮エンコーダ12が、注目ブロックに対応する4つのVQブロックを符号化し、その結果得られるVQ符号化データを、選択部15に出力する。また、ステップS1−2では、高エラー耐性エンコーダ13が、注目ブロックに対応する1つのADRCブロックを符号化し、その結果得られるADRC符号化データを、選択部15に出力する。さらに、ステップS1−3では、評価判定部14が、注目ブロックの符号化に用いるべき符号化方式を判定するための評価値を求める。
その後、ステップS1からS2に進み、評価判定部14は、ステップS1−3で求めた評価値に基づき、注目ブロックの符号化に用いるべき符号化方式を判定し、その判定結果に基づき、VQ符号化データまたはADRC符号化データを選択すべきことを表す選択信号を、選択部15に供給して、ステップS3に進む。
ステップS3では、選択部15は、評価判定部14からの選択信号にしたがい、注目ブロックについて、高圧縮エンコーダ12が出力するVQ符号化データ、または高エラー耐性エンコーダ13が出力するADRC符号化データのうちの一方を選択し、注目ブロックの符号化結果として出力して、ステップS4に進む。
ステップS4では、評価判定部14は、メモリ11に、符号化すべき画像データが、まだ記憶されているかどうかを判定する。ステップS4において、メモリ11に、符号化すべき画像データが、まだ記憶されていると判定された場合、評価判定部14は、ラスタスキャン順で、次の評価ブロックを、新たに注目ブロックとして、ステップS1に戻り、以下、同様の処理を繰り返す。
また、ステップS4において、メモリ11に、符号化すべき画像データが記憶されていないと判定された場合、処理を終了する。
以上のように、評価ブロックの画像データの評価結果に基づいて、その画像データの符号化に用いるべき符号化方式が、高圧縮の符号化方式であるか、または高エラー耐性の符号化方式であるかを判定して、その符号化方式による符号化結果を、画像データの最終的な符号化結果として採用するようにしたので、高画質かつ高エラー耐性の符号化を実現することができる。即ち、高エラー耐性の符号化方式であるADRCによる符号化の高エラー耐性を維持しながら、ADRCによる符号化のみの場合よりも、高圧縮率を実現することができる。
ここで、図11は、図2の符号化装置1による1フレームの画像データの符号化の様子を示している。
図11において、太線で囲んだ正方形状のブロックは、8×8画素の評価ブロックを示している。
評価ブロックの画像データが、ベクトル量子化により符号化される場合、評価ブロックに対応する(含まれる)4つの4×4画素のVQブロックが、ベクトル量子化により符号化される。また、評価ブロックの画像データが、ADRCにより符号化される場合、評価ブロックに対応する(含まれる)1つの8×8画素のADRCブロックが、ベクトル量子化により符号化される。
次に、図12は、図2の評価判定部14の他の構成例を示している。
図7の評価判定部14は、ベクトル量子化とADRCそれぞれによる符号化結果を復号し、その復号結果の誤差が少ない方の符号化方式による評価ブロックの符号化結果を、最終的な符号化結果として採用することとしたが、図12の評価判定部14では、評価ブロックのダイナミックレンジDRを評価値として算出し、その評価値に基づき、評価ブロックの符号化に用いるべき符号化方式を判定するようになっている。
ブロック取得部111は、メモリ11から、評価ブロック(の画像データ)を読み出し、最小値検出部112および最大値検出部113に供給する。
最小値検出部112は、ブロック取得部111から供給された評価ブロックを構成する8×8画素の画素値のうちの最小値MINを検出し、DR検出部114に供給する。
同時に、最大値検出部113は、ブロック取得部111から供給された評価ブロックを構成する8×8画素の画素値のうちの最大値MAXを検出し、DR検出部114に供給する。
DR検出部114は、最大値検出部113から供給される最大値MAXから、最小値検出部112から供給される最小値MINを減算し、その減算値を、ブロック取得部111が出力した評価ブロックのダイナミックレンジDRとして、DR判定部115に供給する。
DR判定部115は、評価ブロックのダイナミックレンジDRを、評価ブロックの符号化に用いるべき符号化方式を判定するための評価値として、その評価値に基づき、評価ブロックの符号化に用いるべき符号化方式を判定する。即ち、判定部115は、評価ブロックの評価値としてのダイナミックレンジDRを、閾値設定部116で設定された閾値と比較する。そして、DR判定部115は、ダイナミックレンジDRが閾値より小さい場合(以下の場合)、ベクトル量子化を、評価ブロックの符号化に用いるべきであると判定し、ダイナミックレンジDRが閾値以上の場合(より大きい場合)、ADRCを、評価ブロックの符号化に用いるべきであると判定する。
DR判定部115は、評価ブロックの符号化に用いるべき符号化方式の判定後、その判定結果にしたがい、選択部15(図2)に対して、高圧縮エンコーダ12による、評価ブロックに対応する4つのVQブロックの符号化結果であるVQ符号化データの選択、または高エラー耐性エンコーダ13による、評価ブロックに対応する1つのADRCブロックの符号化結果であるADRC符号化データの選択を指示する選択信号を供給する。
即ち、DR判定部115は、ベクトル量子化を評価ブロックの符号化に用いるべきであると判定した場合、高圧縮エンコーダ12が出力する、その評価ブロックに対応する4つのVQブロックのVQ符号化データを選択することを指示する選択信号を、選択部15に供給する。また、DR判定部115は、ADRCを評価ブロックの符号化に用いるべきであると判定した場合、高エラー耐性エンコーダ13が出力する、その評価ブロックに対応する1つのADRCブロックのADRC符号化データを選択することを指示する選択信号を、選択部15に供給する。
ここで、図12において、閾値設定部116は、例えば、ユーザの操作等に応じて、閾値を設定することができる。
閾値設定部116において、閾値を大とした場合、ADRCによる符号化に比較して、ベクトル量子化による符号化が採用されやすくなり、その結果、エラー耐性は劣化するが、圧縮率を向上させることができる。一方、閾値設定部116において、閾値を小とした場合、ベクトル量子化による符号化に比較して、ADRCによる符号化が採用されやすくなり、その結果、圧縮率は劣化するが、エラー耐性、ひいては復号画像の画質を向上させることができる。
次に、図13は、図2の復号装置2の構成例を示している。
符号化データは、符号化方式判定部121に供給される。符号化方式判定部121は、そこに供給される符号化データが、高圧縮の符号化方式であるベクトル量子化、または高エラー耐性の符号化方式であるADRCのうちのいずれの符号化方式で符号化されたものであるかを判定する。さらに、符号化方式判定部121は、そこに供給される符号化データが、ベクトル量子化により符号化されたVQ符号化データであると判定した場合、そのVQ符号化データを、高圧縮デコーダ122に供給する。また、符号化方式判定部121は、そこに供給される符号化データが、ADRCにより符号化されたADRC符号化データであると判定した場合、そのADRC符号化データを、高エラー耐性デコーダ123に供給する。
高圧縮デコーダ122は、高圧縮エンコーダ12(図2)の符号化方式に対応する復号方式で、符号化方式判定部121から供給されたVQ符号化データを復号し、その結果得られるVQブロックの復号結果を、合成部124に供給する。
高エラー耐性デコーダ123は、高エラー耐性エンコーダ13(図2)の符号化方式に対応する復号方式で、符号化方式判定部121から供給されたADRC符号化データを復号し、その結果得られるADRCブロックの復号結果を、合成部124に供給する。
合成部124は、高圧縮デコーダ122からのVQブロックの復号結果と、高エラー耐性デコーダ123からのADRCブロックの復号結果とから、1フレーム単位の復号画像データを構成して出力する。
次に、図14は、図13の高圧縮デコーダ122の構成例を示している。
高圧縮デコーダ122は、図8に示した高圧縮デコーダ62を構成する分離部81、ベクトル逆量子化部82、コードブック記憶部83、逆正規化部84、加算部85とそれぞれ同様の分離部141、ベクトル逆量子化部142、コードブック記憶部143、逆正規化部144、加算部145から構成されるため、その説明は省略する。
次に、図15は、図13の高エラー耐性デコーダ123の構成例を示している。
高エラー耐性デコーダ123は、図9に示した高エラー耐性デコーダ65を構成する分離部101、ビット数認識部102、逆量子化部103、加算部104とそれぞれ同様の分離部151、ビット数認識部152、逆量子化部153、加算部154から構成されるため、その説明は省略する。
次に、図16のフローチャートを参照して、図13の復号装置2の処理について説明する。
符号化方式判定部121は、符号化データが供給されると、ステップS21において、その符号化データの符号化方式、即ち、その符号化データが、VQ符号化データまたはADRC符号化データのうちのいずれであるかを判定する。
ステップS21において、符号化データがVQ符号化データであると判定された場合、ステップS22に進み、符号化方式判定部121は、そのVQ符号化データを、高圧縮デコーダ122に出力し、ステップS23に進む。ステップS23では、高圧縮デコーダ122は、符号化方式判定部121からのVQ符号化データを復号し、その結果得られるVQブロックの復号結果を、合成部124に供給して、ステップS26に進む。
一方、ステップS21において、符号化データがADRC符号化データであると判定された場合、ステップS24に進み、符号化方式判定部121は、そのADRC符号化データを、高エラー耐性デコーダ123に出力し、ステップS25に進む。ステップS25では、高エラー耐性デコーダ123は、符号化方式判定部121からのADRC符号化データを復号し、その結果得られるADRCブロックの復号結果を、合成部124に供給して、ステップS26に進む。
ステップS26では、符号化方式判定部121が、復号すべき符号化データが、まだあるかどうかを判定する。ステップS26において、復号すべき符号化データがあると判定された場合、ステップS21に戻り、以下、同様の処理が繰り返される。
また、ステップS26において、復号すべき符号化データがないと判定された場合、処理を終了する。
なお、合成部124は、図示せぬメモリを内蔵しており、そのメモリに、高圧縮デコーダ122から出力されるVQブロックの復号結果と、高エラー耐性デコーダ123から出力されるADRCブロックの復号結果を記憶させる。そして、合成部124は、メモリに、VQブロックとADRCブロックの復号結果を記憶させることによって、1フレーム単位の復号画像データを構成して出力する。
以上のように、復号装置2では、符号化データの符号化方式を判定するようにしたので、ベクトル量子化により得られるVQ符号化データと、ADRCにより得られるADRC符号化データとが混在する符号化データを復号し、高画質の復号画像を得ることができる。
なお、符号化データが、VQ符号化データまたはADRC符号化データのうちのいずれであるかは、例えば、VQ符号化データとADRC符号化データのそれぞれに、それらを識別するフラグを付すようにして、そのフラグに基づいて判定するようにすることが可能である。符号化データが、VQ符号化データまたはADRC符号化データのうちのいずれであるかは、その他、そのようなフラグを用いない任意の方法を採用することが可能である。
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図17は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク205やROM203に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体211に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体211は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体211からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部208で受信し、内蔵するハードディスク205にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)202を内蔵している。CPU202には、バス201を介して、入出力インタフェース210が接続されており、CPU202は、入出力インタフェース210を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部207が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)203に格納されているプログラムを実行する。あるいは、また、CPU202は、ハードディスク205に格納されているプログラム、衛星若しくはネットワークから転送され、通信部208で受信されてハードディスク205にインストールされたプログラム、またはドライブ209に装着されたリムーバブル記録媒体211から読み出されてハードディスク205にインストールされたプログラムを、RAM(Random Access Memory)204にロードして実行する。これにより、CPU202は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU202は、その処理結果を、必要に応じて、例えば、入出力インタフェース210を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部206から出力、あるいは、通信部208から送信、さらには、ハードディスク205に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、図1の画像処理システムは、動画および静止画のいずれも処理することが可能である。
また、本実施の形態では、画像データの符号化と復号を行うようにしたが、本発明は、その他、例えば、音声データの符号化と復号に適用することが可能である。この場合、高音質の音声の復号結果を得ることができる。
さらに、本実施の形態では、高圧縮の符号化方式としてベクトル量子化を採用するとともに、高エラー耐性の符号化方式としてADRCを採用することとしたが、高圧縮の符号化方式は、ベクトル量子化に限定されるものではなく、高エラー耐性の符号化方式も、ADRCに限定されるものではない。
また、本実施の形態では、ADRCの際、ADRCブロックの各画素値から、その最小値MINを減算するようにしたが、ADRCブロックの各画素値から減算する値としては、最小値MINの他、例えば、ADRCブロックの画素値の平均値、その他の任意の値を採用することが可能である。
さらに、本実施の形態では、ADRCの際、ADRCブロックの各画素値を、そのダイナミックレンジDRに対応した値であるDR/2Kで正規化(量子化)するようにしたが、ADRCブロックの各画素値の正規化は、その他、例えば、ADRCブロックの最大値MAXに対応した値であるMAX/2Kなどの値によって行うことが可能である。
ベクトル量子化の際にVQブロックの各画素値から減算する値や、その正規化に用いる値についても同様である。
1 符号化装置, 2 復号装置, 3 記録媒体, 4 伝送媒体, 11 メモリ, 12 高圧縮エンコーダ, 13 高エラー耐性エンコーダ, 14 評価判定部, 15 選択部, 21 ブロック取得部, 22 最小値検出部, 23 最大値検出部, 24 DR検出部, 25 差分演算部, 26 正規化部, 27 ベクトル量子化部, 28 コードブック記憶部, 29 バッファ, 41 ブロック取得部, 42 最小値検出部, 43 最大値検出部, 44 DR検出部, 45 差分演算部, 46 ビット数決定部, 47 量子化部, 48 バッファ, 61 高圧縮エンコーダ, 62 高圧縮デコーダ, 63 誤差計算部, 64 高エラー耐性エンコーダ, 65 高エラー耐性デコーダ, 66 誤差計算部, 67 判定部, 81 分離部, 82 ベクトル逆量子化部, 83 コードブック記憶部, 84 逆正規化部, 85 加算部, 101 分離部, 102 ビット数認識部, 103 逆量子化部, 104 加算部, 111 ブロック取得部, 112 最小値検出部, 113 最大値検出部, 114 DR検出部, 115 DR判定部, 116 閾値設定部, 121 符号化方式判定部, 122 高圧縮デコーダ, 123 高エラー耐性デコーダ, 124 合成部, 141 分離部, 142 ベクトル逆量子化部, 143 コードブック記憶部, 144 逆正規化部, 145 加算部, 151 分離部, 152 ビット数認識部, 153 逆量子化部, 154 加算部, 201 バス, 202 CPU, 203 ROM, 204 RAM, 205 ハードディスク, 206 出力部, 207 入力部, 208 通信部, 209 ドライブ, 210 入出力インタフェース, 211 リムーバブル記録媒体