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