(57)【特許請求の範囲】
【請求項１】
入力されるハフマン符号化信号を復号する復号装置であって、
復号インデックスと符号長とサンプル数とから各レコードが構成され、前記レコードは前記符号長毎にグループ化され、かつグループ内のレコードは対応するハフマン符号語の値の昇順に並び、先頭のグループの最小ハフマン符号語が初期値として与えられるコード検索テーブルと、
前記ハフマン符号化信号を順次入力し、検索するグループの符号長に応じた検索ビット列に編成する入力信号編成手段と、
検索するグループ内の最小ハフマン符号語と前記サンプル数とから当該グループ内の最大ハフマン符号語を生成し、生成した前記最大ハフマン符号語に１を加算し、更にそれを当該グループの符号長及び次に検索するグループの符号長の差分値に応じたビット数分左シフトすることで、次のグループの最小ハフマン符号語を生成する符号語生成手段と、
生成した前記グループ内最大ハフマン符号語と編成した前記入力信号とを比較し、当該グループ内の復号インデックスを取得するか次グループ以降のグループ内の復号インデックスを取得するかを判定する比較手段と、
当該グループ内の復号インデックスを取得すると判定された場合に、この比較結果による差分値から当該グループ内の復号インデックスのエントリ位置を算出する位置算出手段と、
前記位置算出手段によって算出されたエントリ位置から復号インデックスを取得し、復号化結果として出力する復号インデックス取得手段と、
を有することを特徴とする復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可変長符号化データを復号する復号装置に係り、特に、高速にハフマン符号を復号することができ、しかもテーブルの容量を低減することができる復号装置に関する。
【０００２】
【従来の技術】
オーディオやビデオなどのデジタル化されたデータは、その内容を一定の手順に従って符号化することでデータを圧縮してから、伝送や記録などが行われている。このような情報源のデータを可逆的に圧縮する技術の一つに可変長符号化方式があり、その中の代表的な符号化方式がハフマン符号化方式として知られている。ハフマン符号は、情報源の統計的性質が既知である場合に最適な符号を割当てるもので、シンボルの出現確率分布に応じてデータを符号化する方式であり、出現確率の高い情報には短い符号を、出現確率の低い情報には長い符号を割り当てることで、情報源全体の平均ビット長を短縮する方式である。
【０００３】
図５は、ハフマン符号化の一例を示した説明図である。同図（ａ）に示すように、情報源の１６種類のインデックス（ｉｎｄｅｘ）「０」〜「１５」の出現確率分布が予め与えられており、例えば、インデックス「９」の出現確率は「０．２５」、インデックス「１０」は「０．１２６」、インデックス「８」は「０．１２５」、・・・・というように与えられている。
【０００４】
これらの各インデックスにハフマン符号を割り当てると、例えば、同図（ｂ）に示すようなハフマンテーブルが作成される。このハフマンテーブル例では、符号長の短い方に「０」を与えるように符号が割り当てられており、結果として、最も出現確率の高いインデックス「９」には最も符号長（ｌｅｎｇｔｈ）の短い符号語（ｃｏｄｅｗｏｒｄ）「００」が割り当てられ、次に出現確率の高いインデックス「１０」「８」「１３」にはインデックス「９」を区別化することができる最も短い符号語「０１０」〜「１００」が割り当てられている。更に、次に出現確率の高いインデックス「０」「１」「７」にはインデックス「９」「１０」「８」「１３」を区別化することができる最も短い符号語「１０１０」〜「１１００」が割り当てられている。同様にして、出現確率の高いインデックスほど短い符号語が、出現確率の低いインデックスほど長い符号語が割り当てられることになる。
【０００５】
このような符号化されたデータ信号を復号するには、図５（ｂ）に示したように符号語とインデックスとが対になって構成されたハフマンテーブルを用いて、変換されたハフマン符号語から一意定められるインデックスを、このテーブルの中から検索して、元信号を得るようにしている。尚、このハフマンテーブルは予め符号長の昇順にソートされており、更に、検索効率を高めるために同一の符号長内は出現確率の降順に並んでいる。
【０００６】
検索手順を具体的に説明すると、ハフマンテーブルの先頭の符号長は２ビットであるので、符号化された信号が入力されると、先頭の２ビットを読み出して、読み出したデータを符号語「００」と比較する。一致すれば対応するインデックス「９」を引き出し、逆に一致しない場合には次のコードの符号長を調べる。図５（ｂ）の例では、次のコードの符号長は３ビットであるので、先に読み出した２ビットに続けて更に１ビット読み出し、都合３ビットのデータを符号長を３ビットの符号語「１００」「０１１」「０１０」と比較する。このうちのどれかと一致すれば、それに対応するインデックスを引き出し、一致しない場合には、更に、次の符号長を調べて検索を進める。
【０００７】
このように検索対象のビット数を増やしながら、最終的にはハフマンテーブル内の最大符号長まで検索を行い、これを超えた場合には符号誤りとなる。
【０００８】
尚、符号長毎の検索を容易にするために、同一符号長をもつコード群の最終データに検索対象フラグをセットしておくこともある。
【０００９】
このように、従来のハフマン復号では、使用されるハフマンテーブルは高次の情報を持つ配列によって構成され、出現頻度の高いコードから逐次比較し、一致するまで比較処理を繰り返す。符号語と一致したところで、それに対応したインデックスから復号信号値を取得している。
【００１０】
【発明が解決しようとする課題】
上記のように、従来、ハフマン符号を復号する場合には、メモリ上に展開されたハフマンテーブルを用いて、復号する符号毎にテーブルを先頭からシーケンシャルに検索していく必要があるため、検索回数が増大する傾向にあり（最大検索回数はテーブルのエントリー数回となる）、処理速度の面から改善が求められていた。特に、オーディオやビデオなどの再生装置では、リアルタイムで復号して再生することから、処理速度の一層の向上が求められている。
【００１１】
また、検索に用いられるハフマンテーブルも、符号語、インデックス、符号長、更には検索終了フラグなど、多くの情報を必要とし、テーブル容量の増大を招いており、回路規模の面から容量の削減が求められている。特に、近年、ＡＶ機器は小型化、軽量化されており、メモリ容量規模の改善は重要な課題となっている。
【００１２】
本発明は、このような問題に鑑みてなされたものであり、その目的とするところは、ハフマン符号を復号する際の検索回数を削減し、高速にハフマン符号を復号することができ、しかもテーブルの容量を低減することができる復号装置を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明は、入力されるハフマン符号化信号を復号する復号装置であって、復号インデックスと符号長とサンプル数とから各レコードが構成され、前記レコードは前記符号長毎にグループ化され、かつグループ内のレコードは対応するハフマン符号語の値の昇順に並び、先頭のグループの最小ハフマン符号語が初期値として与えられるコード検索テーブルと、
前記ハフマン符号化信号を順次入力し、検索するグループの符号長に応じた検索ビット列に編成する入力信号編成手段と、検索するグループ内の最小ハフマン符号語と前記サンプル数とから当該グループ内の最大ハフマン符号語を生成し、生成した前記最大ハフマン符号語に１を加算し、更にそれを当該グループの符号長及び次に検索するグループの符号長の差分値に応じたビット数分左シフトすることで、次のグループの最小ハフマン符号語を生成する符号語生成手段と、生成した前記グループ内最大ハフマン符号語と編成した前記入力信号とを比較し、当該グループ内の復号インデックスを取得するか次グループ以降のグループ内の復号インデックスを取得するかを判定する比較手段と、当該グループ内の復号インデックスを取得すると判定された場合に、この比較結果による差分値から当該グループ内の復号インデックスのエントリ位置を算出する位置算出手段と、前記位置算出手段によって算出されたエントリ位置から復号インデックスを取得し、復号化結果として出力する復号インデックス取得手段と、を有することを特徴とする。
【００１５】
本発明に係る復号装置によれば、ハフマンテーブル作成時に同一レングスのグループ内の符号値が連番になることを利用して、符号長、サンプル数、及び初期値であるグループ内最小符号語等からハフマン符号語を生成することができる。従来のハフマンテーブルで必要とされたハフマン符号語に比べて、本発明で必要となるサンプル数はフィールド長を短くすることができるため、結果的にテーブル容量を削減することができ、メモリを節約することができる。
【００１６】
また、生成したハフマン符号語、サンプル数等を用いて、検索対象ビット列が現在検索しているグループ内に存在するかどうか判定し、存在する場合にはグループ内のどのエントリに位置する算出し、また、存在しない場合には次のグループを検索するようにしている。従って、最大検索回数を（グループ数＋１）回にすることができ、従来に比べて復号に要する処理時間を短縮することができる。
【００１９】
【発明の実施の形態】
以下、本発明に係る復号装置の実施形態について、図面を参照しながら詳細に説明する。
【００２０】
図１は、本実施形態に係る復号装置１の構成を示したブロック図である。この復号装置１は、ハフマンテーブル１０、サンプル数（Ｓａｍ＿ｎｕｍ）レジスタ１１、符号長（ｌｅｎｇｔｈ）レジスタ１２、検索対象の信号値（ｂｉｔ＿ｄａｔａ）編成器１３、符号語（ｃｏｄｅｗｏｒｄ）及び最大符号語（ｃｏｄｅ＿ｍａｘ）生成器１４、コード一致判定器１５、ポイント（ｐｏｉｎｔ）生成器１６、インデックス（ｉｎｄｅｘ）レジスタ１７から構成されている。
【００２１】
検索対象の信号値（ｂｉｔ＿ｄａｔａ）編成器１３は、入力信号であるハフマン符号化信号を順次入力し、検索するグループの符号長に応じた検索ビット列に編成する入力信号編成手段である。
【００２２】
符号語（ｃｏｄｅｗｏｒｄ）及び最大符号語（ｃｏｄｅ＿ｍａｘ）生成器１４は、検索するグループ内の最小ハフマン符号語とサンプル数とから当該グループ内の最大ハフマン符号語を生成し、また、当該グループの符号長及び次に検索するグループの符号長の差分値と最大ハフマン符号語とから次のグループの最小ハフマン符号語を生成する符号語生成手段である。
【００２３】
コード一致判定器１５は、符号語生成手段が生成したグループ内最大ハフマン符号語と入力信号編成手段が編成した入力信号とを比較する比較手段である。
【００２４】
ポイント（ｐｏｉｎｔ）生成器１６は、比較手段による比較結果の差分値からグループ内の復号インデックスのエントリ位置を算出する位置算出手段である。
【００２５】
ハフマンテーブル１０は、復号インデックスと符号長とサンプル数とから各レコードが構成され、これらのレコードは符号長毎にグループ化され、かつグループ内のレコードは対応するハフマン符号語の値の昇順に並んでいる。このハフマンテーブル１０の作成手順を図３に、作成例を図４に示す。
【００２６】
図３に示すように、先ず、従来の手法に沿ってハフマンテーブルを作成する（Ｓｔｅｐ３１）。例えば、図５（ｂ）のようなハフマンテーブルが作成される。この際、符号長の短い方に「０」を与えるように符号を割り当てるようにすると、最も出現確率の大きいインデックス「９」に対し、最も小さい値の符号「００」が割当てられる。また、同一レングスのグループ内ではハフマン符号値が連番となるように符号の割当てを行う。この際、同一レングスのグループ内のインデックスは出現確率順である必要はない。
【００２７】
次に、作成したハフマンテーブルを符号語の昇順に並び替え（Ｓｔｅｐ３２）、更にそれを符号長の昇順に並び替える（Ｓｔｅｐ３３）。すると、図４に示すように、符号長毎に符号長の降順にグループ化され、かつグループ内のレコードは対応するハフマン符号語の値の昇順（連番）に並んだハフマンテーブルができる。
【００２８】
更に、各レコードにグループ内のレコード数であるサンプル数（sam_num）を設定する（Step34）。つまり、図４に示すように、符号長が２ビットのグループは、インデックス「９」の１レコードのみであるためサンプル数は１を設定し、符号長が３ビットのグループは、インデックス「１３」「８」「１０」の３レコードであるためサンプル数を３、符号長４ビットのグループは、インデックス「１１」「７」「０」の３レコードであるためサンプル数３、符号長２ビットのグループは、インデックス「１５」「２」「５」の３レコードであるためサンプル数を３、符号長６ビットのグループは、インデックス「１１」「１２」「３」「１４」「６」「４」の６レコードであるためサンプル数は６となる。
【００２９】
また、本発明に係るハフマンテーブルには、インデックスの対となる符号語は必要としないので、テーブルから除外する（図４の点線部）。すなわち、本ハフマンテーブルは、インデックス（ｉｎｄｅｘ）、符号長（ｌｅｎｇｔｈ）、サンプル数（ｓａｍ＿ｎｕｍ）で構成される。従来必要とされた符号語に比べて、本発明のサンプル数のフィールド長は短くすることができるため、結果的にテーブルサイズを削減することができる。例えば、図４を例にすると、符号語のフィールド長は６ビット必要であるが、サンプル数のフィールドは４ビットあれば「０」〜「１５」まで表現することができる。
【００３０】
次に、このハフマンテーブルを用いて、ハフマン符号化信号を復号する処理動作例を図２のフローチャートに従って説明する。例として、「１０１１」というビット列の符号化信号が入力されるものとする。
【００３１】
処理動作に先立って、初期値として、グループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）とハフマンテーブルのエントリ位置（ｐｏｉｎｔ）が与えられる（Ｓｔｅｐ０１）。
【００３２】
ここでは、グループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）に「００」、エントリ位置（ｐｏｉｎｔ）にはテーブルの先頭を指し示す「１」（ｓｔａｒｔ＿ｐｏｉｎｔ）が与えられる。尚、既述の通り、ハフマンテーブル作成時に、符号長の短い方に「０」を与えるように符号を割り当てるようにすれば、グループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）の初期値を与えなくても、ゼロであると仮定して処理を行うことができる。
【００３３】
次に、エントリ位置（ｐｏｉｎｔ）が指し示すところの符号長（ｌｅｎｇｔｈ）及びサンプル数（ｓａｍ＿ｎｕｍ）を取得する（Ｓｔｅｐ０２）。ここでは、エントリ位置（ｐｏｉｎｔ）はテーブルの先頭、すなわちインデックス「９」を指しているので、それに対応する符号長「２」とサンプル数「１」が取出され、それぞれ符号長レジスタ１２、サンプル数レジスタ１１に格納される。
【００３４】
次に、信号値編成器１３は、入力信号である符号化データの先頭から符号長（ｌｅｎｇｔｈ）分のビットを取出して検索対象ビット列（ｂｉｔ＿ｄａｔａ）として編成し、コード一致判定器１５に送る（Ｓｔｅｐ０３）。ここでは符号長レジスタ１２の符号長（ｌｅｎｇｔｈ）は「２」であるので、検索対象ビット列（ｂｉｔ＿ｄａｔａ）は「１０」となる。
【００３５】
次に、符号語編成器１４は、グループ内の最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）を下記式により算出してコード一致判定器１５に送る（Ｓｔｅｐ０４）。
【００３６】
【式１】
ｃｏｄｅ＿ｍａｘ  ＝  ｃｏｄｅｗｏｒｄ  ＋  ｓａｍ＿ｎｕｍ  −  １
ここでは、グループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）は「００」で、サンプル数（ｓａｍ＿ｎｕｍ）は「１」であるので、グループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）は「００」となる。
【００３７】
次に、算出したグループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）と検索対象ビット列（ｂｉｔ＿ｄａｔａ）をコード一致判定器１５にて比較する（Ｓｔｅｐ０５）。つまり、目的のハフマン符号がカレントのグループに存在するかどうかの判定処理である。
【００３８】
グループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）に１を加算した値より検索対象ビット列（ｂｉｔ＿ｄａｔａ）の方が小さい場合は、目的のハフマン符号がカレントのグループに存在するのでＳｔｅｐ０６〜Ｓｔｅｐ０７の処理を行って、目的のハフマン符号に対応するインデックス値を取得する。
【００３９】
逆に、等しいか検索対象ビット列（ｂｉｔ＿ｄａｔａ）の方が大きい場合には、次以降のグループに存在するので、Ｓｔｅｐ１１〜Ｓｔｅｐ１４の処理を行って、次のグループへジャンプする処理を行う。
【００４０】
ここでは、ｃｏｄｅ＿ｍａｘ  ＋  １  ＜  ｂｉｔ＿ｄａｔａ  であるので、次のグループへジャンプするために、ポイント生成器１６は、次式のようにエントリ位置（ｐｏｉｎｔ）にサンプル数（ｓａｍ＿ｎｕｍ）を加算する（Ｓｔｅｐ１１）。すると、エントリ位置（ｐｏｉｎｔ）は「２」がセットされる。
【００４１】
【式２】
ｐｏｉｎｔ  ＝  ｐｏｉｎｔ  ＋  ｓａｍ＿ｎｕｍ
次に、エントリ位置（ｐｏｉｎｔ）が指し示すところの符号長（ｌｅｎｇｔｈ）及びサンプル数（ｓａｍ＿ｎｕｍ）を取得する（Ｓｔｅｐ１２）。ここでは、エントリ位置（ｐｏｉｎｔ）はインデックス「１３」を指しているので、それに対応する符号長「３」とサンプル数「３」が取出され、それぞれ符号長レジスタ１２、サンプル数レジスタ１１に格納される。
【００４２】
次に、今回のグループの符号長（ｌｅｎｇｔｈ）と前回のグループの符号長（ｌｅｎｇｔｈ）の差分値（１＿ｄｉｆｆ）を取得する（Ｓｔｅｐ１３）。ここでは、差分値「１」である。
【００４３】
次に、求めた差分値（１＿ｄｉｆｆ）と前回のグループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）から今回のグループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）を次式により求める（Ｓｔｅｐ１４）。
【００４４】
【式３】
codeword = (code_max + 1) << 1_diff
つまり、前回のグループ内最大ハフマン符号語（code_max）「００」に１を加算して、更にそれを差分値（1_diff）のビット数だけ左シフトするのである。その結果、今回のグループ内最小ハフマン符号語（codeword）「０１０」が求まる。
【００４５】
再び、Ｓｔｅｐ０３に戻り、入力信号である符号化データの先頭から符号長（ｌｅｎｇｔｈ）分のビットを取出して検索対象ビット列（ｂｉｔ＿ｄａｔａ）として編成する。ここでは符号長レジスタ１２の符号長（ｌｅｎｇｔｈ）は「３」に変わっているので、検索対象ビット列（ｂｉｔ＿ｄａｔａ）は「１０１」となる。
【００４６】
次に、グループ内の最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）を算出する（Ｓｔｅｐ０４）。
【００４７】
ここでは、グループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）は「０１０」で、サンプル数（ｓａｍ＿ｎｕｍ）は「３」であるので、グループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）は「１００」となる。
【００４８】
次に、算出したグループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）と検索対象ビット列（ｂｉｔ＿ｄａｔａ）を比較する（Ｓｔｅｐ０５）。
【００４９】
ここでは、ｃｏｄｅ＿ｍａｘ  ＋  １  ＜  ｂｉｔ＿ｄａｔａ  であるので、次のグループへジャンプするために、エントリ位置（ｐｏｉｎｔ）にサンプル数（ｓａｍ＿ｎｕｍ）を加算する（Ｓｔｅｐ１１）。すると、エントリ位置（ｐｏｉｎｔ）は「５」がセットされる。
【００５０】
次に、エントリ位置（ｐｏｉｎｔ）が指し示すところの符号長（ｌｅｎｇｔｈ）及びサンプル数（ｓａｍ＿ｎｕｍ）を取得する（Ｓｔｅｐ１２）。ここでは、エントリ位置（ｐｏｉｎｔ）はインデックス「１」を指しているので、それに対応する符号長「４」とサンプル数「３」が取出される。
【００５１】
次に、今回のグループの符号長（ｌｅｎｇｔｈ）と前回のグループの符号長（ｌｅｎｇｔｈ）の差分値（１＿ｄｉｆｆ）を取得する（Ｓｔｅｐ１３）。ここでは、差分値「１」である。
【００５２】
次に、求めた差分値（1_diff）と前回のグループ内最大ハフマン符号語（code_max）から今回のグループ内最小ハフマン符号語（codeword）を求める（Step14）。前回のグループ内最大ハフマン符号語（code_max）「１００」に１を加算して、更にそれを差分値（1_diff）のビット数左シフトするのである。その結果、今回のグループ内最小ハフマン符号語（codeword）「１０１０」が求まる。
【００５３】
再び、Ｓｔｅｐ０３に戻り、入力信号である符号化データの先頭から符号長（ｌｅｎｇｔｈ）分のビットを取出して検索対象ビット列（ｂｉｔ＿ｄａｔａ）として編成する。ここでは符号長（ｌｅｎｇｔｈ）は「４」に変わっているので、検索対象ビット列（ｂｉｔ＿ｄａｔａ）は「１０１１」となる。
【００５４】
次に、グループ内の最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）を算出する（Ｓｔｅｐ０４）。
【００５５】
ここでは、グループ内最小ハフマン符号語（ｃｏｄｅｗｏｒｄ）は「１０１０」で、サンプル数（ｓａｍ＿ｎｕｍ）は「３」であるので、グループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）は「１１００」となる。
【００５６】
次に、算出したグループ内最大ハフマン符号語（ｃｏｄｅ＿ｍａｘ）と検索対象ビット列（ｂｉｔ＿ｄａｔａ）を比較する（Ｓｔｅｐ０５）と、ｃｏｄｅ＿ｍａｘ  ＋  １  ＞  ｂｉｔ＿ｄａｔａ  であるので、次式により今回のグループの中の目的とする符号の位置へジャンプする（Ｓｔｅｐ０６）。
【００５７】
【式４】
ｄｉｆｆ  ＝  ｂｉｔ＿ｄａｔａ  −  ｃｏｄｅｗｏｒｄ
ｐｏｉｎｔ  ＝  ｐｏｉｎｔ  ＋  ｄｉｆｆ
ここでは、ｄｉｆｆには「１」がセットされ、従ってエントリ位置（ｐｏｉｎｔ）には「６」がセットされる。
【００５８】
次に、エントリ位置（ｐｏｉｎｔ）が指し示すインデックス（ｉｎｄｅｘ）値「７」を取得してインデックスレジスタに格納し（Ｓｔｅｐ０７）、処理を終了する。
【００５９】
以上、説明したように、本発明に係る復号装置においては、ハフマンテーブル作成時に同一レングスのグループ内の符号値が連番になることを利用して、符号長、サンプル数、及び初期値であるグループ内最小符号語等からハフマン符号語を生成することができる。従来のハフマンテーブルで必要とされたハフマン符号語に比べて、本発明で必要となるサンプル数はフィールド長を短くすることができるため、結果的にテーブル容量を削減することができる。
【００６０】
また、生成したハフマン符号語、サンプル数等を用いて、検索対象ビット列が現在検索しているグループ内に存在するかどうか判定し、存在する場合にはグループ内のどのエントリに位置する算出し、また、存在しない場合には次のグループを検索するようにしている。従って、最大検索回数を（グループ数＋１）回にすることができ、従来に比べて復号に要する処理時間を短縮することができる。
【００６１】
以上、本発明の実施形態について詳細に説明したが、本発明は本実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更を成し得るであろう。
【００６２】
従って、本発明はこの開示から妥当な特許請求の範囲に係わる発明特定事項によってのみ限定されるものでなければならない。
【００６３】
【発明の効果】
以上説明したように、本発明に係る復号装置においては、ハフマンテーブル作成時に同一レングスのグループ内の符号値が連番になることを利用して、符号長、サンプル数、及び初期値であるグループ内最小符号語等からハフマン符号語を生成することができる。従来のハフマンテーブルで必要とされたハフマン符号語に比べて、本発明で必要となるサンプル数はフィールド長を短くすることができるため、結果的にテーブル容量を削減することができ、メモリを節約することができる。
【００６４】
また、生成したハフマン符号語、サンプル数等を用いて、検索対象ビット列が現在検索しているグループ内に存在するかどうか判定し、存在する場合にはグループ内のどのエントリに位置する算出し、また、存在しない場合には次のグループを検索するようにしている。従って、最大検索回数を（グループ数＋１）回にすることができ、従来に比べて復号に要する処理時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明に係る復号装置の一実施例を示すブロック図である。
【図２】図１に示した復号装置における復号処理の動作手順例を示すフローチャートである。
【図３】図１に示した復号装置で用いるハフマンテーブルの作成手順例を示すフローチャートである。
【図４】図１に示した復号装置で用いるハフマンテーブルの作成例を示した説明図である。
【図５】従来のハフマンテーブルの作成例を示した説明図である。
【符号の説明】
１．．．．復号装置
１０．．．．ハフマンテーブル
１１．．．．サンプル数レジスタ
１２．．．．符号長レジスタ
１３．．．．検索対象の信号値編成器
１４．．．．符号語生成器
１５．．．．コード一致判定器
１６．．．．ポイント生成器
１７．．．．インデックスレジスタ
【図１】
0003565147.tif 000002
【図２】
0003565147.tif 000003
【図３】
0003565147.tif 000004
【図４】
0003565147.tif 000005
【図５】
0003565147.tif 000006