JPH07212244A - Variable-length decoder - Google Patents

Variable-length decoder

Info

Publication number
JPH07212244A
JPH07212244A JP33228793A JP33228793A JPH07212244A JP H07212244 A JPH07212244 A JP H07212244A JP 33228793 A JP33228793 A JP 33228793A JP 33228793 A JP33228793 A JP 33228793A JP H07212244 A JPH07212244 A JP H07212244A
Authority
JP
Japan
Prior art keywords
code
variable length
data
binary data
holding means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP33228793A
Other languages
Japanese (ja)
Inventor
Hirohisa Yamaguchi
博久 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Priority to JP33228793A priority Critical patent/JPH07212244A/en
Publication of JPH07212244A publication Critical patent/JPH07212244A/en
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PURPOSE: To provide a high speed parallel variable length decoder. CONSTITUTION: This device is provided with; a data holding means 11 for holding one part or whole of the binary data of one or more variable length codes, and outputting the data in parallel; a storage unit 12 for storing a code pattern consisting of codes constituting one part or whole of the variable codes and state transition information for identifying the state of each code; detecting means 13 and 131 connected with the data holding means 11 and the storage means 12 for comparing the binary data from the data holding means 11 with the plural code patterns, and detecting the coincident codes; and selecting means 14, 15, and 16 connected with the detecting means 13 and 131 for selecting the variable length code from the data holding means 11 based on the state transition information corresponding to the coincident code.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、可変長コードをデコー
ドする可変長デコーダに関し、特に、画像情報の伝送
や、記録メデイアへの蓄積の際に符号化されたデイジタ
ル画像信号等をデコードするための可変長デコーダに関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a variable length decoder for decoding a variable length code, and more particularly, for decoding a digital image signal encoded when transmitting image information or accumulating in a recording medium. Of variable length decoder.

【0002】[0002]

【従来の技術】可変長コードのデコード(VLD)と
は、連結された可変長のバイナリコード(VLCバイナ
リストリング)をオリジナルの数値(ソースコード)へ
変換することである。このようなコードシステム及びデ
コード操作の従来例を説明する。
2. Description of the Related Art Variable length code decoding (VLD) is the conversion of a concatenated variable length binary code (VLC binary string) into an original numerical value (source code). A conventional example of such a code system and decoding operation will be described.

【0003】図6及び図7は、MPEGにおける画像信
号の符号化回路及び複合化回路の一構成例を示すブロッ
ク図である。
FIGS. 6 and 7 are block diagrams showing an example of the configuration of an image signal encoding circuit and a composite circuit in MPEG.

【0004】図6において、処理単位である8*8画素
の画像信号が減算器101に入力される。画像信号は、
減算器101により動き予測値Pと差分をとられ、この
差分値はDCT(離散コサイン変換)102により周波
数領域の信号に変換される。変換されたDCT係数は量
子化部103により量子化コードに変換され、可変長符
号化部(VLC)104により可変長コードに符号化さ
れる。また、量子化されたコードは、逆量子化部105
及び逆DCT106により復元され、加算器107によ
り動き予測値Pと加算され、1フレーム(または1フィ
ールド)前の画像信号としてフレームメモリ108にス
トアされる。動き補償回路109は、入力された画像信
号とフレームメモリ108からの前の画像信号から動き
予測値Pを求め、これを減算器101及び加算器107
へ供給する。
In FIG. 6, an image signal of 8 * 8 pixels which is a processing unit is input to the subtractor 101. The image signal is
A subtractor 101 calculates a difference from the motion prediction value P, and this difference value is converted into a frequency domain signal by a DCT (discrete cosine transform) 102. The converted DCT coefficient is converted into a quantized code by the quantization unit 103, and encoded into a variable length code by the variable length coding unit (VLC) 104. In addition, the quantized code is processed by the inverse quantization unit 105.
And the inverse DCT 106, and the motion predictive value P is added by the adder 107 and stored in the frame memory 108 as an image signal of one frame (or one field) before. The motion compensation circuit 109 obtains a motion prediction value P from the input image signal and the previous image signal from the frame memory 108, and subtracts this from the subtractor 101 and the adder 107.
Supply to.

【0005】他方、可変長符号化部(VLC)104に
より符号化された伝送データは、画像信号と動き予測値
Pの差分を符号化した可変長コードであり、この可変長
コードは、図7に示すように、可変長復号化部(VL
D)110によってデコードされ、逆量子化部111及
び逆DCT112により復元される。そして、加算器1
13により動き予測値Pと加算され出力される。また、
出力信号は、フレームメモリ115に供給され、動き補
償回路114は、フレームメモリ115からの信号に基
づき動き予測値Pを求め、これを加算器113へ供給す
る。こうして、デジタル画像信号の伝送に際して、画像
データの圧縮、伸長が行われる。
On the other hand, the transmission data coded by the variable length coding unit (VLC) 104 is a variable length code obtained by coding the difference between the image signal and the motion prediction value P, and this variable length code is shown in FIG. , The variable length decoding unit (VL
D) Decoded by 110 and restored by inverse quantizer 111 and inverse DCT 112. And adder 1
13 is added to the motion prediction value P and output. Also,
The output signal is supplied to the frame memory 115, the motion compensation circuit 114 obtains a motion prediction value P based on the signal from the frame memory 115, and supplies this to the adder 113. In this way, when transmitting the digital image signal, the image data is compressed and expanded.

【0006】なお、動き予測スキームについては、本出
願人によって先に出願された「画像処理装置及びその処
理方法」(特願平5−206159号、発明者:山口)
に詳細に記載されている。
Regarding the motion estimation scheme, "Image processing apparatus and its processing method" previously filed by the present applicant (Japanese Patent Application No. 5-206159, inventor: Yamaguchi).
Are described in detail in.

【0007】MPEGでは、量子化されたDCT係数に
ついて、もっとも大きな可変長コード表を定義してい
る。このコードは、いわゆるハフマン符号化に相当する
ものであり、連続した0の長さ(ランレングス)と、ラ
ンの最後に生じるゼロでない係数の振幅とを表すもので
ある。つまり、可変長符号化部(VLC)104は、処
理単位である8*8画素のブロックについて得られたD
CT係数をジグザグスキャンし、ランレングスとこれに
隣接する係数とを対にして符号化する。また、特別なコ
ードとして、8*8ブロックの画像信号の符号化の終わ
りをマーク付けするEOB(End of Bloc
k)コードを定義する。
In MPEG, the largest variable length code table is defined for quantized DCT coefficients. This code corresponds to the so-called Huffman coding and represents the length of consecutive 0s (run length) and the amplitude of the non-zero coefficient occurring at the end of the run. That is, the variable length coding unit (VLC) 104 obtains D obtained for the block of 8 * 8 pixels which is the processing unit.
The CT coefficient is zigzag scanned, and the run length and the coefficient adjacent thereto are paired and encoded. Also, as a special code, EOB (End of Bloc) that marks the end of the coding of the image signal of 8 * 8 blocks
k) Define the code.

【0008】一般的な4:1:0モードでの符号化で
は、画像信号の6ブロックが1グループとして符号化さ
れ、これは、全体のCCIR601解像度(704ピク
セル*480ライン)のフレームにつき1320回繰り
返されることとなる。
In general 4: 1: 0 mode encoding, 6 blocks of the image signal are encoded as a group, which is 1320 times per frame of the entire CCIR 601 resolution (704 pixels * 480 lines). It will be repeated.

【0009】DCT係数の符号化表を図8に示す。この
符号化表は、2組のコード、すなわち(1)可変長コー
ド、(2)エスケープ+固定コード(エスケープコード
表については省略)を有する。前者のコードは、前述し
たように、ランレングスとゼロでない係数の対をコード
化するものである。後者のコードは、可変長コード表に
該当しないものを対象に符号化するものであり、”00
00 01”のエスケープ(ESCAPE)コード+固
定コード(6ビット)+固定コード(8または16ビッ
ト)の最大28ビット長を有する。すなわち、図8の可
変長コード表に該当しないランレングス及び係数は、”
0000 01”のエスケープコードとして規定され、
固定コード(6ビット)によりランレングスを符号化
し、固定コード(8または16ビット)により係数を符
号化する。また、図の”s”は、係数のレベルを示すも
のであり、”s”が”0”であれば係数が正であり、”
1”であれば、負であることを定義する。
A coding table of DCT coefficients is shown in FIG. This encoding table has two sets of codes, namely (1) variable length code and (2) escape + fixed code (escape code table omitted). The former code encodes the run-length and non-zero coefficient pairs, as described above. The latter code is used to encode a code that does not correspond to the variable-length code table.
Escape (ESCAPE) code of 001 "+ fixed code (6 bits) + fixed code (8 or 16 bits) has a maximum length of 28 bits. That is, run lengths and coefficients that do not correspond to the variable length code table of FIG. , ”
It is defined as an escape code of "0000 01",
Run lengths are encoded with a fixed code (6 bits) and coefficients are encoded with a fixed code (8 or 16 bits). Further, "s" in the figure indicates the level of the coefficient, and if "s" is "0", the coefficient is positive,
If it is 1 ", it is defined as negative.

【0010】図9は、DCT係数からなるバイナリスト
リームと、そのデコード結果を示すものである。例え
ば、最初のコード”001101”は、図8に示すよう
に、ランレングスが”4”、係数の振幅が”1”、レベ
ル”s”が”1”であるため、デコード値は”0000
(−1)”となる。
FIG. 9 shows a binary stream composed of DCT coefficients and the decoding result thereof. For example, the first code "001101" has a run length of "4", a coefficient amplitude of "1", and a level "s" of "1" as shown in FIG.
(-1) ".

【0011】実際に符号化されたDCT係数をデコード
する場合には、”エスケープ+固定コード”の処理に加
え、さらに、”最初”のコード及び”2回目”のコード
の識別処理を必要とする。”最初”のコードは、図8に
おいて”(1)”として示され、このコードがブロック
のDCT係数について最初に使用されるものであること
を定義し、他方、”2回目”のコードは、”(2)”と
して示され、このコードは、第2回目以降に使用される
ものであることを定義する。これは、最初にEOBコー
ドが現れることは禁止されていることから、最初のコー
ド”10”の使用はEOBでないものとし、それ以降は
EOBである可能性があるので、これと区別するよう異
なるコード”11s”としている。
When actually decoding the encoded DCT coefficient, in addition to the "escape + fixed code" processing, the "first" code and "second" code identification processing is required. . The "first" code is designated as "(1)" in FIG. 8 and defines that this code is the one used first for the DCT coefficients of the block, while the "second" code is Shown as "(2)", this code defines that it will be used after the second time. This is different from the first EOB code because it is prohibited to use the first code "10" because it is not EOB and it may be EOB after that because it is prohibited to appear. The code is "11s".

【0012】こうした例外的な動作を含むため、可変長
コードのデコードは、図10に示す状態遷移に従って処
理される。図中、S0、S1、S2、S3は、各処理状
態を示し、この状態に応じて使用するコード表を切り替
える。まず、S0からスターとし、”最初”のコードで
あれば、S1に対応するコード表に従い処理され、ある
いは、エスケープコードであれば、S3に対応するエス
ケープコード表に従い処理される。S1、またはS3の
状態で、EOBコードが検知されればS0に戻り、それ
以外のコードであれば、S2に対応する可変長コード表
(例えば、図8)に従い処理される。
Since such an exceptional operation is included, the decoding of the variable length code is processed according to the state transition shown in FIG. In the figure, S0, S1, S2, and S3 indicate respective processing states, and the code table to be used is switched according to this state. First, S0 is changed to a star, and if it is a "first" code, it is processed according to the code table corresponding to S1, or if it is an escape code, it is processed according to the escape code table corresponding to S3. In the state of S1 or S3, if an EOB code is detected, the process returns to S0, and if it is any other code, it is processed according to the variable length code table corresponding to S2 (for example, FIG. 8).

【0013】こうしたコードの切り替えは、”最初”及
び”2回目”のコードについては、可変長コード表のア
ドレスにより実行することができ、エスケープコードに
ついては、可変長デコーダに取り付けられたハードウエ
アにより実行することができる。
Such code switching can be executed by the address of the variable length code table for the "first" and "second time" codes, and for the escape code by the hardware attached to the variable length decoder. Can be executed.

【0014】[0014]

【発明が解決しようとする課題】一般に、可変長コード
は、ソースコードの発生頻度により定義される。つま
り、発生頻度の高いソースコードには短い可変長コード
が割り当てられ、発生頻度の低いコードには長い可変長
コードが割り当てられる。そして、可変長のバイナリス
トリングをデコードするためには、可変長コードの境界
を識別することが重要なことである。従来のデコード動
作は、可変長コードのバイナリストリングをビットごと
に読み取ることによって行われていた。というのは、バ
イナリストリングが多重ビットで読み取られる場合(以
下、デコーディングウインドゥと呼ぶ)、コードの境界
は、図11に示すように、ウインドゥ境界と必ずしも一
致しないからである。そして、これを解決するための具
体的な方法は、未だ考えられていない。
Generally, the variable length code is defined by the occurrence frequency of the source code. That is, a short variable length code is assigned to a source code with a high occurrence frequency, and a long variable length code is assigned to a code with a low occurrence frequency. And in order to decode a variable length binary string, it is important to identify the boundaries of the variable length code. A conventional decoding operation is performed by reading a binary string of a variable length code bit by bit. This is because when the binary string is read with multiple bits (hereinafter referred to as decoding window), the code boundaries do not always match the window boundaries as shown in FIG. And a concrete method for solving this has not been considered yet.

【0015】他方、高品位デジタルビデオ(HDTVな
ど)においては、可変長バイナリストリングを50乃至
100Mビット速度のリアルタイムでデコードすること
が求められている。これは、ビットあたり20乃至10
nS内でデコード動作しなければならないことを意味す
る。つまり、可変長コードのデコードは、ROMまたは
RAM内に参照コードデーブルを含むので、非常に高価
な高速のメモリが必要となる。
On the other hand, in high definition digital video (HDTV etc.), it is required to decode a variable length binary string in real time at a speed of 50 to 100 Mbits. This is 20 to 10 per bit
This means that the decoding operation must be performed within nS. In other words, the decoding of the variable length code requires a very expensive high speed memory as it contains the reference code table in ROM or RAM.

【0016】本発明の目的は、上記課題を解決し、新規
な並列可変長デコーダを提供することにある。
An object of the present invention is to solve the above problems and provide a novel parallel variable length decoder.

【0017】本発明の他の目的は、シングルクロックで
高速動作可能なデコーダを提供することにある。
Another object of the present invention is to provide a decoder that can operate at high speed with a single clock.

【0018】本発明の他の目的は、高集積化可能な低コ
スト、かつ高速動作可能な可変長デコーダを提供するこ
とにある。
Another object of the present invention is to provide a variable-length decoder which can be highly integrated at low cost and can operate at high speed.

【0019】[0019]

【課題を解決するための手段】本発明は、上記課題を解
決するために、以下の手段を有する。本発明に係る可変
長コードをデコードするための可変長デコーダは、1又
は2以上の可変長コードの1部又は全部のバイナリデー
タを保持し、該データを並列に出力可能なデータ保持手
段と、各可変長コードの1部又は全部を構成するコード
からなるコードパターンと各コードの状態を識別するた
めの状態遷移情報が記憶された記憶手段と、前記データ
保持手段及び記憶手段に接続され、前記データ保持手段
からのバイナリデータと前記複数のコードパターンとを
比較し、一致するコードを検知する検知手段と、前記検
知手段に接続され、一致されたコードに対応する状態遷
移情報に基づき前記データ保持手段に保持されたバイナ
リデータを選択する選択手段とを有する。
The present invention has the following means in order to solve the above problems. A variable length decoder for decoding a variable length code according to the present invention holds a part or all of binary data of one or more variable length codes, and a data holding means capable of outputting the data in parallel. Connected to the data holding means and the storage means, a storage means in which a code pattern made up of a code forming part or all of each variable length code and state transition information for identifying the state of each code are stored; Binary data from the data holding means is compared with the plurality of code patterns to detect a matching code, and the data holding is connected to the detecting means and based on the state transition information corresponding to the matched code. Selecting means for selecting the binary data held in the means.

【0020】また、本発明に係る可変長デコーダは、1
又は2以上の可変長コードの1部又は全部のバイナリデ
ータを保持し、該データを並列に出力可能なデータ保持
手段と、前記データ保持手段に接続され、データ保持手
段からのバイナリデータの先頭から連続する論理”0”
または”1”のビット数をカウントし、カウント結果を
符号化して出力する符号化手段と、可変長コードの先頭
からの論理”0”または”1”のビット数に応じて複数
のテーブルを有し、該テーブルには各可変長コードのデ
コード値及び状態遷移情報がそれぞれ記憶され、前記符
号化手段の出力及び前記データ保持手段のバイナリデー
タをアドレスとして入力することにより、前記デコード
値を出力する記憶手段とを有する。
Also, the variable length decoder according to the present invention is 1
Alternatively, a part or all of binary data of two or more variable length codes is held, and the data holding means capable of outputting the data in parallel and the data holding means are connected to the data holding means from the beginning of the binary data. Continuous logic "0"
Alternatively, it has an encoding means for counting the number of bits of "1" and encoding and outputting the count result, and a plurality of tables depending on the number of bits of logical "0" or "1" from the beginning of the variable length code. Then, the table stores the decode value and the state transition information of each variable length code, and outputs the decode value by inputting the output of the encoding means and the binary data of the data holding means as an address. And storage means.

【0021】[0021]

【作用】このように本発明によれば、可変長コードを構
成するバイナリデータを一度に並列に読み出し、このデ
コーディングウインドゥを用いてデコードを行うことに
よりデコードのクロック速度を減少させ、つまり逆に言
えば、高速動作でない論理回路を使用して等価な高速多
重転送を提供することができる。
As described above, according to the present invention, binary data forming a variable-length code is read in parallel at once, and decoding is performed using this decoding window to reduce the clock speed of decoding, that is, conversely. In short, logic circuits that are not fast can be used to provide equivalent high speed multiplex transfers.

【0022】[0022]

【実施例】次に、本発明の実施例について図面を参照し
て説明する。以下の例は、MPEGにおけるDCT係数
についての可変長コード表を対象にし、入力バイナリス
トリングは、該コード表に規定された可変長コードの任
意のシーケンスからなるものと仮定する。なお、説明を
簡単にするために、実際にMPEGのデコーダに必要と
される以下の特徴を除外する。
Embodiments of the present invention will now be described with reference to the drawings. The following example is directed to a variable length code table for DCT coefficients in MPEG, and it is assumed that the input binary string consists of any sequence of variable length codes defined in the code table. For the sake of simplicity, the following features that are actually required for the MPEG decoder are excluded.

【0023】(1)上述した”最初”のコード及び”2
回目”のコードの2グループについては、個別的な処理
を考慮しないものとする。 (2)EOBコード(ブロックの終わりを示すコード)
を、係数コードの1つとみなし、特別なコードとしてデ
コード制御を行わないこととする。 (3)エスケープ+固定コードの特徴を含めないことと
する。 これらの特徴は、本実施例のハードウエアに特別の制御
回路を付加することにより対応でき、本発明の並列可変
長デコーダの本質的な機能に影響を及ぼすものではな
い。
(1) The above-mentioned "first" code and "2"
Individual processing is not considered for the two groups of "second" codes. (2) EOB code (code indicating the end of a block)
Is regarded as one of the coefficient codes, and decoding control is not performed as a special code. (3) The features of escape + fixed code shall not be included. These features can be dealt with by adding a special control circuit to the hardware of this embodiment, and do not affect the essential functions of the parallel variable length decoder of the present invention.

【0024】図1は、本実施例に係る4ビット並列可変
長デコーダの構成を示すブロック図である。本実施例に
係る並列デコーダは、1又は複数の可変長コードの1部
又は全部を構成する4ビットのバイナリデータを一度に
読み取る入力レジスタ11と、可変長コードをデコード
するために必要な情報を予め記憶したコードROM12
と、複数の一致ユニット部131を有する一致回路13
と、一致回路13に接続された選択回路14と、入力レ
ジスタ11とバレルシフタ16間の接続を制御するスイ
ッチ回路15と、入力レジスタ11からのデータをスイ
ッチ回路15を介して受け取るバレルシフタ16とを有
する。
FIG. 1 is a block diagram showing the configuration of a 4-bit parallel variable length decoder according to this embodiment. The parallel decoder according to the present embodiment includes an input register 11 for reading 4-bit binary data which constitutes a part or all of one or more variable length codes at one time, and information necessary for decoding the variable length codes. Code ROM 12 stored in advance
And a matching circuit 13 having a plurality of matching unit sections 131
A selection circuit 14 connected to the matching circuit 13, a switch circuit 15 for controlling the connection between the input register 11 and the barrel shifter 16, and a barrel shifter 16 for receiving data from the input register 11 via the switch circuit 15. .

【0025】入力レジスタ11は、直並列変換可能な4
ビットシフトレジスタであり、可変長コードを構成する
バイナリデータをシリアル入力し、4ビットの並列デー
タ、すなわち4ビットのデコーディングウインドゥを保
持し、これを一致回路13へ供給する。多重ビットの読
み取りにより、2つの可能性が発生する。1つは、デコ
ーディングウインドゥ内に2以上のコードが存在し、最
後のコードがウインドゥ内に終結しないという状態であ
る。もう1つは、4ビットウインドゥ以上のコードが存
在するということである。
The input register 11 has four serial / parallel convertible units.
It is a bit shift register, which serially inputs binary data that forms a variable length code, holds 4-bit parallel data, that is, 4-bit decoding window, and supplies this to the matching circuit 13. With the reading of multiple bits, two possibilities arise. One is a state in which more than one code exists in the decoding window and the last code does not end in the window. The other is that there are codes of 4 bits or more.

【0026】こうした問題を解決するために、本実施例
の可変長デコーダは、状態遷移情報をストアしたコード
ROM12を用いる。コードROM12は、図3及び図
4に示すように、複数のペイジを有し、各ペイジには、
マッチング用のコードパターン(バイナリビットパター
ン)と、各コード列毎に、終結フラグ、シフト長(全体
のコード長はバレルシフタで計算される)、及びコード
ROMの次アドレス、つまりページアドレスがストアさ
れる。
In order to solve such a problem, the variable length decoder of this embodiment uses the code ROM 12 storing the state transition information. The code ROM 12 has a plurality of pages, as shown in FIGS. 3 and 4, and each page includes:
The matching code pattern (binary bit pattern) and the end flag, shift length (the entire code length is calculated by the barrel shifter), and the next address of the code ROM, that is, the page address are stored for each code string. .

【0027】マッチングコードは4ビットであり、可変
長コード(例えば、MPEGでは2ビットないし18ビ
ット長)の1部又は全部を構成するものであり、階層的
に複数のペイジに分割されたマッチングコードを組み合
わせることで、可変長コードを特定することができる。
このため、各ペイジには、一致ユニット部131のユニ
ット数及びデコーディングウインドゥのビット長に対応
した16*4(ビット)=64ビットのコードパターン
が含まれる。
The matching code is 4 bits and constitutes a part or all of a variable length code (for example, 2 bits to 18 bits in MPEG), and the matching code is hierarchically divided into a plurality of pages. A variable length code can be specified by combining.
Therefore, each page includes a code pattern of 16 * 4 (bits) = 64 bits corresponding to the number of units of the matching unit unit 131 and the bit length of the decoding window.

【0028】終結フラグは、現在のデコーディングウイ
ンドゥがコード境界を含むか否か(入力コードが複数の
可変長コードを表すか否か)を示し、シフト長は、可変
長コードのコード長(終結フラグがアクティブ”1”の
とき)、あるいは可変長コードのシフト量(後述する)
を表す。次アドレスは、デコーディングウインドゥ内に
終結フラグが存在しない場合に、さらに可変長コードを
解読するための階層的なアドレス(ペイジアドレス)で
ある。つまり、終結フラグが”1”のときは、現在の可
変長コードのデコードは終結するので、次のアドレスは
必ず”0”となり、次の可変長コードのデコードのため
に初期ペイジアドレスが設定される。
The termination flag indicates whether or not the current decoding window includes a code boundary (whether or not the input code represents a plurality of variable length codes), and the shift length is the code length of the variable length code (termination). When the flag is active "1"), or the shift amount of the variable length code (described later)
Represents The next address is a hierarchical address (page address) for further decoding the variable length code when the termination flag does not exist in the decoding window. That is, when the termination flag is "1", the decoding of the current variable length code is terminated, so the next address is always "0", and the initial page address is set for the decoding of the next variable length code. It

【0029】一致回路13は、コードROM12及び入
力レジスタ11に接続され、マッチングコード及びこれ
に対応する状態遷移情報(終結フラグ、シフト長、次ア
ドレス)と、デコーディングウインドゥの4ビットのバ
イナリデータを受け取る。一致回路13は、16の一致
ユニット部131を有し、これらの一致ユニット部13
1に入力レジスタ11から4ビットバイナリデータを共
通に入力する。また、コードROM12から16候補の
コードパターンが入力され、これらと4ビットバイナリ
データが並列にマッチングされる。マッチングコードの
候補数は、特定の可変長コードのセット構造により決定
され、MPEGにおけるDCT係数の場合、最大16候
補存在する。
The matching circuit 13 is connected to the code ROM 12 and the input register 11, and outputs a matching code and state transition information (end flag, shift length, next address) corresponding thereto, and 4-bit binary data of the decoding window. receive. The matching circuit 13 has 16 matching unit sections 131, and these matching unit sections 13
4-bit binary data is commonly input to 1 from the input register 11. Also, 16 candidate code patterns are input from the code ROM 12 and these are matched in parallel with 4-bit binary data. The number of matching code candidates is determined by the set structure of a specific variable length code, and in the case of DCT coefficients in MPEG, there are a maximum of 16 candidates.

【0030】ここで、図2に一致ユニット部の詳細な構
成を示す。各一致ユニット部131は、デコーディング
ウインドゥに対応した複数のEXOR回路132と、E
XOR回路132に接続されたAND回路133を有す
る。各EXOR回路132は、デコーディングウインド
ゥからの4ビットデータを受け取るとともに、コードR
OM12からの4ビットマッチングコードを受け取り、
両者の比較を行う。EXOR回路132において、すべ
ての4ビットのバイナリ値が一致したとき、AND回路
133の出力は、ハイレベルとなる。
Here, FIG. 2 shows a detailed structure of the matching unit section. Each matching unit unit 131 includes a plurality of EXOR circuits 132 corresponding to a decoding window and E
It has an AND circuit 133 connected to the XOR circuit 132. Each EXOR circuit 132 receives the 4-bit data from the decoding window and, at the same time, receives the code R
Receive the 4-bit matching code from OM12,
Compare the two. In the EXOR circuit 132, when all the 4-bit binary values match, the output of the AND circuit 133 becomes high level.

【0031】また、各EXOR回路132には、イネー
ブル信号134が供給され、イネーブル信号の論理値に
応じて各EXOR回路をマスク、すなわち供給されたマ
ッチングコードを無効にする。イネーブル信号134
は、コードROM12のコード表に基づき出力される。
マッチングコードに対応する終結フラグがアクテイ
ブ(”1”)、すなわちデコーディングウインドゥ内に
コード境界が存在する場合には、デコード対象外の残存
コードのマッチングは不要となる。例えば、マッチング
コード”000X”であれば、終結フラグが”1”、シ
フト長が”3”であるから、先頭の3ビットがマッチン
グの対象として有効であり、残りの1ビットは一致した
ものとみなす必要がある。このため、残りの1ビットを
マスクするようイネーブル信号134が供給される。
An enable signal 134 is supplied to each EXOR circuit 132, and each EXOR circuit is masked according to the logical value of the enable signal, that is, the supplied matching code is invalidated. Enable signal 134
Is output based on the code table of the code ROM 12.
When the termination flag corresponding to the matching code is active (“1”), that is, when a code boundary exists in the decoding window, matching of the remaining code not to be decoded is unnecessary. For example, if the matching code is “000X”, since the end flag is “1” and the shift length is “3”, the first 3 bits are effective as a target for matching, and the remaining 1 bit is a match. Need to consider Therefore, the enable signal 134 is supplied so as to mask the remaining 1 bit.

【0032】選択回路14は、各一致ユニット部131
のAND回路133の出力に接続され、16候補のマッ
チングコードの中からヒットコードの位置を検知する
(もし、ヒットコードがなければエラーである)。ヒッ
トコードの検知により、選択回路14は、一致回路14
を介して得られた状態遷移情報(終結フラグ、シフト
長、次アドレス)の中から、ヒットコードに対応するデ
ータを選択する。なお、状態遷移情報は、AND回路1
33の出力に基づき選択されるようにしても良い。そし
て、次アドレス(終結フラグがアクテイブのときは、次
アドレス”0”)をコードROM12へ供給するととも
に、シフト長に基づく制御信号を入力レジスタ11、ス
イッチ回路15及びバレルシフタ16へ供給する。
The selection circuit 14 is provided with each matching unit section 131.
Is connected to the output of the AND circuit 133, and detects the position of the hit code from the 16 candidate matching codes (if there is no hit code, it is an error). Upon detection of the hit code, the selection circuit 14 causes the matching circuit 14 to
The data corresponding to the hit code is selected from the state transition information (end flag, shift length, next address) obtained via. The state transition information is the AND circuit 1
It may be selected based on the output of 33. Then, the next address (when the termination flag is active, the next address "0") is supplied to the code ROM 12, and the control signal based on the shift length is supplied to the input register 11, the switch circuit 15, and the barrel shifter 16.

【0033】スイッチ回路15は、入力レジスタ11と
バレルシフタ16間に接続され、その入力は、入力レジ
スタの4ビット出力が接続され、出力は、バレルシフタ
16の右側の4ビット位置に各々に接続される。スイッ
チ回路15は、選択回路14からのシフト長に基づきデ
ータを出力し、一致したバイナリデータがバレルシフタ
16の右側に位置にくるようにビットをシフトさせる。
仮に、デコーディングウインドゥにコード境界が存在
し、可変長コードが3ビット長である場合には、選択回
路14からシフト長”3”を示す制御信号が供給され、
入力レジスタ11の3ビットがバレルシフタ16の右側
の位置に出力される。
The switch circuit 15 is connected between the input register 11 and the barrel shifter 16, the input thereof is connected to the 4-bit output of the input register, and the output thereof is connected to the 4-bit position on the right side of the barrel shifter 16, respectively. . The switch circuit 15 outputs data based on the shift length from the selection circuit 14, and shifts the bits so that the matched binary data is located on the right side of the barrel shifter 16.
If there is a code boundary in the decoding window and the variable length code has a 3-bit length, the selection circuit 14 supplies a control signal indicating the shift length "3",
The 3 bits of the input register 11 are output to the position on the right side of the barrel shifter 16.

【0034】バレルシフタ16は、例えば18ビット長
のシフトレジスタであり、スイッチ回路15を介して一
致したバイナリデータを受け取る。バレルシフタ16の
シフト動作は、選択回路14からのシフト長に基づきク
ロック制御され、可変長コードの長さに応じてビットを
左側へシフトし、終結フラグが検知された時点で、デー
タはすべて左側の位置へシフトされるとともに、入力部
161から”0”が入力され、18ビットアドレスが完
成される。
The barrel shifter 16 is, for example, a shift register having a length of 18 bits, and receives the matched binary data via the switch circuit 15. The shift operation of the barrel shifter 16 is clock-controlled based on the shift length from the selection circuit 14, shifts the bits to the left side according to the length of the variable length code, and when the termination flag is detected, all the data on the left side is detected. While being shifted to the position, "0" is input from the input unit 161 to complete the 18-bit address.

【0035】次にデコード動作について説明する。入力
レジスタ11にバイナリデータ4ビットが読み取られ、
これらのコードは、一致回路14の各一致ユニット部1
31へ供給される。入力されたバイナリデータは、一致
回路13によって16候補のマッチングコードと比較さ
れ、いずれかのマッチングコードとヒットする。マッチ
ングにより、もし、デコーディングウインドゥ内にコー
ド境界が存在すれば、終結フラグがアクティブになり、
これが選択回路14により検知される。バイナリデー
タ、スイッチ回路15を介してシフト長により与えられ
たビット数だけ、デコーディングウインドゥからバレル
シフタ16内の右側の位置にシフトされた後、選択回路
14の制御により全部左側へシフトされる。そして、選
択回路14からのシフト長に基づくクロック制御信号に
より、入力レジスタ11の残りのバイナリデータが上位
へシフトされるとともに、コード境界位置に一致するよ
うに次のバイナリデータが入力レジスタ11に入力さ
れ、次の可変長コードのデコードが開始される。なお、
入力レジスタ11への次のバイナリデータの入力は、選
択回路14の制御により行っても良いし、あるいは、選
択回路からシフト長を他の制御部(図中省略)に供給
し、ここで行うようにしても良い。
Next, the decoding operation will be described. 4 bits of binary data are read to the input register 11,
These codes correspond to each matching unit section 1 of the matching circuit 14.
31 is supplied. The input binary data is compared with the 16 candidate matching codes by the matching circuit 13 and hits with any one of the matching codes. Matching activates the end flag if a code boundary exists in the decoding window,
This is detected by the selection circuit 14. The binary data is shifted from the decoding window to the right side position in the barrel shifter 16 by the number of bits given by the shift length via the switch circuit 15, and then is shifted to the left side under the control of the selection circuit 14. Then, by the clock control signal based on the shift length from the selection circuit 14, the remaining binary data of the input register 11 is shifted to the upper level, and the next binary data is input to the input register 11 so as to match the code boundary position. Then, the decoding of the next variable length code is started. In addition,
The input of the next binary data to the input register 11 may be performed by the control of the selection circuit 14, or the shift length is supplied from the selection circuit to another control unit (not shown in the figure) and is performed here. You can

【0036】他方、もし、コード境界が存在しなけれ
ば、デコーディングウインドゥのすべての内容は、バレ
ルシフタ16内にシフトされ、入力レジスタ11に次の
4ビットのバイナリデータが入力される。同時に、選択
回路14から次アドレスがコードROM12へ出力さ
れ、次のデコードに使用されるペイジがアドレスされ
る。そして、コードROM12から次ペイジアドレスの
マッチングパターンが読みだされ、次のデコーディング
ウインドゥと比較される。終結フラグがアクティブにな
ると、上述したようにバレルシフタ16の内容は、ビッ
トシフト後に演算構造に従う有効な等長コードとなる。
バレルシフタ16からの等長コードは、図示しないコー
ドROMのアドレスとして供給され、ランレングス及び
係数を表すデータにデコードされる。
On the other hand, if there is no code boundary, the entire contents of the decoding window are shifted into the barrel shifter 16 and the next 4-bit binary data is input to the input register 11. At the same time, the selection circuit 14 outputs the next address to the code ROM 12 to address the page to be used for the next decoding. Then, the matching pattern of the next page address is read from the code ROM 12 and compared with the next decoding window. When the termination flag becomes active, the content of the barrel shifter 16 becomes a valid equal-length code according to the operation structure after bit shift as described above.
The equal-length code from the barrel shifter 16 is supplied as an address of a code ROM (not shown) and decoded into data representing run length and coefficient.

【0037】例えば、10ビット長の可変長コードをデ
コードする場合には、デコーディングウインドゥが4ビ
ットであるから、3回のマッチングが行われる。つま
り、4ビットについて2回、残りの2ビットについて1
回である。まず、最初のマッチング終了後、デコーディ
ングウインドゥの4ビットコードは、選択回路14から
のシフト長に基づきスイッチ回路15を介してバレルシ
フタ16の右側の位置へすべてシフトされる。第2回目
のマッチング終了後、バレルシフタ16内のデータは、
選択回路14からのシフト長に基づき、4ビット左側へ
シフトされ、ついで、下位4ビットにはスイッチ回路1
5を介して4ビットコードが入力される。3回目のマッ
チングでは、デコーディングウインドゥの開始する2ビ
ットだけがテストされ、残りの2ビットは上述したよう
にマスクされる(図2)。このマッチングの結果によ
り、バレルシフタ16のデータは、2ビット左側へシフ
トされ、下位2ビットにはデコーディングウインドゥの
開始2ビットが入力され、入力161から”0”が押入
され、アドレスが完成される。こうして、可変長コード
の境界が識別されると、バレルシフタ16の内容がフラ
ッシュ(クリア)され、再び、次の可変長コードのデコ
ードが開始される。
For example, in the case of decoding a variable-length code having a length of 10 bits, since the decoding window has 4 bits, matching is performed 3 times. That is, twice for 4 bits and 1 for the remaining 2 bits
Times. First, after the completion of the first matching, the 4-bit code of the decoding window is all shifted to the right side position of the barrel shifter 16 via the switch circuit 15 based on the shift length from the selection circuit 14. After the second matching, the data in the barrel shifter 16 is
Based on the shift length from the selection circuit 14, it is shifted to the left by 4 bits, and then the switch circuit 1 is placed in the lower 4 bits.
A 4-bit code is input via 5. In the third match, only the two bits that start the decoding window are tested and the remaining two bits are masked as described above (FIG. 2). As a result of this matching, the data of the barrel shifter 16 is shifted to the left by 2 bits, the starting 2 bits of the decoding window are input to the lower 2 bits, and "0" is input from the input 161 to complete the address. . Thus, when the boundary of the variable length code is identified, the contents of the barrel shifter 16 are flushed (cleared), and the decoding of the next variable length code is started again.

【0038】実際のデコーディング動作では、可変長デ
コーダは、いくつかの個々のグループの可変長コードを
デコードしなければならない(例えば、前述したエスケ
ープコードなど)。このため、図1に示されるテーブル
セレクト入力121は、コードROM12に上位アドレ
スを与え、使用される可変長コードのセットを選択す
る。このテーブルセレクト信号は、MPEGシンタック
スシーケンサ(図2にはない)によって供給される。そ
して、使用されるべき次の可変長コードセットを決定す
るために、デコード完了信号がシーケンサから供給され
る。
In an actual decoding operation, the variable length decoder must decode several individual groups of variable length codes (eg, the escape codes mentioned above). Therefore, the table select input 121 shown in FIG. 1 gives the upper address to the code ROM 12 and selects the set of variable length codes to be used. This table select signal is supplied by an MPEG syntax sequencer (not in Figure 2). A decode complete signal is then provided by the sequencer to determine the next variable length code set to be used.

【0039】これらのコード表の最大長は、マッチング
するエレメントコードの総数(プライオリティEXO
R)によって決定され、MPEGにおける係数コード表
から図示した16ユニットが必要とされる。図3及び図
4に示すようなコード表は50程度あり、従って、コー
ドROMのサイズは、16*(4(コード)+1(終結
フラグ)+5(シフト長)+6(次のアドレス))*5
0=12.8Kbitsとなる。
The maximum length of these code tables is the total number of matching element codes (priority EXO).
16), which is determined by R) and illustrated from the coefficient code table in MPEG. There are about 50 code tables as shown in FIGS. 3 and 4, and therefore the size of the code ROM is 16 * (4 (code) +1 (end flag) +5 (shift length) +6 (next address)) * 5.
0 = 12.8 Kbits.

【0040】次に、本発明の第2の実施例について説明
する。MPEGにおける画像信号の可変長コードは、特
有の演算構造を持つ。コードは、先頭”0”(または”
1”)の部分とそれに引き続くバイナリパターンを有
し、コードの長いものほど、先頭部分に多くの”0”を
含むという特徴がある。本実施例は、このような点に着
目してなされたものであり、デコーディングウインドゥ
による並列デコードを行う代わりに、先頭の”0”の数
をカウントすることによりシングルクロックデコードを
行うものである。
Next, a second embodiment of the present invention will be described. The variable length code of the image signal in MPEG has a unique arithmetic structure. The code is the first "0" (or "
1 ") and the following binary pattern, and the longer the code, the more the number of" 0 "s included in the leading part. This embodiment has been made paying attention to such a point. Instead of performing the parallel decoding by the decoding window, the single clock decoding is performed by counting the number of leading "0" s.

【0041】図5は、本実施例に係るシングルクロック
可変長デコーダの構成を示すブロック図である。本デコ
ーダは、1又は複数の可変長コードの1部または全部を
構成するバイナリデータを入力するバレルシフタ回路2
01と、可変長コードの先頭”0”をカウントし、カウ
ント結果を4ビットに符号して出力する12ビットプラ
イオリティエンコーダ202と、可変長コードの先頭”
0”のビット数に応じて複数のテーブルを有し、該テー
ブルにシフト長及びデコード値をストアしたコードRO
M203と、各部の制御を行うシーケンサ204とを有
する。
FIG. 5 is a block diagram showing the configuration of a single-clock variable length decoder according to this embodiment. The decoder is a barrel shifter circuit 2 for inputting binary data which constitutes part or all of one or a plurality of variable length codes.
01, a 12-bit priority encoder 202 that counts the leading “0” of the variable length code, encodes the count result into 4 bits, and outputs the result,
A code RO having a plurality of tables according to the number of bits of "0" and storing the shift length and the decode value in the tables
It has an M203 and a sequencer 204 that controls each unit.

【0042】MPEGのデータ設計から、コードの先
頭”0”の最大数は11であり、残存するバイナリビッ
トの最大数は7である。但し、イントラDC係数では、
先頭デジットが”1”であるため、ビットは図に示すよ
うにインバータ205によって反転されなければならな
い。この切り替えは、シーケンサ204によって行われ
る。
From the MPEG data design, the maximum number of leading "0" s in the code is 11, and the maximum number of remaining binary bits is 7. However, with the intra DC coefficient,
Since the leading digit is "1", the bit must be inverted by the inverter 205 as shown. This switching is performed by the sequencer 204.

【0043】このようなことから、バレルシフタ回路2
01は18ビット長のシフトレジスタを有し、可変長コ
ードのバイナリストリングをバレルシフタの左からシフ
ト入力する。入力されたバイナリデータは、バレルシフ
タ回路201から並列に変換して出力され、変換された
出力は、コードROM203のアドレスとして供給され
るとともに、先頭12ビットがプライオリティエンコー
ダ202に出力される。
From the above, the barrel shifter circuit 2
01 has an 18-bit length shift register and shift-inputs a binary string of a variable length code from the left of the barrel shifter. The input binary data is parallelly converted and output from the barrel shifter circuit 201, and the converted output is supplied as an address of the code ROM 203, and the first 12 bits are output to the priority encoder 202.

【0044】プライオリティエンコーダ202は、”
0”をカウントし、どこに”1”があるのかを識別す
る。その識別結果は符号化され、コードROM203の
上位4ビットアドレス、つまりペイジアドレスとして出
力され、これによって”1”に続くコードを解読するた
めのテーブルが選択される。
The priority encoder 202 is
The number "0" is counted to identify where "1" is. The identification result is encoded and output as the upper 4 bit address of the code ROM 203, that is, the page address, thereby decoding the code following "1". The table for doing is selected.

【0045】また、バレルシフタ回路201の”1”を
除く次の”XXXXXX”として表された残りのビット
が、そのままコードROM203の上位アドレスとして
使用される。
The remaining bits of the barrel shifter circuit 201 other than "1" represented as "XXXXXXX" are used as the upper address of the code ROM 203 as they are.

【0046】仮に可変長コードが8ビット(先頭”0”
が3ビット、次の”1”に続き4ビットの”XXX
X”)である場合、プライオリティエンコーダ202に
より先頭”0”がカウントされ、その結果、4ビットア
ドレスにより特定のテーブルが選択される。同時に、先
頭4ビット以降の4ビット(”XXXX”に相当する部
分)がデコードアドレスとして用いられ、選択されたテ
ーブルに基づきデコードされる。なお、バレルシフタ回
路201の18アドレスビットのうち該当する4ビット
(”XXXX”)の選択は、例えば、エンコーダ202
の出力に基づきアドレスを選択するスイッチ回路を設け
てもよい。
Assuming that the variable length code is 8 bits (head "0")
Is 3 bits, followed by "1", then 4 bits "XXX"
X ”), the head encoder“ 0 ”is counted by the priority encoder 202, and as a result, a specific table is selected by the 4-bit address. At the same time, 4 bits after the head 4 bits (corresponding to“ XXXX ”) (Part) is used as a decode address and is decoded based on the selected table. Note that the corresponding 4 bits (“XXXX”) of the 18 address bits of the barrel shifter circuit 201 are selected by, for example, the encoder 202.
A switch circuit may be provided for selecting an address based on the output of.

【0047】また、MPEGのシンタックスは、18の
種々の可変長コード表を有するので、各表はデコードの
状態に従い適切に選択されなければならない。この情報
(EOBコードの発生、マクロブロックタイプなど)
は、シーケンサ204の制御信号206として入力さ
れ、シーケンサ204は、コードROM203からの状
態信号207に基づき、次のデコーダ動作(コードセッ
トの切り替え)を決定するため、コードROM203に
5ビットのアドレスを出力する。
Also, since the MPEG syntax has 18 various variable length code tables, each table must be properly selected according to the decoding state. This information (generation of EOB code, macroblock type, etc.)
Is input as a control signal 206 of the sequencer 204, and the sequencer 204 outputs a 5-bit address to the code ROM 203 in order to determine the next decoder operation (switching of code set) based on the status signal 207 from the code ROM 203. To do.

【0048】こうして、コードROM203は、15ビ
ットのアドレス入力を受け取り、これによって、該当す
るシフト長及びデコード値を出力する。バレルシフタ回
路201は、すべての先頭”0”(1)及び次の”1”
(0)を自動的にフラッシュするとともに、コードRO
M203からシフト長を受け取り、デコードされたビッ
トをフラッシュし、次のクロック動作により次の可変長
コードを入力し、デコードを開始する。バレルシフタ回
路201のデータは、コードROM203からのシフト
長により、先頭コード及びデコードされたビットを同時
にフラッシュしても良い。
In this way, the code ROM 203 receives the 15-bit address input and outputs the corresponding shift length and decode value accordingly. The barrel shifter circuit 201 has all the leading “0” (1) and the next “1”.
(0) is automatically flushed and code RO
The shift length is received from M203, the decoded bit is flushed, the next variable length code is input by the next clock operation, and decoding is started. As for the data of the barrel shifter circuit 201, the head code and the decoded bit may be simultaneously flashed according to the shift length from the code ROM 203.

【0049】可変長デコーダのクリティカルなタイミン
グパスは、プライオリテイエンコーダ202とコードR
OM203を介したパスである。ROMのサイズは、1
28K(15bits)*11bits=1.4Mbi
tsであり、11ビットがランレングスと振幅のもっと
も長い情報である。ROMの内容の高いリダンダンシに
より、ROMの代わりに統合化されたゲートアレイロジ
ックを使用するのが好ましい。
The critical timing path of the variable length decoder is the priority encoder 202 and the code R.
It is a path through the OM 203. ROM size is 1
28K (15 bits) * 11 bits = 1.4 Mbi
ts, and 11 bits are the longest run length and amplitude information. Due to the high redundancy of ROM content, it is preferable to use integrated gate array logic instead of ROM.

【0050】以上のアプローチにより、本実施例では2
0nsec/コードを達成する可変長(VLC)デコー
ダを構成することができる。平均的なコード長は4ビッ
ト以上であると思われるので、デコード能力は200M
ビット/sとなる。
According to the above approach, in this embodiment, 2
A variable length (VLC) decoder that achieves 0 nsec / code can be constructed. Since the average code length seems to be 4 bits or more, the decoding ability is 200M.
Bit / s.

【0051】並列可変長デコーダの構成及び動作は説明
した通りである。MPEG画像の符号化に用いられる大
部分の可変長コードは、4ビット以上であり、しかも、
並列可変長デコーダを使用することにより、デコード速
度を非常に高速にすることができる。一般に、可変長コ
ードのデコード、ビデオデコーダの速度のクリティカル
な要素の1つとみなされてきたが、本実施例により、高
速デコーダを容易に実施することが可能となった。な
お、本実施例では、デコーディングウインドゥの長さを
4ビットとしたが、この値は統計的なシミュレーション
により望ましい値に決定されなければならない。
The structure and operation of the parallel variable length decoder are as described above. Most variable length codes used for encoding MPEG images are 4 bits or more, and
By using a parallel variable length decoder, the decoding speed can be very fast. Generally, it has been regarded as one of the critical factors of the decoding of the variable length code and the speed of the video decoder, but this embodiment makes it possible to easily implement the high speed decoder. In this embodiment, the length of the decoding window is set to 4 bits, but this value must be determined to be a desired value by statistical simulation.

【0052】[0052]

【発明の効果】以上詳細に説明したように本発明によれ
ば、可変長コードを構成するバイナリデータを並列に読
み取り、これによって可変長コードの境界を識別し、デ
コードすることが可能となったので、ビット毎に解読を
行うデコーダと比較して非常に高速なデコード動作が可
能となる。例えば、高速で転送された画像データをリア
ルタイムで解読することが必要なMPEGに適用するこ
とができる。
As described above in detail, according to the present invention, it is possible to read the binary data forming the variable-length code in parallel, thereby identifying the boundary of the variable-length code and decoding it. Therefore, a very high-speed decoding operation can be performed as compared with a decoder that decodes bit by bit. For example, it can be applied to MPEG, which requires decoding of image data transferred at high speed in real time.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1の実施例に係る可変長デコーダの
構成を示すブロック図。
FIG. 1 is a block diagram showing a configuration of a variable length decoder according to a first embodiment of the present invention.

【図2】図1の一致ユニット部の詳細を示す図。FIG. 2 is a diagram showing details of a matching unit section in FIG.

【図3】コードROMの内容を示す図。FIG. 3 is a diagram showing the contents of a code ROM.

【図4】コードROMの内容を示す図。FIG. 4 is a diagram showing the contents of a code ROM.

【図5】本発明の第2の実施例に係る可変長デコーダの
構成を示すブロック図。
FIG. 5 is a block diagram showing the configuration of a variable length decoder according to a second embodiment of the present invention.

【図6】従来の符号化回路の一構成例を示す図。FIG. 6 is a diagram showing a configuration example of a conventional encoding circuit.

【図7】従来の符号化回路の一構成例を示す図。FIG. 7 is a diagram showing a configuration example of a conventional encoding circuit.

【図8】DCT係数符号化のための可変長コードを示す
図。
FIG. 8 is a diagram showing a variable length code for DCT coefficient coding.

【図9】従来のDCT係数の可変長コードのデコード例
を示す図。
FIG. 9 is a diagram showing an example of decoding a variable length code of a conventional DCT coefficient.

【図10】従来のDCT係数コードの可変長デコードの
ための状態遷移を示す図。
FIG. 10 is a diagram showing state transitions for variable length decoding of a conventional DCT coefficient code.

【図11】デコーディングウインドゥの境界とコード境
界の関係を示す図。
FIG. 11 is a diagram showing a relationship between a decoding window boundary and a code boundary.

【符号の説明】[Explanation of symbols]

11 入力レジスタ 12 コードROM 13 一致回路 14 選択回路 15 スイッ チ回路 16 バルシフタ 131 一致ユニット部 201 バレルシフタ回路 202 プライオリテイエンコーダ 203 コードROM 204 シーケンサ 11 Input Register 12 Code ROM 13 Matching Circuit 14 Selection Circuit 15 Switch Circuit 16 Balsifter 131 Matching Unit Section 201 Barrel Shifter Circuit 202 Priority Encoder 203 Code ROM 204 Sequencer

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 可変長コードをデコードするための可変
長デコーダであって、(a)1又は2以上の可変長コー
ドの1部又は全部のバイナリデータを保持し、該データ
を並列に出力可能なデータ保持手段と、(b)各可変長
コードの1部又は全部を構成するコードからなるコード
パターンと各コードの状態を識別するための状態遷移情
報が記憶された記憶手段と、(c)前記データ保持手段
及び記憶手段に接続され、前記データ保持手段からのバ
イナリデータと前記複数のコードパターンとを比較し、
一致するコードを検知する検知手段と、(d)前記検知
手段に接続され、一致されたコードに対応する状態遷移
情報に基づき前記データ保持手段に保持されたバイナリ
データを選択する選択手段とを有する前記可変長デコー
ダ。
1. A variable length decoder for decoding a variable length code, comprising: (a) holding a part or all of binary data of one or more variable length codes and outputting the data in parallel. Data holding means, (b) storage means for storing code pattern consisting of codes forming part or all of each variable length code and state transition information for identifying the state of each code, (c) Connected to the data holding means and the storage means, compares the binary data from the data holding means with the plurality of code patterns,
A detecting means for detecting a matching code; and (d) a selecting means connected to the detecting means for selecting the binary data held in the data holding means based on the state transition information corresponding to the matched code. The variable length decoder.
【請求項2】 請求項第1項において、前記記憶手段
は、複数のペイジを有し、各ペイジは、各可変長コード
を階層的に分割したコードパターンと状態遷移情報を記
憶し、前記コードパターンは、前記データ保持手段に保
持されたバイナリデータのビット数に対応したビット数
のコード列を複数含み、前記状態遷移情報は、各コード
列に対応して可変長コード長に関する情報及びペイジア
ドレスを含み、前記選択手段は、一致したコード列に対
応するペイジアドレスを前記記憶手段に供給することを
特徴とする可変長デコーダ。
2. The storage device according to claim 1, wherein the storage unit has a plurality of pages, and each page stores a code pattern and state transition information obtained by hierarchically dividing each variable length code, and the code. The pattern includes a plurality of code strings having the number of bits corresponding to the number of bits of the binary data held in the data holding means, and the state transition information includes information about a variable length code length and a page address corresponding to each code string. The variable length decoder, wherein the selection means supplies the storage means with a page address corresponding to the matched code string.
【請求項3】 請求項第2項において、前記選択手段
は、シフトレジスタを有し、一致したコード列に対応す
る状態遷移情報により、前記データ保持手段に保持され
たバイナリデータが可変長コードの1部であるときに
は、該バイナリデータをすべて前記シフトレジスタへシ
フトさせることを特徴とする可変長デコーダ。
3. The selection means according to claim 2, wherein the selection means has a shift register, and the binary data held in the data holding means is a variable length code according to the state transition information corresponding to the matched code string. A variable length decoder that shifts all the binary data to the shift register when the number of copies is one.
【請求項4】 請求項第3項において、前記データ保持
手段は、バイナリデータが可変長コードの1部であると
検知された場合、該可変長コードの残りを構成するバイ
ナリデータを入力することを特徴とする可変長デコー
ダ。
4. The data holding means according to claim 3, when the binary data is detected as a part of the variable length code, the binary data constituting the rest of the variable length code is input. Variable length decoder characterized by.
【請求項5】 請求項第3項において、前記選択手段
は、一致したコード列に対応する状態遷移情報により、
前記データ保持手段に保持されたバイナリデータに可変
長コードの境界が含まれるときには、先行する可変長コ
ードに対応する部分のバイナリデータを前記シフトレジ
スタへシフトさせ、前記データ保持手段に次の可変長コ
ードのバイナリデータを入力させることを特徴とする可
変長デコーダ。
5. The selection device according to claim 3, wherein the selection means uses state transition information corresponding to the matched code string,
When the binary data held in the data holding means includes the boundary of the variable length code, the binary data of the portion corresponding to the preceding variable length code is shifted to the shift register, and the data holding means moves to the next variable length code. Variable length decoder characterized by inputting binary data of code.
【請求項6】 可変長コードをデコードするための可変
長デコーダであって、(a)1又は2以上の可変長コー
ドの1部又は全部のバイナリデータを保持し、該データ
を並列に出力可能なデータ保持手段と、(b)前記デー
タ保持手段に接続され、データ保持手段からのバイナリ
データの先頭から連続する論理”0”または”1”のビ
ット数をカウントし、カウント結果を符号化して出力す
る符号化手段と、(c)可変長コードの先頭からの論
理”0”または”1”のビット数に応じて複数のテーブ
ルを有し、該テーブルには各可変長コードのデコード値
及び状態遷移情報がそれぞれ記憶され、前記符号化手段
の出力及び前記データ保持手段のバイナリデータをアド
レスとして入力することにより、前記デコード値を出力
する記憶手段とを有することを特徴とする前記可変長デ
コーダ。
6. A variable length decoder for decoding a variable length code, comprising: (a) holding a part or all of binary data of one or more variable length codes and outputting the data in parallel. Data holding means, and (b) is connected to the data holding means, counts the number of consecutive logical "0" or "1" bits from the beginning of the binary data from the data holding means, and encodes the count result. It has an encoding means for outputting and (c) a plurality of tables according to the number of bits of logic "0" or "1" from the head of the variable length code, and in the table, the decode value of each variable length code and State transition information is stored respectively, and storage means for outputting the decoded value by inputting the output of the encoding means and the binary data of the data holding means as an address is provided. The variable length decoder according to claim 1.
【請求項7】 請求項第6項において、前記データ保持
手段は、前記記憶手段から前記状態遷移情報を受取り、
前記状態遷移情報に基づきデコードされたバイナリデー
タをクリアし、次のバイナリデータを入力することを特
徴とする可変長デコーダ。
7. The data holding means according to claim 6, receiving the state transition information from the storage means,
A variable length decoder which clears the decoded binary data based on the state transition information and inputs the next binary data.
JP33228793A 1993-12-27 1993-12-27 Variable-length decoder Pending JPH07212244A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33228793A JPH07212244A (en) 1993-12-27 1993-12-27 Variable-length decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33228793A JPH07212244A (en) 1993-12-27 1993-12-27 Variable-length decoder

Publications (1)

Publication Number Publication Date
JPH07212244A true JPH07212244A (en) 1995-08-11

Family

ID=18253270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33228793A Pending JPH07212244A (en) 1993-12-27 1993-12-27 Variable-length decoder

Country Status (1)

Country Link
JP (1) JPH07212244A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158698A (en) * 2005-12-05 2007-06-21 Matsushita Electric Ind Co Ltd Image decoding apparatus and image decoding method
CN104283567A (en) * 2013-07-02 2015-01-14 北京四维图新科技股份有限公司 Method for compressing or decompressing name data, and equipment thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158698A (en) * 2005-12-05 2007-06-21 Matsushita Electric Ind Co Ltd Image decoding apparatus and image decoding method
CN104283567A (en) * 2013-07-02 2015-01-14 北京四维图新科技股份有限公司 Method for compressing or decompressing name data, and equipment thereof
CN104283567B (en) * 2013-07-02 2018-07-03 北京四维图新科技股份有限公司 A kind of compression of name data, decompression method and equipment

Similar Documents

Publication Publication Date Title
US7079057B2 (en) Context-based adaptive binary arithmetic coding method and apparatus
US5045852A (en) Dynamic model selection during data compression
KR100729270B1 (en) Method and Arrangement for Encoding Transformation Coefficients in Image and/or Video Encoders and Decoders, Corresponding Computer Program, and Corresponding Computer-readable Storage Medium
US5208593A (en) Method and structure for decoding Huffman codes using leading ones detection
KR100648258B1 (en) Context-based adaptive binary arithmetic decoder of pipeline structure for high speed decoding operation
US5801650A (en) Decoding apparatus and method
US7365660B2 (en) Method and device for decoding syntax element in CABAC decoder
JP2870515B2 (en) Variable length coding device
US5436626A (en) Variable-length codeword encoder
KR100717055B1 (en) Method of decoding bin values using pipeline architecture, and decoding apparatus therefor
JPH07123229B2 (en) Decryption device
KR20030096443A (en) Encoding method and encoding apparatus and decoding method and decoding apparatus
US6185339B1 (en) Bit stream analyzing method and apparatus
WO1996031008A1 (en) Syntax based arithmetic coding circuit
US20030053700A1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding
US6130631A (en) Method and apparatus utilizing a simplified content-addressable memory for JPEG decoding
JPH10271016A (en) Encoder/decoder
KR100466455B1 (en) Code converter, variable length code decoder and method of decoding variable length code
KR0180164B1 (en) A variable length decoder
JPH07212244A (en) Variable-length decoder
JP4537089B2 (en) Variable length decoding apparatus and method, computer program, and computer readable storage medium
KR0152035B1 (en) Method and apparatus of variable length decode
KR100207428B1 (en) Variable length coding apparatus and method adaptive to changes of the hoffman codes
JP2934603B2 (en) Method and apparatus for decoding variable length code
Park et al. Area efficient fast Huffman decoder for multimedia applications