(57)【要約】【課題】回路規模の増大をある程度に抑えて、クロック周波数を上げることができ、復号結果の出力速度を高速にできる復号装置を提供すること。【解決手段】本発明は、所定の情報に対して可変長のビット列からなる符号語を割り当てて符号化した符号データを復号するための復号装置において、１つの符号語の入力に対して復号情報を出力する第１の復号テーブルＴ１と、情報量が所定量より少ない符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルＴ２と、第１の復号テーブルＴ１の出力と第２の復号テーブルＴ２の出力とのどちらか一方を選択するためのセレクタ４とを備えている。【選択図】　　　　図１
2004056417.tif 000002
【特許請求の範囲】
【請求項１】
所定の情報に対して可変長のビット列からなる符号語を割り当てて符号化した符号データを復号するための復号装置において、
１つの符号語の入力に対して復号情報を出力する第１の復号テーブルと、
情報量が所定量より少ない符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルと、
前記第１の復号テーブルの出力と前記第２の復号テーブルの出力とのどちらか一方を選択するための選択手段と
を備えることを特徴とする復号装置。
【請求項２】
ＤＣＴ（離散コサイン変換）と可変長符号を組み合わせて用い、ＤＣＴ係数の数列の連続するゼロ係数とその後の非ゼロ係数に可変長ビットの符号語を割り当てた画像符号化方式で符号化された符号データを復号するための復号装置において、
全ての種類の符号語のうち１個の符号語が現れたときに復号情報を出力する第１の復号テーブルと、
ゼロランがある所定量より少ない情報に割り当てられた符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルと、
前記第１の復号テーブルの出力と前記第２の復号テーブルの出力とのどちらか一方を選択するための選択手段と
を備えることを特徴とする復号装置。
【請求項３】
所定の情報に対して可変長のビット列からなる符号語を割り当てて符号化した符号データを復号するための復号方法において、
１つの符号語の入力に対して復号情報を出力する第１の復号テーブルと、情報量が所定量より少ない符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルと、前記第１の復号テーブルの出力と前記第２の復号テーブルの出力とのどちらか一方を選択するための選択手段とを備える復号装置を用い、
符号データを前記第１の復号テーブルと前記第２の復号テーブルとの両方に与えて復号を並列におこない、前記第２の復号テーブルによって複数符号語が同時に復号された場合は前記選択手段によって前記第２の復号テーブルの出力を選択し、
前記第２の復号テーブルによって復号できなかった場合は前記選択手段によって前記第１の復号テーブルの出力を選択する
ことを特徴とする復号方法。
【請求項４】
ＤＣＴ（離散コサイン変換）と可変長符号を組み合わせて用い、ＤＣＴ係数の数列の連続するゼロ係数とその後の非ゼロ係数に可変長ビットの符号語を割り当てた画像符号化方式で符号化された符号データを復号するための復号方法において、
全ての種類の符号語のうち１個の符号語が現れたときに復号情報を出力する第１の復号テーブルと、ゼロランがある所定量より少ない情報に割り当てられた符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルと、前記第１の復号テーブルの出力と前記第２の復号テーブルの出力とのどちらか一方を選択するための選択手段とを備える復号装置を用い、
符号データを前記第１の復号テーブルと前記第２の復号テーブルとの両方に与えて復号を並列におこない、前記第２の復号テーブルによって複数符号語が同時に復号された場合は前記選択手段によって前記第２の復号テーブルの出力を選択し、
前記第２の復号テーブルによって復号できなかった場合は前記選択手段によって前記第１の復号テーブルの出力を選択する
ことを特徴とする復号方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハフマン符号などの可変長符号の復号装置に関し、特に復号速度が高速である復号装置に関する。
【０００２】
【従来の技術】
データの伝送時の高速化、蓄積時の効率化のために、データ圧縮、データ符号化の技術が広く用いられている。画像データの圧縮符号化については様々な方式があるが、その中の１つとして、ＤＣＴ（離散コサイン変換）とハフマン符号などの可変長符号化を組み合わせた方式が用いられている。この方式の代表的な例としてＪＰＥＧ方式がある。
【０００３】
このようなＤＣＴと可変長符号化を組み合わせた方式による画像符号化について図２をもとに説明する。フルカラーの画像の場合は、複数の色成分を、Ｙ−Ｃｂ−Ｃｒや、Ｒ−Ｇ−Ｂや、Ｙ−Ｍ−Ｃ−Ｋなどのように、単色成分に分離して、それぞれの色成分ごとに独立して処理する。画像の中の８×８画素の領域を、ＤＣＴ、量子化、ジグザグ変換によって、６４個の係数の数列に変換する。
【０００４】
この数列の中で、連続するゼロとその後に現れる非ゼロの係数に対して、可変長のビット列の符号語シンボル１個を割り当てる。非ゼロの係数が連続するときは、係数１個に符号語シンボル１個を割り当てる。この符号語のビット列の集合が符号ファイルである。以上は、符号化の過程について説明したが、この過程を逆にたどることによって符号ファイルを復号し画像を得ることができる。
【０００５】
このような方式の復号をおこなうための装置の従来例としては、特開平５−６３５８６号公報に開示されて復号装置がある。図５をもとに、この装置について説明する。符号入力部１１は記憶手段（図示せず）を備えており、符号ビット列中の処理中の複数ビットを保持する。
【０００６】
符号切り出し部１２は、符号入力部１１が保持するビット列の中から、復号処理が終わっていない部分を切り出すための選択回路（図示せず）を備える。この符号切り出し部１２は、バレルシフタなどの回路で実装される。切り出された符号ビット列は、復号のためのテーブルＴに入力される。
【０００７】
テーブルＴは、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）や、それと同等の動作をするＰＬＤ（ｐｒｏｇｒａｍｍａｂｌｅ　ｌｏｇｉｃ　ｄｅｖｉｃｅ）、組み合わせ論理回路などで実装される。テーブルＴの出力は、後段の復号結果出力部１５を介して逆量子化回路、ＩＤＣＴ（逆離散コサイン変換）回路に出力される。
【０００８】
テーブルＴからは、復号した可変長符号の符号長も出力され、この値は符号位置管理部１３で累積加算され、次の符号語の切り出し位置を決めたり、符号入力部１１に次の符号ビット列を取り込むために使う。
【０００９】
このような装置をクロック信号に同期させて動作させると、１クロックサイクルに１シンボルを復号することができる。このように、符号切り出し部、復号テーブルを持ち、復号済みの符号のビット長を累積加算することによって、１クロックサイクルに１シンボルをデコードする例は、この公報以外にも多数公開されている。
【００１０】
別の従来例として、特開平９−２４６９８８号公報に開示される技術がある。この技術では、複数シンボルを１サイクルで復号するために複数の復号テーブル（デコードＲＡＭ）を備えている。しかし、第１のテーブルの出力を第２のテーブルの入力とするような構成になっているので、回路のクリティカルパス（遅延時間が最大の信号伝播経路）が長くなり、動作クロックの周波数を上げられない。例えば、前例の回路が１００ＭＨｚで１クロックサイクルに１シンボルをデコードし、この例の回路が５０ＭＨｚで１クロックサイクルに２シンボルをデコードするならば、復号結果の出力速度は変わらないことになる。
【００１１】
さらに別の従来例として、特開平８−２６５１６５号公報に開示される技術がある。この技術では、１サイクルに２シンボルをデコードするために、クロック信号の上昇エッジと下降エッジの両方をつかっており、やはりクロック周波数を上げられない。むしろ、回路が複雑化するため、動作速度が低下してしまう。
【００１２】
さらに別の従来例として、特開平９−２６１０７６号公報に開示される技術がある。この技術では、１回の復号テーブルアクセスで複数のシンボルをデコードするために、複数シンボルが連続して表れるビット列に対する復号情報をテーブルに持っている。
【００１３】
例えばＪＰＥＧ（Ｊｏｉｎｔ　Ｐｈｏｔｏｇｒａｐｈｉｃ　ｃｏｄｉｎｇ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）方式では、前述の例のように１サイクルに１シンボルを復号する場合のテーブルのエントリ数は約１６０である。しかし、この例の方法で１サイクルに２シンボルを復号する場合は１６０×１６０＝２５６００エントリ、１サイクルに３シンボルを復号する場合は１６０×１６０×１６０＝４０９６０００エントリ必要となり、テーブルが巨大化する。
【００１４】
さらに別の従来例として、特開平７−２４９９９４号公報に開示される技術がある。図６をもとに、この例について説明する。この例では、１サイクル２シンボル復号するために、１個目のシンボル用のテーブル１面と、２個目のシンボル用のテーブルを複数面備えている。
【００１５】
すなわち、符号入力部２１は記憶手段（図示せず）を備えており、符号ビット列中の処理中の複数ビットを保持する。符号切り出し部２２は、符号入力部２１が保持するビット列の中から、復号処理が終わっていない部分を切り出すための選択回路（図示せず）を備える。
【００１６】
２個目のシンボル用のテーブルは、１個目のシンボルのビット長が分かる前に２個目のシンボルのデコードができるように、１個目のシンボルのビット長として予測される分だけ符号ビット列をずらして複数用意されている。
【００１７】
１個目のシンボルのビット長が確定したら、２個目のシンボル用の複数のテーブルの出力からセレクタ２４によって１個だけを選んで２個目のシンボルの復号結果とする。セレクタ２４からの出力は、後段の復号結果出力部２５を介して逆量子化回路、ＩＤＣＴ（逆離散コサイン変換）回路に出力される。
【００１８】
また、テーブルからは、復号した可変長符号の符号長も出力され、この値はセレクタ２４を介して符号位置管理部２３で累積加算され、次の符号語の切り出し位置を決めたり、符号入力部２１に次の符号ビット列を取り込むために使う。
【００１９】
この例では、回路のクリティカルパスがあまり長くならないので、高速動作が期待できる。しかし、ＪＰＥＧの符号をこの回路で復号するためには２個目のシンボル用の復号テーブルが２４面も必要になる。
【００２０】
【発明が解決しようとする課題】
上記従来例のように、１クロックサイクルに１シンボルを復号する回路は、比較的容易に達成できるが、それ以上の復号速度を得るのは困難であった。クリティカルパスが長くなりクロック周波数を上げられず復号結果の出力速度があまり変わらなかったり、回路規模が膨大になりコストに見合ったパフォーマンス効果が得られないといった問題がある。そこで、本発明では、回路規模の増大をある程度に抑えて、クロック周波数を上げることができ、復号結果の出力速度を高速にできる復号装置を提供することを目的とする。
【００２１】
【課題を解決するための手段】
本発明は、このような課題を解決するために成されたものである。すなわち、本発明は、所定の情報に対して可変長のビット列からなる符号語を割り当てて符号化した符号データを復号するための復号装置において、１つの符号語の入力に対して復号情報を出力する第１の復号テーブルと、情報量が所定量より少ない符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルと、第１の復号テーブルの出力と第２の復号テーブルの出力とのどちらか一方を選択するための選択手段とを備えている。
【００２２】
また、ＤＣＴ（離散コサイン変換）と可変長符号を組み合わせて用い、ＤＣＴ係数の数列の連続するゼロ係数とその後の非ゼロ係数に可変長ビットの符号語を割り当てた画像符号化方式で符号化された符号データを復号するための復号装置において、全ての種類の符号語のうち１個の符号語が現れたときに復号情報を出力する第１の復号テーブルと、ゼロランがある所定量より少ない情報に割り当てられた符号語が複数連続した符号語パターンの入力に対して複数符号語分の復号情報を出力する第２の復号テーブルと、第１の復号テーブルの出力と第２の復号テーブルの出力とのどちらか一方を選択するための選択手段とを備えるものでもある。
【００２３】
また、上記復号装置を用い、符号データを第１の復号テーブルと第２の復号テーブルとの両方に与えて復号を並列におこない、第２の復号テーブルによって複数符号語が同時に復号された場合は前記選択手段によって第２の復号テーブルの出力を選択し、第２の復号テーブルによって復号できなかった場合は選択手段によって第１の復号テーブルの出力を選択する復号方法でもある。
【００２４】
このような本発明では、多数のＤＣＴ係数に割り当てられた符号語シンボルは、第１の復号テーブルで１シンボルずつ復号され、少数のＤＣＴ係数に割り当てられた符号語シンボルは、第２の復号テーブルで複数個のシンボルをまとめて復号されるので、出力結果は多数のＤＣＴ係数に相当する情報になり、復号結果の出力速度が高速化される。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態を図に基づき説明する。図１は、本実施形態に係る復号装置を説明するブロック図である。すなわち、この復号装置は、符号入力部１、符号切り出し部２、第１の復号テーブルＴ１、第２の復号テーブルＴ２、復号テーブルＴ１、Ｔ２の出力を切換えるセレクタ４、復号結果出力部５、符号位置管理部３で構成される。
【００２６】
符号入力部１は、符号ファイルの先頭から順に符号ビット列を読み出して複数ビットを保持し、この複数ビットを並列に符号切り出し部に与える。保持しているビット列の復号がすすむと、復号済みのビット列を破棄して、新たなビット列を読み込む。符号切り出し部に符号ビット列を継続的に提供し続けるために、縦続接続された２段以上のシフトレジスタで構成する。
【００２７】
符号切り出し部２は、符号入力部１から提供されたビット列から、処理済みのビットと、未処理のビットを切り分ける。後段のテーブルへの出力は、テーブルアクセスのためのアドレスとして使うので、未処理のビットの先頭がアドレスの最上位ビットになるように出力する。バレルシフタなどで実装する。
【００２８】
符号位置管理部３は、符号入力部１から符号切り出し部２に渡されるビット列のどの位置が処理済ビットと未処理ビットの境目であるかを管理する。そのために、符号語シンボルを復号するたびに復号した符号のビット長を累積加算する。この符号位置管理部３は、符号切り出し部２に対してバレルシフタのシフト量を与える。さらに、符号入力部１に対して新たなビット列の読み込みを指示する信号を与える。
【００２９】
第１の復号テーブルＴ１では、すべての種類の符号語シンボルが１語だけ現れた場合に復号結果を得ることができる。テーブルは、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）や、それと同等の動作をするＰＬＤ（ｐｒｏｇｒａｍｍａｂｌｅ　ｌｏｇｉｃ　ｄｅｖｉｃｅ）、組み合わせ論理回路などで実装する。
【００３０】
符号切り出し部２から入力されるビット列は、復号テーブルＴ１のアドレス入力とする。出力は、復号した符号語シンボルのビット長、ゼロランの個数、符号語シンボルの後に付加されている付加ビットのビット長、符号語と付加ビットの合計のビット長などである。
【００３１】
ＪＰＥＧ（Ｊｏｉｎｔ　Ｐｈｏｔｏｇｒａｐｈｉｃ　ｃｏｄｉｎｇ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）の符号割り当ての場合は、符号語シンボルの種類は約１６０である。これを単純にＲＯＭに実装すると、同じデータを保持するアドレスが大量に存在してしまうので非効率である。復号テーブルの有効なエントリ１６０種類の情報を与えて、論理合成用のソフトウエアツールを用いて、ＲＯＭと同等の動作をする組み合わせ論理回路を生成すると回路規模を削減できる。
【００３２】
第２の復号テーブルＴ２では、ゼロランが小さい符号語シンボルが複数連続して現れた場合に復号結果を得ることができる。テーブルＴ２の入力は符号のビット列で、出力は、復号した符号語シンボルのビット長、ゼロランの個数、符号語シンボルの後に付加されている付加ビットのビット長、複数の符号語と付加ビットの合計のビット長などに加えて、複数シンボルの同時復号ができたのかできなかったのかを示す信号である。
【００３３】
例として、ＪＰＥＧの符号割り当てで、ゼロランがゼロのシンボルが２回連続して現れたときに同時復号する場合を考えてみる。ゼロランがゼロのシンボルは１０種類である。これが２個連続して現れる場合のパターンは１０×１０＝１００種類である。
【００３４】
これをＲＯＭに実装すると入力ビット数が増えるのでワード数の多いＲＯＭが必要になるが、前述のように論理合成ツールで組み合わせ論理回路を生成すると、テーブルのエントリ数で回路規模が決まるので、回路規模を削減できる。よって、第１のテーブルと第２のテーブルはほぼ同規模の回路になる。
【００３５】
復号テーブルの出力を切換えるセレクタ４は、第２の復号テーブルＴ２から出力される「複数シンボルの同時復号ができたのかできなかったのかを示す信号」によって、第１の復号テーブルＴ１の出力と第２の復号テーブルＴ２の出力とを切換える。
【００３６】
つまり、第２の復号テーブルＴ２で複数シンボルの復号ができた場合は第２の復号テーブルＴ２の出力を出力し、第２の復号テーブルＴ２で複数シンボルの復号ができなかった場合は第１の復号テーブルＴ１の出力を出力する。
【００３７】
復号結果出力部５は、符号切り出し部２から出力される符号ビット列と、セレクタ４からの出力とを同期をとって後段に出力する。後段では、これらの値からＤＣＴ（離散コサイン変換）係数の数列を復元し、さらに、逆量子化、ＩＤＣＴ（逆離散コサイン変換）をおこなって画像を復元する。
【００３８】
ここで、図２に示すように、１個の符号語シンボルを復号したときに、何個のＤＣＴ係数が得られるかは、ゼロの連続する数（ゼロラン）によってきまる。ゼロランの多い符号語シンボルを復号すると多数のＤＣＴ係数が得られ、ゼロランがゼロの符号語シンボルを復号すると１個のＤＣＴ係数しか得られない。
【００３９】
そこで、本実施形態では、上記のような復号装置を用いることで、ゼロランが少ない符号語シンボルを複数まとめて１サイクルで復号できるようにし、ゼロランが多い符号語シンボルは１個を１サイクルで復号する。
【００４０】
つまり、すべての種類の符号語シンボルが１語だけ現れた場合に復号結果を得るための第１の復号テーブルと、ゼロランが少ない符号語シンボルが連続して現れた場合に復号結果を得るための第２の復号テーブルとを持ち、両方のテーブルに同時に符号ビット列を入力し、第２のテーブルに該当する情報が有った場合は第２のテーブルの出力を復号結果とし、第２のテーブルに該当する情報が無かった場合は第１のテーブルの出力を復号結果とする。
【００４１】
これにより、多数のＤＣＴ係数に割り当てられた符号語シンボルは、第１の復号テーブルで１シンボルずつ復号され、少数のＤＣＴ係数に割り当てられた符号語シンボルは、第２の復号テーブルで複数個のシンボルをまとめて復号されるので、出力結果は多数のＤＣＴ係数に相当する情報になり、復号結果の出力速度が高速化される。
【００４２】
次に、本実施形態と従来技術との比較を行う。本実施形態（図１）と従来技術▲１▼（図５）、従来技術▲２▼（図６）とを比較する。これらの構成は、クリティカルパスの長さがほぼ同等なので、ほぼ同等のクロック周波数で動作すると仮定する。
【００４３】
ＪＰＥＧ方式の符号を復号する場合、従来技術▲１▼では１個のテーブルが必要である。従来技術▲２▼の場合は、１個目のシンボルのビット長によって必要なテーブルの個数が決まり、ＪＰＥＧ方式の場合は２４個のテーブルが必要である。本実施形態の場合は、ゼロランがゼロのシンボルを２個まとめて復号するならば、前述の実施例のように２面のテーブルが必要である。よって、回路規模を比較すると、
本実施形態：従来技術▲１▼：従来技術▲２▼　＝　２：１：２５
となる。
【００４４】
次に、復号速度を比較する。復号速度は、ＤＣＴ係数の数列にいくつゼロが出現するか、つまり処理する画像に依存する。ＤＣＴ係数にゼロがほとんど現れないような最悪値の場合で評価する。
【００４５】
まったくゼロが無かった場合を図３に示す。それぞれの構成での処理サイクル数は、従来技術▲１▼＝６４サイクル、従来技術▲２▼＝３３サイクル、本実施形態＝３３サイクルである。
【００４６】
本実施形態でサイクル数が最悪値になるのは、第２のテーブルが全く機能しないような場合である。このような場合の例を図４に示す。それぞれの構成での処理サイクル数は、従来技術▲１▼＝４３サイクル、従来技術▲２▼＝２２サイクル、本実施形態＝４３サイクルである。
【００４７】
図３と図４の場合を合わせて考えると、サイクル数の最悪値は、従来技術▲１▼＝６４サイクル、従来技術▲２▼＝３３サイクル、本実施形態＝４３サイクルである。よって、復号速度を比較すると、
本発明：従来技術▲１▼：従来技術▲２▼　＝　１．５　：１：２
となる。
【００４８】
まとめると、従来例▲１▼のように１サイクル１シンボルのよくある構成を基準に考えると、従来技術▲２▼は復号速度は２倍になっているが、回路規模が２５倍になっており、回路規模増大に見合った効果が得られていない。本技術は、復号速度１．５倍に対して、回路規模は２倍に抑えられている。
【００４９】
【発明の効果】
本発明の復号装置によれば、ゼロランの少ないシンボルを複数まとめて復号するので、ＤＣＴ係数の数列を少ないサイクル数で得ることができ、復号結果の画像を高速に得ることが可能となる。
【図面の簡単な説明】
【図１】本実施形態を説明する構成図である。
【図２】ＤＣＴとハフマン符号を組み合わせた画像符号化方式の説明図である。
【図３】復号速度を比較する説明図である。
【図４】復号速度を比較する説明図である。
【図５】従来例（その１）を示す構成図である。
【図６】従来例（その２）を示す構成図である。
【符号の説明】
１…符号入力部、２…符号切り出し部、３…符号位置管理部、４…セレクタ、５…復号結果出力部、Ｔ１…第１の復号テーブル、Ｔ２…第２の復号テーブル
【図１】
2004056417.tif 000003
【図２】
2004056417.tif 000004
【図３】
2004056417.tif 000005
【図４】
2004056417.tif 000006
【図５】
2004056417.tif 000007
【図６】
2004056417.tif 000008