JP2001339312A - Variable length decoding circuit - Google Patents
Variable length decoding circuitInfo
- Publication number
- JP2001339312A JP2001339312A JP2001085942A JP2001085942A JP2001339312A JP 2001339312 A JP2001339312 A JP 2001339312A JP 2001085942 A JP2001085942 A JP 2001085942A JP 2001085942 A JP2001085942 A JP 2001085942A JP 2001339312 A JP2001339312 A JP 2001339312A
- Authority
- JP
- Japan
- Prior art keywords
- output
- barrel shifter
- register
- data
- length
- 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.)
- Granted
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、可変長符号の復号
化回路に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a variable length code decoding circuit.
【0002】[0002]
【従来の技術】動画像を通信又は記録する際に、通信手
段の帯域幅や記録媒体の容量を削減するために、画像を
圧縮符号化することが行われている。国際標準の動画像
の符号化方式として、H.261、MPEG(moving p
icture experts group)1、MPEG2などがある。2. Description of the Related Art When a moving image is communicated or recorded, the image is compression-encoded in order to reduce the bandwidth of communication means and the capacity of a recording medium. H.264 is an international standard video coding method. 261, MPEG (moving p
icture experts group 1) and MPEG2.
【0003】これらの符号化方式は、動きベクトル検出
及び動き補償、DCT(discrete cosine transfor
m)、量子化、ジグザグスキャン、可変長符号化などを
組合わせた方法である。可変長符号化は、量子化された
固定長の符号語を、統計的性質に従った可変長の符号語
のビットストリームに変換して平均的な符号量を減らす
符号化方法である。このようなビットストリームを復号
化し、動画像再生を行うには、可変長の符号語を元の固
定長のデータに変換する可変長復号化を行うことが必要
となる。可変長復号化では、符号語の長さが一定ではな
く、ビットストリームにおける各可変長符号語の先頭位
置が特定できないため、ビットストリーム内の順番に従
って符号語を復号化する必要がある。[0003] These encoding methods include motion vector detection and motion compensation, and DCT (discrete cosine transfor- mation).
m), quantization, zigzag scan, variable length coding, and the like. Variable-length coding is a coding method that converts a quantized fixed-length codeword into a bitstream of variable-length codewords according to statistical properties to reduce the average code amount. In order to decode such a bit stream and reproduce a moving image, it is necessary to perform variable-length decoding for converting a variable-length codeword into original fixed-length data. In variable-length decoding, since the length of a codeword is not constant and the head position of each variable-length codeword in a bit stream cannot be specified, it is necessary to decode the code words in the order in the bit stream.
【0004】この可変長復号化を高速に実現するため
に、種々の可変長復号化回路が考えられている。従来の
可変長復号化回路の例として、米国特許5,245,3
38号公報に開示されたものがある。図11は、このよ
うな従来の可変長復号化回路の例のブロック図である。
図11の可変長復号化回路は、最長符号長が16ビット
の可変長符号を復号化するものである。Various variable length decoding circuits have been proposed to realize the variable length decoding at high speed. An example of a conventional variable length decoding circuit is disclosed in US Pat.
Japanese Patent Publication No. 38 discloses an example. FIG. 11 is a block diagram of an example of such a conventional variable-length decoding circuit.
The variable length decoding circuit of FIG. 11 decodes a variable length code having a maximum code length of 16 bits.
【0005】バッファ901は、入力されたビットスト
リームを格納し、読み出し信号RDが“1”の場合に
は、その次のサイクルにおいて、格納しているビットス
トリームを16ビット単位で第1のバレルシフタ911
及び第1の入力レジスタ912に出力する。バッファ9
01は、その出力を1サイクルの間保持する。The buffer 901 stores the input bit stream, and when the read signal RD is "1", in the next cycle, stores the stored bit stream in 16-bit units in the first barrel shifter 911.
And output to the first input register 912. Buffer 9
01 holds its output for one cycle.
【0006】第1の入力レジスタ912及び第2の入力
レジスタ913は16ビット構成であり、更新信号が
“1”の場合に次のサイクルで入力データを取り込む。The first input register 912 and the second input register 913 have a 16-bit configuration, and take in input data in the next cycle when the update signal is "1".
【0007】第1のバレルシフタ911は、加算器91
4の加算結果SM(値:0〜31)をシフト量(値:1
〜32)として用い、第2の入力レジスタ913の出力
を上位16ビットとして、第1の入力レジスタ912の
出力を中位16ビットとして、バッファ901の出力を
下位16ビットとして連結した48ビットのデータのう
ち、最上位から(シフト量+1)ビット目〜(シフト量
+16)ビット目の16ビットのデータを出力し、これ
を第1のバレルシフタレジスタ922に書き込む。ここ
で、連結して得られた48ビットのデータの最上位ビッ
トを1ビット目としている。The first barrel shifter 911 includes an adder 91
4 is shifted by the shift amount (value: 1).
48-bit data obtained by concatenating the output of the second input register 913 as the upper 16 bits, the output of the first input register 912 as the middle 16 bits, and the output of the buffer 901 as the lower 16 bits. Among them, 16-bit data of the (shift amount + 1) th bit to (shift amount + 16) th bit from the most significant bit is output, and this is written to the first barrel shift register 922. Here, the most significant bit of the 48-bit data obtained by concatenation is the first bit.
【0008】第2のバレルシフタ921は、シフト量レ
ジスタ925の出力をシフト量(値:1〜16)として
用い、第2のバレルシフタレジスタ923の出力を上位
16ビットとして、第1のバレルシフタレジスタ922
の出力を下位16ビットとして連結した32ビットのデ
ータのうち、最上位から(シフト量+1)ビット目〜
(シフト量+16)ビット目の16ビットのデータを出力
し、これを第2のバレルシフタレジスタ923に書き込
む。The second barrel shifter 921 uses the output of the shift amount register 925 as the shift amount (value: 1 to 16), sets the output of the second barrel shifter register 923 to the upper 16 bits, and sets the first barrel shifter register 922
Of the 32-bit data obtained by concatenating the output of as the lower 16 bits, the (shift amount + 1) th bit to
The 16-bit data of the (shift amount + 16) th bit is output and written to the second barrel shifter register 923.
【0009】ルックアップテーブル924は、第2のバ
レルシフタ921の出力に対して可変長復号化を行い、
復号結果DCと符号長CL(値:1〜16)とを出力
し、この符号長をシフト量レジスタ925に書き込む。
ルックアップテーブル924は、可変長の各符号語に対
応して、その復号結果と符号長とを出力することができ
るように構成されたテーブルである。ルックアップテー
ブル924には、符号語の先頭のビットが最上位のビッ
トとして入力されるようになっている。The look-up table 924 performs variable length decoding on the output of the second barrel shifter 921,
The decoding result DC and the code length CL (value: 1 to 16) are output, and the code length is written to the shift amount register 925.
The lookup table 924 is a table configured to output a decoding result and a code length corresponding to each variable-length codeword. In the look-up table 924, the first bit of the code word is input as the most significant bit.
【0010】加算器914は、シフト量レジスタ925
の出力(値:1〜16)と累算レジスタ915の出力
(値:0〜15)とを加算し、加算結果SMを出力す
る。加算器914は、加算結果SMが16〜31の場合
1となる桁上げ信号CRをホールドレジスタ916に書
き込み、加算結果SMの16を法とする剰余RM(値:
0〜15)を累算レジスタ915に書き込む。すなわ
ち、5ビットのシフト量レジスタ925の出力と4ビッ
トの累算レジスタ915の出力との加算によって得られ
た5ビットの加算結果SMのうち、最上位ビットが桁上
げ信号CRとなり、残り4ビットが加算結果SMの16
を法とする剰余RMとなる。桁上げ信号CRを第1の入
力レジスタ912、第2の入力レジスタ913の更新信
号とし、ホールドレジスタ916の出力である読み出し
信号RDをバッファ901の読み出し信号とする。The adder 914 has a shift amount register 925
(Values: 1 to 16) and the output of the accumulation register 915 (values: 0 to 15), and outputs an addition result SM. The adder 914 writes the carry signal CR which becomes 1 when the addition result SM is 16 to 31 into the hold register 916, and generates a remainder RM (value:
0 to 15) are written to the accumulation register 915. That is, of the 5-bit addition result SM obtained by adding the output of the 5-bit shift amount register 925 and the output of the 4-bit accumulation register 915, the most significant bit becomes the carry signal CR, and the remaining 4 bits Is 16 of the addition result SM
Modulo RM. The carry signal CR is used as an update signal for the first input register 912 and the second input register 913, and the read signal RD output from the hold register 916 is used as a read signal for the buffer 901.
【0011】図12は、図11の可変長復号化回路にお
けるサイクル毎のデータフローの例を示す説明図であ
る。例えば“a1−a8”は、a1,a2,a3,a
4,a5,a6,a7,a8と連なる8ビットデータを
表すものとする。図12において、例えば第0サイクル
のバッファ出力が“a1−a8b1−b6c1−c2”
という表示は、a1−a8、b1−b6、c1−c2が
順に連なる16ビットのデータを表す。FIG. 12 is an explanatory diagram showing an example of a data flow for each cycle in the variable length decoding circuit of FIG. For example, "a1-a8" is a1, a2, a3, a
It is assumed that it represents 8-bit data connected to 4, a5, a6, a7, and a8. In FIG. 12, for example, the buffer output in the 0th cycle is “a1-a8b1-b6c1-c2”.
Indicates 16-bit data in which a1-a8, b1-b6, and c1-c2 are consecutively arranged.
【0012】図12において、第0〜第2サイクルの更
新信号、読み出し信号、第1のバレルシフタのシフト
量、及び第2のバレルシフタのシフト量は、初期状態と
してのデータを各レジスタに設定するために、それぞ
れ、“1”,“1”,“16”,及び“16”を用い
る。第3サイクル以降は、処理の結果得られた桁上げ信
号、読み出し信号、累算レジスタ、シフト量レジスタの
値を用いて処理を繰り返す。In FIG. 12, an update signal, a read signal, a shift amount of the first barrel shifter, and a shift amount of the second barrel shifter in the 0th to second cycles are used to set data as initial states in each register. , "1", "1", "16", and "16" are used, respectively. After the third cycle, the processing is repeated using the values of the carry signal, read signal, accumulation register, and shift amount register obtained as a result of the processing.
【0013】このように、復号結果の出力が毎サイクル
得られる。復号化開始時において、入力バッファ901
が最初にデータを出力する第0サイクルから2サイクル
後の第2サイクルで、最初の復号化出力が得られる。As described above, the output of the decoding result is obtained every cycle. At the start of decoding, the input buffer 901
In the second cycle, two cycles after the 0th cycle in which the first data is output, the first decoded output is obtained.
【0014】[0014]
【発明が解決しようとする課題】ところが、図11のよ
うな従来の可変長復号化回路では、入力レジスタを2個
必要とし、第1のバレルシフタとして48ビット入力で
16ビット出力の回路が必要である。このため、回路規
模が大きくなり、LSIなどで実現する場合に回路が広
いレイアウト面積を必要としてしまう。However, the conventional variable length decoding circuit as shown in FIG. 11 requires two input registers, and requires a 48-bit input and 16-bit output circuit as the first barrel shifter. is there. For this reason, the circuit scale becomes large, and the circuit needs a large layout area when it is realized by an LSI or the like.
【0015】また、図11のような従来の可変長復号化
回路では、復号化開始時には、入力バッファのデータが
出力されてから2サイクル後に初めて復号化出力が得ら
れる。ビットストリームには、可変長符号のストリーム
が複数含まれる場合においては、それぞれの可変長符号
のストリームの間に、ヘッダ等の可変長符号以外の情報
が含まれている。このような場合には、これらの可変長
符号のストリームが連続しておらず、可変長復号化を連
続して行うことができない。このため、可変長復号化を
連続して行えない場合には、それぞれの可変長符号スト
リームの復号化開始時に2サイクルの遅延が生じ、ビッ
トストリーム全体の復号化に多くのサイクル数を必要と
してしまう。In the conventional variable length decoding circuit as shown in FIG. 11, at the start of decoding, a decoded output is obtained only two cycles after the data in the input buffer is output. When the bit stream includes a plurality of variable-length code streams, information other than the variable-length code such as a header is included between the respective variable-length code streams. In such a case, the streams of the variable length codes are not continuous, and the variable length decoding cannot be performed continuously. For this reason, if variable-length decoding cannot be performed continuously, a delay of two cycles occurs at the start of decoding of each variable-length code stream, and a large number of cycles is required to decode the entire bit stream. .
【0016】本発明はこのような課題を解決するための
ものであり、可変長復号化回路において、回路規模及び
レイアウト面積を削減し、復号化出力の遅延を少なくす
ることを目的とする。An object of the present invention is to solve such a problem, and it is an object of the present invention to reduce a circuit scale and a layout area in a variable length decoding circuit and to reduce a delay of a decoding output.
【0017】[0017]
【課題を解決するための手段】前記課題を解決するた
め、請求項1の発明が講じた手段は、可変長符号の符号
語が連続するビットストリームを順次復号化して出力す
る可変長復号化回路であって、復号化した可変長符号の
符号語の符号長の累積値を求め、ビットストリームの連
続する長さ2N又は2N−1ビット(Nは可変長符号の
最長符号長)のデータから、前記累積値に応じて連続す
る長さNビットのデータを取り出して出力するインタフ
ェース部と、前記インタフェース部の出力を入力とし、
これとこれよりも前に入力された前記インタフェース部
の出力とに含まれる符号語に対してルックアップテーブ
ルを用いて復号化を行い、復号結果を出力するととも
に、復号化された符号語の符号長を前記インタフェース
部に出力する復号化部とを備えたものである。Means for Solving the Problems To solve the above problems, a means according to the present invention is a variable length decoding circuit for sequentially decoding and outputting a bit stream in which code words of variable length codes are continuous. Where the accumulated value of the code lengths of the codewords of the decoded variable-length codes is calculated, and from the data having a continuous length of 2N or 2N-1 bits (N is the longest code length of the variable-length codes), An interface unit that extracts and outputs data of a continuous length of N bits according to the accumulated value, and an output of the interface unit as an input;
A decoding is performed on the codewords included in this and the output of the interface unit input before this using a look-up table, and a decoding result is output, and the code of the decoded codeword is output. A decoding unit for outputting the length to the interface unit.
【0018】請求項1の発明によると、ビットストリー
ムの連続する長さ2N又は2N−1ビットのデータか
ら、復号化部で必要な長さNビットのデータを取り出す
ので、回路の規模を小さくすることができる。According to the first aspect of the present invention, N bits of data required by the decoding unit are extracted from continuous data of 2N or 2N-1 bits of the bit stream, so that the circuit scale is reduced. be able to.
【0019】また、請求項2の発明では、請求項1に記
載の可変長復号化回路において、前記インタフェース部
は、前記累積値に応じて得られた剰余を格納し、出力す
る累算レジスタと、前記復号化部が出力する符号長と前
記累算レジスタが出力する剰余とを加算して、前記累積
値に対応した加算結果を求め、当該加算結果をNで割っ
た商及び余りをそれぞれ桁上げ信号及び新たな剰余とし
て出力する加算器と、前記桁上げ信号の値が1である場
合に、ビットストリームの連続する長さN又はN−1ビ
ットのデータを格納し、出力する入力レジスタと、前記
入力レジスタの出力と、これに続くビットストリームの
連続する長さNビットのデータとを、各ビットの順がビ
ットストリームにおける順となるように連結し、前記累
算レジスタが出力する剰余をシフト入力の値として用
い、連結して得られたデータのうち、このシフト入力の
値に応じたビットから連続する長さNビットのデータを
取り出して前記復号化部に出力するバレルシフタとを備
えたものである。According to a second aspect of the present invention, in the variable length decoding circuit according to the first aspect, the interface unit includes an accumulation register for storing and outputting a remainder obtained according to the accumulated value. , The code length output by the decoding unit and the remainder output by the accumulation register are added to obtain an addition result corresponding to the accumulation value, and the quotient and remainder obtained by dividing the addition result by N are respectively represented by digits. An adder that outputs a carry signal and a new remainder, and an input register that stores and outputs data of a continuous length N or N−1 bits of the bit stream when the value of the carry signal is 1. , The output of the input register and the subsequent N-bit data of the bit stream are concatenated so that the order of each bit is the order in the bit stream, and the accumulation register outputs A barrel shifter that uses the remainder as the value of the shift input, takes out data of a continuous length of N bits from the bit corresponding to the value of the shift input, and outputs the data to the decoding unit, It is provided with.
【0020】請求項2の発明によると、桁上げ信号が入
力レジスタの格納データの更新に用いられ、また、加算
結果の剰余を累算レジスタに書き込むので、その1サイ
クル後に剰余がバレルシフタのシフト量として用いられ
る。このため、符号長の累積値が最長符号長を超え、最
長符号長を超えるシフト量のシフトを行う必要がある場
合に、バレルシフタで行うシフトは小さいシフト量で済
む。入力レジスタを更新することにより最長符号長に等
しいシフト量のシフトを行い、次のサイクルで残りのシ
フト量のシフトをバレルシフタにより実現することにな
るからである。したがって、バレルシフタのビット幅を
小さくすることができる。また、入力レジスタが1個で
済むので、初期設定のためのサイクル数が1サイクルで
済む。According to the second aspect of the present invention, the carry signal is used to update the data stored in the input register, and the remainder of the addition result is written to the accumulation register. Used as For this reason, when the accumulated value of the code length exceeds the longest code length and it is necessary to shift by a shift amount exceeding the longest code length, the shift performed by the barrel shifter can be a small shift amount. This is because the shift of the shift amount equal to the longest code length is performed by updating the input register, and the shift of the remaining shift amount is realized by the barrel shifter in the next cycle. Therefore, the bit width of the barrel shifter can be reduced. Also, since only one input register is required, the number of cycles for the initial setting is one.
【0021】また、請求項3の発明では、請求項2に記
載の可変長復号化回路において、前記バレルシフタは、
入力されたデータの先頭のビットから数えて、(M+
2)番目(Mは前記シフト入力の値)のビットから連続
する長さNビットのデータを出力することを特徴とす
る。According to a third aspect of the present invention, in the variable length decoding circuit according to the second aspect, the barrel shifter comprises:
Counting from the first bit of the input data, (M +
2) It is characterized in that data of a continuous length of N bits are output from the (M is the value of the shift input) bit.
【0022】請求項3の発明によると、インタフェース
部は、シフト入力の値に応じて、復号化部が必要とする
Nビットのデータを選択して出力することができる。According to the third aspect of the present invention, the interface unit can select and output N-bit data required by the decoding unit according to the value of the shift input.
【0023】また、請求項4の発明では、請求項1に記
載の可変長復号化回路において、前記復号化部は、バレ
ルシフタと、バレルシフタレジスタと、ルックアップテ
ーブルとを備え、前記バレルシフタは、前記バレルシフ
タレジスタが出力するデータと、前記インタフェース部
が出力するデータとを、各ビットの順がビットストリー
ムにおける順となるように連結し、前記ルックアップテ
ーブルが出力する符号長をシフト入力の値として用い、
連結して得られたデータのうち、このシフト入力の値に
応じたビットから連続する長さNビットのデータを取り
出して出力するものであり、前記バレルシフタレジスタ
は、前記バレルシフタの出力を格納し、出力するもので
あり、前記ルックアップテーブルは、前記バレルシフタ
レジスタの出力に含まれる符号語に対応した復号結果を
出力するとともに、当該符号語の符号長を出力するもの
である。According to a fourth aspect of the present invention, in the variable length decoding circuit according to the first aspect, the decoding section includes a barrel shifter, a barrel shifter register, and a look-up table, and the barrel shifter includes The data output by the barrel shifter register and the data output by the interface unit are connected so that the order of each bit is the order in the bit stream, and the code length output by the lookup table is used as the value of the shift input. ,
Among the data obtained by concatenation, data of a continuous length of N bits is extracted and output from the bit corresponding to the value of the shift input, and the barrel shifter register stores an output of the barrel shifter, The lookup table outputs a decoding result corresponding to a code word included in the output of the barrel shifter register, and outputs a code length of the code word.
【0024】請求項4の発明によると、インタフェース
部の出力を復号化部のバレルシフタに直結し、このバレ
ルシフタの出力をバレルシフタレジスタに書き込むの
で、バレルシフタレジスタの数を削減することができ
る。According to the fourth aspect of the present invention, the output of the interface section is directly connected to the barrel shifter of the decoding section, and the output of the barrel shifter is written to the barrel shifter register. Therefore, the number of barrel shifter registers can be reduced.
【0025】また、請求項5の発明では、請求項4に記
載の可変長復号化回路において、前記バレルシフタは、
入力されたデータの先頭のビットから数えて、(L+
1)番目(Lは前記シフト入力の値)のビットから連続
する長さNビットのデータを出力することを特徴とす
る。According to a fifth aspect of the present invention, in the variable length decoding circuit according to the fourth aspect, the barrel shifter comprises:
Counting from the first bit of the input data, (L +
It is characterized in that data of a continuous length of N bits is output from the 1) th bit (L is the value of the shift input).
【0026】請求項5の発明によると、次に復号化すべ
き符号語を先頭とするNビットのデータをルックアップ
テーブルの入力とすることができる。According to the invention of claim 5, N-bit data starting with the code word to be decoded next can be input to the lookup table.
【0027】また、請求項6の発明では、請求項4に記
載の可変長復号化回路において、前記復号化部は、前記
符号長から1を減じて出力する符号長変換回路を更に備
え、前記バレルシフタは、前記符号長の代わりに前記符
号長変換回路の出力を前記シフト入力の値として用い、
入力されたデータの先頭のビットから数えて、(L+
2)番目のビットから連続する長さNビットのデータを
出力することを特徴とする。According to a sixth aspect of the present invention, in the variable length decoding circuit according to the fourth aspect, the decoding section further includes a code length conversion circuit for subtracting 1 from the code length and outputting the result. The barrel shifter uses an output of the code length conversion circuit as a value of the shift input instead of the code length,
Counting from the first bit of the input data, (L +
2) It is characterized in that data having a length of N bits continuous from the bit is output.
【0028】請求項6の発明によると、バレルシフタへ
のシフト入力の値が小さくなる。特に、最長符号長が2
のべきである場合には、シフト入力の値を表すためのビ
ット数が小さくなり、バレルシフタへのシフト入力のビ
ット幅を小さくすることができる。According to the invention of claim 6, the value of the shift input to the barrel shifter becomes small. In particular, the longest code length is 2
In this case, the number of bits for representing the value of the shift input decreases, and the bit width of the shift input to the barrel shifter can be reduced.
【0029】また、請求項7の発明では、請求項1に記
載の可変長復号化回路において、前記復号化部は、バレ
ルシフタと、第1及び第2のバレルシフタレジスタと、
ルックアップテーブルと、シフト量レジスタとを備え、
前記バレルシフタは、前記第1及び第2のバレルシフタ
レジスタが出力するデータを、各ビットの順がビットス
トリームにおける順となるように連結し、前記シフト量
レジスタの出力に応じた値をシフト入力の値として用
い、連結して得られたデータのうち、このシフト入力の
値に応じたビットから連続する長さNビットのデータを
取り出して出力するものであり、前記第1のバレルシフ
タレジスタは、前記インタフェース部の出力を格納し、
出力するものであり、前記第2のバレルシフタレジスタ
は、前記バレルシフタの出力を格納し、出力するもので
あり、前記ルックアップテーブルは、前記バレルシフタ
の出力に含まれる符号語に対応した復号結果を出力する
とともに、当該符号語の符号長を出力するものであり、
前記シフト量レジスタは、前記符号長に応じた値を格納
し、出力するものである。According to a seventh aspect of the present invention, in the variable length decoding circuit according to the first aspect, the decoding section includes a barrel shifter, first and second barrel shifter registers,
A lookup table and a shift amount register,
The barrel shifter concatenates the data output from the first and second barrel shifter registers so that the order of each bit is the order in the bit stream, and changes the value corresponding to the output of the shift amount register to the value of the shift input. And outputs data of a continuous length of N bits from the bit corresponding to the value of the shift input out of the data obtained by concatenation, and the first barrel shifter register comprises: Store the output of the
The second barrel shifter register stores and outputs an output of the barrel shifter, and the lookup table outputs a decoding result corresponding to a codeword included in the output of the barrel shifter. And outputs the code length of the codeword.
The shift amount register stores and outputs a value corresponding to the code length.
【0030】請求項7の発明によると、インタフェース
部が出力したデータから、復号化すべき可変長符号の符
号語を含むNビットのデータを取り出し、順次復号化す
ることができる。According to the seventh aspect of the present invention, N-bit data including a variable-length code word to be decoded can be extracted from the data output by the interface unit and sequentially decoded.
【0031】また、請求項8の発明では、請求項7に記
載の可変長復号化回路において、前記シフト量レジスタ
は、前記符号長を格納し、出力するものであり、前記バ
レルシフタは、前記シフト量レジスタの出力をシフト入
力の値として用い、入力されたデータの先頭のビットか
ら数えて、(L+1)番目(Lは前記シフト入力の値)
のビットから連続する長さNビットのデータを出力する
ことを特徴とする。In the invention according to claim 8, in the variable length decoding circuit according to claim 7, the shift amount register stores and outputs the code length, and the barrel shifter stores the code length. Using the output of the quantity register as the value of the shift input and counting from the first bit of the input data, (L + 1) th (L is the value of the shift input)
, And outputs data of a continuous length of N bits starting from the first bit.
【0032】請求項8の発明によると、次に復号化すべ
き符号語を先頭とするNビットのデータをルックアップ
テーブルの入力とすることができる。According to the eighth aspect of the invention, N-bit data starting with the code word to be decoded next can be input to the look-up table.
【0033】また、請求項9の発明では、請求項7に記
載の可変長復号化回路において、前記復号化部は、前記
符号長から1を減じて出力する符号長変換回路を更に備
え、前記バレルシフタは、前記符号長変換回路及び前記
シフト量レジスタを介して入力された、1を減じられた
符号長を前記シフト入力の値として用い、入力されたデ
ータの先頭のビットから数えて、(L+2)番目のビッ
トから連続する長さNビットのデータを出力することを
特徴とする。According to a ninth aspect of the present invention, in the variable length decoding circuit according to the seventh aspect, the decoding unit further includes a code length conversion circuit that outputs a value obtained by subtracting 1 from the code length. The barrel shifter uses, as the value of the shift input, the code length obtained by subtracting 1 input through the code length conversion circuit and the shift amount register, counting from the first bit of the input data, and (L + 2) ) It outputs N-bit data continuous from the (th) bit.
【0034】請求項9の発明によると、バレルシフタへ
のシフト入力の値が小さくなる。特に、最長符号長が2
のべきである場合には、シフト入力の値を表すためのビ
ット数が小さくなり、バレルシフタへのシフト入力のビ
ット幅を小さくすることができる。According to the ninth aspect, the value of the shift input to the barrel shifter is reduced. In particular, the longest code length is 2
In this case, the number of bits for representing the value of the shift input decreases, and the bit width of the shift input to the barrel shifter can be reduced.
【0035】また、請求項10の発明は、請求項1に記
載の可変長復号化回路において、請求項2に記載のイン
タフェース部と、請求項4に記載の復号化部とを備えた
ものである。According to a tenth aspect of the present invention, there is provided the variable length decoding circuit according to the first aspect, further comprising an interface unit according to the second aspect and a decoding unit according to the fourth aspect. is there.
【0036】請求項10の発明によると、インタフェー
ス部のバレルシフタの出力を復号化部のバレルシフタに
直結し、復号化部のバレルシフタの出力をバレルシフタ
レジスタに書き込むので、バレルシフタレジスタの数を
削減することができる。According to the tenth aspect of the present invention, the output of the barrel shifter of the interface section is directly connected to the barrel shifter of the decoding section, and the output of the barrel shifter of the decoding section is written into the barrel shifter register. Therefore, the number of barrel shift registers can be reduced. it can.
【0037】また、請求項11の発明は、請求項1に記
載の可変長復号化回路において、請求項2に記載のイン
タフェース部と、請求項7に記載の復号化部とを備えた
ものである。According to an eleventh aspect of the present invention, in the variable length decoding circuit according to the first aspect, the interface unit according to the second aspect and the decoding unit according to the seventh aspect are provided. is there.
【0038】請求項11の発明によると、インタフェー
ス部のバレルシフタが出力したデータから、復号化すべ
き可変長符号の符号語を含むNビットのデータを取り出
し、順次復号化することができる。According to the eleventh aspect, N-bit data including a code word of a variable length code to be decoded can be extracted from the data output by the barrel shifter of the interface unit, and can be sequentially decoded.
【0039】また、請求項12の発明は、請求項10又
は11に記載の可変長復号化回路において、前記加算器
は、前記復号化部が出力する符号長と前記累算レジスタ
が出力する剰余とを加算した値に1を加えた値を前記加
算結果として求めるものであり、前記ルックアップテー
ブルは、前記符号長として、当該符号語の符号長から1
を減じた値を出力するものである。According to a twelfth aspect of the present invention, in the variable length decoding circuit according to the tenth or eleventh aspect, the adder includes a code length output by the decoding unit and a remainder output by the accumulation register. And a value obtained by adding 1 to the value obtained by adding the above is obtained as the addition result. The look-up table stores the code length as 1 from the code length of the code word.
Is output.
【0040】請求項12の発明によると、バレルシフタ
へのシフト入力の値が小さくなる。特に、最長符号長が
2のべきである場合には、シフト入力の値を表すための
ビット数が小さくなり、バレルシフタへのシフト入力の
ビット幅を小さくすることができる。また、符号長を変
換する回路を備える必要がない。According to the twelfth aspect, the value of the shift input to the barrel shifter becomes small. In particular, when the longest code length is to be 2, the number of bits for representing the value of the shift input decreases, and the bit width of the shift input to the barrel shifter can be reduced. Further, there is no need to provide a circuit for converting the code length.
【0041】[0041]
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照して説明する。Embodiments of the present invention will be described below with reference to the drawings.
【0042】(第1の実施形態)図1は、本発明の第1
の実施形態に係る可変長復号化回路のブロック図であ
る。この可変長復号化回路は最長符号長Nが16ビット
の可変長符号を復号化するものであるとして説明する。
図1の可変長復号化回路は、インタフェース部110
と、復号化部120とを備えている。インタフェース部
110は、バレルシフタ111と、入力レジスタ112
と、加算器114と、累算レジスタ115とを備えてい
る。復号化部120は、バレルシフタ121と、バレル
シフタレジスタ122と、ルックアップテーブル(以下
では、LUTと称する)124とを備えている。(First Embodiment) FIG. 1 shows a first embodiment of the present invention.
FIG. 14 is a block diagram of a variable-length decoding circuit according to the embodiment. This variable length decoding circuit is described as decoding a variable length code having a maximum code length N of 16 bits.
The variable length decoding circuit of FIG.
And a decoding unit 120. The interface unit 110 includes a barrel shifter 111 and an input register 112
, An adder 114, and an accumulation register 115. The decoding unit 120 includes a barrel shifter 121, a barrel shifter register 122, and a lookup table (hereinafter, referred to as an LUT) 124.
【0043】図2は、入力ビットストリームの例を示す
説明図である。ここで、a1等は1ビットデータを表
し、例えば“a1−a8”は、a1,a2,a3,a
4,a5,a6,a7,a8の8ビットのデータがこの
順で連なっていることを表している。また、8ビットデ
ータ“a1−a8”,6ビットデータ“b1−b6”,
5ビットデータ“c1−c5”及び15ビットデータ
“d1−d15”は、それぞれデータ“A”,“B”,
“C”及び“D”に対応した、可変長の符号語であると
する。同様に、12ビットデータ“e1−e12”,1
0ビットデータ“f1−f10”,9ビットデータ“g
1−g9”及び16ビットデータ“h1−h16”は、
それぞれデータ“E”,“F”,“G”及び“H”に対
応した、可変長の符号語であるとする。FIG. 2 is an explanatory diagram showing an example of an input bit stream. Here, a1 and the like represent 1-bit data. For example, “a1-a8” is a1, a2, a3, a
It indicates that 8-bit data of 4, a5, a6, a7, and a8 are connected in this order. Also, 8-bit data “a1-a8”, 6-bit data “b1-b6”,
The 5-bit data “c1-c5” and the 15-bit data “d1-d15” are data “A”, “B”,
It is assumed that the codeword is a variable-length codeword corresponding to “C” and “D”. Similarly, 12-bit data “e1-e12”, 1
0-bit data “f1-f10”, 9-bit data “g”
1-g9 "and 16-bit data" h1-h16 "
It is assumed that these are variable-length codewords corresponding to data "E", "F", "G", and "H", respectively.
【0044】以下では、図2のように、データ“A”〜
“H”に対応した、最長符号長が16ビットの可変長符
号の符号語が連続しているビットストリームが入力され
るものとして説明する。また、例えば“a1−a8b1
−b6c1−c2”という表示は、a1−a8、b1−
b6、c1−c2が順に連なる16ビットのデータを表
す。In the following, as shown in FIG.
A description will be given assuming that a bit stream in which variable-length code words having a maximum code length of 16 bits and corresponding to “H” are continuous is input. Also, for example, “a1-a8b1
-B6c1-c2 "means a1-a8, b1-
b6 and c1-c2 represent 16-bit data successively arranged.
【0045】図1において、バッファ101には、ビッ
トストリームと、加算器114が出力する桁上げ信号C
Rとが入力されている。入力レジスタ112は、最長符
号長に対応した16ビット構成であり、桁上げ信号CR
が“1”の場合に、バッファ101が出力している16
ビットの入力データをその次のサイクルで取り込む。In FIG. 1, a buffer 101 stores a bit stream and a carry signal C output from an adder 114.
R has been input. The input register 112 has a 16-bit configuration corresponding to the longest code length, and has a carry signal CR.
Is "1", the buffer 101 outputs 16
The input data of the bit is taken in the next cycle.
【0046】バッファ101は、入力されたビットスト
リームを格納し、桁上げ信号CRが“1”の場合には、
その次のサイクルにおいて、格納しているビットストリ
ームを16ビット単位でバレルシフタ111及び入力レ
ジスタ112に出力する。バッファ101は、その出力
を1サイクルの間保持する。The buffer 101 stores the input bit stream, and when the carry signal CR is “1”,
In the next cycle, the stored bit stream is output to the barrel shifter 111 and the input register 112 in 16-bit units. Buffer 101 holds its output for one cycle.
【0047】バレルシフタ111には、累算レジスタ1
15が出力する剰余RM(値:0〜15)(剰余RMが
取り得る値を示す、以下同様)がシフト入力の値として
入力されている。バレルシフタ111は、このシフト入
力の値に1を加えた値をシフト量SH1(値:1〜1
6)として用い、入力レジスタ112の出力を上位16
ビットとして、バッファ101の出力を下位16ビット
として連結した32ビットのデータのうち、(SH1+
1)ビット目〜(SH1+16)ビット目の16ビット
のデータをバレルシフタ121に出力する。ここで、連
結して得られた32ビットのデータの最上位ビットを1
ビット目としている。したがって、バレルシフタ111
は、ビットストリームの連続する長さ32ビット(2N
ビット)のデータのうち、シフト入力の値Mに応じて
(M+2)番目のビットから連続する長さ16ビット
(Nビット)のデータを取り出して出力することにな
る。The barrel shifter 111 has an accumulation register 1
The remainder RM (value: 0 to 15) output by 15 (indicating a possible value of the remainder RM, the same applies hereinafter) is input as a shift input value. The barrel shifter 111 adds a value obtained by adding 1 to the value of the shift input to the shift amount SH1 (value: 1 to 1).
6), and the output of the input register 112 is
Out of the 32-bit data obtained by concatenating the output of the buffer 101 as the lower 16 bits, (SH1 +
1) The 16-bit data of the (SH1 + 16) th bit is output to the barrel shifter 121. Here, the most significant bit of the 32-bit data obtained by concatenation is 1
It is a bit. Therefore, barrel shifter 111
Is a continuous bit length of 32 bits (2N
In this case, 16-bit (N-bit) data that is continuous from the (M + 2) -th bit is extracted and output from the (M) data in accordance with the value M of the shift input.
【0048】バレルシフタレジスタ122は、最長符号
長に対応して16ビットのデータを格納することができ
るようになっており、格納しているデータをバレルシフ
タ121及びLUT124に出力する。The barrel shifter register 122 can store 16-bit data corresponding to the longest code length, and outputs the stored data to the barrel shifter 121 and the LUT 124.
【0049】LUT124は、バレルシフタレジスタ1
22の出力に対して復号化を行い、得られた復号結果D
Cを出力するとともに、復号化された符号語の符号長C
L(値:1〜16)をバレルシフタ121及び加算器1
14に出力する。LUT124には、符号語の先頭のビ
ットが最上位のビットとして入力されるようになってい
る。LUT124は、可変長の各符号語に対応した、復
号結果及び符号長を有するテーブルであり、入力された
符号語とテーブル内の符号語とを上位のビットから順に
照合し、一致するパターンがある場合に、その符号語に
対応する復号結果DC及び符号長CLを出力する。LU
T124は、例えばROM(read-onlymemory)や論理
回路で構成することができる。The LUT 124 is a barrel shifter register 1
22 is decoded, and the obtained decoding result D
C and outputs the code length C of the decoded codeword.
L (value: 1 to 16) is calculated by the barrel shifter 121 and the adder 1
14 is output. To the LUT 124, the first bit of the code word is input as the most significant bit. The LUT 124 is a table having a decoding result and a code length corresponding to each variable-length codeword. The input codeword and the codeword in the table are collated in order from the most significant bit, and there is a matching pattern. In this case, a decoding result DC and a code length CL corresponding to the code word are output. LU
T124 can be constituted by, for example, a ROM (read-only memory) or a logic circuit.
【0050】バレルシフタ121には、LUT124が
出力する符号長CL(値:1〜16)がシフト入力の値
として入力されている。バレルシフタ121は、このシ
フト入力の値をシフト量SH2(値:1〜16)として
用い、バレルシフタレジスタ122の出力を上位16ビ
ットとして、バレルシフタ111の出力を下位16ビッ
トとして連結した32ビットのデータのうち、(SH2
+1)ビット目〜(SH2+16)ビット目までの16
ビットのデータをシフト結果として出力する。ここで、
連結して得られた32ビットのデータの最上位ビットを
1ビット目としている。したがって、バレルシフタ12
1は、ビットストリームの連続する長さ32ビット(2
Nビット)のデータのうち、シフト入力の値Lに応じて
(L+1)番目のビットから連続する長さ16ビット
(Nビット)のデータを取り出して出力することにな
る。バレルシフタ121は、このシフト結果をバレルシ
フタレジスタ122に書き込む。A code length CL (value: 1 to 16) output from the LUT 124 is input to the barrel shifter 121 as a shift input value. The barrel shifter 121 uses this shift input value as a shift amount SH2 (value: 1 to 16), and outputs 32-bit data obtained by concatenating the output of the barrel shifter register 122 as the upper 16 bits and the output of the barrel shifter 111 as the lower 16 bits. Of which, (SH2
16 from the (+1) th bit to the (SH2 + 16) th bit
Outputs bit data as a shift result. here,
The most significant bit of the 32-bit data obtained by concatenation is the first bit. Therefore, the barrel shifter 12
1 is a continuous bit length of 32 bits (2 bits
Of the (N bits) data, 16-bit (N bits) continuous data is extracted from the (L + 1) th bit and output according to the value L of the shift input. The barrel shifter 121 writes this shift result in the barrel shifter register 122.
【0051】加算器114は、LUT124が出力する
符号長CL(値:1〜16)と累算レジスタ115が出
力する剰余RM(値:0〜15)とを加算し、加算結果
SMを出力する。加算器114は、加算結果SMのう
ち、桁上げ信号CRをバッファ101及び入力レジスタ
112に出力し、剰余RM(値:0〜15)を累算レジ
スタ115に書き込む。The adder 114 adds the code length CL (value: 1 to 16) output from the LUT 124 and the remainder RM (value: 0 to 15) output from the accumulation register 115, and outputs an addition result SM. . The adder 114 outputs the carry signal CR of the addition result SM to the buffer 101 and the input register 112, and writes the remainder RM (value: 0 to 15) to the accumulation register 115.
【0052】桁上げ信号CRは、加算結果SMが16〜
31の場合に1となる信号(加算結果SMを最長符号長
16で割った商)である。剰余RMは、加算結果SMを
最長符号長16で割った余り(加算結果SMの最長符号
長16を法とする剰余)である。したがって、剰余RM
は、復号化した符号語の符号長の累積値を、最長符号長
で割って得られる剰余に等しい。The carry signal CR indicates that the addition result SM is 16 to
It is a signal that becomes 1 in the case of 31 (a quotient obtained by dividing the addition result SM by the longest code length of 16). The remainder RM is a remainder obtained by dividing the addition result SM by the longest code length 16 (the remainder obtained by modulating the longest code length 16 of the addition result SM). Therefore, the residual RM
Is equal to the remainder obtained by dividing the accumulated value of the code lengths of the decoded code words by the longest code length.
【0053】より具体的には、5ビットで表された符号
長CLと、累算レジスタ115の出力である4ビットで
表された剰余RMとの加算によって得られた5ビットの
加算結果SMのうち、最上位ビットが桁上げ信号CRと
なり、残り4ビットが加算結果SMの16を法とする新
たな剰余RMとなる。More specifically, a 5-bit addition result SM obtained by adding a code length CL represented by 5 bits and a remainder RM represented by 4 bits output from the accumulation register 115 is obtained. Of these, the most significant bit becomes the carry signal CR, and the remaining four bits become a new remainder RM modulo 16 of the addition result SM.
【0054】図3は、図1の可変長復号化回路における
サイクル毎のデータフローの例を示す説明図である。入
力ビットストリームは、図2のように連なったものであ
るとする。FIG. 3 is an explanatory diagram showing an example of a data flow for each cycle in the variable length decoding circuit of FIG. It is assumed that the input bit stream is continuous as shown in FIG.
【0055】図3において、初期状態としてのデータを
各レジスタに設定するために、次のように初期条件が設
定されている。すなわち、第0〜第1サイクルの桁上げ
信号CR、第0〜第1サイクルのバレルシフタ111の
シフト量SH1、及び第0サイクルのバレルシフタ12
1のシフト量SH2としては、それぞれ、“1”,“1
6”及び“16”を用いる。また、第0サイクルでバッ
ファ101は出力を行い、第0〜1サイクルにおける累
算レジスタ115の出力は“15”であるとする。以
下、図3等において、データ“x”はどのようなデータ
であってもよいことを示す。以下、図3に基づいて図1
の可変長復号化回路の動作を説明する。In FIG. 3, in order to set data as an initial state in each register, initial conditions are set as follows. That is, the carry signal CR in the 0th to first cycles, the shift amount SH1 of the barrel shifter 111 in the 0th to 1st cycles, and the barrel shifter 12 in the 0th cycle.
The shift amount SH2 of “1” is “1” and “1”, respectively.
6 "and" 16 ". The buffer 101 performs the output in the 0th cycle, and the output of the accumulation register 115 is" 15 "in the 0th to 1st cycles. The data "x" indicates that it may be any data, and the data "x" will be described below with reference to FIG.
The operation of the variable length decoding circuit of FIG.
【0056】<第0サイクル>初期条件により、バッフ
ァ101の出力はa1−a8b1−b6c1−c2とな
る。初期条件のバレルシフタ111のシフト量SH1の
値“16”、バレルシフタ121のシフト量SH2の値
“16”に従って、バレルシフタ111の出力はa1−
a8b1−b6c1−c2となり、バレルシフタ121
の出力もa1−a8b1−b6c1−c2となる。桁上
げ信号CRの値は、初期条件から“1”とされる。<0th cycle> The output of the buffer 101 is a1-a8b1-b6c1-c2 according to the initial condition. According to the value “16” of the shift amount SH1 of the barrel shifter 111 and the value “16” of the shift amount SH2 of the barrel shifter 121 in the initial condition, the output of the barrel shifter 111 is a1−
a8b1-b6c1-c2, and the barrel shifter 121
Are also a1-a8b1-b6c1-c2. The value of the carry signal CR is set to “1” from the initial condition.
【0057】<第1サイクル>第0サイクルにおける桁
上げ信号CRの値“1”に従って、入力レジスタ112
はバッファ101の出力a1−a8b1−b6c1−c
2を取り込み、バッファ101の出力はc3−c5d1
−d13となる。<First Cycle> The input register 112 according to the value "1" of the carry signal CR in the 0th cycle.
Is the output a1-a8b1-b6c1-c of the buffer 101
2 and the output of the buffer 101 is c3-c5d1
−d13.
【0058】バレルシフタレジスタ122は、バレルシ
フタ121が出力するa1−a8b1−b6c1−c2
を取り込む。初期条件であるバレルシフタ111のシフ
ト量SH1の値“16”に従って、バレルシフタ111
はc3−c5d1−d13を出力する。バレルシフタレ
ジスタ122の出力a1−a8b1−b6c1−c2に
従って、LUT124の復号結果は“A”となり、LU
T124が出力する符号長CLは“8”となる。符号長
CLの値“8”に従って、バレルシフタ121はb1−
b6c1−c5d1−d5を出力する。The barrel shifter register 122 outputs a1-a8b1-b6c1-c2 output from the barrel shifter 121.
Take in. According to the value “16” of the shift amount SH1 of the barrel shifter 111 which is the initial condition, the barrel shifter 111
Outputs c3-c5d1-d13. According to the output a1-a8b1-b6c1-c2 of the barrel shifter register 122, the decoding result of the LUT 124 becomes "A", and the LU
The code length CL output by T124 is "8". According to the value “8” of the code length CL, the barrel shifter 121 sets b1-
b6c1-c5d1-d5 are output.
【0059】初期条件により、加算器114は符号長C
Lの値“8”と累算レジスタ115の出力“15”との
加算結果SMの値“23”を出力する。桁上げ信号CR
の値は“1”、剰余RMは“7”となる。According to the initial condition, the adder 114 has a code length C
The value “23” of the addition result SM of the value “8” of L and the output “15” of the accumulation register 115 is output. Carry signal CR
Is “1”, and the remainder RM is “7”.
【0060】<第2サイクル>第1サイクルにおける桁
上げ信号CRの値“1”に従って、入力レジスタ112
はバッファ101の出力c3−c5d1−d13を取り
込み、バッファ101の出力はd14−d15e1−e
12f1−f2となる。<Second cycle> The input register 112 according to the value "1" of the carry signal CR in the first cycle.
Captures the output c3-c5d1-d13 of the buffer 101, and outputs d14-d15e1-e of the buffer 101.
12f1−f2.
【0061】バレルシフタレジスタ122は、バレルシ
フタ121が出力するb1−b6c1−c5d1−d5
を取り込み、累算レジスタ115は、剰余RMの値
“7”を取り込む。バレルシフタ111のシフト量SH
1の値“8”に従って、バレルシフタ111はd6−d
15e1−e6を出力する。バレルシフタレジスタ12
2の出力b1−b6c1−c5d1−d5に従って、L
UT124の復号結果は“B”となり、LUT124が
出力する符号長CLは“6”となる。符号長CLの値
“6”に従って、バレルシフタ121はc1−c5d1
−d11を出力する。The barrel shifter register 122 outputs b1-b6c1-c5d1-d5 output from the barrel shifter 121.
, And the accumulation register 115 captures the value “7” of the remainder RM. Shift amount SH of barrel shifter 111
According to the value “8” of 1, the barrel shifter 111 sets d6−d
15e1-e6 are output. Barrel shifter register 12
2 according to the output b1-b6c1-c5d1-d5.
The decoding result of the UT 124 is “B”, and the code length CL output by the LUT 124 is “6”. According to the value “6” of the code length CL, the barrel shifter 121 performs c1-c5d1
-D11 is output.
【0062】加算器114は、符号長CLの値“6”と
累算レジスタ115の出力“7”との加算結果SMの値
“13”を出力し、桁上げ信号CRは“0”、剰余RM
は“13”となる。The adder 114 outputs a value “13” of the addition result SM between the value “6” of the code length CL and the output “7” of the accumulation register 115, the carry signal CR is “0”, and the remainder is RM
Becomes “13”.
【0063】<第3サイクル>第3サイクルでは、第2
サイクルで得られた桁上げ信号CRの値“0”に従っ
て、入力レジスタ112、及びバッファ101の出力は
更新されない。<Third Cycle> In the third cycle, the second cycle
In accordance with the value “0” of the carry signal CR obtained in the cycle, the outputs of the input register 112 and the buffer 101 are not updated.
【0064】バレルシフタレジスタ122は、バレルシ
フタ121が出力するc1−c5d1−d11を取り込
み、累算レジスタ115は、剰余RMの値“13”を取
り込む。バレルシフタ111のシフト量SH1の値“1
4”に従って、バレルシフタ111はd12−d15e
1−e12を出力する。バレルシフタレジスタ122の
出力c1−c5d1−d11に従って、LUT124の
復号結果は“C”となり、LUT124が出力する符号
長CLは“5”となる。The barrel shifter register 122 takes in c1-c5d1-d11 output from the barrel shifter 121, and the accumulation register 115 takes in the value "13" of the remainder RM. The value “1” of the shift amount SH1 of the barrel shifter 111
According to 4 ", the barrel shifter 111 is d12-d15e.
1-e12 is output. According to the outputs c1-c5d1-d11 of the barrel shifter register 122, the decoding result of the LUT 124 is "C", and the code length CL output from the LUT 124 is "5".
【0065】符号長CLの値“5”に従って、バレルシ
フタ121はd1−d15e1を出力する。加算器11
4は、符号長CLの値“5”と累算レジスタ115の出
力“13”との加算結果SMの値“18”を出力し、桁
上げ信号CRは“1”、剰余は“2”となる。According to the value “5” of the code length CL, the barrel shifter 121 outputs d1-d15e1. Adder 11
4 outputs a value "18" of the addition result SM of the value "5" of the code length CL and the output "13" of the accumulation register 115, the carry signal CR is "1", and the remainder is "2". Become.
【0066】次の第4サイクルにおいて、第3サイクル
で得られた桁上げ信号CRの値“1”に従って、入力レ
ジスタ112はd14−d15e1−e12f1−f2
を取り込み、バッファ101の出力はf3−f10g1
−g8となる。In the next fourth cycle, the input register 112 sets d14-d15e1-e12f1-f2 according to the value "1" of the carry signal CR obtained in the third cycle.
And the output of the buffer 101 is f3-f10g1
−g8.
【0067】以降、図1の可変長復号化回路は、第2サ
イクル及び第3サイクルと同様に動作する。ただし、バ
ッファ出力及び入力レジスタは、前のサイクルで得られ
た桁上げ信号CRが“1”となる場合は更新され、
“0”となる場合は更新されない。Thereafter, the variable length decoding circuit of FIG. 1 operates similarly to the second cycle and the third cycle. However, the buffer output and input registers are updated when the carry signal CR obtained in the previous cycle becomes “1”,
If it becomes "0", it is not updated.
【0068】このようにして第1サイクル以降、可変長
復号した結果を毎サイクル出力することができる。特に
復号化開始時において、入力バッファ101が最初にデ
ータを出力する第0サイクルから1サイクル後の第1サ
イクルで、最初の復号化出力が得られる。As described above, after the first cycle, the result of variable length decoding can be output every cycle. In particular, at the start of decoding, the first decoded output is obtained in the first cycle one cycle after the 0th cycle in which the input buffer 101 outputs data first.
【0069】以上のように、第1の実施形態によると、
図11の従来の回路と比べて、16ビットの入力レジス
タの数を2個から1個に削減でき、48ビット入力16
ビット出力のバレルシフタの代わりに32ビット入力1
6ビット出力のバレルシフタを備えれば済む。また、復
号化開始時に、入力バッファがデータを出力してから復
号化出力が得られるまでに必要なサイクル数が、2サイ
クルであったのが1サイクルとなる。As described above, according to the first embodiment,
Compared with the conventional circuit of FIG. 11, the number of 16-bit input registers can be reduced from two to one, and a 48-bit input 16
32 bit input 1 instead of bit output barrel shifter
It is only necessary to provide a barrel shifter with a 6-bit output. Also, at the start of decoding, the number of cycles required from the time when the input buffer outputs data to the time when a decoded output is obtained is one cycle instead of two.
【0070】また、図11の従来の回路では2個のバレ
ルシフタレジスタ及びシフト量レジスタが必要であった
が、第1の実施形態によると、これらのレジスタの代わ
りにバレルシフタレジスタ1個を備えればよく、レジス
タ数を削減することができる。Although the conventional circuit of FIG. 11 requires two barrel shifter registers and a shift amount register, according to the first embodiment, if one barrel shifter register is provided instead of these registers. Often, the number of registers can be reduced.
【0071】(第1の実施形態の変形例)図4は、第1
の実施形態の変形例に係る可変長復号化回路のブロック
図である。図4の可変長復号化回路は、図1の可変長復
号化回路において、復号化部120の代わりに復号化部
140を備えている。復号化部140は、復号化部12
0において、バレルシフタ121の代わりにバレルシフ
タ141を備えている。また、復号化部140は、符号
長CLを入力とし、これを変換した値を符号長CLの代
わりにバレルシフタ141に出力する符号長変換回路1
46を更に備えている。その他の構成要素については、
図1を参照して説明したものと同じなので、その説明を
省略する。(Modification of First Embodiment) FIG.
FIG. 21 is a block diagram of a variable-length decoding circuit according to a modification of the embodiment. The variable length decoding circuit in FIG. 4 includes a decoding unit 140 instead of the decoding unit 120 in the variable length decoding circuit in FIG. The decoding unit 140 includes the decoding unit 12
0, a barrel shifter 141 is provided instead of the barrel shifter 121. The decoding unit 140 receives the code length CL as an input, and outputs the converted value to the barrel shifter 141 instead of the code length CL.
46 is further provided. For other components,
The description is omitted because it is the same as that described with reference to FIG.
【0072】図5は、符号長変換回路146についての
説明図である。符号長変換回路146は、LUT124
が出力する5ビットで表される符号長CL(値:1〜1
6)を入力とし、これから1を減じた値(値:0〜1
5)を出力する回路である。符号長変換回路146は、
具体的には、値“1”を減算する回路やROMなどで実
現することができる。FIG. 5 is an explanatory diagram of the code length conversion circuit 146. The code length conversion circuit 146 includes the LUT 124
Is a code length CL represented by 5 bits (value: 1 to 1)
6) as an input and a value obtained by subtracting 1 from this (value: 0 to 1)
5). The code length conversion circuit 146
Specifically, it can be realized by a circuit for subtracting the value “1”, a ROM, or the like.
【0073】バレルシフタ141は、符号長変換回路1
46が出力する4ビットで表される値(0〜15)をシ
フト入力とし、このシフト入力の値に1を加算した値を
シフト量とするビットシフトを行い、シフト結果を出力
する。したがって、バレルシフタ141は、ビットスト
リームの連続する長さ32ビット(2Nビット)のデー
タのうち、シフト入力の値Lに応じて(L+2)番目の
ビットから連続する長さ16ビット(Nビット)のデー
タを取り出して出力することになる。The barrel shifter 141 has a code length conversion circuit 1
A value (0 to 15) represented by 4 bits output from 46 is set as a shift input, a bit shift is performed with a value obtained by adding 1 to the value of the shift input as a shift amount, and a shift result is output. Accordingly, the barrel shifter 141 has a 16-bit (N-bit) continuous length starting from the (L + 2) -th bit in accordance with the value L of the shift input, out of the 32-bit (2N-bit) continuous data of the bit stream. Data will be fetched and output.
【0074】バレルシフタ111とバレルシフタ141
とは、いずれも4ビットの値をシフト入力とし、16通
りのビットシフトを行うことができるバレルシフタであ
り、同じものを用いることができる。したがって、図1
の回路と比べると、回路の規則性が向上し、回路面積を
縮小することができる。The barrel shifter 111 and the barrel shifter 141
Is a barrel shifter that can perform a 16-bit shift by using a 4-bit value as a shift input, and the same can be used. Therefore, FIG.
As compared with the circuit of the above, the regularity of the circuit is improved, and the circuit area can be reduced.
【0075】(第2の実施形態)図6は、本発明の第2
の実施形態に係る可変長復号化回路のブロック図であ
る。この可変長復号化回路は最長符号長が16ビットの
可変長符号を復号化するものであるとして説明する。図
6の可変長復号化回路は、インタフェース部110と、
復号化部220とを備えている。復号化部220は、バ
レルシフタ221と、第1のバレルシフタレジスタ22
2と、第2のバレルシフタレジスタ223と、LUT2
24と、シフト量レジスタ225とを備えている。バッ
ファ101及びインタフェース部110は、図1を参照
して説明したものと同じであるので、その説明を省略す
る。(Second Embodiment) FIG. 6 shows a second embodiment of the present invention.
FIG. 14 is a block diagram of a variable-length decoding circuit according to the embodiment. The variable length decoding circuit is described as decoding a variable length code having a maximum code length of 16 bits. The variable length decoding circuit of FIG.
A decoding unit 220. The decoding unit 220 includes a barrel shifter 221 and a first barrel shifter register 22.
2, the second barrel shifter register 223, and the LUT2
24, and a shift amount register 225. The buffer 101 and the interface unit 110 are the same as those described with reference to FIG.
【0076】第1のバレルシフタレジスタ222及び第
2のバレルシフタレジスタ223は、最長符号長に対応
して16ビットのデータを格納することができるように
なっている。第1のバレルシフタレジスタ222は、バ
レルシフタ111が出力する16ビットのデータを格納
する。第1のバレルシフタレジスタ222及び第2のバ
レルシフタレジスタ223は、格納しているデータをバ
レルシフタ221に出力する。The first barrel shift register 222 and the second barrel shift register 223 can store 16-bit data corresponding to the longest code length. The first barrel shifter register 222 stores 16-bit data output by the barrel shifter 111. The first barrel shifter register 222 and the second barrel shifter register 223 output the stored data to the barrel shifter 221.
【0077】バレルシフタ221には、シフト量レジス
タ225の出力(値:1〜16)がシフト入力の値とし
て入力されている。バレルシフタ221は、このシフト
入力の値をシフト量SH3(値:1〜16)として用
い、第2のバレルシフタレジスタ223の出力を上位1
6ビットとして、第1のバレルシフタレジスタ222の
出力を下位16ビットとして連結した32ビットのデー
タのうち、(SH3+1)ビット目〜(SH3+16)
ビット目までの16ビットのデータをシフト結果として
出力する。ここで、連結して得られた32ビットのデー
タの最上位ビットを1ビット目としている。The output (value: 1 to 16) of the shift amount register 225 is input to the barrel shifter 221 as a shift input value. The barrel shifter 221 uses the value of the shift input as the shift amount SH3 (value: 1 to 16), and outputs the output of the second barrel shifter register 223 to the upper one.
Of the 32-bit data obtained by concatenating the output of the first barrel shift register 222 as the lower 16 bits as 6 bits, (SH3 + 1) th to (SH3 + 16)
The 16-bit data up to the bit is output as a shift result. Here, the most significant bit of the 32-bit data obtained by concatenation is the first bit.
【0078】したがって、バレルシフタ221は、ビッ
トストリームの連続する長さ32ビット(2Nビット)
のデータのうち、シフト入力の値Lに応じて(L+1)
番目のビットから連続する長さ16ビット(Nビット)
のデータを取り出して出力することになる。バレルシフ
タ221は、このシフト結果を第2のバレルシフタレジ
スタ223に書き込むとともに、LUT224に出力す
る。Therefore, the barrel shifter 221 has a continuous length of 32 bits (2N bits) of the bit stream.
(L + 1) in accordance with the value L of the shift input
16 bits (N bits) continuous from the first bit
Will be extracted and output. The barrel shifter 221 writes the shift result in the second barrel shifter register 223 and outputs the result to the LUT 224.
【0079】LUT224は、バレルシフタ221の出
力に対して復号化を行い、得られた復号結果DCを出力
し、復号化された符号語の符号長CL(値:1〜16)
をシフト量レジスタ225に書き込むとともに、加算器
114に出力する。LUT224は、可変長の各符号語
に対応した、復号結果及び符号長を有するテーブルであ
る。LUT224は、図1のLUT124と同様のもの
である。The LUT 224 decodes the output of the barrel shifter 221 and outputs the obtained decoding result DC. The code length CL of the decoded code word (value: 1 to 16)
Is written to the shift amount register 225 and output to the adder 114. The LUT 224 is a table having a decoding result and a code length corresponding to each variable-length code word. The LUT 224 is similar to the LUT 124 in FIG.
【0080】図7は、図6の可変長復号化回路における
サイクル毎のデータフローの例を示す説明図である。入
力ビットストリームは、第1の実施形態で説明したもの
と同様であり、図2のように連なったものであるとす
る。FIG. 7 is an explanatory diagram showing an example of a data flow for each cycle in the variable length decoding circuit of FIG. The input bit stream is the same as that described in the first embodiment, and is assumed to be continuous as shown in FIG.
【0081】図7において、初期状態としてのデータを
各レジスタに設定するために、次のように初期条件が設
定されている。すなわち、第0〜第1サイクルの桁上げ
信号CR、第0〜第1サイクルのバレルシフタ111の
シフト量SH1、及び第1サイクルのバレルシフタ22
1のシフト量SH3としては、それぞれ、“1”,“1
6”及び“16”を用いる。また、第0サイクルでバッ
ファ101は出力を行い、第0〜1サイクルにおける累
算レジスタ115の出力は“15”であるとする。以
下、図7に基づいて図6の可変長復号化回路の動作を説
明する。In FIG. 7, initial conditions are set as follows in order to set data as an initial state in each register. That is, the carry signal CR of the 0th to 1st cycles, the shift amount SH1 of the barrel shifter 111 of the 0th to 1st cycles, and the barrel shifter 22 of the 1st cycle
The shift amount SH3 of “1” is “1” and “1”, respectively.
6 "and" 16 ". The buffer 101 performs the output in the 0th cycle, and the output of the accumulation register 115 in the 0th to 1st cycles is" 15 ". The operation of the variable length decoding circuit shown in FIG. 6 will be described.
【0082】<第0サイクル>初期条件により、バッフ
ァ101の出力はa1−a8b1−b6c1−c2とな
る。初期条件のバレルシフタ111のシフト量SH1の
値“16”に従って、バレルシフタ111の出力はa1
−a8b1−b6c1−c2となる。桁上げ信号CRの
値は、初期条件から“1”とされる。<0th cycle> The output of the buffer 101 is a1-a8b1-b6c1-c2 according to the initial condition. The output of the barrel shifter 111 is a1 according to the value “16” of the shift amount SH1 of the barrel shifter 111 in the initial condition.
-A8b1-b6c1-c2. The value of the carry signal CR is set to “1” from the initial condition.
【0083】<第1サイクル>第0サイクルにおける桁
上げ信号CRの値“1”に従って、入力レジスタ112
はバッファ101の出力a1−a8b1−b6c1−c
2を取り込み、バッファ101の出力はc3−c5d1
−d13となる。<First Cycle> According to the value "1" of the carry signal CR in the 0th cycle, the input register 112
Is the output a1-a8b1-b6c1-c of the buffer 101
2 and the output of the buffer 101 is c3-c5d1
−d13.
【0084】第1のバレルシフタレジスタ222は、バ
レルシフタ111が出力するa1−a8b1−b6c1
−c2を取り込む。初期条件であるバレルシフタ111
のシフト量SH1の値“16”に従って、バレルシフタ
111はc3−c5d1−d13を出力する。初期条件
であるバレルシフタ221のシフト量SH3の値“1
6”に従って、バレルシフタ221はa1−a8b1−
b6c1−c2を出力する。バレルシフタ221の出力
a1−a8b1−b6c1−c2に従って、LUT22
4の復号結果は“A”となり、LUT224が出力する
符号長CLは“8”となる。The first barrel shifter register 222 outputs a1-a8b1-b6c1 output from the barrel shifter 111.
-Import c2. Barrel shifter 111 as initial condition
The barrel shifter 111 outputs c3-c5d1-d13 according to the shift value SH1 of "16". The value “1” of the shift amount SH3 of the barrel shifter 221 which is the initial condition
6 ", the barrel shifter 221 has a1-a8 b1-
b6c1-c2 is output. According to the output a1-a8b1-b6c1-c2 of the barrel shifter 221, the LUT 22
4 is "A", and the code length CL output from the LUT 224 is "8".
【0085】初期条件により、加算器114は符号長C
Lの値“8”と累算レジスタ115の出力“15”との
加算結果SMの値“23”を出力する。桁上げ信号CR
の値は“1”、剰余RMは“7”となる。According to the initial condition, the adder 114 has a code length C
The value “23” of the addition result SM of the value “8” of L and the output “15” of the accumulation register 115 is output. Carry signal CR
Is “1”, and the remainder RM is “7”.
【0086】<第2サイクル>第1サイクルにおける桁
上げ信号CRの値“1”に従って、入力レジスタ112
はバッファ101の出力c3−c5d1−d13を取り
込み、バッファ101の出力はd14−d15e1−e
12f1−f2となる。<Second cycle> The input register 112 according to the value "1" of the carry signal CR in the first cycle
Captures the output c3-c5d1-d13 of the buffer 101, and outputs d14-d15e1-e of the buffer 101.
12f1−f2.
【0087】第1のバレルシフタレジスタ222は、バ
レルシフタ111が出力するc3−c5d1−d13を
取り込み、第2のバレルシフタレジスタ223は、バレ
ルシフタ221が出力するa1−a8b1−b6c1−
c2を取り込む。シフト量レジスタ225は符号長CL
の値“8”を取り込み、累算レジスタ115は剰余RM
の値“7”を取り込む。The first barrel shifter register 222 takes in c3-c5d1-d13 output from the barrel shifter 111, and the second barrel shifter register 223 outputs a1-a8b1-b6c1- output from the barrel shifter 221.
Capture c2. The shift amount register 225 has a code length CL
, And the accumulation register 115 stores the remainder RM
The value “7” is taken in.
【0088】バレルシフタ111のシフト量SH1の値
“8”に従って、バレルシフタ111はd6−d15e
1−e6を出力する。シフト量レジスタ225が出力す
るシフト量SH3の値“8”に従って、バレルシフタ2
21はb1−b6c1−c5d1−d5を出力する。バ
レルシフタ221の出力b1−b6c1−c5d1−d
5に従って、LUT224の復号結果は“B”となり、
LUT224が出力する符号長CLは“6”となる。According to the value “8” of the shift amount SH1 of the barrel shifter 111, the barrel shifter 111 sets d6−d15e.
1-e6 is output. According to the value “8” of the shift amount SH3 output from the shift amount register 225, the barrel shifter 2
21 outputs b1-b6c1-c5d1-d5. Outputs b1-b6c1-c5d1-d of barrel shifter 221
5, the decoding result of the LUT 224 becomes “B”,
The code length CL output from the LUT 224 is “6”.
【0089】加算器114は、符号長CLの値“6”と
累算レジスタ115の出力“7”との加算結果SMの値
“13”を出力し、桁上げ信号CRは“0”、剰余RM
は“13”となる。The adder 114 outputs a value “13” of the addition result SM of the value “6” of the code length CL and the output “7” of the accumulation register 115, the carry signal CR is “0”, and the remainder is RM
Becomes “13”.
【0090】<第3サイクル>第3サイクルでは、第2
サイクルで得られた桁上げ信号CRの値“0”に従っ
て、入力レジスタ112、及びバッファ101の出力は
更新されない。<Third cycle> In the third cycle, the second cycle
In accordance with the value “0” of the carry signal CR obtained in the cycle, the outputs of the input register 112 and the buffer 101 are not updated.
【0091】第1のバレルシフタレジスタ222は、バ
レルシフタ111が出力するd6−d15e1−e6を
取り込み、第2のバレルシフタレジスタ223は、バレ
ルシフタ221が出力するb1−b6c1−c5d1−
d5を取り込む。シフト量レジスタ225は符号長CL
の値“6”を取り込み、累算レジスタ115は剰余RM
の値“13”を取り込む。The first barrel shifter register 222 takes in d6-d15e1-e6 output from the barrel shifter 111, and the second barrel shifter register 223 outputs b1-b6c1-c5d1- output from the barrel shifter 221.
Capture d5. The shift amount register 225 has a code length CL
, And the accumulation register 115 stores the remainder RM
The value “13” is taken in.
【0092】バレルシフタ111のシフト量SH1の値
“14”に従って、バレルシフタ111はd12−d1
5e1−e12を出力する。シフト量レジスタ225が
出力するシフト量SH3の値“6”に従って、バレルシ
フタ221はc1−c51−d11を出力する。バレル
シフタ221の出力c1−c5d1−d11に従って、
LUT224の復号結果は“C”となり、LUT224
が出力する符号長CLは“5”となる。In accordance with the value “14” of the shift amount SH1 of the barrel shifter 111, the barrel shifter 111 sets d12−d1.
5e1-e12 are output. According to the value “6” of the shift amount SH3 output from the shift amount register 225, the barrel shifter 221 outputs c1-c51-d11. According to the output c1-c5d1-d11 of the barrel shifter 221,
The decoding result of the LUT 224 is “C”, and the LUT 224
Is "5".
【0093】加算器114は、符号長CLの値“5”と
累算レジスタ115の出力“13”との加算結果SMの
値“18”を出力し、桁上げ信号CRは“1”、剰余R
Mは“2”となる。The adder 114 outputs a value “18” of the addition result SM between the value “5” of the code length CL and the output “13” of the accumulation register 115, the carry signal CR is “1”, and the remainder is R
M becomes "2".
【0094】次の第4サイクルにおいて、第3サイクル
で得られた桁上げ信号CRの値“1”に従って、入力レ
ジスタ112はd14−d15e1−e12f1−f2
を取り込み、バッファ101の出力はf3−f10g1
−g8となる。In the next fourth cycle, the input register 112 sets d14-d15e1-e12f1-f2 according to the value "1" of the carry signal CR obtained in the third cycle.
And the output of the buffer 101 is f3-f10g1
−g8.
【0095】以降、図6の可変長復号化回路は、第2サ
イクル及び第3サイクルと同様に動作する。ただし、バ
ッファ出力及び入力レジスタは、前のサイクルで得られ
た桁上げ信号CRが“1”となる場合は更新され、
“0”となる場合は更新されない。Thereafter, the variable length decoding circuit of FIG. 6 operates similarly to the second and third cycles. However, the buffer output and input registers are updated when the carry signal CR obtained in the previous cycle becomes “1”,
If it becomes "0", it is not updated.
【0096】このようにして第1サイクル以降、可変長
復号した結果を毎サイクル出力することができる。特に
復号化開始時において、入力バッファ101が最初にデ
ータを出力する第0サイクルから1サイクル後の第1サ
イクルで、最初の復号化出力が得られる。Thus, after the first cycle, the result of variable length decoding can be output every cycle. In particular, at the start of decoding, the first decoded output is obtained in the first cycle one cycle after the 0th cycle in which the input buffer 101 outputs data first.
【0097】(第2の実施形態の変形例)図8は、第2
実施形態の変形例に係る可変長復号化回路のブロック図
である。図8の可変長復号化回路は、図6の可変長復号
化回路において、復号化部220の代わりに復号化部2
40を備えている。復号化部240は、復号化部220
において、バレルシフタ221の代わりにバレルシフタ
241を備えている。また、復号化部240は、符号長
CLを入力とし、これを変換した値を符号長CLの代わ
りにシフト量レジスタ225に出力する符号長変換回路
146を更に備えている。その他の構成要素について
は、図6を参照して説明したものと同じであり、符号長
変換回路146は、図5を参照して説明したものと同じ
であるので、その説明を省略する。(Modification of Second Embodiment) FIG.
It is a block diagram of a variable length decoding circuit according to a modification of the embodiment. The variable length decoding circuit shown in FIG. 8 is different from the variable length decoding circuit shown in FIG.
40 is provided. The decoding unit 240
, A barrel shifter 241 is provided instead of the barrel shifter 221. The decoding unit 240 further includes a code length conversion circuit 146 that receives the code length CL and outputs a value obtained by converting the code length CL to the shift amount register 225 instead of the code length CL. The other components are the same as those described with reference to FIG. 6, and the code length conversion circuit 146 is the same as that described with reference to FIG.
【0098】バレルシフタ241は、符号長変換回路1
46が符号長CLを変換して生成した4ビットで表され
る値(0〜15)をシフト入力とし、このシフト入力の
値に1を加算した値をシフト量とするビットシフトを行
い、シフト結果を出力する。したがって、バレルシフタ
241は、ビットストリームの連続する長さ32ビット
(2Nビット)のデータのうち、シフト入力の値Lに応
じて(L+2)番目のビットから連続する長さ16ビッ
ト(Nビット)のデータを取り出して出力することにな
る。The barrel shifter 241 has a code length conversion circuit 1
Reference numeral 46 designates a value (0 to 15) represented by 4 bits generated by converting the code length CL as a shift input, and performs a bit shift using a value obtained by adding 1 to the value of the shift input as a shift amount. Output the result. Therefore, the barrel shifter 241 has a continuous length of 16 bits (N bits) from the (L + 2) th bit in accordance with the value L of the shift input, out of the continuous length of 32 bits (2N bits) of the bit stream. Data will be fetched and output.
【0099】バレルシフタ111とバレルシフタ241
とは、いずれも4ビットの値をシフト入力とし、16通
りのビットシフトを行うことができるバレルシフタであ
り、同じものを用いることができる。したがって、図6
の回路と比べると、回路の規則性が向上し、回路面積を
縮小することができる。The barrel shifter 111 and the barrel shifter 241
Is a barrel shifter that can perform a 16-bit shift by using a 4-bit value as a shift input, and the same can be used. Therefore, FIG.
As compared with the circuit of the above, the regularity of the circuit is improved, and the circuit area can be reduced.
【0100】なお、図8の回路では、符号長変換回路1
46に符号長CLを出力し、符号長変換回路146の出
力をシフト量レジスタ225に与えるようにしている
が、符号長変換回路146をシフト量レジスタ225と
バレルシフタ241との間に備えるようにしてもよい。In the circuit of FIG. 8, the code length conversion circuit 1
Although the code length CL is output to 46 and the output of the code length conversion circuit 146 is given to the shift amount register 225, the code length conversion circuit 146 is provided between the shift amount register 225 and the barrel shifter 241. Is also good.
【0101】(第3の実施形態)図9は、本発明の第3
の実施形態に係る可変長復号化回路のブロック図であ
る。図9の可変長復号化回路は、インタフェース部31
0と、復号化部320とを備えている。インタフェース
部310は、バレルシフタ311と、入力レジスタ31
2と、加算器314と、累算レジスタ315とを備えて
いる。復号化部320は、バレルシフタ321と、バレ
ルシフタレジスタ322と、LUT324とを備えてい
る。(Third Embodiment) FIG. 9 shows a third embodiment of the present invention.
FIG. 14 is a block diagram of a variable-length decoding circuit according to the embodiment. The variable length decoding circuit shown in FIG.
0 and a decoding unit 320. The interface unit 310 includes a barrel shifter 311 and an input register 31.
2, an adder 314, and an accumulation register 315. The decoding unit 320 includes a barrel shifter 321, a barrel shifter register 322, and an LUT 324.
【0102】図9の可変長復号化回路は、図1の可変長
復号化回路において、加算器114、バレルシフタ12
1及びLUT124の代わりに、加算器314、バレル
シフタ321及びLUT324を備えたものである。図
9の可変長復号化回路は、復号化した符号語の実際の符
号長(1〜16)を、これから1を減じた値(0〜1
5)で表現する点に特徴がある。The variable length decoding circuit shown in FIG. 9 differs from the variable length decoding circuit shown in FIG.
In this embodiment, an adder 314, a barrel shifter 321 and an LUT 324 are provided instead of the 1 and the LUT 124. The variable length decoding circuit in FIG. 9 calculates the actual code length (1 to 16) of the decoded code word by subtracting 1 from this (0 to 1).
There is a characteristic in that it is expressed in 5).
【0103】図9において、バッファ101には、ビッ
トストリームと、加算器314が出力する桁上げ信号C
Rとが入力されている。入力レジスタ312は、最長符
号長に対応した16ビット構成であり、桁上げ信号CR
が“1”の場合に、バッファ101が出力している16
ビットの入力データをその次のサイクルで取り込む。In FIG. 9, a buffer 101 stores a bit stream and a carry signal C output from an adder 314.
R has been input. The input register 312 has a 16-bit configuration corresponding to the longest code length, and has a carry signal CR.
Is "1", the buffer 101 outputs 16
The input data of the bit is taken in the next cycle.
【0104】バッファ101は、入力されたビットスト
リームを格納し、桁上げ信号CRが“1”の場合に、そ
の次のサイクルにおいて、格納しているビットストリー
ムを16ビット単位でバレルシフタ311及び入力レジ
スタ312に出力する。バッファ101は、その出力を
1サイクルの間保持する。The buffer 101 stores the input bit stream, and when the carry signal CR is “1”, in the next cycle, stores the stored bit stream in units of 16 bits in the barrel shifter 311 and the input register. 312. Buffer 101 holds its output for one cycle.
【0105】バレルシフタ311には、累算レジスタ3
15が出力する剰余RM(値:0〜15)がシフト入力
の値として入力されている。バレルシフタ311は、こ
のシフト入力の値に1を加えた値をシフト量SH4
(値:1〜16)として用い、入力レジスタ312の出
力を上位16ビットとして、バッファ101の出力を下
位16ビットとして連結した32ビットのデータのう
ち、(SH4+1)ビット目〜(SH4+16)ビット
目の16ビットのデータをバレルシフタ321に出力す
る。ここで、連結して得られた32ビットのデータの最
上位ビットを1ビット目としている。The barrel shifter 311 has an accumulation register 3
The remainder RM (values: 0 to 15) output by 15 is input as a shift input value. The barrel shifter 311 adds a value obtained by adding 1 to the value of the shift input to the shift amount SH4
(SH4 + 1) th to (SH4 + 16) bits of the 32-bit data obtained by concatenating the output of the input register 312 as the upper 16 bits and the output of the buffer 101 as the lower 16 bits. Is output to the barrel shifter 321. Here, the most significant bit of the 32-bit data obtained by concatenation is the first bit.
【0106】バレルシフタレジスタ322は、最長符号
長に対応して16ビットのデータを格納することができ
るようになっており、格納しているデータをバレルシフ
タ321及びLUT324に出力する。The barrel shifter register 322 can store 16-bit data corresponding to the longest code length, and outputs the stored data to the barrel shifter 321 and the LUT 324.
【0107】LUT324は、バレルシフタレジスタ3
22の出力に対して復号化を行い、得られた復号結果D
Cを出力するとともに、復号化された符号語の実際の符
号長から1を減じた数を符号長CL(値:0〜15)と
してバレルシフタ321及び加算器314に出力する。
LUT324は例えば、可変長の各符号語に対応した、
復号結果及び符号長から1を減じた数を有するテーブル
である。LUT324は、図1のLUT124とは、実
際の符号長から1を減じた数を出力する点が異なり、そ
の他の点は同様である。The LUT 324 is a barrel shifter register 3
22 is decoded, and the obtained decoding result D
In addition to outputting C, the number obtained by subtracting 1 from the actual code length of the decoded codeword is output to the barrel shifter 321 and the adder 314 as a code length CL (value: 0 to 15).
The LUT 324, for example, corresponds to each variable-length codeword.
It is a table having a number obtained by subtracting 1 from the decoding result and the code length. The LUT 324 differs from the LUT 124 of FIG. 1 in that it outputs a number obtained by subtracting 1 from the actual code length, and the other points are the same.
【0108】バレルシフタ321には、LUT324が
出力する符号長CL(値:0〜15)がシフト入力とし
て入力されている。バレルシフタ321は、このシフト
入力の値に1を加えた値をシフト量SH5(値:1〜1
6)として用い、バレルシフタレジスタ322の出力を
上位16ビットとして、バレルシフタ311の出力を下
位16ビットとして連結した32ビットのデータのう
ち、(SH5+1)ビット目〜(SH5+16)ビット
目までの16ビットのデータをシフト結果として出力す
る。ここで、連結して得られた32ビットのデータの最
上位ビットを1ビット目としている。バレルシフタ32
1は、このシフト結果をバレルシフタレジスタ322に
書き込む。The code length CL (value: 0 to 15) output from the LUT 324 is input to the barrel shifter 321 as a shift input. The barrel shifter 321 adds a value obtained by adding 1 to the value of the shift input to the shift amount SH5 (value: 1 to 1).
6), the 16 bits of (SH5 + 1) th to (SH5 + 16) bits of the 32-bit data in which the output of the barrel shifter register 322 is linked to the upper 16 bits and the output of the barrel shifter 311 is linked to the lower 16 bits. Output data as shift result. Here, the most significant bit of the 32-bit data obtained by concatenation is the first bit. Barrel shifter 32
1 writes the shift result in the barrel shifter register 322.
【0109】加算器314は、LUT324が出力する
符号長CL(値:0〜15)と、累算レジスタ315が
出力する剰余RM(値:0〜15)と、定数“1”とを
加算し、加算結果SMを出力する。加算器314は、加
算結果SMのうち、桁上げ信号CRをバッファ101及
び入力レジスタ312に出力し、剰余RM(値:0〜1
5)を累算レジスタ315に書き込む。The adder 314 adds the code length CL (value: 0 to 15) output from the LUT 324, the remainder RM (value: 0 to 15) output from the accumulation register 315, and a constant “1”. , And outputs the addition result SM. The adder 314 outputs the carry signal CR of the addition result SM to the buffer 101 and the input register 312, and outputs the remainder RM (value: 0 to 1).
5) is written to the accumulation register 315.
【0110】すなわち、4ビットで表された符号長CL
と、累算レジスタ315の出力である4ビットで表され
た剰余RMと、定数“1”との加算によって得られた5
ビットの加算結果SMのうち、最上位ビットが桁上げ信
号CRとなり、残り4ビットが加算結果SMの16を法
とする新たな剰余RMとなる。That is, the code length CL represented by 4 bits
And the remainder RM expressed by 4 bits, which is the output of the accumulation register 315, and 5 obtained by adding the constant "1"
Of the bit addition result SM, the most significant bit becomes the carry signal CR, and the remaining four bits become a new remainder RM modulo 16 of the addition result SM.
【0111】以上のように、図9の可変長復号化回路に
おいては、LUT324は、復号化した符号語の符号長
から1を減じた値を符号長として出力する。すなわち、
符号長“1”〜“16”の符号語に対応して、符号長C
Lの値をそれぞれ“0”〜“15”として出力する。バ
レルシフタ321は、シフト量として値(0〜15)が
入力された場合に、この値に1を加えた数(1〜16)
のビット数のシフトを実行する。また、加算器314
は、LUT324が出力する符号長(0〜15)と累算
レジスタ315の出力(0〜15)と定数“1”とを加
算する。これらの点を除くと、図9の可変長復号化回路
の動作は、第1の実施形態において図3を参照して説明
したものと同様であるので、その説明を省略する。As described above, in the variable length decoding circuit of FIG. 9, the LUT 324 outputs a value obtained by subtracting 1 from the code length of the decoded code word as the code length. That is,
The code length C corresponding to the code words of code lengths “1” to “16”
The values of L are output as “0” to “15”, respectively. When a value (0 to 15) is input as the shift amount, the barrel shifter 321 adds 1 to this value (1 to 16).
Performs a shift of the number of bits of. Also, the adder 314
Adds the code length (0 to 15) output by the LUT 324, the output (0 to 15) of the accumulation register 315, and a constant “1”. Except for these points, the operation of the variable length decoding circuit in FIG. 9 is the same as that described with reference to FIG. 3 in the first embodiment, and a description thereof will not be repeated.
【0112】以上のように構成された図9の可変長復号
化回路によると、バレルシフタ311とバレルシフタ3
21とは、いずれも4ビットの値(0〜15)をシフト
入力とし、16通りのビットシフトを行うことができる
バレルシフタであり、同じものを用いることができる。
したがって、回路の規則性向上による回路面積の削減を
図ることができる。また、図4の回路のように、符号長
変換回路146を備える必要がない。According to the variable length decoding circuit of FIG. 9 configured as described above, the barrel shifter 311 and the barrel shifter 3
Reference numeral 21 denotes a barrel shifter which can perform a 16-bit shift by using a 4-bit value (0 to 15) as a shift input, and the same can be used.
Therefore, the circuit area can be reduced by improving the regularity of the circuit. Also, unlike the circuit of FIG. 4, it is not necessary to provide the code length conversion circuit 146.
【0113】(第4の実施形態)図10は、本発明の第
4の実施形態に係る可変長復号化回路のブロック図であ
る。図10の可変長復号化回路は、インタフェース部3
10と、復号化部420とを備えている。復号化部42
0は、バレルシフタ421と、第1のバレルシフタレジ
スタ422と、第2のバレルシフタレジスタ423と、
LUT424と、シフト量レジスタ425とを備えてい
る。バッファ101及びインタフェース部310は、図
9を参照して説明したものと同じであるので、その説明
を省略する。(Fourth Embodiment) FIG. 10 is a block diagram of a variable length decoding circuit according to a fourth embodiment of the present invention. The variable length decoding circuit shown in FIG.
10 and a decoding unit 420. Decoding section 42
0 is a barrel shifter 421, a first barrel shifter register 422, a second barrel shifter register 423,
An LUT 424 and a shift amount register 425 are provided. The buffer 101 and the interface unit 310 are the same as those described with reference to FIG.
【0114】図10の可変長復号化回路は、図6の可変
長復号化回路において、加算器114、バレルシフタ2
21及びLUT224の代わりに、加算器314、バレ
ルシフタ421及びLUT424を備えたものである。
図10の可変長復号化回路は、図9の回路と同様に、復
号化した符号語の実際の符号長(1〜16)を、これか
ら1を減じた値(0〜15)で表現する点に特徴があ
る。The variable length decoding circuit shown in FIG. 10 is different from the variable length decoding circuit shown in FIG.
In this embodiment, an adder 314, a barrel shifter 421, and an LUT 424 are provided instead of the LUT 21 and the LUT 224.
The variable length decoding circuit shown in FIG. 10 is similar to the circuit shown in FIG. There is a feature.
【0115】第1のバレルシフタレジスタ422及び第
2のバレルシフタレジスタ423は、最長符号長に対応
して16ビットのデータを格納することができるように
なっている。第1のバレルシフタレジスタ422は、バ
レルシフタ311が出力する16ビットのデータを格納
する。第1のバレルシフタレジスタ422及び第2のバ
レルシフタレジスタ423は、格納しているデータをバ
レルシフタ421に出力する。The first barrel shift register 422 and the second barrel shift register 423 can store 16-bit data corresponding to the longest code length. The first barrel shifter register 422 stores 16-bit data output by the barrel shifter 311. The first barrel shifter register 422 and the second barrel shifter register 423 output the stored data to the barrel shifter 421.
【0116】バレルシフタ421には、シフト量レジス
タ425の出力(値:0〜15)がシフト入力の値とし
て入力されている。バレルシフタ421は、このシフト
入力の値に1を加えた値をシフト量SH6(値:1〜1
6)として用い、第2のバレルシフタレジスタ423の
出力を上位16ビットとして、第1のバレルシフタレジ
スタ422の出力を下位16ビットとして連結した32
ビットのデータのうち、(SH6+1)ビット目〜(S
H6+16)ビット目までの16ビットのデータをシフ
ト結果として出力する。ここで、連結して得られた32
ビットのデータの最上位ビットを1ビット目としてい
る。バレルシフタ421は、このシフト結果を第2のバ
レルシフタレジスタ423に書き込むとともに、LUT
424に出力する。The output (value: 0 to 15) of the shift amount register 425 is input to the barrel shifter 421 as a shift input value. The barrel shifter 421 adds a value obtained by adding 1 to the value of the shift input to the shift amount SH6 (value: 1 to 1).
32) in which the output of the second barrel shifter register 423 is connected as the upper 16 bits and the output of the first barrel shifter register 422 is connected as the lower 16 bits.
(SH6 + 1) th bit to (S
The 16-bit data up to the (H6 + 16) th bit is output as a shift result. Here, 32
The most significant bit of the bit data is the first bit. The barrel shifter 421 writes this shift result in the second barrel shifter register 423, and
424.
【0117】LUT424は、バレルシフタ421の出
力に対して復号化を行い、得られた復号結果DCを出力
し、復号化された符号語の実際の符号長から1を減じた
数を符号長CL(値:0〜15)としてシフト量レジス
タ425に書き込むとともに、加算器314に出力す
る。LUT424は、図9のLUT324と同様のもの
である。The LUT 424 decodes the output of the barrel shifter 421, outputs the obtained decoding result DC, and subtracts 1 from the actual code length of the decoded code word to obtain a code length CL ( The value is written to the shift amount register 425 as a value: 0 to 15) and output to the adder 314. The LUT 424 is similar to the LUT 324 in FIG.
【0118】このように、図10の可変長復号化回路に
おいては、LUT424は、復号化した符号語の符号長
から1を減じた値を符号長として出力する。すなわち、
符号長“1”〜“16”の符号語に対応して、符号長C
Lの値をそれぞれ“0”〜“15”として出力する。バ
レルシフタ421は、シフト量として値(0〜15)が
入力された場合に、それぞれの値に1を加えた数(1〜
16)のビット数のシフトを実行する。また、加算器3
14は、LUT424が出力する符号長(0〜15)と
累算レジスタ315の出力(0〜15)と定数“1”と
を加算する。これらの点を除くと、図10の可変長復号
化回路の動作は、第2の実施形態において図7を参照し
て説明したものと同様であるので、その説明を省略す
る。As described above, in the variable length decoding circuit of FIG. 10, the LUT 424 outputs a value obtained by subtracting 1 from the code length of the decoded code word as the code length. That is,
The code length C corresponding to the code words of code lengths “1” to “16”
The values of L are output as “0” to “15”, respectively. When a value (0 to 15) is input as the shift amount, the barrel shifter 421 adds a value (1 to 1) to each value.
16) The number of bits is shifted. Adder 3
14 adds the code length (0 to 15) output from the LUT 424, the output (0 to 15) of the accumulation register 315, and a constant “1”. Except for these points, the operation of the variable length decoding circuit of FIG. 10 is the same as that described with reference to FIG. 7 in the second embodiment, and a description thereof will not be repeated.
【0119】以上のように構成された図10の可変長復
号化回路によると、バレルシフタ311とバレルシフタ
421とは、いずれも4ビットの値(0〜15)をシフ
ト入力とし、16通りのビットシフトを行うことができ
るバレルシフタであり、同じものを用いることができ
る。したがって、回路の規則性向上による回路面積の削
減を図ることができる。また、図8の回路のように、符
号長変換回路146を備える必要がない。According to the variable length decoding circuit of FIG. 10 configured as described above, each of the barrel shifter 311 and the barrel shifter 421 receives a 4-bit value (0 to 15) as a shift input, and performs 16 bit shifts. And the same thing can be used. Therefore, the circuit area can be reduced by improving the regularity of the circuit. Further, unlike the circuit of FIG. 8, it is not necessary to provide the code length conversion circuit 146.
【0120】なお、以上の第1〜第4の実施形態におい
ては、説明の簡便化のために各レジスタ幅は最長符号長
Nに等しいとした。しかし、入力レジスタ、並びに第2
及び第4の実施形態における第2のバレルシフタレジス
タが出力したデータは、バレルシフタにおいて必ず1ビ
ット以上シフトされるので、バレルシフタはこれらのレ
ジスタが出力するデータの最上位ビットを出力すること
がない。したがって、これらのレジスタは、最上位ビッ
トが不要であり、レジスタ幅を(N−1)ビットとして
もよい。すると、さらに回路規模を小さくし、回路面積
を減らすことができる。この場合、バレルシフタには、
最上位ビット以外のビットにデータが入力されるように
すればよい。In the first to fourth embodiments described above, each register width is assumed to be equal to the longest code length N for simplification of the description. However, the input register, as well as the second
Since the data output from the second barrel shifter register in the fourth embodiment is always shifted by one or more bits in the barrel shifter, the barrel shifter does not output the most significant bit of the data output from these registers. Therefore, these registers do not need the most significant bit, and the register width may be (N-1) bits. Then, the circuit scale can be further reduced, and the circuit area can be reduced. In this case, the barrel shifter
Data may be input to bits other than the most significant bit.
【0121】また、以上の実施形態では、最長符号長が
16であるとして説明したが、最長符号長は他の値であ
ってもよい。最長符号長が16のような2のべきでない
場合は、最長符号長以上の2のべきの値を仮の最長符号
長として用いることとすればよい。このとき、入力レジ
スタ及びバレルシフタレジスタのレジスタ幅は仮の最長
符号長に対応させる必要がある。また、加算器が、最長
符号長を法とした加算結果に対する剰余を出力する機能
を有するようにしてもよい。このとき、累算レジスタの
レジスタ幅はこの剰余を格納できるようなものにする必
要がある。In the above embodiment, the longest code length is described as being 16. However, the longest code length may be another value. If the longest code length is not a power of 2, such as 16, a value of a power of 2 greater than or equal to the longest code length may be used as the temporary longest code length. At this time, the register widths of the input register and the barrel shift register need to correspond to the provisional maximum code length. Further, the adder may have a function of outputting a remainder with respect to the addition result modulo the longest code length. At this time, the register width of the accumulation register needs to be such that the remainder can be stored.
【0122】[0122]
【発明の効果】以上説明したように、本発明によると、
可変長復号化回路においてレジスタ数を削減し、バレル
シフタの規模を小さくすることができる。したがって、
可変長復号化回路の規模を小さくし、回路のレイアウト
面積を小さくすることができる。また、復号化開始時
に、ビットストリームが入力されてから最初に復号化出
力を得るまでのサイクル数を削減することができる。As described above, according to the present invention,
In the variable length decoding circuit, the number of registers can be reduced, and the scale of the barrel shifter can be reduced. Therefore,
The size of the variable length decoding circuit can be reduced, and the layout area of the circuit can be reduced. Further, at the start of decoding, the number of cycles from when a bit stream is input to when a decoded output is first obtained can be reduced.
【図1】本発明の第1の実施形態に係る可変長復号化回
路のブロック図である。FIG. 1 is a block diagram of a variable length decoding circuit according to a first embodiment of the present invention.
【図2】入力ビットストリームの例を示す説明図であ
る。FIG. 2 is an explanatory diagram illustrating an example of an input bit stream.
【図3】図1の可変長復号化回路におけるサイクル毎の
データフローの例を示す説明図である。FIG. 3 is an explanatory diagram showing an example of a data flow for each cycle in the variable length decoding circuit of FIG. 1;
【図4】第1の実施形態の変形例に係る可変長復号化回
路のブロック図である。FIG. 4 is a block diagram of a variable length decoding circuit according to a modification of the first embodiment.
【図5】符号長変換回路についての説明図である。FIG. 5 is an explanatory diagram of a code length conversion circuit.
【図6】本発明の第2の実施形態に係る可変長復号化回
路のブロック図である。FIG. 6 is a block diagram of a variable length decoding circuit according to a second embodiment of the present invention.
【図7】図6の可変長復号化回路におけるサイクル毎の
データフローの例を示す説明図である。FIG. 7 is an explanatory diagram showing an example of a data flow for each cycle in the variable length decoding circuit of FIG. 6;
【図8】第2実施形態の変形例に係る可変長復号化回路
のブロック図である。FIG. 8 is a block diagram of a variable length decoding circuit according to a modification of the second embodiment.
【図9】本発明の第3の実施形態に係る可変長復号化回
路のブロック図である。FIG. 9 is a block diagram of a variable length decoding circuit according to a third embodiment of the present invention.
【図10】本発明の第4の実施形態に係る可変長復号化
回路のブロック図である。FIG. 10 is a block diagram of a variable length decoding circuit according to a fourth embodiment of the present invention.
【図11】従来の可変長復号化回路の例のブロック図で
ある。FIG. 11 is a block diagram of an example of a conventional variable length decoding circuit.
【図12】図11の可変長復号化回路におけるサイクル
毎のデータフローの例を示す説明図である。12 is an explanatory diagram showing an example of a data flow for each cycle in the variable length decoding circuit of FIG. 11;
101 バッファ 110,310 インタフェース部 120,140,220,240,320,420 復
号化部 111,121,141,221,241,311,3
21,421 バレルシフタ 112,312 入力レジスタ 114,314 加算器 115,315 累算レジスタ 122,322 バレルシフタレジスタ 124,224,324,424 ルックアップテーブ
ル(LUT) 146 符号長変換回路 222,422 第1のバレルシフタレジスタ 223,423 第2のバレルシフタレジスタ 225,425 シフト量レジスタ DC 復号結果 CL 符号長 SM 加算結果 CR 桁上げ信号 RM 剰余101 Buffer 110, 310 Interface unit 120, 140, 220, 240, 320, 420 Decoding unit 111, 121, 141, 221, 241, 311, 3
21,421 barrel shifter 112,312 input register 114,314 adder 115,315 accumulation register 122,322 barrel shifter register 124,224,324,424 look-up table (LUT) 146 code length conversion circuit 222,422 first barrel shifter Register 223, 423 Second barrel shifter register 225, 425 Shift amount register DC decoding result CL code length SM addition result CR carry signal RM remainder
Claims (12)
トリームを順次復号化して出力する可変長復号化回路で
あって、 復号化した符号語の符号長の累積値を求め、ビットスト
リームの連続する長さ2N又は2N−1ビット(Nは可
変長符号の最長符号長)のデータから、前記累積値に応
じて連続する長さNビットのデータを取り出して出力す
るインタフェース部と、 前記インタフェース部の出力を入力とし、これとこれよ
りも前に入力された前記インタフェース部の出力とに含
まれる符号語に対してルックアップテーブルを用いて復
号化を行い、復号結果を出力するとともに、復号化され
た符号語の符号長を前記インタフェース部に出力する復
号化部とを備えた可変長復号化回路。1. A variable length decoding circuit for sequentially decoding and outputting a bit stream in which variable length codewords are continuous, comprising: obtaining a cumulative value of the code lengths of the decoded codewords; An interface unit for extracting and outputting continuous N-bit data according to the cumulative value from data having a length of 2N or 2N-1 bits (where N is the longest code length of a variable-length code); , And decodes the codewords included in the input and the output of the interface unit input earlier than the input by using a look-up table, and outputs a decoding result. And a decoding unit that outputs the code length of the codeword obtained to the interface unit.
いて、 前記インタフェース部は、 前記累積値に応じて得られた剰余を格納し、出力する累
算レジスタと、 前記復号化部が出力する符号長と前記累算レジスタが出
力する剰余とを加算して、前記累積値に対応した加算結
果を求め、当該加算結果をNで割った商及び余りをそれ
ぞれ桁上げ信号及び新たな剰余として出力する加算器
と、 前記桁上げ信号の値が1である場合に、ビットストリー
ムの連続する長さN又はN−1ビットのデータを格納
し、出力する入力レジスタと、 前記入力レジスタの出力と、これに続くビットストリー
ムの連続する長さNビットのデータとを、各ビットの順
がビットストリームにおける順となるように連結し、前
記累算レジスタが出力する剰余をシフト入力の値として
用い、連結して得られたデータのうち、このシフト入力
の値に応じたビットから連続する長さNビットのデータ
を取り出して前記復号化部に出力するバレルシフタとを
備えたことを特徴とする可変長復号化回路。2. The variable length decoding circuit according to claim 1, wherein the interface unit stores and outputs a remainder obtained in accordance with the accumulated value, and an accumulation register for outputting the remainder. And the remainder output from the accumulation register to obtain an addition result corresponding to the accumulated value, and a quotient and remainder obtained by dividing the addition result by N as a carry signal and a new remainder, respectively. An adder that outputs, an input register that stores and outputs data of a continuous length N or N−1 bits of the bit stream when the value of the carry signal is 1, and an output of the input register. , And successive N bits of data of the bit stream are connected so that the order of each bit is the order in the bit stream, and the remainder output from the accumulation register is And a barrel shifter for extracting data of a continuous length of N bits from the bit corresponding to the value of the shift input out of the data obtained by concatenation, and outputting the data to the decoding unit. Variable length decoding circuit.
いて、 前記バレルシフタは、 入力されたデータの先頭のビットから数えて、(M+
2)番目(Mは前記シフト入力の値)のビットから連続
する長さNビットのデータを出力することを特徴とする
可変長復号化回路。3. The variable length decoding circuit according to claim 2, wherein the barrel shifter counts (M +
2) A variable-length decoding circuit which outputs data having a continuous length of N bits from the bit (M is the value of the shift input).
いて、 前記復号化部は、 バレルシフタと、バレルシフタレジスタと、ルックアッ
プテーブルとを備え、 前記バレルシフタは、 前記バレルシフタレジスタが出力するデータと、前記イ
ンタフェース部が出力するデータとを、各ビットの順が
ビットストリームにおける順となるように連結し、前記
ルックアップテーブルが出力する符号長をシフト入力の
値として用い、連結して得られたデータのうち、このシ
フト入力の値に応じたビットから連続する長さNビット
のデータを取り出して出力するものであり、 前記バレルシフタレジスタは、 前記バレルシフタの出力を格納し、出力するものであ
り、 前記ルックアップテーブルは、 前記バレルシフタレジスタの出力に含まれる符号語に対
応した復号結果を出力するとともに、当該符号語の符号
長を出力するものであることを特徴とする可変長復号化
回路。4. The variable-length decoding circuit according to claim 1, wherein the decoding unit includes a barrel shifter, a barrel shifter register, and a look-up table, wherein the barrel shifter stores data output by the barrel shifter register. , And the data output by the interface unit are connected such that the order of each bit is the order in the bit stream, and the code length output by the look-up table is used as the value of the shift input, and the data is obtained by connection Among the data, N bits of continuous length data are extracted and output from bits corresponding to the value of the shift input, and the barrel shifter register stores and outputs the output of the barrel shifter. The look-up table corresponds to a codeword included in an output of the barrel shifter register Outputs the decoded result, the variable-length decoding circuit, characterized in that and outputs a code length of the code word.
いて、 前記バレルシフタは、 入力されたデータの先頭のビットから数えて、(L+
1)番目(Lは前記シフト入力の値)のビットから連続
する長さNビットのデータを出力することを特徴とする
可変長復号化回路。5. The variable length decoding circuit according to claim 4, wherein the barrel shifter counts (L +
1) A variable length decoding circuit which outputs N-bit data having a continuous length from the first bit (L is the value of the shift input).
いて、 前記復号化部は、 前記符号長から1を減じて出力する符号長変換回路を更
に備え、 前記バレルシフタは、 前記符号長の代わりに前記符号長変換回路の出力を前記
シフト入力の値として用い、 入力されたデータの先頭のビットから数えて、(L+
2)番目のビットから連続する長さNビットのデータを
出力することを特徴とする可変長復号化回路。6. The variable length decoding circuit according to claim 4, wherein the decoding unit further includes a code length conversion circuit that subtracts 1 from the code length and outputs the result. Instead, using the output of the code length conversion circuit as the value of the shift input, counting from the first bit of the input data, (L +
2) A variable-length decoding circuit which outputs data having a length of N bits continuous from the first bit.
いて、 前記復号化部は、 バレルシフタと、第1及び第2のバレルシフタレジスタ
と、ルックアップテーブルと、シフト量レジスタとを備
え、 前記バレルシフタは、 前記第1及び第2のバレルシフタレジスタが出力するデ
ータを、各ビットの順がビットストリームにおける順と
なるように連結し、前記シフト量レジスタの出力に応じ
た値をシフト入力の値として用い、連結して得られたデ
ータのうち、このシフト入力の値に応じたビットから連
続する長さNビットのデータを取り出して出力するもの
であり、 前記第1のバレルシフタレジスタは、 前記インタフェース部の出力を格納し、出力するもので
あり、 前記第2のバレルシフタレジスタは、 前記バレルシフタの出力を格納し、出力するものであ
り、 前記ルックアップテーブルは、 前記バレルシフタの出力に含まれる符号語に対応した復
号結果を出力するとともに、当該符号語の符号長を出力
するものであり、 前記シフト量レジスタは、 前記符号長に応じた値を格納し、出力するものであるこ
とを特徴とする可変長復号化回路。7. The variable length decoding circuit according to claim 1, wherein the decoding unit includes a barrel shifter, first and second barrel shifter registers, a look-up table, and a shift amount register, The barrel shifter connects the data output from the first and second barrel shifter registers so that the order of each bit is the order in the bit stream, and uses a value corresponding to the output of the shift amount register as a shift input value. Used for concatenating and extracting data of a continuous length of N bits from bits corresponding to the value of the shift input, and outputting the data. The first barrel shifter register includes: The second barrel shifter register stores the output of the barrel shifter and outputs the output. The look-up table outputs a decoding result corresponding to a codeword included in the output of the barrel shifter, and outputs a code length of the codeword. The shift amount register includes: A variable-length decoding circuit for storing and outputting a value corresponding to a code length.
いて、 前記シフト量レジスタは、 前記符号長を格納し、出力するものであり、 前記バレルシフタは、 前記シフト量レジスタの出力をシフト入力の値として用
い、 入力されたデータの先頭のビットから数えて、(L+
1)番目(Lは前記シフト入力の値)のビットから連続
する長さNビットのデータを出力することを特徴とする
可変長復号化回路。8. The variable length decoding circuit according to claim 7, wherein the shift amount register stores and outputs the code length, and the barrel shifter shifts an output of the shift amount register. , And counting from the first bit of the input data, (L +
1) A variable length decoding circuit which outputs N-bit data having a continuous length from the first bit (L is the value of the shift input).
いて、 前記復号化部は、 前記符号長から1を減じて出力する符号長変換回路を更
に備え、 前記バレルシフタは、 前記符号長変換回路及び前記シフト量レジスタを介して
入力された、1を減じられた符号長を前記シフト入力の
値として用い、 入力されたデータの先頭のビットから数えて、(L+
2)番目のビットから連続する長さNビットのデータを
出力することを特徴とする可変長復号化回路。9. The variable length decoding circuit according to claim 7, wherein the decoding unit further includes a code length conversion circuit that subtracts 1 from the code length and outputs the code length, and wherein the barrel shifter includes the code length conversion. Using the code length obtained by subtracting 1 from the circuit and the shift amount register as the value of the shift input, counting from the first bit of the input data, (L +
2) A variable-length decoding circuit which outputs data having a length of N bits continuous from the first bit.
おいて、 前記インタフェース部は、 前記累積値に応じて得られた剰余を格納し、出力する累
算レジスタと、 前記復号化部が出力する符号長と前記累算レジスタが出
力する剰余とを加算して、前記累積値に対応した加算結
果を求め、当該加算結果をNで割った商及び余りをそれ
ぞれ桁上げ信号及び新たな剰余として出力する加算器
と、 前記桁上げ信号が1である場合に、ビットストリームの
連続する長さNビットのデータを格納し、出力する入力
レジスタと、 前記入力レジスタの出力と、これに続くビットストリー
ムの連続する長さNビットのデータとを、各ビットの順
がビットストリームにおける順となるように連結し、前
記累算レジスタが出力する剰余をシフト入力の値として
用い、連結して得られたデータのうち、このシフト入力
の値に応じたビットから連続する長さNビットのデータ
を取り出して前記復号化部に出力するバレルシフタとを
備えたものであり、 前記復号化部は、 バレルシフタと、バレルシフタレジスタと、ルックアッ
プテーブルとを備えたものであり、 前記復号化部のバレルシフタは、 前記バレルシフタレジスタが出力するデータと、前記イ
ンタフェース部が出力するデータとを、各ビットの順が
ビットストリームにおける順となるように連結し、前記
ルックアップテーブルが出力する符号長をシフト入力の
値として用い、連結して得られたデータのうち、このシ
フト入力の値に応じたビットから連続する長さNビット
のデータを取り出して出力するものであり、 前記バレルシフタレジスタは、 前記復号化部のバレルシフタの出力を格納し、出力する
ものであり、 前記ルックアップテーブルは、 前記バレルシフタレジスタの出力に含まれる符号語に対
応した復号結果を出力するとともに、当該符号語の符号
長を出力するものであることを特徴とする可変長復号化
回路。10. The variable length decoding circuit according to claim 1, wherein the interface unit stores and outputs a remainder obtained according to the accumulated value, and the decoding unit outputs And the remainder output from the accumulation register to obtain an addition result corresponding to the accumulated value, and a quotient and remainder obtained by dividing the addition result by N as a carry signal and a new remainder, respectively. An adder for outputting; an input register for storing and outputting data of a continuous length of N bits of the bit stream when the carry signal is 1; an output of the input register; Are connected so that the order of each bit is the order in the bit stream, and the remainder output from the accumulation register is used as the value of the shift input. And a barrel shifter for taking out data having a continuous length of N bits from the bit corresponding to the value of the shift input out of the data obtained by concatenation, and outputting the data to the decoding unit. The unit includes a barrel shifter, a barrel shifter register, and a look-up table. The barrel shifter of the decoding unit stores data output by the barrel shifter register and data output by the interface unit in each bit. Are connected in the order of the bit stream, the code length output from the look-up table is used as the value of the shift input, and the bits corresponding to the value of the shift input among the data obtained by the connection And outputs the data having a continuous length of N bits from the barrel shifter register. The lookup table stores and outputs the output of the barrel shifter of the decoding unit. A variable length decoding circuit for outputting.
おいて、 前記インタフェース部は、 前記累積値に応じて得られた剰余を格納し、出力する累
算レジスタと、 前記復号化部が出力する符号長と前記累算レジスタが出
力する剰余とを加算して、前記累積値に対応した加算結
果を求め、当該加算結果をNで割った商及び余りをそれ
ぞれ桁上げ信号及び新たな剰余として出力する加算器
と、 前記桁上げ信号が1である場合に、ビットストリームの
連続する長さNビットのデータを格納し、出力する入力
レジスタと、 前記入力レジスタの出力と、これに続くビットストリー
ムの連続する長さNビットのデータとを、各ビットの順
がビットストリームにおける順となるように連結し、前
記累算レジスタが出力する剰余をシフト入力の値として
用い、連結して得られたデータのうち、このシフト入力
の値に応じたビットから連続する長さNビットのデータ
を取り出して前記復号化部に出力するバレルシフタとを
備えたものであり、 前記復号化部は、 バレルシフタと、第1及び第2のバレルシフタレジスタ
と、ルックアップテーブルと、シフト量レジスタとを備
えたものであり、 前記復号化部のバレルシフタは、 前記第1及び第2のバレルシフタレジスタが出力するデ
ータを、各ビットの順がビットストリームにおける順と
なるように連結し、前記シフト量レジスタの出力に応じ
た値をシフト入力の値として用い、連結して得られたデ
ータのうち、このシフト入力の値に応じたビットから連
続する長さNビットのデータを取り出して出力するもの
であり、 前記第1のバレルシフタレジスタは、 前記インタフェース部が出力するデータを格納し、出力
するものであり、 前記第2のバレルシフタレジスタは、 前記復号化部のバレルシフタの出力を格納し、出力する
ものであり、 前記ルックアップテーブルは、 前記復号化部のバレルシフタの出力に含まれる符号語に
対応した復号結果を出力するとともに、当該符号語の符
号長を出力するものであり、 前記シフト量レジスタは、 前記符号長に応じた値を格納し、出力するものであるこ
とを特徴とする可変長復号化回路。11. The variable-length decoding circuit according to claim 1, wherein the interface unit stores and outputs a remainder obtained according to the accumulated value, and an output of the decoding unit. And the remainder output from the accumulation register to obtain an addition result corresponding to the accumulated value, and a quotient and remainder obtained by dividing the addition result by N as a carry signal and a new remainder, respectively. An adder for outputting; an input register for storing and outputting data of a continuous length of N bits of the bit stream when the carry signal is 1; an output of the input register; Are connected so that the order of each bit is the order in the bit stream, and the remainder output from the accumulation register is used as the value of the shift input. And a barrel shifter for taking out data having a continuous length of N bits from the bit corresponding to the value of the shift input out of the data obtained by concatenation and outputting the data to the decoding unit. The unit includes a barrel shifter, first and second barrel shifter registers, a look-up table, and a shift amount register. The barrel shifter of the decoding unit is configured such that the first and second barrel shifter registers are Data to be output is concatenated so that the order of each bit is the order in the bit stream, and a value corresponding to the output of the shift amount register is used as a value of the shift input. The first barrel shifter register for extracting and outputting continuous N-bit data from bits corresponding to the value of the shift input; Stores and outputs data output by the interface unit; the second barrel shifter register stores and outputs the output of the barrel shifter of the decoding unit; Outputting the decoding result corresponding to the code word included in the output of the barrel shifter of the decoding unit, and outputting the code length of the code word. The shift amount register has a value corresponding to the code length. And outputs the result.
号化回路において、 前記加算器は、 前記復号化部が出力する符号長と前記累算レジスタが出
力する剰余とを加算した値に1を加えた値を前記加算結
果として求めるものであり、 前記ルックアップテーブルは、 前記符号長として、当該符号語の符号長から1を減じた
値を出力するものであることを特徴とする可変長復号化
回路。12. The variable length decoding circuit according to claim 10, wherein the adder is configured to add 1 to a value obtained by adding a code length output by the decoding unit and a remainder output by the accumulation register. The lookup table outputs a value obtained by subtracting 1 from the code length of the code word, as the code length. Decoding circuit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001085942A JP4559652B2 (en) | 2000-03-24 | 2001-03-23 | Variable length decoding circuit |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-84343 | 2000-03-24 | ||
JP2000084343 | 2000-03-24 | ||
JP2001085942A JP4559652B2 (en) | 2000-03-24 | 2001-03-23 | Variable length decoding circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001339312A true JP2001339312A (en) | 2001-12-07 |
JP4559652B2 JP4559652B2 (en) | 2010-10-13 |
Family
ID=26588289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001085942A Expired - Fee Related JP4559652B2 (en) | 2000-03-24 | 2001-03-23 | Variable length decoding circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4559652B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117456B2 (en) | 2003-12-03 | 2006-10-03 | International Business Machines Corporation | Circuit area minimization using scaling |
JP2007312272A (en) * | 2006-05-22 | 2007-11-29 | Victor Co Of Japan Ltd | Variable length decoder |
US8571073B2 (en) | 2011-03-29 | 2013-10-29 | Fujitsu Limited | Frame mapping apparatus and frame mapping method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04133522A (en) * | 1990-09-26 | 1992-05-07 | Ricoh Co Ltd | Variable-length code decoding circuit |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
JPH07104973A (en) * | 1993-09-30 | 1995-04-21 | Toshiba Corp | Shift circuit and variable length encoder and decoder |
JPH088755A (en) * | 1993-11-29 | 1996-01-12 | Daewoo Electron Co Ltd | High-speed variable-length decoder |
JPH0856164A (en) * | 1994-08-12 | 1996-02-27 | Canon Inc | Data coding decoding device and its method |
JPH0879747A (en) * | 1994-05-06 | 1996-03-22 | Samsung Electron Co Ltd | Variable-length decoder for video signal |
JPH08223056A (en) * | 1994-11-17 | 1996-08-30 | Daewoo Electron Co Ltd | Variable-length cord decoder |
JPH09130265A (en) * | 1995-08-31 | 1997-05-16 | Daewoo Electron Co Ltd | Variable-length code decoder with high processing speed and its decoding method |
-
2001
- 2001-03-23 JP JP2001085942A patent/JP4559652B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04133522A (en) * | 1990-09-26 | 1992-05-07 | Ricoh Co Ltd | Variable-length code decoding circuit |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
JPH07104973A (en) * | 1993-09-30 | 1995-04-21 | Toshiba Corp | Shift circuit and variable length encoder and decoder |
JPH088755A (en) * | 1993-11-29 | 1996-01-12 | Daewoo Electron Co Ltd | High-speed variable-length decoder |
JPH0879747A (en) * | 1994-05-06 | 1996-03-22 | Samsung Electron Co Ltd | Variable-length decoder for video signal |
JPH0856164A (en) * | 1994-08-12 | 1996-02-27 | Canon Inc | Data coding decoding device and its method |
JPH08223056A (en) * | 1994-11-17 | 1996-08-30 | Daewoo Electron Co Ltd | Variable-length cord decoder |
JPH09130265A (en) * | 1995-08-31 | 1997-05-16 | Daewoo Electron Co Ltd | Variable-length code decoder with high processing speed and its decoding method |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117456B2 (en) | 2003-12-03 | 2006-10-03 | International Business Machines Corporation | Circuit area minimization using scaling |
JP2007312272A (en) * | 2006-05-22 | 2007-11-29 | Victor Co Of Japan Ltd | Variable length decoder |
US8571073B2 (en) | 2011-03-29 | 2013-10-29 | Fujitsu Limited | Frame mapping apparatus and frame mapping method |
Also Published As
Publication number | Publication date |
---|---|
JP4559652B2 (en) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3142853B2 (en) | Apparatus for packing and unpacking codewords | |
US5227789A (en) | Modified huffman encode/decode system with simplified decoding for imaging systems | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
US6587057B2 (en) | High performance memory efficient variable-length coding decoder | |
JP3627016B2 (en) | Huffman encoding / decoding method | |
US6633242B2 (en) | Entropy coding using adaptable prefix codes | |
US5652583A (en) | Apparatus for encoding variable-length codes and segmenting variable-length codewords thereof | |
JP3294026B2 (en) | High-speed variable-length decoding device | |
JP2003023635A (en) | Video frame compression/decompression hardware system | |
JP2009273035A (en) | Image compression apparatus, image decompression apparatus, and image processor | |
GB2530311A (en) | Data compression | |
US6546053B1 (en) | System and method for decoding signal and method of generating lookup table for using in signal decoding process | |
JP3517179B2 (en) | Bitstream decoding device | |
CN114614833A (en) | Test data compression and decompression method for self-adaptive run-length coding | |
US6987811B2 (en) | Image processor and image processing method | |
TWI815936B (en) | Method and system of forming entropy coding groups in display interface compression | |
JP4559652B2 (en) | Variable length decoding circuit | |
US6501398B2 (en) | Variable-length code decoder using barrel shifters and a look-up table | |
US20050174270A1 (en) | Programmable variable length decoder including interface of cpu processor | |
TWI404420B (en) | Variable-length decoder, video decoder and image display system having the same, and variable-length decoding method | |
US5754128A (en) | Variable-length code encoding and segmenting apparatus having a byte alignment unit | |
US20070036445A1 (en) | Method and apparatus of efficient lossless data stream coding | |
KR100462060B1 (en) | UVLC Multiple Decoding Method | |
JP3791793B2 (en) | Digital signal encoding method, decoding method, encoder, decoder, encoding program, and decoding program | |
JP2009017232A (en) | Arithmetic encoding device and image encoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100401 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100617 |
|
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: 20100706 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100723 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |