(57)【特許請求の範囲】
【請求項１】
ゼロの交流成分のＤＣＴ係数のランレングスとこれに続く非ゼロの交流成分のＤＣＴ係数の値とからなる組を符号化する可変長符号復号装置において、
複数ビット並列に入力される符号ビット列を保持する第一のレジスタと、
上記第一のレジスタに新たな符号ビット列が書き込まれた時に、それまで上記第一のレジスタに保持されていた符号ビット列を保持する第二のレジスタと、
上記第一のレジスタおよび上記第二のレジスタに保持されている符号ビット列から復号すべき符号ビット列を取り出すセレクタと、
復号すべき符号ビット列を入力として、復号データ、可変長符号の符号長、可変長の付加情報ビットのビット長、可変長符号の符号長と可変長の付加情報ビットのビット長とを加算した復号済符号長を出力する変換回路と、
上記変換回路から出力される復号済符号長を用いて上記第一のレジスタおよび上記第二のレジスタの内容を更新し、次に復号する符号ビット列の取り出し位置を上記セレクタに指示する制御回路と、
復号データに含まれる、上記ゼロの交流成分のＤＣＴ係数のランレングスとこれに続く非ゼロの交流成分のＤＣＴ係数の値とからなる組ごとに、当該ゼロの交流成分のＤＣＴ係数のランレングスが示す当該ゼロの交流成分のＤＣＴ係数の個数と、当該非ゼロの交流成分のＤＣＴ係数の個数である１とを累積して得られる、現在復号しているＤＣＴ係数がブロックのなかの何番目のＤＣＴ係数かを示すＤＣＴ係数位置データを記憶するとともに、ＥＯＢ（Ｅｎｄ  ｏｆＢｌｏｃｋ）符号により現在のＤＣＴ係数位置データを初期値にリセットするＤＣＴ係数位置レジスタと、
ＤＣＴ係数位置レジスタの出力を用いて直流成分のＤＣＴ係数用の変換回路と交流成分用のＤＣＴ係数用の変換回路を切り替える手段と、
前記セレクタの出力と前記変換回路の出力とＤＣＴ係数位置レジスタの出力とを後段の装置に出力するレジスタとを有することを特徴とする可変長符号復号装置。
【請求項２】
上記変換回路を、入出力の関係を満足する論理回路で構成した請求項１記載の可変長符号復号装置。
【請求項３】
上記変換回路を、書換可能なメモリ回路で構成した請求項１記載の可変長符号復号装置。
【請求項４】
画像ブロックの直流成分のＤＣＴ係数の量子化データの差分を表す可変長の付加ビットと、この付加ビットのビット長に割り当てられた直流成分用の可変長符号と、各交流成分のＤＣＴ係数のノンゼロの量子化データを表す可変長の付加ビットと、この付加ビットのビット長および、ＤＣＴ係数の量子化データがゼロとなる交流成分のランレングスの組合わせに割り当てられた交流成分用の可変長符号とを所定の順序で順次に継続して構成された符号ビット列から、可変長符号および可変長の付加ビットの組を順次に切り出す前段部と、上記前段部からの情報に基づいて上記符号ビット列から上記可変長の付加ビットを取出して復号を行なう後段部とを具備する可変長符号復号装置において、
上記前段部が、
複数ビット並列に入力される符号ビット列を保持する第一のレジスタと、
上記第一のレジスタに新たな符号ビット列が書き込まれた時に、それまで上記第一のレジスタに保持されていた符号ビット列を保持する第二のレジスタと、
上記第一のレジスタおよび上記第二のレジスタに保持されている符号ビット列から復号すべき符号ビット列を取り出すセレクタと、
復号すべき符号ビット列を入力として、可変長符号の符号長および可変長の付加情報ビットのビット長に関するデータ、ならびに復号データに含まれる交流成分のＤＣＴ係数の量子化データのゼロのランレングスに関するデータを出力する変換回路と、
上記変換回路から出力されるビット長に関するデータを用いて上記第一のレジスタおよび上記第二のレジスタの内容を更新し、次に復号する符号ビット列の取り出し位置を上記セレクタに指示する制御回路と、
上記交流成分用の可変長符号の各々の復号データに含まれる、上記ゼロの交流成分のＤＣＴ係数のランレングスが示す当該ゼロの交流成分のＤＣＴ係数の個数とこれに続く非ゼロの交流成分のＤＣＴ係数の個数である１とを順次に累積して得られる、現在復号している周波数成分のＤＣＴ係数がブロックのなかの何番目のＤＣＴ係数かを示すＤＣＴ係数位置情報を記憶するとともに、ＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）符号により現在のＤＣＴ係数位置データを初期値にリセットするＤＣＴ係数位置レジスタと、
復号すべき符号ビット列と、可変長符号の符号長および可変長の付加ビットのビット長に関するデータと、上記ＤＣＴ係数位置レジスタの出力とを上記後段部に出力するレジスタとを有することを特徴とする可変長符号復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可変長符号とそれに付加される付加情報を用いた符号化方式によって符号化された符号を高速に復号する装置に関するものであり、特にＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などの多階調画像符号化方式におけるハフマン符号を高速に復号する装置として適用できるものである。
【０００２】
【従来の技術】
ＪＰＥＧ方式などの多階調画像符号化方式では、画像を例えば８×８画素のブロックに分割して以下のような操作を行なう。
【０００３】
▲１▼ブロックの画素値を２次元離散コサイン変換（ＤＣＴ）によって６４個のＤＣＴ係数に変換する。
▲２▼この６４個のＤＣＴ係数を量子化テーブルで持っている量子化ステップで量子化する。
▲３▼量子化された６４個のＤＣＴ係数のうち１個のＤＣ係数は前ブロックのＤＣ係数との差分をとり、この差分をハフマン符号により可変長符号化し、必要に応じて可変長の付加情報ビットを可変長符号の後に付加し符号ビット列を得る。
▲４▼量子化された６４個のＤＣＴ係数のうち６３個のＡＣ係数はジグザグスキャン順に配列し、この配列の中で連続するゼロの個数とその次にくる非ゼロの係数の値を組として可変長符号化し、必要に応じて可変長の付加情報ビットを可変長符号の後に付加することによって符号ビット列を得る。
【０００４】
復号装置では前記符号化の過程を逆にたどることによって画像を復元する。
【０００５】
上記の符号化方式で符号化された符号を復号する装置は、例えば、特開平４−１３３５２２号公報、特開平３−２４７０２０号公報、特開平４−２３５２１号公報、特開平５−６３５８６号公報、特開平９−１３０２６５号公報、特開平９−１３０２６６号公報に開示されている。
【０００６】
図１１は、これら従来の復号装置を説明するためのものであり、図１１において、１１、１２は入力符号ビット列を保持するラッチ、１３はバレルシフタ、１４は変換回路、１５は後段へのデータを一時保持する出力用ラッチ、１６は累算回路、１７はＥＯＢの検出データを一時保持するＥＯＢ検出用ラッチである。
【０００７】
符号ビット列は可変長符号（ハフマン符号）とこれに続く付加ビットを継続してなり、可変長符号は付加ビットのビット長またはビット長とゼロのランレングスとの組合わせを表す。変換回路１４は符号ビット列の可変長符号を復号し、可変長符号のビット長、付加ビットのビット長、ゼロのランレングス等を生成し、ラッチ１５を介して所望のデータを後続の付加ビット取出し部に送るものである。また、累算回路１６は変換回路１４から可変長符号および付加ビットのトータルのビット長を知り、バレルシフタ１３やラッチのシフトを制御するものである。また、ＥＯＢ検出用のラッチ１７はＥＯＢの検出によりつぎにＤＣ係数が来ることを通知するものである。
【０００８】
すなわち、従来の構成では、符号ビット列のなかの複数ビットを保持するレジスタまたはラッチ１１、１２を複数設け、このレジスタに保持された符号ビット列の中から復号に必要な有効ビット列をセレクタまたはバレルシフタ１３を用いて取り出す。そして、この有効ビット列をＲＯＭまたはＰＬＡなどで構成された変換回路１４に入力し、変換回路１４の出力の一部を復号データとして出力する。また変換回路１４の出力の他の一部を用いて前記レジスタ１１、１２の内容の更新と前記セレクタ１３による次の有効ビット列の取り出しを制御し、変換回路１４の出力の他の一部を用いて可変長符号の後に付加されている付加情報ビットの取り出しを制御するようにしている。
【０００９】
ところで、上記の多階調画像符号化方式による符号の復号において、ＤＣ係数の可変長符号の復号とＡＣ係数の可変長符号の復号では違う変換回路を用いる必要があるが、従来技術に示した復号装置では変換回路を適切に使い分けることができない。特開平４−１３３５２２号公報に示された復号回路では、符号列中のＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）符号を検出することによって変換回路を切り替える回路としているが、ＡＣ係数の６３番目が非ゼロの場合はブロックの最後にＥＯＢ符号が出力されないので、正しく切り替えることはできない。
【００１０】
また、可変長符号の復号装置から出力される復号データは、次段の逆量子化装置へ入力されるが、現在出力している復号データがＤＣＴ係数の何番目なのかという情報を出力していないため、逆量子化装置において逆量子化に用いる量子化テーブルを管理する必要がある。
【００１１】
【発明が解決しようとする課題】
本発明は、以上の事情を考慮してなされたものであり、ＡＣ係数の可変長符号とＤＣ係数の可変長符号とを簡易かつ確実に区別できるようにすることを目的としている。
【００１２】
【課題を解決するための手段】
本発明の可変長符号の復号装置は、複数ビット並列に入力される符号ビット列を保持するための第一のレジスタと、第一のレジスタに新たな符号ビット列が書き込まれた時に、それまで第一のレジスタに保持されていた符号ビット列を保持するための第二のレジスタと、第一と第二のレジスタに保持されている符号ビット列から復号すべき符号ビット列を取り出すためのセレクタと、復号すべき符号ビット列を入力として、復号データ、可変長符号の符号長、可変長の付加情報ビットのビット長、可変長符号の符号長と可変長の付加情報ビットのビット長を加算した復号済符号長を出力する変換回路と、変換回路から出力される復号済符号長を用いて第一と第二のレジスタの内容を更新し、次に復号する符号ビット列の取り出し位置をセレクタに指示し、本装置に符号を出力している前段の装置に対して新たな符号ビット列を要求する制御回路と、復号データに含まれるＡＣ係数のゼロのランレングスとＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）符号を用いて現在復号しているＤＣＴ係数がブロックのなかの何番目のＤＣＴ係数かを管理するＤＣＴ係数位置レジスタと、ＤＣＴ係数位置レジスタの出力を用いてＤＣ係数用の変換回路とＡＣ係数用の変換回路を切り替える装置と、前記セレクタの出力と前記変換回路の出力とＤＣＴ係数位置レジスタの出力を後段の装置に出力するためのレジスタとを含んで構成される。
【００１３】
以上のように復号装置を構成することによって、１クロックサイクルで必ず１つの可変長符号を解釈し復号することができ、復号スピードを保証することができる。また、可変長符号に付加される付加情報ビットも次段の回路で容易に取り出すことができる。また、ＤＣＴ係数位置レジスタを備えたことによって、ＤＣ係数用の変換回路とＡＣ係数用の変換回路を適切にきりかえることができる。さらに、ＤＣＴ係数位置レジスタの出力が後段の回路へ出力されているので、逆量子化回路では、この値を用いて量子化テーブルから必要な量子化ステップ値を容易に得ることができる。
【００１４】
【発明の実施の態様】
以下、本発明の実施例について説明する。
【００１５】
図１は本発明の実施例の可変長復号装置（付加ビット検出用前段）の構成を全体として示しており、この図において、可変長復号装置は、第一のレジスタ１０１、第二のレジスタ１０２、符号セレクタ回路１０３、変換回路１０４、復号起動回路１０５、符号選択制御回路１０６、ＤＣＴ係数位置レジスタ１０７、出力レジスタ１０８を含んで構成されている。
【００１６】
前段の装置から入力される符号ビット列ＣｏｄｅＩｎは、第一のレジスタ１０１に保持される。第一のレジスタ１０１のビット数は、可変長符号の最大符号長と可変長付加情報ビットの最大ビット長を加えた値以上でなければならない。ＪＰＥＧ方式の一般的な符号化方法では、最大符号長は１６ビット、最大付加情報ビット長は１１ビットなので、レジスタ１０１のビット数は２７ビット以上必要である。電子回路への実装が容易となるように、本実施例ではレジスタ１０１のビット数は３２ビットとする。このレジスタは図２のようにマルチプレクサ１１１とフリップフロップ１１１とを接続し、さらにこれを並列に配列することによって実現することができる。第一のレジスタ１０１への符号ビット列のロードはロード信号で制御される。
【００１７】
第二のレジスタ１０２は、第一のレジスタ１０１と同様に構成され、第一のレジスタ１０１に新たな符号ビット列がロードされたときに、それまで第一のレジスタ１０１に保持されていた符号ビット列をロードする。このロード動作は、第二のレジスタ１０２に保持されている符号ビット列の復号が全て終了した時に行なわれる。
【００１８】
第一のレジスタ１０１の符号３２ビットと第二レジスタ１０２の符号３２ビットは連結されて、６４ビットの符号列ｂｉｔ６３−０として符号セレクタ１０３に入力される。本実施例では、３２ビットの符号列のＭＳＢ側から順に符号が詰められているものとする。この場合、６４ビットの上位半分の３２ビットは第二レジスタ１０２の符号３２ビットとし、下位３２ビットは第一レジスタ１０１の符号３２ビットとし、第一と第二のレジスタのＭＳＢ側が連結後の符号ビット列のＭＳＢ側となるように連結する。
【００１９】
セレクタ回路１０３は、図３に示すように５ビットのセレクト信号によって、入力された６４ビットの符号列ｂｉｔ６３−０から２７ビットの符号ｃｏｄｅ２６−０を切り出して出力する。セレクト信号が’０００００’の場合はビット６３−３７を出力し、セレクト信号の値が１増加するごとに１ビット下位にずれた位置の符号を切り出し、セレクト信号が’１１１１１’の場合はビット３２−６を出力する。セレクタ回路１０３は、マルチプレクサを多段階、並列に接続して実現することができる。
【００２０】
セレクタ回路１０３から出力される２７ビットの符号列のうち、可変長符号を含む上位１６ビットはハフマン符号テーブルによる変換を行う変換回路１０４に入力する。変換回路１０４の入力と出力の例として、ＪＰＥＧ方式の画像符号化において画像の輝度成分を復号する場合に一般的に用いられる変換テーブルの入力と出力を図４に示す。
【００２１】
変換回路１０４の入力ｔａｂｌｅ−ｉｎ１６−０の最上位ビットはＤＣ係数用の変換テーブルとＡＣ係数用の変換テーブルを切り換える信号を入力する。入力の残り１６ビットは、セレクタ回路１０３の出力の上位１６ビットを入力する。図４の例において、セレクタ回路１０３からの入力ビットとして１６ビット未満の入力パターンしか示されていないワードがあるが、これは不足分の下位ビットがドントケアであることを示している。例えば、３行目の入力パターンは’０１１’となっているが、これは入力された符号列のうち上位３ビットが’０１１’ならば、残りの１３ビットの値にかかわらず、出力は右に示されている’００１０１  ００００  ００１０’であることを示している。
【００２２】
変換回路１０４の出力としては、復号データ、可変長符号の符号長、可変長の付加情報ビットのビット長、可変長符号の符号長と可変長の付加情報ビットのビット長を加算した復号済符号長の４つの情報が必要である。しかし、このうちの復号データ以外の３つについては、２つが判っていれば残り１つを容易に得ることができるので、かならずしも３つ全てを変換回路１０４から出力する必要はない。図４の例の出力信号ｔａｂｌｅ−ｏｕｔ１２−０では、上位５ビットは可変長符号の符号長と可変長の付加情報ビットのビット長を加算した復号済符号長、次の４ビットはＡＣ係数列中のゼロのランレングスを示す復号データ、最下位の４ビットは付加情報ビットのビット長である。
【００２３】
復号テーブルによる変換回路１０４の実装方法の一例として、図４のような入出力の関係を論理合成ツールに与えて、この関係を満足する論理回路を自動合成する方法がある。図４の例の復号テーブルの場合は、論理セル数が７００以下、入力から出力までの遅延時間が論理セル１５段分以下という、小規模で高速な回路で実装することができる。
【００２４】
変換回路１０４の他の実装方法の一例として、ＲＯＭ、ＲＡＭなどのメモリ回路による実装がある。この場合、図４の例の復号テーブルを実装するためには、アドレス入力１７ビット、データ出力１３ビット必要である。よって回路規模は、１３ビット×１３１０７２ワードとなる。ＲＡＭを用いて実装した場合は、回路の動作中に適切なタイミングでＲＡＭの内容を書き換えることによって、複数の符号化・復号化テーブルに対応することができるという利点がある。
【００２５】
復号起動回路１０５の構成例を図５に示す。復号起動回路１０５はステートロジック１１２およびラッチ１１３を含む。Ｓｔａｒｔ信号によってＳｔａｔｅが変化する例を図６に示す。この例では、Ｓｔａｒｔ信号がＬになるとＳｔａｔｅは’００’になり、Ｓｔａｒｔ信号がＨになると次のクロックサイクルからＳｔａｔｅは’０１’→’１０’→’１１’と変化し、次にＳｔａｒｔ信号がＬになるまでＳｔａｔｅは’１１’に留まる。Ｓｔａｔｅが’００’のときは回路は停止状態である。Ｓｔａｔｅが’０１’と’１０’のときは、第一のレジスタ１０１と第二のレジスタ１０２に最初の２ワード（６４ビット）の符号列をロードしており、復号は開始されていない。Ｓｔａｔｅが’１１’のときは、１サイクルに１符号が復号され、必要に応じて第一のレジスタ１０１と第二のレジスタ１０２に新たな符号列がロードされる。
【００２６】
符号選択制御回路１０６の構成例を図７に示す。符号選択制御回路１０６は加算器１１６、第一のスタートロジック１１４、第二のスタートロジック１１５、ラッチ１１７を含む。この制御回路１０６から出力されるセレクト信号によってセレクタ回路１０３をきりかえて、ロード信号によって第一のレジスタ１０１と第二のレジスタ１０２と復号装置の前段にあって符号ビット列を出力する装置を制御する。セレクト信号は、変換回路１０４の出力の上位５ビットｔａｂｌｅ−ｏｕｔ１２−８を加算することによって毎サイクル更新する。ロード信号は、加算器１１６のキャリーアウトを出力する。また、復号装置が起動するときは、起動回路１０５のＳｔａｔｅ信号によって、セレクト信号とロード信号は、図８のように出力される。
【００２７】
ＤＣＴ係数位置レジスタ１０７の構成例を図９に示す。ＤＣＴ係数位置レジスタ１０７は、ＮＡＮＤ回路１１８、ＡＮＤ回路１２１、ＮＯＲ回路１１９、１２０、ＯＲ回路１２２、ラッチ１２３、加算器１２４、増分器１２５を含んで構成されている。ＤＣＴ係数位置レジスタ１０７の出力ＣｏｅｆＰｏｓｉｔｉｏｎは、変換回路１０４の出力ｔａｂｌｅ−ｏｕｔ７−４と’１’を加算することによって毎サイクル更新する。復号装置が起動するときは、Ｓｔａｔｅが’１１’になるまで、ＣｏｅｆＰｏｓｉｔｉｏｎ＝’００００００’とする。また、変換回路４は、ＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）に対して、ｔａｂｌｅ−ｏｕｔ７−０＝’００００００００’を出力するので、この場合もＣｏｅｆＰｏｓｉｔｉｏｎ＝’００００００’とする。また、ＣｏｅｆＰｏｓｉｔｉｏｎ＝’００００００’のときはＤＣ／ＡＣ＝’０’とし、それ以外の場合はＤＣ／ＡＣ＝’１’として、変換回路１０４のＤＣ係数用の変換テーブルとＡＣ係数用の変換テーブルを切り換える。なお、図１に破線で示すように符号セレクタ回路１０３からの符号ビット列（ＴａｂｌｅＩｎ１６−０）を直接にＤＣＴ係数位置レジスタ１０７に供給してＥＯＢを検出してＤＣ／ＡＣ＝’０’としてもよい。
【００２８】
セレクタ回路１０３の出力、変換回路１０４の出力、ＤＣＴ係数位置レジスタ１０７の出力は、出力レジスタ１０８で同期をとって次段の回路に出力する。レジスタ１０８は、フリップフロップを並列に接続して構成できる。
【００２９】
この回路の次段に接続する回路の構成例を図１０に示す。次段の回路は、ＤＣＴ係数セレクタ回路１２６、差分符号復号回路１２７、マルチプレクサ１２８、乗算器１２９、量子化係数出力回路１３０、ランレングス符号復号回路１３１を含んで構成されている。変換回路１０４から出力される符号長と付加情報ビット長を使って、セレクタ回路１０３から出力される符号ビット列から量子化されたＤＣＴ係数を得る。ＤＣ係数の場合は、前ブロックとの差分からＤＣＴ係数に戻す。ＤＣＴ係数位置レジスタ１０７の出力を使って量子化テーブルから量子化ステップを得、乗算器１２９で逆量子化する。このように、可変長符号復号装置にＤＣＴ係数位置レジスタ１０７を設けたことによって、次段の回路を単純な構成とすることができ、高速動作が可能な回路とすることができる。
【００３０】
【発明の効果】
本発明によれば、１クロックサイクルで必ず１つの可変長符号を解釈し復号することができ、符号長によらず復号スピードを保証することができる。また、可変長符号に付加される付加情報ビットも次段の回路で容易に取り出すことができる。また、ＤＣＴ係数位置レジスタを備えたことによって、ＤＣ係数用の変換回路とＡＣ係数用の変換回路を適切にきりかえることができる。さらに、ＤＣＴ係数位置レジスタの出力が次段の回路へ出力されているので、逆量子化回路では、この値を用いて量子化テーブルから必要な量子化ステップ値を容易に得ることができる。
【図面の簡単な説明】
【図１】本発明の実施例を全体として示すブロック図である。
【図２】第一と第二のレジスタを構成する１ビット分のレジスタの構成例を示すブロック図である。
【図３】符号セレクタ回路の構成例を示すブロック図である。
【図４】変換回路の入出力関係の一例を示す図である。
【図５】復号起動回路の構成例を示すブロック図である。
【図６】復号起動回路の入出力信号波形を示す波形図である。
【図７】第一と第二のレジスタとセレクタ回路を制御する符号選択制御回路の構成例を示すブロック図である。
【図８】符号選択制御回路の起動時の動作を説明する図である。
【図９】ＤＣＴ係数位置レジスタの構成例を示すブロック図である。
【図１０】本発明の可変長符号の復号装置の次段に接続する回路を全体として示すブロック図である。
【図１１】従来技術を示すブロック図である。
【符号の説明】
１０１    符号ビット列を保持する第一のレジスタ
１０２    符号ビット列を保持する第二のレジスタ
１０３    符号セレクタ回路
１０４    変換回路
１０５    復号起動回路
１０６    符号選択制御回路
１０７    ＤＣＴ係数位置レジスタ
１０８    出力レジスタ
【図１】
0003622473.tif 000002
【図２】
0003622473.tif 000003
【図３】
0003622473.tif 000004
【図４】
0003622473.tif 000005
【図５】
0003622473.tif 000006
【図６】
0003622473.tif 000007
【図７】
0003622473.tif 000008
【図８】
0003622473.tif 000009
【図９】
0003622473.tif 000010
【図１０】
0003622473.tif 000011
【図１１】
0003622473.tif 000012