(57)【要約】  【課題】  処理時間が短く、必要なメモリ量が小さく、高い圧縮性能を発揮し得るデータ符号化装置等を提供する。  【解決手段】  既に読み出されたデータに基づき注目データの予測値を算出する予測部１１と、注目データと予測値との誤差である予測誤差値を演算する減算器１２と、注目データに対する予測誤差値と過去に求めた予測誤差値とに対してフィルタリングを行うことにより注目データに対する修正予測誤差値を演算するフィルタリング部１３および減算器１４と、修正予測誤差値を絶対値化する絶対値化部１５と、絶対値化された修正予測誤差値の平坦度とダイナミックレンジとに基づき固定長符号部分の符号長を決定するｋパラメータ決定部１８と、絶対値化された修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化するゴロムライス符号化部１９と、を備えたデータ符号化装置１。【選択図】図１
2006325130.tif 000002
【特許請求の範囲】
【請求項１】
データを適応予測して予測誤差値を演算する予測誤差値演算手段と、
注目データに対する予測誤差値と、過去に求めた予測誤差値と、に対して所定のフィルタリングを行うことにより、上記注目データに対する予測誤差値を修正した修正予測誤差値を演算する修正予測誤差値演算手段と、
上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化する符号化手段と、
を具備したことを特徴とするデータ符号化装置。
【請求項２】
上記修正予測誤差値が連続して所定の閾値以下となる数を検出するためのランカウンタと、
上記ランカウンタにより検出された数に応じて、上記修正予測誤差値の固定長符号部分の符号長を設定する符号長設定手段と、
をさらに具備したものであることを特徴とする請求項１に記載のデータ符号化装置。
【請求項３】
上記符号長設定手段は、上記ランカウンタにより検出された数が、所定のラン長以上である場合には、所定のラン長未満である場合に比して、上記符号長をより短く設定するものであることを特徴とする請求項２に記載のデータ符号化装置。
【請求項４】
上記閾値は複数種類設定可能となっており、
上記ランカウンタは、設定された複数種類の閾値のそれぞれに対して、修正予測誤差値が連続して該閾値以下となる数を検出するものであることを特徴とする請求項２に記載のデータ符号化装置。
【請求項５】
上記符号長設定手段は、第１の閾値に対して上記ランカウンタにより検出された数が所定のラン長以上である場合の第１の符号長を、この第１の閾値よりも大きい第２の閾値に対して上記ランカウンタにより検出された数が所定のラン長以上である場合の第２の符号長よりも短く設定するものであることを特徴とする請求項４に記載のデータ符号化装置。
【請求項６】
上記修正予測誤差値の有効なビット数をダイナミックレンジとして検出するためのダイナミックレンジ算出手段をさらに具備し、
上記符号長設定手段は、上記第１の符号長と上記第２の符号長との内の大きくない方と、上記ダイナミックレンジと、の内の小さくない方を、上記修正予測誤差値の固定長符号部分の符号長として設定するものであることを特徴とする請求項５に記載のデータ符号化装置。
【請求項７】
データを適応予測して予測誤差値を演算するステップと、
注目データに対する予測誤差値と、過去に求めた予測誤差値と、に対して所定のフィルタリングを行うことにより、上記注目データに対する予測誤差値を修正した修正予測誤差値を演算するステップと、
上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化するステップと、
を有することを特徴とするデータ符号化方法。
【請求項８】
データを適応予測して予測誤差値を演算するステップと、
注目データに対する予測誤差値と、過去に求めた予測誤差値と、に対して所定のフィルタリングを行うことにより、上記注目データに対する予測誤差値を修正した修正予測誤差値を演算するステップと、
上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化するステップと、
をコンピュータに実行させるためのプログラム。
【請求項９】
データを適応予測して予測誤差値を演算し、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算し、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化することにより得られた符号化データ、を復号化するためのデータ復号化装置であって、
上記符号化データを可変長符号部分と固定長符号部分とに分けて復号化することにより上記修正予測誤差値を求める修正予測誤差値復号化手段と、
上記修正予測誤差値復号化手段により復号化された修正予測誤差値に対して、上記所定のフィルタリングの逆フィルタリングを行うことにより上記予測誤差値を求める逆フィルタ手段と、
上記逆フィルタ手段により求められた予測誤差値を用いて上記注目データを求める注目データ復号化手段と、
を具備したことを特徴とするデータ復号化装置。
【請求項１０】
データを適応予測して予測誤差値を演算し、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算し、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化することにより得られた符号化データ、を復号化するためのデータ復号化方法であって、
上記符号化データを可変長符号部分と固定長符号部分とに分けて復号化することにより上記修正予測誤差値を求めるステップと、
復号化された上記修正予測誤差値に対して上記所定のフィルタリングの逆フィルタリングを行うことにより上記予測誤差値を求めるステップと、
求められた上記予測誤差値を用いて上記注目データを求めるステップと、
を有することを特徴とするデータ復号化方法。
【請求項１１】
データを適応予測して予測誤差値を演算し、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算し、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化することにより得られた符号化データ、を復号化する処理をコンピュータに実行させるためのプログラムであって、
上記符号化データを可変長符号部分と固定長符号部分とに分けて復号化することにより上記修正予測誤差値を求めるステップと、
復号化された上記修正予測誤差値に対して上記所定のフィルタリングの逆フィルタリングを行うことにより上記予測誤差値を求めるステップと、
求められた上記予測誤差値を用いて上記注目データを求めるステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを可変長符号部分と固定長符号部分とに分けて符号化または復号化するデータ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラムに関する。
【背景技術】
【０００２】
デジタルカメラ等の撮像装置では、例えば一眼レフレックスタイプの機種などにおいて、ＲＡＷデータと呼ばれる撮像データを記録媒体に記録することが行われている。このＲＡＷデータは、撮像素子から得られる画像信号に簡単なアナログ処理を施した後にデジタルデータに変換しただけのものである。ところで、近年、デジタルカメラの撮像素子の高画素化が進んでいるために、こうしたＲＡＷデータのデータサイズが大きくなってきている。従って、ＲＡＷデータに圧縮処理を行って、データサイズの縮小を図っているデジタルカメラも存在している。ただし、ＲＡＷデータは、ユーザによりレタッチされることが想定されるものであり、圧縮処理を行う場合にはロスレス（Lossless）圧縮であることが望ましい。
【０００３】
圧縮方式は、一般に、圧縮率が高いことが望まれるが、デジタルカメラ等の撮像装置に適用される圧縮方式の場合には、単体のパーソナルコンピュータ等に適用される圧縮方式の場合と異なって、仕様上の制限等から、さらに幾つかの望ましい条件があり、例えば以下のようになっている。 
（１）処理時間が短いこと
（２）処理に要するバッファ量が小さいこと
【０００４】
これらの内の条件（１）は、例えば、連写性能や、バッテリの消耗などに関連する条件である。また、条件（２）は、デジタルカメラのコストやサイズ、重量などに関連する条件となっている。
【０００５】
しかし、条件（１）と条件（２）とをともに満足させようとすると、今度は、圧縮性能が低下してしまう可能性が高くなる。
【０００６】
従来から提案されている圧縮技術としては、例えば米国特許５７６４３７４号に記載されたような、符号化対象画素の周辺画素の勾配により状態を分類して、それぞれの状態におけるゴロムライス符号化においてｋパラメータを設定する方法が挙げられる。
【特許文献１】米国特許５７６４３７４号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した米国特許５７６４３７４号に記載されたような技術では、各状態毎に出現頻度と累積誤差とのテーブルを作成して、その後に計算処理を行う必要があるために、バッファ使用量が増加してしまい、つまり上記条件（２）を十分に満足するものとはなっていない。さらに、符号化対象画素に関して周辺画素の状態分けを行っているために、処理の増加も伴うことになり、条件（１）に関しても十分に満足するものとはいえない。
【０００８】
本発明は上記事情に鑑みてなされたものであり、処理時間が短く、必要なメモリ量が小さく、高い圧縮性能を発揮し得るデータ符号化装置、データ符号化方法、プログラムを提供することを目的としている。
【０００９】
また、本発明は、上記圧縮されたデータを、短い処理時間、かつ、小さな必要なメモリ量で復号化し得るデータ復号化装置、データ復号化方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、第１の発明によるデータ符号化装置は、データを適応予測して予測誤差値を演算する予測誤差値演算手段と、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算する修正予測誤差値演算手段と、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化する符号化手段と、を具備したものである。
【００１１】
また、第２の発明によるデータ符号化装置は、上記第１の発明によるデータ符号化装置において、上記修正予測誤差値が連続して所定の閾値以下となる数を検出するためのランカウンタと、上記ランカウンタにより検出された数に応じて上記修正予測誤差値の固定長符号部分の符号長を設定する符号長設定手段と、をさらに具備したものである。
【００１２】
さらに、第３の発明によるデータ符号化装置は、上記第２の発明によるデータ符号化装置において、上記符号長設定手段が、上記ランカウンタにより検出された数が所定のラン長以上である場合には、所定のラン長未満である場合に比して上記符号長をより短く設定するものである。
【００１３】
第４の発明によるデータ符号化装置は、上記第２の発明によるデータ符号化装置において、上記閾値が複数種類設定可能となっており、上記ランカウンタは、設定された複数種類の閾値のそれぞれに対して修正予測誤差値が連続して該閾値以下となる数を検出するものである。
【００１４】
第５の発明によるデータ符号化装置は、上記第４の発明によるデータ符号化装置において、上記符号長設定手段が、第１の閾値に対して上記ランカウンタにより検出された数が所定のラン長以上である場合の第１の符号長を、この第１の閾値よりも大きい第２の閾値に対して上記ランカウンタにより検出された数が所定のラン長以上である場合の第２の符号長よりも短く設定するものである。
【００１５】
第６の発明によるデータ符号化装置は、上記第５の発明によるデータ符号化装置において、上記修正予測誤差値の有効なビット数をダイナミックレンジとして検出するためのダイナミックレンジ算出手段をさらに具備し、上記符号長設定手段は、上記第１の符号長と上記第２の符号長との内の大きくない方と、上記ダイナミックレンジと、の内の小さくない方を、上記修正予測誤差値の固定長符号部分の符号長として設定するものである。
【００１６】
第７の発明によるデータ符号化方法は、データを適応予測して予測誤差値を演算するステップと、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算するステップと、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化するステップと、を有する方法である。
【００１７】
第８の発明によるプログラムは、データを適応予測して予測誤差値を演算するステップと、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算するステップと、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化するステップと、をコンピュータに実行させるためのプログラムである。
【００１８】
第９の発明によるデータ復号化装置は、データを適応予測して予測誤差値を演算し、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算し、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化することにより得られた符号化データ、を復号化するためのデータ復号化装置であって、上記符号化データを可変長符号部分と固定長符号部分とに分けて復号化することにより上記修正予測誤差値を求める修正予測誤差値復号化手段と、上記修正予測誤差値復号化手段により復号化された修正予測誤差値に対して上記所定のフィルタリングの逆フィルタリングを行うことにより上記予測誤差値を求める逆フィルタ手段と、上記逆フィルタ手段により求められた予測誤差値を用いて上記注目データを求める注目データ復号化手段と、を具備したものである。
【００１９】
第１０の発明によるデータ復号化方法は、データを適応予測して予測誤差値を演算し、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算し、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化することにより得られた符号化データ、を復号化するためのデータ復号化方法であって、上記符号化データを可変長符号部分と固定長符号部分とに分けて復号化することにより上記修正予測誤差値を求めるステップと、復号化された上記修正予測誤差値に対して上記所定のフィルタリングの逆フィルタリングを行うことにより上記予測誤差値を求めるステップと、求められた上記予測誤差値を用いて上記注目データを求めるステップと、を有する方法である。
【００２０】
第１１の発明によるプログラムは、データを適応予測して予測誤差値を演算し、注目データに対する予測誤差値と過去に求めた予測誤差値とに対して所定のフィルタリングを行うことにより上記注目データに対する予測誤差値を修正した修正予測誤差値を演算し、上記修正予測誤差値を可変長符号部分と固定長符号部分とに分けて符号化することにより得られた符号化データ、を復号化する処理をコンピュータに実行させるためのプログラムであって、上記符号化データを可変長符号部分と固定長符号部分とに分けて復号化することにより上記修正予測誤差値を求めるステップと、復号化された上記修正予測誤差値に対して上記所定のフィルタリングの逆フィルタリングを行うことにより上記予測誤差値を求めるステップと、求められた上記予測誤差値を用いて上記注目データを求めるステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２１】
本発明のデータ符号化装置、データ符号化方法、プログラムによれば、短い処理時間、かつ、小さな必要なメモリ量で、高い圧縮性能を発揮することが可能となる。
【００２２】
また、本発明のデータ復号化装置、データ復号化方法、プログラムによれば、上記圧縮されたデータを、短い処理時間、かつ、小さな必要なメモリ量で復号化することが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施の形態を説明する。
【００２４】
［実施形態１］
図１から図１６は本発明の実施形態１を示したものであり、図１はデータ符号化装置の構成を示すブロック図、図２はデータ復号化装置の構成を示すブロック図である。
【００２５】
図１に示すように、データ符号化装置１は、予測部１１と、減算器１２と、フィルタリング部１３と、減算器１４と、絶対値化部１５と、ダイナミックレンジ算出部１６と、平坦度検出部１７と、ｋパラメータ決定部１８と、ゴロムライス符号化部１９と、を含んで構成されている。これらの内の、予測部１１および減算器１２には画像データが入力され、フィルタリング部１３からは下位ビットデータが出力され、絶対値化部１５からは正負データが出力され、ゴロムライス符号化部１９からは符号化データが出力されるようになっている。このデータ符号化装置１の詳細については、後で図５、図７〜図１１等を参照しながら作用に沿って説明する。
【００２６】
また、このデータ符号化装置１により圧縮されたデータは、図２に示すようなデータ復号化装置２により復号化されるようになっている。すなわち、データ復号化装置２は、ゴロムライス復号化部２１と、ダイナミックレンジ算出部２２と、平坦度検出部２３と、ｋパラメータ決定部２４と、正負変換部２５と、予測誤差算出部２６と、逆フィルタリング部２７と、加算器２８と、予測部２９と、を含んで構成されている。これらの内の、ゴロムライス復号化部２１には符号化データが入力され、正負変換部２５には正負データが入力され、予測誤差算出部２６には下位ビットデータが入力され、加算器２８からは画像データが出力されるようになっている。このデータ復号化装置２の詳細については、後で図６等を参照しながら作用に沿って説明する。
【００２７】
なお、図１、図２において、各ブロック間の相互の動作タイミングの調整は、図示しないタイミング調整回路により行うようになっている。
【００２８】
次に、データ符号化装置１のフィルタリング部１３は、図３に示すように構成されている。図３は、フィルタリング部１３の構成を示すブロック図である。
【００２９】
フィルタリング部１３は、修正予測誤差値演算手段の一部であって、変換予測誤差／予測誤差下位ビット生成部３１と、修正値生成部３２と、を含んで構成されたものである。これらの内の、変換予測誤差／予測誤差下位ビット生成部３１には予測誤差値が入力され、該変換予測誤差／予測誤差下位ビット生成部３１からは変換予測誤差値と下位ビットデータとが出力され、修正値生成部３２からは修正値が出力されるようになっている。このフィルタリング部１３の詳細についても、後で作用に沿って説明する。
【００３０】
さらに、データ符号化装置１の平坦度検出部１７またはデータ復号化装置２の平坦度検出部２３は、図４に示すように構成されている。図４は平坦度検出部の構成を示すブロック図である。
【００３１】
平坦度検出部１７，２３は、比較部４１と、ランカウンタ４２と、比較部４３と、ｋパラメータ下限値決定部４４と、を含んで構成されている。これらの内の、比較部４１には絶対値化された修正予測誤差データと閾値ｔｈとが入力され、ランカウンタ４２には外部カウントリセット信号が入力され、比較部４３には閾値ｔｈ＿ｒｕｎが入力され、ｋパラメータ下限値決定部４４にはｋ＿ｌｏｗおよびｋ＿ｈｉｇｈが入力されるようになっている。
【００３２】
この平坦度検出部１７，２３の詳細についても、後で作用に沿って説明する。
【００３３】
次に、図５はデータ符号化装置１による圧縮処理の流れの概要を示すフローチャートである。
【００３４】
データ符号化装置１による圧縮処理は、この図５に示すような一連の処理を行うことにより、基本的に行われるようになっている。
【００３５】
すなわち、まず、既に読み出された画素データに基づき、処理対象の画素データを予測する（ステップＳ１）。
【００３６】
次に、処理対象の画素データの実際の値と、ステップＳ１で予測した予測値と、の差分をとることにより、予測誤差値を生成する（ステップＳ２）。
【００３７】
続いて、より周辺の画素の影響も取り込むように、後述するように修正値を生成し（ステップＳ３）、生成した修正値に基づき、修正予測誤差値を生成する（ステップＳ４）。
【００３８】
そして、画素近傍の状態に応じて、ゴロムライス符号化を行う際の固定長符号部分の符号長を示すｋパラメータを決定し（ステップＳ５）、決定されたｋパラメータに基づいて、絶対値化された修正予測誤差値をゴロムライス符号化し（ステップＳ６）、終了する。
【００３９】
このような流れに沿った圧縮処理の詳細について、図７〜図１６を参照して説明する。図７はデータ符号化装置１による圧縮処理の詳細を示すフローチャート、図８は画素単位で行われる平坦度検出１の処理を示すフローチャート、図９は画素単位で行われる平坦度検出２の処理を示すフローチャート、図１０はライン単位で行われる平坦度検出１の処理を示すフローチャート、図１１はライン単位で行われる平坦度検出２の処理を示すフローチャート、図１２は注目画素と注目画素以前に読み出される近傍画素との配置を示す図、図１３は絶対値化の他の例を示す図表、図１４はデータ符号化装置１による処理の対象となる画素データを示す図、図１５はデータ符号化装置１により算出される修正予測誤差値を示す図、図１６は画素単位の平坦度検出において用いられる各閾値や設定値を示す図表である。
【００４０】
この処理を開始すると、まず、予測値を算出する（ステップＳ２１）（図５のステップＳ１に対応した処理）。この予測値の算出は、既にスキャンされている画素データに基づいて、注目画素の画素値を予測するものであり、ここでは、図１２に示すような注目画素の近傍の画素値を用いるようになっている。ここに、図１２においては、注目画素がｘで示され、注目画素の左隣の画素がａ、注目画素の上隣の画素がｂ、注目画素の左上隣の画素がｃ、でそれぞれ示されている。そして、各画素ａ，ｂ，ｃの画素値をＲａ，Ｒｂ，Ｒｃとし、注目画素ｘの予測値をＰｘとすると、予測値Ｐｘは、このような画素データの空間相関性に基づいて、予測誤差値演算手段の一部である予測部１１により、例えば次の数式１に示すような予測式を用いて算出される。 
［数１］
Ｐｘ＝ｍａｘ（Ｒａ，Ｒｂ）    （Ｒｃ＜ｍｉｎ（Ｒａ，Ｒｂ）のとき）
Ｐｘ＝ｍｉｎ（Ｒａ，Ｒｂ）    （Ｒｃ＞ｍａｘ（Ｒａ，Ｒｂ）のとき）
Ｐｘ＝Ｒａ＋Ｒｂ−Ｒｃ        （その他のとき）
ここに、右辺の記号ｍａｘ（ｘ，ｙ）は、ｘとｙとの小さくない方の値をとることを意味し、記号ｍｉｎ（ｘ，ｙ）は、ｘとｙとの大きくない方の値をとることを意味しており、以下でも同様に用いることにする。
【００４１】
なお、ここでは、数式１に示すような、エッジ検出に適した予測式を用いるようにしているが、適用可能な予測式はこれに限るものではなく、その他の種々の予測式を用いることも可能である。例えば、以下の数式２〜数式８を、予測式の幾つかの例として挙げる。まず、数式２は、注目画素の左隣の画素ａの画素値Ｒａを、注目画素ｘの予測値Ｐｘとするものである。これは、水平方向の画素同士の相関性が高い場合に、精度の良い予測値を得ることができると考えられる。 
［数２］
Ｐｘ＝Ｒａ
【００４２】
次に、数式３は、注目画素の上隣の画素ｂの画素値Ｒｂを、注目画素ｘの予測値Ｐｘとするものである。これは、垂直方向の画素同士の相関性が高い場合に、精度の良い予測値を得ることができると考えられる。 
［数３］
Ｐｘ＝Ｒｂ
【００４３】
さらに、数式４は、注目画素の左上隣の画素ｃの画素値Ｒｃを、注目画素ｘの予測値Ｐｘとするものである。これは、左上から右下にかけての斜め方向の画素同士の相関性が高い場合に、精度の良い予測値を得ることができると考えられる。 
［数４］
Ｐｘ＝Ｒｃ
【００４４】
そして、数式５は、注目画素ｘの左隣の画素ａの画素値Ｒａと注目画素ｘの上隣の画素ｂの画素値Ｒｂとを加算し、そこから注目画素ｘの左上隣の画素ｃの画素値Ｒｃを減算して、注目画素ｘの予測値Ｐｘとするものである。これは、左上から右下にかけての斜め方向の画素の画素値の変化率に規則性がある場合に、精度の良い予測値を得ることができると考えられる。 
［数５］
Ｐｘ＝Ｒａ＋Ｒｂ−Ｒｃ
【００４５】
加えて、数式６は、注目画素ｘの左隣の画素ａの画素値Ｒａに、注目画素ｘの上隣の画素ｂの画素値Ｒｂから注目画素ｘの左上隣の画素ｃの画素値Ｒｃを減算して２で割ったものを加算し、注目画素ｘの予測値Ｐｘとするものである。これは、水平方向の画素の画素値の変化率に規則性がある場合に、精度の良い予測値を得ることができると考えられる。 
［数６］
Ｐｘ＝Ｒａ＋｛（Ｒｂ−Ｒｃ）／２｝
【００４６】
また、数式７は、注目画素ｘの上隣の画素ｂの画素値Ｒｂに、注目画素ｘの左隣の画素ａの画素値Ｒａから注目画素ｘの左上隣の画素ｃの画素値Ｒｃを減算して２で割ったものを加算し、注目画素ｘの予測値Ｐｘとするものである。これは、垂直方向の画素の画素値の変化率に規則性がある場合に、精度の良い予測値を得ることができると考えられる。 
［数７］
Ｐｘ＝Ｒｂ＋｛（Ｒａ−Ｒｃ）／２｝
【００４７】
さらに、数式８は、注目画素ｘの左隣の画素ａの画素値Ｒａと注目画素ｘの上隣の画素ｂの画素値Ｒｂとの平均値を、注目画素ｘの予測値Ｐｘとするものである。これは、周辺画素との相関性が高い場合（例えば、比較的平坦な場合）に、精度の良い予測値を得ることができると考えられる。 
［数８］
Ｐｘ＝（Ｒａ＋Ｒｂ）／２
【００４８】
なお、上述したような各予測式は、１つの画像データに対して１つのみを用いるに限るものではなく、組み合わせて用いることも可能である。すなわち、例えば、基本的には数式２に示すような予測式を用いるとしても、ライン上の左端の画素が注目画素となっているときには、そのさらに左側には画素が存在しないために、数式３に示す予測式を用いる、などの組み合わせが考えられる。そして、上述した各予測式に限るものではなく、注目画素よりも前に読み出される画素であって、注目画素に空間的な距離が近接する画素であれば、任意の１以上の画素の画素データを用いて予測値を算出することが可能である。
【００４９】
ここで、データ符号化装置１へ入力される画像データの例えば１ライン分が、図１４に示すように、左から右へ向かって、例えばｘ0 ，ｘ1 ，…，ｘi ，ｘi+1 の各画素値が配列されたものであるとする。そして注目画素の画素値をｘi とし、該注目画素における予測値を上記Ｐｘに代えてＲi と記載するものとする。
【００５０】
このとき、予測誤差値演算手段の一部である減算器１２は、数式９に示すように、注目画素の実際の画素値ｘi から予測値Ｒi を減算することにより、予測誤差値Ｐi を算出する（ステップＳ２２）（図５のステップＳ２に対応した処理）。 
［数９］
2006325130.tif 000003
【００５１】
さらに、フィルタリング部１３内の変換予測誤差／予測誤差下位ビット生成部３１が、次の数式１０に示すように、予測誤差値Ｐi の下位ビット（ここでは、最下位の１ビット）を落とす（０にする）ことにより、変換予測誤差値Ｐ'iを算出する。 
［数１０］
2006325130.tif 000004
ここに、数式１０の右辺における括弧は床関数であり、括弧内の数を超えない最大の整数を表している。なお、この形状の括弧は、以下でも同様に床関数を表すものとする。また、２で割ってから床関数を用いる演算は、コンピュータにおいては、右ビットシフトにより行うことができる。従って、この数式１０に示した演算は、右ビットシフトと左ビットシフトとを組み合わせることにより行うことが可能である。そして、このような処理を行うのは、予測誤差値Ｐi の下位ビットはランダム性が高いために、分離して別途処理した方が圧縮効率が高くなるためである。
【００５２】
続いて、修正値生成部３２は、変換予測誤差値Ｐ'iを用いて、次の数式１１に示す漸化式により修正値Ｃi を算出する（ステップＳ２３）（図５のステップＳ３に対応した処理）。 
［数１１］
2006325130.tif 000005
【００５３】
数式１１を見れば分かるように、修正値Ｃi は、変換予測誤差値Ｐ'iをほぼ半分の割合で含むとともに、その漸化式の構造により、変換予測誤差値Ｐ'i-1をほぼ１／４の割合，変換予測誤差値Ｐ'i-2をほぼ１／８の割合，…でそれぞれ含んでいる。これにより、数式１１は、原理的に、無限フィルタの構造をなしている。従って、修正値Ｃi は、注目画素から離れるほど小さい割合で変換予測誤差値Ｐ' （ひいては、予測誤差値Ｐ）を含むものとなっており、隣接画素からのみ算出される予測誤差値を、周辺の複数画素の画素値から算出するように修正するためのものであると考えることができる。
【００５４】
なお、ここでは、修正値生成部３２が、数式１１に示したような漸化式により修正値Ｃi を算出しているが、これに限るものではなく、例えば、次の数式１２に示すような有限フィルタの構造をなす式により修正値Ｃi を算出するようにしても構わない。 
［数１２］
2006325130.tif 000006
【００５５】
また、変換予測誤差／予測誤差下位ビット生成部３１は、数式１０において予測誤差値Ｐi からビット落ちした予測誤差下位ビットＰＬi を、次の数式１３に示すように算出して出力するようになっている。 
［数１３］
2006325130.tif 000007
【００５６】
さらに、修正予測誤差値演算手段の一部である減算器１４は、次の数式１４に示すように、変換予測誤差値Ｐ'iから修正値Ｃi を減算することにより、修正予測誤差値Ｐ"i（図１５参照）を算出する（ステップＳ２４）（図５のステップＳ４に対応した処理）。 
［数１４］
2006325130.tif 000008
【００５７】
修正値Ｃi は、上述したように複数の画素に係る予測誤差値Ｐの情報を含むものとなっているために、修正予測誤差値Ｐ"iも、複数の画素に係る予測誤差値Ｐの情報を含むものとなる。従って、予測誤差値Ｐに代えてこの修正予測誤差値Ｐ"iを用いることにより、空間相関の低い画像データ（例えば、ランダム性の高い画像データなど）が入力されたときにも、値が大きくなって圧縮率が低下するのを防ぐことができると期待される。
【００５８】
このように算出される修正予測誤差値Ｐ"iを、以下の説明および図８、図９のフローチャートにおいては、修正予測誤差値pred_diff と表記するものとする。
【００５９】
次に、絶対値化部１５が、修正予測誤差値pred_diff を絶対値化して、絶対値化された修正予測誤差値abs_pred_diff を算出する（ステップＳ２５）（図５のステップＳ５，Ｓ６の一部に対応した処理）。この絶対値化には種々の方法があるが、例えば、次の数式１５に示すように算出する手段が挙げられる。 
［数１５］
abs_pred_diff ＝pred_diff                   （pred_diff ≧０のとき）
abs_pred_diff ＝ａｂｓ（pred_diff ）−１    （pred_diff ＜０のとき）
ここに、第２式右辺のａｂｓ（）は、絶対値をとることを示している。
【００６０】
そして、絶対値化部１５は、この数式１５に示すような演算により絶対値化を行う場合には、符号を示すデータ（正負データ）を図１等に示したように、別途出力する。
【００６１】
また、絶対値化の他の方法としては、図１３に示すように、予測誤差値「０」に絶対値化データ「０」を与え、予測誤差値「１」に絶対値化データ「１」を与え、予測誤差値「−１」に絶対値化データ「２」を与え、予測誤差値「２」に絶対値化データ「３」を与え、予測誤差値「−２」に絶対値化データ「４」を与え、等を順次行う手段が挙げられる。
【００６２】
なお、これらに限らず、その他の手段により絶対値化を行うようにしても構わない。
【００６３】
このようにして絶対値化された修正予測誤差値abs_pred_diff が、ゴロムライス符号化の対象となるデータであって、後で説明するステップＳ３１の処理に用いられるとともに、上述したｋパラメータを決定するために、以下に説明するように用いられるようになっている。
【００６４】
このように算出された絶対値化された修正予測誤差値abs_pred_diff は、ｋパラメータを決定する処理を行うために、まず１画素分遅延される（ステップＳ２６）。
【００６５】
そして、スキャン順序に従った１画素前の絶対値化された修正予測誤差値abs_pred_diff に基づき、前画素ダイナミックレンジの算出（ステップＳ２７）と、第１の閾値との比較に基づく画素単位の平坦度検出１の処理（ステップＳ２８）と、第２の閾値との比較に基づく画素単位の平坦度検出２の処理（ステップＳ２９）と、が行われる。
【００６６】
ここに、ステップＳ２７における前画素ダイナミックレンジ算出の処理は、前画素の有効な画素値部分のビット数を算出するものである。すなわち、ダイナミックレンジ算出手段たるダイナミックレンジ算出部１６は、前画素の画素値を上位ビットから下位ビット側へ向けて１ビットずつ検出していき、最初に「０」でないビット値（つまり、ビット値「１」）が得られたビットの桁を求める処理を行う。このとき求められたダイナミックレンジをpre_rangeとする。
【００６７】
また、ステップＳ２８における画素単位の平坦度検出１の処理は、図８に示すようにして行う。
【００６８】
すなわち、この処理を開始すると、まず、比較部４１が、絶対値化された修正予測誤差値abs_pred_diff が所定の閾値ｔｈ１以下であるか否かを判定する（ステップＳ４１ａ）。
【００６９】
ここで、閾値ｔｈ１以下である場合には、ランカウンタ４２内に備えられたランカウンタrun_count1をカウントアップ（図８においては、カウントアップを、記号「run_count1+1」により示している）する（ステップＳ４２ａ）。このランカウンタrun_count1は、閾値ｔｈ１以下である絶対値化された修正予測誤差値abs_pred_diff が何画素連続しているかを示すカウンタである。
【００７０】
そして、比較部４３は、ランカウンタrun_count1が、所定のラン長を示す閾値th_run1 以上であるか否かを判定する（ステップＳ４３ａ）。
【００７１】
ここで、閾値th_run1 以上である場合には、ｋパラメータ下限値決定部４４が、ｋパラメータ候補k_param1に、所定のｋパラメータ設定値k_low1を格納する（ステップＳ４４ａ）。
【００７２】
また、ステップＳ４１ａにおいて、絶対値化された修正予測誤差値abs_pred_diff が所定の閾値ｔｈ１よりも大きいと判定された場合には、ランカウンタ４２は、ランカウンタrun_count1を初期化（つまり、「０」を格納）する（ステップＳ４５ａ）。
【００７３】
このステップＳ４５ａが終了するか、または、ステップＳ４３ａにおいてランカウンタrun_count1が、閾値th_run1 よりも小さいと判定された場合には、ｋパラメータ下限値決定部４４が、ｋパラメータ候補k_param1に、所定のｋパラメータ設定値k_high1 （ここに、k_high1 ＞k_low1）を格納する（ステップＳ４６ａ）。
【００７４】
こうして、ステップＳ４４ａまたはステップＳ４６ａが終了したところで、この処理から図７に示した処理に復帰する。
【００７５】
さらに、ステップＳ２９における画素単位の平坦度検出２の処理は、図９に示すようになっている。この図９に示す処理は、図８に示した処理に比して、閾値ｔｈ１が閾値ｔｈ２（ｔｈ２＞ｔｈ１）となり、ランカウンタrun_count1がランカウンタrun_count2となり、所定のラン長を示す閾値th_run1 が閾値th_run2 となり、所定のｋパラメータ設定値k_low1が所定のｋパラメータ設定値k_low2（k_low2＞k_low1）となり、所定のｋパラメータ設定値k_high1 が所定のｋパラメータ設定値k_high2 （k_high2 ＞k_low2）となり、ｋパラメータ候補k_param1がｋパラメータ候補k_param2となる点を除いて、ステップＳ４１ａ〜Ｓ４６ａの各処理が、ステップＳ４１ｂ〜Ｓ４６ｂの各処理にそれぞれ対応するものとなっている。
【００７６】
なお、図８に示した画素単位の平坦度検出１の処理や、図９に示した画素単位の平坦度検出１の処理において用いられる各閾値や設定値は、具体的には、例えば図１６に示すように設定されている。
【００７７】
すなわち、閾値ｔｈ１は「３」、閾値ｔｈ２は「１５」、閾値th_run1 は「２」、閾値th_run2 は「２」、ｋパラメータ設定値k_low1は「２」、ｋパラメータ設定値k_low2は「４」、ｋパラメータ設定値k_high1 は「５」、ｋパラメータ設定値k_high2 は「５」となっている。
【００７８】
その後、上述したステップＳ２７，Ｓ２８，Ｓ２９の各処理の結果、つまり、ステップＳ２７により算出されたpre_rangeと、ステップＳ２８により算出されたk_param1と、ステップＳ２９により算出されたk_param2と、に基づいて、ｋパラメータ決定部１８が、次の数式１６に示すようにｋパラメータk_param を決定する（ステップＳ３０）。 
［数１６］
k_param ＝ｍａｘ（pre_range，ｍｉｎ（k_param1，k_param2））
【００７９】
なお、上述したステップＳ２６〜Ｓ３０までの処理が、図５のステップＳ５の処理の要部に対応している。
【００８０】
そして、算出されたｋパラメータk_paramに基づき、符号化手段たるゴロムライス符号化部１９が、上記ステップＳ２５において絶対値化された修正予測誤差値abs_pred_diff をゴロムライス符号化する（ステップＳ３１）（図５のステップＳ６の要部に対応した処理）。具体的な例としては、絶対値化された修正予測誤差値abs_pred_diff が２進数で表して「００００１１１０１１０」となり、ｋパラメータk_paramが「５」である場合には、下位の５ビット「１０１１０」が固定長符号部分となり、残りの上位ビット「００００１１」は十進数で表すと「３」であるために可変長符号部分は「０００」となり、この可変長符号部分の後に区切り符号「１」を付加して「０００１」となる。そして、これらを合成することにより、ゴロムライス符号化により得られる符号は「０００１１０１１０」となる。こうして、１１ビットの情報が９ビットに圧縮されたことが分かる。
【００８１】
このように、１画素分のゴロムライス符号化が終了したら、該画素が１ラインの中の最後の画素であるか否か、つまり１ライン分の符号化が終了したか否かを判定する（ステップＳ３２）。
【００８２】
ここで、まだ１ライン分の符号化が終了していないと判定された場合には、ステップＳ２１へ戻って同一ライン内の次の画素について、上述したような処理を繰り返して行う。
【００８３】
一方、ステップＳ３２において、１ライン分の符号化が終了したと判定された場合には、ライン単位の平坦度検出１の処理（ステップＳ３３）（図５のステップＳ５の一部に対応した処理）と、ライン単位の平坦度検出２の処理（ステップＳ３４）（図５のステップＳ５の一部に対応した処理）と、を行う。
【００８４】
すなわち、ステップＳ３３におけるライン単位の平坦度検出１の処理は、図１０に示すように、ランカウンタ４２が、外部カウントリセット信号に応じて、ランカウンタrun_count1を初期化（つまり、「０」を格納）することにより行う（ステップＳ５１ａ）。
【００８５】
同様に、ステップＳ３４におけるライン単位の平坦度検出２の処理は、図１１に示すように、ランカウンタ４２が、外部カウントリセット信号に応じて、ランカウンタrun_count2を初期化（つまり、「０」を格納）することにより行う（ステップＳ５１ｂ）。
【００８６】
これらステップＳ３３およびステップＳ３４の処理が終了したら、画像データの全ラインについての処理が行われたか否か、つまり画像データ全体の処理が終了したか否かを判定し（ステップＳ３５）、終了していない場合には、上記ステップＳ２１へ戻って、次のラインの画素について、上述したような処理を繰り返して行う。
【００８７】
また、ステップＳ３５において画像データ全体の処理が終了したと判定された場合には、この処理を終了する。
【００８８】
また、図６はデータ復号化装置２による伸張処理の流れの概要を示すフローチャートである。
【００８９】
この処理を開始すると、修正予測誤差値復号化手段たるゴロムライス復号化部２１が、図７のステップＳ３１で説明したのと逆の手順により、ゴロムライス復号化を行って、絶対値化された修正予測誤差値abs_pred_diff を算出する（ステップＳ１１）。なお、この絶対値化された修正予測誤差値abs_pred_diff は、後述するように、次の画素のｋパラメータの決定にも用いられる。
【００９０】
次に、正負変換部２５が、正負データを用いて、絶対値化された修正予測誤差値abs_pred_diff から修正予測誤差値pred_diff 、すなわち、修正予測誤差値Ｐ"iを算出する（ステップＳ１２）。
【００９１】
続いて、逆フィルタ手段の一部である予測誤差算出部２６が、修正予測誤差値Ｐ"iと予測誤差下位ビットＰＬi とを用いて、予測誤差値Ｐi を生成する（ステップＳ１４）。
【００９２】
すなわち、予測誤差算出部２６は、まず、次の数式１７を用いて、変換予測誤差値Ｐ'iを算出する。 
［数１７］
2006325130.tif 000009
ここに、数式１７の右辺における修正値Ｃi-1 は、既に算出されている変換予測誤差値Ｐ'i-1と、既に算出されている修正値Ｃi-2 と、を用いて、逆フィルタ手段の一部である逆フィルタリング部２７が、ステップＳ１４を行う前に、上述した数式１１により既に算出している（ステップＳ１３）。
【００９３】
なお、修正値Ｃi が上述した数式１２により算出されたものである場合には、予測誤差算出部２６は、次の数式１８を用いて、変換予測誤差値Ｐ'iを算出することになる。 
［数１８］
2006325130.tif 000010
【００９４】
その後、予測誤差算出部２６は、次の数式１９を用いて、数式１７または数式１８により算出した変換予測誤差値Ｐ'iと、予測誤差下位ビットＰＬi と、に基づき予測誤差値Ｐi を算出する。 
［数１９］
2006325130.tif 000011
【００９５】
次に、注目データ復号化手段の一部である予測部２９が、既に算出されている画素値を用いて、上記数式１〜数式８の何れかにより、予測値Ｒi （予測値Ｐｘ）を生成する（ステップＳ１５）。
【００９６】
そして、注目データ復号化手段の一部である加算器２８が、次の数式２０により、予測値Ｒi と予測誤差値Ｐi とに基づき、画素値ｘi を算出する（ステップＳ１６）。 
［数２０］
2006325130.tif 000012
【００９７】
こうして算出された画素値ｘi は、データ復号化装置２からの出力データになる。
【００９８】
また、ゴロムライス復号化部２１から出力された絶対値化された修正予測誤差値abs_pred_diff は、１画素分遅延された後に、ダイナミックレンジ算出部２２によりダイナミックレンジpre_rangeが上述したように算出されるとともに、平坦度検出部２３により２種類の閾値ｔｈ１，ｔｈ２に基づきｋパラメータ候補k_param1，k_param2が上述したように算出される。そして、これらの算出結果に基づき、符号長設定手段たるｋパラメータ決定部２４が、数式１６に示したようにｋパラメータを決定する（ステップＳ１７）。
【００９９】
なお、上述では、処理対象となるデータとして、画像データを例に挙げたが、データ符号化装置１やデータ復号化装置２により処理し得るデータは、これに限るものではないことは勿論である。
【０１００】
また、上述では、データ符号化装置１やデータ復号化装置２により処理を行っているが、既存の演算器等にデータ符号化方法やデータ復号化方法を適用することにより処理するようにしても構わない。あるいは、データ符号化装置１やデータ復号化装置２と同等の処理を行うためのプログラムにより、コンピュータで処理させるようにしても良い。
【０１０１】
さらに、上述では、フィルタリングの例として、修正予測誤差を算出する技術を例に挙げているが、これに限るものではなく、注目画素よりも以前に読み出される複数の画素の情報が、ｋパラメータを生成するために用いられる画素の情報に組み込まれるようなフィルタリングであれば、広く適用することが可能である。
【０１０２】
そして、上述では、符号化の例としてゴロムライス符号化を、復号化の例としてゴロムライス復号化を、それぞれ例に挙げているが、これに限るものではなく、より一般に、データを可変長符号部分と固定長符号部分とに分けて符号化する手段であれば構わない。従って、符号化の対象となるのは、絶対値化が行われた後の修正予測誤差値に限るものではない。
【０１０３】
このような実施形態１によれば、隣接画素位置の情報（ただし、隣接画素位置の情報には、隣接画素の情報と、該隣接画素よりも以前に読み出された他の画素の情報と、が含まれている）のみを用いてｋパラメータの予測を行うようにしているために、必要なメモリ量を小さくすることができる。
【０１０４】
さらに、ｋパラメータの予測を行う前に、隣接画素の近傍画素の情報が隣接画素の情報とともに該隣接画素位置の情報に組み込まれるようなフィルタリングを行っているために、ｋパラメータの予測精度をより高めることが可能となり、高い圧縮性能を発揮することができる。
【０１０５】
そして、フィルタリングとして、加減算やビットシフトなどの簡単な演算の組み合わせによりなされる処理を用いているために、処理時間の短縮を図ることができる。
【０１０６】
加えて、圧縮されたデータを、短い処理時間、かつ、小さな必要なメモリ量で復号化することが可能となる。
【０１０７】
なお、本発明は上述した実施形態に限定されるものではなく、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。
【産業上の利用可能性】
【０１０８】
本発明は、データを可変長符号部分と固定長符号部分とに分けて符号化または復号化するデータ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラムに好適に利用することができる。
【図面の簡単な説明】
【０１０９】
【図１】本発明の実施形態１におけるデータ符号化装置の構成を示すブロック図。
【図２】上記実施形態１におけるデータ復号化装置の構成を示すブロック図。
【図３】上記実施形態１におけるフィルタリング部の構成を示すブロック図。
【図４】上記実施形態１における平坦度検出部の構成を示すブロック図。
【図５】上記実施形態１のデータ符号化装置による圧縮処理の流れの概要を示すフローチャート。
【図６】上記実施形態１のデータ復号化装置による伸張処理の流れの概要を示すフローチャート。
【図７】上記実施形態１のデータ符号化装置による圧縮処理の詳細を示すフローチャート。
【図８】上記実施形態１において、画素単位で行われる平坦度検出１の処理を示すフローチャート。
【図９】上記実施形態１において、画素単位で行われる平坦度検出２の処理を示すフローチャート。
【図１０】上記実施形態１において、ライン単位で行われる平坦度検出１の処理を示すフローチャート。
【図１１】上記実施形態１において、ライン単位で行われる平坦度検出２の処理を示すフローチャート。
【図１２】上記実施形態１において、注目画素と注目画素以前に読み出される近傍画素との配置を示す図。
【図１３】上記実施形態１における絶対値化の他の例を示す図表。
【図１４】上記実施形態１のデータ符号化装置による処理の対象となる画素データを示す図。
【図１５】上記実施形態１のデータ符号化装置により算出される修正予測誤差値を示す図。
【図１６】上記実施形態１の画素単位の平坦度検出において用いられる各閾値や設定値を示す図表。
【符号の説明】
【０１１０】
１…データ符号化装置
２…データ復号化装置
１１…予測部（予測誤差値演算手段）
１２…減算器（予測誤差値演算手段）
１３…フィルタリング部（修正予測誤差値演算手段）
１４…減算器（修正予測誤差値演算手段）
１５…絶対値化部
１６…ダイナミックレンジ算出部（ダイナミックレンジ算出手段）
１７…平坦度検出部（ランカウンタを含む）
１８…ｋパラメータ決定部（符号長設定手段）
１９…ゴロムライス符号化部（符号化手段）
２１…ゴロムライス復号化部（修正予測誤差値復号化手段）
２２…ダイナミックレンジ算出部
２３…平坦度検出部
２４…ｋパラメータ決定部
２５…正負変換部
２６…予測誤差算出部（逆フィルタ手段）
２７…逆フィルタリング部（逆フィルタ手段）
２８…加算器（注目データ復号化手段）
２９…予測部（注目データ復号化手段）
３１…変換予測誤差／予測誤差下位ビット生成部
３２…修正値生成部
４１…比較部
４２…ランカウンタ
４３…比較部
４４…ｋパラメータ下限値決定部
【図１】
2006325130.tif 000013
【図２】
2006325130.tif 000014
【図３】
2006325130.tif 000015
【図４】
2006325130.tif 000016
【図５】
2006325130.tif 000017
【図６】
2006325130.tif 000018
【図７】
2006325130.tif 000019
【図８】
2006325130.tif 000020
【図９】
2006325130.tif 000021
【図１０】
2006325130.tif 000022
【図１１】
2006325130.tif 000023
【図１２】
2006325130.tif 000024
【図１３】
2006325130.tif 000025
【図１４】
2006325130.tif 000026
【図１５】
2006325130.tif 000027
【図１６】
2006325130.tif 000028