JP2006254225A - 可変長符号の復号装置及び復号方法 - Google Patents
可変長符号の復号装置及び復号方法 Download PDFInfo
- Publication number
- JP2006254225A JP2006254225A JP2005069795A JP2005069795A JP2006254225A JP 2006254225 A JP2006254225 A JP 2006254225A JP 2005069795 A JP2005069795 A JP 2005069795A JP 2005069795 A JP2005069795 A JP 2005069795A JP 2006254225 A JP2006254225 A JP 2006254225A
- Authority
- JP
- Japan
- Prior art keywords
- codeword
- decoding
- variable
- length
- circuit
- 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
Links
Images
Classifications
-
- 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 可変長符号長のビット数がバッファ回路に格納できるビット数より大きい場合に、復号が可能な可変長符号の復号装置を提供する。
【解決手段】 可変長符号語の少なくとも一部を格納するバッファ回路10と、可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルTaを用いて検出する検出回路20と、プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出する抽出回路30と、プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号する第1復号回路40とを備える。
【選択図】 図1
【解決手段】 可変長符号語の少なくとも一部を格納するバッファ回路10と、可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルTaを用いて検出する検出回路20と、プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出する抽出回路30と、プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号する第1復号回路40とを備える。
【選択図】 図1
Description
本発明は、可変長符号の復号装置及び復号方法に関する。
データ伝送において、プレフィクス部、及びプレフィクス部のビット数により符号長が決定するサフィックス部を有する可変長符号が使用されている。例えば、指数ゴロム(exp−golomb)符号は、プレフィクス部の0の個数及びサフィックス部の符号語によって復号結果が決まる。
先行技術では、ゼロ検出命令を持つ汎用プロセッサを使用し、以下のステップにより可変長符号語の復号が行われる。
(1)ゼロ検出命令を用い、バッファ回路に格納された可変長符号語の先頭に並んでいる0の個数を数える。
(2)0の個数に基づき、バッファ回路に格納された可変長符号語のサフィックス部の先頭のビット位置を計算する。
(3)サフィックス部をバッファ回路に格納する。
(4)プレフィクス部の0の個数とサフィックス部の符号語により復号結果を得る。
上記の各ステップにおいて、それぞれ1サイクル以上の実行時間が必要である。又、バッファ回路内に収まる短い符号語のときでも、上記のステップで符号語の復号が行われる。そのため、符号語が短い場合でも、指数ゴロム符号の復号に5〜10サイクル程度の期間が必要である。
又、バッファ回路に格納できるビット数より可変長符号語のビット数が大きい場合に、符号語を最大符号長の半分の長さに分割して復号化する方法が提案されている(例えば、特許文献1参照。)。しかし、上記の方法では、最大符号長の半分の長さの符号語を格納可能なバッファ回路が必要である。
特開平5−235781号公報
本発明は、可変長符号長のビット数がバッファ回路に格納できるビット数より大きい場合に、復号が可能な可変長符号の復号装置及び復号方法を提供する。
本発明の第1の特徴は、(イ)可変長符号語の少なくとも一部を格納するバッファ回路と、(ロ)可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出する検出回路と、(ハ)プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出する抽出回路と、(ニ)プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号する第1復号回路とを備える可変長符号の復号装置であることを要旨とする。
本発明の第2の特徴は、(イ)可変長符号語の少なくとも一部を格納するバッファ回路と、(ロ)可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出する検出回路と、(ハ)プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出する抽出回路と、(ニ)プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号する第1復号回路と、(ホ)バッファ回路に可変長符号語全体が格納された場合に、その可変長符号語を復号テーブルを用いて復号する第2復号回路と、(ヘ)バッファ回路に複数の可変長符号語が格納された場合に、2番目に格納された可変長符号語を第2符号語復号テーブルを用いて復号する第3復号回路とを備える可変長符号の復号装置であることを要旨とする。
本発明の第3の特徴は、(イ)バッファ回路に可変長符号語の少なくとも一部を格納するステップと、(ロ)可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出するステップと、(ハ)プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出するステップと、(ニ)プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号するステップとを含む可変長符号の復号方法であることを要旨とする。
本発明の第4の特徴は、(イ)バッファ回路に可変長符号語の少なくとも一部を格納するステップと、(ロ)可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出するステップと、(ハ)プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出するステップと、(ニ)プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号するステップと、(ホ)バッファ回路に可変長符号語全体が格納された場合に、その可変長符号語を復号テーブルを用いて復号するステップと、(ヘ)バッファ回路に複数の可変長符号語が格納された場合に、2番目に格納された可変長符号語を第2符号語復号テーブルを用いて復号するステップとを含む可変長符号の復号方法であることを要旨とする。
本発明の第4の特徴は、(イ)バッファ回路に可変長符号語の少なくとも一部を格納するステップと、(ロ)可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出するステップと、(ハ)プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出するステップと、(ニ)プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号するステップと、(ホ)バッファ回路に可変長符号語全体が格納された場合に、その可変長符号語を復号テーブルを用いて復号するステップと、(ヘ)バッファ回路に複数の可変長符号語が格納された場合に、2番目に格納された可変長符号語を第2符号語復号テーブルを用いて復号するステップとを含む可変長符号の復号方法であることを要旨とする。
本発明によれば、可変長符号のビット数がバッファ回路に格納できるビット数より大きい場合に、復号が可能な可変長符号の復号装置及び復号方法を提供できる。
次に、図面を参照して、本発明の第1乃至第3の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第1乃至第3の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
(第1の実施の形態)
本発明の第1の実施の形態に係る可変長符号の復号装置は、図1に示すように、可変長符号語の少なくとも一部を格納するバッファ回路10と、可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルTaを用いて検出する検出回路20と、プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出する抽出回路30と、プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号する第1復号回路40とを備える。ここで、「可変長符号語を更新する」とは、バッファ回路10に格納された可変長符号語の残りの部分を新たにバッファ回路10に格納することである(以下において同様)。その結果、バッファ回路10に格納される可変長符号語が更新される。検出テーブルTaは、バッファ回路10に格納された可変長符号語のビット数を調べるテーブルである。
本発明の第1の実施の形態に係る可変長符号の復号装置は、図1に示すように、可変長符号語の少なくとも一部を格納するバッファ回路10と、可変長符号語を更新しながら可変長符号語のプレフィクス部のビット数を検出テーブルTaを用いて検出する検出回路20と、プレフィクス部のビット数に基づき、可変長符号語を更新しながら可変長符号語のサフィックス部の符号語を抽出する抽出回路30と、プレフィクス部のビット数及びサフィックス部の符号語に基づき、可変長符号語を復号する第1復号回路40とを備える。ここで、「可変長符号語を更新する」とは、バッファ回路10に格納された可変長符号語の残りの部分を新たにバッファ回路10に格納することである(以下において同様)。その結果、バッファ回路10に格納される可変長符号語が更新される。検出テーブルTaは、バッファ回路10に格納された可変長符号語のビット数を調べるテーブルである。
図1に示した可変長符号の復号装置により復号される可変長符号は、例えば指数ゴロム符号である。既に述べたように、指数ゴロム符号では、プレフィクス部の0の個数及びサフィックス部の符号語によって復号結果が決定される。以下では、可変長符号が指数ゴロム符号である場合を例示的に説明する。可変長符号語(以下において、単に「符号語」という。)SAが、図1に示した可変長符号の復号装置に入力される。符号語SAのビット数がバッファ回路10に格納可能なビット数B1より大きい場合は、符号語SAの先頭からビット数B1分の符号語SAがバッファ回路10に格納される。又、図1に示すように、符号語SAの復号結果SBが第1復号回路40から出力される。
符号語SAの例を図2に示す。指数ゴロム符号語は、プレフィクス部、及びプレフィクス部の0の個数により符号長が決定するサフィックス部を有する。例えば、符号語SAがビット列「00110」の場合は、先頭のビット列「00」がプレフィクス部である。次のビット「1」がプレフィクス部とサフィックス部の境界を示すビット(以下において、「境界ビット」という。)である。プレフィクス部に含まれる0の個数が2個であることから、サフィックス部の符号長は2である。つまり、境界ビット「1」に続くビット列「10」がサフィックス部である。
指数ゴロム符号のプレフィクス部のビット数Ra及びサフィックス部の符号語Rbに基づき、式(1)を用いて復号結果SBが得られる。
SB=([1<<Ra]−1)+Rb ・・・・・(1)
式(1)において、[1<<Ra]は、「1」の後にビット数Ra個の「0」が並ぶビット列を生成することを示す。例えば、符号語SAがビット列「00110」である場合は、上記に説明したように、ビット数Raは2であり、符号語Rbはビット列「10」である。したがって、[1<<Ra]はビット列「100」である。復号結果SBは、ビット列「100」から「1」を減算したビット列「011」に、サフィックス部の符号語Rbであるビット列「10」を加算したビット列「101」である。即ちSB=5である。同様にして、式(1)を用いて種々の符号語から得られる復号結果が図2に示されている。
式(1)において、[1<<Ra]は、「1」の後にビット数Ra個の「0」が並ぶビット列を生成することを示す。例えば、符号語SAがビット列「00110」である場合は、上記に説明したように、ビット数Raは2であり、符号語Rbはビット列「10」である。したがって、[1<<Ra]はビット列「100」である。復号結果SBは、ビット列「100」から「1」を減算したビット列「011」に、サフィックス部の符号語Rbであるビット列「10」を加算したビット列「101」である。即ちSB=5である。同様にして、式(1)を用いて種々の符号語から得られる復号結果が図2に示されている。
図1に示す検出回路20は、ビット数検出回路21、検出シフト回路22、検出レジスタ23、及び加算器24を備える。ビット数検出回路21にバッファ回路10、検出シフト回路22及び加算器24が接続される。ビット数検出回路21は、検出テーブルTaを参照して、バッファ回路10に格納された符号語SAの先頭から並んでいる0の個数を検出する。検出レジスタ23は、符号語SAのサフィックス部のビット数Raを格納する。検出シフト回路22にビット数検出回路21及び加算器50が接続される。検出シフト回路22は、バッファ回路10を、ビット数検出回路21が検出した0の個数分更新する。
検出テーブルTaは、例えば図3に示すような、符号語の先頭から並んでいる0の個数を調べるテーブルである。図3のビット列において、「x」は任意のビットであり、「0」或いは「1」である。例えば、バッファ回路10に符号語「0001xxx」が格納された場合、符号語の先頭から並んでいる0の個数は3である。つまり、符号語「0001xxx」のプレフィクス部のビット数Raは3である。
符号語SAのプレフィクス部のビット数Raがバッファ回路10に格納可能なビット数B1より大きい場合は、バッファ回路10には「0」のみ格納される。その場合は、ビット数検出回路21が、検出シフト回路22にビット数B1を出力する。そして、検出シフト回路22は加算器50を用いてバッファ回路10に格納される符号語SAをビット数B1分更新する。つまり、符号語SAのプレフィクス部の後続がバッファ回路10に格納される。又、検出レジスタ23にビット数B1が格納される。新たにバッファ回路10に格納された符号語がすべて「0」の場合は、上記の手順が繰り返される。つまり、バッファ回路10に格納された符号語SAにおいて、境界ビット「1」が検出されるまで、バッファ回路10はビット数B1分更新される。そして、検出レジスタ23にビット数B1が加算される。符号語SAの境界ビット「1」が検出された場合は、ビット数検出回路21は、検出テーブルTaを用いてバッファ回路10に格納された符号語の先頭から並んでいる0の個数を検出する。検出された0の個数は、検出レジスタ23に加算される。
上述したように、ビット数検出回路21が検出した符号語SAのプレフィクス部の0の個数は、加算器24によって検出レジスタ23に加算される。そのため、符号語SAのプレフィクス部のビット数Raがバッファ回路10に格納可能なビット数B1より大きい場合でも、ビット数Raは検出レジスタ23に格納される。
図1に示す抽出回路30は、抽出シフト回路31、抽出レジスタ32、加算器33、ビット数レジスタ34及び減算器35を備える。抽出シフト回路31に抽出レジスタ32、加算器33及びビット数レジスタ34が接続される。又、加算器33にバッファ回路10及び抽出レジスタ32が接続される。ビット数レジスタ34に減算器35及び検出レジスタ23が接続される。
抽出回路30は、バッファ回路10から符号語SAのサフィックス部の符号語Rbを抽出する。抽出された符号語Rbは、抽出レジスタ32に格納される。既に説明したように、サフィックス部の符号語Rbの符号長は、プレフィクス部のビット数Raである。そのため、抽出回路30は、Raビット長さのビット列としてサフィックス部の符号語Rbを抽出する。符号語SAのサフィックス部の符号語Rbのビット数がバッファ回路10に格納可能なビット数B1より大きい場合は、サフィックス部の符号語Rb全体をバッファ回路10に格納できない。その場合、抽出シフト回路31が、バッファ回路10を更新してサフィックス部の符号語Rbを順次抽出する。そして、抽出回路30は、サフィックス部の符号語Rbを、抽出レジスタ32に格納する。ビット数レジスタ34はビット数Raを格納する。
第1復号回路40に検出レジスタ23及び抽出レジスタ32が接続される。そして、第1復号回路40は、検出レジスタ23から入力されるプレフィクス部のビット数Ra、及び抽出レジスタ32から入力されるサフィックス部の符号語Rbに基づき、式(1)を用いて復号結果SBを得る。
図1に示す復号装置により、可変長符号を復号する方法を以下に説明する。符号語SAが図1に示す復号装置に入力され、バッファ回路10に格納される。例えば、バッファ回路10に格納可能なビット数B1が8ビット、符号語SAが19ビットのビット列「0000000001010010110」の場合、図4(a)に示すように、バッファ回路10に符号語SAの先頭の8ビットであるビット列「00000000」が格納される。そのため、検出レジスタ23に8が格納される。そして検出シフト回路22は、バッファ回路10を8ビット分更新し、図4(b)に示すようにバッファ回路10にビット列「01010010」が格納される。そのため、ビット数検出回路21は、検出テーブルTaを参照して、バッファ回路10に格納されたビット列「01010010」の先頭から並んでいる0の個数が1であることを検出する。検出された0の個数は、検出レジスタ23に追加される。その結果、符号語SAのプレフィクス部のビット数Ra=9が検出レジスタ23に格納される。又、ビット数Raは、検出レジスタ23からビット数レジスタ34に転送され、ビット数レジスタ34にビット数Ra=9が格納される。
又、ビット列「01010010」から検出した0の個数に基づき、検出シフト回路22がバッファ回路10を1ビット分更新する。そのため、図4(c)に示すようにバッファ回路10にビット列「10100101」が格納される。更に、検出シフト回路22は、境界ビット「1」をバッファ回路10から除くために、バッファ回路10を1ビット分更新する。その結果、図4(d)に示すようにバッファ回路10にビット列「01001011」が格納される。つまり、符号語SAのサフィックス部の符号語Rbであるビット列「010010110」のうち、先頭の8ビットがバッファ回路10の先頭に格納される。
ビット数Raが検出された後、抽出回路30が、ビット数レジスタ34に格納されたビット数Raを参照して、バッファ回路10から符号語SAのサフィックス部の符号語Rbを取得する。上記の例のように、サフィックス部の符号語Rbのビット数がビット数B1より大きい場合は、サフィックス部の符号語Rb全体をバッファ回路10に格納できない。その場合は、抽出シフト回路31がバッファ回路10を更新してサフィックス部の符号語Rbを取得する。
上記の例を用いて説明すると、抽出回路30が、ビット数レジスタ34に格納されたビット数Raを参照して、バッファ回路10に格納されたビット列「01001011」、つまり「75」を取得する。次いで、抽出シフト回路31が、取得したビット列のビット数、即ち8ビット分だけ、バッファ回路10を更新する。その結果、図4(e)に示すように、バッファ回路10にビット列「0xxxxxxx」が格納される。ここで、「x」は符号語SAの次にバッファ回路10に格納された符号語のビットを示す。又、ビット数レジスタ34から、抽出シフト回路31がバッファ回路10を更新したビット数である8が減算器35によって減算される。その結果、ビット数レジスタ34に1が格納される。
次いで、抽出回路30が、ビット数レジスタ34に格納されたビット数1を参照して、バッファ回路10に格納されたビット列「0xxxxxxx」の最初の1ビットである「0」を取得する。そして、抽出回路30によって取得された「0」と、先に取得された75を1ビット更新した値とが加算器33で加算され、加算結果が抽出レジスタ32に格納される。その結果、符号語SAのサフィックス部の符号語Rb=150が抽出レジスタ32に格納される。
次いで、第1復号回路40が、プレフィクス部のビット数Ra、及びサフィックス部の符号語Rbに基づき、式(1)を用いて符号語SAを復号し、復号結果SBを出力する。上記の例では、復号結果SB=661である。その後、検出シフト回路22が、ビット数Raに基づきバッファ回路10を更新し、次の復号対象の符号語をバッファ回路10の先頭に格納する。
以上に説明したように、本発明の第1の実施の形態に係る可変長符号の復号装置では、バッファ回路10を更新しながら、入力された符号語SAのプレフィクス部のビット数Raを検出する。更に、バッファ回路10を更新しながらサフィックス部の符号語Rbを抽出する。そのため、符号語SAのビット数がバッファ回路10に格納可能なビット数B1より大きい場合でも、復号することができる。又、バッファ回路10に格納された符号語と検出テーブルTaを比較することにより、符号語SAのプレフィクス部のビット数Raを検出する。そのため、汎用プロセッサのゼロ検出命令を使用してビット数Raを検出する場合より、符号語SAの復号に要するサイクル数を少なくできる。
(第2の実施の形態)
本発明の第2の実施の形態に係わる可変長符号の復号装置は、図5に示すように、第2復号回路41、セレクタ60、復号テーブルTb及び符号語長テーブルTcを更に備える点が図1と異なる。その他の構成については、図1に示す第1の実施の形態と同様である。第2復号回路41は、バッファ回路10に符号語SA全体が格納された場合、即ち符号語SAのビット数がバッファ回路10に格納可能なビット数B1より少ない場合に、復号テーブルTbを用いて符号語SAを復号する。セレクタ60は、第1復号回路40が出力する復号結果SBa、又は第2復号回路41が出力する復号結果SBbのいずれかを、符号語SAの復号結果SBとして出力する。
本発明の第2の実施の形態に係わる可変長符号の復号装置は、図5に示すように、第2復号回路41、セレクタ60、復号テーブルTb及び符号語長テーブルTcを更に備える点が図1と異なる。その他の構成については、図1に示す第1の実施の形態と同様である。第2復号回路41は、バッファ回路10に符号語SA全体が格納された場合、即ち符号語SAのビット数がバッファ回路10に格納可能なビット数B1より少ない場合に、復号テーブルTbを用いて符号語SAを復号する。セレクタ60は、第1復号回路40が出力する復号結果SBa、又は第2復号回路41が出力する復号結果SBbのいずれかを、符号語SAの復号結果SBとして出力する。
復号テーブルTbは、例えば図6に示すような、バッファ回路10に格納された符号語の復号結果を調べるテーブルである。第2復号回路41は、バッファ回路10に格納された符号語と復号テーブルTbのビット列を比較する。そして、バッファ回路10に格納された符号語と一致するビット列が復号テーブルTbのビット列にある場合に、第2復号回路41は、符号語と一致するビット列に対応する復号結果を復号テーブルTbから取得する。符号語と一致するビット列が復号テーブルTbに存在しない場合は、復号テーブルTbは復号結果として0を返す。復号対象の符号語のビット数がバッファ回路10に格納可能なビット数B1より大きい場合は、符号語と一致するビット列が復号テーブルTbに存在しないため、復号テーブルTbは復号結果として0を返す。
図5に示す復号装置により、可変長符号を復号する方法を以下に説明する。図5に示す復号装置に復号対象の符号語SAが入力され、バッファ回路10に格納される。第2復号回路41は、バッファ回路10に格納された符号語SAと一致するビット列が復号テーブルTbのビット列にある場合には、対応する復号結果SBbを復号テーブルTbから取得する。例えば、バッファ回路10に符号語「00010101」が格納された場合は、第2復号回路41は復号結果「9」を取得する。取得された復号結果SBbは、第2復号回路41からセレクタ60に出力される。
又、ビット数検出回路21が、符号語長テーブルTcを参照して、バッファ回路10に格納された符号語の符号長を検出する。符号語長テーブルTcは、例えば図7に示すような、バッファ回路10に格納された符号語の符号長を調べるテーブルである。図7に示したビット列において、「x」は任意のビットであり、「0」或いは「1」である。例えば、バッファ回路10に格納されたビット列「00010101」は、符号語長テーブルTcのビット列「0001xxx」と一致する。そのため、バッファ回路10に格納された符号語の符号長は7ビットである。検出シフト回路22は、バッファ回路10を7ビット分更新させ、次の復号対象の符号語をバッファ回路10の先頭に格納する。
一方、バッファ回路10に格納された符号語と一致するビット列が復号テーブルTbのビット列にない場合は、第1の実施の形態で説明した方法により、符号語を復号する。即ち、検出回路20が符号語SAのプレフィクス部のビット数Raを検出する。次いで、抽出回路30が、サフィックス部の符号語Rbを抽出する。そして、第1復号回路40が、プレフィクス部のビット数Ra、及びサフィックス部の符号語Rbに基づき、式(1)を用いて復号結果SBaを取得する。得られた復号結果SBaは、セレクタ60に入力される。
セレクタ60に、復号結果SBa又は復号結果SBbのいずれかが入力される。セレクタ60は、復号結果SBa又は復号結果SBbのいずれかを、符号語SAの復号結果SBとして出力する。
本発明の第2の実施の形態に係る可変長符号の復号装置では、バッファ回路10に格納された符号語の復号結果を調べる復号テーブルTbが使用される。そのため、復号対象の符号語SAのビット数がバッファ回路10に格納可能なビット数B1より少ない場合に、符号語SAの復号を1サイクルで行うことができる。図1に示した復号装置では、プレフィクス部のビット数Raの検出、及びサフィックス部の符号語Rbの抽出にそれぞれ1サイクル以上を必要とするため、符号語SAの復号に最低でも2サイクルが必要である。つまり、第2の実施の形態に係る可変長符号の復号装置によれば、符号語SAの復号に要するサイクル数を少なくすることができる。他は、第1の実施の形態と実質的に同様であり、重複した記載を省略する。
(第3の実施の形態)
本発明の第3の実施の形態に係わる復号装置は、図8に示すように、第3復号回路42、第2符号語復号テーブルTd及び第2符号語長テーブルTeを更に備える点が図5と異なる。その他の構成については、図5に示す第2の実施の形態と同様である。第3復号回路42は、バッファ回路10に複数の符号語が格納された場合に、第2符号語復号テーブルTdを用いてバッファ回路10に2番目に格納された符号語を復号する。
本発明の第3の実施の形態に係わる復号装置は、図8に示すように、第3復号回路42、第2符号語復号テーブルTd及び第2符号語長テーブルTeを更に備える点が図5と異なる。その他の構成については、図5に示す第2の実施の形態と同様である。第3復号回路42は、バッファ回路10に複数の符号語が格納された場合に、第2符号語復号テーブルTdを用いてバッファ回路10に2番目に格納された符号語を復号する。
第2符号語復号テーブルTdは、例えば図9に示すような、バッファ回路10に2番目に格納された符号語の復号結果を調べるテーブルである。図9に示したビット列において、「x」は任意のビットであり、「0」或いは「1」である。第3復号回路42は、バッファ回路10に格納されたビット列と第2符号語復号テーブルTdのビット列を比較する。そして、バッファ回路10に格納されたビット列と一致するビット列が第2符号語復号テーブルTdのビット列にある場合に、第3復号回路42は、一致するビット列に対応する復号結果を第2符号語復号テーブルTdから取得する。
又、ビット数検出回路21は、第2符号語長テーブルTeを参照して、バッファ回路10に2番目に格納された符号語の符号長を検出する。第2符号語長テーブルTeは、例えば図10に示すような、バッファ回路10に2番目に格納された符号語の符号長を調べるテーブルである。図10に示したビット列において、「x」は任意のビットであり、「0」或いは「1」である。バッファ回路10に2番目に格納された符号語が無い場合は、第2符号語長テーブルTeは符号語の符号長として0を返す。
図8に示す復号装置により、可変長符号を復号する方法を以下に説明する。以下では、図11に示したように、ビット列「011」の符号語SA1、及びビット列「00110」の符号語SA2がバッファ回路10に格納される場合について例示的に説明する。つまり、符号語長テーブルTcを用いて検出される符号語SA1の符号長、及び第2符号語長テーブルTeを用いて検出される符号語SA2の符号長がいずれも0でない場合である。
図8に示した復号装置に、復号対象の符号語SA1、SA2が入力され、図11に示すようにバッファ回路10にビット列「01100110」が格納される。検出回路20は、図7に示した符号語長テーブルTcを参照して、バッファ回路10に1番目に格納された符号語SA1の符号長3ビットを検出する。又、検出回路20は、図10に示した第2符号語長テーブルTeを参照して、バッファ回路10に2番目に格納された符号語SA2の符号長を検出する。ビット列「01100110」は、図10に示した第2符号語長テーブルTeのビット列「01x001xx」と一致する。そのため、検出回路20は、バッファ回路10に2番目に格納された符号語SA2の符号長5ビットを検出する。
第2符号語長テーブルTeを用いて検出される符号語SA2の符号長が0でない場合、第3復号回路42は、図9に示した第2符号語復号テーブルTdを参照して、バッファ回路10に2番目に格納された符号語SA2の復号結果を取得する。バッファ回路10に格納されたビット列は、図9に示した第2符号語復号テーブルTdのビット列「01100110」と一致する。そのため、第3復号回路42はビット列「00110」の符号語SA2の復号結果SB2として「5」を取得する。そして、第3復号回路42は復号結果SB2を出力する。第2符号語復号テーブルTdを用いることにより、第3復号回路42は、1サイクルで符号語SA2を復号できる。
又、第2の実施の形態で説明した方法と同様にして、第2復号回路41が、復号テーブルTbを用いて、バッファ回路10に格納された符号語SAを復号する。具体的には、第2復号回路41は、符号語SA1と一致するビット列「011」に対応する検出結果「2」を、図6に示す復号テーブルTbを用いて取得する。そして、第2復号回路41は、取得された検出結果「2」を、符号語SA1の復号結果SBとして出力する。復号テーブルTbを用いることにより、第2復号回路41は、1サイクルで符号語SA1を復号できる。
第2復号回路41と第3復号回路42は、同時に動作可能である。つまり、符号語SA1の復号と、符号語SA2の復号を同一サイクルで実行できる。
その後、検出回路20は、符号語SA1の符号語の符号長3ビットと符号語SA2の符号語の符号長5ビットの合計8ビット分だけ、バッファ回路10に格納されるビット列を更新させる。その結果、次の復号対象の符号語がバッファ回路10の先頭に格納される。
一方、第2符号語長テーブルTeを用いて検出される符号語SA2の符号長が0、且つ符号語長テーブルTcを用いて検出される符号語SA1の符号長が0でない場合は、バッファ回路10に1つの符号語SA1が含まれている。この場合には、第2の実施の形態で説明した方法と同様にして、第2復号回路41が、復号テーブルTbを用いて符号語SA1を復号する。図8に示した復号装置は、符号語SA1の復号結果SB1を出力する。符号語SA2の復号結果SB2は出力されない。
符号語長テーブルTcを用いて検出される符号語SA1の符号長が0の場合は、符号語SA1のビット数がバッファ回路10に格納可能なビット数B1より大きい場合である。この場合は、第1の実施の形態で説明した方法により、符号語SA1を復号する。即ち、検出回路20が符号語SA1のプレフィクス部のビット数Raを検出する。次いで、抽出回路30が、サフィックス部の符号語Rbを抽出する。そして、第1復号回路40が、プレフィクス部のビット数Ra、及びサフィックス部の符号語Rbに基づき、式(1)を用いて復号結果SBaを取得する。図8に示した復号装置は、復号結果SBaを符号語SA1の出力結果SB1として出力する。符号語SA2の復号結果SB2は出力されない。
又、1つの符号語を復号する設定がされている場合は、第2の実施の形態で説明した方法と同様にして、図8に示した復号装置は、バッファ回路10に格納された符号語SA1のみを復号する。
本発明の第3の実施の形態に係る可変長符号の復号装置では、バッファ回路10に格納された符号語の復号結果を調べる復号テーブルTb、及びバッファ回路10に2番目に格納された符号語の復号結果を調べる第2符号語復号テーブルTdを使用して復号を行う。その結果、バッファ回路10に複数の符号語が格納された場合に、2つの符号語の復号を1サイクルで同時に行うことができる。その結果、第3の実施の形態に係る可変長符号の復号装置によれば、符号語の復号に要するサイクル数を少なくすることができる。他は、第2の実施の形態と実質的に同様であるので、重複した記載を省略する。
(その他の実施の形態)
上記のように、本発明は第1乃至第3の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
上記のように、本発明は第1乃至第3の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
既に述べた第3の実施の形態の説明においては、復号テーブルTb及び第2符号語復号テーブルTdを用いて、バッファ回路10に格納された2つの符号語を同一サイクルで復号する復号装置を説明した。更に、バッファ回路10に3番目に格納された符号語を復号する復号回路、或いはバッファ回路10に4番目に格納された符号語を復号する復号回路等を備え、3つ以上の符号語を同一サイクルで復号する復号装置を実現することができる。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
Ta…検出テーブル
Tb…復号テーブル
Tc…符号語長テーブル
Td…第2符号語復号テーブル
Te…第2符号語長テーブル
10…バッファ回路
20…検出回路
30…抽出回路
40…第1復号回路
41…第2復号回路
42…第3復号回路
Tb…復号テーブル
Tc…符号語長テーブル
Td…第2符号語復号テーブル
Te…第2符号語長テーブル
10…バッファ回路
20…検出回路
30…抽出回路
40…第1復号回路
41…第2復号回路
42…第3復号回路
Claims (5)
- 可変長符号語の少なくとも一部を格納するバッファ回路と、
前記可変長符号語を更新しながら前記可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出する検出回路と、
前記プレフィクス部のビット数に基づき、前記可変長符号語を更新しながら前記可変長符号語のサフィックス部の符号語を抽出する抽出回路と、
前記プレフィクス部のビット数及び前記サフィックス部の符号語に基づき、前記可変長符号語を復号する第1復号回路
とを備えることを特徴とする可変長符号の復号装置。 - 前記バッファ回路に可変長符号語全体が格納された場合に、該可変長符号語を復号テーブルを用いて復号する第2復号回路を更に備えることを特徴とする請求項1に記載の可変長符号の復号装置。
- 可変長符号語の少なくとも一部を格納するバッファ回路と、
前記可変長符号語を更新しながら前記可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出する検出回路と、
前記プレフィクス部のビット数に基づき、前記可変長符号語を更新しながら前記可変長符号語のサフィックス部の符号語を抽出する抽出回路と、
前記プレフィクス部のビット数及び前記サフィックス部の符号語に基づき、前記可変長符号語を復号する第1復号回路と、
前記バッファ回路に可変長符号語全体が格納された場合に、該可変長符号語を復号テーブルを用いて復号する第2復号回路と、
前記バッファ回路に複数の可変長符号語が格納された場合に、2番目に格納された可変長符号語を第2符号語復号テーブルを用いて復号する第3復号回路
とを備えることを特徴とする可変長符号の復号装置。 - バッファ回路に可変長符号語の少なくとも一部を格納するステップと、
前記可変長符号語を更新しながら前記可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出するステップと、
前記プレフィクス部のビット数に基づき、前記可変長符号語を更新しながら前記可変長符号語のサフィックス部の符号語を抽出するステップと、
前記プレフィクス部のビット数及び前記サフィックス部の符号語に基づき、前記可変長符号語を復号するステップ
とを含むことを特徴とする可変長符号の復号方法。 - バッファ回路に可変長符号語の少なくとも一部を格納するステップと、
前記可変長符号語を更新しながら前記可変長符号語のプレフィクス部のビット数を検出テーブルを用いて検出するステップと、
前記プレフィクス部のビット数に基づき、前記可変長符号語を更新しながら前記可変長符号語のサフィックス部の符号語を抽出するステップと、
前記プレフィクス部のビット数及び前記サフィックス部の符号語に基づき、前記可変長符号語を復号するステップと、
前記バッファ回路に可変長符号語全体が格納された場合に、該可変長符号語を復号テーブルを用いて復号するステップと、
前記バッファ回路に複数の可変長符号語が格納された場合に、2番目に格納された可変長符号語を第2符号語復号テーブルを用いて復号するステップ
とを含むことを特徴とする可変長符号の復号方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005069795A JP2006254225A (ja) | 2005-03-11 | 2005-03-11 | 可変長符号の復号装置及び復号方法 |
US11/166,174 US7102550B1 (en) | 2005-03-11 | 2005-06-27 | System and method for decoding a variable-length codeword while updating the variable-length codeword |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005069795A JP2006254225A (ja) | 2005-03-11 | 2005-03-11 | 可変長符号の復号装置及び復号方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006254225A true JP2006254225A (ja) | 2006-09-21 |
Family
ID=36939474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005069795A Pending JP2006254225A (ja) | 2005-03-11 | 2005-03-11 | 可変長符号の復号装置及び復号方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7102550B1 (ja) |
JP (1) | JP2006254225A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008124926A (ja) * | 2006-11-14 | 2008-05-29 | Renesas Technology Corp | 画像復号装置、画像符号化装置、およびシステムlsi |
WO2009157250A1 (ja) * | 2008-06-23 | 2009-12-30 | 日本電気株式会社 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4502384B2 (ja) * | 2004-11-25 | 2010-07-14 | キヤノン株式会社 | 可変長符号復号化装置及び可変長符号復号化方法 |
JP2008199100A (ja) | 2007-02-08 | 2008-08-28 | Toshiba Corp | 可変長符号復号装置 |
JP2008252230A (ja) * | 2007-03-29 | 2008-10-16 | Toshiba Corp | 画像復号装置及び復号方法 |
US8813143B2 (en) * | 2008-02-26 | 2014-08-19 | Time Warner Enterprises LLC | Methods and apparatus for business-based network resource allocation |
KR101175680B1 (ko) * | 2008-12-23 | 2012-08-22 | 광운대학교 산학협력단 | 비트스트림 프로세서의 구동방법 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04192744A (ja) * | 1990-11-26 | 1992-07-10 | Matsushita Electric Ind Co Ltd | 復号化装置 |
JPH05183443A (ja) * | 1991-12-27 | 1993-07-23 | Pfu Ltd | 符号変換方法 |
JPH05235781A (ja) * | 1992-02-19 | 1993-09-10 | Fujitsu Ltd | 符号データの復号化メモリ制御方式 |
JPH06104767A (ja) * | 1992-09-24 | 1994-04-15 | Sony Corp | 可変長符号デコーダ |
JPH07502632A (ja) * | 1991-12-23 | 1995-03-16 | インテル コーポレイシヨン | ハフマンコードの復号化のための回路 |
JPH07235878A (ja) * | 1993-12-28 | 1995-09-05 | Matsushita Electric Ind Co Ltd | 可変長復号化器 |
JPH09130265A (ja) * | 1995-08-31 | 1997-05-16 | Daewoo Electron Co Ltd | 処理速度の高い可変長コード復号化装置及びその復号化方法 |
JPH09246988A (ja) * | 1996-03-05 | 1997-09-19 | Canon Inc | 復号装置及びその方法 |
JP2006135461A (ja) * | 2004-11-04 | 2006-05-25 | Casio Comput Co Ltd | 動画像符号化装置および動画像符号化処理プログラム |
JP2006157157A (ja) * | 2004-11-25 | 2006-06-15 | Canon Inc | 可変長符号復号化装置及び可変長符号復号化方法 |
Family Cites Families (7)
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 |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
US6414608B1 (en) * | 1999-06-09 | 2002-07-02 | Matsushita Electric Industrial Co., Ltd. | Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus |
JP2001084707A (ja) * | 1999-09-10 | 2001-03-30 | Toshiba Corp | 可変長符号の復号方法、復号装置及び可変長符号の復号プログラムを記録したコンピュータ読み取り可能な記録媒体 |
KR100450753B1 (ko) * | 2002-05-17 | 2004-10-01 | 한국전자통신연구원 | 프로세서와 연결된 프로그램 가능한 가변 길이 디코더 |
US6975253B1 (en) * | 2004-08-06 | 2005-12-13 | Analog Devices, Inc. | System and method for static Huffman decoding |
-
2005
- 2005-03-11 JP JP2005069795A patent/JP2006254225A/ja active Pending
- 2005-06-27 US US11/166,174 patent/US7102550B1/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04192744A (ja) * | 1990-11-26 | 1992-07-10 | Matsushita Electric Ind Co Ltd | 復号化装置 |
JPH07502632A (ja) * | 1991-12-23 | 1995-03-16 | インテル コーポレイシヨン | ハフマンコードの復号化のための回路 |
JPH05183443A (ja) * | 1991-12-27 | 1993-07-23 | Pfu Ltd | 符号変換方法 |
JPH05235781A (ja) * | 1992-02-19 | 1993-09-10 | Fujitsu Ltd | 符号データの復号化メモリ制御方式 |
JPH06104767A (ja) * | 1992-09-24 | 1994-04-15 | Sony Corp | 可変長符号デコーダ |
JPH07235878A (ja) * | 1993-12-28 | 1995-09-05 | Matsushita Electric Ind Co Ltd | 可変長復号化器 |
JPH09130265A (ja) * | 1995-08-31 | 1997-05-16 | Daewoo Electron Co Ltd | 処理速度の高い可変長コード復号化装置及びその復号化方法 |
JPH09246988A (ja) * | 1996-03-05 | 1997-09-19 | Canon Inc | 復号装置及びその方法 |
JP2006135461A (ja) * | 2004-11-04 | 2006-05-25 | Casio Comput Co Ltd | 動画像符号化装置および動画像符号化処理プログラム |
JP2006157157A (ja) * | 2004-11-25 | 2006-06-15 | Canon Inc | 可変長符号復号化装置及び可変長符号復号化方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008124926A (ja) * | 2006-11-14 | 2008-05-29 | Renesas Technology Corp | 画像復号装置、画像符号化装置、およびシステムlsi |
WO2009157250A1 (ja) * | 2008-06-23 | 2009-12-30 | 日本電気株式会社 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
JP5083579B2 (ja) * | 2008-06-23 | 2012-11-28 | 日本電気株式会社 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US7102550B1 (en) | 2006-09-05 |
US20060202874A1 (en) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006254225A (ja) | 可変長符号の復号装置及び復号方法 | |
KR100910855B1 (ko) | 디코딩 방법 및 장치 | |
JP6319740B2 (ja) | データ圧縮を高速化する方法、並びに、データ圧縮を高速化するためのコンピュータ、及びそのコンピュータ・プログラム | |
KR100717055B1 (ko) | Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치 | |
JP2010130407A (ja) | 算術復号装置 | |
KR101583139B1 (ko) | 높은 처리량과 낮은 복잡성을 갖는 연속 제거 극 부호 복호 장치 및 그 방법 | |
JP2006339990A (ja) | データ符号化装置、データ符号化方法、プログラム | |
JP2007043595A (ja) | 可変長符号復号化方法および装置ならびにデータ伸長装置 | |
JP2010109492A5 (ja) | 復号装置、復号方法、及びプログラム | |
JP2007226615A (ja) | 情報処理装置、圧縮プログラム生成方法及び情報処理システム | |
JP4327036B2 (ja) | 算術符号復号化方法及びその装置 | |
JP4841496B2 (ja) | 可変長符号復号化装置 | |
JP2007104194A (ja) | 復号化システム | |
US8018359B2 (en) | Conversion of bit lengths into codes | |
JP2008252230A (ja) | 画像復号装置及び復号方法 | |
JP2003526986A (ja) | 算術的に符号化された情報信号の算術復号化 | |
JP4763853B2 (ja) | 可変長符号復号化装置及びその方法 | |
US20130229292A1 (en) | Apparatus and method for decoding | |
JP2008514095A (ja) | 可変長エンコーダ/デコーダのためのプログラム可能データプロセッサ | |
JP4129280B2 (ja) | バレルシフト装置 | |
JP2006166388A (ja) | 空白となるビット列の前方配置による境界相殺方法 | |
TWI669945B (zh) | 專用算術編碼指令 | |
JP2006270330A (ja) | 可変長符号復号回路 | |
JP2007259143A (ja) | 音声データ処理装置及び方法 | |
JP5359538B2 (ja) | 復号装置、復号方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100105 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100427 |