JP5566254B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP5566254B2
JP5566254B2 JP2010234103A JP2010234103A JP5566254B2 JP 5566254 B2 JP5566254 B2 JP 5566254B2 JP 2010234103 A JP2010234103 A JP 2010234103A JP 2010234103 A JP2010234103 A JP 2010234103A JP 5566254 B2 JP5566254 B2 JP 5566254B2
Authority
JP
Japan
Prior art keywords
data
node
cell
value
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010234103A
Other languages
English (en)
Other versions
JP2012090021A (ja
Inventor
友美 竹内
孝行 峯岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010234103A priority Critical patent/JP5566254B2/ja
Publication of JP2012090021A publication Critical patent/JP2012090021A/ja
Application granted granted Critical
Publication of JP5566254B2 publication Critical patent/JP5566254B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、可変長符号化技術及び可変長復号技術に関する。
動画像の可変長符号化および可変長復号の方法に関しては用途なども考慮して各種改良が加えられ、国際標準符号化方式として、H.261、H.263やMPEG1、MPEG2、MPEG4など多数が存在する。
従来の可変長符号化/復号装置は、各種符号化方式に対応したテーブルデータ(ゼロラン数とレベル値との組み合わせデータに応じたアドレス上に、その組み合わせデータに応じた可変長符号化コードとその可変長符号化コードの符号長)をテーブルメモリに記憶することで、独自の可変長符号化/復号に固執することなく、国際標準方式を含む様々な可変長符号化/復号に対応していた。
また、可変長符号化装置と可変長復号装置とでは異なる回路構成を持ち、両機能を備えた可変長符号化/復号装置では、前記テーブルデータをテーブルメモリから取り出すために、入力データをテーブルメモリアドレスに変換することを特徴としていた(例えば、特許文献1)。
特許文献1の可変長符号化装置および可変長復号装置では、以下の課題(以下、課題1と表記する)が生じていた。
可変長符号化装置および可変長復号装置は、符号化と復号で回路構成が異なるため、符号化回路と復号回路をそれぞれ別個に設ける必要がある。
また、可変長符号化データと、その符号長を記憶するテーブルをメモリに実装しているため、メモリのビット幅は最長の可変長符号化データに合わせる必要があり、短い符号長の可変長符号化データにおいては無駄なメモリ領域が生じる。
上記課題1に対して、従来の可変長符号化/復号装置は、動的再構成可能な可変長符号化/復号テーブル部、復号時にビットストリームをテーブル部へ供給するアンパック部、符号化時にテーブル部から出力されたビットストリームをメモリ幅にパッキングするパック部、符号化結果または復号するビットストリームを格納するビットストリームメモリ、復号結果または符号化する係数を格納する係数メモリ、CPUから制御するための制御レジスタ、CPUとのI/Fを行うバスI/Fから構成され、符号化時と復号時で共通でないブロックはアンパック部とパック部のみであり、上記課題1の符号化回路と復号回路をそれぞれ別個に設ける必要がある問題を解決していた。
また、動的再構成可能な可変長符号化/復号テーブル部は、動的再構成可能なセルエレメントから構成されており、可変長符号化/復号コードテーブルを探索木と解釈し、細かく区切ったテーブルデータを各動的再構成可能なセルエレメントに割り当てることによって、上記課題1の無駄なメモリ領域が存在する問題を解決していた。
動的再構成可能なセルエレメントは、探索木の分岐構造を実現する接続用エレメントとノードを実現する機能エレメントから構成され、各セルには、探索木を実現するためのコンフィグレーションデータを書き込む、接続情報レジスタ群、ビット選択レジスタ群、比較対象レジスタ群、出力値レジスタ群が存在していた(例えば、特許文献2)。
特許文献2に記載の可変長符号化/復号装置では、以下の課題(以下、課題2と表記する)が生じていた。
テーブル部を構成する複数の動的再構成可能なセルエレメントは、それぞれ、複数のレジスタを持つ接続情報レジスタ群と、複数のレジスタを持つビット選択レジスタ群と、複数のレジスタを持つ比較対象レジスタ群と、複数のレジスタを持つ出力値レジスタ群を備えており、各種レジスタ群の複数のレジスタに対応するコンフィグレーションデータを書き込む処理に時間がかかっていた。
上記課題2に対して、従来の可変長符号化/復号装置は、テーブル部を1〜4ビットの固有の比較対象値の比較を行うセルエレメントで構成し、テーブルを構成するコンフィグレーションデータをコンフィグレーションメモリに保持することで、上記課題2の各種レジスタ群にコンフィグレーションデータを書き込む処理に時間がかかっていた問題を解決していた(例えば、特許文献3)。
特開2001−308715号公報 特開2006−101171号公報 特願2008−553947号公報
上述のように、特許文献1の可変長符号化装置および可変長復号装置では、以下の課題1がある。
可変長符号化装置および可変長復号装置は、符号化と復号で回路構成が異なるため、符号化回路と復号回路をそれぞれ別個に設ける必要がある。
また、可変長符号化データと、その符号長を記憶するテーブルをメモリに実装しているため、メモリのビット幅は最長の可変長符号化データに合わせる必要があり、短い符号長の可変長符号化データにおいては無駄なメモリ領域が生じる。
また、特許文献2に記載の可変長符号化/復号装置では、以下の課題2がある。
テーブル部を構成する複数の動的再構成可能なセルエレメントは、それぞれ、複数のレジスタを持つ接続情報レジスタ群と、複数のレジスタを持つビット選択レジスタ群と、複数のレジスタを持つ比較対象レジスタ群と、複数のレジスタを持つ出力値レジスタ群を備えており、各種レジスタ群の複数のレジスタに対応するコンフィグレーションデータを書き込む処理に時間がかかっていた。
更に、特許文献3に記載の可変長符号化/復号装置では、以下の課題(以下、課題3と表記する)がある。
テーブル部を構成する複数のセルエレメントは、それぞれ1〜4ビットの固有の比較対象値との比較を行い、比較対象値のビット数が同じセルエレメント同士から構成されるセルグループ毎に比較命令を与えられるようにしていた。
例えば、図5の探索木は図28に示すようにマッピングされるため、最初の比較では、比較命令信号R0のみが与えられ、セルグループGR0の2個のセルエレメントのみで比較を行い、残りのセルグループGR1〜GR4の28個のセルエレメントは無効となっていた。
最初の比較がノードn1で一致したものとすると、次の比較では比較命令信号R3、R4のみが与えられ、セルグループGR3、GR4の16個のセルエレメントのみで比較を行い、残りのセルグループGR0〜GR2の14個のセルエレメントは無効となっていた。
このように、1回の比較時にほとんどのセルエレメントが無効状態となるケースが存在し、全セルエレメントの領域を有効に利用できていなかった。
この発明は、上記課題1〜3を解決することを主な目的とする。
より具体的には、課題1に対応させて、様々な国際標準方式に対応することができ、小型化、かつ低消費電力化を可能にする可変長符号化/復号装置を実現する動的再構成技術を用いたテーブル装置を得ることを主な目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化/復号装置、可変長符号化装置および可変長復号装置を得ることを主な目的とする。
また、この発明は、課題2に対応させて、コンフィグレーションデータの書き込み処理の短縮による高速化を可能にするテーブル装置を得ることを主な目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化/復号装置、可変長符号化装置および可変長復号装置を得ることを主な目的とする。
更に、この発明は、課題3に対応させて、セルエレメントの領域を有効に利用できる小型なテーブル装置を得ることを主な目的とする。
また、この発明は、上記テーブル装置を用いた可変長符号化/復号装置、可変長符号化装置および可変長復号装置を得ることを主な目的とする。
本発明に係るデータ処理装置は、
固定長nビット(nは2以上の任意数)で表されるビット値の種類数と同数の複数のセルであって、nビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、変換対象データの少なくとも一部を構成するnビットの変換対象部分データを各々が入力し、入力した変換対象部分データと各々の比較対象値とを比較し、比較対象値と変換対象部分データが一致すれば一致信号を出力する複数のセルと、
複数種の可変長データ変換方式の各々に対応して定義されている複数の探索木であって、各階層の各ノードにnビット以内のいずれかのビット数のビット値がノード値として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿ってノード値を連接することにより対応している可変長データ変換方式によるデータ変換後の全てのビット値を探索できる探索木の中から、変換対象データのデータ変換に適用する可変長データ変換方式に対応する探索木を対象探索木として指定する探索木指定部と、
前記探索木指定部により指定された対象探索木の階層のうちノード判定の対象となる階層を対象階層として指定する階層指定部と、
各探索木の階層単位でセルとノードとの対応関係を管理しており、一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、対象探索木の対象階層内のノードの中から一致セルに対応付けられているノードを一致ノードとして判定するノード判定部と、
各探索木のノードごとに、ノードに下位階層が連結していれば当該下位階層の識別子が示され、ノードに下位階層が連結していなければ出力値が示されるコンフィグレーションデータを記憶するコンフィグレーションメモリとを有し、
前記ノード判定部は、
nビットのノード値が割り当てられているノードに対して、比較対象値が当該ノードのノード値と一致するセルを対応付け、nビット未満のノード値が割り当てられているノードに対して、比較対象値のビットパターンが当該nビット未満のビット数の範囲で一致している2以上のセルを重複して対応付け、
前記階層指定部は、
前記対象探索木及び前記一致ノードに基づいて前記コンフィグレーションデータを参照し、前記一致ノードに対して下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、前記一致ノードに対して出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とする。
本発明によれば、セルの比較対象値を固定長とし、固定長ビットで表すことのできるビット値の種類数分のセルのみで構成し、固定長ビット未満の比較を行う場合には、比較対象値のうち比較したいビットまでのビットパターンが同じセル同士は、いずれのセルで一致しても同じノードに対応させているため、様々な国際標準方式に対応することができ、小型、高速、かつ消費電力の低い可変長符号化及び可変長復号が可能となる。
実施の形態1及び2に係る可変長符号化/復号装置の構成例を示す図。 実施の形態1に係るテーブル装置の構成例を示す図。 実施の形態1に係るセルの構成例を示す図。 実施の形態1に係る可変長復号テーブルの例を示す図。 実施の形態1に係る可変長復号テーブルの探索木化の例を示す図。 実施の形態1に係る可変長復号テーブルのマッピング例を示す図。 実施の形態1に係る可変長復号の動作例を示す図。 実施の形態1に係るテーブル装置の動作例を示す図。 実施の形態1に係るテーブル装置の動作例を示す図。 実施の形態1に係るテーブル装置の動作例を示す図。 実施の形態1に係る可変長符号化テーブルの例を示す図。 実施の形態1に係る可変長符号化テーブルの探索木化の例を示す図。 実施の形態1に係る可変長符号化テーブルのマッピング例を示す図。 実施の形態1に係る可変長符号化の動作例を示す図。 実施の形態1に係るテーブル装置の動作例を示す図。 実施の形態1に係るテーブル装置の動作例を示す図。 実施の形態1に係る同じ深さに異なるビット数のノードが混在する探索木の例を示す図。 実施の形態1に係る同じ深さに異なるビット数のノードが混在する場合のマッピング例を示す図。 実施の形態2に係るテーブル装置の構成例を示す図。 実施の形態2に係るセルの構成例を示す図。 実施の形態2に係るテーブル装置の動作例を示す図。 実施の形態2に係るテーブル装置の動作例を示す図。 実施の形態2に係るテーブル装置の動作例を示す図。 実施の形態1に係るアドレスデコーダとコンフィグレーションデータの関係を示す図。 実施の形態1に係るアドレスデコーダとコンフィグレーションデータの関係を示す図。 実施の形態2に係るコンフィグレーションデータの例を示す図。 実施の形態1及び2に係る可変長符号化/復号装置を実現するコンピュータ装置のハードウェア構成例を示す図。 特許文献3による可変長符号化テーブルのマッピング例を示す図。
先ず、実施の形態1及び2に係るテーブル装置および可変長符号化/復号装置等の説明に登場する用語「コンフィグレーションデータ」について述べる。
コンフィグレーションとは、可変長符号化/復号方式ごとに対応したデータ変換内容を実施の形態1及び2に係るテーブル装置が持つコンフィグレーションメモリに設定して可変長符号化テーブルあるいは可変長復号テーブルを形成することを言う。
このデータ変換内容を含む信号を「コンフィグレーションデータ」と呼ぶことにする。
このコンフィグレーションデータは、符号化時と復号時に設定するものに分けられるが、両者に共通した用語で表すと、出力値、分岐コードなどで構成されている。
コンフィグレーションデータは、一例として、図24(b)に示す形式をもつ。
図24の詳細は後述するが、コンフィグレーションデータにおいてコードフラグの欄には、出力値コードを示す値又は分岐コードを示す値が記述されている。
出力値コードが記述されているレコード(例えば、アドレス:XX5678のレコード)では、出力値が記述されている。
出力値は、復号時においては、可変長復号テーブルであるビット長に分離されたビットストリームを変換した結果である、逆量子化前の直交変換係数を表し、一方、符号化時においては、可変長符号化テーブルで係数を変換した結果である、不特定長のビットストリームを表すものである。
つまり、復号処理又は符号化処理において、出力値コードが記述されているレコードに到達した際には、出力値に示されている値を最終的な復号値又は符号化値として出力することができる。
分岐コードが記述されるレコード(例えば、アドレス:XX1234のレコード)では、現在のページの次に使用するページ番号を指定する値が含まれ、後述するセルを再構成する。
ページとは、階層構造の探索木における階層のことであり、本実施の形態では、最上位階層から順に下位方向に階層(ページ)を変えてセルの比較対象値と入力データとの比較動作が行われ、比較動作に基づいて該当の階層(ページ)に含まれる複数ノードのうち特定のノードが選択される。
そして、コンフィグレーションデータにおいて分岐コードが記述されているレコードでは、出力値は記述されておらず、探索木の下位の階層(ページ)が次ページ値の欄に記述されている。
復号処理又は符号化処理において、分岐コードが記述されているレコードに到達した際には、最終的な復号値又は符号化値はまだ得ることができず、探索木の下位の階層(ページ)についてセルの比較対象値と入力データとの比較動作を継続する必要がある。
また、各レコードに含まれるシフト値は、入力データのシフト値を指定する値であり、シフト後の入力データが次に比較対象値と比較される。
シフト値は具体的には入力データに対する右シフトの回数を示す。
なお、図24のコンフィグレーションデータは一例であり、異なる形式のコンフィグレーションデータであってもよい。
また、実施の形態1及び2に登場する「比較対象値」とは、復号時においては、可変長復号テーブルで参照される、あるビット長に分離されたビットストリームを表し、一方、符号化時においては、可変長符号化テーブルで参照される、量子化後の直行変換係数を表すものである。
この直交変換係数は、例えばMPEG(Moving Picture Experts Group)方式の場合のDCT(Discrete Cosine Transform)係数に相当する。
実施の形態1.
図1は、実施の形態1に係る可変長符号化/復号装置4の概略構成を示すブロック図である。
図1において、入出力ポート1は、可変長符号化時には画像データを取り込み、かつ可変長符号化/復号装置4で符号化したビットストリームを出力し、一方、可変長復号時にはビットストリームを取り込み、かつ可変長符号化/復号装置4で復号した画像データを出力するためのポートである。
CPU(Central Processing Unit)2は、各部の制御および動画像符号化/復号処理のうち可変長符号化/復号以外の処理を行う手段である。
メモリ3は、CPU2が処理する命令領域およびコンフィグレーションデータ等を格納する領域を持つ。
バスライン5は、入出力ポート1、CPU2、メモリ3および可変長符号化/復号装置4のデータ転送に使用する経路である。
可変長符号化/復号装置4は、バスインターフェース6(以下、バスI/F6と表記する)、ビットストリームメモリ7、係数データメモリ8、アンパック部9、パック部10、テーブル装置11および制御レジスタ12から構成されている。
係数データメモリ8は、符号化される係数データあるいは復号された係数データを格納する手段である。
アンパック部9は、復号時にビットストリームメモリ7から、CPUバスのデータ幅などのビット数単位で読み込んだ固定長のビットストリームを、テーブル装置11による復号で消費したビット数分だけシフトしてテーブル装置11の入力データとして出力する手段である。
パック部10は、符号化時にテーブル装置11の符号化された出力データとして得られた可変長コードのビットストリームをCPUバスのデータ幅などのビット数単位(固定長データ)にパッキングしてビットストリームメモリ7に格納する手段である。
制御レジスタ12は、外部リセット信号23によりリセットされ、CPU2からの指示により、コンフィグレーション、符号化または復号時にテーブル装置11への入力データを選択するための入力データ選択信号26やテーブル装置11で用いる符号化または復号テーブルを指定するテーブル番号(図2の30)、比較動作の開始時に用いるページ番号(図2の31)を指定する初期コードを設定する手段である。
線13は、可変長符号化および復号の開始直前に、バスI/F6を通してCPU2からテーブル装置11のコンフィグレーションメモリ(図2の37)に設定するコンフィグレーションデータを転送するための信号線である。
線14は、CPU2から制御レジスタ12へ書き込みと読み出しを行うための信号線である。
線15は、可変長符号化/復号装置4を構成する各部の動作モードを設定し、各部から制御レジスタ12に対しての書き込みと読み出しを行うための信号線である。
また、線16は、CPU2からビットストリームメモリ7に対してビットストリームデータの書き込みと読み出しを行うための信号線である。
線17は、復号時にビットストリームメモリ7からアンパック部9へビットストリームデータを転送するための信号線である。
線18は、復号時にアンパック部9からテーブル装置11へのビットストリームデータの転送およびテーブル装置11からアンパック部9へシフト値の送信を行う信号線である。
線19は、符号化時にテーブル装置11からパック部10への符号化データの転送を行う信号線である。
線20は、符号化時にパック部10からビットストリームメモリ7へビットストリームデータを転送するものである。
線21は、符号化時に係数データメモリ8からテーブル装置11への符号化するデータの転送、および復号時にテーブル装置11から係数データメモリ8への係数データあるいは復号データの転送を行う信号線である。
線22は、符号化時にCPU2から係数データメモリ8への係数データあるいは符号化するデータの書き込みを行い、また、復号時に係数データあるいは復号データの読み込みを行うための信号線である。
線23は、可変長符号化/復号装置4をリセットするための外部から与えられる外部リセット信号の供給線である。
図2は、図1に示すテーブル装置11の構成例を示すブロック図である。
テーブル装置11は、データ処理装置の例である。
テーブル装置11は複数のセルPE0〜PE15、マルチプレクサ25(以下、MUXとする)、一致セル番号出力部34、コンフィグレーションメモリ37、アドレスデコーダ32、テーブル制御部36を備えている。
マルチプレクサ25は、セルPE0〜PE15への入力データ29を選択する手段である。
詳しくは、本可変長符号化/復号装置4が符号化モード、復号モードのいずれに設定された場合に図1の制御レジスタ12から与えられる入力データ選択信号26に基づいて、テーブル装置11内のセルPE0〜PE15への入力データ29として、符号化モードの場合には係数データ28を選択し、復号モードの場合にはビットストリームデータ27を選択する。
出力信号33O0〜33O15は、符号化モードおよび復号モード時に各セルPE0〜PE15から出力される信号であり、比較動作で一致したことを示す一致信号である。
一致セル番号出力部34は、出力信号33O0〜33O15に基づいてセルPE0〜PE15のうち比較が一致したセルに対応する一致セル番号35を出力する手段である。
コンフィグレーションメモリ37は、可変長符号化または可変長復号の開始前にCPU2から書き込まれる出力値(復号時は直交変換係数、符号化時は不特定長のビットストリーム)、およびこれに代わる分岐コードであるコンフィグレーションデータ13を保持する手段である。
すなわち、比較動作で一致した際に当該セルが最終値を求めるリーフとして指定されているものであれば、対応するメモリ領域に出力値が書き込まれ、一方、当該セルが分岐として指定されているものであれば、対応するメモリ領域に分岐コードが書き込まれていることになる。
なお、分岐コードは、この実施の形態の冒頭にも述べたように、次に使用するページ番号を指定する指定コードを含んでいる。
また、出力値コードおよび分岐コードには、入力データのシフト値を指定する指定コードを含んでいる。
アドレスデコーダ32は、テーブル番号30、ページ番号31および一致セル番号35を用いてこれに対応するコンフィグレーションメモリ37のアドレス38を生成する手段である。
テーブル番号30は、可変長符号化/復号テーブル毎にあらかじめ番号を割り当て、使用するテーブルを指定するものである。
ページ番号31は、後述する図5の可変長復号テーブルの探索木化で示すように各可変長符号化または復号テーブルをあるビット数以下に区切りテーブルを探索木と解釈したときの同時に比較できる部分木の集合単位であるページのうち、比較しようとする部分木が所属するページを指定するものである。
また、アドレスデコーダ32は、比較対象値24のうち4ビット未満のビットパターンと入力データを比較する場合、先頭から比較するビット数分のビットパターンが等しい比較対象値を持つセル同士においては、いずれのセルで比較が一致した場合も、等しいコンフィグレーションメモリのアドレスを生成するアドレスマージ部42を持つ。
図24は、アドレスデコーダ32とコンフィグレーションメモリ37内のコンフィグレーションデータとの関係の一例を示す。
アドレスデコーダ32では、後述するテーブル制御部36から通知された現在対象となっているテーブル番号30及びページ番号31と、一致セル番号出力部34から通知された一致セル番号とに基づきコンフィグレーションデータのアドレスを検索し、検索したアドレスをコンフィグレーションメモリ37に通知する。
そして、コンフィグレーションメモリ37では、通知されたアドレスに対応するレコードに記述されている内容をデータ出力39としてテーブル制御部36に通知する。
通知内容としては、コードフラグ(分岐コードか出力値コードか)、次ページ値及びシフト値であり、コードフラグが出力値コードの場合は更に出力値も通知される。
なお、図24に示す方式は一例であり、これ以外の方式によってもよい。
例えば、アドレスデコーダ32をCAM(Content Addressable Memory)により構成してもよい。
テーブル制御部36は、比較動作の開始時に外部から設定される初期コードに基づいてテーブル番号30を生成し、比較動作の開始時、またはコンフィグレーションメモリ37のデータ出力39が分岐コードである場合に、初期コードあるいは分岐コードを構成しているページ番号を示すコード(次ページ値)とシフト値を示すコードに基づいて、次に使用するページ番号31とシフト値41を生成し、一方、コンフィグレーションメモリ37のデータ出力39が求めるべき最終出力値である場合(出力値コードの場合)、データ出力39から出力データ40とシフト値41と次に使用するページ番号31(先頭ページ)を生成し、出力する手段である。
図3は、図2に示すセル300(PE0〜PE15)の構成例を示すブロック図である。
セル300は、比較器43から構成される。
比較器43は、入力データ29とセル毎に固有な固定値である比較対象値24とを比較し、両者が一致した際に一致信号33を出力する手段である。
セル300毎に固有な比較対象値24は、全セルで同じビット長であり、例えば4ビットの場合は、4ビットで表現可能なすべての値を1つずつ各セルに割り当てる。
すなわち、セルPE0の比較対象値24は‘0000’である。
セルPE1の比較対象値24は‘0001’である。
セルPE2の比較対象値24は‘0010’である。
セルPE3の比較対象値24は‘0011’である。
セルPE4の比較対象値24は‘0100’である。
セルPE5の比較対象値24は‘0101’である。
セルPE6の比較対象値24は‘0110’である。
セルPE7の比較対象値24は‘0111’である。
セルPE8の比較対象値24は‘1000’である。
セルPE9の比較対象値24は‘1001’である。
セルPE10の比較対象値24は‘1010’である。
セルPE11の比較対象値24は‘1011’である。
セルPE12の比較対象値24は‘1100’である。
セルPE13の比較対象値24は‘1101’である。
セルPE14の比較対象値24は‘1110’である。
セルPE15の比較対象値24は‘1111’である。
入力データ29は、各セルに対し、比較対象値24と同等のビット数分が入力される。
つまり、本実施の形態では、固定長nビット(nは2以上の任意数)で表されるビット値の種類数と同数の複数のセル300が配置される。
そして、本実施の形態では、nビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、変換対象データであるビットストリームデータ27又は係数データ28の少なくとも一部を構成するnビットのデータ(変換対象部分データ)を各セルが入力し、入力したnビットのデータ(変換対象部分データ)と各セルの比較対象値とを比較し、比較対象値とnビットのデータ(変換対象部分データ)が一致すれば一致信号を出力する。
図2の例では、n=4であり、4ビットで表わされるビット値の種類数と同数の16台のセルが配置されている。
そして、各セルでは、4ビットの固有の比較対象値が割り当てられ、ビットストリームデータ27又は係数データ28の少なくとも一部を構成する4ビットのデータを入力し、入力した4ビットのデータと各セルの比較対象値とを比較し、比較対象値と4ビットのデータが一致すれば一致信号を出力する。
次に、コンフィグレーションについて図1〜図2により説明する。
先ず、可変長符号化/復号装置4は、電源投入直後などに外部から与えられる外部リセット信号23あるいは制御レジスタ12の設定によるソフトウェアリセット信号によりリセットされる。
リセット後、アンパック部9、パック部10、テーブル装置11は初期状態となり、CPU2から起動指示があるまで状態を保持する。
CPU2は起動後に初期化動作として、可変長符号化または可変長復号に対応するコンフィグレーションデータ13をテーブル装置11へ送信する。
コンフィグレーションデータ13は、テーブル装置11を構成するコンフィグレーションメモリ37へ入力される。
この動作により、テーブル装置11は可変長符号化テーブルあるいは可変長復号テーブルとして動作が可能な状態に設定されたことになる。
次に、図4に示す可変長復号テーブル例を基にコンフィグレーションデータのマッピング方法を説明する。
ここで、テーブル装置11は、一度に4ビットまでの比較を行えるものとすると、4ビットより大きいビット数を要する可変長符号化/復号テーブルを構成する場合、後述するように、探索木の同じ深さに属するノード同士を同じページにマッピングし、ページ番号31を動的に変更することによってテーブル全体を実現する。
テーブル装置11を構成する各セルPE0〜PE15は、4ビットまでの比較が可能であることから、図4の可変長復号テーブルの各可変長符号を1〜4ビットに区切り、図5に示すような探索木を作成する。
比較ポイントであるノードn0〜n41が持つ比較対象ビットパターン(例えばノードn1の場合、‘0’)と入力ビット列を比較し、一致したときはそのノードに接続された“子”のノード(ノードにさらに分岐して接続されている下位階層のノード、例えばノードn1の“子”ノードはノードn2〜n17)において、続きの入力ビット列を比較する。
このように、図5の探索木では、各階層の各ノードに4ビット以内のいずれかのビット数のビット値が比較対象ビットパターン(以下、ノード値ともいう)として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿って比較対象ビットパターンを連接することにより復号後の全てのビット値を探索できる。
例えば、図4の可変長復号テーブルに示されている「00000111」(10進数:7)は、ノードn1(ノード値:0)、ノードn2(ノード値:0000)、ノードn25(ノード値:111)の組み合わせに対応する。
また、図5において共通の描画パターンになっているノードは共通の階層に属しており、共通のページに分類される。
図5の各ノードn0〜n41を図2の各セルPE0〜PE15にマッピングした場合を図6に示す。
図5の探索木において、最初に同じ深さに属するノードはノードn0とノードn1である。
従って、1ページ目にはノードn0とn1をマッピングするが、各セルの比較対象値が4ビットであるのに対し、ノードn0とノードn1の比較対象ビットパターンは1ビット(ノードn0は‘1’、ノードn1は‘0’)である。
これを、4ビットの比較を行う各セルにマッピングするには、先頭から1ビットまでのビットパターンが同じセル同士、すなわち、先頭から1ビットまでのビットパターンが‘0’であるセルPE0〜PE7には、すべてノードn1をマッピングし、一方、先頭から1ビットまでのビットパターンが‘1’であるセルPE8〜PE15には、すべてノードn0をマッピングする。
これは、入力データの2ビット目から4ビット目のビットパターンに関わらず1ビット目のみによって一致するノードが決定することを意味しており、すなわち、1ビットの比較を行っていることと等しい。
なお、図6では、各セルがマッピングされているノードの比較対象ビットパターン(1ページ目では、先頭1ビットの0又は1)に下線を付している。
続いて、次に同じ深さに属するノードはノードn2〜n17である。
従って、2ページ目には、ノードn2〜n17をマッピングする。
ノードn2〜n17は、比較対象ビットパターンが4ビットであるため、それぞれ対応するセルにマッピングする。
すなわち、セルPE0にはノードn2をマッピングする。
セルPE1にはノードn3をマッピングする。
セルPE2にはノードn4をマッピングする。
セルPE3にはノードn5をマッピングする。
セルPE4にはノードn6をマッピングする。
セルPE5にはノードn7をマッピングする。
セルPE6にはノードn8をマッピングする。
セルPE7にはノードn9をマッピングする。
セルPE8にはノードn10をマッピングする。
セルPE9にはノードn11をマッピングする。
セルPE10にはノードn12をマッピングする。
セルPE11にはノードn13をマッピングする。
セルPE12にはノードn14をマッピングする。
セルPE13にはノードn15をマッピングする。
セルPE14にはノードn16をマッピングする。
セルPE15にはノードn17をマッピングする。
続いて、次に同じ深さに属するノードはノードn18〜n25である。
従って、3ページ目にはノードn18〜n25をマッピングするが、各セルの比較対象値が4ビットであるのに対し、ノードn18〜n25の比較対象ビットパターンは3ビット(ノードn18は‘000’、ノードn19は‘001’、ノードn20は‘010’、ノードn21は‘011’、ノードn22は‘100’、ノードn23は‘101’、ノードn24は‘110’、ノードn25は‘111’)である。
これを、4ビットの比較を行う各セルにマッピングするには、先頭から3ビットまでのビットパターンが同じセル同士、すなわち、先頭から3ビットまでのビットパターンが‘000’であるセルPE0とPE1には、どちらもノードn18をマッピングする。
また、先頭から3ビットまでのビットパターンが‘001’であるセルPE2とPE3には、どちらもノードn19をマッピングする。
また、先頭から3ビットまでのビットパターンが‘010’であるセルPE4とPE5には、どちらもノードn20をマッピングする。
また、先頭から3ビットまでのビットパターンが‘011’であるセルPE6とPE7には、どちらもノードn21をマッピングする。
また、先頭から3ビットまでのビットパターンが‘100’であるセルPE8とPE9には、どちらもノードn22をマッピングする。
また、先頭から3ビットまでのビットパターンが‘101’であるセルPE10とPE11には、どちらもノードn23をマッピングする。
また、先頭から3ビットまでのビットパターンが‘110’であるセルPE12とPE13には、どちらもノードn24をマッピングする。
また、先頭から3ビットまでのビットパターンが‘111’であるセルPE14とPE15には、どちらもノードn25をマッピングする。
これは、入力データの4ビット目のビットパターンに関わらず1〜3ビット目のみによって一致するノードが決定することを意味しており、すなわち、3ビットの比較を行っているここと等しい。
続いて、次に同じ深さに属するノードはn26〜n41である。
従って、4ページ目にはノードn26〜n41をマッピングする。
ノードn26〜n41は、比較対象ビットパターンが4ビットであるため、それぞれ対応するセルにマッピングする。
すなわち、セルPE0にはノードn26をマッピングする。
セルPE1にはノードn27をマッピングする。
セルPE2にはノードn28をマッピングする。
セルPE3にはノードn29をマッピングする。
セルPE4にはノードn30をマッピングする。
セルPE5にはノードn31をマッピングする。
セルPE6にはノードn32をマッピングする。
セルPE7にはノードn33をマッピングする。
セルPE8にはノードn34をマッピングする。
セルPE9にはノードn35をマッピングする。
セルPE10にはノードn36をマッピングする。
セルPE11にはノードn37をマッピングする。
セルPE12にはノードn38をマッピングする。
セルPE13にはノードn39をマッピングする。
セルPE14にはノードn40をマッピングする。
セルPE15にはノードn41をマッピングする。
なお、図5に示した探索木及び図6に示したマッピング例は、論理的なものであり、実際にテーブル装置11で使用する情報は、図5の探索木及び図6のマッピングに対応させたアドレスデコーダ32のテーブル及びコンフィグレーションデータ(図24)である。
そして、アドレスデコーダ32は、4ビット未満のノード値が割り当てられているノード(例えば、図6の1ページ目のノードn1)に対して、比較対象値のビットパターンが当該4ビット未満のビット数の範囲で一致している2以上のセル(例えば、PE0〜PE7)を重複して対応付けるテーブルを保有する。
一方、4ビットのノード値が割り当てられているノード(例えば、図6の2ページ目のノードn2)に対しては、アドレスデコーダ32は、比較対象値がノード値と一致するセル(例えばセルPE0)を対応付けるテーブルを保有する。
また、図5の探索木及び図6のマッピング、すなわち、図24に示すアドレスデコーダのテーブル及びコンフィグレーションデータは、複数種の可変長復号方式に対応させて複数種定義されており、テーブル番号の指定により、復号(符号化)の対象となる可変長復号(符号化)方式に対応する探索木及びマッピング、換言すると、復号(符号化)に用いられる可変長復号(符号化)方式に対応するアドレスデコーダのテーブル及びコンフィグレーションデータが指定される。
テーブル番号は、初期コードによりテーブル制御部36に通知され、また、テーブル制御部36からアドレスデコーダ32にテーブル番号30として通知される。
このように、テーブル制御部36は、探索木指定部の例である。
また、テーブル制御部36は、コンフィグレーションメモリ37からのデータ出力39の内容が分岐コードである場合、つまり、一致セルの比較対象値と同値のノード値のノード(一致ノード)に対してコンフィグレーションデータに下位ページ(下位階層)のノードが示されている場合は、当該下位ページを次にノード判定の対象とするページ(対象階層)として指定し、ページ番号31としてアドレスデコーダ32に通知する。
一方、コンフィグレーションメモリ37からのデータ出力39の内容が出力値コードである場合、つまり、一致ノードに対して出力値が示されている場合は、テーブル制御部36は、当該出力値を出力データ40(復号値又は符号化値)として出力する。
このように、テーブル制御部36は、階層指定部の例でもある。
また、前述した図24の形式では、アドレスデコーダ32がコンフィグレーションデータのアドレスを検索し、検索したアドレスをコンフィグレーションメモリ37に通知しているが、機能的には、アドレスデコーダ32は、図6に示すようにページ単位でセルとノードとの対応関係を管理しており、一致セル番号出力部34から通知された一致セルに対応しているノードを検索し、検索したノードをコンフィグレーションメモリ37を介してテーブル制御部36に通知しているのと同視できる。
このため、アドレスデコーダ32と一致セル番号出力部34は、ノード判定部の例として捉えることができる。
また、このようにアドレスデコーダ32は、実質的には一致セルに対応するノードを検索しているため、図24の形式に代えて、例えば、図25に示す形式としてもよい。
図25では、アドレスデコーダ32は、コンフィグレーションデータのアドレスの代わりにノードの識別子をテーブル番号、ページ番号31、一致セル番号とに対応付けて管理し、ノードの識別子をコンフィグレーションメモリ37に通知する。
そして、コンフィグレーションデータでは、図24に示す要素に加えてノード識別子を管理しており、コンフィグレーションメモリ37は、アドレスデコーダ32から通知されたノード識別子をキーにして該当するレコードを検索し、抽出したレコードの内容をデータ出力39としてテーブル制御部36に通知する。
次に、可変長復号の動作例を説明する。
復号動作は、上述のコンフィグレーションデータ13をテーブル装置11のコンフィグレーションメモリ37に書き込んだ後に行われる。
図7において、まず、CPU2はバスI/F6を介してビットストリームメモリ7に1マクロブロック分のブロックデータ相当のビットストリームデータを書き込む(矢印D1)。
書き込み後、制御レジスタ12の中の復号開始指示レジスタに復号開始信号を書き込み、入力データ選択信号26をMUX25(図2)に与えビットストリームデータを入力データ29(図2)として選択することで復号動作を起動する。
アンパック部9は、ビットストリームメモリ7から1マクロブロック分のブロックデータ相当のビットストリームを、ある特定のビット数単位で読み込み(矢印D2)、CPU2あるいはテーブル装置11から示されるシフト値41に従ってそのビットストリームデータをシフトし、テーブル装置11に対して常に有効なある特定のビット数分のビットストリームデータを出力する(矢印D3)。
テーブル装置11では、入力されたこの特定のビット数分のビットストリームに従って可変長復号し、係数データを係数データメモリ8に出力する(矢印D4)と同時に、テーブルの使用回数をクリアしたら割り込み信号でCPU2に通知する。
復号完了の割り込み信号を受けたCPU2は、バスI/F6を介して係数データメモリ8から復号結果を読み出す(矢印D5)。
図4および図5に示すテーブルを例に、上記可変長復号時にテーブル装置11内で行われる比較動作について、図8、図9、図10を用いて説明する。
ここでは、図4の可変長復号テーブルに示されている2進数「00000111」を10進数の「7」に復号する例を説明する。
図8において、まず、入力データ29として入力される特定のビット数分のビットストリームが‘0000’であり、比較動作開始時のページ番号として図6に示した1ページ目が指定されているものとする。
復号モードにあるとき、ビットストリームデータ27は、MUX25で入力データ選択信号26によって、入力データ29、すなわちビットストリームデータ‘0000’として選択され、各セルPE0〜PE15に対し、‘0000’がそれぞれ入力される。
一方、テーブル制御部36は、制御レジスタ(図7の12)の設定状態を見にいき、使用するテーブル番号と比較動作開始時に用いるページ番号を指定する初期コードを取り寄せ、この初期コードに基づいてテーブル番号30とページ番号31を生成する。
各セルは、入力されたビットストリームと各セルで固定されている固有の比較対象値24とを比較器(図3の43)で比較する。
すなわち、セルPE0では比較対象値‘0000’とビットストリーム‘0000’を比較する。
セルPE1では比較対象値‘0001’とビットストリーム‘0000’を比較する。
セルPE2では比較対象値‘0010’とビットストリーム‘0000’を比較する。
セルPE3では比較対象値‘0011’とビットストリーム‘0000’を比較する。
セルPE4では比較対象値‘0100’とビットストリーム‘0000’を比較する。
セルPE5では比較対象値‘0101’とビットストリーム‘0000’を比較する。
セルPE6では比較対象値‘0110’とビットストリーム‘0000’を比較する。
セルPE7では比較対象値‘0111’とビットストリーム‘0000’を比較する。
セルPE8では比較対象値‘1000’とビットストリーム‘0000’を比較する。
セルPE9では比較対象値‘1001’とビットストリーム‘0000’を比較する。
セルPE10では比較対象値‘1010’とビットストリーム‘0000’を比較する。
セルPE11では比較対象値‘1011’とビットストリーム‘0000’を比較する。
セルPE12では比較対象値‘1100’とビットストリーム‘0000’を比較する。
セルPE13では比較対象値‘1101’とビットストリーム‘0000’を比較する。
セルPE14では比較対象値‘1110’とビットストリーム‘0000’を比較する。
セルPE15では比較対象値‘1111’とビットストリーム‘0000’を比較する。
この場合、セルPE0で比較が一致することになり、比較器(図3の43)から一致信号(図3の33)が出力される。
一致セル番号出力部34は、一致セル番号35と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルPE0(図5のノードn1)のセル番号が一致セル番号35として出力される。
アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35と先に設定されているテーブル番号30およびページ番号31(1ページ目)から、ノードn1(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
例えば、図24(a)に示されるように、アドレスXX1234が生成される。
ノードn1(図5)は分岐(下位階層が連結している)として設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には分岐コードが保持されており(例えば、図24(b)のアドレスXX1234)、コンフィグレーションメモリ37のデータ出力39は分岐コードとなる。
テーブル制御部36は、この分岐コード(例えば、図24(b)の次ページ値:ページ2)に基づいてページ番号31を変更する。
このことにより、可変長復号テーブルは再構成される(ページが変化することによりノードとセルとのマッピングが変化する)。
ここでは、ページ番号31により、2ページ目(図6)が選択されることで、ノードn1以下(先頭1ビットの‘0’より下位のビット)の比較が可能となる。
また、分岐コードに基づいてシフト値41が生成される。
シフト値41は、比較が一致したノードのノード値と同じビット値となる。
ここでは、比較が一致したノードn1のノード値が1ビットであることから、分岐コードにはシフト値1ビットを示すコードが含まれており、シフト値41は‘1’となる。
ここでは入力データ29が‘0000’である場合について説明したが、入力データ29が‘0001’でありセルPE1で一致した場合、入力データ29が‘0010’でありセルPE2で一致した場合、入力データ29が‘0011’でありセルPE3で一致した場合、入力データ29が‘0100’でありセルPE4で一致した場合、入力データ29が‘0101’でありセルPE5で一致した場合、入力データ29が‘0110’でありセルPE6で一致した場合、入力データ29が‘0111’でありセルPE7で一致した場合のいずれであっても、各セルにはPE0と同様にノードn1がマッピングされている。
コンフィグレーションメモリ37には、探索木のノードと一対一でデータが格納されているため、アドレスマージ部42は、テーブル番号30とページ番号31に従って、一致セル番号35がセルPE0〜PE7のいずれを示していても、ノードn1(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
続いて、図9において、入力データ29として、前の比較によって生成されたシフト値41に基づいて1ビットシフトされたビットストリーム‘0000’が入力されるものとすると、各セルPE0〜PE15に対し、‘0000’がそれぞれ入力される。
各セルは、入力されたビットストリームと各セルで固定されている固有の比較対象値24とを比較器(図3の43)で比較する。
すなわち、セルPE0では比較対象値‘0000’とビットストリーム‘0000’を比較する。
セルPE1では比較対象値‘0001’とビットストリーム‘0000’を比較する。
セルPE2では比較対象値‘0010’とビットストリーム‘0000’を比較する。
セルPE3では比較対象値‘0011’とビットストリーム‘0000’を比較する。
セルPE4では比較対象値‘0100’とビットストリーム‘0000’を比較する。
セルPE5では比較対象値‘0101’とビットストリーム‘0000’を比較する。
セルPE6では比較対象値‘0110’とビットストリーム‘0000’を比較する。
セルPE7では比較対象値‘0111’とビットストリーム‘0000’を比較する。
セルPE8では比較対象値‘1000’とビットストリーム‘0000’を比較する。
セルPE9では比較対象値‘1001’とビットストリーム‘0000’を比較する。
セルPE10では比較対象値‘1010’とビットストリーム‘0000’を比較する。
セルPE11では比較対象値‘1011’とビットストリーム‘0000’を比較する。
セルPE12では比較対象値‘1100’とビットストリーム‘0000’を比較する。
セルPE13では比較対象値‘1101’とビットストリーム‘0000’を比較する。
セルPE14では比較対象値‘1110’とビットストリーム‘0000’を比較する。
セルPE15では比較対象値‘1111’とビットストリーム‘0000’を比較する。
この場合、セルPE0で比較が一致することになり、比較器(図3の43)から一致信号(図3の33)が出力される。
一致セル番号出力部34は、一致セル番号35と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルPE0(図5のノードn2)のセル番号が一致セル番号35として出力される。
テーブル制御部36は、前の比較によって生成されたページ番号31(2ページ目)を出力しており、アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35とテーブル制御部36から設定されているテーブル番号30およびページ番号31からノードn2(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
ノードn2(図5)は分岐として設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には分岐コードが保持されており、コンフィグレーションメモリ37のデータ出力39は分岐コードとなる。
テーブル制御部36は、この分岐コードに基づいてページ番号31を変更する。
このことにより、可変長復号テーブルは再構成される。
ここでは、ページ番号31により、3ページ目(図6)が選択されることで、ノードn2以下(‘0_0000’より下位のビット)の比較が可能となる。
また、分岐コードに基づいてシフト値41が生成される。
ここでは、比較が一致したノードn2のビットパターンが4ビットであることから、分岐コードにはシフト値4ビットを示すコードが含まれており、シフト値41は‘4’となる。
続いて、図10において、入力データ29として、前の比較によって生成されたシフト値41に基づいて4ビットシフトされたビットストリーム‘1110’が入力されるものとすると、各セルPE0〜PE15に対し、‘1110’がそれぞれ入力される。
各セルは、入力されたビットストリームと各セルで固定されている固有の比較対象値24とを比較器(図3の43)で比較する。
すなわち、セルPE0では比較対象値‘0000’とビットストリーム‘1110’を比較する。
セルPE1では比較対象値‘0001’とビットストリーム‘1110’を比較する。
セルPE2では比較対象値‘0010’とビットストリーム‘1110’を比較する。
セルPE3では比較対象値‘0011’とビットストリーム‘1110’を比較する。
セルPE4では比較対象値‘0100’とビットストリーム‘1110’を比較する。
セルPE5では比較対象値‘0101’とビットストリーム‘1110’を比較する。
セルPE6では比較対象値‘0110’とビットストリーム‘1110’を比較する。
セルPE7では比較対象値‘0111’とビットストリーム‘1110’を比較する。
セルPE8では比較対象値‘1000’とビットストリーム‘1110’を比較する。
セルPE9では比較対象値‘1001’とビットストリーム‘1110’を比較する。
セルPE10では比較対象値‘1010’とビットストリーム‘1110’を比較する。
セルPE11では比較対象値‘1011’とビットストリーム‘1110’を比較する。
セルPE12では比較対象値‘1100’とビットストリーム‘1110’を比較する。
セルPE13では比較対象値‘1101’とビットストリーム‘1110’を比較する。
セルPE14では比較対象値‘1110’とビットストリーム‘1110’を比較する。
セルPE15では比較対象値‘1111’とビットストリーム‘1110’を比較する。
この場合、セルPE14で比較が一致することになり、比較器(図3の43)から一致信号(図3の33)が出力される。
一致セル番号出力部34は、一致セル番号35と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルPE14(図5のノードn25)のセル番号が一致セル番号35として出力される。
テーブル制御部36は、前の比較によって生成されたページ番号31(3ページ目)を出力しており、アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35とテーブル制御部36から設定されているテーブル番号30およびページ番号31からノードn25(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する(例えば、図24(a)のXX5678)。
ノードn25(図5)はリーフとして設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には出力値コードが保持されており(例えば、図24(b)のアドレスXX5678)、コンフィグレーションメモリ37のデータ出力39は出力値コードとなる。
テーブル制御部36は、この出力値コードに基づいて出力データ40(=7、図4)を出力すると共に、シフト値41を生成する。
ここでは、比較が一致したノードn25のビットパターンが3ビットであることから、出力値コードにはシフト値3ビットを示すコードが含まれており、シフト値41は‘3’となる。
すなわち、次のテーブルデータの比較時には、入力データ29は現比較の4ビット目‘0’から開始されることになる。
また、テーブル制御部36は、更に、次ページ値に示されているページ1を次のページ番号31として出力する。
上記では入力データ29が‘1110’である場合について説明したが、ノードn25のビットパターンは3ビットであることから、入力データ29が‘1111’でありセルPE15で一致した場合も、PE14と同様にノードn25がマッピングされている。アドレスマージ部42は、テーブル番号30とページ番号31に従って、一致セル番号35がセルPE14、PE15のいずれを示していても、ノードn25(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
以上、可変長復号について説明したが、可変長符号化も同じ回路を用いて実行できる。
可変長符号化では、図1において、テーブル装置11への入力データ(図2の29)は係数データメモリ8から読み込まれる係数データ(図2の28)であり、固定長となる。
またテーブル装置11の出力はパック部10に出力されるビットストリームであり、可変長となる。
図11に、可変長符号化テーブルの例を示す。
このテーブルは、H.264で使用されるTotalCoeff/TrailingOnesテーブルの一部を抜き出したものである(図4の可変長復号テーブルとは対の関係になっていない)。
可変長符号化は、複数の値の組み合わせを可変長符号化処理する場合が多く、H.264のTotalCoeff/TrailingOnesやMPEG−2、MPEG−4のRun/Levelがこれにあたる。
TotalCoeffは0〜16の値をとるため5ビット、TrailingOnesは0〜3の値をとるため2ビットのデータであり、上位5ビットにTotalCoeff、下位2ビットにTrailingOnesを配置した7ビットの固定長データとして可変長符号化処理を行う。
先に示した可変長復号と同様に、固定長データを4ビット以下のデータに区切り探索木を生成し(図12)、4ビットの比較を行うセルPE0〜PE15にマッピングする(図13)。
図14に可変長符号化の手順を示す。
符号化動作は、コンフィグレーションにより符号化のためのコンフィグレーションデータをテーブル装置11のコンフィグレーションメモリ37に書き込んで可変長符号化テーブルを形成した後に行われる。
図14において、まず、CPU2は、バスI/F6を介して、1マクロブロック分のブロックデータ相当の符号化を対象とする係数データを係数データメモリ8に書き込み(矢印E1)、書き込み後、制御レジスタ12の中の符号化開始指示レジスタに符号化開始信号を書き込み、入力データ選択信号26をMUX25(図2)に与え、係数データを入力データ29(図2)として選択することで符号化動作を起動する。
テーブル装置11は、係数データメモリ8から係数データを、ある特定のビット数単位で読み込み(矢印E2)、入力されたこの特定のビット数分の係数データに従って可変長符号化し、符号化データをパック部10へ出力する(矢印E3)。
パック部10は、変換されたビットストリームをCPUバスのデータ幅などのビット数単位でビットストリームメモリ7に格納し(矢印E4)、同時に、1マクロブロックの符号化が完了したことを割り込み信号でCPU2に通知する。
符号化完了の割り込み信号を受けたCPU2は、バスI/F6を介してビットストリームメモリ7から符号化結果を読み出す(矢印E5)。
図11および図12に示すテーブルを例に、上記可変長符号化時にテーブル装置11内で行われる比較動作について、図15および図16を用いて説明する。
符号化モードにあるとき、係数データ28は、MUX25で入力データ選択信号26によって、入力データ29、すなわち係数データ‘0010’として選択され、各セルPE0〜PE15に対し、‘0010’の係数データがそれぞれ入力される。
テーブル制御部36(図2)は、制御レジスタ(図14の12)の設定状態を見にいき、使用するテーブル番号と比較動作開始時に用いるページ番号を指定する初期コードを取り寄せ、この初期コードに基づいてテーブル番号30とページ番号31を生成する。
各セルは、入力された係数データと各セルで固定されている固有の比較対象値24とを比較器(図3の43)で比較する。
すなわち、セルPE0では比較対象値‘0000’と係数データ‘0010’を比較する。
セルPE1では比較対象値‘0001’と係数データ‘0010’を比較する。
セルPE2では比較対象値‘0010’と係数データ‘0010’を比較する。
セルPE3では比較対象値‘0011’と係数データ‘0010’を比較する。
セルPE4では比較対象値‘0100’と係数データ‘0010’を比較する。
セルPE5では比較対象値‘0101’と係数データ‘0010’を比較する。
セルPE6では比較対象値‘0110’と係数データ‘0010’を比較する。
セルPE7では比較対象値‘0111’と係数データ‘0010’を比較する。
セルPE8では比較対象値‘1000’と係数データ‘0010’を比較する。
セルPE9では比較対象値‘1001’と係数データ‘0010’を比較する。
セルPE10では比較対象値‘1010’と係数データ‘0010’を比較する。
セルPE11では比較対象値‘1011’と係数データ‘0010’を比較する。
セルPE12では比較対象値‘1100’と係数データ‘0010’を比較する。
セルPE13では比較対象値‘1101’と係数データ‘0010’を比較する。
セルPE14では比較対象値‘1110’と係数データ‘0010’を比較する。
セルPE15では比較対象値‘1111’と係数データ‘0010’を比較する。
この場合、セルPE2で比較が一致することになり、その比較器(図3の43)から一致信号(図3の33)が出力され、セルPE2(図12のノードn2)のセル番号が一致セル番号35として出力される。
アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35と先に設定されているテーブル番号30およびページ番号31からノードn2(図12)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
PE2(図12のノードn2)は分岐として設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には分岐コードが保持されており、コンフィグレーションメモリ37のデータ出力39は分岐コードとなる。
テーブル制御部36は、この分岐コードに基づいてページ番号31を変更する。
このことにより、可変長符号化テーブルは再構成される。
ここでは、ノードn2(図12)以下の比較を行うノードn10〜n18(図12)がマッピングされている3ページ目(図13)が選択されることで、ノードn2以下(‘001’より下位のビット)の比較が可能となる。
また分岐コードに基づいてシフト値41が生成される。
ここでは、比較が一致したノードn2のビットパターンが3ビットであることから、分岐コードにはシフト値3ビットを示すコードが含まれており、シフト値41は‘3’となる。
上記では入力データ29が‘0010’である場合について説明したが、ノードn2のビットパターンは3ビットであることから、入力データ29が‘0011’でありセルPE3で一致した場合も、PE2と同様にノードn2がマッピングされている。アドレスマージ部42は、テーブル番号30とページ番号31に従って、一致セル番号35がセルPE2、PE3のいずれを示していても、ノードn2(図12)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
続いて、図16において、入力データ29として、前の比較によって生成されたシフト値41に基づいて3ビットシフトされた係数データ‘0000’が入力されるものとすると、セルPE0(図12のノードn10)で比較が一致することになり、セルPE0のセル番号が一致セル番号35として出力される。
アドレスデコーダ32は、一致セル番号35とテーブル番号30およびページ番号31からノードn10(図12)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
ノードn10(図12)はリーフであるため、アドレス38で指定されるメモリ領域には出力値コードが保持されており、コンフィグレーションメモリ37のデータ出力39は出力値コードとなる。
テーブル制御部36は、この出力値コードに基づいて出力データ40(=可変長符号‘0000000111’、図11)を出力すると共に、シフト値41を生成する。
ここでは、比較が一致したノードn10のビットパターンが4ビットであることから、出力値コードにはシフト値4ビットを示すコードが含まれており、シフト値41は‘4’となる。
以上では、同じ深さのノード同士のビット数が等しい探索木を例に説明してきたが、同じ深さに異なるビット数のノードが混在する探索木についても、同じ回路を用いて実現できる。
図17に、同じ深さに異なるビット数のノードが混在する探索木の例を示す。
ノードn0〜n4は同じ深さに属するノードであるが、ノードn0は1ビット、ノードn1は2ビット、ノードn3、n4は3ビットのビットパターンを持つノードである。
また、ノードn5〜n10は同じ深さに属するノードであるが、ノードn5〜n7は2ビット、ノードn8、n9は4ビット、ノードn10は3ビットのビットパターンを持つノードである。
図18に、図17の探索木をマッピングした例を示す。
1ページ目には、最初に同時に比較すべきノードn0〜n4をマッピングする。
先頭から2ビット目までのビットパターンが‘00’であるセルPE0〜PE3にはノードn1を、先頭から3ビット目までのビットパターンが‘010’であるセルPE4、PE5にはノードn3を、先頭から3ビット目までのビットパターンが‘011’であるセルPE6、PE7にはノードn4を、先頭から1ビット目までのビットパターンが‘1’であるセルPE8〜PE15にはノードn0をマッピングする。
同様に、2ページ目には、ノードn3の“子”のノードにあたるノードn5〜n10をマッピングする。
先頭から2ビット目までビットパターンが‘00’であるセルPE0〜PE3にはノードn5を、先頭から2ビット目までのビットパターンが‘01’であるセルPE4〜PE7にはノードn6を、先頭から2ビット目までのビットパターンが‘10’であるセルPE8〜PE11にはノードn7を、ビットパターンが‘1100’であるセルPE12にはノードn8を、ビットパターンが‘1101’であるセルPE13にはノードn9を、先頭から3ビット目までのビットパターンが‘111’であるセルPE14、PE15にはノードn10をマッピングする。
以上のように、この実施の形態1のテーブル装置11は、国際標準に準拠した可変長符号化/復号方式に対応したコンフィグレーションデータを設定することができ、様々な方式の動的再構成可能なテーブルを構成することができる。
また、このテーブル装置11を用いた可変長符号化/復号装置は、1つの回路で可変長符号化/復号を行うことができるため、小型化、かつ低消費電力化を可能にする効果が得られる。
また、現在使用している1つのセル集合体で比較できるビット数が、比較すべき最大ビット数を満足していなくても、セルを再構成することで、最大ビット数の比較が可能となる。
テーブルのコンフィグレーションデータをコンフィグレーションメモリ37に保持することにより、規模の大きなテーブルに対しても比較動作の最中にコンフィグレーションデータを再度CPU2から書き込み直す必要はなく、コンフィグレーションにかかるサイクル数を大幅に短縮できる。
また、セルの比較対象値を固定長(例えば4ビット)とし、固定長ビットで表すことのできるビットパターンの種類数分(例えば4ビットの場合は、16種類)のセルのみでテーブル装置を構成するようにし、固定長ビット未満の比較を行う場合には、比較対象値のうち比較したいビットまでのビットパターンが同じセル同士は、いずれのセルで一致してもコンフィグレーションメモリ37の同じメモリ領域を参照するようにアドレスデコーダ32にアドレスマージ部42を設けたことで、小型なテーブル装置を得られる。
つまり、各セルでは、対応付けられているノードのノード値のビット長にかかわらず毎回それぞれの比較対象値と固定長ビットの入力データとの比較を行う。
このため、固定長ビットを4ビットとした場合に、特許文献3のように、1〜4ビットの各段階に対して個別にセルを設ける必要がなく、また、ノード値のビット長によって比較処理を実施しないセルが生じるという無駄を排除することができる。
また、上記実施の形態1では、可変長符号化/復号装置として説明してきたが、テーブル装置11を用いて可変長符号化装置あるいは可変長復号装置として別々に構成することも可能である。
以上、本実施の形態では、
固定長nビットで表されるビット値の種類数分のセルを設け、固有の比較対象値として各セルに各ビット値を割り当て、各セルはnビットの入力データと比較対象値を比較し、両者が一致すれば一致信号を出力し、アドレスデコーダ32とテーブル制御部36は、いずれかの可変長符号化又は可変長復号方式に対応し、各階層の各ノードにnビット以内のいずれかのビット値が割り当てられている探索木について、階層ごとに、一致信号を出力したセルの比較対象値と同じビット値のノードを特定しながら、探索木の下位方向に階層を辿ってノードの値を連接して符号化値又は復号値を生成し、nビット未満の比較を行う場合には、比較対象値のうち比較したいビットまでのビットパターンが同じセル同士は、いずれのセルで一致しても同じノードに対応付けるテーブル装置を説明した。
より詳しくは、本実施の形態では、
ある固定長ビットで表現可能なすべての値をセル毎に固有の比較対象値として1つずつ割り当て、符号化または復号する入力データとセル毎に固有の比較対象値とを比較することにより一致信号を得る複数のセルと、前記比較対象値に対応する符号化または復号に係る出力値および、これに代わる分岐コードを保持するコンフィグレーションメモリと、複数の前記セル毎に割り当てたセル番号のうち一致したセルに対応する一致セル番号を出力する手段と、前記一致セル番号と、使用する可変長符号化または復号テーブル毎に割り当てたテーブル番号と、各可変長符号化または復号テーブルをあるビット数以下に区切りテーブルを探索木と解釈したときの同時に比較できる部分木の集合単位であるページのうち比較しようとする部分木が所属するページを指定するページ番号に基づいて、対応する前記コンフィグレーションメモリのアドレスを生成するアドレスデコーダと、比較開始時に前記テーブル番号を設定し、比較開始時および前記コンフィグレーションメモリの出力が求めるべき最終出力値でない場合に次の入力データのシフト値と前記ページ番号を生成し、一方、前記コンフィグレーションメモリの出力が求めるべき最終出力である場合に次の入力データのシフト値と出力データを出力するテーブル制御部とを備え、
各セルは、前記入力データと前記セル毎に固有の比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器を有し、
前記アドレスデコーダは、セル毎に固有の比較対象値のうち、ある固定長ビット未満の一部分のビットパターンと入力データを比較する場合に、ある固定長ビット未満の一部分のビットパターンが等しい比較対象値を有するセル同士においては、いずれのセルで比較が一致した場合も、等しいコンフィグレーションメモリのアドレスを生成するアドレスマージ手段を有し、
前記テーブル制御部は、可変長符号化または復号の開始時に外部から設定される初期コードに基づいて前記テーブル番号を設定し、前記初期コードあるいは前記コンフィグレーションメモリの出力としての分岐コードに基づいて前記ページ番号を設定しアドレスデコーダに出力するテーブル装置を説明した。
また、本実施の形態では、
入力される可変長符号化される係数データあるいは可変長復号された係数データを格納する係数データメモリと、入力される復号対象のビットストリームあるいは符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項1記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、復号時に前記ビットストリームからビット数単位で読み込んだ固定長のビットストリームを、前記テーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部CPUからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号を指定する初期コードを設定する制御レジスタと、可変長符号化または復号の開始前に、前記外部CPUから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化/復号装置を説明した。
また、本実施の形態では、
入力される可変長符号化される係数データを格納する係数データメモリと、符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項1記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、外部CPUからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号を指定する初期コードを設定する制御レジスタと、可変長符号化の開始前に、前記外部CPUから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化装置を説明した。
また、本実施の形態では、
入力される復号されるビットストリームを格納するビットストリームメモリと、可変長復号された係数データを格納する係数データメモリと、復号時に前記ビットストリームメモリからビット数単位で読み込んだ固定長のビットストリームを、請求項1記載のテーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部CPUからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号を指定する初期コードを設定する制御レジスタと、可変長復号の開始前に、前記外部CPUから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長復号装置。
実施の形態2.
実施の形態2の場合、図1に示す制御レジスタ12には、実施の形態1と同様に、入力データ選択信号26やテーブル番号30、ページ番号31を指定する初期コードのほか、後述する比較ビット数46を指定する初期コードの設定が含まれる。
図19は、実施の形態2によるテーブル装置の構成を示すブロック図である。
テーブル装置11は複数のセルPE0〜PE15、MUX25、一致セル番号出力部34、コンフィグレーションメモリ37、アドレスデコーダ32、テーブル制御部36、比較ビット制御部44を備えている。
MUX25、一致セル番号出力部34、アドレスデコーダ32については、図2に示したテーブル装置11と同じであるため、説明を省略する。
コンフィグレーションメモリ37は、可変長符号化または可変長復号の開始前にCPU2から書き込まれる出力値(復号時は直交変換係数、符号化時は不特定長のビットストリーム)、およびこれに代わる分岐コードが含まれるコンフィグレーションデータ13を保持する手段である。
なお、分岐コードは、次に使用するページ番号を指定する指定コード、入力データのシフト値を指定する指定コードのほか、セルPE0〜PE15で比較するビット数を指定する指定コードを含んでいる。
図26は、本実施の形態に係るコンフィグレーションデータの例を示す。
図26に示すコンフィグレーションデータでは、図24(b)に示したものと比較して、比較ビット数の欄が追加されている。
比較ビット数は、レコードが対象としているノードに下位階層が接続されている場合に(そのレコードが分岐コードのレコードである場合に)、次ページの入力データに対して比較処理を行うセルを選択する際の基準となるビット数(選択基準ビット数)である。
より具体的には、比較ビット数は、レコードが対象としているノードの下位階層のノードのノード値のビット数と同値である。
例えば、アドレスXX1234に対応するレコードは図5のノードn1に対応しているが、このノードn1の下位階層のノードであるノードn2〜n17のノード値は4ビットであるため、このレコードの比較ビット数は4ビットとなっている。
後述の比較ビット制御部44が、比較ビット数を用いて、次ページの入力データに対して比較対象値との比較処理を行うセルを選択する。
なお、図26において、アドレスXX5678に対応するレコードは図5のノードn25に対応しており、ノードn25はリーフであり下位階層のノードは存在しないが、出力値が出力された後は、処理が1ページ目に戻るため、1ページ目のノードn0、ノードn1のノード値のビット数である1ビットが比較ビット数に記述されている。
なお、リーフノードのレコードには比較ビット数は記述されていなくてもよい。
テーブル制御部36は、比較動作の開始時に外部から設定される初期コードに基づいてテーブル番号30を生成し、比較動作の開始時、またはコンフィグレーションメモリ37のデータ出力39が分岐コードである場合に、初期コードあるいは分岐コードを構成しているページ番号を示すコードとシフト値を示すコードと比較ビット数を示すコードに基づいて、次に使用するページ番号31とシフト値41を生成すると共に、比較ビット数出力部45によって比較ビット数46を生成する。
一方、コンフィグレーションメモリ37のデータ出力39が求めるべき最終出力値である場合、データ出力39から出力データ40とシフト値41を生成し出力する。
比較ビット制御部44は、比較ビット数46に基づいて、次ページの入力データに対して比較対象値との比較処理を行わせるセル(対象セル)を選択し、選択したセルに入力データと比較対象値との比較を指示する。
より詳しくは、比較ビット制御部44は、比較ビット数46に基づいて、セルPE0〜PE15に与えるビットマスクデータ47と、セルPE0〜PE15にそれぞれ与えるセル非動作信号48S0〜48S15を生成する。
ビットマスクデータ47は、比較ビット数46が1ビットを示している場合は‘1000’、2ビットを示している場合は‘1100’、3ビットを示している場合は‘1110’、4ビットを示している場合は‘1111’となる。
セル非動作信号48は、比較ビット数46が1ビットを示している場合は、48S0と48S8は‘動作’を示す信号となり、それ以外は‘非動作’を示す信号となる。
2ビットを示している場合は、48S0、48S4、48S8、48S12は‘動作’を示す信号となり、それ以外は‘非動作’を示す信号となる。
3ビットを示している場合は、48S0、48S2、48S4、48S6、48S8、48S10、48S12、48S14は‘動作’を示す信号となり、それ以外は‘非動作’を示す信号となる。
4ビットを示している場合は、48S0〜48S15はいずれも‘動作’を示す信号となる。
比較ビット制御部44は、セル選択部の例である。
図20は、図19に示すセルPE0〜PE15の構成例を示すブロック図である。
セルは、セル無効化部49、ビットマスク部50a、50b、比較器43から構成される。
セル無効化部49は、セル非動作信号48が‘非動作’を示す信号である場合、セル内に供給される電源を切断し、セル内を非動作状態とする手段である。
ビットマスク部50は、ビットマスクデータ47と入力データ29、または、ビットマスクデータ47と比較対象値24のビット論理積をとり比較器43に出力する。
比較器43は、ビットマスク部50の出力であるデータ51aと51bとを比較し、両者が一致した際に一致信号33を出力する手段である。
セル毎に固有な比較対象値24は、全セルで同じビット長であり、例えば4ビットの場合は、4ビットで表現可能なすべての値から1つずつ各セルに割り当てられる。
すなわち、セルPE0の比較対象値24は‘0000’である。
セルPE1の比較対象値24は‘0001’である。
セルPE2の比較対象値24は‘0010’である。
セルPE3の比較対象値24は‘0011’である。
セルPE4の比較対象値24は‘0100’である。
セルPE5の比較対象値24は‘0101’である。
セルPE6の比較対象値24は‘0110’である。
セルPE7の比較対象値24は‘0111’である。
セルPE8の比較対象値24は‘1000’である。
セルPE9の比較対象値24は‘1001’である。
セルPE10の比較対象値24は‘1010’である。
セルPE11の比較対象値24は‘1011’である。
セルPE12の比較対象値24は‘1100’である。
セルPE13の比較対象値24は‘1101’である。
セルPE14の比較対象値24は‘1110’である。
セルPE15の比較対象値24は‘1111’である。
入力データ29は、各セルに対し、比較対象値24と同等のビット数分が入力される。
一致信号33は、セル内が動作状態である場合は、比較器43による比較結果となり、セル内が非動作状態である場合は、不一致を示す‘0’にクリアされる。
図4および図5に示すテーブルを例に、上記実施の形態2のテーブル装置11内で行われる比較動作について、図21、図22、図23を用いて説明する。
本実施の形態でも、実施の形態1と同様に、図4の可変長復号テーブルに示されている2進数「00000111」を10進数の「7」に復号する例を説明する。
図21において、まず、入力データ29として入力される特定のビット数分のビットストリームを‘0000’とし、比較動作開始時のページ番号として図6に示した1ページ目が指定されているものとする。
また、1ページ目では1ビットまでの比較を行うため、比較開始時の比較ビット数として1ビットが指定されているものとする。
復号モードにあるとき、ビットストリームデータ27は、MUX25で入力データ選択信号26によって、入力データ29、すなわちビットストリームデータ‘0000’として選択され、各セルPE0〜PE15に対し、‘0000’がそれぞれ入力される。
一方、テーブル制御部36は、制御レジスタ(図7の12)の設定状態を見にいき、使用するテーブル番号と比較動作開始時に用いるページ番号と比較動作開始時に用いるページに対応する比較ビット数を指定する初期コードを取り寄せ、この初期コードに基づいてテーブル番号30とページ番号31を生成すると共に、比較ビット数出力部45によって比較ビット数46を生成する。
比較ビット制御部44は、比較ビット数46が1ビットであるため、ビットマスクデータ47を‘1000’に設定し、また、セル非動作信号48は48S0と48S8のみ‘動作’を指定し、それ以外は‘非動作’を指定する。
従って、セル非動作信号48として‘非動作’を指定されたPE1〜PE7、PE9〜PE15は、電源を供給されない非動作状態となり、一致信号33は‘0’にクリアされる。
一方、セルPE0とPE8では、ビットマスク部50aにより、入力されたビットストリーム27がビットマスクデータ47(=‘1000’)を用いてビットマスクされて、データ51a(=‘0000’)が得られ、また、ビットマスク部50bにより、各セルで固有の比較対象値24がビットマスクデータ47(=‘1000’)を用いてビットマスクされて、データ51bが得られ、データ51aとデータ51bを比較器43で比較する。
すなわち、セルPE0では比較対象値‘0000’とビットストリーム‘0000’、セルPE8では比較対象値‘1000’とビットストリーム‘0000’をそれぞれ比較する。
この場合、セルPE0で比較が一致することになり、比較器43から一致信号33が出力される。
一致セル番号出力部34は、一致セル番号35と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルPE0(図5のn1)のセル番号が一致セル番号35として出力される。
アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35と先に設定されているテーブル番号30およびページ番号31(1ページ目)から、ノードn1(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
ノードn1(図5)は分岐として設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には分岐コードが保持されており、コンフィグレーションメモリ37のデータ出力39は分岐コードとなる。
テーブル制御部36は、この分岐コードに基づいてページ番号31を変更する。
このことにより、可変長復号テーブルは再構成される。
ここでは、ページ番号31により、2ページ目(図6)が選択されることで、ノードn1以下(‘0’より下位のビット)の比較が可能となる。
また、分岐コードに基づいてシフト値41が生成される。
ここでは、比較が一致したノードn1のビットパターンが1ビットであることから、分岐コードにはシフト値1ビットを示すコードが含まれており、シフト値41は‘1’となる。
また、分岐コードに基づいて比較ビット数46が生成される。
ここでは、2ページ目(図6)は4ビットまでの比較を行うため、比較ビット数46として4ビットを生成する。
続いて、図22において、入力データ29として、前の比較によって生成されたシフト値41に基づいて1ビットシフトされたビットストリーム‘0000’が入力されるものとする。
比較ビット制御部44は、比較ビット数46が4ビットであるため、ビットマスクデータ47を‘1111’に設定し、また、セル非動作信号48は48S0〜48S15すべて‘動作’を指定する。
従って、セル非動作信号48として‘動作’を指定されたPE0〜PE15では、ビットマスク部50aにより、入力されたビットストリーム27がビットマスクデータ47(=‘1111’)を用いてビットマスクされて、データ51a(=‘0000’)が得られ、また、ビットマスク部50bにより、各セルで固有の比較対象値24がビットマスクデータ47(=‘1111’)を用いてビットマスクされて、データ51bが得られ、データ51aとデータ51bを比較器43で比較する。
すなわち、セルPE0では比較対象値‘0000’とビットストリーム‘0000’を比較する。
セルPE1では比較対象値‘0001’とビットストリーム‘0000’を比較する。
セルPE2では比較対象値‘0010’とビットストリーム‘0000’を比較する。
セルPE3では比較対象値‘0011’とビットストリーム‘0000’を比較する。
セルPE4では比較対象値‘0100’とビットストリーム‘0000’を比較する。
セルPE5では比較対象値‘0101’とビットストリーム‘0000’を比較する。
セルPE6では比較対象値‘0110’とビットストリーム‘0000’を比較する。
セルPE7では比較対象値‘0111’とビットストリーム‘0000’を比較する。
セルPE8では比較対象値‘1000’とビットストリーム‘0000’を比較する。
セルPE9では比較対象値‘1001’とビットストリーム‘0000’を比較する。
セルPE10では比較対象値‘1010’とビットストリーム‘0000’を比較する。
セルPE11では比較対象値‘1011’とビットストリーム‘0000’を比較する。
セルPE12では比較対象値‘1100’とビットストリーム‘0000’を比較する。
セルPE13では比較対象値‘1101’とビットストリーム‘0000’を比較する。
セルPE14では比較対象値‘1110’とビットストリーム‘0000’を比較する。
セルPE15では比較対象値‘1111’とビットストリーム‘0000’を比較する。
この場合、セルPE0で比較が一致することになり、比較器43から一致信号33が出力される。
一致セル番号出力部34は、一致セル番号35と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルPE0(図5のn2)のセル番号が一致セル番号35として出力される。
アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35と先に設定されているテーブル番号30およびページ番号31からノードn2(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
ノードn2(図5)は分岐として設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には分岐コードが保持されており、コンフィグレーションメモリ37のデータ出力39は分岐コードとなる。
テーブル制御部36は、この分岐コードに基づいてページ番号31を変更する。このことにより、可変長復号テーブルは再構成される。
ここでは、ページ番号31により、3ページ目(図6)が選択されることで、ノードn2以下(‘0_0000’より下位のビット)の比較が可能となる。
また、分岐コードに基づいてシフト値41が生成される。
ここでは、比較が一致したノードn2のビットパターンが4ビットであることから、分岐コードにはシフト値4ビットを示すコードが含まれており、シフト値41は‘4’となる。
また、分岐コードに基づいて比較ビット数46が生成される。
ここでは、3ページ目(図6)は3ビットまでの比較を行うため、比較ビット数46として3ビットを生成する。
続いて、図23において、入力データ29として、前の比較によって生成されたシフト値41に基づいて4ビットシフトされたビットストリーム‘1110’が入力されるものとする。
比較ビット制御部44は、比較ビット数46が3ビットであるため、ビットマスクデータ47を‘1110’に設定し、また、セル非動作信号48は48S0、48S2、48S4、48S6、48S8、48S10、48S12、48S14を‘動作’に指定し、それ以外は‘非動作’に指定する。
従って、セル非動作信号48として‘非動作’を指定されたPE1、PE3、PE5、PE7、PE9、PE11、PE13、PE15は、電源を供給されない非動作状態となり、一致信号33は‘0’にクリアされる。
一方、セル非動作信号48として‘動作’を指定されたPE0、PE2、PE4、PE6、PE8、PE10、PE12、PE14では、ビットマスク部50aにより、入力されたビットストリーム27がビットマスクデータ47(=‘1110’)を用いてビットマスクされて、データ51a(=‘1110’)が得られ、また、ビットマスク部50bにより、各セルで固有の比較対象値24がビットマスクデータ47(=‘1110’)を用いてビットマスクされて、データ51bが得られ、データ51aとデータ51bを比較器43で比較する。
すなわち、セルPE0では比較対象値‘0000’とビットストリーム‘1110’を比較する。
セルPE2では比較対象値‘0010’とビットストリーム‘1110’を比較する。
セルPE4では比較対象値‘0100’とビットストリーム‘1110’を比較する。
セルPE6では比較対象値‘0110’とビットストリーム‘1110’を比較する。
セルPE8では比較対象値‘1000’とビットストリーム‘1110’を比較する。
セルPE10では比較対象値‘1010’とビットストリーム‘1110’を比較する。
セルPE12では比較対象値‘1100’とビットストリーム‘1110’を比較する。
セルPE14では比較対象値‘1110’とビットストリーム‘1110’を比較する。
この場合、セルPE14で比較が一致することになり、比較器43から一致信号33が出力される。
一致セル番号出力部34は、一致セル番号35と共に、比較が一致したことを伝える一致信号を出力する。
すなわち、セルPE14(図5のn25)のセル番号が一致セル番号35として出力される。
アドレスデコーダ32は、一致信号が入力されると、同時に入力された一致セル番号35と先に設定されているテーブル番号30およびページ番号31からノードn25(図5)に対応するコンフィグレーションデータが書き込まれているコンフィグレーションメモリ37のアドレス38を生成する。
ノードn25(図5)はリーフとして設定されているため、アドレスデコーダ32によって生成されるアドレス38に対応するコンフィグレーションメモリ37の領域には出力値コードが保持されており、コンフィグレーションメモリ37のデータ出力39は出力値コードとなる。
テーブル制御部36は、この出力値コードに基づいて出力データ40(=7、図4)を出力すると共に、シフト値41を生成する。
ここでは、比較が一致したノードn25のビットパターンが3ビットであることから、出力値コードにはシフト値3ビットを示すコードが含まれており、シフト値41は‘3’となる。
すなわち、次のテーブルデータの比較時には、入力データ29は現比較の4ビット目‘0’から開始されることになる。
以上のように、この実施の形態2のテーブル装置によれば、実際に比較するビット数が、ある固定長の比較対象値のビット数未満に制限できる場合には、使用するセルを限定し、使用しないセルへの電源供給を切断することができるため、テーブル装置の消費電力を低減する効果が得られる。
なお、本実施の形態では、図19の構成のテーブル装置において可変長復号を行う例を説明したが、図19の構成のテーブル装置において可変長符号化を行うことも可能である。
以上、本実施の形態では、
ある固定長ビットで表現可能なすべての値をセル毎に固有の比較対象値として1つずつ割り当て、符号化または復号する入力データとセル毎に固有の比較対象値とを比較することにより一致信号を得る複数のセルと、前記比較対象値に対応する符号化または復号に係る出力値および、これに代わる分岐コードを保持するコンフィグレーションメモリと、複数の前記セル毎に割り当てたセル番号のうち一致したセルに対応する一致セル番号を出力する手段と、前記一致セル番号と、使用する可変長符号化または復号テーブル毎に割り当てたテーブル番号と、各可変長符号化または復号テーブルをあるビット数以下に区切りテーブルを探索木と解釈したときの同時に比較できる部分木の集合単位であるページのうち比較しようとする部分木が所属するページを指定するページ番号に基づいて、対応する前記コンフィグレーションメモリのアドレスを生成するアドレスデコーダと、比較開始時に前記テーブル番号を設定し、比較開始時および前記コンフィグレーションメモリの出力が求めるべき最終出力値でない場合に次の入力データのシフト値と前記ページ番号を生成すると共に、セル毎に固有のある固定長ビットの比較対象値のうち実際に比較するビット数を指定する比較ビット数を生成し、一方、前記コンフィグレーションメモリの出力が求めるべき最終出力である場合に次の入力データのシフト値と出力データを出力するテーブル制御部と、前記比較ビット数に基づき、複数の前記セルのうち非動作にできるセルを指定するセル非動作信号と、前記入力データおよび前記セル毎に固有の比較対象値から比較ビットを選択するためのビットマスクデータを生成する比較ビット制御手段とを備え、
各セルは、前記セル非動作信号に基づき自セルを非動作状態に設定するセル無効化手段と、前記ビットマスクデータに基づき前記入力データと前記セル毎に固有の比較対象値から比較ビットを選択するビットマスク手段と、前記ビットマスク手段によって得られたデータ同士を比較し、両者が一致した際に一致信号を出力する比較器とを有し、
前記アドレスデコーダは、セル毎に固有の比較対象値のうち、前記比較ビット数未満の一部分のビットパターンと入力データを比較する場合に、前記比較ビット数未満の一部分のビットパターンが等しい比較対象値を有するセル同士においては、いずれのセルで比較が一致した場合も、等しいコンフィグレーションメモリのアドレスを生成するアドレスマージ手段を有し、
前記テーブル制御部は、前記比較ビット数を生成する比較ビット数出力手段を有し、可変長符号化または復号の開始時に外部から設定される初期コードに基づいて前記テーブル番号を設定し、前記初期コードあるいは前記コンフィグレーションメモリの出力としての分岐コードに基づいて前記ページ番号を設定しアドレスデコーダに出力すると共に、前記比較ビット数出力手段により比較ビット数を出力するテーブル装置を説明した。
また、本実施の形態では、
入力される可変長符号化される係数データあるいは可変長復号された係数データを格納する係数データメモリと、入力される復号対象のビットストリームあるいは符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項2記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、復号時に前記ビットストリームからビット数単位で読み込んだ固定長のビットストリームを、前記テーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部CPUからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号や比較ビット数を指定する初期コードを設定する制御レジスタと、可変長符号化または復号の開始前に、前記外部CPUから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化/復号装置を説明した。
また、本実施の形態では、
入力される可変長符号化される係数データを格納する係数データメモリと、符号化結果のビットストリームを格納するビットストリームメモリと、符号化時に請求項2記載のテーブル装置の出力データとして得られた可変長コードのビットストリームを、ビット数単位のデータにパッキングして前記ビットストリームメモリに格納するパック部と、外部CPUからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号や比較ビット数を指定する初期コードを設定する制御レジスタと、可変長符号化の開始前に、前記外部CPUから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長符号化装置を説明した。
また、本実施の形態では、
入力される復号されるビットストリームを格納するビットストリームメモリと、可変長復号された係数データを格納する係数データメモリと、復号時に前記ビットストリームメモリからビット数単位で読み込んだ固定長のビットストリームを、請求項2記載のテーブル装置による復号で消費したビット数分だけシフトして前記テーブル装置の入力データとして出力するアンパック部と、外部CPUからの指示により、前記テーブル装置の制御部で比較動作の開始時に用いるテーブル番号やページ番号や比較ビット数を指定する初期コードを設定する制御レジスタと、可変長復号の開始前に、前記外部CPUから前記テーブル装置のコンフィグレーションメモリに書き込むコンフィグレーションデータを伝送する伝送手段とを備えた可変長復号装置を説明した。
最後に、実施の形態1及び2に示した可変長符号化/復号化装置4を実現するコンピュータ装置100のハードウェア構成例について説明する。
図27は、実施の形態1及び2に示した可変長符号化/復号化装置4を実現するコンピュータ装置100のハードウェア資源の一例を示す図である。
なお、図27の構成は、あくまでもコンピュータ装置100のハードウェア構成の一例を示すものであり、コンピュータ装置100のハードウェア構成は図27に記載の構成に限らず、他の構成であってもよい。
図27において、コンピュータ装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
また、図2等に示したセル群908もハードウェアとしてコンピュータ装置100に含まれている。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1及び2で説明した係数データメモリ8、ビットストリームメモリ17、制御レジスタ12、コンフィグレーションメモリ37は、例えばRAM914により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、例えば、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、アドレスデコーダ32が用いるテーブル(例えば図24(b)に示すテーブル)がRAM914に格納されていてもよい。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
コンピュータ装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1及び2の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。
プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1及び2の説明において、「〜の判断」、「〜の判定」、「〜の特定」、「〜の指定」、「〜の計算」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で示している矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1及び2の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、実施の形態1及び2に示した可変長符号化/復号化装置4を方法として把握することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1及び2の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1及び2に示す可変長符号化/復号化装置4は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータにより実現され、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
1 入出力ポート、2 CPU、3 メモリ、4 可変長符号化/復号装置、5 バスライン、6 バスインターフェース、7 ビットストリームメモリ、8 係数データメモリ、9 アンパック部、10 パック部、11 テーブル装置、12 制御レジスタ、13 コンフィグレーションデータ、23 外部リセット信号、24 比較対象値、25 マルチプレクサ、26 入力データ選択信号、27 ビットストリームデータ、28 係数データ、29 入力データ、30 テーブル番号、31 ページ番号、32 アドレスデコーダ、33 一致信号、34 一致セル番号出力部、36 テーブル制御部、37 コンフィグレーションメモリ、40 出力データ、41 シフト値、42 アドレスマージ部、43 比較器、44 比較ビット制御部、45 比較ビット数出力部、46 比較ビット数、47 ビットマスクデータ、48 セル非動作信号、49 セル無効化部、50 ビットマスク部、300 セル。

Claims (12)

  1. 固定長nビット(nは2以上の任意数)で表されるビット値の種類数と同数の複数のセルであって、nビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、変換対象データの少なくとも一部を構成するnビットの変換対象部分データを各々が入力し、入力した変換対象部分データと各々の比較対象値とを比較し、比較対象値と変換対象部分データが一致すれば一致信号を出力する複数のセルと、
    複数種の可変長データ変換方式の各々に対応して定義されている複数の探索木であって、各階層の各ノードにnビット以内のいずれかのビット数のビット値がノード値として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿ってノード値を連接することにより対応している可変長データ変換方式によるデータ変換後の全てのビット値を探索できる探索木の中から、変換対象データのデータ変換に適用する可変長データ変換方式に対応する探索木を対象探索木として指定する探索木指定部と、
    前記探索木指定部により指定された対象探索木の階層のうちノード判定の対象となる階層を対象階層として指定する階層指定部と、
    各探索木の階層単位でセルとノードとの対応関係を管理しており、一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、対象探索木の対象階層内のノードの中から一致セルに対応付けられているノードを一致ノードとして判定するノード判定部と、
    各探索木のノードごとに、ノードに下位階層が連結していれば当該下位階層の識別子が示され、ノードに下位階層が連結していなければ出力値が示されるコンフィグレーションデータを記憶するコンフィグレーションメモリとを有し、
    前記ノード判定部は、
    nビットのノード値が割り当てられているノードに対して、比較対象値が当該ノードのノード値と一致するセルを対応付け、nビット未満のノード値が割り当てられているノードに対して、比較対象値のビットパターンが当該nビット未満のビット数の範囲で一致している2以上のセルを重複して対応付け、
    前記階層指定部は、
    前記対象探索木及び前記一致ノードに基づいて前記コンフィグレーションデータを参照し、前記一致ノードに対して下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、前記一致ノードに対して出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とするデータ処理装置。
  2. 前記コンフィグレーションメモリは、
    ノードごとに、ノード値のビット数と同数のシフト値が示されるコンフィグレーションデータを記憶し、
    前記複数のセルは、
    直近に比較対象値と比較した変換対象部分データから、直近に前記ノード判定部により判定された一致ノードに対して前記コンフィグレーションデータに示されているシフト値分をシフトして得られるnビット分の変換対象データを新たな変換対象部分データとして入力し、入力した新たな変換対象部分データと各々の比較対象値とを比較することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記ノード判定部は、
    セルとノードとの対応関係として、各探索木の階層単位で、セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを管理し、
    一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、一致セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを抽出し、
    前記階層指定部は、
    前記ノード判定部により抽出されたアドレスに格納されている情報に下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とする請求項1又は2に記載のデータ処理装置。
  4. 前記探索木指定部は、
    同じ階層に属する2以上のノードに共通して同じビット数のノード値が割り当てられている探索木を指定することを特徴とする請求項1〜3のいずれかに記載のデータ処理装置。
  5. 前記探索木指定部は、
    同じ階層に属する2以上のノードに異なるビット数のノード値が割り当てられている探索木を指定することを特徴とする請求項1〜のいずれかに記載のデータ処理装置。
  6. 固定長nビット(nは2以上の任意数)で表されるビット値の種類数と同数の複数のセルであって、nビットで表される各ビット値がセルごとの固有の比較対象値としていずれかのセルに割り当てられ、比較指示を入力した場合に、変換対象データの少なくとも一部を構成するnビットの変換対象部分データを入力し、入力した変換対象部分データと各々の比較対象値とを比較し、比較対象値と変換対象部分データが一致すれば一致信号を出力する複数のセルと、
    複数種の可変長データ変換方式の各々に対応して定義されている複数の探索木であって、各階層の各ノードにnビット以内のいずれかのビット数のビット値がノード値として割り当てられ、いずれかのノードには下位階層が連結され、最上位階層から下位方向に階層を辿ってノード値を連接することにより対応している可変長データ変換方式によるデータ変換後の全てのビット値を探索できる探索木の中から、変換対象データのデータ変換に適用する可変長データ変換方式に対応する探索木を対象探索木として指定する探索木指定部と、
    前記探索木指定部により指定された対象探索木の階層のうちノード判定の対象となる階層を対象階層として指定する階層指定部と、
    各探索木の階層単位でノードとセルとの対応関係を管理しており、一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、対象探索木の対象階層内のノードの中から一致セルに対応付けられているノードを一致ノードとして判定するノード判定部と、
    各探索木のノードごとに、ノードに下位階層が連結していれば当該下位階層の識別子が示され、更に、前記複数のセルの中からセルを選択する際の基準となるビット数が選択基準ビット数として示され、ノードに下位階層が連結していなければ出力値が示されているコンフィグレーションデータを記憶するコンフィグレーションメモリと、
    前記複数のセルの中から変換対象部分データと比較対象値との比較を行わせるセルを対象セルとして選択し、選択した対象セルに比較指示を出力するセル選択部とを有し、
    前記ノード判定部は、
    nビットのノード値が割り当てられているノードに対して、比較対象値が当該ノードのノード値と一致するセルを対応付け、nビット未満のノード値が割り当てられているノードに対して、比較対象値のビットパターンが当該nビット未満のビット数の範囲で一致している2以上のセルを重複して対応付け、
    前記階層指定部は、
    前記対象探索木及び前記一致ノードに基づいて前記コンフィグレーションデータを参照し、前記一致ノードに対して下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、更に、前記一致ノードに対して示されている選択基準ビット数を前記セル選択部に通知し、前記一致ノードに対して出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力し、
    前記セル選択部は、
    選択基準ビット数と選択すべきセルとの対応関係を管理しており、
    前記階層指定部から選択基準ビット数が通知された場合に、通知された選択基準ビット数に対応するセルを対象セルとして選択することを特徴とするデータ処理装置。
  7. 前記コンフィグレーションメモリは、
    下位階層が連結しているノードに対して、下位階層に属するノードのノード値のビット数を選択基準ビット数として示すコンフィグレーションデータを記憶し、
    前記セル選択部は、
    選択基準ビット数ごとに、選択基準ビット数の範囲で比較対象値のビットパターンが相違している2以上のセルを対象セルとして管理しており、
    前記階層指定部から選択基準ビット数が通知された場合に、通知された選択基準ビット数に対応する2以上のセルを対象セルとして選択することを特徴とする請求項6に記載のデータ処理装置。
  8. 前記セル選択部は、
    前記階層指定部から通知された選択基準ビット数に対応させてビットマスクデータを生成し、生成したビットマスクデータを少なくとも対象セルに出力し、
    前記複数のセルは、
    前記セル選択部から比較指示とビットマスクデータを入力した場合に、比較対象値にビットマスクデータを適用して所定の演算を行い、変換対象部分データにビットマスクデータを適用して所定の演算を行い、比較対象値についての演算結果と変換対象部分データについての演算結果を比較し、両者が一致した場合に一致信号を出力することを特徴とする請求項6又は7に記載のデータ処理装置。
  9. 前記コンフィグレーションメモリは、
    ノードごとに、ノード値のビット数と同数のシフト値が示されるコンフィグレーションデータを記憶し、
    前記複数のセルは、
    直近に比較対象値と比較した変換対象部分データから、直近に前記ノード判定部により判定された一致ノードに対して前記コンフィグレーションデータに示されているシフト値分をシフトして得られるnビット分の変換対象データを新たな変換対象部分データとして入力し、入力した新たな変換対象部分データと各々の比較対象値とを比較することを特徴とする請求項6〜8のいずれかに記載のデータ処理装置。
  10. 前記ノード判定部は、
    セルとノードとの対応関係として、各探索木の階層単位で、セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを管理し、
    一致信号を入力した際に、一致信号を出力したセルを一致セルとして特定し、一致セルに対応するノードの情報が格納されているコンフィグレーションメモリのアドレスを抽出し、
    前記階層指定部は、
    前記ノード判定部により抽出されたアドレスに格納されている情報に下位階層の識別子が示されていれば、当該下位階層を次の対象階層として指定し、出力値が示されていれば、前記変換対象データのデータ変換値として当該出力値を出力することを特徴とする請求項6〜9のいずれかに記載のデータ処理装置。
  11. 前記複数のセルは、
    変換対象部分データとして、符号化対象データの少なくとも一部を構成するnビットの符号化対象部分データを入力し
    前記探索木指定部は、
    複数種の可変長符号化方式の各々に対応して定義されている複数の探索木の中から、符号化対象データの符号化に適用する可変長符号化方式に対応する探索木を対象探索木として指定し、
    前記階層指定部は、
    前記符号化対象データの符号化値として出力値を出力することを特徴とする請求項1〜10のいずれかに記載のデータ処理装置。
  12. 前記複数のセルは、
    変換対象部分データとして、復号対象データの少なくとも一部を構成するnビットの復号対象部分データを入力し
    前記探索木指定部は、
    複数種の可変長復号方式の各々に対応して定義されている複数の探索木の中から、復号対象データの復号に適用する可変長復号方式に対応する探索木を対象探索木として指定し、
    前記階層指定部は、
    前記復号対象データの復号値として出力値を出力することを特徴とする請求項1〜11のいずれかに記載のデータ処理装置。
JP2010234103A 2010-10-19 2010-10-19 データ処理装置 Expired - Fee Related JP5566254B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010234103A JP5566254B2 (ja) 2010-10-19 2010-10-19 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010234103A JP5566254B2 (ja) 2010-10-19 2010-10-19 データ処理装置

Publications (2)

Publication Number Publication Date
JP2012090021A JP2012090021A (ja) 2012-05-10
JP5566254B2 true JP5566254B2 (ja) 2014-08-06

Family

ID=46261185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010234103A Expired - Fee Related JP5566254B2 (ja) 2010-10-19 2010-10-19 データ処理装置

Country Status (1)

Country Link
JP (1) JP5566254B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113839679B (zh) * 2021-08-31 2023-09-15 山东云海国创云计算装备产业创新中心有限公司 一种哈夫曼解码系统、方法、设备及计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2548272B2 (ja) * 1988-02-12 1996-10-30 松下電器産業株式会社 可変長符号化コード復号装置
JP4391374B2 (ja) * 2004-09-29 2009-12-24 三菱電機株式会社 テーブル装置、可変長符号化/復号装置、可変長符号化装置および可変長復号装置
JP2006324944A (ja) * 2005-05-19 2006-11-30 Renesas Technology Corp 符号化装置
JP4563300B2 (ja) * 2005-11-18 2010-10-13 三菱電機株式会社 テーブル装置、可変長符号化/復号装置、可変長符号化装置及び可変長復号装置
WO2008087750A1 (ja) * 2007-01-19 2008-07-24 Mitsubishi Electric Corporation テーブル装置、可変長符号化装置、可変長復号装置及び可変長符号化復号装置
JP5413161B2 (ja) * 2008-12-17 2014-02-12 三菱電機株式会社 テーブル装置、符号化装置、復号装置および符号化/復号装置

Also Published As

Publication number Publication date
JP2012090021A (ja) 2012-05-10

Similar Documents

Publication Publication Date Title
JP4703730B2 (ja) テーブル装置、可変長符号化装置、可変長復号装置及び可変長符号化復号装置
JP5945291B2 (ja) デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置
US9678879B2 (en) Set partitioning for encoding file system allocation metadata
TWI731868B (zh) 用於使用硬體與軟體之壓縮的系統、方法及裝置
US20050268038A1 (en) Methods and apparatus for providing a software implemented cache memory
Franaszek et al. Algorithms and data structures for compressed-memory machines
US20190123763A1 (en) Data compression engine for dictionary based lossless data compression
US20180060183A1 (en) Adding cooperative file coloring protocols in a data deduplication system
JP5566254B2 (ja) データ処理装置
US11424761B2 (en) Multiple symbol decoder
KR20210096153A (ko) 캐시 메모리들의 계층에서의 캐시 메모리들에 저장을 위한 데이터를 압축하는 방법
KR20220049522A (ko) 다중 데이터 스트림을 포함하는 압축된 입력 데이터를 압축 해제하기 위한 압축 해제 엔진
JP4563300B2 (ja) テーブル装置、可変長符号化/復号装置、可変長符号化装置及び可変長復号装置
JP4391374B2 (ja) テーブル装置、可変長符号化/復号装置、可変長符号化装置および可変長復号装置
US20040193835A1 (en) Table lookup instruction for processors using tables in local memory
TW201835781A (zh) 使用元資料之異動消除
TW202416131A (zh) 用於壓縮操作期間的常數偵測之設備及方法
US20220197642A1 (en) Processor instructions for data compression and decompression
US20230198548A1 (en) Apparatus and method for constant detection during compress operations
JPS6217851A (ja) メモリ管理ユニット
WO1999057642A1 (fr) Dispositif et procede de traitement de donnees
BR102022023763A2 (pt) Aparelho e método para detecção de constante durante operações de compactação
JP4862894B2 (ja) 符号化装置と方法及びプロセッサ
JP2022061450A (ja) 読出しコントローラおよび入出力コントローラ
US20060101257A1 (en) System and method to provide a processor with dynamic instruction set and decoder

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140617

R150 Certificate of patent or registration of utility model

Ref document number: 5566254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees