(57)【要約】【課題】可変長符号データの復号装置において、回路を小規模に抑えながら、符号の割当て方の変更に柔軟に対応できるようにする。【解決手段】復号用のテーブル情報を記憶するＬＵＴ３０２，３０４，３０６をＲＡＭで構成する。ＬＵＴ３０２にはｍ１よりも短い符号データを復号する情報を、ＬＵＴ３０４には先頭に同一ビットがｍ２以上連続して現れる符号データを復号する情報を、ＬＵＴ３０６にはＬＵＴ３０２，３０４の各条件に合致しない残りの符号を復号する情報を記憶させる。ＬＵＴ３０６で復号する符号において全符号に共通して先頭に現れる連続した同一ビットデータの個数ｍ３分だけ符号データＤ３をシフトするシフト回路３２６を設け、符号の割当て方の変更に対応したシフト量をレジスタ部３１６の設定に基づき調整する。判定部３４０と選択出力部３６０とにより、各ＬＵＴを参照した復号結果の中から、符号長に応じた適切な方を選択して出力する。【選択図】図２
2005094562.tif 000002
【特許請求の範囲】
【請求項１】
符号データを復号する復号装置であって、
前記復号装置に順次入力される符号データのうち、それぞれ所定ビット数よりも短い複数の符号長の符号データを復号するための情報を格納する書換可能な記憶デバイスを有した短ビット符号データ用復号情報記憶部と、
前記復号装置に順次入力される符号データのうち、符号データ中に共通して同一ビットデータが所定ビット数分連続したものを処理対象として復号するための情報を格納する書換可能な記憶デバイスを有した連続ビット符号データ用復号情報記憶部と、
前記連続ビット符号データ用復号情報記憶部が処理対象とする符号データについての前記所定ビット数分に関する情報を格納する書換可能な記憶デバイスを有した連続ビット数記憶部と、
前記復号装置に順次入力される符号データの符号の割当て方に応じて、前記各記憶部に格納する情報を書き換えさせる記憶情報更新部と、
前記短ビット符号データ用復号情報記憶部および前記連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れを選択すべきかを判定する判定部と、
前記判定部の判定結果に基づいて、前記短ビット符号データ用復号情報記憶部および前記連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れかを選択して出力する選択出力部と
を備えたことを特徴とする復号装置。
【請求項２】
前記連続ビット符号データ用復号情報記憶部は、処理対象の符号データから連続した前記所定ビット数分を除外した有効部分に対応付けて前記処理対象の符号データを復号するための情報を格納する
ことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記処理対象の符号データから、前記所定ビット数分連続した部分を除外して有効部分の符号データを抽出し、この有効部分の符号データを前記連続ビット符号データ用復号情報記憶部に入力する有効部分抽出処理部
を備えたことを特徴とする請求項１または２に記載の復号装置。
【請求項４】
前記有効部分抽出処理部は、前記復号装置に順次入力される符号データを前記所定ビット数分だけ移動させるためのシフト処理部を含む
ことを特徴とする請求項３に記載の復号装置。
【請求項５】
前記シフト処理部は、前記連続ビット符号データ用復号情報記憶部が処理対象とする全ての符号データに共通して符号の先頭側に現れる連続した同一ビットの個数分だけ入力される符号データをシフトさせる
ことを特徴とする請求項４に記載の復号装置。
【請求項６】
前記連続ビット符号データ用復号情報記憶部は、第１の前記所定ビット数以上連続したものを処理対象として復号するための情報を格納する第１の連続ビット符号データ用復号情報記憶部と、前記第１の所定ビット数以下の第２の前記所定ビット数以上連続したものであって、前記短ビット符号データ用復号情報記憶部および前記第１の連続ビット符号データ用復号情報記憶部が処理対象としない符号データを処理対象として復号するための情報を格納する第２の連続ビット符号データ用復号情報記憶部とを有し、
前記連続ビット数記憶部は、前記第２の連続ビット符号データ用復号情報記憶部が処理対象とする符号データについての前記第２の所定ビット数分に関する、前記符号の割当て方に応じて変更される情報を格納するレジスタ部を有し、
前記有効部分抽出処理部は、前記レジスタ部が格納している前記第２の所定ビット数分に関する情報に基づいて、前記有効部分の符号データを抽出し、この有効部分の符号データを前記第２の連続ビット符号データ用復号情報記憶部に入力し、
前記第１の連続ビット符号データ用復号情報記憶部は、処理対象とする符号データについての前記第１の所定ビット数分に関する、前記符号の割当て方に応じた情報であって、当該割当て方が変更されても不変な予め定められている情報に基づいて前記有効部分の符号データを取り込み、
前記判定部は、前記復号装置に順次入力される符号データと前記レジスタ部が格納している前記第２の所定ビット数分に関する情報とに基づいて、前記短ビット符号データ用復号情報記憶部および前記第１および前記第２の各連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れを選択すべきかを判定する
ことを特徴とする請求項３から５のうちの何れか１項に記載の復号装置。
【請求項７】
前記連続ビット符号データ用復号情報記憶部は、第１の前記所定ビット数以上連続したものを処理対象として復号するための情報を格納する第１の連続ビット符号データ用復号情報記憶部と、前記第１の所定ビット数以下の第２の前記所定ビット数以上連続したものであって、前記短ビット符号データ用復号情報記憶部および前記第１の連続ビット符号データ用復号情報記憶部が処理対象としない符号データを処理対象として復号するための情報を格納する第２の連続ビット符号データ用復号情報記憶部とを有し、
前記連続ビット数記憶部は、前記第１の連続ビット符号データ用復号情報記憶部が処理対象とする符号データについての前記第１の所定ビット数分に関する、前記符号の割当て方に応じて変更される情報を格納する第１のレジスタ部、および前記第２の連続ビット符号データ用復号情報記憶部が処理対象とする符号データについての前記第２の所定ビット数分に関する、前記符号の割当て方に応じて変更される情報を格納する第２のレジスタ部を有し、
前記有効部分抽出処理部は、前記第１のレジスタ部が格納している前記第１の所定ビット数分に関する情報に基づいて第１の前記有効部分の符号データを抽出して、この第１の有効部分の符号データを前記第１の連続ビット符号データ用復号情報記憶部に入力するとともに、前記第２のレジスタ部が格納している前記第２の所定ビット数分に関する情報に基づいて第２の前記有効部分の符号データを抽出して、この第２の有効部分の符号データを前記第２の連続ビット符号データ用復号情報記憶部に入力し、
前記判定部は、前記復号装置に順次入力される符号データと前記第１および前記第２の各レジスタ部が格納している前記各所定ビット数分に関する情報とに基づいて、前記短ビット符号データ用復号情報記憶部および前記第１および前記第２の各連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れを選択すべきかを判定する
ことを特徴とする請求項３から５のうちの何れか１項に記載の復号装置。
【請求項８】
前記連続ビット数記憶部は、前記連続ビット符号データ用復号情報記憶部が処理対象とする符号データについての前記所定ビット数分に関する、前記符号の割当て方に応じて変更される情報を格納するレジスタ部を有し、
前記有効部分抽出処理部は、前記レジスタ部が格納している前記所定ビット数分に関する情報に基づいて前記有効部分の符号データを抽出して、この有効部分の符号データを前記連続ビット符号データ用復号情報記憶部に入力し、
前記判定部は、前記復号装置に順次入力される符号データと前記レジスタ部が格納している前記所定ビット数分に関する情報とに基づいて、前記短ビット符号データ用復号情報記憶部および前記連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れを選択すべきかを判定する
ことを特徴とする請求項３から５のうちの何れか１項に記載の復号装置。
【請求項９】
前記連続ビット符号データ用復号情報記憶部は、処理対象とする符号データについての前記所定ビット数分に関する、前記符号の割当て方が変更されても不変な予め定められている情報に基づいて前記有効部分の符号データを取り込み
前記判定部は、前記復号装置に順次入力される符号データと前記符号の割当て方が変更されても不変な予め定められている情報とに基づいて、前記短ビット符号データ用復号情報記憶部および前記連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れを選択すべきかを判定する
ことを特徴とする請求項３から５のうちの何れか１項に記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号データの復号装置に関する。より詳細には、たとえばハフマン符号などの可変長符号を書換可能な記憶媒体に記憶したテーブル情報を参照して復号する技術に関する。
【背景技術】
【０００２】
データの伝送時の高速化、データの蓄積時の効率化のために、データ圧縮伸張、データ符号化復号化の技術が広く用いられている。このようなデータ圧縮伸張、データ符号化復号化の技術には様々な手法があるが、ハフマン符号などの可変長符号化方式が一般的に用いられている。たとえば、画像符号化方式としてよく知られているＪＰＥＧ（Joint Photographic Experts Group）方式は、ハフマン符号化とＤＣＴ（離散コサイン変換）と量子化を組み合わせた方式である。
【０００３】
可変長符号化方式では、符号化するときには、元の情報に対して可変長のビット列を符号として割り当て、この可変長のビット列を隙間なくパッキングすることによって符号データを作成する。たとえばａという情報に１０、ｂという情報に１１０、ｃという情報に１１１０というように符号のビット列を割り当てた場合は、元の情報ａｂａｃに対する符号データは１０１１０１０１１１０となる。このようにして得られた符号データから元の情報を復元（復号）するためには、符号データから個々の符号の切れ目を判定し、それぞれの符号から対応する元の情報を得なければならない。
【０００４】
このような可変長符号を復号するための従来例としては、可変長符号を符号長の長短によらず１クロックサイクルで復号する方式が知られている。具体的には、可変長符号データの復号テーブルをメモリ素子で構成しておき、この復号テーブルを参照して入力データに対応した復号データを読み出す、いわゆるテーブルルックアップ方式が知られている。たとえば特許文献１や特許文献２などに開示されている復号システムがある。
【０００５】
【特許文献１】特開平５−６３５８６号公報
【特許文献２】特開平８−１６７８５５号公報
【０００６】
また、復号システムに用いる復号装置の実装方法として、特許文献１や特許文献２などの他に、特許文献３〜５に開示されているものがある。
【０００７】
【特許文献３】特開平４−１３３５２２号公報
【特許文献４】特開平４−９０２６７号公報
【特許文献５】特開平８−３１６８４７号公報
【０００８】
たとえば、特許文献２の図３には、復号装置をＲＯＭやＲＡＭの１面の復号テーブルで実装する場合の例が開示されている。以下、この例を従来例１という。
【０００９】
また、特許文献２の図４や図５には、組合せ論理回路で復号装置を実装する場合の例が開示されている。以下、この例を従来例２という。
【００１０】
また、特許文献３の第２図や特許文献４の第１図では、復号装置を複数の小規模なＲＯＭで実装する場合の例が開示されている。以下、この例を従来例３という。
【００１１】
さらに、特許文献５の図１では、符号の割当てが固定の場合に、３つの復号テーブルで実装する場合の例が開示されている。以下、この例を従来例４という。
【００１２】
また、特許文献５の図１１では、符号の割当てが任意の場合に、９個の復号テーブルで実装する場合の例が開示されている。以下、この例を従来例５という。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来例１〜５に記載の技術では、符号の割当て方の変更に対する対応の面と、メモリ容量やメモリの利用効率の面（結果としての回路規模の面）で、必ずしもバランスのよい状態となっていない。
【００１４】
たとえば、従来例１のように、復号装置を１個のＲＯＭまたはＲＡＭの復号テーブルで構成すると、符号ビット列の最長ビット数分のアドレス入力が必要になり、巨大なＲＯＭまたはＲＡＭが必要になる。たとえば、ＪＰＥＧでよく用いられる符号割当ての可変長符号（後述する図５や図６を参照）を復号するためには、ＲＯＭまたはＲＡＭのアドレス入力は１６ビット必要になり、ＲＯＭまたはＲＡＭの容量は６５５３６ワードになる。
【００１５】
つまり、ＲＡＭを利用すれば、符号の割当て方の変更に対応できるが、メモリ容量が多くなる。一方、ＲＯＭを利用すれば、符号の割当て方の変更に対応できないし、メモリ容量も多くなる。任意に符号の割当て方が切り替えられると、ＲＯＭがそれに対応していなければ、その変更に対応できないからである。種々の割当て方に対応するには、相応の数（バリエーション）のＲＯＭを必要とするから、メモリ容量を一層多く必要とする。
【００１６】
また、従来例１では、００などの短い符号を復号するときに、後続のビット列が何であるかに拘わらず一定の復号結果が得られなければならないので、アドレス“００  ００…００”から“００  １１…１１”までに、完全に同一の情報を格納しておかなければならなくなり、メモリエリアの殆どの部分が、同じような情報を格納することに費やされてしまい、メモリの利用効率が悪い。
【００１７】
つまり、最長符号長に満たない可変長符号については、上位の可変長符号に相当する部分を除く無効な部分の全符号パターンについて重複して同一のデータを記憶しなければならず、その分メモリ空間が無駄に使用される。このことは、ＲＯＭを使用する場合に限らず、符号の割当て方の変更に対応するべくＲＡＭを利用した場合でも同様である。
【００１８】
また、従来例２のように、ＲＯＭやＲＡＭと同等の入出力関係を持った組合せ論理回路で復号装置を実装すると、回路規模を小さくすることができるが、符号の割当て方が変更になったときに対応するのが困難になる。たとえばＪＰＥＧの規格書では、符号の割当て方の一例（後述する図５を参照）は示されているが、必ずしもこれに従わなくてもよくて、符号データを作成するときに符号の割り当てを自由に決定してもよい。
【００１９】
組合せ論理回路の復号装置をＡＳＩＣ（Application Specific IC ：特定用途向け集積回路）やＦＰＧＡ（Filed Programmable Gate Alley ：フィールドプログラマブルゲートアレイ）に実装すると、符号割当てが異なる符号データに対応するには、ＡＳＩＣの作り直しやＦＰＧＡの回路データの書換えなどが必要になり、実質的に対応不可能である。
【００２０】
また、従来例３では、符号データの上位側を入力する１個のＲＯＭと、符号データの下位側を入力する複数のＲＯＭで復号装置を実装しており、基本的にＲＯＭを利用する構成であるから、従来例２と同様に符号の割り当てが変更になったときに柔軟に対応できないという欠点がある。また、この構成でＲＯＭをＲＡＭに置き換えることで、符号割当ての変更に柔軟に対応できると考えられるが、実際には、下位側の複数のＲＡＭがいくつ必要かは、符号の割当て方によって決まるので、ＲＡＭの個数を決めて実装すると対応できないケースが発生してしまう。
【００２１】
また、従来例４と従来例５では、各符号長の符号群ごと（符号のビット長ごと）に、全符号ビットから共通ビット部分を除いた復号関与ビット部分に対応づけて各々の可変長符号に対応する固定長データを保持する複数の復号テーブルを設けているので、復号テーブルの個数が多くなってしまう。
【００２２】
また、従来例４では、３つの復号テーブルに入力ビットを分割して入力しているが、この分割方法が回路実装で固定化してしまうので、符号の割当て方が変更になると対応できない場合がある。
【００２３】
また、従来例５では、ビット長が長い符号用の復号テーブルでは、符号の先頭の決まったビット数を無視するようになっているので、符号の割当て方が変更になると対応できない場合がある。
【００２４】
また、従来例４と従来例５では、複数の復号テーブルの出力の中から１つを選択するための選択回路において、符号長を元に判定しているので、回路構成が複雑になり、また、テーブルから符号長が出力されないと判定できないことが回路の動作速度を低下させる要因となる。
【００２５】
本発明は、上記事情に鑑みてなされたものであり、回路を小規模に抑えながら、符号の割当て方の変更に柔軟に対応することのできる復号装置を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明に係る符号データを復号する復号装置は、先ず、順次入力される符号データのうち、それぞれ所定ビット数よりも短い複数の符号長の符号データを復号するための情報を格納する書換可能な記憶デバイスを有した短ビット符号データ用復号情報記憶部と、順次入力される符号データのうち、符号データ中に共通して同一ビットデータが所定ビット数分連続したものを処理対象として復号するための情報を格納する書換可能な記憶デバイスを有した連続ビット符号データ用復号情報記憶部と、連続ビット符号データ用復号情報記憶部が処理対象とする符号データについての前記所定ビット数分に関する情報を格納する書換可能な記憶デバイスを有した連続ビット数記憶部と、順次入力される符号データの符号の割当て方に応じて各記憶部に格納する情報を書き換えさせる記憶情報更新部とを備えるものとした。
【００２７】
さらに、本発明に係る復号装置は、短ビット符号データ用復号情報記憶部および連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れを選択すべきかを判定する判定部と、判定部の判定結果に基づいて短ビット符号データ用復号情報記憶部および連続ビット符号データ用復号情報記憶部から出力される各復号結果の何れかを選択して出力する選択出力部とを備えるものとした。
【００２８】
また従属項に記載された発明は、本発明に係る復号装置のさらなる有利な具体例を規定する。
【００２９】
たとえば連続ビット符号データ用復号情報記憶部としては、それぞれ異なる所定ビット数分に対応した複数種類の連続ビット符号データ用復号情報記憶部を備えた構成とすることができる。この場合、各連続ビット符号データ用復号情報記憶部が処理対象とする符号データの有効部分は、一方については符号の割当て方が変更されても不変なものとし、他方は符号の割当て方に応じて可変なものとする構成を採ることもできるし、何れも符号の割当て方に応じて可変なものとする構成を採ることもできる。
【００３０】
また、連続ビット符号データ用復号情報記憶部としては、１つの連続ビット符号データ用復号情報記憶部を備えた構成とすることもできる。この場合、連続ビット符号データ用復号情報記憶部が処理対象とする符号データの有効部分は、符号の割当て方が変更されても不変なものとする構成を採ることもできるし、符号の割当て方に応じて可変なものとする構成を採ることもできる。
【００３１】
連続ビット符号データ用復号情報記憶部として符号の割当て方に応じて可変とする構成を採る場合には、有効部分抽出処理部としては、装置に順次入力される符号データを所定ビット数分（特に、連続ビット符号データ用復号情報記憶部が処理対象とする全ての符号データに共通して符号の先頭側に現れる連続した同一ビットの個数分）だけ入力される符号データをシフトさせることで有効部分の符号データを抽出するシフト処理部を有していることが望ましい。
【発明の効果】
【００３２】
本発明の復号装置に依れば、復号処理のためのテーブル情報をＲＡＭなどの書換可能な記憶デバイスで実装することとしたので、符号の割り当てが変更になった場合に、回路構成を変更しなくてもテーブル情報を書き換えることによって対応可能となる。
【００３３】
加えて、復号処理のためのテーブル情報を格納する各記憶部としては、符号の割当て方に応じて、所定ビット数よりも短い複数の符号長の符号データを復号するための情報を格納する部分と、これ以外であって符号データ中に共通して同一ビットデータが所定ビット数分連続したものを処理対象とする部分とに分けて取り扱うことで、復号処理に際して、前者の記憶部には符号データの上位ビット側を担当させ、後者の記憶部には符号データの下位ビットや中間ビットを担当させるようにした。判定回路と選択出力部とにより、各記憶部を参照した復号結果の中から、符号長に応じた適切な方を選択して出力する。
【００３４】
これにより、各復号テーブルに、重複して各可変長符号に対応する復号情報を保持しておく必要がなくなり、復号テーブル全体としての容量を削減することができる。また、その分メモリ空間が無駄に使用されることを防止でき、メモリの利用効率が良くなるとともに小規模な複数のルックアップテーブルで構成することによって、回路規模を小さく抑えることができるようになる。
【００３５】
このように本発明の復号装置に依れば、復号テーブルの回路を小規模に抑えながら、符号ビット列の割当て方が変更になっても柔軟に対応することができる。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００３７】
＜システム構成＞
図１は、本発明に係る復号化装置を適用した復号システムの概要を示したブロック図である。この復号システム１は、符号入力部１０と、符号切出部２０と、復号処理部３０と、符号位置管理部４０と、復号結果出力部５０とを備えて構成されている。
【００３８】
符号入力部１０は図示しない記憶手段を備えており、入力された符号データＤ１中の処理途中の複数ビット（そのデータをＤ２とする）を保持する。この際、符号入力部１０は、後述する符号位置管理部４０から入力されるタイミング情報Ｊ３に基づいて、順次、次の符号データＤ１を取り込む。
【００３９】
符号切出部２０は、符号入力部１０が保持する符号データＤ２の中から、復号処理が終わっていない部分（そのデータをＤ３とする）を切り出し復号処理部３０に入力する。
【００４０】
復号処理部３０は、符号切出部２０にて切り出された符号データＤ３に基づいて復号処理をし、その復号結果情報Ｊ１を復号結果出力部５０に入力するとともに、復号した符号の符号長情報Ｊ２を符号位置管理部４０に入力する。
【００４１】
符号位置管理部４０は、復号処理部３０から入力された符号長情報Ｊ２を累積加算し、符号入力部１０に次の符号データＤ１を取り込むためのタイミングを決定し、そのタイミング情報Ｊ３を符号入力部１０に入力するとともに、次の符号データの切出位置を決め、その切出位置情報Ｊ４を符号切出部２０にフィードバック入力する。
一方、復号結果出力部５０は、符号位置管理部４０から入力された復号結果情報Ｊ１に、必要に応じて所定の処理を施して、復号結果情報Ｊ５として（不要であればＪ１そのままでよい）、後段の回路に出力する。
【００４２】
復号システム１は、システム全体をクロック信号に同期させて動作させることで、１クロックサイクルに１個の符号を復号することができる。このように、符号切出部２０と復号処理部３０を持ち、復号済みの符号長情報を累積加算することによって、１クロックサイクルに１符号を復号する。
【００４３】
＜第１実施形態；第１のＬＵＴ（１個）＋第２／第３のＬＵＴ（複数；１個はシフト量固定と同じ意義→第２のＬＵＴ）＞
図２は、本発明に係る復号装置の一例である復号処理部３０の第１実施形態を示す回路ブロック図である。この第１実施形態は、符号データＤ３の最大長が予め定められている（すなわち最大長が固定である）場合に好適な構成例である。
【００４４】
図示するように、第１実施形態の復号処理部３０は、ＲＡＭなどの書換可能な記憶手段を有してなるメモリ部３００と、符号割当の変更に対応して符号データＤ３の内の有効部分幅を適宜調整するための有効部分抽出処理部の一例であるシフト量調整処理部３２０と、メモリ部３００から出力される複数系統の復号結果の何れを選択すべきかを判定する判定部３４０と、判定部３４０の判定結果に基づいてメモリ部３００から出力される１つの系統の復号結果を選択して出力する選択出力部３６０と、符号の割当て方に応じてメモリ部３００へ格納する情報を書き換えさせる記憶情報更新部３８０とを備える。
【００４５】
メモリ部３００は、符号切出部２０にて切り出された符号データＤ３について、ある所定のビット数（ｍ１）よりも短い符号データを復号するため符号データＤ３１として取り込み復号結果情報Ｊ１１および符号長情報Ｊ２１を出力する第１のルックアップテーブル（以下ＬＵＴと記す）３０２と、符号データＤ３の先頭（上位ビット側）に同一ビットが所定の数以上連続して現れる符号データを復号し、復号結果情報Ｊ１２および符号長情報Ｊ２２を出力する第２のＬＵＴ３０４と、第１のＬＵＴ３０２と第２のＬＵＴ３０４の条件に合致しない残りの符号を復号し、復号結果情報Ｊ１３および符号長情報Ｊ２３を出力する第３のＬＵＴ３０６と、第３のＬＵＴ３０６に対応したシフト量調整処理部３２０とを備えている。
【００４６】
第１のＬＵＴ３０２は、短ビット符号データ用復号情報記憶部の一例である。第２のＬＵＴ３０４は、第１の連続ビット符号データ用復号情報記憶部の一例である。第３のＬＵＴ３０６は、第２の連続ビット符号データ用復号情報記憶部の一例である。
【００４７】
第１のＬＵＴ３０２には、復号システム１に順次入力される符号データのうち、所定ビット数ｍ１よりも短い複数の符号長の符号データを復号するための情報を格納する。よって、たとえばｍ１＝８とすれば、第１のＬＵＴ３０２には、符号長が８ビット以下の全ての符号データを復号するための復号情報が記憶される。
【００４８】
シフト量調整処理部３２０は、第３のＬＵＴ３０６で復号する符号において全ての符号に共通して符号の先頭に現れる連続した同一ビットデータの個数分だけ入力符号データＤ３をシフトするためのシフト回路３２６を有している。これに対応するように、メモリ部３００は、シフト回路３２６のシフト数を設定するためのシフト数レジスタ部３１６を有する。
【００４９】
シフト数レジスタ部３１６は、符号データＤ３の符号化系列情報に基づいて、入力される符号データＤ３に対するシフト量を決定し、このシフト量を表すシフト量情報Ｓ１３ａをシフト回路３２６に入力するとともに、同様のシフト量情報Ｓ１３ｂを判定部３４０に入力する。
【００５０】
シフト回路３２６は、シフト処理部の一例であって、符号切出部２０から入力される符号データＤ３について、シフト数レジスタ部３１６から入力されるシフト量情報Ｓ１３ａに基づいてシフト量を調整して、シフト量に応じた所定ビット数分だけ符号データＤ３を移動させることで先頭側の実質的に無効なデータを掃き捨て、残りの有効部分だけを抽出して符号データＤ３３として第３のＬＵＴ３０６に入力する。
【００５１】
ここで、第２のＬＵＴ３０４と第３のＬＵＴ３０６は、何れも、符号データの上位側にデータ“１”が連続して所定数以上連続する符号を復号処理の対象とするもので、本質的には同種の処理を行なうものである。ただし、この第１実施形態では、符号データＤ３の最大長が固定である場合に対応するものであり、２つのＬＵＴの内の一方は、符号データＤ３の先頭（上位ビット側）に連続して現れる同一ビットの“所定の数”を固定とすることが可能となる。
【００５２】
よって、これに対応した第２のＬＵＴ３０４は、符号データＤ３の先頭（上位ビット側）に連続して“１”がｍ２個以上（ｍ２は第３のＬＵＴ３０６用のｍ３よりも大きい）現れる符号を復号するための情報を記憶しておき、また、実質的にシフト量が固定でよくなるので、第３のＬＵＴ３０６に対応したシフト量調整処理部３２０を備えることなく、固定的に上位ビット側を削除して符号データＤ３２として取り込むことで対応する。
【００５３】
各ＬＵＴ３０２，３０４，３０６には、それぞれ入力された符号データＤ３１，Ｄ３２，Ｄ３３、すなわちそれぞれが復号処理を担当する符号データＤ３に対応する復号情報（復号結果情報と符号長情報）を記憶させおく。こうすることで、それぞれに入力される符号データＤ３から各ＬＵＴが復号を担当する符号長に対応した有効部分を抽出し、この有効部分をアドレスとして各ＬＵＴを参照することで、対応する復号結果情報と符号長情報とを読み出すことができる。
【００５４】
なお、第１実施形態の構成では、第３のＬＵＴ３０６についてのみシフト量調整処理部３２０にてシフト量を調整可能に構成しているが、これは、第１のＬＵＴ３０２は常に上位側ｍ１ビットを固定的に取り込み、第２のＬＵＴ３０４についてはシフト量をｍ２に固定してよいからである。これに対応して、メモリ部３００には、第１のＬＵＴ３０２に対応したｍ１の情報を設定する有効上位ビット数レジスタ部３１２と、第２のＬＵＴ３０４に対応したｍ２の情報を設定するシフト数レジスタ部３１４とを有している。
【００５５】
有効上位ビット数レジスタ部３１２は、第１のＬＵＴ３０２に対応したｍ１を表す有効上位ビット情報Ｓ１１ｂを判定部３４０に入力する。また、シフト数レジスタ部３１４は、第２のＬＵＴ３０２に対応したｍ２を表すシフト量情報Ｓ１２ｂを判定部３４０に入力する。
【００５６】
判定部３４０は、入力符号データの先頭に現れる連続した同一ビットの個数、すなわち先頭側に連続して同一ビットが現れる場合のランレングスを判断することで、３つのＬＵＴ３０２，３０４，３０６の何れの出力を選択すべきかを判定する。具体的には、符号切出部２０にて切り出された符号データＤ３の先頭に現れる連続した同一ビットの個数を判断するとともに、有効上位ビット数レジスタ部３１２から入力される有効上位ビット情報Ｓ１１ｂと、シフト数レジスタ部３１４から入力されるシフト量情報Ｓ１２ｂと、シフト数レジスタ部３１６から入力されるシフト量情報Ｓ１３ｂを参照して、３つのＬＵＴ３０２，３０４，３０６の何れの出力を選択すべきかを判定し、その判定結果を示す判定情報Ｓ２１を選択出力部３６０に入力する。
【００５７】
なお、先にも述べたように、第１実施形態の構成では、第３のＬＵＴ３０６についてのみシフト量調整処理部３２０にてシフト量を調整可能に構成しているので、判定部３４０は、符号の割当て方の変更に対応するためにＳ１１ｂ，Ｓ１２ｂ，Ｓ１３ｂのうち少なくともシフト量情報Ｓ１３ｂを参照する必要があるが、残りのＳ１１ｂ，Ｓ１２ｂに関しては、その情報を予め判定部３４０に設定しておく（固定的に取り扱う）ことでも対応することができる。
【００５８】
選択出力部３６０は、判定部３４０から入力される判定情報Ｓ２１に基づいて、３つのＬＵＴ３０２，３０４，３０６から出力される復号結果情報Ｊ１１，Ｊ１２，Ｊ１３の何れか１つと、対応する符号長情報Ｊ２１，Ｊ２２，Ｊ２３の何れか１つを、それぞれ選択して出力する。
【００５９】
記憶情報更新部３８０は、たとえば復号システム１に入力される符号データＤ１に含まれている符号の割当て方を示す情報に基づいて、メモリ部３００の各ＬＵＴ３０２，３０４，３０６、さらには有効上位ビット数レジスタ部３１２、シフト数レジスタ部３１４、シフト数レジスタ部３１６へ格納する情報を書き換えさせる。符号データＤ１に符号の割当て方を示す情報が直接には含まれておらず、符号データＤ１には対応コードが記述され、この対応コードを参照して他の手段から符号の割当て方を示す情報を取得するような構成であってもよい。また、符号データＤ１とは別に符号の割当て方を示す情報を取得する構成であってもよい。
【００６０】
このような構成により、第１実施形態の復号処理部３０では、可変長符号の符号の割当て方に応じて、３つのＬＵＴの内容と、第３のＬＵＴ３０６の入力のシフト数を予め設定しておき、符号データＤ３の上位ビットを第１のＬＵＴ３０２に、下位ビットを第２のＬＵＴ３０４に、中間ビットを第３のＬＵＴ３０６にそれぞれ入力することで、各ＬＵＴから出力される復号結果Ｊ１１，Ｊ１２，Ｊ１３の中から何れか１つを選択して出力することによって、可変長符号の符号の割当て方が変更になっても復号が可能になる。以下、この点について、詳細に説明する。
【００６１】
図３および図４は、符号の割当て方の基本例を示した図表である。第１実施形態の復号処理部３０では、符号データＤ３の最大長が予め定められている（すなわち最大長が固定である）場合を想定してものであり、符号の割当て方が変わっても、符号データの最大長はＭビットと制限されているものとする。また、符号の中には、ビット数の短い第１種の符号（ここでは符号長ｍ１；ｍ１＜Ｍとする）と、それ以上で最大長Ｍまでの符号（符号長がｍ１＋１〜Ｍ）に大別することができる。また、符号長がｍ１＋１〜Ｍの符号はさらに、符号の先頭（上位ビット側）の少なくともｍ２ビットが全て（すなわちｍ２個分以上が連続して）“１”となる第２種の符号と、それ以外の第３種の符号とに分けることができる。
【００６２】
第１のＬＵＴ３０２用のＲＡＭ１は、符号長がｍ１ビット以下の第１種の符号を復号するために使用する。第２のＬＵＴ３０４用のＲＡＭ２は、符号長がｍ１＋１〜Ｍビットであって第２種の符号を復号するために使用する。第３のＬＵＴ３０６用のＲＡＭ３は、符号長がｍ１＋１〜Ｍビットであって第３種の符号を復号するために使用する。第２のＬＵＴ３０４用のＲＡＭ２は第２種の符号を復号するために使用するので、対応するべきビット幅はＭ−ｍ２でよい。
【００６３】
一方、第３のＬＵＴ３０６用のＲＡＭ３は、第３種の符号を復号するために使用するので、対応するべきビット幅は、最大でＭ（Ｍビットの符号であって符号の先頭にｍ２ビット分“１”となるものがない）で、最小は１となる。よって、全ての符号の割当て方に対応しようとすれば、第３のＬＵＴ３０６用のＲＡＭ３が対応するべきビット幅は、Ｍビットになる。
【００６４】
ただし、符号化方式にも依るが、たとえば、出現頻度の低い情報の多数にはＭビットの符号が割り当てられ、かつ符号長が長くなるに従って先頭側で連続する“１”の個数も多くなり、さらにｍ１＋１ビット〜Ｍビットの符号の中には、符号の先頭（上位ビット側）の少なくともｍ３ビットが全て（すなわちｍ３個分以上ｍ２個未満が連続して）“１”となる符号とすることができる。このような符号化方式の場合、第３のＬＵＴ３０６用のＲＡＭ３が対応するべきビット幅は、Ｍビットよりも少なくＭ−ｍ３〜Ｍビットで済むようになり、場合によっては、Ｍ−ｍ２程度でもよくなる。
【００６５】
そこで、本実施形態では、第３のＬＵＴ３０６用のＲＡＭ３が対応するべきビット幅としてＭ−ｍ２を設定し、第３のＬＵＴ３０６用のＲＡＭ３には、ビット長がｍ１＋１〜Ｍでかつ第２種を除く符号の内、符号の先頭ｍ３ビット分が連続する符号を復号するための情報を設定する。そして、これに対応して、ｍ３ビット分のシフト量の調整をシフト数レジスタ部３１６が行ない、第３のＬＵＴ３０６には上位ｍ３ビット分を除く下位側（１〜Ｍ−ｍ３ビット分）だけが入力されるようにする。第３のＬＵＴ３０６は、ｍ１＋１〜Ｍビットの符号のうち、先頭側のｍ３ビット分が連続する符号については確実に復号できるが、符号の先頭ｍ３ビット分が連続しない符号については復号できない。
【００６６】
よって、符号を割り当てる際には、ｍ１＋１〜Ｍビットの符号については、先頭ｍ３ビット分が連続しない符号を割り当てないようにすることが必須となる。こうすることで、符号の割当て方が変わった場合でも、前述の条件を満足する限り、必ず全ての符号を復号することができるようになる。
【００６７】
たとえば、図３および図４に示すように、符号長（符号データのビット長）がｍ１ビットまでの第１種の符号は、それらが全て第１のＬＵＴ３０２に入力され、第１のＬＵＴ３０２による復号処理の対象となる。また、符号長がｍ１＋１〜Ｍビットの符号の内、上位側にデータ“１”が連続してｍ２個以上連続する第２種の符号は、上位ｍ２ビット分が削除された下位ビットだけが（実質的にｍ２ビット分のシフトに相当）第２のＬＵＴ３０４に入力され、第２のＬＵＴ３０４による復号処理の対象となる。
【００６８】
また、符号長がｍ１＋１〜Ｍの符号の内の第２種の符号を除く第３種の符号は、上位ｍ３ａビット分（図３の符号割当の場合）あるいは上位ｍ３ｂビット分（図４の符号割当の場合）がそれぞれシフト回路３２６によって削除された下位ビットだけが第３のＬＵＴ３０４に入力され、第３のＬＵＴ３０６による復号処理の対象となる。
【００６９】
このような回路構成を採ることによって、符号の割当て方が変わっても、ＬＵＴの内容とシフト数レジスタ部３１６の設定を変更することによって、様々な符号長や符号割り当ての可変長符号を復号することができる。たとえばｍ１，ｍ２，ｍ３ａ，Ｍもしくはｍ１，ｍ２，ｍ３ｂ，Ｍの関係が維持できる限り、シフト数レジスタ部３１６によるシフト量の設定を同じにしておいても対応できる。
【００７０】
また、ｍ３がｍ３ａからｍ３ｂというように変更される場合には、各ＬＵＴ３０２，３０４，３０６に記憶すべき情報とシフト数レジスタ部３１６に対するレジスタ値をｍ３ａからｍ３ｂに書き換えさえすれば、シフト回路３２６は、シフト数レジスタ部３１６からのシフト量情報Ｓ１３ａに基づいてシフト量調整ができるので、同一の回路構成にて（すなわち回路変更をすることなく）、符号割当ての変更に対応することができる。
【００７１】
次に、符号化データとして、ＪＰＥＧ用のハフマン符号を復号する場合を例にとって、具体的に説明する。
【００７２】
図５および図６は、ＪＰＥＧ規格に基づくハフマン符号の割当表の一例である。ここで、図５に示す第１例の割当表は、ＪＰＥＧの規格書に一例として記載されているＡＣ成分用のハフマン符号の割当表である。ＪＰＥＧでは、符号を割り当てるべき情報の種類は“１６２”であり、符号データのビット長の最大値Ｍ（符号データの最大長）は“１６”と制限されている。このため、図５のように出現頻度の高い情報には短い符号が割り当てられて、出現頻度の低い情報の多数には１６ビットの符号が割り当てられる傾向にある。
【００７３】
また、符号長が長い符号では、符号の上位側からの先頭部分は“１”が多数連続して現れており、符号長が長くなるに従って連続する“１”の個数も多くなる傾向にある。画像の性質によって符号の割当て方を変更することは許されているが、上記の制限があるので、割当て方を変えてもこの傾向は変わらない。
【００７４】
そこで、図２に示した第１実施形態の復号処理部３０においては、入力される符号データＤ３の符号ビット列は、符号長の最大値である１６ビットとしている。この入力符号ビット列は、図１に示した復号システム１の符号切出部２０で、１６ビットずつ切り出して符号データＤ３として復号処理部３０に入力することによって得られる。これに対応して、図２に示したように、ＬＵＴ３０２，３０４，３０６の３つのルックアップテーブルを設け、それぞれは８ビット入力のＲＡＭで実装する。
【００７５】
たとえば、第１のＬＵＴ３０２は、１６ビットの符号データＤ３の内の上位ｍ１（＝８）ビットを取り込むので、第１のＬＵＴ３０２用のＲＡＭ１には、８ビット以下の符号長の符号を復号するための情報を設定する。具体的には、図５に示した範囲１の符号の復号情報をＲＡＭ１に設定する。
【００７６】
また、第２のＬＵＴ３０４は、最大長Ｍ（＝１６）ビットの符号データＤ３の内の上位ｍ２（＝８）ビットを除く下位（＝８）ビットを取り込むので、第２のＬＵＴ３０４用のＲＡＭ２には、符号の先頭（上位ビット側）の８ビットが全て“１”である符号を復号するための情報を設定する。具体的には、図５に示した範囲２の符号の復号情報をＲＡＭ２に設定する。
【００７７】
また、第３のＬＵＴ３０６は、第１のＬＵＴ３０２と第２のＬＵＴ３０４で復号できない符号（中間ビットデータという）Ｄ３３を取り込むので、第３のＬＵＴ３０６用のＲＡＭ３には、第１のＬＵＴ３０２と第２のＬＵＴ３０４で復号できない符号を復号するための情報を設定する。具体的には、図５に示した範囲３の符号の復号情報をＲＡＭ３に設定する。
【００７８】
ここで、範囲３の符号は、符号の先頭のｍ３ａ（＝５）ビットが全て“１”なので、シフト数レジスタには“５”を設定し、ＲＡＭ３に入力する中間ビットデータは、符号ビット列の先頭の５ビットを削除した６ビット目以降の８ビットとする。これに対応して、この５ビット分のシフト量の調整をシフト数レジスタ部３１６が行ない、第３のＬＵＴ３０６には上位５ビット分を除く下位側だけが入力されるようにする。
【００７９】
ここで、“６ビット目以降の８ビット”としたのは、ＪＰＥＧフォーマットで許容されている符号割当方式に従う場合、第１のＬＵＴ３０２と第２のＬＵＴ３０４で復号できない符号である中間ビットとして８ビット程度を割り当てておけば、符号の割当て方が変わっても、概ね全ての割当て方に対応できると考えられるからである。
【００８０】
判定部３４０は、符号切出部２０にて切り出された符号データＤ３０について、符号ビット列の少なくとも先頭８（＝ｍ２）ビットが全て“１”ならばＲＡＭ２すなわち第２のＬＵＴ３０４の出力を選択するように選択出力部３６０を切り替えるための判定情報Ｓ２１を出力する。
【００８１】
また、判定部３４０は、シフト量情報Ｓ１３ｂに基づいて、前述の条件を満たさない場合において、少なくとも符号ビット列の先頭にシフト数レジスタ部３１６に設定された個数（＝ｍ３）だけ“１”が連続して現れていれば、ＲＡＭ３すなわち第３のＬＵＴ３０６の出力を選択するように選択出力部３６０を切り替えるための判定情報Ｓ２１を出力する。そして、最後に、判定部３４０は、前述の２つの条件を満たさない場合は、ＲＡＭ１すなわち第１のＬＵＴ３０２の出力を選択するように選択出力部３６０を切り替えるための判定情報Ｓ２１を出力する。
【００８２】
選択出力部３６０は、判定部３４０から入力される判定情報Ｓ２１に従って、第１、第２、および第３のＬＵＴ３０２，３０４，３０６であるＲＡＭ１，ＲＡＭ２，ＲＡＭ３の３つの出力の中から１つを選択して出力する。
【００８３】
選択出力部３６０は、復号結果の出力のうち、復号結果情報Ｊ１を図１に示した復号結果出力部５０を介して後段の回路に出力し、符号長情報Ｊ２を符号位置管理部４０へ入力する。
【００８４】
次に、符号の割当て方が、図５に示す第１例の割当表から図６に示す第２例の割当表に変更になった場合について説明する。図６に示す第２例の割当表も、図５に示す第１例の割当表と同様に、符号データの最大長Ｍが“１６”であることに従っており、出現頻度の高い情報には短い符号が割り当てられて、出現頻度の低い情報の多数には１６ビットの符号が割り当てられ、符号長が長い符号では、符号の上位側からの先頭部分は“１”が多数連続して現れ、符号長が長くなるに従って連続する“１”の個数も多くなる傾向にある。
【００８５】
ここで、図５に示す第１例の割当表と図６に示す第２例の割当表を比較すると分かるように、符号は先ず、ビット数がｍ１（＝８）よりも短い第１種の符号（何れも範囲１で示す）と、それ以上で最大長Ｍ（＝１６）までの符号（符号長が９〜１６ビット）であって、符号の先頭（上位ビット側）の少なくともｍ２（＝８）ビットが全て（すなわち８個以上が連続して）“１”となる第２種の符号（何れも範囲１で示す）とに分けられる。
【００８６】
また、９ビット〜１６ビットの残りの符号は、図５に示す第１例の割当表では、符号の先頭（上位ビット側）の少なくともｍ３ａ（＝５）ビットが全て（すなわち５個分以上８個未満が連続して）“１”となる（範囲３で示す）一方、図６に示す第２例の割当表では、符号の先頭（上位ビット側）の少なくともｍ３ｂ（＝３）ビットが全て（すなわち３個分以上８個未満が連続して）“１”となる（範囲３で示す）。
【００８７】
よって、図５に示す第１例の割当表から図６に示す第２例の割当表へと符号の割当て方が変更される場合には、各ＬＵＴ３０２，３０４，３０６に記憶すべき情報とシフト数レジスタ部３１６に対するレジスタ値（符号割当表から導かれるｍ３に対応したシフト量を示す）をｍ３ａからｍ３ｂに書き換え、シフト回路３２６は、シフト数レジスタ部３１６からのシフト量情報Ｓ１３ａに基づいてシフト量調整を行なう。これにより、回路を作り直さなくても、図２に示した同一の回路構成にて、図５に示す第１例の割当表から図６に示す第２例の割当表への符号割当ての変更に対応することができる。
【００８８】
また、ルックアップテーブルをＲＡＭなどの書換可能な記憶手段で実装することによって、符号割り当てが変更になった場合に回路構成を変更しなくてもテーブルを書き換えることによって対応可能であるとともに、復号テーブルを小規模な複数のルックアップテーブルで構成することができ、回路規模を小さく抑えることができる。
【００８９】
＜第２実施形態；第１のＬＵＴ（１個）＋第３のＬＵＴ（複数；何れもシフト量可変）＞
図７は、復号処理部３０の第２実施形態を示す回路ブロック図である。この第２実施形態は、符号データＤ３の最大長Ｍが固定でない場合に好適な構成例である。第１実施形態で述べたように、第２のＬＵＴと第３のＬＵＴは、何れも、符号データの上位側にデータ“１”が連続して所定数以上連続する符号を復号処理の対象とするもので、本質的には同種の処理を行なうが、符号データＤ３の最大長Ｍが固定である場合には、２つのＬＵＴの内の一方についてはシフト量を固定とすることができた。これに対して、符号データＤ３の最大長Ｍが固定でない場合には、双方ともにシフト量を固定とすることができないので、第２実施形態では、実質的に、第２のＬＵＴを取り外し、第３のＬＵＴとこれに対応したシフト回路とを２つ備えた構成となる。以下具体的に説明する。
【００９０】
図示するように、第２実施形態の復号処理部３０において、メモリ部３００は、符号切出部２０にて切り出された符号データＤ３について、ある所定のビット数（＝ｍ１）よりも短い符号を復号するため符号データＤ３１として取り込み復号結果情報Ｊ１１および符号長情報Ｊ２１を出力する第１のＬＵＴ３０２と、符号長がｍ１を超える符号について、符号データＤ３の先頭（上位ビット側）に同一ビットがｍ３Ａ以上連続して現れる符号を復号し、復号結果情報Ｊ１３Ａおよび符号長情報Ｊ２３Ａを出力する第３のＬＵＴ３０６Ａと、符号長がｍ１を超える符号について、符号データＤ３の先頭（上位ビット側）に同一ビットがｍ３Ｂ以上連続して現れる符号を復号し、復号結果情報Ｊ１３Ｂおよび符号長情報Ｊ２３Ｂを出力する第３のＬＵＴ３０６Ｂとを有する。
【００９１】
シフト量調整処理部３２０は、第３のＬＵＴ３０６Ａで復号する符号において全ての符号に共通して符号の先頭に現れる連続した同一ビットの個数（ｍ３Ａ）分だけ入力符号データをシフトするための第１のシフト回路３２６Ａと、第３のＬＵＴ３０６Ｂで復号する符号において全ての符号に共通して符号の先頭に現れる連続した同一ビットの個数（ｍ３Ｂ）分だけ入力符号データをシフトするための第２のシフト回路３２６Ｂとを有する。これに対応するように、メモリ部３００は、シフト回路３２６Ａのシフト数（＝ｍ３Ａ）を設定するためのシフト数レジスタ部３１６Ａと、シフト回路３２６Ｂのシフト数（＝ｍ３Ｂ，ｍ３Ａ＜ｍ３Ｂ）を設定するためのシフト数レジスタ部３１６Ａとを有する。
【００９２】
シフト数レジスタ部３１６Ａは、符号データＤ３の符号化系列情報に基づいて、第３のＬＵＴ３０６Ａについての入力される符号データＤ３に対するシフト量を決定し、このシフト量を表すシフト量情報Ｓ１３ａＡをシフト回路３２６Ａに入力するとともに、同様のシフト量情報Ｓ１３ｂＡを判定部３４０に入力する。シフト数レジスタ部３１６Ｂは、符号データＤ３の符号化系列情報に基づいて、第３のＬＵＴ３０６Ｂについての入力される符号データＤ３に対するシフト量を決定し、このシフト量を表すシフト量情報Ｓ１３ａＢをシフト回路３２６Ｂに入力するとともに、同様のシフト量情報Ｓ１３ｂＢを判定部３４０に入力する。
【００９３】
各ＬＵＴ３０２，３０６Ａ，３０６Ｂへの入力ビット幅などの回路構成は、第１実施形態と同様に、符号割当ての性質や回路実装の事情などを考慮して決定する。
【００９４】
この第２実施形態の構成に依れば、第１実施形態における第２のＬＵＴ３０４を第３のＬＵＴ３０６Ｂに置き換え、これに対応したシフト回路３２６Ｂを設けた構成となるので、各第３のＬＵＴ３０６Ａ，３０６Ｂに入力するビット列の位置を、シフト数レジスタ部３１６Ａ，３１６Ｂによるレジスタ設定と、それに対応したシフト回路３２６Ａ，３２６Ｂによって変更することができる。つまり、それぞれのＬＵＴに入力するビット列の位置をレジスタ設定とシフト回路によって変更することができる。これにより、符号割当てが変更になる場合に加えて、最大符号長が変更されるような（たとえば１６ビットよりも短くなる）別の種類の可変長符号化方式にも対応できるようになる。以下、この点について、説明する。
【００９５】
図８および図９は、第２実施形態の効果を説明する符号の割当て方の基本例を示した図表である。図８に示す第１例の割当表は、図３に示した第１例の割当表と同じである。一方、図９に示す第２例の割当表では、符号長の最大長がＭＡ＝１６ビットからＭＢ＝１５ビットに変更されている。つまり、符号の割当て方が変わった際に、ｍ１の関係を維持できるが、Ｍを維持できない。
【００９６】
そこで、この場合、ｍ３Ａ，ｍ３ＢをＭに連動して切り替えるようにすることで、シフト数レジスタ部３１６Ａ，３１６Ｂによるレジスタ設定と、それに対応したシフト回路３２６Ａ，３２６Ｂによって変更し、第３のＬＵＴ３０６Ａ，３０６Ｂに入力するビット列の位置を切り替える。
【００９７】
こうすることで、最大長がＭＡからＭＢというように変更される場合であっても、各ＬＵＴ３０２，３０４，３０６に記憶すべき情報とシフト数レジスタ部３１６Ａ，３１６Ｂに対するレジスタ値ｍ３Ａ，ｍ３ＢをＭＡやＭＢに連動して書き換えさえすれば、シフト回路３２６Ａ，３２６Ｂは、シフト数レジスタ部３１６Ａ，３１６Ｂからのシフト量情報Ｓ１３ａＡ，Ｓ１３ａＢに基づいてシフト量調整ができる。
【００９８】
これにより、回路変更をすることなく、最大符号長が短いような別の種類の可変長符号化方式への変更にも対応することができる。また、これとは逆に、符号長が長くなって、たとえば“１７”とか“１８”の場合であっても、シフト量調整によって、符号長変更に対して、ある程度順応することもできる。
【００９９】
＜第３実施形態；第１のＬＵＴ（１個）＋第３のＬＵＴ（１個）＞
図１０は、復号処理部３０の第３実施形態を示す回路ブロック図である。この第３実施形態は、符号データＤ３の最大長Ｍが固定でない場合に好適な第２実施形態の構成に対する変形例であり、第３のＬＵＴを１系統のみ備えている点に特徴を有する。実質的には、図示するように、第１実施形態の復号処理部３０から第２のＬＵＴ３０４を取り除いた構成となる。
【０１００】
このような第３実施形態の構成に依れば、第１や第２実施形態の構成に比べて、符号割当方の変更に対する柔軟性が低下するものの、最大符号長が事前に予想できないような場合であってもある程度は対応可能である。たとえば、変更前のＭの値が大きくなる、すなわち最大符号長が長くなるような変更に対応可能である。
【０１０１】
＜第４実施形態；第１のＬＵＴ（１個）＋第２のＬＵＴ（１個）＞
図１１は、復号処理部３０の第４実施形態を示す回路ブロック図である。この第４実施形態は、図示するように、第１実施形態の復号処理部３０から第３のＬＵＴ３０６と、シフト量調整処理部３２０とを取り除いた点に特徴を有する。このような第４実施形態においては、先ず、第１のＬＵＴ３０２では、あるビット長ｍ１以下の符号を復号し、第２のＬＵＴ３０４では、先頭のあるビット長ｍ２が同じ値の符号を復号する。
【０１０２】
判定部３４０は、符号切出部２０にて切り出された符号データＤ３に基づいて、２つのＬＵＴ３０２，３０４の何れの出力を選択すべきかを判定し、その判定結果を示す判定情報Ｓ２１を選択出力部３６０に入力する。具体的には、判定部３４０は、符号切出部２０にて切り出された符号データＤ３０について、符号ビット列の先頭ｍ２ビットが全て“１”ならばＲＡＭ２すなわち第２のＬＵＴ３０４の出力を選択するように選択出力部３６０を切り替えるための判定情報Ｓ２１を出力する。また、判定部３４０は、前述の条件を満たさない場合は、ＲＡＭ１すなわち第１のＬＵＴ３０２の出力を選択するように選択出力部３６０を切り替えるための判定情報Ｓ２１を出力する。
【０１０３】
選択出力部３６０は、判定部３４０から入力される判定情報Ｓ２１に従って、第１および第２のＬＵＴ３０２，３０４であるＲＡＭ１，ＲＡＭ２の２つの出力の中から１つを選択して出力する。このような第４実施形態の構成に依れば、上述した第１実施形態の構成よりも、さらに回路を簡易化できる。
【０１０４】
ここで、図５に示した符号の割当て方に対応するためには、ｍ２＝８ならば、ｍ１は範囲２のビット分（＝１１）以上である必要がある。つまり、第３のＬＵＴ３０６を取り外しているので、第１のＬＵＴ３０２が担当する符号範囲を範囲３まで広くする。つまり、ＲＡＭ１のアドレス入力のビット幅が上記第１〜第３実施形態と異なり、８ビットではなくなる。回路構成としては、この点を見越して予めそのようなビット幅に対応したＲＡＭを実装しておく。
【０１０５】
なお、第１のＬＵＴ３０２が担当する符号範囲を広くするのとは反対に、第２のＬＵＴ３０４が担当する符号範囲を範囲３まで広くしてもよい。ただしこの場合には、ＲＡＭ２のアドレス入力のビット幅が上記第１〜第３実施形態と異なり、８ビットではなくなることに加えて、第２のＬＵＴ３０４が除外するべき符号データＤ３の先頭側（第３のＬＵＴ３０６用のシフト回路３２６によるシフト量に相当）は５ビットにする必要がある。
【０１０６】
なお、この第４実施形態の構成は、特開平８−１６７８５５号公報の図５（以下従来技術１という）に示される構成と似通っている。しかしながら、この従来技術１の構成では、先頭２ビットを組合せ論理回路に入力し、“００”，“０１”，“１０”の場合を復号し、３ビット目以降をメモリに入力し、先頭が“１１”の場合を復号している。ある符号の割当て方を想定して、その場合だけに使える構成を示しているので、符号割当てが変わった場合には対応できない。
【０１０７】
これに対して、第４実施形態の構成では、符号割当てが変わった場合でも、ｍ１，ｍ２に応じて適応できる。逆に言えば、ｍ１＝ｍ２＝２の場合に特化した構成が、従来技術１に示される構成になると考えてよい。この点では、ｍ１，ｍ２に応じて適応できる第４実施形態の構成と従来技術１の構成では、構成および作用効果に相違がある。
【０１０８】
また、第４実施形態の構成は、特開平８−３１６８４７号公報の図１（以下従来技術２という）に示される構成とも似通っている。すなわち、従来技術２の構成では、３つのＬＵＴで構成しており、ＬＵＴを１個減らすと第４実施形態の構成に似通ったものとなる。しかしながら、従来技術２では、複数テーブルの出力から１つを選択するのに、テーブルから出力される選択データを使って判定しているので、回路構成が複雑になり、また、テーブルから符号長が出力されないと判定できず動作速度を低下させる要因となる問題がある。
【０１０９】
これに対して、第４実施形態では、テーブルから出力される選択データを使わずに、判定部３４０からの判定情報Ｓ２１、すなわち符号切出部２０にて切り出された符号データＤ３に基づいて得られる判定情報Ｓ２１に従って第１および第２のＬＵＴ３０２，３０４であるＲＡＭ１，ＲＡＭ２の２つの出力の中から１つを選択して出力するので、構成が簡易でありまた符号長が出力されないために判定できないという問題も生じない点で異なる。よって、第４実施形態と従来技術２とは、似通っているが、構成および作用・効果において相違がある。
【０１１０】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【０１１１】
また、上記の実施形態は、クレーム（請求項）にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【０１１２】
たとえば、上記第１〜第３実施形態では、一例としてＲＡＭ１，ＲＡＭ２，ＲＡＭ３のアドレス入力のビット幅が全て８ビットの場合を取り上げたが、符号割当ての性質や回路実装の事情などを考慮してビット幅を変更して実装することも可能である。第４実施形態がその一例である。
【０１１３】
また、符号切出部２０の回路構成によって、復号テーブルに入力される符号ビット列のビット幅は固定化されるが、このビット数以下ならば、様々な種類の可変長符号に対応することが可能である。
【０１１４】
たとえば図２に示した例では、ＪＰＥＧの場合を例としたので入力符号ビット列のビット幅を“１６”としており、ＪＰＥＧの符号割当てが変更になったときでも復号可能であるが、さらにこれに加えて、符号の最大ビット長が“１６”以下であるような別の種類の可変長符号についても、ＲＡＭとレジスタの設定値を書き換えるだけで、回路構成を変更せずに対応可能である。
【０１１５】
また、上記実施形態では、ＪＰＥＧ方式が採用しているハフマン符号などの可変長符号についての復号処理について説明したが、等長符号についての復号処理についても適用し得る。たとえば、ハフマン符号などの可変長符号では、出現頻度の高い入力データに対しては、短いデータ長の符号データを割り当て、出現頻度の低い入力データに対しては、長いデータ長の符号データを割り当て、これにより、使用する平均的なデータ長を短くすることで、符号データ全体のデータ量を少なくするようにしているが、符号データの復号時には符号長の切れ目を峻別する処理が必要となる。
【０１１６】
一方、等長符号では、出現頻度に関わらず一定の符号長で符号データを割り当てるので、実質的には意味のない部分を多く含み得るが、符号データの復号時には符号長の切れ目を峻別する処理が不要である。
【０１１７】
上記実施形態で示したように、本実施形態の復号処理では、入力される符号データのうち、上述したような所定の条件に従って、実質的に有効な部分に対応した復号用の情報をＬＵＴに用意しておき復号処理を行なうものであり、この点では、等長符号についても、実質的には意味のない部分を除いた有効部分に対応した復号用の情報をＬＵＴに用意しておき復号処理を行なうことができる。
【図面の簡単な説明】
【０１１８】
【図１】本発明に係る復号化装置を適用した復号システムの概要を示したブロック図である。
【図２】本発明に係る復号装置の一例である復号処理部の第１実施形態を示す回路ブロック図である。
【図３】符号の割当て方の基本例を示した第１例の図表である。
【図４】符号の割当て方の基本例を示した第２例の図表である。
【図５】ＪＰＥＧ規格に基づく第１例のハフマン符号の割当表である。
【図６】ＪＰＥＧ規格に基づく第２例のハフマン符号の割当表である。
【図７】復号処理部の第２実施形態を示す回路ブロック図である。
【図８】第２実施形態の効果を説明する符号の割当ての第１例を示した図表である。
【図９】第２実施形態の効果を説明する符号の割当ての第２例を示した図表である。
【図１０】復号処理部の第３実施形態を示す回路ブロック図である。
【図１１】復号処理部の第４実施形態を示す回路ブロック図である。
【符号の説明】
【０１１９】
１…復号システム、１０…符号入力部、２０…符号切出部、３０…復号処理部、３００…メモリ部、３０２…第１のＬＵＴ、３０４…第２のＬＵＴ、３０６，３０６ａ，３０６ｂ…第３のＬＵＴ、３１２…有効上位ビット数レジスタ部、３１４…シフト数レジスタ部、３１６，３１６ａ，３１６ｂ…シフト数レジスタ部、３２０…シフト量調整処理部、３２６，３２６ａ，３２６ｂ…シフト回路、３４０…判定部、３６０…選択出力部、３８０…記憶情報更新部、４０…符号位置管理部、５０…復号結果出力部
【図１】
2005094562.tif 000003
【図２】
2005094562.tif 000004
【図３】
2005094562.tif 000005
【図４】
2005094562.tif 000006
【図５】
2005094562.tif 000007
【図６】
2005094562.tif 000008
【図７】
2005094562.tif 000009
【図８】
2005094562.tif 000010
【図９】
2005094562.tif 000011
【図１０】
2005094562.tif 000012
【図１１】
2005094562.tif 000013