(57)【要約】【課題】  情報量が低減された符号化テーブル情報を生成するデータ符号化装置，その符号化テーブル情報を用いてデータを復号するデータ復号装置を提供する。【解決手段】  データ符号化装置１００では，累積出現頻度分布計測部１０３が，外部から入力された一定個数のシンボルに対して出現頻度を算出し，算出された各シンボルの出現頻度の所定の累積値と所与の目標累積値とに基づいて，各シンボルの符号語長に関連した情報である符号化テーブル情報を生成する。また，符号化部１０４は，生成された符号化テーブル情報を用いて各シンボルを符号語にそれぞれ符号化する。一方，データ復号装置では，復号部２０１が，データ符号化装置１００から送信された一定個数の符号語と符号化テーブル情報とを入力し，符号化テーブル情報を用いて各符号語を各シンボルにそれぞれ復号する。【選択図】    図１
2006345374.tif 000002
【特許請求の範囲】
【請求項１】
シンボルを符号化するデータ符号化装置であって：
外部から入力された一定個数のシンボルの各シンボル値の出現頻度を算出し，前記算出された各シンボル値の出現頻度の累積値と予め定められた目標累積値とに基づいて，各シンボルが符号化された符号語の符号語長に関連した情報を符号化テーブル情報として生成する累積出現頻度分布計測部と；
前記生成された符号化テーブル情報を用いて前記各シンボルをそれぞれ符号化する符号化部と；を備えることを特徴とするデータ符号化装置。
【請求項２】
前記累積出現頻度分布計測部は，
任意のシンボル値から昇順に各シンボル値の出現頻度を累積し，その累積値が前記目標累積値に最も近い値となった場合，その累積値を求める対象となったシンボル値を符号化して表すために必要なビット数Ｌｉを求めるループ処理を所定の条件を満たすまで繰り返し，その繰り返し回数ｋと前記各ループ処理にて求められたビット数Ｌｉ（ｉ＝１，２，・・，ｋ）とを前記符号化テーブル情報として生成することを特徴とする請求項１に記載されたデータ符号化装置。
【請求項３】
前記データ符号化装置であって，さらに，
前記外部から入力された一定個数のシンボルの最大値を検出する最大値検出部を備え，
前記累積出現頻度分布計測部は，
前記検出されたシンボルの最大値が前記所定の条件を満たすまで，前記ループ処理を繰り返すことを特徴とする請求項２に記載されたデータ符号化装置。
【請求項４】
前記符号化テーブル情報は，
各シンボル値に対応して２のべき乗毎に変化する前記符号語長を表すために，２のべき乗毎に生成される情報であることを特徴とする請求項１〜３のいずれかに記載されたデータ符号化装置。
【請求項５】
前記符号化部は，
前記符号化テーブル情報を所定の条件式に当てはめることにより前記各シンボルをそれぞれ符号化することを特徴とする請求項１〜４のいずれかに記載されたデータ符号化装置。
【請求項６】
前記目標累積値は，
前記ループ処理を繰り返す毎に小さくなる値であることを特徴とする請求項２〜５のいずれかに記載されたデータ符号化装置。
【請求項７】
前記各シンボル値は，
０以上の正の値であることを特徴とする請求項１〜６のいずれかに記載されたデータ符号化装置。
【請求項８】
前記データ符号化装置であって，さらに，
前記生成された符号化テーブル情報を保持する符号化テーブル情報保持部を備え，
前記符号化部は，
外部から新たに入力される１または２以上のシンボルを前記符号化テーブル情報保持部に保持された符号化テーブル情報を用いて符号化することを特徴とする請求項１〜７のいずれかに記載されたデータ符号化装置。
【請求項９】
前記データ符号化装置であって，さらに，
今回外部から新たに入力された１または２以上のシンボルを含む一定個数のシンボルの各シンボル値の出現頻度をシンボル値毎に記憶する記憶部を備え，
前記累積出現頻度分布計測部は，
前記記憶部に記憶された各シンボル値の出現頻度を算出し，前記算出された各シンボル値の出現頻度の累積値と前記目標累積値とに基づいて符号化テーブル情報を生成し，
前記符号化テーブル情報保持部は，
前記生成された符号化テーブル情報を保持し，
前記符号化部は，
次回，外部から新たに入力される１または２以上のシンボルを前記符号化テーブル情報保持部に保持された符号化テーブル情報を用いて符号化することを特徴とする請求項８に記載されたデータ符号化装置。
【請求項１０】
前記外部から新たに入力する１または２以上のシンボルの個数は，一定個数であることを特徴とする請求項８または請求項９のいずれかに記載されたデータ符号化装置。
【請求項１１】
前記記憶部は，
前記各シンボル値の出現頻度をシンボル値毎に記憶する代わりに，最小のシンボル値から順に各シンボル値を２のべき乗毎に区切り，その区切り内の各シンボル値の出現頻度を区切り毎に累積し，その累積値をそれぞれ記憶することを特徴とする請求項９に記載されたデータ符号化装置。
【請求項１２】
シンボルが符号化された符号語を復号するデータ復号装置であって：
データ符号化装置から送信された一定個数の符号語とその各符号語の符号語長に関連した情報を示す符号化テーブル情報とを入力し，入力された符号化テーブル情報を用いて前記入力された各符号語を各シンボルにそれぞれ復号する復号部；を備えることを特徴とするデータ復号装置。
【請求項１３】
前記復号部は，
前記入力された符号化テーブル情報を用いて前記入力された符号語からシンボルの復号に必要な部分を抽出し，その抽出した部分と前記符号化テーブル情報とを用いて前記各符号語を各シンボルにそれぞれ復号することを特徴と請求項１２に記載されたデータ復号装置。
【請求項１４】
前記データ復号装置であって，さらに，
前記符号化テーブル情報を保持する符号化テーブル情報保持部と；
今回，データ符号化装置から新たに送信された１または２以上のシンボルを含む一定個数のシンボルの各シンボル値の出現頻度をシンボル値毎に記憶する記憶部と；を備え，
前記累積出現頻度分布計測部は，
前記記憶部に記憶された各シンボル値の出現頻度の累積値と予め定められた目標累積値とに基づいて新たな符号化テーブル情報を生成し，
前記符号化テーブル情報保持部は，
前記生成された新たな符号化テーブル情報を保持し，
前記復号部は，
次回，データ符号化装置から新たに送信される符号語を前記保持された符号化テーブル情報を用いてシンボルに復号することを特徴とする請求項１２または請求項１３のいずれかに記載されたデータ復号装置。
【請求項１５】
前記データ復号装置であって，さらに，
前記符号化テーブル情報を保持する符号化テーブル情報保持部を備え；
前記累積出現頻度分布計測部は，
今回，データ符号化装置から新たに送信された一定個数のシンボルの各シンボル値の出現頻度を算出し，前記算出された各シンボル値の出現頻度の累積値と前記目標累積値とに基づいて新たな符号化テーブル情報を生成し，
前記符号化テーブル情報保持部は，
前記生成された新たな符号化テーブル情報を保持し，
前記復号部は，
次回，データ符号化装置から新たに送信される符号語を前記保持された符号化テーブル情報を用いてシンボルに復号することを特徴とする請求項１２または請求項１３のいずれかに記載されたデータ復号装置。
【請求項１６】
前記復号部は，
初回の復号処理では，データ符号化装置から一定個数の符号語と符号化テーブル情報とを送信され，その送信された符号化テーブル情報を用いて前記送信された各符号語を各シンボルにそれぞれ復号し，
次回以降の復号処理では，データ符号化装置から１または２以上の符号語のみが送信され，その送信された各符号語を前記符号化テーブル情報保持部に保持された符号化テーブル情報を用いて各シンボルにそれぞれ復号することを特徴とする請求項１４または請求項１５のいずれかに記載されたデータ復号装置。
【請求項１７】
前記記憶部は，
前記各シンボル値の出現頻度をシンボル毎に記憶する代わりに，最小のシンボル値から順に各シンボル値を２のべき乗毎に区切り，その区切り内の各シンボル値の出現頻度を累積し，その累積値をそれぞれ記憶することを特徴とする請求項１４に記載されたデータ符号化装置。
【請求項１８】
シンボルを符号化するデータ符号化方法であって：
外部から入力された一定個数のシンボルの各シンボル値の出現頻度を算出し，前記算出された各シンボル値の出現頻度の累積値と予め定められた目標累積値とに基づいて，各シンボルが符号化された符号語の符号語長に関連した情報を符号化テーブル情報として生成し；
前記生成された符号化テーブル情報を用いて前記各シンボルをそれぞれ符号化することを特徴とするデータ符号化方法。
【請求項１９】
シンボルが符号化された符号語を復号するデータ復号方法であって：
データ符号化装置から送信された一定個数の符号語とその各符号語の符号語長に関連した情報を示す符号化テーブル情報とを入力し，
前記入力された符号化テーブル情報を用いて前記入力された各符号語を各シンボルにそれぞれ復号することを特徴とするデータ復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，データを符号化するデータ符号化装置，符号化されたデータを復号するデータ復号装置およびこれらの方法に関する。
【背景技術】
【０００２】
従来から，データを無歪で圧縮／伸張する方法として，以下に説明するハフマン符号という技術が提案されている（たとえば，特許文献１を参照。）。たとえば，圧縮しようとするデータがＮ値のシンボルからなる系列（例えば，英字の文章であるとアルファベット（２６＋３（空白，ピリオド，カンマ）値のシンボル）からなる系列となる）であるとする。ハフマン符号化は大まかに次の（１）〜（４）の手順を取る。
【０００３】
（１）圧縮しようとするデータの各シンボルの出現確率を調べる。
（２）その出現確率を利用して，出現確率の高いシンボルには短い符号長の符号語を割り当て，出現確率の低いシンボルには長い符号長の符号語を割り当てるように，符号化テーブルを作成する。
（３）圧縮しようとするデータをシンボル毎に符号化テーブルを引き，対応する符号語に符号化する。
（４）符号化後のデータの先頭に，符号化テーブルに対応する符号化テーブル情報を付加する。
【０００４】
この符号化テーブル情報は，次の２つの情報からなる。
（Ｉ）各符号長の符号語の個数を示す情報
（ＩＩ）出現確率順に並べたシンボル情報
【０００５】
また，その符号化された系列を復号する際には，大まかに次の（１）〜（２）の手順を取る。
（１）符号化データの先頭にある符号化テーブル情報から，符号化テーブルを生成する。
（２）符号化テーブルを引き，符号語に対するシンボルを復号する。
【０００６】
【特許文献１】特開平８−１６２９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら，上記の方法では，シンボルの個数が多くなるとそれにしたがい，符号化テーブル情報のうち，「（ＩＩ）出現確率順に並べたシンボル情報」が多くなってしまうという問題点があった。たとえば，１６ビットで表される全ての値をシンボルに割り当てたとすると，そのシンボルの個数は２１６＝６５５３６個になり，その出現確率順を表そうとすると，６５５３６×１６＝１０４８５７６ビットも必要となってしまう。
【０００８】
そこで，本発明は，このような問題に鑑みてなされたもので，その目的とするところは，情報量が低減された符号化テーブル情報を生成するデータ符号化装置，その符号化テーブル情報を用いてデータを復号するデータ復号装置およびそれらの方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題の少なくとも一つを解決するために，本発明のある観点によれば，シンボルを符号化するデータ符号化装置であって，外部から入力された一定個数のシンボルの各シンボル値の出現頻度を算出し，上記算出された各シンボル値の出現頻度の累積値と予め定められた目標累積値とに基づいて，各シンボルが符号化された符号語の符号語長に関連した情報を符号化テーブル情報として生成する累積出現頻度分布計測部と，上記生成された符号化テーブル情報を用いて上記各シンボルをそれぞれ符号化する符号化部と，を備えることを特徴とするデータ符号化装置が提供される。
【００１０】
これによれば，各シンボルの出現頻度の累積値と予め定められた目標累積値とに基づいて符号化テーブル情報が生成される。この符号化テーブル情報は，各シンボルが符号化された符号語の符号語長に関連した情報であり，従来の符号化テーブル情報に含まれていた「出現確率順に並べたシンボル情報」を含まない。この結果，符号化テーブル情報が持つ情報量を少なくすることができる。特に，「出現確率順に並べたシンボル情報」は，符号化するシンボルの個数が多くなるとそれにしたがい膨大な情報量となる。このため，特に符号化するシンボルの個数が多い場合には，従来の符号化テーブル情報に比べ，本発明の符号化テーブル情報が持つ情報量を非常に少なくすることができる。なお，「各シンボル値の出現頻度」とは，たとえば，各シンボル値の出現確率であってもよく，各シンボル値の出現回数（出現個数）であってもよい。
【００１１】
上記累積出現頻度分布計測部は，任意のシンボル値（たとえば，最小のシンボル値）から昇順に各シンボル値の出現頻度を累積し，その累積値が上記目標累積値に最も近い値となった場合，その累積値を求める対象となったシンボル値を符号化して表すために必要なビット数Ｌｉを求めるループ処理を所定の条件を満たすまで繰り返し，その繰り返し回数ｋと上記各ループ処理にて求められたビット数Ｌｉ（ｉ＝１，２，・・，ｋ）とを上記符号化テーブル情報として生成してもよい。
【００１２】
このとき，上記外部から入力された一定個数のシンボルの最大値を検出する最大値検出部を備え，上記累積出現頻度分布計測部は，上記検出されたシンボルの最大値が上記所定の条件を満たすまで，上記ループ処理を繰り返してもよい。
【００１３】
また，このとき使用される目標累積値は，ループ処理を繰り返す毎に小さくなる値であってもよい。
【００１４】
また，上記符号化テーブル情報は，各シンボル値に対応して２のべき乗毎に変化する上記符号語長を表すために，２のべき乗毎に生成される情報であってもよい。
【００１５】
さらに，上記符号化部は，上記符号化テーブル情報を次のＢ（１）〜Ｂ（４）の方法にて示した条件式に当てはめることにより上記各シンボルをそれぞれ符号化してもよい。
【００１６】
すなわち，Ｂ（１）〜Ｂ（４）の具体的方法は，以下のとおりである。
Ｂ（１）  ｋ＝１の場合，シンボルＸを単に２進数表現したものを符号語とする。
Ｂ（２）  ｋ＞１の場合，まず，以下のどの範囲にあるかを判定し，ｉを特定する。
ｉ−１ ｉ
Σ ２Ｌｊ  〜  Σ ２Ｌｊ−１
ｊ＝１ ｊ＝１
Ｂ（３）  次の値Ｘ’を求める。
ｉ−１
Ｘ’＝Ｘ−Σ ２Ｌｊ＋１
ｊ＝１
Ｂ（４）  ｉ＜ｋの場合，Ｘ’をＬｉビットの２進数表現したものの先頭に，１（ｉ−１）０（１をｉ−１個連続させた後に０を付加したもの）を付加したものを符号語とする。また，ｉ＝ｋの場合，Ｘ’をＬｋビットの２進数表現したものの先頭に，１ｋ−１（１をｋ−１個連続させたもの）を付加したものを符号語とする。
【００１７】
また，上記各シンボル値は，０以上の正の値であってもよい。圧縮しようとするデータのシンボルの出現確率に次のような特殊性がある場合を考える。たとえば，温度や湿度，ビルに生じている細かい揺れなどの物理的環境計測値は連続値をとると考えられ，それをある周波数でサンプリングする場合を考える。具体的には，ビルに生じている細かい揺れを１秒おきに計測するような場合である。このような計測値は，時系列的に一つ前の計測値との差分をとると，０に近い値に集中することが予想できる。このような差分値の絶対値（すなわち，０以上の正の値）を一つのシンボルと考えると，「０に近い値ほど出現確率が高い」と考えられ，従来必要であった符号化テーブル情報のうちの「出現確率順に並べたシンボル情報」を「値の小さい順に並べたもの」と置き換えることができる。
【００１８】
さらに，符号語長がＬである符号語数をＬまたは符号化テーブルにある他の符号語長から算出できるようにすると，符号化テーブル情報のうちの「各符号長の符号語の個数を示す情報」は，符号化テーブルを構成する符号語で使用されている符号語長を列挙するだけでよい。この結果，符号化テーブル情報の情報量を従来の符号化テーブル情報の情報量より大幅に少なくすることができる。
【００１９】
さらに，上記データ符号化装置は，上記生成された符号化テーブル情報を保持する符号化テーブル情報保持部を備え，上記符号化部は，外部から新たに入力される１または２以上のシンボルを上記符号化テーブル情報保持部に保持された符号化テーブル情報を用いて符号化するようにしてもよい。
【００２０】
そして，さらに，上記データ符号化装置は，今回外部から新たに入力された１または２以上のシンボルを含む一定個数のシンボルの各シンボル値の出現頻度をシンボル値毎に記憶する記憶部を備え，上記累積出現頻度分布計測部は，上記記憶部に記憶された各シンボル値の出現頻度を算出し，上記算出された各シンボルの出現頻度の累積値と上記目標累積値とに基づいて符号化テーブル情報を生成し，上記符号化テーブル情報保持部は，上記生成された符号化テーブル情報を保持し，上記符号化部は，次回，外部から新たに入力される１または２以上のシンボルを上記符号化テーブル情報保持部に保持された符号化テーブル情報を用いて符号化するようにしてもよい。
【００２１】
これによれば，符号化しようとするシンボルよりも前のＷ個のシンボル（たとえば，最新に入力されたＷ個のシンボル）から符号化テーブル情報が生成される。これにより，データ符号化装置にて符号化されたデータを復号するデータ復号装置においても，すでに復号したシンボルから符号化テーブル情報を生成することができる。このため，データ符号化装置は，最初に一回のみ，符号化テーブル情報をデータ復号装置に送信するだけで，その後，データ復号装置に送信される符号化データに符号化テーブル情報を含める必要がなくなる。この結果，データ符号化装置のオーバーヘッドを小さくすることができる。なお，上記外部から新たに入力する１または２以上のシンボルの個数は，一定個数であってもよい。
【００２２】
さらに，上記記憶部は，上記各シンボル値の出現頻度をシンボル値毎に記憶する代わりに，最小のシンボル値から順に各シンボル値を２のべき乗（２ｉ：ｉ＝０，１，２，・・）毎に区切り，その区切り内の各シンボル値の出現頻度を区切り毎に累積し，その累積値をそれぞれ記憶するようにしてもよい。
【００２３】
これによれば，シンボル値の出現頻度をシンボル値毎に記憶するメモリ領域を小さくすることができる。また，上記累積出現頻度分布計測部が行うループ処理の繰り返し回数が少なくなるため，ＣＰＵの負荷を軽減することができる。
【００２４】
また，本発明の他の観点によれば，シンボルが符号化された符号語を復号するデータ復号装置であって，データ符号化装置から送信された一定個数の符号語とその各符号語の符号語長に関連した情報を示す符号化テーブル情報とを入力し，入力された符号化テーブル情報を用いて上記入力された各符号語を各シンボルにそれぞれ復号する復号部を備えることを特徴とするデータ復号装置が提供される。
【００２５】
これによれば，入力された符号化テーブル情報は，一定個数の符号語とその各符号語の符号語長に関連した情報であり，従来含まれていた「出現確率順に並べたシンボル情報」を含まない。これにより，非常にコンパクトな情報量となった符号化テーブル情報をデータ符号化装置から受信し，受信した符号化テーブル情報を用いて，入力された各符号語を各シンボルにそれぞれ復号することができる。
【００２６】
上記復号部は，上記入力された符号化テーブル情報を用いて上記入力された符号語からシンボルの復号に必要な部分を抽出し，その抽出した部分と上記符号化テーブル情報とを用いて上記各符号語を各シンボルにそれぞれ復号してもよい。
【００２７】
または，上記データ復号装置は，上記符号化テーブル情報を保持する符号化テーブル情報保持部と，今回，データ符号化装置から新たに送信された１または２以上のシンボルを含む一定個数のシンボル（たとえば，送信された一定個数の最新シンボルをいう。）の各シンボル値の出現頻度を記憶する記憶部と，を備え，上記累積出現頻度分布計測部は，上記記憶部に記憶された各シンボル値の出現頻度の累積値と予め定められた目標累積値とに基づいて新たな符号化テーブル情報を生成し，上記符号化テーブル情報保持部は，上記生成された新たな符号化テーブル情報を保持し，上記復号部は，次回，データ符号化装置から新たに送信される符号語を上記保持された符号化テーブル情報を用いて，シンボルに復号するようにしてもよい。
【００２８】
さらに，上記データ復号装置は，上記符号化テーブル情報を保持する符号化テーブル情報保持部を備え，上記累積出現頻度分布計測部は，今回，データ符号化装置から新たに送信された一定個数のシンボルの各シンボル値の出現頻度を算出し，上記算出された各シンボル値の出現頻度の累積値と上記目標累積値とに基づいて新たな符号化テーブル情報を生成し，上記符号化テーブル情報保持部は，上記生成された新たな符号化テーブル情報を保持し，上記復号部は，次回，データ符号化装置から新たに送信される符号語を上記保持された符号化テーブル情報を用いてシンボルに復号するようにしてもよい。
【００２９】
これによれば，符号化しようとするシンボルよりも前のＷ個のシンボルから符号化テーブル情報が生成される。これにより，データ符号化装置にて符号化されたデータを復号するデータ復号装置においても，すでに復号したシンボルから符号化テーブル情報を生成することができる。このため，データ符号化装置から符号化テーブル情報を最初に一回のみ受信するだけでよくなる。この結果，上記復号部は，初回の復号処理では，データ符号化装置から一定個数の符号語と符号化テーブル情報とを送信され，その送信された符号化テーブル情報を用いて上記送信された各符号語を各シンボルにそれぞれ復号し，次回以降の復号処理では，データ符号化装置から１または２以上の符号語のみが送信され，その送信された各符号語を上記符号化テーブル情報保持部に保持された符号化テーブル情報を用いて各シンボルにそれぞれ復号することができる。
【００３０】
また，上記記憶部は，上記各シンボル値の出現頻度をシンボル毎に記憶する代わりに，最小のシンボル値から順に各シンボル値を２のべき乗毎に区切り，その区切り内の各シンボル値の出現頻度を累積し，その累積値をそれぞれ記憶してもよい。
【００３１】
これによれば，シンボル値の出現頻度をシンボル値毎に記憶するメモリ領域を小さくすることができる。また，上記累積出現頻度分布計測部が行うループ処理の繰り返し回数が少なくなるため，ＣＰＵの負荷を軽減することができる。
【００３２】
また，本発明の他の観点によれば，シンボルを符号化するデータ符号化方法であって，外部から入力された一定個数のシンボルの各シンボル値の出現頻度を算出し，上記算出された各シンボル値の出現頻度の累積値と予め定められた目標累積値とに基づいて，各シンボルが符号化された符号語の符号語長に関連した情報を符号化テーブル情報として生成し，上記生成された符号化テーブル情報を用いて上記各シンボルをそれぞれ符号化することを特徴とするデータ符号化方法が提供される。
【００３３】
また，本発明の他の観点によれば，シンボルが符号化された符号語を復号するデータ復号方法であって，データ符号化装置から送信された一定個数の符号語とその各符号語の符号語長に関連した情報を示す符号化テーブル情報とを入力し，その入力された符号化テーブル情報を用いて上記入力された各符号語を各シンボルにそれぞれ復号することを特徴とするデータ復号方法が提供される。
【発明の効果】
【００３４】
以上説明したように，本発明によれば，情報量を低減させた符号化テーブル情報を生成するデータ符号化装置，その符号化テーブル情報を用いてデータを復号するデータ復号装置およびそれらの方法を提供することができる。
【発明を実施するための最良の形態】
【００３５】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００３６】
（第１実施形態）
まず，本発明の第１実施形態にかかるデータ符号化装置およびデータ復号装置の各構成について，図１および図２にそれぞれ示した構成図を参照しながら説明する。なお，データ符号化装置とデータ復号装置とは，図示しないネットワークにて接続されている。
【００３７】
（データ符号化装置の構成）
図１に示したデータ符号化装置１００（データ圧縮符号化装置）は，外部から入力されたデータのシンボル系列を圧縮符号化する。データ符号化装置１００に入力されるシンボル系列は，たとえば，温度，湿度，ビルの微細な振動等の環境計測値の差分値（差分値の絶対値）のように，０以上の正の整数であって，０に近い値ほど多く出現するデータのシンボル系列である。データ符号化装置１００は，そのようなシンボル系列のうち，あるＷ個のシンボル毎に各シンボル値の出現頻度や最大値を検出し，それをもとに符号化テーブル情報を生成し，その符号化テーブル情報を用いてそのＷ個のシンボルを符号化する。
【００３８】
データ符号化装置１００は，バッファ１０１と最大値検出部１０２と累積出現頻度分布計測部１０３と符号化部１０４とを含んで構成されている。バッファ１０１は，データ符号化装置１００へ入力されるシンボル系列を入力し，そのうち，符号化テーブルを生成する際に必要となるＷ個のシンボル（データ）を保持する。また，バッファ１０１は，シンボルを符号化する際，保持してあるシンボル系列を符号化部１０４に出力する。なお，バッファ１０１は，データ符号化装置１００の記憶部に相当する。
【００３９】
最大値検出部１０２は，Ｗ個のシンボルのうち，最大値をとるシンボルを検出して，そのシンボル値（最大値）を累積出現頻度分布計測部１０３に出力する。累積出現頻度分布計測部１０３は，Ｗ個のシンボルを観測するとともに，最大値検出部１０２から出力される最大値を用いて，累積出現頻度分布を以下のＡ（１）〜Ａ（４）の方法にて算出し，その結果得られるｋ，および，Ｌｉ（ｉ＝１，２，…，ｋ）を符号化テーブル情報として符号化部１０４に出力する。
【００４０】
Ａ（１）〜Ａ（４）の方法は，以下のとおりである。
Ａ（１）  ｋ＝１，Ｃ＝０とする。
Ａ（２）  出現頻度（出現回数）をシンボルＣから順に累積し，その累積値がＷ／２ｋに一番近いところになったシンボルＸを求める。
Ａ（３）  （Ｘ−Ｃ＋１）の値を表すのに必要なビット数Ｌｋを求める。
Ａ（４）  最大値がＣからＣ＋２Ｌｋ−１の間に入っていたら終了する。そうでなければ，Ｃ＋２Ｌｋにて求められた値をＣに設定し，ｋを１増やしてＡ（２）に戻る。
【００４１】
以上の方法を実行すると，図６の表にある関係をもつ符号化テーブル情報ｋ，Ｌｉ（ｉ＝１，２，…，ｋ）が求められる。Ａ（１）〜Ａ（４）を用いた具体的処理については，後述する。
【００４２】
符号化部１０４は，累積出現頻度分布計測部１０３から受け取った符号化テーブル情報ｋ，Ｌｉ（ｉ＝１，２，…，ｋ）を用いて，バッファ１０１より受け取ったシンボルを次のようなＢ（１）〜Ｂ（４）工程で圧縮符号化し，圧縮符号化した系列を出力する。
Ｂ（１）  ｋ＝１の場合，シンボルＸを単に２進数表現したものを符号語とする。
Ｂ（２）  ｋ＞１の場合，まず，以下のどの範囲にあるかを判定し，ｉを特定する。
ｉ−１ ｉ
Σ ２Ｌｊ  〜  Σ ２Ｌｊ−１
ｊ＝１ ｊ＝１
Ｂ（３）  次の値Ｘ’を求める。
ｉ−１
Ｘ’＝Ｘ−Σ ２Ｌｊ＋１
ｊ＝１
Ｂ（４）  ｉ＜ｋの場合，Ｘ’をＬｉビットの２進数表現したものの先頭に，１（ｉ−１）０（１をｉ−１個連続させた後に０を付加したもの）を付加したものを符号語とする。また，ｉ＝ｋの場合，Ｘ’をＬｋビットの２進数表現したものの先頭に，１ｋ−１（１をｋ−１個連続させたもの）を付加したものを符号語とする。
【００４３】
データ符号化装置１００は，このようにしてシンボル（データ）を圧縮符号化するようになっている。
【００４４】
（データ復号装置の構成）
図２に示したデータ復号装置２００（データ伸張復号装置）は，データ符号化装置１００にて圧縮符号化されたデータを伸張復号する。データ復号装置２００は，復号部２０１を含んで構成されている。復号部２０１は，符号化データ（符号化テーブル情報（ｋ，および，Ｌｉ（ｉ＝１，２，…，ｋ））および符号化したシンボル系列）とを受け取り，符号化テーブル情報を参照しながら，符号化したシンボル系列から符号語を取り出し，対応するシンボルに変換して出力する。
【００４５】
具体的には，次のようなＣ（１）〜Ｃ（３）工程で，シンボルの復号に必要な部分の符号語を切り出してシンボルＸに変換する。
Ｃ（１）  ｋ＝１の場合，符号語長Ｌ１で，シンボルの復号に必要な部分の符号語を切り出し，それがシンボルの２進数表現になっているとして，シンボルに戻す。
Ｃ（２）  ｋ＞１の場合，先頭ビットが１（ｉ−１）０（ｉ＝１，２，…，ｋ−１）であるとき，その１（ｉ−１）０（ｉ＝１，２，…，ｋ−１）より後ろを符号語長Ｌｉで，シンボルの復号に必要な部分の符号語を切り出し，それが２進数表現として表している数値をＸ’とおく。また，先頭ビットが１ｋ−１であるとき，そのより後ろを符号語長Ｌｋで，シンボルの復号に必要な部分の符号語を切り出し，それが２進数表現として表している数値をＸ’とおく。
Ｃ（３）  次の値Ｘを算出し復号するシンボルとする。
ｉ−１
Ｘ＝Ｘ’＋Σ  ２Ｌｊ  ＋１
ｊ＝１
【００４６】
データ復号装置２００は，このようにしてデータ符号化装置１００により圧縮符号化されたデータを伸張復号するようになっている。
【００４７】
なお，データ符号化装置１００およびデータ復号装置２００は，それぞれ，図示しないＣＰＵ，ＲＯＭおよびインターフェース等をそれぞれ備えていて，各ＲＯＭには，各装置の各機能を実行するためのプログラムや各種データがそれぞれ記憶されている。また，各ＣＰＵは，バッファに保持されたシンボルに関する情報や，各ＲＯＭに記憶された各プログラムを実行することにより各装置の機能を達成するようになっている。
【００４８】
（データ符号化装置１００の動作）
つぎに，データ符号化装置１００が，図３のシンボル列のうちＷ個のシンボル（Ｘ１〜Ｘｗ）を入力し，それらのシンボルに対して実行する圧縮符号化処理について，図４のフローチャートを参照しながら説明する。
【００４９】
まず，データ符号化装置１００のＣＰＵは，ステップＳ４００から処理を開始し，ステップＳ４０１に進んで，圧縮符号化すべきシンボルがあるかどうかを判定する。この時点で，図３のＷ個のシンボル（Ｘ１〜Ｘｗ）がある場合，ＣＰＵは，ステップＳ４０１にて「Ｙｅｓ」と判定し，ステップＳ４０２に進んで，Ｗ個のシンボルをバッファ１０１に読み込む。なお，圧縮符号化すべきシンボルがＷ個よりも少ない場合には，以降のステップでのＷをその個数とする。以下の説明では，Ｗを「１０００」個として説明する。
【００５０】
つぎに，ＣＰＵは，ステップＳ４０３に進み，読み込んだ各シンボルの出現回数を求める。ここでは，説明を簡略化するため，図５に示したように，シンボルＣの値は，「０」，「１」，「２」，「３」，「４」，「５」，「６」のいずれかとする。また，ステップＳ４０３を実行した結果，各シンボルの出現個数ＳＵＭ（Ｃ）は，ＳＵＭ（０）＝４００，ＳＵＭ（１）＝３００，ＳＵＭ（２）＝１５０，ＳＵＭ（３）＝１００，ＳＵＭ（４）＝３０，ＳＵＭ（５）＝１０，ＳＵＭ（６）＝１０であったとする。なお，各シンボル値の出現個数ＳＵＭは，各シンボル値の出現頻度の一例である。
【００５１】
つぎに，ＣＰＵ（最大値検出部１０２）は，図４のステップＳ４０４に進み，読み込んだ１０００個のシンボルの最大値をＣｍａｘに設定する。ここでは，読み込んだシンボルの最大値は「６」である。そこで，ＣＰＵ（最大値検出部１０２）は，Ｃｍａｘに「６」を設定し，ステップＳ４０５に進む。
【００５２】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０５にて，初期設定として，ｋに「１」，Ｃに「０」を設定する。これは，上述したＡ（１）に相当する。つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０６に進んで，出現回数をシンボルＣ（この時点ではシンボルの最小値であるシンボル０の出現個数）から順に累積し，累積値ＡＣがＷ／２ｋに一番近いところになったシンボルＸを求める。これは，上述したＡ（２）に相当する。なお，Ｗ／２ｋは，予め定められた目標累積値の一例であり，Ａ（２）〜Ａ（４）のループ処理を繰り返す毎に小さくなる値である。
【００５３】
具体的には，図５に示したように，ＳＵＭ（０）の値（累積値ＡＣ）は４００，ＳＵＭ（０）〜ＳＵＭ（１）の累積値ＡＣは７００である。そこで，ＣＰＵ（累積出現頻度分布計測部１０３）は，累積値ＡＣがＷ／２ｋ（＝５００）に一番近いところになったシンボルをシンボル０と定め，Ｘに「０」の値を代入する。
【００５４】
ついで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０７に進んで，（Ｘ−Ｃ＋１）の値を表すのに必要なビット数をＬｋに設定する。これは，上述したＡ（３）に相当する。この時点で，Ｘ−Ｃ＋１＝０−０＋１＝１となる。この値「１」を表すのに必要なビット数は１ビットであるから，ＣＰＵ（累積出現頻度分布計測部１０３）は，Ｌｋ（＝Ｌ１）に「１」の値を設定する。
【００５５】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８に進み，ステップＳ４０４で検出した最大値Ｃｍａｘが，ステップＳ４０７で算出したＬｉ（ｉ＝１，２，…，ｋ）から求めた以下の範囲，
ｋ−１ ｋ
Σ２Ｌｊ  〜  Σ２Ｌｊ−１
ｊ＝１ ｊ＝１
に入っているかどうかを判定する。すなわち，ＣＰＵ（累積出現頻度分布計測部１０３）は，最大値Ｃｍａｘが，Ｃ≦Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件を満たすか否かを判定する。これは，上述したＡ（４）に相当する。
【００５６】
この時点で，Ｃ＝０，Ｌｋ（＝Ｌ１）＝１である。これらの値を上記条件に代入すると，Ｃ（＝０）≦Ｃｍａｘ（＝６）の要件は満足するが，Ｃｍａｘ（＝６）＞Ｃ＋２Ｌｋ−１（＝０＋２−１＝１）となり，Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件は満たさない。そこで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８にて「Ｎｏ」と判定して，ステップＳ４０９に進み，Ｃ＋２Ｌ１（＝０＋２１）の値「２」をＣに設定するとともに，ｋを１増やして（すなわち，ｋ＝２），ステップＳ４０６に戻る。このようにして，１回目のループを終了した結果，符号化テーブル情報としてＬ１＝１が求められた。
【００５７】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０６にて，出現回数をシンボルＣ（この時点ではシンボル２の出現個数）から順に累積し，累積値ＡＣがＷ／２ｋに一番近いところになったシンボルＸを求める。具体的には，図５に示したように，ＳＵＭ（２）の値（累積値ＡＣ）は１５０，ＳＵＭ（２）〜ＳＵＭ（３）の累積値ＡＣは２５０，ＳＵＭ（２）〜ＳＵＭ（４）の累積値ＡＣは２８０である。そこで，ＣＰＵ（累積出現頻度分布計測部１０３）は，累積値ＡＣがＷ／２ｋ（＝２５０）に一番近いところになったシンボルをシンボル３（すなわち，Ｘ＝３）と定める。
【００５８】
ついで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０７に進んで，（Ｘ−Ｃ＋１（＝３−２＋１））の値「２」を表すのに必要なビット数「１」をＬｋ（＝Ｌ２）に設定する。
【００５９】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８に進み，最大値Ｃｍａｘが，Ｃ≦Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件を満たすか否かを判定する。この時点で，Ｃ＝２，Ｌ２＝１である。これらの値を上記条件に代入すると，Ｃｍａｘ（＝６）＞Ｃ＋２Ｌｋ−１（＝２＋２−１＝３）となり，Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件は満たさない。そこで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８にて「Ｎｏ」と判定して，ステップＳ４０９に進み，Ｃ＋２Ｌ２の値「４」をＣに設定するとともに，ｋを１増やして（すなわち，ｋ＝３），ステップＳ４０６に戻る。このようにして，２回目のループを終了した結果，符号化テーブル情報としてＬ２＝１が求められた。
【００６０】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０６にて，出現回数をシンボルＣ（この時点ではシンボル４の出現個数）から順に累積し，累積値ＡＣがＷ／２ｋに一番近いところになったシンボルＸを求める。具体的には，図５に示したように，ＳＵＭ（４）の値（累積値ＡＣ）は３０，ＳＵＭ（４）〜ＳＵＭ（５）の累積値ＡＣは４０，ＳＵＭ（４）〜ＳＵＭ（６）の累積値ＡＣは５０である。そこで，ＣＰＵ（累積出現頻度分布計測部１０３）は，累積値ＡＣがＷ／２ｋ（＝１２５）に一番近いところになったシンボルをシンボル６（すなわち，Ｘ＝６）と定める。
【００６１】
ついで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０７に進んで，（Ｘ−Ｃ＋１）の値「３」（＝６−４＋１）を表すのに必要なビット数「２」をＬｋ（＝Ｌ３）に設定する。
【００６２】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８に進み，最大値Ｃｍａｘが，Ｃ≦Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件を満たすか否かを判定する。この時点で，Ｃ＝４，Ｌ２＝２である。したがって，Ｃ（＝４）≦Ｃｍａｘ（＝６）≦Ｃ＋２Ｌｋ−１（＝４＋４−１＝７）となり，条件は満たされている。そこで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８にて「Ｙｅｓ」と判定して，ステップＳ４１０に進む。なお，３回目のループを終了した結果，符号化テーブル情報としてＬ３＝２が求められた。また，このようにして１〜３回のループ処理が実行された結果，ｋ＝３，Ｌ１＝１，Ｌ２＝１，Ｌ３＝２の値をもつ符号化テーブル情報が求められた。
【００６３】
ＣＰＵ（符号化部１０４）は，ステップＳ４１０にて，符号化テーブル情報（ｋ＝３，Ｌ１＝１，Ｌ２＝１，Ｌ３＝２）を用いてＷ個のシンボルを符号化し，符号化されたＷ個のシンボルからなる系列と符号化テーブル情報とを符号化データとして出力する。符号化テーブル情報（ｋ＝３，Ｌ１＝１，Ｌ２＝１，Ｌ３＝２）を用いてＷ個のシンボルを符号化する具体的方法については後述する。
【００６４】
ついで，ＣＰＵは，ステップＳ４０１に戻り，圧縮符号化すべきシンボルがあるか否かを判定する。この時点で，圧縮符号化すべきシンボルがなければ，ＣＰＵは，「Ｎｏ」と判定し，ステップＳ４１１に進んで本処理を終了する。
【００６５】
（シンボルの圧縮符号化）
つぎに，ＣＰＵ（符号化部１０４）が，ステップＳ４１０にて実行するシンボルの圧縮符号化の具体的方法Ｂ（１）〜Ｂ（４）について説明する。なお，図６の符号語（符号化されたシンボル）は，２値の符号語（０と１の系列からなる符号語）であり，１や０がｍ個連続するときは１ｍや０ｍと表記する。
【００６６】
Ｂ（１）  ｋ＝１の場合，シンボルＸを単に２進数表現したものを符号語とする。上記処理では，符号化テーブル情報は，ｋ＝３，Ｌ１＝１，Ｌ２＝１，Ｌ３＝２である。したがって，ｋ≠１であるので，この場合には，以下のＢ（２）〜Ｂ（４）によりシンボルＸを符号語に変換する。
Ｂ（２）  ｋ＞１の場合，まず，以下のどの範囲にあるかを判定し，ｉを特定する。
ｉ−１ ｉ
Σ ２Ｌｊ  〜  Σ ２Ｌｊ−１
ｊ＝１ ｊ＝１
Ｂ（３）  次の値Ｘ’を求める。
ｉ−１
Ｘ’＝Ｘ−Σ ２Ｌｊ＋１
ｊ＝１
Ｂ（４）  ｉ＜ｋの場合，Ｘ’をＬｉビットの２進数表現したものの先頭に，１（ｉ−１）０を付加したもの（１をｉ−１個連続させた後に０を付加したもの）を符号語とする。また，ｉ＝ｋの場合，Ｘ’をＬｋビットの２進数表現したものの先頭に，１ｋ−１（１をｋ−１個連続させたもの）を付加したものを符号語とする。
【００６７】
この結果，図７に示したように，シンボルが０〜２Ｌ１−１（すなわち，０〜１）のとき，シンボル０に対する符号語が「００」と生成され，シンボル１に対する符号語が「０１」と生成される。また，シンボルが２Ｌ１〜２Ｌ１＋２Ｌ２−１（すなわち，２〜３）のとき，シンボル２に対する符号語が「１００」と生成され，シンボル３に対する符号語が「１０１」と生成される。さらに，シンボルが２Ｌ１＋２Ｌ２〜２Ｌ１＋２Ｌ２＋２Ｌ３−１（すなわち，４〜７）のとき，シンボル４に対する符号語が「１１０００」と生成され，シンボル５に対する符号語が「１１００１」と生成され，シンボル６に対する符号語が「１１０１０」と生成される。なお，「１１００１」は欠番である。
【００６８】
このようにして，ＣＰＵ（符号化部１０４）は，各シンボルを符号化し，符号化したシンボルの系列を符号化テーブル情報（ｋ，Ｌｉ（ｉ＝１，２，…，ｋ））すなわち，ｋ＝３，Ｌ１＝１，Ｌ２＝１，Ｌ３＝２とともに出力する。
【００６９】
（シンボルの伸張復号）
つぎに，第１実施形態におけるデータ復号装置２００の動作を説明する。データ復号装置２００のＣＰＵ（復号部２０１）は，符号化テーブル情報（ｋ＝３，Ｌ１＝１，Ｌ２＝１，Ｌ３＝２）と符号化されたシンボルの系列を受け取り，次のＣ（１）〜Ｃ（３）の方法を用いて，符号化テーブル情報を参照しながら，符号化したシンボルの系列からシンボルの復号に必要な部分の符号語を取り出し，対応するシンボルに変換して出力する。
【００７０】
具体的には，つぎのような工程で符号語を切り出してシンボルＸに変換する。
Ｃ（１）  ｋ＝１の場合，符号語長Ｌ１で，シンボルの復号に必要な部分の符号語を切り出し，それがシンボルの２進数表現になっているとしてシンボルに戻す。
Ｃ（２）  ｋ＞１の場合，先頭ビットが１（ｉ−１）０（ｉ＝１，２，…，ｋ−１）であるとき，その１（ｉ−１）０（ｉ＝１，２，…，ｋ−１）より後ろを符号語長Ｌｉで，シンボルの復号に必要な部分の符号語を切り出し，それが２進数表現として表している数値をＸ’とおく。また，先頭ビットが１ｋ−１であるとき，そのより後ろを符号語長Ｌｋで，シンボルの復号に必要な部分の符号語を切り出し，それが２進数表現として表している数値をＸ’とおく。
Ｃ（３）  次の値Ｘを算出し復号するシンボルとする。
ｉ−１
Ｘ＝Ｘ’＋Σ  ２Ｌｊ  ＋１
ｊ＝１
このような方法により，データ復号装置２００は，図７に示した各符号語から各シンボルをそれぞれ復号する。
【００７１】
第１実施形態にかかるデータ符号化装置１００およびデータ復号装置２００によれば，圧縮しようとするデータのシンボルが０以上の正の値で，その出現特性が０に近い値ほど出現確率が高いものを圧縮符号化するとき，従来必要であった符号化テーブル情報のうち，「出現確率順に並べたシンボル情報」が必要なくなる。さらに，符号語長（Ｌｉ（ｉ＝１，２，…，ｋ））からその符号語長を持つ符号語数を計算することができるので，従来必要であった符号化テーブル情報のうち，「各符号長の符号語の個数を示す情報」は，符号化テーブルを構成する符号語で使用されている符号語長（Ｌｉ（ｉ＝１，２，…，ｋ））を列挙するだけでよい。この結果，符号化テーブル情報が持つ情報量を大幅に少なくすることができる。
【００７２】
（第２実施形態）
【００７３】
つぎに，第２実施形態にかかるデータ符号化装置１００およびデータ復号装置２００について説明する。第１実施形態のデータ符号化装置１００では，符号化しようとするＷ個のシンボル毎に符号化テーブル情報を生成して各シンボルを符号化し，符号化テーブル情報も符号化したシンボルとともに符号化データに含める必要があった。
【００７４】
第２実施形態では，図１０に示したように，符号化しようとするシンボル（Ｘｗ＋１〜）よりも前のＷ個のシンボル（Ｘ１〜Ｘｗ）から符号化テーブル情報を生成する。ここで，符号化しようとするシンボルとは，たとえば，データ符号化装置１００から送信されるパラメータ情報が「１」であれば，図１０のＸｗ＋１にて示される一つのシンボルとなり，また，たとえば，データ符号化装置１００から送信されるパラメータ情報が「Ｗ」であれば，図１０のＸｗ＋１〜Ｘ２ｗにて示されるＷ個のシンボルとなる。これにより，データ復号装置２００において，すでに復号したシンボルから符号化テーブル情報を生成することができ，符号化データとして符号化テーブル情報を受け取る必要がなくなる。パラメータ情報は，符号化するシンボル系列のうち，一回の符号化処理に対して入力すべきシンボルの区切りを示す。このように，符号化テーブル情報を符号化データに含める必要のない圧縮符号化，伸張復号を行う第２実施形態の方法について説明する。
【００７５】
（データ符号化装置の構成）
まず，図８を用いて，第２実施形態にかかるデータ符号化装置１００の構成を説明する。第２実施形態のデータ符号化装置１００は，バッファ１０１と最大値検出部１０２と累積出現頻度分布計測部１０３と符号化部１０４と符号化テーブル情報保持部８０５とを含んで構成されている。
【００７６】
データ符号化装置１００への入力は，第１実施形態と同様に，圧縮符号化しようとするデータのシンボル系列であり，各シンボルは０以上の正の整数をとるものとする。シンボル系列は，あるＷ個のシンボル毎にシンボルの出現頻度や最大値を検出し，それをもとに符号化テーブル情報を生成し，その符号化テーブル情報を用いてそのＷ個のシンボルを符号化する。
【００７７】
バッファ１０１は，データ符号化装置１００へ入力される最新のＷ個のシンボルを保持しておくことができるメモリである。また，バッファ１０１は，最新のＷ個のシンボルの各シンボル値の出現頻度を記憶する。このバッファ１０１の内容は，最大値検出部１０２および累積出現頻度分布計測部１０３から参照される。
【００７８】
最大値検出部１０２は，バッファ１０１にあるＷ個のシンボルのうち，最大値をとるシンボルを検出して，そのシンボル値を累積出現頻度分布計測部１０３に出力する。累積出現頻度分布計測部１０３は，バッファ１０１にあるＷ個のシンボルを観測し，最大値検出部１０２から出力される最大値を用いて，累積出現頻度分布を上述したＡ（１）〜Ａ（４）のように算出して，最終的に得られるｋ，および，Ｌｉ（ｉ＝１，２，…，ｋ）を符号化テーブル情報として符号化テーブル情報保持部８０５へ出力する。
【００７９】
符号化部１０４は，符号化テーブル情報保持部８０５に保持してある符号化テーブル情報ｋ，Ｌｉ（ｉ＝１，２，…，ｋ）を受け取り，受け取った符号化テーブル情報を用いてデータ符号化装置１００に入力されたシンボルを圧縮符号化する。
【００８０】
具体的には，符号化部１０４は，上述したＢ（１）〜Ｂ（４）の工程でシンボルを符号語に変換する。ただし，Ｂ（１）を削除し，Ｂ（２）をｋ＝１の場合にも適用する。さらに，Ｂ（４）の工程では，ｉ＝ｋの場合にも，Ｘ’をＬｉビットの２進数表現したものの先頭に，１（ｉ−１）０（１をｉ−１個連続させた後に０を付加したもの）を付加したものを符号語とするようにする。
【００８１】
また，符号化テーブル情報を生成するときに検出した最大値よりも大きい値のシンボル（Ｘとする）である場合には，ｉ＝ｋ＋１とし，次のＸ’を算出し，Ｘ’をビット数Ｌ０の２進数表現したものの先頭に，１ｋ（１をｋ個連続させたもの）を付加したものを符号語とする。
ｋ
Ｘ’＝Ｘ−  Σ  ２Ｌｊ  ＋１
ｊ＝１
ここで，Ｌ０は，次の値を表すのに必要なビット数である。
ｋ
２Ｌ  −  Σ  ２Ｌｊ
ｊ＝１
ここで，Ｌはシンボルのビット長とする。
【００８２】
符号化部１０４は，上記のように符号化した符号語を出力する。符号化テーブル情報保持部８０５は，符号化テーブル情報を保持するためのメモリで構成され，データ符号化装置１００へ入力されたシンボルを符号化するために，符号化部１０４へ符号化テーブル情報を提供すると共に，データ符号化装置１００へ入力されたシンボルを含めた最新Ｗ個のシンボルから生成された符号化テーブル情報を累積出現頻度分布計測部１０３より受け取り，上書き，保持する。
【００８３】
（データ復号装置の構成）
つぎに，図９を用いて，第２実施形態にかかるデータ復号装置２００の構成を説明する。データ復号装置２００は，復号部２０１と符号化テーブル情報保持部９０２と累積出現頻度分布計測部９０３と最大値検出部９０４とバッファ９０５とを含んで構成されている。
【００８４】
バッファ９０５は，データ符号化装置１００から送信されるパラメータ情報に基づいて，データ符号化装置１００から送信される，符号化されたシンボル系列から１または２以上のシンボルを入力し，入力した１または２以上のシンボルを含んだ最新のＷ個のシンボルを保持しておくことができるメモリである。パラメータ情報は，符号化されたシンボル系列のうち，一回の復号処理に対して入力すべきシンボルの区切りを示す。
【００８５】
また，バッファ９０５は，最新のＷ個のシンボルの各シンボル値の出現頻度を記憶する。このバッファ９０５の内容は，最大値検出部９０４および累積出現頻度分布計測部９０３から参照される。なお，バッファ９０５は，データ復号装置２００の記憶部に相当する。
【００８６】
最大値検出部９０４は，バッファ９０５にあるＷ個のシンボルのうち，最大値をとるシンボルを検出して，そのシンボル値を累積出現頻度分布計測部９０３に出力する。
【００８７】
累積出現頻度分布計測部９０３は，バッファ９０５にあるＷ個のシンボルを観測し，最大値検出部９０４から出力される最大値を用いて，累積出現頻度分布を上記Ａ（１）〜Ａ（４）の方法にて算出し，最終的に得られるｋ，および，Ｌｉ（ｉ＝１，２，…，ｋ）を符号化テーブル情報として符号化テーブル情報保持部９０２へ出力する。
【００８８】
この符号化テーブル情報保持部９０２は，符号化テーブル情報を保持するためのメモリで構成され，初期値として，データ符号化装置１００から送信された符号化テーブル情報を保持する。その後，データ復号装置２００へ入力されたシンボルを復号するために，復号部２０１に符号化テーブル情報を提供すると共に，そのとき復号されたシンボルを含めた最新Ｗ個のシンボルから累積出現頻度分布計測部９０３より生成された新たな符号化テーブル情報を上書き，保持する。
【００８９】
復号部２０１は，シンボルを符号化した系列を受け取り，符号化テーブル情報保持部９０２に保持している符号化テーブル情報を参照しながら，シンボルを符号化した系列から符号語を取り出し，対応するシンボルに変換して出力する。具体的には，つぎに示すＣ（１）’〜Ｃ（２）’の工程で，シンボルの復号に必要な部分の符号語を切り出してシンボルに変換する。
【００９０】
Ｃ（１）’  先頭ビットが１（ｉ−１）０（ｉ＝１，２，…，ｋ）であるとき，その１（ｉ−１）０（ｉ＝１，２，…，ｋ）より後ろを符号語長Ｌｉで，シンボルの復号に必要な部分の符号語を切り出し，それが２進数表現として表している数値をＸ’とおく。また，先頭ビットが１ｋ(このときはｉ＝ｋ＋１とする)であるとき，そのより後ろを符号語長Ｌ０でシンボルの復号に必要な部分の符号語を切り出し，それが２進数表現として表している数値をＸ’とおく。Ｌ０は，次の値を表すのに必要なビット数である。Ｌはシンボルのビット長とする。
ｋ
２Ｌ  −  Σ  ２Ｌｊ
ｊ＝１
【００９１】
Ｃ（２）’  次の値Ｘを算出し復号するシンボルとする。
ｉ−１
Ｘ＝Ｘ’＋  Σ  ２Ｌｊ  ＋１
ｊ＝１
このような方法により，データ復号装置２００は，符号化されたシンボルを復号して復号シンボルを出力する。
【００９２】
このようにして得られたシンボルは，復号データ（シンボル）として出力すると共に，次の符号化データを復号するための符号化テーブル情報を生成するために，バッファ９０５へ出力される。また，バッファ９０５には，復号された最新のＷ個のシンボルの各シンボル値の出現個数（出現頻度）を記憶してもよい。
【００９３】
（データ符号化装置１００の動作）
つぎに，本実施形態のデータ符号化装置１００が実行する圧縮符号化処理について，図１１のフローチャートを参照しながら説明する。この説明では，最初に，符号化テーブル情報保持部８０５に保持されている符号化テーブル情報を用いてＷ個のシンボル（シンボルＸ１〜Ｘｗ）を圧縮符号化した後の処理であって，今回外部から入力した新たなシンボルを圧縮符号化するとともに，次回外部から入力する新たなシンボルを圧縮符号化するために，今回圧縮符号化されたＷ個のシンボルから，符号化テーブル情報を生成する処理について説明する。
【００９４】
まず，データ符号化装置１００のＣＰＵは，ステップＳ１１００から処理を開始し，ステップＳ４０１に進んで，圧縮符号化すべきシンボルがあるかどうかを判定する。圧縮符号化すべきシンボルが無ければ，ＣＰＵは，ステップＳ４０１にて「Ｎｏ」と判定してステップＳ１１０５に進んで処理を終了する。圧縮符号化すべきシンボルがある場合，ＣＰＵは，ステップＳ４０１にて「Ｙｅｓ」と判定して，ステップＳ１１０１に進み，１つのシンボル（図１０のシンボルＸｗ＋１）をバッファ１０１および符号化部１０４へ入力してステップＳ１１０２に進む。
【００９５】
つぎに，ＣＰＵ（符号化部１０４）は，ステップＳ１１０２にて，読み込んだシンボルＸｗ＋１を符号化テーブル情報保持部４０５で保持している符号化テーブル情報を用いて，上述したＢ（２）〜Ｂ（４）の方法にて符号化する。ただし，Ｂ（２）をｋ＝１の場合にも適用する。
【００９６】
さらに，Ｂ（４）の工程では，ｉ＝ｋの場合にも，Ｘ’をＬｉビットの２進数表現したものの先頭に，１（ｉ−１）０（１をｉ−１個連続させた後に０を付加したもの）を付加したものを符号語とするようにする。符号化テーブル情報を生成するときに検出した最大値よりも大きい値のシンボル（Ｘとする）である場合には，ｉ＝ｋ＋１とし，次のＸ’を算出し，Ｘ’をビット数Ｌ０の２進数表現したものの先頭に，１ｋ（１をｋ個連続させたもの）を付加したものを符号語とする。
ｋ
Ｘ’＝Ｘ−  Σ  ２Ｌｊ  ＋１
ｊ＝１
Ｌ０は，次の値を表すのに必要なビット数である。
ｋ
２Ｌ  −  Σ  ２Ｌｊ
ｊ＝１
ここで，Ｌはシンボルのビット長とする。
【００９７】
つぎに，ＣＰＵは，ステップＳ１１０３に進んで，バッファ１０１に保持されたＷ個のシンボルＸ２〜Ｘｗ＋１の各シンボルの出現回数を求め，ステップＳ４０４に進んでＷ個のシンボルＸ２〜Ｘｗ＋１のうち，最大の値をとるシンボルを検出する。
【００９８】
つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０５に進んで，初期設定として，ｋ＝１，Ｃ＝０を設定する。これは，累積出現頻度分布計測部１０３の構成説明の工程Ａ（１）に相当する。つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０６に進んで，出現個数をシンボルＣから順に累積し，累積値がＷ／２ｋに最も近いシンボルＸを求める。これは，累積出現頻度分布計測部１０３の構成説明の工程Ａ（２）に相当する。
【００９９】
ついで，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０７に進み，（Ｘ−Ｃ＋１）の値を表すのに必要なビット数Ｌｋを求める。これは，累積出現頻度分布計測部１０３の構成説明の工程Ａ（３）に相当する。つぎに，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０８に進んで，ステップＳ４０４で検出したシンボルの最大値が，ステップＳ４０７で算出したＬｉ（ｉ＝１，２，…，ｋ）から求めた範囲，
ｋ−１ 
ｋ
Σ  ２Ｌｊ  〜  Σ２Ｌｊ  −１
ｊ＝１ ｊ＝１
に入っているかどうかを判定する。すなわち，ＣＰＵ（累積出現頻度分布計測部１０３）は，最大値Ｃｍａｘが，Ｃ≦Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件を満たすか否かを判定する。これは，上述したＡ（４）に相当する。
【０１００】
このとき，ステップＳ４０８にて「Ｎｏ」と判定した場合，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ４０９に進んで，ｋを１増やすとともにＣ＋２Ｌｋの値をＣに代入して，ステップＳ４０６へ戻り，ステップＳ４０８にて「Ｙｅｓ」と判定するまでステップＳ４０６〜ステップＳ４０９の処理を繰り返す。
【０１０１】
一方，ステップＳ４０８にて「Ｙｅｓ」と判定した場合，ＣＰＵ（累積出現頻度分布計測部１０３）は，ステップＳ１１０４に進んで，算出された符号化テーブル情報ｋ，Ｌｉ（ｉ＝１，２，…，ｋ）を符号化テーブル情報保持部８０５に保持し，ステップＳ４０１に戻る。このようにして，次回，データ符号化装置１００に入力されるシンボルを圧縮符号化するための符号化テーブル情報が生成され，保持される。
【０１０２】
（データ復号装置２００の動作）
つぎに，本実施形態のデータ復号装置２００が実行する伸張復号処理について，図１２のフローチャートを参照しながら説明する。この説明では，最初に，符号化テーブル情報保持部９０２に保持されている符号化テーブル情報を用いてＷ個のシンボル（シンボルＸ１〜Ｘｗ）を伸張復号した後の処理であって，今回，データ符号化装置１００から送信された新たなシンボルを伸張復号するとともに，次回，データ符号化装置１００から送信される新たなシンボルを伸張復号するために，今回伸張復号されたＷ個のシンボルから，符号化テーブル情報を生成する処理について説明する。
【０１０３】
まず，データ復号装置２００のＣＰＵは，ステップＳ１２００から処理を開始し，ステップＳ１２０１に進んで，復号すべき符号化データがあるかどうかを判定する。復号すべき符号化データが無ければ，ＣＰＵは，ステップＳ１２０１にて「Ｎｏ」と判定してステップＳ１２１０に進んで処理を終了する。
【０１０４】
一方，復号すべき符号化データがある場合，ＣＰＵ（復号部２０１）は，ステップＳ１２０１にて「Ｙｅｓ」と判定して，ステップＳ１２０２に進み，符号化テーブル情報保持部９０２で保持されている符号化テーブル情報を用いて，Ｃ（１）’〜Ｃ（２）’の方法にて符号化されたシンボルを復号し，復号結果として復号シンボルを出力すると共に，バッファ９０５へその復号シンボルを出力し，保持する。
【０１０５】
つぎに，ＣＰＵは，ステップＳ１２０３に進んで，バッファ９０５に保持されたＷ個のシンボルＸ２〜Ｘｗ＋１の各シンボルの出現回数を求め，ステップＳ１２０４に進んでＷ個のシンボルＸ２〜Ｘｗ＋１のうち，最大の値をとるシンボルを検出する。
【０１０６】
つぎに，ＣＰＵ（累積出現頻度分布計測部９０３）は，ステップＳ１２０５に進んで，初期設定として，ｋ＝１，Ｃ＝０を設定する。これは，累積出現頻度分布計測部９０３の構成説明の工程Ａ（１）に相当する。つぎに，ＣＰＵ（累積出現頻度分布計測部９０３）は，ステップＳ１２０６に進んで，バッファ９０５内のシンボル列において，出現頻度をシンボルＣから順に累積し，累積値がＷ／２ｋに最も近いシンボルＸを求める。これは，累積出現頻度分布計測部９０３の構成説明の工程Ａ（２）に相当する。
【０１０７】
ついで，ＣＰＵ（累積出現頻度分布計測部９０３）は，ステップＳ１２０７に進み，（Ｘ−Ｃ＋１）の値を表すのに必要なビット数Ｌｋを求める。これは，累積出現頻度分布計測部９０３の構成説明の工程Ａ（３）に相当する。つぎに，ＣＰＵ（累積出現頻度分布計測部９０３）は，ステップＳ１２０８に進み，ステップＳ１２０４にて検出した最大値が，ステップＳ１２０７にて算出したＬｉ（ｉ＝１，２，…，ｋ）から求めた範囲，
ｋ−１ ｋ
Σ  ２Ｌｊ  〜  Σ２Ｌｊ  −１
ｊ＝１ ｊ＝１
に入っているかどうかを判定する。すなわち，ＣＰＵ（累積出現頻度分布計測部９０３）は，最大値Ｃｍａｘが，Ｃ≦Ｃｍａｘ≦Ｃ＋２Ｌｋ−１の条件を満たすか否かを判定する。これは，上述したＡ（４）に相当する。
【０１０８】
ステップＳ１２０８にて「Ｎｏ」と判定された場合，ＣＰＵ（累積出現頻度分布計測部９０３）は，ステップＳ１２０９に進んで，ｋを１増やすとともにＣ＋２Ｌｋの値をＣに代入して，ステップＳ１２０６へ戻り，ステップＳ１２０８にて「Ｙｅｓ」と判定するまでステップＳ１２０６〜ステップＳ１２０９の処理を繰り返す。
【０１０９】
一方，ステップＳ１２０８にて「Ｙｅｓ」と判定された場合，ＣＰＵ（累積出現頻度分布計測部９０３）は，ステップＳ１２１０に進んで，算出された符号化テーブル情報ｋ，Ｌｉ（ｉ＝１，２，…，ｋ）を符号化テーブル情報保持部９０２に保持し，ステップＳ１２０１に戻る。このようにして，次回，データ符号化装置１００から送信されるシンボルを伸張復号するための符号化テーブル情報が生成され，保持される。
【０１１０】
第２の実施形態では，符号化テーブル情報を生成するためには，符号化しようとするシンボルよりも前のＷ個のシンボルから符号化テーブル情報を生成させることにより，データ復号装置２００において，すでに復号したシンボルから符号化テーブル情報を生成することができる。これにより，データ復号装置２００は，符号化データとして符号化テーブル情報を一回のみデータ符号化装置１００から受け取れば，その後，この情報をデータ符号化装置１００から受け取る必要がなくなる。この結果，データ符号化装置１００は，符号化テーブル情報を圧縮符号化データに含めなくてもよくなり，オーバーヘッドが小さくなる。
【０１１１】
（第２実施形態の変形例）
第２実施形態では，図１１に示したように，データ符号化装置１００は，Ｗ個のシンボルを「一つずつ」シフトさせて（たとえば，シンボルＸ１〜ＸｗからシンボルＸ２〜Ｘｗ＋１にシフトさせて），シフトさせた範囲のシンボルの出現個数をバッファ１０１に保持し，保持したシンボルの出現個数から，次回送信される新たなシンボルを圧縮符号化するための符号化テーブル情報を生成し，その情報を符号化テーブル情報保持部８０５に保持した。
【０１１２】
また，第２実施形態では，図１２に示したように，データ復号装置２００は，Ｗ個のシンボルを「一つずつ」シフトさせて（たとえば，シンボルＸ１〜ＸｗからシンボルＸ２〜Ｘｗ＋１にシフトさせて），シフトさせた範囲のシンボルおよびそれらのシンボル値の出現個数をバッファ９０５に保持し，保持したシンボル値の出現個数から，次回，データ符号化装置１００から送信される新たなシンボルを伸張復号するための符号化テーブル情報を生成し，その情報を符号化テーブル情報保持部９０２に保持した。
【０１１３】
これに対して，本実施形態の変形例では，データ符号化装置１００のＣＰＵは，図１１のステップＳ１１０１にて，シンボルを新たにＷ個（シンボルＸｗ＋１〜Ｘ２ｗ）入力する。この場合，ＣＰＵは，ステップＳ１１０２にて，新たに入力したＷ個のシンボルを符号化するとともに，バッファ１０１に保持されたシンボルＸ１〜ＸｗおよびシンボルＸ１〜Ｘｗの出現個数をシンボルＸｗ＋１〜Ｘ２ｗおよびシンボルＸｗ＋１〜Ｘ２ｗの出現個数に更新した後，今回入力したＷ個のシンボルの出現個数を用いて，ステップＳ４０４〜ステップ４０９を処理することにより次回，外部から入力する新たなＷ個のシンボルを圧縮符号化するための符号化テーブル情報を生成し，ステップＳ１１０４にて，生成された符号化テーブル情報を符号化テーブル情報保持部８０５に保持する。
【０１１４】
また，本実施形態の変形例では，データ復号装置２００のＣＰＵは，データ符号化装置１００から送信されるＷ個のシンボル（シンボルＸｗ＋１〜Ｘ２ｗ）を入力し，図１２のステップＳ１２０２にて，そのＷ個のシンボルを復号するとともに，バッファ９０５に保持されたシンボルＸ１〜ＸｗおよびシンボルＸ１〜Ｘｗの出現個数をシンボルＸｗ＋１〜Ｘ２ｗおよびシンボルＸｗ＋１〜Ｘ２ｗの出現個数に更新した後，今回入力したＷ個のシンボルの出現個数を用いてステップＳ１２０５〜ステップＳ１２０９を処理することにより，次回，データ符号化装置１００から送信される新たなＷ個のシンボルを伸張復号するための符号化テーブル情報を生成し，ステップＳ１２１０にて，生成した符号化テーブル情報保持部９０２に保持する。
【０１１５】
このように，第２実施形態の変形例では，データ符号化装置１００およびデータ復号装置２００は，前回入力したＷ個のシンボルから今回新たに入力したＷ個のシンボルを符号化および復号するための符号化テーブル情報を生成する。このように，データ復号装置２００において，すでに復号したシンボル（前回入力したＷ個のシンボル）から符号化テーブル情報を生成することができる。このため，データ復号装置２００は，符号化データとして符号化テーブル情報を一回受け取れば，その後，この情報を受け取る必要がなくなる。この結果，符号化テーブル情報を圧縮符号化データに含めなくてもよくなり，オーバーヘッドが小さくなる。
【０１１６】
（第３実施形態）
これまでの実施形態では，図１３の左側に示したように，Ｗ個のシンボルの各シンボル値（シンボル０〜シンボル１５）の出現個数をシンボル値毎にバッファ１０１（データ符号化装置１００）およびバッファ９０５（データ復号装置２００）に保持していた。
【０１１７】
本実施形態では，図１３の右側に示したように，最小のシンボル値から順に各シンボル値を２のべき乗（２ｉ：ｉ＝０，１，２，・・）毎に区切り，その区切り内の各シンボル値の出現頻度を区切り毎に累積し，その累積値をそれぞれバッファ１０１およびバッファ９０５に保持する。
【０１１８】
具体的には，各シンボル値は，シンボル０，シンボル１，シンボル２〜３，シンボル４〜７，シンボル８〜１５というように，２のべき乗毎に区切られ，シンボル０およびシンボル１に対する出現個数「３００」および「２００」が，各バッファにそれぞれ保持される。また，シンボル２およびシンボル３の出現個数の累積値「１８０」が各バッファに保持される。また，シンボル４〜シンボル７の出現個数の累積値「１８０」が各バッファに保持される。さらに，シンボル８〜シンボル１５の出現個数の累積値「１４０」が各バッファに保持される。
【０１１９】
本実施形態によれば，シンボル値の出現頻度をシンボル値毎に記憶するバッファ１０１およびバッファ９０５内のメモリ領域を小さくすることができる。また，累積出現頻度分布計測部１０３および累積出現頻度分布計測部９０３が行うループ処理の繰り返し回数が少なくなるため，ＣＰＵの負荷を軽減することができる。
【０１２０】
上記実施形態において，各部の動作はお互いに関連しており，互いの関連を考慮しながら，一連の動作として置き換えることができる。そして，このように置き換えることにより，方法の発明の実施形態とすることができる。
【０１２１】
また，上記各部の動作を，各部の処理と置き換えることにより，プログラムの実施の形態とすることができる。また，プログラムを，プログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで，プログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【０１２２】
したがって，データ符号化方法の実施形態は，外部から入力されたシンボルを符号化するデータ符号化方法であって，外部から入力された一定個数のシンボルの各シンボルの出現頻度を算出し，上記算出された各シンボルの出現頻度の所定の累積値と予め定められた目標累積値とに基づいて，各シンボルが符号化された符号語の符号語長に関連した情報である符号化テーブル情報を生成する処理と，上記生成された符号化テーブル情報を用いて上記各シンボルを符号語にそれぞれ符号化する処理と，をコンピュータに実行させるデータ符号化プログラム，および，このデータ符号化プログラムを記憶したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。
【０１２３】
また，データ復号方法の実施形態は，シンボルが符号化された符号語を復号するデータ復号方法であって，データ符号化装置から送信された一定個数の符号語とその各符号語の符号語長に関連した情報である符号化テーブル情報とを入力する処理と，上記入力された符号化テーブル情報を用いて上記入力された各符号語を各シンボルにそれぞれ復号する処理と，をコンピュータに実行させるデータ復号プログラム，および，このデータ復号プログラムを記憶したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。
【０１２４】
なお，このプログラムの実施形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施形態における各処理は，コンピュータがプログラムを実行することにより達成される。
【０１２５】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【０１２６】
本発明は，情報量を低減させた符号化テーブル情報を生成するデータ符号化装置，および，その符号化テーブル情報を用いてデータを復号するデータ復号装置に適用可能である。
【図面の簡単な説明】
【０１２７】
【図１】本発明の第１実施形態にかかるデータ符号化装置の構成を示す図である。
【図２】同実施形態におけるデータ復号装置の構成を示す図である。
【図３】同実施形態のデータ符号化装置に入力されるシンボル列を説明するための図である。
【図４】同実施形態にてデータ符号化装置が実行するルーチンを示したフローチャートである。
【図５】同実施形態にてデータ符号化装置が実行する各ループ処理時に各変数がもつ値を示した図である。
【図６】同実施形態において各シンボルに対応した各符号語と符号化テーブル情報との関係を示した図である。
【図７】同実施形態において符号化テーブル情報を用いて実際にシンボルから符号化された符号語の値を示した図である。
【図８】本発明の第２実施形態にかかるデータ符号化装置の構成を示す図である。
【図９】同実施形態にかかるデータ復号装置の構成を示す図である。
【図１０】同実施形態のデータ符号化装置に入力されるシンボル列を説明するための図である。
【図１１】同実施形態にてデータ符号化装置が実行するルーチンを示したフローチャートである。
【図１２】同実施形態にてデータ復号装置が実行するルーチンを示したフローチャートである。
【図１３】本発明の第１，２実施形態にかかるデータ符号化装置およびデータ復号装置が保持するテーブルと，本発明の第３実施形態にかかるデータ符号化装置およびデータ復号装置が保持するテーブルと，を比較して説明するための図である。
【符号の説明】
【０１２８】
１００      データ符号化装置
１０１      バッファ
１０２      最大値検出部
１０３      累積出現頻度分布計測部
１０４      符号化部
２００      データ復号装置
２０１      復号部
８０５      符号化テーブル生成情報保持部
９０２      符号化テーブル生成情報保持部
９０３      累積出現頻度分布計測部
９０４      最大値検出部
９０５      バッファ
【図１】
2006345374.tif 000003
【図２】
2006345374.tif 000004
【図３】
2006345374.tif 000005
【図４】
2006345374.tif 000006
【図５】
2006345374.tif 000007
【図６】
2006345374.tif 000008
【図７】
2006345374.tif 000009
【図８】
2006345374.tif 000010
【図９】
2006345374.tif 000011
【図１０】
2006345374.tif 000012
【図１１】
2006345374.tif 000013
【図１２】
2006345374.tif 000014
【図１３】
2006345374.tif 000015