(57)【特許請求の範囲】
【請求項１】
固定長ｎビット（ｎは２以上の任意数）で表されるビット値の種類数と同数の複数のセルであって、ｎビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、変換対象データの少なくとも一部を構成するｎビットの変換対象部分データを各々が入力し、入力した変換対象部分データと各々の比較対象値とを比較し、比較対象値と変換対象部分データが一致すれば一致信号を出力する複数のセルと、
複数種の可変長データ変換方式の各々に対応して定義されている複数の探索木であって、各階層の各ノードにｎビット以内のいずれかのビット数のビット値がノード値として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿ってノード値を連接することにより対応している可変長データ変換方式によるデータ変換後の全てのビット値を探索できる探索木の中から、変換対象データのデータ変換に適用する可変長データ変換方式に対応する探索木を対象探索木として指定する探索木指定部と、
前記探索木指定部により指定された対象探索木の階層のうちノード判定の対象となる階層を対象階層として指定する階層指定部と、
各探索木の階層単位でセルとノードとの対応関係を管理しており、一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、対象探索木の対象階層内のノードの中から一致セルに対応付けられているノードを一致ノードとして判定するノード判定部と、
各探索木のノードごとに、ノードに下位階層が連結していれば当該下位階層の識別子が示され、ノードに下位階層が連結していなければ出力値が示されるコンフィグレーションデータを記憶するコンフィグレーションメモリとを有し、
前記ノード判定部は、
ｎビットのノード値が割り当てられているノードに対して、比較対象値が当該ノードのノード値と一致するセルを対応付け、ｎビット未満のノード値が割り当てられているノードに対して、比較対象値のビットパターンが当該ｎビット未満のビット数の範囲で一致している２以上のセルを重複して対応付け、
前記階層指定部は、
前記対象探索木及び前記一致ノードに基づいて前記コンフィグレーションデータを参照し、前記一致ノードに対して下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、前記一致ノードに対して出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とするデータ処理装置。
【請求項２】
前記コンフィグレーションメモリは、
ノードごとに、ノード値のビット数と同数のシフト値が示されるコンフィグレーションデータを記憶し、
前記複数のセルは、
直近に比較対象値と比較した変換対象部分データから、直近に前記ノード判定部により判定された一致ノードに対して前記コンフィグレーションデータに示されているシフト値分をシフトして得られるｎビット分の変換対象データを新たな変換対象部分データとして入力し、入力した新たな変換対象部分データと各々の比較対象値とを比較することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記ノード判定部は、
セルとノードとの対応関係として、各探索木の階層単位で、セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを管理し、
一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、一致セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを抽出し、
前記階層指定部は、
前記ノード判定部により抽出されたアドレスに格納されている情報に下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記探索木指定部は、
同じ階層に属する２以上のノードに共通して同じビット数のノード値が割り当てられている探索木を指定することを特徴とする請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
前記探索木指定部は、
同じ階層に属する２以上のノードに異なるビット数のノード値が割り当てられている探索木を指定することを特徴とする請求項１〜３のいずれかに記載のデータ処理装置。
【請求項６】
固定長ｎビット（ｎは２以上の任意数）で表されるビット値の種類数と同数の複数のセルであって、ｎビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、比較指示を入力した場合に、変換対象データの少なくとも一部を構成するｎビットの変換対象部分データを入力し、入力した変換対象部分データと各々の比較対象値とを比較し、比較対象値と変換対象部分データが一致すれば一致信号を出力する複数のセルと、
複数種の可変長データ変換方式の各々に対応して定義されている複数の探索木であって、各階層の各ノードにｎビット以内のいずれかのビット数のビット値がノード値として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿ってノード値を連接することにより対応している可変長データ変換方式によるデータ変換後の全てのビット値を探索できる探索木の中から、変換対象データのデータ変換に適用する可変長データ変換方式に対応する探索木を対象探索木として指定する探索木指定部と、
前記探索木指定部により指定された対象探索木の階層のうちノード判定の対象となる階層を対象階層として指定する階層指定部と、
各探索木の階層単位でノードとセルとの対応関係を管理しており、一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、対象探索木の対象階層内のノードの中から一致セルに対応付けられているノードを一致ノードとして判定するノード判定部と、
各探索木のノードごとに、ノードに下位階層が連結していれば当該下位階層の識別子が示され、更に、前記複数のセルの中からセルを選択する際の基準となるビット数が選択基準ビット数として示され、ノードに下位階層が連結していなければ出力値が示されているコンフィグレーションデータを記憶するコンフィグレーションメモリと、
前記複数のセルの中から変換対象部分データと比較対象値との比較を行わせるセルを対象セルとして選択し、選択した対象セルに比較指示を出力するセル選択部とを有し、
前記ノード判定部は、
ｎビットのノード値が割り当てられているノードに対して、比較対象値が当該ノードのノード値と一致するセルを対応付け、ｎビット未満のノード値が割り当てられているノードに対して、比較対象値のビットパターンが当該ｎビット未満のビット数の範囲で一致している２以上のセルを重複して対応付け、
前記階層指定部は、
前記対象探索木及び前記一致ノードに基づいて前記コンフィグレーションデータを参照し、前記一致ノードに対して下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、更に、前記一致ノードに対して示されている選択基準ビット数を前記セル選択部に通知し、前記一致ノードに対して出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力し、
前記セル選択部は、
選択基準ビット数と選択すべきセルとの対応関係を管理しており、
前記階層指定部から選択基準ビット数が通知された場合に、通知された選択基準ビット数に対応するセルを対象セルとして選択することを特徴とするデータ処理装置。
【請求項７】
前記コンフィグレーションメモリは、
下位階層が連結しているノードに対して、下位階層に属するノードのノード値のビット数を選択基準ビット数として示すコンフィグレーションデータを記憶し、
前記セル選択部は、
選択基準ビット数ごとに、選択基準ビット数の範囲で比較対象値のビットパターンが相違している２以上のセルを対象セルとして管理しており、
前記階層指定部から選択基準ビット数が通知された場合に、通知された選択基準ビット数に対応する２以上のセルを対象セルとして選択することを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記セル選択部は、
前記階層指定部から通知された選択基準ビット数に対応させてビットマスクデータを生成し、生成したビットマスクデータを少なくとも対象セルに出力し、
前記複数のセルは、
前記セル選択部から比較指示とビットマスクデータを入力した場合に、比較対象値にビットマスクデータを適用して所定の演算を行い、変換対象部分データにビットマスクデータを適用して所定の演算を行い、比較対象値についての演算結果と変換対象部分データについての演算結果を比較し、両者が一致した場合に一致信号を出力することを特徴とする請求項６又は７に記載のデータ処理装置。
【請求項９】
前記コンフィグレーションメモリは、
ノードごとに、ノード値のビット数と同数のシフト値が示されるコンフィグレーションデータを記憶し、
前記複数のセルは、
直近に比較対象値と比較した変換対象部分データから、直近に前記ノード判定部により判定された一致ノードに対して前記コンフィグレーションデータに示されているシフト値分をシフトして得られるｎビット分の変換対象データを新たな変換対象部分データとして入力し、入力した新たな変換対象部分データと各々の比較対象値とを比較することを特徴とする請求項６〜８のいずれかに記載のデータ処理装置。
【請求項１０】
前記ノード判定部は、
セルとノードとの対応関係として、各探索木の階層単位で、セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを管理し、
一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、一致セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを抽出し、
前記階層指定部は、
前記ノード判定部により抽出されたアドレスに格納されている情報に下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とする請求項６〜９のいずれかに記載のデータ処理装置。
【請求項１１】
前記複数のセルは、
変換対象部分データとして、符号化対象データの少なくとも一部を構成するｎビットの符号化対象部分データを入力し
前記探索木指定部は、
複数種の可変長符号化方式の各々に対応して定義されている複数の探索木の中から、符号化対象データの符号化に適用する可変長符号化方式に対応する探索木を対象探索木として指定し、
前記階層指定部は、
前記符号化対象データの符号化値として出力値を出力することを特徴とする請求項１〜１０のいずれかに記載のデータ処理装置。
【請求項１２】
前記複数のセルは、
変換対象部分データとして、復号対象データの少なくとも一部を構成するｎビットの復号対象部分データを入力し
前記探索木指定部は、
複数種の可変長復号方式の各々に対応して定義されている複数の探索木の中から、復号対象データの復号に適用する可変長復号方式に対応する探索木を対象探索木として指定し、
前記階層指定部は、
前記復号対象データの復号値として出力値を出力することを特徴とする請求項１〜１１のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化技術及び可変長復号技術に関する。
【背景技術】
【０００２】
動画像の可変長符号化および可変長復号の方法に関しては用途なども考慮して各種改良が加えられ、国際標準符号化方式として、Ｈ．２６１、Ｈ．２６３やＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４など多数が存在する。
従来の可変長符号化／復号装置は、各種符号化方式に対応したテーブルデータ（ゼロラン数とレベル値との組み合わせデータに応じたアドレス上に、その組み合わせデータに応じた可変長符号化コードとその可変長符号化コードの符号長）をテーブルメモリに記憶することで、独自の可変長符号化／復号に固執することなく、国際標準方式を含む様々な可変長符号化／復号に対応していた。
また、可変長符号化装置と可変長復号装置とでは異なる回路構成を持ち、両機能を備えた可変長符号化／復号装置では、前記テーブルデータをテーブルメモリから取り出すために、入力データをテーブルメモリアドレスに変換することを特徴としていた（例えば、特許文献１）。
【０００３】
特許文献１の可変長符号化装置および可変長復号装置では、以下の課題（以下、課題１と表記する）が生じていた。
可変長符号化装置および可変長復号装置は、符号化と復号で回路構成が異なるため、符号化回路と復号回路をそれぞれ別個に設ける必要がある。
また、可変長符号化データと、その符号長を記憶するテーブルをメモリに実装しているため、メモリのビット幅は最長の可変長符号化データに合わせる必要があり、短い符号長の可変長符号化データにおいては無駄なメモリ領域が生じる。
【０００４】
上記課題１に対して、従来の可変長符号化／復号装置は、動的再構成可能な可変長符号化／復号テーブル部、復号時にビットストリームをテーブル部へ供給するアンパック部、符号化時にテーブル部から出力されたビットストリームをメモリ幅にパッキングするパック部、符号化結果または復号するビットストリームを格納するビットストリームメモリ、復号結果または符号化する係数を格納する係数メモリ、ＣＰＵから制御するための制御レジスタ、ＣＰＵとのＩ／Ｆを行うバスＩ／Ｆから構成され、符号化時と復号時で共通でないブロックはアンパック部とパック部のみであり、上記課題１の符号化回路と復号回路をそれぞれ別個に設ける必要がある問題を解決していた。
また、動的再構成可能な可変長符号化／復号テーブル部は、動的再構成可能なセルエレメントから構成されており、可変長符号化／復号コードテーブルを探索木と解釈し、細かく区切ったテーブルデータを各動的再構成可能なセルエレメントに割り当てることによって、上記課題１の無駄なメモリ領域が存在する問題を解決していた。
動的再構成可能なセルエレメントは、探索木の分岐構造を実現する接続用エレメントとノードを実現する機能エレメントから構成され、各セルには、探索木を実現するためのコンフィグレーションデータを書き込む、接続情報レジスタ群、ビット選択レジスタ群、比較対象レジスタ群、出力値レジスタ群が存在していた（例えば、特許文献２）。
【０００５】
特許文献２に記載の可変長符号化／復号装置では、以下の課題（以下、課題２と表記する）が生じていた。
テーブル部を構成する複数の動的再構成可能なセルエレメントは、それぞれ、複数のレジスタを持つ接続情報レジスタ群と、複数のレジスタを持つビット選択レジスタ群と、複数のレジスタを持つ比較対象レジスタ群と、複数のレジスタを持つ出力値レジスタ群を備えており、各種レジスタ群の複数のレジスタに対応するコンフィグレーションデータを書き込む処理に時間がかかっていた。
【０００６】
上記課題２に対して、従来の可変長符号化／復号装置は、テーブル部を１〜４ビットの固有の比較対象値の比較を行うセルエレメントで構成し、テーブルを構成するコンフィグレーションデータをコンフィグレーションメモリに保持することで、上記課題２の各種レジスタ群にコンフィグレーションデータを書き込む処理に時間がかかっていた問題を解決していた（例えば、特許文献３）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−３０８７１５号公報
【特許文献２】特開２００６−１０１１７１号公報
【特許文献３】特願２００８−５５３９４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、特許文献１の可変長符号化装置および可変長復号装置では、以下の課題１がある。
可変長符号化装置および可変長復号装置は、符号化と復号で回路構成が異なるため、符号化回路と復号回路をそれぞれ別個に設ける必要がある。
また、可変長符号化データと、その符号長を記憶するテーブルをメモリに実装しているため、メモリのビット幅は最長の可変長符号化データに合わせる必要があり、短い符号長の可変長符号化データにおいては無駄なメモリ領域が生じる。
【０００９】
また、特許文献２に記載の可変長符号化／復号装置では、以下の課題２がある。
テーブル部を構成する複数の動的再構成可能なセルエレメントは、それぞれ、複数のレジスタを持つ接続情報レジスタ群と、複数のレジスタを持つビット選択レジスタ群と、複数のレジスタを持つ比較対象レジスタ群と、複数のレジスタを持つ出力値レジスタ群を備えており、各種レジスタ群の複数のレジスタに対応するコンフィグレーションデータを書き込む処理に時間がかかっていた。
【００１０】
更に、特許文献３に記載の可変長符号化／復号装置では、以下の課題（以下、課題３と表記する）がある。
テーブル部を構成する複数のセルエレメントは、それぞれ１〜４ビットの固有の比較対象値との比較を行い、比較対象値のビット数が同じセルエレメント同士から構成されるセルグループ毎に比較命令を与えられるようにしていた。
例えば、図５の探索木は図２８に示すようにマッピングされるため、最初の比較では、比較命令信号Ｒ０のみが与えられ、セルグループＧＲ０の２個のセルエレメントのみで比較を行い、残りのセルグループＧＲ１〜ＧＲ４の２８個のセルエレメントは無効となっていた。
最初の比較がノードｎ１で一致したものとすると、次の比較では比較命令信号Ｒ３、Ｒ４のみが与えられ、セルグループＧＲ３、ＧＲ４の１６個のセルエレメントのみで比較を行い、残りのセルグループＧＲ０〜ＧＲ２の１４個のセルエレメントは無効となっていた。
このように、１回の比較時にほとんどのセルエレメントが無効状態となるケースが存在し、全セルエレメントの領域を有効に利用できていなかった。
【００１１】
この発明は、上記課題１〜３を解決することを主な目的とする。
【００１２】
より具体的には、課題１に対応させて、様々な国際標準方式に対応することができ、小型化、かつ低消費電力化を可能にする可変長符号化／復号装置を実現する動的再構成技術を用いたテーブル装置を得ることを主な目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化／復号装置、可変長符号化装置および可変長復号装置を得ることを主な目的とする。
【００１３】
また、この発明は、課題２に対応させて、コンフィグレーションデータの書き込み処理の短縮による高速化を可能にするテーブル装置を得ることを主な目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化／復号装置、可変長符号化装置および可変長復号装置を得ることを主な目的とする。
【００１４】
更に、この発明は、課題３に対応させて、セルエレメントの領域を有効に利用できる小型なテーブル装置を得ることを主な目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化／復号装置、可変長符号化装置および可変長復号装置を得ることを主な目的とする。
【課題を解決するための手段】
【００１５】
本発明に係るデータ処理装置は、
固定長ｎビット（ｎは２以上の任意数）で表されるビット値の種類数と同数の複数のセルであって、ｎビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、変換対象データの少なくとも一部を構成するｎビットの変換対象部分データを各々が入力し、入力した変換対象部分データと各々の比較対象値とを比較し、比較対象値と変換対象部分データが一致すれば一致信号を出力する複数のセルと、
複数種の可変長データ変換方式の各々に対応して定義されている複数の探索木であって、各階層の各ノードにｎビット以内のいずれかのビット数のビット値がノード値として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿ってノード値を連接することにより対応している可変長データ変換方式によるデータ変換後の全てのビット値を探索できる探索木の中から、変換対象データのデータ変換に適用する可変長データ変換方式に対応する探索木を対象探索木として指定する探索木指定部と、
前記探索木指定部により指定された対象探索木の階層のうちノード判定の対象となる階層を対象階層として指定する階層指定部と、
各探索木の階層単位でセルとノードとの対応関係を管理しており、一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、対象探索木の対象階層内のノードの中から一致セルに対応付けられているノードを一致ノードとして判定するノード判定部と、
各探索木のノードごとに、ノードに下位階層が連結していれば当該下位階層の識別子が示され、ノードに下位階層が連結していなければ出力値が示されるコンフィグレーションデータを記憶するコンフィグレーションメモリとを有し、
前記ノード判定部は、
ｎビットのノード値が割り当てられているノードに対して、比較対象値が当該ノードのノード値と一致するセルを対応付け、ｎビット未満のノード値が割り当てられているノードに対して、比較対象値のビットパターンが当該ｎビット未満のビット数の範囲で一致している２以上のセルを重複して対応付け、
前記階層指定部は、
前記対象探索木及び前記一致ノードに基づいて前記コンフィグレーションデータを参照し、前記一致ノードに対して下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、前記一致ノードに対して出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、セルの比較対象値を固定長とし、固定長ビットで表すことのできるビット値の種類数分のセルのみで構成し、固定長ビット未満の比較を行う場合には、比較対象値のうち比較したいビットまでのビットパターンが同じセル同士は、いずれのセルで一致しても同じノードに対応させているため、様々な国際標準方式に対応することができ、小型、高速、かつ消費電力の低い可変長符号化及び可変長復号が可能となる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１及び２に係る可変長符号化／復号装置の構成例を示す図。
【図２】実施の形態１に係るテーブル装置の構成例を示す図。
【図３】実施の形態１に係るセルの構成例を示す図。
【図４】実施の形態１に係る可変長復号テーブルの例を示す図。
【図５】実施の形態１に係る可変長復号テーブルの探索木化の例を示す図。
【図６】実施の形態１に係る可変長復号テーブルのマッピング例を示す図。
【図７】実施の形態１に係る可変長復号の動作例を示す図。
【図８】実施の形態１に係るテーブル装置の動作例を示す図。
【図９】実施の形態１に係るテーブル装置の動作例を示す図。
【図１０】実施の形態１に係るテーブル装置の動作例を示す図。
【図１１】実施の形態１に係る可変長符号化テーブルの例を示す図。
【図１２】実施の形態１に係る可変長符号化テーブルの探索木化の例を示す図。
【図１３】実施の形態１に係る可変長符号化テーブルのマッピング例を示す図。
【図１４】実施の形態１に係る可変長符号化の動作例を示す図。
【図１５】実施の形態１に係るテーブル装置の動作例を示す図。
【図１６】実施の形態１に係るテーブル装置の動作例を示す図。
【図１７】実施の形態１に係る同じ深さに異なるビット数のノードが混在する探索木の例を示す図。
【図１８】実施の形態１に係る同じ深さに異なるビット数のノードが混在する場合のマッピング例を示す図。
【図１９】実施の形態２に係るテーブル装置の構成例を示す図。
【図２０】実施の形態２に係るセルの構成例を示す図。
【図２１】実施の形態２に係るテーブル装置の動作例を示す図。
【図２２】実施の形態２に係るテーブル装置の動作例を示す図。
【図２３】実施の形態２に係るテーブル装置の動作例を示す図。
【図２４】実施の形態１に係るアドレスデコーダとコンフィグレーションデータの関係を示す図。
【図２５】実施の形態１に係るアドレスデコーダとコンフィグレーションデータの関係を示す図。
【図２６】実施の形態２に係るコンフィグレーションデータの例を示す図。
【図２７】実施の形態１及び２に係る可変長符号化／復号装置を実現するコンピュータ装置のハードウェア構成例を示す図。
【図２８】特許文献３による可変長符号化テーブルのマッピング例を示す図。
【発明を実施するための形態】
【００１８】
先ず、実施の形態１及び２に係るテーブル装置および可変長符号化／復号装置等の説明に登場する用語「コンフィグレーションデータ」について述べる。
コンフィグレーションとは、可変長符号化／復号方式ごとに対応したデータ変換内容を実施の形態１及び２に係るテーブル装置が持つコンフィグレーションメモリに設定して可変長符号化テーブルあるいは可変長復号テーブルを形成することを言う。
このデータ変換内容を含む信号を「コンフィグレーションデータ」と呼ぶことにする。
このコンフィグレーションデータは、符号化時と復号時に設定するものに分けられるが、両者に共通した用語で表すと、出力値、分岐コードなどで構成されている。
コンフィグレーションデータは、一例として、図２４（ｂ）に示す形式をもつ。
【００１９】
図２４の詳細は後述するが、コンフィグレーションデータにおいてコードフラグの欄には、出力値コードを示す値又は分岐コードを示す値が記述されている。
出力値コードが記述されているレコード（例えば、アドレス：ＸＸ５６７８のレコード）では、出力値が記述されている。
出力値は、復号時においては、可変長復号テーブルであるビット長に分離されたビットストリームを変換した結果である、逆量子化前の直交変換係数を表し、一方、符号化時においては、可変長符号化テーブルで係数を変換した結果である、不特定長のビットストリームを表すものである。
つまり、復号処理又は符号化処理において、出力値コードが記述されているレコードに到達した際には、出力値に示されている値を最終的な復号値又は符号化値として出力することができる。
分岐コードが記述されるレコード（例えば、アドレス：ＸＸ１２３４のレコード）では、現在のページの次に使用するページ番号を指定する値が含まれ、後述するセルを再構成する。
ページとは、階層構造の探索木における階層のことであり、本実施の形態では、最上位階層から順に下位方向に階層（ページ）を変えてセルの比較対象値と入力データとの比較動作が行われ、比較動作に基づいて該当の階層（ページ）に含まれる複数ノードのうち特定のノードが選択される。
そして、コンフィグレーションデータにおいて分岐コードが記述されているレコードでは、出力値は記述されておらず、探索木の下位の階層（ページ）が次ページ値の欄に記述されている。
復号処理又は符号化処理において、分岐コードが記述されているレコードに到達した際には、最終的な復号値又は符号化値はまだ得ることができず、探索木の下位の階層（ページ）についてセルの比較対象値と入力データとの比較動作を継続する必要がある。
また、各レコードに含まれるシフト値は、入力データのシフト値を指定する値であり、シフト後の入力データが次に比較対象値と比較される。
シフト値は具体的には入力データに対する右シフトの回数を示す。
なお、図２４のコンフィグレーションデータは一例であり、異なる形式のコンフィグレーションデータであってもよい。
【００２０】
また、実施の形態１及び２に登場する「比較対象値」とは、復号時においては、可変長復号テーブルで参照される、あるビット長に分離されたビットストリームを表し、一方、符号化時においては、可変長符号化テーブルで参照される、量子化後の直行変換係数を表すものである。
この直交変換係数は、例えばＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の場合のＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数に相当する。
【００２１】
実施の形態１．
図１は、実施の形態１に係る可変長符号化／復号装置４の概略構成を示すブロック図である。
【００２２】
図１において、入出力ポート１は、可変長符号化時には画像データを取り込み、かつ可変長符号化／復号装置４で符号化したビットストリームを出力し、一方、可変長復号時にはビットストリームを取り込み、かつ可変長符号化／復号装置４で復号した画像データを出力するためのポートである。
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２は、各部の制御および動画像符号化／復号処理のうち可変長符号化／復号以外の処理を行う手段である。
メモリ３は、ＣＰＵ２が処理する命令領域およびコンフィグレーションデータ等を格納する領域を持つ。
バスライン５は、入出力ポート１、ＣＰＵ２、メモリ３および可変長符号化／復号装置４のデータ転送に使用する経路である。
【００２３】
可変長符号化／復号装置４は、バスインターフェース６（以下、バスＩ／Ｆ６と表記する）、ビットストリームメモリ７、係数データメモリ８、アンパック部９、パック部１０、テーブル装置１１および制御レジスタ１２から構成されている。
【００２４】
係数データメモリ８は、符号化される係数データあるいは復号された係数データを格納する手段である。
アンパック部９は、復号時にビットストリームメモリ７から、ＣＰＵバスのデータ幅などのビット数単位で読み込んだ固定長のビットストリームを、テーブル装置１１による復号で消費したビット数分だけシフトしてテーブル装置１１の入力データとして出力する手段である。
パック部１０は、符号化時にテーブル装置１１の符号化された出力データとして得られた可変長コードのビットストリームをＣＰＵバスのデータ幅などのビット数単位（固定長データ）にパッキングしてビットストリームメモリ７に格納する手段である。
制御レジスタ１２は、外部リセット信号２３によりリセットされ、ＣＰＵ２からの指示により、コンフィグレーション、符号化または復号時にテーブル装置１１への入力データを選択するための入力データ選択信号２６やテーブル装置１１で用いる符号化または復号テーブルを指定するテーブル番号（図２の３０）、比較動作の開始時に用いるページ番号（図２の３１）を指定する初期コードを設定する手段である。
線１３は、可変長符号化および復号の開始直前に、バスＩ／Ｆ６を通してＣＰＵ２からテーブル装置１１のコンフィグレーションメモリ（図２の３７）に設定するコンフィグレーションデータを転送するための信号線である。
【００２５】
線１４は、ＣＰＵ２から制御レジスタ１２へ書き込みと読み出しを行うための信号線である。
線１５は、可変長符号化／復号装置４を構成する各部の動作モードを設定し、各部から制御レジスタ１２に対しての書き込みと読み出しを行うための信号線である。
また、線１６は、ＣＰＵ２からビットストリームメモリ７に対してビットストリームデータの書き込みと読み出しを行うための信号線である。
線１７は、復号時にビットストリームメモリ７からアンパック部９へビットストリームデータを転送するための信号線である。
線１８は、復号時にアンパック部９からテーブル装置１１へのビットストリームデータの転送およびテーブル装置１１からアンパック部９へシフト値の送信を行う信号線である。
線１９は、符号化時にテーブル装置１１からパック部１０への符号化データの転送を行う信号線である。
線２０は、符号化時にパック部１０からビットストリームメモリ７へビットストリームデータを転送するものである。
線２１は、符号化時に係数データメモリ８からテーブル装置１１への符号化するデータの転送、および復号時にテーブル装置１１から係数データメモリ８への係数データあるいは復号データの転送を行う信号線である。
線２２は、符号化時にＣＰＵ２から係数データメモリ８への係数データあるいは符号化するデータの書き込みを行い、また、復号時に係数データあるいは復号データの読み込みを行うための信号線である。
線２３は、可変長符号化／復号装置４をリセットするための外部から与えられる外部リセット信号の供給線である。
【００２６】
図２は、図１に示すテーブル装置１１の構成例を示すブロック図である。
テーブル装置１１は、データ処理装置の例である。
【００２７】
テーブル装置１１は複数のセルＰＥ０〜ＰＥ１５、マルチプレクサ２５（以下、ＭＵＸとする）、一致セル番号出力部３４、コンフィグレーションメモリ３７、アドレスデコーダ３２、テーブル制御部３６を備えている。
【００２８】
マルチプレクサ２５は、セルＰＥ０〜ＰＥ１５への入力データ２９を選択する手段である。
詳しくは、本可変長符号化／復号装置４が符号化モード、復号モードのいずれに設定された場合に図１の制御レジスタ１２から与えられる入力データ選択信号２６に基づいて、テーブル装置１１内のセルＰＥ０〜ＰＥ１５への入力データ２９として、符号化モードの場合には係数データ２８を選択し、復号モードの場合にはビットストリームデータ２７を選択する。
【００２９】
出力信号３３Ｏ０〜３３Ｏ１５は、符号化モードおよび復号モード時に各セルＰＥ０〜ＰＥ１５から出力される信号であり、比較動作で一致したことを示す一致信号である。
【００３０】
一致セル番号出力部３４は、出力信号３３Ｏ０〜３３Ｏ１５に基づいてセルＰＥ０〜ＰＥ１５のうち比較が一致したセルに対応する一致セル番号３５を出力する手段である。
【００３１】
コンフィグレーションメモリ３７は、可変長符号化または可変長復号の開始前にＣＰＵ２から書き込まれる出力値（復号時は直交変換係数、符号化時は不特定長のビットストリーム）、およびこれに代わる分岐コードであるコンフィグレーションデータ１３を保持する手段である。
すなわち、比較動作で一致した際に当該セルが最終値を求めるリーフとして指定されているものであれば、対応するメモリ領域に出力値が書き込まれ、一方、当該セルが分岐として指定されているものであれば、対応するメモリ領域に分岐コードが書き込まれていることになる。
なお、分岐コードは、この実施の形態の冒頭にも述べたように、次に使用するページ番号を指定する指定コードを含んでいる。
また、出力値コードおよび分岐コードには、入力データのシフト値を指定する指定コードを含んでいる。
【００３２】
アドレスデコーダ３２は、テーブル番号３０、ページ番号３１および一致セル番号３５を用いてこれに対応するコンフィグレーションメモリ３７のアドレス３８を生成する手段である。
【００３３】
テーブル番号３０は、可変長符号化／復号テーブル毎にあらかじめ番号を割り当て、使用するテーブルを指定するものである。
【００３４】
ページ番号３１は、後述する図５の可変長復号テーブルの探索木化で示すように各可変長符号化または復号テーブルをあるビット数以下に区切りテーブルを探索木と解釈したときの同時に比較できる部分木の集合単位であるページのうち、比較しようとする部分木が所属するページを指定するものである。
【００３５】
また、アドレスデコーダ３２は、比較対象値２４のうち４ビット未満のビットパターンと入力データを比較する場合、先頭から比較するビット数分のビットパターンが等しい比較対象値を持つセル同士においては、いずれのセルで比較が一致した場合も、等しいコンフィグレーションメモリのアドレスを生成するアドレスマージ部４２を持つ。
【００３６】
図２４は、アドレスデコーダ３２とコンフィグレーションメモリ３７内のコンフィグレーションデータとの関係の一例を示す。
アドレスデコーダ３２では、後述するテーブル制御部３６から通知された現在対象となっているテーブル番号３０及びページ番号３１と、一致セル番号出力部３４から通知された一致セル番号とに基づきコンフィグレーションデータのアドレスを検索し、検索したアドレスをコンフィグレーションメモリ３７に通知する。
そして、コンフィグレーションメモリ３７では、通知されたアドレスに対応するレコードに記述されている内容をデータ出力３９としてテーブル制御部３６に通知する。
通知内容としては、コードフラグ（分岐コードか出力値コードか）、次ページ値及びシフト値であり、コードフラグが出力値コードの場合は更に出力値も通知される。
なお、図２４に示す方式は一例であり、これ以外の方式によってもよい。
例えば、アドレスデコーダ３２をＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）により構成してもよい。
【００３７】
テーブル制御部３６は、比較動作の開始時に外部から設定される初期コードに基づいてテーブル番号３０を生成し、比較動作の開始時、またはコンフィグレーションメモリ３７のデータ出力３９が分岐コードである場合に、初期コードあるいは分岐コードを構成しているページ番号を示すコード（次ページ値）とシフト値を示すコードに基づいて、次に使用するページ番号３１とシフト値４１を生成し、一方、コンフィグレーションメモリ３７のデータ出力３９が求めるべき最終出力値である場合（出力値コードの場合）、データ出力３９から出力データ４０とシフト値４１と次に使用するページ番号３１（先頭ページ）を生成し、出力する手段である。
【００３８】
図３は、図２に示すセル３００（ＰＥ０〜ＰＥ１５）の構成例を示すブロック図である。
セル３００は、比較器４３から構成される。
比較器４３は、入力データ２９とセル毎に固有な固定値である比較対象値２４とを比較し、両者が一致した際に一致信号３３を出力する手段である。
セル３００毎に固有な比較対象値２４は、全セルで同じビット長であり、例えば４ビットの場合は、４ビットで表現可能なすべての値を１つずつ各セルに割り当てる。
すなわち、セルＰＥ０の比較対象値２４は‘００００’である。
セルＰＥ１の比較対象値２４は‘０００１’である。
セルＰＥ２の比較対象値２４は‘００１０’である。
セルＰＥ３の比較対象値２４は‘００１１’である。
セルＰＥ４の比較対象値２４は‘０１００’である。
セルＰＥ５の比較対象値２４は‘０１０１’である。
セルＰＥ６の比較対象値２４は‘０１１０’である。
セルＰＥ７の比較対象値２４は‘０１１１’である。
セルＰＥ８の比較対象値２４は‘１０００’である。
セルＰＥ９の比較対象値２４は‘１００１’である。
セルＰＥ１０の比較対象値２４は‘１０１０’である。
セルＰＥ１１の比較対象値２４は‘１０１１’である。
セルＰＥ１２の比較対象値２４は‘１１００’である。
セルＰＥ１３の比較対象値２４は‘１１０１’である。
セルＰＥ１４の比較対象値２４は‘１１１０’である。
セルＰＥ１５の比較対象値２４は‘１１１１’である。
入力データ２９は、各セルに対し、比較対象値２４と同等のビット数分が入力される。
【００３９】
つまり、本実施の形態では、固定長ｎビット（ｎは２以上の任意数）で表されるビット値の種類数と同数の複数のセル３００が配置される。
そして、本実施の形態では、ｎビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、変換対象データであるビットストリームデータ２７又は係数データ２８の少なくとも一部を構成するｎビットのデータ（変換対象部分データ）を各セルが入力し、入力したｎビットのデータ（変換対象部分データ）と各セルの比較対象値とを比較し、比較対象値とｎビットのデータ（変換対象部分データ）が一致すれば一致信号を出力する。
図２の例では、ｎ＝４であり、４ビットで表わされるビット値の種類数と同数の１６台のセルが配置されている。
そして、各セルでは、４ビットの固有の比較対象値が割り当てられ、ビットストリームデータ２７又は係数データ２８の少なくとも一部を構成する４ビットのデータを入力し、入力した４ビットのデータと各セルの比較対象値とを比較し、比較対象値と４ビットのデータが一致すれば一致信号を出力する。
【００４０】
次に、コンフィグレーションについて図１〜図２により説明する。
先ず、可変長符号化／復号装置４は、電源投入直後などに外部から与えられる外部リセット信号２３あるいは制御レジスタ１２の設定によるソフトウェアリセット信号によりリセットされる。
リセット後、アンパック部９、パック部１０、テーブル装置１１は初期状態となり、ＣＰＵ２から起動指示があるまで状態を保持する。
ＣＰＵ２は起動後に初期化動作として、可変長符号化または可変長復号に対応するコンフィグレーションデータ１３をテーブル装置１１へ送信する。
コンフィグレーションデータ１３は、テーブル装置１１を構成するコンフィグレーションメモリ３７へ入力される。
この動作により、テーブル装置１１は可変長符号化テーブルあるいは可変長復号テーブルとして動作が可能な状態に設定されたことになる。
【００４１】
次に、図４に示す可変長復号テーブル例を基にコンフィグレーションデータのマッピング方法を説明する。
【００４２】
ここで、テーブル装置１１は、一度に４ビットまでの比較を行えるものとすると、４ビットより大きいビット数を要する可変長符号化／復号テーブルを構成する場合、後述するように、探索木の同じ深さに属するノード同士を同じページにマッピングし、ページ番号３１を動的に変更することによってテーブル全体を実現する。
テーブル装置１１を構成する各セルＰＥ０〜ＰＥ１５は、４ビットまでの比較が可能であることから、図４の可変長復号テーブルの各可変長符号を１〜４ビットに区切り、図５に示すような探索木を作成する。
比較ポイントであるノードｎ０〜ｎ４１が持つ比較対象ビットパターン（例えばノードｎ１の場合、‘０’）と入力ビット列を比較し、一致したときはそのノードに接続された“子”のノード（ノードにさらに分岐して接続されている下位階層のノード、例えばノードｎ１の“子”ノードはノードｎ２〜ｎ１７）において、続きの入力ビット列を比較する。
このように、図５の探索木では、各階層の各ノードに４ビット以内のいずれかのビット数のビット値が比較対象ビットパターン（以下、ノード値ともいう）として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿って比較対象ビットパターンを連接することにより復号後の全てのビット値を探索できる。
例えば、図４の可変長復号テーブルに示されている「０００００１１１」（１０進数：７）は、ノードｎ１（ノード値：０）、ノードｎ２（ノード値：００００）、ノードｎ２５（ノード値：１１１）の組み合わせに対応する。
また、図５において共通の描画パターンになっているノードは共通の階層に属しており、共通のページに分類される。
【００４３】
図５の各ノードｎ０〜ｎ４１を図２の各セルＰＥ０〜ＰＥ１５にマッピングした場合を図６に示す。
【００４４】
図５の探索木において、最初に同じ深さに属するノードはノードｎ０とノードｎ１である。
従って、１ページ目にはノードｎ０とｎ１をマッピングするが、各セルの比較対象値が４ビットであるのに対し、ノードｎ０とノードｎ１の比較対象ビットパターンは１ビット（ノードｎ０は‘１’、ノードｎ１は‘０’）である。
これを、４ビットの比較を行う各セルにマッピングするには、先頭から１ビットまでのビットパターンが同じセル同士、すなわち、先頭から１ビットまでのビットパターンが‘０’であるセルＰＥ０〜ＰＥ７には、すべてノードｎ１をマッピングし、一方、先頭から１ビットまでのビットパターンが‘１’であるセルＰＥ８〜ＰＥ１５には、すべてノードｎ０をマッピングする。
これは、入力データの２ビット目から４ビット目のビットパターンに関わらず１ビット目のみによって一致するノードが決定することを意味しており、すなわち、１ビットの比較を行っていることと等しい。
なお、図６では、各セルがマッピングされているノードの比較対象ビットパターン（１ページ目では、先頭１ビットの０又は１）に下線を付している。
【００４５】
続いて、次に同じ深さに属するノードはノードｎ２〜ｎ１７である。
従って、２ページ目には、ノードｎ２〜ｎ１７をマッピングする。
ノードｎ２〜ｎ１７は、比較対象ビットパターンが４ビットであるため、それぞれ対応するセルにマッピングする。
すなわち、セルＰＥ０にはノードｎ２をマッピングする。
セルＰＥ１にはノードｎ３をマッピングする。
セルＰＥ２にはノードｎ４をマッピングする。
セルＰＥ３にはノードｎ５をマッピングする。
セルＰＥ４にはノードｎ６をマッピングする。
セルＰＥ５にはノードｎ７をマッピングする。
セルＰＥ６にはノードｎ８をマッピングする。
セルＰＥ７にはノードｎ９をマッピングする。
セルＰＥ８にはノードｎ１０をマッピングする。
セルＰＥ９にはノードｎ１１をマッピングする。
セルＰＥ１０にはノードｎ１２をマッピングする。
セルＰＥ１１にはノードｎ１３をマッピングする。
セルＰＥ１２にはノードｎ１４をマッピングする。
セルＰＥ１３にはノードｎ１５をマッピングする。
セルＰＥ１４にはノードｎ１６をマッピングする。
セルＰＥ１５にはノードｎ１７をマッピングする。
【００４６】
続いて、次に同じ深さに属するノードはノードｎ１８〜ｎ２５である。
従って、３ページ目にはノードｎ１８〜ｎ２５をマッピングするが、各セルの比較対象値が４ビットであるのに対し、ノードｎ１８〜ｎ２５の比較対象ビットパターンは３ビット（ノードｎ１８は‘０００’、ノードｎ１９は‘００１’、ノードｎ２０は‘０１０’、ノードｎ２１は‘０１１’、ノードｎ２２は‘１００’、ノードｎ２３は‘１０１’、ノードｎ２４は‘１１０’、ノードｎ２５は‘１１１’）である。
これを、４ビットの比較を行う各セルにマッピングするには、先頭から３ビットまでのビットパターンが同じセル同士、すなわち、先頭から３ビットまでのビットパターンが‘０００’であるセルＰＥ０とＰＥ１には、どちらもノードｎ１８をマッピングする。
また、先頭から３ビットまでのビットパターンが‘００１’であるセルＰＥ２とＰＥ３には、どちらもノードｎ１９をマッピングする。
また、先頭から３ビットまでのビットパターンが‘０１０’であるセルＰＥ４とＰＥ５には、どちらもノードｎ２０をマッピングする。
また、先頭から３ビットまでのビットパターンが‘０１１’であるセルＰＥ６とＰＥ７には、どちらもノードｎ２１をマッピングする。
また、先頭から３ビットまでのビットパターンが‘１００’であるセルＰＥ８とＰＥ９には、どちらもノードｎ２２をマッピングする。
また、先頭から３ビットまでのビットパターンが‘１０１’であるセルＰＥ１０とＰＥ１１には、どちらもノードｎ２３をマッピングする。
また、先頭から３ビットまでのビットパターンが‘１１０’であるセルＰＥ１２とＰＥ１３には、どちらもノードｎ２４をマッピングする。
また、先頭から３ビットまでのビットパターンが‘１１１’であるセルＰＥ１４とＰＥ１５には、どちらもノードｎ２５をマッピングする。
これは、入力データの４ビット目のビットパターンに関わらず１〜３ビット目のみによって一致するノードが決定することを意味しており、すなわち、３ビットの比較を行っているここと等しい。
【００４７】
続いて、次に同じ深さに属するノードはｎ２６〜ｎ４１である。
従って、４ページ目にはノードｎ２６〜ｎ４１をマッピングする。
ノードｎ２６〜ｎ４１は、比較対象ビットパターンが４ビットであるため、それぞれ対応するセルにマッピングする。
すなわち、セルＰＥ０にはノードｎ２６をマッピングする。
セルＰＥ１にはノードｎ２７をマッピングする。
セルＰＥ２にはノードｎ２８をマッピングする。
セルＰＥ３にはノードｎ２９をマッピングする。
セルＰＥ４にはノードｎ３０をマッピングする。
セルＰＥ５にはノードｎ３１をマッピングする。
セルＰＥ６にはノードｎ３２をマッピングする。
セルＰＥ７にはノードｎ３３をマッピングする。
セルＰＥ８にはノードｎ３４をマッピングする。
セルＰＥ９にはノードｎ３５をマッピングする。
セルＰＥ１０にはノードｎ３６をマッピングする。
セルＰＥ１１にはノードｎ３７をマッピングする。
セルＰＥ１２にはノードｎ３８をマッピングする。
セルＰＥ１３にはノードｎ３９をマッピングする。
セルＰＥ１４にはノードｎ４０をマッピングする。
セルＰＥ１５にはノードｎ４１をマッピングする。
【００４８】
なお、図５に示した探索木及び図６に示したマッピング例は、論理的なものであり、実際にテーブル装置１１で使用する情報は、図５の探索木及び図６のマッピングに対応させたアドレスデコーダ３２のテーブル及びコンフィグレーションデータ（図２４）である。
そして、アドレスデコーダ３２は、４ビット未満のノード値が割り当てられているノード（例えば、図６の１ページ目のノードｎ１）に対して、比較対象値のビットパターンが当該４ビット未満のビット数の範囲で一致している２以上のセル（例えば、ＰＥ０〜ＰＥ７）を重複して対応付けるテーブルを保有する。
一方、４ビットのノード値が割り当てられているノード（例えば、図６の２ページ目のノードｎ２）に対しては、アドレスデコーダ３２は、比較対象値がノード値と一致するセル（例えばセルＰＥ０）を対応付けるテーブルを保有する。
また、図５の探索木及び図６のマッピング、すなわち、図２４に示すアドレスデコーダのテーブル及びコンフィグレーションデータは、複数種の可変長復号方式に対応させて複数種定義されており、テーブル番号の指定により、復号（符号化）の対象となる可変長復号（符号化）方式に対応する探索木及びマッピング、換言すると、復号（符号化）に用いられる可変長復号（符号化）方式に対応するアドレスデコーダのテーブル及びコンフィグレーションデータが指定される。
テーブル番号は、初期コードによりテーブル制御部３６に通知され、また、テーブル制御部３６からアドレスデコーダ３２にテーブル番号３０として通知される。
【００４９】
このように、テーブル制御部３６は、探索木指定部の例である。
また、テーブル制御部３６は、コンフィグレーションメモリ３７からのデータ出力３９の内容が分岐コードである場合、つまり、一致セルの比較対象値と同値のノード値のノード（一致ノード）に対してコンフィグレーションデータに下位ページ（下位階層）のノードが示されている場合は、当該下位ページを次にノード判定の対象とするページ（対象階層）として指定し、ページ番号３１としてアドレスデコーダ３２に通知する。
一方、コンフィグレーションメモリ３７からのデータ出力３９の内容が出力値コードである場合、つまり、一致ノードに対して出力値が示されている場合は、テーブル制御部３６は、当該出力値を出力データ４０（復号値又は符号化値）として出力する。
このように、テーブル制御部３６は、階層指定部の例でもある。
【００５０】
また、前述した図２４の形式では、アドレスデコーダ３２がコンフィグレーションデータのアドレスを検索し、検索したアドレスをコンフィグレーションメモリ３７に通知しているが、機能的には、アドレスデコーダ３２は、図６に示すようにページ単位でセルとノードとの対応関係を管理しており、一致セル番号出力部３４から通知された一致セルに対応しているノードを検索し、検索したノードをコンフィグレーションメモリ３７を介してテーブル制御部３６に通知しているのと同視できる。
このため、アドレスデコーダ３２と一致セル番号出力部３４は、ノード判定部の例として捉えることができる。
また、このようにアドレスデコーダ３２は、実質的には一致セルに対応するノードを検索しているため、図２４の形式に代えて、例えば、図２５に示す形式としてもよい。
図２５では、アドレスデコーダ３２は、コンフィグレーションデータのアドレスの代わりにノードの識別子をテーブル番号、ページ番号３１、一致セル番号とに対応付けて管理し、ノードの識別子をコンフィグレーションメモリ３７に通知する。
そして、コンフィグレーションデータでは、図２４に示す要素に加えてノード識別子を管理しており、コンフィグレーションメモリ３７は、アドレスデコーダ３２から通知されたノード識別子をキーにして該当するレコードを検索し、抽出したレコードの内容をデータ出力３９としてテーブル制御部３６に通知する。
【００５１】
次に、可変長復号の動作例を説明する。
【００５２】
復号動作は、上述のコンフィグレーションデータ１３をテーブル装置１１のコンフィグレーションメモリ３７に書き込んだ後に行われる。
図７において、まず、ＣＰＵ２はバスＩ／Ｆ６を介してビットストリームメモリ７に１マクロブロック分のブロックデータ相当のビットストリームデータを書き込む（矢印Ｄ１）。
書き込み後、制御レジスタ１２の中の復号開始指示レジスタに復号開始信号を書き込み、入力データ選択信号２６をＭＵＸ２５（図２）に与えビットストリームデータを入力データ２９（図２）として選択することで復号動作を起動する。
アンパック部９は、ビットストリームメモリ７から１マクロブロック分のブロックデータ相当のビットストリームを、ある特定のビット数単位で読み込み（矢印Ｄ２）、ＣＰＵ２あるいはテーブル装置１１から示されるシフト値４１に従ってそのビットストリームデータをシフトし、テーブル装置１１に対して常に有効なある特定のビット数分のビットストリームデータを出力する（矢印Ｄ３）。
テーブル装置１１では、入力されたこの特定のビット数分のビットストリームに従って可変長復号し、係数データを係数データメモリ８に出力する（矢印Ｄ４）と同時に、テーブルの使用回数をクリアしたら割り込み信号でＣＰＵ２に通知する。
復号完了の割り込み信号を受けたＣＰＵ２は、バスＩ／Ｆ６を介して係数データメモリ８から復号結果を読み出す（矢印Ｄ５）。
【００５３】
図４および図５に示すテーブルを例に、上記可変長復号時にテーブル装置１１内で行われる比較動作について、図８、図９、図１０を用いて説明する。
ここでは、図４の可変長復号テーブルに示されている２進数「０００００１１１」を１０進数の「７」に復号する例を説明する。
【００５４】
図８において、まず、入力データ２９として入力される特定のビット数分のビットストリームが‘００００’であり、比較動作開始時のページ番号として図６に示した１ページ目が指定されているものとする。
復号モードにあるとき、ビットストリームデータ２７は、ＭＵＸ２５で入力データ選択信号２６によって、入力データ２９、すなわちビットストリームデータ‘００００’として選択され、各セルＰＥ０〜ＰＥ１５に対し、‘００００’がそれぞれ入力される。
一方、テーブル制御部３６は、制御レジスタ（図７の１２）の設定状態を見にいき、使用するテーブル番号と比較動作開始時に用いるページ番号を指定する初期コードを取り寄せ、この初期コードに基づいてテーブル番号３０とページ番号３１を生成する。
各セルは、入力されたビットストリームと各セルで固定されている固有の比較対象値２４とを比較器（図３の４３）で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’とビットストリーム‘００００’を比較する。
セルＰＥ１では比較対象値‘０００１’とビットストリーム‘００００’を比較する。
セルＰＥ２では比較対象値‘００１０’とビットストリーム‘００００’を比較する。
セルＰＥ３では比較対象値‘００１１’とビットストリーム‘００００’を比較する。
セルＰＥ４では比較対象値‘０１００’とビットストリーム‘００００’を比較する。
セルＰＥ５では比較対象値‘０１０１’とビットストリーム‘００００’を比較する。
セルＰＥ６では比較対象値‘０１１０’とビットストリーム‘００００’を比較する。
セルＰＥ７では比較対象値‘０１１１’とビットストリーム‘００００’を比較する。
セルＰＥ８では比較対象値‘１０００’とビットストリーム‘００００’を比較する。
セルＰＥ９では比較対象値‘１００１’とビットストリーム‘００００’を比較する。
セルＰＥ１０では比較対象値‘１０１０’とビットストリーム‘００００’を比較する。
セルＰＥ１１では比較対象値‘１０１１’とビットストリーム‘００００’を比較する。
セルＰＥ１２では比較対象値‘１１００’とビットストリーム‘００００’を比較する。
セルＰＥ１３では比較対象値‘１１０１’とビットストリーム‘００００’を比較する。
セルＰＥ１４では比較対象値‘１１１０’とビットストリーム‘００００’を比較する。
セルＰＥ１５では比較対象値‘１１１１’とビットストリーム‘００００’を比較する。
この場合、セルＰＥ０で比較が一致することになり、比較器（図３の４３）から一致信号（図３の３３）が出力される。
一致セル番号出力部３４は、一致セル番号３５と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルＰＥ０（図５のノードｎ１）のセル番号が一致セル番号３５として出力される。
アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５と先に設定されているテーブル番号３０およびページ番号３１（１ページ目）から、ノードｎ１（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
例えば、図２４（ａ）に示されるように、アドレスＸＸ１２３４が生成される。
ノードｎ１（図５）は分岐（下位階層が連結している）として設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には分岐コードが保持されており（例えば、図２４（ｂ）のアドレスＸＸ１２３４）、コンフィグレーションメモリ３７のデータ出力３９は分岐コードとなる。
テーブル制御部３６は、この分岐コード（例えば、図２４（ｂ）の次ページ値：ページ２）に基づいてページ番号３１を変更する。
このことにより、可変長復号テーブルは再構成される（ページが変化することによりノードとセルとのマッピングが変化する）。
ここでは、ページ番号３１により、２ページ目（図６）が選択されることで、ノードｎ１以下（先頭１ビットの‘０’より下位のビット）の比較が可能となる。
また、分岐コードに基づいてシフト値４１が生成される。
シフト値４１は、比較が一致したノードのノード値と同じビット値となる。
ここでは、比較が一致したノードｎ１のノード値が１ビットであることから、分岐コードにはシフト値１ビットを示すコードが含まれており、シフト値４１は‘１’となる。
ここでは入力データ２９が‘００００’である場合について説明したが、入力データ２９が‘０００１’でありセルＰＥ１で一致した場合、入力データ２９が‘００１０’でありセルＰＥ２で一致した場合、入力データ２９が‘００１１’でありセルＰＥ３で一致した場合、入力データ２９が‘０１００’でありセルＰＥ４で一致した場合、入力データ２９が‘０１０１’でありセルＰＥ５で一致した場合、入力データ２９が‘０１１０’でありセルＰＥ６で一致した場合、入力データ２９が‘０１１１’でありセルＰＥ７で一致した場合のいずれであっても、各セルにはＰＥ０と同様にノードｎ１がマッピングされている。
コンフィグレーションメモリ３７には、探索木のノードと一対一でデータが格納されているため、アドレスマージ部４２は、テーブル番号３０とページ番号３１に従って、一致セル番号３５がセルＰＥ０〜ＰＥ７のいずれを示していても、ノードｎ１（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
【００５５】
続いて、図９において、入力データ２９として、前の比較によって生成されたシフト値４１に基づいて１ビットシフトされたビットストリーム‘００００’が入力されるものとすると、各セルＰＥ０〜ＰＥ１５に対し、‘００００’がそれぞれ入力される。
各セルは、入力されたビットストリームと各セルで固定されている固有の比較対象値２４とを比較器（図３の４３）で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’とビットストリーム‘００００’を比較する。
セルＰＥ１では比較対象値‘０００１’とビットストリーム‘００００’を比較する。
セルＰＥ２では比較対象値‘００１０’とビットストリーム‘００００’を比較する。
セルＰＥ３では比較対象値‘００１１’とビットストリーム‘００００’を比較する。
セルＰＥ４では比較対象値‘０１００’とビットストリーム‘００００’を比較する。
セルＰＥ５では比較対象値‘０１０１’とビットストリーム‘００００’を比較する。
セルＰＥ６では比較対象値‘０１１０’とビットストリーム‘００００’を比較する。
セルＰＥ７では比較対象値‘０１１１’とビットストリーム‘００００’を比較する。
セルＰＥ８では比較対象値‘１０００’とビットストリーム‘００００’を比較する。
セルＰＥ９では比較対象値‘１００１’とビットストリーム‘００００’を比較する。
セルＰＥ１０では比較対象値‘１０１０’とビットストリーム‘００００’を比較する。
セルＰＥ１１では比較対象値‘１０１１’とビットストリーム‘００００’を比較する。
セルＰＥ１２では比較対象値‘１１００’とビットストリーム‘００００’を比較する。
セルＰＥ１３では比較対象値‘１１０１’とビットストリーム‘００００’を比較する。
セルＰＥ１４では比較対象値‘１１１０’とビットストリーム‘００００’を比較する。
セルＰＥ１５では比較対象値‘１１１１’とビットストリーム‘００００’を比較する。
この場合、セルＰＥ０で比較が一致することになり、比較器（図３の４３）から一致信号（図３の３３）が出力される。
一致セル番号出力部３４は、一致セル番号３５と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルＰＥ０（図５のノードｎ２）のセル番号が一致セル番号３５として出力される。
テーブル制御部３６は、前の比較によって生成されたページ番号３１（２ページ目）を出力しており、アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５とテーブル制御部３６から設定されているテーブル番号３０およびページ番号３１からノードｎ２（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
ノードｎ２（図５）は分岐として設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には分岐コードが保持されており、コンフィグレーションメモリ３７のデータ出力３９は分岐コードとなる。
テーブル制御部３６は、この分岐コードに基づいてページ番号３１を変更する。
このことにより、可変長復号テーブルは再構成される。
ここでは、ページ番号３１により、３ページ目（図６）が選択されることで、ノードｎ２以下（‘０＿００００’より下位のビット）の比較が可能となる。
また、分岐コードに基づいてシフト値４１が生成される。
ここでは、比較が一致したノードｎ２のビットパターンが４ビットであることから、分岐コードにはシフト値４ビットを示すコードが含まれており、シフト値４１は‘４’となる。
【００５６】
続いて、図１０において、入力データ２９として、前の比較によって生成されたシフト値４１に基づいて４ビットシフトされたビットストリーム‘１１１０’が入力されるものとすると、各セルＰＥ０〜ＰＥ１５に対し、‘１１１０’がそれぞれ入力される。
各セルは、入力されたビットストリームと各セルで固定されている固有の比較対象値２４とを比較器（図３の４３）で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’とビットストリーム‘１１１０’を比較する。
セルＰＥ１では比較対象値‘０００１’とビットストリーム‘１１１０’を比較する。
セルＰＥ２では比較対象値‘００１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ３では比較対象値‘００１１’とビットストリーム‘１１１０’を比較する。
セルＰＥ４では比較対象値‘０１００’とビットストリーム‘１１１０’を比較する。
セルＰＥ５では比較対象値‘０１０１’とビットストリーム‘１１１０’を比較する。
セルＰＥ６では比較対象値‘０１１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ７では比較対象値‘０１１１’とビットストリーム‘１１１０’を比較する。
セルＰＥ８では比較対象値‘１０００’とビットストリーム‘１１１０’を比較する。
セルＰＥ９では比較対象値‘１００１’とビットストリーム‘１１１０’を比較する。
セルＰＥ１０では比較対象値‘１０１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ１１では比較対象値‘１０１１’とビットストリーム‘１１１０’を比較する。
セルＰＥ１２では比較対象値‘１１００’とビットストリーム‘１１１０’を比較する。
セルＰＥ１３では比較対象値‘１１０１’とビットストリーム‘１１１０’を比較する。
セルＰＥ１４では比較対象値‘１１１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ１５では比較対象値‘１１１１’とビットストリーム‘１１１０’を比較する。
この場合、セルＰＥ１４で比較が一致することになり、比較器（図３の４３）から一致信号（図３の３３）が出力される。
一致セル番号出力部３４は、一致セル番号３５と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルＰＥ１４（図５のノードｎ２５）のセル番号が一致セル番号３５として出力される。
テーブル制御部３６は、前の比較によって生成されたページ番号３１（３ページ目）を出力しており、アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５とテーブル制御部３６から設定されているテーブル番号３０およびページ番号３１からノードｎ２５（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する（例えば、図２４（ａ）のＸＸ５６７８）。
ノードｎ２５（図５）はリーフとして設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には出力値コードが保持されており（例えば、図２４（ｂ）のアドレスＸＸ５６７８）、コンフィグレーションメモリ３７のデータ出力３９は出力値コードとなる。
テーブル制御部３６は、この出力値コードに基づいて出力データ４０（＝７、図４）を出力すると共に、シフト値４１を生成する。
ここでは、比較が一致したノードｎ２５のビットパターンが３ビットであることから、出力値コードにはシフト値３ビットを示すコードが含まれており、シフト値４１は‘３’となる。
すなわち、次のテーブルデータの比較時には、入力データ２９は現比較の４ビット目‘０’から開始されることになる。
また、テーブル制御部３６は、更に、次ページ値に示されているページ１を次のページ番号３１として出力する。
上記では入力データ２９が‘１１１０’である場合について説明したが、ノードｎ２５のビットパターンは３ビットであることから、入力データ２９が‘１１１１’でありセルＰＥ１５で一致した場合も、ＰＥ１４と同様にノードｎ２５がマッピングされている。アドレスマージ部４２は、テーブル番号３０とページ番号３１に従って、一致セル番号３５がセルＰＥ１４、ＰＥ１５のいずれを示していても、ノードｎ２５（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
【００５７】
以上、可変長復号について説明したが、可変長符号化も同じ回路を用いて実行できる。
可変長符号化では、図１において、テーブル装置１１への入力データ（図２の２９）は係数データメモリ８から読み込まれる係数データ（図２の２８）であり、固定長となる。
またテーブル装置１１の出力はパック部１０に出力されるビットストリームであり、可変長となる。
図１１に、可変長符号化テーブルの例を示す。
このテーブルは、Ｈ．２６４で使用されるＴｏｔａｌＣｏｅｆｆ／ＴｒａｉｌｉｎｇＯｎｅｓテーブルの一部を抜き出したものである（図４の可変長復号テーブルとは対の関係になっていない）。
可変長符号化は、複数の値の組み合わせを可変長符号化処理する場合が多く、Ｈ．２６４のＴｏｔａｌＣｏｅｆｆ／ＴｒａｉｌｉｎｇＯｎｅｓやＭＰＥＧ−２、ＭＰＥＧ−４のＲｕｎ／Ｌｅｖｅｌがこれにあたる。
ＴｏｔａｌＣｏｅｆｆは０〜１６の値をとるため５ビット、ＴｒａｉｌｉｎｇＯｎｅｓは０〜３の値をとるため２ビットのデータであり、上位５ビットにＴｏｔａｌＣｏｅｆｆ、下位２ビットにＴｒａｉｌｉｎｇＯｎｅｓを配置した７ビットの固定長データとして可変長符号化処理を行う。
先に示した可変長復号と同様に、固定長データを４ビット以下のデータに区切り探索木を生成し（図１２）、４ビットの比較を行うセルＰＥ０〜ＰＥ１５にマッピングする（図１３）。
【００５８】
図１４に可変長符号化の手順を示す。
符号化動作は、コンフィグレーションにより符号化のためのコンフィグレーションデータをテーブル装置１１のコンフィグレーションメモリ３７に書き込んで可変長符号化テーブルを形成した後に行われる。
図１４において、まず、ＣＰＵ２は、バスＩ／Ｆ６を介して、１マクロブロック分のブロックデータ相当の符号化を対象とする係数データを係数データメモリ８に書き込み（矢印Ｅ１）、書き込み後、制御レジスタ１２の中の符号化開始指示レジスタに符号化開始信号を書き込み、入力データ選択信号２６をＭＵＸ２５（図２）に与え、係数データを入力データ２９（図２）として選択することで符号化動作を起動する。
テーブル装置１１は、係数データメモリ８から係数データを、ある特定のビット数単位で読み込み（矢印Ｅ２）、入力されたこの特定のビット数分の係数データに従って可変長符号化し、符号化データをパック部１０へ出力する（矢印Ｅ３）。
パック部１０は、変換されたビットストリームをＣＰＵバスのデータ幅などのビット数単位でビットストリームメモリ７に格納し（矢印Ｅ４）、同時に、１マクロブロックの符号化が完了したことを割り込み信号でＣＰＵ２に通知する。
符号化完了の割り込み信号を受けたＣＰＵ２は、バスＩ／Ｆ６を介してビットストリームメモリ７から符号化結果を読み出す（矢印Ｅ５）。
【００５９】
図１１および図１２に示すテーブルを例に、上記可変長符号化時にテーブル装置１１内で行われる比較動作について、図１５および図１６を用いて説明する。
【００６０】
符号化モードにあるとき、係数データ２８は、ＭＵＸ２５で入力データ選択信号２６によって、入力データ２９、すなわち係数データ‘００１０’として選択され、各セルＰＥ０〜ＰＥ１５に対し、‘００１０’の係数データがそれぞれ入力される。
テーブル制御部３６（図２）は、制御レジスタ（図１４の１２）の設定状態を見にいき、使用するテーブル番号と比較動作開始時に用いるページ番号を指定する初期コードを取り寄せ、この初期コードに基づいてテーブル番号３０とページ番号３１を生成する。
各セルは、入力された係数データと各セルで固定されている固有の比較対象値２４とを比較器（図３の４３）で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’と係数データ‘００１０’を比較する。
セルＰＥ１では比較対象値‘０００１’と係数データ‘００１０’を比較する。
セルＰＥ２では比較対象値‘００１０’と係数データ‘００１０’を比較する。
セルＰＥ３では比較対象値‘００１１’と係数データ‘００１０’を比較する。
セルＰＥ４では比較対象値‘０１００’と係数データ‘００１０’を比較する。
セルＰＥ５では比較対象値‘０１０１’と係数データ‘００１０’を比較する。
セルＰＥ６では比較対象値‘０１１０’と係数データ‘００１０’を比較する。
セルＰＥ７では比較対象値‘０１１１’と係数データ‘００１０’を比較する。
セルＰＥ８では比較対象値‘１０００’と係数データ‘００１０’を比較する。
セルＰＥ９では比較対象値‘１００１’と係数データ‘００１０’を比較する。
セルＰＥ１０では比較対象値‘１０１０’と係数データ‘００１０’を比較する。
セルＰＥ１１では比較対象値‘１０１１’と係数データ‘００１０’を比較する。
セルＰＥ１２では比較対象値‘１１００’と係数データ‘００１０’を比較する。
セルＰＥ１３では比較対象値‘１１０１’と係数データ‘００１０’を比較する。
セルＰＥ１４では比較対象値‘１１１０’と係数データ‘００１０’を比較する。
セルＰＥ１５では比較対象値‘１１１１’と係数データ‘００１０’を比較する。
この場合、セルＰＥ２で比較が一致することになり、その比較器（図３の４３）から一致信号（図３の３３）が出力され、セルＰＥ２（図１２のノードｎ２）のセル番号が一致セル番号３５として出力される。
アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５と先に設定されているテーブル番号３０およびページ番号３１からノードｎ２（図１２）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
ＰＥ２（図１２のノードｎ２）は分岐として設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には分岐コードが保持されており、コンフィグレーションメモリ３７のデータ出力３９は分岐コードとなる。
テーブル制御部３６は、この分岐コードに基づいてページ番号３１を変更する。
このことにより、可変長符号化テーブルは再構成される。
ここでは、ノードｎ２（図１２）以下の比較を行うノードｎ１０〜ｎ１８（図１２）がマッピングされている３ページ目（図１３）が選択されることで、ノードｎ２以下（‘００１’より下位のビット）の比較が可能となる。
また分岐コードに基づいてシフト値４１が生成される。
ここでは、比較が一致したノードｎ２のビットパターンが３ビットであることから、分岐コードにはシフト値３ビットを示すコードが含まれており、シフト値４１は‘３’となる。
上記では入力データ２９が‘００１０’である場合について説明したが、ノードｎ２のビットパターンは３ビットであることから、入力データ２９が‘００１１’でありセルＰＥ３で一致した場合も、ＰＥ２と同様にノードｎ２がマッピングされている。アドレスマージ部４２は、テーブル番号３０とページ番号３１に従って、一致セル番号３５がセルＰＥ２、ＰＥ３のいずれを示していても、ノードｎ２（図１２）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
【００６１】
続いて、図１６において、入力データ２９として、前の比較によって生成されたシフト値４１に基づいて３ビットシフトされた係数データ‘００００’が入力されるものとすると、セルＰＥ０（図１２のノードｎ１０）で比較が一致することになり、セルＰＥ０のセル番号が一致セル番号３５として出力される。
アドレスデコーダ３２は、一致セル番号３５とテーブル番号３０およびページ番号３１からノードｎ１０（図１２）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
ノードｎ１０（図１２）はリーフであるため、アドレス３８で指定されるメモリ領域には出力値コードが保持されており、コンフィグレーションメモリ３７のデータ出力３９は出力値コードとなる。
テーブル制御部３６は、この出力値コードに基づいて出力データ４０（＝可変長符号‘０００００００１１１’、図１１）を出力すると共に、シフト値４１を生成する。
ここでは、比較が一致したノードｎ１０のビットパターンが４ビットであることから、出力値コードにはシフト値４ビットを示すコードが含まれており、シフト値４１は‘４’となる。
【００６２】
以上では、同じ深さのノード同士のビット数が等しい探索木を例に説明してきたが、同じ深さに異なるビット数のノードが混在する探索木についても、同じ回路を用いて実現できる。
【００６３】
図１７に、同じ深さに異なるビット数のノードが混在する探索木の例を示す。
ノードｎ０〜ｎ４は同じ深さに属するノードであるが、ノードｎ０は１ビット、ノードｎ１は２ビット、ノードｎ３、ｎ４は３ビットのビットパターンを持つノードである。
また、ノードｎ５〜ｎ１０は同じ深さに属するノードであるが、ノードｎ５〜ｎ７は２ビット、ノードｎ８、ｎ９は４ビット、ノードｎ１０は３ビットのビットパターンを持つノードである。
図１８に、図１７の探索木をマッピングした例を示す。
１ページ目には、最初に同時に比較すべきノードｎ０〜ｎ４をマッピングする。
先頭から２ビット目までのビットパターンが‘００’であるセルＰＥ０〜ＰＥ３にはノードｎ１を、先頭から３ビット目までのビットパターンが‘０１０’であるセルＰＥ４、ＰＥ５にはノードｎ３を、先頭から３ビット目までのビットパターンが‘０１１’であるセルＰＥ６、ＰＥ７にはノードｎ４を、先頭から１ビット目までのビットパターンが‘１’であるセルＰＥ８〜ＰＥ１５にはノードｎ０をマッピングする。
同様に、２ページ目には、ノードｎ３の“子”のノードにあたるノードｎ５〜ｎ１０をマッピングする。
先頭から２ビット目までビットパターンが‘００’であるセルＰＥ０〜ＰＥ３にはノードｎ５を、先頭から２ビット目までのビットパターンが‘０１’であるセルＰＥ４〜ＰＥ７にはノードｎ６を、先頭から２ビット目までのビットパターンが‘１０’であるセルＰＥ８〜ＰＥ１１にはノードｎ７を、ビットパターンが‘１１００’であるセルＰＥ１２にはノードｎ８を、ビットパターンが‘１１０１’であるセルＰＥ１３にはノードｎ９を、先頭から３ビット目までのビットパターンが‘１１１’であるセルＰＥ１４、ＰＥ１５にはノードｎ１０をマッピングする。
【００６４】
以上のように、この実施の形態１のテーブル装置１１は、国際標準に準拠した可変長符号化／復号方式に対応したコンフィグレーションデータを設定することができ、様々な方式の動的再構成可能なテーブルを構成することができる。
【００６５】
また、このテーブル装置１１を用いた可変長符号化／復号装置は、１つの回路で可変長符号化／復号を行うことができるため、小型化、かつ低消費電力化を可能にする効果が得られる。
【００６６】
また、現在使用している１つのセル集合体で比較できるビット数が、比較すべき最大ビット数を満足していなくても、セルを再構成することで、最大ビット数の比較が可能となる。
テーブルのコンフィグレーションデータをコンフィグレーションメモリ３７に保持することにより、規模の大きなテーブルに対しても比較動作の最中にコンフィグレーションデータを再度ＣＰＵ２から書き込み直す必要はなく、コンフィグレーションにかかるサイクル数を大幅に短縮できる。
【００６７】
また、セルの比較対象値を固定長（例えば４ビット）とし、固定長ビットで表すことのできるビットパターンの種類数分（例えば４ビットの場合は、１６種類）のセルのみでテーブル装置を構成するようにし、固定長ビット未満の比較を行う場合には、比較対象値のうち比較したいビットまでのビットパターンが同じセル同士は、いずれのセルで一致してもコンフィグレーションメモリ３７の同じメモリ領域を参照するようにアドレスデコーダ３２にアドレスマージ部４２を設けたことで、小型なテーブル装置を得られる。
つまり、各セルでは、対応付けられているノードのノード値のビット長にかかわらず毎回それぞれの比較対象値と固定長ビットの入力データとの比較を行う。
このため、固定長ビットを４ビットとした場合に、特許文献３のように、１〜４ビットの各段階に対して個別にセルを設ける必要がなく、また、ノード値のビット長によって比較処理を実施しないセルが生じるという無駄を排除することができる。
【００６８】
また、上記実施の形態１では、可変長符号化／復号装置として説明してきたが、テーブル装置１１を用いて可変長符号化装置あるいは可変長復号装置として別々に構成することも可能である。
【００６９】
以上、本実施の形態では、
固定長ｎビットで表されるビット値の種類数分のセルを設け、固有の比較対象値として各セルに各ビット値を割り当て、各セルはｎビットの入力データと比較対象値を比較し、両者が一致すれば一致信号を出力し、アドレスデコーダ３２とテーブル制御部３６は、いずれかの可変長符号化又は可変長復号方式に対応し、各階層の各ノードにｎビット以内のいずれかのビット値が割り当てられている探索木について、階層ごとに、一致信号を出力したセルの比較対象値と同じビット値のノードを特定しながら、探索木の下位方向に階層を辿ってノードの値を連接して符号化値又は復号値を生成し、ｎビット未満の比較を行う場合には、比較対象値のうち比較したいビットまでのビットパターンが同じセル同士は、いずれのセルで一致しても同じノードに対応付けるテーブル装置を説明した。
【００７０】
より詳しくは、本実施の形態では、
ある固定長ビットで表現可能なすべての値をセル毎に固有の比較対象値として１つずつ割り当て、符号化または復号する入力データとセル毎に固有の比較対象値とを比較することにより一致信号を得る複数のセルと、前記比較対象値に対応する符号化または復号に係る出力値および、これに代わる分岐コードを保持するコンフィグレーションメモリと、複数の前記セル毎に割り当てたセル番号のうち一致したセルに対応する一致セル番号を出力する手段と、前記一致セル番号と、使用する可変長符号化または復号テーブル毎に割り当てたテーブル番号と、各可変長符号化または復号テーブルをあるビット数以下に区切りテーブルを探索木と解釈したときの同時に比較できる部分木の集合単位であるページのうち比較しようとする部分木が所属するページを指定するページ番号に基づいて、対応する前記コンフィグレーションメモリのアドレスを生成するアドレスデコーダと、比較開始時に前記テーブル番号を設定し、比較開始時および前記コンフィグレーションメモリの出力が求めるべき最終出力値でない場合に次の入力データのシフト値と前記ページ番号を生成し、一方、前記コンフィグレーションメモリの出力が求めるべき最終出力である場合に次の入力データのシフト値と出力データを出力するテーブル制御部とを備え、
各セルは、前記入力データと前記セル毎に固有の比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器を有し、
前記アドレスデコーダは、セル毎に固有の比較対象値のうち、ある固定長ビット未満の一部分のビットパターンと入力データを比較する場合に、ある固定長ビット未満の一部分のビットパターンが等しい比較対象値を有するセル同士においては、いずれのセルで比較が一致した場合も、等しいコンフィグレーションメモリのアドレスを生成するアドレスマージ手段を有し、
前記テーブル制御部は、可変長符号化または復号の開始時に外部から設定される初期コードに基づいて前記テーブル番号を設定し、前記初期コードあるいは前記コンフィグレーションメモリの出力としての分岐コードに基づいて前記ページ番号を設定しアドレスデコーダに出力するテーブル装置を説明した。
【００７１】
また、本実施の形態では、
入力される可変長符号化される係数データあるいは可変長復号された係数データを格納する係数データメモリと、入力される復号対象のビットストリームあるいは符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項１記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、復号時に前記ビットストリームからビット数単位で読み込んだ固定長のビットストリームを、前記テーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号を指定する初期コードを設定する制御レジスタと、可変長符号化または復号の開始前に、前記外部ＣＰＵから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化／復号装置を説明した。
【００７２】
また、本実施の形態では、
入力される可変長符号化される係数データを格納する係数データメモリと、符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項１記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号を指定する初期コードを設定する制御レジスタと、可変長符号化の開始前に、前記外部ＣＰＵから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化装置を説明した。
【００７３】
また、本実施の形態では、
入力される復号されるビットストリームを格納するビットストリームメモリと、可変長復号された係数データを格納する係数データメモリと、復号時に前記ビットストリームメモリからビット数単位で読み込んだ固定長のビットストリームを、請求項１記載のテーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号を指定する初期コードを設定する制御レジスタと、可変長復号の開始前に、前記外部ＣＰＵから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長復号装置。
【００７４】
実施の形態２．
実施の形態２の場合、図１に示す制御レジスタ１２には、実施の形態１と同様に、入力データ選択信号２６やテーブル番号３０、ページ番号３１を指定する初期コードのほか、後述する比較ビット数４６を指定する初期コードの設定が含まれる。
【００７５】
図１９は、実施の形態２によるテーブル装置の構成を示すブロック図である。
【００７６】
テーブル装置１１は複数のセルＰＥ０〜ＰＥ１５、ＭＵＸ２５、一致セル番号出力部３４、コンフィグレーションメモリ３７、アドレスデコーダ３２、テーブル制御部３６、比較ビット制御部４４を備えている。
ＭＵＸ２５、一致セル番号出力部３４、アドレスデコーダ３２については、図２に示したテーブル装置１１と同じであるため、説明を省略する。
【００７７】
コンフィグレーションメモリ３７は、可変長符号化または可変長復号の開始前にＣＰＵ２から書き込まれる出力値（復号時は直交変換係数、符号化時は不特定長のビットストリーム）、およびこれに代わる分岐コードが含まれるコンフィグレーションデータ１３を保持する手段である。
なお、分岐コードは、次に使用するページ番号を指定する指定コード、入力データのシフト値を指定する指定コードのほか、セルＰＥ０〜ＰＥ１５で比較するビット数を指定する指定コードを含んでいる。
【００７８】
図２６は、本実施の形態に係るコンフィグレーションデータの例を示す。
図２６に示すコンフィグレーションデータでは、図２４（ｂ）に示したものと比較して、比較ビット数の欄が追加されている。
比較ビット数は、レコードが対象としているノードに下位階層が接続されている場合に（そのレコードが分岐コードのレコードである場合に）、次ページの入力データに対して比較処理を行うセルを選択する際の基準となるビット数（選択基準ビット数）である。
より具体的には、比較ビット数は、レコードが対象としているノードの下位階層のノードのノード値のビット数と同値である。
例えば、アドレスＸＸ１２３４に対応するレコードは図５のノードｎ１に対応しているが、このノードｎ１の下位階層のノードであるノードｎ２〜ｎ１７のノード値は４ビットであるため、このレコードの比較ビット数は４ビットとなっている。
後述の比較ビット制御部４４が、比較ビット数を用いて、次ページの入力データに対して比較対象値との比較処理を行うセルを選択する。
なお、図２６において、アドレスＸＸ５６７８に対応するレコードは図５のノードｎ２５に対応しており、ノードｎ２５はリーフであり下位階層のノードは存在しないが、出力値が出力された後は、処理が１ページ目に戻るため、１ページ目のノードｎ０、ノードｎ１のノード値のビット数である１ビットが比較ビット数に記述されている。
なお、リーフノードのレコードには比較ビット数は記述されていなくてもよい。
【００７９】
テーブル制御部３６は、比較動作の開始時に外部から設定される初期コードに基づいてテーブル番号３０を生成し、比較動作の開始時、またはコンフィグレーションメモリ３７のデータ出力３９が分岐コードである場合に、初期コードあるいは分岐コードを構成しているページ番号を示すコードとシフト値を示すコードと比較ビット数を示すコードに基づいて、次に使用するページ番号３１とシフト値４１を生成すると共に、比較ビット数出力部４５によって比較ビット数４６を生成する。
一方、コンフィグレーションメモリ３７のデータ出力３９が求めるべき最終出力値である場合、データ出力３９から出力データ４０とシフト値４１を生成し出力する。
【００８０】
比較ビット制御部４４は、比較ビット数４６に基づいて、次ページの入力データに対して比較対象値との比較処理を行わせるセル（対象セル）を選択し、選択したセルに入力データと比較対象値との比較を指示する。
より詳しくは、比較ビット制御部４４は、比較ビット数４６に基づいて、セルＰＥ０〜ＰＥ１５に与えるビットマスクデータ４７と、セルＰＥ０〜ＰＥ１５にそれぞれ与えるセル非動作信号４８Ｓ０〜４８Ｓ１５を生成する。
ビットマスクデータ４７は、比較ビット数４６が１ビットを示している場合は‘１０００’、２ビットを示している場合は‘１１００’、３ビットを示している場合は‘１１１０’、４ビットを示している場合は‘１１１１’となる。
セル非動作信号４８は、比較ビット数４６が１ビットを示している場合は、４８Ｓ０と４８Ｓ８は‘動作’を示す信号となり、それ以外は‘非動作’を示す信号となる。
２ビットを示している場合は、４８Ｓ０、４８Ｓ４、４８Ｓ８、４８Ｓ１２は‘動作’を示す信号となり、それ以外は‘非動作’を示す信号となる。
３ビットを示している場合は、４８Ｓ０、４８Ｓ２、４８Ｓ４、４８Ｓ６、４８Ｓ８、４８Ｓ１０、４８Ｓ１２、４８Ｓ１４は‘動作’を示す信号となり、それ以外は‘非動作’を示す信号となる。
４ビットを示している場合は、４８Ｓ０〜４８Ｓ１５はいずれも‘動作’を示す信号となる。
比較ビット制御部４４は、セル選択部の例である。
【００８１】
図２０は、図１９に示すセルＰＥ０〜ＰＥ１５の構成例を示すブロック図である。
セルは、セル無効化部４９、ビットマスク部５０ａ、５０ｂ、比較器４３から構成される。
セル無効化部４９は、セル非動作信号４８が‘非動作’を示す信号である場合、セル内に供給される電源を切断し、セル内を非動作状態とする手段である。
ビットマスク部５０は、ビットマスクデータ４７と入力データ２９、または、ビットマスクデータ４７と比較対象値２４のビット論理積をとり比較器４３に出力する。
比較器４３は、ビットマスク部５０の出力であるデータ５１ａと５１ｂとを比較し、両者が一致した際に一致信号３３を出力する手段である。
セル毎に固有な比較対象値２４は、全セルで同じビット長であり、例えば４ビットの場合は、４ビットで表現可能なすべての値から１つずつ各セルに割り当てられる。
すなわち、セルＰＥ０の比較対象値２４は‘００００’である。
セルＰＥ１の比較対象値２４は‘０００１’である。
セルＰＥ２の比較対象値２４は‘００１０’である。
セルＰＥ３の比較対象値２４は‘００１１’である。
セルＰＥ４の比較対象値２４は‘０１００’である。
セルＰＥ５の比較対象値２４は‘０１０１’である。
セルＰＥ６の比較対象値２４は‘０１１０’である。
セルＰＥ７の比較対象値２４は‘０１１１’である。
セルＰＥ８の比較対象値２４は‘１０００’である。
セルＰＥ９の比較対象値２４は‘１００１’である。
セルＰＥ１０の比較対象値２４は‘１０１０’である。
セルＰＥ１１の比較対象値２４は‘１０１１’である。
セルＰＥ１２の比較対象値２４は‘１１００’である。
セルＰＥ１３の比較対象値２４は‘１１０１’である。
セルＰＥ１４の比較対象値２４は‘１１１０’である。
セルＰＥ１５の比較対象値２４は‘１１１１’である。
入力データ２９は、各セルに対し、比較対象値２４と同等のビット数分が入力される。
一致信号３３は、セル内が動作状態である場合は、比較器４３による比較結果となり、セル内が非動作状態である場合は、不一致を示す‘０’にクリアされる。
【００８２】
図４および図５に示すテーブルを例に、上記実施の形態２のテーブル装置１１内で行われる比較動作について、図２１、図２２、図２３を用いて説明する。
本実施の形態でも、実施の形態１と同様に、図４の可変長復号テーブルに示されている２進数「０００００１１１」を１０進数の「７」に復号する例を説明する。
【００８３】
図２１において、まず、入力データ２９として入力される特定のビット数分のビットストリームを‘００００’とし、比較動作開始時のページ番号として図６に示した１ページ目が指定されているものとする。
また、１ページ目では１ビットまでの比較を行うため、比較開始時の比較ビット数として１ビットが指定されているものとする。
【００８４】
復号モードにあるとき、ビットストリームデータ２７は、ＭＵＸ２５で入力データ選択信号２６によって、入力データ２９、すなわちビットストリームデータ‘００００’として選択され、各セルＰＥ０〜ＰＥ１５に対し、‘００００’がそれぞれ入力される。
一方、テーブル制御部３６は、制御レジスタ（図７の１２）の設定状態を見にいき、使用するテーブル番号と比較動作開始時に用いるページ番号と比較動作開始時に用いるページに対応する比較ビット数を指定する初期コードを取り寄せ、この初期コードに基づいてテーブル番号３０とページ番号３１を生成すると共に、比較ビット数出力部４５によって比較ビット数４６を生成する。
比較ビット制御部４４は、比較ビット数４６が１ビットであるため、ビットマスクデータ４７を‘１０００’に設定し、また、セル非動作信号４８は４８Ｓ０と４８Ｓ８のみ‘動作’を指定し、それ以外は‘非動作’を指定する。
従って、セル非動作信号４８として‘非動作’を指定されたＰＥ１〜ＰＥ７、ＰＥ９〜ＰＥ１５は、電源を供給されない非動作状態となり、一致信号３３は‘０’にクリアされる。
一方、セルＰＥ０とＰＥ８では、ビットマスク部５０ａにより、入力されたビットストリーム２７がビットマスクデータ４７（＝‘１０００’）を用いてビットマスクされて、データ５１ａ（＝‘００００’）が得られ、また、ビットマスク部５０ｂにより、各セルで固有の比較対象値２４がビットマスクデータ４７（＝‘１０００’）を用いてビットマスクされて、データ５１ｂが得られ、データ５１ａとデータ５１ｂを比較器４３で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’とビットストリーム‘００００’、セルＰＥ８では比較対象値‘１０００’とビットストリーム‘００００’をそれぞれ比較する。
この場合、セルＰＥ０で比較が一致することになり、比較器４３から一致信号３３が出力される。
一致セル番号出力部３４は、一致セル番号３５と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルＰＥ０（図５のｎ１）のセル番号が一致セル番号３５として出力される。
アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５と先に設定されているテーブル番号３０およびページ番号３１（１ページ目）から、ノードｎ１（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
ノードｎ１（図５）は分岐として設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には分岐コードが保持されており、コンフィグレーションメモリ３７のデータ出力３９は分岐コードとなる。
テーブル制御部３６は、この分岐コードに基づいてページ番号３１を変更する。
このことにより、可変長復号テーブルは再構成される。
ここでは、ページ番号３１により、２ページ目（図６）が選択されることで、ノードｎ１以下（‘０’より下位のビット）の比較が可能となる。
また、分岐コードに基づいてシフト値４１が生成される。
ここでは、比較が一致したノードｎ１のビットパターンが１ビットであることから、分岐コードにはシフト値１ビットを示すコードが含まれており、シフト値４１は‘１’となる。
また、分岐コードに基づいて比較ビット数４６が生成される。
ここでは、２ページ目（図６）は４ビットまでの比較を行うため、比較ビット数４６として４ビットを生成する。
続いて、図２２において、入力データ２９として、前の比較によって生成されたシフト値４１に基づいて１ビットシフトされたビットストリーム‘００００’が入力されるものとする。
比較ビット制御部４４は、比較ビット数４６が４ビットであるため、ビットマスクデータ４７を‘１１１１’に設定し、また、セル非動作信号４８は４８Ｓ０〜４８Ｓ１５すべて‘動作’を指定する。
従って、セル非動作信号４８として‘動作’を指定されたＰＥ０〜ＰＥ１５では、ビットマスク部５０ａにより、入力されたビットストリーム２７がビットマスクデータ４７（＝‘１１１１’）を用いてビットマスクされて、データ５１ａ（＝‘００００’）が得られ、また、ビットマスク部５０ｂにより、各セルで固有の比較対象値２４がビットマスクデータ４７（＝‘１１１１’）を用いてビットマスクされて、データ５１ｂが得られ、データ５１ａとデータ５１ｂを比較器４３で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’とビットストリーム‘００００’を比較する。
セルＰＥ１では比較対象値‘０００１’とビットストリーム‘００００’を比較する。
セルＰＥ２では比較対象値‘００１０’とビットストリーム‘００００’を比較する。
セルＰＥ３では比較対象値‘００１１’とビットストリーム‘００００’を比較する。
セルＰＥ４では比較対象値‘０１００’とビットストリーム‘００００’を比較する。
セルＰＥ５では比較対象値‘０１０１’とビットストリーム‘００００’を比較する。
セルＰＥ６では比較対象値‘０１１０’とビットストリーム‘００００’を比較する。
セルＰＥ７では比較対象値‘０１１１’とビットストリーム‘００００’を比較する。
セルＰＥ８では比較対象値‘１０００’とビットストリーム‘００００’を比較する。
セルＰＥ９では比較対象値‘１００１’とビットストリーム‘００００’を比較する。
セルＰＥ１０では比較対象値‘１０１０’とビットストリーム‘００００’を比較する。
セルＰＥ１１では比較対象値‘１０１１’とビットストリーム‘００００’を比較する。
セルＰＥ１２では比較対象値‘１１００’とビットストリーム‘００００’を比較する。
セルＰＥ１３では比較対象値‘１１０１’とビットストリーム‘００００’を比較する。
セルＰＥ１４では比較対象値‘１１１０’とビットストリーム‘００００’を比較する。
セルＰＥ１５では比較対象値‘１１１１’とビットストリーム‘００００’を比較する。
この場合、セルＰＥ０で比較が一致することになり、比較器４３から一致信号３３が出力される。
一致セル番号出力部３４は、一致セル番号３５と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルＰＥ０（図５のｎ２）のセル番号が一致セル番号３５として出力される。
【００８５】
アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５と先に設定されているテーブル番号３０およびページ番号３１からノードｎ２（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
ノードｎ２（図５）は分岐として設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には分岐コードが保持されており、コンフィグレーションメモリ３７のデータ出力３９は分岐コードとなる。
テーブル制御部３６は、この分岐コードに基づいてページ番号３１を変更する。このことにより、可変長復号テーブルは再構成される。
ここでは、ページ番号３１により、３ページ目（図６）が選択されることで、ノードｎ２以下（‘０＿００００’より下位のビット）の比較が可能となる。
また、分岐コードに基づいてシフト値４１が生成される。
ここでは、比較が一致したノードｎ２のビットパターンが４ビットであることから、分岐コードにはシフト値４ビットを示すコードが含まれており、シフト値４１は‘４’となる。
また、分岐コードに基づいて比較ビット数４６が生成される。
ここでは、３ページ目（図６）は３ビットまでの比較を行うため、比較ビット数４６として３ビットを生成する。
【００８６】
続いて、図２３において、入力データ２９として、前の比較によって生成されたシフト値４１に基づいて４ビットシフトされたビットストリーム‘１１１０’が入力されるものとする。
比較ビット制御部４４は、比較ビット数４６が３ビットであるため、ビットマスクデータ４７を‘１１１０’に設定し、また、セル非動作信号４８は４８Ｓ０、４８Ｓ２、４８Ｓ４、４８Ｓ６、４８Ｓ８、４８Ｓ１０、４８Ｓ１２、４８Ｓ１４を‘動作’に指定し、それ以外は‘非動作’に指定する。
従って、セル非動作信号４８として‘非動作’を指定されたＰＥ１、ＰＥ３、ＰＥ５、ＰＥ７、ＰＥ９、ＰＥ１１、ＰＥ１３、ＰＥ１５は、電源を供給されない非動作状態となり、一致信号３３は‘０’にクリアされる。
一方、セル非動作信号４８として‘動作’を指定されたＰＥ０、ＰＥ２、ＰＥ４、ＰＥ６、ＰＥ８、ＰＥ１０、ＰＥ１２、ＰＥ１４では、ビットマスク部５０ａにより、入力されたビットストリーム２７がビットマスクデータ４７（＝‘１１１０’）を用いてビットマスクされて、データ５１ａ（＝‘１１１０’）が得られ、また、ビットマスク部５０ｂにより、各セルで固有の比較対象値２４がビットマスクデータ４７（＝‘１１１０’）を用いてビットマスクされて、データ５１ｂが得られ、データ５１ａとデータ５１ｂを比較器４３で比較する。
すなわち、セルＰＥ０では比較対象値‘００００’とビットストリーム‘１１１０’を比較する。
セルＰＥ２では比較対象値‘００１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ４では比較対象値‘０１００’とビットストリーム‘１１１０’を比較する。
セルＰＥ６では比較対象値‘０１１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ８では比較対象値‘１０００’とビットストリーム‘１１１０’を比較する。
セルＰＥ１０では比較対象値‘１０１０’とビットストリーム‘１１１０’を比較する。
セルＰＥ１２では比較対象値‘１１００’とビットストリーム‘１１１０’を比較する。
セルＰＥ１４では比較対象値‘１１１０’とビットストリーム‘１１１０’を比較する。
この場合、セルＰＥ１４で比較が一致することになり、比較器４３から一致信号３３が出力される。
一致セル番号出力部３４は、一致セル番号３５と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルＰＥ１４（図５のｎ２５）のセル番号が一致セル番号３５として出力される。
【００８７】
アドレスデコーダ３２は、一致信号が入力されると、同時に入力された一致セル番号３５と先に設定されているテーブル番号３０およびページ番号３１からノードｎ２５（図５）に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ３７のアドレス３８を生成する。
ノードｎ２５（図５）はリーフとして設定されているため、アドレスデコーダ３２によって生成されるアドレス３８に対応するコンフィグレーションメモリ３７の領域には出力値コードが保持されており、コンフィグレーションメモリ３７のデータ出力３９は出力値コードとなる。
テーブル制御部３６は、この出力値コードに基づいて出力データ４０（＝７、図４）を出力すると共に、シフト値４１を生成する。
ここでは、比較が一致したノードｎ２５のビットパターンが３ビットであることから、出力値コードにはシフト値３ビットを示すコードが含まれており、シフト値４１は‘３’となる。
すなわち、次のテーブルデータの比較時には、入力データ２９は現比較の４ビット目‘０’から開始されることになる。
【００８８】
以上のように、この実施の形態２のテーブル装置によれば、実際に比較するビット数が、ある固定長の比較対象値のビット数未満に制限できる場合には、使用するセルを限定し、使用しないセルへの電源供給を切断することができるため、テーブル装置の消費電力を低減する効果が得られる。
【００８９】
なお、本実施の形態では、図１９の構成のテーブル装置において可変長復号を行う例を説明したが、図１９の構成のテーブル装置において可変長符号化を行うことも可能である。
【００９０】
以上、本実施の形態では、
ある固定長ビットで表現可能なすべての値をセル毎に固有の比較対象値として１つずつ割り当て、符号化または復号する入力データとセル毎に固有の比較対象値とを比較することにより一致信号を得る複数のセルと、前記比較対象値に対応する符号化または復号に係る出力値および、これに代わる分岐コードを保持するコンフィグレーションメモリと、複数の前記セル毎に割り当てたセル番号のうち一致したセルに対応する一致セル番号を出力する手段と、前記一致セル番号と、使用する可変長符号化または復号テーブル毎に割り当てたテーブル番号と、各可変長符号化または復号テーブルをあるビット数以下に区切りテーブルを探索木と解釈したときの同時に比較できる部分木の集合単位であるページのうち比較しようとする部分木が所属するページを指定するページ番号に基づいて、対応する前記コンフィグレーションメモリのアドレスを生成するアドレスデコーダと、比較開始時に前記テーブル番号を設定し、比較開始時および前記コンフィグレーションメモリの出力が求めるべき最終出力値でない場合に次の入力データのシフト値と前記ページ番号を生成すると共に、セル毎に固有のある固定長ビットの比較対象値のうち実際に比較するビット数を指定する比較ビット数を生成し、一方、前記コンフィグレーションメモリの出力が求めるべき最終出力である場合に次の入力データのシフト値と出力データを出力するテーブル制御部と、前記比較ビット数に基づき、複数の前記セルのうち非動作にできるセルを指定するセル非動作信号と、前記入力データおよび前記セル毎に固有の比較対象値から比較ビットを選択するためのビットマスクデータを生成する比較ビット制御手段とを備え、
各セルは、前記セル非動作信号に基づき自セルを非動作状態に設定するセル無効化手段と、前記ビットマスクデータに基づき前記入力データと前記セル毎に固有の比較対象値から比較ビットを選択するビットマスク手段と、前記ビットマスク手段によって得られたデータ同士を比較し、両者が一致した際に一致信号を出力する比較器とを有し、
前記アドレスデコーダは、セル毎に固有の比較対象値のうち、前記比較ビット数未満の一部分のビットパターンと入力データを比較する場合に、前記比較ビット数未満の一部分のビットパターンが等しい比較対象値を有するセル同士においては、いずれのセルで比較が一致した場合も、等しいコンフィグレーションメモリのアドレスを生成するアドレスマージ手段を有し、
前記テーブル制御部は、前記比較ビット数を生成する比較ビット数出力手段を有し、可変長符号化または復号の開始時に外部から設定される初期コードに基づいて前記テーブル番号を設定し、前記初期コードあるいは前記コンフィグレーションメモリの出力としての分岐コードに基づいて前記ページ番号を設定しアドレスデコーダに出力すると共に、前記比較ビット数出力手段により比較ビット数を出力するテーブル装置を説明した。
【００９１】
また、本実施の形態では、
入力される可変長符号化される係数データあるいは可変長復号された係数データを格納する係数データメモリと、入力される復号対象のビットストリームあるいは符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項２記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、復号時に前記ビットストリームからビット数単位で読み込んだ固定長のビットストリームを、前記テーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号や比較ビット数を指定する初期コードを設定する制御レジスタと、可変長符号化または復号の開始前に、前記外部ＣＰＵから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化／復号装置を説明した。
【００９２】
また、本実施の形態では、
入力される可変長符号化される係数データを格納する係数データメモリと、符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項２記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号や比較ビット数を指定する初期コードを設定する制御レジスタと、可変長符号化の開始前に、前記外部ＣＰＵから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化装置を説明した。
【００９３】
また、本実施の形態では、
入力される復号されるビットストリームを格納するビットストリームメモリと、可変長復号された係数データを格納する係数データメモリと、復号時に前記ビットストリームメモリからビット数単位で読み込んだ固定長のビットストリームを、請求項２記載のテーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部ＣＰＵからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号や比較ビット数を指定する初期コードを設定する制御レジスタと、可変長復号の開始前に、前記外部ＣＰＵから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長復号装置を説明した。
【００９４】
最後に、実施の形態１及び２に示した可変長符号化／復号化装置４を実現するコンピュータ装置１００のハードウェア構成例について説明する。
図２７は、実施の形態１及び２に示した可変長符号化／復号化装置４を実現するコンピュータ装置１００のハードウェア資源の一例を示す図である。
なお、図２７の構成は、あくまでもコンピュータ装置１００のハードウェア構成の一例を示すものであり、コンピュータ装置１００のハードウェア構成は図２７に記載の構成に限らず、他の構成であってもよい。
【００９５】
図２７において、コンピュータ装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
また、図２等に示したセル群９０８もハードウェアとしてコンピュータ装置１００に含まれている。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１及び２で説明した係数データメモリ８、ビットストリームメモリ１７、制御レジスタ１２、コンフィグレーションメモリ３７は、例えばＲＡＭ９１４により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００９６】
通信ボード９１５は、例えば、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されている。
【００９７】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００９８】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
また、アドレスデコーダ３２が用いるテーブル（例えば図２４（ｂ）に示すテーブル）がＲＡＭ９１４に格納されていてもよい。
【００９９】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
コンピュータ装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【０１００】
上記プログラム群９２３には、実施の形態１及び２の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。
プログラムは、ＣＰＵ９１１により読み出され実行される。
【０１０１】
ファイル群９２４には、実施の形態１及び２の説明において、「〜の判断」、「〜の判定」、「〜の特定」、「〜の指定」、「〜の計算」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１及び２で示している矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。
また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【０１０２】
また、実施の形態１及び２の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１及び２で説明したフローチャートに示すステップ、手順、処理により、実施の形態１及び２に示した可変長符号化／復号化装置４を方法として把握することができる。
また、「〜部」、「〜手段」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１及び２の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態１及び２の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【０１０３】
このように、実施の形態１及び２に示す可変長符号化／復号化装置４は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータにより実現され、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【０１０４】
１  入出力ポート、２  ＣＰＵ、３  メモリ、４  可変長符号化／復号装置、５  バスライン、６  バスインターフェース、７  ビットストリームメモリ、８  係数データメモリ、９  アンパック部、１０  パック部、１１  テーブル装置、１２  制御レジスタ、１３  コンフィグレーションデータ、２３  外部リセット信号、２４  比較対象値、２５  マルチプレクサ、２６  入力データ選択信号、２７  ビットストリームデータ、２８  係数データ、２９  入力データ、３０  テーブル番号、３１  ページ番号、３２  アドレスデコーダ、３３  一致信号、３４  一致セル番号出力部、３６  テーブル制御部、３７  コンフィグレーションメモリ、４０  出力データ、４１  シフト値、４２  アドレスマージ部、４３  比較器、４４  比較ビット制御部、４５  比較ビット数出力部、４６  比較ビット数、４７  ビットマスクデータ、４８  セル非動作信号、４９  セル無効化部、５０  ビットマスク部、３００  セル。
【図１】
0005566254.tif 000002
【図２】
0005566254.tif 000003
【図３】
0005566254.tif 000004
【図４】
0005566254.tif 000005
【図５】
0005566254.tif 000006
【図６】
0005566254.tif 000007
【図７】
0005566254.tif 000008
【図８】
0005566254.tif 000009
【図９】
0005566254.tif 000010
【図１０】
0005566254.tif 000011
【図１１】
0005566254.tif 000012
【図１２】
0005566254.tif 000013
【図１３】
0005566254.tif 000014
【図１４】
0005566254.tif 000015
【図１５】
0005566254.tif 000016
【図１６】
0005566254.tif 000017
【図１７】
0005566254.tif 000018
【図１８】
0005566254.tif 000019
【図１９】
0005566254.tif 000020
【図２０】
0005566254.tif 000021
【図２１】
0005566254.tif 000022
【図２２】
0005566254.tif 000023
【図２３】
0005566254.tif 000024
【図２４】
0005566254.tif 000025
【図２５】
0005566254.tif 000026
【図２６】
0005566254.tif 000027
【図２７】
0005566254.tif 000028
【図２８】
0005566254.tif 000029