(57)【要約】【課題】  画像サイズやフレームレートを下げずに高速な復号化処理を可能とする可変長符号復号化装置及び方法を提供する。【解決手段】  本発明による可変長符号復号化装置は、接頭語と接尾語を含む可変長符号を復号化する可変長符号復号化装置であって、入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力する接頭語復号化手段と、前記接頭語復号化手段から出力された前記接頭語長を基に、前記接尾語の頭出しをする接尾語頭出し手段と、前記接頭語復号化手段から出力された前記接頭語に対応するシンボルと、前記接尾語頭出し手段によって頭出しされた前記接尾語と、予め与えられた接尾語長を基に、可変長符号に対応するシンボルを復号化するシンボル復号化手段と、を備えることを特徴とする。【選択図】 図１３
2006157157.tif 000002
【特許請求の範囲】
【請求項１】
接頭語と接尾語を含む可変長符号を復号化する可変長符号復号化装置であって、
入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力する接頭語復号化手段と、
前記接頭語復号化手段から出力された前記接頭語長を基に、前記接尾語の頭出しをする接尾語頭出し手段と、
前記接頭語復号化手段から出力された前記接頭語に対応するシンボルと、前記接尾語頭出し手段によって頭出しされた前記接尾語と、予め与えられた接尾語長を基に、可変長符号に対応するシンボルを復号化するシンボル復号化手段と、
を備えることを特徴とする可変長符号復号化装置。
【請求項２】
さらに、前記接頭語復号化手段から出力された前記接頭語長と、前記予め与えられた接尾語長を基に、可変長符号長を算出する符号長算出手段と、
前記符号長算出手段によって算出された前記可変長符号長を基に、次に復号する可変長符号の頭出しをする可変長符号頭出し手段と、
を備えることを特徴とする請求項１に記載の可変長符号復号化装置。
【請求項３】
さらに、前記シンボル復号化手段により復号化されたシンボルに基づいて、後続する可変長符号の接尾語長を算出する接尾語長算出手段を備えることを特徴とする請求項１又は２に記載の可変長符号復号化装置。
【請求項４】
それぞれが接頭語と接尾語を含む、Ｎ個の互いに隣接する可変長符号を復号化する可変長符号復号化装置であって、
入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力するＮ個の接頭語復号化手段と、
前記接頭語復号化手段から出力された前記接頭語長を基に、前記接尾語の頭出しをするＮ個の接尾語頭出し手段と、
前記接頭語復号化手段から出力された前記接頭語に対応するシンボルと、前記接尾語頭出し手段によって頭出しされた前記接尾語と、既に復号化済みのシンボルに基づいて算出された前記接尾語長を基に、可変長符号に対応するシンボルを復号化するＮ個のシンボル復号化手段と、
を備えることを特徴とする可変長復号化装置。
【請求項５】
さらに、前記接頭語復号化手段から出力された前記接頭語長と、前記接尾語長算出手段により算出された前記接尾語長を基に、可変長符号長を算出するＮ個の符号長算出手段と、
前記符号長算出手段により算出された前記可変長符号長を基に、次の可変長符号の頭出しをするＮ個の可変長符号頭出し手段と、
を備えることを特徴とする請求項４に記載の可変長符号復号化装置。
【請求項６】
さらに、前記シンボル復号化手段により復号化されたシンボルに基づいて、後続する可変長符号の接尾語長を算出するＮ個の接尾語長算出手段を備えることを特徴とする請求項４又は５に記載の可変長符号復号化装置。
【請求項７】
接頭語と接尾語を含む可変長符号を復号化する可変長符号復号化方法であって、
入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力する接頭語復号化工程と、
前記接頭語復号化工程で出力された前記接頭語長を基に、前記接尾語の頭出しをする接尾語頭出し工程と、
前記接頭語復号化工程で出力された前記接頭語に対応するシンボルと、前記接尾語頭出し工程で頭出しされた前記接尾語と、予め与えられた接尾語長を基に、可変長符号に対応するシンボルを復号化するシンボル復号化工程と、
を備えることを特徴とする可変長符号復号化方法。
【請求項８】
さらに、前記接頭語復号化工程で出力された前記接頭語長と、前記予め与えられた接尾語長を基に、可変長符号長を算出する符号長算出工程と、
前記符号長算出工程で算出された前記可変長符号長を基に、次に復号する可変長符号の頭出しをする可変長符号頭出し工程と、
を備えることを特徴とする請求項７に記載の可変長符号復号化方法。
【請求項９】
さらに、前記シンボル復号化工程で復号化されたシンボルに基づいて、後続する可変長符号の接尾語長を算出する接尾語長算出工程を備えることを特徴とする請求項７又は８に記載の可変長符号復号化方法。
【請求項１０】
それぞれが接頭語と接尾語を含む、互いに隣接するＮ個の可変長符号を復号化する可変長符号復号化方法であって、
入力されたＮ個の可変長符号の接頭語を復号化し、前記Ｎ個の接頭語に対応するＮ個のシンボルと接頭語長を出力する接頭語復号化工程と、
前記接頭語復号化工程で出力された前記Ｎ個の接頭語長を基に、前記Ｎ個の接尾語の頭出しをする接尾語頭出し工程と、
前記接頭語復号化工程から出力された前記Ｎ個の接頭語に対応するＮ個のシンボルと、前記接尾語頭出し工程で頭出しされた前記Ｎ個の接尾語と、既に復号化済みのシンボルに基づいて算出された前記Ｎ個の接尾語長を基に、Ｎ個の可変長符号に対応するシンボルを復号化するシンボル復号化工程と、
を備えることを特徴とする可変長復号化方法。
【請求項１１】
さらに、前記接頭語復号化工程で出力された前記Ｎ個の接頭語長と、前記接尾語長算出工程で算出された前記Ｎ個の接尾語長を基に、Ｎ個の可変長符号長を算出する符号長算出工程と、
前記符号長算出工程で算出された前記Ｎ個の可変長符号長を基に、次のＮ個の隣接する可変長符号の頭出しをする可変長符号頭出し工程と、
を備えることを特徴とする請求項１０に記載の可変長符号復号化方法。
【請求項１２】
さらに、前記シンボル復号化工程で復号化されたＮ個のシンボルに基づいて、後続するＮ個の可変長符号の接尾語長を算出する接尾語長算出工程を備えることを特徴とする請求項１０又は１１に記載の可変長符号復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像や動画像の符号化ストリームの復号化装置及び方法に関し、特に、例えば、接頭語と接尾語を含む可変長符号を復号化する可変長符号復号化装置及び方法に関する。
【背景技術】
【０００２】
静止画像や動画像などの画像信号の伝送や蓄積再生を行うために、画像信号の符号化技術が用いられる。そのような技術として、静止画像の符号化技術としてはＣＣＩＴＴ  Ｒｅｃ．  Ｔ．８１（ＪＰＥＧ）、動画像の符号化技術としてはＩＳＯ／ＩＥＣ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  １４４９６−２（ＭＰＥＧ−４  Ｖｉｓｕａｌ）などの国際標準化符号化方式が知られている。
【０００３】
また、より新しい符号化方式として、ＩＴＵ−Ｔ  とＩＳＯ／ＩＥＣとの合同国際標準化による動画像符号化方式、ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ．２６４  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｜  ＩＳＯ／ＩＥＣ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  １４４９６−１０  （ＭＰＥＧ−４  ＡＶＣ）、以下Ｈ．２６４と呼ぶ、が知られている。
【０００４】
画像信号では、空間的に隣接する画素間の相関が大きいことから、周波数領域へ変換すると低周波領域に情報が偏ることとなり、この偏りを利用した冗長の削減が可能となる。そこで一般的な画像符号化方式では、画像信号に直交変換を行い周波数領域における直交変換係数へと変換して信号成分を低周波領域に偏らせ、さらにこの係数値に対して量子化を行い値の小さな係数をゼロ値とする。これ低周波領域の係数から順に読み出して係数列とした上で、係数値の偏りを利用したエントロピー符号化を行い、冗長を削減した効率的な符号化を実現する。
【０００５】
この場合に直交変換としては、符号化効率や実装の容易さの点から、離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、ＤＣＴ）が広く用いられている。ＤＣＴなどによる直交変換は、画像信号を複数の画素から構成されるブロックに分割してこのブロックの単位で行われる。
【０００６】
画像信号における空間的な性質の変化が小さければ、同じような周波数領域の直交変換係数に変換される画像信号が画像上で広く分布していることから、ブロックの大きさ、すなわち直交変換の大きさを大きくすることにより、小さなブロックを用いた場合に同じ直交変換係数を繰り返し表現する必要が生じてしまうことと比較して、より冗長を削減することができるようになり符号化効率が向上する。他方で画像信号における空間的な性質の変化が大きければ、ブロックの大きさを大きくしてしまうと、その直交変換係数には様々な周波数成分が含まれて係数の偏りが小さくなることから、効率的なエントロピー符号化を行うことが困難となり、符号化効率は悪化してしまう。
【０００７】
直交変換により得られた直交変換係数に対するエントロピー符号化は、Ｈ．２６４においては、直交変換係数を高周波領域の係数から順に読み出した係数列について行われる。図１Ａに４×４画素の直交変換ブロックにおける係数の読み出し順を示す。直交変換を行って得られる係数は左上を最も低周波の成分（すなわち直流成分）として配置されることから、例えば図１Ｂに示すような直交変換ブロックの左上の係数から順に読み出しを行うことにより、図１Ｃに示すような１６個の係数からなる係数列を得る。このような読み出し順はジグザグスキャンと呼ばれる。
【０００８】
直交変換により得られた係数は互いに無相関化されており、また信号成分が低周波領域に偏ることから、これをさらに量子化した場合には、低周波領域の係数ほど非ゼロの係数値となり、また係数列中にゼロ値となる係数が数多く現れる。例えば、図１Ｃに示すような係数値の並びとなる。そこでこのような分布の係数列を効率よくエントロピー符号化するために、画像符号化においては一般的に、係数列を非ゼロ係数に先行するゼロ係数の連続数（ラン）および非ゼロ係数の係数値（レベル）により表現して符号化を行う。
【０００９】
このようなエントロピー符号化を行う際により効率を高めるために、コンテキスト適応可変長符号（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ、ＣＡＶＬＣ）と呼ばれる技術がＨ．２６４において採用されている。
【００１０】
Ｈ．２６４におけるＣＡＶＬＣでは、４×４画素の直交変換ブロックから得られる係数列に含まれる係数が最大でも１６個であり、ランの大きさはこの最大数により制限されること、またレベルの大きさは低周波領域のものほど大きな値となりやすいことを利用して、可変長符号化に用いる符号テーブルをそれぞれの条件毎に最適化したものを多数用意し、これを順次切り替えて適用することにより、符号化効率を向上させている。
【００１１】
例えば、各レベルの符号化を図１Ｃに示す係数値の並びの右側（高周波側）から順に行っていく場合、右側（高周波側）は小さい値が多く、左側（低周波側）にいくに従って大きな値が多くなる。従って、図３に示すように、最初は小さいレベル値に対し短い符号長vlcLengthが割り当てられる符号テーブルを用いる。この符号テーブルの符号長vlcLengthは、レベルの絶対値が７以下のときは１４ビット以下という比較的短くなっている。一方、レベルの絶対値が８以上のとき１９ビット、レベルの絶対値が１６以上のとき２８ビットとなり、レベルが大きい値のときは長くなっている。よって、図１Ｃに示す係数値の並びの右側から符号化されたレベルが所定の閾値を超えるに従い、図３乃至図９に示すような、大きいレベル値に対しても比較的短い符号長が割り当てられる符号テーブルを適用することにより、より少ないビット数の符号を割り当てて効率的にエントロピー符号化を行うことができる。
【００１２】
なお、Ｈ．２６４におけるＣＡＶＬＣのレベルの可変長符号は、図２の符号テーブルに示す接頭語level_prefix_codeと、接尾語長suffixLengthに応じて選択される符号テーブル図３乃至図９に示す接尾語level_suffix_codeから構成される。図３乃至図９の符号テーブルは各々、接尾語長suffixLength ０〜６に対応する。
【００１３】
図３乃至図９に示す符号テーブルにおいて、xはレベルの絶対値を、sはレベルの正負を表し、各々の値は０または１を取る。例えば、接尾語長suffixLength が３、レベルが−１１であったとき、図６より接頭語シンボルlevel_prefixは２、接尾語level_suffix_codeは“１０１”である。図２より、接頭語シンボルlevel_prefixが２のとき、接尾語level_prefix_codeは“００１”であるので、当該レベルに対応する可変長符号は“００１１０１”となる。
【００１４】
接尾語長suffixLengthは既に符号化されたレベルの値に基づいて算出される。レベルの絶対値が図１０に示す表中の接尾語長suffixLengthに対応する閾値を超えたとき、後続の可変長符号の接尾語長suffixLengthは１増加する。閾値を超えないときは、接尾語長suffixLengthはそのままの値を保持する。接尾語長suffixLengthの最大値は６である。
【００１５】
なお、ＣＡＶＬＣの詳細についてはＨ．２６４を参照されたい。
【００１６】
以上に説明したＣＡＶＬＣのレベルに対応する符号を復号化する従来の可変長符号復号化装置は、例えば図１１に示すような構成となる。
【００１７】
図１１において、可変長符号頭出し部５０１は、レベル復号化部５０３から出力される復号化された可変長符号の符号長vlcLengthを基に、次のクロックサイクルで復号化する可変長符号の頭出しを行う。頭出しされ遅延部５０２によって遅延された可変長符号は、レベル復号化部５０３によって復号化される。
【００１８】
レベル復号化部５０３は、接尾語長算出部５０４によって予め算出された接尾語長suffixLengthと図３乃至図９に示す符号テーブルを基に、入力された可変長符号からレベルを復号化し、レベル値と、符号長vlcLengthを出力する。接尾語長算出部５０４は、復号化されたレベルの絶対値と図１０に示す接尾語長suffixLengthに対応する閾値を比較し、閾値を超えている場合は接尾語長suffixLengthを１増加させる。なお、接尾語長suffixLengthの初期値は０であり、直交変換ブロックの復号化の最初に初期化される。
【特許文献１】特開２００４−１３４８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、従来の可変長符号復号化装置では、レベル復号化部５０３による復号化を終えないと、次の可変長符号の頭出しに必要な符号長vlcLengthが分からないという問題があった。レベル復号化部５０３は、図１２に示すような構成になっている。接尾語符号テーブル５０３２〜５０３８は夫々図３乃至図９に示す符号テーブルを備えており、これらをシステムLSIの回路として実装した場合、レベル復号化処理から符号頭出し処理のクリティカルパス（遅延部５０２の出力から遅延部５０２の入力までのループ）が長くなり、動作周波数が上げられないという課題がある。このような従来の可変長符号復号化装置を動画像復号化装置に組み込んだ場合、可変長符号復号化装置の復号化処理速度がボトルネックとなり、動画像復号化の処理速度を上げられないという問題が発生する。
【００２０】
このような場合、リアルタイムに復号化可能な画像サイズやフレームレートを下げなければならないという不都合が発生する。
【００２１】
本発明は前述のような問題点を解決するためになされたものであり、画像サイズやフレームレートを下げずに高速な復号化処理を可能とする可変長符号復号化装置及び方法を提供するものである。
【課題を解決するための手段】
【００２２】
上記課題を解決するために、本発明による可変長符号復号化装置は、接頭語と接尾語を含む可変長符号を復号化する可変長符号復号化装置であって、入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力する接頭語復号化手段と、前記接頭語復号化手段から出力された前記接頭語長を基に、前記接尾語の頭出しをする接尾語頭出し手段と、前記接頭語復号化手段から出力された前記接頭語に対応するシンボルと、前記接尾語頭出し手段によって頭出しされた前記接尾語と、予め与えられた接尾語長を基に、可変長符号に対応するシンボルを復号化するシンボル復号化手段と、を備えることを特徴とする。
【００２３】
また、本発明による可変長符号復号化装置は、それぞれが接頭語と接尾語を含む、Ｎ個の互いに隣接する可変長符号を復号化する可変長符号復号化装置であって、入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力するＮ個の接頭語復号化手段と、前記接頭語復号化手段から出力された前記接頭語長を基に、前記接尾語の頭出しをするＮ個の接尾語頭出し手段と、前記接頭語復号化手段から出力された前記接頭語に対応するシンボルと、前記接尾語頭出し手段によって頭出しされた前記接尾語と、既に復号化済みのシンボルに基づいて算出された前記接尾語長を基に、可変長符号に対応するシンボルを復号化するＮ個のシンボル復号化手段と、を備えることを特徴とする。
【００２４】
上記課題を解決するために、本発明による可変長符号復号化方法は、接頭語と接尾語を含む可変長符号を復号化する可変長符号復号化方法であって、入力された可変長符号の接頭語を復号化し、前記接頭語に対応するシンボルと接頭語長を出力する接頭語復号化工程と、前記接頭語復号化工程で出力された前記接頭語長を基に、前記接尾語の頭出しをする接尾語頭出し工程と、前記接頭語復号化工程で出力された前記接頭語に対応するシンボルと、前記接尾語頭出し工程で頭出しされた前記接尾語と、予め与えられた接尾語長を基に、可変長符号に対応するシンボルを復号化するシンボル復号化工程と、を備えることを特徴とする。
【００２５】
また、本発明による可変長符号復号化方法は、それぞれが接頭語と接尾語を含む、互いに隣接するＮ個の可変長符号を復号化する可変長符号復号化方法であって、入力されたＮ個の可変長符号の接頭語を復号化し、前記Ｎ個の接頭語に対応するＮ個のシンボルと接頭語長を出力する接頭語復号化工程と、前記接頭語復号化工程で出力された前記Ｎ個の接頭語長を基に、前記Ｎ個の接尾語の頭出しをする接尾語頭出し工程と、前記接頭語復号化工程から出力された前記Ｎ個の接頭語に対応するＮ個のシンボルと、前記接尾語頭出し工程で頭出しされた前記Ｎ個の接尾語と、既に復号化済みのシンボルに基づいて算出された前記Ｎ個の接尾語長を基に、Ｎ個の可変長符号に対応するシンボルを復号化するシンボル復号化工程と、を備えることを特徴とする。
【００２６】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【００２７】
本発明の可変長符号復号化装置によれば、画像サイズやフレームレートを下げずに高速な復号化処理を実現することができる。
【発明を実施するための最良の形態】
【００２８】
＜第１の実施形態＞
本発明の第１の実施形態の可変長符号復号化装置の構成を図１３に示す。
【００２９】
本実施形態の可変長符号復号化装置は、ビットストリームバッファ１００、可変長符号頭出し部１０１、接頭語復号化部１０２、接尾語頭出し部１０３、符号長算出部１０４、レベル復号化部１０５、接尾語長算出部１０６、遅延部１０７〜１０８で構成される。以下、図１を用いて本実施形態の可変長符号復号化装置の動作を説明する。
【００３０】
ビットストリームバッファ１００は、入力された可変長符号のビットストリームを一時的に蓄積するバッファである。可変長符号頭出し部１０１は、後述する符号長算出部１０４によって算出される既に符号化を終えた可変長符号の符号長vlcLengthを基に、可変長符号をビットストリームバッファから１００取り出し、次の可変長符号の頭出しを行う。可変長符号頭出し部１０１から出力された可変長符号は、遅延部１０７によって１サイクル遅延され、接頭語復号化部１０２及び接尾語頭出し部１０３へ入力される。
【００３１】
接頭語復号化部１０２は、図２に示す符号テーブルを基に、遅延部１０７から入力された可変長符号から接頭語シンボルlevel_prefixと、接頭語長prefixLengthを求める。例えば、遅延部１０７から“００１１０１…”が入力された場合、接尾語level_prefix_codeが“００１”なので接尾語シンボルlevel_prefixは‘２’、接尾語長prefixLengthは‘３’となる。接頭語シンボルlevel_prefixはレベル復号化部１０５へ出力され、接頭語長prefixLengthは接尾語頭出し部１０３及び符号長算出部１０４へ出力される。
【００３２】
符号長算出部１０４は、接頭語復号化部１０２から入力された接頭語長prefixLengthと、後述する接尾語長算出部１０６から出力され遅延部１０８によって１サイクル遅延された接尾語長suffixLengthから、接頭語level_prefix_code及び接尾語level_suffix_codeから成る可変長符号の符号長vlcLengthを、図１４に示すフローチャートに従って求める。以下、図１４を説明する。なお、このフローチャートは復号化装置に含まれる図示しないシーケンサによって制御されている。
【００３３】
ステップＳ１０１では、接尾語長suffixLengthが０であるか判断される。suffixLengthが０である場合には、処理はステップＳ１０３に移行する。ステップＳ１０２で接頭語シンボルlevel_prefixが１４であるか否かが判定される。
【００３４】
ステップＳ１０２で接頭語シンボルlevel_prefixが１４であった場合、処理はステップＳ１０３に移行し、符号長vlcLengthは１９と決定される。
【００３５】
ステップＳ１０１で接尾語長suffixLengthが０でないと判断された場合、又はステップＳ１０２で接頭語シンボルlevel_prefixが１４でないと判断された場合、処理はステップＳ１０４に移行する。
【００３６】
ステップＳ１０４では、接頭語シンボルlevel_prefixが１５であるか否かが判定される。接頭語シンボルlevel_prefixが１５であると判断された場合には、処理はステップＳ１０５に移行し、そこで符号長vlcLengthは２８であると決定される。
【００３７】
ステップＳ１０４で接頭語シンボルlevel_prefixが１５ではないと判断された場合には、処理はステップＳ１０６に移行し、そこで符号長vlcLengthは接頭語長prefixLengthと接尾語長suffixLengthを足した数になるように制御される。
【００３８】
以上に説明した動作により算出された符号長vlcLengthは、可変長符号頭出し部１０１に供給される。なお、図１４のフローチャートにおいて、接頭語シンボルlevel_prefixを１４又は１５で判断しているのは、Ｈ．２６４に準拠するためである。
【００３９】
接尾語頭出し部１０３は、接頭語復号化部１０２から入力された接頭語長prefixLengthを基に、接頭語level_prefix_codeに後続する接尾語level_suffix_codeを、遅延部１０７から入力された可変長符号から頭出しする。例えば、遅延部１０７から入力された可変長符号が“００１１０１…”で、接頭語復号化部１０２から入力された接頭語長prefixLengthが３であった場合、接尾語頭出し部１０３は上位３ビットを捨て、接尾語level_suffix_code“１０１…”を頭出しする。
【００４０】
レベル復号化部１０５は、接頭語復号化部１０２から入力された接頭語シンボルlevel_prefixと、接尾語頭出し部１０３から頭出しされた接尾語level_suffix_codeと、後述する接尾語長算出部１０６から出力され遅延部１０８によって１サイクル遅延された接尾語長suffixLengthを基に、図３乃至９に示す符号テーブルを用いてレベルの復号化を行う。例えば、接頭語シンボルlevel_prefixが２、接尾語level_suffix_codeが“１０１…”、接尾語長suffixLengthが３であった場合、図６に示す符号テーブルから、xxs＝“１０１”であり、レベルは−１１となる。
【００４１】
なお、レベル復号化部１０５は、図３乃至９に示す符号テーブルを備えるが、符号長vlcLengthは符号長算出部１０４によって算出されるため、符号長vlcLengthのエントリは備えていない。
【００４２】
接尾語長算出部１０６は、レベル復号化部１０５によって復号化されたレベルの絶対値が、図１０に示される表に記載の接尾語長suffixLengthに対応する閾値を超えているか否かを判定する。レベルの絶対値が接尾語長suffixLengthに対応する閾値を超えている場合、接尾語長suffixLengthに１を加算して出力する。そうでない場合は接尾語長suffixLengthをそのまま出力する。なお、接尾語長suffixLengthの初期値は０であり、直交変換ブロックの先頭で初期化される。
【００４３】
接尾語長算出部１０６によって算出された接尾語長suffixLengthは、遅延部１０８によって１サイクル遅延され、後続する可変長符号の復号化に使用される。
【００４４】
以上に説明したように、本実施形態の可変長符号復号化装置は、接頭語復号化部１０２にから出力された接頭語長prefixLengthと、接尾語長算出部１０６によって１サイクル前に予め算出された接尾語長suffixLengthを基に、可変長符号頭出し部１０１が可変長符号の頭出しを行うのに必要な符号長vlcLengthを、符号長算出部１０４が算出する。即ち、レベル復号化部１０５による復号化が終わる前に、頭出しに必要な符号長が算出される。よって、回路のクリティカルパス（遅延部１０７の出力から遅延部１０７の入力までのループ）を短くすることができ、動作周波数を上げることが可能なため、処理速度を向上させることができる。
【００４５】
＜第２の実施形態＞
次に、本発明の第２の実施形態の可変長符号復号化装置を説明する。本実施形態の可変長符号化装置の構成を図１５に示す。本実施形態の可変長符号化装置は、１サイクルで２つの連続する可変長符号を復号化する。
【００４６】
本実施形態の可変長符号復号化装置は、ビットストリームバッファ２００、第１可変長符号頭出し部２０１、第１接頭語復号化部２０３、第１接尾語頭出し部２０４、第１符号長算出部２０５、第１レベル復号化部２０６、第２接尾語長算出部２０７、第２可変長符号頭出し部２０８、第２接頭語復号化部２０９、第２接尾語頭出し部２１０、第２符号長算出部２１１、第２レベル復号化部２１２、第１接尾語長算出部２１３、合計符号長算出部２１５、遅延部２１４、遅延部２０２から構成される。以下、図１５を用いて本実施形態の可変長符号復号化装置の動作を説明する。
【００４７】
ビットストリームバッファ２００は、入力された可変長符号のビットストリームを一時的に蓄積するバッファである。第１可変長符号頭出し部２０１は、後述する合計符号長算出部２１５によって算出される既に符号化を終えた２つの連続する可変長符号の符号長vlcLengthsを基に、可変長符号をビットストリームバッファから取り出し、次の２つの連続する可変長符号の頭出しを行う。第１可変長符号頭出し部２０１から出力された２つの連続する可変長符号vlc#１及びvlc#２は、遅延部２０２によって１サイクル遅延され、第１接頭語復号化部２０３及び第１接尾語頭出し部２０４へ入力される。
【００４８】
なお、第１可変長符号頭出し部２０１から出力され、遅延部２０２よって遅延された２つの連続する可変長符号vlc#１及びvlc#２が“０００１０００１０１…”であったとして、本実施形態の可変長符号復号化装置の動作を説明する。
【００４９】
第１接頭語復号化部２０３は、図２に示す符号テーブルを基に、遅延部２０２から入力された可変長符号から第１接頭語シンボルlevel_prefix#１と、第１接頭語長prefixLength#１を求める。図２より、遅延部２０２から“０００１０００１０１…”が入力された場合、第１接頭語シンボルlevel_prefix#１は３、第１接頭語長prefixLength#１は４となる。第１接頭語シンボルlevel_prefix#１は第１レベル復号化部２０６へ出力され、第１接頭語長prefixLength#１は第１接尾語頭出し部２０３及び第１符号長算出部２０６へ出力される。
【００５０】
第１符号長算出部２０５は、第１接頭語復号化部２０３から入力された第１接頭語長prefixLength#１と、後述する第２接尾語長算出部２１３から出力され遅延部２１４によって１サイクル遅延された第１接尾語長suffixLength#１を基に、第１接頭語level_prefix_code#１及び第１接尾語level_suffix_code#１から成る可変長符号vlc#１の符号長vlcLength#１（以降、第１符号長vlcLength#１と記す）を、図１４に示すフローに従って求める。第１接頭語長prefixLength#１が４、第１接尾語長suffixLength#１が１であった場合、第１符号長vlcLength#１は５となる。算出された第１符号長vlcLength#１は、第２可変長符号頭出し部２０８及び合計符号長算出部２１５へ入力される。
【００５１】
第１接尾語頭出し部２０４は、第１接頭語復号化部２０３から入力された第１接頭語長prefixLength#１を基に、第１接頭語level_prefix_code#１に後続する第１接尾語level_suffix_code#１を、遅延部２０２から入力された可変長符号から頭出しする。例えば、遅延部２０２から入力された可変長符号が“０００１０００１０１…”で、第１接頭語復号化部２０３から入力された第１接頭語長prefixLength#１が４であった場合、第１接尾語頭出し部２０４は上位４ビットを捨て、第１接尾語level_suffix_code#１を含む符号“０００１０１…”を頭出しする。
【００５２】
第１レベル復号化部２０６は、第１接頭語復号化部２０３から入力された第１接頭語シンボルlevel_prefix#１と、第１接尾語頭出し部２０４から頭出しされた第１接尾語level_suffix_code#１と、後述する第１接尾語長算出部２１３から出力され遅延部１０８によって１サイクル遅延された第１接尾語長suffixLength#１から、図３乃至９に示す符号テーブルを基に、第１レベルlevel#１の復号化を行う。例えば、第１接頭語シンボルlevel_prefix#１が３、第１接尾語level_suffix_code#１を含む符号が“０００１０１…”、第１接尾語長suffixLength#１が１であった場合、図４より、第１レベルlevel#１は４となる。
【００５３】
第１レベル復号化部２０６は、図３乃至９に示す符号テーブルを備えるが、第１符号長vlcLength#１は第１符号長算出部２０５によって算出されるため、第１符号長vlcLength#１のエントリは備えていない。
【００５４】
第２接尾語長算出部２０７は、第１レベル復号化部２０６によって復号化された第１レベルlevel#１の絶対値が、図１０に示される表に記載の接尾語長suffixLengthに対応する閾値を超えているか否かを判定する。第１レベルlevel#１の絶対値が閾値を超えている場合、第１接尾語長suffixLength#１に１を加算し、第２接尾語長suffixLength#２として出力する。第１レベルlevel#１の絶対値が閾値を超えていない場合、第１接尾語長suffixLength#１をそのまま第２接尾語長suffixLength#２として出力する。例えば、第１レベルlevel#１が４で、第１接尾語長suffixLength#１が１であった場合、第１レベルlevel#１の絶対値が閾値を超えているので、第２接尾語長suffixLength#２は２となる。なお、第１接尾語長suffixLength#１の初期値は０であり、直交変換ブロックの先頭で初期化される。
【００５５】
第２接尾語長算出部２０７によって算出された第２接尾語長suffixLength#２は、第２符号長算出部２１１及び第２レベル復号化部２１２へ入力され、後続する可変長符号の復号化に使用される。
【００５６】
第２可変長符号頭出し部２０８は、第１符号長算出部２０５から入力された第１符号長vlcLength#１を基に、遅延部２０２から入力された２つの連続する可変長符号vlc#１及びvlc#２から、第１可変長符号vlc#１に後続する第２可変長符号#２を頭出しする。例えば、遅延部２０２から“０００１０００１０１…”が入力され、第１符号長vlcLength#１が５であった場合、第２可変長符号#２は“００１０１…”となる。
【００５７】
第２接頭語復号化部２０９は、図２に示す符号テーブルを基に、第２可変長符号頭出し部２０８から入力された第２可変長符号vlc#２から、第２接頭語シンボルlevel_prefix#２と、第２接頭語長prefixLength#２を求める。例えば、第２可変長符号#２が“００１０１…”であった場合、第２接頭語シンボルlevel_prefix#２は２、第２接頭語長prefixLength#２は３となる。第２接頭語シンボルlevel_prefix#１は第２レベル復号化部２１２へ出力され、第２接頭語長prefixLength#２は第２接尾語頭出し部２１０及び第２符号長算出部２１１へ出力される。
【００５８】
第２符号長算出部２１１は、第２接頭語復号化部２０９から入力された第２接頭語長prefixLength#２と、第２接尾語長算出部２０７から出力された第２接尾語長suffixLength#２を基に、第２接頭語level_prefix_code#２及び第２接尾語level_suffix_code#２から成る第２可変長符号vlc#２の符号長vlcLength#２（以降、第２符号長vlcLength#２と記す）を、図１４に示すフローに従って求める。例えば、第２接頭語長prefixLength#２が３、第２接尾語長suffixLength#２が２であった場合、第２符号長vlcLength#２は５となる。算出された第２符号長vlcLength#２は、合計符号長算出部２１５へ出力される。
【００５９】
第２接尾語頭出し部２１０は、第２接頭語復号化部２０９から入力された第２接頭語長prefixLength#２を基に、第２可変長符号頭出し部２０２から入力された第２可変長符号vlc#２から、第２接頭語level_prefix_code#２に後続する第２接尾語level_suffix_code#２を、頭出しする。例えば、第２可変長符号vlc#２ が“００１０１…”、第２接頭語長prefixLength#２が３であった場合、第２接尾語level_suffix_code#２は“０１…”となる。
【００６０】
第２レベル復号化部２１２は、第２接頭語復号化部２０９から入力された第２接頭語シンボルlevel_prefix#２と、第２接尾語頭出し部２１０から頭出しされた第２接尾語level_suffix_code#２と、第２接尾語長算出部２０７から出力された第２接尾語長suffixLength#２から、図３乃至９に示す符号テーブルを基に、第２レベルlevel#２の復号化を行う。例えば、第２接頭語シンボルlevel_prefix#２が２、第２接尾語level_suffix_code#２が“０１…”、第２接尾語長suffixLength#２が２であった場合、図５より、第２レベルlevel#２は−５となる。
【００６１】
第２レベル復号化部２１２は、図３乃至９に示す符号テーブルを備えるが、第２符号長vlcLength#２は第２符号長算出部２１１によって算出されるため、第２符号長vlcLength#２のエントリは備えていない。
【００６２】
第１接尾語長算出部２１３は、第２レベル復号化部２１２によって復号化された第２レベルlevel#２の絶対値が、図１０に示される表に記載の接尾語長suffixLengthに対応する閾値を超えているか否かを判定する。第２レベルlevel#２の絶対値が閾値を超えている場合、第２接尾語長suffixLength#２に１を加算し、次のサイクルで復号化される後続する可変長符号の第１接尾語長suffixLength#１として出力する。第２レベルlevel#２の絶対値が閾値を超えていない場合、第２接尾語長suffixLength#２をそのまま第１接尾語長suffixLength#１として出力する。例えば、第２接尾語長suffixLength#２が２、第２レベルlevel#２が−５であった場合、閾値を超えていないので、後続する可変長符号の第１接尾語長suffixLength#１は２となる。なお、第１接尾語長suffixLength#１の初期値は０であり、直交変換ブロックの先頭で初期化される。
【００６３】
第１接尾語長算出部２１３によって算出された第１接尾語長suffixLength#１は、遅延部２１４へ出力され、次のサイクルで復号化される後続する可変長符号の復号化に使用される。
【００６４】
合計符号長算出部２１５は、第１符号長算出部２０５及び第２符号長算出部２１１によって算出された２つの符号長vlcLength#１及びvlcLength#２を加算し、復号化した２つの連続する可変長符号vlc#１及びvlc#２の合計符号長vlcLengthsを出力する。
【００６５】
以上に説明したように、第２の実施形態の可変長符号復号化装置は、第１接頭語復号化部２０３から出力された第１接頭語長prefixLength#１と、第１接尾語長算出部２１３によって１サイクル前に予め算出された第１接尾語長suffixLength#１を基に、第２可変長符号頭出し部２０８が第２可変長符号vlc#２の頭出しを行うのに必要な第１符号長vlcLength#１を、第１符号長算出部２０５が算出する。即ち、第１レベル復号化部２０６による復号化が終わる前に、第２可変長符号vlc#２の頭出しに必要な符号長が算出される。
【００６６】
また、第１符号長算出部２０５によって算出された第１符号長vlcLength#１と、第２符号長算出部２１１によって算出された第２符号長vlcLength#２を基に、次のサイクルで復号化される可変長符号の頭出しに必要な合計符号長vlcLengthsを、合計符号長算出部２１５が算出する。即ち、第２レベル復号化部２１２による復号化が終わる前に、合計符号長vlcLengthsが算出される。
【００６７】
よって、１サイクルに２つの可変長符号を復号化する回路のクリティカルパス（遅延部２０２の出力から遅延部２０２への入力までのループ）を短くすることができ、動作周波数を上げることが可能なため、処理速度を向上させることができる。
【００６８】
なお、第２の実施形態では、隣接する２つの可変長符号を復号化することについて説明したが、本発明の思想は、隣接する符号の数は２つに限らず、システムの処理能力が許す限り任意の数（Ｎ個）に適用可能である。
【００６９】
以上に説明したように、本発明の可変長符号復号化装置は、可変長符号の頭出しに用いられる可変長符号の長さが、接頭語復号化手段から出力された接頭語の長さと予め与えられた接尾語の長さを基に算出されるため、シンボル復号化手段による復号化結果を用いずに、次の可変長符号の頭出しを行うことができる。よって、回路のクリティカルパスが短くなるため、動作周波数を上げやすくなり、高速な復号化処理が可能となる。また、１クロックサイクルで複数の可変長符号を復号化することにより、さらに高速な復号化処理が可能となる。
【００７０】
＜その他の実施形態＞
本発明では、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【００７２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【００７３】
また、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ-ＲＷ、ＣＤ-Ｒ等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。
【図面の簡単な説明】
【００７４】
【図１】ブロック内の直交変換係数のジグザグ・スキャンの順序と、変換係数の例を示した図である。
【図２】接頭語level_prefix_codeの符号テーブルを示す図である。
【図３】接尾語長suffixLength=０のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図４】接尾語長suffixLength=１のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図５】接尾語長suffixLength=２のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図６】接尾語長suffixLength=３のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図７】接尾語長suffixLength=４のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図８】接尾語長suffixLength=５のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図９】接尾語長suffixLength=６のときの接尾語level_suffix_codeの符号テーブルを示す図である。
【図１０】接尾語長suffixLengthの算出に用いる閾値を示す図である。
【図１１】従来の可変長符号復号化装置の構成を示す図である。
【図１２】従来の可変長符号符号化装置のレベル復号化部の構成を示す図である。
【図１３】本発明の第１の実施形態の可変長符号復号化装置の構成を示す図である。
【図１４】符号長算出部１０４、第１符号長算出部２０５、第２符号長算出部２１１の処理動作を説明するためのフローチャートである。
【図１５】本発明の第２の実施形態の可変長符号復号化装置の構成を示す図である。
【符号の説明】
【００７５】
１００  ビットストリームバッファ
１０１  可変長符号頭出し部
１０２  接頭語復号化部
１０３  接尾語頭出し部
１０４  符号長算出部
１０５  レベル復号化部
１０６  接尾語長算出部
１０７〜１０８  遅延部
２００  ビットストリームバッファ
２０１  第１可変長符号頭出し部
２０２、２１４  遅延部
２０３  第１接頭語復号化部
２０４  第１接尾語頭出し部
２０５  第１符号長算出部
２０６  第１レベル復号化部
２０７  第２接尾語長算出部
２０８  第２可変長符号頭出し部
２０９  第２接頭語復号化部
２１０  第２接尾語頭出し部
２１１  第２符号長算出部
２１２  第２レベル復号化部
２１３  第１接尾語長算出部
２１５  合計符号長算出部
【図１】
2006157157.tif 000003
【図２】
2006157157.tif 000004
【図３】
2006157157.tif 000005
【図４】
2006157157.tif 000006
【図５】
2006157157.tif 000007
【図６】
2006157157.tif 000008
【図７】
2006157157.tif 000009
【図８】
2006157157.tif 000010
【図９】
2006157157.tif 000011
【図１０】
2006157157.tif 000012
【図１１】
2006157157.tif 000013
【図１２】
2006157157.tif 000014
【図１３】
2006157157.tif 000015
【図１４】
2006157157.tif 000016
【図１５】
2006157157.tif 000017