JP3853439B2 - 高速可変長コード復号化装置及び高速可変長コード復号化方法 - Google Patents
高速可変長コード復号化装置及び高速可変長コード復号化方法 Download PDFInfo
- Publication number
- JP3853439B2 JP3853439B2 JP25098796A JP25098796A JP3853439B2 JP 3853439 B2 JP3853439 B2 JP 3853439B2 JP 25098796 A JP25098796 A JP 25098796A JP 25098796 A JP25098796 A JP 25098796A JP 3853439 B2 JP3853439 B2 JP 3853439B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- length
- window
- bit
- bits
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
- H03M7/425—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は可変長復号化装置に関し、特に、クロックサイクルごとに2つのコードを復号化することによって、高速復号化動作を行い得る改善された可変長復号化装置に関する。
【従来の技術】
可変長符号化法は、無損失データ圧縮のためにしばしば用いられている方法である。より詳しくは、この方法はデータの統計値に基づいて、一定長さのデータを可変長コードに変換するために用いられる。可変長コードのコード長さは、より短いコードはより発生頻度の高いデータを表し、より長いコードは比較的発生頻度の低いデータを表すものとして定められる。可変長コードを全ての可能なソースデータのライブラリに適宜に割り当てることによって、その可変長コードの平均のコード長さが元のソースデータのコード長さより短くなって、よって、データ圧縮を効果的に実現することができる。
これに関連して、ハフマン符号デザインは公知のデータ統計値に対して最小冗長度の可変長コードを構成するために主に用いられる。一般に、符号化過程はテーブルをアドレス指定するために入力データをテーブルにアドレス指定するルックアップテーブルを用いて実現し得る。コード及びコード長さ情報はテーブルの内容として格納され、バッファを用いて入力情報が一定のデータレートで順次にデータチャネル上へ出力される。
しかし、受信側における復号化過程は、符号化過程よりはるかに複雑である。コード長さが可変的であるため、各コードはソースのシンボルに復号化される前に受信されたビットストリングから分割されなければならない。その結果、可変長デコーダは可変長エンコーダより一層複雑となっている。
可変長コードのスツリームを復号化するための幾つかの符号化装置が提示されているが、そのうち、1990年2月6日にGary Kahanに付与された米国特許第4,899,149号明細書に開示されているツリー探索アルゴリズムを用いる可変長コード(VLC)デコーダが主に用いられる。このVLCデコーダにおいて、VLCはコードが葉(または、ターミナルノードとも称する)となるツリー構造により表現される。復号化過程はコードツリーのルート(根)から始まって、受信されたビットスツリームにより各ノードで2つのブランチ(枝)のうちの一つを選択するように誘導される。葉(即ち、コード)に至ると、コードが検出されると共に、残りのビットスツリームから分割される。このような形態の復号化装置は、ツリーに対応する論理回路及びコードツリーを通じた論理回路を有する。しかしながら、コードツリーを用いるビット単位の探索方法が復号化された各シンボルに対して要求されるため、特に、長いコードの場合には動作速度が遅くなる。
その動作速度を向上させるために提示されたVLCデコーダのうち一つが、1992年12月22日にMing−Ting Sunらに付与された米国特許第5,173,695号と第5、245、338号明細書に開示されているようなルックアップテーブルに基づくVLCデコーダである。このようなデコーダは、最大コード長さと同等のビット格納能力を有し、ビットスツリームを固定長データセグメントに記憶する入力バッファメモリから供給される連続ビットを格納する2つのカスケード接続されたラッチ回路と、2つのラッチ回路と接続されていると共に最大コード長さと同一長さの復号化ウィンドウ出力を発生するバレルシフタと、最大コード長さをモジュールとして順に復号化された可変長コードのコード長さを累算する累算器と、移動可能な復号化ウィンドウ出力に含まれた可変長コードに対応する一定長さのコードを出力すると共に、可変長コードのコード長さを出力するルックアップ表メモリデバイスとを含む。コードが、各クロックサイクル毎に復号化されることによってそのコード長さが累算され、よって、バレルシフタの復号化ウィンドウは復号化されるべき次のコードの第1ビットから始まるようにシフトされる。クロックサイクルの間、累算されたコード長さが最大コード長さを超える場合、即ち、第2ラッチ回路内の全ビットが復号化された場合、第1ラッチ回路内のビットは第2ラッチ回路へ伝送され、次の一定のデータセグメントが入力バッファメモリから第1ラッチ回路に読取られる。
前述した構造の復号化器においては、ルックアップ表メモリ、バレルシフタ及び累算器を含む主要経路で構成要素の動作遅延によって動作速度が制限され、クロックサイクルごとに1つのコードのみを復号化し得るためさらに動作速度が制限される。
従って、一連の可変長コードを復号化する速度を改善するためにクロックサイクル当り二つのコードを復号化できる復号化器が提案された。そのような復号化器のうちの一つが本出願で参照引用した本出願人による日本国特許出願番号平成8年第88826号(1995年3月18日出願)明細書「高速可変長復号化装置」に明示されている。
前記係属中の出願の明細書に記載された発明では、復号化動作の速度を相当に改善したが、復号化器の構造の複雑度を低減する必要はいまだに存在する。
【発明が解決しようとする課題】
従って、本発明の主な目的は、1つのクロックサイクルの立ち下がりエッジと立ち上がりエッジとを共に用いて、毎クロックサイクル当り2つのコードを復号化して、動作速度を向上させ得るのみならず、復号化器の構造的複雑度を減少させ得るVLC復号化装置及びその方法を提供することである。
【課題を解決するための手段】
上記の目的を達成するために、本発明によれば、最長可変長コードの2倍の長さを有する固定長セグメントからなる入力ビットスツリームを、立ち上がりエッジ及び立ち下がりエッジを有するクロックパルスからなるクロック信号に基づいて、1/2クロック周期にて復号化するための高速可変長コード復号化装置であって、前記入力ビットスツリームからビットの連続した固定長セグメントを格納するカスケード接続された第1および第2ビット格納手段と、前記第1および第2ビット格納手段に接続され、前記第1及び第2格納手段から受け取られたビットを格納し、格納された連続する固定長セグメントのビットから第1ウィンドウ出力シーケンスを生成する出力ウィンドウを有するシフト手段であって、前記ウィンドウ出力シーケンスは前記最長可変長コードと同一のビット長さを有し、ウィンドウ制御信号に直接応じて、毎半クロックサイクル間に前記格納されたビットのうちの所定ビットに亘って前記ウィンドウをシフトさせるシフト手段と、前記ウィンドウ出力シーケンスを1半クロックサイクルの間にラッチし、ラッチされたウィンドウ出力シーケンスを復号化出力シーケンスとして生成するリレイ手段と、前記リレイ手段に接続されており、前記復号化出力シーケンスの第1ビット位置から始まる可変長コードの上位Pビット(前記Pの最大値は、最長可変長コードより小さい整数)からなるプレフィクスコードに応じてコード長さを生成する第1メモリ手段と、前記第1メモリ手段及び前記シフト手段に接続されており、前記コード長さ及びウィンドウ出力シーケンスに応じて、固定長さ語を発生する第2メモリ手段と、前記コード長さに前のクロックサイクル間に復号化された以前に累算された可変長コードの長さを各半クロックサイクルの間に加算して、ウィンドウ制御信号を生成し、前記ウィンドウ制御信号におけるビット数だけ前記ウィンドウをシフトさせると共に、前記累算されたコード長さが前記第1シフト格納手段内の全てのビットが復号化されたことを表す場合、前記入力ビットスツリーム内の次の固定長セグメントを前記第2ビット格納手段に伝達するように制御する読取り信号を発生させて、前記第2ビット格納手段内のビットのシーケンスを前記第1ビット格納手段へ伝達するように制御する桁上げ信号を発生する累算手段とを有することを特徴とする可変長コード復号化装置が提供される。
【発明の実施の形態】
以下、本発明の好適実施について図面を参照しながらより詳しく説明する。
図1には、本発明によるVLCの復号化器の好ましい実施例が示されている。説明の便宜上、復号化される可変長コードの最大長さは8ビットとする。VLC復号化器は連続的に入力される可変長コードを復号化して、ある特定のシンボルクロックに応じて可変長コードに対応する復号化された固定長コードをリード線213を通じて出力する。
データチャネル51上へ受信された直列データスツリームは入力バッファメモリ50へ入力される。入力バッファメモリ50は可変長コードの直列データスツリームを固定長セグメント状態で格納した後、リード線411上の「READ」(読出し)信号に応じて、「CLK」(クロック)信号のエッジで、例えば、立ち上がりエッジで、リード線111上へ固定長セグメント、例えば、16ビットのセグメントを出力する。ここで、データセグメントのビット長さは可変長コードの最大ビット長さの2倍であり、クロック信号は2種類のエッジ、即ち、立ち上がりエッジ及び立ち下がりエッジを有する。
ラッチ回路101は入力バッファメモリ50に連結され、リード線111を通じて前記入力バッファメモリ50から固定長データセグメントを連続的に受信する。ラッチ回路102はラッチ回路101に接続され、ラッチ回路101で予め格納された固定長データセグメントを受信する。ラッチ回路101及び102はCLKのエッジで「CARRY」(桁上げ)信号がその制御入力に供給される場合のみ、入力されたデータをラッチする制御ラッチであり、前記ラッチされたデータはクロックの次のエッジまで出力に保持される。本発明の好ましい実施例において、入力バッファメモリ50とラッチ回路101及び102はクロック信号の相異なるエッジで動作する。ラッチ回路101及び102は、例えば、クロックの立ち下がりエッジで累算ブロック300がリード線321上にCARRY信号を発生した時、入力されたデータをラッチする。新しいデータセグメントを供給する必要がある場合、アクティブ状態のREAD信号がリード線411上へ供給される。リード線411上にアクティブ状態の前記READ信号が供給されたとき、入力バッファメモリ50はクロックの立ち上がりエッジで次のデータセグメントをリード線111上へ供給する。CARRY信号に応じて、クロックの次の立ち下がりエッジでラッチ回路101はリード線111上の次のデータセグメントをラッチし、ラッチ回路101に予め格納されていたデータセグメントはラッチ回路102へ供給される。従って、ラッチ回路102はラッチ回路101に格納されたデータセグメントより時間的に1つ前のデータセグメントを格納している。
ラッチ回路102及び101に格納されているデータセグメントとリード線111上の入力バッファメモリ50の出力は、連続した48ビットデータスツリームとして第1バレルシフタ103へ入力される。第1バレルシフタ103はその48ビット入力に亘ってスライド可能な8ビット出力ウィンドウを有し、その位置は累算ブロック300からリード線319を通じて供給される累算されたコード長さを表すウィンドウ制御信号により制御される。前記ウィンドウ制御信号がリード線319を通じて供給される時、第1バレルシフタ103の8ビット出力ウィンドウはウィンドウ制御信号により第1バレルシフタ103内のデータセグメントの次の8ビットシーケンスを含むようにシフトされる。第1バレルシフタ103内のデータスツリームの最初の16ビットが第2バレルシフタ104へ出力される時発生されるCARRY信号がリード線321上へ出力される時、立ち下がりエッジにてラッチ回路101内の前データセグメントはラッチ回路102に前前データセグメントとしてラッチされ、リード線111上の現データセグメントはラッチ回路101に前データセグメントとしてラッチされる。その次の立ち上がりエッジにて、次の16ビットデータセグメントが入力バッファメモリ50から引き出されて、第1バレルシフタ103の入力の33ビットから48ビットの位置に現データセグメントとして供給される。第1バレルシフタ103からの出力、即ち、第1ウィンドウ出力シーケンスは3つの入力データセグメント、即ち、両ラッチ回路102と101からの前前データセグメント及び前データセグメントと入力バッファメモリ50から出力された現データセグメントからなる48ビットスツリームから構成された8ビットシーケンスであり、リード線117を通じて16ビット入力の第2バレルシフタ104へ供給される。また、第2バレルシフタ104も前クロックエッジにて生成された8ビットの復号化出力シーケンスをリード線127を通じて受信して、次の出力シーケンスを生成する。
第2バレルシフタ104は、その16ビット入力にわたってスライド可能な8ビット出力ウィンドウを有し、リード線211を通じてメモリ装置200から供給されるコード長さにより制御され、リード線211上のコード長さにより決定された新しい位置にスライドされるその出力ウィンドウを用いて、第2ウィンドウ出力シーケンスをリード線119上へ出力し、同時に、M、例えば、3ビットのコード値をリード線121を通じてメモリ装置200へ供給する。ここで、Mは可変長コードの最大ビット長さより小さい正の整数である。本発明の好ましい実施例において、前記16ビット入力シーケンス内の3ビットシーケンスがコード値と規定され、前記3ビットシーケンスは第2ウィンドウ出力シーケンスの第1ビットの左側に位置している。もし、第2ウィンドウ出力シーケンス内の第1ビットの左側に位置しているビット数が3より小さい場合、前記第2バレルシフタ104は、「1」を前記3ビットシーケンスの上位ビットとして追加して、3ビットシーケンスのコード値を発生する。第2バレルシフタ104からの第2ウィンドウ出力シーケンスは、2つのラッチ回路106及び107と、マルチプレクサ(MUX)108とを含むリレイ回路105へ供給される。前記リレイ回路105は第2ウィンドウ出力シーケンスを半クロックの間ラッチし、ラッチされた第2ウィンドウ出力シーケンスを復号化出力シーケンスとしてリード線127を通じてメモリ装置200へ供給する。さらに詳しくは、あるクロックエッジにて第2バレルシフタ104から生成されたリード線119上の第2ウィンドウ出力シーケンスは、次のクロックエッジにて前記リレイ回路105内のラッチ回路106または107にラッチされる。ラッチ回路106及び107はクロック信号の相異なるエッジ、例えば、前記クロック信号の立ち下がりエッジ及び立ち上がりエッジにて入力に供給されたデータを各々ラッチする。リレー回路105内のMUX108は、前記クロックの立ち下がりエッジに応じてラッチ回路106からの第2ウィンドウ出力シーケンスを、前記クロックの立ち上がりエッジに応じてラッチ回路107からの第2ウィンドウ出力シーケンスを、復号化出力シーケンスとしてリード線127を通じてメモリ装置200と第2バレルシフタ104へ供給する。
前記メモリ装置200はリレイ回路105に接続されており、復号化出力シーケンスの第1ビット位置で始まる可変長コードに対応するコード長さと固定長さ語とを出力する。発明の好ましい実施例において、メモリ装置200は、例えば、プログラマブルロジックアレイ(PLA:programmable logic array)で実現される第1ルックアップ表201及び第2ルックアップ表202を含む。第1ルックアップ表201はコード長さを生成するためのプレフィクス復号化のために用いられ、第2ルックアップ表202は復号化された語を生成するためのサブフィックス復号化のために用いられる。第1ルックアップ表201はプレフィクスコード表と復号化語長さ表とを含む。各可変長コードのプレフィクスコードは前記プレフィクスコード表内のエントリーとして表現され、各々のプレフィクスコードは各々のコード長さが分かる各コードの上位Pビットからなり、前記Pの最大値は可変長コードの最大ビット長さ、即ち、8より小さい。プレフィクスコード表内の各テーブルエントリーは8ビットの長さを有し、1からP、例えば、1から5まで変更可能な実際のプレフィクスコードから始まる。コードライブラリー内の最大5ビットの長さを有するプレフィクスコードは8ビットより小さいため、実際のプレフィクスコードの後のテーブルエントリー内の前記ビット位置は「don’t care」として表される。コードの長さはリレイ回路105内のMUX108から供給されたシーケンスがプレフィクスコード表内に格納されたいずれか1つのビットパターンと整合する場合に、検出される。例えば、プレフィクスコード表内のプレフィクスコードのビットパターンの1つが「11」の場合、該当する8ビット表エントリーは「11XXXXXX」になる。ここで、各々の「X」は「don’t care」を表す。もし、MUX108からの8ビットシーケンスが「11011010」である場合、最初の2つのビットで整合が起こる。リード線127上の復号化出力シーケンスがプレフィクスコード表内のエントリーと整合する場合、復号化語長さ表内の対応するエントリーがアクティブ状態となる。復号化語長さ表はプレフィクスコード表内の可変長コードの整合したプレフィクスコードに対応するコード長さを、リード線211上へ出力する。次のクロックエッジにてリード線211を通じて第2バレルシフタ104へ供給されたこのコード長さは、第2バレルシフタ104の出力ウィンドウのシフトを制御するために用いられ、第2ルックアップ表202へ入力される。また、サブフィックスコード表と、コード長さ表及び復号化語表とを含む第2ルックアップ表202は、リード線121を通じて第2バレルシフタ104からコード値を受信する。各可変長コードのコード長さはコード長さ表内のエントリーとして表現され、各可変長コードのサブフィックスコードはサブフィックスコード表内のエントリーとして表現され、各サブフィックスコードは各可変長コードの上位Qビットからなり、前記Qは可変長コードの最大ビット長さからPを減算した値と同じである。サブフィックスコード表内の各テーブルエントリーは3ビットの長さを有し、1からQまで変更されうる実際のサブフィックスコードに終了される。実際のサブフィックスコードが3ビットより小さい場合、実際のサブフィックスコードの前に位置するテーブルエントリー内のビット位置は、「don’t care」として表される。本発明の好ましい実施例において、可変長コードはPビットのプレフィクスコードとQビットのサブフィックスコードとからなる。固定長さ語はリード線211上のコード長さとリード線121上のコード値とが各々のコード長さ表及びサブフィックス表に格納されたビットパターンの1つと整合する場合に、検出される。例えば、サブフィックスコード表内のサブフィックスコードのビットパターンが「01」の場合、その3ビットのテーブルエントリーは「X01」であり、ここで、「X」は「don’t care」を表す。もし、リード線121上のコード値が「101」である場合、最後の2つのビットが整合する。前述したように、リード線211上のコード長さとリード線121上のコード値とが、コード長さ表及びサブフィックスコード表内のエントリーと各整合する場合、復号化語表内の該当するエントリーがアクティブ状態となる。復号化語表はサブフィックスコード表内の整合したサブフィックスコードとコード長さ表内の整合したコード長さに対応する固定長さ語をリード線213上へ出力する。
一方、リード線211上のコード長さは、累算ブロック300へ供給され、この累算ブロック300は復号化されたコード長さを累算し、ウィンドウ制御信号をリード線319上へ発生する。ウィンドウ制御信号は累算されたコード長さを表し、第1バレルシフタ103を制御するために用いられる。
累算ブロック300は加算器310、2つのラッチ回路320及び330、及びMUX340を含み、加算器310はリード線211上のコード長さと以前に累算されたリード線318上のコード長さとを加算して、両ラッチ回路320、330にクロックパルス毎に新たに累算されたコード長さとして供給する。本発明の好ましい実施例において、ラッチ回路320及び330は互いにクロックパルスの相異なるエッジにて動作する。従って、例えば、各立ち上がりエッジにて、前クロックパルス(即ち、直前の立ち上がりエッジ)にて発生された加算器310の出力は、ラッチ回路320によりラッチされ、MUX340にリード線316を通じて供給される。一方、各立ち下がりエッジにて、前クロックパルス(即ち、直前の立ち下がりエッジ)にて発生された加算器310の出力は、ラッチ回路330によりラッチされ、MUX340にリード線317を通じて供給される。また、ラッチ回路330はラッチ回路330でラッチされたコード長さの最上位ビットの論理値を検出すると共に、前記バッファメモリ50にリード線411を介して読み取り信号リード線として供給する。かくして、ラッチ回路330でラッチされたコード長さが「16」以上の場合、ラッチ回路330でラッチされたコード長さのMSBは「1」であり、アクティブ状態とされたREAD信号はリード線411上に供給される。
MUX340においては、ラッチ回路320または330からの5ビットのコード長さがウィンドウ制御信号としてリード線319上へ出力されると共に、加算器310に以前に累算されたコードとしてリード線318を介して供給される。
しかしながら、ラッチ回路320からリード線318上のコード長さが「16」以上の場合、即ち、可変長コードの最大ビット長さの2倍の場合、ラッチ回路320からの5ビットコード長のMSBは加算器310に入力されるまえに「0」にリセットされることによって、以前に累算された16を法とするコード長さをリード316に供給する。
加算器310から発生された新しく累算されたコード長さを表すリード線319上のウィンドウ制御信号は、第1バレルシフタ103へ供給され、第1バレルシフタ103のスライド可能な出力ウィンドウの位置を制御する。5ビットのウィンドウ制御信号のMSBは、クロックの各立ち上がりエッジ及び立ち下がりエッジにてリード線321を通じてCARRY信号としてラッチ回路101及び102へ供給される。累算されたコード長さが「16」以上の場合、ウィンドウ制御信号のMSBは「1」であり、アクティブ状態とされたCARRY信号はリード線321へ出力される。
読取り信号(リード線)に応じて、入力バッファメモリ50は、次のデータセグメントを取り出すと共に、立ち上がりエッジにおいて、リード線111上へ出力する。リード線111上のデータセグメントはCARRY信号に応じてラッチ回路101へ伝送されて、立ち上がりエッジにおいてラッチ回路101に格納されたデータセグメントはラッチ回路102へ伝送される。
図1の復号化器の動作は、図2及び図3に図表形式で示された一例を参照すればより詳しく理解されるであろう。図2に示したように、入力チャネル51から図1に示された入力バッファメモリ50に入力されるデータスツリームが「AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii...」とする。ここで、「Aa」は第1可変長コード内の2つのビットを表し、「A」は第1可変長コードのプレフィクスコードを、「a」は第1可変長コードのサブフィックスコードを各々表し、「Bbb」は第2の可変長コードの3つのビットを表し、「B」と「b」とは第2可変長コードのプレフィクスコードとサブフィックスコードを各々表す。
図3には、立ち下がりの第1クロックが発生される前に、16ビットのラッチ回路101及び102は2進数「11111111 11111111」に初期化され、リレイ回路105の出力は、「11111111」に初期化され、累算ブロック300はCARRY信号及びREAD信号が「1」になるように初期化される。より詳しくは、第1クロックパルスの立ち下がりエッジにおいてリード線211上の第1ルックアップ表201の初期化された出力は「8」であるため、第2バレルシフタ104の初期シフトは「8」となる。ラッチ回路330は2進数「10000」に初期化されるため、READ信号は「1」であり、累算されたコード長さは8である。ラッチ回路330でラッチされたコード長さが「16」であるため、新たに累算されたコード長さを表すリード線319上のウィンドウ制御信号は「16」であり、新たに累算されたコード長さはリード線318以前に累算されたコード長さとして供給される。
第2クロックパルスの立ち上がりエッジにおいて、リード線211上の第1ルックアップ表201の出力と初期値「8」及びリード線318上の際に以前に累算されたコード長さ「16」は加算器310にて加算され、「8」と「16」との和はリード線315を介してラッチ回路320に入力される。続けて、ウィンドウ制御信号はラッチ回路320にラッチされた初期のコード長さ「8」をラッチ回路330からの予め累算されたコード長さ「16」に加えることによって「24」となる。この場合、累算された「16」を法とするコード長さ、即ち、「8」がラッチ回路320から取り出されたコード長さから「16」を引き算することによって得られる、リード線318上に累算されたコード長さとして供給される。READ信号が「1」であるため、「AaBbbCcc cDDdddEE」の16ビットからなる第1データセグメントが入力バッファメモリ50からリード線111上へ出力される。一方、ラッチ回路101及び102と、バレルシフタ103及び104との出力は、図3に「11111111 11111111」及び「11111111」に示された初期値を有し、第2ルックアップ表202の出力は、図3に「X」で示された雑音値となる。
第3クロックパルスの立ち下がりエッジの際に、前のCARRY信号が「1」であったため、リード線111上のデータセグメント「AaBbbCcc cDDdddEE」がラッチ回路101にラッチされる。加算器310の出力はリード線211上の以前に復号化されたコード長さに、MUX340からリード線318上の以前に累算された「16」を法とするコード長さ「8」を加算することによって「16」となる。加算器310の出力(即ち、「16」)はラッチ回路330でラッチされると共に、リード線319上にウィンドウ制御信号として供給される。従って、READ信号及びCARRY信号は「1」を維持し、第1バレルシフタ103は入力された48ビットのデータセグメント、即ち、「11111111 11111111 AaBbbCcc cDDdddEE AaBbbCcc cDDdddEE」内の17番目から24番目のビットのシーケンス、即ち、「AaBbbCcc」をリード線117を通じて第2バレルシフタ104へ出力する。リレイ回路105からの出力シーケンスは初期値を有し、第1ルックアップ表201のコード長さ出力は「8」を維持するため、第2バレルシフタ104はその2つの入力データセグメント、即ち、「11111111 AaBbbCcc」内の9番目から16番目のビットのシーケンス、即ち、「AaBbbCcc」をリード線119を通じてリレイ回路105へ出力すると共に、「11111111 AaBbbCcc」内の6番目から8番目のビット、即ち、「111」をコード値としてリード線121を通じて第2ルックアップ表202へ出力する。ラッチ回路102はその初期値を維持し、第2ルックアップ表202からの復号化された語はノイズ値を維持する。
第4クロックパルスの立ち上がりエッジのときに、READ信号は「1」に維持され、「EeeeFFFF fffGGGGG」の次のデータセグメントが入力バッファメモリ50からリード線111上へ出力する。加算器310の出力はリード線211上の以前に復号化されたコード長さ「8」に、MUX340からリード線318上の以前に累算されたコード長さ「16」を加算することによって、「24」となる。加算器310の出力(即ち、「24」)はラッチ回路320でラッチされると共に、リード線319上にウィンドウ制御信号として出力される。従って、CARRY信号は「1」を維持し、第1バレルシフタ103は「11111111 11111111 AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG」のデータセグメントから「cDDdddEE」のシーケンスを第2バレルシフタ104へ出力される。第3クロックパルスの立ち下がりエッジの際にリレイ回路105によりラッチされた「AaBbbCcc」のシーケンスは、復号化出力シーケンスとしてリード線127を通じて第1ルックアップ表201及び第2バレルシフタ104へ供給される。第1ルックアップ表201は「AaBbbCcc」の復号化出力シーケンス内の第1の一つのビット、即ち、「A」を認識すると共に、認識されたプレフィクスコードエントリーに対応する復号化されたコード長さ、例えば、「2」をリード線211上に出力する。その後、リード線211上の復号化されたコード長さ「2」は、第2ルックアップ表202及び第2バレルシフタ104に供給され、前記第2バレルシフタ104は「AaBbbCcc cDDdddEE」の入力データセグメント内の3番目から10番目のビットのシーケンス、即ち、「BbbCcccD」をリード線119を通じてリレイ回路105へ出力すると共に、「1Aa」の3ビットシーケンスをコード値としてリード線121を通じて第2ルックアップ表202へ出力する。第2ルックアップ表202は復号化されたコード長さ「2」とコード値「1Aa」とを認識して、認識されたコード長さ及びサブフィックスコードエントリーに対応する固定長さの復号化された語、例えば、「A’」をリード線213上へ出力する。
第5クロックパルスの立ち下がりエッジのときに、前のCARRY信号が「1」であるため、リード線111上のデータセグメント「EeeeFFFF fffGGGGG」はラッチ回路101によりラッチされ、ラッチ回路101に格納されていた「AaBbbCcc cDDdddEE」のデータセグメントはラッチ回路102によりラッチされる。加算器310の出力は以前に復号化されたコード長さ「2」に以前に累算された「16」を法とするコード長さ「8」を加えることによって「10」となる。加算器310の出力(即ち、「10」)はラッチ回路330によりラッチされると共に、リード線319上にウィンドウ制御信号として供給される。従って、READ信号及びCARRY信号が「0」であり、第1バレルシフタ103は「AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG EeeeFFFF fffGGGGG」のデータセグメントから「DdddEEEe」のシーケンスを第2バレルシフタ104へ出力する。第4クロックパルスの立ち上がりエッジのときに、リレイ回路105によりラッチされた「BbbCcccD」の出力シーケンスは第1ルックアップ表201及び第2バレルシフタ104へ供給される。第1ルックアップ表201は「BbbCcccD」の復号化出力シーケンス内の第1のビット、「B」を認識して、認識されたプレフィクスコードエントリーに対応する復号化されたコード長さ、例えば、「3」をリード線211上へ出力する。その後、リード線211上の復号化されたコード長さ「3」は第2ルックアップ表202及び第2バレルシフタ104に供給され、第2バレルシフタ104は「BbbCcccD DdddEEEe」内の「CcccDDdd」のシーケンスをリレイ回路105へ出力すると共に、「Bbb」の3ビットシーケンスをコード値として第2ルックアップ表202へ出力する。第2ルックアップ表202は復号化されたコード長さ「3」とコード値「Bbb」とを認識して、認識されたコード長さとサブフィックスコードエントリーとに対応する固定長さの復号化された語、例えば、「B’」をリード線213上へ出力する。
第6クロックパルスの立ち上がりエッジの際に、READ信号は「1」に維持され、リード線111上のデータセグメントは変化されない。加算器310の出力は以前に復号化されたコード長さ「3」に以前に累算されたコード長さ「10」を加えることによって、「13」となる。加算器310の出力(即ち、「13」)はラッチ回路320によりラッチされ、リード線319上にウィンドウ制御信号として供給される。従って、CARRY信号は「0」を維持し、第1バレルシフタ103は「AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii」で「dEEEeeeF」のシーケンスを第2バレルシフタ104へ出力する。第5クロックパルスの立ち下がりエッジのときに、リレイ回路105によりラッチされた「CcccDDdd」の出力シーケンスは第1ルックアップ表201及び第2バレルシフタ104へ供給される。第1ルックアップ表201は「CcccDDdd」の復号化出力シーケンス内の第1のビット、即ち、「C」を認識して、認識されたプレフィクスコードエントリーに対応する復号化されたコード長さ、例えば、「4」をリード線211上へ出力する。その後、リード線211上の復号化されたコード長さ「4」は第2ルックアップ表202及び第2バレルシフタ104に供給され、第2バレルシフタ104は「CcccDDdd dEEEeeeF」で「DDdddEEE」の8ビットシーケンスをリレイ回路105へ出力すると共に、「ccc」の3ビットシーケンスをコード値として第2ルックアップ表202へ出力する。第2ルックアップ表202は復号化されたコード長さ「4」とコード値「ccc」とを認識して、認識されたコード長さとサブフィックスコードエントリーとに対応する固定長さの復号化された語、例えば、「C’」をリード線213上へ出力する。
第7クロックパルスの立ち上がりエッジのときに、前のCARRY信号が「0」であるため、第1バレルシフタ103の3つの入力データセグメントは変わらない。加算器310の出力は以前に復号化されたコード長さ「4」に以前に累算された「16」を法とするコード長さ「13」を加えることによって、「17」となる。加算器310の出力(即ち、「17」)はラッチ回路330によりラッチされ、リード線319上にウィンドウ制御信号として供給される。従って、READ信号及びCARRY信号は「1」となり、第1バレルシフタ103は「AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii」で「eeeFFFFf」のシーケンスを第2バレルシフタ104へ出力する。第6クロックパルスの立ち上がりエッジのときに、リレイ回路105によりラッチされた「DDdddEEE」の出力シーケンスは第1ルックアップ表201及び第2バレルシフタ104へ供給される。第1ルックアップ表201は「DDdddEEE」の復号化出力シーケンス内の第1の2つのビット、即ち、「DD」を認識して、認識されたプレフィクスコードエントリーに対応する復号化されたコード長さ、例えば、「5」をリード線211上へ出力する。その後、リード線211上の復号化されたコード長さ「5」は第2ルックアップ表202及び第2バレルシフタ104に供給され、第2バレルシフタ104は「DDdddEEE eeeFFFFF」で「EEEeeeFF」のシーケンスをリレイ回路105へ出力すると共に、「ddd」の3ビットのシーケンスをコード値として第2ルックアップ表202へ出力する。第2ルックアップ表202は復号化されたコード長さ「5」とコード値「ddd」とを認識して、認識されたコード長さとサブフィックスコードエントリーとに対応する固定長さの復号化された語、例えば、「D’」をリード線213上へ出力する。
第8クロックパルスの立ち上がりエッジのとき、前の信号は「0」であるため次のデータセグメント「ggggHHHHH hhhIIiii」は入力バッファメモリ50からリード線111上に出力される。加算器310の出力は、以前に復号化されたコード長さ「5」に以前に累算されたコード長さ「17」を加えることによって、「22」となる。加算器310の出力(即ち、「22」)はラッチ回路320によりラッチされ、リード線319上にウィンドウ制御信号として供給される。従って、CARRY信号は「1」を維持し、第1バレルシフタ103は「AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii」で「FFfffGGG」のシーケンスを第2バレルシフタ104へ出力する。第7クロックパルスの立ち下がりエッジのときにリレイ回路105によりラッチされた「EEEeeeFF」の出力シーケンスは第1ルックアップ表201及び第2バレルシフタ104へ供給される。第1ルックアップ表201は「EEEeeeFF」の復号化出力シーケンス内の第1の3つのビット、即ち、「EEE」を認識して、認識されたプレフィクスコードエントリーに対応する復号化されたコード長さ、例えば、「6」をリード線211上へ出力する。その後、リード線211上の復号化されたコード長さ「6」は第2ルックアップ表202及び第2バレルシフタ104に供給され、第2バレルシフタ104は「EEEeeeFF FFfffGGG」で「FFFFfffG」の8ビットのシーケンスをリレイ回路105へ出力すると共に「eee」の3ビットのシーケンスをコード値として第2ルックアップ表202へ出力する。第2ルックアップ表202は復号化されたコード長さ「6」とコード値「eee」とを認識して、認識されたコード長さとサブフィックスコードエントリーとに対応する固定長さの復号化された語、例えば、「E′」をリード線213へ出力する。リード線318上において、「6」はウィンドウ制御信号「22」から「16」を引き算することによって得られた以前に累算された「16」を法とするコード長さとして伝達される。
第9クロックパルスの立ち下がりエッジの際に、前のCARRY信号が「1」であるため、リード線111上のデータセグメント「gggHHHHH hhhIIiii」がラッチ回路101によりラッチされ、ラッチ回路101に格納されていたデータセグメント「EeeeFFFF fffGGGGG」はラッチ回路102によりラッチされる。加算器310の出力は以前に復号化されたコード長さ「6」に以前に累算された「16」を法とするコード長さ「6」を加えることによって「12」となる。加算器310の出力(即ち、「12」)はラッチ回路330によりラッチされ、リード線319上にウィンドウ制御信号として供給される。従って、READ信号またはCARRY信号は「0」となり、第1バレルシフタ103は「EeeeFFFF fffGGGGG gggHHHHH hhhIIiii gggHHHHH hhhIIiii」で「GGGGgggH」のシーケンスを第2バレルシフタ104へ出力する。第8クロックパルスの立ち上がりのとき、リレイ回路105にラッチされた「FFFFfffG」の出力シーケンスは第1ルックアップ表201及び第2バレルシフタ104へ供給される。第1ルックアップ表201は「FFFFfffG」の復号化出力シーケンス内の第1の4つのビット、即ち、「FFFF」を認識して、認識されたプレフィクスコードエントリーに対応する復号化されたコード長さ、例えば、「7」をリード線211上へ出力する。その後、リード線211上の復号化されたコード長さ「7」は第2ルックアップ表202及び第2バレルシフタ104に供給され、第2バレルシフタ104は「FFFFfffG GGGGgggH」で「GGGGGggg」のシーケンスをリレイ回路105へ出力すると共に、「fff」の3ビットシーケンスをコード値として第2ルックアップ表202へ出力する。第2ルックアップ表202は復号化されたコード長さ「7」とコード値「fff」とを認識して、認識されたコード長さとサブフィックスコードエントリーに対応する固定長さの復号化された語、例えば、「F’」をリード線213上へ出力する。
上記において、本発明の特定の実施例について説明したが、本明細書に記載した特許請求の範囲を逸脱することなく、当業者は種々の変更を加え得ることは勿論である。また、本発明の復号化方法は、電子計算機を用いるプログラムによっても実行できるものである。
【発明の効果】
従って、本発明によれば、毎クロックサイクルごとに2つのコードを復号化し得るため、高速復号化動作を効果的に行うことができる加算器310、2つのラッチ回路320及び330、MUX340を有する累算ブロック300を用いることによって、複雑な構造を単純化することができる。
【図面の簡単な説明】
【図1】本発明によるVLC復号化装置のブロック図。
【図2】図1のVLC復号化装置の動作を説明するための入力ビットスツリームを示す図。
【図3】図1のVLC復号化装置の動作を説明するための例示図。
【符号の説明】
50 バッファメモリ
101、102 ラッチ回路
103 第1バレルシフタ
104 第2バレルシフタ
105 リレイ回路
106、107 ラッチ回路
108 マルチプレクサ
200 メモリ装置
201 第1ルックアップ表
202 第2ルックアップ表
300 累算ブロック
310 加算器
320、330 ラッチ回路
340 マルチプレクサ
Claims (13)
- 最長可変長コードの2倍の長さを有する固定長セグメントからなる入力ビットスツリームを、立ち上がりエッジ及び立ち下がりエッジを有するクロックパルスからなるクロック信号に基づいて、1/2クロック周期にて復号化するための高速可変長コード復号化装置であって、
前記入力ビットスツリームからビットの連続した固定長セグメントを格納するカスケード接続された第1および第2ビット格納手段と、
前記第1および第2ビット格納手段に接続され、前記第1及び第2格納手段から受け取られたビットを格納し、格納された連続する固定長セグメントのビットから第1ウィンドウ出力シーケンスを生成する出力ウィンドウを有するシフト手段であって、前記ウィンドウ出力シーケンスは前記最長可変長コードと同一のビット長さを有し、ウィンドウ制御信号に直接応じて、毎半クロックサイクル間に前記格納されたビットのうちの所定ビットに亘って前記ウィンドウをシフトさせるシフト手段と、
前記ウィンドウ出力シーケンスを1半クロックサイクルの間にラッチし、ラッチされたウィンドウ出力シーケンスを復号化出力シーケンスとして生成するリレイ手段と、
前記リレイ手段に接続されており、前記復号化出力シーケンスの第1ビット位置から始まる可変長コードの上位Pビット(前記Pの最大値は、最長可変長コードより小さい整数)からなるプレフィクスコードに応じてコード長さを生成する第1メモリ手段と、
前記第1メモリ手段及び前記シフト手段に接続されており、前記コード長さ及びウィンドウ出力シーケンスに応じて、固定長さ語を発生する第2メモリ手段と、
前記コード長さに前のクロックサイクル間に復号化された以前に累算された可変長コードの長さを各半クロックサイクルの間に加算して、ウィンドウ制御信号を生成し、前記ウィンドウ制御信号におけるビット数だけ前記ウィンドウをシフトさせると共に、前記累算されたコード長さが前記第1シフト格納手段内の全てのビットが復号化されたことを表す場合、前記入力ビットスツリーム内の次の固定長セグメントを前記第2ビット格納手段に伝達するように制御する読取り信号を発生させて、前記第2ビット格納手段内のビットのシーケンスを前記第1ビット格納手段へ伝達するように制御する桁上げ信号を発生する累算手段とを有することを特徴とする可変長コード復号化装置。 - 前記第2ビット格納手段内のビットシーケンスの前記第1ビット格納手段への伝達と前記入力ビットスツリーム内の前記次の固定長セグメントの読取りがクロックパルスの相異なるエッジにて行われることを特徴とする請求項1に記載の高速可変長コード復号化装置。
- 前記累算手段が、
前記第1メモリ手段から供給された前記コード長さを前記以前に累算されたコード長さに加算する加算手段と、
第1及び第2ラッチ回路を備え、半クロックサイクルの単位にて交互に前記加算手段の出力をラッチする手段であって、前記第2ラッチ回路は前記ラッチされたコード長さの最上位ビットの論理値を検出すると共に、前記読取り信号として出力する、前記ラッチ手段と、
前記半クロックサイクルの単位にて前記ラッチ手段から供給された前記ラッチされたコード長さに基づいて、前記ウィンドウ制御信号を生成して前記ウィンドウをシフトさせると共に、前記ウィンドウ制御信号の最上位ビットを前記格納手段に前記桁上げ信号として供給し、前記ラッチされたコード長さが前記可変長コードの最長より2倍大きい場合、前記第1ラッチ回路から供給されたラッチされたコード長さから前記可変長コードの最長の2倍を引き算して、前記引き算されたコード長さと前記第2ラッチ回路からのラッチされたコード長さとを交互に前記加算手段に前記以前に累算されたコード長さとして供給するマルチプレクス手段とを有することを特徴とする請求項2に記載の高速可変長コード復号化装置。 - 前記入力ビットスツリーム内の前記次の固定長セグメントの読取りが、直前の半クロックサイクルの際に前記第2ラッチ回路から生成された前記読取り信号に応じて行われることを特徴とする請求項3に記載の高速可変長コード復号化装置。
- 前記第1メモリ手段がプレフィクスコード表と復号化語長さ表とを備えており、前記可変長コードのプレフィクスコードが前記プレフィクスコード表内のエントリーとして表現され、前記復号化語長さ表が前記プレフィクスコードに対応するコード長さを出力することを特徴とする請求項4に記載の高速可変長コード復号化装置。
- 前記第2メモリ手段がサブフィクスコード表、コード長さ表及び復号化語表を備えており、各々の可変長コードに対する前記コード長さはコード長さ表内のエントリーとして表れて、前記各々の可変長コードに対するサブフィクスコードがサブフィクスコード表内のエントリーとして表れて、前記復号化語表が前記サブフィクスコードと前記コード長さに対応する固定長さ語を出力することを特徴とする請求項5に記載の高速可変長コード復号化装置。
- 最長可変長コードの2倍の長さを有する固定長セグメントからなる入力ビットスツリームを、立ち上がりエッジ及び立ち下がりエッジとを有するクロックパルスからなるクロック信号に基づいて、1/2クロック周期にて復号化するための可変長コード復号化装置であって、
前記入力ビットスツリームを格納すると共に、固定長セグメント単位で逐次出力するバッファ手段と、
前記バッファ手段から取出された固定長セグメントを、セグメント単位で順次的に格納するカスケード接続された第1及び第2ビット格納手段と、
前記第1および第2ビット格納手段に結合され、前記第1及び第2格納手段から取出されたビットを格納すると共に、格納された連続する固定長セグメントのビットから第1ウィンドウ出力シーケンスを生成する第1出力ウィンドウを有する第1シフト手段であって、前記第1ウィンドウ出力シーケンスは可変長コードの最長と同一のビット長さを有し、ウィンドウ制御信号に直接応じて、前記第1シフト手段に格納されたビットだけ前記第1出力ウィンドウをシフトさせる第1シフト手段と、
前記第1シフト手段に接続されて、前記第1ウィンドウ出力シーケンス内に含まれたビットと供給された前の符号化出力シーケンスのビットとを格納すると共に、格納されたビットから第2ウィンドウ出力シーケンスを生成する第2出力ウィンドウを有して、前記第2ウィンドウ出力シーケンス内の1番目ビットから上位M個のビットをコード値として発生する第2シフト手段であって、前記第2ウィンドウ出力シーケンスは可変長コードの最長と同一のビット長さを有し、前記第2出力ウィンドウはコード長さに直接応答してシフトされ、Mは、前記可変長コードの最長より小さい整数である、前記第2シフト手段と、
前記第2ウィンドウ出力シーケンスを半クロックサイクルの間ラッチし、ラッチされた第2ウィンドウ出力シーケンスを復号化出力シーケンスとして生成すると共に、生成された復号化出力シーケンスを前記第2シフト手段に以前の復号化出力シーケンスとして供給するリレイ手段と、
前記リレイ手段に結合されており、前記復号化出力シーケンスの第1ビット位置から始まる可変長コードの上位P個のビット(前記Pの最大値は、可変長コードの最長より小さい整数)からなるプレフィクスコードに応じてコード長さを生成すると共に、前記第2シフト手段に供給する第1メモリ手段と、
前記第1メモリ手段と前記第2シフト手段に接続されており、前記コード長さと前記コード値に応じて固定長さ語を生成する第2メモリ手段と、
以前に累算されたコード長さと前記コード長さとを加えて、加算された累算されたコード長さを表すウィンドウ制御信号を生成し、前記累算されたコード長さが前記可変長コードの最長の2倍より大きい場合、前記バッファ手段に格納された次の固定長セグメントを読出して、前記第2ビット格納手段に伝達するように前記バッファ手段を制御する読取り信号を出力して、前記第2ビット格納手段に以前に格納された固定長セグメントを前記第1ビット格納手段へ伝送するようにする桁上げ信号を発生する累算手段とを有し、
前記第2ビット格納手段内に以前に格納された前記固定長セグメントの前記第1格納手段への伝達及び前記バッファ手段内に格納された次の固定長セグメントの読取りがクロック パルスの互いに相異なるエッジにて行われることを特徴とする高速可変長コード復号化装置。 - 前記累算手段が、
前記第1メモリ手段から供給された前記コード長さを前記以前に累算されたコード長さに加算する加算手段と、
第1及び第2ラッチ回路を備え、1/2クロック周期の単位にて交互に前記加算手段の出力をラッチする手段であって、前記第2ラッチ回路は前記ラッチされたコード長さの最上位ビットの論理値を検出すると共に、前記読取り信号として出力する、前記ラッチ手段と、
前記半クロックサイクルの単位にて前記ラッチ手段から供給された前記ラッチされたコード長さに基づいて、前記ウィンドウ制御信号を生成して前記ウィンドウをシフトさせると共に、前記ウィンドウ制御信号の最上位ビットを前記格納手段に前記桁上げ信号として供給し、前記ラッチされたコード長さが前記可変長コードの最大長の2倍より大きい場合、前記第1ラッチ回路から供給されたラッチされたコード長さから前記可変長コードの最大長さの2倍を引き算して、前記引き算されたコード長さと前記第2ラッチ回路からのラッチされたコード長さとを交互に前記加算手段に前記以前に累算されたコード長さとして供給するマルチプレクス手段とを含むことを特徴とする請求項7に記載の高速可変長コード復号化装置。 - 前記バッファ手段内の前記次の固定長セグメントの読取りが直前の半クロックサイクルの際に前記第2ラッチ回路から生成された前記読取り信号に応じて行われることを特徴とする請求項8に記載の高速可変長コード復号化装置。
- 前記第1メモリ手段がプレフィクスコード表と復号化語長さ表とを備えており、前記可変長コードのプレフィクスコードが前記プレフィクスコード表内のエントリーとして表現され、前記復号化語長さ表が前記プレフィクスコードに対応するコード長さを出力することを特徴とする請求項9に記載の可変長コード復号化装置。
- 前記第2メモリ手段がサブフィクスコード表、コード長さ表及び復号化語表を備えており、各々の可変長コードに対する前記コード長さはコード長さ表内のエントリーとして表れて、前記各々の可変長コードに対するサブフィクスコードがサブフィクスコード表内のエントリーとして表されて、前記復号化語表が前記サブフィクスコードと前記コード長さに対応する固定長さ語を出力することを特徴とする請求項10に記載の可変長コード復号化装置。
- 最長可変長コードの2倍の長さを有する固定長セグメントからなる入力ビットスツリームを、立ち上がりエッジ及び立ち下がりエッジとを有するクロックパルスからなるクロック信号に基づいて、1/2半クロック周期にて復号化する高速可変長コード復号化方法であって、
前記入力ビットスツリームの連続する第1及び第2固定長セグメントを格納する第1過程と、
前記格納された第1及び第2固定長セグメントから各々半クロックサイクル間に前記可変長コードの最長と同一のビット長さを有する入力ビットのシーケンスの復号化ウィンドウを形成する第2過程と、
前記復号化ウィンドウ内の初期ビットと、全ての可能な可変長コードとを比較することによって、一つの整合可変長コードを決定する第3過程と、
各々の半クロックサイクル間に、前記整合された可変長コードのビット長さを表すコード長さを生成する第4過程と、
各々の半クロックサイクル間に、前記整合された可変長コードに対応する固定長さ語を生成する第5過程と、
各々の半クロックサイクル間に、前記生成されたコード長さと以前に累算されたコード長さとを合算する第6過程と、
各々の半クロックサイクル間に、前記整合された可変長コードのビット数だけ前記復号化ウィンドウを直接シフトさせる第7過程と、
前記累算されたコード長さが前記第1固定長セグメント内の全てのビットが復号化されたことを表す場合、前記入力ビットスツリームの次の固定長セグメントを読出す第8過程と、
前記累算されたコード長さが前記第1固定長セグメント内の全てのビットが復号化されたことを表す場合、入力ビットの第2固定長セグメントの代わりに前記第8過程で読出された入力ビットスツリームの次の固定長セグメントを格納する間に、入力ビットの第1固定長セグメントの代わりに第2固定長セグメントを格納する第9過程と、
前記累算されたコード長さが可変長コードの最大長さの2倍を超過する場合、前記累算されたコード長さから前記可変長コードの最大長さの2倍を引き算する第10過程と、
前記入力ビットスツリーム内の全ての可変長コードが復号されるまで、前記第1過程から第10過程を繰り返す第11過程とを有することを特徴とする高速可変長コード復号化方法。 - 前記第8過程と前記第9過程が、各々クロックパルスの相異なるエッジにて行われることを特徴とする請求項12に記載の高速可変長コード復号化方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR95/28089 | 1995-08-31 | ||
KR1019950028089A KR100207385B1 (ko) | 1995-08-31 | 1995-08-31 | 가변 길이 복호화 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09130266A JPH09130266A (ja) | 1997-05-16 |
JP3853439B2 true JP3853439B2 (ja) | 2006-12-06 |
Family
ID=19425506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25098796A Expired - Fee Related JP3853439B2 (ja) | 1995-08-31 | 1996-09-02 | 高速可変長コード復号化装置及び高速可変長コード復号化方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5736946A (ja) |
JP (1) | JP3853439B2 (ja) |
KR (1) | KR100207385B1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835035A (en) * | 1995-12-28 | 1998-11-10 | Philips Electronics North America Corporation | High performance variable length decoder with two-word bit stream segmentation and related method |
US6349379B2 (en) * | 1997-04-30 | 2002-02-19 | Canon Kabushiki Kaisha | System for executing instructions having flag for indicating direct or indirect specification of a length of operand data |
US6704361B2 (en) | 1998-05-18 | 2004-03-09 | Sony Corporation | Variable length decoder for decoding digitally encoded video signals |
US6934338B1 (en) | 1998-05-18 | 2005-08-23 | Sony Corporation | Variable length decoder for decoding digitally encoded video signals |
CA2356869C (en) * | 1998-12-28 | 2004-11-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and devices for coding or decoding an audio signal or bit stream |
US20010030615A1 (en) * | 2000-03-03 | 2001-10-18 | Minhua Zhou | Variable length decoding system and method |
US6714612B1 (en) * | 2000-06-08 | 2004-03-30 | Sun Microsystems, Inc. | Method and device for synchronization of phase mismatch in communication systems employing a common clock period |
DE10249495B3 (de) * | 2002-10-24 | 2004-05-27 | Daimlerchrysler Ag | Vorrichtung zum Testen von Lautsprechern auf Funktionsfähigkeit |
JP4502384B2 (ja) * | 2004-11-25 | 2010-07-14 | キヤノン株式会社 | 可変長符号復号化装置及び可変長符号復号化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
-
1995
- 1995-08-31 KR KR1019950028089A patent/KR100207385B1/ko active IP Right Grant
-
1996
- 1996-08-30 US US08/706,163 patent/US5736946A/en not_active Expired - Lifetime
- 1996-09-02 JP JP25098796A patent/JP3853439B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR970014363A (ko) | 1997-03-29 |
KR100207385B1 (ko) | 1999-07-15 |
JPH09130266A (ja) | 1997-05-16 |
US5736946A (en) | 1998-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5561690A (en) | High speed variable length code decoding apparatus | |
US5245338A (en) | High-speed variable-length decoder | |
US5436626A (en) | Variable-length codeword encoder | |
JP3136796B2 (ja) | 可変長符号デコーダ | |
US5696507A (en) | Method and apparatus for decoding variable length code | |
US5173695A (en) | High-speed flexible variable-length-code decoder | |
US5901177A (en) | High speed variable length code decoding apparatus and method | |
EP0663730B1 (en) | Apparatus for decoding variable length codes | |
JP3442217B2 (ja) | 高速可変長符号復号化装置 | |
US5394144A (en) | Variable length code decoding apparatus | |
JP3853439B2 (ja) | 高速可変長コード復号化装置及び高速可変長コード復号化方法 | |
KR20040012403A (ko) | 가변 길이 코드 복호화 장치 및 방법 | |
US5648775A (en) | High speed variable length code decoding apparatus | |
JPH0879747A (ja) | 映像信号のための可変長復号器 | |
US5432512A (en) | Apparatus for decoding variable length codes | |
JP3429623B2 (ja) | 高速可変長符号復号化装置 | |
US5701126A (en) | High speed variable length decoder | |
JP3389389B2 (ja) | 可変長コード復号化装置 | |
KR100207428B1 (ko) | 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법 | |
KR100268831B1 (ko) | 고속 처리 가변 길이 코덱 장치 | |
JP3229690B2 (ja) | 可変長符号復号器 | |
JP2934603B2 (ja) | 可変長さコードの復号化方法及びその装置 | |
KR0125126B1 (ko) | 고속 가변길이부호 복호화 장치 | |
JP3332630B2 (ja) | 復号装置及びデコードテーブルの生成方法 | |
JPH0373619A (ja) | ラン長符号符号化回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20050802 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051101 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051102 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051114 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060519 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060725 |
|
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: 20060815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060906 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130915 Year of fee payment: 7 |
|
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 |