JP2002009625A - 高速データ圧縮/復元用エントロピーコーデック - Google Patents

高速データ圧縮/復元用エントロピーコーデック

Info

Publication number
JP2002009625A
JP2002009625A JP2001124175A JP2001124175A JP2002009625A JP 2002009625 A JP2002009625 A JP 2002009625A JP 2001124175 A JP2001124175 A JP 2001124175A JP 2001124175 A JP2001124175 A JP 2001124175A JP 2002009625 A JP2002009625 A JP 2002009625A
Authority
JP
Japan
Prior art keywords
data
register
bit
bits
bit stream
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.)
Pending
Application number
JP2001124175A
Other languages
English (en)
Other versions
JP2002009625A5 (ja
Inventor
T Crane Landy
ランディ・ティー・クレーン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002009625A publication Critical patent/JP2002009625A/ja
Publication of JP2002009625A5 publication Critical patent/JP2002009625A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 (修正有) 【課題】エントロヒ゜ー符号化を利用する任意の圧縮方式と共
に使用することが可能なエンコータ゛-テ゛コータ゛を提供する。 【解決手段】エントロヒ゜ー符号化されたテ゛ータを処理するため
のエンコータ゛-テ゛コータ゛を開示する。エンコータ゛-テ゛コータ゛は、レシ゛スタ
に受信されて格納されている固定長テ゛ータワート゛から抽出さ
れる可変長コート゛リート゛を受け取るためのヒ゛ットストリームハ゛ッファを
備える。可変長リート゛は、全てのヒ゛ットにテ゛ータがロート゛される
までヒ゛ットストリームハ゛ッファにロート゛され、ロート゛された時点で、テ゛
ータがヒ゛ットストリームハ゛ッファから読み出され、ヒ゛ットストリームハ゛ッファが
クリアされて新しいテ゛ータを受け取る準備ができる。復号化
中は、ヒ゛ットストリームハ゛ッファは、複数の可変長コート゛リート゛からな
る固定長テ゛ータリート゛を受け取る。これらのコート゛リート゛は、個
別に読み出されて、固定長レシ゛スタに入れられる。次に、
接続されたシステムによる更なる処理のために、固定長レシ゛ス
タの内容が読み出される。コントローラは、符号化処理と復号
化処理を連係させ及び制御するために設けられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、高速デ
ータ圧縮・復元のためのエントロピーエンコーダ−デコ
ーダに関する。より詳細には、エントロピー符号化手順
を組込んだ任意の圧縮方式と共に使用することができる
エントロピーエンコーダ−デコーダに関する。
【0002】
【従来の技術】データ伝送およびデータ処理アプリケー
ションにおいて、データの処理または伝送の前かまたは
最中に種々の圧縮アルゴリズムに従ってデータを圧縮す
ることは一般に行われている。さらに、処理または伝送
の最中かまたは後に、圧縮された(符号化された)デー
タを復号化して、符号化データをその元の形式に戻すこ
とも一般に行われている。
【0003】
【発明が解決しようとする課題】一般的な圧縮方式(ま
たはアルゴリズム)は、エントロピー符号化ステップと
して知られるものを組込んでいる。エントロピー符号化
ステップを組込んだこれら一般的なアルゴリズムの例に
は、LZW、可逆(無損失)JPEG、G3、G4等が
ある。一般に、エントロピー符号化ステップを含む圧縮
方式は、可変長の出力ビットストリームを生成する。符
号化出力が可変長であるという性質を有しているため、
このデータの処理は、処理ハードウェアおよび中央処理
装置またはコントローラの一部に対し多大な計算労力を
要求する。
【0004】典型的な圧縮ハードウェアは、一般的に、
1つの予め定義された圧縮アルゴリズムのみに従って処
理/符号化を行うように専用化されている。この制限の
ために、種々の圧縮アルゴリズムを使用して符号化され
たデータを処理し、または、伝送する場合、利用可能な
圧縮アルゴリズム/フォーマットの各々に適応するため
に、複数のハードウェアを実装する必要がある。このた
め、複数の圧縮アルゴリズムに従って符号化されたデー
タを処理または伝送することに関連するコストが増大す
る。
【0005】本発明は、エントロピー符号化手順を組込
んだ任意の圧縮方式と共に使用することができるエンコ
ーダ−デコーダを提供する。
【0006】
【課題を解決するための手段】本発明は、情報を符号化
および復号化するシステムおよび方法を提供する。簡単
に述べると、本システムは、アーキテクチャ上は以下の
ように構成することができる。すなわち、本システム
は、可変長のコードワードを受取って、格納するための
データレジスタと、データを受取るためのビットストリ
ームバッファと、制御レジスタからビットストリームバ
ッファ内の使用可能な最上位ビットに有効ビットをロー
ドするためのマルチプレクサと、ビットストリームバッ
ファのすべての使用可能ビットにデータの有効ビットが
ロードされたときにビットストリームバッファの内容を
受取るファーストインファーストアウト(FIFO)レ
ジスタと、FIFOレジスタからのデータの読み出しを
開始するための割込み信号を生成する割込みコントロー
ラを備える。
【0007】本発明の他の実施形態では、データを復号
化するためのデコーダが提供される。このデコーダは、
固定長符号化データワードデータを受取るための第1の
レジスタと、固定長符号化データワードを受取るための
ビットストリームバッファと、ビットストリームバッフ
ァからデータレジスタに可変長コードワードデータをロ
ードするためのマルチプレクサと、割込み信号を生成し
て、固定長符号化データの第1のレジスタへの書き込み
を開始するための割込みコントローラを備える。
【0008】本発明は、また、符号化の方法を提供す
る。この場合、本方法は、以下のステップによっておお
まかに要約することができる。それらのステップとは、
可変長コードワードデータを受取るステップと、コード
ワードデータの有効ビットの数を決定するステップと、
すべての有効ビットが適合する(または、収容される)
場合にコードワードデータをビットストリームバッファ
にロードするステップである。すべての有効ビットがビ
ットストリームバッファに適合するわけではない(また
は、すべての有効ビットが収容されるわけではない)場
合、ビットストリームバッファに有効ビットの第1のセ
グメントをロードし、その後、ビットストリームバッフ
ァの内容をFIFOレジスタにロードし、部分的な有効
ビットの第2のセグメントをビットストリームバッファ
にロードする。
【0009】以下のステップによっておおまかに要約す
ることができる、データを復号化する方法が提供され
る。すなわち、データワードを受取るステップと、デー
タワードをバッファにロードするステップと、可変長コ
ードワードをデータワードから読み出すステップと、可
変長コードワードを固定長レジスタにロードするステッ
プである。
【0010】本発明の他のシステム、方法、特徴および
利点は、以下の図面および詳細な説明を吟味することに
より当業者には明らかとなろう。そのような追加のシス
テム、方法、特徴および利点は、本明細書内に含まれて
おり、従って本発明の範囲内のものであって、特許請求
の範囲によって保護されるべきものである。
【0011】本発明は、添付図面を参照してより良く理
解することができる。図面の各要素は、必ずしも一定の
比率で示されているわけではなく、本発明の原理を明確
に示すことに重点を置いている。更に、各図面を通して
同じ参照番号は対応する部分を示している。
【0012】
【発明の実施の形態】本発明は、エントロピー符号化手
順を組込んだ実質的にあらゆる圧縮方式と共に使用する
ことができるエンコーダおよびデコーダ(CODEC)
に関する。さらに、本発明は、符号化動作中かまたは復
号化動作中にデータを処理するために使用することがで
きるデータFIFOおよびバレルシフタを提供する。
【0013】図1は、本発明のエントロピーCODEC
を組み込んだシステムを示す。ローカルインタフェース
120を介してCODEC1とインタフェースする中央
処理装置(CPU)2が設けられている。
【0014】図2に、本発明のエントロピーCODEC
1の1実施形態を示す。CODEC1は、2つのモー
ド、すなわち符号化モードと復号化モードで動作する。
図2には、レジスタインタフェース100、レジスタブ
ロック110およびローカルインタフェース120が示
されている。レジスタインタフェース100は、CPU
10とインタフェースしており、レジスタブロック11
0のレジスタへのデータの入力およびそれらのレジスタ
からのデータの読み出しを制御する。所与の時刻にFI
FO160に格納されているデータワードのレベル/数
をカウントするためのカウンタ170が設けられてい
る。カウンタ170は、FIFO160に格納されたデ
ータワードのレベル/数がカウンタ170に一致する値
(または、それに相当する値)に到達すると割込みコン
トローラ180に入力を提供する。
【0015】レジスタブロック110は、プットビット
長レジスタ110A、プットビットコードレジスタ11
0B、FIFOレベルレジスタ110C、リセットレジ
スタ110D、制御レジスタ110E、フラッシュファ
ーストインファーストアウト(FLUSH FIFO)
レジスタ110F、ゲットビットレジスタ110G、ビ
ットポインタレジスタ110Hおよびパックドアウトプ
ットワードレジスタ(packed output words register)
110Iを含む。また、マルチプレクサ140、ビット
ストリームバッファ150、及びファーストインファー
ストアウトレジスタブロック(FIFO)160の動作
を制御するコントローラ130も示されている。コント
ローラ130は、CPU10からの命令に従って動作す
る。FIFO160は、例えば、32ビット×16ワー
ドFIFOレジスタブロックである。マルチプレクサ1
40はローカルインタフェース120に接続されてお
り、それを介してデータがレジスタブロック110との
間で転送される。
【0016】リセットレジスタ110Dは、本発明のC
ODEC1の全ポインタとFIFO160を含むハード
ウェアをリセットするために使用される書き込み専用レ
ジスタ(ライトオンリレジスタ)である。制御レジスタ
110Eは、図3に示すような制御ビットを表すデータ
を格納する。図3を参照すると、制御レジスタ110E
を、動作のモードに応じて、例えばビット0〜4が、F
IFO160に格納することができるデータワードの最
大または最小レベル/数を表す予め定義された値、すな
わちFIFO割込みレベルを表すように構成することが
できることがわかる。制御レジスタ110Eのビット5
は、符号化/復号化ビット(EN/DEC)である。E
N/DECビットの値は、CODEC1がFIFO16
0からのデータを復号化しているかまたはFIFO16
0に送るデータを符号化しているかを示す。EN/DE
Cビットが例えば0である場合、CODEC1は符号化
を行う。これはまた、符号化モードとも呼ばれる。EN
/DECビットが例えば1である場合、CODEC1は
復号化を行う。これはまた、復号化モードと呼ばれる。
制御レジスタ110Eのビット6は、割込みイネーブル
ビットを表す。割込みイネーブル(IE)ビットは、例
えば、CODEC1がCPU10に割込みを行うことが
できるようにする1(HIGH)となることができる。
制御レジスタ110Eの残りのビットは、可変長コード
ワードデータを収集するために使用される。このコード
ワードデータは、次に、制御レジスタ110Eから読み
出され、マルチプレクサ140を介してビットストリー
ムバッファ150に送られる。制御レジスタ110Eの
すべてのビットは、好ましくはリセット時にデフォルト
として0になる。
【0017】ビットポインタレジスタ110Hについて
説明する。ビットポインタレジスタ110Hは、好まし
くは読み出し専用レジスタ(リードオンリレジスタ)で
あり、符号化モード中に、データをロードすることがで
きるビットストリームバッファ150内の次に使用可能
な最上位ビット(MSB)を示すポインタ値を表すデー
タを格納する。ビットストリームバッファ150が、例
えば32ビット長である場合、ビットポインタレジスタ
は、ビット0からビット31までの32ビットのうちの
1つを指すことができる。ビットストリームバッファ1
50が一杯である場合、ビットポインタレジスタはビッ
ト0を指し、ビットストリームバッファ150が一杯で
あることを示す。ビットポインタレジスタが1〜31の
値を示す場合、ビットストリームバッファ150はデー
タ入力を受入れるために使用することができるビットを
有している。例えば、ビットポインタレジスタ110H
が28の値を示す場合、追加のデータをビットストリー
ムバッファ150の次のMSB29で始まるビットスト
リームバッファ150にロードすることができる。要す
るに、ビットポインタレジスタ110Hの値は、データ
をロードすることができるビットストリームバッファ1
50のMSBビットを指定する。
【0018】フラッシュFIFOレジスタ110Fをア
ドレス指定して、ビットストリームバッファ150に格
納されたデータをFIFO160に書き込むことができ
る。ビットポインタレジスタ110Hの内容を、フラッ
シュFIFOレジスタ110Fへの書き込み前に読み出
すのが好ましい。
【0019】FIFOレベルレジスタ110Cの1例を
図4に示す。ここで、ビット0〜4はFIFOレベルを
格納するために使用されることが分かる。FIFOレベ
ルは、追加のデータワード用に場所を空けるためにFI
FO160の内容を読み出す前に、FIFO160にロ
ードすることができるデータワードの数を表す値であ
る。FIFOレベルレジスタ110Cは、符号化モード
中と復号化モード中の両方において読み出すことができ
る。プットビットコードレジスタ110Bは、データレ
ジスタであって、出力データストリングに出力されるか
または書き込まれる次の可変ビット長コードワードを表
すデータを格納するために設けられる。プットビットコ
ードレジスタ110Bに書き込まれたデータは、好まし
くは右寄せされている。また、出力データストリングに
書き込まれるプットビットコードレジスタ110Bのビ
ットの数を示すデータを格納する、プットビット長レジ
スタ110Aが設けられている。プットビット長レジス
タ110Aに書き込まれたデータにより、CODEC1
はプットビットコードレジスタ110Bに格納されたコ
ードデータを実際に書き込む。好ましい実施形態では、
データはまず、プットビット長レジスタ110Aへのデ
ータの書き込みの前に、プットビットコードレジスタ1
10Bに書き込まれる。
【0020】ゲットビットレジスタ110Gは、復号化
モード中に入力データストリームから可変ビット長コー
ドを抽出するために使用される。例えば、入力データス
トリームから次の5ビットを読み出したい場合は、値5
がゲットビットレジスタ110Gに書き込まれることに
なる。そして、ゲットビットレジスタ110Gの最下位
5ビットがコードワードを含むことになる。
【0021】パックドアウトプットワードレジスタ11
0Iについて説明する。例えば、コントローラまたは中
央処理装置(CPU)ブロックの読み出し命令を介し
て、パックドアウトプットワードレジスタ110Iをア
クセス/アドレス指定することができる。パックドアウ
トプットワードレジスタ110Iのアドレス指定された
空間に含まれるデータを読み出すことにより、次の圧縮
データワードがFIFO160からCPU10に出力さ
れる。
【0022】符号化モード中、データは概ね、マルチプ
レクサ140からビットストリームバッファ150、さ
らにFIFO160に流れ、復号化モードでは、データ
は概ね、FIFO160からビットストリームバッファ
150、さらにマルチプレクサ140に流れることに留
意されたい。
【0023】符号化モード 符号化モードでは、FIFO割込みレベルおよび割込み
イネーブルビットがセットされるよう、データが制御レ
ジスタ110Eに書き込まれる。符号化/復号化ビット
は、符号化を行うようセットされる。符号化されるデー
タは、プットビットコードレジスタ110Bにロードさ
れる。このデータは、可変長データワードからなる。コ
ントローラ130により、マルチプレクサ140は、固
定長データワードからビットストリームバッファ150
に有効ビットを読み出すために、プットビットコードレ
ジスタ110Bからその有効ビットを選択する。
【0024】ビットストリームバッファ150のすべて
のビットがロードされると、その内容は、ファーストイ
ン/ファーストアウト(FIFO)レジスタ160にシ
フトインされる。FIFOレジスタブロック160は、
任意の特定の時刻にFIFOレジスタ160に含まれて
いる32ビットワードの数をカウントするカウンタ17
0に関連付けられている。カウンタ170のカウント値
は、FIFOレベルレジスタ110CにFIFOレベル
データとして格納される。このデータは、FIFO16
0に対してデータの読み出しまたは書き込みを行うか否
かを決定するためにCPU10により使用することがで
きる。例えば、CPU10は、FIFOレベルレジスタ
110Cをポーリングすることができ、FIFOレベル
レジスタ110Cに格納されているFIFOレベルデー
タが、制御レジスタ110Eに格納されているFIFO
割込みレベルデータに一致すると、動作モードに応じ
て、データをFIFO160から読み出し、またはFI
FO160に書き込むことができる。また、カウンタ1
70の値が、制御レジスタ110Eに格納されているF
IFO割込みレベルデータの内容に一致する場合、デー
タを、FIFO160から読み出し、またはFIFO1
60に書き込むことができる。この場合、割込みコント
ローラ180は、割込み信号をCPU10に送ることに
より、CPU10がFIFOレジスタ160からその内
容を読み出す時(符号化モード中)であるか、またはF
IFOレジスタ160に内容を書き込む時(復号化モー
ド中)であることが示される。
【0025】図5は、本発明の符号化方法を示すフロー
チャートを示す。図2および図5を参照すると、プット
ビット長レジスタ110Aをアドレス指定して、コード
ワードを、例えば、プットビットコードレジスタ110
Bにロードする(500)。コードワードは可変長であ
るが、これは、エントロピー符号化処理の結果でもあ
る。プットビットコードレジスタ110Bは、ビットが
固定数(長)である。可変長コードワードの長さは、プ
ットビット長レジスタ110Aに格納される。プットビ
ットコードレジスタ110Bにロードされる可変長コー
ドワードデータが、プットビットコードレジスタ110
Bの使用可能な記憶ビットすべてを必要とするとは限ら
ない。可変長コードワードデータは、プットビットコー
ドレジスタ110Bにロードされると、プットビットコ
ードレジスタ110Bの使用可能なすべてのビットを占
有する場合もしない場合もある。プットビットコードレ
ジスタ110Bが例えば16ビット長であり、4ビット
の可変長コードワードがプットビットコードレジスタ1
10Bにロードされるものとする。可変長コードワード
データを実際に格納するプットビットコードレジスタ1
10Bの4ビットを有効ビットと呼ぶ。次に、プットビ
ットコードレジスタ110Bの有効ビットの数が、ゲッ
トビットレジスタ110Gに以前格納されたデータ値を
参照することにより決定される(501)。この決定
は、コントローラ130によって行われる。しかし、か
かる決定をCPU10によって行うこともできる。次
に、全ての有効ビットがビットストリームバッファ15
0の残りのオープンビットに適合するか判断される(5
02)。適合する場合、これらの有効ビットは、ビット
ストリームバッファ150の残りのオープンビットにロ
ードされ(503)、その後、固定長データワードとし
て読み出される(511)。
【0026】また、有効ビットの全てがビットストリー
ムバッファ150に適合するわけではない場合は、有効
ビットのどれかがビットストリームバッファ150に適
合するか判断される(504)。有効ビットの一部がビ
ットストリームバッファ150に適合する場合、それら
(部分的有効ビットの第1のセット)はビットストリー
ムバッファ150にロードされ(505)、ビットスト
リームバッファ150の使用可能なビットすべてを充填
する。次に、ビットストリームバッファ150の内容
が、ファーストイン/ファーストアウト(FIFO)レ
ジスタ160に読み出される(506)。その後、ビッ
トストリームバッファ150のいかなるデータもクリア
され、部分的有効ビットの第2のセットがビットストリ
ームバッファ150にロードされる(507)。このプ
ロセスを図7に示すが、これについては後述する。
【0027】ビットストリームバッファ150がすでに
データで一杯になっているために、有効ビットのいずれ
もビットストリームバッファ150に適合しない場合、
ビットストリームバッファ150の内容はFIFO16
0にロードされる(508)。FIFO160が一杯の
場合(509)は、その内容は空にされる(510)。
FIFO160はカウンタ170に関連付けられてい
る。カウンタ170は、例えば、FIFO160に実際
にロードされている32ビットワードの数のカウントを
保持する。カウンタ170のカウント(値)が制御レジ
スタ110Eに格納されているFIFO割込みレベル値
に一致する場合は、割込みコントローラ180が割込み
を発生してCPU10に送る。次に、CPU10が、F
IFO160から予め決められた数のワードを読み出
す。これによって、ビットストリームバッファ150か
ら追加のコードワードデータを受取るために、FIFO
160内に利用可能な空きが作られる。
【0028】復号化モード 図6は、本発明の復号化方法を示すフローチャートであ
る。復号化モードでは、制御レジスタ110AにFIF
O割込みレベルと割込みイネーブルビットをセットする
ようデータを書き込む。符号化/復号化ビットは、復号
化にセットされる。固定長データワードを、例えばFI
FO160にロードするために、ゲットビットレジスタ
110Gをアドレス指定する。ビットストリームバッフ
ァ150は、FIFO160から固定長データワードを
受取る。固定長データワードは、複数の可変長コードワ
ードからなる。ゲットビットレジスタ110Gに格納さ
れているデータ長情報に従って、ビットストリームバッ
ファ150から可変長コードワードが読み出される。次
に、マルチプレクサ140が、可変長コードワードをゲ
ットビットレジスタ110Gに送り、そして、そこか
ら、その可変長コードワードが固定長コードワードとし
て読み出される。マルチプレクサ140、ビットストリ
ームバッファ150およびFIFO160の動作は、レ
ジスタブロック110に格納されたデータに従ってコン
トローラ130によって制御される。ビットストリーム
バッファ150にロードされた固定長コードワードから
すべての可変長コードワードが読み出されると、他の固
定長コードワードがFIFO160から取り出されてビ
ットストリームバッファ150にロードされる。
【0029】FIFO160は、例えば、32ビット×
16ワードのFIFOレジスタである。カウンタ170
は、所与の時刻にFIFO160に格納されているデー
タワードの数のカウントを保持し、この値をFIFOレ
ベルレジスタ110Cに格納する。FIFOレベルレジ
スタ110Cに格納された値が制御レジスタ110Eに
格納されたFIFO割込みレベル値に一致すると、割込
みコントローラ180は割込み信号を生成する。この割
込み信号はCPU10に送られるが、CPU10は、追
加の固定長データをFIFO160にロードすることに
よってこれに応答する。
【0030】図7は、本発明の符号化モード動作中に、
可変長コードワードの有効ビットをプットビットコード
レジスタ110Bから読み出して、ビットストリームバ
ッファ150にロードする方法を示す。図7は、また、
本発明の復号化モード動作中に、固定長コードワードを
ビットストリームバッファ150から読み出して、プッ
トビットコードレジスタ110Bにロードする方法を示
す。ビットストリームバッファ150Aは、第1の部分
的データセットを含む可変長コードワードの有効ビット
が、ビットストリームバッファ150の使用可能なビッ
トを完全に充填した後の、ビットストリームバッファ1
50の状態を示す。ビットストリームバッファ150B
は、可変長コードワードの第2の部分的セットがビット
ストリームバッファ150にロードされた後の、ビット
ストリームバッファ150の状態を示す。
【0031】ビットストリームバッファ150は、初期
状態では空であって、すべてのビットがデータを受入れ
るために使用可能となっている。図7では、ビットスト
リームバッファ150を16ビットレジスタとして示し
ているが、好ましい実施形態では、ビットストリームバ
ッファ150は32ビット長である。尚、ビットストリ
ームバッファ150は任意の長さにすることができる。
【0032】符号化モード動作に関し、第1のコードワ
ード700の有効ビット701〜704が、使用可能な
ビットストリームバッファ150Aの最上位4ビットに
ロードされることが分かる。その後、コードワード80
0の有効ビット801〜806が、使用可能なビットス
トリームバッファ150Aの次の最上位ビットにロード
される。次に、コードワード900の有効ビット901
〜903が、使用可能なビットストリームバッファ15
0Aの次の最上位ビットにロードされる。コードワード
1000の場合には、データの6つの有効ビット100
1〜1006がある。しかしながら、ビットストリーム
バッファ150Aには、データを受取るために使用可能
なビットとして3ビットしか残っていない。この場合、
ビット1001〜1003は、ビットストリームバッフ
ァ150Aの残りの使用可能なビットにロードされる。
次に、ビットストリームバッファ150Aの内容が読み
出されてFIFO160に格納される。そして、ビット
ストリームバッファ150はクリアされ(150B)、
追加のデータビットを受取るためにオープンとなる。そ
の後、残りのビット1004〜1006が、ビットスト
リームバッファ150Bの最上位ビットに書き込まれ
る。これは、ビットストリームバッファ150の使用可
能なすべてのビットに有効なコードワードデータがロー
ドされるまで、あるいはロードするコードワードデータ
が無くなるまで続く。
【0033】復号化動作の場合、可変長コードワード7
01〜704が、ビットストリームバッファ150Aか
ら読み出されてプットビットコードレジスタ110Bに
ロードされる。次に、プットビットコードレジスタ11
0Bが読み出されてクリアされる。その後、可変長コー
ドワード801〜806がビットストリームバッファ1
50Aから読み出され、プットビットコードレジスタ1
10Bにロードされる。これは、すべての可変長コード
ワードがビットストリームバッファ150Aから読み出
されるまで続く。可変長コードワード1001〜100
3が読み出されてプットビットコードレジスタ110B
にロードされると、これらのビットが全コードワードの
部分的なセグメントでしかないことが認められる。この
場合、プットビットコードレジスタ110Bは、すぐに
は読み出されずクリアされない。しかしながら、別の可
変長ワードがビットストリームバッファ150Bに書き
込まれる。そして、可変長コードワードの第2のセグメ
ント、すなわちビット1004〜1006がビットスト
リームバッファ150Bから読み出されてプットビット
コードレジスタ110Bにロードされる。その後、プッ
トビットコードレジスタ110Bが読み出され、そのデ
ータがクリアされる。
【0034】本明細書ではビットストリームバッファ1
50を16ビットレジスタとして示したが、これに限ら
ず、例えば、8ビットレジスタ、32ビットレジスタま
たは64ビットレジスタ(これらには限定されないが)
などの、特定の目的に適した任意のサイズのレジスタと
して実施することができる。同様に、マルチプレクサ1
40およびFIFO160を、対象とするアプリケーシ
ョンに最適な任意のビット長で実施することができる。
【0035】本発明の方法は、ハードウェア、ソフトウ
ェア、ファームウェアまたはそれらの組合せにより実施
することができる。好ましい実施形態では、メモリに格
納され、適切な命令実行システムによって実行される、
ソフトウェアまたはファームウェアにより、互いの利用
関係を仲介する方法が実施される。代替的な実施形態と
して、ハードウェアで実施する場合は、互いの利用関係
を仲介する方法を、本技術分野で周知である以下の技術
のいずれか、または、それらの組合せによって実施する
ことができる。それらは、データ信号に基づいて論理機
能を実施する論理ゲートを有する個別の論理回路、適切
な組合せ論理ゲートを有する特定用途向け集積回路(A
SIC)、プログラマブルゲートアレイ(PGA)、フ
ィールドプログラマブルゲートアレイ(FPGA)等で
ある。
【0036】図5および図6のフローチャートは、本発
明の符号化および復号化方法を実施することが可能なア
ーキテクチャ、機能および動作の例を示すものである。
この場合、各ブロックは、モジュール、セグメントまた
は符号の一部を表しており、指定された論理機能を実施
するための1つまたは複数の実行可能な命令を有してい
る。また、いくつかの代替実施態様では、ブロックに示
す機能を、図5または図6に示す順序とは異なる順序で
実施することができる。例えば、図5または図6に連続
して示されている2つのブロックは、それらの機能に応
じて、実際には実質的に同時に実行され、あるいは、逆
の順序で実行される場合もある。
【0037】本発明の上述した実施形態、特に「好まし
い」実施形態は、実施可能な単なる例であり、本発明の
原理を明瞭に理解できるように示したものである。発明
の思想および原理から実質的に逸脱することなく、発明
の上述した実施形態に対して、多くの変形および修正を
行うことができる。かかる変更および修正は全て、本明
細書の開示範囲および本発明の範囲に含まれるものであ
って、特許請求の範囲によって保護されるべきものであ
る。
【0038】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。 1.データを符号化するためのエンコーダであって、デ
ータの有効ビットを含む可変長コードワードを受取って
格納するための、予め決められたビット数からなるデー
タレジスタ(110B)と、データを受取るための、予
め決められたビット数からなるビットストリームバッフ
ァ(150)と、前記ビットストリームバッファ(15
0)における使用可能な最上位ビットに前記有効ビット
をロードするためのマルチプレクサ(140)と、前記
ビットストリームバッファ(150)のすべての使用可
能ビットにデータの前記有効ビットがロードされたとき
に、前記ビットストリームバッファ(150)の内容を
受取るための、複数の使用可能なマルチビットレジスタ
を有するファーストインファーストアウト(FIFO)
レジスタ(160)と、前記FIFOレジスタ(16
0)からのデータの読み出しを開始するために割込み信
号を生成するための割込みコントローラ(180)を備
える、エンコーダ。 2.前記マルチプレクサ(140)は、バレルシフトレ
ジスタからなる、上項1のエンコーダ。 3.前記FIFOレジスタ(160)に格納されたマル
チビットワードの数をカウントするためのカウンタ(1
70)をさらに備える、上項1のエンコーダ。 4.前記割込みコントローラ(180)は、前記カウン
タ(170)が予め決められた割込み値に達すると前記
割込み信号を生成する、上項3のエンコーダ。 5.データを復号化するためのデコーダであって、可変
長コードワードを含む固定長の符号化されたデータワー
ド(以下、固定長符号化データワード)からなるデータ
を受取るための、複数の使用可能なマルチビットレジス
タを備える第1のレジスタ(160)と、前記固定長符
号化データワードを受取るための、予め決められたビッ
ト数からなるビットストリームバッファ(150)と、
前記ビットストリームバッファ(150)から、前記可
変長コードワードを受取って格納するための固定ビット
数からなるデータレジスタ(110B)に、前記可変長
コードワードをロードするためのマルチプレクサ(14
0)と、前記第1のレジスタへの前記固定長符号化デー
タワードの書き込みを開始するために、割込み信号を生
成するための割込みコントローラ(180)を備える、
デコーダ。 6.前記マルチプレクサ(140)は、バレルシフトレ
ジスタからなる、上項5のデコーダ。 7.前記FIFOレジスタ(160)に格納されたマル
チビットワードの数をカウントするためのカウンタ(1
70)をさらに備える、上項5のデコーダ。 8.前記割込みコントローラ(180)は、前記カウン
タが予め決められた割込み値に達すると前記割込み信号
を生成する、上項7のデコーダ。 9.データを符号化する方法であって、可変長コードワ
ードデータを受取るステップ(500)と、前記可変長
コードワードデータの有効ビットの数を決定するステッ
プ(501)と、前記コードワードデータの有効ビット
を記憶レジスタにロードするステップ(503)と、前
記記憶レジスタの内容を固定長データワードとして読み
出すステップ(511)を含む方法。 10.データを復号化する方法であって、複数の可変長
コードワードからなる固定長データワードを受取るステ
ップ(600)と、ビットポインタ値に従って可変長コ
ードワードを読み出すステップ(602)と、前記可変
長コードワードを固定長コードレジスタにロードするス
テップ(604)と、前記固定長コードレジスタから前
記可変長コードワードを復号化された固定長データワー
ドとして読み出すステップ(609)を含む方法。
【0039】本発明の概要は次のようである。エントロヒ゜ー
符号化されたテ゛ータを処理するためのエンコータ゛-テ゛コータ゛(1)を
開示する。エンコータ゛-テ゛コータ゛(1)は、レシ゛スタ(110B)に受信さ
れて格納されている固定長テ゛ータワート゛から抽出される可変
長コート゛ワート゛を受け取るためのヒ゛ットストリームハ゛ッファ(150)を備
える。可変長ワート゛は、全てのヒ゛ットにテ゛ータがロート゛されるま
でヒ゛ットストリームハ゛ッファ(150)にロート゛され、ロート゛された時点
で、テ゛ータがヒ゛ットストリームハ゛ッファ(150)から読み出され、ヒ゛ットス
トリームハ゛ッファ(150)がクリアされて新しいテ゛ータを受け取る準備
ができる。復号化中は、ヒ゛ットストリームハ゛ッファ(150)は、複数
の可変長コート゛ワート゛からなる固定長テ゛ータワート゛を受け取る。
これらのコート゛ワート゛は、個別に読み出されて、固定長レシ゛ス
タ(110B)に入れられる。次に、接続されたシステムが更に処
理するために、固定長レシ゛スタ(110B)の内容が読み出され
る。コントローラ(130)は、符号化処理と復号化処理を連係さ
せ及び制御するために設けられる。
【0040】
【発明の効果】本発明のCODEC(エンコーダ−デコー
ダ)は、エントロピー符号化を用いる任意の圧縮方式と
共に使用することができるので、各種圧縮アルゴリズム
に対応するために複数のハードウエアを実装する必要が
ない。
【図面の簡単な説明】
【図1】本発明のCODECを組込んだシステムを示す
図である。
【図2】本発明のCODECの詳細ブロック図である。
【図3】制御レジスタを示す図である。
【図4】FIFOレベルレジスタを示す図である。
【図5】本発明の符号化方法を示すフローチャートであ
る。
【図6】本発明の復号化方法を示す図である。
【図7】可変長コードワードをビットストリームバッフ
ァ150にロード/アンロードするプロセスを示す図で
ある。
【符号の説明】
110B プットビットコードレジスタ 110E 制御レジスタ 140 マルチプレクサ 150 ビットストリームバッファ 160 FIFO 170 カウンタ 180 割込みコントローラ
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5C059 ME01 ME13 UA02 UA05 UA34 5J064 AA02 BA09 BC01 BC02 BC04 BC14 BD00

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】データを符号化するためのエンコーダであ
    って、 データの有効ビットを含む可変長コードワードを受取っ
    て格納するための、予め決められたビット数からなるデ
    ータレジスタ(110B)と、 データを受取るための、予め決められたビット数からな
    るビットストリームバッファ(150)と、 前記ビットストリームバッファ(150)における使用
    可能な最上位ビットに前記有効ビットをロードするため
    のマルチプレクサ(140)と、 前記ビットストリームバッファ(150)のすべての使
    用可能ビットにデータの前記有効ビットがロードされた
    ときに、前記ビットストリームバッファ(150)の内
    容を受取るための、複数の使用可能なマルチビットレジ
    スタを有するファーストインファーストアウト(FIF
    O)レジスタ(160)と、 前記FIFOレジスタ(160)からのデータの読み出
    しを開始するために割込み信号を生成するための割込み
    コントローラ(180)を備える、エンコーダ。
JP2001124175A 2000-05-04 2001-04-23 高速データ圧縮/復元用エントロピーコーデック Pending JP2002009625A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/565,015 US6621428B1 (en) 2000-05-04 2000-05-04 Entropy codec for fast data compression and decompression
US09/565015 2000-05-04

Publications (2)

Publication Number Publication Date
JP2002009625A true JP2002009625A (ja) 2002-01-11
JP2002009625A5 JP2002009625A5 (ja) 2007-03-01

Family

ID=24256852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001124175A Pending JP2002009625A (ja) 2000-05-04 2001-04-23 高速データ圧縮/復元用エントロピーコーデック

Country Status (4)

Country Link
US (1) US6621428B1 (ja)
EP (1) EP1154575B1 (ja)
JP (1) JP2002009625A (ja)
DE (1) DE60110493T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004036433A1 (ja) * 2002-10-21 2004-04-29 Renesas Thchnology Corp. 半導体集積回路装置
WO2005024636A1 (ja) * 2003-09-04 2005-03-17 Hitachi Ulsi Systems Co., Ltd. 半導体装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6781589B2 (en) * 2001-09-06 2004-08-24 Intel Corporation Apparatus and method for extracting and loading data to/from a buffer
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
US7265691B2 (en) * 2005-06-23 2007-09-04 1Stworks Corporation Modeling for enumerative encoding
US7728742B2 (en) * 2008-09-30 2010-06-01 Apple Inc. Method and apparatus for compressing and decompressing data
US7800519B2 (en) * 2008-09-30 2010-09-21 Apple Inc. Method and apparatus for compressing and decompressing data
US8194755B2 (en) * 2009-03-06 2012-06-05 Himax Media Solutions, Inc. Bit stream buffer controller and its method
CN104011660B (zh) * 2011-12-22 2017-03-01 英特尔公司 用于处理位流的基于处理器的装置和方法
US9606961B2 (en) * 2012-10-30 2017-03-28 Intel Corporation Instruction and logic to provide vector compress and rotate functionality
EP2940575B1 (en) * 2014-05-02 2018-05-09 Nxp B.V. Controller circuits, data interface blocks, and methods for transferring data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4376933A (en) 1979-02-22 1983-03-15 Xerox Corporation Circuit for compacting data
US4360840A (en) 1980-05-13 1982-11-23 Am International, Inc. Real time data compression/decompression scheme for facsimile transmission system
US5237701A (en) * 1989-03-31 1993-08-17 Ampex Systems Corporation Data unpacker using a pack ratio control signal for unpacked parallel fixed m-bit width into parallel variable n-bit width word
US4963867A (en) * 1989-03-31 1990-10-16 Ampex Corporation Apparatus for packing parallel data words having a variable width into parallel data words having a fixed width
JPH03106127A (ja) 1989-09-20 1991-05-02 Fujitsu Ltd 可変長符号化回路
US5499382A (en) 1993-09-20 1996-03-12 Nusinov; Eugene B. Circuit and method of bit-packing and bit-unpacking using a barrel shifter
JP2715871B2 (ja) * 1993-12-20 1998-02-18 日本電気株式会社 可変長符号化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004036433A1 (ja) * 2002-10-21 2004-04-29 Renesas Thchnology Corp. 半導体集積回路装置
WO2005024636A1 (ja) * 2003-09-04 2005-03-17 Hitachi Ulsi Systems Co., Ltd. 半導体装置

Also Published As

Publication number Publication date
US6621428B1 (en) 2003-09-16
EP1154575B1 (en) 2005-05-04
DE60110493D1 (de) 2005-06-09
EP1154575A1 (en) 2001-11-14
DE60110493T2 (de) 2006-01-05

Similar Documents

Publication Publication Date Title
JP3342700B2 (ja) ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
US5710562A (en) Method and apparatus for compressing arbitrary data
US5903230A (en) Apparatus for compressing data using a Lempel-Ziv-type algorithm
JP3272580B2 (ja) 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法
JP3294026B2 (ja) 高速可変長復号化装置
US5751860A (en) Method for compressing and decompressing digital image data
JPH06348492A (ja) データパイプライン装置及びデータエンコーディング方法
EP0729237A2 (en) Adaptive multiple dictionary data compression
US20110091124A1 (en) System for multi-byte reading
US5874908A (en) Method and apparatus for encoding Lempel-Ziv 1 variants
JPH07273667A (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
US5877711A (en) Method and apparatus for performing adaptive data compression
JP2007037115A (ja) デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法
WO1995019662A1 (en) Data compression apparatus and method
KR20020075889A (ko) 보다 효율적인 데이터 압축
JP2002009625A (ja) 高速データ圧縮/復元用エントロピーコーデック
JPH11501485A (ja) マルチコードブック可変長デコーダ
JPH08116267A (ja) 可変長符号の復号化装置
US6285789B1 (en) Variable length code decoder for MPEG
US7808405B1 (en) Efficient bitstream compression
US6205255B1 (en) Method and apparatus for run-length encoding of multi-colored images
CN100433560C (zh) 包含cpu处理器接口的可编程变长解码器
JP2003111021A (ja) 符号化画像データ復号装置、方法およびプログラム
US6320521B1 (en) System and method for efficiently merging compressed data
JPH08223055A (ja) 可変長コードデコーダ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091124