(57)【要約】      （修正有）【課題】複数のＦＩＦＯメモリと可変長符号化テーブルの組み合わせを用いた場合に、ＦＩＦＯメモリの数が増えたことにより、符号語長を出力する際に発生する負荷を低減する。【解決手段】可変長符号化データの符号語長に基づいて可変長符号化データを出力又は更新するＦＩＦＯメモリ部４００と、ＦＩＦＯメモリ部４００に可変長符号化データを出力するＦＩＦＯ入力選択手段３００と、可変長符号化データと可変長符号化テーブルとを比較する可変長符号化テーブル５００と、符号語長及び復号値を決定し、ＦＩＦＯメモリ部４００に符号語長を出力するテーブル選択部６００と、ＦＩＦＯメモリ部４００の出力先ＦＩＦＯメモリに、入力手段２００又は出力先ＦＩＦＯメモリ以外のＦＩＦＯメモリから可変長符号化データを読み出し、出力先ＦＩＦＯメモリに出力する様にＦＩＦＯ入力選択手段３００を制御する制御手段１００と、を含む。【選択図】図１
2008199100.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号化データを入力する入力手段と、
前記可変長符号化データを記憶し、前記可変長符号化データの符号語長に基づいて前記可変長符号化データを出力又は更新する第１ＦＩＦＯメモリ及び第２ＦＩＦＯメモリと、
前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに前記可変長符号化データを出力するＦＩＦＯ入力選択手段と、
前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに接続され、前記可変長符号化データと前記符号長及び復号値との関係を示す可変長符号化テーブルを記憶するとともに、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに記憶された可変長符号化データを読み出し、前記読み出された可変長符号化データと前記可変長符号化テーブルとを比較する第１可変長符号化テーブル記憶手段及び第２可変長符号化テーブル記憶手段と、
前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリ、及び、前記第１可変長符号化テーブル記憶手段又は前記第２可変長符号化テーブル記憶手段に接続され、前記第１可変長符号化テーブル記憶手段又は前記第２可変長符号化テーブル記憶手段の比較結果に基づいて前記符号語長及び前記復号値を決定し、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに前記決定された符号語長を出力する第１テーブル選択手段及び第２テーブル選択手段と、
前記第１ＦＩＦＯメモリを出力先ＦＩＦＯメモリとして選択し、前記入力手段又は前記第２ＦＩＦＯメモリから前記可変長符号化データを読み出し、前記読み出された可変長符号化データを前記第１ＦＩＦＯメモリに出力する様に前記ＦＩＦＯ入力選択手段を制御する制御手段と、を含むことを特徴とする可変長符号復号装置。
【請求項２】
請求項１に記載の可変長符号復号装置であって、さらに
前記第１テーブル選択手段及び前記第２テーブル選択手段と接続され、前記決定された復号値を復号する復号手段と、を含み、
前記制御手段は、前記復号手段の復号結果に対してさらに復号する必要がある場合に、前記第１ＦＩＦＯメモリに記憶された前記可変長符号化データを読み出し、前記第２ＦＩＦＯメモリに出力する様に前記ＦＩＦＯ入力選択手段を制御することを特徴とする可変長符号復号装置。
【請求項３】
請求項２に記載の可変長符号復号装置であって、
前記制御手段は、前記第１ＦＩＦＯメモリに記憶された前記可変長符号化データを読み出し、前記第２ＦＩＦＯメモリに出力する際に、前記可変長符号化データを出力又は更新するための符号語長を前記第２ＦＩＦＯメモリに出力する様に前記第２テーブル選択手段を制御することを特徴とする可変長符号復号装置。
【請求項４】
請求項１〜３のいずれか１項に記載の可変長符号復号装置であって、
前記第１可変長符号化テーブル記憶手段及び第２可変長符号化テーブル記憶手段は、それぞれ、前記可変長符号化データの位置情報毎に設けられることを特徴とする可変長符号復号装置。
【請求項５】
請求項４のいずれか１項に記載の可変長符号復号装置であって、
前記制御手段は、前記位置情報に基づいて、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリを前記出力先ＦＩＦＯメモリとして選択することを特徴とする可変長符号復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号復号装置に関し、特に、定義済みの可変長符号を用いて符号化された符号列を復号するための可変長符号復号装置に関する。
【背景技術】
【０００２】
ＭＰＥＧ−２、Ｈ．２６４、ＶＣ−１等の動画像圧縮符号化方式では、定義済みの可変長符号を用いて圧縮符号化される。従って、動画像復号装置の基本的な構成要素の一つとして、定義済みの可変長符号を用いて符号化された符号列を復号するための可変長符号復号装置が必要となる。
【０００３】
従来の可変長符号復号装置は、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリに記憶されたビット列に対して、可変長符号化テーブル（メモリに記憶されたビット列と符号語長及び復号値との関係）を用いて符号語長及び復号値を一意に決定するものである。この場合には、可変長符号化テーブルの数に応じて、符号語長を出力する際に発生する負荷が増加する。特に、ＶＣ−１方式を用いた場合は、ＭＰＥＧ−２方式に比べて可変長符号化テーブルの数が増加する。
【０００４】
これに対して、一般に、同一の記憶内容を持つメモリを複数設けて、それぞれの出力先を分散させることにより、負荷を分散させて処理を高速化することが知られている。
【０００５】
しかし、可変長符号復号装置のＦＩＦＯメモリに対してこの手法を単純に適用しても、負荷を分散させることによる処理の高速化という効果が薄いという問題がある。その理由は、複数のＦＩＦＯメモリから出力されたビット列が可変長符号化テーブルを経由して、符号語長としてＦＩＦＯメモリへ戻ってくるためである。すなわち、ＦＩＦＯメモリを複数設けることにより発生する可変長符号化テーブルの負荷を分散させても、ＦＩＦＯメモリ（可変長符号化テーブルから出力される符号語長の出力先）の数が増えたことにより、符号語長を出力する際に発生する負荷が増加するからである。
【特許文献１】特開平８−２０５１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、複数のＦＩＦＯメモリと可変長符号化テーブルの組み合わせを用いた場合に、可変長符号化テーブルから出力される符号語長の出力先となるＦＩＦＯメモリの数が増えたことにより、符号語長を出力する際に発生する負荷を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明によれば、可変長符号化データを入力する入力手段と、前記可変長符号化データを記憶し、前記可変長符号化データの符号語長に基づいて前記可変長符号化データを出力又は更新する第１ＦＩＦＯメモリ及び第２ＦＩＦＯメモリと、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに前記可変長符号化データを出力するＦＩＦＯ入力選択手段と、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに接続され、前記可変長符号化データと前記符号長及び復号値との関係を示す可変長符号化テーブルを記憶するとともに、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに記憶された可変長符号化データを読み出し、前記読み出された可変長符号化データと前記可変長符号化テーブルとを比較する第１可変長符号化テーブル記憶手段及び第２可変長符号化テーブル記憶手段と、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリ、及び、前記第１可変長符号化テーブル記憶手段又は前記第２可変長符号化テーブル記憶手段に接続され、前記第１可変長符号化テーブル記憶手段又は前記第２可変長符号化テーブル記憶手段の比較結果に基づいて前記符号語長及び前記復号値を決定し、前記第１ＦＩＦＯメモリ又は前記第２ＦＩＦＯメモリに前記決定された符号語長を出力する第１テーブル選択手段及び第２テーブル選択手段と、前記第１ＦＩＦＯメモリを出力先ＦＩＦＯメモリとして選択し、前記入力手段又は前記第２ＦＩＦＯメモリから前記可変長符号化データを読み出し、前記読み出された可変長符号化データを前記第１ＦＩＦＯメモリに出力する様に前記ＦＩＦＯ入力選択手段を制御する制御手段と、を含むことを特徴とする可変長符号復号装置が提供される。
【発明の効果】
【０００８】
本発明によれば、複数のＦＩＦＯメモリと可変長符号化テーブルの組み合わせを用いた場合に、記憶先となるＦＩＦＯメモリを切り替える際に発生するオーバーヘッドを低減させることができる。
【発明を実施するための最良の形態】
【０００９】
以下に、図面を参照して本発明の実施例について説明する。なお、以下の実施例は、本発明の実施の一形態に過ぎず、本発明の範囲を限定するものではない。
【００１０】
図１は、本発明の実施例に係る可変長符号復号装置の構成を示すブロック図である。
【００１１】
可変長符号復号装置は、入力端子（ＩＮ）１、出力端子（ＯＵＴ）２、ＣＰＵ（制御手段）１００、ビットストリーム入力手段２００、ＦＩＦＯ入力選択手段３００、ＦＩＦＯメモリ部４００、可変長符号化テーブル部５００、テーブル選択部６００及び復号部７００を含む。
【００１２】
ＣＰＵ（制御手段）１００は、ＦＩＦＯ入力選択手段３００に制御信号（Ｃｔｒｌ）を出力し、テーブル選択部６００にテーブル選択信号（Ｓｅｌ）及び定数（Ｋ＝０又は３２）を出力する。
【００１３】
ビットストリーム入力手段２００は、入力端子ＩＮ１を介して後述するビットストリーム（ＢＳ）（図３（ｅ）を参照）を入力し、所定のビット列（Ｂ）単位（例えば、３２ｂｉｔ）でＦＩＦＯ入力選択手段３００に出力する。
【００１４】
ＦＩＦＯ入力選択手段３００は、ＣＰＵ（制御手段）１００から出力された制御信号（Ｃｔｒｌ）に基づいて、ビットストリーム入力手段２００又はＦＩＦＯメモリ部４００から出力されたビット列（Ｂ）のいずれかを選択し、ＦＩＦＯメモリ部４００に出力する。
【００１５】
ＦＩＦＯメモリ部４００は、ＦＩＦＯ入力選択手段３００から出力されたビット列（Ｂ）を記憶し、Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ（いわゆる、先入れ先出し）方式により可変長符号化テーブル部５００に出力する。出力されたビット列（Ｂ）は、ビットストリーム（ＢＳ）上における現在の復号位置を先頭とする３２ビットのビット列である。また、ＦＩＦＯメモリ部４００は、テーブル選択部６００にシフト制御信号（Ｓ）を出力する。
【００１６】
可変長符号化テーブル部５００は、可変長符号化テーブル（図１０（ａ）及び（ｂ）を参照）を予め記憶し、ＦＩＦＯメモリ部４００から出力されたビット列（Ｂ）と可変長符号化テーブルを比較し、比較結果をテーブル選択部６００に出力する。
【００１７】
テーブル選択部６００は、ＣＰＵ（制御手段）１００から出力されたテーブル選択信号（Ｓｅｌ）に基づいて、可変長符号化テーブル部５００から出力された比較結果（符号語長（Ｌ）及び復号値（Ｄ））の一を選択し、符号語長（Ｌ）をＦＩＦＯメモリ部４００に出力し、復号値（Ｄ）を復号部７００に出力する。また、テーブル選択部６００は、ＣＰＵ（制御手段）１００から出力された定数（Ｋ）をＦＩＦＯメモリ部４００に出力する。
【００１８】
復号部７００は、テーブル選択部６００から出力された復号値（Ｄ）に対して、所定の復号処理を行い、復号済みデータを出力端子ＯＵＴ２へ出力する。なお、所定の復号処理についての説明は省略する。
【００１９】
図２は、ＦＩＦＯメモリ部４００、可変長符号化テーブル部５００及びテーブル選択部６００の構成を示すブロック図である。
【００２０】
ＦＩＦＯメモリ部４００は、位置情報に応じて使い分けられる第１ＦＩＦＯメモリ４１０〜第３ＦＩＦＯメモリ４３０を含む。第１ＦＩＦＯメモリ４１０は、ビットストリーム（ＢＳ）のピクチャ情報（図３（ｂ）を参照）を復号するために用いられ、第２ＦＩＦＯメモリ４２０は、ビットストリーム（ＢＳ）のマクロブロック（ＭＢ）情報（図３（ｄ）を参照）を復号するために用いられ、第３ＦＩＦＯメモリ４３０は、ビットストリーム（ＢＳ）のブロック（ｂｌｋ）情報（図３（ｅ）を参照）を復号するために用いられる。第１ＦＩＦＯメモリ４１０〜第３ＦＩＦＯメモリ４３０は、それぞれ、ＦＩＦＯ入力選択手段３００から出力されたビット列（Ｂ）を３２ｂｉｔ単位で記憶し、可変長符号化テーブル部５００に出力する。
【００２１】
可変長符号化テーブル部５００は、第１ＦＩＦＯメモリ４１０〜第３ＦＩＦＯメモリ４３０のそれぞれに対応して設けられた第１可変長符号化テーブル群５１０〜第３可変長符号化テーブル群５３０を含む。第１可変長符号化テーブル群５１０は、ピクチャ用可変長符号化テーブル５１１及び５１２を記憶し、第２可変長符号化テーブル群５２０は、マクロブロック（ＭＢ）用可変長符号化テーブル５２１〜５２３を記憶し、第３可変長符号化テーブル群５３０は、ブロック（ｂｌｋ）用可変長符号化テーブル５３１及び５３２を記憶する。また、第１可変長符号化テーブル群５１０〜第３可変長符号化テーブル群５３０は、それぞれ、ＦＩＦＯメモリ部４００から出力されたビット列（Ｂ）と可変長符号化テーブル５１１〜５３２を比較し、比較結果をテーブル選択部６００に出力する。
【００２２】
例えば、第１可変長符号化テーブル群５１０にビット列（Ｂ）が出力された場合は、可変長符号化テーブル５１１及び５１２のそれぞれに対応する比較結果（すなわち、２種類の比較結果）が出力される。
【００２３】
図１０（ａ）及び（ｂ）は、可変長符号化テーブル５１１及び５１２の一例を示す。可変長符号化テーブルは、二分木上で互いに重なり合わない符号語に対する符号語長（Ｌ）及び復号値（Ｄ）の関係を示す情報である。
【００２４】
例えば、第１ＦＩＦＯメモリ４１０から出力されたビット列の符号語が“０１”である場合は、可変長符号化テーブル５１１の比較結果は、符号語長（Ｌ＝２ｂｉｔ）、復号値（Ｄ＝６）であり、可変長符号化テーブル５１２の比較結果は、符号語長（Ｌ＝２ｂｉｔ）、復号値（Ｄ＝１）である（図１０（ｃ）を参照）。
【００２５】
テーブル選択部６００は、第１可変長符号化テーブル群５１０〜第３可変長符号化テーブル群５３０のそれぞれに対応して設けられた第１テーブル選択手段６１０〜第３テーブル選択手段６３０を含む。第１テーブル選択手段６１０〜第３テーブル選択手段６３０は、ＣＰＵ（制御手段）１００から出力されたテーブル選択信号（Ｓｅｌ）に基づいて、可変長符号化テーブル部５００から出力された比較結果を一意に決定し、符号語長（Ｌ）をＦＩＦＯメモリ部４００に出力し、復号値（Ｄ）を復号部７００に出力する。また、第１テーブル選択手段６１０〜第３テーブル選択手段６３０は、ＣＰＵ（制御手段）１００から出力された定数（Ｋ）をＦＩＦＯメモリ部４００に出力する。
【００２６】
例えば、可変長符号化テーブル部５００から図１０（ｃ）に示されたような比較結果が出力された場合は、第１テーブル選択手段６１０は、符号語長“Ｌ＝２”を第１ＦＩＦＯメモリ４１０に出力し、復号値“Ｄ＝１”を復号部７００に出力する。
【００２７】
図３は、本実施例に係るビットストリーム（ＢＳ）のデータ構造の一例である。
【００２８】
ビットストリーム（ＢＳ）は、シーケンス情報、ピクチャ情報、スライス情報、マクロブロック（ＭＢ）情報及びブロック（ｂｌｋ）情報を含む。図３（ａ）は、シーケンス情報の一例である。シーケンス情報は、複数のピクチャ情報を含む。図３（ｂ）は、ピクチャ情報の一例である。ピクチャ情報は、複数のスライス情報を含む。図３（ｃ）は、スライス情報の一例である。スライス情報は、所定の大きさに分割された複数のマクロブロック（ＭＢ）情報を含む。図３（ｄ）は、マクロブロック（ＭＢ）情報は、４つのＹブロック、１つのＣｂブロック及びＣｒブロックを含む。
【００２９】
図３（ｅ）は、本実施例に係るビットストリーム全体のデータ構造を示す。本実施例に係るビットストリームは、ヘッダ情報としてのシーケンス情報に続き、複数のピクチャ情報を含む。また、前述のとおり、１つのピクチャ情報は、複数のスライス情報を含み、１つのスライス情報は、複数のマクロブロック（ＭＢ）情報を含み、１つのマクロブロック（ＭＢ）情報は、６つのブロック（ｂｌｋ）情報を含む。
【００３０】
図４は、本実施例に係る第１ＦＩＦＯメモリ４１０の構成を示すブロック図である。なお、第２ＦＩＦＯメモリ４２０及び第３ＦＩＦＯメモリ４３０の構成も同様である。
【００３１】
第１ＦＩＦＯメモリ４１０は、第１レジスタ４１１、第２レジスタ４１２、第３レジスタ４１３、シフタ４１４及び加算器４１５を含む。なお、シフタ４１４及び加算器５１５は、組み合わせ回路で実現され、同期式順序回路を形成する。
【００３２】
第１レジスタ４１１は、ＦＩＦＯ入力選択手段３００から出力された３２ｂｉｔのビット列（Ｂ）を記憶するとともに、後述する更新制御信号に基づいて、ＦＩＦＯ入力選択手段３００、第２レジスタ４１２及びシフタ４１４に出力する。すなわち、第１レジスタ４１１は、ＦＩＦＯ入力選択手段３００から出力された３２ｂｉｔのビット列（Ｂ）を記憶し、更新するためのレジスタである。
【００３３】
第２レジスタ４１２は、第１レジスタ４１１から出力された３２ｂｉｔのビット列（Ｂ）を記憶するとともに、後述する更新制御信号に基づいて、ＦＩＦＯ入力選択手段３００及びシフタ４１４に出力する。すなわち、第２レジスタ４１２は、第１レジスタ４１１から出力された３２ｂｉｔのビット列（Ｂ）を記憶し、更新するためのレジスタである。
【００３４】
第３レジスタ４１３は、後述する加算器４１５の加算結果の下位５ｂｉｔ（Ａ２）をシフト制御信号（Ｓ）として記憶するとともに、シフタ４１４、加算器４１５、並びに、第２テーブル選択手段６２０及び第３テーブル選択手段６３０に出力する。
【００３５】
シフタ４１４は、第３レジスタ４１３から出力された５ｂｉｔのシフト制御信号（Ｓ）に基づいて、第１レジスタ４１１又は第２レジスタ４１２から出力された３２ｂｉｔのビット列（Ｂ）を更新するためのシフト処理を行うとともに、３２ｂｉｔのビット列（Ｂ）を第１可変長符号化テーブル５１０に出力する。シフト処理は、第１レジスタ４１１及び第２レジスタ４１２の３２ビットのビット列（合計６４ビットの値）を最大３２ビット分シフトすることができる。
【００３６】
加算器４１５は、第１テーブル選択手段６１０から出力された６ｂｉｔの符号語長（Ｌ）と第３レジスタ４１３から出力された５ｂｉｔのシフト制御信号（Ｓ）とを加算するとともに、加算結果の上位１ビット（Ａ１）を更新制御信号として、第１レジスタ４１１及び第２レジスタ４１２に出力し、加算結果の下位５ビット（Ａ２）を更新値として、第３レジスタ４１３に出力する。また、加算器４１５は、第１テーブル選択手段６１０から出力された定数（Ｋ）をＡとみなし、上位１ビット（Ａ１）を第１レジスタ４１１及び第２レジスタ４１２に出力し、下位５ビットを第３レジスタ４１３に出力する。
【００３７】
例えば、Ｋ＝０の場合は、ＦＩＦＯメモリ部４００及び可変長符号化テーブル部５００は動作しない（すなわち、第１レジスタ４１１〜第３レジスタ４１３の値が更新されない）が、Ｋ＝３２の場合は、ＦＩＦＯ入力選択手段３００からＦＩＦＯメモリ部４００に３２ｂｉｔのビット列が出力される。
【００３８】
図５は、ＦＩＦＯ入力選択手段３００の構成を示すブロック図である。
【００３９】
ＦＩＦＯ入力選択手段３００は、マルチプレクサ３１０を含む。マルチプレクサ３１０は、ＣＰＵ（制御手段）１００から出力された制御信号（Ｃｔｒｌ）に基づいて、ビットストリーム入力手段２００又はＦＩＦＯメモリ部４００（例えば、第１ＦＩＦＯメモリ４１０の第１レジスタ４１１若しくは第２レジスタ４１２）の一を選択し、ＦＩＦＯメモリ部４００（例えば、第１ＦＩＦＯメモリ４１０の第１レジスタ４１１）に出力する。また、ＦＩＦＯ入力選択手段３００は、ビット列の位置情報を参照し、第１ＦＩＦＯメモリ４１０〜第３ＦＩＦＯメモリ４３０のいずれかを出力先ＦＩＦＯメモリとして選択する。
【００４０】
例えば、後述するＦＩＦＯ移動処理（図９を参照）では、マルチプレクサ３１０は、第２ＦＩＦＯメモリ４２０又は第３ＦＩＦＯメモリ４３０から出力されたビット列を第１ＦＩＦＯメモリ４１０の第１レジスタ４１１に出力する。
【００４１】
図６は、本実施例に係る第１テーブル選択手段６１０の構成を示すブロック図である。なお、第２テーブル選択手段６２０及び第３テーブル選択手段６３０の構成も同様である。
【００４２】
第１テーブル選択手段６１０は、マルチプレクサ６１１を含む。マルチプレクサ６１１は、ＣＰＵ（制御手段）１００から出力されたテーブル選択信号（Ｓｅｌ）に基づいて、第１可変長符号化テーブル群５１０から出力された複数の比較結果の一を選択し、符号語長（Ｌ）を第１ＦＩＦＯメモリ４１０の加算器４１４に出力し、復号値（Ｄ）を復号部７００に出力する。
【００４３】
例えば、後述するＦＩＦＯ移動処理（図９を参照）では、マルチプレクサ６１１は、第２ＦＩＦＯメモリ４２０の第３レジスタ４２３又は第３ＦＩＦＯメモリ４３０の第３レジスタ４３３から出力されたシフト制御信号（Ｓ）を第１ＦＩＦＯメモリ４１０の第３レジスタ４１３に出力し、ＣＰＵ（制御手段）１００から出力された定数（Ｋ）を第１ＦＩＦＯメモリ４１０の加算器４１５に出力する。
【００４４】
図７は、本実施例に係る復号処理におけるＣＰＵ（制御手段）１００の処理手順を示すフローチャートである。
【００４５】
ＣＰＵ（制御手段）１００は、はじめに、ＦＩＦＯ入力選択手段３００に制御信号（Ｃｔｒｌ）を出力することにより、ビット列（Ｂ）の位置情報に基づいて第１ＦＩＦＯメモリ４１０を出力先ＦＩＦＯメモリとして選択させるとともに、第１テーブル選択手段６１０に定数（Ｋ）を出力することにより、第１ＦＩＦＯメモリ４１０にビット列（Ｂ）を記憶させる（Ｓ７０１）。このとき、ＣＰＵ（制御手段）１００は、第２ＦＩＦＯメモリ４２０及び第３ＦＩＦＯメモリ４３０を動作させない様にするために、第２テーブル選択手段６２０及び第３テーブル選択手段６３０に定数（Ｋ＝０）を出力する。
【００４６】
続いて、第１ＦＩＦＯメモリ４１０に記憶されたビット列（Ｂ）について、シーケンス情報復号処理を行う（Ｓ７０２）。続いて、ピクチャ情報（すなわち、Ｓ７０２の復号結果）について、第１符号化テーブル群５１０に記憶されたピクチャ用テーブル（可変長符号化テーブル５１１及び５１２）を用いて復号する（Ｓ７０３）。Ｓ７０３については、後述する（図８を参照）。続いて、スライス情報（すなわち、Ｓ７０３の複合結果）について、図示しないスライス用テーブルを用いて復号する（Ｓ７０４）。
【００４７】
続いて、Ｓ７０４の復号結果のビット列（Ｂ）の位置情報を参照し、ピクチャ用ＦＩＦＯメモリ（第１ＦＩＦＯメモリ４１０）からマクロブロック用ＦＩＦＯメモリ（第２ＦＩＦＯメモリ４２０）へのＦＩＦＯ移動処理（図９を参照）を行う（Ｓ７０５）。続いて、マクロブロック（ＭＢ）情報について、第２符号化テーブル群５２０に記憶されたマクロブロック用テーブルを用いて復号する（Ｓ７０６）。
【００４８】
続いて、Ｓ７０６の復号結果のビット列（Ｂ）の位置情報を参照し、マクロブロック用ＦＩＦＯメモリ（第２ＦＩＦＯメモリ４２０）からブロック用ＦＩＦＯメモリ（第３ＦＩＦＯメモリ４３０）へのＦＩＦＯ移動処理を行う（Ｓ７０７）。続いて、ブロック（ｂｌｋ）情報について、第３符号化テーブル群５３０に記憶されたブロック用テーブルを用いて復号する（Ｓ７０８）。
【００４９】
全てのブロック（ｂｌｋ）情報についての復号が終了した場合は（Ｓ７０９−Ｙｅｓ）、スライス情報の終端まで復号したか否かを判定する（Ｓ７１０）。全てのスライス情報の終端まで復号していない場合は（Ｓ７１０−Ｎｏ）、ブロック用ＦＩＦＯメモリ（第３ＦＩＦＯメモリ４３０）からマクロブロック用ＦＩＦＯメモリ（第２ＦＩＦＯメモリ４２０）へのＦＩＦＯ移動処理を行い（Ｓ７１１）、Ｓ７０６へ戻る。
【００５０】
一方、全てのスライス情報の終端まで復号した場合は（Ｓ７１０−Ｙｅｓ）、全てのピクチャ情報の終端まで復号したか否かを判定する（Ｓ７１２）。全てのピクチャ情報の終端まで復号していない場合は（Ｓ７１２−Ｙｅｓ）、ブロック用ＦＩＦＯメモリ（第３ＦＩＦＯメモリ４３０）からピクチャ用ＦＩＦＯメモリ（第１ＦＩＦＯメモリ４１０）へのＦＩＦＯ移動処理を行い（Ｓ７１３）、Ｓ７０４へ戻る。
【００５１】
一方、全てのピクチャ情報の終端まで復号した場合は（Ｓ７１２−Ｙｅｓ）、全てのビットストリーム（ＢＳ）の終端まで復号したか否かを判定する（Ｓ７１４）。全てのビットストリーム（ＢＳ）の終端まで復号していない場合は（Ｓ７１４−Ｎｏ）、ブロック用ＦＩＦＯメモリ（第３ＦＩＦＯメモリ４３０）からピクチャ用ＦＩＦＯメモリ（第１ＦＩＦＯメモリ４１０）へのＦＩＦＯ移動処理を行い（Ｓ７１３）、Ｓ７０３へ戻る。
【００５２】
一方、全てのビットストリーム（ＢＳ）の終端まで復号した場合は（Ｓ７１４−Ｙｅｓ）、復号処理を終了する。
【００５３】
なお、Ｓ７０２、Ｓ７０４、Ｓ７０６及びＳ７０８は、Ｓ７０３と同様に行われる（図１０を参照）。また、Ｓ７０７、Ｓ７１１、Ｓ７１３及びＳ７１５は、Ｓ７０５と同様に行われる（図９を参照）。
【００５４】
図８は、本実施例に係るピクチャ情報復号処理における１クロック周期において行われるＣＰＵ（制御手段）１００の処理手順を示すフローチャートである。なお、ピクチャ情報以外の復号処理（例えば、スライス情報復号処理、マクロブロック（ＭＢ）情報復号処理及びブロック（ｂｌｋ）情報復号処理等）についても同様である。
【００５５】
ＣＰＵ（制御手段）１００は、はじめに、第１ＦＩＦＯメモリ４１０に記憶されたビット列（Ｂ）を定数（Ｋ）又は符号語長（Ｌ）の値に従って更新する（Ｓ８０１）。なお、最初のビット列（Ｂ）に対してピクチャ情報復号処理を行う場合は定数（Ｋ）の値に従い、２番目以降のビット列（Ｂ）に対してピクチャ情報復号処理を行う場合は符号語長（Ｌ）の値に従う。
【００５６】
続いて、第１ＦＩＦＯメモリ４１０から第１可変長符号化テーブル群５１０にビット列を出力する（Ｓ８０２）。続いて、第１可変長符号化テーブル群５１０に記憶された可変長符号化テーブルを第１テーブル選択手段６１０に出力する（Ｓ８０３）。続いて、テーブル選択信号（Ｓｅｌ）に基づいて、符号語長（Ｌ）及び復号値（Ｄ）を選択する（Ｓ８０４）。続いて、第１テーブル選択手段６１０に符号語長（Ｌ）を出力し、復号部７００に復号値（Ｄ）を出力する（Ｓ８０５）。
【００５７】
続いて、復号処理を停止しない場合は（Ｓ８０６−Ｎｏ）、Ｓ８０１に戻り、Ｓ８０５において出力された符号語長（Ｌ）に従って、ビット列（Ｂ）を更新する（Ｓ８０１）。Ｓ８０１〜Ｓ８０５の処理は、復号が停止するまで行われる。一方、復号処理を停止する場合は（Ｓ８０６−Ｙｅｓ）、第１テーブル選択手段６１０に定数（Ｋ＝０）を出力し、ピクチャ情報復号処理を終了する（Ｓ８０７）。
【００５８】
図９は、本実施例に係るＦＩＦＯ移動処理におけるＣＰＵ（制御手段）１００の処理手順を示すフローチャートである。なお、図９は、第１ＦＩＦＯメモリ４１０から第２ＦＩＦＯメモリ４２０へ移動する場合についての例であるが、その他の場合についても同様である。
【００５９】
ＣＰＵ（制御手段）１００は、はじめに、第２ＦＩＦＯメモリ４２０を初期化することにより、第２ＦＩＦＯメモリの第１レジスタ〜第３レジスタの内容を全て０にする（Ｓ９０１）。続いて、第１テーブル選択手段６１０に定数（Ｋ＝０）を出力する（Ｓ９０２）。Ｓ９０１及びＳ９０２は、第１クロック周期内において行われる。
【００６０】
続いて、第２テーブル選択手段６２０に所定のテーブル選択信号（ｓｅｌ）を出力することにより、第１ＦＩＦＯメモリ６１０の第３レジスタ４１３に記憶された符号長（Ｌ）を第２ＦＩＦＯメモリ４２０の第３レジスタ４２３に出力する（Ｓ９０３）。Ｓ９０３は、第２クロック周期内において行われる。第２クロック周期が終了した時点で、第２ＦＩＦＯメモリ４２０の第３レジスタ４２３と第１ＦＩＦＯメモリ４１０の第３レジスタ４１３の内容とが同一になる。
【００６１】
続いて、第２テーブル選択手段６２０を介して第２ＦＩＦＯメモリ４２０の加算器に定数（Ｋ＝３２）を出力する（Ｓ９０４）。続いて、ＦＩＦＯ入力選択手段３００に制御信号（Ｃｔｒｌ）を出力することにより、第１ＦＩＦＯメモリ４１０の第１レジスタ４１１に記憶されたビット列（Ｂ）を第２ＦＩＦＯメモリ４２０の第１レジスタ（図示しない）に出力する（Ｓ９０５）。Ｓ９０４及びＳ９０５は、第３クロック周期内において行われる。第３クロック周期が終了した時点で、第２ＦＩＦＯメモリ４２０の第１レジスタ（図示しない）と第１ＦＩＦＯメモリ４１０の第２レジスタ４１２の内容とが同一になる。なお、Ｓ９０４において、第２ＦＩＦＯメモリ４２０の第３レジスタ４２３に定数（Ｋ＝３２）が記憶されたので、第４クロック周期において、第２ＦＩＦＯメモリ４２０の第１レジスタ（図示しない）に記憶されたビット列（Ｂ）は第２ＦＩＦＯメモリ４２０の第２レジスタ（図示しない）に出力されることになる。
【００６２】
続いて、第２テーブル選択手段６２０を介して第２ＦＩＦＯメモリ４２０の加算器に定数（Ｋ＝３２）を出力する（Ｓ９０６）。続いて、ＦＩＦＯ入力選択手段３００に制御信号（Ｃｔｒｌ）を出力することにより、第１ＦＩＦＯメモリ４１０の第２レジスタ４１２に記憶されたビット列（Ｂ）を第２ＦＩＦＯメモリ４２０の第１レジスタ（図示しない）に出力する（Ｓ９０７）。Ｓ９０６及びＳ９０７は、第４クロック周期内において行われる。第４クロック周期が終了した時点で、第２ＦＩＦＯメモリ４２０の第１レジスタ及び第２レジスタ（図示しない）と第１ＦＩＦＯメモリ４１０の第１レジスタ４１１及び第２レジスタ４１２の内容とが同一になる。なお、Ｓ９０６において、第２ＦＩＦＯメモリ４２０の第３レジスタ４２３に定数（Ｋ＝３２）が記憶されたので、第２ＦＩＦＯメモリ４２０の第１レジスタ（図示しない）に記憶されたビット列（Ｂ）は、第５クロック周期において、第２ＦＩＦＯメモリ４２０の第２レジスタ（図示しない）に出力されることになる。
【００６３】
本実施例によれば、図２に示されたように、用途毎の可変長符号化テーブル群５１０〜５３０を設けており、ＦＩＦＯメモリ４１０〜４３０から可変長符号化テーブル群５１０〜５３０を経由してテーブル選択部６１０〜６３０に入力された符号語長Ｌまたは定数Ｋが、再びＦＩＦＯメモリ４１０〜４３０に出力される経路が存在する。この経路は、ＦＩＦＯメモリが単一である場合にも同様に存在する経路であり、新たな経路が加えられたわけではない。このように、可変長符号化テーブル部５００に記憶される可変長符号化テーブルの数が増えた場合でも、１つのＦＩＦＯメモリにかかる負荷を低減することができるので、可変長符号復号装置の最大伝搬遅延時間を短縮でき、ひいては、復号処理全体を高速化することができる。
【００６４】
また、図９に示されたように、ＦＩＦＯ移動処理において、複数のＦＩＦＯメモリ４１０〜４３０間でのデータ交換を行うので、用途毎の可変長符号化テーブル群５１０〜５３０を設けた場合に複数のＦＩＦＯメモリに同じビット列（Ｂ）を出力しておく必要がないため、複数のＦＩＦＯメモリ４１０〜４３０の動作消費電力を低減することができる。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施例に係る可変長符号復号装置の構成を示すブロック図である。
【図２】ＦＩＦＯメモリ部４００、可変長符号化テーブル部５００及びテーブル選択部６００の構成を示すブロック図である。
【図３】（ａ）〜（ｅ）は、本実施例に係るビットストリーム（ＢＳ）のデータ構造の一例である。
【図４】本実施例に係る第１ＦＩＦＯメモリ４１０の構成を示すブロック図である。
【図５】ＦＩＦＯ入力選択手段３００の構成を示すブロック図である。
【図６】本実施例に係る第１テーブル選択手段６１０の構成を示すブロック図である。
【図７】本実施例に係る復号処理におけるＣＰＵ（制御手段）１００の処理手順を示すフローチャートである。
【図８】本実施例に係るピクチャ情報復号処理における１クロック周期において行われるＣＰＵ（制御手段）１００の処理手順を示すフローチャートである。
【図９】本実施例に係るＦＩＦＯ移動処理におけるＣＰＵ（制御手段）１００の処理手順を示すフローチャートである。
【図１０】（ａ）及び（ｂ）は、可変長符号化テーブル５１１及び５１２の一例であり、（ｃ）は、テーブル選択手段６１０に出力される比較結果の一例である。
【符号の説明】
【００６６】
１００  ＣＰＵ（制御手段）
２００  ビットストリーム入力手段
３００  ＦＩＦＯ入力選択手段
４００  ＦＩＦＯメモリ部
５００  可変長符号化テーブル部
６００  テーブル選択部
７００  復号部
【図１】
2008199100.tif 000003
【図２】
2008199100.tif 000004
【図３】
2008199100.tif 000005
【図４】
2008199100.tif 000006
【図５】
2008199100.tif 000007
【図６】
2008199100.tif 000008
【図７】
2008199100.tif 000009
【図８】
2008199100.tif 000010
【図９】
2008199100.tif 000011
【図１０】
2008199100.tif 000012