(57)【要約】 【課題】可変長符号の出現パターンに依存せずに復号処理性能を向上可能とする。【解決手段】ＶＬＤ装置３は、第１テーブル記憶部１１と、第２テーブル記憶部１２と、優先度判定部１３と、係数バッファ１４と、係数格納制御部１５と、ＤＣＴ係数記憶部１６とを有する。第２テーブル記憶部１２は、複数種類の可変長符号の組合せを、それに対応する複数種類のＤＣＴ係数のゼロ値情報の組合せに対応づけた第２のテーブルを記憶する。第２のテーブルにより、入力ビットストリーム中の最大２つの可変長符号を同時に復号可能であり、可変長符号のビットパターンに依存せずに、復号処理性能を向上できる。また、ブロック単位で復号するのに必要な可変長符号のみを合成テーブルに登録しておくため、合成テーブル内の可変長符号の登録数を削減できる。【選択図】図１
2012253420.tif 000002
【特許請求の範囲】
【請求項１】
複数の可変長符号からなる入力ビットストリームを、非ゼロ値と０個以上の連続したゼロ値の数を表すゼロ値情報とからなる復号データに復号する可変長符号復号装置において、
個々の前記可変長符号を、対応する復号データのゼロ値情報に対応づけた第１のテーブルを記憶する第１テーブル記憶部と、
複数種類の可変長符号の組合せを、それに対応する複数種類の復号データそれぞれのゼロ値情報の組合せに対応づけた第２のテーブルを記憶する第２テーブル記憶部と、
前記入力ビットストリームに含まれる可変長符号およびその組合せが、前記第１および第２のテーブルの双方に記憶されている場合は、前記第２のテーブルに記憶された、最も符号数の多い可変長符号の組合せに対応するゼロ値情報の組合せを優先して読出し、前記入力ビットストリームに含まれる可変長符号が前記第２のテーブルには記憶されておらず前記第１のテーブルに記憶されている場合は、前記第１のテーブルに記憶された該当するゼロ値情報を読出す優先度判定部と、
前記入力ビットストリームに含まれる複数種類の可変長符号を処理単位として、前記優先度判定部が読出したゼロ値情報またはその組合せに基づいて、復号データを生成する復号部と、を備えることを特徴とする可変長符号復号装置。
【請求項２】
前記第２テーブル記憶部は、前記複数種類の可変長符号の組合せに対応する非ゼロ値とゼロ値の数との合計値が前記所定個数を超えない範囲で前記第２のテーブルを記憶し、前記複数種類の可変長符号の組合せに対応するゼロ値の総数が第１の閾値を超えた場合は、該組合せにさらに別個の可変長符号が組み合わされないように、前記第２のテーブルを記憶することを特徴とする請求項１に記載の可変長符号復号装置。
【請求項３】
前記第２テーブル記憶部は、最大ｋ種類（ｋは２以上の整数）の前記可変長符号の組合せの中から、前記可変長符号の組合せに対応する非ゼロ値の数とゼロ値の数との合計値が第２の閾値を超える該組合せを除外した前記第２のテーブルを記憶することを特徴とする請求項２に記載の可変長符号復号装置。
【請求項４】
前記入力ビットストリームは、個々の前記可変長符号に対応する非ゼロ値を含んでおり、
前記優先度判定部が前記第２のテーブルに記憶された該当するゼロ値情報の組合せを優先して読出した場合には、対応する前記非ゼロ値を一時的に記憶する一時記憶部を備え、
前記復号部は、前記優先度判定部が前記第２のテーブルから読出したゼロ値情報と、前記一時記憶部に記憶された前記非ゼロ値とに基づいて、前記復号データを生成することを特徴とする請求項１乃至３のいずれかに記載の可変長符号復号装置。
【請求項５】
動き補償され、ＤＣＴ（Discrete Cosine Transform）変換され、かつ量子化された可変長符号を含む入力ビットストリームに対して可変長符号復号を行って、非ゼロ値と０個以上のゼロ値からなる復号データを生成する可変長符号復号装置と、
前記復号データに対して逆量子化を行う逆量子化装置と、
逆量子化されたデータに対して、逆離散コサイン変換を行うＩＤＣＴ（Inverse Discrete Cosine）装置と、
逆離散コサイン変換後のデータに対して動き補償を行う動き補償装置と、を備え、
前記可変長符号復号装置は、
個々の前記可変長符号を、それに対応する前記復号データのゼロ値の数を表すゼロ値情報に対応づけた第１のテーブルを記憶する第１テーブル記憶部と、
複数種類の前記可変長符号の組合せを、それに対応する複数種類の前記復号データそれぞれのゼロ値情報の組合せに対応づけた第２のテーブルを記憶する第２テーブル記憶部と、
前記入力ビットストリームに含まれる可変長符号およびその組合せが、前記第１および第２のテーブルの双方に記憶されている場合は、前記第２のテーブルに記憶された、最も符号数の多い可変長符号の組合せに対応するゼロ値情報の組合せを優先して読出し、前記入力ビットストリームに含まれる可変長符号が前記第２のテーブルには記憶されておらず前記第１のテーブルに記憶されている場合は、前記第１のテーブルに記憶された該当するゼロ値情報を読出す優先度判定部と、
前記入力ビットストリームに含まれる複数種類の可変長符号を処理単位として、前記優先度判定部が読出したゼロ値情報またはその組合せに基づいて、前記復号データを生成する復号部と、を備えることを特徴とする復号システム。
【請求項６】
可変長符号からなる入力ビットストリームを、非ゼロ値と０個以上のゼロ値からなる復号データに復号する可変長符号復号方法において、
個々の前記可変長符号を、それに対応する前記復号データのゼロ値の数を表すゼロ値情報に対応づけた第１のテーブルを記憶し、
複数種類の前記可変長符号の組合せを、それに対応する複数種類の前記復号データそれぞれのゼロ値情報の組合せに対応づけた第２のテーブルを記憶し、
前記入力ビットストリームに含まれる可変長符号およびその組合せが、前記第１および第２のテーブルの双方に記憶されている場合は、前記第２のテーブルに記憶された、最も符号数の多い可変長符号の組合せに対応するゼロ値情報の組合せを優先して読出し、前記入力ビットストリームに含まれる可変長符号が前記第２のテーブルには記憶されておらず前記第１のテーブルに記憶されている場合は、前記第１のテーブルに記憶された該当するゼロ値情報を読出し、
前記入力ビットストリームに含まれる複数種類の可変長符号を処理単位として、前記優先度判定部が読出したゼロ値情報またはその組合せに基づいて、前記復号データを生成することを特徴とする可変長符号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、可変長符号を復号する可変長符号復号装置、復号システムおよび可変長符号復号方法に関する。
【背景技術】
【０００２】
Ｈ．２６４、ＶＣ−１、ＭＰＥＧ−４、ＭＰＥＧ−２およびＪＰＥＧ等の画像の圧縮伸張規格はいずれも、可変長符号を用いており、復号システム内には、可変長符号復号装置が必要となる。ところが、可変長符号復号処理は、複数の可変長符号を並列して復号処理するのが難しく、復号システムの処理性能上のボトルネックとなりやすい部分である。
【０００３】
従来、画面解像度が標準解像度（ＳＤ：Standard Definition）の場合は、１クロックサイクル当り１シンボルを復号できれば十分であるが、画面解像度が高精細（ＨＤ：High Definition）からスーパーハイビジョンへと大きくなるに従って、復号効率を上げる必要が生じ、１クロックサイクルごとに複数の可変長符号を復号する処理性能が要求されるようになってきた。
【０００４】
同一のクロックサイクル内に複数の可変長符号を復号する処理が従来から提案されている（特許文献１，２参照）が、動作周波数の高速化が困難であったり、復号処理性能が可変長符号の出現パターンに依存するなどの問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１５８６９８号公報
【特許文献２】特開２００８−２２７９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本願発明の実施形態は、可変長符号の出現パターンに依存せずに復号処理性能を向上可能な可変長符号復号装置、復号システムおよび可変長符号復号方法を提供するものである。
【課題を解決するための手段】
【０００７】
本実施形態によれば、複数の可変長符号からなる入力ビットストリームを、非ゼロ値と０個以上の連続したゼロ値の数を表すゼロ値情報とからなる復号データに復号する可変長符号復号装置において、
個々の前記可変長符号を、対応する復号データのゼロ値情報に対応づけた第１のテーブルを記憶する第１テーブル記憶部と、
複数種類の可変長符号の組合せを、それに対応する複数種類の復号データそれぞれのゼロ値情報の組合せに対応づけた第２のテーブルを記憶する第２テーブル記憶部と、
前記入力ビットストリームに含まれる可変長符号およびその組合せが、前記第１および第２のテーブルの双方に記憶されている場合は、前記第２のテーブルに記憶された、最も符号数の多い可変長符号の組合せに対応するゼロ値情報の組合せを優先して読出し、前記入力ビットストリームに含まれる可変長符号が前記第２のテーブルには記憶されておらず前記第１のテーブルに記憶されている場合は、前記第１のテーブルに記憶された該当するゼロ値情報を読出す優先度判定部と、
前記入力ビットストリームに含まれる複数種類の可変長符号を処理単位として、前記優先度判定部が読出したゼロ値情報またはその組合せに基づいて、復号データを生成する復号部と、を備えることを特徴とする可変長符号復号装置が提供される。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る復号システムの概略構成を示すブロック図。
【図２】Ｈ．２６４におけるｒｕｎと可変長符号との対応関係を登録したテーブルの一例を示す図。
【図３】図２のテーブルに基づいて符号化された可変長符号を、元のＤＣＴ係数に変換する可変長符号復号処理を説明する図。
【図４】ＶＬＤ装置３の内部構成の一例を示す図。
【図５】第１例に係る合成テーブルを示す図。
【図６】図５の合成テーブルを用いた場合と公知のテーブルを用いた場合とで、復号処理の処理性能を比較した図。
【図７】一実施形態に係るＶＬＤ装置３が行う復号処理の処理手順を示すフローチャート。
【図８】第２の例に係る合成テーブルを示す図。
【図９】図８の合成テーブルを用いた場合の復号処理の処理性能を、図５の合成テーブルまたは公知のテーブルを用いた場合とで比較した図。
【図１０】第３の例に係る合成テーブルを示す図。
【図１１】条件３を説明する図。
【図１２】図１０の合成テーブルを用いた場合の復号処理の処理性能を、図５の合成テーブル、図８の合成テーブル、または公知のテーブルを用いた場合とで比較した図。
【図１３】第４例に係る合成テーブルを示す図。
【図１４】図１３の合成テーブルを用いた場合の復号処理の処理性能を、図１０の合成テーブル、または公知のテーブルを用いた場合とで比較した図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１０】
図１は一実施形態に係る復号システムの概略構成を示すブロック図である。図１の復号システム１は、入力ビットストリームを一時的に格納するＦＩＦＯ装置２と、ＶＬＤ（Variable Length Decoding、可変長符号復号）装置３と、ＩＱ（Inverse Quantization、逆量子化）装置４と、ＩＤＣＴ（Inverse Discrete Cosine、逆離散コサイン変換）装置５と、ＭＣ（Motion Compensation、動き補償）装置６と、フレームメモリ７とを備えている。
【００１１】
ＶＬＤ装置３は、入力ビットストリームに含まれる可変長符号を復号して、例えばＤＣＴ（Discrete Cosine Transform）係数に変換する。ＩＱ装置４は、ＤＣＴ係数を逆量子化する。ＩＤＣＴ装置５は、逆量子化後のデータに対して逆離散コサイン変換を行って、周波数変換の情報から画素情報に変換する。ＭＣ装置６は、逆離散コサイン変換後のデータに対して動き補償を行って、復号データを生成する。生成された復号データは、フレームメモリ７に格納される。
【００１２】
以下では、ＶＬＤ装置３の内部構成および処理動作を中心に説明する。
【００１３】
入力ビットストリームは、複数の可変長符号を含んでいる。可変長符号は、出現頻度の高い符号語ほど符号長は短い。入力ビットストリームは、不図示の符号化装置により符号化されたものであり、以下では一例として、Ｈ．２６４の規格で符号化された入力ビットストリームについて説明する。Ｈ．２６４の入力ビットストリームは、元の画像データに対して、動き補償、ＤＣＴ（Discrete Cosine Transform）変換および量子化を行って符号化したものである。
【００１４】
ＤＣＴ変換では、元の画像データ中の画素信号を周波数成分に変換し、画面内の冗長情報を削減する。ＤＣＴ変換により、ＤＣＴ係数が生成される。ＤＣＴ係数は、非ゼロ値または０個以上のゼロ値で構成される。「非ゼロ値の前の連続したゼロ値の個数」をｒｕｎと呼ぶ。Ｈ．２６４ではrun_beforeと呼ばれており、ＭＰＥＧ−２、ＭＰＥＧ−４およびＪＰＥＧなどでは単にｒｕｎと呼ぶが、本質的な違いはないため、以下では区別せずにｒｕｎという名称を用いる。
【００１５】
ＤＣＴ係数は可変長符号に変換される。図２はＨ．２６４におけるｒｕｎと可変長符号との対応関係を登録したテーブルの一例を示す図である。出現頻度の高い符号ほど符号長が短くなっており、ｒｕｎの数が大きくなるほど符号長が長くなっている。
【００１６】
図３は、図２のテーブルに基づいて符号化された可変長符号を、元のＤＣＴ係数に変換する可変長符号復号処理を説明する図である。個々の可変長符号は、図２のテーブルに示すように、非ゼロ値または０個以上のゼロ値で構成されるＤＣＴ係数を符号化したものである。図３の例では、入力ビットストリームには、run＝７の可変長符号「00001」と、run＝０の可変長符号「111」と、run＝２の可変長符号「101」とが含まれている。
【００１７】
可変長符号復号処理では、入力ビットストリームに含まれる個々の可変長符号を、送信順序とは逆の順序に復号化する。図３の例では、まず、run＝２の可変長符号「101」を復号して、非ゼロ値Ｘ4とゼロ値「00」からなる計３個のＤＣＴ係数に変換し、次に、run＝０の可変長符号「111」を復号して、非ゼロ値Ｘ3からなる計１個のＤＣＴ係数に変換し、次に、run＝７の可変長符号「00001」を復号して、非ゼロ値Ｘ2とゼロ値「0000000」からなる計８個のＤＣＴ係数に変換する。
【００１８】
これらのＤＣＴ係数は、図３に示すように、４×４ブロックの各マス目にシグザグ状に配置される。ＤＣＴ係数は、元画像を低周波数成分と高周波数成分に分解したものであり、ＤＣＴ係数をブロック内でジグザグ状に配置することで、画質に大きな影響を与える低周波数成分のＤＣＴ係数をブロック内の一部分に集めることができる。
【００１９】
その後、ＩＱ装置４、ＩＤＣＴ装置５およびＭＣ装置６は順に、ブロック単位で、ＤＣＴ係数に対して、逆量子化、逆離散コサイン変換および動き補償を行って、元の画像データを復元する。復元された画像データは、フレームメモリ７に格納される。
【００２０】
図４はＶＬＤ装置３の内部構成の一例を示す図である。図４のＶＬＤ装置３は、第１テーブル記憶部１１と、第２テーブル記憶部１２と、優先度判定部１３と、係数バッファ１４と、係数格納制御部（復号部）１５と、ＤＣＴ係数記憶部１６とを有する。以下では、第１テーブル記憶部１１と第２テーブル記憶部１２とを統合した合成テーブル記憶部１０を有する例を説明する。
【００２１】
第１テーブル記憶部１１は、可変長符号と、ＤＣＴ係数のゼロ値情報とを対応づけた第１のテーブルを記憶する。第２テーブル記憶部１２は、複数種類の可変長符号の組合せと、複数種類のＤＣＴ係数のゼロ値情報の組合せとを対応づけた第２のテーブルを記憶する。第１のテーブルと第２のテーブルの具体例については後述するが、本実施形態は、第１のテーブルと第２のテーブルを統合した合成テーブルを合成テーブル記憶部１０に記憶している。
【００２２】
優先度判定部１３は、合成テーブル内の第１のテーブルに記憶されたゼロ値情報を読出すか、第２のテーブルに記憶されたゼロ値情報の組合せを読出すかを判定する。より具体的には、優先度判定部１３は、入力ビットストリームに含まれる可変長符号およびその組合せが、合成テーブル内の第１および第２のテーブルの双方に含まれる場合は、第２のテーブルに記憶された、最も符号数の多い可変長符号の組合せに対応するゼロ値情報の組合せを優先して読出す。また、優先度判定部１３は、入力ビットストリームに含まれる可変長符号およびその組合せが、第２のテーブルには記憶されておらず第１のテーブルに記憶されている場合は、第１のテーブルに記憶された該当するゼロ値情報を読出す。
【００２３】
係数バッファ１４は、優先度判定部１３が第２のテーブルからゼロ値情報の組合せを優先して読出した場合に、対応する非ゼロ値を入力ビットストリーム中から取得して、一時的に記憶する。入力ビットストリームには、可変長符号のそれぞれに対応づけて、非ゼロ値が予め含まれている。係数バッファ１４は必要に応じて、入力ビットストリーム中の非ゼロ値を取得して、一時的に格納する。
【００２４】
ゼロ値情報のそれぞれに対応して可変長符号に非ゼロ値が存在するため、優先度判定部１３がゼロ値情報の組合せを読出した場合は、複数種類の非ゼロ値が存在することになる。したがって、係数バッファ１４を設けた理由は、それらすべての非ゼロ値の書き込みが完了するまで、一時的に保持しておく必要があるためである。
【００２５】
係数格納制御部１５は、入力ビットストリームに含まれる複数種類の可変長符号（例えば４×４個）を処理単位として、優先度判定部１３が読出したゼロ値情報またはその組合せに基づいて、上述した図３に示す手順でＤＣＴ係数を生成する制御を行う。生成されたＤＣＴ係数はＤＣＴ係数記憶部１６に記憶される。
【００２６】
第２のテーブルの具体例として種々のものが考えられる。以下では、一例として４種類の例を説明する。以下に説明する各テーブルは、便宜上、第１のテーブルと第２のテーブルを一つにまとめた合成テーブルである。合成テーブル中の第１のテーブルはいずれも共通であり、第２のテーブルのみが異なっている。
【００２７】
（合成テーブルの第１例）
図５は第１例に係る合成テーブルを示す図である。図５の合成テーブル中の第２のテーブルは、２つの可変長符号の組合せと、それに対応するゼロ値情報の組合せとを登録したものである。図５では、可変長符号をVLC code、それに対応するゼロ値情報をｒｕｎと表記している。例えば、ｒｕｎが（０）とは、連続する２つの非ゼロ値の間のゼロ値の数がゼロであることを意味する。例えば、ｒｕｎが（０，０）とは、連続する３つの非ゼロ値の間のそれぞれにゼロ値が存在しないことを示している。別の見方をすると、間にゼロ値の数がゼロの非ゼロ値が３つ連続して並んでいることを示している。また、ｒｕｎが（１，１３）とは、連続する３つの非ゼロ値のうち、一方の連続する２つの非ゼロ値の間のゼロ値の数が１個で、もう一方の連続する２つの非ゼロ値の間のゼロ値の数が１３個であることを示している。このように、図５のｒｕｎとは、連続する２つまたは３つの非ゼロ値の間にあるゼロ値の数を表している。
【００２８】
図５の合成テーブルは、４×４ブロックを基準として、ＤＣＴ係数への復号処理を行う場合に対応している。１つのブロックには、１６個の処理単位が含まれており、各処理単位にはＤＣＴ係数の非ゼロ値またはゼロ値が入る。図５の合成テーブルは、最大２つの可変長符号の組合せをゼロ値情報の組合せに変換できるようにしたことを特徴としている。
【００２９】
図５の合成テーブルを作成する条件は、非ゼロ値の数とゼロ値の数の合計値が１ブロック内の要素の総数である１６個を超えないことであり、この条件を満たすデータのみが登録される。したがって、少なくとも２つの非ゼロ値の間のゼロ値の数が１４を超えることはない。図５の合成テーブルでは、ｒｕｎの値の合計が１４を超えるものをすべて除外し、合成テーブルの登録数を削減している。
【００３０】
図５の合成テーブルは、１つの可変長符号に対応するゼロ値情報を示す第１のテーブルと、２つの可変長符号の組合せに対応するゼロ値情報を示す第２のテーブルとを含んでいる。例えば、入力ビットストリームが奇数個の可変長符号を含む場合は、入力ビットストリームの先頭から２個ずつの可変長符号に対して図５の合成テーブルを参照して復号処理を行うため、入力ビットストリームの最後に１つの可変長符号が残る。したがって、それに対応したゼロ値情報を第２のテーブルだけからは見つけ出すことができなくなるため、第１のテーブルも含めている。
【００３１】
図６は、図５の合成テーブルを用いた場合と公知のテーブルを用いた場合とで、復号処理の性能を比較した図である。図６では、各可変長符号をゼロ値情報と対応づけた単一符号テーブルを用いて復号処理を行った場合と、特開２００７−１５８６９８号公報に開示されたテーブルを用いて復号処理を行った場合と、特開２００８−２２７９４６号公報に開示されたテーブルを用いて復号処理を行った場合とで、処理性能を比較している。図６は、各テーブルのみの性能であり、その他の構成の性能は含まれていない。
【００３２】
特開２００８−２２７９４６号公報に開示されたテーブルでは、可変長符号が特定のビットパターンのとき（例えば、０と１が交互に現れるとき）、復号処理に必要な処理サイクル数が１１まで増加する。一方、図５の合成テーブルでは、可変長符号のビットパターンに依存せず、常に８つの処理サイクル数で復号処理を行うことができる。
【００３３】
ただし、図５の合成テーブルは、登録数が多いことから合成テーブルのデータ容量が大きくなってしまう。したがって、この合成テーブルを半導体装置内に実装しようとすると、基板上の占有面積が大きくなってしまう。そこで、以下に説明する第２〜第４の例に係る合成テーブルでは、合成テーブルの縮小化を図っている。
【００３４】
第２〜第４の例に係る合成テーブルについて説明する前に、これら第１〜第４の例に係る合成テーブルのいずれかを使用してＤＣＴ係数への復号処理を行う処理手順を、図７を用いてより詳細に説明する。
【００３５】
図７は一実施形態に係るＶＬＤ装置３が行う復号処理のフローチャートである。まず、入力ビットストリームの先頭を取得する（Ｓ１）。図５の合成テーブルを用いる場合、ＶＬＤ装置３は最大２つの可変長符号を同時に取得できるだけのビット数を、入力ビットストリームの残量を上限として取得することになる。なお、用いる合成テーブルにより、取得するビット数の上限は異なる。
【００３６】
次に、取得した可変長符号またはその組合せが合成テーブル中に存在するか否かを検索する（Ｓ２）。ここでは、入力ビットストリームの先頭部分に含まれるビット列が、合成テーブル中の可変長符号に一致するか否かを検索し、一致した可変長符号を候補として抽出する。この抽出作業を、合成テーブルの全体に対して行う。合成テーブル中の第１テーブルには１つの可変長符号が記憶され、第２テーブルには最大２つの可変長符号の組合せが記憶されているため、場合によっては、入力ビットストリームの先頭部分に含まれるビット列と一致する可変長符号、またはその組合せが複数個検索される場合がある。もし、取得した可変長符号またはその組合せが合成テーブル中に存在しなければ、エラー処理を行う（Ｓ３）。
【００３７】
取得した可変長符号またはその組合せが合成テーブルに存在する場合（Ｓ２，Ｙｅｓ）は、合成テーブル中に複数の候補が存在するか否かを判定する（Ｓ４）。複数の候補が存在する場合は、その中で最も符号数が多い可変長符号の組合せのゼロ値情報を選択する（Ｓ５）。
【００３８】
図５の合成テーブルの場合は、入力ビットストリームから取得された２つの可変長符号の組合せに一致したゼロ値情報が第２のテーブルから読出される。なお、入力ビットストリームの可変長符号が奇数個の場合、すなわち、１つの可変長符号のみが取得された場合は、ゼロ値情報は第１のテーブルから読出される。
【００３９】
上述したＳ５の処理が終了したか、または上述したＳ４で複数の候補が存在しないと判定された場合は、取得した可変長符号（またはその組合せ）の符号数を変数ＮＵＭに、総ビット長を変数ＢＬとする（Ｓ６）。次に、取得した可変長符号（またはその組合せ）について、ＤＣＴ係数への復号処理を行う（Ｓ７）。
【００４０】
例えば、入力ビットストリームの先頭部分にビット列「111010」が含まれている場合は、図５の合成テーブルから（０，５）が抽出され、復号処理では、ゼロ値なしの非ゼロ値からなる１個のＤＣＴ係数と、ゼロ値からなる５個のＤＣＴ係数と、非ゼロ値からなる１個のＤＣＴ係数とに復号される。
【００４１】
一つの可変長符号の復号処理が終わると、変数ＮＵＭを１だけ減らす（Ｓ８）。次に、変数ＮＵＭがゼロになったか否かを判定し（Ｓ９）、ゼロでなければＳ７以降の処理を繰り返す。変数ＮＵＭがゼロであれば入力ビットストリームの先頭位置を変数ＢＬで示すビット長分だけシフトする（Ｓ１０）。シフトした結果、入力ビットストリームの終端に達したか否かを判定する（Ｓ１１）。入力ビットストリームの終端に達していなければＳ１に戻り、達した場合には処理を終了する。
【００４２】
このように、第１例に係る合成テーブルは、入力ビットストリーム中の最大２つの可変長符号を同時に復号可能としており、可変長符号のビットパターンに依存せずに、復号処理性能を向上できる。また、ブロック単位を基に必要な可変長符号のみを合成テーブルに登録しておくため、合成テーブル内の可変長符号の登録数を削減できる。
【００４３】
（合成テーブルの第２例）
図８は第２の例に係る合成テーブルを示す図である。図８の合成テーブルは、第１のテーブルと、最大４つまでの可変長符号の組合せとそれに対応するゼロ値情報を示す第２のテーブルとを含んでいる。図８の合成テーブルの第２のテーブルでは、データ量の増大を防止するために、以下の条件１，２を満たすデータのみを登録している。なお、条件１は第１例の合成テーブルと同じ条件である。条件１，２ともに、４×４処理単位を１ブロックとすることを想定している。  
１：ｒｕｎの合計値（ゼロ値の数の総計）と非ゼロ値の数の総計が１６を超えない。
【００４４】
２：可変長符号の組合せに対応する非ゼロ値の数とゼロ値の数の合計値が４以上になった場合は、それ以上には別の可変長符号を組み合わせない。
【００４５】
条件２は、１ブロックの復号処理を４クロックサイクル以内で完了する方針で設けたものである。この方針を担保するために、１クロックサイクル以内に、非ゼロ値の数とゼロ値の数の合計値を４以上にする。逆に、１クロックサイクルで上述した合計値が４以上になった場合は、それ以上、合計値を大きくしない。
【００４６】
このような観点で、条件２では、非ゼロ値の数とゼロ値の数の合計値が最大４になるまで、可変長符号の組合せ数を増やしていき、それ以上には別の可変長符号を組み合わせないようにして、可変長符号の組合せ数を削減している。
【００４７】
図８の合成テーブルの場合、４×４ブロックを復号する際、入力ビットストリーム中の可変長符号のビットパターンに依存せずに、４クロックサイクルで復号処理を行うことができる。
【００４８】
図９は、第２例の合成テーブルを用いた場合の復号処理の性能を、第１例の合成テーブルまたは公知のテーブルを用いた場合とで比較した図である。第２例の合成テーブルの場合は、符号語数と符号総ビット数が第１例の合成テーブルよりも削減されており、半導体装置上の占有面積も削減できる。また、符号語数と符号総ビット数を削減しても、復号処理に要するクロックサイクル数は第１例の合成テーブルから半減しており、復号処理の高速化が図れる。
【００４９】
このように、第２例の合成テーブルは、最大４つの可変長符号を同時に復号可能としており、第１例の合成テーブルよりもさらに復号処理性能を向上できる。また、４×４ブロックを４クロックサイクルで復号できる限りは、合成テーブルのデータ量を抑制でき、小型化が実現できる。
【００５０】
（合成テーブルの第３例）
図１０は第３の例に係る合成テーブルを示す図である。図１０の合成テーブル、第１のテーブルと、図８の合成テーブルと同様に最大４つまでの可変長符号の組合せとそれに対応するゼロ値情報を示す第２のテーブルとを含んでいる。図１０の合成テーブルでは、上述した条件１と２に加えて、以下の条件３を満たすデータを登録している。
【００５１】
３：非ゼロ値の数とゼロ値の数の合計値が８未満である。
【００５２】
図１１は条件３を説明する図である。図１１は、先頭から３つの非ゼロ値が続いた後、最後のＤＣＴ係数までのゼロ値の数を種々変化させた例を示している。以降のゼロ値の数が１個から４個までは、条件２を担保するために、合成テーブルに含めておく。一方、以降のゼロ値の数が５個以上の場合は、このゼロ値に対応する可変長符号を次のクロックサイクルで復号処理しても、１クロックサイクルでｒｕｎを平均して４つ進めることができるため、合成テーブルから除外しても処理性能の低下を招かない。したがって、以降のゼロ値の数が５個以上の場合は、合成テーブルに含めなくてもよい。これが条件３である。この条件３を設けることで、図８の合成テーブルよりも、大幅に登録数を削減できる。
【００５３】
図１２は、第３例の合成テーブルを用いた場合の復号処理の性能を、第１例の合成テーブル、第２例の合成テーブル、または公知のテーブルを用いた場合とで比較した図である。第３例の合成テーブルの場合は、符号語数と符号総ビット数が第２例よりもさらに削減されており、半導体装置上の形成面積のさらなる削減が可能となる。
【００５４】
このように、第３例の合成テーブルでは、第２例の合成テーブルと同様に、最大４つの可変長符号を同時に復号可能であることに加えて、非ゼロ値の数とゼロ値の数の合計値が８未満の場合、すなわち非ゼロ値とゼロ値の数の合計が２クロックサイクルで１ブロックの半分以上を占める場合は、対応する可変長符号を合成テーブルに含めないようにする。このため、第２例の合成テーブルよりも大幅に登録数を削減でき、合成テーブルの半導体装置上の占有面積を削減でき、小型化が図れる。
【００５５】
上述した説明では、４×４ブロックを４クロックサイクル以内に処理する例を説明したが、別のクロックサイクルで処理することも可能である。例えば、４×４ブロックを２クロックサイクルで処理するには、１クロックサイクルでｒｕｎを８以上進められるような合成テーブルを作成すればよい。
【００５６】
（合成テーブルの第４例）
第２例および第３例に係る合成テーブルでは、１クロックサイクル当り４つの可変長符号を復号する例を説明したが、以下に説明する第４例に係る合成テーブルは、１クロックサイクル当り２つの可変長符号を復号するものである。第４例に係る合成テーブルは、処理性能を落とす代わりに、さらなる合成テーブルのデータ量の削減化を図っている。
【００５７】
図１３は第４例に係る合成テーブルを示す図である。図１３の合成テーブルは、第１のテーブルと、わずか２つの登録数を持つ第２のテーブルとを含んでいる。
【００５８】
第４例に係る合成テーブルを作成する条件は、以下の通りである。
【００５９】
１：ｒｕｎの合計値（ゼロ値の数の総計）と非ゼロ値の数の総計が１６を超えない。
【００６０】
２’：可変長符号の組合せに対応する非ゼロ値の数とゼロ値の数の合計値は最大２までとする。
【００６１】
３’：非ゼロ値の数とゼロ値の数の合計値が４未満である。
【００６２】
条件２’は条件２をさらに厳しくしたものであり、条件３’は条件３をさらに厳しくしたものである。条件１、２’および３’を設けることで、第４例の第２のテーブルには、２種類の可変長符号に対応するｒｕｎ（０，０）、（０，１）の２種類のみが登録されることになる。
【００６３】
図１４は、第４例の合成テーブルを用いた場合の復号処理の性能を、公知のテーブルを用いた場合とで比較した図である。第４例の合成テーブルは、第１のテーブルにわずか２つの可変長符号についての第２のテーブルを追加しただけであるが、図１４ではＨ．２６４の規格による単一符号のテーブルと比べて２倍の復号処理性能を備えていることがわかる。
【００６４】
このように、第４例の合成テーブルは、合成テーブルの変更を最小限に抑えながら、復号処理性能の向上効果が著しく大きいという特徴があり、実用性に優れている。
【００６５】
上述した実施形態で説明した復号システム１およびＶＬＤ装置３の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、復号システム１およびＶＬＤ装置３の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００６６】
上述した実施形態では、４×４個の要素からなるブロックを単位として復号処理を行う例を説明したが、１ブロック内の要素の数には特に制限はない。要素の数を変えれば、条件１〜３の内容も変わり、第１〜第４の例に係る合成テーブルの登録内容も変化する。
【００６７】
例えば、Ｎ×Ｎ個（Ｎは２以上の任意の整数）の要素からなるブロックを単位として復号処理を行う場合、合成テーブル内の第２テーブルは、複数種類の可変長符号の組合せに対応する非ゼロ値の数とゼロ値の数との合計値がＮ×Ｎ個を超えない範囲の組合せを登録する。これが上述した条件１を一般化したものである。
【００６８】
また、第１および第４の例に係る合成テーブルは、最大２つの可変長符号の組合せに対応しており、第２〜第３の例に係る合成テーブルは、最大４つの可変長符号の組合せに対応している。合成テーブルを、最大何個の可変長符号の組合せに対応させるかも、任意に調整可能であり、本実施形態は、ｋ（ｋは２以上の整数）種類の可変長符号の組合せに対応した合成テーブルを設ける点に特徴がある。また、条件３は、一般化すると、最大ｋ種類（ｋは２以上の整数）の可変長符号の組合せの中から、可変長符号の組合せに対応する非ゼロ値の数とゼロ値の数との合計値が所定の閾値を超える該組合せを除外することを指している。
【００６９】
また、復号システム１およびＶＬＤ装置３の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００７０】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００７１】
１  復号システム、２  ＦＩＦＯ装置、３  ＶＬＤ装置、４  ＩＱ装置、５  ＩＤＣＴ装置、６  ＭＣ装置、７  フレームメモリ、１１  第１テーブル記憶部、１２  第２テーブル記憶部、１３  優先度判定部、１４  係数バッファ、１５  係数格納制御部、１６  ＤＣＴ係数記憶部
【図１】
2012253420.tif 000003
【図３】
2012253420.tif 000004
【図４】
2012253420.tif 000005
【図７】
2012253420.tif 000006
【図１１】
2012253420.tif 000007
【図２】
2012253420.tif 000008
【図５】
2012253420.tif 000009
【図６】
2012253420.tif 000010
【図８】
2012253420.tif 000011
【図９】
2012253420.tif 000012
【図１０】
2012253420.tif 000013
【図１２】
2012253420.tif 000014
【図１３】
2012253420.tif 000015
【図１４】
2012253420.tif 000016