(57)【特許請求の範囲】
【請求項１】
入力データから第１の階層データと上記第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成する階層データの生成装置において、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、上記丸めにより生じる誤差を示すコードを生成する信号値生成手段と、
上記第１の階層の複数の信号値の内の１個の信号値を上記第２の階層の信号値によって置き換えてデータ量を圧縮する置き換え手段とを有し、
上記置き換え手段が発生する信号値および上記コードを出力することを特徴とする階層データの生成装置。
【請求項２】
請求項１において、
上記出力される信号値およびコードを記憶する記憶手段をさらに有することを特徴とする階層データの生成装置。
【請求項３】
請求項１において、
上記演算結果が合計値または平均値であることを特徴とする階層データの生成装置。
【請求項４】
請求項１において、
上記演算結果を丸める処理が四捨五入または切り捨てであることを特徴とする階層データの生成装置。
【請求項５】
請求項１において、
上記誤差を示すコードが演算結果と丸められた後の上記第２の階層の信号値の差分値であることを特徴とする階層データの生成装置。
【請求項６】
請求項５において、
さらに、上記差分値をより少ないビットの付加コードへ変換することを特徴とする階層データの生成装置。
【請求項７】
第１の階層の複数の信号値の演算結果を丸めることによって、より上位の第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成し、第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮するようにした少なくとも２階層の階層構造データを受け取り、階層構造のデータから、第１および第２の階層データを復元するデータ復元装置であって、
上記第２の階層の信号値と上記コードとから上記演算結果または上記演算結果に近似した値を復元する手段と、
復元された上記演算結果または上記演算結果に近似した値と、上記第２の階層の信号値で置き換えられたもの以外の上記第１の階層の信号値とによって、上記第２の階層の信号値で置き換えられた上記第１の階層の信号値を復元する手段とを有することを特徴とするデータ復元装置。
【請求項８】
入力データから第１の階層データと上記第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成し、階層構造データを受け取り、階層構造データから第１および第２の階層データをそれぞれ復元する階層データの生成復元システムにおいて、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、上記丸めにより生じる誤差を示すコードを生成する信号値生成手段と、
上記第１の階層の複数の信号値の内の１個の信号値を上記第２の階層の信号値によって置き換えてデータ量を圧縮する置き換え手段と、
上記置き換え手段が発生する信号値および上記コードを伝送または記憶する手段と、
受信または再生した上記第２の階層の信号値と上記コードとから上記演算結果または上記演算結果に近似した値を復元する手段と、
復元された上記演算結果または上記演算結果に近似した値と、上記第２の階層の信号値で置き換えられたもの以外の上記第１の階層の信号値とによって、上記第２の階層の信号値で置き換えられた上記第１の階層の信号値を復元する手段とを有することを特徴とする階層データの生成復元システム。
【請求項９】
入力データから第１の階層データと上記第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成する階層データの生成方法において、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、上記丸めにより生じる誤差を示すコードを生成するステップと、
上記第１の階層の複数の信号値の内の１個の信号値を上記第２の階層の信号値によって置き換えてデータ量を圧縮するステップとを有し、
上記置き換え手段が発生する信号値および上記コードを出力することを特徴とする階層データの生成方法。
【請求項１０】
第１の階層の複数の信号値の演算結果を丸めることによって、より上位の第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成し、第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮するようにした少なくとも２階層の階層構造データを受け取り、階層構造データから、第１および第２の階層データを復元するデータ復元方法であって、
上記第２の階層の信号値と上記コードとから上記演算結果または上記演算結果に近似した値を復元するステップと、
復元された上記演算結果または上記演算結果に近似した値と、上記第２の階層の信号値で置き換えられたもの以外の上記第１の階層の信号値とによって、上記第２の階層の信号値で置き換えられた上記第１の階層の信号値を復元するステップとを有することを特徴とするデータ復元方法。
【請求項１１】
入力データから第１の階層データと上記第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成し、階層構造データを受け取り、階層構造データから第１および第２の階層データをそれぞれ復元する階層データの生成復元方法において、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、上記丸めにより生じる誤差を示すコードを生成するステップと、
上記第１の階層の複数の信号値の内の１個の信号値を上記第２の階層の信号値によって置き換えてデータ量を圧縮するステップと、
上記置き換え手段が発生する信号値および上記コードを伝送または記憶するステップと、
受信または再生した上記第２の階層の信号値と上記コードとから上記演算結果または上記演算結果に近似した値を復元するステップと、
復元された上記演算結果または上記演算結果に近似した値と、上記第２の階層の信号値で置き換えられたもの以外の上記第１の階層の信号値とによって、上記第２の階層の信号値で置き換えられた上記第１の階層の信号値を復元するステップとを有することを特徴とする階層データの生成復元方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、階層データの生成装置および方法、データ復元装置および方法、階層データの生成復元システムおよび方法ディジタル情報信号から階層構造データを生成する符号化装置および方法、階層構造データからディジタル情報信号を復号する復号装置および方法、並びに符号化および復号を行うデータ処理装置に関する。
【０００２】
【従来の技術】
解像度の異なる複数の階層の画像信号を生成するための階層符号化が知られている。すなわち、高解像度画像信号を第１の階層としてこれより解像度が低い第２の階層の画像信号、第２の階層の画像信号より階層が低い第３の画像信号、・・・・を形成する符号化（階層符号化と称される）が提案されている。この符号化によれば、複数の画像信号を一つの伝送路（通信路、記録媒体）を介して伝送し、受信側では、複数の階層とそれぞれ対応する画像モニタによって、画像データを再生することができる。
【０００３】
より具体的には、標準解像度ビデオ信号、高解像度ビデオ信号、コンピュータディスプレイの画像データ、画像データベースを高速検索するための低解像度ビデオ信号等が異なる解像度のビデオ信号である。また、解像度の高低以外に、画像の拡大、縮小（所謂電子ズーム）に対しても階層符号化を適用することができる。画像の拡大、縮小は、例えばビデオゲームのアプリケーションにおいてしばしば使用される機能である。
【０００４】
従来の階層符号化では、第１階層（入力）画像信号と画素数が第１階層の画像信号に対して１／４の第２階層の画像信号を形成する場合、第１階層の画像信号を１／４に間引き、第２階層の画像信号を形成すると共に、第２階層の画像信号から補間された第１階層の補間信号と入力画像信号との差分値を計算し、この差分値を伝送している。このように、従来の階層符号化では、差分値の画素数は、入力画像信号の画素数と等しく、さらに、第２階層の信号を伝送するので、伝送データ量が元のデータ量より増大するのが普通であった。５階層の例では、画素数に関して、２５６＋６４＋１６＋４＋１＝３４１となり、各画素当たりのビット数を同一とすると、３４１／２５６≒１．３３倍にデータ量が増加する。
【０００５】
一方、本願出願人は、データ量の増大を抑制することができる階層符号化を既に提案している。この階層符号化について、３階層を例にして図１を参照して説明する。すなわち、階層構造データは、入力画像データで構成される第１階層データＤＬ１と、これより解像度が低い第２階層データＤＬ２と、第２階層より解像度が低い第３階層データＤＬ３から構成されるものである。
【０００６】
図１において最も下に、入力画像データによって構成される第１階層データＤＬ１の部分的画像（４×４画素）が示されている。この部分的画像を画素ブロックと称する。図１において、一つの正方形が一つの画素を表している。この第１階層の（２×２画素）の４個の画素毎に合計値または平均値が計算される。例えばＸ１，Ｘ２，Ｘ３，Ｘ４の合計値Ｙ１（＝Ｘ１＋Ｘ２＋Ｘ３＋Ｘ４）または平均値Ｙ１（＝１／４・（Ｘ１＋Ｘ２＋Ｘ３＋Ｘ４））が計算される。従って、（４×４画素）と対応する部分が（２×２画素）になる。このように計算された合計値または平均値によって第２階層データＤＬ２が構成される。第２階層では、（２×２画素）が画素ブロックである。
【０００７】
次に第２階層の空間的に隣接する（２×２）の４個の画素の合計値または平均値を計算する。例えば、合計値Ｚ１（＝Ｙ１＋Ｙ２＋Ｙ３＋Ｙ４）または平均値Ｚ１（＝１／４・（Ｙ１＋Ｙ２＋Ｙ３＋Ｙ４）が計算される。このように計算された合計値または平均値によって、第３階層データＤＬ３が構成される。第３階層データＤＬ３は、入力画像の画素ブロックに対応する１画素の集合である。図１から分かるように、階層が変化するに従って、画素数が１／４、１／１６、・・・と減少する。言い換えると、画像の面積が一定とすると、解像度が同様の割合で低下する。画素間の距離が一定であれば、画像の大きさが同様の割合で縮小する。このように、符号化処理は、第１階層から順により上位の階層に向かってなされる。
【０００８】
上述の平均値により上位の階層の画像を形成する階層符号化は、複数の階層の画像データを伝送する場合に、伝送画素数が増大しない利点がある。図１の例では、括弧を付した画素を伝送する代わりに上位階層のデータを伝送すれば良い。例えば第１階層の画素データＸ４の代わりに第２階層のデータＹ４を伝送すれば良い。また、第２階層の画素データＹ４の代わりに第３階層のデータＺ１を伝送すれば良い。すなわち、第１階層の画素ブロック毎の１画素（図１では、合計４画素）の伝送を省略し、その省略された画素の代わりにＹ１，Ｙ２，Ｙ３，Ｚ１を伝送する。
【０００９】
復号処理について説明すると、第３階層データＤＬ３は、受信データから得ることができる。第２階層のデータ中で伝送が省略された画素データ例えばＹ４は、合計値を用いる場合では、Ｙ４＝Ｚ１−（Ｙ１＋Ｙ２＋Ｙ３）で求めることができる。また、平均値を用いる場合では、Ｙ４＝４Ｚ１−（Ｙ１＋Ｙ２＋Ｙ３）として求められる。さらに、第１階層のデータ中で伝送が省略された画素データ例えばＸ４は、Ｘ４＝Ｙ１−（Ｘ１＋Ｘ２＋Ｘ３）またはＸ４＝４Ｙ１−（Ｘ１＋Ｘ２＋Ｘ３）として求められる。このように、復号時には、第３階層から順により下位の階層に向かってなされる。なお、伝送を省略する画素の位置は、右下コーナーの位置に限定されるものではない。
【００１０】
上述した階層符号化において、画素値が８ビットのデータである場合、平均演算または加算によって生成される値が１０ビットとなる。データ量が増加することを防止する目的で、合計値の下位側の２ビットまたは小数点以下に相当する桁を四捨五入あるいは切り捨てによって、上位８ビットに丸める処理を行っている。より下位の階層の伝送を省略した画素を復元する時に、符号化時の丸めによる誤差は、復元された画素値の下位２ビットに重畳される。図１の例では、第２階層の画素データＹ４を復元する時に、Ｙ４の下位２ビットに誤差が重畳される。さらに、第１階層の画素データＸ４を復元する時には、復元されたＹ４の下位２ビットに重畳された誤差が上位側へ２ビットシフトされる。このように、復号時には、下位階層になるほど、誤差が重畳される２ビットが上位側にシフトする。５階層の場合では、最下位の第１階層において、復元された画素データのＭＳＢ(Most Significant Bit)および２番目の上位ビットに誤差が重畳される。
【００１１】
下位の階層になるほど、誤差の影響がこのように上位側にシフトすることは、下位の階層になるほど、復号誤差が増大する問題を生じる。この問題を解決する一つの方法は、１画素当たりのビット長を上位階層ほど長くする方法である。図１の例では、第１階層データＤＬ１は、８ビット／１画素とされ、第２階層データＤＬ２は、１０ビット／１画素とされ、第３階層データＤＬ３は、１２ビット／１画素とされる。上位画素に関する値は、下位階層４画素の合計値（１０ビット）である（または上位から８ビット目と９ビット目との間に小数点が位置する平均値であるとみなせる）。但し、復号画像を表示する時には、上位８ビットに丸めた値を用いる。この方法は、全データ量（全ビット量）が元の画像データの１．０８倍に増大する。この増加の程度は、各階層のデータを全て伝送する時の増加率１．３３より少なくできる。
【００１２】
【発明が解決しようとする課題】
上述したように、上位階層ほどビット長を拡張する方法は、発生データの増加率を抑えることができるが、実際のデータ処理においては、必ずしも扱い易いとは言えない。例えばビット長の長い上位階層ほど演算等のデータ処理に要する時間が長くなり、高速処理を阻害する。第５階層は、第１階層のビット長（８ビット）の２倍のビット長（１６ビット）となる。他の問題としては、階層構造のデータを半導体記憶装置、磁気ディスクなど各種の記憶装置に記憶する場合には、階層毎にビット長が異なるために、データ構造の複雑な再構成処理を必要としたり、記憶装置側における特別な対応が必要とされる問題が生じる。
【００１３】
従って、この発明の目的は、データ量の増加率が小さく、復号時の誤差が小さく、実際のデータ処理が扱い易い階層データの生成装置および方法、データ復元装置および方法、階層データの生成復元システムおよび方法を提供することにある。
【００１４】
【課題を解決するための手段】
請求項１の発明は、上述した課題を解決するために、入力データから第１の階層データと第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成する階層データの生成装置において、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成する信号値生成手段と、
第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮する置き換え手段とを有し、
置き換え手段が発生する信号値およびコードを出力することを特徴とする階層データの生成装置である。
【００１５】
請求項７の発明は、第１の階層の複数の信号値の演算結果を丸めることによって、より上位の第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成し、第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮するようにした少なくとも２階層の階層構造データを受け取り、階層構造のデータから、第１および第２の階層データを復元するデータ復元装置であって、
第２の階層の信号値とコードとから演算結果または演算結果に近似した値を復元する手段と、
復元された演算結果または演算結果に近似した値と、第２の階層の信号値で置き換えられたもの以外の第１の階層の信号値とによって、第２の階層の信号値で置き換えられた第１の階層の信号値を復元する手段とを有することを特徴とするデータ復元装置である。
【００１６】
請求項８の発明は、入力データから第１の階層データと第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成し、階層構造データを受け取り、階層構造データから第１および第２の階層データをそれぞれ復元する階層データの生成復元システムにおいて、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成する信号値生成手段と、
第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮する置き換え手段と、
置き換え手段が発生する信号値およびコードを伝送または記憶する手段と、
受信または再生した第２の階層の信号値とコードとから演算結果または演算結果に近似した値を復元する手段と、
復元された演算結果または演算結果に近似した値と、第２の階層の信号値で置き換えられたもの以外の第１の階層の信号値とによって、第２の階層の信号値で置き換えられた第１の階層の信号値を復元する手段とを有することを特徴とする階層データの生成復元システムである。
【００１７】
請求項９の発明は、入力データから第１の階層データと第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成する階層データの生成方法において、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成するステップと、
第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮するステップとを有し、
置き換え手段が発生する信号値およびコードを出力することを特徴とする階層データの生成方法である。
【００１８】
請求項１０の発明は、第１の階層の複数の信号値の演算結果を丸めることによって、より上位の第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成し、第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮するようにした少なくとも２階層の階層構造データを受け取り、階層構造データから、第１および第２の階層データを復元するデータ復元方法であって、
第２の階層の信号値とコードとから演算結果または演算結果に近似した値を復元するステップと、
復元された演算結果または演算結果に近似した値と、第２の階層の信号値で置き換えられたもの以外の第１の階層の信号値とによって、第２の階層の信号値で置き換えられた第１の階層の信号値を復元するステップとを有することを特徴とするデータ復元方法である。
【００１９】
請求項１１の発明は、入力データから第１の階層データと第１の階層データより上位の第２の階層データとの少なくとも２階層からなる階層構造データを生成し、階層構造データを受け取り、階層構造データから第１および第２の階層データをそれぞれ復元する階層データの生成復元方法において、
第１の階層の複数の信号値の演算結果を丸めることによって、第２の階層の信号値を生成すると共に、丸めにより生じる誤差を示すコードを生成するステップと、
第１の階層の複数の信号値の内の１個の信号値を第２の階層の信号値によって置き換えてデータ量を圧縮するステップと、
置き換え手段が発生する信号値およびコードを伝送または記憶するステップと、
受信または再生した第２の階層の信号値とコードとから演算結果または演算結果に近似した値を復元するステップと、
復元された演算結果または演算結果に近似した値と、第２の階層の信号値で置き換えられたもの以外の第１の階層の信号値とによって、第２の階層の信号値で置き換えられた第１の階層の信号値を復元するステップとを有することを特徴とする階層データの生成復元方法である。
【００２０】
この発明によれば、各階層のデータを並列的に伝送するのと比較してデータ量の増加を抑えることができ、また、画素値を丸めるだけの処理と比較して丸めの誤差により復元画像の画質が劣化することを防止できる。この発明では、合計値、平均値のような演算結果を丸めることによって、８ビット固定長の画素値を形成できる。従って、画素値のビット長が階層毎に異なるデータを扱うのと比較して、データの取り扱いが容易で、階層間で統一した取り扱いが可能となる。
【００２１】
【発明の実施の形態】
以下、この発明の一実施形態について説明する。一実施形態は、階層符号化の方法である。一例として最下位階層データ（入力画像データ）ＤＬ１は、１画素が８ビットの画像データである。カラー画像の場合では、例えば輝度データ、２個の色差データの各コンポーネント毎に処理される。また、この一実施形態は、下位階層の隣接４画素の画素値の合計値によりその上位階層における画素を生成し、下位階層の隣接４画素の内の１画素は、生成した上位階層の画素によって置き換え、全階層データが併存する場合に比してデータ量を圧縮する階層符号化に対してこの発明を適用したものである。
【００２２】
図２は、一実施形態の符号化処理を示すものである。第１階層（原画像データ）データＤＬ１の隣接する４画素の合計値Ｔ１２が演算される。例えば図１に示す第１階層データＤＬ１の隣接４画素の合計値Ｔ１２＝Ｘ１＋Ｘ２＋Ｘ３＋Ｘ４が生成される。合計値Ｔ１２は、１０ビット長である。第１階層では、４×４画素が画素ブロックを構成する。なお、合計値は、上位から８ビット目と９ビット目との間に小数点が位置する平均値ともみなせるので、合計値を平均値と置き換えても以下の説明が同様に成立する。
【００２３】
合計値Ｔ１２が８ビット長に丸められることによって、第２階層データＤＬ２（Ｙ１，Ｙ２，Ｙ３，・・・）が生成される。丸め処理としては、切り捨て、または四捨五入を用いることができる。切り捨ては、下位２ビットを取り除く丸め処理であり、四捨五入は、上位から９ビット目が１である時に、８ビット目に１を加え、９ビット目が０である時に８ビット目に１を加えない処理である。さらに、第１階層の隣接４画素毎の所定位置の１画素例えばＸ４は、第２階層データの画素値Ｙ１に置き換えられるもの、すなわち、伝送または記憶されない被置換画素値である。
【００２４】
合計値Ｔ１２と、それを丸めた第２階層データＤＬ２の画素値Ｙｉとの差分値Ｓ１２が演算される。差分値Ｓ１２は、丸めによる誤差を示す。この場合、８ビットの画素値Ｙｉを左に２ビットシフトし、その下位側に２ビット（０）を付加することによって、画素値Ｙｉを１０ビットデータとして扱う。Ｔ１２−Ｙｉ＝Ｓ１２によって、差分値Ｓ１２が求まる。差分値Ｓ１２は、極性を示す符号ビット（斜線を付す）と２ビットとの計３ビットのコードである。データ量を圧縮するために、差分値を付加コードＣ１２へ符号化する。この符号化処理は、四捨五入によって丸めを行った時に必要である。若し、丸めが切り捨てであれば、差分値が２ビットとなり、差分値を付加コードに符号化することが不要である。
【００２５】
上述した四捨五入を行う時には、差分値Ｓ１２としては、４個の値しか発生しない。従って、４個の差分値は、
１１１→００，０００→０１，００１→１０，０１０→１１
のように２ビットの付加コードＣ１２へ変換される。
【００２６】
このように、第２階層の画素データと付加コードＣ１２とが生成される。第２階層データＤＬ２中の２×２画素（画素ブロック）毎の１画素例えばＹ４は、第３階層データの画素値Ｚ１に置き換えられるもの、すなわち、伝送または記憶されない被置換画素値である。第２階層の画素ブロック毎に合計値Ｔ２３が演算される。例えばＴ２３＝Ｙ１＋Ｙ２＋Ｙ３＋Ｙ４である。合計値Ｔ２３は、１０ビット長である。合計値Ｔ２３が８ビット長に丸められることによって、第３階層データＤＬ３（Ｚ１，Ｚ２，Ｚ３，・・・）が生成される。丸め処理としては、切り捨て、または四捨五入を用いることができる。
【００２７】
合計値Ｔ２３と、それを丸めた第３階層データＤＬ３の画素値Ｚｉとの差分値Ｓ２３（丸めの誤差）が演算される。この場合、８ビットの画素値Ｚｉを２ビット左にシフトしし、その下位側に２ビット（０）を付加することによって、画素値Ｚｉを１０ビットデータとして扱う。Ｔ２３−Ｚｉ＝Ｓ２３によって、差分値Ｓ２３が求まる。差分値Ｓ２３は、極性を示す符号ビット（斜線を付す）と２ビットとの計３ビットのコードである。四捨五入による丸めを行っている時には、データ量を圧縮するために、差分値を付加コードＣ２３へ符号化する。このように、第３階層の画素データと付加コードＣ２３とが生成される。第３階層は、最上位階層であるので、第３階層データＤＬ３の画素値は、全て伝送または記憶される。
【００２８】
上述したこの発明の一実施形態による符号化により発生するデータ量について説明する。一例として、５階層構造データの場合に、伝送または記録される全画素は、図３に示すものとなる。図３では、各画素に付される番号が階層を表している。第１階層の１６×１６画素の領域において、各階層データの隣接する２×２画素で構成される領域の右下コーナーの１画素が上位階層の画素データに置き換えられる。それによって、階層構造のデータのデータ量は、画素データについては、元のデータ量と等しい。このデータ量は、１６×１６×８＝２０４８ビットである。また、階層数が４の場合の階層構造のデータは、図３の８×８画素の領域を単位とするデータ構造を有し、階層数が３の場合の階層構造のデータは、図３の４×４画素の領域を単位とするデータ構造を有する。
【００２９】
図３から分かるように、各階層の２×２画素の隣接４画素毎に一つの付加コードが必要とされる。付加コードは、画素値と異なり、上位階層の付加コードと置き換えることができない。従って、付加コード（２ビット）のデータ量の合計は、第１階層から順に、８×８×２＋４×４×２＋２×２×２＋２＝１７０ビットである。画素データおよび付加ビットのデータ量を合計したものは、２０４８＋１７０＝２２１８ビットである。データ量の増加率は、２２１８÷２０４８≒１．０８である。すなわち、一実施形態の処理は、上位階層ほど２ビットずつビット長を拡張した場合と同じデータ量の増加率である。なお、付加コードは、伝送または記憶がされない下位の画素値を復元するのに使用されるので、より上位の階層のデータとして扱われる。例えば、付加コードＣ１２は、第２階層のデータとして扱われ、付加コードＣ２３は、第３階層のデータとして扱われる。
【００３０】
次に、階層符号化されたデータを復号する処理、すなわち、上位階層の画素値で置き換えられた下位階層の画素値の復元処理について図４を参照して説明する。３階層の例について説明すると、最上位階層（第３階層）から下位階層に向かって順に復号処理がなされる。
【００３１】
第３階層の符号化データには、画素データと付加コードＣ２３とが含まれる。２ビットの付加コードＣ２３を復号処理によって、３ビットの差分値Ｓ２３に変換する。差分値は、２を補数とするコードであって、斜線で示す符号ビットを有する。第２階層の画素ブロック（隣接する４画素）の合計値Ｔ２３が復元される。例えば第３階層の画素値Ｚ１を左に２ビットシフトして、下位２ビットに０を加えた値と差分値Ｓ２３とを加算することによって、１０ビットの合計値Ｔ２３が復元される。
【００３２】
第２階層の画素ブロックがＹ１〜Ｙ４で構成される時には、Ｔ２３＝Ｙ１＋Ｙ２＋Ｙ３＋Ｙ４である。従って、Ｙ４＝Ｔ２３−（Ｙ１＋Ｙ２＋Ｙ３）の演算によって、上位階層の画素値に置き換えられた第２階層の画素値Ｙ４を復元することができる。この処理を全ての画素値が揃っている最上位階層（第３階層）とその下位階層（第２階層）との間において行う。それによって、第２階層の被置換画素値を復元することができる。
【００３３】
同様にして、第２階層の画素データと付加コードＣ１２とを使用して、上位階層の画素値と置き換えられた第１階層の画素値を復元する。まず、付加コードＣ１２を差分値Ｓ１２に復号する。差分値Ｓ１２と、下位側に２ビットの０を付加した第２階層の画素値Ｙｉとを合計することによって、合計値Ｔ１２を復元する。合計値Ｔ１２から、第１階層の画素ブロックの実際に記録または伝送される３画素の画素値を減算する。それによって、第２階層の画素値に置き換えられた第１階層の画素値を復元することができる。このように、階層を順次下位側へ移動しながら復号処理を行うことによって、各階層の被置換画素値を上位階層から順に復号することができる。
【００３４】
上述したこの発明の一実施形態では、画素値は、丸め処理によって、全て８ビット／画素に揃えられており、付加コードも全て２ビット固定長である。従って、上位階層では、画素値のビット長を２ビットずつ拡張する方法と比較して、画素値および付加コードのデータ処理が容易である。例えば階層間の演算において、常に最大１０ビットの処理で済むので、上位階層ほど処理時間が長くなることがなく、また、各階層間における演算回路として同一構成のものを使用することができる。このことは、符号化および復号の処理機能をハードウエアで実現する上で非常に有利である。
【００３５】
さらに、半導体記憶装置、磁気ディスクなどの各種記憶装置にこの発明による階層構造データを記憶する場合には、画素値コードと付加コードとがそれぞれ固定長のデータであるために扱いやすい利点がある。例えば、４個の付加コードをまとめて８ビットとして扱ったり、その逆に各２ビットの付加コードへ分解することが容易であり、また、画素値と同一のフォーマットで記憶することが可能である。
【００３６】
この発明の一実施形態の階層符号化のハードウエアについて、３階層の場合の構成例を図５に示す。１で示す入力端子に対して入力画像データ、すなわち、最下位の第１階層データＤＬ１が供給される。走査変換部２は、画像ブロックを構成する隣接する４画素ごとに、画素値（例えば８ビット／１画素）をセレクタ３およびラッチ部４へ出力する。走査変換分布２は、バッファメモリで構成される。セレクタ３は、上位階層の画素値に置き換えられる一つの被置換画素値以外の３個の画素値を選択して記憶部５に供給する。記憶部５は、選択された画素値を記憶する。記憶部５は、より具体的には、画像通信におけるフレームメモリのようなバッファ用半導体メモリ、画像データベースにおける磁気ディスク、光ディスク、半導体メモリ等である。必要に応じて記憶部５が画像通信、画像データベース等の処理装置に組み込まれている。
【００３７】
ラッチ部４は、第１階層データの隣接する４画素を演算ユニット６に供給する。演算ユニット６は、４個の画素値の合計値Ｔ１２（１０ビット）を生成する。合計値Ｔ１２が丸めユニット７および減算器８に供給される。なお、合計値は、上位から８ビット目と９ビット目との間に小数点が位置する平均値であるとみなせるので、合計値に代えて平均値を扱う場合も、以下の説明が成り立つ。
【００３８】
丸めユニット７は、合計値Ｔ１２を四捨五入によって８ビットの第２階層の画素値に変換する。この画素値がゲート９に供給されると共に、シフト回路１０を介して減算器８に供給される。シフト回路１０によって画素値Ｙ１を２ビット左にシフトし、下位２ビットに０を付加したものが減算器８へ供給される。減算器８は、合計値Ｔ１２からシフト回路１０からの第２階層の画素値を減算する。例えばＴ１２＝Ｘ１＋Ｘ２＋Ｘ３＋Ｘ４の場合、減算器８は、Ｔ１２−Ｙ１＝Ｓ１２の差分値を発生する。
【００３９】
減算器８からの差分値Ｓ１２が符号化部１１に供給される。符号化部１１は、四捨五入を行う時に、３ビットの差分値Ｓ１２を２ビットの付加コードＣ１２に符号化する。付加コードＣ１２は、記憶部５に記憶される。
【００４０】
ゲート９は、丸めユニット７から順に発生する第２階層データＤＬ２中で、第３階層の画素値によって置き換えられる被置換画素値例えばＹ４を記憶部５に供給しない。第２階層の隣接する４画素の残りの３画素の値は、ゲート９を介して記憶部５に記憶される。また、丸めユニット７からの順に発生する第２階層データＤＬ２の各画素値が順にラッチ部１４の各ラッチに取り込まれる。ラッチ部１４からの第２階層の隣接４画素（画素ブロック）のデータが演算ユニット１６に供給される。
【００４１】
演算ユニット１６は、第２階層の隣接する４画素の値の合計値Ｔ２３を発生する。演算ユニット１６からの合計値Ｔ２３が丸めユニット１７および減算器１８に供給される。丸めユニット１７が四捨五入によって第３階層データＤＬ３を発生する。第３階層データＤＬ３は、最上位階層であるために、間引かれずに記憶部５に記憶される。
【００４２】
減算器１８では、合計値Ｔ２３と、シフト回路２０によりシフトされ、下位２ビットに０が付加された第３階層の画素値が減算され、丸め誤差を表す差分値Ｓ２３が生成される。差分値Ｓ２３が符号化部２１により２ビットの付加コードＣ２３へ変換される。付加コードＣ２３が記憶部５に記憶される。このように、第３階層までの符号化がなされ、記憶部５には、各階層の画素データと付加コードＣ１２およびＣ２３が記憶される。
【００４３】
階層構造のデータを生成する符号化装置は、図５に示す構成のハードウエアに限らず、他の構成も可能である。例えば第１階層の画素ブロック（４×４画素）を走査変換によって同時化し、並列に設けた４個の演算ユニットの各ユニットに対して、隣接する４画素をそれぞれ供給し、第２階層データＤＬ２の４画素を同時に生成するようにしても良い。この並列構成は、ハードウエアの規模が大きくなるが、高速の処理が可能である。また、生成された各階層のデータを表示部によって表示するようにしても良い。
【００４４】
次に、図６を参照して上位階層の画素値で置き換えられた下位階層の被置換画素値を復元する構成の一例について説明する。記憶部３１から第３階層データＤＬ３と付加コードＣ２３が読出される。記憶部３１と記憶部５とが同一のものであっても良い。記憶部３１から第３階層データＤＬ３が出力されると共に、シフト回路３２を介して加算器３３に供給される。シフト回路３２は、画素値を左に２ビットシフトし、下位側に２ビットの０を付加する。
【００４５】
付加コードＣ２３が復号部３４によって差分値Ｓ２３に変換される。復号部３４は、符号化部２１と逆の変換を行う。３ビットの差分値Ｓ２３がシフト回路３２の出力の下位側に加算される。加算器３３によって、合計値Ｔ２３が計算される。合計値Ｔ２３が逆演算ユニット３５に供給される。
【００４６】
逆演算ユニット３５には、上位階層の画素値に置き換えられていない第２階層のデータがラッチ３７ａ、３７ｂ、３７ｃを介して記憶部３１から供給される。すなわち、隣接する４画素のうちの３画素が逆演算ユニット３５に供給される。逆演算ユニット３５は、合計値Ｔ２３と３画素の画素値とを使用して第２階層の被置換画素値を復元する。例えばＹ４＝Ｔ２３−（Ｙ１＋Ｙ２＋Ｙ３）によって被置換画素値Ｙ４が復元される。復元された画素値を含む第２階層データＤＬ２が出力される。
【００４７】
第１階層データＤＬ１中の被置換画素値は、第２階層データＤＬ２の被置換画素値と同様に復元される。加算器４３は、シフト回路４２によって左に２ビットシフトされ、下位２ビットに０が付加された画素値と、復号部４４からの差分データＳ１３とを加算し、合計値Ｔ２３を出力する。シフト回路４２には、セレクタ４８で選択された第２階層の画素データが供給される。第２階層の画素データとしては、記憶部３１から読出されたものと、上述したように、第３階層データを使用して復元されたものとの両者が含まれる。セレクタ４８は、合計値を復元するのに使用する画素値を選択する。例えば画素値Ｙ１、Ｙ２、Ｙ３が記憶部３１から読出され、画素値Ｙ４が逆演算ユニット３５から発生する。復元された合計値Ｔ１３が逆演算ユニット４５に供給される。
【００４８】
逆演算ユニット４５には、隣接する４画素の内で、第２階層の画素値に置き換えられていない第１階層の３画素の画素値がラッチ４７ａ、４７ｂ、４７ｃを介して記憶部３１から供給される。逆演算ユニット４５は、第１階層データ中の被置換画素値を復元する。例えばＸ４＝Ｔ１３−（Ｘ１＋Ｘ２＋Ｘ３）によって、被置換画素値Ｘ４が復元される。復元された被置換画素値を含む第１階層データＤＬ１が出力される。
【００４９】
なお、上述した図５に示す階層構造データ生成装置（符号化装置）と図６に示す階層構造データ復元装置（復号装置）とは、構成要素を共用するようにしても良い。さらに、ハードウエアに限らず、ハードウエアまたはハードウエアとソフトウェアの組み合わせによって、処理を行うことも可能である。
【００５０】
図７のフローチャートは、ソフトウェア処理により階層構造データを生成するための処理を示す。図７では、合計値の代わりに平均値を生成し、平均値を上位階層の画素値を生成するようにしている。例えば第２階層の画素値Ｙ１は、Ｙ１＝１／４（Ｘ１＋Ｘ２＋Ｘ３＋Ｘ４）によって生成される。この演算は、Ｘ１〜Ｘ４の合計値を２ビット右へシフトすることでなされる。
【００５１】
ステップＳＴ１では、最下位階層のデータが入力される。次のステップＳＴ２において、隣接する４画素値の合計値が計算される。ステップＳＴ３では、合計値の下位２ビットが丸められる。ステップＳＴ４において、丸め誤差が計算される。丸め誤差は、合計値と丸めた値との差分値である。丸め誤差（差分値）から付加コードを生成する（ステップＳＴ５）。
【００５２】
ステップＳＴ６では、丸めた値を２ビット右へシフトした値、すなわち、上位階層データを生成し、上位階層データによって下位階層の１画素値を置き換える。ステップＳＴ７では、最下位階層の画素ブロック内の処理が終了したかどうかが決定される。処理が終了してないと決定されると、隣接４画素の組が更新される（ステップＳＴ８）。そして、ステップＳＴ２に戻って上述した処理が繰り返される。
【００５３】
ステップＳＴ７において、該当画素ブロック内の処理が終了したと決定されると、ステップＳＴ９において、最上位階層であるか否かが決定される。最上位階層でないと決定されると、処理の対象の階層が上昇される（ステップＳＴ１０）。そして、ステップＳＴ２に戻って上述した処理が繰り返される。
【００５４】
ステップＳＴ９において、最上位階層であると決定されると、ステップＳＴ１１において、全画素ブロックの処理が終了したか否かが決定される。全画素ブロックの処理が未了と決定されると、画素ブロックが更新される（ステップＳＴ１２）。そして、ステップＳＴ２に戻って上述した処理が繰り返される。ステップＳＴ１１において、全画素ブロックの処理が終了したと決定されると、階層構造データの生成処理が終了する。
【００５５】
図８のフローチャートは、ソフトウェア処理により、下位階層の被置換画素値を復元するための処理を示す。最初のステップＳＴ２１では、付加コードから丸め誤差を復元する。ステップＳＴ２２では、上位階層画素値を４倍とする。丸め誤差と４倍とされた上位階層画素値から上位階層合計値を復元する（ステップＳＴ２３）。ステップＳＴ２４では、上位階層合計値と、下位階層の３画素値とから下位階層の被置換画素値を復元する。該当画素ブロック内の処理が終了したか否かが決定される（ステップＳＴ２５）。処理が終了してないと決定されると、隣接４画素の組が更新される（ステップＳＴ２６）。そして、ステップＳＴ２２に戻って上述した処理が繰り返される。
【００５６】
ステップＳＴ２５において、該当画素ブロック内の処理が終了したと決定されると、ステップＳＴ２７において、最下位階層であるか否かが決定される。最下位階層でないと決定されると、処理の対象の階層が下降される（ステップＳＴ２８）。そして、ステップＳＴ２１に戻って上述した処理が繰り返される。
【００５７】
ステップＳＴ２７において、最下位階層であると決定されると、ステップＳＴ２９において、全画素ブロックの処理が終了したか否かが決定される。全画素ブロックの処理が未了と決定されると、画素ブロックが更新される（ステップＳＴ３０）。そして、ステップＳＴ２１に戻って上述した処理が繰り返される。ステップＳＴ２９において、全画素ブロックの処理が終了したと決定されると、階層構造データにおける下位階層データの復元処理が終了する。
【００５８】
なお、画素ブロックは、最上位階層の１画素に対応する下位階層の領域である。３階層の場合では、第１階層の４×４画素の領域、第２階層の２×２画素の領域がそれぞれ画素ブロックである。但し、画素ブロックの定義を全画面としても良い。その場合では、ステップＳＴ１１、ＳＴ２９（全画素ブロックの終了？）およびステップＳＴ１２、ＳＴ３０（画素ブロックの更新）が不要である。
【００５９】
以上の説明では、隣接する４画素の画素値の合計値または平均値によって，上位階層の画素値を生成している。しかしながら、４個以外の個数の画素値を使用しても良く、また、隣接していない複数の画素値を使用しても良く、さらに、加重平均その他のより複雑な演算によって上位階層画素値を生成しても良い。また、上述した説明では、下位階層の被置換画素値を完全に復元可能なように、差分値を生成し、この差分値を付加コードに変換している。しかしながら、上位階層画素値の生成方法、データ量の圧縮方法、階層数を考慮して、ある程度の誤差の発生を許容するような付加コードを生成しても良い。さらに、この発明は、画像データに限らず、ディジタル音声データのような他のディジタル情報信号に対しても適用することができる。
【００６０】
【発明の効果】
この発明によれば、全階層のデータを併存させる方法と比して、データの増加率が抑えながら、誤差の発生を防止することができる。また、この発明では、各階層データの画素値のビット長が一定長であるので、データを扱い易く、階層間で処理時間が異なる不都合を回避することができる。
【図面の簡単な説明】
【図１】この発明が適用可能な階層構造データを説明するための略線図である。
【図２】この発明による階層構造データの生成処理を説明するための略線図である。
【図３】この発明において伝送または記憶される画素値の配置を示す略線図である。
【図４】この発明による階層構造データにおいて被置換画素値の復元処理を説明するための略線図である。
【図５】この発明による階層構造データの生成を行うための構成の一例を示すブロック図である。
【図６】この発明による階層構造データにおいて被置換画素値の復元処理を行うための構成の一例を示すブロック図である。
【図７】この発明による階層構造データの生成方法を説明するためのフローチャートである。
【図８】この発明による階層構造データにおいて被置換画素値の復元方法を説明するためのフローチャートである。
【符号の説明】
ＤＬ１・・・第１階層データ、ＤＬ２・・・第２階層データ、ＤＬ３・・・第３階層データ、Ｔ１２，Ｔ２３・・・合計値、Ｓ１２，Ｓ２３・・・差分値、Ｃ１２，Ｃ２３・・・付加コード、５，３１・・・記憶部、６，１６・・・演算ユニット、７，１７・・・丸めユニット、３５，４５・・・逆演算ユニット
【図１】
0003840807.tif 000002
【図２】
0003840807.tif 000003
【図３】
0003840807.tif 000004
【図４】
0003840807.tif 000005
【図５】
0003840807.tif 000006
【図６】
0003840807.tif 000007
【図７】
0003840807.tif 000008
【図８】
0003840807.tif 000009