(57)【要約】【課題】  様々な国際標準方式に対応することができ、小型化、かつ低消費電力化を可能にする可変長符号化／復号装置を実現する動的再構成可能なセルで構成したテーブル装置を得る。【解決手段】  符号化または復号する入力データと保持する比較対象値と比較することにより所望の出力値を得る複数のセルと、複数のセルの出力の論理和を得る論理和回路と、可変長符号化または復号の開始時および上記論理和回路の出力が求めるべき最終出力値でない場合に、複数のセルのそれぞれで使用するレジスタを選択するレジスタ選択信号と比較動作を開始するセルを指定する比較命令信号を生成する制御部とを備え、各セルの比較動作の処理ルートと、複数のセルのそれぞれで使用するレジスタの保持するデータを再構成して符号化または復号に係る最終値を得るテーブルを構成する。【選択図】        図２
2006101171.tif 000002
【特許請求の範囲】
【請求項１】
符号化または復号する入力データと保持する比較対象値と比較することにより所望の出力値を得る複数のセルと、前記複数のセルの出力の論理和を得る論理和回路と、可変長符号化または復号の開始時および前記論理和回路の出力が求めるべき最終出力値でない場合に、前記複数のセルのそれぞれで使用するレジスタを選択するレジスタ選択信号と比較動作を開始するセルを指定する比較命令信号を生成する制御部とを備え、
各セルは、接続情報を保持する接続情報および自セルでの比較の一致がリーフもしくは分岐であることを示す判定ビットを保持する複数のレジスタを持つ接続情報レジスタ群と、前記接続情報レジスタ群の選択されたレジスタの接続情報に基づいて、入力された比較命令信号または比較結果の一致信号を、自セルで使用するか、他の隣接するセルへ転送するか、またはその両方かの処理を行うクロススイッチと、任意のビット位置とビット数の選択値を保持する複数のレジスタを持つビット選択レジスタ群と、前記ビット選択レジスタ群の選択されたレジスタのビット位置とビット数の選択値に従って前記入力データから対応するビット位置とビット数の比較データを選択するセレクタと、比較対象値を保持する複数のレジスタを持つ比較対象レジスタ群と、比較命令信号に基づいて、前記セレクタで選択された比較データと前記比較対象レジスタ群の選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器と、前記比較対象レジスタ群で保持する比較対象値に対応する符号化または復号に係る出力値および、これに代わる分岐コードを保持する複数のレジスタを持つ出力値レジスタ群と、前記比較器から出力される一致信号と前記接続情報レジスタ群の選択されたレジスタの判定ビットとに基づいてイネーブル信号を生成する論理積ゲートと、生成されたイネーブル信号に基づいて前記出力値レジスタ群の選択されたレジスタからの出力値または分岐コードを、またそれ以外の場合には０を当該セルの出力とするセル出力選択手段と、使用するレジスタを指定するレジスタ選択信号に基づいて前記各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのレジスタ選択手段とを有し、
前記制御部は、可変長符号化または復号の開始時に外部から設定される初期コードあるいは前記論理和回路の論理和出力としての分岐コードに基づいて、前記レジスタ選択信号を生成し各レジスタ選択手段に出力すると共に、比較動作を開始するセルを指定する比較命令信号を生成し対象とするセルのクロススイッチに出力することを特徴とするテーブル装置。
【請求項２】
各セルは、接続情報レジスタ群の他に設けられ、自セルでの比較の一致がリーフか分岐であることを示す判定ビットを専用に保持する複数のレジスタを持つ判定ビットレジスタ群と、レジスタ選択信号に基づいて前記判定ビットレジスタ群のレジスタを選択し、その保持する判定ビットを出力するレジスタ選択手段を有し、接続情報レジスタ群では、接続情報のみを保持するようにしたことを特徴とする請求項１記載のテーブル装置。
【請求項３】
複数のセルの配列とその対応する各レジスタ群のレジスタに保持されるデータが、入力データに対し、一致確率の高いコードから優先的に処理されるように設定されることを特徴とする請求項１または請求項２記載のテーブル装置。
【請求項４】
符号化または復号する入力データと保持する比較対象値とを比較することにより所望の出力値を得るセルと、可変長符号化または復号の開始時および前記セルの出力が最終出力値でない場合に、前記セルが持つ複数のレジスタ群のそれぞれで使用するレジスタを選択するレジスタ選択信号を生成する制御部とを備え、
前記セルは、任意のビット位置とビット数の選択値を保持する複数のレジスタを持つビット選択レジスタ群と、前記ビット選択レジスタ群の選択されたレジスタのビット位置とビット数の選択値に従って前記入力データから対応するビット位置とビット数の比較データを選択するセレクタと、比較対象値を保持する複数のレジスタを持つ比較対象レジスタ群と、前記セレクタで選択された比較データと前記比較対象レジスタ群の選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器と、前記比較対象レジスタ群で保持する比較対象値に対応する符号化または復号に係る出力値および、これに代わる、次に使用するレジスタを変更するレジスタ選択値を保持する複数のレジスタを持つ出力値レジスタ群と、使用するレジスタを指定するレジスタ選択信号に基づいて前記各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのレジスタ選択手段とを有し、
前記制御部は、可変長符号化または復号の開始時に外部から設定されるレジスタ選択値あるいは前記出力値レジスタ群から出力されたレジスタ選択値に基づいて前記レジスタ選択信号を生成することを特徴とするテーブル装置。
【請求項５】
セルは、当該テーブル装置の入力データとして、ビット選択値、比較対象値、出力値、複数のセルの場合には接続情報、さらに複数セルの再構成を行う場合には分岐コードおよびリーフもしくは分岐の判定ビットを含む、符号化または復号に係るコンフィグレーションデータが入力された際に、同時に入力されるレジスタ指定アドレス信号に基づいて、各レジスタ群のそれぞれのレジスタに前記コンフィグレーションデータの対応する値を書き込むアドレスデコーダを有することを特徴とする請求項１から請求項４のうちのいずれか１項記載のテーブル装置。
【請求項６】
入力される可変長符号化される係数データあるいは可変長復号された係数データを格納する係数データメモリと、入力される復号対象のビットストリームあるいは符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項５記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、復号時に前記ビットストリームメモリからビット数単位で読み込んだ固定長のビットストリームを、前記テーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いる各レジスタ群のレジスタの選択や複数のセル構成の場合の比較動作を開始するセルを指定する初期コードを設定する制御レジスタと、可変長符号化または復号の開始前に、前記外部ＣＰＵから前記テーブル装置の各レジスタ群に書き込むコンフィグレーションデータおよび当該コンフィグレーションデータを書き込むレジスタを指定するレジスタ指定アドレス信号を伝送する伝送手段とを備えた可変長符号化／復号装置。
【請求項７】
入力される可変長符号化される係数データを格納する係数データメモリと、符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項５記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いる各レジスタ群のレジスタの選択や複数のセル構成の場合の比較動作を開始するセルを指定する初期コードを設定する制御レジスタと、可変長符号化の開始前に、前記外部ＣＰＵから前記テーブル装置の各レジスタ群に書き込むコンフィグレーションデータおよび当該コンフィグレーションデータを書き込むレジスタを指定するレジスタ指定アドレス信号を伝送する伝送手段とを備えた可変長符号化装置。
【請求項８】
入力される復号対象のビットストリームを格納するビットストリームメモリと、可変長復号された係数データを格納する係数データメモリと、復号時に前記ビットストリームメモリからビット数単位で読み込んだ固定長のビットストリームを、請求項５記載のテーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いる各レジスタ群のレジスタの選択や複数のセル構成の場合の比較動作を開始するセルを指定する初期コードを設定する制御レジスタと、可変長復号の開始前に、前記外部ＣＰＵから前記テーブル装置の各レジスタ群に書き込むコンフィグレーションデータおよび当該コンフィグレーションデータを書き込むレジスタを指定するレジスタ指定アドレス信号を伝送する伝送手段とを備えた可変長復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像に関する様々な国際標準方式の可変長符号化および可変長復号に対応可能なテーブル装置、このテーブル装置を用いた可変長符号化／復号装置、可変長符号化装置および可変長復号装置に関するものである。
【背景技術】
【０００２】
動画像の可変長符号化および可変長復号の方法に関しては用途なども考慮して各種改良が加えられ、国際標準符号化方式として、Ｈ．２６１，Ｈ．２６３やＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４など多数が存在する。従来の可変長符号化／復号装置は、各種符号化方式に対応したテーブルデータ（ゼロラン数とレベル値との組み合わせデータに応じたアドレス上に、その組み合わせデータに応じた可変長符号化コードとその可変長符号化コードの符号長）をテーブルメモリに記憶することで、独自の可変長符号化／復号に固執することなく、国際標準方式を含む様々な可変長符号化／復号に対応していた。また、可変長符号化装置と可変長復号装置とでは異なる回路構成を持ち、両機能を備えた可変長符号化／復号装置では、前記テーブルデータをテーブルメモリから取り出すために、入力データをテーブルメモリアドレスに変換することを特徴としていた（例えば特許文献１参照）。
【０００３】
【特許文献１】特開２００１−３０８７１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
以上のような従来の可変長符号化装置および可変長復号装置では、以下の課題が生じていた。
可変長符号化装置および可変長復号装置は、符号化と復号で回路構成が異なるため、符号化回路と復号回路をそれぞれ別個に設ける必要がある。また、可変長符号化データと、その符号長を記憶するテーブルをメモリに実装しているため、メモリのビット幅は最長の可変長符号化データに合わせる必要があり、短い符号長の可変長符号化データにおいては無駄なメモリ領域が生じる。さらに、テーブルメモリから可変長符号化データまたは可変長復号データを取り出すために、まずアドレス生成部あるいはプロセッサを用いてテーブルメモリアドレスを生成する必要があり、アドレス生成のためのサイクル数が必要となる。
【０００５】
この発明は、上記問題点を解決するためになされたもので、様々な国際標準方式に対応することができ、小型化、かつ低消費電力化を可能にする可変長符号化／復号装置を実現する動的再構成可能なセルで構成したテーブル装置を得ること目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化／復号装置、可変長符号化装置および可変長復号装置を得ること目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るテーブル装置は、符号化または復号する入力データと保持する比較対象値と比較することにより所望の出力値を得る複数のセルと、複数のセルの出力の論理和を得る論理和回路と、可変長符号化または復号の開始時および上記論理和回路の出力が求めるべき最終出力値でない場合に、複数のセルのそれぞれで使用するレジスタを選択するレジスタ選択信号と比較動作を開始するセルを指定する比較命令信号を生成する制御部とを備え、各セルは、接続情報を保持する接続情報および自セルでの比較の一致がリーフもしくは分岐であることを示す判定ビットを保持する複数のレジスタを持つ接続情報レジスタ群と、接続情報レジスタ群の選択されたレジスタの接続情報に基づいて、入力された比較命令信号または比較結果の一致信号を、自セルで使用するか、他の隣接するセルへ転送するか、またはその両方かの処理を行うクロススイッチと、任意のビット位置とビット数の選択値を保持する複数のレジスタを持つビット選択レジスタ群と、ビット選択レジスタ群の選択されたレジスタのビット位置とビット数の選択値に従って上記入力データから対応するビット位置とビット数の比較データを選択するセレクタと、比較対象値を保持する複数のレジスタを持つ比較対象レジスタ群と、比較命令信号に基づいて、セレクタで選択された比較データと比較対象レジスタ群の選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器と、比較対象レジスタ群で保持する比較対象値に対応する符号化または復号に係る出力値および、これに代わる分岐コードを保持する複数のレジスタを持つ出力値レジスタ群と、比較器から出力される一致信号と接続情報レジスタ群の選択されたレジスタの判定ビットとに基づいてイネーブル信号を生成する論理積ゲートと、生成されたイネーブル信号に基づいて出力値レジスタ群の選択されたレジスタからの出力値または分岐コードを、またそれ以外の場合には０を当該セルの出力とするセル出力選択手段と、使用するレジスタを指定するレジスタ選択信号に基づいて各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのレジスタ選択手段とを有し、上記制御部は、可変長符号化または復号の開始時に外部から設定される初期コードあるいは論理和回路の論理和出力としての分岐コードに基づいて、上記レジスタ選択信号を生成し各レジスタ選択手段に出力すると共に、比較動作を開始するセルを指定する比較命令信号を生成し対象とするセルのクロススイッチに出力するものである。
【発明の効果】
【０００７】
この発明によれば、テーブル装置は動的再構成可能に動作できるので、国際標準に準拠した可変長符号化／復号方式に対応したコンフィグレーションデータを設定することができ、様々な方式のテーブル装置を構成する効果がある。また、このテーブル装置を用いた可変長符号化／復号装置は、１つの回路で可変長符号化／復号を行うことができるため、小型化、かつ低消費電力化を可能にする効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
先ず、この発明に係るテーブル装置および可変長符号化／復号装置等の説明に登場する用語「コンフィグレーション」について述べる。コンフィグレーションとは、可変長符号化／復号方式ごとに対応したデータ変換内容をこの発明のテーブル装置が持つ各種レジスタ群に設定して可変長符号化テーブルあるいは可変長復号テーブルを形成することを言う。このコンフィグレーションを行う動作をコンフィグレーションモードとし、データ変換内容を含む信号をコンフィグレーションデータと呼ぶことにする。このコンフィグレーションデータは、符号化時と復号時に設定するものに分けられるが、両者に共通した用語で表すと、ビット選択値、比較対象値、出力値、分岐コード、接続情報、およびリーフもしくは分岐を示す判定ビットなどで構成されている。
【０００９】
ここで、ビット選択値とは、符号化および復号時に比較処理のために入力データから抽出するビット位置とビット数のことである。比較対象値とは、復号時においては、可変長復号テーブルで参照される、あるビット長に分離されたビットストリームを表し、一方、符号化時においては、可変長符号化テーブルで参照される、量子化後の直交変換係数を表すものである。この直交変換係数は、例えばＭＰＥＧ方式の場合のＤＣＴ係数に相当する。出力値とは、上記比較対象値に対応するもので、復号時においては、可変長復号テーブルで上記あるビット長に分離されたビットストリームを変換した結果である、上記逆量子化前の直交変換係数を表し、一方、符号化時においては、可変長符号化テーブルで係数を変換した結果である、不特定長のビットストリームを表すものである。分岐コードとは、この発明の比較動作で用いた複数のレジスタ群のレジスタを次に使用するレジスタに変更するレジスタ選択値と、次に比較動作を開始させるセルを指定する指定コードとを含んでおり、この発明の出力値レジスタ群のあるレジスタに上記出力値の代わりに設定し、比較動作を行うセルを動的に再構成するデータである。接続情報とは、この発明で登場するセルが複数の場合に対象とする比較動作を自セルで行うか、隣接するセルで行うか、またはその両方で行うかをクロススイッチで振分けるための指示データである。リーフもしくは分岐を示す判定ビットとは、セル内で現在対象としている比較動作で一致が得られた場合に、その動作が最終であることを表すリーフと、あるいは各レジスタ群のレジスタの変更を要する分岐であることを表す判定用のデータである。なお、この判定ビットは、この実施の形態１では、上記接続情報と同じレジスタ群で保持されているが、別の専用のレジスタ群で保持させて用いるようにすることもできる。
【００１０】
図１はこの発明の実施の形態１による可変長符号化／復号装置の概略構成を示すブロック図である。
入出力ポート１は、可変長符号化時には画像データを取り込み、かつ可変長符号化／復号装置４で符号化したビットストリームを出力し、一方、可変長復号時にはビットストリームを取り込み、かつ可変長符号化／復号装置４で復号した画像データを出力するためのポートである。ＣＰＵ（Central Processing Unit）２は、各部の制御および動画像符号化／復号処理のうち可変長符号化／復号以外の処理を行う手段である。メモリ３は、ＣＰＵ２が処理する命令領域およびコンフィグレーションデータ等を格納する領域を持つ。バスライン５は、入出力ポート１、ＣＰＵ２、メモリ３および可変長符号化／復号装置４のデータ転送に使用する経路である。
【００１１】
可変長符号化／復号装置４は、バスインターフェース（以下バスＩ／Ｆ）６、ビットストリームメモリ７、係数データメモリ８、アンパック部９、パック部１０、テーブル装置１１および制御レジスタ１２から構成されている。ここで、係数データメモリ８は、符号化される係数データあるいは復号された係数データを格納する手段である。アンパック部９は、復号時にビットストリームメモリ７から、ＣＰＵバスのデータ幅などのビット数単位で読み込んだ固定長のビットストリームを、テーブル装置１１による復号で消費したビット数分だけシフトしてテーブル装置１１の入力データとして出力する手段である。パック部１０は、符号化時にテーブル装置１１の符号化された出力データとして得られた可変長コードのビットストリームをＣＰＵバスのデータ幅などのビット数単位（固定長データ）にパッキングしてビットストリームメモリ７に格納する手段である。制御レジスタ１２は、外部リセット信号２３によりリセットされ、ＣＰＵ２からの指示により、コンフィグレーション、符号化または復号時にテーブル装置１１への入力データを選択するための入力データ選択信号２７やテーブル装置１１で比較動作の開始時に用いる各レジスタ群のレジスタの選択や複数のセル構成の場合の比較動作を開始するセルを指定する初期コードを設定する手段である。
【００１２】
線１３は、可変長符号化および復号の開始直前に、バスＩ／Ｆ６を通してＣＰＵ２からテーブル装置１１のレジスタに設定するコンフィグレーションデータとコンフィグレーションデータを書き込むレジスタを指定するレジスタ指定アドレス信号を転送するための信号線である。線１４は、ＣＰＵ２から制御レジスタ１２へ書き込みと読み出しを行うための信号線である。線１５は、可変長符号化／復号装置４を構成する各部の動作モードを設定し、各部から制御レジスタ１２に対しての書き込みと読み出しを行うための信号線である。
【００１３】
また、線１６は、ＣＰＵ２からビットストリームメモリ７に対してビットストリームデータの書き込みと読み出しを行うための信号線である。線１７は、復号時にビットストリームメモリ７からアンパック部９へビットストリームデータを転送するための信号線である。線１８は、復号時にアンパック部９からテーブル装置１１へのビットストリームデータの転送およびテーブル装置１１からアンパック部９へシフト値の送信を行う信号線である。線１９は、符号化時にテーブル装置１１からパック部１０への符号化データの転送を行う信号線である。線２０は、符号化時にパック部１０からビットストリームメモリ７へビットストリームデータを転送するものである。線２１は、符号化時に係数データメモリ８からテーブル装置１１への符号化するデータの転送、および復号時にテーブル装置１１から係数データメモリ８への係数データあるいは復号データの転送を行う信号線である。線２２は、符号化時にＣＰＵ２から係数データメモリ８への係数データあるいは符号化するデータの書き込みを行い、また、復号時に係数データあるいは復号データの読み込みを行うための信号線である。線２３は、可変長符号化／復号装置４をリセットするための外部から与えられる外部リセット信号の供給線である。
【００１４】
図２は、図１に示すテーブル装置１１の構成例を示すブロック図である。
テーブル装置１１は複数の動的再構成可能なセル（以下、セルとする）ＰＥ０〜ＰＥ８、マルチプレクサ（以下、ＭＵＸとする）２６、論理和回路３５、制御部５２を備えている。セルＰＥ０〜ＰＥ８は、それぞれ接続用エレメント２４と機能エレメント２５を有している。マルチプレクサ２６は、セルＰＥ０〜ＰＥ８への入力データ３１を選択する手段である。詳しくは、本可変長符号化／復号装置４がコンフィグレーションモード、符号化モード、復号モードのいずれに設定された場合に図１の制御レジスタ１２から与えられる入力データ選択信号２７に基づいて、テーブル装置１１内のセルＰＥ０〜ＰＥ８への入力データ３１として、コンフィグレーションデータ３０、ビットストリームデータ２８および係数データ２９の中から現在の処理モードに対応した信号の選択行う。
【００１５】
レジスタ指定アドレス信号３２は、コンフィグレーションモード時にバスＩ／Ｆ６から線路１３（図１）を介してコンフィグレーションデータと共に与えられ、コンフィグレーションデータの書き込み先のセルとそのセル内のレジスタを指定するための信号であり、セルＰＥ０〜ＰＥ８の全てに対して入力される。出力信号３４Ｏ０〜３４Ｏ８は、符号化モードおよび復号モード時に各セルＰＥ０〜ＰＥ８から出力される信号であり、後述する比較動作で一致したことを示すイネーブル信号５４（図３）と一致した際にレジスタから出力されるレジスタの出力値または分岐コード５５（図３）を含んでいる。論理和回路３５は、出力信号３４Ｏ０〜３４Ｏ８の論理和を求め、テーブル装置１１のデータ出力３６として得る手段である。制御部５２は、論理和回路３５のデータ出力３６が分岐コードである場合、その分岐コードを構成しているレジスタ選択値に基づいてセル内の各レジスタ群の中から次に使用するレジスタをそれぞれ指定するレジスタ選択信号５３を生成すると共に、分岐コードを構成しているセルの指定コードに基づいて次に比較動作を開始するセルを指定するルート信号３３Ｒ０〜３３Ｒ１１を生成する手段である。なお、ルート信号３３Ｒ０〜３３Ｒ１１は、複数のセルの配列において、外側に位置するセルを対称に与えられるようになっており、比較動作の開始時には比較命令信号として機能する。
【００１６】
図３は、図２に示したセルＰＥ０〜ＰＥ８の単体の構成を示すブロック図である。
この発明に係るセルを構成している接続用エレメント２４と機能エレメント２５には、図２の制御部５２で生成されるレジスタ選択信号５３が共通して入力されるようになっている。
接続用エレメント２４は、クロススイッチ３７、接続情報レジスタ群３８およびマルチプレクサ（以下、ＭＵＸとする）３９を有している。接続情報レジスタ群３８は、クロススイッチ３７が接続先を決めるための複数のレジスタを持つ接続情報を保持する手段である。この保持された接続情報は、比較動作を指示する比較命令信号の接続先を自己の機能エレメント２５にするか、隣接するセルにするか、またはその両方かをクロススイッチ３８で振分けるための指示データである。また、接続情報レジスタ群３８は、接続情報の他に、自己の機能エレメント２５で行う比較の結果の一致信号がリーフ（最終値）か、分岐であるかを示す判定ビットとを保持している。
【００１７】
ＭＵＸ３９は、レジスタ選択信号５３に基づいて、接続情報レジスタ群３８の中から使用するレジスタを選択し、その保持する接続情報６２を抽出してクロススイッチ３７へ出力し、同時に、そのセルがリーフもしくは分岐である場合には、そのことを示す判定ビット信号６１を選択されたレジスタから抽出して機能エレメント２５内の論理積ゲート４６へ出力するレジスタ選択手段である。クロススイッチ３７は、自己のセルの機能エレメント２５と上下左右に隣接するセルの機能エレメントとを接続するための手段で、ＭＵＸ３９で選択された接続情報６２に基づいて、ある隣接するセルから比較命令信号が入力された場合には自己の機能エレメント２５に比較命令信号６６を送るか、他の隣接するセルへ転送するか、またはその両方を行うかの処理を行い、また自己の機能エレメント２５から一致信号６７を受けた時には接続情報６２が指示する所望の隣接するセルへ比較命令信号を転送する。
クロススイッチ３７に関しての信号で、５６Ｉは上方向からの入力信号（比較命令信号）、５６Ｏは上方向への出力信号（比較命令信号）である。５７Ｉは右方向からの入力信号、５７Ｏは右方向への出力信号である。５８Ｉは下方向からの入力信号、５８Ｏは下方向への出力信号である。５９Ｉは左方向からの入力信号、５９Ｏは左方向への出力信号である。比較命令信号６６は、隣接するセルからの入力信号５６Ｉ、５７Ｉ、５８Ｉ、５９Ｉによって与えられ、自己のセルの機能エレメント２５おいて比較動作を行うことを指示する信号である。
【００１８】
一方、機能エレメント２５では、ビット選択レジスタ群４０、比較対象レジスタ群４２、出力値レジスタ群４４、セレクタ４１、比較器４３、アドレスデコーダ４５、論理積ゲート４６およびマルチプレクサ（以下、ＭＵＸとする）４７，４８，４９，５０を有している。アドレスデコーダ４５は、コンフィグレーションモード時に入力されるレジスタ指定アドレス信号３２をデコードし、そのデコード出力６０を、コンフィグレーションデータを書き込むレジスタ群３８，４０，４２，４４それぞれのレジスタを指定する手段である。
ビット選択レジスタ群４０は、コンフィグレーションモード時に書き込まれ、入力データ（復号時はビットストリームデータ、符号化時は係数データ）から抽出するビット位置、およびビット数の選択値（ただし、符号化時は固定長の係数）を保持する複数のレジスタを持つ手段である。ＭＵＸ４７は、レジスタ選択信号５３に基づいてビット選択レジスタ群４０のレジスタを選択し、その保持する比較すべきビット位置、およびビット数を出力するレジスタ選択手段である。セレクタ４１は、ビット選択レジスタ群４０で選択されたビット位置、およびビット数に従って入力データ（復号時はビットストリームデータ、符号化時は係数データ）３１から対応するビット位置、およびビット数分のデータを比較データ６３として選択する手段である。
【００１９】
比較対象レジスタ群４２は、コンフィグレーションモード時に書き込まれ、ビット選択レジスタ群４０で保持する任意のビット数に対応した比較対象値（復号時はビット選択レジスタ群４０で保持するビット数と同等のビット数分のビットストリーム、符号化時は量子化後の直交変換係数）を保持する複数のレジスタを持つ手段である。ＭＵＸ４８は、レジスタ選択信号５３に基づいて比較対象レジスタ群４２のレジスタを選択し、その保持する比較対象値６４を出力するレジスタ選択手段である。比較器４３は、セレクタ４１によって選択された特定のビット数分の比較データ６３とＭＵＸ４８により比較対象レジスタ群４２から選択された比較対象値６４とを比較し、両者が一致した際に一致信号６７を出力する手段である。出力値レジスタ群４４は、コンフィグレーション時に書き込まれ、比較対象レジスタ群４２で保持する比較対象値に対応する出力値（復号時は直交変換係数、符号化時は不特定長のビットストリーム）、およびこれに代わる分岐コードを保持する複数のレジスタを持つ手段である。すなわち、出力値レジスタ群４４には、そのセルでの比較動作で一致した際に当該セルが最終値を求めるリーフとして指定されているものであれば、対応するレジスタに出力値が書き込まれ、一方、当該セルが分岐として指定さているものであれば、対応するレジスタに分岐コードが書き込まれていることになる。なお、分岐コードは、この実施の形態の冒頭にも述べたように、複数のレジスタ群のレジスタを次に使用するレジスタに変更するレジスタ選択値と、次に比較動作を開始させるセルを指定する指定コードを含んでいる。
【００２０】
ＭＵＸ４９は、レジスタ選択信号５３に基づいて出力値レジスタ群４４のレジスタを選択し、その保持する出力値または分岐コードを出力信号６５として出力するレジスタ選択手段である。論理積ゲート４６は、比較器４３から出力される一致信号６７とＭＵＸ３９からのリーフもしくは分岐を示す判定ビット６１の論理積をとり、出力値レジスタ群４４で保持するデータの出力を指示するイネーブル信号を生成する手段である。ＭＵＸ５０は、イネーブル信号に基づいてＭＵＸ４９により出力値レジスタ群４４から選択された出力値または分岐コードを選択し、それ以外、すなわち比較器４３から一致信号が出力されなかった場合、当該セルが比較対象のセルではなかった場合、および一致信号が出力されるがリーフでも分岐でもない、すなわちレジスタの変更なしに続きのビットを比較する他のセルが存在する場合には'０'を選択し、出力データ５５とするセル出力選択手段である。
【００２１】
次に、コンフィグレーションモードについて図１〜図３により説明する。
先ず、可変長符号化／復号装置４は、電源投入直後などに外部から与えられる外部リセット信号２３あるいは制御レジスタ１２の設定によるソフトウェアリセット信号によりリセットされる。リセット後、アンパック部９、パック部１０、テーブル装置１１は初期状態となり、ＣＰＵ２から起動指示があるまで状態を保持する。ＣＰＵ２は起動後に初期化動作として、可変長符号化または可変長復号に対応するコンフィグレーションデータをレジスタ指定アドレス信号と共にテーブル装置１１へ送信する。ＭＵＸ２６では、制御レジスタ１２から与えられる入力データ選択信号２７により、コンフィグレーションデータ３０を、テーブル装置１１を構成する各セルＰＥ０〜ＰＥ８への入力データ３１として選択する。各セルＰＥ０〜ＰＥ８内において、レジスタ指定アドレス信号３２がアドレスデコーダ４５でデコードされ、そのデコード信号６０により、各セルのレジスタ群３８，４０，４２，４４のそれぞれの中から書き込み対象となるレジスタが指定される。したがって、この指定された各レジスタに上記コンフィグレーションデータ３０の対応するデータが書き込まれる。この動作により、テーブル装置１１は可変長符号化テーブルあるいは可変長復号テーブルとして動作が可能な状態に設定されたことになる。
【００２２】
次に、図４に示す可変長復号テーブル例を基にコンフィグレーションデータのマッピング方法を説明する。
ここで、テーブル装置１１としては、例えば本来の可変長符号化／復号テーブルの全体（図４では可変長復号テーブル）の４分の１程度を構成できる個数の動的再構成可能なセル（図３）を用いて構成しておく。そして、その可変長符号化／復号テーブルの全体は、後述するように、これらのセル内で使用するレジスタを動的に変更することによって実現する。ここで求められることは、レジスタの変更回数を少なくすることであり、そのため、コンフィグレーションデータの各セルの各レジスタへのマッピングを、予め算出された比較一致確率に基づいて行うようにする。具体的には、可変長符号化では、比較一致確率の高い係数には短いコードが割り当てられているが、その比較一致確率の高いコードを先に比較するようにマッピングする。
【００２３】
図４において、例えば上４つの可変長符号に一致する確率は６５％であるものとする。テーブル装置１１を構成する各セルＰＥ０〜ＰＥ８で、入力データに対して、それぞれ２ビットのデータの比較を行うとした場合、図４の可変長復号テーブルの比較割り当ては図５に示すようになる。比較ポイントであるノードｎ１〜ｎ１７が持つ比較対象ビットパターン（例えばノードｎ３の場合、"１１"）と入力ビット列を比較し、一致したときはそのノードに接続された"子"のノード（ノードにさらに分岐して接続されているノード）において、続きの入力ビット列を比較する。図５の各ノードｎ１〜ｎ１７を図２の各セルＰＥ０〜ＰＥ８にマッピングした場合を図６に例示する。すなわち、セルＰＥ０にはｎ１、セルＰＥ１にはｎ５、セルＰＥ２にはｎ９、セルＰＥ３にはｎ２、セルＰＥ４にはｎ４、セルＰＥ５にはｎ８、セルＰＥ６にはｎ３、セルＰＥ７にはｎ６、セルＰＥ８にはｎ７がマッピングされる。矢印は比較動作時の流れを表す。一致確率の高い図４の上４つのコードを最初に構成し、これらのコードに一致しなかった場合、すなわちｎ７〜ｎ９に一致した場合のみ、レジスタの切り替えと次に処理するセルを指定するルート信号を変更することでテーブルの再構成を行うようにする。したがって、比較一致確率が６５％にあるコードに対しては、テーブルの再構成なしに出力データを得ることができ、レジスタの変更回数を最小限に抑えることができる。テーブルを再構成する動作については後述する。
【００２４】
次に、可変長復号の動作例を説明する。
復号動作は、上述のコンフィグレーションデータをテーブル装置１１のセルに書き込んだ後に行われる。図７において、まず、ＣＰＵ２はバスＩ／Ｆ６を介してビットストリームメモリ７に１マクロブロック分のブロックデータ相当のビットストリームデータを書き込む（矢印Ｄ１）。書き込み後、制御レジスタ１２の中の復号開始指示レジスタに復号開始信号を書き込み、入力データ選択信号２７（図２）をＭＵＸ２６（図２）に与えビットストリームデータを入力データ３１（図２）として選択することで復号動作を起動する。アンパック部９は、ビットストリームメモリ７から１マクロブロック分のブロックデータ相当のビットストリームを、ある特定のビット数単位で読み込み（矢印Ｄ２）、ＣＰＵ２あるいはテーブル装置１１から示されるシフト値に従ってそのビットストリームデータをシフトし、テーブル装置１１に対して常に有効なある特定のビット数分のビットストリームデータを出力する（矢印Ｄ３）。テーブル装置１１では、入力されたこの特定のビット数分のビットストリームに従って可変長復号し、係数データを係数データメモリ８に出力する（矢印Ｄ４）と同時に、テーブルの使用回数をクリアしたら割り込み信号でＣＰＵ２に通知する。復号完了の割り込み信号を受けたＣＰＵ２は、バスＩ／Ｆ６を介して係数データメモリ８から復号結果を読み出す（矢印Ｄ５）。
【００２５】
図４および図５に示すテーブルを例に、上記可変長復号時にテーブル装置１１内で行われる比較動作について、図８を用いて説明する。
図８において、まず、入力データ３１として入力される特定のビット数分のビットストリームを'１１００'とし、各セルＰＥ０〜ＰＥ８で比較できる最大ビット数を２ビットとする。また、各セルでは図６で示したようにマッピングした比較対象値（２ビットの太数字）を保持しているものとする。
復号モードにあるとき、ビットストリームデータ２８は、ＭＵＸ２６で入力データ選択信号２７によって、入力データ３１、すなわちビットストリームデータ'１１００'として選択され、全てのセルＰＥ０〜ＰＥ８に入力される。一方、制御部５２は、制御レジスタ１２（図７）の設定状態を見にいき、比較動作開始時に用いる各レジスタ群のレジスタの選択と比較動作を開始するセルを指定する初期コードを取り寄せ、この初期コードに基づいてルート信号３３Ｒ０とレジスタ選択信号５３を生成する。レジスタ選択信号５３は、すべてのセルＰＥ０〜ＰＥ８に対して入力され、各ＭＵＸ３９，４７，４８，４９によりレジスタ群３８，４０，４２，４４の最初に使用するレジスタをそれぞれ選択する。セルＰＥ０の上方向から入力されたルート信号３３Ｒ０（図３の５６Ｉに相当）は、セルＰＥ０の接続用エレメントのクロススイッチ（図３の３７）に与えられ、接続情報レジスタ群３８（図３）から得られた接続情報に基づいて、最初に比較を行うセルとしてセルＰＥ０，ＰＥ３，ＰＥ６を選択し、セルＰＥ３，ＰＥ６に伝送される。
【００２６】
ルート信号３３Ｒ０が入力されたセルＰＥ０，ＰＥ３，ＰＥ６の接続用エレメントは、接続情報に基づいてそれぞれの機能エレメントに比較命令信号６８Ｃ０，６８Ｃ３，６８Ｃ６（図３では６６に相当）として送信する。これら比較命令信号６８Ｃ０，６８Ｃ３，６８Ｃ６が入力された対応するセルＰＥ０，ＰＥ３，ＰＥ６の機能エレメントにおいて、各セルの比較対象レジスタ群（図３の４２に相当）が保持している各比較対象値、すなわちセルＰＥ０の'１０'、ＰＥ３の'００'、ＰＥ６の'１１'と、入力されたビットストリームデータ'１１００'のうち最初の２ビット'１１'とを比較器（図３の４３）で比較する。この場合のビットストリーム分'１１'は、セルＰＥ６が保持している比較対象値とのみ一致することになる。その結果、セルＰＥ６の機能エレメントのみが一致信号６９（図３では６７）を自己の接続用エレメントに対し出力する。なお、この場合、ビットストリームデータ'１１００'には続きの'００'が存在しているので、最初の比較対象値はリーフでも分岐でもないので、接続情報レジスタ群３８からはリーフもしくは分岐の判定ビット信号は出力されておらず、セルＰＥ６の論理積ゲート（図３の４６）からイネーブル信号は出力されず、ＭＵＸ５０の出力５５は'０'となる。
【００２７】
セルＰＥ６の接続用エレメントでは、上記一致信号６９が入力されたクロススイッチ（図３では３７）は、ＭＵＸ３９により接続情報レジスタ群３８のレジスタから抽出した接続情報に基づいて、子のノードにあたるセルＰＥ７，ＰＥ８，ＰＥ５，ＰＥ２に対し上記一致信号６９を比較命令信号７０として伝送する。比較命令信号７０が入力されたセルＰＥ７，ＰＥ８，ＰＥ５，ＰＥ２の接続用エレメントは、それぞれのクロススイッチにより、各々の機能エレメントに対応する比較命令信号７１Ｃ７，７１Ｃ８，７１Ｃ５，７１Ｃ２を送信する。比較命令信号が入力されたセルＰＥ７，ＰＥ８，ＰＥ５，ＰＥ２の機能エレメントにおいて、上記ビットストリームデータ'１１００'のうち、続きの２ビット'００'と、各セルの比較対象値、すなわちセルＰＥ７の'００'、ＰＥ８の'０１'、ＰＥ５の'１０'、ＰＥ２の'１１'とを比較する。この場合のビットストリームでは、セルＰＥ７の比較対象値とのみ一致する。この場合のセルＰＥ７（図５のｎ６）はリーフであるため、出力値レジスタ群（図３の４４）で保持している対応する出力値（直交変換係数）がＭＵＸ４９により抽出される。同時に、接続情報レジスタ群３８からはリーフもしくは分岐の判定ビット信号は選択され、論理積ゲート（図３の４６）からリーフもしくは分岐で一致したことを示すイネーブル信号（図３の５４）が出力される。ＭＵＸ５０は、このイネーブル信号に応じて出力値レジスタ群から抽出された出力値（図３の６５）を取り出し、セルＰＥ７はこの出力値とイネーブル信号を論理和回路３５への出力３４Ｏ７として取り出す。イネーブル信号が出力されると、すべてのセルＰＥ０〜ＰＥ８から出力される信号３４Ｏ０〜３４Ｏ８を論理和回路３５で演算して復号結果３６として出力する。この例の場合、リーフで、かつ比較で一致したセルはＰＥ７のみであり、それ以外のセルの出力信号は'０'であるため、復号結果であるデータ出力３６はセルＰＥ７の出力値３４Ｏ７となる。
【００２８】
また、入力データ３１のビットストリームデータ３１が、例えば'１１０１'であったとした場合、この段階で一致する比較対象値のセルはＰＥ８に相当することとなる。しかし、セルＰＥ８（図６のｎ７）は分岐として設定されているため、出力３４Ｏ８としては、出力値レジスタ群（図３の４４）に設定している分岐コードとなる。制御部５２は、この分岐コードに基づいてＭＵＸ（図３の３９，４７，４８，４９）に入力するレジスタ選択信号（図３の５３）を変更し、また比較動作を開始するセルを指定するルート信号を変更する。このことにより、データを既に保持しているレジスタの変更選択が行なわれ可変長復号テーブルは再構成される。テーブル再構成後のルート信号３３Ｒ０〜３３Ｒ１１のうちいずれかの信号が入力されることで比較開始セルが指定され、かつレジスタ選択信号により各レジスタ群の新たなレジスタが選択されることで、分岐点以下（'１１０１'より下位のビット）の比較が可能となる。このテーブルの再構成は、分岐コードの出力から新たなレジスタ選択信号、および始めに比較するセルを指定するルート信号を出力するまでの１クロックで行うことが可能である。
【００２９】
以上、可変長復号について説明したが、可変長符号化も同じ回路を用いて実行できる。可変長符号化では、図１において、テーブル装置１１への入力データ３１は係数データメモリ８から読み込まれる係数データ２９（図２）であり、固定長となる。またテーブル装置１１の出力はパック部１０に出力されるビットストリームであり、可変長となる。図９に可変長符号化の動作手順を示す。
符号化動作は、コンフィグレーションモードにより符号化のためのコンフィグレーションデータをテーブル装置１１のセルに書き込んで可変長符号化テーブルを形成した後に行われる。図９において、まず、ＣＰＵ２は、バスＩ／Ｆ６を介して、１マクロブロック分のブロックデータ相当の符号化を対象とする係数データを係数データメモリ８に書き込み（矢印Ｅ１）、書き込み後、制御レジスタ１２の中の符号化開始指示レジスタに符号化開始信号を書き込み、入力データ選択信号２７（図２）をＭＵＸ２６（図２）に与え係数データを入力データ３１として選択することで符号化動作を起動する。テーブル装置１１は、係数データメモリ８から係数データを、ある特定のビット数単位で読み込み（矢印Ｅ２）、入力されたこの特定のビット数分の係数データに従って可変長符号化し、符号化データをパック部１０へ出力する（矢印Ｅ３）。パック部１０は、変換されたビットストリームをＣＰＵバスのデータ幅などのビット数単位でビットストリームメモリ７に格納し（矢印Ｅ４）、同時に、１マクロブロックの符号化が完了したことを割り込み信号でＣＰＵ２に通知する。符号化完了の割り込み信号を受けたＣＰＵ２は、バスＩ／Ｆ６を介してビットストリームメモリ７から符号化結果を読み出す（矢印Ｅ５）。
可変長符号化モードは、図２および図３において、セルに選択入力される係数データは固定ビット（例、２３ビット）とするが、その他の処理行程は上記復号モードの説明と同様であるので、ここでは説明を省略する。
【００３０】
以上のように、この実施の形態１のテーブル装置１１は、国際標準に準拠した可変長符号化／復号方式に対応したコンフィグレーションデータを設定することができ、様々な方式の動的再構成可能なテーブルを構成することができる。また、このテーブル装置１１を用いた可変長符号化／復号装置は、１つの回路で可変長符号化／復号を行うことができるため、小型化、かつ低消費電力化を可能にする効果が得られる。
特に、各セルは、各レジスタ群のそれぞれが持つ複数のレジスタの中から使用するレジスタ１つを１クロックで選択し変更できる。また、現在使用している１つのセル集合体で比較できるビット数が、比較すべき最大ビット数を満足していなくても、複数のセルを再構成することで、最大ビット数の比較が可能となる。
なお、上記実施の形態１では、テーブル装置を、セルを複数個用いて構成しているが、入力データに対して比較処理するビット数を大きな値に設定することにより、１個のセルで構成することも可能である。その場合には、接続用エレメント２４の構成、論理積ゲート４６、マルチプレクサ５０は不要となり、比較命令信号も不要となるため分岐コードの内容や制御部５２の処理内容もレジスタの変更に関することに簡略化されることになる。
また、上記実施の形態１では、可変長符号化／復号装置として説明してきたが、テーブル装置１１を用いて可変長符号化装置あるいは可変長復号装置として別々に構成することも可能である。
【図面の簡単な説明】
【００３１】
【図１】この発明の実施の形態１による可変長符号化／復号装置の概略構成を示すブロック図である。
【図２】この発明の実施の形態１に係るテーブル装置の構成例を示すブロック図である。
【図３】この発明の実施の形態１に係る動的再構成可能なセルの単体の構成を示すブロック図である。
【図４】この発明の実施の形態１に係る可変長復号テーブルの例を示す説明図である。
【図５】この発明の実施の形態１に係る可変長復号テーブルの比較割り当てを示す説明図である。
【図６】この発明の実施の形態１に係る可変長復号テーブルのマッピング例を示す説明図である。
【図７】この発明の実施の形態１に係る可変長復号の動作例を示す可変長符号化／復号装置のブロック図である。
【図８】この発明の実施の形態１に係る可変長復号テーブルの動作例を示すブロック図である。
【図９】この発明の実施の形態１に係る可変長符号化の動作例を示す可変長符号化／復号装置のブロック図である。
【符号の説明】
【００３２】
１  入出力ポート、２  ＣＰＵ、３  メモリ、４  可変長符号化／復号装置、５  バスライン、６  バスインターフェース（バスＩ／Ｆ）、７  ビットストリームメモリ、８  係数データメモリ、９  アンパック部、１０  パック部、１１  テーブル装置、１２  制御レジスタ、２４  接続用エレメント、２５  機能エレメント、２６，３９，４７，４８，４９，５０  マルチプレクサ（ＭＵＸ）、３５  論理和回路、３７  クロススイッチ、３８  接続情報レジスタ群、４０  ビット選択レジスタ群、４１  セレクタ、４２  比較対象レジスタ群、４３  比較器、４４  出力値レジスタ群、４５  アドレスデコーダ、４６  論理積ゲート、５２  制御部、ＰＥ０〜ＰＥ８  動的再構成可能なセル。
【図１】
2006101171.tif 000003
【図２】
2006101171.tif 000004
【図３】
2006101171.tif 000005
【図４】
2006101171.tif 000006
【図５】
2006101171.tif 000007
【図６】
2006101171.tif 000008
【図７】
2006101171.tif 000009
【図８】
2006101171.tif 000010
【図９】
2006101171.tif 000011