(57)【要約】【課題】回路規模の増大を抑えつつ高速に可変長符号化データストリームから符号語を抽出できる符号語抽出装置とその方法、この符号化抽出装置を用いた復号化装置および画像再生装置を提供する。【解決手段】複数の一致検出部に対する符号語のロードを繰り返しながら、各一致検出部において符号語の検出動作が行われる。各一致検出部では、複数の符号語とデータストリームとの一致検出が並列に実行される。また、ランレングスの短い符号語がランレングスの長い符号語より優先して符号語テーブルから選択され、一致検出部Ｕ０，Ｕ１，Ｕ２の記憶部にロードされる。そのため、回路規模の増大を抑えつつ、符号語抽出処理を高速化できる。また、量子化係数を必要以上に高速に生成することなく、適切な規模の回路で適切な速度により量子化係数を復号化できる。【選択図】      図１
2006203301.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号化されたデータストリームから符号語を抽出する符号語抽出装置であって、
上記データストリームの先頭から第１のデータ長のデータブロックを抽出し、入力される第１の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、
少なくとも１つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第１の信号を出力する複数の一致検出部と、
上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部から順番に１つの一致検出部を選択するとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする符号語ロード部と、
を有する符号語抽出装置。
【請求項２】
上記符号語ロード部は、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する第１の順序に従って、上記所定の複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードする、
請求項１に記載の符号語抽出装置。
【請求項３】
上記符号語には、ゼロ個もしくは１つ以上の基準データと当該基準データでない１つの非基準データとが情報語としてそれぞれ対応付けられており、
上記符号語ロード部は、対応付けられた上記基準データの数が少ない符号語を当該対応付けられた上記基準データの数が多い符号語より優先して上記所定の複数の符号語から選択し、上記一致検出部の記憶部にロードする、
請求項２に記載の符号語抽出装置。
【請求項４】
上記符号語ロード部は、対応付けられた情報語の数が等しい複数の符号語の中から、データ長が短い符号語をデータ長が長い符号語より優先して選択し、上記一致検出部の記憶部にロードする、
請求項２に記載の符号語抽出装置。
【請求項５】
上記符号語ロード部は、データ長が短い符号語をデータ長が長い符号語より優先する第２の順序に従って、上記所定の複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードする、
請求項１に記載の符号語抽出装置。
【請求項６】
上記符号語ロード部は、データ長が等しい複数の符号語の中から、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先して選択し、上記一致検出部の記憶部にロードする、
請求項５に記載の符号語抽出装置。
【請求項７】
上記複数の一致検出部は、
第１の一致検出部と、
複数の第２の一致検出部と、
を含み、
上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第１の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第１の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、
請求項２に記載の符号語抽出装置。
【請求項８】
上記複数の一致検出部は、
第１の一致検出部と、
複数の第２の一致検出部と、
を含み、
上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第２の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第２の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、
請求項５に記載の符号語抽出装置。
【請求項９】
上記複数の一致検出部において一致が検出された一連の符号語に基づいて、上記一致検出部に上記符号語をロードする順序を決定する順序決定部を有し、
上記符号語ロード部は、上記順序決定部において決定された順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードする、
請求項１に記載の符号語抽出装置。
【請求項１０】
上記順序決定部は、上記複数の一致検出部において一致が検出された一連の符号語に重複して含まれる同一符号語の数を計数し、当該計数結果に応じて上記順序を決定する、
請求項９に記載の符号語抽出装置。
【請求項１１】
可変長符号化されたデータストリームを復号化する復号化装置であって、
上記データストリームから符号語を抽出する符号語抽出部と、
上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された情報を再生する情報再生部とを有し、
上記符号抽出部は、
上記データストリームの先頭から第１のデータ長のデータブロックを抽出し、入力される第１の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、
少なくとも１つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第１の信号を出力する複数の一致検出部と、
上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部から順番に１つの一致検出部を選択するとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする符号語ロード部とを含む、
復号化装置。
【請求項１２】
上記符号語ロード部は、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する第１の順序に従って、上記複数の符号語から順番に少なくとも１つの選択し、上記一致検出部の記憶部にロードする、
請求項１１に記載の復号化装置。
【請求項１３】
上記符号語ロード部は、データ長が短い符号語をデータ長が長い符号語より優先する第２の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードする、
請求項１１に記載の復号化装置。
【請求項１４】
上記複数の一致検出部は、
第１の一致検出部と、
複数の第２の一致検出部と、
を含み、
上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第１の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第１の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、
請求項１２に記載の復号化装置。
【請求項１５】
上記複数の一致検出部は、
第１の一致検出部と、
複数の第２の一致検出部と、
を含み、
上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第２の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第２の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、
請求項１３に記載の復号化装置。
【請求項１６】
可変長符号化された画像のデータストリームを復号化する復号化部を有し、当該復号化部において復号化される画像の情報に基づいて画像を再生する画像再生装置であって、
上記復号化部は、
上記データストリームから符号語を抽出する符号語抽出部と、
上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された画像の情報を再生する情報再生部とを有し、
上記符号抽出部は、
上記データストリームの先頭から第１のデータ長のデータブロックを抽出し、入力される第１の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、
少なくとも１つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第１の信号を出力する複数の一致検出部と、
上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部から順番に１つの一致検出部を選択するとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする符号語ロード部とを含む、
画像再生装置。
【請求項１７】
上記符号語ロード部は、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する第１の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードする、
請求項１６に記載の画像再生装置。
【請求項１８】
上記符号語ロード部は、データ長が短い符号語をデータ長が長い符号語より優先する第２の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードする、
請求項１６に記載の画像再生装置。
【請求項１９】
上記複数の一致検出部は、
第１の一致検出部と、
複数の第２の一致検出部と、
を含み、
上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第１の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第１の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、
請求項１７に記載の画像再生装置。
【請求項２０】
上記複数の一致検出部は、
第１の一致検出部と、
複数の第２の一致検出部と、
を含み、
上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第２の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第２の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、
請求項１８に記載の画像再生装置。
【請求項２１】
可変長符号化されたデータストリームから符号語を抽出する符号語抽出方法であって、
上記データストリームの先頭から第１のデータ長のデータブロックを抽出する第１の工程と、
上記第１の工程において新たなデータブロックが抽出される場合、複数の記憶部から順番に１つの記憶部を選択するとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語を選択し、当該選択した記憶部に当該選択した符号語をロードする第２の工程と、
上記第１の工程において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと、上記第２の工程において上記複数の記憶部にロードされる符号語とをそれぞれ比較し、当該比較において一致する符号語を検出する第３の工程と、
を有し、
上記第３の工程において一致する符号語が検出された場合、当該検出された符号語のデータ長に応じて、上記第１の工程における上記データブロックの抽出位置を上記データストリームの末尾側にシフトさせて、上記第１の工程、上記第２の工程および上記第３の工程を繰り返す、
符号語抽出方法。
【請求項２２】
上記第２の工程では、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する第１の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記記憶部にロードする、
請求項２１に記載の符号語抽出方法。
【請求項２３】
上記第２の工程では、データ長が短い符号語をデータ長が長い符号語より優先する第２の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記記憶部にロードする、
請求項２１に記載の符号語抽出方法。
【請求項２４】
上記複数の記憶部は、第１の記憶部と、複数の第２の記憶部とを含んでおり、
上記データストリームからの符号語の抽出を開始する際に、上記第１の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の記憶部にロードする第４の工程を更に有し、
上記第２の工程では、上記第１の工程において新たなデータブロックが抽出された場合、上記複数の第２の記憶部から順番に１つの記憶部を選択するとともに、上記所定の複数の符号語から上記第１の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した第２の記憶部に当該選択した符号語をロードする、
請求項２２に記載の符号語抽出方法。
【請求項２５】
上記複数の記憶部は、第１の記憶部と、複数の第２の記憶部とを含んでおり、
上記データストリームからの符号語の抽出を開始する際に、上記第２の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の記憶部にロードする第４の工程を更に有し、
上記第２の工程では、上記第１の工程において新たなデータブロックが抽出された場合、上記複数の第２の記憶部から順番に１つの記憶部を選択するとともに、上記所定の複数の符号語から上記第２の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した第２の記憶部に当該選択した符号語をロードする、
請求項２３に記載の符号語抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は可変長符号化データストリームから符号語を抽出する符号語抽出装置とその方法、可変長符号化データストリームを復号化する復号化装置、ならびに、可変長符号化された画像のデータストリームを復号化して再生する画像再生装置に関するものである。
【背景技術】
【０００２】
従来の可変長復号化方式は大きく二つに分類される。第１の方式は、可変長符号化データを１ビットずつシリアルに入力し、２進ツリーによる場合分けを行いながら復号化を行う方式である。第２の方式は、符号語のテーブルを予め用意し、入力される可変長符号化データと一致する符号語をテーブルから読み出す方式である。
【０００３】
図２１は、従来の第１の方式による可変長復号化処理を説明するための図である。
図２１に示すように、可変長符号化データストリームを先頭ビットから１ビットずつ順に調べていくことにより、これに含まれる符号語を抽出することが可能である。図２１に示す２進ツリーでは、‘０’，‘１’，‘１’というビット列が１つの符号語‘０１１’を構成しており、これが‘４’というデータに復号される。
【０００４】
図２２は、従来の第２の方式による可変長復号化処理を説明するための図である（例えば特許文献１の図３を参照）。
バレルシフタは、可変長符号化データストリームの先頭ビットから所定ビット長分のデータをテーブルマッチング器に入力する。テーブルマッチング器は、可変長符号の符号語とその符号長とを対応付けたテーブルを有しており、バレルシフタからの入力データとテーブル中の各符号語とを比較する。比較の結果、入力データと一致する符号語がテーブルから見つかった場合、テーブルマッチング器は、その符号長の情報をバレルシフタにフィードバックする。バレルシフタは、フィードバックされた符号長の情報に基づいて、入力される可変長符号化データストリームをビットシフトさせ、次の符号語の先頭ビットから所定ビット長分のデータをテーブルマッチング器に入力する。以上の動作を繰り返すことにより、可変長符号化データストリーム中から１つずつ符号語を抽出することができる。
【特許文献１】特開平７−２４９９９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した第１の方式では、可変長符号化データストリームを１ビットずつ処理していくため、１クロックサイクルあたり１ビットの処理性能しか実現できない。従って、高レートの可変長符号化データストリームに本方式を適用することは困難である。
【０００６】
上述した第２の方式の場合、１クロックサイクルあたり１つの符号語を抽出することが可能である。しかしながら、半導体メモリにテーブルを格納すると、メモリにアクセスするための時間を要するため、１クロックサイクルでマッチングを完了することができない。これを実現するには、例えば図２３に示すように、フリップフロップなどにテーブルを格納して、その内容を常に参照できるようにする必要がある。そのため、テーブルのサイズが大きくなるほど回路規模が大きくなるという問題が生じる。
【０００７】
このような従来の方式の他、特定の可変長符号の性質を利用して復号化処理を行うものがある。
ＭＰＥＧ２（motion picture experts group 2）で用いられる可変長符号は、符号化データストリームの先頭のビットパターンを調べることによって、符号長を求めることができる。例えば図２４に示すように、符号語の先頭に‘００００００００００１’というビットパターンがある場合、その符号長は１５ビットになる。
このような符号の性質を利用すると、簡易な回路構成で復号化処理を行うことが可能である。しかしながら、この方式は特定の可変長符号のみに適用可能であり、他の符号化方式には全く応用できないため、汎用性に欠けるという問題がある。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、回路規模の増大を抑えつつ高速に可変長符号化データストリームから符号語を抽出することができる符号語抽出装置とその方法を提供することにある。また、本発明の他の目的は、回路規模の増大を抑えつつ高速に可変長符号化データストリームを復号化できる復号化装置と、これを用いた画像再生装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の観点は、可変長符号化されたデータストリームから符号語を抽出する符号語抽出装置であって、この符号語抽出装置は、上記データストリームの先頭から第１のデータ長のデータブロックを抽出し、入力される第１の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、少なくとも１つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第１の信号を出力する複数の一致検出部と、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部から順番に１つの一致検出部を選択するとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする符号語ロード部とを有する。
【００１０】
本発明の第２の観点は、可変長符号化されたデータストリームを復号化する復号化装置であって、この復号化装置は、上記データストリームから符号語を抽出する上記第１の観点の符号語抽出部と、上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された情報を再生する情報再生部とを有する。
【００１１】
本発明の第３の観点は、可変長符号化された画像のデータストリームを復号化する復号化部を有し、当該復号化部において復号化される画像の情報に基づいて画像を再生する画像再生装置であって、この画像再生装置における上記復号化部は、上記データストリームから符号語を抽出する上記第１の観点の符号語抽出部と、上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された画像の情報を再生する情報再生部とを有する。
【００１２】
上記第１、第２および第３の観点によると、上記データストリームシフト部において、上記データストリームの先頭から、上記第１のデータ長のデータブロックが抽出される。新たなデータブロックが上記データストリームシフト部において抽出されると、上記符号語ロード部では、上記複数の一致検出部から順番に１つの一致検出部が選択されるとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語が選択される。そして、当該選択された一致検出部の記憶部に当該選択された符号語がロードされる。
上記符号語をロードされた上記一致検出部では、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とが比較される。そして、この比較において一致する符号語が検出された場合、検出された符号語のデータ長に応じて上記データストリームシフト部の抽出位置をシフトさせる第１の信号が上記一致検出部から出力される。
上記データストリームシフト部では、この第１の信号に応じて、上記データブロックの抽出位置が上記データストリームの末尾側にシフトされ、このシフトされた位置において新たなデータブロックが抽出される。
【００１３】
上記符号語ロード部は、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する第１の順序に従って、上記所定の複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードしても良い。
例えば、上記符号語には、ゼロ個もしくは１つ以上の基準データと当該基準データでない１つの非基準データとが情報語としてそれぞれ対応付けられていても良く、この場合、上記符号語ロード部は、対応付けられた上記基準データの数が少ない符号語を当該対応付けられた上記基準データの数が多い符号語より優先して上記所定の複数の符号語から選択し、上記一致検出部の記憶部にロードしても良い。
上記符号語ロード部は、対応付けられた情報語の数が等しい複数の符号語の中から、データ長が短い符号語をデータ長が長い符号語より優先して選択し、上記一致検出部の記憶部にロードしても良い。
また、上記複数の一致検出部は、第１の一致検出部と、複数の第２の一致検出部とを含んでも良い。この場合、上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第１の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードしても良い。そして、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記符号語ロード部は、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第１の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードしても良い。
【００１４】
他方、上記符号語ロード部は、データ長が短い符号語をデータ長が長い符号語より優先する第２の順序に従って、上記所定の複数の符号語から順番に少なくとも１つの符号語を選択し、上記一致検出部の記憶部にロードしても良い。
上記符号語ロード部は、データ長が等しい複数の符号語の中から、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先して選択し、上記一致検出部の記憶部にロードしても良い。
また、上記複数の一致検出部は、第１の一致検出部と、複数の第２の一致検出部とを含んでも良い。この場合、上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記第２の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の一致検出部の記憶部にロードしても良い。そして、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記符号語ロード部は、上記複数の第２の一致検出部から順番に１つの一致検出部を選択するとともに、上記所定の複数の符号語から上記第２の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードしても良い。
【００１５】
本発明の第４の観点は、可変長符号化されたデータストリームから符号語を抽出する符号語抽出方法であって、この符号語抽出方法は、上記データストリームの先頭から第１のデータ長のデータブロックを抽出する第１の工程と、上記第１の工程において新たなデータブロックが抽出される場合、複数の記憶部から順番に１つの記憶部を選択するとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語を選択し、当該選択した記憶部に当該選択した符号語をロードする第２の工程と、上記第１の工程において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと、上記第２の工程において上記複数の記憶部にロードされる符号語とをそれぞれ比較し、当該比較において一致する符号語を検出する第３の工程とを有し、上記第３の工程において一致する符号語が検出された場合、当該検出された符号語のデータ長に応じて、上記第１の工程における上記データブロックの抽出位置を上記データストリームの末尾側にシフトさせて、上記第１の工程、上記第２の工程および上記第３の工程を繰り返す。
【００１６】
上記第４の観点によると、上記第１の工程において、上記データストリームの先頭から第１のデータ長のデータブロックが抽出される。上記第２の工程では、上記第１の工程において新たなデータブロックが抽出される場合に、複数の記憶部から順番に１つの記憶部が選択されるとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも１つの符号語が選択される。そして、当該選択された記憶部に当該選択された符号語がロードされる。上記第３の工程では、上記第１の工程において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと、上記第２の工程において上記複数の記憶部にロードされる符号語とがそれぞれ比較される。そして、当該比較において一致する符号語が検出される。上記第３の工程において一致する符号語が検出された場合、当該検出された符号語のデータ長に応じて、上記第１の工程における上記データブロックの抽出位置が上記データストリームの末尾側にシフトされ、この新たな抽出位置において上記第１の工程、上記第２の工程および上記第３の工程が繰り返される。
【００１７】
上記第２の工程では、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する第１の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記記憶部にロードしても良い。
この場合、上記複数の記憶部には、第１の記憶部と、複数の第２の記憶部とが含まれていても良く、上記第４の観点は、上記データストリームからの符号語の抽出を開始する際に、上記第１の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の記憶部にロードする第４の工程を更に有しても良い。そして、上記第２の工程では、上記第１の工程において新たなデータブロックが抽出された場合、上記複数の第２の記憶部から順番に１つの記憶部を選択するとともに、上記所定の複数の符号語から上記第１の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した第２の記憶部に当該選択した符号語をロードしても良い。
【００１８】
他方、上記第２の工程では、データ長が短い符号語をデータ長が長い符号語より優先する第２の順序に従って、上記複数の符号語から順番に少なくとも１つの符号語を選択し、上記記憶部にロードしても良い。
この場合、上記複数の記憶部には、第１の記憶部と、複数の第２の記憶部とが含まれていても良く、上記第４の観点は、上記データストリームからの符号語の抽出を開始する際に、上記第２の順序において最も優先順位が高い少なくとも１つの符号語を上記第１の記憶部にロードする第４の工程を更に有しても良い。そして、上記第２の工程では、上記第１の工程において新たなデータブロックが抽出された場合、上記複数の第２の記憶部から順番に１つの記憶部を選択するとともに、上記所定の複数の符号語から上記第２の順序に従って順番に少なくとも１つの符号語を選択し、当該選択した第２の記憶部に当該選択した符号語をロードしても良い。
【発明の効果】
【００１９】
本発明によれば、第１に、フリップフロップ等の記憶装置に全ての符号語を格納することなく高速に可変長符号化データストリームから符号語を抽出できる。第２に、回路規模の増大を抑えつつ高速に可変長符号化データストリームを復号化できる。第３に、回路規模の増大を抑えながら、可変長符号化された高レートのデータストリームを復号化して、画像を再生することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態について、図面を参照して説明する。
【００２１】
図１は、本発明の実施形態に係る画像再生装置の構成の一例を示す図である。
図１に示す画像再生装置は、データストリームバッファ１と、可変長復号化部２と、逆量子化部３と、逆ＤＣＴ部４と、演算部５と、動き補償予測部６と、フレームメモリ７と、ディスプレイ部８とを有する。
なお、可変長復号化部２は、本発明の復号化部の一実施形態である。
【００２２】
データストリームバッファ１は、例えばＢＳやＣＳなどのデジタル放送のチューナや、ＤＶＤなどの記録媒体から可変長符号化された画像のデータストリームを入力し、一時的に記憶する。
【００２３】
可変長復号化部２は、データストリームバッファ１に格納されるデータストリームを先頭から順に入力し、これに可変長復号化処理を施す。すなわち、可変長符号化データストリームの先頭から順に符号語を抽出し、抽出した符号語を量子化ＤＣＴ係数のランレングスとレベルに変換する。そして、このランレングスとレベルから、マクロブロック中の量子化ＤＣＴ係数を求める。
また、可変長復号化部２は、量子化ＤＣＴ係数の他にも、例えば量子化テーブルや動きベクトルなどをデータストリームから復号化する。
【００２４】
逆量子化部３は、可変長復号化部２において復号化される量子化テーブルに基づいて、量子化ＤＣＴ係数を逆量子化し、ＤＣＴ係数に変換する。
【００２５】
逆ＤＣＴ部４は、逆量子化部３から供給されるＤＣＴ係数に対してマクロブロックごとに逆ＤＣＴ処理を施し、予測残差画像に変換する。
【００２６】
動き補償予測部６は、可変長復号化部２において復号化される動きベクトルに応じて、フレームメモリ７から予測画像を読み出し、演算部５に供給する。
【００２７】
演算部５は、逆ＤＣＴ部４から供給される予測残差画像と動き補償予測部６から供給される予測画像とを加算して、元の画像を再生する。
【００２８】
フレームメモリ７は、演算部５において再生された画像を格納する。フレームメモリ７に格納される画像は、その後に再生される画像の参照画像として用いられる。
【００２９】
ディスプレイ部８は、フレームメモリ７に格納される画像に基づいて動画像を再生し表示する。
【００３０】
図１に示す画像再生装置の動作を説明する。
デジタル放送のチューナや光ディスク等の記録媒体から入力される可変長符号化データストリームは、データストリームバッファ１に一時格納される。可変長復号化部２は、データストリームバッファ１に格納されるデータストリームを随時読み出して復号化する。
【００３１】
可変長復号化部２において復号化された量子化ＤＣＴ係数および量子化テーブルは、マクロブロックごとに逆量子化部３に供給される。逆量子化部３は、量子化テーブルに応じて、マクロブロック内の各量子化ＤＣＴ係数を逆量子化し、ＤＣＴ係数に変換する。逆ＤＣＴ部４は、このＤＣＴ係数に対してマクロブロックごとに逆ＤＣＴ処理を施し、予測残差画像に変換して、演算部５に供給する。
【００３２】
一方、可変長復号化部２において復号化された動きベクトルは、動き補償予測部６に供給される。動き補償予測部６は、可変長復号化部２から供給される動きベクトルに応じた予測画像をフレームメモリから読み出して、演算部５に供給する。
【００３３】
演算部５は、逆ＤＣＴ部４より供給される予測残差画像と動き補償予測部６より供給される予測画像とを加算して元の画像を再生し、フレームメモリ７に格納する。フレームメモリ７に格納される画像は、その後に再生される画像の参照画像として用いられるとともに、適宜読み出されてディスプレイ部８に供給され、動画像として表示される。
【００３４】
次に、可変長復号化部２の詳細な構成について説明する。
【００３５】
図２は、可変長復号化部２の構成の一例を示す図である。
図２に示す可変長復号化部２は、符号語抽出部２１と、ラン／レベル変換部２２とを有する。
ラン／レベル変換部２２は、本発明の情報再生部の一実施形態である。
【００３６】
符号語抽出部２１は、データストリームバッファ１に格納される可変長符号化データストリームを先頭から順に入力し、その中に含まれる符号語を抽出する。
【００３７】
ラン／レベル変換部２２は、符号語抽出部２１で抽出される符号語をそれぞれランレングスとレベルに変換する。例えば、ランレングスおよびレベルと符号語とを対応付けたテーブルを参照することにより、符号語抽出部２１で抽出される符号語をランレングスとレベルに変換する。そして、得られたランレングスとレベルに基づいて、マクロブロックごとに量子化ＤＣＴ係数を求める。
【００３８】
図３は、符号語抽出部２１の構成の一例を示す図である。
図３に示す符号語抽出部２１は、データストリームシフト部２０１と、符号語ロード部２０２と、一致検出部Ｕ０，Ｕ１，Ｕ２と、メモリ２０４と、論理和回路ＯＲ１，ＯＲ２と、フリップフロップＦＦ１，ＦＦ２とを有する。
データストリームシフト部２０１は、本発明のデータストリームシフト部の一実施形態である。
符号語ロード部２０２は、本発明の符号語ロード部の一実施形態である。
一致検出部Ｕ０は、本発明の第１の一致検出部の一実施形態である。
一致検出部Ｕ１，Ｕ２は、本発明の第２の一致検出部の一実施形態である。
【００３９】
［データストリームシフト部２０１］
データストリームシフト部２０１は、データストリームバッファ１に格納されるデータストリームの先頭から１６ビットのデータＳ＿ＢＳを抽出し、一致検出部Ｕ０，Ｕ１，Ｕ２に入力する。また、一致検出部Ｕ０，Ｕ１，Ｕ２において検出される符号語の符号長を示す信号Ｓ＿ＢＬに応じて、データブロックの抽出位置をデータストリームの末尾側にシフトさせる。
【００４０】
データストリームシフト部２０１において処理するデータストリームは、例えば図４に示すように、様々な長さの符号語（Ｄ１，Ｄ２，…）を順番に連結して形成されるデータの結合体である。データストリームシフト部２０１は、このデータの結合体の先頭部分から順番に１６ビットのデータＳ＿ＢＳを抽出する。そして、後述する一致検出部Ｕ０〜Ｕ２において符号語が検出されるたびに、データＳ＿ＢＳの抽出位置をデータストリームの末尾方向へシフトさせる。
例えば、データストリームシフト部２０１は、一致検出部Ｕ０によって符号語Ｄ３が検出された場合、この検出された符号語Ｄ３のデータ長分だけ、データＳ＿ＢＳの抽出位置をデータストリームの末尾方向にシフトする。これにより、データストリームシフト部２０１は、次に一致検出部Ｕ０〜Ｕ２へ供給するデータＳ＿ＢＳとして、先頭部分に符号語Ｄ４を含んだ１６ビットのデータをデータストリームから抽出する。
【００４１】
なお、符号語の最上位ビットがデータストリームの先頭側に位置するか末尾側に位置するかは任意である。図５（Ａ）はデータストリームの先頭側に符号語の最上位ビット（ＭＳＢ）がある場合を示し、図５（Ｂ）はデータストリームの末尾側に符号語の最上位ビットがある場合を示す。
以降の説明では、一例として、データストリームの先頭側に符号語の最上位ビットがあるものとする（図５（Ａ））。
【００４２】
図３の例において、データストリームシフト部２０１は、制御部２０１１と、ビットシフト部２０１２と、フリップフロップＦＦ４およびＦＦ５とを有する。
【００４３】
フリップフロップＦＦ４およびＦＦ５は、それぞれ１６ビットのデータを格納する。フリップフロップＦＦ４の出力はフリップフロップＦＦ５の入力に接続されており、制御部２０１１の制御に従って、フリップフロップＦＦ４のデータをフリップフロップＦＦ５にシフトする。
【００４４】
制御部２０１１は、一致検出部Ｕ０，Ｕ１，Ｕ２において検出される一連の符号語の符号長を、信号Ｓ＿ＢＬに基づいて積算する。そして、積算した符号長が１６ビットに達した場合、フリップフロップＦＦ４のデータをフリップフロップＦＦ５にシフトさせるとともに、次に可変長復号化する１６ビットのデータをデータストリームバッファ１から読み出して、フリップフロップＦＦ４にロードする。また、符号長の積算値から１６ビットを減算する。
【００４５】
ビットシフト部２０１２は、フリップフロップＦＦ４およびＦＦ５に保持される３２ビットのデータの先頭から、制御部２０１１において算出される符号長の積算値に相当するビット長だけ末尾側にシフトした位置より１６ビットのデータＳ＿ＢＳを抽出し、一致検出部Ｕ０，Ｕ１，Ｕ２に供給する。
【００４６】
図３に示すデータストリームシフト部２０１によると、フリップフロップＦＦ４およびＦＦ５は、次に抽出すべき符号語を含む３２ビットのデータを格納する。フリップフロップＦＦ５は、この３２ビットのデータのうち先頭側の１６ビットを格納し、フリップフロップＦＦ４は、末尾側の１６ビットを格納する。
一致検出部Ｕ０，Ｕ１，Ｕ２において符号語が検出されると、その符号長を示す信号Ｓ＿ＢＬが制御部２０１１に入力される。制御部２０１１は、この信号Ｓ＿ＢＬに基づいて、一致検出部Ｕ０，Ｕ１，Ｕ２が検出した一連の符号語の符号長を積算する。
制御部２０１１で積算された符号長は、ビットシフト部２０１２に入力される。ビットシフト部２０１２は、フリップフロップＦＦ４およびＦＦ５に格納される３２ビットのデータの先頭から、制御部２０１１で算出された積算値に相当するビット長だけ末尾側にシフトした位置より１６ビットのデータＳ＿ＢＳを抽出する。ビットシフト部２０１２で抽出された１６ビットのデータＳ＿ＢＳは、次に抽出すべき符号語を含むデータストリームの先頭部分のデータとして、一致検出部Ｕ０，Ｕ１，Ｕ２に供給される。
符号長の積算値が１６ビットに達すると、制御部２０１１は、フリップフロップＦＦ４に格納される後半の１６ビットのデータを、フリップフロップＦＦ５にシフトさせる。そして、この１６ビットデータの次に処理すべき１６ビットのデータを、データストリームバッファ１からフリップフロップＦＦ５にロードする。また、符号長の現在の積算値から１６ビットを減算する。これにより、フリップフロップＦＦ４，ＦＦ５に新たに設定された３２ビットのデータの先頭から、新たな積算値によって示されるビット長だけ末尾側にシフトした位置は、次に抽出すべき符号語の先頭の位置と等しくなる。
【００４７】
［一致検出部Ｕ０，Ｕ１，Ｕ２］
一致検出部Ｕｎ（ｎは、整数０、１、２のうちの任意の１つを示す）は、符号語ロード部２０２から供給される１６の符号語を記憶するための記憶部を有する。一致検出部Ｕｎは、データストリームシフト部２０１において抽出される１６ビットのデータＳ＿ＢＳ中の少なくとも先頭のデータを含んだ一連のデータと、この記憶部に記憶される１６の符号語とを比較する。比較結果、一致する符号語を検出した場合、一致検出部Ｕｎは、検出した符号語Ｓ＿ＣＷｏとその符号長を示す信号Ｓ＿ＢＬｏ（以降、符号長Ｓ＿ＢＬｏと表記する）を出力する。
【００４８】
図６は、一致検出部Ｕｎの構成の一例を示す図である。
図６に示す一致検出部Ｕｎは、フリップフロップＦＦ６−０〜ＦＦ６−１５と、一致検出回路Ｅ０〜Ｅ１５と、論理和回路ＯＲ３およびＯＲ４とを有する。
フリップフロップＦＦ６−０〜ＦＦ６−１５は、本発明の記憶部の一実施形態である。
【００４９】
フリップフロップＦＦ６−ｍ（ｍは、整数０〜１５のうちの任意の１つを示す）は、符号語ロード部２０２から供給される符号語データを図示しないクロック信号ＣＬＫに同期してそれぞれラッチする。
【００５０】
図７は、符号語ロード部２０２からフリップフロップＦＦ６−ｍにロードされる符号語データの一例を示す図である。
図７の例に示す符号語データは、符号語の本体を示すデータとその符号長を示すデータを含んでいる。すなわち、符号語データのビット長は全体で２０ビットであり、そのうち下位の１６ビットのデータが符号語を表し、上位６ビットのデータがその符号語の符号長を表す。符号語は、下位１６ビットの中の最下位側に詰めて配置されており、この１６ビット中の符号語でないビットは‘０’で埋められている。
【００５１】
一致検出回路Ｅｍは、フリップフロップＦＦ６−ｍに格納される符号語データＣＷｉ中の符号語と、データストリームシフト部２０１から供給される１６ビットのデータＳ＿ＢＳの先頭部分とを比較する。この比較の結果、データＳ＿ＢＳの先頭部分に符号語と一致するデータが見つかった場合、一致検出回路Ｅｍは、この符号語ＣＷｏを出力するとともに、符号語ＣＷｏの符号長を示す信号ＢＬｏ（以降、符号長ＢＬｏと表記する）を出力する。これに対し、符号語と一致するデータが見つからない場合、一致検出回路Ｅｍは、符号語ＣＷｏおよび符号長ＢＬｏの全ビット値を‘０’に設定して出力する。
【００５２】
図８は、一致検出回路Ｅｍの構成の一例を示す図である。
図８に示す一致検出回路Ｅｍは、ビットシフト部２０３１と、シフト量演算部２０３２と、比較部２０３３と、論理積回路ＡＮＤ１，ＡＮＤ２とを有する。
【００５３】
シフト量演算部２０３２は、フリップフロップＦＦ６−ｍに格納される符号語データＣＷｉのうち、符号長を表す上位４ビットのデータに基づいて、ビットシフト部２０３１のシフト量（１６ビット−符号長）を演算する。
【００５４】
ビットシフト部２０３１は、シフト量演算部２０３２において演算されたシフト量だけ、データＳ＿ＢＳをデータストリームの末尾側（１６ビットの最下位側）にビットシフトさせる。また、このビットシフトによって生じる上位側の空きビットには‘０’を埋める。この結果、符号語データＣＷｉにおいて指示される符号長のデータに相当するデータＳ＿ＢＳの先頭部分が、１６ビットの最下位側に詰めて配置され、残りの上位ビットは‘０’で埋められる。
【００５５】
図９は、ビットシフト部２０３１の動作を説明するための図である。例えば符号語ＣＷｉの符号長がｋビットの場合、ビットシフト部２０３１は、データＳ＿ＢＳをデータストリームの末尾側に‘１６−ｋ’ビットだけビットシフトさせるとともに、上位側の空きビット（ｋビット）に‘０’を埋める。
【００５６】
図１０は、ビットシフト部２０３１のビットシフト操作の具体例を説明するための図である。
図１０の例において、１６ビットのデータＳ＿ＢＳは
‘０００１１０１１０１０１１１００’
である。また、符号語データＣＷｉの上位４ビットは
‘０１１０’
であり、１０進数の‘６’に等しい。この場合、ビットシフト部２０３１では、データＳ＿ＢＳを１０ビット（＝１６ビット−４ビット）だけ下位側にビットシフトする操作が行われる。この操作により得られるデータは、図１０に示すように、元のデータＳ＿ＢＳの上位６ビット
‘０００１１０’
を最下位側に詰めて配置したものとなる。
【００５７】
比較部２０３３は、ビットシフト部２０３１においてビットシフトされた１６ビットのデータと、符号語データＣＷｉにおいて符号語を示す下位１６ビットのデータとを比較する。比較の結果、両者が一致する場合に‘１’を出力し、両者が一致しない場合に‘０’を出力する。
【００５８】
符号語データＣＷｉの下位１６ビットのデータ内には、符号語データＣＷｉの上位４ビットのデータで示される符号長を有する符号語が、最下位側に詰めて配置されている。また、ビットシフト部２０３１においてビットシフトされた１６ビットのデータ内には、この符号語と等しいビット長を有するデータＳ＿ＢＳの先頭部分のデータが、最下位側に詰めて配置されている。そして、この２つの１６ビットデータにおける上位側の残りのビットは、何れも‘０’のビットデータで埋められている。
従って、データＳ＿ＢＳの先頭部分に、符号語データＣＷｉの符号語と等しいデータが存在する場合、ビットシフト部２０３１においてビットシフトされた１６ビットのデータは、符号語データＣＷｉの下位１６ビットのデータと一致する。従って、この場合、比較部２０３３は‘１’を出力する。他方、データＳ＿ＢＳの先頭部分に、符号語データＣＷｉの符号語と等しいデータが存在しない場合、比較部２０３３は‘０’を出力する。
【００５９】
論理積回路ＡＮＤ１は、比較部２０３３の出力信号と符号語データＣＷｉの上位４ビットとの論理積をそれぞれ演算し、演算結果を４ビットの符号長ＢＬｏとして出力する。比較部２０３３から‘１’が出力される場合、符号長ＢＬｏは、符号長を表す符号語データＣＷｉの上位４ビットのデータと等しくなる。他方、比較部２０３３から‘０’が出力される場合、符号長ＢＬｏの全ビットは‘０’になる。
【００６０】
論理積回路ＡＮＤ２は、比較部２０３３の出力信号と符号語データの下位１６ビットの論理積をそれぞれ演算し、演算結果を符号語ＣＷｏとして出力する。比較部２０３３から‘１’が出力される場合、符号語ＣＷｏは、符号語を表す符号語データＣＷｉの下位１６ビットのデータと等しくなる。他方、比較部２０３３から‘０’が出力される場合、符号語ＣＷｏの全ビットは‘０’になる。
以上が、一致検出回路Ｅｍの説明である。
【００６１】
図６の説明に戻る。
論理和回路ＯＲ３は、一致検出回路Ｅ０〜Ｅ１５から出力される符号長ＢＬｏ同士の論理和を演算し、演算結果を４ビットの符号長Ｓ＿ＢＬｏとして出力する。１６の一致検出回路Ｅ０〜Ｅ１５の１つが有効な符号長ＢＬｏを出力し、残りの一致検出回路が全ビット‘０’の符号長ＢＬｏを出力する場合、符号長Ｓ＿ＢＬｏは、この有効な符号長ＢＬｏと等しくなる。他方、１６の一致検出回路Ｅ０〜Ｅ１５が何れも全ビット‘０’の符号長ＢＬｏを出力する場合、符号長Ｓ＿ＢＬｏも全ビット‘０’になる。
【００６２】
論理和回路ＯＲ４は、一致検出回路Ｅ０〜Ｅ１５から出力される符号語ＣＷｏ同士の論理和を演算し、演算結果を１６ビットの符号語Ｓ＿ＣＷｏとして出力する。１６の一致検出回路Ｅ０〜Ｅ１５の１つが有効な符号語ＣＷｏを出力し、残り一致検出回路が全ビット‘０’の符号語ＣＷｏを出力する場合、符号語Ｓ＿ＣＷｏは、この有効な符号語ＣＷｏと等しくなる。他方、１６の一致検出回路Ｅ０〜Ｅ１５が何れも全ビット‘０’の符号語ＣＷｏを出力する場合、符号語Ｓ＿ＣＷｏも全ビット‘０’になる。
【００６３】
図１１は、一致検出部Ｕｎにおける一致検出動作の一例を示す図である。
図１１に示す例において、データＳ＿ＢＳの先頭には‘１００００１０１０１…’というビット列が含まれている。一致検出回路Ｅ０〜Ｅ１５では、このデータＳ＿ＢＳの先頭部分と２ビットの符号語‘０１’、３ビットの符号語‘１０１’、４ビットの符号語‘１１０１’、…、４ビットの符号語‘００００’、５ビットの符号語‘１００００’、７ビットの符号語‘０００００００’とがそれぞれ比較される。比較の結果、５ビットの符号語‘１００００’のみがデータＳ＿ＢＳの先頭と一致するため、一致検出部Ｕｎは符号語Ｓ＿ＣＷｏとして‘０００００００００００１００００’を出力し、符号長Ｓ＿ＢＬｏとして‘０１０１’（十進数で‘５’）を出力する。
【００６４】
なお、一致検出部Ｕ０，Ｕ１，Ｕ２は、後述する符号語ロード部２０２によって何れか１つが選択的に活性化される。活性化された一致検出部は、上述した一致検出動作を実行し、活性化されていない一致検出部は、符号長Ｓ＿ＢＬｏおよび符号語ＣＷｏとして全ビット‘０’の無効な信号を出力する。そのため、後述するフリップフロップＦＦ１およびＦＦ２には、活性化された一致検出部より出力される符号長Ｓ＿ＢＬｏおよび符号語ＣＷｏがラッチされる。
【００６５】
［論理和回路ＯＲ１、フリップフロップＦＦ１］
論理和回路ＯＲ１は、上述した一致検出部Ｕ０，Ｕ１，Ｕ２から出力される符号長Ｓ＿ＢＬｏ同士の論理和を演算し、演算結果をフリップフロップＦＦ１に入力する。
フリップフロップＦＦ１は、論理和回路ＯＲ１から出力される４ビットの演算結果を図示しないクロック信号ＣＬＫに同期してラッチし、符号長の信号Ｓ＿ＢＬ（以降、符号長Ｓ＿ＢＬと表記する）として出力する。
３つの一致検出部Ｕ０，Ｕ１，Ｕ２の１つが有効な符号長Ｓ＿ＢＬｏを出力し、残りの一致検出部が全ビット‘０’の符号長Ｓ＿ＢＬｏを出力する場合、符号長Ｓ＿ＢＬは、この有効な符号長Ｓ＿ＢＬｏと等しくなる。他方、３つの一致検出部Ｕ０，Ｕ１，Ｕ２が何れも全ビット‘０’の符号長Ｓ＿ＢＬｏを出力する場合、符号長Ｓ＿ＢＬも全ビット‘０’になる。
すなわち、一致検出部Ｕ０，Ｕ１，Ｕ２の何れか１つにおいてデータＳ＿ＢＳの先頭部と一致する符号語が検出された場合に、その符号長を示す４ビットの信号Ｓ＿ＢＬがフリップフロップＦＦ１にラッチされる。他方、３つの一致検出部Ｕ０，Ｕ１，Ｕ２の何れにおいてもデータＳ＿ＢＳの先頭部と一致する符号語が検出されない場合には、フリップフロップＦＦ１には全ビット‘０’の無効な信号Ｓ＿ＢＬがラッチされる。
【００６６】
［論理和回路ＯＲ２、フリップフロップＦＦ２］
論理和回路ＯＲ２は、上述した一致検出部Ｕ０，Ｕ１，Ｕ２から出力される符号語Ｓ＿ＣＷｏ同士の論理和を演算し、演算結果をフリップフロップＦＦ２に入力する。
フリップフロップＦＦ２は、論理和回路ＯＲ２から出力される１６ビットの演算結果を図示しないクロック信号ＣＬＫに同期してラッチし、符号語Ｓ＿ＣＷとして出力する。
３つの一致検出部Ｕ０，Ｕ１，Ｕ２の１つが有効な符号語Ｓ＿ＣＷｏを出力し、残りの一致検出部が全ビット‘０’の符号語Ｓ＿ＣＷｏを出力する場合、符号語Ｓ＿ＣＷは、この有効な符号語Ｓ＿ＣＷｏと等しくなる。他方、３つの一致検出部Ｕ０，Ｕ１，Ｕ２が何れも全ビット‘０’の符号語Ｓ＿ＣＷｏを出力する場合、符号語Ｓ＿ＣＷも全ビット‘０’になる。
すなわち、３つの一致検出部Ｕ０，Ｕ１，Ｕ２の何れか１つにおいてデータＳ＿ＢＳの先頭部と一致する符号語が検出された場合、その符号語Ｓ＿ＣＷがフリップフロップＦＦ２にラッチされる。他方、３つの一致検出部Ｕ０，Ｕ１，Ｕ２の何れにおいてもデータＳ＿ＢＳの先頭部と一致する符号語が検出されない場合、全ビット‘０’の無効な符号語Ｓ＿ＣＷがフリップフロップＦＦ２にラッチされる。
【００６７】
［符号語ロード部２０２］
符号語ロード部２０２は、データストリームシフト部２０１において新たな１６ビットのデータＳ＿ＢＳが抽出された場合、３つの一致検出部Ｕ０，Ｕ１，Ｕ２から順番に１つの一致検出部を選択するとともに、データストリームの可変長符号化に用いられる所定の複数の符号語（以降、符号語テーブルと呼ぶ）から順番に１６個の符号語の組（以降、符号語セットと呼ぶ）を選択する。そして、選択した一致検出部の記憶部（フリップフロップＦＦ６−０〜ＦＦ６−１５）に選択した符号語セットをロードする。
【００６８】
また、符号語ロード部２０２は、ランレングスの短い符号語をランレングスの長い符号語より優先して符号語テーブルから選択し、一致検出部Ｕ０，Ｕ１，Ｕ２の記憶部にロードする。
【００６９】
データストリームを構成する各符号語は、それぞれランレングスとレベルに対応付けられている。ランレングスは、マクロブロック中において連続する値ゼロの量子化係数の個数を表し、レベルは、値ゼロの量子化係数に続いて現れる非ゼロの量子化係数の値を表している。つまり、各符号語には、ゼロ個もしくは１つ以上のゼロの量子化係数と、１つの非ゼロの量子化係数とが、情報語として対応付けられている。そのため、ランレングスの値が大きい符号語ほど、対応付けられる情報語（量子化係数）の数が多くなる。
従って、符号語ロード部２０２は、対応付けられた情報語の数が少ない（すなわちランレングスが短い）符号語を、この数が多い（すなわちランレングスが長い）符号語より優先して符号語テーブルから選択し、一致検出部Ｕ０，Ｕ１，Ｕ２の記憶部にロードする。
【００７０】
更に、符号語ロード部２０２は、データストリームからの符号語の抽出を開始する際、まず始めに、ランレングスの最も短い符号語セットを一致検出部Ｕ０の記憶部にロードする。その後、データストリームシフト部２０１において新たな１６ビットのデータＳ＿ＢＳが抽出された場合、符号語ロード部２０２は、２つの一致検出部Ｕ１，Ｕ２から順番に一方を選択するとともに、符号語テーブルの中からランレングスの短い順に符号語セットを順次選択する。そして、選択した一致検出部の記憶部に選択した符号語セットをロードする。
【００７１】
すなわち、符号語ロード部２０２は、データストリームの可変長符号化を開始する際に、ランレングスの最も短い符号語セットを一致検出部Ｕ０の記憶部にロードし、以降は、この符号語セットを一致検出部Ｕ０の記憶部に記憶させたままにする。そして、新しいデータＳ＿ＢＳがデータストリームシフト部２０１において抽出されるたびに、符号語テーブルの中からランレングスの短い順に選択した符号語セットを、２つの一致検出部Ｕ１，Ｕ２の記憶部へ交互にロードする。
【００７２】
なお、符号語ロード部２０２は、等しいランレングスを有する符号語については、符号長の短い符号語を符号長の長い符号語より優先して符号語テーブルから選択し、一致検出部Ｕ０，Ｕ１，Ｕ２の記憶部にロードする。
【００７３】
また、符号語ロード部２０２は、３つの一致検出部Ｕ０，Ｕ１，Ｕ２のうちの１つを選択的に活性化する制御を行う。
例えば、データストリームシフト部２０１において新しいデータＳ＿ＢＳが抽出された場合、次にデータＳ＿ＢＳが抽出されるまでの間、符号語ロード部２０２は、一致検出部Ｕ０，Ｕ１，Ｕ２，Ｕ１，Ｕ２，Ｕ１…の順番でこれらを活性化する。
上述したように、一致検出部Ｕ０の記憶部には、ランレングスの最も短い符号語セットが格納され、一致検出部Ｕ１，Ｕ２の記憶部には、ランレングスの短い順に交互に符号語セットがロードされる。そのため、３つの一致検出部を‘Ｕ０，Ｕ１，Ｕ２，Ｕ１，Ｕ２，Ｕ１…’の順番で活性化させた場合、ランレングスの短い符号語セットから順番にデータＳ＿ＢＳとの比較が行われる。
【００７４】
この符号語ロード部２０２は、例えば図３に示すように、アドレスデコーダ２０２１と、テーブル記憶部２０２２と、選択部２０２３と、制御部２０２４と、フリップフロップＦＦ３とを有する。
【００７５】
アドレスデコーダ２０２１は、フリップフロップＦＦ３にラッチされるデータをデコードし、テーブル記憶部２０２２の記憶領域を指定するアドレスを生成する。
【００７６】
テーブル記憶部２０２２は、並列に符号語データを読み出すことが可能な１６ブロックのメモリを有しており、各メモリは所定数の符号語データを格納する。アドレスデコーダ２０２１からアドレスが入力されると、各メモリは、この入力アドレスに対応した記憶領域から符号語データを出力する。すなわち、テーブル記憶部２０２２は、アドレスデコーダ２０２１において生成されるアドレスに対応した１６個の符号語データの組を、符号語セットとして出力する。
【００７７】
テーブル記憶部２０２２の上述したメモリは、例えば、１６進数のアドレス‘００ｈ’，‘０１ｈ’，…，‘１Ｆｈ’によって指定される３２個の記憶領域を有しており、各記憶領域に符号語データを格納する。データストリームシフト部２０１において新しいデータＳ＿ＢＳが抽出されると、制御部２０２４の制御に従って、例えばアドレス値の小さい記憶領域から順番に符号語データが読み出される。
この場合、３２個の記憶領域には、アドレス‘００ｈ’，‘０１ｈ’，‘０２ｈ’，…の順にランレングスの短い符号語が格納され、アドレス‘００ｈ’の記憶領域に最もランレングスの短い符号語が格納される。また、同一ランレングスの符号語を格納する記憶領域について比較すると、アドレス値の小さい記憶領域にはアドレス値の大きい記憶領域に比べて符号長の短い符号語が格納される。
【００７８】
選択部２０２３は、制御部２０２４の制御に従って、３つの一致検出部Ｕ０，Ｕ１，Ｕ２の中から１つを選択し、その記憶部にテーブル記憶部２０２２から読み出される符号語セットをロードする。
すなわち、選択部２０２３は、データストリームから符号語の抽出を開始する際、まず始めに一致検出部Ｕ０を選択し、その記憶部に最もランレングスの短い符号語セットをロードする。以降は、データストリームシフト部２０１において新たなデータＳ＿ＢＳが抽出されるたびに、一致検出部Ｕ１，Ｕ２，Ｕ１，Ｕ２，…の順で交互に一方の一致検出部を選択し、その記憶部にテーブル記憶部２０２２からランレングスの短い順に読み出される符号語セットをロードする。
【００７９】
制御部２０２４は、テーブル記憶部２０２２に対する符号語データの書き込み処理や読み出し処理、選択部２０２３における選択動作の制御を行う。また、一致検出部Ｕ０，Ｕ１，Ｕ２を選択的に活性化する処理を行う。
【００８０】
すなわち、データストリームから符号語を抽出する前に、制御部２０２４は、メモリ２０４から符号語テーブルを読み出して、テーブル記憶部２０２２の１６ブロックのメモリにロードする。
【００８１】
データストリームから符号語の抽出を開始する際、制御部２０２４は、テーブル記憶部２０２２のアドレス‘００ｈ’に対応するデータを生成して、フリップフロップＦＦ３にラッチさせる。これにより、最もランレングスの短い符号語セットがテーブル記憶部２０２２から読み出される。制御部２０２４は、選択部２０２３を制御して、この読み出された符号語セットを一致検出部Ｕ０の記憶部にロードする。
以降、制御部２０２４は、データストリームシフト部２０１において新たなデータＳ＿ＢＳが抽出されるたびに、アドレス‘０１ｈ’，‘０２ｈ’，…の順でテーブル記憶部２０２２から符号語セットを読み出し、これを‘Ｕ１，Ｕ２，Ｕ１，Ｕ２，…’の順で交互に選択した一致検出部にロードする。
【００８２】
制御部２０２４は、３つの一致検出部Ｕ０，Ｕ１，Ｕ２に対する上述した符号語セットのロード処理と並行して、これらを選択的に活性化する処理も行う。
すなわち、制御部２０２４は、データストリームシフト部２０１において新たなデータＳ＿ＢＳが抽出されると、データストリームシフト部２０１において次のデータＳ＿ＢＳが抽出されるまで、‘Ｕ０，Ｕ１，Ｕ２，Ｕ１，Ｕ２，…’の順で３つの一致検出部を活性化させる。
なお、この場合、制御部２０２４は、データストリームシフト部２０１において新たなデータＳ＿ＢＳが抽出されるか否かの判断を、論理和回路ＯＲ１より出力される信号Ｓ＿Ｍに基づいて行う。すなわち、信号Ｓ＿Ｍの全ビットが‘０’の場合、現在活性化中の一致検出部において一致する符号語が検出されていないため、新たなデータＳ＿ＢＳは抽出されないと判断する。信号Ｓ＿Ｍに‘１’のビットが存在する場合、現在活性化中の一致検出部において一致する符号語が検出されているため、新たなデータＳ＿ＢＳが抽出されると判断する。
制御部２０２４は、一致検出部の活性化処理と符号語データのロード処理を並列に実行する。例えば、一致検出部Ｕ１を活性化して検出動作を実行させるとき、これと並行して、次に活性化する予定の一致検出部Ｕ２に符号語データをロードする。
【００８３】
次に、上述した構成を有する符号語抽出部２１の動作について、図１２に示すフローチャートを参照して説明する。
【００８４】
始めに、符号語ロード部２０２は、メモリ２０４から符号語テーブルを読み出して、内部のテーブル記憶部２０２２にロードする（ステップＳＴ１）。テーブル記憶部２０２２に符号語テーブルの全体を格納できる場合、このロード処理は符号語の抽出開始時に一度だけ行えば良い。他方、テーブル記憶部２０２２に符号語テーブルの全体を格納できない場合、符号語ロード部２０２は、後述する一致検出処理の過程で必要な残りの符号語をメモリ２０４からテーブル記憶部２０２２へ適宜ロードする。
【００８５】
次に符号語ロード部２０２は、一致検出動作における種々の初期設定を行う（ステップＳＴ２）。例えば、データストリームから抽出する符号語の数を設定する。
【００８６】
初期設定の後、符号語抽出部２１は、一致検出動作を開始する。画像再生装置の図示しないシステム制御部は、一致検出動作の終了を通知する符号語抽出部２１の応答信号を待ち受ける状態になる（ステップＳＴ１８）。なお、このとき、データストリームバッファ１には、デジタル放送などから受信したデータや、光ディスク等の記録媒体から入力したデータストリームが既に格納されている。
【００８７】
まず、データストリームシフト部２０１は、データストリームバッファ１に格納されるデータストリームの先頭から１６ビットのデータＢ＿ＢＳを抽出する（ステップＳＴ３）。また、符号語ロード部２０２は、ランレングスの最も短い符号語セットを一致検出部Ｕ０にロードする（ステップＳＴ４）。
【００８８】
一致検出部Ｕ０に符号語セットがロードされると、符号語ロード部２０２は、一致検出部Ｕ０を活性化する。これにより、一致検出部Ｕ０は、ロードされた符号語セットの中の各符号語とデータＳ＿ＢＳの先頭部分とを比較し、一致する符号語を検出する（ステップＳＴ５）。また、符号語ロード部２０２は、次の一致検出動作に備えて、現在検出中の符号語セットの次にランレングスの短い符号語セットをテーブル記憶部２０２２から一致検出部Ｕ１の記憶部へロードする（ステップＳＴ６）。一致検出部Ｕ１に対する符号語セットのロード処理と、一致検出部Ｕ０の検出動作は並列に実行される。
【００８９】
一致検出部Ｕ０において検出動作が実行されると、符号語ロード部２０２は、その検出結果を論理和回路ＯＲ１の出力信号Ｓ＿Ｍに基づいて判定する（ステップＳＴ７）。すなわち、出力信号Ｓ＿Ｍの全ビットが‘０’の場合、一致する符号語が検出されなかったと判定し、出力信号Ｓ＿Ｍに‘１’のビットが含まれている場合、一致する符号語が検出されたと判定する。
【００９０】
一致検出部Ｕ０において一致する符号語が検出されない場合、符号語ロード部２０２は、一致検出部Ｕ１を活性化する。これにより一致検出部Ｕ１は、ロードされた符号語セットを用いて、一致検出部Ｕ０と同様な一致検出動作を実行する（ステップＳＴ８）。また、符号語ロード部２０２は、次の検出動作に備えて、現在検出中の符号語セットの次にランレングスの短い符号語セットをテーブル記憶部２０２２から一致検出部Ｕ２の記憶部へロードする（ステップＳＴ９）。一致検出部Ｕ２に対する符号語セットのロード処理と、一致検出部Ｕ１の検出動作は並列に実行される。
【００９１】
一致検出部Ｕ１において検出動作が実行されると、符号語ロード部２０２は、その検出結果を論理和回路ＯＲ１の出力信号Ｓ＿Ｍに基づいて判定する（ステップＳＴ１０）。
【００９２】
一致検出部Ｕ１において一致する符号語が検出されない場合、符号語ロード部２０２は、一致検出部Ｕ２を活性化する。これにより一致検出部Ｕ２は、ロードされた符号語セットを用いて、一致検出部Ｕ０と同様な一致検出動作を実行する（ステップＳＴ１１）。また、符号語ロード部２０２は、次の検出動作に備えて、現在検出中の符号セットの次にランレングスの短い符号語セットをテーブル記憶部２０２２から一致検出部Ｕ１の記憶部へロードする（ステップＳＴ１２）。一致検出部Ｕ１に対する符号語セットのロード処理と、一致検出部Ｕ２の検出動作は並列に実行される。
【００９３】
一致検出部Ｕ２において検出動作が実行されると、符号語ロード部２０２は、その検出結果を論理和回路ＯＲ１の出力信号Ｓ＿Ｍに基づいて判定する（ステップＳＴ１３）。
【００９４】
一致検出部Ｕ２において一致する符号語が検出されない場合、符号語ロード部２０２は、再びステップＳＴ８およびＳＴ９に戻って、上述した処理を反復する。すなわち、データＳ＿ＢＳの先頭部分と一致する符号語が検出されるまで、一致検出部Ｕ１，Ｕ２の記憶部に対して交互に符号語セットをロードし、検出動作を実行させる。
【００９５】
ステップＳＴ７，ＳＴ１０，ＳＴ１３において一致する符号語が検出されたと判定される場合、フリップフロップＦＦ２には、この検出された符号語Ｓ＿ＣＷがラッチされる。この符号語Ｓ＿ＣＷは、後段のラン／レベル変換部２２に取り込まれ、ランレングスとレベルに変換される。
【００９６】
また、この場合、符号語ロード部２０２は、所定の終了条件に達しているか否かを判定する（ステップＳＴ１４，ＳＴ１５，ＳＴ１６）。例えば、初期設定（ステップＳＴ２）で定めた数の符号語を抽出し終えたか否か判定する。
【００９７】
終了条件に達していない場合、データストリームシフト部２０１は、フリップフロップＦＦ１に格納される符号長の信号Ｓ＿ＢＬに応じて、データの抽出位置をデータストリームの末尾側にシフトさせる。すなわち、符号語が未だ抽出されていないデータストリームの先頭へ抽出位置をシフトさせる。そして、このシフトした抽出位置から新たに１６ビットのデータＳ＿ＢＳを抽出する（ステップＳＴ１７）。
以降、符号語ロード部２０２は、再びステップＳＴ５およびＳＴ６に戻って、上述した処理を反復する。すなわち、データＳ＿ＢＳの先頭部分と一致する符号語が検出されるまで、一致検出部Ｕ１，Ｕ２の記憶部に対して交互に符号語セットをロードし、検出動作を実行させる。
【００９８】
ステップＳＴ１４，ＳＴ１５，ＳＴ１６において終了条件に達したと判定した場合、符号語抽出部２１は、図示しないシステム制御部に対して、符号抽出処理の終了を通知する信号を出力する。
【００９９】
次に、符号語抽出部２１のより詳細な動作について、図１３〜図１５を参照して説明する。
【０１００】
図１３は、符号語抽出部２１の動作を説明するためのタイミングチャートである。
図１３（Ａ）は、符号語抽出部２１の動作タイミングの基準となるクロック信号ＣＬＫを示す。
図１３（Ｂ）は、符号語抽出部の動作状態を示す。
図１３（Ｃ）は、不図示のシステム制御部から符号語抽出部２１に対して符号抽出動作の開始を指示するスタート信号Ｓ＿ｓｔａｒｔを示す。
図１３（Ｄ）は、符号語抽出部２１から不図示のシステム制御部に対して符号語抽出動作の終了を通知するエンド信号Ｓ＿ｅｎｄを示す。
図１３（Ｅ）は、一致検出動作の結果を通知する信号Ｓ＿ｍを示す。信号Ｓ＿ｍは、論理和回路ＯＲ１の出力信号Ｓ＿Ｍの全ビットが‘０’の場合に‘１’となり、それ以外の場合に‘０’となる信号である。この信号Ｓ＿ｍは、一致検出部Ｕ０〜Ｕ２において一致する符号語が検出された場合に‘０’、検出されない場合に‘１’となる。
図１３（Ｆ）は、アドレスデコーダ２０２１から出力されるアドレスデータＳ＿ＡＤＲを示す。
図１３（Ｇ）は、テーブル記憶部２０２２から読み出される符号語セットＳ＿ＣＷＳを示す。
図１３（Ｈ）は、一致検出部Ｕ０の記憶部に格納される符号語セットを示す。
図１３（Ｉ）は、一致検出部Ｕ１の記憶部に格納される符号語セットを示す。
図１３（Ｊ）は、一致検出部Ｕ２の記憶部に格納される符号語セットを示す。
なお、図１３（Ｈ）〜（Ｊ）において太い線で示される枠は、活性化されている一致検出部を示す。
【０１０１】
図１４は、符号語抽出部２１の状態遷移の一例を図解した図である。
符号語抽出部２１は、４つの状態ＩＤＬ，Ｓ０，Ｓ１，Ｓ２を有する。
状態ＩＤＬは、符号語抽出動作を開始する前の待ち状態である。不図示のシステム制御部から‘１’のスタート信号Ｓ＿ｓｔａｒｔが入力されると、符号語抽出部２１は、状態ＩＤＬから状態Ｓ０へ遷移する。
状態Ｓ０は、一致検出部Ｕ０の記憶部にランレングスが最短の符号語セットをロードする状態である。符号語抽出部２１は、クロック信号ＣＫＬの１サイクルで状態Ｓ０から状態Ｓ１へ遷移する。
状態Ｓ１は、一致検出部Ｕ０において検出動作が行われる状態である。信号Ｓ＿ｍが‘０’の場合、符号語抽出部２１は状態Ｓ１にとどまる。信号Ｓ＿ｍが‘１’の場合、符号語抽出部２１は状態Ｓ１から状態Ｓ２へ遷移する。エンド信号Ｓ＿ｅｎｄが‘１’の場合、符号語抽出部２１は状態Ｓ１から状態ＩＤＬへ戻る。
状態Ｓ２は、一致検出部Ｕ１またはＵ２において交互に検出動作が行われる状態である。信号Ｓ＿ｍが‘１’の場合、符号語抽出部２１は状態Ｓ２にとどまる。信号Ｓ＿ｍが‘０’の場合、符号語抽出部２１は状態Ｓ２から状態Ｓ１へ遷移する。エンド信号Ｓ＿ｅｎｄが‘１’の場合、符号語抽出部２１は状態Ｓ２から状態ＩＤＬへ戻る。
【０１０２】
図１５は、テーブル記憶部２０２２に入力されるアドレスデータＳ＿ＡＤＲと、このアドレスデータＳ＿ＡＤＲに応じてテーブル記憶部２０２２から読み出される符号語セットＳ＿ＣＷＳと、その符号語セットのロード先の一致検出部との対応関係の一例を示す図である。
小さい値から順番に、
‘００ｈ’，‘０１ｈ’，‘０２ｈ’，‘０３ｈ’，‘０４ｈ’，…；
というアドレスデータＳ＿ＡＤＲがテーブル記憶部２０２２に入力されると、テーブル記憶部２０２２は、
‘＃０’，‘＃１’，‘＃２’，‘＃３’，‘＃４’，…；
という符号語セットＳ＿ＣＷＳを順次出力する。この符号語セットＳ＿ＣＷＳは、
‘Ｕ０’，‘Ｕ１’，‘Ｕ２’，‘Ｕ１’，‘Ｕ２’，…；
という順番で一致検出部の記憶部にロードされる。
符号語セット‘＃０’は、符号語テーブルの中で最もランレングスが短く、番号が大きくなるほどランレングスが長くなる。
【０１０３】
クロックサイクルｃ０：
クロックサイクルｃ０において、符号語抽出部２１は状態ＩＤＬにある。状態ＩＤＬにおいて、制御部２０２４は、アドレス‘００ｈ’のデータをフリップフロップＦＦ３にロードする。
【０１０４】
クロックサイクルｃ１：
クロックサイクルｃ０においてスタート信号Ｓ＿ｓｔａｒｔが‘１’に設定されると、クロックサイクルｃ１において符号語抽出部２１は状態ＩＤＬから状態Ｓ０へ遷移する。
状態Ｓ０において、制御部２０２４は、アドレス‘０１ｈ’のデータをフリップフロップＦＦ３にロードする。また、テーブル記憶部２０２２は、アドレス‘００ｈ’の記憶領域から符号語セット‘＃０’を出力する。
【０１０５】
クロックサイクルｃ２：
クロックサイクルｃ２において、符号語抽出部２１は、状態Ｓ０から状態Ｓ１へ遷移する。
符号語ロード部２０２は、前のクロックサイクルｃ１においてテーブル記憶部２０２２から出力される符号語セット‘＃０’を、一致検出部Ｕ０の記憶部にロードする。また、符号語ロード部２０２は、状態Ｓ１において、一致検出部Ｕ０を活性化する。
活性化された一致検出部Ｕ０は、検出動作を実行する。その結果、一致する符号語‘ＣＷ０’が検出されるため、信号Ｓ＿ｍは‘０’になる。
信号Ｓ＿ｍが‘０’になると、制御部２０２４は、次のサイクルにおける符号語セット‘＃１’の読み出しに備えて、アドレス‘０１ｈ’のデータをフリップフロップＦＦ３にロードする。
また、テーブル記憶部２０２２は、前のクロックサイクルｃ１においてフリップフロップＦＦ３にロードされたデータに応じて、符号語セット‘＃１’を出力する。
【０１０６】
クロックサイクルｃ３：
前のクロックサイクルｃ２において信号Ｓ＿ｍが‘０’であるため、クロックサイクルｃ３において符号語抽出部２１は状態Ｓ１にとどまる。
符号語ロード部２０２は、前のクロックサイクルｃ２においてテーブル記憶部２０２２から出力される符号語セット‘＃１’を、一致検出部Ｕ１の記憶部にロードする。また、符号語ロード部２０２は、状態Ｓ１において、一致検出部Ｕ０を活性化する。
活性化された一致検出部Ｕ０は、検出動作を実行する。その結果、一致する符号語が検出されないため、信号Ｓ＿ｍは‘１’になる。
信号Ｓ＿ｍが‘１’になると、制御部２０２４は、次のサイクルにおける符号語セット‘＃２’の読み出しに備えて、アドレス‘０２ｈ’のデータをフリップフロップＦＦ３にロードする。
また、テーブル記憶部２０２２は、前のクロックサイクルｃ２においてフリップフロップＦＦ３にロードされたデータに応じて、符号語セット‘＃１’を出力する。
【０１０７】
クロックサイクルｃ４：
前のクロックサイクルｃ３において信号Ｓ＿ｍが‘１’になるため、クロックサイクルｃ４において符号語抽出部２１は状態Ｓ１から状態Ｓ２に遷移する。
符号語ロード部２０２は、前のクロックサイクルｃ３においてテーブル記憶部２０２２から出力される符号語セット‘＃１’を、一致検出部Ｕ１の記憶部にロードする。また、符号語ロード部２０２は、状態Ｓ２において、一致検出部Ｕ１を活性化する。
活性化された一致検出部Ｕ１は、検出動作を実行する。その結果、一致する符号語‘ＣＷ１’が検出されるため、信号Ｓ＿ｍは‘０’になる。
信号Ｓ＿ｍが‘０’になると、制御部２０２４は、次のサイクルにおける符号語セット‘＃１’の読み出しに備えて、アドレス‘０１ｈ’のデータをフリップフロップＦＦ３にロードする。
また、テーブル記憶部２０２２は、前のクロックサイクルｃ４においてフリップフロップＦＦ３にロードされたデータに応じて、符号語セット‘＃２’を出力する。
【０１０８】
クロックサイクルｃ５：
前のクロックサイクルｃ４において信号Ｓ＿ｍが‘０’であるため、クロックサイクルｃ５において符号語抽出部２１は状態Ｓ２から状態Ｓ１に遷移する。
符号語ロード部２０２は、前のクロックサイクルｃ４においてテーブル記憶部２０２２から出力される符号語セット‘＃２’を、一致検出部Ｕ２の記憶部にロードする。また、符号語ロード部２０２は、状態Ｓ１において、一致検出部Ｕ０を活性化する。
活性化された一致検出部Ｕ０は、検出動作を実行する。その結果、一致する符号語が検出されないため、信号Ｓ＿ｍは‘１’になる。
信号Ｓ＿ｍが‘１’になると、制御部２０２４は、次のサイクルにおける符号語セット‘＃２’の読み出しに備えて、アドレス‘０２ｈ’のデータをフリップフロップＦＦ３にロードする。
また、テーブル記憶部２０２２は、前のクロックサイクルｃ４においてフリップフロップＦＦ３にロードされたデータに応じて、符号語セット‘＃１’を出力する。
【０１０９】
クロックサイクルｃ６：
前のクロックサイクルｃ５において信号Ｓ＿ｍが‘１’であるため、クロックサイクルｃ６において符号語抽出部２１は状態Ｓ１から状態Ｓ２に遷移する。
符号語ロード部２０２は、前のクロックサイクルｃ５においてテーブル記憶部２０２２から出力される符号語セット‘＃１’を、一致検出部Ｕ１の記憶部にロードする。また、符号語ロード部２０２は、状態Ｓ２において、一致検出部Ｕ１を活性化する。
活性化された一致検出部Ｕ１は、検出動作を実行する。その結果、一致する符号語が検出されないため、信号Ｓ＿ｍは‘１’のまま保持される。
信号Ｓ＿ｍが‘１’になると、制御部２０２４は、次のサイクルにおける符号語セット‘＃３’の読み出しに備えて、アドレス‘０３ｈ’のデータをフリップフロップＦＦ３にロードする。
また、テーブル記憶部２０２２は、前のクロックサイクルｃ５においてフリップフロップＦＦ３にロードされたデータに応じて、符号語セット‘＃２’を出力する。
【０１１０】
クロックサイクルｃ７：
前のクロックサイクルｃ６において信号Ｓ＿ｍが‘１’であるため、クロックサイクルｃ７において符号語抽出部２１は状態Ｓ２にとどまる。
符号語ロード部２０２は、前のクロックサイクルｃ６においてテーブル記憶部２０２２から出力される符号語セット‘＃２’を、一致検出部Ｕ２の記憶部にロードする。また、符号語ロード部２０２は、状態Ｓ２において、前サイクルと異なる一致検出部Ｕ２を活性化する。
活性化された一致検出部Ｕ２は、検出動作を実行する。その結果、一致する符号語‘ＣＷ２’が検出されるため、信号Ｓ＿ｍは‘０’になる。
信号Ｓ＿ｍが‘０’になると、制御部２０２４は、次のサイクルにおける符号語セット‘＃１’の読み出しに備えて、アドレス‘０１ｈ’のデータをフリップフロップＦＦ３にロードする。
また、テーブル記憶部２０２２は、前のクロックサイクルｃ４においてフリップフロップＦＦ３にロードされたデータに応じて、符号語セット‘＃３’を出力する。
【０１１１】
以降同様に、符号語抽出部２１は、前サイクルの信号Ｓ＿ｍの値に応じて、状態Ｓ１または状態Ｓ２になる。
符号語ロード部２０２は、前サイクルにおいてテーブル記憶部２０２２から出力される符号語セットを、図１５に示す対応関係を有する一致検出部へロードする。
また、符号語ロード部２０２は、状態Ｓ１において一致検出部Ｕ０を活性化する。状態Ｓ２においては、前サイクルで活性化したユニットが一致検出部Ｕ１であれば一致検出部Ｕ２を活性化し、前サイクルで活性化したユニットが一致検出部Ｕ２であれば一致検出部Ｕ１を活性化する。
活性化した一致検出部において一致する符号語が検出された場合（Ｓ＿ｍ＝＝‘０’）、制御部２０２４は、次のサイクルで符号語セット‘＃１’がテーブル記憶部２０２２から出力されるように、フリップフロップＦＦ３へデータをロードする。他方、一致する符号語が検出されない場合（Ｓ＿ｍ＝＝‘１’）、制御部２０２４は、前サイクルにおいてフリップフロップＦＦ３にロードされたデータに対応する符号語セットの次にランレングスの長い符号語セットが次のサイクルで出力されるように、フリップフロップＦＦ３へデータをロードする。
テーブル記憶部２０２２は、前サイクルにおいてフリップフロップＦＦ３にロードされたデータに応じた符号語セットを出力する。
【０１１２】
以上説明したように、図３に示す符号抽出装置２１によれば、データストリームシフト部２０１において、可変長符号化されたデータストリームの先頭から、１６ビットのデータＳ＿ＢＳが抽出される。新たなデータＳ＿ＢＳがデータストリームシフト部２０１において抽出されると、符号語ロード部２０２では、３つの一致検出部Ｕ０，Ｕ１，Ｕ２から所定の順序に従って１つの一致検出部が順番に選択されるとともに、可変長符号の符号語テーブルから所定の順序に従って符号語セット（１６個の符号語の組）が順番に選択される。そして、選択された一致検出部の記憶部に選択された符号語セットがロードされる。符号語セットをロードされた一致検出部では、データＳ＿ＢＳの中の少なくとも先頭のデータを含んだ一連のデータと、フリップフロップＦＦ６−０〜ＦＦ６−１５に記憶される１６の符号語とが比較される。そして、この比較の結果、一致する符号語が検出された場合、一致検出部からは、検出された符号語の符号長を示す信号が出力され、論理和回路ＯＲ１およびフリップフロップＦＦ１を介してデータストリームシフト部２０１に供給される。データストリームシフト部２０１では、供給される符号長の信号Ｓ＿ＢＬに応じて、データＳ＿ＢＳの抽出位置がデータストリームの末尾側にシフトされ、このシフトされた位置から新たなデータＳ＿ＢＳが抽出される。
このように、図３に示す符号抽出装置では、複数の一致検出部に対する符号語のロードを繰り返しながら各一致検出部において符号語の検出動作が行われるため、符号語テーブルの全体を格納する記憶装置や、全ての符号語とデータストリームとの一致を検出する大規模な回路を必要としない。また、一致検出部において、複数の符号語とデータストリームとの一致検出を並列に実行することも可能である。従って、図３に示す符号抽出装置２１によれば、回路規模の増大を抑えつつ高速に可変長符号化データストリームから符号語を抽出することができる。
【０１１３】
また、図３に示す符号抽出装置２１によれば、可変長符号の特定の性質を利用せずに、データストリーム中から符号語を抽出することができる。
従来の符号語抽出方法では、例えば符号語の先頭の数ビットが特定のビット列を持つ場合にその符号語の符号長が決まるといった、特定の可変長符号の性質を利用して符号語の抽出を行うものがある。そのような方法では、可変長符号化の方式や符号語テーブルに変更が生じた場合、全く使用することができなくなる。
これに対し、図３に示す符号抽出装置２１によれば、データストリームから抽出した固定長のデータＳ＿ＢＳと予め与えられる符号語とを直接比較することによって符号語抽出が行われる。そのため、最長の符号長がデータＳ＿ＢＳのデータ長より短い限り、どのような可変長符号にも対応可能である。例えば符号語の規則性がない可変長符号であっても、符号語抽出が可能である。
【０１１４】
更に、図３に示す符号語抽出部２１によると、ランレングスの短い符号語セットが、ランレングスの長い符号語セットより優先して符号語テーブルから選択され、一致検出部Ｕ０，Ｕ１，Ｕ２の記憶部にロードされる。そして、ランレングスの短い符号語セットから順番にデータストリームと比較され、データストリームとの一致検出が行われる。そのため、対応付けられている情報語（量子化係数）の数が少ない符号語は短い処理サイクルで、対応付けられている情報語の数が多い符号語は長い処理サイクルをかけてデータストリームから抽出される。言い換えると、対応付けられている情報語の数に応じて、符号語の抽出に要する処理サイクルが変化する。
【０１１５】
先に述べた図２３に示す符号語抽出方式では、符号語テーブルの全体とデータテーブルとを一斉に比較し、１サイクルで検出結果を得ることができるため、符号語の種類に応じて処理サイクルが変化する本実施形態の方式と比べると、符号語の抽出処理は高速である。
符号語のランレングスが‘０’の場合、この符号語には非ゼロの量子化係数が１つだけ対応付けられている。これに対し、符号語のランレングスが１の場合、この符号語には、値がゼロの量子化係数と非ゼロの量子化係数とが対応付けられており、合計２つの量子化係数が１つの符号語に対応付けられている。そのため、１サイクルで１つの符号語をデータストリームから抽出するということは、１サイクルで１つ以上の量子化係数を生成することを意味する。
例えばＭＰＥＧ２のデータストリームを処理する場合、可変長復号化の後段に続く逆量子化部３や逆ＤＣＴ部４では、通常１マクロブロックあたり、量子化係数の数である３８４サイクルを必要とする。従って、仮に可変長復号化部２で１サイクルあたり１つ以上の量子化係数の処理を行っても、後段のユニットにおける処理がネックとなり、全体の処理速度は高速化されない。
言い換えると、１サイクルで１つ以上の量子化係数を生成し得る従来の符号語抽出方式は、後段の処理を考慮した場合、不必要に高速である。
これに対し、図３に示す符号語抽出部２１では、ランレングスが‘０’の符号語については、一致検出部Ｕ０において１サイクルの処理で検出し、ランレングスが‘１’以上の符号語については、一致検出部Ｕ１，Ｕ２を交互に動作させることにより数サイクルで検出することができる。従って、図３に示す符号語抽出部２１を設けた可変長復号化部２によれば、量子化係数を必要以上に高速に生成することなく、要求された適切な速度で生成することが可能になるため、従来のように大規模な回路を設けることなく、効率的に可変長復号化を行うことができる。
【０１１６】
符号語抽出部２１の処理速度は、一致検出部Ｕ０，Ｕ１，Ｕ２において並列に一致検出を行う符号語の数に依存する。すなわち、上述の例では一致検出部の内部に１６個の一致検出回路を設けて、１６の符号語の一致検出動作を並列に実行しているが、一致検出回路とフリップフロップの数を更に増やせば、それだけ高速に符号語を抽出することが可能になる。ただし、その場合、高速化するほど回路規模が大きくなる。
すなわち、図３に示す符号語抽出部２１によれば、一致検出部Ｕ０，Ｕ１，Ｕ２において並列に一致検出を行う符号語の数を加減することにより、回路規模と処理速度のトレードオフを図りつつ、両者を適切に設定することが可能である。
【０１１７】
符号語抽出部２１における回路規模と処理速度との間のトレードオフ関係について、図１６および図１７を参照して説明する。
図１６は、符号語テーブルの一例を示す第１の図である。
図１７は、一致検出部Ｕ０，Ｕ１，Ｕ２に内蔵する一致検出回路の数と、特定の符号語の検出に必要なサイクル数との関係の一例を示す図である。
【０１１８】
パターンＡでは、一致検出部Ｕ０，Ｕ１，Ｕ２にそれぞれ１６個の一致検出回路を設ける。パターンＢでは、一致検出部Ｕ０に１６個、一致検出部Ｕ１，Ｕ２にそれぞれ８個の一致検出回路を設ける。パターンＣでは、一致検出部Ｕ０，Ｕ１，Ｕ２にそれぞれ８個の一致検出回路を設ける。回路規模はパターンＡの場合が最も大きく、その次がパターンＢ、一番小さいのがパターンＣである。
例えばデータストリームの先頭に符号語‘０００００００００１０００１’が存在する場合、パターンＡの構成では、２サイクル目に一致検出部Ｕ１で一致が検出される。パターンＢの構成では、３サイクル目に一致検出部Ｕ２で一致が検出される。パターンＣの構成では、４サイクル目に一致検出部Ｕ１で一致が検出される。
このように、一致検出部において並列に検出する符号語の数を増やすことによって、符号語抽出処理の速度を向上させることができるが、その反面、回路規模が大きくなる。逆に、一致検出部において並列に検出する符号語の数を減らすことによって、回路規模を小さくすることができるが、その反面、検出に到るまでの処理サイクルが長くなる。
例えばハードディスクを内蔵したＤＶＤレコーダーなどの場合、高レートの可変長符号化データストリームを復号化する必要がある。このような場合は、一致検出部において並列に検出する符号語の数を増やして、符号語抽出処理の速度の向上を図ることが好ましい。他方、一方、画素数の少ない低レートのデータストリームを復号化する携帯電話などの携帯機器の場合、一致検出部において並列に検出する符号語の数を減らすことによって、回路規模を小さくすることが好ましい。
このように、図３に示す符号語抽出部２１によれば、適用される装置の要求に合わせて、回路規模と処理速度を適切に設定することが可能である。
【０１１９】
しかも、図３に示す符号語抽出部２１によれば、データストリームからの符号語の抽出を開始する際に、最もランレングスの短い符号語セットが一致検出部Ｕ０の記憶部にロードされる。その後、データストリームシフト部２０１において新たなデータＳ＿ＢＳが抽出される場合、一致検出部Ｕ１，Ｕ２から所定の順序で一方の一致検出部が順番に選択されるとともに、ランレングスの短い順に符号語テーブルから符号語セットが順番に選択される。そして、選択された一致検出部の記憶部に選択された符号語がロードされる。
もし、一致検出部Ｕ０へロードした最もランレングスの短い符号語セットが別の符号語セットに書き換えられてしまうと、１つの符号語の検出を終えて次の符号語の検出を始める際に、一致検出部Ｕ０へこの符号語セットを再びロードしなくてはならず、このロードを行うための余分な処理サイクルが発生してしまう。
これに対し、図３に示す符号語抽出部２１のように、最もランレングスの短い符号語セットを常に一致検出部Ｕ０の記憶部に記憶させたままにすることで、上述した余分な処理サイクルの発生を防止できるため、処理速度の高速化を図ることができる。
【０１２０】
以上、本発明の実施形態について詳細に説明したが、本発明は上述した形態のみに限定されるものではなく、種々のバリエーションを含んでいる。
【０１２１】
上述した実施形態では、対応付けられた情報語の数が少ない符号語（例えばランレングスの短い符号語）を優先的に一致検出部の記憶部にロードし、データストリームとの一致検出を行っている。しかしながら、本発明はこれに限定されない。例えば、符号長の短い符号語を優先的に一致検出部の記憶部にロードしても良い。
【０１２２】
図１８は、符号語テーブルの一例を示す第２の図である。
図１８において点線で囲った符号語‘０１０’のランレングスは‘１’、レベルは‘１’である。この符号語からは、ゼロの量子化係数と非ゼロの量子化係数がそれぞれ１つずつ復号化される。従って、平均として１サイクルに１つの量子化係数を復号化する場合、この符号語は最大２サイクルで処理すれば良い。
ところが、３つの一致検出部Ｕ０，Ｕ１，Ｕ２にそれぞれ１６個の一致検出回路を設けた構成でこの符号語を処理する場合、図１８で示すように３サイクルかかってしまう。
通常、可変長符号では、発生頻度の高い情報語に対して短い符号長の符号語を割り当てるため、３ビットの符号語‘０１０’は、比較的発生頻度が高いと推測される。もし、データストリームにこの符号語が多く含まれていると、２つの量子化係数を復号化するために３サイクルを使ってしまうため、平均として１サイクルに１つの量子化係数を復号化できなくなる。その結果、１フレームの画像データを規定時間内に処理できなくなってしまう。
【０１２３】
そこで、例えば図１９に示すように、符号語テーブルにおける符号語の優先順位を符号長の短いものほど高くすると、先ほどの符号語‘０１０’は１サイクルで検出可能になる。
従って、図３に示す符号語抽出部２１によれば、回路構成を全く変えることなく、テーブル内における符号語の並び替え（具体的にはテーブル記憶部２０２２における符号語の格納順序の変更）を行うだけで、非常に容易に処理性能の改善を図ることが可能である。
【０１２４】
なお、符号語テーブルにおける符号語の優先順位を符号長の短い順に設定する場合、同一符号長の符号語については、ランレングスの短い符号語（すなわち対応付けられた情報語の少ない符号語）に高い優先順位を与えても良い。
【０１２５】
ところで、図３に示す符号語抽出部２１では、テーブル内における符号語の並び替えを容易に行えることから、次のような応用も可能である。すなわち、一致検出の結果を監視して、どの符号語が頻繁に検出されたかを学習し、発生頻度に応じてテーブル内の符号語を動的に並び替えても良い。
【０１２６】
図２０は、そのような符号語抽出部の構成の一例を示す図である。
図２０に示す符号語抽出部２１Ａは、図３に示す符号語抽出部２１と同様の構成を有するとともに、順序決定部２０５を有する。ただし、符号語ロード部２０２は、符号語ロード部２０２Ａに置き換えられる。
【０１２７】
順序決定部２０５は、３つの一致検出部Ｕ０，Ｕ１，Ｕ２において一致が検出された一連の符号語に基づいて、各一致検出部に符号語をロードする順序を決定する。例えば、一致検出部Ｕ０，Ｕ１，Ｕ２において一致が検出された一連の符号語に重複して含まれる同一符号語の数を計数し、この計数結果に応じて順序を決定する。
【０１２８】
符号語ロード部２０２Ａは、順序決定部２０５において決定された順序に従って、符号語テーブルの中から順番に符号語セットを選択し、一致検出部Ｕ０，Ｕ１，Ｕ２の記憶部にロードする。具体的には、順序決定部２０５において決定された順序に従って、テーブル記憶部２０２２における符号語の格納順序を変更する。すなわち、符号語ロード部２０２では、常にランレングスの短い順に符号語テーブルの中から符号語セットを選択しているのに対し、符号語ロード部２０２Ａでは、順序決定部２０５において決定された順序に従って、符号語テーブルの中から符号語セットを選択する。符号語ロード部２０２Ａの他の動作は、符号語ロード部２０２と同様である。
【０１２９】
このような構成によって、データストリームの性質に応じた適切な符号語抽出処理ならびに可変長符号化処理を行うことが可能である。
例えば動画像のデータストリームを扱う場合、シーンの切り替わりがない限り、前フレームと現フレームとの画像周波数成分の相関は強いと考えられる。従って、図２０に示す符号語抽出部２１Ａをそのようなデータストリームの処理に適用した場合、例えばフレームごとに符号語の発生頻度を計測し、その計測結果に応じて符号語の優先順位を決定することが可能である。これにより、次のフレームのデコードを行う前に、発生頻度の計測結果に応じて符号語テーブルの並び替えを行うことが可能になり、符号語抽出処理の高速化を図ることが可能となる。
【０１３０】
上述の実施形態では３つの一致検出部Ｕ０，Ｕ１，Ｕ２のうちの何れか１つを選択的に活性化して、検出動作を実行させているが、本発明はこれに限定されない。例えば、３つの一致検出部Ｕ０，Ｕ１，Ｕ２において並列に検出動作を実行させても良い。これにより、一致検出部を選択的に活性化する場合と比べて、並列に検出する符号語の数を増やすことができるため、処理速度を更に高速化することができる。
なお、複数の一致検出部において並列に検出動作を行う場合、処理の開始直後においては、一部の一致検出部に有効な符号語がロードされていない状態となるため、正常な検出動作が行われない。そのため、各一致検出部は、記憶部に有効な符号語がロードされていない初期の状態において、検出結果の出力（Ｓ＿ＢＬｏ，Ｓ＿ＣＷｏ）を未検出状態（全ビット‘０’）に設定することが好ましい。これにより、有効な符号語がロードされていない一致検出部が存在する場合でも、正しい検出結果が得られる。
【０１３１】
図１の例は動画像の再生装置であるが、これに限らず、本発明は静止画像の再生装置にも適用可能である。
【０１３２】
図３や図２０に示す符号語抽出部における各構成要素の処理（例えば制御部２０２４）は、専用のハードウェアで実行しても良いし、その少なくとも一部をコンピュータによってプログラムに基づいて実行しても良い。
【０１３３】
上述した実施形態で例として挙げている数値（データ長、一致検出部の数、一致検出回路の数、符号語の値など）は説明上の一例であり、他の任意の数値に変更可能である。
【図面の簡単な説明】
【０１３４】
【図１】本発明の実施形態に係る画像再生装置の構成の一例を示す図である。
【図２】可変長復号化部の構成の一例を示す図である。
【図３】符号語抽出部の構成の一例を示す図である。
【図４】データストリームについて説明するための図である。
【図５】データストリーム中における符号語のビット配列について説明するための図である。
【図６】一致検出部の構成の一例を示す図である。
【図７】符号語ロード部から一致検出部の記憶部にロードされる符号語データの一例を示す図である。
【図８】一致検出回路の構成の一例を示す図である。
【図９】ビットシフト部の動作を説明するための図である。
【図１０】ビットシフト部のビットシフト操作の具体例を説明するための図である。
【図１１】一致検出部における一致検出動作の一例を示す図である。
【図１２】符号語抽出部の動作を説明するためのフローチャートである。
【図１３】符号語抽出部の動作を説明するためのタイミングチャートである
【図１４】符号語抽出部の状態遷移の一例を図解した図である。
【図１５】テーブル記憶部に入力されるアドレスデータと、このアドレスデータに応じてテーブル記憶部から読み出される符号語セットと、その符号語セットのロード先の一致検出部との対応関係の一例を示す図である。
【図１６】符号語テーブルの一例を示す第１の図である。
【図１７】一致検出部に内蔵される一致検出回路の数と、特定の符号語の検出に必要なサイクル数との関係の一例を示す図である。
【図１８】符号語テーブルの一例を示す第２の図である。
【図１９】符号語テーブルの一例を示す第３の図である。
【図２０】符号語抽出部の変形例を示す図である。
【図２１】従来の第１の方式による可変長復号化処理を説明するための図である。
【図２２】従来の第２の方式による可変長復号化処理を説明するための図である。
【図２３】第２の方式において、検出する全ての符号語をフリップフロップにラッチさせる構成を説明するための図である。
【図２４】ＭＰＥＧ２で用いられる可変長符号の一例を示す図である。
【符号の説明】
【０１３５】
１…データストリームバッファ１、２…可変長復号化部、３…逆量子化部、４…逆ＤＣＴ部、５…演算部、６…動き補償予測部、７…フレームメモリ、８…ディスプレイ部、２１…符号語抽出部、２２…ラン／レベル変換部、２０１…データストリームシフト部、２０２，２０２Ａ…符号語ロード部、Ｕ０，Ｕ１，Ｕ２…一致検出部、２０４…メモリ、２０５…順序決定部、２０１１，２０２４…制御部、２０１２…ビットシフト部、２０２１…アドレスデコーダ、２０２２…テーブル記憶部、２０２３…選択部、２０３１…ビットシフト部、２０３２…シフト量演算部、２０３３…比較部、ＯＲ１〜ＯＲ４…論理和回路、ＡＮＤ１，ＡＮＤ２…論理積回路、ＦＦ１〜ＦＦ５，ＦＦ６−０〜ＦＦ６−１５…フリップフロップ、Ｅ０〜Ｅ１５…一致検出回路。
【図１】
2006203301.tif 000003
【図２】
2006203301.tif 000004
【図３】
2006203301.tif 000005
【図４】
2006203301.tif 000006
【図５】
2006203301.tif 000007
【図６】
2006203301.tif 000008
【図７】
2006203301.tif 000009
【図８】
2006203301.tif 000010
【図９】
2006203301.tif 000011
【図１０】
2006203301.tif 000012
【図１１】
2006203301.tif 000013
【図１２】
2006203301.tif 000014
【図１３】
2006203301.tif 000015
【図１４】
2006203301.tif 000016
【図１５】
2006203301.tif 000017
【図１６】
2006203301.tif 000018
【図１７】
2006203301.tif 000019
【図１８】
2006203301.tif 000020
【図１９】
2006203301.tif 000021
【図２０】
2006203301.tif 000022
【図２１】
2006203301.tif 000023
【図２２】
2006203301.tif 000024
【図２３】
2006203301.tif 000025
【図２４】
2006203301.tif 000026