(57)【特許請求の範囲】
【請求項１】
ＭＰＥＧ（Moving Pictures Experts Group）−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化装置であって、
未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出手段と、
「First Coef」用と「Others」用の２種類のテーブルを有し、前記切出手段によって切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）がアドレスとして入力される第１のルックアップテーブルと、
前記「First Coef」用と前記「Others」用とで共用される１つのテーブルを有し、前記切出手段によって切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）がアドレスとして入力される第２のルックアップテーブルと、
前記第１のルックアップテーブルの出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了した場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択手段とを具備し、
前記第１のルックアップテーブルは、入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を出力する
ことを特徴とする可変長符号復号化装置。
【請求項２】
ＭＰＥＧ−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化装置であって、
未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出手段と、
前記切出手段によって切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）がアドレスとして入力され、入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を出力する第１のルックアップテーブルと、
前記切出手段によって切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）がアドレスとして入力される第２のルックアップテーブルと、
前記第１のルックアップテーブルの出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了した場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択手段とを具備し、
前記第２のルックアップテーブルは、前記Ｉビットよりも大きいビット数の符号語がとり得る上位Ｉビットの種類の各々に対応する種類別テーブルを有しており、
前記種類別テーブルは、対応する種類の前記上位Ｉビットに続く下位ビットの数の最大値がＭである場合（ＭはＪ以下の自然数）、Ｍビット分のアドレスを有し、
前記第１のルックアップテーブルは、入力されるアドレスに基づいて、以下の２種類の出力値を出力し、
（１）前記第１のルックアップテーブルで復号処理が終了することを示すフラグと、シンボル値とを含む出力値
（２）前記第１のルックアップテーブルで復号処理が終了しないことを示すフラグと、第２のルックアップテーブルにおいて利用すべき前記種類別テーブルの先頭アドレスと、前記下位Ｊビットと前記上位Ｉビットに続く下位ビットの最大値Ｍに対応して定まるアドレスシフト量Ｊ−Ｍを含む出力値
前記第１のルックアップテーブルが当該種類別テーブルの先頭アドレスを含む前記出力値を出力する際には、当該種類別テーブルには、前記アドレスシフト量Ｊ−Ｍをシフトしたものがアドレスとして入力される
ことを特徴とする可変長符号復号化装置。
【請求項３】
ＭＰＥＧ（Moving Pictures Experts Group）−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化方法であって、
未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出ステップと、
前記切出ステップで切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）を、「First Coef」用と「Others」用の２種類のテーブルを有する第１のルックアップテーブルに、アドレスとして入力する第１入力ステップと、
前記切出ステップで切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）を、前記「First Coef」用と前記「Others」用とで共用される１つのテーブルを有する第２のルックアップテーブルに、アドレスとして入力する第２入力ステップと、
前記第１のルックアップテーブルの出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了した場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択ステップとを具備し、
前記第２入力ステップは、前記第１入力ステップにおいて入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を前記第２ルックアップテーブルに入力する
ことを特徴とする可変長符号復号化方法。
【請求項４】
ＭＰＥＧ−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化方法であって、
未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出ステップと、
前記切出ステップで切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）をアドレスとして第１ルックアップテーブルに入力する第１入力ステップと、
前記第１入力ステップで前記第１ルックアップテーブルに入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を出力する第１出力ステップと、
前記切出ステップで切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）をアドレスとして第２ルックアップテーブルに入力する第２入力ステップと、
前記第１出力ステップにおける出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了した場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択ステップとを具備し、
前記第２のルックアップテーブルは、前記Ｉビットよりも大きいビット数の符号語がとり得る上位Ｉビットの種類の各々に対応する種類別テーブルを有しており、
前記種類別テーブルは、対応する種類の前記上位Ｉビットに続く下位ビットの数の最大値がＭである場合（ＭはＪ以下の自然数）、Ｍビット分のアドレスを有し、
前記第１出力ステップは、入力されるアドレスに基づいて、以下の２種類の出力値を出力し、
（１）前記第１のルックアップテーブルで復号処理が終了することを示すフラグと、シンボル値とを含む出力値
（２）前記第１のルックアップテーブルで復号処理が終了しないことを示すフラグと、第２のルックアップテーブルにおいて利用すべき前記種類別テーブルの先頭アドレスと、前記下位Ｊビットと前記上位Ｉビットに続く下位ビットの最大値Ｍに対応して定まるアドレスシフト量Ｊ−Ｍを含む出力値
前記第１出力ステップにおいて、当該種類別テーブルの先頭アドレスを含む前記出力値を出力する際には、当該種類別テーブルには、前記アドレスシフト量Ｊ−Ｍをシフトしたものがアドレスとして入力される
ことを特徴とする可変長符号復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ（Moving Pictures Experts Group）形式等の可変長符号化されたデータを可変長復号する可変長符号復号化装置および可変長符号の復号方法に関するものである。
【背景技術】
【０００２】
動画像処理技術の急速な発展により、動画像をデジタルデータとして扱うことが広く行われている。近年では、ＤＶＤに動画像を録画する機能や、ＤＶＤに記録された動画像を再生する機能を備えた装置が販売されている。また、ＴＶ放送などの動画像を例えばＭＰＥＧ−１、２、４等の符号化方式で圧縮しＨＤＤ（Hard Disk Drive）等の蓄積メディアに録画するＰＶＲ（パーソナルビデオレコーダ）が、ＶＴＲ（ビデオテープレコーダ）の代わりとして一般家庭に広まり始めている。
【０００３】
一方、ＢＳデジタル放送やＣＳデジタル放送では、ＭＰＥＧ−２方式で符号化されたＨＤＴＶ（ハイビジョン）映像のサービスが行なわれている。更に、２００３年末には、地上波でもＭＰＥＧ−２方式で符号化されたＨＤＴＶのデジタル放送が開始される予定である。今後、ＰＶＲでもＨＤＴＶのような大容量のデータを処理することが望まれる。
【０００４】
上記のように映像のデジタル化が進展する状況下において、動画像の圧縮方式のフォーマットがＭＰＥＧ−２のみであれば、当該ＭＰＥＧ−２形式専用のＬＳＩを搭載した装置を用いれば、ＨＤＴＶ映像に対する録画再生処理も可能となる。しかし、ＭＰＥＧ−４やＨ．２６４などの新しい規格や、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ等のデファクトスタンダードなどの種々の規格に基づく圧縮符号化データを扱うことを考慮した場合、多種類の専用ＬＳＩを用意しなければならず、機器のコストアップに繋がる。
【０００５】
そこで、高速処理可能なプロセッサを使い、ソフトウェアを入れ替えることにより、種々のフォーマットに対応する動きがある。特許文献１では、汎用プロセッサに加えてＭＰＥＧの信号処理に適したＳＩＭＤ（単一命令／多数データ）型演算ユニットを多数搭載する付加処理ユニットを備えるプロセッサが開示されている。
【０００６】
この文献に開示されたプロセッサの一例を、図１４に示す。同図に示すように、この付加処理ユニット１０００は、ローカルメモリ１００１と、レジスタ１００２と、浮動小数点演算ユニット１００４と、整数演算ユニット１００４とを備えており、ローカルメモリ１００１とレジスタ１００２との間が内部バス１００６によって接続されている。
【０００７】
このように付加処理ユニット１０００は、その内部にローカルメモリ１００１を備えている。このため、レジスタ１００２との間で高速にデータのやり取りが可能であり、これにより高速演算が実現される。一方、ローカルメモリ１００１とメインメモリ（不図示）との間は外部バス１００５で接続されるため、内部バス１００６と比べるとデータの転送は低速となり、大きなレーテンシも発生すると想定される。従って、頻繁にアクセスするデータは、メインメモリにアクセスするのではなく、連続したアクセスが発生する期間内はローカルメモリ１００１に常駐させることが望ましい。
【０００８】
図１５は、付加処理ユニット１０００のローカルメモリ１００１に保持されるデータ構成の一例を示す。同図に示すように、かかるデータは、プログラムが格納されるプログラム領域と、テーブル類が格納されるテーブル領域と、処理される画像データ等が格納されるデータ領域と、レジスタの値を一時退避するスタック領域とで構成される。
【０００９】
特許文献２には、処理は高速だがＬＵＴ（ルックアップテーブル）のサイズが大きい「ビットストリーム直接入力型」のＬＵＴと、処理は低速だがＬＵＴのサイズが小さい「アドレス−シンボル一対一対応型」のＬＵＴを組み合わせて用いる手法が開示されている。
【００１０】
【特許文献１】特開２００２−３６６５３４号公報
【特許文献２】特開２００１−７７０６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、特許文献１で開示されている付加処理ユニットのレジスタ長は、１２８ビット幅となっている。このようなレジスタ長の長いレジスタで処理を行なうユニットは、ＳＩＭＤ命令を使って並列処理を行なうには好適であるが、ＭＰＥＧ等のデコード処理に含まれる可変長符号復号処理のような条件分岐が頻繁に発生する処理には向かない。
【００１２】
また、特許文献２に開示された技術で用いられる「ビットストリーム直接入力型」のＬＵＴのアドレスは、ビットストリームの値そのものであるため、アドレス計算のコストが発生しないが、ルックアップテーブルサイズが大きくなってしまう。したがって、ローカルメモリ１００１に保持できなくなるおそれがある。特にプロセッサの速度を高速にすると（クロックを上げると）、ローカルメモリのサイズは小さくなるため、大サイズのＬＵＴは用いない方が好ましい。
【００１３】
また、特許文献２に開示された小サイズの「アドレス−シンボル一対一対応型」ＬＵＴのアドレスは、比較と分岐処理を用いて計算されるため、先に挙げた特許文献１に開示されているプロセッサでは、アドレス計算のコストが大きくなる。
【００１４】
本発明は、上記に鑑みてなされたものであって、多数の分岐処理を行うことなく、ルックアップテーブルのサイズをビットストリーム直接入力型のルックアップテーブルのサイズよりも小さくすることができる可変長符号の復号化装置および可変長符号の復号方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するために、本発明は、ＭＰＥＧ（Moving Pictures Experts Group）−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化装置であって、未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出手段と、「First Coef」用と「Others」用の２種類のテーブルを有し、前記切出手段によって切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）がアドレスとして入力される第１のルックアップテーブルと、前記「First Coef」用と前記「Others」用とで共用される１つのテーブルを有し、前記切出手段によって切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）がアドレスとして入力される第２のルックアップテーブルと、前記第１のルックアップテーブルの出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了する場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択手段とを具備し、前記第１のルックアップテーブルは、入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を出力することを特徴とする。
【００１６】
また、本発明の別の態様は、ＭＰＥＧ−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化装置であって、未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出手段と、前記切出手段によって切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）がアドレスとして入力され、入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を出力する第１のルックアップテーブルと、前記切出手段によって切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）がアドレスとして入力される第２のルックアップテーブルと、前記第１のルックアップテーブルの出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了した場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択手段とを具備し、前記第２のルックアップテーブルは、前記Ｉビットよりも大きいビット数の符号語がとり得る上位Ｉビットの種類の各々に対応する種類別テーブルを有しており、前記種類別テーブルは、対応する種類の前記上位Ｉビットに続く下位ビットの数の最大値がＭである場合（ＭはＪ以下の自然数）、Ｍビット分のアドレスを有し、前記第１のルックアップテーブルは、入力されるアドレスに基づいて、以下の２種類の出力値を出力し、
（１）前記第１のルックアップテーブルで復号処理が終了することを示すフラグと、シンボル値とを含む出力値
（２）前記第１のルックアップテーブルで復号処理が終了しないことを示すフラグと、第２のルックアップテーブルにおいて利用すべき前記種類別テーブルの先頭アドレスと、前記下位Ｊビットと前記上位Ｉビットに続く下位ビットの最大値Ｍに対応して定まるアドレスシフト量Ｊ−Ｍを含む出力値
前記第１のルックアップテーブルが当該種類別テーブルの先頭アドレスを含む前記出力値を出力する際には、当該種類別テーブルには、前記アドレスシフト量Ｊ−Ｍをシフトしたものがアドレスとして入力されることを特徴とする。
【００１７】
また、本発明の別の態様は、ＭＰＥＧ（Moving Pictures Experts Group）−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化方法であって、未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出ステップと、前記切出ステップで切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）を、「First Coef」用と「Others」用の２種類のテーブルを有する第１のルックアップテーブルに、アドレスとして入力する第１入力ステップと、前記切出ステップで切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）を、前記「First Coef」用と前記「Others」用とで共用される１つのテーブルを有する第２のルックアップテーブルに、アドレスとして入力する第２入力ステップと、前記第１のルックアップテーブルの出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了する場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択ステップとを具備し、前記第２入力ステップは、前記第１入力ステップにおいて入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を前記第２ルックアップテーブルに入力することを特徴とする。
【００１８】
また、本発明の別の態様は、ＭＰＥＧ−１またはＭＰＥＧ−２規格にしたがって符号化されたビットストリームに含まれるＤＣＴ係数情報の可変長符号をシンボル値に復号する可変長符号復号化方法であって、未復号のビットストリームの先頭から、前記可変長符号の最大符号語長Ｎビット（Ｎは２以上の自然数）を切り出す切出ステップと、前記切出ステップで切出されたＮビットのうち、上位Ｉビット（ＩはＮより小さい自然数）をアドレスとして第１ルックアップテーブルに入力する第１入力ステップと、前記第１入力ステップで前記第１ルックアップテーブルに入力されるアドレスに基づいて前記第１のルックアップテーブルで復号処理が終了したか否かを示すフラグを含む値を出力する第１出力ステップと、前記切出ステップで切出されたＮビットのうち、下位Ｊビット（Ｊ＝Ｎ−Ｉ）をアドレスとして第２ルックアップテーブルに入力する第２入力ステップと、前記第１出力ステップにおける出力値に基づいて、前記第１のルックアップテーブルで復号処理が終了したか否かを判断し、終了した場合には当該第１のルックアップテーブルの出力値をシンボル値として出力する一方で、終了しない場合には前記第２のルックアップテーブルを利用して復号を行わせる選択ステップとを具備し、前記第２のルックアップテーブルは、前記Ｉビットよりも大きいビット数の符号語がとり得る上位Ｉビットの種類の各々に対応する種類別テーブルを有しており、前記種類別テーブルは、対応する種類の前記上位Ｉビットに続く下位ビットの数の最大値がＭである場合（ＭはＪ以下の自然数）、Ｍビット分のアドレスを有し、前記第１出力ステップは、入力されるアドレスに基づいて、以下の２種類の出力値を出力し、
（１）前記第１のルックアップテーブルで復号処理が終了することを示すフラグと、シンボル値とを含む出力値
（２）前記第１のルックアップテーブルで復号処理が終了しないことを示すフラグと、第２のルックアップテーブルにおいて利用すべき前記種類別テーブルの先頭アドレスと、前記下位Ｊビットと前記上位Ｉビットに続く下位ビットの最大値Ｍに対応して定まるアドレスシフト量Ｊ−Ｍを含む出力値
前記第１出力ステップにおいて、当該種類別テーブルの先頭アドレスを含む前記出力値を出力する際には、当該種類別テーブルには、前記アドレスシフト量Ｊ−Ｍをシフトしたものがアドレスとして入力されることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、多数の分岐処理を行うことなく、ルックアップテーブルのサイズをビットストリーム直接入力型のルックアップテーブルのサイズよりも小さくすることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかる可変長符号化装置および可変長符号の復号方法の実施の形態を詳細に説明する。
【００２１】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかる可変長符号の復号方法を実施する動画像データ復号化装置の機能構成を示すブロック図である。同図に示すように、この動画像データ復号化装置１００は、可変長符号復号化部４１０と、逆スキャン部４２０と、逆量子化部４３０と、逆ＤＣＴ（Discrete Cosine）部４４０と、動き補償部５００とを備えている。なお、かかる動画像データ復号化装置１００は、プロセッサ、例えば上記特許文献１に開示されているようなプロセッサにプログラムを実行させることでソフトウェアによる実現することができるが、ハードウェア装置として構成するようにしてもよい。
【００２２】
本実施の形態における動画像データ復号化装置１００は、ＭＰＥＧ−２形式で圧縮符号された動画像データを復号する装置であり、以下当該動画像データ復号化装置１００の説明に先立ち、ＭＰＥＧ−２形式のデータ構成について説明し、その後当該動画像データ復号化装置１００について説明する。
【００２３】
図２は、ＭＰＥＧ−２形式の動画像データのフォーマットを示す図である。同図に示すように、ＭＰＥＧ２−形式で圧縮符号化されたデータは、シーケンス層、ＧＯＰ（Group Of Picture）層、ピクチャ層、スライス層、マクロブロック層およびブロック層からなる階層構造となっている。
【００２４】
シーケンス層は、ビデオクリップの１単位である。ランダムアクセスを可能とするために複数のＧＯＰに分割することも可能である。ＧＯＰの先頭にある“ＳＨ”とは、“シーケンスヘッダ”である。ＧＯＰ層は、ランダムアクセスの１単位であり、複数のピクチャを含む。ピクチャ層は、１画面を構成する単位であり、その中は複数のスライスに分割されている。
【００２５】
スライス層は、複数のＭＢ（マクロブロック）で構成される、最小の同期回復単位である。ＭＰＥＧ−２では、ピクチャ内でスライスごとの依存関係が無いようにしているため、それぞれ独立に復号可能となっている。マクロブロック層は、複数のブロックで構成され、４：２：０フォーマットの場合は、図２に示すようにＹ成分が４ブロック、Ｃｒ，Ｃｂ成分がそれぞれ１ブロックとなる。また、４：２：２フォーマットや４：４：４フォーマットの場合は、Ｃｂ，Ｃｒ成分がそれぞれ２ブロックおよび４ブロックとなる。ブロック層は、８×８画素で構成されＤＣＴ係数符号化の単位となる。
【００２６】
以上がＭＰＥＧ−２形式のデータフォーマットであり、ＭＰＥＧ−２形式における符号化／復号化処理は、ＭＢ単位で行なわれている。図３は、ＭＢの符号化データ構造の概略図である。同図に示すように、ＭＢには、ピクチャ内でのＭＢの相対位置を表す「ＭＢアドレス」と、ＭＢの符号化モード情報を表す「モード情報」と、ＤＣＴ係数の量子化ステップサイズを表す「量子化スケール」と、動きベクトル情報を表す「動きベクトル情報」と、ブロックが符号化されているか否かを表す「ＣＢＰ（Coded Block Pattern）情報」と、量子化されたＤＣＴ係数の情報を表す「ＤＣＴ係数情報」とが含まれる。ここで、「量子化スケール」のみが固定長符号化され、その他の情報は可変長符号化される。
【００２７】
以上がＭＰＥＧ−２形式の動画像データの構成であり、動画像データ復号化装置１００には当該構成のデータが供給される。そして、動画像データ復号化装置１００は、供給されたＭＰＥＧ−２形式の動画像データを復号し、動画像を再生する。
【００２８】
より具体的には、可変長符号復号化部４１０には、可変長符号化されたＤＣＴ係数を表す可変長符号が供給される。可変長符号復号化部４１０は、かかる可変長符号を復号し、量子化されたＤＣＴ係数の１次元配列QFS[n]を出力する。かかる可変長符号復号化部４１０によって復号出力されたQFS[n]は、逆スキャン部４２０にて８×８の２次元配列QF[v][u]に並べ替えられる。QF[v][u]は、逆量子化部４３０にてＤＣＴ係数F[v][u]に復元される。F[v][u]は、逆ＤＣＴ部４４０にて、ＭＣ残差f[y][x]に復元される。f[y][x]は、動き補償部５００にて動き補償予測値が加算され、再生画素値d[y][x]が復元される。
【００２９】
以上が動画像データ復号化装置１００の全体構成であり、次に可変長符号復号化部４１０について図４を参照しながら詳細に説明する。同図に示すように、可変長符号復号化部４１０は、未復号ビットストリーム切出部２１０と、第１のルックアップテーブル２２０と、第２のルックアップテーブル２３０と、選択部２４０とを備えている。可変長符号復号化部４１０は、ＭＰＥＧ−２形式にしたがって可変長符号化されたＤＣＴ係数（ＤＣＴ係数符号）を可変長復号するものであり、その説明に先立ち、ＭＰＥＧ−２形式にしたがって符号化されたＤＣＴ係数を復号するために用いる可変長符号表について説明する。
【００３０】
図５および図６は、ＭＰＥＧ−２におけるＤＣＴ係数情報の可変長符号表を要約した図である。この可変長符号表は大きく分けて「Table One」と「Table Zero」の２種類有り、図５は「Table One」を、図６は「Table Zero」を表記したものである。図６は特殊な可変長符号表であり、「intra_vlc_format」が選択された場合に、該ブロックがイントラ（intra）符号化されているときのみ使用される。図５は、「Table Zero」が使用される条件以外あるいはＭＰＥＧ−１を復号するときに使用される。
【００３１】
「Table One」は更に２種類に分類され、該ブロックを復号する際の最初のＤＣＴ係数（以後、First Coefと記す）に対して使用する場合と、それ以外（以後、Othersと記す）に使用する場合とで、シンボル値（Run, Level）=(0, 1)の符号語が異なる。なお、図５および図６において、"s"は、Level値の符号を表すものであり、"s"が０の時正符号であり、"s"が１の時負符号である。また、図５および図６の"ＥＯＢ"および"ＥＳＣ"は、それぞれ"End Of Block"符号と"Escape"符号を表す。
【００３２】
図５および図６に示すように、"s"を除くと、ＤＣＴ係数の符号語長の最大値は１６ビットである。ここで、ＤＣＴ係数の符号語１６ビットをまとめて入力する「ビットストリーム直接入力型」のルックアップテーブルを構成すると、ルックアップテーブルのエントリー数（アドレスの数）は２16個必要となる。上述した特許文献１に開示されているプロセッサでは、１６ビットをまとめて処理すると分岐が発生しないため高速に処理できるが、ルックアップテーブルのサイズが大きくなりすぎるため、ローカルメモリにテーブルを格納することが困難となる。
【００３３】
そこで、本実施の形態では、図４に示すように、１６ビットのビットストリームを上位８ビットと下位８ビットに分割して各々「ビットストリーム直接入力型」のルックアップテーブルにて復号処理する構成を採用し、これにより高速かつ省メモリの可変長復号が可能としている。以下、このような可変長符号復号化部４１０の構成についてより具体的に説明する。
【００３４】
図４に示す未復号ビットストリーム切出部２１０は、図示せぬビットストリームバッファから供給されるビットストリームを取得し、未復号のビットストリームを、１６ビット切出し線１２０を介して出力する。すなわち、ＭＰＥＧ−２形式のＤＣＴ係数の可変長符号の最大符号語長は１６ビットであり、未復号ビットストリーム切出部２１０は、復号対象となる可変長符号がとり得る最大符号語長と同じビット数のビットストリームを切出す。なお、未復号の先頭部分は、後述する選択部２４０から供給される符号語長を示す情報に基づいて判断する。
【００３５】
上記のように未復号ビットストリーム切出部２１０によって切出された１６ビットのうち、上位８ビットは第１のルックアップテーブル２２０に出力される。一方、下位８ビットは第２のルックアップテーブルに出力される。
【００３６】
第１のルックアップテーブル２２０は、ビットストリーム直接入力型のルックアップテーブルであり、上記のように未復号ビットストリーム切出部２１０によって切出されたビットストリームのうち、上位８ビットがアドレスとして入力される。そして、第１のルックアップテーブル２２０は、かかる上位８ビットであるアドレスに対応するデータを選択部２４０に出力する。
【００３７】
ここで、第１のルックアップテーブル２２０は、入力されるアドレスに応じて以下の２種類の出力値を出力する構成となっている。
（１）第１のルックアップテーブル２２０で復号処理が終了することを示すフラグと、シンボル値とを含む出力値（図７参照）
（２）第１のルックアップテーブル２３０で復号処理が終了しないことを示すフラグと、第２のルックアップテーブル２３０において参照すべき先頭アドレスとを含む出力値（図８参照）
【００３８】
図７に示すように、第１のルックアップテーブル２２０のデータ出力パターンの１つ目（以下、第１出力パターンという）は、フラグを示す１ビットと、符号語長を示すための４ビットと、シンボル値（Run）を示す５ビットと、シンボル値（Level）を示す６ビットとの合計１６ビットで構成される。
【００３９】
フラグは、今回復号対象となっている可変長符号に対する復号処理が、第１のルックアップテーブル２２０で終了したか否かを示す情報であり、本実施の形態では、第１のルックアップテーブルで復号処理が終了する場合は「１」が、終了しない場合には「０」が付与される。つまり、フラグは「０」か「１」の２値であるため１ビットで表せる。第１の出力パターンは、第１のルックアップテーブル２２０で復号処理が終了する場合に第１のルックアップテーブルから出力される出力データのパターンであり、図７に示すようにフラグ「１」が付与されている。
【００４０】
符号語長は、復号対象となっている可変長符号の語長であり、例えば図５に示す表の上から４段目の可変長符号が「011s」が復号対象となっている場合には、３ビットが符号語長となり、３ビットを示す情報が符号語長エリアに付与される。ＭＰＥＧ−２形式のＤＣＴ係数の可変長符号の最大語長は１６ビットであり、第１のルックアップテーブルには上位８ビットが入力されるため、符号語長を示す場合、１〜８といった８種類の情報が表現できればよい。したがって、符号語長を示すエリアとして４ビットが用意されており、これによりビット数を示す情報を表現することができる。
【００４１】
シンボル値（Run）用の５ビットには、入力されたアドレス（可変長符号）に対応するシンボル値（Run）が付与される。上記のように可変長符号「011s」が入力された場合には、それに対応するシンボル値（Run）として「１」を表す情報が付与される（図５参照）。図５および図６に示すように、ＭＰＥＧ−２形式の可変長符号に対応するシンボル値（Run）は０〜３１の値をとり得ることになるので、５ビットでこれら３２種類の値を表すことができる。したがって、シンボル値（Run）を表すエリアとして５ビットが用意されている。
【００４２】
シンボル値（Level）用の６ビットには、入力されたアドレス（可変長符号）に対応するシンボル値（Level）が付与される。上記のように可変長符号「011s」が入力された場合には、それに対応するシンボル値（Level）として「１」を表す情報が付与される（図５参照）。図５および図６に示すように、ＭＰＥＧ−２形式の可変長符号に対応するシンボル値（Level）は１〜４０の値をとり得ることになるので、６ビットでこれら４０種類の値を表すことができる。したがって、シンボル値（Level）を表すエリアとして６ビットが用意されている。
【００４３】
なお、図５に示す可変長符号表には「ＥＯＢ」および「ＥＳＣ」が含まれているが、例えば、「ＥＯＢ」は１１ビットで表現されるシンボル値（Ｒｕｎ、Ｌｅｖｅｌ）を１１ビット全て「１」で表現し、「ＥＳＣ」は１１ビット全て「０」で表現することで判別可能となる。
【００４４】
第１のルックアップテーブル２２０は、当該第１のルックアップテーブル２２０で復号処理が終了する場合、つまり復号対象たる可変長符号が８ビット以下の符号である場合、フラグ「１」を含む第１出力パターンのデータを出力するよう構成されている。この場合、符号語長エリア、シンボル値（Run）エリア、およびシンボル値（Level）のエリアには、入力されたアドレス（８ビット以下の可変長符号）に対応する値が付与されることになる。すなわち、第１のルックアップテーブル２２０では、８ビット以下のアドレス（可変長符号）に対応して、出力すべき上記第１出力パターンのデータが用意されている。
【００４５】
図８に示すように、第１のルックアップテーブル２２０のデータ出力パターンの２つ目（以下、第２出力パターンという）は、フラグを示す１ビットと、第２のルックアップテーブル２３０の先頭アドレスを示す１５ビットとの合計１６ビットで構成される。
【００４６】
ここで、フラグは第１のルックアップテーブル２２０により復号処理が終了したか否かを示すものであり、第２出力パターンが採用される場合は復号処理が終了していない場合であるから、かかるエリアには、復号処理が終了していないことを示すフラグ「０」が付与される。
【００４７】
第２のルックアップテーブル２３０の先頭アドレスエリア（１５ビット）には、第２のルックアップテーブル２３０を利用した復号を行う際に、利用すべきテーブルの先頭アドレスを示す情報が付与される。かかる先頭アドレスについての詳細は後述する。
【００４８】
第１のルックアップテーブル２２０は、当該第１のルックアップテーブル２２０で復号処理が終了しない場合、つまり復号対象たる可変長符号が９ビット以上の符号である場合、フラグ「０」を含む第２出力パターンのデータを出力するよう構成されている。この場合、第２のルックアップテーブル２３０の先頭アドレスには、入力されたアドレス（９ビット以上の可変長符号のうちの上位８ビット）に対応する先頭アドレス情報が付与される。すなわち、第１のルックアップテーブル２２０では、入力アドレス（９ビット以上の可変長符号のうちの上位８ビット）に対応して、出力すべき上記第２出力パターンのデータが用意されている。
【００４９】
第２のルックアップテーブル２３０は、ビットストリーム直接入力型のルックアップテーブルであり、上記のように未復号ビットストリーム切出部２１０によって切出されたビットストリームのうち、下位８ビットがアドレスとして入力される。そして、上記第１のルックアップテーブル２２０による復号処理が終了していない場合、第２のルックアップテーブル２３０は、入力されるアドレス（下位８ビット）に対応するデータを選択部２４０に出力する。
【００５０】
第２のルックアップテーブル２３０は、上記第１の出力パターンのデータを出力する構成となっており、第２出力パターンのデータは出力しないようになっている。
【００５１】
つまり、第２のルックアップテーブル２３０から出力されるデータは、図７に示すように、フラグを示す１ビットと、符号語長を示すための４ビットと、シンボル値（Run）を示す５ビットと、シンボル値（Level）を示す６ビットとの合計１６ビットで構成される。なお、第２のルックアップテーブル２３０から出力されるフラグを示す情報は選択部２４０等により利用されることはないので、フラグは「０」、「１」のいずれであってもよい。すなわち、フラグは、第１のルックアップテーブル２２０により復号が終了したか否かを示す情報であり、終了していない場合には第２のルックアップテーブル２３０を利用するといった意図で用いられる情報である。したがって、第２のルックアップテーブル２３０から当該情報を出力する必要はないのである。
【００５２】
ここで、本実施の形態におけるルックアップテーブルの構成例を図９に示す。同図に示すように、本実施の形態では、第２のルックアップテーブル２３０は、４種類のルックアップテーブルから構成されている。なお、４種類のルックアップテーブルは図面上ＬＵＴ２と表記する。また、ＬＵＴ１は第１のルックアップテーブル２３０を示す。
【００５３】
すなわち、第２のルックアップテーブル２３０は、（0x00）用のテーブル、（0x01）用テーブル、（0x02）用テーブルおよび（0x03）用テーブルといった４種類のテーブルから構成されている。（0x00）用テーブルは、第２のルックアップテーブル２３０に入力された下位８ビットに対応する上位８ビット、つまり復号対象となっている可変長符号の上位８ビットが（0x00）であった場合に、利用されるテーブルである。同様に、（0x01）用テーブルは上位８ビットが（0x01）であった場合に利用されるテーブルであり、（0x03）用テーブルは上位８ビットが（0x03）であった場合に利用されるテーブルであり、（0x04）用テーブルは上位８ビットが（0x03）であった場合に利用されるテーブルである。
【００５４】
なお、（0x00）等はビット値を１６進数で表したものである。また、第１のルックアップテーブル２２０および第２のルックアップテーブル２３０（４種類のテーブル）は、（Table One  First Coef）用、（Table One   Others）用および（Table Zero）用の各々について用意されている。これら３種類のルックアップテーブルはデータ構造やサイズが全く同じため、以下では「Table One  "First Coef」用について説明を行なう。
【００５５】
ＤＣＴ係数情報に対するルックアップテーブルは、第１のルックアップテーブル（ＬＵＴ１）２２０と第２のルックアップテーブル（ＬＵＴ２）２３０（４種類）とで構成される。図９中の長方形の縦方向がＬＵＴの各アドレスを示し、横方向が各アドレスに対するデータサイズを示す。本実施の形態のＤＣＴ係数情報のルックアップテーブルでは、第１のルックアップテーブル２２０と第２のルックアップテーブル２３０（４種類）共に、８ビットで表現されるアドレスを入力とする構成であるため、それぞれ２8個のアドレス数を持つ。なお、ビットストリームをそのままアドレス値とみなしたものは、テーブルの先頭アドレスからの相対アドレスである。
【００５６】
このように９ビット以上の可変長符号がとり得る上位８ビットの４種類ごとに種類別のテーブルが用意されているのは次のような理由による。図５および図６に示すように、ＭＰＥＧ−２形式のＤＣＴ係数を表す９ビット以上の可変長符号がとり得る上位８ビットは、（0x00）、（0x01）、（0x02）、（0x03）の４種類しかない。つまり、第２のルックアップテーブル２３０を利用して復号する必要がある９ビット以上の可変長符号の上位８ビットがとり得る値は４種類しかなく、上位８ビットがとり得る値ごとにテーブルを設け、上位８ビットの値に応じたテーブルを利用することとしたのである。
【００５７】
このように４種類のテーブルが用意されているので、第１のルックアップテーブル２２０から出力される第２出力パターン（図８参照）中の「第２のルックアップテーブルの先頭アドレス」には、第１のルックアップテーブル２２０に入力された上位８ビットに対応するテーブルの先頭アドレスを示す情報が付与される。例えば、第１のルックアップテーブル２２０に入力された上位８ビットが（0x01）であった場合には、（0x01）用テーブルの先頭アドレスを示す情報が第１のルックアップテーブル２２０の出力データに含まれることになる。
【００５８】
そして、第２のルックアップテーブル２３０は、可変長符号の下位８ビットがアドレスとして入力されると、上記のように第１のルックアップテーブル２２０によって指定された先頭アドレスを利用し、入力アドレスに対応するデータ（図７参照）を出力する。
【００５９】
図７に示される第２のルックアップテーブル２３０からの出力データ中の「符号語長」には、復号対象となっている可変長符号の語長を示す情報が付与される。例えば、図５に示す表の下から２段目（中略除く）の可変長符号（下位ビット「0010000s」）が復号対象となっている場合には、１５（７＋上位８ビット分）ビットが符号語長となり、１５ビットを示す情報が符号語長エリアに付与される。
【００６０】
シンボル値（Run）用の５ビットには、入力されたアドレス（可変長符号の下位８ビット）に対応するシンボル値（Run）が付与される。上記のように可変長符号の下位８ビット「0010000s」が入力された場合には、それに対応するシンボル値（Run）として「０」を表す情報が付与される（図５参照）。
【００６１】
シンボル値（Level）用の６ビットには、入力されたアドレス（可変長符号の下位ビット）に対応するシンボル値（Level）が付与される。上記のように可変長符号の下位８ビット「0010000s」が入力された場合には、それに対応するシンボル値（Level）として「４０」を表す情報が付与される（図５参照）。
【００６２】
以上のように第２のルックアップテーブル２３０は、第１のルックアップテーブル２２０で復号処理が終了しない場合、つまり復号対象たる可変長符号が９ビット以上の符号である場合に利用され、かかる９ビット以上の可変長符号に対応するシンボル値（Run）およびシンボル値（Level）を含むデータを出力するよう構成されている。
【００６３】
選択部２４０は、第１のルックアップテーブル２２０からデータが供給されると、かかるデータ中のフラグを確認する。フラグが「１」、つまり第１のルックアップテーブル２２０で復号処理が終了する場合には、選択部２４０は、以下の処理を行う。
（ａ−１）第１のルックアップテーブル２２０から供給されたデータ中に含まれるシンボル値（Run  Level）を復号シンボル値として後段装置に出力する。
（ａ−２）第１のルックアップテーブル２２０から供給されるデータ中に含まれる符号語長を示す情報を未復号ビットストリーム切出部２１０に出力する。
【００６４】
一方、フラグが「０」、つまり第１のルックアップテーブル２２０で復号処理が終了しない場合には、選択部２４０は、以下の処理を行う。
（ｂ）第１のルックアップテーブル２２０から供給されるデータ中の第２のルックアップテーブルの先頭アドレス情報を第２のルックアップテーブルに出力し、第２のルックアップテーブルを利用した復号を行わせる。
【００６５】
また、上記（ｂ）の処理を行った場合には、第２のルックアップテーブル２３０による復号処理が行われ、選択部２４０には第２のルックアップテーブル２３０からデータが供給される。選択部２４０は、第２のルックアップテーブル２３０からデータが供給された場合には、以下の処理を行う。
（ｃ−１）第２のルックアップテーブル２３０から供給されたデータ中に含まれるシンボル値（Run  Level）を復号シンボル値として後段装置に出力する。
（ｃ−２）第２のルックアップテーブル２２０から供給されるデータ中に含まれる符号語長を示す情報を未復号ビットストリーム切出部２１０に出力する。
【００６６】
以上が本実施の形態における可変長符号復号化部４１０の構成であり、以下、当該可変長符号復号化部４１０による復号化処理の流れについて図１０を参照しながら説明する。まず、未復号のビットストリームが最大符号語長分（１６ビット分）切出され、取得される（ステップＳａ１）。かかる未復号の先頭部分は、選択部２４０から供給される直前に復号した符号語の符号語長を示す情報に基づいて判断される。つまり、前回の切出しの先頭から符号語長分だけ後の部分が未復号部分の先頭ビットと判断され、かかる先頭ビットから１６ビットが切出され、取得される。
【００６７】
切出された１６ビットのうちの上位８ビットは第１のルックアップテーブル２２０に供給され、下位８ビットが第２のルックアップテーブル２３０に供給される。そして、第１のルックアップテーブル２２０は、入力される上位８ビットをアドレスとし、当該アドレスに対応するデータを選択部２４０に出力する（ステップＳａ２）。
【００６８】
第１のルックアップテーブル２２０からのデータを受けた選択部２４０は、かかるデータに含まれるフラグを参照し、第１のルックアップテーブル２２０で復号処理が終了するか否かを判別する（ステップＳａ３）。
【００６９】
上述したように復号対象となっている可変長符号が８ビット以下の可変長符号であれば、第１のルックアップテーブル２２０からは、復号終了を示すフラグと復号シンボル値とを含むデータ（図７参照）が出力される。かかる場合には、選択部２４０は、復号が終了したと判断し、第１のルックアップテーブル２２０から供給されたデータ中のシンボル値を復号シンボルとして後段の装置に出力する（ステップＳａ４）。
【００７０】
一方、復号対象となっている可変長符号が９ビット以上の可変長符号であれば、第１のルックアップテーブル２２０からは、復号が終了していないことを示すフラグと第２のルックアップテーブル２３０の先頭アドレスとを含むデータが選択部２４０に出力される。この場合には、選択部２４０は、復号が終了していないと判断し、当該先頭アドレスを含む情報を第２のルックアップテーブル２３０に供給する（ステップＳａ５）。
【００７１】
先頭アドレス情報の供給を受けた第２のルックアップテーブル２３０では、入力される下位８ビットをアドレスとして、当該アドレスに対応するデータ（図７参照）を選択部２４０に出力する（ステップＳａ６）。上述したように第２のルックアップテーブル２３０から出力されるデータには、第１のルックアップテーブル２２０に供給された上位８ビットと、当該第２のルックアップテーブル２３０に供給された下位ビットとから構成される９ビット以上の可変長符号に対応するシンボル値が含まれている。
【００７２】
選択部２４０は、第２のルックアップテーブル２３０から供給されるデータ中に含まれる９ビット以上の可変長符号に対応するシンボル値を、復号シンボル値として後段の装置に出力する（ステップＳａ７）。
【００７３】
以上のように第１のルックアップテーブル２２０の出力データまたは第２のルックアップテーブル２３０の出力データのいずれかに含まれるシンボル値を復号シンボル値として出力すると、すべてのビットストリームに対する復号が終了したか否かを判別し（ステップＳａ８）、すべての復号が終了した場合には復号処理を終了する。
【００７４】
一方、すべてのビットストリームに対する復号処理が終了していない場合、選択部２４０は、シンボル値を抽出したデータに含まれる符号語長を示す情報を未復号ビットストリーム切出部２１０に通知する（ステップＳａ９）。この通知を受けた未復号ビットストリーム切出部２１０は、かかる符号語長分だけビットストリーム切出し先頭位置をずらし、その位置から最大符号語長（１６ビット）分のデータの切出しを行い（ステップＳａ１）、以降上記と同様の処理（ステップＳａ２以降の処理）が繰り返される。
【００７５】
以上説明したように本実施の形態では、最大符号語長ビットのうち、上位８ビットを第１のルックアップテーブル２２０にアドレスとして入力するとともに、下位８ビットを第２のルックアップテーブル２３０にアドレスとして入力し、可変長符号の復号を行うようにしている。これにより、１６ビットを直接入力するビットストリーム直接入力型テーブルを用いることなく、最大１６ビットの符号語長の可変長符号の復号を行うことができ、復号用のテーブルとして保持しておくデータ量を低減することができる。
【００７６】
例えば、図９に示したようなテーブル構成を採用することができる。そして、上述したように本実施形態の各テーブルは、８ビットで表現されるアドレスを入力とするため、それぞれ２8個のアドレス数を持つことになる。したがって、保持しておくテーブルのサイズは、２５６０バイト（Table One  First Coef用）となる。そして、（Table One   Others）用テーブルおよび（Table Zero）用テーブルを含めた３つのテーブルの合計は７６８０バイトとなり、データ量が削減できることがわかる。
【００７７】
このように保持しておくテーブルサイズを小さくすることができるので、特許文献１に開示されているプロセッサなど、高速処理が可能なプロセッサを利用して動画像データの復号を高速で行うことができる。すなわち、プロセッサは処理速度が高速であるほどローカルメモリの容量が小さくなるという制約があるが、上記のようにテーブルサイズを小さくすることが可能となることで、比較的容量の小さいローカルメモリを有する高速プロセッサを利用することができるのである。
【００７８】
また、このようにテーブルサイズが小さくできる一方で、本実施の形態によれば、上記可変長符号復号化部４１０の復号処理過程において行われる分岐処理が１回だけとなる。つまり、第１のルックアップテーブル２２０の出力データ中のフラグが「１」、「０」のいずれであるかによって、第１のルックアップテーブルのみで復号処理を終了するか、第２のルックアップテーブルを利用して復号処理を行うかを切り換える処理の１回だけである。したがって、比較や分岐処理が多くならず、演算負荷を抑えることができる。
【００７９】
すなわち、本実施の形態によれば、上記のように復号処理のために保持しておくテーブルのサイズを小さくすることができる一方で、演算負担が大きくなってしまうことを抑制することができるのである。
【００８０】
（第２の実施の形態）
次に、本発明の第２の実施の形態にかかる可変長符号の復号方法を実施する可変長符号復号化装置について説明する。第２の実施の形態における可変長符号復号化装置の構成は上記第１の実施の形態における可変長符号復号化部４１０の構成と同様であり（図１参照）、具体的なルックアップテーブルの構成が上記第１の実施の形態（図９参照）と相違している。以下、第２の実施の形態におけるルックアップテーブルの構成について説明する。
【００８１】
図１１に第２の実施の形態におけるＤＣＴ係数情報に対するルックアップテーブルの構成を示す。上述したようにＤＣＴ係数情報の可変長符号表における「Table One」は、シンボル値（Run, Level）=(0, 1)の符号語が異なる。これは、第１のルックアップテーブルが異なるだけであるため、「Table One」に関しては、テーブルの構成を「First Coef」用と「Others」用２種類からなる第１のルックアップテーブル２２０’と、４種類のテーブルからなる第２のルックアップテーブル２３０とで構成する。
【００８２】
すなわち、上記第１の実施の形態では、「Table One」用のテーブルとして、「Table One  First Coef」用と「Table One  Others」用といった２種類のテーブルがあり、それぞれに第２のルックアップテーブルが含まれていた。これに対し、本実施の形態では、「First Coef」と「Others」で相違する第１のルックアップテーブルのみを個別に用意する一方で、第２のルックアップテーブル（４種類のテーブルから構成される）については「Table One」用１つのみを設けた構成となっている。
【００８３】
そして、第１のルックアップテーブルによる復号処理を行う場合において、最初のシンボルを復号する時には、アドレスの先頭を「First Coef」用の先頭アドレスを用い、２つめ以降のシンボルを復号する時には、アドレスの先頭を「Others」用の先頭アドレスに置き換えるといった切り換え処理を行うことで、上記第１の実施の形態と同様、可変長符号を復号することができる。
【００８４】
ルックアップテーブルのデータ構成を以上のようにすることで、「Table One」のテーブルサイズは３０７２バイトとなり、「Table Zero」用のテーブルを含めてテーブルサイズの合計は５６３２バイトとなる。つまり、上記第１の実施の形態におけるテーブルサイズよりもさらに２０４８（＝７６８０−５６３２）バイト小さくすることができる。
【００８５】
（第３の実施の形態）
次に、本発明の第３の実施の形態にかかる可変長符号の復号方法を実施する可変長符号復号化装置について説明する。第２の実施の形態における可変長符号復号化装置の構成は上記第１の実施の形態における可変長符号復号化部４１０の構成と同様であり（図４参照）、具体的なルックアップテーブルの構成が上記第１の実施の形態および第２の実施の形態（図９参照、図１１参照）と相違している。また、第１のルックアップテーブルから出力されるデータの２種類のパターンのうち（図７、図８参照）、第２出力パターンと異なる出力パターンのデータが出力されるようになっている点で上記第１の実施の形態と相違している。以下、相違点を中心に説明する。
【００８６】
本実施の形態では、第１のルックアップテーブルから２種類のパターンのデータが出力される点は上記第１の実施の形態と同様であり、その１つが上記第１の出力パターンと同様である（図７参照）。しかしながら、もう一つの出力パターンが上記第１の実施の形態における第２出力パターン（図８参照）と相違しており、図１２に示すようなパターンのデータが出力されるようになっている。
【００８７】
同図に示すように、この出力パターンは、フラグを示す１ビットと、第２のルックアップテーブル２３０の先頭アドレスを示す１２ビットと、アドレス計算シフト量を示す３ビットとの合計１６ビットで構成される。
【００８８】
すなわち、第１の実施の形態における第２出力パターンに加え、アドレス計算シフト量を示す情報が加えられたデータが第１のルックアップテーブルから出力される。なお、かかる出力パターンは、第１の実施の形態と同様、復号対象となる可変長符号が９ビット以上である場合であり、フラグ「０」が付与されている。
【００８９】
以下、このようなアドレス計算シフト量の意義について説明する。図５に示すように、９ビット以上の可変長符号のプレフィックス（上位８ビット）４種類のうち（0x02）（0x03）に対応するサフィックス（下位８ビット）は２ビット以下であり、プレフィックス（0x01）に対応するサフィックスは４ビット以下であり、プレフィックス（0x00）に対応するサフィックスは８ビット以下である。
【００９０】
第１の実施の形態では、第２のルックアップテーブルの４種類のテーブルの入力が８ビットで表現されるアドレスであるため、とり得るサフィックスが４ビット以下であるプレフィックス（0x01）（0x02）（0x03）に対しても８ビット分のテーブルサイズが必要であった。
【００９１】
そこで、本実施の形態では、テーブルサイズをさらに削減するために、図１２に示すように、復号処理が終了しない場合に第１のルックアップテーブルから出力されるデータの構成を、フラグとアドレス計算用のシフト量を表すデータと第２のルックアップテーブルの先頭位置を指し示す先頭アドレス情報とで構成することにしている。
【００９２】
ここで、アドレス計算用のシフト量を表すデータは、第２のルックアップテーブルに入力される８ビットのデータを右へビットシフトするためのシフト量を示すデータである。つまり、第２のルックアップテーブルにおけるプレフィックス（0x02）用のテーブルおよび（0x03）用のテーブルのサフィックスのとり得るビット数は２ビット以下であるので、これらのテーブルに対しては２ビットのアドレスを入力すれば対応シンボル値を得えることができる。したがって、これらのテーブルに入力するアドレスを、８ビットのデータを右に６ビットシフトしたものとし、これによりテーブルのアドレス数を２ビット分とする。
【００９３】
すなわち、図１３に示すように、第２のルックアップテーブル２３０’におけるプレフィックス（0x02）用のテーブルおよび（0x03）用のテーブルを２ビット分のテーブルサイズに削減することが可能となる。このようにテーブルサイズを削減するには、上記のように入力データのビットをシフトする必要がある。したがって、プレフィックス（0x02）用のテーブルまたは（0x03）用のテーブルの先頭アドレスを含むデータが第１のルックアップテーブル２２０’から出力される場合、その出力データにおける「アドレス計算シフト量」には、入力データのビットを右にシフトする量である「６ビット」が含まれることになる。
【００９４】
同様に、プレフィックス（0x01）用のテーブルに入力するアドレスを、８ビットのデータを右に４ビットシフトしたものとすることで、当該テーブルのアドレス数を４ビット分とすることができる。したがって、図１３に示すように、プレフィックス（0x01）用のテーブルを４ビット分のテーブルサイズに削減することが可能となる。このプレフィックス（0x01）用のテーブルを先頭アドレスとする第１のルックアップテーブル２２０’の出力データの「アドレス計算シフト量」には、シフト量「４ビット」が含まれることになる。
【００９５】
なお、プレフィックス（0x00）等のテーブルのサフィックスのとり得るビット数は８ビット以下であるので、かかるテーブルのアドレス数は８ビット未満に削減することはできない。したがって、かかるテーブルの先頭アドレスを含むデータが第１のルックアップテーブルから出力される場合、その出力データにおける「アドレス計算シフト量」には、「０ビット」が含まれることになる。このようにしておくことで、第２のルックアップテーブル用のアドレス計算時にシフト演算が一回増えるだけなので可変長復号処理全体に与える処理量の増加はわずかである。
【００９６】
本実施の形態では、上述したようにルックアップテーブルのサイズを削減することができる。例えば図１３に示す構成とした場合には、「Table One」のサイズは１５８４バイト、「Table Zero」のサイズは１０７２バイトとなり、テーブルサイズの合計は２６５６バイトとなる。すなわち、第２の実施の形態におけるテーブルサイズよりも、よりもさらに１９７６（＝５６３２−２６５６）バイト小さくすることができる。
【００９７】
また、本実施の形態では、第２の実施の形態におけるテーブル構成（図１１参照）のデータ量をさらに削減する構成について説明したが、図９に示された第１の実施形態におけるルックアップテーブルの構成のデータ量をさらに削減する構成としてもよい。
【００９８】
（変形例）
なお、本発明は、上述した実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
【００９９】
（変形例１）
上述した各実施の形態では、ＭＰＥＧ−２形式のＤＣＴ係数情報の可変長符号を復号する場合に本発明を適用した場合について説明したが、他の情報の可変長符号を復号する場合にも本発明を適用することができる。また、ＭＰＥＧ−２以外の形式であっても、可変長符号を含むデータを復号する装置、例えばＭＰＥＧ−１やＭＰＥＧ−４形式のデータ等を復号する装置であれば本発明を適用することができる。
【０１００】
（変形例２）
また、上述した各実施の形態では、１６ビットの入力に対して上位８ビットと下位８ビットに分割し、これらを第１のルックアップテーブルおよび第２のルックアップテーブルに入力するようにしているが、ビットの分割の方法は任意であり、最大符号語長Ｎビットの入力に対して上位Ｉビットと下位Ｊビットに分割するといったことが可能である。ここで、「Ｎ＝Ｉ＋Ｊ」である。
【０１０１】
また、上記のように第１のルックアップテーブルと第２のルックアップテーブルといったように２つのテーブルに２分割したビットをそれぞれ入力する構成に限らず、３つ以上にビットを分割し、分割した各々のビットを当該分割数に応じて設けられたテーブルに入力するようにしてもよい。
【０１０２】
例えば、最大符号語長が２４ビットの可変長符号を復号する場合であれば、上位８ビット、中位８ビットおよび下位８ビットといったように３つのビットグループに分割し、各々のビットグループを、それぞれのビットグループに対応して設けられたルックアップテーブルＡ、ルックアップテーブルＢおよびルックアップテーブルＣに入力するようにすればよい。
【０１０３】
ここで、最下位ビットを含むビットグループ以外のビットグループに対応するルックアップテーブルＡ、Ｂは上述した各実施の形態における第１のルックアップテーブルと同様、入力されるアドレスに応じて第１出力パターンまたは第２出力パターンのデータを出力する。すなわち、そのルックアップテーブルで復号処理が終了すれば第１出力パターンのデータを出力し、そのルックアップテーブルで復号処理が終了しない場合には次のテーブルでの復号処理を行わせるべく第２出力パターンのデータを出力する。
【０１０４】
一方、最下位ビットを含むビットグループに対応するルックアップテーブルＣは、上記各実施の形態における第２のルックアップテーブルと同様、第１出力パターンのデータのみを出力する構成とする。このようにすることで、上記各実施の形態と同様、保持しておくテーブルのサイズを削減することができるとともに、分岐処理の回数の増加も抑制することができる。例えば、上記のように３つのビットグループに分割し、それぞれに対応する３つのルックアップテーブルを設ける構成とすれば、分岐処理はルックアップテーブルＢを復号に用いるか否か、およびルックアップテーブルＣを復号に用いるか否かの２回だけであり、処理負担の増加を抑制することができる。
【産業上の利用可能性】
【０１０５】
以上のように、本発明にかかる可変長符号復号化装置および方法は、ＭＰＥＧ−２形式など可変長符号を復号する動画像データ復号装置などに有用である。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１の実施の形態にかかる動画像復号化処理装置の構成を示す図である。
【図２】前記ビデオレコーダに入力されるＭＰＥＧ−２形式のデータ構成を示す図である。
【図３】前記ＭＰＥＧ−２形式のデータに含まれるＭＢのデータ構成を示す図である。
【図４】前記動画像データ処理装置の構成要素である可変長符号復号化部の構成を示す図である。
【図５】前記ＭＰＥＧ−２形式におけるＤＣＴ係数の可変長符号表を示す図である。
【図６】前記ＭＰＥＧ−２形式におけるＤＣＴ係数の可変長符号表を示す図である。
【図７】前記可変長符号復号化部の第１のルックアップテーブルから出力されるデータの構成を示す図である。
【図８】前記第１のルックアップテーブルから出力されるデータの構成を示す図である。
【図９】前記可変長符号復号化部のルックアップテーブルの構成を示す図である。
【図１０】前記可変長符号復号化部による可変長復号処理の手順を示すフローチャートである。
【図１１】本発明の第２の実施の形態における可変長符号復号化部のルックアップテーブルの構成を示す図である。
【図１２】本発明の第３の実施の形態における可変長符号復号化部の第１のルックアップテーブルから出力されるデータの構成を示す図である。
【図１３】第３の実施の形態における可変長符号復号化部のルックアップテーブルの構成を示す図である。
【図１４】ＭＰＥＧ−２形式等の符号化されたデータを復号するためのプロセッサユニットの構成例を示す図である。
【図１５】前記プロセッサユニットのローカルメモリのデータ構成を示す図である。
【符号の説明】
【０１０７】
１００  動画像データ復号化装置
２１０  未復号ビットストリーム切出部
２２０  第１のルックアップテーブル
２３０  第２のルックアップテーブル
２４０  選択部
４１０  可変長符号復号化部
４２０  逆スキャン部
４３０  逆量子化部
４４０  逆ＤＣＴ部
５００  動き補償部
【図１】
0003720035.tif 000002
【図２】
0003720035.tif 000003
【図３】
0003720035.tif 000004
【図４】
0003720035.tif 000005
【図５】
0003720035.tif 000006
【図６】
0003720035.tif 000007
【図７】
0003720035.tif 000008
【図８】
0003720035.tif 000009
【図９】
0003720035.tif 000010
【図１０】
0003720035.tif 000011
【図１１】
0003720035.tif 000012
【図１２】
0003720035.tif 000013
【図１３】
0003720035.tif 000014
【図１４】
0003720035.tif 000015
【図１５】
0003720035.tif 000016