(57)【要約】【課題】可変長符号を常に高速に復号可能とする。【解決手段】可変長符号復号装置は、可変長符号を、連続したゼロ値の数が（Ｍ−１）個以上（Ｍは２以上の整数）の復号データに変換可能な第１テーブル格納部と、符号長がＮ（Ｎは２以上の整数）未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいはこの可変長符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第２復号データに変換可能な第２テーブル格納部と、符号長がＮ以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいはこの可変符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第３復号データに変換可能な第３テーブル変換部と、ビットシフト部と、第４テーブル格納部と、を備える。【選択図】図３
2013016897.tif 000002
【特許請求の範囲】
【請求項１】
複数の可変長符号からなる入力ビットストリームを復号する可変長符号復号装置において、
前記可変長符号を、連続したゼロ値の数が（Ｍ−１）個以上（Ｍは２以上の整数）の第１復号データに変換可能な第１テーブル格納部と、
符号長がＮ（Ｎは２以上の整数）未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第２復号データに変換可能な第２テーブル格納部と、
符号長がＮ以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第３復号データに変換可能な第３テーブル変換部と、
前記入力ビットストリームを所定ビット数シフトさせるビットシフト部と、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第４復号データに変換可能な第４テーブル格納部と、
前記第２または第３復号データと、前記第４復号データとを結合し、第５復号データを生成する結合部と、
前記第１復号データと、前記第５復号データとのいずれかを選択する最終選択部と、を備えることを特徴とする可変長符号復号装置。
【請求項２】
前記ビットシフト部は、前記第２テーブル格納部および前記第３テーブル格納部で復号可能な可変長符号またはその組合せの符号長のそれぞれに対応したビット数分だけ前記入力ビットストリームをシフトさせる複数のビットシフタを有し、
前記第４テーブル格納部は、前記複数のビットシフタのそれぞれに対応して設けられる
ことを特徴とする請求項１に記載の可変長符号復号装置。
【請求項３】
前記第２または第３復号データの復号前の、可変長符号またはその組合せの符号長を検出する符号長検出部と、
前記入力ビットストリームを前記検出した符号長分シフトして、対応する前記第４テーブル格納部で変換した第４復号データを選択し、前記結合部に出力する復号データ選択部と、を備えることを特徴とする請求項１または２に記載の可変長符号復号装置。
【請求項４】
動き補償され、ＤＣＴ（Discrete Cosine Transform）変換され、かつ量子化された可変長符号を含む入力ビットストリームに対して可変長符号復号を行って復号データを生成する可変長符号復号装置と、
前記復号データに対して逆量子化を行う逆量子化部と、
逆量子化されたデータに対して、逆離散コサイン変換を行うＩＤＣＴ（Inverse Discrete Cosine）部と、
逆離散コサイン変換後のデータに対して動き補償を行う動き補償部と、を備え、
前記可変長符号復号装置は、
前記可変長符号を、連続したゼロ値の数が（Ｍ−１）個以上（Ｍは２以上の整数）の第１復号データに変換可能な第１テーブル格納部と、
符号長がＮ（Ｎは２以上の整数）未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第２復号データに変換可能な第２テーブル格納部と、
符号長がＮ以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第３復号データに変換可能な第３テーブル変換部と、
前記入力ビットストリームを所定ビット数シフトさせるビットシフト部と、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第４復号データに変換可能な第４テーブル格納部と、
前記第２または第３復号データと、前記第４復号データとを結合し、第５復号データを生成する結合部と、
前記第１復号データと、前記第５復号データとのいずれかを、逆量子化を行なう復号データとして選択する最終選択部と、を有することを特徴とする復号システム。
【請求項５】
複数の可変長符号からなる入力ビットストリームを復号する可変長符号復号方法において、
前記可変長符号を、連続したゼロ値の数が（Ｍ−１）個以上（Ｍは２以上の整数）の前記復号データに変換可能な第１テーブルの中に、前記入力ビットストリームの先頭位置の可変長符号が含まれるか否かを検索し、
符号長がＮ（Ｎは２以上の整数）未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第２復号データに変換可能な第２テーブルの中に、前記入力ビットストリームの先頭位置の可変長符号またはその組合せが含まれるか否かを検索し、
符号長がＮ以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第３復号データに変換可能な第３テーブルの中に、前記入力ビットストリームの先頭位置の可変長符号が含まれるか否かを検索し、
前記入力ビットストリームを所定ビット数シフトさせ、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第４復号データに変換し、
前記第２または第３テーブルと、前記第４復号データとを結合して、第５復号データを生成し、
前記第１テーブルと、前記第５復号データとのいずれかを選択することを特徴とする可変長符号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、可変長符号を復号する可変長符号復号装置、符号システムおよび可変長符号復号方法に関する。
【背景技術】
【０００２】
ＭＰＥＧ−４やＨ．２６４等の規格に準拠した可変長符号は、符号長が一定でないため、入力ビットストリーム内の各符号の先頭位置を一意に決めることができない。このため、入力ビットストリームを先頭から順に復号して、次の符号の先頭位置を検出する逐次的な処理が必要となる。このことから、入力ビットストリームに含まれる可変長符号の数が多い場合には、そのすべてを復号するのにかなりのサイクル数を要する。
【０００３】
サイクル数の削減のために、入力ビットストリームに含まれる連続した複数の可変長符号を並行して復号する手法がいくつか提案されている。例えば、複数個の可変長符号復号器を直列に接続して、パイプライン的に復号処理を行うことで、１サイクルに平均して２個以上の可変長符号を復号する手法がある。この手法では、１サイクルの周波数をあまり高くできない。また、可変長符号の種類によっては、効率よく復号化できない場合がある。
【０００４】
別の手法として、可変長符号を復号データに変換するためのテーブルのサイズを大きくして、入力ビットストリームに含まれる連続した複数の可変長符号の組合せを一括して復号する手法がある。この手法では、大規模なテーブルを予め用意しなければならず、このテーブルを検索するための時間が増大し、周波数が高くできないという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１５８６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、入力ビットストリーム内の可変長符号の種類に依存せずに、常に高速に復号することが可能な可変長符号復号装置、符号システムおよび可変長符号復号方法を提供するものである。
【課題を解決するための手段】
【０００７】
本実施形態の一態様は、複数の可変長符号からなる入力ビットストリームを復号する可変長符号復号装置において、
前記可変長符号を、連続したゼロ値の数が（Ｍ−１）個以上（Ｍは２以上の整数）の第１復号データに変換可能な第１テーブル格納部と、
符号長がＮ（Ｎは２以上の整数）未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第２復号データに変換可能な第２テーブル格納部と、
符号長がＮ以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で（Ｍ−２）個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも（Ｍ−１）個である第３復号データに変換可能な第３テーブル変換部と、
前記入力ビットストリームを所定ビット数シフトさせるビットシフト部と、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第４復号データに変換可能な第４テーブル格納部と、
前記第２または第３復号データと、前記第４復号データとを結合し、第５復号データを生成する結合部と、
前記第１復号データと、前記第５復号データとのいずれかを選択する最終選択部と、を備えることを特徴とする可変長符号復号装置を提供する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る復号システムの概略構成を示すブロック図。
【図２】ＭＰＥＧ−４の規格に準拠した可変長符号の一例を示す図。
【図３】可変長符号復号装置１の第１例の内部構成を示すブロック図。
【図４】第２テーブル１２ａの一例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１０】
図１は本発明の実施形態に係る復号システムの概略構成を示すブロック図である。図１の復号システム１０は、可変長符号復号装置１と、逆量子化部２と、逆ＤＣＴ部３と、参照画像メモリ４と、動き補償部５と、加算器６とを備えている。
【００１１】
可変長符号復号装置１は、入力ビットストリームに含まれる可変長符号を、例えばＤＣＴ（Discrete Cosine Transform）係数に復号する。逆量子化部２は、可変長符号復号装置１から出力される復号データを逆量子化する。逆ＤＣＴ部３は、逆量子化後のデータに対して逆離散コサイン変換を行って、周波数変換の情報から画素情報（画像データ）に変換する。動き補償部５は、逆ＤＣＴ部３で変換した画像データを参照画像メモリ４に記憶された直前フレームの画像データと比較して動き補償量を検出する。加算器６は、逆ＤＣＴ部３で変換した画像データに動き補償量を加算して、動き補償された最終的な復号データを生成する。
【００１２】
次に、可変長符号復号装置１の内部構成および動作を詳細に説明する。以下では、ＭＰＥＧ−４規格に準拠した可変長符号を含む入力ビットストリームの復号処理を行なう例を説明する。本実施形態に係る可変長符号復号装置１は、入力ビットストリームをＤＣＴ係数に変換するまでの処理を行なう。以下では、可変長符号復号装置１から出力されるＤＣＴ係数を復号データと呼ぶ。この復号データは、逆量子化前のデータである。
【００１３】
可変長符号復号装置１で生成される復号データは、ゼロ値と非ゼロ値を含んでいる。これらゼロ値と非ゼロ値はＤＣＴ係数である。すなわち、一つの可変長符号を復号して生成される復号データは、複数のＤＣＴ係数で構成される。
【００１４】
（可変長符号復号装置１の第１例）
入力ビットストリームは、複数の可変長符号を含んでいる。可変長符号は、出現頻度の高いものほど符号長が短い。図２はＭＰＥＧ−４の規格に準拠した可変長符号の一例を示す図である。可変長符号の欄の「ｓ」は、正負を表すビット値であり、ｓ＝０なら正、ｓ＝１なら負を表す。この「ｓ」も符号の一部であり、例えば可変長符号（１０ｓ）の符号長は３である。また、ＬＡＳＴは、８×８画素ブロック内の左上隅から右下隅に向けてジグザグにＤＣＴ係数を格納したときに、最後の非ゼロ値に対応する可変長符号かどうかを識別する情報である。最後の非ゼロ値に対応する可変長符号のＬＡＳＴは「１」になり、それ以外の可変長符号のＬＡＳＴは「０」になる。ＲＵＮは可変長符号に対応する復号データのゼロ値の数を表す。ＬＥＶＥＬは、可変長符号に対応する復号データの非ゼロ値を表す。このＬＥＶＥＬの値が復号データの値となる。例えば、可変長符号（１０ｓ）の復号データは「１」である。
【００１５】
なお、ＭＰＥＧ−４の規格に準拠した、Intraにおける可変長符号の最大符号長は１３であり、最小符号長は３である。Runが0かつ符号長Ｎ＜７未満の可変長符号は６個あり、符号長Ｎ≧７の可変長符号は２９個ある。
【００１６】
図３は可変長符号復号装置１の第１例の内部構成を示すブロック図である。図３の可変長符号復号装置１は、第１テーブル１１ａを格納する第１テーブル格納部１１と、第２テーブル１２ａを格納する第２テーブル格納部１２と、第３テーブル１３ａを格納する第３テーブル格納部１３と、５〜１５ビットシフタ１４と、各ビットシフタ１４に接続された計１１個の第４テーブル格納部１５と、符号長検出部１６と、マルチプレクサ（復号データ選択部）１７と、結合部１８と、最終選択部１９とを有する。
【００１７】
第１テーブル１１ａは、可変長符号を、連続したゼロ値の数が（Ｍ−１）個以上（Ｍは２以上の整数）の第１復号データに変換するための変換テーブルである。
【００１８】
第２テーブル１２ａは、以下の１）と２）の変換を行い、可変調符号またはその組合せを、変換後の非ゼロ値とゼロ値の合計が少なくとも（Ｍ−１）個の第２復号データに変換するための変換テーブルである。
【００１９】
１）符号長がＮ（Ｎは２以上の整数）未満の可変長符号を、ゼロ値がゼロ個の復号データに変換する。
【００２０】
２）符号長がＮ（Ｎは２以上の整数）未満の可変長符号と、この可変長符号の次に配置されて、対応する復号データのゼロ値がゼロ個以上（Ｍ−２）個以下の可変長符号と、を組合せて復号データに変換する。
【００２１】
第３テーブル１３ａは、以下の３）と４）の変換を行い、可変調符号またはその組合せを、変換後の非ゼロ値とゼロ値の合計が少なくとも（Ｍ−１）個の第３復号データに変換するための変換テーブルである。
【００２２】
３）符号長がＮ（Ｎは２以上の整数）以上の可変長符号を、ゼロ値がゼロ個の復号データに変換する。
【００２３】
４）符号長がＮ（Ｎは２以上の整数）以上の可変長符号と、この可変長符号の次に配置されて、対応する復号データのゼロ値がゼロ個以上（Ｍ−２）個以下の可変長符号と、を組合せて復号データに変換する。
【００２４】
上記条件により、第２および第３テーブル１２ａ、１３ａに登録されている可変長符号またはその組合せは異なっている。条件１）と３）は、一つの可変長符号のみで復号データに変換する場合の条件であり、条件２）と４）は、二つ以上の可変長符号を組み合わせて復号データに変換する場合の条件である。いずれの場合も、原則として、復号データ内の非ゼロ値の数とゼロ値の数の総和は（Ｍ−１）個以上である。これにより、復号処理の１サイクルで、（Ｍ−１）個以上のＤＣＴ係数を生成できることになる。
【００２５】
ここで、Ｍは、復号処理の１サイクルで復号されるＤＣＴ係数の数であり、必要とされる処理性能に応じて決定される。Ｎは第２テーブル１２ａと第３テーブル１３ａのサイズを決める値であり、Ｎが大きいほど第２テーブル１２ａが大きく、第３テーブル１３ａは小さくなり、Ｎが小さいほど第２テーブル１２ａは小さく、第３テーブル１３ａは大きくなる。
【００２６】
図４は、Ｍ＝４、Ｎ＝７の場合の、第２テーブル１２ａの一例を示す図である。Ｎ＝７であるため、図４の第２テーブル１２ａには、符号長が６以下の可変長符号とその組合せが登録されている。また、Ｍ＝４であるため、復号データは最低３つの非ゼロ値を含んでいる。また、ＬＡＳＴ＝１となる可変長符号はそれが最終の符号であることを表すためそれ以降に符号を組み合わせることはしない。したがって、ＬＡＳＴ＝１の可変長符号を復号する場合は、復号データ内の非ゼロ値の数とゼロ値の数の総和が（Ｍ−１）個未満になることもありうる。
【００２７】
図４の１行目のデータは、同じ可変長符号（１０ｓ）を３つ組み合わせたものであり、いずれもＬＡＳＴは０で、符号長の合計は３×３＝９ビットである。可変長符号（１０ｓ）は復号データ「１」に対応しており、（１０ｓ）（１０ｓ）（１０ｓ）の復号データは「１、１、１」になる。
【００２８】
図４の第２テーブル１２ａには、一つの可変長符号だけで復号データに変換するものと、２個以上の可変長符号の組合せで復号データに変換するものとが含まれている。一つの可変長符号だけで復号データに変換するものは条件１）に該当し、２個以上の可変長符号の組合せで復号データに変換するものは条件２）に該当する。
【００２９】
第３テーブル１３ａも、一つの可変長符号だけで復号データに変換するものと、２個以上の可変長符号の組合せで復号データに変換するものとが含まれている。
【００３０】
第１テーブル格納部１１は、第１テーブル１１ａを用いて可変調符号を第１復号データData1に変換して最終選択部１９に出力する。
【００３１】
第２テーブル格納部１２は、第２テーブル１２ａを用いて可変長符号を復号データData2に変換して結合部１８に出力し、復号データData2の復号前の符号長length2を符号長検出部１６に出力する。同様に、第３テーブル格納部１３は、第３テーブル１３ａを用いて可変長符号を復号データData3に変換して結合部１８に出力し、復号データData3の復号前の符号長length3を符号長検出部１６に出力する。
【００３２】
第１〜第３テーブル格納部１１〜１３での復号データへの変換処理は、入力ビットストリームの先頭位置から行われる。また、それぞれの処理は並列に行われる。
【００３３】
ビットシフタ１４はそれぞれ、入力ビットストリームをビットシフトさせて、入力ビットストリームの先頭位置を更新する。これらビットシフタ１４で、入力ビットストリームを例えば５〜１５ビット分シフトさせる理由は、第２テーブル１２ａまたは第３テーブル１３ａを用いて復号した可変長符号またはその組合せの分だけ、入力ビットストリームをずらして、後続の可変長符号を復号するためである。したがって、これらビットシフタ１４でシフトさせる量は、第２テーブル１２ａまたは第３テーブル１３ａに登録された可変長符号またはその組合せの符号長に依存する。例えば、第２テーブル１２ａまたは第３テーブル１３ａに登録された可変長符号またはその組合せの符号長に、５ビット未満のものあるいは１６ビット以上のものがあれば、それに合わせた数だけビットシフトするビットシフタ１４を設ける必要がある。図３では、第２テーブル１２ａまたは第３テーブル１３ａに登録された可変長符号またはその組合せの符号長が５〜１５ビットであるとして、５〜１５ビットシフタ１４が設けられている。
【００３４】
ビットシフタ１４で入力ビットストリームをシフトすることにより、これらビットシフタ１４に接続された第４テーブル格納部１５には、それぞれ先頭位置が異なる入力ビットストリームが入力される。第４テーブル格納部１５は、ビットシフタ１４のそれぞれに対応して設けられる。これら第４テーブル格納部１５は、同一内容の第４テーブル１５ａを有する。第４テーブル１５ａには、すべての可変長符号と、対応する復号データとが格納されている。
【００３５】
第４テーブル格納部１５は、入力ビットストリームのシフトされた先頭位置から始まる可変長符号を第４復号データに変換する。第４テーブル格納部１５のそれぞれからは、５〜１５ビットシフタ１４でシフトした後の入力ビットストリームの先頭位置から始まる可変長符号に対応する復号データが出力される。第４テーブル１５ａは、すべての可変長符号に対応する復号データが登録されているため、いずれの第４テーブル格納部１５からも、復号データが出力されることになる。
【００３６】
ビットシフタ１４と第４テーブル格納部１５を用いた復号処理は、第２テーブル格納部１２と第３テーブル格納部１３を用いた復号処理と並行して行われる。
【００３７】
符号長検出部１６は、第２テーブル格納部１２と第３テーブル格納部１３のいずれかから符号長が出力された場合には、その符号長をマルチプレクサ１７に通知する。
【００３８】
マルチプレクサ１７は、符号長検出部１６が取得した符号長lengthに基づいて、第４テーブル格納部１５のそれぞれから出力された復号データのうち一つを選択する。例えば、図４に示す第２テーブル１２ａにより可変長符号(10s)(1111s)(10s)に対応する復号データ「１、３、１」が選択された場合、第２テーブル格納部１２からは符号長length2＝１１が出力される。符号長検出部１６は、この符号長length2＝１１をマルチプレクサ１７に供給する。よって、マルチプレクサ１７は、１１ビットシフト１４に接続された第４テーブル格納部１５から出力された復号データを選択する。これにより、この第４テーブル格納部１５は、第２テーブル格納部１２が可変長符号(10s)(1111s)(10s)に対応する復号データ「１、３、１」を出力するのに並行して、入力ビットストリームを１１ビットシフトさせた後の可変長符号に対応する復号データを出力する。
【００３９】
結合部１８は、第２または第３復号データData2、Data3と、マルチプレクサ１７で選択した第４復号データData4とを結合し、第５復号データData5を生成する。
【００４０】
最終選択部１９は、第１テーブル格納部１１から出力された第１復号データData1と結合部１８で結合された第５復号データData5とのいずれかを選択する。
【００４１】
第１〜第４テーブル格納部１１〜１３，１５は、各テーブルに該当する可変長符号が入力された場合には、対応する復号データを出力し、各テーブルに該当する可変長符号が入力されなかった場合には、無意味なデータ（エラーデータ）を出力する。したがって、第１〜第４テーブル格納部１１〜１３，１５は、最終選択部１９がエラーデータを結合することがないよう、第１〜第４テーブル格納部１１〜１３，１５の出力データが意味のある復号データであるか否かを最終選択部１９に通知する必要がある。例えば、第１テーブル格納部１１が正規の復号データを出力する際には、合わせて可変長符号の符号長も出力するようにし、エラーデータを出力する際には符号長＝０を出力するようにすれば、最終選択部１９は、この符号長の値により、第１テーブル格納部１１の出力データData1を選択すべきか否かを簡易かつ正確に判別できる。
【００４２】
第１テーブル格納部１１を用いて第１復号データData1が生成された場合は、第２〜第４テーブル格納部の処理結果は用いない。したがって、最終選択部１９は第１復号データData1を選択する。一方、第１復号データData1が生成されない場合は、第２〜第４テーブル格納部を用いて復号データが生成されるので、最終選択部１９は第５復号データData5を選択する。
【００４３】
なお、第２または第３復号データData2、Data3と、第４復号データData4とを結合された第５復号データData5は、最低でもＭ個のＤＣＴ係数を含むことになる。一方、第１復号データData1は、Ｍ個のＤＣＴ係数を含む。
【００４４】
以上より、第１テーブル格納部１１を用いて復号データへの変換を行う場合も、第２〜第４テーブル格納部１５を用いて復号データへの変換を行う場合も、各復号データ中に少なくともＭ個のＤＣＴ係数が含まれることになる。これは別の見方をすると、入力ビットストリーム中にどのような可変長符号が含まれている場合でも、復号処理の１サイクルの間に、少なくともＭ個のＤＣＴ係数を生成できることを意味し、効率的に復号を行えることがわかる。
【００４５】
以下、図３に示す可変長符号復号装置１の第１例の動作を説明する。入力ビットストリームは、第１〜第３テーブル格納部１１〜１３およびビットシフタ１４のそれぞれに入力される。第１〜第３テーブル格納部１１〜１３はそれぞれ、入力ビットストリームの先頭位置からビット単位で検索を開始して、入力ビットストリーム中に、第１〜第３テーブル１１ａ〜１３ａに登録された可変長符号またはその組合せに一致するビットパターンが含まれるか否かを検索する。その結果、登録されている可変長符号またはその組合せに一致するビットパターンが検出されると、一致が検出されたテーブルから、対応する復号データが出力される。第１テーブル１１ａで一致が検出された場合の復号データのゼロ値と非ゼロ値の総数、すなわち、ＤＣＴ係数の総数は、Ｍ個である。第２テーブル１２ａまたは第３テーブル１３ａで一致が検出された場合の復号データのＤＣＴ係数の総数は、（Ｍ−１）個以上である。
【００４６】
このように、入力ビットストリームは、第１〜第３テーブル格納部１１〜１３に並行して入力されて、第１〜第３テーブル１１a〜１３ａ内の検索処理が並行して行わる。結果として、復号処理の１サイクルで、Ｍ個または（Ｍ−１）個以上のＤＣＴ係数を含む復号データが生成される。
【００４７】
第２テーブル１２ａと第３テーブル１３ａには、互いに異なる可変長符号とその組合せが登録されているため、第２テーブル格納部１２と第３テーブル格納部１３から同タイミングで復号データが出力されることはない。したがって、いずれか一方のテーブル格納部のみから復号データと符号長が出力される。
【００４８】
また、入力ビットストリームは、５〜１５ビットシフタ１４で５〜１５ビット分シフトされ、入力ビットストリームの先頭位置がそれぞれずらされる。すなわち、第２または第３テーブル格納部で復号される可変調符号およびその組合せ以降の可変長符号を検出するために、ビットシフタ１４で入力ビットストリームの先頭位置をシフトさせる。
【００４９】
５〜１５ビットシフタ１４のそれぞれに接続された第４テーブル格納部１５は、シフトされた入力ビットストリームの先頭位置から可変長符号を検出する。第４テーブル１５ａから検出された可変調符号に一致するビットパターンが検索され、対応する復号データがマルチプレクサ１７に供給される。第２または第３テーブル格納部１２，１３で復号を行なう可変長符号の符号長分だけ、シフトされるようにビットシフタ１４が設けられているため、少なくとも５〜１５ビットシフタ１４のいずれかで一致するビットパターンが検出され、復号データが出力される。
【００５０】
第２または第３テーブル格納部１２、１３から出力された符号長は、符号長検出部１６で検出され、マルチプレクサ１７に出力される。マルチプレクサ１７は、符号長検出部１６からの符号長に基づいて、いずれか一つの第４テーブル格納部１５から出力された復号データを選択する。
【００５１】
第２または第３テーブル格納部１２，１３から出力された復号データData2、Data3と符号長に基づいて選択された復号データData4とは、結合部１８で結合される。このように、第２〜第４テーブル格納部１２，１３、１５で復号データが生成された場合は、合わせてＭ個以上のＤＣＴ係数を含む復号データが生成される。
【００５２】
すなわち、第１テーブル格納部１１で復号処理を行った場合も、第２〜第４テーブル格納部１２，１３，１５で復号処理を行った場合も、１サイクルで少なくともＭ個のＤＣＴ係数を含む復号データが生成される。
【００５３】
第１テーブル１１aに登録された可変長符号は、第２および第３テーブル１２a，１３aに登録された可変長符号またはその組合せとは異なるため、第１テーブル格納部１１にて復号データが生成された場合は、第２または第３テーブル格納部１２，１３では復号データの生成は行われない。逆に、第２または第３テーブル格納部１２，１３で復号データが生成された場合は、第１テーブル格納部１１では復号データの生成は行われない。よって、最終選択部１９は、第１復号データと、第５復号データとのいずれかを選択する。
【００５４】
このように、可変長符号復号装置１の第１例では、入力ビットストリームを第１〜第４テーブル格納部１１〜１３，１５を用いて並列的に復号処理を行うことにより、１サイクルで少なくともＭ個のＤＣＴ係数を含む復号データを生成でき、復号処理を高速に行うことができる。
【００５５】
（可変長符号復号装置１の第２例）
図３の可変長符号復号装置１は、１１個の第４テーブル格納部１５を備えている。第４テーブル１５ａには、すべての可変長符号に対応する復号データが登録されており、可変長符号の種類が多い場合には、データ容量が多くなる。しかも、第４テーブル１５ａを１１個も持たなければならないことは、回路規模の肥大化の要因になる。可変長符号復号装置１の第２例は、第４テーブル格納部１５の数を減らすことを特徴としている。
【００５６】
可変長符号復号装置１の第２例は、図３と同様のブロック構成を有するが、第２テーブル１２ａの内容が異なる。第２テーブル１２ａには、上述した条件１）と２）に加えて、以下の条件５）を満たす可変長符号およびその組合せが登録されている。
【００５７】
５）可変長符号またはその組合せの合計符号長がＫ個（Ｋは２以上の整数）以上である。
【００５８】
例えば、Ｋ＝７の場合は、第２テーブル格納部１２で復号される可変長符号またはその組合せの符号長が最低でも７ビットとなる。したがって、後続の可変長符号は、入力ビットストリームの先頭位置から７ビット以上シフトさせた位置から始まることになり、５ビットシフタ１４および６ビットシフタ１４と、これらに接続される２つの第４テーブル格納部１５とは不要となる。その分、第２テーブル１２ａのサイズが大きくなることから、不要となるビットシフタ１４と第４テーブル格納部１５による回路規模の削減と、第２テーブル１２ａのサイズ拡大による回路規模の増加とを勘案して、最適なＫを設定するのが望ましい。
【００５９】
このように、第２テーブル格納部１２で復号処理を行う対象となる可変長符号またはその組合せの合計符号長に制限を設けることで、ビットシフタ１４と第４テーブル格納部１５の数を削減でき、回路規模の縮小化を図ることができる。この第２例においても、上述した第１例と同様に、１サイクルで少なくともＭ個のＤＣＴ係数を含む復号データを生成でき、復号処理を高速に行うことができる。
【００６０】
（可変長符号復号装置１の第３例）
復号処理の１サイクルで復号可能なＤＣＴ係数の数Ｍを増やせば、１サイクルで復号可能なＤＣＴ係数の数が増えることになり、入力ビットストリームを高速に復号することができる。その一方、Ｍの数を増やすと、第１テーブル１１ａの登録数は減るが、第２テーブル１２ａと第３テーブル１３ａの登録数が増えてしまう。すなわち、第２テーブル１２ａと第３テーブル１３ａでは、可変長符号の組合せ数が増える。このため、これらテーブルのデータ容量が大きくなって、検索に時間がかかるおそれがある。よって、第２テーブル１２ａと第３テーブル１３ａのデータ容量とこれらテーブルの検索時間を考慮に入れて、最適なＭを決定すればよい。
【００６１】
また、第１のテーブルに、上述した条件１）に加えて、以下の条件６）を付加してもよい。
【００６２】
６）復号データのゼロ値がゼロ個以上（Ｍ−２）個以下の可変長符号を複数個組み合わせて復号データを生成し、復号データの非ゼロ値とゼロ値の合計が少なくともＭ個である。
【００６３】
この条件６）を加えることで、第１のテーブル１１aの登録数は増えるが、第２テーブル１２ａと第３テーブル１３ａの登録数を減らすことができ、全体的な回路規模を縮小できる。
【００６４】
上述した実施形態では、主にＭＰＥＧ−４の規格に準拠した可変長符号の復号処理について説明したが、本発明は、ＭＰＥＧ−２やＨ．２６４等を含めて、種々の可変長符号に適用可能である。
【００６５】
上述した実施形態で説明した可変長符号復号装置１および復号システム１０の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、可変長符号復号装置１および復号システム１０の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００６６】
また、可変長符号復号装置１および復号システム１０の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００６７】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００６８】
１  可変長符号復号装置、２  逆量子化部、３  逆ＤＣＴ部、４  参照画像メモリ、５  動き補償部、６  加算器、１１  第１テーブル格納部、１１ａ  第１テーブル、１２  第２テーブル格納部、１２ａ  第２テーブル、１３  第３テーブル格納部、１３ａ  第３テーブル、１４  ビットシフタ、１５  第４テーブル格納部、１５ａ  第４テーブル、１６  符号長検出部、１７  マルチプレクサ、１８  結合部、１９  最終選択部
【図１】
2013016897.tif 000003
【図２】
2013016897.tif 000004
【図３】
2013016897.tif 000005
【図４】
2013016897.tif 000006