(57)【要約】【課題】  ハフマン・テーブルの規模を小さなものとする。【解決手段】  頭出し部１０１は、入力ビットストリームから可変長符号語の頭出しを行う。スイッチ回路１０２は、頭出しされた可変長符号語における先頭の所定ビット数のパターンに応じて、符号語の種類を判別し、その判別結果に基づいて、所定ビット位置から十分な符号長のデータを抽出し、その結果をハフマンテーブル１０４に出力する。ハフマンテーブル１０４はスイッチ回路１０２からのデータと、予め格納された可変長符号語とを比較し、一致した場合には第１のシンボルデータとして出力する。また、この第１のシンボルに対して加算値を生成（１０７、１０８）し、加算した結果を２つの第２のシンボルとして生成する。選択部１０６は入力した符号の種別に応じて、第１のシンボル、２つの第２のシンボルのいずれか１つを選択出力する。更に、選択部１０９は、頭出し部１０１で頭出しされたデータに基づき、選択部１０６で選択されたシンボル、及び、ＦＬＣデコーダ１１０からのシンボルのいずれか１つを選択出力する。【選択図】  図１
2004320724.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号化された画像データのビットストリームを入力し、シンボルデータを出力する可変長符号の復号装置であって、
入力ビットストリームから可変長符号語の頭出しを行う頭出し手段と、
該頭出し手段で頭出しされた可変長符号語における先頭の所定ビット数のパターンに応じて、符号語の種類を判別する判別手段と、
該判別手段の判別結果に基づいて、所定ビット位置から十分な符号長のデータを抽出する抽出手段と、
抽出したデータと、予め格納された可変長符号語とを比較し、一致した場合には第１のシンボルデータを出力するハフマンテーブルと、
該ハフマンテーブルから出力される前記第１のシンボルデータに対して、当該第１のシンボルデータに応じた加算値を生成し、当該第１のシンボルに生成された加算値を加算することで第２のシンボルデータを複数種類出力する加算演算手段と、
前記頭出し手段で頭出しされた可変長符号語から、予め定められたビット・レーンを選択して第３のシンボル・データとして出力するデコード手段と、
前記第１のハフマンテーブルから出力された第１のシンボルデータ、前記加算演算手段で生成された第２のシンボルデータ、及び、前記デコード手段で生成された第３のシンボルデータのいずれか１つを、前記頭出し手段で頭出しされた可変長符号語の値に応じて選択し、出力する選択手段と
を備えることを特徴とする復号装置。
【請求項２】
前記加算演算手段において加算演算するシンボルデータはＲＵＮ及びＬＥＶＥＬであることを特徴とする請求項１に記載の可変長復号装置。
【請求項３】
前記判別手段は、エスケープ符号であるか否かを判別することを特徴とする請求項１に記載の復号装置。
【請求項４】
入力されるビットストリームはＭＰＥＧ−４符号化によって符号化された画像データであることを特徴とする請求項１乃至３のいずれか１項に記載の復号装置。
【請求項５】
可変長符号化された画像データのビットストリームを入力し、少なくともシンボルデータまで復号する可変長符号の復号方法であって、
入力ビットストリームから可変長符号語の頭出しを行う頭出し工程と、
該頭出し工程で頭出しされた可変長符号語における先頭の所定ビット数のパターンに応じて、符号語の種類を判別する判別工程と、
該判別工程の判別結果に基づいて、所定ビット位置から十分な符号長のデータを抽出する抽出工程と、
抽出したデータと、ハフマンテーブルとして予め格納された可変長符号語とを比較し、一致した場合には第１のシンボルデータを出力するハフマン復号工程と、
該ハフマン復号工程から出力される前記第１のシンボルデータに対して、当該第１のシンボルデータに応じた加算値を生成し、当該第１のシンボルに生成された加算値を加算することで第２のシンボルデータを複数種類出力する加算演算工程と、
前記頭出し工程で頭出しされた可変長符号語から、予め定められたビット・レーンを選択して第３のシンボル・データとして出力するデコード工程と、
前記第１のハフマンテーブルから出力された第１のシンボルデータ、前記加算演算工程で生成された第２のシンボルデータ、及び、前記デコード工程で生成された第３のシンボルデータのいずれか１つを、前記頭出し工程で頭出しされた可変長符号語の値に応じて選択し、出力する選択工程と
を備えることを特徴とする可変長符号の復号方法。
【請求項６】
可変長符号化された画像データのビットストリームを入力し、シンボルデータを出力する可変長符号の復号装置として機能するコンピュータプログラムであって、
入力ビットストリームから可変長符号語の頭出しを行う頭出し手段と、
該頭出し手段で頭出しされた可変長符号語における先頭の所定ビット数のパターンに応じて、符号語の種類を判別する判別手段と、
該判別手段の判別結果に基づいて、所定ビット位置から十分な符号長のデータを抽出する抽出手段と、
抽出したデータと、予め格納された可変長符号語とを比較し、一致した場合には第１のシンボルデータを出力するハフマンテーブルと、
該ハフマンテーブルから出力される前記第１のシンボルデータに対して、当該第１のシンボルデータに応じた加算値を生成し、当該第１のシンボルに生成された加算値を加算することで第２のシンボルデータを複数種類出力する加算演算手段と、
前記頭出し手段で頭出しされた可変長符号語から、予め定められたビット・レーンを選択して第３のシンボル・データとして出力するデコード手段と、
前記第１のハフマンテーブルから出力された第１のシンボルデータ、前記加算演算手段で生成された第２のシンボルデータ、及び、前記デコード手段で生成された第３のシンボルデータのいずれか１つを、前記頭出し手段で頭出しされた可変長符号語の値に応じて選択し、出力する選択手段
として機能することを特徴とするコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は静止画像、動画像等の可変長符号語を復号する技術に関するものである。
【背景技術】
【０００２】
従来から、静止画像や動画像の圧縮符号化技術の一部としてランレングス/カテゴリ符号化及び可変長符号化によるエントロピー符号化技術を使用する方式が良く知られており、この技術は国際標準であるＪＰＥＧ(Joint Photographic Expert Group)符号化方式及びＭＰＥＧ−１／−２(Moving Picture Experts Group)符号化方式においても採用されている。これらの符号化方式において可変長符号化が施される事象は、ランレングス及びレベルと呼ばれる２次元の事象に対してハフマン符号を割り当てる事によってエントロピー符号化を実現している（特許文献１）。なおランレングス及びレベルの２次元の事象をシンボルと呼ぶ事にする。
【０００３】
更に近年の動画像の圧縮符号化技術に使われており注目されている技術として、３次元の事象に対してハフマン符号を割り当てるものがある。この技術は既に、Ｈ．２６３やＭＰＥＧ−４と呼ばれる符号化方式によって標準化されている。３次元の事象としては、２次元での符号化方式の時に用いられたランレングス及びレベルに加えて、ラストと呼ばれるＤＣＴブロック内において最後の有意係数であるか否かが考慮される。このため、例え同じランレングス及びレベルの値であっても、ＤＣＴブロック内において最後の有意係数であるか否かによって、割り当てられるハフマン符号も異なる。なお、同様にランレングス、レベル及びラストの３次元の事象についても同様にシンボルと呼ぶ事にする。
【０００４】
またＭＰＥＧ−４符号化方式においては、予め定められたハフマン符号表の中に当該シンボルが存在しない場合には、エスケープと呼ばれる固定長符号を割り振る。これは、ＭＰＥＧ−１／−２符号化方式においても同様であるが、ＭＰＥＧ−４符号化方式の場合にはシンボルがハフマン符号表に存在しない場合には、初めにシンボルのレベルの値から、ハフマン符号表に存在する最大のレベルの値を減算したシンボルを新たなシンボルとして再度ハフマン符号表を検索する。そして検索を行った結果、当該シンボルがハフマン符号表に存在する場合には該当するハフマン符号を割り当てる。当該シンボルがハフマン符号表に存在しない場合には更にランレングスの値に対してハフマン符号表に存在する最大ランレングス＋１の値を減算したシンボルを新たなシンボルとして再度ハフマン符号表を検索する。そして検索を行った結果、当該シンボルがハフマン符号表に存在する場合には該当するハフマン符号を割り当て、存在しない場合には固定長符号を割り当てる。
【０００５】
ここで、特許文献１に示されているＭＰＥＧ−４符号化方式に対応した可変長復号化装置を図２に示す。ＭＰＥＧ−４符号化方式によって符号化されたビットストリームのブロック・レイヤに相当する部分が頭出し手段２０１に入力される。頭出し手段２０１はシフタ回路などで構成されており、動作制御手段２０７から要求されるシフト量に応じて順次ビットストリームを破棄していき、頭出し手段２０１の出力は常時ブロック・レイヤにおける符号語の先頭が頭出しされている状態となる。また、頭出し手段２０１の出力はクロックに同期して動作を行う。この頭出しされた符号語は５つのブロック、ＤＣデコーダ２０２、ＦＬＣデコーダ２０３、ハフマン・テーブル２０４、ハフマン・テーブルＥＳＣＲ２０５、及びハフマン・テーブルＥＳＣＬ２０６に並行に入力される。
【０００６】
動作制御手段２０７は図示しないカウンタ手段によって計数されたランレングスの値が６４を超えた場合、及び選択手段２０８から出力されたシンボル・データのラストが“１”であり最後の有意係数である事を示している場合の次の符号語を、ＤＣデコーダ２０２において復号された結果が有効である事を示すために、図示しない後段の機能ブロックにＤＣデータ出力信号をアザートする。それ以外のクロック・サイクルの場合、すなわちＡＣ係数に対応するシンボル・データの復号化の場合にはＤＣデータ出力信号をネゲートして、シンボル・データ信号の出力が有効である事を示す。
【０００７】
ＡＣ係数に対応するシンボル・データの復号化処理は、ＦＬＣデコーダ２０３、ハフマン・テーブル２０４、ハフマン・テーブルＥＳＣＲ２０５、及びハフマン・テーブルＥＳＣＬ２０６の４つのブロックにおいて行われる。ハフマン・テーブル２０４には、ＩＳＯ／ＩＥＣ１４４９６−２のＡｎｎｅｘ．Ｂに記載されている、イントラ・マクロブロック用のテーブルＢ．１６及びインター・マクロブロック用のテーブルＢ．１７のエスケープ符号語を除く、すべのハフマン符号語が登録されており、頭出し手段２０１から入力されるビットストリームに対してすべてのハフマン符号語と一致しているか否かが判定されて、一致している場合には該当するシンボル・データ及びハフマン符号語長及び一致した事を示すヒット信号をアザートする。
【０００８】
またハフマン・テーブルＥＳＣＲ２０５、及びハフマン・テーブルＥＳＣＬ２０６においても、ハフマン・テーブル２０４と同様にテーブルＢ．１６及びテーブルＢ．１７のエスケープ符号語を除くすべてのハフマン符号語が登録されている。ただし、ハフマン・テーブル２０４と異なる点は、ハフマン・テーブルＥＳＣＲ２０５においては各ハフマン符号語の前にエスケープ符号語＋“０”が付加された符号語と入力されるビットストリームとが比較され、ハフマン・テーブルＥＳＣＬ２０６においては各ハフマン符号語の前にエスケープ符号語＋“１０”が付加された符号語と入力されるビットストリームとが比較される。
【０００９】
ＦＬＣデコーダ２０３においては、入力されるビットストリームの先頭がエスケープ符号語＋“１１”である場合にシンボル・データの復号化を行う。エスケープ符号語＋“１１”で始まる符号語においては、固定長のランレングス、レベル、イベントが後続しているので、そのまま対応するビット位置のデータをシンボル・データとして出力する。
【００１０】
選択手段２０８においては、ＦＬＣデコーダ２０３、ハフマン・テーブル２０４、ハフマン・テーブルＥＳＣＲ２０５、及びハフマン・テーブルＥＳＣＬ２０６の４つのブロックからそれぞれ並行に入力されるビット信号において、アザートされているブロックから入力されるシンボル・データと符号語長を選択して出力する。
【特許文献１】特開２００３−１１５７６７公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ハードウエアで可変長符号化装置を構成する場合には、テーブルＢ．１６及びテーブルＢ．１７のすべてのハフマン符号語をＲＯＭ或いはハードワイヤードで構成する事になる。図２に示される可変長復号化装置をハードウエアで実現した場合には、ハフマン・テーブル２０４、ハフマン・テーブルＥＳＣＲ２０５、及びハフマン・テーブルＥＳＣＬ２０６の３つのブロックにそれぞれＲＯＭ或いはハードワイヤードのハフマン・テーブルを構成する必要があり、ゲート規模が莫大になってしまう。
【００１２】
更には、リアルタイム性を要求される様な機器である再生装置においては、高速な復号化処理が要求される。この場合、頭出し手段２０１から出力段のロジックには非常に大きな負荷がかかってしまい、動作周波数の高速化が困難である。また、ソフトウエアで従来技術を用いて復号化処理を実現する場合には、ハフマンテーブルＥＳＣＲ２０５を用いて符号化されているビットストリームに対して、前記のハフマン・テーブル２０４、ハフマン・テーブルＥＳＣＲ２０５、及びハフマン・テーブルＥＳＣＬ２０６すべてについて、入力された符号語との比較を行う事となり、莫大な比較演算処理が必要となってしまい、リアルタイム復号化を実現する事が困難であった。
【００１３】
本発明は上記のような問題点を課題にしたものであり、少ない数のハフマンテーブルでもって可変長符号を復号する技術を提供しようとするものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するため、例えば本発明の可変長符号の復号装置は以下の構成を備える。すなわち、
可変長符号化された画像データのビットストリームを入力し、シンボルデータを出力する可変長符号の復号装置であって、
入力ビットストリームから可変長符号語の頭出しを行う頭出し手段と、
該頭出し手段で頭出しされた可変長符号語における先頭の所定ビット数のパターンに応じて、符号語の種類を判別する判別手段と、
該判別手段の判別結果に基づいて、所定ビット位置から十分な符号長のデータを抽出する抽出手段と、
抽出したデータと、予め格納された可変長符号語とを比較し、一致した場合には第１のシンボルデータを出力するハフマンテーブルと、
該ハフマンテーブルから出力される前記第１のシンボルデータに対して、当該第１のシンボルデータに応じた加算値を生成し、当該第１のシンボルに生成された加算値を加算することで第２のシンボルデータを複数種類出力する加算演算手段と、
前記頭出し手段で頭出しされた可変長符号語から、予め定められたビット・レーンを選択して第３のシンボル・データとして出力するデコード手段と、
前記第１のハフマンテーブルから出力された第１のシンボルデータ、前記加算演算手段で生成された第２のシンボルデータ、及び、前記デコード手段で生成された第３のシンボルデータのいずれか１つを、前記頭出し手段で頭出しされた可変長符号語の値に応じて選択し、出力する選択手段とを備える。
【発明の効果】
【００１５】
本発明によれば、ハフマン・テーブルの規模を小さなものとすると共に、ソフトウェア処理における復号化を高速にすることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１７】
図１は実施形態における可変長復号化装置のブロック構成図である。
【００１８】
本可変長復号化装置はＭＰＥＧ−４符号化方式において符号化されたビットストリームを復号化するものである。また実施形態においては、説明を解りやすくするためにイントラ・マクロブロックに対する復号化に特化して説明することとするが、これに限らないことは以下の説明から明らかになるであろう。
【００１９】
さて、図示しないビットストリーム解析部によって抽出されたブロック・レイヤのビットストリームが頭出し部１０１に入力される。頭出し部１０１はシフタ等によって構成されており、動作制御部１０５から入力されるシフト量に応じて入力されたビットストリームをシフトし、従前の符号語はクロック毎に破棄する。シフト量は符号語長に相当するものであるので、頭出し部１０１から出力されているビットストリームは常に符号語が頭出しされている状態となる。
【００２０】
スイッチ回路１０２の構成を図３に示す。図中のSDATA[24：0]に相当する頭出し部の出力のＭＳＢ側から２５ビットが入力されると、ＭＰＥＧ−４符号化方式におけるエスケープ符号に相当する７ビットである“0000011”と１ビットの“0”又は“1”を連結した８ビットのデータ“00000110”及び“00000111”が、比較器３０１及び比較器３０２において、SDATA[24:17]（ＭＳＢから８ビット）と一致するか否かがそれぞれ判定される。データ“00000110”はＥＳＣＬ符号化と呼ばれるエスケーブ符号化が施された符号語を検出するためのものであり、データ“00000111”はＥＳＣＲ符号化と呼ばれるエスケーブ符号化が施された符号語を検出するためのものである。比較器３０１、３０２はアンド回路で簡単に構成される。
【００２１】
ＥＳＣＬ符号化は符号化時にRUN(ランレングス)、LEVEL(レベル)、LAST(ラスト)の３次元のシンボル・データに対して、図５で示されるLMAXの値をLEVELから減算した結果得られる、新たなシンボル・データに対してハフマン符号化されたものである。またＥＳＣＲ符号化は、同様の３次元のシンボル・データに対して、図６で示されるRMAXの値をRUNから減算した結果得られる、新たなシンボル・データに対してハフマン符号化されたものである。選択器３０３には、比較器３０１及び比較器３０２の出力信号がＣ０及びＣ１のポートに入力され、以下の式に従って入力ポートＡ０〜Ａ２のうち一つが選択されて出力される。
IF (C0 = '1' AND C1 = '0')  // ＥＳＣＬ
B = A1
ELSE IF (C0 = '0' AND C1 = '1')  //ＥＳＣＲ
B = A2
ELSE  //VLC
B = A0
上記を簡単に説明すると次の通りである。
【００２２】
入力ストリームの２５ビットの先頭から８ビットがＥＳＣＬ符号“00000110”と一致する場合には、入力ポートＡ１に供給されたビット１６〜ビット１までの１６ビットをSWDATA[15:0]として出力する。ＥＳＣＲ符号“00000111”と一致する場合には、入力ポートＡ２に供給されたビット１５〜ビット０までの１６ビットをSWDATA[15:0]として出力する。これ以外（Ｃ０＝Ｃ１＝０の場合）には、入力ポートＡ０に供給されたビット２４〜ビット９までの１６ビットをSWDATA[15:0]として出力する。つまり、比較器３０１、３０２は、可変長符号語における先頭の所定ビット数のパターンに応じて符号語の種類を判別していることに他ならない。
【００２３】
なお、Ａ０に対応するものは符号化時に３次元のシンボル・データに対して、LMAX及びRMAXを減算を行わず、そのまま対応するハフマン符号化を行った符号語であり、本実施形態では今後ＶＬＣ方式と呼ぶ。
【００２４】
図１に戻って、ハフマン・テーブル１０４には、ISO/IEC14496-2のＡｎｎｅｘ．Ｂに記載されている、イントラ・マクロブロック用のテーブルＢ．１６のエスケープ符号を除くすべてのハフマン符号語がハードワイヤードで格納されている。スイッチ回路１０２から入力される図３に示すSWDATA[15:0]と、格納されているすべてのハフマン符号語と一致しているか否かが判定されて、一致したハフマン符号語に対応するシンボル・データ及びハフマン符号語の符号語長を出力する。
【００２５】
ハフマン・テーブル１０４の出力のシンボル・データは３種類のシンボル・データになる様に演算される。これら３種類のシンボル・データはそれぞれ、ＥＳＣＬ符号化、ＥＳＣＲ符号化及びＶＬＣ符号化に対応するものである。選択部１０６に対して、ハフマン・テーブル１０４の出力のシンボル・データRUN+及びLEVEL+と、LEVEL+に対してLMAXを加算したもの、RUN+に対してRMAXを加算したものの計４種類のデータが入力される。選択部１０６においては、これら４種類のデータから、頭出し部１０１の出力信号であるSDATA[24:17]の値に応じて２種類が選択されて出力される。LEVEL+に対して加算するLMAXの値は、図５で示される様にLASTとRUN+の値によって決定される。選択部１０７において、予めハードワイヤードで格納されている図５に示す１１種類のLMAX0〜LMAX11の値から、LASTとRUN+の値に応じて一つが選択されて、LEVEL+に加算される。なお、LEVEL+は絶対値で表現されており、対応する符号はシンボルＳとしてハフマン・テーブル１０４から出力される。またRUN+に対して加算するRMAXの値は、図６で示される様にLASTとLEVEL+の値によって決定される。選択部１０８において、選択部１０７と同様に予めハードワイヤードで格納されている図６に示す１１種類のRMAX0〜RMAX11に対してそれぞれ+1を加算した値から、LASTとLEVEL+の値に応じて一つが選択されて、RUN+に加算される。
【００２６】
一方、選択部１０６においては、頭出し部１０１において現在頭出しされている符号語が、ＶＬＣ方式、ＥＳＣＲ方式、ＥＳＣＬ方式の３方式のうち、どの方式によって符号化されているのかを判定して、３種類のシンボル・データのうち１種類のシンボル・データを図７に示す通りに選択する。尚、この判定には、図３で示したスイッチ回路１０２に使用されている比較器３０１及び比較器３０２の出力結果を利用しても、もちろん良い。
【００２７】
一方ＦＬＣデコーダ１１０においては、固定長符号のデコードを行う。固定長符号は、符号化時においてＶＬＣ方式、ＥＳＣＲ方式及びＥＳＣＬ方式何れの方式にも属さない場合に行われる方式であり、本実施形態ではＦＬＣ方式と呼ぶ。ＦＬＣ方式においては、シンボル・データが固定長符号で符号化されており、RUN、LEVEL、LAST、S（sign bit）の各シンボル・データに対応するビット・レーンを、頭出し部１０１から出力されている頭出しされた符号語から選択して出力する。このＦＬＣデコーダ１１０の構成は図４に示すようなものでよい。ＶＬＣ方式、ＥＳＣＲ方式及びＥＳＣＬ方式のシンボル・データのフォーマットとの整合性をとるために、LEVELについては、絶対値変換を行い、かつ符号を出力する。
【００２８】
選択部１０９においては、選択部１０６及びＦＬＣデコーダ１１０から入力される２種類のシンボル・データのいずれか一方を、頭出し部１０１から出力されている頭出しされた符号語の上位９ビットの値に応じてどちらか一方を選択する。上位９ビットが“000001111”である場合には、ＦＬＣデコーダ１１０からの入力が選択されて、“000001111”でない場合には選択部１０６からの入力が選択される。
【００２９】
動作制御部１０５は、まず頭出し部１０１から入力される有効ビット長と復号結果得られた符号語長との比較を行う。もし、符号語長が有効ビット長以下である場合には、現在のクロック・サイクルの復号化処理は有効であると判断して、図示しない後段にブロックに対して有効データ出力信号をアザートする。符号語長に関する情報は、ＤＣデコーダ１０３及び、ハフマン・テーブル１０４からそれぞれ入力される。現在のクロック・サイクルがＤＣ係数の復号化サイクルである場合には、ＤＣデコーダ１０３から入力される符号語長がシフト量として出力され、かつ後段の図示しないブロックに対してＤＣデータ出力信号をアザートする。
【００３０】
一方、現在のクロック・サイクルがＡＣ係数の復号化サイクルである場合には、選択部１０９において、ＦＬＣデコーダ１１０の出力が選択された場合には常時３０ビットがシフト量として出力されて、それ以外の場合にはハフマン・テーブル１０４から入力される符号語長がシフト量として出力される。
【００３１】
なお、ＤＣデコーダ１０３は、従来から知られている技術を使用する事で構成する事が可能であるので、本実施形態ではその説明を省略する。
【００３２】
次にソフトウエアモジュールで図１に示す構成要素を実現した場合の処理フローについて説明する。図９は、特に一つのＤＣＴブロック内のＡＣ係数に対する復号化処理に対応する本実施形態の処理手順を示すフローチャートである。
【００３３】
初めに、ステップＳ９０１において頭出し部１０１に所望のサイズのビットストリームを入力する。このサイズは、頭出し部のメモリサイズに対応して入力すれば良く、従来技術を用いて実現可能であるので、ここではその説明を省略する。
【００３４】
次に、ステップＳ９０２において、前記SDATA[24:0]のＭＳＢから９ビット（上位９ビット）と“000001111”を比較する。もし、一致した場合にはＦＬＣデコーダ１１０で復号化する事で、一つのＡＣ係数の復号化処理は完了する。
【００３５】
ステップＳ９０３〜ステップＳ９０７では、前記スイッチ回路１０２に相当する処理を行う。すなわち、SDATA[24:0]のＭＳＢから８ビットの値に応じて、SWADATA[15:0]の下位１６ビットの値を、SDATA[24:9]、SDATA[15:0]、SDATA[16:1]のいずれかで設定する（ステップＳ９０５乃至Ｓ９０７）。このステップＳ９０３乃至Ｓ９０７処理によって、図２の従来技術の処理に必要とされていた、ハフマンテーブル２０４、ハフマンテーブルＥＳＣＲ及びハフマンテーブルＥＳＣＬ２０６の3つのテーブルに対して比較処理が、ハフマンテーブル２０４に対してSWADATA[15:0]をインデックスとしたルックアップテーブル処理であるステップＳ９０９のみで実現出来るようになる。
【００３６】
ステップＳ９１０乃至Ｓ９１３においては、ステップＳ９０９で得られたRUN+及びLEVEL+に対して、SDATA[24:0]のMSBから８ビットの値に応じて前記選択部１０７及び選択部１０８の処理を実現する事によって、最終復号化結果であるRUN及びLEVELを得る。
【００３７】
ステップＳ９１４においては、ＦＬＣデコーダ１１０の出力が選択された場合には常時３０ビットをシフトアウト量とし、それ以外の場合にはハフマン・テーブル１０４から出力される符号語長をシフトアウト量とする。
【００３８】
以上の処理を、ステップＳ９１５にて、ビットストリームの入力が終了したと判断されるまで、繰り返すことになる。
【００３９】
以上説明したように本実施形態によれば、頭出し部１０１の出力データに応じて、ハフマン・テーブル１０４に入力するビットストリームを適応的に選択する事によって、ハフマン・テーブル１０４の回路規模を実質的に１／３以下にする事が可能となる。
【００４０】
更には、ソフトウエアモジュールで、図1に示す構成要素を実現した場合には、処理ステップ数を従来技術に対して実質的に１／３以下とすることが可能になる。
【００４１】
また、通常、コンピュータプログラムは、ＣＤＲＯＭ等のコンピュータ可読記憶媒体をコンピュータにセットし、システムにコピーもしくはインストールしてはじめて実行可能になるものであるから、本発明はかかるコンピュータ可読記憶媒体をもその範疇とするものである。
【図面の簡単な説明】
【００４２】
【図１】実施形態における可変長復号化装置のブロック構成図である。
【図２】従来技術を使用した可変長復号化装置ブロック構成図である。
【図３】図１におけるスイッチ回路の内部構成を示す図である。
【図４】図１におけるＦＬＣデコーダの内部構成を示す図である。
【図５】ＥＳＣＬ方式に使用されるLMAXの値を表すテーブルを示す図である。
【図６】ＥＳＣＲ方式に使用されるRMAXの値を表すテーブルを示す図である。
【図７】ＶＬＣ方式、ＥＳＣＬ方式、ＥＳＣＲ方式それぞれに対応するシンボル・データの種類を表すテーブルを示す図である。
【図８】ＦＬＣ方式の固定長符号テーブルを示す図である。
【図９】実施形態における処理手順を示すフローチャートである。
【図１】
2004320724.tif 000003
【図２】
2004320724.tif 000004
【図３】
2004320724.tif 000005
【図４】
2004320724.tif 000006
【図５】
2004320724.tif 000007
【図６】
2004320724.tif 000008
【図７】
2004320724.tif 000009
【図８】
2004320724.tif 000010
【図９】
2004320724.tif 000011