[go: up one dir, main page]

JP3230933B2 - Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder - Google Patents

Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder

Info

Publication number
JP3230933B2
JP3230933B2 JP19509094A JP19509094A JP3230933B2 JP 3230933 B2 JP3230933 B2 JP 3230933B2 JP 19509094 A JP19509094 A JP 19509094A JP 19509094 A JP19509094 A JP 19509094A JP 3230933 B2 JP3230933 B2 JP 3230933B2
Authority
JP
Japan
Prior art keywords
data
decoding
stream
code
probability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP19509094A
Other languages
Japanese (ja)
Other versions
JPH0865171A (en
Inventor
エル シュワルツ エドワード
ディ アレン ジェイムス
ピィ ボーリック マーティン
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP19509094A priority Critical patent/JP3230933B2/en
Publication of JPH0865171A publication Critical patent/JPH0865171A/en
Application granted granted Critical
Publication of JP3230933B2 publication Critical patent/JP3230933B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、データ圧縮/伸長装置
の分野に係り、特に、圧縮/伸長装置においてデータの
並列エンコーディング及びデコーディングのための方法
及び装置に関する。
FIELD OF THE INVENTION The present invention relates to the field of data compression / decompression devices, and more particularly to a method and apparatus for parallel encoding and decoding of data in a compression / decompression device.

【0002】[0002]

【従来の技術】データ圧縮は、大量のデータの記憶及び
伝送のために非常に有用なツールである。例えば、圧縮
を利用してイメージ再現に必要なビット数を減らすこと
によって、文書のファクシミリ伝送のようなイメージ伝
送に要する時間は飛躍的に減少する。
BACKGROUND OF THE INVENTION Data compression is a very useful tool for storing and transmitting large amounts of data. For example, by using compression to reduce the number of bits required for image reproduction, the time required for image transmission, such as facsimile transmission of a document, is dramatically reduced.

【0003】従来から非常に様々なデータ圧縮手法があ
る。圧縮手法は、損失性コーディングと非損失性コーデ
ィングに大分類される。損失性コーディングは、コーデ
ィングによって情報が失われるので、オリジナル画像の
完全な再現は保証されない。損失性コーディングの目標
は、オリジナル画像に対する変化を、問題にならない、
あるいは気付かれない程度にすることである。非損失性
圧縮においては、全ての情報が保存され、データは完全
に復元できるように圧縮される。
Conventionally, there are a variety of data compression techniques. Compression techniques are broadly classified into lossy coding and lossless coding. Lossy coding does not guarantee complete reproduction of the original image because the coding loses information. The goal of lossy coding is to make changes to the original image unimportant,
Or, to the extent that it is not noticed. In lossless compression, all information is preserved and the data is compressed so that it can be completely restored.

【0004】非損失性圧縮の場合、入力シンボルは出力
符号語に変換される。圧縮がうまくいったときは、符号
語は入力シンボルより少ないビット数で表現される。非
損失性コーディング法には、辞書コーディング法(例え
ばLenpel-Ziv)、ランレングス・コーディング、計数
(enumerative)コーディング、及びエントロピー・コー
ディングがある。ランレングス・コーディングの詳細に
ついては『H.Meyr,H.G.Roskolsky,and T.S.H
uang,”Optimum Run Length Codes”,IEEE T
ransactions on Communications, Vol.COM-2
2,No.6,June 1974,pp.826-835』、
『G.G.Langdon,Jr.,”AnAdaptive Run-Len
gth Coding Algorithm”, IBM TechnicalDisclo
sure Bulletin, Vol.26,No.7B,December 1
983, pp.3783-3785』(ダイナミックに変化
するk値のR2(k)コードを使用するコーディング方式は
Langdonによる)、『S.W.Golomb,”Run-Length
Encoding,” IEEE Trans., IT-12,(July
1966),pp.399』を参照されたい。ランレング
ス・コードとそのファクシミリ伝送に関連した利用に関
する詳細については『M.Takagi and T.Tsuda,”
A Highly Efficient Run-Length Coding Scheme
For Facsimile Transmission”Electronics andC
ommunications in Japan,Vol.58-A,No.2,1
9752pp.30-38』を参照されたい。また1982
年4月13日発行米国特許第4,325,085号「Met
hod and Apparatus for Adaptive Facsimile Compr
ession Usinga Two Dimensional Maximum Likelyh
ood Predictor(R.P.Gooch)」も参照されたい。
[0004] For lossless compression, input symbols are converted to output codewords. If compression is successful, the codeword is represented with fewer bits than the input symbol. Lossless coding methods include dictionary coding methods (eg Lenpel-Ziv), run-length coding, counting
(enumerative) coding, and entropy coding. See H. Meyr, H. G. Roskolsky, and T. S. H. for details on run-length coding.
uang, "Optimum Run Length Codes", IEEE T
ransactions on Communications, Vol. COM-2
2, No. 6, June 1974, pp. 826-835],
[G. G. FIG. Langdon, Jr., "An Adaptive Run-Len
gth Coding Algorithm ", IBM Technical Disclosure
sure Bulletin, Vol.26, No.7B, December 1
983, pp.3783-3785] (The coding method using the R2 (k) code having a dynamically changing k value is as follows.
Langdon), "SW Golomb," Run-Length
Encoding, "IEEE Trans., IT-12, (July
1966), pp. 399]. For more information on run-length codes and their use in connection with facsimile transmission, see "M. Takagi and T.S. Tsuda, "
A Highly Efficient Run-Length Coding Scheme
For Facsimile Transaction "Electronics and C
ommunications in Japan, Vol. 58-A, No. 2, 1
9752 pp. 30-38]. 1982
U.S. Pat. No. 4,325,085, issued on Apr. 13, 2014,
hod and Apparatus for Adaptive Facsimile Compr
ession Usinga Two Dimensional Maximum Likelyh
See also ood Predictor (RP Gooch).

【0005】エントロピー・コーディングは、なんらか
の非損失性(したがって完全な再現が可能な)コーディ
ング法により、既知又は推定のシンボル確率を用いてデ
ータをエントロピー限界近くまで圧縮を試みるようにし
てなるものである。エントロピー・コードには、ハフマ
ン・コード、算術コード及びバイナリ・エントロピー・
コードが含まれる。ハフマン・コーディングは、各シン
ボルに対し整数個のビットを生成する固定長−可変長コ
ードを用いる。しかし、ハフマン・コーディングは1ビ
ット未満ではシンボルを符号化できないので、確率が5
0%を超える単一シンボルを効率的に符号化できない。
算術コードは、無限精度浮動小数点数を必要とする理論
的コーディング手法を基礎としている。しかしながら、
算術コーダは有限精度の演算によってしか実現できない
のであるから、符号化効率は理論的な最大効率より下が
る。実際的な算術コーダ、例えばIBM社のQコーダ
は、付加的な手法を用いることにより、圧縮効率を犠牲
にして、ソフトウエアを高速化し、あるいはハードウエ
アを減らしている。Qコーダはバイナリ算術コーダで、
乗算は加算に置き換えられ、確率値は離散値に制限さ
れ、確率推定値はビット出力時に更新される。
[0005] Entropy coding uses some lossless (and thus fully reproducible) coding technique to attempt to compress data to near the entropy limit using known or estimated symbol probabilities. . Entropy codes include Huffman codes, arithmetic codes, and binary entropy codes.
Code included. Huffman coding uses a fixed length-variable length code that generates an integer number of bits for each symbol. However, Huffman coding cannot encode symbols with less than one bit, so the probability is 5
Single symbols greater than 0% cannot be encoded efficiently.
Arithmetic code is based on theoretical coding techniques that require infinite precision floating point numbers. However,
Since an arithmetic coder can only be realized by finite precision arithmetic, the coding efficiency is lower than the theoretical maximum efficiency. Practical arithmetic coders, such as the IBM Q coder, use additional techniques to speed up software or reduce hardware at the expense of compression efficiency. Q coder is a binary arithmetic coder,
Multiplication is replaced by addition, the probability values are limited to discrete values, and the probability estimates are updated on bit output.

【0006】バイナリ・エントロピー・コーダは非損失
性の(つまり完全な再現が可能な)符号器であり、最高
確率のシンボル(MPS)及び最低確率のシンボル(L
PS)として表現されることの多いバイナリ(yes/
no)デシジョンしか扱えない。バイナリ・エントロピ
ー・コーダの例には、IBM社のQコーダと、Bコーダ
と呼ばれるコーダがある。このBコーダは、圧縮のため
に有限状態マシンを利用するバイナリ・エントロピー・
コーダである。Bコーダについての詳細については、係
属中の米国特許出願07/931,156号(1992
年8月17日受理、” Method and Apparatus For
Entropy Coding”)を参照されたい。
[0006] A binary entropy coder is a lossless (ie, fully reproducible) coder that has the highest probability symbol (MPS) and the lowest probability symbol (L
Binary (yes /
no) Only decisions can be handled. Examples of binary entropy coders include the IBM Q coder and the coder called the B coder. This B coder uses a binary entropy algorithm that utilizes a finite state machine for compression.
Coda. For more information on the B coder, see pending US patent application Ser. No. 07 / 931,156 (1992).
Received on August 17, 2008, "Method and Apparatus For
Entropy Coding ”).

【0007】図1はバイナリ・エントロピー・コーダを
用いた従来の圧縮/伸長システムのブロック図を示す。
コーディングの場合、データはコンテキスト(contex
t)モデル(CM)101に入力される。CM101は
入力データをバイナリ・デシジョンの集合または系列に
変換し、かつ各デシジョンに対するコンテキスト・ビン
(context bin)を提供する。バイナリ・デシジョンの
系列とそれらに関連したコンテキスト・ビンの両方がC
M101から確率推定モジュール(PEM)102へ出
力される。PEM102は各コンテキスト・ビンを受け
取って、各バイナリ・デシジョンの確率推定値を生成す
る。実際的な確率推定値は、通常、Pクラスと呼ばれる
クラスによって表現される。各Pクラスは、ある範囲
(range)の確率に用いられる。PEM102はまた、
バイナリ・デシジョン(結果)がその高確率の状態であ
るか否か(すなわち、そのデシジョンがMPSに相当す
るか否か)の判定もする。ビットストリーム・ジェネレ
ータ(BG)モジュール103は、その入力として、確
率推定値(すなわちPクラス)と、バイナリ・デシジョ
ンの確率が高いか否かの判定結果とを受け取る。そし
て、BGモジュール103は、オリジナル入力データを
表わす圧縮データ、すなわち0または1個以上のビット
を出力する。
FIG. 1 shows a block diagram of a conventional compression / decompression system using a binary entropy coder.
For coding, the data is context (contex
t) Input to the model (CM) 101. CM 101 converts the input data into a set or sequence of binary decisions and provides a context bin for each decision. Both the series of binary decisions and their associated context bins are C
The signal is output from M101 to the probability estimation module (PEM). PEM 102 receives each context bin and generates a probability estimate for each binary decision. Practical probability estimates are usually represented by a class called the P class. Each P-class is used for a range of probabilities. PEM102 also
It is also determined whether the binary decision (result) is in the high probability state (ie, whether the decision corresponds to an MPS). The bitstream generator (BG) module 103 receives as inputs a probability estimate (ie, a P-class) and a determination of whether the probability of a binary decision is high. Then, the BG module 103 outputs compressed data representing the original input data, that is, zero or one or more bits.

【0008】デコーディングの場合、CM104はコン
テキスト・ビンをPEMに与え、PEMは該コンテキス
ト・ビンに基づき確率クラス(Pクラス)をBGモジュ
ール106に与える。BGモジュール106は、その確
率クラスを受け取るように接続されている。この確率ク
ラスに応じて、BGモジュール106はバイナリ・デシ
ジョン(すなわちイベント)がその最高確率の状態であ
るか否かを示す1ビットを返す。PEM105は、この
ビットを受け取り、同ビットに基づいて確率推定値を更
新し、その結果をCM104へ返す。CM104は、こ
の返されたビットを受け取り、それを用いてオリジナル
データを生成し、かつ次のバイナリ・デシジョンのため
のコンテキスト・ビンを更新する。
In the case of decoding, the CM 104 gives the context bin to the PEM, and the PEM gives a probability class (P class) to the BG module 106 based on the context bin. The BG module 106 is connected to receive the probability class. In response to this probability class, BG module 106 returns a bit indicating whether the binary decision (ie, event) is in its highest probability state. The PEM 105 receives this bit, updates the probability estimate based on the bit, and returns the result to the CM 104. CM 104 receives the returned bits, uses it to generate the original data, and updates the context bin for the next binary decision.

【0009】コンテキスト・モデルは通常、特定用途向
けである。どのような種類のデータもビットに分解でき
るので、バイナリ・エントロピー・コーダは、適当なコ
ンテキスト・モデルを用いることにより、どのようなデ
ータにも利用できる。コンテキスト・モデルの一例は、
JBIG規格により与えられる(ISO/IECInter
national Standard,”Coded Representation of Pi
cture and AudioInformation-Progressive Bi-leve
l Image Compresion Standard”)。
[0009] Context models are typically application-specific. Since any kind of data can be broken down into bits, a binary entropy coder can be used with any data by using a suitable context model. One example of a context model is
Given by the JBIG standard (ISO / IEClnter
national Standard, "Codded Representation of Pi
cture and AudioInformation-Progressive Bi-leve
l Image Compresion Standard ”).

【0010】「モデル・テンプレートは、コード化しよ
うとする画素の周辺を定義する。これら周辺の画素の値
と、微分レイヤの空間位相とで、一つのコンテキストを
定義する。」 コンテキスト・モデルのもう一つの例はJPEG規格に
より与えられる (Digital Compression and Coding of Continuous
-tone Still Images.ISO/IEC internationa
l Standard)。
"The model template defines the surroundings of the pixels to be coded. The values of these surrounding pixels and the spatial phase of the differential layer define one context." One example is given by the JPEG standard (Digital Compression and Coding of Continuous).
-tone Still Images. ISO / IEC internationa
l Standard).

【0011】コンテキスト・モデルは特定用途向けであ
るので、汎用のコーダは確率推定モジュールとビットス
トリーム・ジェネレータだけを考慮して作られる。ある
種の確率推定モジュールとビットストリーム・モジュー
ルとは代替可能である。別の確率推定モジュールは、あ
る特定のビットストリーム・ジェネレータにのみ格別に
依存する。例えば、IBM社のQコーダは確率推定モジ
ュールとビットストリーム・ジェネレータとを組み合わ
せたものである。Bコーダはビットストリーム・ジェネ
レータにすぎない。したがって、Bコーダは任意の確率
推定モジュールと一緒に使用できる。
[0011] Since the context model is application specific, a general purpose coder is built with only the probability estimation module and the bitstream generator in mind. Certain probability estimation modules and bitstream modules can be substituted. Another probability estimation module relies exceptionally only on one particular bitstream generator. For example, IBM's Q coder combines a probability estimation module and a bitstream generator. The B coder is just a bitstream generator. Thus, the B coder can be used with any probability estimation module.

【0012】IBM社のQコーダやBコーダのような、
バイナリ・エントロピー・コードを用いるデコーダの問
題点は、ハードウエアで実現したとしても速度が遅いこ
とである。それらの動作には、単一の大きな低速フィー
ドバックループが必要になる。デコーディング・プロセ
スを書き直すために、コンテキスト・モデルは過去のデ
コードしたデータを用いてコンテキストを生成する。確
率推定モジュールは、このコンテキストを用いて確率ク
ラスを生成する。ビットストリーム・ジェネレータは、
この確率クラスと圧縮データを用いて、次のビットが、
ありそうな結果であるか、ありそうでない結果であるか
(likely or unlikely result)を判定する。確率推定
モジュールは、この「ありそうな/ありそうでない結
果」を用いて結果ビットを生成し(かつ、コンテキスト
に対する確率推定を更新する)。この結果ビットは、コ
ンテキスト・モデルによって、その過去のデータの履歴
を更新するために用いられる。これらのステップがすべ
て、1ビットのデコーディングのために必要とされる。
コンテキスト・モデルは結果ビットの履歴を更新するま
では次のコンテキストを提供できないので、次ビットの
デコーディングは待たなければならない。そのため、従
来は、単一のコードデータストリームの並列デコーディ
ングは行なわれていない。圧縮データのデコーディング
速度を上げるには、データを並列にデコードすることが
望まれる。
[0012] Like IBM's Q coder and B coder,
The problem with decoders that use binary entropy codes is that they are slow even if implemented in hardware. Their operation requires a single large slow feedback loop. To rewrite the decoding process, the context model generates context using past decoded data. The probability estimation module uses the context to generate a probability class. The bitstream generator is
Using this probability class and compressed data, the next bit is
It is determined whether the result is likely or unlikely (likely or unlikely result). The probability estimation module uses this "probable / impossible result" to generate a result bit (and updates the probability estimate for the context). This result bit is used by the context model to update the history of the past data. All of these steps are required for 1-bit decoding.
The decoding of the next bit must wait because the context model cannot provide the next context until the result bit history is updated. Therefore, conventionally, parallel decoding of a single code data stream has not been performed. In order to increase the decoding speed of the compressed data, it is desired to decode the data in parallel.

【0013】[0013]

【発明が解決しようとする課題】よって、本発明の主た
る目的は、高速デコーディングを実現することである
が、この目的及び他の多くの目的の詳細は以下の実施例
に関連した説明によって明白になろう。
Accordingly, it is a primary object of the present invention to achieve high speed decoding, and the details of this and many other objects will be apparent from the description in connection with the following embodiments. Would.

【0014】[0014]

【課題を解決するための手段】本発明は、コード化デー
タのデコーディングに並列化を導入する。本発明の一態
様によれば、デコーディング装置は複数のコンテキスト
・ビンを並列処理する構成を持ち、コード化データスト
リームはコンテキスト・ビンに対応した複数のデータス
トリームに再編成され、独立して動作する複数組のビッ
トストリーム・ジェネレータと確率推定モジュールの組
合せに送られる。本発明のもう一つの態様によれば、デ
コーディング装置は、別々の確率クラスに対応付けられ
た複数のビットストリーム・ジェネレータにより、確率
クラスに従ってコード化データストリームが並列処理さ
れる構成とされる。
SUMMARY OF THE INVENTION The present invention introduces parallelism in decoding coded data. According to one aspect of the present invention, the decoding apparatus has a configuration for processing a plurality of context bins in parallel, and the coded data stream is rearranged into a plurality of data streams corresponding to the context bins and operates independently. To a combination of multiple sets of bitstream generators and probability estimation modules. According to another aspect of the present invention, the decoding apparatus is configured such that the coded data streams are processed in parallel according to the probability classes by a plurality of bitstream generators associated with different probability classes.

【0015】なお、課題を解決するための本発明の上記
ならびに他の手段については、実施例に関連した記述中
において詳細に説明する。
[0015] The above and other means of the present invention for solving the problems will be described in detail in the description relating to the embodiments.

【0016】[0016]

【作用】コード化データストリームが並列処理によって
デコードされるため、従来に比べデコーディング速度を
飛躍的に増加させることができる。
Since the coded data stream is decoded by the parallel processing, the decoding speed can be drastically increased as compared with the prior art.

【0017】なお、本発明の上記作用及び他の作用につ
いては、実施例に関連した記述中において詳細に説明す
る。
The above operation and other operations of the present invention will be described in detail in the description related to the embodiment.

【0018】[0018]

【実施例】本発明はデータを並列にエンコード及びデコ
ードするための方法及び装置を提供する。本発明は、複
数ビットからなるデータストリームを圧縮する装置を提
供する。この装置は、データストリームを受け取る入力
チャネルを有する。この装置はまた、データストリーム
の各ビットをデコードするデコーダを有し、データスト
リーム中の符号語の少なくとも2語が同時にデコードさ
れることにより、データストリームは並列にデコードさ
れる。
DETAILED DESCRIPTION OF THE INVENTION The present invention provides a method and apparatus for encoding and decoding data in parallel. The present invention provides an apparatus for compressing a multi-bit data stream. The device has an input channel for receiving a data stream. The apparatus also includes a decoder for decoding each bit of the data stream, wherein at least two of the codewords in the data stream are decoded simultaneously, so that the data stream is decoded in parallel.

【0019】本発明は、一態様においてはコンテキスト
・ビンを並列に処理し、もう一つの態様では確率クラス
を並列に処理する。
The present invention, in one aspect, processes context bins in parallel, and in another aspect, processes probability classes in parallel.

【0020】本発明において、コード化されたデータは
多数のビットストリーム・ジェネレータに与えられる。
一態様では、多数のチャネルが用いられる。もう一つの
態様では単一の非インターリーブ(non-interleaved)
チャネルが用いられる。別の態様では単一のインターリ
ーブ(interleaved)チャネルが用いられる。
In the present invention, the encoded data is provided to a number of bitstream generators.
In one aspect, multiple channels are used. In another embodiment, a single non-interleaved
Channels are used. In another aspect, a single interleaved channel is used.

【0021】本発明は、本発明の並列デコーディング/
エンコーディング装置に関連したRコーダの利用法を提
供する。本発明のRコーダは、少なくとも1種類のRn
(k)コードと一緒にR2(k)コードを使用する。ただしn
は自然数である。本発明のRコーダは、一態様におい
て、R2(k)コードとR3(k)コードを使用する。
The present invention provides a parallel decoding /
A method of using an R coder associated with an encoding device is provided. The R coder according to the invention comprises at least one Rn
Use the R2 (k) code with the (k) code. Where n
Is a natural number. The R coder of the present invention, in one aspect, uses R2 (k) and R3 (k) codes.

【0022】さて、データの並列エンコーディング/デ
コーディング方法及び装置について述べる。以下の説明
において、特定のビット数、コーダ数、確率、データの
種類といった様々な具体例を提示するが、これは本発明
の好適な実施例の理解を深めるためのものである。当業
者には、これらの具体例によらずに本発明を具体化でき
ることは明白であろう。また、本発明を無用に難解にす
ることを回避するため、周知の回路については詳細には
示さずブロック図の形で示した。
Now, a method and apparatus for parallel encoding / decoding of data will be described. In the following description, various specific examples, such as a specific number of bits, the number of coders, the probability, and the type of data, will be presented in order to enhance the understanding of the preferred embodiment of the present invention. It will be apparent to one skilled in the art that the present invention may be embodied without these specific examples. In other instances, well known circuits have been shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

【0023】〈並列デコーディングの概要〉本発明は、
エンコードされたデータを並列に非損失でデコードする
装置を提供する。本発明は、殆どのエントロピー圧縮装
置でコンテキスト・モデルとデコーダとの間のフィード
バックループがネックになっているとの認識に基づいて
いる。本発明においては、複数のコーダをある一つのコ
ンテキスト・ビンに専念させることによって、このフィ
ードバックループを分解する。その結果、コンテキスト
・モデル内のより小さな、より高速のフィードバックル
ープ及び装置に対する符号語の入力速度のみによって装
置の速度が決まってくる。本発明は、コンテキスト・モ
デルが実質的にコード化データストリームを各コンテキ
スト・ビンにつき1個ずつの、いくつかの異なったデー
タストリームに再編成することを考えることにより、複
数のコーダとコンテキスト・モデルとの間のデカップリ
ング(decoupling)を実現する。コード化データを、本
来のデータストリームの順序ではなくコンテキスト・ビ
ンの順序で取得することによって、複数のコーダはコン
テキスト・モデルからのフィードバックを待たずにコー
ド化データの任意のものまたは全部をデコードすること
ができる(これらストリームは、コンテキスト・ビン単
位で生成されるが、確率クラス毎に生成してもよい)。
<Overview of Parallel Decoding> The present invention provides:
An apparatus for decoding encoded data in parallel and losslessly. The invention is based on the realization that in most entropy compression devices the feedback loop between the context model and the decoder is a bottleneck. We decompose this feedback loop by dedicating multiple coders to one context bin. As a result, the speed of the device is determined solely by the smaller, faster feedback loop in the context model and the input speed of the codeword to the device. The present invention contemplates multiple coder and context models by considering that the context model substantially reorganizes the coded data stream into several different data streams, one for each context bin. And decoupling between them. By obtaining the coded data in context bin order instead of the original data stream order, multiple coders decode any or all of the coded data without waiting for feedback from the context model (These streams are generated in context bins, but may be generated for each probability class).

【0024】ここで、従来技術と対比して、本発明の並
列デコーディングにつき説明する。図2は、入力バッフ
ァ201がコード化データとデコーダ202からのフィ
ードバック信号を受け取るように接続された従来のデコ
ーダを示している。入力バッファ201は、フィードバ
ック信号を通じてデコーダより出される要求に応答して
コード化データをデコーダ202へ送る。デコーダ20
2はコード化データを、そのコンテキストと確率推定値
に従ってデコードし、デコードデータをコンテキスト・
モデル203へ供給し、このコンテキスト・モデル20
3はデコードデータを出力する。デコーダ202がデコ
ードデータをコンテキスト・モデルへ送ったならば、コ
ンテキスト・モデル203はコンテキストを更新し、次
のビットのデコーディングを開始するために必要な情報
をフィードバック信号によりデコーダ202へ送ること
ができる。そして、デコーダ202はフィードバック信
号を用いて入力バッファ201に対してコード化データ
を要求する。このように、2つのフィードバックループ
がシーケンシャルに動作してコード化データストリーム
をデコードする。
Here, the parallel decoding of the present invention will be described in comparison with the prior art. FIG. 2 shows a conventional decoder in which an input buffer 201 is connected to receive coded data and a feedback signal from a decoder 202. Input buffer 201 sends coded data to decoder 202 in response to requests made by the decoder through a feedback signal. Decoder 20
2 decodes the coded data according to its context and probability estimates, and
To the model 203, this context model 20
3 outputs decoded data. Once the decoder 202 sends the decoded data to the context model, the context model 203 can update the context and send the necessary information to the decoder 202 to start decoding the next bit to the decoder 202 via a feedback signal. . Then, the decoder 202 requests coded data from the input buffer 201 using the feedback signal. Thus, two feedback loops operate sequentially to decode the coded data stream.

【0025】図3は、従来の低速フィードバックループ
のない、本発明のデコーダを示している。図2における
と同様、入力バッファ204はコード化データ(すなわ
ち符号語)とデコーダ205からのフィードバック信号
を受け取り、コード化データをコンテキスト・ビン順に
本発明のデコーダ205へ供給し、このデコーダ205
はコード化データをデコードする。デコーダ250は、
各コンテキスト・ビンに対して1個ずつの、複数個のデ
コーダ205A,205B,205C,...からなる。
デコーダ205中の複数のデコーダ205A,205
B,205C,... のそれぞれは、その対応したコンテ
キスト・ビンのコード化データを入力バッファ204よ
り供給される。各デコーダ205A,205B,205
C,...は、そのコンテキスト・ビンのデコードデータ
を送出する。コンテキスト・モデルは、コード化データ
と特定のコンテキスト・ビンとを関連付ける必要がな
い。デコーダデータは、デコーダ205によってデコー
ドデータメモリ207(207A,207B,207
C,...)へ送られる。
FIG. 3 shows the decoder of the present invention without the conventional slow feedback loop. As in FIG. 2, input buffer 204 receives the coded data (ie, the codeword) and the feedback signal from decoder 205, and supplies the coded data to decoder 205 of the present invention in context bin order.
Decodes the coded data. The decoder 250
It comprises a plurality of decoders 205A, 205B, 205C,..., One for each context bin.
A plurality of decoders 205A and 205 in the decoder 205
, B, 205C,... Are supplied from the input buffer 204 with the coded data of the corresponding context bin. Each decoder 205A, 205B, 205
C,... Send out the decoded data of the context bin. The context model does not need to associate coded data with a particular context bin. The decoder data is supplied to the decode data memory 207 (207A, 207B, 207) by the decoder 205.
C, ...).

【0026】コンテキスト・モデル206は、独立に動
作しつつ、フィードバック信号をデコードデータメモリ
207(207A,207B,207C,...)へ送出
し、この信号に応答してデコードデータメモリ207
(207A,207B,207C,...)より出る既に
デコードされたデータを受け取るように接続されてい
る。したがって、2つの独立したフィードバックループ
がある。一つはデコーダ205と入力バッファ204の
間のもので、もう一つはコンテキスト・モデル206と
デコードデータメモリ207の間のものである。大きな
フィードバックループをなくしたため、デコーダ205
内の複数のデコーダ205A,205B,205
C,...は、それぞれの関連する符号語を入力バッファ
204より受け取って直ぐにデコードすることができ
る。
The context model 206 sends a feedback signal to the decode data memory 207 (207A, 207B, 207C,...) While operating independently, and in response to this signal,
(207A, 207B, 207C,...) Are connected to receive already decoded data. Therefore, there are two independent feedback loops. One is between the decoder 205 and the input buffer 204, and the other is between the context model 206 and the decode data memory 207. Since the large feedback loop has been eliminated, the decoder 205
A plurality of decoders 205A, 205B, 205
C,... Can receive their associated codewords from input buffer 204 and immediately decode them.

【0027】コンテキスト・モデルはコーディング装置
のメモリ部を提供し、このメモリに基づいてデータの集
合(例えば画像)を種々のカテゴリ(例えばコンテキス
ト・ビン)に分割する。本発明において、コンテキスト
・ビンは独立したデータ集合と考えられる。ある実施例
では、各コンテキスト・ビンは、それ独自の確率推定モ
デルを持つ。よって、各コンテキスト・ビンは異なった
確率推定モデル及び/またはビットストリーム・ジェネ
レータを使用できる。別の実施例では、確率推定モデル
が共用され、各コンテキスト・ビンは固有の状態(stat
e)を持つことができる。
The context model provides a memory portion of the coding device, based on which the set of data (eg, images) is divided into various categories (eg, context bins). In the present invention, context bins are considered as independent data sets. In one embodiment, each context bin has its own probability estimation model. Thus, each context bin can use a different probability estimation model and / or bitstream generator. In another embodiment, the probability estimation model is shared and each context bin has a unique state (stat
e) can have.

【0028】本発明において、コンテキスト・モデルは
データ(例えば画像)をいくつかのデータストリームに
分割する。言い換えれば、コンテキスト・モデルはデー
タの集合または画像を、各コンテキスト・ビン毎に一つ
ずつの、複数のデータストリームに再編成する。ある実
施例では、各コーダは、ある特定のコンテキスト・ビン
に対し専用とされる。
In the present invention, a context model divides data (eg, an image) into several data streams. In other words, the context model reorganizes a collection of data or images into multiple data streams, one for each context bin. In one embodiment, each coder is dedicated to a particular context bin.

【0029】コーダをある特定のコンテキスト・ビンの
専用にすることにより、コンテキスト・モデルとコーダ
との間のフィードバックループを除去できる。なお、フ
ィードバックループが除去される理由は、前のビットは
次のビットと同一ビンのもので、したがって同一コンテ
キストであるので、各コーダは次のビットをデコードす
る前に前のビットのコンテキストの指示を受け取る必要
がないためである。換言すれば、次のビットのデコード
が可能になる前に完了させなければならないコンテキス
ト・フィードバックはない。
By dedicating a coder to a particular context bin, the feedback loop between the context model and the coder can be eliminated. Note that the feedback loop is eliminated because the previous bit is in the same bin as the next bit, and therefore in the same context, so each coder indicates the context of the previous bit before decoding the next bit. Because it is not necessary to receive it. In other words, no context feedback must be completed before the next bit can be decoded.

【0030】本発明は各コンテキスト・ビンより、個々
のコード化データストリームを並列に送出させるので、
全てのコンテキスト・ビンのビットがビットストリーム
・ジェネレータに並列に受け取られる。ビットストリー
ム・ジェネレータのそれぞれはバイナリ・デシジョンが
その確率の高い状態であるか否かを示す1ビットを返
し、確率推定モジュールはこのビットを用いてデコード
されたビット(すなわちバイナリ・デシジョン)を返
す。コンテキスト・モデルは、ビットストリーム・ジェ
ネレータからのデコードされたビットを適当な順序で選
択してデコードデータのストリームを出力することによ
り、オリジナルデータを再生する。すなわち、コンテキ
スト・モデルは、異なったコードストリームから、マル
チプレクサと同様の方法でデコード結果を選ぶだけであ
る。したがって、コード化データを、特殊な順序(例え
ばラスタースキャン順)でなく、コンテキスト・ビン
(またはクラス)による順序で取得することにより、コ
ーダは、コンテキスト・モデルからのフィードバックを
待つことなく、一部あるいは全部のコンテキスト・ビン
に対応したコード化データをデコードすることができ
る。なお、確率推定モデルは本発明によって除去されな
いので、確率推定値のフィードバックループは残る。
The present invention allows each context bin to send an individual coded data stream in parallel,
The bits of all context bins are received in parallel by the bitstream generator. Each of the bitstream generators returns a bit indicating whether the binary decision is in its probable state, and the probability estimation module uses this bit to return the decoded bit (ie, the binary decision). The context model reproduces the original data by selecting the decoded bits from the bitstream generator in an appropriate order and outputting a stream of decoded data. That is, the context model simply selects the decoding result from a different codestream in a manner similar to a multiplexer. Thus, by obtaining the coded data in a context bin (or class) order rather than a special order (eg, raster scan order), the coder can partially wait without waiting for feedback from the context model. Alternatively, encoded data corresponding to all context bins can be decoded. Note that since the probability estimation model is not removed by the present invention, a feedback loop of the probability estimation value remains.

【0031】本発明の並列デコーディング装置は多様な
実施方法が存在する。ある実施例では、複数のコンテキ
スト・ビンに対応したコード化データストリームを、様
々なコーダの要求に合わせて順序付けられた一つのスト
リームにインターリーブすることができる。本発明の現
時点での好適実施例では、コード化データは、それがシ
リアルにデコーダに送られる場合であっても、各コーダ
にコンスタントにデータが供給されるように順序付けら
れる。
The parallel decoding apparatus of the present invention has various implementation methods. In one embodiment, the coded data streams corresponding to multiple context bins can be interleaved into a single stream that is ordered for the needs of various coder. In the currently preferred embodiment of the invention, the coded data is ordered such that each coder is constantly supplied with data, even if it is sent serially to the decoder.

【0032】集積回路で安価に複製可能な、小さな単純
なコーダを使用して、コード化データを素早く並列にデ
コードすることができる。ある実施例では、フィールド
・プログラマブル・ゲートアレイ(field programmable
gate array,FPGA)チップまたは標準セル特定用
途向け集積回路(ASIC)チップを使用し、ハードウ
エアでコーダが実現される。並列化と単純なビットスト
リーム・ジェネレータの組合せによって、従来のデコー
ディング装置の圧縮効率を維持しつつ、コード化データ
のデコーディングを、従来のデコーダ以上の速度で行な
うことを可能にする。
The coded data can be decoded quickly and in parallel using a small simple coder that can be duplicated cheaply on an integrated circuit. In one embodiment, a field programmable gate array is used.
A coder is implemented in hardware using a gate array (FPGA) chip or a standard cell application specific integrated circuit (ASIC) chip. The combination of parallelization and a simple bitstream generator allows the decoding of coded data to be performed at a higher speed than conventional decoders, while maintaining the compression efficiency of conventional decoding devices.

【0033】バイナリ・エントロピー・コードは複数の
コンテキスト・ビンと確率推定状態(クラス)を用い
る。本発明の方法及び装置は、並列化によって、コンテ
キスト・ビンの並列処理、または確率クラスの並列処理
を可能にする。コンテキスト・ビンを並列処理する時に
は、各ビットストリーム・ジェネレータに一つの確率推
定モジュールが関係付けられる。確率推定モジュール
は、関係したビットストリーム・ジェネレータに対し
て、入力符号語からデータストリームを生成するために
どのコードを使用するかを指示する。かかる装置の一例
が図4に示されており、この図では、コード化データが
チャネル・コントロール221に入力される。チャネル
・コントロール221はコード化データを受け取って、
複数のビットストリーム・ジェネレータ(BG222,
BG223,BG224,...)のそれぞれに送る。こ
れらビットストリーム・ジェネレータのそれぞれは、コ
ード化データを受け取り、符号語が高確率の状態である
か否かの結果を、関係付けられた確率推定モジュールに
対し、その確率推定モジュール(PEM)により与えら
れた確率クラスに応じて提供するように接続されてい
る。PEM225,226,227,...は、BG22
2,223,224,...にそれぞれ接続されている。
各ビットストリーム・ジェネレータは、互いに独立に動
作できるが、それは常に同じコンテキスト・ビンを持つ
コード化データをデコードしているからである。コンテ
キスト・モデル228は、確率推定モジュールのそれぞ
れに接続され、アプリケーションによっ決まった順序で
デコードデータを得られるように確率推定モジュールを
選択する。このようにして、コンテキスト・ビンを並列
処理することによりデコードデータが生成される。
The binary entropy code uses a plurality of context bins and probability estimation states (classes). The method and apparatus of the present invention allows for parallel processing of context bins or probability classes by parallelization. When processing the context bins in parallel, one probability estimation module is associated with each bitstream generator. The probability estimation module indicates to the associated bitstream generator which code to use to generate a data stream from the input codeword. An example of such a device is shown in FIG. 4, in which coded data is input to channel control 221. Channel control 221 receives the encoded data,
Multiple bitstream generators (BG222,
BG223, BG224,...). Each of these bitstream generators receives the coded data and provides the result of whether the codeword is in a high probability state to the associated probability estimation module by its probability estimation module (PEM). Connected to provide according to the given probability class. PEM225, 226, 227, ... are BG22
, 223, 224,... Respectively.
Each bitstream generator can operate independently of each other because it always decodes coded data with the same context bin. The context model 228 is connected to each of the probability estimating modules and selects the probability estimating module to obtain decoded data in an order determined by the application. In this way, decoded data is generated by performing parallel processing of the context bin.

【0034】他方、確率クラスを並列に処理する時に
は、コンテキスト・モデルと確率推定モデルとが組み合
わされる。この場合、各ビットストリーム・ジェネレー
タは、ある特定の確率クラスに割り当てられ、その結果
の情報を受け取る。確率クラスを並列に処理する装置の
一例が図5に示されている。図5において、コード化デ
ータはチャネルコントロール231に入力され、それを
受け取るように接続された複数のビットストリーム・ジ
ェネレータ(BG232,BG233,BG23
4,...)の一つへ送られる。ビットストリーム・ジェ
ネレータのそれぞれはPEM235に接続されている。
PEM235はCM236にも接続されている。この構
成において、ビットストリーム・ジェネレータのそれぞ
れがコード化データをデコードし、デコーディングの結
果はPEM235によって(CM236によるのではな
い)選択される。ビットストリーム・ジェネレータのそ
れぞれは、ある確率クラスに関係するソースからコード
化データを受け取る(すなわち、ここでは、コード化デ
ータを任意のコンテキスト・ビンから受け取ることが可
能である)。PEM235は確率クラスを用いてビット
ストリーム・ジェネレータを選択する。確率クラスは、
それに対してCM236により与えられたコンテキスト
・ビンによって指示される。このようにして、確率クラ
スの並列処理によりデコードデータが生成される。
On the other hand, when processing probability classes in parallel, a context model and a probability estimation model are combined. In this case, each bitstream generator is assigned to a particular probability class and receives the resulting information. An example of an apparatus for processing probability classes in parallel is shown in FIG. In FIG. 5, coded data is input to a channel control 231, and a plurality of bitstream generators (BG232, BG233, BG23) connected to receive the coded data are received.
4, ...). Each of the bitstream generators is connected to a PEM 235.
The PEM 235 is also connected to the CM 236. In this configuration, each of the bitstream generators decodes the coded data and the result of the decoding is selected by PEM 235 (rather than by CM 236). Each of the bitstream generators receives coded data from a source associated with a certain probability class (ie, here it is possible to receive coded data from any context bin). PEM 235 uses the probability class to select a bitstream generator. The probability class is
In contrast, indicated by the context bin provided by CM 236. Thus, decoded data is generated by parallel processing of the probability classes.

【0035】コンテキスト及び確率クラスを並列処理す
ることにより、従来のデコーダのようにコードストリー
ムをシリアルに並べる必要がなくなる。
The parallel processing of context and probability classes eliminates the need to serialize the codestream as in conventional decoders.

【0036】なお、本発明は、画像データを含む、あら
ゆる種類のデータに適用できることに注意されたい。
It should be noted that the present invention can be applied to all kinds of data including image data.

【0037】〈並列デコーディング用のコード種類とビ
ットストリーム・ジェネレータ〉本発明は、Qコーダや
Bコーダといった既存のコーダを、並列構成のビットス
トリーム生成要素として使用することができる。しか
し、他のコード及びコーダを使用してもよい。本発明に
採用されるコーダとそのコードは、単純なものである。
<Code Type and Bitstream Generator for Parallel Decoding> In the present invention, an existing coder such as a Q coder or a B coder can be used as a bitstream generation element having a parallel configuration. However, other codes and coders may be used. The coder and its code employed in the present invention are simple.

【0038】本発明においては、複雑なコードではな
く、Qコーダに用いられている算術コードやBコーダに
用いられているマルチステート(multi-state)コード
のような単純なコードのビットストリーム・ジェネレー
タを使用して、効果をもたらす。単純なコードの利点
は、複雑なコードに比べ、ハードウエアが非常に高速・
単純になり、かつシリコンが少なくて済むことである。
もう一つの利点は、デコーディング効率を向上できるこ
とである。有限量の状態情報を用いるコードは、あらゆ
る確率に対しシャノンのエントロピー限界を完全には満
たすことはできない。単一のビットストリーム・ジェネ
レータで複数の確率またはコンテキストを扱うことを可
能にするコードは、符号化効率を下げるよう制限しなけ
ればならない。この複数のコンテキストまたは確率クラ
スのために必要な制限を取り除くならば、シャノンのエ
ントロピー限界をほぼ満足するコードを使用可能にな
る。
In the present invention, a bit stream generator of not a complicated code but a simple code such as an arithmetic code used in a Q coder or a multi-state code used in a B coder. Use to bring effect. The advantage of simple code is that the hardware is much faster and faster than complex code.
It is simpler and requires less silicon.
Another advantage is that decoding efficiency can be improved. Code using a finite amount of state information cannot completely satisfy Shannon's entropy limit for every probability. Code that allows a single bitstream generator to handle multiple probabilities or contexts must be limited to reduce coding efficiency. Eliminating the necessary restrictions for this multiple context or probability class would allow us to use code that nearly satisfies Shannon's entropy limit.

【0039】本発明の並列デコーディング方式に利用で
きる2つのコードが、RコードとAコードである。
Two codes that can be used in the parallel decoding method of the present invention are an R code and an A code.

【0040】〈Rコード〉本発明の現時点の好適な実施
例に採用されるコード(及びコーダ)は、Rコードと呼
ばれる。Rコードは、Golombのランレングスコード
(すなわちR2(k)コード)を含む適応的コードである。
現時点での好適実施例においては、多くの異なる確率を
一つのデコーダ・デザインにより扱うことができるよう
に、Rコードのパラメータが決められている。さらに、
本発明のRコードは単純・高速のハードウエアによって
デコードできる。
<R Code> The code (and coder) employed in the presently preferred embodiment of the present invention is called an R code. The R code is an adaptive code that includes a Golomb run-length code (ie, an R2 (k) code).
In the presently preferred embodiment, the parameters of the R code are determined so that many different probabilities can be handled by one decoder design. further,
The R code of the present invention can be decoded by simple and high-speed hardware.

【0041】本発明においては、RコードがRコーダに
よってエンコーディングまたはデコーディングを行なう
ために用いられる。現時点の好適実施例においては、R
コーダはビットストリーム・ジェネレータと確率推定モ
ジュールを組合せたものである。例えば図1において言
うならば、Rコーダは、確率推定モジュール102とビ
ットストリーム・ジェネレータ103の組合せ、及び、
確率推定モジュール105とビットストリーム・ジェネ
レータ106の組合せから構成することができよう。
In the present invention, an R code is used for encoding or decoding by an R coder. In the currently preferred embodiment, R
The coder is a combination of a bitstream generator and a probability estimation module. For example, referring to FIG. 1, the R coder is a combination of a probability estimation module 102 and a bitstream generator 103, and
It could consist of a combination of a probability estimation module 105 and a bitstream generator 106.

【0042】符号語は最高確率のシンボル(MPS)の
ランを表わす。MPSは確率が50%を超えるバイナリ
デシジョンの結果を表わす。他方、最低確率のシンボル
(LPS)は確率が50%未満のバイナリデシジョンの
結果を表わす。なお、2つの結果が同じ確率である時に
は、MPSに指定するかLPSに指定するかは重要では
ないが、エンコーダとデコーダの両方で同一の指定をす
る。MAXRUNと呼ばれる一定のパラメータに対し、
圧縮ファイル中に結果として得られるビットシーケンス
を表1に示す。
A codeword represents a run of the highest probability symbol (MPS). MPS represents the result of a binary decision with a probability greater than 50%. On the other hand, the lowest probability symbol (LPS) represents the result of a binary decision with a probability of less than 50%. When the two results have the same probability, it does not matter whether the result is specified in the MPS or the LPS, but the same specification is made in both the encoder and the decoder. For a certain parameter called MAXRUN,
Table 1 shows the resulting bit sequence in the compressed file.

【0043】[0043]

【表1】 [Table 1]

【0044】エンコードをする場合、一つのラン中のM
PSの個数が単純なカウンタによってカウントされる。
このカウント値がMUXRUNカウント値に等しい場
合、0の符号語がコードストリーム中に送出され、カウ
ンタはリセットされる。LPSに出会うと、LSPの前
のMPSシンボル個数のユニークな記述である、1にビ
ット群Nを続けたものが、コードストリーム中に送出さ
れる。(なお、ランレングスを記述するためのNビット
群の割り当て方は色々とある。) 再度、カウンタはリ
セットされる。なお、Nの必要ビット数はMAXRUN
の値に依存する。また、符号語の1の補数を用いること
もできる。
When encoding, M in one run
The number of PSs is counted by a simple counter.
If this count value is equal to the MUXRUN count value, a codeword of zero is sent out in the codestream and the counter is reset. Upon encountering the LPS, a unique description of the number of MPS symbols before the LSP, followed by one and a group of bits N, is sent out in the codestream. (Note that there are various ways of assigning the N-bit group for describing the run length.) The counter is reset again. The required number of bits of N is MAXRUN
Depends on the value of Also, the one's complement of a codeword can be used.

【0045】デコードする場合、コードストリームの最
初のビットが0のときに、MUXRUNの値がMPSカ
ウンタに入れられ、LPS指示がクリアされる。そし
て、その0のビットが捨てられる。最初のビットが1の
ときは、ビット群Nを抽出すべく、後続ビット群が調べ
られ、適当なカウント値(N)がMPSカウンタに入れ
られ、LSP指示がセットされる。そして、1Nの符号
語を含むコードストリームのビット群が捨てられる。
When decoding, when the first bit of the code stream is 0, the value of MUXRUN is put into the MPS counter, and the LPS indication is cleared. Then, the zero bit is discarded. If the first bit is 1, subsequent bits are examined to extract bits N, the appropriate count value (N) is placed in the MPS counter, and the LSP indication is set. Then, the bit group of the code stream including the 1N codeword is discarded.

【0046】Rコードは表1のルールによって生成され
る。ある特定のRコードRx(k)の定義は、MAXRUN
によって決定されることに注意されたい。例えば MUXRUN for Rx(k) = x*2k-1 である。よって、 MUXRUN for R2(k) = 2*2k-1 MUXRUN for R3(k) = 2*2k-1 等々である。
The R code is generated according to the rules shown in Table 1. The definition of a specific R code Rx (k) is MAXRUN
Note that it is determined by For example, MUXRUN for Rx (k) = x * 2k -1 . Thus, MUXRUN for R2 (k) = 2 * 2 k-1 MUXRUN for R3 (k) = 2 * 2 k-1 and so on.

【0047】なお、RコードはGolombのコードの拡張
であることに注意されたい。Golombコードは、R2(・)
コードしか使わない。本発明のRコードはR2(k)コード
とR3(k)コードの両方を使用でき、必要ならば他のRn
(k)コードも使うことができる。ある実施例では、R2
(k)コードとR3(k)コードが使用される。なお、Rnは、
n=2及びn=任意の奇数に対して存在する(例えば、
R2,R3,R5,R7,R9,R11,R13,R1
5)。ある実施例では、R2(k)コードの場合、ランのカ
ウント値rがNにデコードされ、ランカウント値rがk
ビットで記述され、したがって、1Nはk+1ビットで
表現される。また、ある実施例では、R3(k)コードの場
合、ビット群Nは、n<2(k-1)であるかn≧2(k-1)
あるかを示すための1のビットを含めることができ、か
つ、ランカウント値を示すためのk−1ビットまたはk
ビットを含めることができ、したがって変数Nは合計k
ビットまたはk+1ビットで表現される。他の実施例で
は、Nの1の補数が符号語に用いられる。この場合、M
PSは0の多いコードストリームを生成する傾向があ
り、LPSは1の多いコードストリームを生成する傾向
がある。
It should be noted that the R code is an extension of the Golomb code. Golomb code is R2 (・)
Only use code. The R code of the present invention can use both the R2 (k) code and the R3 (k) code, and can use other Rn (k) codes if necessary.
(k) Code can also be used. In some embodiments, R2
The (k) code and the R3 (k) code are used. Note that Rn is
exists for n = 2 and n = any odd number (eg,
R2, R3, R5, R7, R9, R11, R13, R1
5). In one embodiment, for an R2 (k) code, the run count r is decoded to N and the run count r is k
Are described in bits, so 1N is represented by k + 1 bits. In one embodiment, in the case of the R3 (k) code, the bit group N includes one bit for indicating whether n <2 (k-1) or n ≧ 2 (k-1). K-1 bits or k, which can be included and indicate the run count value
Bits, so that the variable N has a total k
Bit or k + 1 bits. In another embodiment, the one's complement of N is used for the codeword. In this case, M
PS tends to generate a code stream with many zeros, and LPS tends to generate a code stream with many ones.

【0048】表2、表3、表4及び表5は、本発明の現
時点の好適実施例のために用いられる効率的なRコード
を示している。なお、他のランレングスコードも本発明
において使用できる。R2(k)のための他の使用可能なラ
ンレングスコードの例が表6に示されている。
Tables 2, 3, 4 and 5 show the efficient R codes used for the presently preferred embodiment of the present invention. Note that other run length codes can be used in the present invention. Examples of other available run length codes for R2 (k) are shown in Table 6.

【0049】[0049]

【表2】 [Table 2]

【0050】[0050]

【表3】 [Table 3]

【0051】[0051]

【表4】 [Table 4]

【0052】[0052]

【表5】 [Table 5]

【0053】[0053]

【表6】 [Table 6]

【0054】〈Rコード用確率推定モデル〉本発明の現
時点の好適実施例において、R2(0)コードはコーディン
グを行なわない。すなわち、入力の0は0に、入力の1
は1に、それぞれエンコードされ(その逆も同様)、こ
れは確率が50%の場合に最適である。現時点の好適実
施例において、R3(0)コードは使用されない。現時点の
好適実施例においては、R2(1)コードは確率が0.70
7(つまり70.7%)の場合に最適であり、R3(1)は
確率が0.794(79.4%)の場合に最適である。R
2(2)コードは0.841(84.1%)の確率に対して最
適である。下の表7はほぼ最適なGolombのコードを示
すが、ここでは確率スキューは次の式によって定義され
る。 確率スキュー=−log2(LPS)
<R Code Probability Estimation Model> In the presently preferred embodiment of the present invention, the R2 (0) code is not coded. That is, the input 0 becomes 0 and the input 1 becomes
Are each encoded to 1 (and vice versa), which is optimal for a 50% probability. In the currently preferred embodiment, the R3 (0) code is not used. In the currently preferred embodiment, the R2 (1) code has a probability of 0.70.
7 (ie, 70.7%), and R3 (1) is optimal when the probability is 0.794 (79.4%). R
The 2 (2) code is optimal for a probability of 0.841 (84.1%). Table 7 below shows the nearly optimal Golomb code, where the probability skew is defined by the following equation: Probability skew = -log 2 (LPS)

【0055】[0055]

【表7】 [Table 7]

【0056】なお、最適確率が高いk値においては低い
k値における程にはばらつかないけれども、確率スキュ
ーによって示される確率レンジがほぼ均一に確率空間を
カバーしているという点で、このコードはほぼ最適であ
る。
It should be noted that although the k value at which the optimal probability is high does not vary as much as at the low k value, the probability range indicated by the probability skew covers the probability space almost uniformly, and this code is Almost optimal.

【0057】ある一定のkに対するR2(k)はGolombの
ランレングスコードと呼ばれる。しかし、ある一定のk
は、ある一定の確率に対してほぼ最適であるに過ぎな
い。最適確率でコーディングする時に、本発明によるR
コードは0符号語と1N符号語とを同じ頻度で使用する
ことに注意されたい。言い換えれば、本発明のRコーダ
は、半分の時間に一方のコードを出力し、別の半分の時
間に他方のコードを出力する。0符号語と1N符号語の
個数を調べることによって、最適なコードが使用されて
いるか否かの判定をすることができる。つまり、IN符
号語の出力数が多過ぎるときはランレングスが長過ぎ、
他方、0符号語の出力数が多過ぎるときはランレングス
が短過ぎる。
R2 (k) for a given k is called Golomb's run-length code. However, a certain k
Is only approximately optimal for a certain probability. When coding with optimal probability, R
Note that the code uses the 0 codeword and the 1N codeword at the same frequency. In other words, the R coder of the present invention outputs one code at half the time and outputs the other code at another half of the time. By examining the number of 0 codewords and 1N codewords, it is possible to determine whether an optimal code is used. That is, when the number of outputs of the IN code word is too large, the run length is too long,
On the other hand, when the number of outputs of the 0 code word is too large, the run length is too short.

【0058】Langdonによって用いられた確率推定モデ
ルは、ソース(source)確率が現在の推定値より高いか
低いかを判定するために各符号語の最初のビットを調べ
る。この判定結果に基づき、kが増減させられる。例え
ば、MPSを示す符号語が現われるときは、確率推定値
は低過ぎる。したがって、Langdonによれば、各0符号
語ごとにkは1ずつ増やされる。MUXRUN MPS
未満を示す符号語にLPSが続いたものが現われるとき
は、確率推定値は高過ぎる。したがって、Langdonによ
れば、各1N符号語ごとにkは1ずつ減らされる。
The probability estimation model used by Langdon examines the first bit of each codeword to determine if the source probability is higher or lower than the current estimate. K is increased or decreased based on the determination result. For example, when a codeword indicating MPS appears, the probability estimate is too low. Thus, according to Langdon, k is incremented by one for each 0 codeword. MUXRUN MPS
The probability estimate is too high when a codeword indicating less than followed by LPS appears. Thus, according to Langdon, k is decremented by one for each 1N codeword.

【0059】本発明は、符号語ごとにkを単純に1ずつ
増減させる方法よりも複雑な確率推定を可能にする。本
発明は、使用するコードを決定する、確率推定モジュー
ルの状態を含む。同一のコードを多くの状態で使用して
もよい。状態テーブルまたは状態マシンを利用してコー
ドが状態に割り当てられる。
The present invention enables a more complex probability estimation than the method of simply increasing or decreasing k by one for each codeword. The invention includes the state of the probability estimation module, which determines the code to use. The same code may be used in many situations. Code is assigned to states using a state table or state machine.

【0060】本発明においては、符号語の出力ごとに確
率推定値は状態を変える。よって、本発明においては、
確率推定モジュールは、符号語が0で始まるか1で始ま
るかによって確率推定値を増加または減少させる。たと
えば、”0”符号語が出力されるときは、MPS確率の
推定値の増加が起こる。他方、”1”符号語が出力され
るときは、MPS確率の推定値が減少する。
In the present invention, the probability estimation value changes state for each codeword output. Therefore, in the present invention,
The probability estimation module increases or decreases the probability estimate depending on whether the codeword starts with 0 or 1. For example, when the "0" codeword is output, the estimated value of the MPS probability increases. On the other hand, when the "1" codeword is output, the estimated value of the MPS probability decreases.

【0061】従来のLangdonコーダは、R2(k)コードを
使用し、各符号語ごとにkを増減させたに過ぎない。こ
れに対し、本発明は、調整速度をアプリケーションに合
わせるため、R2(k)コードとR3(k)コードを状態テーブ
ルまたは状態マシンと組み合わせて使用する。すなわ
ち、少量の固定データがある場合には、最適なコーディ
ングをするためには調整は素早くなければならないが、
大量の固定データがある場合には、データの残り部分に
ついて圧縮率を良くすべくコーディングを選べるように
調整時間を増加させても構わない。なお、状態変化の発
生回数が可変の場合、個々のアプリケーションの性質に
よっても調整速度は影響される。Rコードの性質上、R
コードの推定は、非常で強力であるにもかかわらず、単
純でハードウエアが少なくてすむ。
The conventional Langdon coder uses an R2 (k) code and only increases or decreases k for each codeword. In contrast, the present invention uses the R2 (k) and R3 (k) codes in combination with a state table or state machine to adjust the adjustment speed to the application. That is, if there is a small amount of fixed data, the adjustment must be quick for optimal coding,
If there is a large amount of fixed data, the adjustment time may be increased so that coding can be selected to improve the compression ratio for the rest of the data. When the number of occurrences of the state change is variable, the adjustment speed is also affected by the characteristics of each application. Due to the nature of the R code, R
Code estimation is simple and requires little hardware, albeit very powerful.

【0062】R3(k)コードを組み入れることによって、
より広い確率空間をより高い分解能でカバーできるよう
になる。本発明による確率推定状態テーブルの例が図6
に示されている。図6を参照する。この確率推定状態テ
ーブルは、状態カウンタと、テーブル中の各状態に関係
付けられたコードからなる。なお、このテーブルには正
の状態と負の状態を両方含んであることに注意された
い。このテーブルは、図示のように、0の状態を含め、
37個の正の状態と37個の負の状態を持つ。負の状態
は、その正の状態とは違うMPS状態を意味する。ある
実施例では、MPSが1の時に負の状態を、MPSが0
の時に正の状態を、それぞれ使用することができ、ある
いはその逆に使用することができる。なお、図6に示し
たテーブルは一例にすぎず、状態数を増減しかつ状態割
り当ての違うテーブルを使用してもよい。
By incorporating the R3 (k) code,
A wider probability space can be covered with higher resolution. FIG. 6 shows an example of the probability estimation state table according to the present invention.
Is shown in Please refer to FIG. The probability estimation state table comprises a state counter and codes associated with each state in the table. Note that this table includes both positive and negative states. This table contains, as shown, the state of 0,
It has 37 positive states and 37 negative states. A negative state means an MPS state different from its positive state. In one embodiment, a negative state when MPS is 1 and an MPS
The positive state can be used respectively, or vice versa. Note that the table shown in FIG. 6 is merely an example, and that the number of states may be increased or decreased, and a table with a different state assignment may be used.

【0063】最初、コーダは状態0であり、この状態0
は確率推定値が0.50の場合のためのR2(0)コード
(すなわち、無コード)である。各符号語の処理後、状
態カウンタは、その符号語の先頭ビットに応じてインク
リメントまたはデクリメントされる。現時点の最適実施
例においては、0の符号語は状態カウンタの値を増加さ
せ、1で始まる符号語は状態カウンタの値を減少させ
る。したがって、すべての符号語は、状態カウンタによ
り状態を変化させる。別の言い方をするならば、確率推
定モジュールは状態を変える。しかしながら、連続した
状態を同一コードに関係付けることができる。この場
合、符号語ごとにコードを変化させずに、確率推定が行
なわれる。換言すると、状態は毎サイクル変化するが、
ある時間間隔で同一の確率にマッピングされる。例え
ば、状態5〜状態−5はすべてR2(0)コードを使用する
が、状態6〜状態11及び状態−6〜状態−11はR2
(1)コードを使用する。本発明の状態テーブルを利用す
ることにより、同一のコーダで非線形的な確率推定が可
能である。
Initially, the coder is in state 0,
Is the R2 (0) code (ie no code) for the case where the probability estimate is 0.50. After processing each codeword, the state counter is incremented or decremented according to the first bit of the codeword. In the currently preferred embodiment, a codeword of 0 increases the value of the state counter, and a codeword that starts with 1 decreases the value of the state counter. Thus, all codewords change state with the state counter. Stated another way, the probability estimation module changes state. However, successive states can be associated with the same code. In this case, probability estimation is performed without changing the code for each codeword. In other words, the state changes every cycle,
At certain time intervals, they are mapped to the same probability. For example, state 5 to state -5 all use the R2 (0) code, but state 6 to state 11 and state -6 to state -11 use the R2 (0) code.
(1) Use the code. By using the state table of the present invention, nonlinear probability estimation is possible with the same coder.

【0064】注意すべきは、低確率に対しては、同一の
Rコードを持つより多くの状態が含まれる。こうする理
由は、低確率で誤ったコードを使用すると効率のロスが
大きいからである。ランレングス・コード・テーブルの
性質は、各符号語の後で状態が切り換わることである。
状態変化のたびにコードが変化するように設計された状
態テーブルにおいて、低い確率での状態切り換わり時
に、コードは、エントロピー効率限界に非常に近いコー
ドとエントロピー効率限界から遠いコードとの間を行っ
たり来たりする。よって、不利益(コード化データのビ
ット数の観点における不利益)は、状態の遷移に帰着す
る。Langdonの確率推定モジュールのような従来の確率
推定モジュールが十分な性能は発揮しないのは、この不
利益が原因である。
It should be noted that for low probabilities, more states with the same R code are involved. The reason for this is that using a wrong code with a low probability results in a large loss of efficiency. The nature of the run-length code table is that the state switches after each codeword.
In a state table designed so that the code changes at each state change, at a low probability of state switching, the code goes between code very close to the entropy efficiency limit and code far from the entropy efficiency limit. Come and go. Thus, disadvantages (disadvantages in terms of the number of bits of coded data) result in state transitions. It is this disadvantage that conventional probability estimation modules, such as the Langdon probability estimation module, do not perform well.

【0065】高い確率のランレングスコードにおいて
は、コードの誤りによる不利益はそれほど大きくない。
したがって、本発明では、低い確率に状態を追加し、2
つの正しい状態間にまたがる変化を増加させることによ
って、コーディング効率の悪化を抑える。図7は、この
ような符号化効率(エントロピーに関し正規化されたコ
ード長)対MPS確率のグラフを示す。図7は、本発明
のRコードのいくつかが確率空間をカバーする様子を表
わしている。一例として、図7から、MPS確率が約
0.55の場合、R2(0)コードの効率がエントロピー限
界の1.01倍であること(つまり、エントロピー限界
より1%だけ悪いこと)が分かる。これに対し、R2(1)
コードの効率はエントロピー限界の1.09倍である
(エントロピー限界より9%悪い)。この例は、このよ
うな低い確率に対し間違ったコードを使用すると、コー
ディング効率を8%低下させることを示している。
For high-probability run-length codes, the penalty for code errors is not significant.
Therefore, in the present invention, the state is added to the low probability, and 2
By reducing the change that spans between the two correct states, coding efficiency is reduced. FIG. 7 shows a graph of such coding efficiency (code length normalized with respect to entropy) versus MPS probability. FIG. 7 illustrates how some of the R codes of the present invention cover a probability space. As an example, it can be seen from FIG. 7 that for an MPS probability of about 0.55, the efficiency of the R2 (0) code is 1.01 times the entropy limit (ie, 1% worse than the entropy limit). In contrast, R2 (1)
The efficiency of the code is 1.09 times the entropy limit (9% worse than the entropy limit). This example shows that using the wrong code for such a low probability reduces coding efficiency by 8%.

【0066】なお、ある実施例では、コーダに初期確率
推定状態を持たせてもよい。換言すれば、コーダを、状
態中の予め決めた状態、例えば状態18よりスタートさ
せてもよい。ある実施例では、初めのいくつかのシンボ
ルに対して、ある状態テーブルを使用することにより、
素早い調整を可能にするいくつかの状態が用いられるよ
うにし、残りのシンボルに対しては、もう一つの低速調
整用の状態テーブルを用いて、確率推定の精密な調整を
可能にする。このようにして、コーダは、コーディング
・プロセスにおいて、より最適なコードをより素早く使
用することが可能になる。他の実施例では、コードスト
リームでコンテキスト毎に初期確率推定値を指定でき
る。ある実施例においては、インクリメント及びデクリ
メントは一定数(例えば1)ずつ為されるのではない。
既に出会ったデータの量またはデータの変化量(安定
性)に応じた可変数だけ、確率推定状態がインクリメン
トされる。
In some embodiments, the coder may have an initial probability estimation state. In other words, the coder may be started from a predetermined state in the states, for example state 18. In one embodiment, by using a state table for the first few symbols,
Several states that allow for quick adjustment are used, and for the remaining symbols, another state table for slow adjustment is used to allow for fine adjustment of the probability estimates. In this way, the coder can use the more optimal code more quickly in the coding process. In another embodiment, an initial probability estimate can be specified for each context in the codestream. In some embodiments, the increment and decrement are not fixed numbers (eg, one).
The probability estimation state is incremented by a variable number corresponding to the amount of data already encountered or the amount of change (stability) of the data.

【0067】図6に例示したテーブルのように、状態テ
ーブルが対称のときは、その半分(0状態を含む)だけ
記憶すれば間に合う。ある実施例では、この対称性を活
用するため、状態番号は符号付きの1の補数の形で格納
される。このようにすると、1の補数の絶対値をとって
状態を判断し、かつ、符号を調べてMPSが1であるか
0であるかを判断することによって、このテーブルを利
用することができる。こうすれば、状態の絶対値を用い
てテーブルを索引することができ、また1の補数の絶対
値の計算は簡単であることから、状態のインクリメント
またはデクリメントのために必要なハードウエアを減ら
すことができる。別の実施例においては、ハードウエア
効率を向上させるため、状態テーブルが布線論理の状態
マシンまたはプログラマブルな状態マシンに置き換えら
れる。
When the state table is symmetric as in the table illustrated in FIG. 6, it is sufficient to store only half of the state table (including the 0 state). In some embodiments, to take advantage of this symmetry, state numbers are stored in signed one's complement form. In this way, this table can be used by determining the state by taking the absolute value of the one's complement and checking the sign to determine whether the MPS is 1 or 0. This allows the table to be indexed using the absolute value of the state and the simple calculation of the absolute value of the one's complement reduces the hardware required for incrementing or decrementing the state. Can be. In another embodiment, the state table is replaced with a hardwired or programmable state machine to increase hardware efficiency.

【0068】〈ハードウエア構成の例〉図8はRコード
を使用するデコーディング装置のブロック図を示す。図
8において、Rコード・デコーダ501はコード化入力
データと接続され、ランレングスと、LPSが出現した
か否か(例えば1Nコード)の指示を出力する。ラン・
カウンタ502は、Rコード・デコーダ501よりラン
レングスとLPS指示を受け取るように接続され、再現
したオリジナルデータを出力する。ラン・カウンタ50
2は、次のカウント値を要求する信号も出力する(この
信号を受け取るようにRコード・デコーダ501は接続
されている)。
<Example of Hardware Configuration> FIG. 8 is a block diagram of a decoding apparatus using an R code. In FIG. 8, an R code decoder 501 is connected to coded input data and outputs a run length and an indication of whether LPS has appeared (for example, 1N code). run·
The counter 502 is connected to receive the run length and the LPS instruction from the R code decoder 501, and outputs the reproduced original data. Run counter 50
2 also outputs a signal requesting the next count value (the R code decoder 501 is connected to receive this signal).

【0069】Rコードを使用するため、デコーダ501
はコード化データ入力として受け取った符号語を調べ
て、現符号語のランレングスを判定する。Rコード・デ
コーダ501は、ランの最後にLSPがあるかの判定も
する。ランレングス(すなわちラン・カウント値)とL
PSの判定結果に応じて、ラン・カウンタ502はラン
・カウント値と同じ数だけMPSを出力し、また、デコ
ーダ501が指示するときにはLSPを出力する。LP
Sの判定結果として”no”がラン・カウンタ502に
出力された時は、ラン・カウンタ502はMPSだけを
出力する(なお、Qコーダにおいてはビットを出力する
ために演算が必要になるが、本発明においてはカウンタ
だけで足りることに注意されたい)。
Since the R code is used, the decoder 501
Examines the codeword received as coded data input to determine the run length of the current codeword. The R code decoder 501 also determines whether there is an LSP at the end of the run. Run length (ie, run count value) and L
According to the determination result of the PS, the run counter 502 outputs MPS by the same number as the run count value, and outputs LSP when the decoder 501 instructs. LP
When "no" is output to the run counter 502 as the determination result of S, the run counter 502 outputs only the MPS (in the Q coder, an operation is required to output bits, Note that in the present invention only a counter is sufficient).

【0070】ラン・カウンタ502は実際にはビット群
を出力する。ラン・カウンタ502は、部分的に図3の
デコードデータメモリ207として働くことに注意すべ
きである。ある実施例においては、ラン・カウンタ50
2は必要数のMPSビットを出力し、必要ならば、それ
に続けてLSBビットを出力する。ラン・カウンタ50
2は、符号語が終わったことを指示するための信号(ne
xt count request)を出力して次の符号語を要求する。
このように、ラン・カウンタ502は簡単かつ高速であ
る。Rコード・デコーダ501は、ラン・カウンタ50
2からの信号を受けると次の符号語のために1ビットの
シフトを行なう。Rコード・デコーダ501は確率推定
モジュールの状態の更新も行なう。
The run counter 502 actually outputs a group of bits. It should be noted that the run counter 502 partially acts as the decode data memory 207 of FIG. In one embodiment, the run counter 50
2 outputs the required number of MPS bits, followed by LSB bits if necessary. Run counter 50
2 is a signal (ne
xt count request) to request the next codeword.
Thus, the run counter 502 is simple and fast. The R code decoder 501 includes a run counter 50
Upon receiving the signal from 2, a one-bit shift is performed for the next codeword. The R code decoder 501 also updates the state of the probability estimation module.

【0071】図9は本発明のRコーダの他の実施例を示
すブロック図である。図9において、Rコーダ600は
シフト・ブロック601、デコード・ブロック602、
ラン・カウンタ603及びPEM604から構成されて
いる。シフト・ブロック601は符号語のコード化デー
タ入力ストリームに接続される。シフト・ブロック60
1はまた、PEM604から現符号語の長さ(すなわち
シフトすべき量)を示すフィードバック信号を受け取る
ように接続されている。シフト・ブロック601は信号
(適当に整列されたコード化データ)を出力し、この信
号はデコード・ブロック602の入力に接続される。デ
コード・ブロック602はまた、PEM604から現コ
ードを指示するためのフィードバック信号を受け取るよ
うに接続されている。PEM604もデコード・ブロッ
ク602からの信号に接続されている。デコード・ブロ
ック602は、現ランレングスと、ランの最後にLPS
があるかを判断する。デコード・ブロック602は2つ
の信号、すなわち、ランレングス(RL)とLSP指示
とを出力し、両信号はカウンタ603の入力に接続され
る。カウンタ603はPEM604への信号出力にも接
続される。カウンタ603は再生データを発生する。カ
ウンタ603は、ランカウント・カウンタ(run count
counter)とLPSを送出すべきかであるかを管理す
る。カウンタ603はまた、デコードデータを送出し、
かつ、次の符号語を処理する時点を指示する。PEM6
04は、カウンタ603より、次の符号語の処理時点の
指示(次カウント値要求)を受け取るように接続されて
いる。
FIG. 9 is a block diagram showing another embodiment of the R coder according to the present invention. In FIG. 9, the R coder 600 includes a shift block 601, a decode block 602,
It comprises a run counter 603 and a PEM 604. Shift block 601 is connected to a coded data input stream of codewords. Shift block 60
1 is also connected to receive a feedback signal from the PEM 604 indicating the length of the current codeword (ie, the amount to shift). Shift block 601 outputs a signal (code data properly aligned) which is connected to the input of decode block 602. Decode block 602 is also connected to receive a feedback signal from PEM 604 to indicate the current code. PEM 604 is also connected to the signal from decode block 602. Decode block 602 includes the current run length and the LPS at the end of the run.
Determine if there is. Decode block 602 outputs two signals, a run length (RL) and an LSP indication, both signals being connected to the input of counter 603. Counter 603 is also connected to the signal output to PEM 604. The counter 603 generates reproduction data. The counter 603 is a run count counter (run count).
counter) and whether to transmit LPS. The counter 603 also sends out the decoded data,
In addition, it indicates when to process the next codeword. PEM6
04 is connected so as to receive from the counter 603 an instruction (next count value request) at the time of processing the next codeword.

【0072】PEM604は、シフト・ブロック601
の次データを処理するためのシフト量、デコード・ブロ
ックのための現コード、内部状態を更新するための次の
状態及びMPSを決定する。現コードの形態は、デコー
ド・ブロック602に現符号語のビットだけをデコード
させるためのビット・マスクである。これら機能はそれ
ぞれ、別々のフィードバック線によって必須ブロック
(つまりシフト・ブロック601、デコード・ブロック
602及びカウンタ603)へ指示される。
The PEM 604 includes a shift block 601
, The shift amount for processing the next data, the current code for the decode block, the next state for updating the internal state, and the MPS. The current code form is a bit mask that causes decode block 602 to decode only the bits of the current codeword. Each of these functions is directed to the essential blocks (ie, shift block 601, decode block 602, and counter 603) by separate feedback lines.

【0073】Rコーダ600の動作が開始すると、コー
ドが、最初に処理すべきビット位置よりRコーダ600
へ与えらる。シフト・ブロック601は、コード化デー
タを受け取り、それをデコード・ブロック602へ供給
する。ある実施例では、シフト・ブロック601はバレ
ルシフタ(barrel shifter)からなる。ある実施例で
は、シフト・ブロック601はコード化データを並列に
デコード・ブロック602へ供給する。
When the operation of the R coder 600 starts, the code sets the R coder 600 from the bit position to be processed first.
Given to. Shift block 601 receives the coded data and provides it to decode block 602. In one embodiment, shift block 601 comprises a barrel shifter. In one embodiment, shift block 601 provides coded data to decode block 602 in parallel.

【0074】デコード・ブロック602は、最初のビッ
トに基づき、符号語の種類を判定する。ある実施例で
は、符号語の種類の判定は、ランの最後にLSPがある
か確認することによる。別の実施例においては、符号語
の種類判定に、第2ビットが1であるか2であるかの確
認も含まれる。この第2ビットを確認することは、1N
のNビットの数が第2ビットで分かるような場合に重要
である(例えばR3(1)では、1に続くビットの数は1ビ
ットまたは2ビットである)。
[0074] Decode block 602 determines the type of codeword based on the first bit. In one embodiment, determining the codeword type is by checking for an LSP at the end of the run. In another embodiment, the codeword type determination includes checking whether the second bit is 1 or 2. Checking this second bit is 1N
Is important when the number of N bits of the second bit is known by the second bit (for example, in R3 (1), the number of bits following 1 is one or two bits).

【0075】ある実施例では、デコード・ブロック60
2は、ランレングスがMUXRUNであるか、あるい
は、1の後のNビットにランレングスがエンコードされ
ているか(例えば1Nの場合)の判定をする。PEM6
04は、1N符号語のビット数を指示するため現コード
を現コード信号線へ送る。このビット数が指示されるの
は、コードが長いと必要なビット数が増加するからであ
る。
In one embodiment, decode block 60
No. 2 determines whether the run length is MUXRUN or whether the run length is encoded in N bits after 1 (for example, 1N). PEM6
04 sends the current code to the current code signal line to indicate the number of bits in the 1N codeword. The number of bits is indicated because the longer the code, the more bits are required.

【0076】符号語の種類の判定結果は符号語種類信号
によってPEM604へ指示される。PEM604は、
現コードと符号語種類を用いて、符号語長を判断する。
この符号語長はシフト・ブロック601へ接続される。
シフト・ブロック601は、符号語長を用いて次の符号
語のためのデータを調整する。
The result of the code word type determination is instructed to PEM 604 by a code word type signal. PEM604 is
The codeword length is determined using the current code and the codeword type.
This codeword length is connected to shift block 601.
Shift block 601 uses the codeword length to adjust data for the next codeword.

【0077】PEM604は、符号語の種類を用いて確
率推定モジュールの状態を更新する。更新後の確率推定
モジュールの状態は、デコード・ブロック602により
後に使用される新しい現コードを決めるために使用され
る。カウンタ603は、図8のラン・カウンタと同じ方
法でデコードデータを生成する。
The PEM 604 updates the state of the probability estimation module using the type of the code word. The updated state of the probability estimation module is used by the decode block 602 to determine a new current code to be used later. The counter 603 generates decoded data in the same manner as the run counter of FIG.

【0078】コードは可変長であるので、あるコードの
長さが3ならば、次の符号語は4ビットだけ離れた位置
にある。したがって、シフト・ブロック601は、コー
ドストリーム中の4ビットだけ後方の位置へシフトし、
その位置トよりデータをデコード・ブロック602へ送
る。ある実施例では、デコード・ブロック602が現符
号語について終了したことを通知するための信号がPE
M604よりシフト・ブロック601に入力することに
よって、シフト・ブロック601にシフトを行なわせ
る。ラン・カウンタ603は、デコードデータを出力し
た後、Rコード・デコーダ500に次のカウント値を要
求する。その後、デコーディング、確率推定モジュール
及びシフトのプロセス全体が繰り返される。
Since the length of a code is variable, if the length of a certain code is 3, the next code word is located at a position separated by 4 bits. Thus, the shift block 601 shifts 4 bits backward in the codestream,
The data is sent to the decoding block 602 from that position. In one embodiment, the signal to signal that decode block 602 has finished for the current codeword is a PE signal.
By inputting to the shift block 601 from M604, the shift block 601 shifts. After outputting the decode data, the run counter 603 requests the R code decoder 500 for the next count value. Thereafter, the entire decoding, probability estimation module and shifting process is repeated.

【0079】圧縮が有効な時には、殆どの符号語は複数
ビットにデコードされる。複数のRコード・デコーダを
持つ装置ならば、使用頻度の少ないシフタ・モジュー
ル、デコーディング・モジュール及びフィードバック・
モジュールを、いくつかのカウンタ・モジュールで共用
できる。このような装置の例は後述する。
When compression is enabled, most codewords are decoded into multiple bits. If the device has a plurality of R code decoders, the shifter module, the decoding module and the feedback
A module can be shared by several counter modules. Examples of such a device will be described later.

【0080】したがって、本発明は、R2(k)コード及び
R3(k)コードを状態テーブル/マシンPEMとともに用
いることにより、ほぼ最高の圧縮率でデコーディングを
行なうことができる。また、本発明は、状態テーブルP
EMを採用することによって、少ないハードウエアコス
トと高速のハードウエアで単純な確率推定モジュールを
実現できる。
Therefore, the present invention can perform decoding at almost the highest compression ratio by using the R2 (k) code and the R3 (k) code together with the state table / machine PEM. Further, the present invention provides a state table P
By using EM, a simple probability estimation module can be realized with low hardware cost and high-speed hardware.

【0081】〈FPGAによるRデコーダのハードウエ
ア構成例〉単純なRコーダの構成が図10に示されてい
る。このRコーダはConcurrentLogic社(Sunnyval
e,California)のCLi6005というブランドのF
PGAを用いて設計された。図10のRコーダに関係す
る確率推定モデルが下に示されている。
<Example of Hardware Configuration of R Decoder Using FPGA> FIG. 10 shows the configuration of a simple R coder. This R coder is available from Concurrent Logic (Sunnyval
e, California) of the brand CLi6005
Designed using PGA. The probability estimation model associated with the R coder of FIG. 10 is shown below.

【0082】[0082]

【表8】 [Table 8]

【0083】この例においては、R2コードだけがサポ
ートされており、R2(7)コードが最長ランレングスコー
ドである。
In this example, only the R2 code is supported, and the R2 (7) code is the longest run length code.

【0084】図10を参照する。シフトレジスタ701
は8ビットバスによりメモリからコード化データを受け
取るように接続されている。シフトレジスタ701はコ
ード化データを1ビットずつ出力し、このビットはコン
トロール703とシフトレジスタ702に接続される。
シフトレジスタ702はマルチプレクサ704に接続さ
れている。アップ/ダウン・シフトレジスタ708のロ
ーディングは、論理1の入力によって行なわれる。シフ
トレジスタ708はアップ/ダウン・シフトレジスタ7
09に接続され、同シフトレジスタ709には論理0が
入力されている。シフトレジスタ709の出力は、エン
コーダ710及びマルチプレクサ704に入力として接
続されている。マルチプレクサ704の出力はコンパレ
ータ706の一方の入力に接続されている。コンパレー
タ706のもう一方の入力は、カウンタ705の出力に
接続されている。カウンタ705はカウンタ711に接
続されている。カウンタ711はコンパレータ712の
一方の入力に接続されている。コンパレータ712のも
う一方の入力は、エンコーダ710の出力と接続されて
いる。コンパレータ712の出力はコントロール703
に接続されているが、コンパレータ706の出力も同様
である。コントロール703の出力は、シフトレジスタ
707の入力に接続されるデータとなる。このシフトレ
ジスタ707はデータを直列的に受けとって並列に出力
する。なお、コントロール703は他のブロックに接続
され、それらを制御する。
Referring to FIG. Shift register 701
Are connected to receive coded data from memory by an 8-bit bus. The shift register 701 outputs the coded data one bit at a time, and this bit is connected to the control 703 and the shift register 702.
The shift register 702 is connected to the multiplexer 704. Loading of the up / down shift register 708 is performed by inputting a logic one. The shift register 708 is an up / down shift register 7
09, and a logic 0 is input to the shift register 709. The output of shift register 709 is connected as input to encoder 710 and multiplexer 704. The output of the multiplexer 704 is connected to one input of a comparator 706. The other input of the comparator 706 is connected to the output of the counter 705. The counter 705 is connected to the counter 711. The counter 711 is connected to one input of the comparator 712. The other input of the comparator 712 is connected to the output of the encoder 710. The output of the comparator 712 is the control 703
The output of the comparator 706 is the same. The output of the control 703 is data connected to the input of the shift register 707. The shift register 707 receives data serially and outputs the data in parallel. The control 703 is connected to other blocks and controls them.

【0085】図10の回路は、図9に関して述べたと同
様に動作する。この実施例の場合、シフトレジスタ70
1,702は図9のシフト・ブロックに対応する。アッ
プ/ダウン・シフトレジスタ708,709とエンコー
ダ710の組合せ、カウンタ711及びコンパレータ7
12は図9中のRコーダの確率推定モジュールを提供す
る。Rコーダのデコード・ブロックはマルチプレクサ7
04によって実現されるが、ラン・カウンタはカウンタ
705とコンパレータ706を用いて実現される。
The circuit of FIG. 10 operates in a manner similar to that described with reference to FIG. In the case of this embodiment, the shift register 70
1, 702 corresponds to the shift block in FIG. Combination of up / down shift registers 708 and 709 and encoder 710, counter 711 and comparator 7
12 provides a probability estimation module of the R coder in FIG. The decoding block of the R coder is a multiplexer 7
04, the run counter is implemented using a counter 705 and a comparator 706.

【0086】図10の回路構成例が図11乃至図13に
示されている。図11は、図10のRデコーダのコント
ロール・ロジックの回路図である。図12は確率推定モ
ジュールの回路図である。図13は図10のRデコーダ
のシフタ、デコーダ及びカウンタの回路図である。回路
図に示された各回路の動作は従来からよく知られてい
る。なお、図11乃至図13において、図10中の特定
のブロックと同じ要素は、括弧で括られた参照番号によ
り明示されている。括弧で括った参照番号の付されてい
ない他のブロックはすべて、従来より動作が周知のコン
トロール回路である。
FIGS. 11 to 13 show examples of the circuit configuration of FIG. FIG. 11 is a circuit diagram of the control logic of the R decoder of FIG. FIG. 12 is a circuit diagram of the probability estimation module. FIG. 13 is a circuit diagram of the shifter, decoder and counter of the R decoder of FIG. The operation of each circuit shown in the circuit diagram is well known in the related art. 11 to 13, the same elements as those of the specific block in FIG. 10 are clearly indicated by reference numbers enclosed in parentheses. All other blocks without reference numbers in parentheses are control circuits whose operation is well known in the art.

【0087】〈Aコード〉本発明のAコードは、ある一
つの確率に対して最適化された可変長−可変長コード
(variable length to variable length code)であ
る。換言すれば、本発明のAコードは適応的でない。本
発明のAコードは、別々の確率クラスの並列デコーディ
ングを行なう装置に使用できる。Aコードの一例はA1
コードである。このA1コードを下に示す。 00 → 0 01 → 10 1 → 11 本発明のA1コードは、約0.71(71%)のMPS
確率に対し効率がよい。
<A Code> The A code of the present invention is a variable length to variable length code optimized for a certain probability. In other words, the A code of the present invention is not adaptive. The A code of the present invention can be used in an apparatus that performs parallel decoding of different probability classes. An example of A code is A1
Code. The A1 code is shown below. 00 → 001 → 10 1 → 11 The A1 code of the present invention has an MPS of about 0.71 (71%).
Efficient for probability.

【0088】Aコードのもう一つの例は、A2コードで
ある。本発明のA2コードを下に示す。 0000 → 0 0001 → 1000 0010 → 1001 0011 → 11111 010 → 101 011 → 11101 100 → 110 101 → 11110 11 → 11100 Aコードは、様々な確率に対応するためカスケードにす
る(cascaded)ことができる。Aコードの場合、一つの
可変長コードがビルディング・ブロックとして使用さ
れ、このビルディング・ブロックは別の確率に関するコ
ードを生成するために可変長コードと直列的にカスケー
ドにすることができる。実際には、ある確率のコードが
別のコーダに通されることにより、別の確率のコードス
トリームが生成される。例えば、上記のA1コードの出
力がもう一つのA1デコーダに入力されることにより、
一つのカスケードされたA1コードが得られる。同様
に、A2デコーダの出力をA1デコーダに入力すること
ができる。
Another example of the A code is the A2 code. The A2 code of the present invention is shown below. 0000 → 00001 → 10000010 → 10010011 → 11111010 → 101011 → 11101100 → 110101 → 1111011 → 11100 A codes can be cascaded to accommodate various probabilities. For A codes, one variable length code is used as a building block, which can be cascaded in series with the variable length code to generate a code for another probability. In practice, passing a code of one probability through another coder produces a code stream of another probability. For example, when the output of the above A1 code is input to another A1 decoder,
One cascaded A1 code is obtained. Similarly, the output of the A2 decoder can be input to the A1 decoder.

【0089】A1コーダを使用し、多段にカスケードさ
れたコードを得る構成も実現できる。ある実施例では、
装置は複数の確率クラスを並列に処理するが、それぞれ
の確率をAコーダのチェーンの別々の部分に入力するこ
ともできる。すなわち、Aコーダのそれぞれは前段のA
コーダの出力及びあるコンテキスト・ビンのためのデー
タに対応した確率クラスを受け取り、その両方が入力し
た時に別の確率のコードが生成される。
It is also possible to use an A1 coder to obtain a multistage cascaded code. In one embodiment,
The device processes multiple probability classes in parallel, but each probability can be input to a separate part of the A-coder chain. That is, each of the A-coders is
Probability classes corresponding to the output of the coder and the data for a context bin are received, and when both are input, another probability code is generated.

【0090】本発明のAコードは、ハードウエアで簡単
に実現できるコードである。複数のAコーダをカスケー
ドにすることによって、装置を実現するために必要なハ
ードウエア量が少なくなる。
The A code of the present invention is a code that can be easily realized by hardware. By cascading a plurality of A-coders, the amount of hardware required to implement the device is reduced.

【0091】本発明のAコードは、小量の布線論理ある
いは小さなルックアップ・テーブルにより、高速動作で
デコードすることができる。Aコードは外部の確率推定
モジュールの使用を可能にするので、エントロピー・コ
ーディング装置で任意のPEMを使用できる。
The A code of the present invention can be decoded at a high speed by using a small amount of wiring logic or a small look-up table. The A-code allows the use of an external probability estimation module, so that any PEM can be used in the entropy coding device.

【0092】〈並列デコーディング装置〉 非インターリーブ並列デコーディング装置 本発明は、バイナリ・エントロピー・コーダのコーディ
ング速度を上げるために非インターリーブチャネルまた
は多チャネルのコーダを並列に用いる。IBM社のQコ
ーダやBコーダのようなバイナリ・エントロピー・コー
ダは、デコーダとコンテキスト・モデルの間に単一の大
きなフィードバック・ループを必要とすることは前述の
とおりである。適当なコード化データの伝送方法と複数
のデコーダを用いることにより、コンテキスト・モデル
のフィードバック・ループは分離される。コンテキスト
・モデルのフィードバック・ループを分離することによ
り、コンテキスト・モデルを、デコード結果の選択に変
えることができる。
<Parallel Decoding Device> Non-Interleaved Parallel Decoding Device The present invention uses non-interleaved or multi-channel coder in parallel to increase the coding speed of a binary entropy coder. As mentioned above, binary entropy coders, such as the IBM Q and B coders, require a single large feedback loop between the decoder and the context model. By using appropriate coded data transmission methods and multiple decoders, the context model feedback loop is isolated. By separating the context model feedback loop, the context model can be turned into a choice of decoding results.

【0093】本発明においては、コンテキスト・モデル
とコーダの機能を分離することにより、並列化の採用を
可能にする。現時点の好適実施例においては、確率推定
モジュールは、コンテキスト・モデル(Bコーダの場
合)またはビットストリーム・ジェネレータ(Qコーダ
の場合)と結合される。各ビットストリーム・ジェネレ
ータはコードデータの一つのサブセットに割り当てられ
る。各サブセットはコンテキスト・ビンまたは確率クラ
スのいずれに関連付けてもよく、そのいずれであるかは
設計次第である。換言すると、ある実施例においては、
一群のビットストリーム・ジェネレータのそれぞれは、
一つのコンテキストあるいはコンテキスト・ビンのクラ
スに対応したコード化入力データを受け取り、また、他
の実施例では、ビットストリーム・ジェネレータのそれ
ぞれは、一つの確率クラスに対応したコード化入力デー
タを受け取る。なお、コンテキスト・、ビンの個数がコ
ーダの個数より多い場合、複数のコンテキスト・ビンの
クラスを一つのビットストリーム・ジェネレータに関連
付けてもよい。
In the present invention, parallelization can be adopted by separating the functions of the context model and the coder. In the currently preferred embodiment, the probability estimation module is combined with a context model (for a B coder) or a bitstream generator (for a Q coder). Each bitstream generator is assigned to one subset of the code data. Each subset may be associated with a context bin or a probability class, which is up to the design. In other words, in one embodiment,
Each of a group of bitstream generators
In another embodiment, each of the bitstream generators receives coded input data corresponding to one probability class, wherein the coded input data corresponds to one context or class of context bins. If the number of contexts and bins is larger than the number of coders, a plurality of context bin classes may be associated with one bitstream generator.

【0094】コンテキスト・モデル及びビットストリー
ム・ジェネレータをパイプライン化することにより、デ
コーダの速度が上昇し、それら2つの動作の合計時間で
はなく、遅いほうの動作の完了に必要な時間のみによっ
て速度が制限される。ビットストリーム・ジェネレータ
はコンテキスト・モデルとは独立に動作するので、速度
を上げるため複数のビットストリーム・ジェネレータを
並列に用いることができる。
By pipelining the context model and the bitstream generator, the speed of the decoder is increased and the speed is increased only by the time required to complete the slower operation, rather than the total time of the two operations. Limited. Because the bitstream generator operates independently of the context model, multiple bitstream generators can be used in parallel to increase speed.

【0095】本発明は、パイプライン技法を利用して実
施し得る。なお、本発明において、ビットストリーム・
ジェネレータの部分もパイプラインにすることができ
る。図9を再度参照する。デコード・ブロック602か
らラン・カウンタ603へデータが送られる間に入力デ
ータをRコード・デコーダへ入力してもよい。同様に、
Rコード・デコーダとラン・カウンタ603の間にパイ
プライン技法を採用してもよい。Rコード・デコーダ内
部のデコード・ブロック602とPEM604の部分に
もパイプライン技法を利用してもよい。
The present invention can be implemented utilizing pipeline techniques. In the present invention, the bit stream
The generator part can also be a pipeline. FIG. 9 is referred to again. Input data may be input to the R code decoder while data is being sent from the decode block 602 to the run counter 603. Similarly,
A pipeline technique may be employed between the R code decoder and the run counter 603. The pipeline technique may also be used for the decoding block 602 and the PEM 604 inside the R code decoder.

【0096】したがって、本発明は、コンテキスト・モ
デルと同程度の速度で(デコード結果の選択時には、簡
単なマルチプレクサ動作を行なうために必要な時間をコ
ンテキスト・モデルの時間に加えた速度で)動作可能な
装置を提供する。
Therefore, the present invention can operate at the same speed as that of the context model (when the decoding result is selected, the time required to perform a simple multiplexer operation is added to the time of the context model). Equipment.

【0097】本発明においては、コード化データは多数
のビットストリーム・ジェネレータに供給される。ある
実施例では、複数のチャネルが使用される。他の実施例
では、単一の非インターリーブチャネルが使用される。
別の実施例では、単一のインターリーブチャネルが使用
される。
In the present invention, the coded data is provided to a number of bitstream generators. In some embodiments, multiple channels are used. In another embodiment, a single non-interleaved channel is used.
In another embodiment, a single interleaved channel is used.

【0098】多チャネル・コーダ 本発明は、圧縮入力データの並列デコーディングを行な
う多チャネル・コーダを提供する。ある実施例の多チャ
ネル・コーダにおいては、各ビットストリーム・ジェネ
レータは一つのコンテキスト・ビンまたは一群のコンテ
キスト・ビンに割り当てられる。この多チャネル・コー
ダを実現するには、コンテキスト・ビン毎に独立のチャ
ネルが用意される。このように、各コンテキスト・ビン
は、ある特定のコンテキスト・ビンのビットをデコード
するための、専用のビットストリーム・ジェネレータ及
び確率推定モジュールに入力される、一つの独立したチ
ャネルを持つ。他の実施例は、確率クラス(Pクラス)
毎に一つの独立したチャネルを持つ。図14は、本発明
による並列確率クラス用多チャネル・コーダ装置の一実
施例のブロック図である。
Multi-Channel Coder The present invention provides a multi-channel coder that performs parallel decoding of compressed input data. In one embodiment, in a multi-channel coder, each bitstream generator is assigned to a context bin or a group of context bins. To implement this multi-channel coder, independent channels are provided for each context bin. Thus, each context bin has one independent channel that is input to a dedicated bitstream generator and probability estimation module for decoding the bits of a particular context bin. Another embodiment is a probability class (P class)
Each has one independent channel. FIG. 14 is a block diagram of an embodiment of a multi-channel coder for a parallel probability class according to the present invention.

【0099】図14において、オリジナルデータはエン
コーダ1101に入力される。ある実施例では、エンコ
ーダ1101はデータを受け取り、コード化データファ
イルにエンコードする。データのデコーディングは、デ
コーダ1111によって行なわれる。デコーダ1111
は、ビットストリーム・ジェネレータ1102〜110
5と、統合されたPEM/CM1106からなる。デー
タのデコーディング時には、各確率クラス(Pクラス)
に関連したデータが、別々のチャネルを介して一群のビ
ットストリーム・ジェネレータに受け取られる。Pクラ
ス1に対応したコード化データは、チャネル1107に
より送られる。チャネル1107は、ビットストリーム
・ジェネレータ1102の一つの入力に接続される。P
クラス2対応のコード化データはチャネル1108によ
り送られる。チャネル1108はビットストリーム・ジ
ェネレータ1103の一つの入力に接続される。Pクラ
ス3対応のコード化データはチャネル1109により送
られる。チャネル1109はビットストリーム・ジェネ
レータ1104の一つの入力に接続される。Pクラス4
対応のコード化データはチャネル1110により送られ
る。チャネル1110はビットストリーム・ジェネレー
タ1105の一つの入力に接続される。なお、図14に
はチャネルとビットストリーム・ジェネレータが4個し
か示されていないが、それらの実際の個数は特定のアプ
リケーションによって決まるもので、4個より増加させ
ても減少させてもかまわない。
In FIG. 14, original data is input to an encoder 1101. In one embodiment, encoder 1101 receives the data and encodes it into an encoded data file. The decoding of the data is performed by the decoder 1111. Decoder 1111
Are the bitstream generators 1102 to 110
5 and an integrated PEM / CM 1106. When decoding data, each probability class (P class)
Are received by a group of bitstream generators over separate channels. Coded data corresponding to P class 1 is sent by channel 1107. Channel 1107 is connected to one input of bitstream generator 1102. P
The coded data for class 2 is sent by channel 1108. Channel 1108 is connected to one input of bitstream generator 1103. Coded data corresponding to P class 3 is sent by channel 1109. Channel 1109 is connected to one input of bitstream generator 1104. P class 4
The corresponding coded data is sent on channel 1110. Channel 1110 is connected to one input of bitstream generator 1105. Although only four channels and bitstream generators are shown in FIG. 14, the actual number depends on the specific application and may be increased or decreased from four.

【0100】確率推定モジュール(PEM)/コンテキ
スト・モデル(CM)1106は、ビットストリーム・
ジェネレータ1102〜1105のそれぞれの出力を受
け取るように接続され、そして、デコードデータ出力を
生成する。なお、エンコーダ1105は、圧縮/伸長装
置のデータパス全体を説明するために示されているにす
ぎない。デコーダ1111は、デコードされるデータが
予めエンコードされ記憶されている場合に、例えば、ビ
デオディスプレイ装置でグラフィック画像がメモリに格
納されている場合に、動作が可能である。
The probability estimation module (PEM) / context model (CM) 1106 includes a bit stream
Each of the generators 1102-1105 is connected to receive an output and produces a decoded data output. It should be noted that the encoder 1105 is only shown to describe the entire data path of the compression / decompression device. The decoder 1111 can operate when data to be decoded is encoded and stored in advance, for example, when a graphic image is stored in a memory in a video display device.

【0101】デコーダ1111が圧縮データをデコード
する時には、PEM/CM1106はビットストリーム
・ジェネレータ1102〜1105のデータ出力を選択
する。PEM/CM1106が、デコードビットとして
ビットストリーム・ジェネレータの一つを選択する時
に、データはすぐに間に合う。よって、PEM/CM1
106は、既にデコードされた結果を選ぶにすぎない。
PEM/CM1106がビットストリーム・ジェネレー
タの一つを選んでいる間、他の選択されないビットスト
リーム・ジェネレータは、それらに専用のチャネルによ
り受け取ったデータをデコーディング中である。したが
って、PEM/CM1106が次の結果を選択した時
に、データは(適当な順番で)用意されている。
When the decoder 1111 decodes the compressed data, the PEM / CM 1106 selects the data output of the bit stream generators 1102 to 1105. When the PEM / CM 1106 selects one of the bitstream generators as the decode bit, the data is ready in time. Therefore, PEM / CM1
106 only selects the result that has already been decoded.
While the PEM / CM 1106 is selecting one of the bitstream generators, the other unselected bitstream generators are decoding data received on their dedicated channel. Thus, when the PEM / CM 1106 selects the next result, the data is ready (in the proper order).

【0102】この適当な順番は、自由に設計されるの
で、PEM/CM1106側で分かっている。PEM/
CM1106は、この適当な順番でビンからのデータを
選択する。例えば、データが画像データであるならば、
PEM/CM1106は画像順(つまりラスタースキャ
ン順)にビットストリーム・ジェネレータのそれぞれの
出力データをアクセスする。すなわち、ラスタースキャ
ンによって、PEM/CM1106の使用する順番の意
味が与えられる。
This proper order is freely designed and is known on the PEM / CM 1106 side. PEM /
The CM 1106 selects data from the bin in this proper order. For example, if the data is image data,
The PEM / CM 1106 accesses the respective output data of the bit stream generator in the order of images (that is, the order of raster scan). That is, the meaning of the order of use of the PEM / CM 1106 is given by the raster scan.

【0103】独立したチャネル1107〜1110がビ
ットストリーム・ジェネレータ1102〜1105に新
しいデータを絶えず供給するため、ビットストリーム・
ジェネレータ1102〜1105は全く遊ぶことがない
(常に、デコードするデータがある)。
Since the independent channels 1107 to 1110 constantly supply new data to the bit stream generators 1102 to 1105, the bit stream
Generators 1102-1105 never play (always have data to decode).

【0104】図15は、コンテキスト・ビンを並列に処
理する、本発明による多チャネル・デコーダの一実施例
のブロック図を示す。図15において、データはエンコ
ーダ1215に入力されてエンコードされる。エンコー
ダ1215は各チャネル1201〜1204に接続され
ている。各チャネル1201〜1204は、コンテキス
ト・ビン1〜4に対応したコード化データをそれぞれ伝
達するもので、ビットストリーム・ジェネレータ120
5〜1208の入力にそれぞれ接続されている。ビット
ストリーム・ジェネレータ1205〜1208の出力
は、確率推定モジュール(PEM)1209〜1212
の入力にそれぞれ接続されている。PEM1209〜1
212のそれぞれより出力されるデコードデータはコン
テキスト・モデル1213に接続され、コンテキスト・
モデル1213はPEM1209〜1212全ての出力
を順序付ける。なお、図15はデータフロー図にすぎな
い。本発明を難解にしないために、動作に必要な他の信
号は示されていない。これらの信号とその働きは、当業
者には明白であろう。
FIG. 15 shows a block diagram of one embodiment of a multi-channel decoder according to the present invention that processes context bins in parallel. In FIG. 15, data is input to an encoder 1215 and encoded. The encoder 1215 is connected to each of the channels 1201 to 1204. Each of the channels 1201 to 1204 transmits the coded data corresponding to the context bins 1 to 4, respectively.
5 to 1208, respectively. The outputs of the bitstream generators 1205-1208 are output to probability estimation modules (PEMs) 1209-1212.
Are connected to the inputs. PEM1209-1
The decoded data output from each of the 212 is connected to a context model 1213,
Model 1213 orders the output of all PEMs 1209-1212. FIG. 15 is merely a data flow diagram. Other signals required for operation have not been shown in order not to obscure the present invention. These signals and their function will be apparent to those skilled in the art.

【0105】デコーダ1214の動作は、PEM120
9〜1212を別にすれば、図14に示したデコーダ1
111と同様である。デコーダ1214においては、P
EM1209〜1212のそれぞれが別々のビットスト
リーム・ジェネレータの専用とされる。例えば、PEM
1209は、ビットストリーム・ジェネレータ1205
との関連でのみ動作する。この場合、確率推定モジュー
ルは、コンテキスト・モデル1203からのデータ・リ
クエスト信号に応答して、デコード済みデータビットを
コンテキスト・モデル1213へ送る。コンテキスト・
モデル1213は随時動作する。コンテキスト・モデル
1213があるコンテキストのデータを要求している
間、他のコンテキスト・ビンに関するデータのデコード
中であるので、データは並列処理される。したがって、
すべてのビンが専用のチャネル、ビットストリーム・ジ
ェネレータ及び確率推定モジュールを持つ多チャネル構
成において、並列化を利用できる。
The operation of the decoder 1214 is as follows.
9 to 1212, the decoder 1 shown in FIG.
Similar to 111. In the decoder 1214, P
Each of the EMs 1209-1212 is dedicated to a separate bitstream generator. For example, PEM
1209 is a bitstream generator 1205
Only works in connection with. In this case, the probability estimation module sends the decoded data bits to the context model 1213 in response to the data request signal from the context model 1203. context·
The model 1213 operates at any time. While the context model 1213 is requesting data for one context, the data is processed in parallel because data for other context bins is being decoded. Therefore,
Parallelization is available in multi-channel configurations where all bins have dedicated channels, bitstream generators and probability estimation modules.

【0106】データを並列にデコードする多チャネル・
コーダは、大きなバンド幅が必要となるため高コストで
ある。このバンド幅は、一つのビンだけが使用される場
合には無駄になる。
Multi-channel decoding of data in parallel
Coders are expensive due to the large bandwidth required. This bandwidth is wasted if only one bin is used.

【0107】非インターリーブチャネル・コーダ 本発明は、単一のチャネルを使用して、各コンテキスト
・ビン(またはクラス)に対応したコード化データを複
数のビットストリーム・ジェネレータに供給する装置を
提供する。この単一チャネル構成を実現するために、非
インターリーブチャネルが使用される。このように、本
発明において、非インターリーブチャネルめコーダが使
用されるならば、チャネルを1つだけ使用して、ビット
ストリーム・ジェネレータをコンテキスト・ビン(また
はクラス)から独立させることができる。
Non-Interleaved Channel Coder The present invention provides an apparatus for using a single channel to supply coded data corresponding to each context bin (or class) to a plurality of bitstream generators. To achieve this single channel configuration, non-interleaved channels are used. Thus, if a non-interleaved channel coder is used in the present invention, only one channel can be used to make the bitstream generator independent of the context bin (or class).

【0108】図16は、確率クラスを並列に処理するた
めの、本発明による非インターリーブチャネル・コーダ
の一実施例を示す。図16において、エンコーダ130
0はオリジナルデータを受け取ってエンコードする。デ
コーダ1301は、コード化データを受け取ってオリジ
ナルデータを再現する。デコーダ1301は、メモリ・
メモリコントロール1303、ビットストリーム・ジェ
ネレータ1304〜1307、及び確率推定モジュール
(PEM)/コンテキスト・モデル(CM)1308か
らなる。メモリ・メモリコントロール1303は、コー
ド化データストリームを受け取り、各確率クラス(Pク
ラス)のデータを出力するように接続されている。ビッ
トストリーム・ジェネレータ1304〜1307は、メ
モリの単一ポートより個々の確率クラスのためのコード
化データを受け取るように接続されている。ビットスト
リーム・ジェネレータ1304〜1307それぞれの出
力は、PEM/CM1308に接続される。
FIG. 16 shows an embodiment of a non-interleaved channel coder according to the invention for processing probability classes in parallel. Referring to FIG.
0 receives and encodes the original data. The decoder 1301 receives the coded data and reproduces the original data. The decoder 1301 has a memory
It consists of a memory control 1303, bitstream generators 1304-1307, and a probability estimation module (PEM) / context model (CM) 1308. The memory control 1303 is connected to receive the coded data stream and output data of each probability class (P class). Bitstream generators 1304-1307 are connected to receive coded data for individual probability classes from a single port of memory. The output of each of the bitstream generators 1304 to 1307 is connected to the PEM / CM 1308.

【0109】ビットストリーム・ジェネレータ1304
〜1307とPEM/CM1308は、図14のビット
ストリーム・ジェネレータ及びPEM/CMと同様に動
作する。しかしながら、デコーダ1301は、様々なP
クラスのコードストリームを結合する単一のチャネルよ
り、コード化データを受け取る。
Bit stream generator 1304
1307 and the PEM / CM 1308 operate similarly to the bitstream generator and the PEM / CM of FIG. However, the decoder 1301 has various P
Receive coded data from a single channel that combines the code streams of the classes.

【0110】現時点の好適実施例では、単一チャネルに
より伝送されるコード化データは、各Pクラスのデータ
に対するポインタのリスト(並列にコンテキスト・ビン
を処理する場合は各コンテキスト・ビンのデータに対す
るポインタのリスト)を含み、その後に各ビンのデータ
が続く。コード化データは全て、メモリ・メモリコント
ロール1303に受け取られて記憶される。現時点の好
適実施例では、コード化データは順次に記憶される。こ
のメモリコントロール・ユニットは、ポインタを利用し
て適当なPクラスのデータを対応のビットストリーム・
ジェネレータに供給する。
In the presently preferred embodiment, the coded data transmitted by a single channel is a list of pointers to the data of each P class (or pointers to the data of each context bin when processing the context bins in parallel). ), Followed by the data for each bin. All coded data is received and stored in memory memory control 1303. In the currently preferred embodiment, the coded data is stored sequentially. The memory control unit uses a pointer to store appropriate P-class data into a corresponding bit stream.
Supply to generator.

【0111】PEM/CM1308は、ビットストリー
ム・ジェネレータ1304〜1307の一つにデコード
・データを要求する。ビットストリーム・ジェネレータ
1304〜1307はそれぞれ、PEM/CM1308
に要求されることになる次の符号語を持っていないない
時に、メモリコントロール1303に符号語を要求す
る。これらの動作の両方が同一速度で起こるならば、メ
モリ1303に対する要求は一度に一つしか起こりえな
い。しかし、PEM/CM1303のほうが高速に動作
すると、1メモリアクセス時間内にメモリ1303に対
し複数の要求が発生することがある。どのビットストリ
ーム・ジェネレータにメモリを使用する資格を与えるか
決定するために、調停方式を使用してもよい。なお、こ
の装置において、PEM/CM1308は、メモリ・メ
モリコントロール1303に対して、その動作を指示し
ない−ビットストリーム・ジェネレータは必要な時にメ
モリアクセスを要求する。
The PEM / CM 1308 requests decoded data from one of the bit stream generators 1304 to 1307. The bit stream generators 1304 to 1307 are respectively PEM / CM 1308
When it does not have the next codeword to be requested, the memory control 1303 requests a codeword. If both of these operations occur at the same rate, only one request for memory 1303 can occur at a time. However, when the PEM / CM 1303 operates at a higher speed, a plurality of requests may be issued to the memory 1303 within one memory access time. An arbitration scheme may be used to determine which bitstream generators are entitled to use the memory. In this apparatus, the PEM / CM 1308 does not instruct the memory / memory control 1303 to perform the operation-the bitstream generator requests memory access when necessary.

【0112】図17は、コンテキスト・ビンを並列処理
するための非インターリーブ単一チャネル・デコーダ1
411の一実施例のブロック図を示す。図17に示す装
置は、データを受け取ってコード化データを送出するエ
ンコーダ1412と、チャネルよりコード化データを受
け取るデコーダ1411からなる。デコーダ1411
は、メモリ・メモリコントロール1401、ビットスト
リーム・ジェネレータ1402〜1405、確率推定モ
ジュール1406〜1409、コンテキスト・モデル1
410から構成されている。ビットストリーム・ジェネ
レータ1402〜1402、確率推定モジュール140
6〜1409及びコンテキスト・モデル1410の接続
及び動作は、図15に関連して述べたビットストリーム
・ジェネレータ、確率推定モジュール及びコンテキスト
・モデルと同様である。メモリ・メモリコントロール1
401は、図16に関連して述べたメモリ・メモリコン
トロールと同じように、ビットストリーム・ジェネレー
タ1402〜1405及びコード化入力データと接続さ
れ、動作する。繰り返しになるが、各コンテキスト・ビ
ンは専用のチャネル、ビットストリーム・ジェネレータ
及び確率推定モジュールを持つ。
FIG. 17 shows a non-interleaved single channel decoder 1 for processing context bins in parallel.
FIG. 411 shows a block diagram of one embodiment of 411. The apparatus shown in FIG. 17 includes an encoder 1412 that receives data and sends coded data, and a decoder 1411 that receives coded data from a channel. Decoder 1411
Are the memory / memory control 1401, the bitstream generators 1402-1405, the probability estimation modules 1406-1409, the context model 1
410. Bitstream generators 1402-1402, probability estimation module 140
The connection and operation of 6-1409 and the context model 1410 are similar to the bitstream generator, probability estimation module and context model described in connection with FIG. Memory / Memory control 1
401 is connected and operates with bitstream generators 1402-1405 and coded input data, similar to the memory control described in connection with FIG. Again, each context bin has its own channel, bitstream generator and probability estimation module.

【0113】図18は、全てのビンのデータを含む連結
(concatinated)コードストリームの一例を示してい
る。この単一チャネル用連結コードストリームは、ヘッ
ダと、各コンテキスト・ビンのコード化データからな
る。ヘッダは、コードストリーム中の各コンテキスト・
ビンのコード化データの始まりを指すポインタからな
る。例えば、このコードストリーム中のコード化データ
1501は、コンテキスト・ビン1のコード化データに
対するポインタに相当する。このコードストリーム中の
コード化データ1502は、コンテキスト・ビン2のデ
ータに対するポインタに相当する。このコードストリー
ム中のデータ1503は、コンテキスト・ビン3のコー
ド化データに対するポインタに相当する。現時点の好適
実施例においては、各コンテキスト・ビンのコード化デ
ータは、順にコードストリーム中に格納される。例え
ば、図18において、コンテキスト・ビン1のコード化
データ1504がコードストリームのポインタ部分の後
に続く。その後にコンテキスト・ビン2のデータ150
5が続き、さらにコンテキスト・ビン3のコード化デー
タが続く、等々である。なお、コード化データ・セクシ
ョン(1504〜1506)それぞれのコード化データ
量は異なってもよい。
FIG. 18 shows an example of a concatinated code stream including data of all bins. The concatenated code stream for a single channel includes a header and coded data of each context bin. The header is used for each context in the codestream.
Consists of a pointer to the beginning of the coded data for the bin. For example, the coded data 1501 in the code stream corresponds to a pointer to the coded data of the context bin 1. The coded data 1502 in this code stream corresponds to a pointer to the data of the context bin 2. Data 1503 in this code stream corresponds to a pointer to the coded data of context bin 3. In the currently preferred embodiment, the coded data for each context bin is stored in the codestream in turn. For example, in FIG. 18, the coded data 1504 of context bin 1 follows the pointer portion of the codestream. After that, the data 150 of the context bin 2
5 followed by the coded data of context bin 3, and so on. Note that the coded data amount of each of the coded data sections (1504 to 1506) may be different.

【0114】図16に戻る。デコーダ1301が単一チ
ャネルより圧縮データをすべてメモリ1303に取り込
み終わると、データそれぞれのスタート位置を識別する
ことができ、データをビットストリーム・ジェネレータ
へ、それより要求された時に送ることができる。
Returning to FIG. When the decoder 1301 has fetched all of the compressed data from the single channel into the memory 1303, the start position of each data can be identified and the data can be sent to the bitstream generator when required.

【0115】本発明において、エンコーダは、デコーダ
1308に要求されるフォーマットでデータストリーム
を生成しなければならない。これを達成する一つの方法
は、コンピュータを使用して、各コンテキスト・ビンの
データをエンコードし、各コンテキスト・ビンのデータ
を別々のファイルに格納する方法である。別々のコンテ
キスト・ビンのコード化データのエンコードを完了する
と、各ファイルの長さが決まる。この長さ情報は、ポイ
ンタ用の適当なフォーマットに変換されてチャネルに入
力される。つぎに、エンコードされたデータの各ファイ
ルが順にチャネルに入力される。
In the present invention, the encoder must generate a data stream in the format required by the decoder 1308. One way to accomplish this is to use a computer to encode the data for each context bin and store the data for each context bin in a separate file. Completing the encoding of the encoded data in separate context bins determines the length of each file. This length information is converted into an appropriate format for the pointer and input to the channel. Next, each file of the encoded data is sequentially input to the channel.

【0116】非インターリーブチャネル・コーダは多数
のビットストリーム・ジェネレータを使用するので、ハ
ードウエアコストの小さなビットストリーム・ジェネレ
ータを許容するようなコードを用いるのが有利である。
ある実施例では、非インターリーブチャネル・コーダ
が、図9に示すようなRコーダを用いて実現される。な
お、本発明の非インターリーブチャネルは、多くの他の
コードを使用して実現することも可能である。
Since a non-interleaved channel coder uses multiple bitstream generators, it is advantageous to use code that allows for a bitstream generator with low hardware cost.
In one embodiment, a non-interleaved channel coder is implemented using an R coder as shown in FIG. It should be noted that the non-interleaved channel of the present invention can be implemented using many other codes.

【0117】コンテキスト・モデル1308がメモリ1
303のアクセス可能な速度より遅いと仮定すれば、デ
コーダ1301はパイプラインで動作し、データを並列
にデコードすることができる。あるビットストリーム・
ジェネレータがコード化データを取り込んでいる最中
に、コンテキスト・モデル1308によって、他のコー
ド化データのランレングスがデコードされ、LPSが判
定され、さらに別のデコードデータの選択が行なわれ、
これらが全て同時になされる。ある実施例では、メモリ
サイクル毎に1ビットが出力される。
When the context model 1308 is in the memory 1
Assuming that it is slower than the accessible speed of 303, decoder 1301 operates in a pipeline and can decode data in parallel. A bit stream
While the generator is capturing the coded data, the context model 1308 decodes the run lengths of the other coded data, determines the LPS, and makes a further selection of the decoded data;
All this is done simultaneously. In one embodiment, one bit is output every memory cycle.

【0118】図19は、本発明のRコーダを使用した非
インターリーブ単一チャネル並列デコーディング・アー
キテクチャの一実施例のブロック図を示す。図19にお
いて、エンコーダ1609はデータを受け取ってエンコ
ードするように接続されている。コード化データはチャ
ネルよりデコーダ1600に受け取られる。デコーダ1
600はメモリ1601、デコーダ1602、アドレス
・ジェネレータ1603、カウンタ1604〜160
7、コンテキスト・モデル1608より構成されてい
る。メモリ1601は、チャネルよりコード化データ
を、アドレス・ジェネレータ1603よりアドレスを、
それぞれ受け取るように接続されている。メモリ160
1はコード化データを記憶し、それをデコーダ1602
に出力する。デコーダ1602はメモリ1601からコ
ード化データを受け取る。デコーダ1602はカウンタ
1604〜1607の指定された一つにカウント値を出
力する。カウンタ1604〜1607はデコーダ160
2の出力を受け取り、カウントデータをコンテキスト・
モデル1608へ出力するように接続されている。コン
テキスト・モデル1608は、カウンタ1604〜16
07に接続されており、デコードデータを出力する。な
お、カウンタは4個だけ示されているが、カウンタの実
際の個数は、コンテキスト・ビンの個数に応じて、それ
より多いことも少ないこともある。
FIG. 19 shows a block diagram of one embodiment of a non-interleaved single channel parallel decoding architecture using the R coder of the present invention. In FIG. 19, an encoder 1609 is connected to receive and encode data. The coded data is received by the decoder 1600 from the channel. Decoder 1
Reference numeral 600 denotes a memory 1601, a decoder 1602, an address generator 1603, and counters 1604 to 160.
7, a context model 1608. The memory 1601 receives coded data from the channel, an address from the address generator 1603,
Each is connected to receive. Memory 160
1 stores the coded data and decodes it
Output to Decoder 1602 receives coded data from memory 1601. The decoder 1602 outputs a count value to a designated one of the counters 1604 to 1607. The counters 1604 to 1607 are the decoder 160
2 and receive count data in context
Connected to output to model 1608. The context model 1608 includes counters 1604-16
07, and outputs decoded data. Note that although only four counters are shown, the actual number of counters may be more or less depending on the number of context bins.

【0119】なお、デコーダ1600の並列動作を必要
とする部分はカウンタ部分だけである。デコーダ160
0の残りの部分(つまりシフタ、Rコード・デコーダ、
確率推定モジュール)は、全カウンタで共用でき、また
単一のメモリ1601をアクセスできる。
The only part that requires parallel operation of decoder 1600 is the counter part. Decoder 160
0 (ie, shifter, R code decoder,
The probability estimation module) can be shared by all the counters, and can access a single memory 1601.

【0120】メモリ1601はデコーダ1602に接続
され、デコーダ1602にデータを供給する。メモリ1
601とデコーダ1602の間の接続線の本数は、最大
の符号語のビット数以上である。言い換えると、メモリ
幅はランレングス符号語の最大ビット数以上である。な
お、デコーダ1602がメモリバンド幅及び確率推定モ
ジュールと同じような速度で動作する場合には、複数の
ビットストリーム・ジェネレータは必要でない。その場
合でも、コンテキスト・モデル1608にデータを供給
するため、複数のカウンタ(たとえばカウンタ1604
〜1607)が利用される。
The memory 1601 is connected to the decoder 1602 and supplies data to the decoder 1602. Memory 1
The number of connection lines between 601 and decoder 1602 is equal to or greater than the number of bits of the largest codeword. In other words, the memory width is greater than or equal to the maximum number of bits of the run-length codeword. Note that if the decoder 1602 operates at a speed similar to the memory bandwidth and probability estimation module, multiple bitstream generators are not required. Even so, multiple counters (eg, counter 1604) may be provided to provide data to context model 1608.
To 1607) are used.

【0121】カウンタ1604〜1607はデコードさ
れたデータを出力する。本発明においては、カウンタ1
604〜1607は停止しないので、常にデコードデー
タがコンテキスト・モデル1608に与えられる。アド
レス・ジェネレータ1603によって生成されるメモリ
アドレスが分かっていさえすれば、デコーダ1600全
体をパイプライン化することができる。コンテキスト・
モデル1608によって、あるカウンタが選択されたな
らば、そのカウント値は用済みにしてよい。コンテキス
ト・モデル1608は、一つのカウンタを3回続けて選
択し、そのカウンタにデコーダ1602を3回連続して
選択させることができる。現時点の好適実施例にあって
は、コンテキスト・モデル1608からの要求は1サイ
クルにつき1回だけであり、デコーディング動作は1サ
イクルに1回だけ行なわれ、メモリアクセスも1サイク
ルに1回だけ生じる。よって、本発明のコーダがカウン
ト値の予備をFIFOに保有しているならば(すなわ
ち、各カウンタが少なくとも2つのカウント値を持って
いる)、コンテキスト・モデル1608が休止させられ
ることは絶対にない。
Each of counters 1604 to 1607 outputs decoded data. In the present invention, the counter 1
Since 604 to 1607 do not stop, decoded data is always supplied to the context model 1608. As long as the memory address generated by address generator 1603 is known, the entire decoder 1600 can be pipelined. context·
If a counter is selected by the model 1608, its count value may be obsolete. The context model 1608 can select one counter three times in a row and cause the counter to select the decoder 1602 three times in a row. In the presently preferred embodiment, the request from context model 1608 is only once per cycle, the decoding operation is performed only once per cycle, and the memory access occurs only once per cycle. . Thus, if the coder of the present invention has a reserve of count values in the FIFO (i.e., each counter has at least two count values), the context model 1608 will never be paused. .

【0122】コンテキスト・モデル1608の無休止を
確実にするため、本発明は、初めに、デコーダ内のそれ
ぞれのカウンタに対し、何個かのランレングス、例えば
3個のランレングスのデコーディングを行なう。こうす
ることにより、メモリアドレス・ジェネレータ1603
はパイプラインのためのデータの取得を開始できる。こ
の動作を完了すると、その時点までに、いくつかのラン
・カウント値が得られているので、コンテキスト・モデ
ル1608はカウンタ選択動作を開始する。上記の初期
カウント値を使い切る時点までに、ほかのカウント値が
デコードされている。このようにして、コンテキスト・
モデル1608は決して休止しない。
To ensure that the context model 1608 is non-pause, the present invention first decodes some run-length, eg, three run-lengths, for each counter in the decoder. . By doing so, the memory address generator 1603
Can start capturing data for the pipeline. Upon completion of this operation, by the time the context model 1608 has begun a counter selection operation since some run count values have been obtained. By the time the above initial count value is used up, other count values have been decoded. In this way, the context
Model 1608 never sleeps.

【0123】コンテキスト・モデルのリクエストは1サ
イクルに1回であるから、最終コンテキスト・アクセス
はメモリ1601及びデコーダ1602をアクセスする
ことができる。1個または2個のラッチを、カウンタの
入力のバッファリングのための小さなFIFO(先入れ
/先出し)として利用すると、メモリアクセス及びデコ
ーディングをパイプラインにすることができるため、速
度制限がなくなる。
Since the context model request is made once per cycle, the final context access can access the memory 1601 and the decoder 1602. Utilizing one or two latches as small FIFOs (first-in / first-out) for buffering the input of the counter eliminates speed limitations because memory access and decoding can be pipelined.

【0124】非インターリーブチャネル・デコーダで並
列化を利用すると、ビットストリーム・ジェネレータの
パイプラインステージのオーバーヘッドが減少し、装置
全体の速度制限がなくなる。これに比べ、並列カウンタ
を利用しない装置の場合、現カウント値を記憶するため
各ビンごとに1つのメモリワードが必要とにる。メモリ
速度に制限があるので、カウント値のリード−モディフ
ァイ−ライト(read-modify-write)のための時間が、
装置全体の速度にマイナスの影響を及ぼすことになる。
The use of parallelism in a non-interleaved channel decoder reduces the overhead of the pipeline stage of the bitstream generator and removes the speed limit of the overall device. In comparison, devices that do not utilize a parallel counter require one memory word for each bin to store the current count value. Due to memory speed limitations, the time to read-modify-write the count value is
This will have a negative effect on the overall speed of the device.

【0125】装置全体の速度は、コンテキスト・モデル
及び/またはコード化データ格納のためのメモリアクセ
ス時間によって制限される。並列化を十二分に利用して
装置速度を上げるためには、少なくともコンテキスト・
モデル、それに多分、デコーダ全体も、並列に動作させ
なければならない。しかし、ここで述べたビットストリ
ーム・ジェネレータの並列化によって、現在の技術水準
より高速のコーダを実現可能である。
The overall speed of the device is limited by the context model and / or the memory access time for storing coded data. To make full use of parallelism and increase device speed, at least context
The model, and possibly the entire decoder, must also be operated in parallel. However, the parallelization of the bitstream generator described here makes it possible to realize a coder faster than the current state of the art.

【0126】インターリーブ並列デコーディング装置 本発明はまた、圧縮データを並列にデコーディングする
ためのインターリーブ・デコーディング装置も提供す
る。データはコンテキスト・ビン別、コンテキスト・ク
ラス別または確率クラス別に独立したストリームに分割
された後、前述のようにコード化される。これらのスト
リームは、デコーダに対して、確率クラス別に並列に分
配することができ(前述の多チャネル・コーダの場合と
同様)、あるいは、完全な連結ファイルとして分配する
ことができる(非インターリーブチャネル・コーダの場
合と同様)。しかし、並列デコーダは、これらのストリ
ームのデータを連続した、必然的順序で必要とすること
に注意されたい。デコーダがコード化データを必要とす
る順序は単純ではないが、でたらめではない。他の方法
と同様、デコーダではなくエンコーダで、この順序に符
号語を並べることにより、コード化データを単一のスト
リームにインターリーブすることができる。
Interleave Parallel Decoding Device The present invention also provides an interleave decoding device for decoding compressed data in parallel. The data is segmented into independent streams by context bin, context class or probability class and then coded as described above. These streams can be distributed to the decoder in parallel by probability class (as in the multi-channel coder described above), or they can be distributed as fully concatenated files (non-interleaved channel As with the coder). However, it should be noted that a parallel decoder needs the data of these streams in a continuous, inevitable order. The order in which the decoder needs the coded data is not simple, but not random. As with the other methods, the coded data can be interleaved into a single stream by arranging the codewords in this order at the encoder rather than at the decoder.

【0127】なお、このインターリーブ順序付けを可変
長の符号語について行なうと、コードストリームを、正
しいビット数だけデコーダにシフトアウトする単一のシ
フタに入力しなければならない。これには、おそらく低
速のフィードバックループが必要となろう。それを避け
るために、(例えば各コンテキスト毎の)各コード化デ
ータストリームの符号語が固定長ワードにパックされ
る。しかして、各デコーダは単一のコード化データスト
リームの固定長ワード全体を受け取る。可変長符号語は
各デコーダにおいてシフトアウトされるので、デコーデ
ィングは並列に行なわれる。
When this interleaving ordering is performed on a variable-length codeword, the code stream must be input to a single shifter that shifts out the correct number of bits to the decoder. This will probably require a slow feedback loop. To avoid that, the codeword of each coded data stream (eg, for each context) is packed into fixed length words. Thus, each decoder receives the entire fixed length word of a single coded data stream. The decoding is performed in parallel because the variable length codeword is shifted out at each decoder.

【0128】インターリーブ並列アーキテクチャが図2
0に示されている。図20において、このインターリー
ブ並列アーキテクチャは、データを受け取ってコード化
データを生成するエンコーダ1713、FIFO170
1、デコーダ1711及びコンテキスト・モデル171
0からなる。FIFO1701の入力はエンコードされ
た入力データと接続されている。FIFO1701の出
力は、デコーダ1711のビットストリーム・ジェネレ
ータ1702〜1705に接続されている。ビットスト
リーム・ジェネレータ1702〜1705は確率推定モ
ジュール(PEM)1706〜1709にそれぞれ接続
されている。PEM1706〜1709のそれぞれは、
デコードされた出力データを送出するコンテキスト・モ
デル1710に接続されている。コンテキスト・モデル
1710よりデコーダ1711に対して、リクエスト信
号1712が出力される。リクエスト信号1713もデ
コーダ1711より出力され、同信号は次のエンコード
データを要求するためにFIFO1701へ接続され
る。
The interleaved parallel architecture is shown in FIG.
0 is shown. In FIG. 20, the interleaved parallel architecture includes an encoder 1713 that receives data and generates coded data, a FIFO 170
1. Decoder 1711 and context model 171
Consists of zero. The input of the FIFO 1701 is connected to the encoded input data. The output of the FIFO 1701 is connected to bit stream generators 1702 to 1705 of the decoder 1711. The bitstream generators 1702-1705 are connected to probability estimation modules (PEMs) 1706-1709, respectively. Each of the PEMs 1706 to 1709 is
It is connected to a context model 1710 that sends out decoded output data. A request signal 1712 is output from the context model 1710 to the decoder 1711. A request signal 1713 is also output from the decoder 1711, and the signal is connected to the FIFO 1701 to request the next encoded data.

【0129】コード化データはFIFO1701にバッ
ファリングされる。本発明においては、FIFO170
1のサイズは任意でよい。現時点の好適実施例では、F
IFO1701はコード化ファイル全体より小さい。F
IFO1701の出力は、ビットストリーム・ジェネレ
ータと確率推定マシンからなるデコーダへ送られる。F
IFO1701は、リクエスト信号1713により、デ
ータの送出を要求される。しかし、FIFO1701
は、どのビットストリーム・ジェネレータがデータを要
求したかを予め知っているわけではない−データが要求
したビットストリーム・ジェネレータへ与えられるにす
ぎない。コンテキスト・モデル1710は、PEM17
06〜1709を介して、ある既知の順番で、ビットス
トリーム・ジェネレータ1702〜1705に対してデ
コードデータを要求する。その結果、ビットストリーム
・データ1702〜1705が必然的順番でコード化デ
ータを要求する。
The coded data is buffered in the FIFO 1701. In the present invention, the FIFO 170
The size of 1 may be arbitrary. In the currently preferred embodiment, F
IFO 1701 is smaller than the entire coded file. F
The output of IFO 1701 is sent to a decoder consisting of a bitstream generator and a probability estimation machine. F
The IFO 1701 is requested to send data by a request signal 1713. However, FIFO 1701
Does not know in advance which bitstream generator has requested the data-only the data is provided to the requesting bitstream generator. The context model 1710 is a PEM 17
Via 06 to 1709, it requests decoded data from the bit stream generators 1702 to 1705 in a known order. As a result, the bitstream data 1702-1705 requires coded data in the necessary order.

【0130】なお、CM1710がFIFO1701の
データ供給速度より高速に動作するならば、FIFO1
701はビットストリーム・ジェネレータへのデータを
供給するために複数の(つまり並列的な)要求に適応で
きなければならない。並列的な要求を扱うためには、F
IFO1701は、複数の要求を受け付けることを要請
され、かつ、要求されたデータが正しいビットストリー
ム・ジェネレータへ確実に送られるように要求元を管理
することを要請される。
If the CM 1710 operates at a higher speed than the data supply speed of the FIFO 1701, the FIFO 1
701 must be able to accommodate multiple (ie, parallel) requests to provide data to the bitstream generator. To handle parallel requests, F
IFO 1701 is required to accept multiple requests and is required to manage the request source to ensure that the requested data is sent to the correct bitstream generator.

【0131】現時点の好適実施例では、コンテキスト・
モデル1710はFIFO1701より高速に動作す
る。FIFOが空になると、エンコーダ全体及びコンテ
キスト・モデルは、次のデータが到着するまで停止す
る。
In the currently preferred embodiment, the context
Model 1710 operates faster than FIFO 1701. When the FIFO empties, the entire encoder and context model stop until the next data arrives.

【0132】図21は、確率クラスを並列に処理するイ
ンターリーブ並列アーキテクチャのブロック図である。
図21において、このインターリーブ並列アーキテクチ
ャは、データを受け取ってエンコードするエンコーダ1
808、FIFO1801、デコーダ1800からな
る。デコーダ1800はビットストリーム・ジェネレー
タ1802〜1805と、確率推定モジュール(PE
M)/コンテキスト・モジュール1806とからなる。
FIFO1801の入力はエンコードされた入力データ
と接続される。FIFO1801の出力は、デコーダ1
800のビットストリーム・ジェネレータ1802〜1
805に接続されている。ビットストリーム・ジェネレ
ータ1802〜1805は、デコードされた出力データ
を送出するPEM/CM1806に接続されている。リ
クエスト信号1807がデコーダ1800より出力さ
れ、これは、次のエンコードデータを要求するためにF
IFO1801に接続される。なお、ビットストリーム
・ジェネレータの実際の個数は増減する。
FIG. 21 is a block diagram of an interleaved parallel architecture for processing probability classes in parallel.
In FIG. 21, this interleaved parallel architecture is an encoder 1 that receives and encodes data.
808, a FIFO 1801, and a decoder 1800. The decoder 1800 includes a bitstream generator 1802-1805 and a probability estimation module (PE
M) / context module 1806.
The input of the FIFO 1801 is connected to the encoded input data. The output of the FIFO 1801 is
800 bitstream generators 1802-1
805. The bit stream generators 1802-1805 are connected to a PEM / CM 1806 that sends out decoded output data. A request signal 1807 is output from the decoder 1800, which is used to request the next encoded data.
Connected to IFO 1801. Note that the actual number of bitstream generators will increase or decrease.

【0133】コード化データは、FIFO1801にバ
ッファリングされ、図20中のFIFO1701の場合
と同じように、リクエスト信号1807に応じてビット
ストリーム・ジェネレータ1802〜1805へ供給さ
れる。ビットストリーム・ジェネレータ1802〜18
05は、そのコード化データをデコードする。PEM/
CM1806は、確率クラスに従った既知の順序で、ビ
ットストリーム・ジェネレータ1802〜1805に対
してデコードデータを要求し、その結果、ビットストリ
ーム・ジェネレータ1802〜1805は必然的順序で
データを要求する。PEM/CM1806は、図16中
のPEM/CMと同じように動作をする。
The coded data is buffered in the FIFO 1801 and supplied to the bit stream generators 1802 to 1805 in response to the request signal 1807 as in the case of the FIFO 1701 in FIG. Bitstream generators 1802-18
05 decodes the encoded data. PEM /
The CM 1806 requests decoded data from the bitstream generators 1802-1805 in a known order according to the probability class, so that the bitstream generators 1802-1805 request data in the necessary order. The PEM / CM 1806 operates in the same manner as the PEM / CM in FIG.

【0134】コンテキスト・モデルの動作速度を活かす
ため、FIFOに対立するものとして、レジスタのシリ
ーズを、ビットストリーム・ジェネレータへデータを供
給するために使用できる。そのような方式の一実施例が
図22に示されている。図22において、データを受け
取ってエンコードするエンコーダ1912が示されてい
る。コード化データはチャネル分配部(channel delive
ry)1911に受け取られる。FIFO1901はコー
ド化データ入力を受け取るよう接続される。FIFO1
901はコントロールロジック(図示されていない)に
より制御される。FIFO1901はコード化データを
直列接続されたレジスタ1902〜1905に供給す
る。FIFO1901より出力されたコード化データは
レジスタ1902の一入力に接続される。レジスタ19
02はレジスタ1903及びビットストリーム・ジェネ
レータ1909の両方に出力される。レジスタ1903
は、レジスタ1902より出力されたコード化データを
受け取り、それをレジスタ1904及びビットストリー
ム・ジェネレータ1908へ出力するように接続されて
いる。レジスタ1904はレジスタ1903よりコード
化データを受け取り、それをレジスタ1905及びビッ
トストリーム・ジェネレータ1907へ出力するように
接続されている。レジスタ1905は、コード化データ
をビットストリーム・ジェネレータ1906へ出力す
る。ビットストリーム・ジェネレータ1906〜190
9は、デコードデータを出力する確率推定モジュール
(PEM)/コンテキスト・モデル(CM)1910に
接続されている。ビットストリーム・ジェネレータ19
06〜1909のそれぞれは、レジスタ1905〜19
02にも接続されている。すなわち、レジスタ1902
〜1905のそれぞれは、そのビットストリーム・ジェ
ネレータに対し、それからのリクエスト信号に応答して
コード化データを供給する。なお、ビットストリーム・
ジェネレータ1906〜1909及びPEM/CMは図
20中のいくつかのコンポーネントと同じように動作す
る。
To take advantage of the speed of operation of the context model, a series of registers can be used to provide data to the bitstream generator, as opposed to a FIFO. One embodiment of such a scheme is shown in FIG. FIG. 22 shows an encoder 1912 that receives and encodes data. The coded data is sent to the channel distribution unit (channel delive
ry) Received in 1911. FIFO 1901 is connected to receive coded data input. FIFO1
901 is controlled by control logic (not shown). FIFO 1901 supplies coded data to registers 1902 to 1905 connected in series. The coded data output from the FIFO 1901 is connected to one input of a register 1902. Register 19
02 is output to both the register 1903 and the bitstream generator 1909. Register 1903
Are connected to receive the coded data output from the register 1902 and output it to the register 1904 and the bitstream generator 1908. Register 1904 is connected to receive coded data from register 1903 and output it to register 1905 and bitstream generator 1907. Register 1905 outputs the coded data to bitstream generator 1906. Bitstream generators 1906-190
Reference numeral 9 is connected to a probability estimation module (PEM) / context model (CM) 1910 that outputs decoded data. Bitstream generator 19
06 to 1909 are registers 1905 to 19, respectively.
02 is also connected. That is, the register 1902
1905 supply encoded data to the bitstream generator in response to a request signal therefrom. In addition, bit stream
The generators 1906 to 1909 and the PEM / CM operate in the same way as some components in FIG.

【0135】FIFO1901は、レジスタ1902〜
1905を介してコード化データをビットストリーム・
ジェネレータ1906〜1909へ供給する。しかし、
レジスタ1902〜1905は直列に接続されているの
で、データはレジスタ1902からレジスタ1905へ
向かって順に供給される。あるレジスタ内のコード化デ
ータが使用される時に、それより下のレジスタから出力
されるコード化データが次のコード化データを与える。
コンテキスト・モデルが、FIFOがデータを供給でき
る速度より高速にデコード・データを要求できる場合、
複数のビットストリーム・ジェネレータが同一メモリサ
イクル中にデータを要求するかもしれない。図22に示
したレジスタ方式は、コード化データに対する複数の要
求に同時に応じることができる。例えば、レジスタ19
04及びレジスタ1905のデータが使用済みになった
時に、レジスタ1903及びレジスタ1902のコード
化データが(要求された時に)上側にシフトされ、次に
ビットストリーム・ジェネレータ1906,1907に
よりデコードされるべきコード化データとなる。また、
新しいデータがFIFO1901よりレジスタ190
3,1902に取り込まれる。
The FIFO 1901 includes registers 1902 to
The encoded data via 1905
Supply to generators 1906 to 1909. But,
Since the registers 1902 to 1905 are connected in series, data is sequentially supplied from the register 1902 to the register 1905. When the coded data in one register is used, the coded data output from the lower register gives the next coded data.
If the context model can request decoded data faster than the FIFO can supply the data,
Multiple bitstream generators may request data during the same memory cycle. The register system shown in FIG. 22 can simultaneously respond to a plurality of requests for coded data. For example, register 19
When the data in register 04 and register 1905 are used, the coded data in registers 1903 and 1902 are shifted upward (when requested), and then the code to be decoded by bitstream generators 1906 and 1907. Data. Also,
New data is transferred from FIFO1901 to register 190.
3,1902.

【0136】なお、そのような構成下では、コード化デ
ータが正しいビットストリーム・ジェネレータに関係付
けられたレジスタへシフトインされる必然的な順序が存
在する。したがって、コード化データが使用される順序
に並べられることによって、つぎのデータに対する各要
求の後にレジスタ1902〜1905すべてにコード化
データが入っている。この種の構成によって、Nサイク
ル毎に同時にN個のアクセスを発生させることができ
る。例えば、2個のビットストリーム・ジェネレータは
2サイクル毎に同時にアクセスすることができ、4個の
ビットストリーム・ジェネレータは4サイクル毎に同時
にアクセスすることができる。
It should be noted that under such a configuration, there is a necessary order in which the coded data is shifted into the register associated with the correct bitstream generator. Thus, by arranging the coded data in the order in which it is used, all of the registers 1902-1905 contain the coded data after each request for the next data. With this type of configuration, N accesses can be generated simultaneously every N cycles. For example, two bitstream generators can be accessed simultaneously every two cycles, and four bitstream generators can be accessed simultaneously every four cycles.

【0137】このようなインターリーブ装置に関して付
追加される制御は、どのビットストリーム・ジェネレー
タが次のコード化データを要求したかを判断し、各メモ
リ(すなわちFIFO)サイクル後にレジスタ1902
〜1905のそれぞれにデータが入っているように、シ
フトする量を判断し、かつシフトを止める位置を判断す
る制御である。なお、レジスタ1902〜1905のそ
れぞれをFIFOにすることも可能であるが、この場合
には付加的な制御回路が必要になろう。
An additional control for such interleaving devices is to determine which bitstream generator has requested the next coded data and to register 1902 after each memory (ie FIFO) cycle.
This is a control for judging the shift amount and judging the position where the shift is stopped so that each of the data Nos. To 1905 contains data. Note that each of the registers 1902 to 1905 can be a FIFO, but in this case, an additional control circuit will be required.

【0138】〈インターリーブ装置用エンコーディン
グ〉エンコーダとデコーダの主要な違いは、エンコーダ
は、一つのランのデータをカウントしている間、そのラ
ンの終わりまで、コードの送出を待たなければならない
ことである。デコーダは、ランの初めに符号語を必要と
し、その後にデコードと有効ビットの送出が可能にな
る。このようなデコーダの要求とエンコーダの能力との
間のずれは、コンテキスト・ビンが1個ならば問題には
ならない。コンテキスト・ビンが複数個の場合、データ
ストリームは多数のコンテキスト・ビンのデータストリ
ームに分割される。ストリーム毎にデータのエンコーデ
ィング速度が異なる。これが単一のストリームへと結合
された時には、上記のずれをエンコーダで幾分は修正し
なければならない。例えば、コンテキスト・ビンが1個
のエンコーダが非常に長いランの始まりの1ビットに出
会ったとすると、このランの最終的に生成する符号語
は、デコーダが次に必要とするコードである。しかし、
当該コンテキスト・ビンの当該ランが終わる前に、他の
コンテキスト・ビンのコーダによって多数の他の符号語
が生成されるかもしれない。これらの他の符号語を、最
初のコンテキスト・ビンのランが終わってコーダが符号
語を送出するまで、記憶しておかなければならない。
<Encoding for Interleaving Apparatus> The main difference between an encoder and a decoder is that the encoder must wait for transmission of a code until the end of the run while counting data of one run. . The decoder needs a codeword at the beginning of the run, after which decoding and sending out the valid bits are possible. Such a discrepancy between the requirements of the decoder and the capabilities of the encoder does not matter if there is only one context bin. If there are multiple context bins, the data stream is split into multiple context bin data streams. The data encoding speed differs for each stream. When this is combined into a single stream, the offset must be corrected somewhat with an encoder. For example, if the context bin is one encoder encounters the first bit of a very long run, the final generated codeword for this run is the code that the decoder next needs. But,
Before the run of the context bin ends, a number of other codewords may be generated by the coder of the other context bin. These other codewords must be stored until after the first context bin run and the coder sends out the codeword.

【0139】他のコーダにより生成される符号語を記憶
するために必要なメモリ量が分からないという問題が持
ち上がる。したがって、装置はメモリによって制約を受
ける。非リアルタイムのソフトウエアにより実現する場
合、コンピュータのメモリは通常大きいので、問題にな
ることは少ない。図23では、このメモリ記憶はビット
パッキング(bit packing)と結合されたバッファとし
て示されている。なお、これはバッファを1個だけ用い
て、あるいは他のメモリ構成を用いて、実現することが
できる。
A problem arises in that the amount of memory required to store a codeword generated by another coder is not known. Therefore, the device is limited by the memory. When implemented with non-real-time software, computer memory is typically large and therefore less of a problem. In FIG. 23, this memory storage is shown as a buffer combined with bit packing. Note that this can be achieved using only one buffer or using another memory configuration.

【0140】前述したように、各コンテキスト・ビンの
可変長符号語は一定のワードサイズにパックされる。そ
うでないと、デコーダは符号語長を調べるためにフィー
ドバックループを持たざるを得ず、これは並列アーキテ
クチャの目的にそぐわない。もう一つの問題は、正しい
順番を決定するための状態マシンを作ることである。デ
ータをデコードすべき順番の決定は複雑で、様々な方法
が存在する。この順番を決めるための一つの方法は、デ
コーダのコピー(”スヌーパー”(snooper)デコー
ダ)をエンコーダ内に備える方法である。この”スヌー
パー”デコーダは、エンコーディング直後にデータをデ
コードする。したがって、この”スヌーパー”デコーダ
から出る符号語要求は、チャネルの他方の端にある実際
のデコーダの場合と全く同一である。
As described above, the variable length codeword of each context bin is packed into a fixed word size. Otherwise, the decoder would have to have a feedback loop to check the codeword length, which does not fit the purpose of a parallel architecture. Another problem is creating a state machine to determine the correct order. Determining the order in which data should be decoded is complex and there are various methods. One way to determine this order is to have a copy of the decoder (a "snooper" decoder) in the encoder. This "snooper" decoder decodes data immediately after encoding. Thus, the codeword request leaving this "snooper" decoder is exactly the same as for the actual decoder at the other end of the channel.

【0141】本発明において、エンコーダは全てのデー
タをエンコードし、コンテキスト・ビンはビット・パッ
クされる。それから、デコーダが、ある順序で符号語を
要求するが、この順序はコード化データストリームを正
しく生成するために使用される。
In the present invention, the encoder encodes all data and the context bins are bit packed. The decoder then requests the codewords in some order, which order is used to correctly generate the coded data stream.

【0142】図16には、エンコーダ・ブロックの詳細
は示されていない。エンコーダはオリジナルデータをコ
ンテキスト・ビンにアレンジして各ビンをエンコード
し、出力を適当な順序に並べる。本発明のエンコーダの
一実施例が図23に示されている。現在、エンコーディ
ングは、非リアルタイム、シリアルストリーム、メモリ
中心のやり方で、ソフトウエアにより実行されるが、同
じブロック構成をハードウエアによる構成により説明す
ることができる。
FIG. 16 does not show details of the encoder block. The encoder encodes each bin by arranging the original data into context bins and ordering the outputs in the proper order. One embodiment of the encoder of the present invention is shown in FIG. Currently, encoding is performed in software in a non-real-time, serial stream, memory-centric manner, but the same block configuration can be described by a hardware configuration.

【0143】図23を参照する。エンコーダ2000は
コンテキスト・モデル2001、エンコード/確率推定
モジュール2002〜2005、ビットパック(bit pa
ck)バッファ2006〜2009、及び順序ブロック2
010から構成される。コンテキスト・モデル2001
は、データ入力ストリームを受け取り、コンテキスト・
ビンによるデータをエンコード/確率推定モジュール2
002〜2005へ出力するように接続されている。エ
ンコード/確率推定モジュール2002〜2005のそ
れぞれは、別々のコンテキストデータストリームを受け
取ってエンコードするように接続されている。エンコー
ド/確率推定モジュール2002〜2005の出力は、
ビットパック・バッファ2006〜2009にそれぞれ
接続され、そこにエンコードデータが格納される。ビッ
トパック・バッファ2006〜2009の出力は順序ブ
ロック2010に接続され、順序ブロック2010は順
序付けられた圧縮コードストリームを出力する。
Referring to FIG. The encoder 2000 includes a context model 2001, encoding / probability estimation modules 2002 to 2005, and a bit pack (bit pa).
ck) Buffers 2006 to 2009 and ordered block 2
010. Context model 2001
Receives a data input stream and
Binary data encoding / probability estimation module 2
002 to 2005 are connected. Each of the encoding / probability estimation modules 2002-2005 is connected to receive and encode a separate context data stream. The outputs of the encoding / probability estimation modules 2002-2005 are:
The bit pack buffers are connected to bit pack buffers 2006 to 2009, respectively, where encoded data is stored. The outputs of the bit pack buffers 2006-2009 are connected to a sequence block 2010, which outputs an ordered compressed codestream.

【0144】図24は、図23に示した順序ブロックを
実現する、本発明のスヌーパー・デコーダのブロック図
を示す。図24において、スヌーパー・デコーダ210
0は、ビットパック・バッファ2101〜2103に接
続されるように示されている。ビットパック・バッファ
は3個しか示されていないが、それより多い、または少
ないビットパック・バッファを使用してもよい。ビット
パック・バッファ2101〜2103は、エンコードデ
ータをスヌーパー・デコーダへ出力する。
FIG. 24 shows a block diagram of the snooper decoder of the present invention which realizes the sequential block shown in FIG. In FIG. 24, a snooper decoder 210
0 is shown connected to the bit pack buffers 2101-2103. Although only three bit pack buffers are shown, more or less bit pack buffers may be used. Bit pack buffers 2101 to 2103 output the encoded data to the snooper decoder.

【0145】現時点の好適実施例では、スヌーパー・デ
コーダはデコーダデータ要求調停部(arbitrator)21
04、デコーダ2105〜2107、コンテキスト・モ
デル2108からなる。なお、デコーダは3個だけ示さ
れているが、任意個数のデコーダを用いることができ
る。ビットパック・バッファ2101〜2103の出力
はデコーダデータ要求調停部2104に接続される。デ
コーダ2105〜2107は、調停部2104にデータ
を要求するように接続されている。要求されたデータ
は、順序付けられた圧縮コードストリームとしても、調
停部2104より出力される。デコーダ2105〜21
07はコンテキスト・モデル2108に接続され、この
コンテキスト・モデル2108はデコーダ2105〜2
107に対して要求すべきデータを指示する。コンテキ
スト・モデル2108はデコードデータを出力するが、
これは使用されない。
In the currently preferred embodiment, the snooper decoder includes a decoder data request arbitrator 21.
04, decoders 2105 to 2107, and a context model 2108. Although only three decoders are shown, any number of decoders can be used. Outputs of the bit pack buffers 2101 to 2103 are connected to a decoder data request arbitration unit 2104. The decoders 2105 to 2107 are connected to request the arbitration unit 2104 for data. The requested data is also output from the arbitration unit 2104 as an ordered compressed code stream. Decoders 2105-21
07 is connected to a context model 2108, which is a decoder 2105-2.
The data to be requested is instructed to 107. The context model 2108 outputs decoded data,
It is not used.

【0146】コンテキスト・モデル2108はデコーダ
2105〜2107にデータを要求し、これによってビ
ットパック・バッファよりデータが取り込まれる。調停
部2104は、二重の要求を調停し、デコーダ2105
〜2107の一つにデータが送られた時に、順序付けら
れた圧縮データとしてデータを出力する。なお、スヌー
パー・デコーダ2100は、デコーダ2105〜210
7の2つ以上で同時にデータが無くなった(コンテキス
ト・モデルより並列に出力された)時に、どのデコーダ
が最初にデータを受け取るべきか決定するために調停部
2104を備えている。また、コンテキスト・モデル
は、コンテキスト・ストリームをオリジナルデータのス
トリームに再統合し、そして順序を決定する。
The context model 2108 requests data from the decoders 2105 to 2107, and the data is fetched from the bit pack buffer. The arbitration unit 2104 arbitrates the duplicate request, and
When data is sent to one of .about.2107, the data is output as ordered compressed data. Note that the snooper / decoder 2100 includes decoders 2105 to 210
When two or more of the data are lost at the same time (output in parallel from the context model), an arbitration unit 2104 is provided to determine which decoder should receive the data first. The context model also reintegrates the context stream into the original data stream and determines the order.

【0147】ファクシミリ装置のような二重システムの
場合、デコーダはシステムの必須部分であるので、スヌ
ーパー・デコーダの機能のためにハードウエアを殆どま
たは全く追加する必要がない。
In the case of a duplex system, such as a facsimile machine, little or no additional hardware is required for the function of the snooper decoder since the decoder is an integral part of the system.

【0148】本発明のエンコーダの他の実施例が図25
に示されている。図25において、エンコーダ2200
はコンテキスト・モデル(CM)/確率推定モジュール
(PEM)2201、ビットパック・バッファ2202
〜2205、順序ジェネレータ2206からなる。CM
/PEM2201は、データ入力ストリームを受け取
り、確率クラス(Pクラス)によるデータをビットパッ
ク・バッファ2202〜2205へ出力するように接続
され、ビットパック・バッファはそのエンコードデータ
を記憶する。ビットパック・バッファ2202〜220
5は、エンコードデータを記憶し、そのデータを順序ジ
ェネレータ2206へ、それからの要求に応答して出力
する。順序ジェネレータ2206は、ビットパック・バ
ッファ2202〜2206からデータを受け取り、順序
付けた圧縮コードストリームを出力するように接続され
ている。
FIG. 25 shows another embodiment of the encoder of the present invention.
Is shown in In FIG. 25, an encoder 2200
Is a context model (CM) / probability estimation module (PEM) 2201, a bit pack buffer 2202
2205, and an order generator 2206. CM
/ PEM 2201 is connected to receive a data input stream and output data according to a probability class (P class) to bit pack buffers 2202 to 2205, which store the encoded data. Bit pack buffers 2202 to 220
5 stores the encoded data and outputs the data to the order generator 2206 in response to a subsequent request. An order generator 2206 is connected to receive the data from the bit pack buffers 2202-2206 and output an ordered compressed codestream.

【0149】〈装置の応用〉全ての圧縮装置により得ら
れる効果の一つは、データの集合のために必要な記憶容
量の削減である。非損失性バイナリコーディング装置が
現在利用されているあらゆる用途に、本発明の並列装置
を使用することができる。このような用途としては、フ
ァクシミリ圧縮、データベース圧縮、ビットマップグラ
フィックイメージの圧縮、JPEGやMPEGといった
画像圧縮規格における変換係数の圧縮がある。本発明
は、小量効率的なハードウエアにより実現することもソ
フトウエアにより相当高速に実現することも可能であ
り、高速性を必要としない用途においても本発明は効果
的である。
<Application of Apparatus> One of the effects obtained by all compression apparatuses is a reduction in the storage capacity required for collecting data. The parallel device of the present invention can be used in any application where a lossless binary coding device is currently utilized. Such applications include facsimile compression, database compression, bitmap graphic image compression, and conversion coefficient compression in image compression standards such as JPEG and MPEG. The present invention can be realized by a small amount of efficient hardware or can be realized by software at a considerably high speed, and the present invention is effective even in applications that do not require high speed.

【0150】本発明の真の効果は、従来技術を超えて、
特にデコーディングの場合に非常に高速な動作が可能で
あることである。したがって、本発明は、高速コンピュ
ータネットワーク、衛星放送チャネル、地上放送チャネ
ルといった広域高速チャネルを十二分に活用することが
できる。図26は、そのようなシステムを示しており、
放送データまたは高速コンピュータネットワークのデー
タがデコーディング装置2301に与えられ、このデコ
ーディング装置はそのデータを並列にデコードして出力
データを送出する。現在のハードウエアによるエントロ
ピー・コーダ(例えばQコーダ)では、これらのシステ
ムのスループットを低下させてしまう。これらシステム
は全て、高バンド幅を得るために非常に高コストの設計
である。デコーダによりスループットを低下させたまま
にしておくのは非生産的である。本発明の並列装置は、
これらの高バンド幅に対応できるが、実はそれだけでは
なく、データを圧縮した形で伝送できるので実効バンド
幅を増加させる。
The true effects of the present invention are:
In particular, a very high-speed operation is possible in the case of decoding. Therefore, the present invention can fully utilize wide-area high-speed channels such as high-speed computer networks, satellite broadcast channels, and terrestrial broadcast channels. FIG. 26 illustrates such a system.
Broadcast data or high-speed computer network data is provided to a decoding device 2301, which decodes the data in parallel and sends out output data. Current hardware entropy coders (eg, Q coders) reduce the throughput of these systems. All of these systems are very costly designs to get high bandwidth. It is unproductive to keep the throughput reduced by the decoder. The parallel device of the present invention
Although it is possible to cope with these high bandwidths, it is not only that, but the data can be transmitted in a compressed form, so that the effective bandwidth is increased.

【0151】本発明の並列装置は、ISDN、CD−R
OM、SCSIのような中速度チャネルから、より高い
実効バンド幅を得るためにも利用できる。このようなバ
ンド幅マッチングシステムが図27に示されている。C
D−ROM、イーサネット(Ethernet)、小型コンピュ
ータ標準インターフェイス(SCSI)、その他同様の
ソースからのデータはデコーディング装置2401に接
続され、デコーディング装置2401はそのデータを受
け取ってデコードし出力する。これらのチャネルは、現
在のある種のコーダより高速である。これらのチャネル
は、それ自体のバンド幅より高いバンド幅を必要とする
データソースのサービスのために使用されることも多
い。例えば、リアルタイム・ビデオシステムやコンピュ
ータベースのマルチメディアシステムである。本発明の
装置は、バンド幅マッチングの役割を果たすことができ
る。
The parallel device of the present invention can be used for ISDN, CD-R
It can also be used to get higher effective bandwidth from medium speed channels like OM, SCSI. Such a bandwidth matching system is shown in FIG. C
Data from a D-ROM, Ethernet, small computer standard interface (SCSI), or similar source is connected to a decoding device 2401, which receives, decodes, and outputs the data. These channels are faster than some current coder. These channels are often used for services of data sources that require higher bandwidth than their own. For example, a real-time video system or a computer-based multimedia system. The device of the present invention can play a role in bandwidth matching.

【0152】本発明の装置は、最新の高品位テレビジョ
ン(HDTV)やMPEGビデオ規格のようなリアルタ
イム・ビデオシステムのエントロピー・コーダ部に最適
である。かかるシステムが図28に示されている。図2
8において、このリアルタイム・ビデオシステムは、デ
コーディング装置2501が圧縮画像データに接続され
る。デコーディング装置2501は、そのデータをデコ
ードして損失性デコーダ2502へ出力する。損失性デ
コーダ2502は、例えばHDTVまたはMPEGデコ
ーダの変換、色変換及びサブサンプリングの部分であ
る。モニタ2503はテレビジョンまたはビデオモニタ
である。
The apparatus of the present invention is most suitable for the entropy coder of a real-time video system such as the latest high definition television (HDTV) or the MPEG video standard. Such a system is shown in FIG. FIG.
At 8, the real-time video system has a decoding device 2501 connected to the compressed image data. Decoding device 2501 decodes the data and outputs it to lossy decoder 2502. The lossy decoder 2502 is a part of conversion, color conversion and sub-sampling of, for example, an HDTV or MPEG decoder. Monitor 2503 is a television or video monitor.

【0153】[0153]

【発明の効果】以上の詳細な説明から明らかなように、
本発明によれば、並列処理によって極めて高速のデコー
ディングが可能になる。複数のコンテキスト・ビンの並
列処理によって高速にデコーディングを行なう方法及び
装置を実現できる。複数の確率クラスの並列処理によつ
て高速にデコーディングを行なう方法及び装置を実現で
きる。集積回路で安価に複製可能な単純なデコーダを用
い並列処理により高速デコーディングを行なうことが可
能になる。従来のデコーディング装置の高速化のネック
の一つであった大きな低速フィードバックループを排除
することができる。単純なコードを使用し、デコーディ
ング効率を向上させ、かつ、デコーディング装置のハー
ドウエアを単純化・高速化することができる。確率推定
モジュールのハードウエアコストの削減が可能になる。
パイプライン技法を導入した高速デコーディング装置を
実現できる。並列処理による高速のエンコーディングを
行なう方法及び装置を実現できる。可変長符号語を一定
のワードサイズにパックしたコード化ストリームを生成
する、並列デコーディングの目的に好適なエンコーディ
ング装置を実現できる。スヌーパー・デコーダを備える
ことにより、デコーダ側で要求される順序に従ってコン
テキスト・ビンの符号語を並べたコード化データストリ
ームを高速に生成する、並列デコーディングの目的に好
適なエンコーディグ装置を実現できる。ファクシミリの
ような二重システムで使用するに好適なエンコーディン
グ装置を実現できる。高速コンピュータネットワーク等
での使用に最適なデコーディング装置を実現できる。リ
アルタイム・ビデオシステムのエントロピー・コーダ部
に最適なデコーディング装置を実現できる、等々の多く
の効果を得られる。
As is apparent from the above detailed description,
According to the present invention, extremely high-speed decoding is enabled by parallel processing. A method and apparatus for performing high-speed decoding by parallel processing of a plurality of context bins can be realized. A method and apparatus for performing high-speed decoding by parallel processing of a plurality of probability classes can be realized. High-speed decoding can be performed by parallel processing using a simple decoder that can be duplicated at low cost in an integrated circuit. A large low-speed feedback loop, which has been one of the bottlenecks in increasing the speed of the conventional decoding device, can be eliminated. Using a simple code, decoding efficiency can be improved, and hardware of the decoding device can be simplified and speeded up. The hardware cost of the probability estimation module can be reduced.
A high-speed decoding device using a pipeline technique can be realized. A method and apparatus for performing high-speed encoding by parallel processing can be realized. An encoding device suitable for the purpose of parallel decoding that generates a coded stream in which variable-length codewords are packed into a fixed word size can be realized. By providing the snooper decoder, it is possible to realize an encoding device suitable for the purpose of parallel decoding, which rapidly generates an encoded data stream in which code words of context bins are arranged in the order required on the decoder side. An encoding device suitable for use in a duplex system such as a facsimile can be realized. A decoding device optimal for use in a high-speed computer network or the like can be realized. Many effects can be obtained, such as realizing a decoding device optimal for the entropy coder section of the real-time video system.

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

【図1】従来のバイナリエントロピー・エンコーダ及び
デコーダを示すブロック図である。
FIG. 1 is a block diagram showing a conventional binary entropy encoder and decoder.

【図2】従来のデコーダのブロック図である。FIG. 2 is a block diagram of a conventional decoder.

【図3】本発明のデコーダのブロック図である。FIG. 3 is a block diagram of a decoder according to the present invention.

【図4】コンテキスト・ビンを並列処理する本発明のデ
コーダのブロック図である。
FIG. 4 is a block diagram of the decoder of the present invention for processing context bins in parallel.

【図5】確率クラスを並列処理する本発明のデコーダの
ブロック図である。
FIG. 5 is a block diagram of a decoder of the present invention that processes probability classes in parallel.

【図6】本発明のRコーダのための確率推定テーブル及
びビットストリーム・ジェネレータの一例を示す図であ
る。
FIG. 6 is a diagram illustrating an example of a probability estimation table and a bit stream generator for an R coder according to the present invention.

【図7】符号化効率対MPS確率のグラフである。FIG. 7 is a graph of coding efficiency versus MPS probability.

【図8】本発明のRコーダ伸長装置のブロック図であ
る。
FIG. 8 is a block diagram of an R coder decompression device of the present invention.

【図9】本発明のRコーダの一例のブロック図である。FIG. 9 is a block diagram of an example of an R coder according to the present invention.

【図10】本発明における一つのRコーダのブロック図
である。
FIG. 10 is a block diagram of one R coder in the present invention.

【図11】本発明のRコーダの制御論理の回路構成の一
例を示す回路図である。
FIG. 11 is a circuit diagram illustrating an example of a circuit configuration of control logic of an R coder according to the present invention.

【図12】RコーダのためのPEMの回路構成の一例を
示す回路図である。
FIG. 12 is a circuit diagram showing an example of a circuit configuration of a PEM for an R coder.

【図13】Rコーダのシフタ、デコーダ及びカウンタの
回路構成の一例を示す回路図である。
FIG. 13 is a circuit diagram showing an example of a circuit configuration of a shifter, a decoder, and a counter of the R coder.

【図14】非インターリーブ・多チャネル並列アーキテ
クチャを示すブロック図である。
FIG. 14 is a block diagram illustrating a non-interleaved, multi-channel parallel architecture.

【図15】非インターリーブ・多チャネル並列デコーデ
ィング・アーキテクチャを示すブロック図である。
FIG. 15 is a block diagram illustrating a non-interleaved, multi-channel parallel decoding architecture.

【図16】は非インターリーブ・単一チャネル並列アー
キテクチャを示すブロック図である。
FIG. 16 is a block diagram illustrating a non-interleaved single channel parallel architecture.

【図17】非インターリーブ・単一チャネル並列デコー
ディング・アーキテクチャを示すブロック図である。
FIG. 17 is a block diagram illustrating a non-interleaved single channel parallel decoding architecture.

【図18】本発明において使用される連結コードストリ
ームの一例を示す図である。
FIG. 18 is a diagram showing an example of a concatenated code stream used in the present invention.

【図19】Rコーダを使用する非インターリーブ・単一
チャネル並列デコーディング・アーキテクチャを示すブ
ロック図である。
FIG. 19 is a block diagram illustrating a non-interleaved single channel parallel decoding architecture using an R coder.

【図20】本発明によるコンテキスト・ビンを処理する
インターリーブ・並列デコーディング装置の一例わ示す
ブロック図である。
FIG. 20 is a block diagram illustrating an example of an interleave / parallel decoding apparatus for processing a context bin according to the present invention;

【図21】本発明による確率クラスを処理するインター
リーブ並列デコーディング装置の一例を示すブロック図
である。
FIG. 21 is a block diagram illustrating an example of an interleaved parallel decoding device that processes probability classes according to the present invention.

【図22】複数の要求を同時にサポートするインターリ
ーブ並列デコーディング装置のブロック図である。
FIG. 22 is a block diagram of an interleaved parallel decoding device that supports a plurality of requests simultaneously.

【図23】本発明の並列デコーディング装置の一例のブ
ロック図である。
FIG. 23 is a block diagram illustrating an example of a parallel decoding device according to the present invention.

【図24】本発明のスヌーパー(snooper)デコーダの
一例のブロック図である。
FIG. 24 is a block diagram of an example of a snooper decoder according to the present invention.

【図25】本発明の並列エンコーディング・アーキテク
チャの一例のブロック図である。
FIG. 25 is a block diagram of an example of the parallel encoding architecture of the present invention.

【図26】本発明を用いた高バンド幅システムのブロッ
ク図である。
FIG. 26 is a block diagram of a high bandwidth system using the present invention.

【図27】本発明を用いたバンド幅マッチングシステム
のブロック図である。
FIG. 27 is a block diagram of a bandwidth matching system using the present invention.

【図28】本発明を用いた実時間ビデオ装置のブロック
図である。
FIG. 28 is a block diagram of a real-time video device using the present invention.

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

101,104 コンテキスト・モデル(CM) 102,105 確率推定モジュール(PEM) 103,106 ビットストリーム・ジェネレータ(B
G) 201 入力バッファ 202 デコーダ 203 コンテキスト・モデル 204 入力バッファ 205 デコーダ 207 デコードデータメモリ 206 コンテキスト・モデル 221 チャネル・コントロール 222〜224 ビットストリーム・ジェネレータ(B
G) 225〜227 確率推定モジュール(PEM) 228 コンテキスト・モデル(CM) 231 チャネル・コントロール 232〜234 ビットストリーム・ジェネレータ(B
G) 235 確率推定モジュール(PEM) 236 コンテキスト・モデル(CM) 501 Rコード・デコーダ 502 ラン・カウンタ 600 Rコード・デコーダ 601 シフトブロック 602 デコードブロック 603 ラン・カウンタ 604 確率推定モジュール(PEM) 1101 エンコーダ 1102〜1105 ビットストリーム・ジェネレータ
(BG) 1106 確率推定モジュール(PEM)/コンテキス
ト・モデル(CM) 1107〜1110 チャネル 1111 デコーダ 1201〜1204 チャネル 1205〜1208 ビットストリーム・ジェネレータ
(BG) 1209〜1212 確率推定モジュール(PEM) 1213 コンテキスト・モデル(CM) 1214 デコーダ 1215 エンコーダ 1300 エンコーダ 1301 デコーダ 1303 メモリ・メモリコントロール 1304〜1307 ビットストリーム・ジェネレータ
(BG) 1308 確率推定モジュール(PEM)/コンテキス
ト・モデル(CM) 1401 メモリ・メモリコントロール 1402〜1405 ビットストリーム・ジェネレータ
(BG) 1406〜1409 確率推定モジュール(PEM) 1410 コンテキスト・モデル(CM) 1411 デコーダ 1412 エンコーダ 1501〜1503 ポインタ 1504〜1506 コンテキストビン・データ 1600 デコーダ 1601 メモリ 1602 デコーダ/確率推定モジュール(PEM) 1603 アドレス・ジェネレータ 1604〜1607 カウンタ 1608 コンテキスト・モデル(CM) 1609 エンコーダ 1701 FIFO 1702〜1705 ビットストリーム・ジェネレータ
(BG) 1706〜1709 確率推定モジュール(ぺ) 1710 コンテキスト・モデル(CM) 1711 デコーダ 1713 エンコーダ 1800 デコーダ 1801 FIFO 1802〜1805 ビットストリーム・ジェネレータ
(BG) 1806 確率推定モジュール/コンテキスト・モデル 1808 エンコーダ 1900 デコーダ 1901 FIFO 1902〜1905 レジスタ 1906〜1909 ビットストリーム・ジェネレータ
(BG) 1910 確率推定モジュール/コンテキスト・モデル 1911 チャネル分配部 1912 エンコーダ 2000 エンコーダ 2001 コンテキスト・モデル 2002〜2005 エンコードPEM 2006〜2009 ビットパック・バッファ 2010 順序ブロック 2100 スヌーパー・デコーダ 2101〜2103 ビットパック・バッファ 2104 デコーダデータ要求調停部 2105〜2107 デコーダ 2108 コンテキスト・モデル 2200 エンコーダ 2201 コンテキスト・モデル/確率推定モジュール 2202〜2205 ビットパック・バッファ 2206 順序ジェネレータ 2301,2401,2501 デコーディング装置 2502 HDTV/MPEG損失性デコーダ 2503 テレビジョン/ビデオモニタ
101, 104 Context model (CM) 102, 105 Probability estimation module (PEM) 103, 106 Bitstream generator (B
G) 201 input buffer 202 decoder 203 context model 204 input buffer 205 decoder 207 decode data memory 206 context model 221 channel control 222 to 224 bitstream generator (B
G) 225-227 Probability estimation module (PEM) 228 Context model (CM) 231 Channel control 232-234 Bit stream generator (B
G) 235 Probability estimation module (PEM) 236 Context model (CM) 501 R code decoder 502 Run counter 600 R code decoder 601 Shift block 602 Decode block 603 Run counter 604 Probability estimation module (PEM) 1101 Encoder 1102 11105 Bitstream generator (BG) 1106 Probability estimation module (PEM) / context model (CM) 1107-1110 channels 1111 Decoders 1201-1204 channels 1205-1208 Bitstream generator (BG) 1209-1212 Probability estimation module ( PEM) 1213 Context Model (CM) 1214 Decoder 1215 Encoder 1300 Encoder 13 01 Decoder 1303 Memory / Memory Control 1304-1307 Bitstream Generator (BG) 1308 Probability Estimation Module (PEM) / Context Model (CM) 1401 Memory / Memory Control 1402-1405 Bitstream Generator (BG) 1406-1409 Probability Estimation Module (PEM) 1410 Context Model (CM) 1411 Decoder 1412 Encoder 1501-1503 Pointer 1504-1506 Context Bin Data 1600 Decoder 1601 Memory 1602 Decoder / Probability Estimation Module (PEM) 1603 Address Generator 1604-1607 Counter 1608 Context・ Model (CM) 1609 Encoder 1701 FI O 1702-1705 Bitstream Generator (BG) 1706-1709 Probability Estimation Module () 1710 Context Model (CM) 1711 Decoder 1713 Encoder 1800 Decoder 1801 FIFO 1802-1805 Bitstream Generator (BG) 1806 Probability Estimation Module / Context Model 1808 Encoder 1900 Decoder 1901 FIFO 1902-1905 Registers 1906-1909 Bitstream Generator (BG) 1910 Probability Estimation Module / Context Model 1911 Channel Distribution Unit 1912 Encoder 2000 Encoder 2001 Context Model 2002-2005 Encode PEM 2006- 2009 Bit Pack Buffer 2010 Order block 2100 Snooper decoder 2101 to 2103 Bit pack buffer 2104 Decoder data request arbitration unit 2105 to 2107 Decoder 2108 Context model 2200 Encoder 2201 Context model / probability estimation module 2202 to 2205 Bit pack buffer 2206 Order generator 2301 , 2401, 2501 Decoding device 2502 HDTV / MPEG lossy decoder 2503 Television / video monitor

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI H04N 7/30 H04N 7/133 Z (72)発明者 マーティン ピィ ボーリック アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコー コーポレーシ ョン内 (56)参考文献 特開 昭61−84125(JP,A) 特開 昭63−299520(JP,A) 特開 平6−104767(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40 G06F 5/00 H04N 1/41 ──────────────────────────────────────────────────の Continued on the front page (51) Int.Cl. 7 Identification code FI H04N 7/30 H04N 7/133 Z (72) Inventor Martin Pi Beaurick United States 94025 Menlo Park Sand Hill Road 2882 Ricoh Corporation (56) References JP-A-61-84125 (JP, A) JP-A-63-299520 (JP, A) JP-A-6-104767 (JP, A) (58) Fields investigated (Int. 7 , DB name) H03M 7/40 G06F 5/00 H04N 1/41

Claims (72)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 複数の符号語からなるデータストリーム
を伸長するための装置であって、 該データストリームの該複数の符号語を受け取るための
チャネル手段、及び該データストリームの各符号語をデ
コードするための、該チャネル手段に接続されたデコー
ディング手段を具備し、該デコーディング手段はコンテキスト・ビンを並列処理
するための手段を含むことを特徴とするデータ伸長装
置。
1. A device for decompressing the data stream comprising a plurality of codewords, channel means for receiving a plurality of codewords of the data stream, and decode each codeword of said data stream And decoding means connected to the channel means for processing the context bins in parallel.
Data decompression device characterized by including means for performing
Place.
【請求項2】 複数の符号語からなるデータストリーム
を伸長するための装置であって、 該データストリームの該複数の符号語を受け取るための
チャネル手段、及び 該データストリームの各符号語をデ
コードするための、該チャネル手段に接続されたデコー
ディング手段を具備し、 該デコーディング手段は確率クラスを並列処理するため
の手段を含むことを特徴とするデータ伸長装置。
2. A data stream comprising a plurality of codewords.
Apparatus for decompressing a plurality of codewords of the data stream.
Channel means and each codeword of the data stream
A decoder connected to the channel means for coding
Comprising a loading means, because the decoding means for parallel processing the probability class
A data decompression device comprising:
【請求項3】 請求項1、2記載のデータ伸長装置にお
いて、該チャネル手段が少なくとも2つのデータストリ
ームを並列に提供することを特徴とするデータ伸長装
置。
3. The data decompression device according to claim 1,
The channel means comprises at least two data streams.
Data decompression device characterized by providing the game in parallel
Place.
【請求項4】 請求項1、2記載のデータ伸長装置にお
いて、該チャネル手段が複数のチャネルからなることを
特徴とするデータ伸長装置。
4. A data decompression device according to claim 1,
And that the channel means comprises a plurality of channels.
Characteristic data decompression device.
【請求項5】 請求項3記載のデータ伸長装置におい
て、該チャネル手段が単一の非インターリーブチャネル
からなることを特徴とするデータ伸長装置。
5. A data decompression device according to claim 3, wherein
The channel means is a single non-interleaved channel
A data decompression device characterized by comprising:
【請求項6】 請求項3記載のデータ伸長装置におい
て、該チャネル手段が単一のインターリーブチャネルか
らなることを特徴とするデータ伸長装置。
6. A data decompression device according to claim 3, wherein
Whether the channel means is a single interleaved channel
A data decompression device characterized by comprising:
【請求項7】 複数の符号語からなるデータストリーム
を伸長するための装置であって、 該データストリームの複数の符号語を受け取るためのチ
ャネル手段、 該チャネル手段に接続され、該データストリーム中の少
なくとも2つの符号語を同時にデコードし、該デコード
されたデータのビットを並列に出力するデコー ディング
手段、 該デコードされたデータを記憶するための、該デコーデ
ィング手段に接続されたデータ記憶手段、 該データ記憶手段よりデコードされたデータを、それが
その元の順序で出力されるように選択する、該データ記
憶手段に接続されたモデリング手段、 を具備することを特徴とするデータ伸長装置。
7. A data stream comprising a plurality of codewords.
Device for decompressing a data stream, comprising a plurality of codewords for receiving a plurality of codewords of the data stream.
Yaneru means, connected to said channel means, low in the data stream
Decoding at least two codewords simultaneously,
Decode Funding for outputting bits of data in parallel
Means for storing the decoded data, the decoding
Data storage means connected to the data storage means, and decodes the data from the data storage means.
Select the data record to be output in its original order.
A data decompression device comprising modeling means connected to storage means .
【請求項8】 請求項7記載のデータ伸長装置におい
て、該デコーディング手段が複数のデコーダからなるこ
とを特徴とするデータ伸長装置。
8. A data decompression device according to claim 7, wherein
Therefore, the decoding means comprises a plurality of decoders.
And a data decompression device.
【請求項9】 請求項8記載のデータ伸長装置におい
て、該複数のデコーダのそれぞれが、少なくとも1つの
コンテキスト・ビンに対応したデータをデコードするこ
とにより、コンテキスト・ビンに従って符号語が並列に
処理されることを特徴とするデータ伸長装置。
9. A data decompression device according to claim 8, wherein
And each of the plurality of decoders has at least one
Decoding the data corresponding to the context bin
Allows codewords to run in parallel according to the context bin
A data decompression device characterized by being processed.
【請求項10】 請求項9記載のデータ伸長装置におい
て、該複数のデコーダの少なくとも1つが、あるクラス
のコンテキスト・ビンに対応したデータをデコードする
ことを特徴とするデータ伸長装置。
10. A data decompression device according to claim 9, wherein
And at least one of the plurality of decoders has a class
Decode data corresponding to the context bin
A data decompression device characterized by the above-mentioned.
【請求項11】 請求項8記載のデータ伸長装置におい
て、該複数のデコーダのそれぞれが、少なくとも1つの
確率クラスに対応したデータをデコードすることによ
り、確率クラスに従って符号語が並列にデコードされる
ことを特徴とするデータ伸長装置。
11. A data decompression device according to claim 8, wherein
And each of the plurality of decoders has at least one
By decoding the data corresponding to the probability class
Codewords are decoded in parallel according to the probability class
A data decompression device characterized by the above-mentioned.
【請求項12】 複数の符号語からなるデータストリー
ムを伸長するための装置であって、 該データストリームの複数の符号語を受け取るためもの
であって、該データストリームを複数の並列データスト
リームとして提供する手段を含む、チャネル制御手段、 該複数の並列データストリームの符号語のそれぞれをデ
コードし、並列にデコードされたデコードデータを生成
するための、該複数の並列データストリームの一つにそ
れぞれ接続された複数のビットストリーム・ジェネレー
タ、 該ビットストリーム・ジェネレータからのデコードデー
タを選択して、それをある必然的順序で出力するため
の、該複数のビットストリーム・ジェネレータに 接続さ
れたモデリング手段、 を具備することを特徴とするデータ伸長装置。
12. A data stream comprising a plurality of codewords.
Apparatus for decompressing a data stream for receiving a plurality of codewords of the data stream
Wherein said data stream is divided into a plurality of parallel data streams.
Channel control means, including means for providing as stream, codewords of each of the plurality of parallel data streams.
Code and generate decoded data that is decoded in parallel
One of the plurality of parallel data streams to
Multiple bitstream generators connected to each other
Data from the bit stream generator.
Select the data and output it in some inevitable order
Connected to the plurality of bitstream generators.
Data decompression apparatus, characterized by comprising the modeling means.
【請求項13】 それぞれが該モデリング手段及び該複
数のビットストリーム・ジェネレータの一つに接続され
た、該複数のビットストリーム・ジェネレータに対して
確率推定値を提供するための複数の確率推定手段をさら
に具備し、 該複数のビットストリーム・ジェネレータのそれぞれは
少なくとも1つのコンテキスト・ビンに関係付けられる
ことにより、異なったコンテキスト・ビンの符号語が該
複数の確率推定手段より受け取られた確率推定値に従っ
て並列にデコードされ、該モデリング手段は該複数の確
率推定手段のそれぞれを該必然的順序で選択して該複数
のビットストリーム・ジェネレータからのデコードデー
タを出力する、ことを特徴とする請求項12記載のデー
タ伸長装置。
13. Each of said modeling means and said compound means.
Connected to one of a number of bitstream generators
For the plurality of bitstream generators
Add multiple probability estimators to provide probability estimates
Wherein each of the plurality of bitstream generators comprises
Associated with at least one context bin
This allows codewords in different context bins to be
According to the probability estimates received from multiple probability estimators
Decoding in parallel, and the modeling means
Selecting each of the rate estimating means in the necessary order and
Decoded data from the bitstream generator
13. The data according to claim 12, wherein the data is output.
Data extension device.
【請求項14】 該モデリング手段及び該複数のビット
ストリーム・ジェネレータのそれぞれに接続された、該
複数のビットストリーム・ジェネレータに対して確率推
定値を提供するための確率推定手段をさらに具備し、 該複数のビットストリーム・ジェネレータのそれぞれは
少なくとも1つの確率クラスに関係付けられることによ
り、異なった確率クラスの符号語が該確率推定手段より
受け取られた確率推定値に従って並列にデコードされ、
該モデリング手段は該確率推定手段に対し該必然的順序
でコンテキストを提供して該複数のビットストリーム・
ジェネレータからのデータを選択することにより、該確
率推定手段は該複数のビットストリーム・ジェネレータ
からのデコードデータを選択する、ことを特徴とする請
求項12記載のデータ伸長装置。
14. The modeling means and the plurality of bits
Connected to each of the stream generators
Probability estimation for multiple bitstream generators
Further comprising probability estimating means for providing a constant value, wherein each of the plurality of bitstream generators
By being associated with at least one probability class
Code words of different probability classes
Decoded in parallel according to the received probability estimates,
The modeling means is adapted to determine the necessary order with respect to the probability estimating means.
Providing the context with the plurality of bitstreams.
By selecting the data from the generator,
The rate estimating means includes a plurality of bit stream generators.
Selecting decoded data from the
The data decompression device according to claim 12, wherein
【請求項15】 請求項12記載のデータ伸長装置にお
いて、該チャネル制御手段が、 該データストリームを記憶するためのメモリ手段、及び
少なくとも1つのコンテキスト・ビンに対応したデータ
ストリームを該複数のビットストリーム・ジェネレータ
のそれぞれに対して提供する、該メモリ手段及び該複数
のビットストリーム・ジェネレータに接続された少なく
とも1つのチャネルを具備する、ことを特徴とするデー
タ伸長装置。
15. A data decompression device according to claim 12,
Memory means for storing the data stream , wherein the channel control means comprises:
Data corresponding to at least one context bin
Stream into the plurality of bitstream generators
The plurality of memory means and the plurality of
Connected to a bitstream generator
Data comprising at least one channel.
Data extension device.
【請求項16】 請求項12記載のデータ伸長装置にお
いて、該チャネル制 御手段が、 該データストリームを記憶するためのメモリ手段、及び
少なくとも1つの確率クラスに対応したデータストリー
ムを該複数のビットストリーム・ジェネレータのそれぞ
れに対して提供する、該メモリ手段及び該複数のビット
ストリーム・ジェネレータに接続された少なくとも1つ
のチャネルを具備する、ことを特徴とするデータ伸長装
置。
16. A data decompression device according to claim 12, wherein
There are, the channel control means, memory means for storing said data stream, and
Data stream corresponding to at least one probability class
Each of the bitstream generators
The memory means and the plurality of bits providing for the
At least one connected to the stream generator
Data decompression device, comprising:
Place.
【請求項17】 請求項12記載のデータ伸長装置にお
いて、該チャネル制御手段が、 該データストリームを受け取るためのメモリ手段、 それぞれが該複数のビットストリーム・ジェネレータの
1つに接続され、該接続されたビットストリーム・ジェ
ネレータに対してデータを運ぶ、複数のチャネル、及び
該メモリ手段からのデータストリーム中のデータを該複
数のチャネルへ送るための手段を具備する、ことを特徴
とするデータ伸長装置。
17. The data decompression device according to claim 12, wherein
And wherein the channel control means comprises : memory means for receiving the data stream, each of the plurality of bit stream generators comprising:
Connected to one another and the connected bitstream
Multiple channels that carry data to the Nerator, and
The data in the data stream from the memory means is
Means for sending to a number of channels
Data decompression device.
【請求項18】 請求項12記載のデータ伸長装置にお
いて、該データストリームが連結されたコードストリー
ムからなり、該チャネル制御手段が該連結されたコード
ストリームの適当な部分を該複数のビットストリーム・
ジェネレータ中の適当な1つへ送るための手段を含む、
ことを特徴とするデータ伸長装置。
18. The data decompression device according to claim 12, wherein
And a code stream to which the data stream is connected.
And the channel control means comprises the connected code.
The appropriate part of the stream is
Means for sending to an appropriate one in the generator,
A data decompression device characterized by the above-mentioned.
【請求項19】 請求項18記載のデータ伸長装置にお
いて、該連結されたコードストリームが各コンテキスト
・ビンのデータ、及び、当該各コンテキスト・ビンのデ
ータの位置を示すための複数のポインタからなる、こと
を特徴とするデータ伸長装置。
19. A data decompression device according to claim 18, wherein
And the concatenated code stream is
Bin data and the data of each context bin
Consisting of multiple pointers to indicate the position of data
A data decompression device characterized by the above-mentioned.
【請求項20】 請求項18記載のデータ伸長装置にお
いて、該連結されたコードストリームが各確率クラスの
ためのデータ、及び、当該各確率クラスのためのデータ
の位置を示すための複数のポインタからなる、ことを特
徴とするデータ伸長装置。
20. The data decompression device according to claim 18, wherein
And the concatenated codestreams of each probability class
Data for each probability class
Of multiple pointers to indicate the position of the
Data decompression device.
【請求項21】 請求項12記載のデータ伸長装置にお
いて、該チャネル制御手段が該データストリーム中の符
号語を適当なビットストリーム・ジェネレータへ送るた
めの手段を含む、ことを特徴とするデータ伸長装置。
21. A data decompression device according to claim 12,
And wherein the channel control means
To send the word to the appropriate bitstream generator.
A data decompression device, characterized in that the data decompression device includes means for executing the data decompression.
【請求項22】 請求項12記載のデータ伸長装置にお
いて、該チャネル制御手段がFIFOを含むことを特徴
とするデータ伸長装置。
22. A data decompression device according to claim 12,
Wherein the channel control means includes a FIFO.
Data decompression device.
【請求項23】 請求項12記載のデータ伸長装置にお
いて、該チャネル制御手段が、 該データストリームを受け取って、該データストリーム
を予め決められた順序で出力するためのメモリ手段、及
該メモリ手段より出力されるデータに直列的に接続さ
れた複数のレジスタ手段を具備し、 該複数のレジスタ手段がそれぞれ、該複数のビットスト
リーム・ジェネレータの一つに接続されて該複数のビッ
トストリーム・ジェネレータの関連した一つに対し該デ
ータストリームの少なくとも1つの符号語を供給し、符
号語が少なくとも2つのビットストリーム・ジェネレー
タにより使用される時に、複数のデータ要求をすること
が可能でかつ該複数のレジスタ手段の間でデータがシフ
トされ、各アクセス後に該レジスタ手段全部にデータが
保持されるように、該データストリームが順序付けられ
る、ことを特徴とするデータ伸長装置。
23. The data decompression device according to claim 12, wherein
There are, the channel control unit, receives the data stream, the data stream
Means for outputting in a predetermined order
And serially connected to data output from the memory means.
A plurality of register means, each of which comprises a plurality of bit
Connected to one of the
The stream to the relevant one of the stream generators.
Providing at least one codeword of the data stream,
Bit stream generator with at least two words
Making multiple data requests when used by data
Data can be shifted between the plurality of register means.
After each access, data is stored in all the register means.
The data stream is ordered so that it is
A data decompression device.
【請求項24】 請求項23記載のデータ伸長装置にお
いて、該メモリ手段がFIFOからなることを特徴とす
るデータ伸長装置。
24. The data decompression device according to claim 23,
And the memory means comprises a FIFO.
Data decompression device.
【請求項25】 請求項23記載のデータ伸長装置にお
いて、該レジスタ手段のそれぞれがFIFOからなるこ
とを特徴とするデータ伸長装置。
25. The data decompression device according to claim 23,
And each of the register means comprises a FIFO.
And a data decompression device.
【請求項26】 該複数のビットストリーム・ジェネレ
ータの少なくとも2つが同時にメモリ手段に対しデータ
を要求した時に該メモリ手段に対するアクセスを調停す
るための、該複数のビットストリーム・ジェネレータに
接続された調停手段をさらに具備することを特徴とする
請求項12記載のデータ伸長装置。
26. The plurality of bitstream generators.
At least two of the data are stored in the memory
Arbitrate access to the memory means when requesting
The multiple bitstream generators to
Characterized by further comprising connected arbitration means.
The data decompression device according to claim 12.
【請求項27】 請求項12記載のデータ伸長装置にお
いて、該複数のビットストリーム・ジェネレータがRx
(k)コードを使用する(ただしx及びkは整数)、こと
を特徴とするデータ伸長装置。
27. The data decompression device according to claim 12, wherein
And the plurality of bitstream generators are Rx
(k) Use code (where x and k are integers)
A data decompression device characterized by the above-mentioned.
【請求項28】 請求項12記載のデータ伸長装置にお
いて、該複数のビットストリーム・ジェネレータがR2
(k)コード及びRn(k)コードを使用する(ただしnは整
数)ことを特徴とするデータ伸長装置。
28. A data decompression apparatus according to claim 12,
And the plurality of bitstream generators are R2
(k) code and Rn (k) code (where n is an integer)
A data decompression device characterized in that:
【請求項29】 請求項28記載のデータ伸長装置にお
いて、n=3であり、該複数のビットストリーム・ジェ
ネレータがR2(k)コードとR3(k)コードを使用すること
を特徴とするデータ伸長装置。
29. The data decompression device according to claim 28,
And n = 3, and the plurality of bit stream
Nerator uses R2 (k) and R3 (k) codes
A data decompression device characterized by the above-mentioned.
【請求項30】 請求項12記載のデータ伸長装置にお
いて、該複数のビットストリーム・ジェネレータが可変
長−可変長コードを使用することを特徴とするデータ伸
長装置。
30. A data decompression device according to claim 12, wherein
And the plurality of bitstream generators are variable.
Data decompression characterized by using long-variable length codes
Long equipment.
【請求項31】 請求項12記載のデータ伸長装置にお
いて、該複数のビットストリーム・ジェネレータがカス
ケードされたコードを用いて確率クラスを並列にデコー
ドすることを特徴とするデータ伸長装置。
31. A data decompression device according to claim 12,
And the plurality of bitstream generators
Decode probability classes in parallel using coded code
A data decompression device characterized in that the data is decompressed.
【請求項32】 請求項12記載のデータ伸長装置にお
いて、該コードの少なくとも1つが、該確率クラスのあ
る1つに関し、下に示すように入力データがデコードさ
れるコードからなることを特徴とするデータ伸長装置。 (入力データ)(デコード結果) 0000 → 0 0001 → 1000 0010 → 1001 0011 → 11111 010 → 101 011 → 11101 100 → 110 101 → 11110 11 → 11100
32. The data decompression device according to claim 12, wherein
And at least one of the codes is in the probability class
For one, the input data is decoded as shown below.
A data decompression device comprising a code to be executed. (Input Data) (decoding result) 0000 → 0 0001 → 1000 0010 → 1001 0011 → 11111 010 → 101 011 → 11101 100 → 110 101 → 11110 11 → 11100
【請求項33】 請求項12記載のデータ伸長装置にお
いて、該複数のビットストリーム・ジェネレータのそれ
ぞれがバイナリ算術コーダを使用することを特徴するデ
ータ伸長装置。
33. The data decompression device according to claim 12,
And that of the plurality of bitstream generators
Each of which uses a binary arithmetic coder.
Data extension device.
【請求項34】 複数の符号語からなるデータストリー
ムを伸長するための方法であって、 該データストリームより複数のデータストリームを供給
するステップ、 複数のビットストリーム・ジェネレータを使用し、該複
数のデータストリーム 中のデータに応じてデコード結果
を生成するステップであって、該デコード結果の少なく
とも2つは同時に生成されることによってデコード結果
は並列に生成されるステップ、 デコード結果を選択して伸長データを必然的なデータ順
序に従って出力するステップを有し、 複数のデータストリームを供給するステップが、それぞ
れがある特定のコンテキスト・ビンに対応した複数のデ
ータストリームを供給することを特徴とするデータ伸長
方法。
34. A data stream comprising a plurality of codewords.
Providing a plurality of data streams from the data stream.
Steps, using a plurality of bit stream generator, said plurality
Decoding results according to the data in the number of data streams
In which the decoding result is reduced.
Both are generated at the same time, so the decoding result
Is a step that is generated in parallel, selects the decoding result, and decompresses the decompressed data in the necessary data order
Providing a plurality of data streams, comprising the steps of:
Multiple data for a particular context bin
Data decompression characterized by supplying data streams
Method.
【請求項35】 複数の符号語からなるデータストリー
ムを伸長するための方法であって、 該データストリームより複数のデータストリームを供給
するステップ、 複数のビットストリーム・ジェネレータを使用し、該複
数のデータストリーム中のデータに応じてデコード結果
を生成するステップであって、該デコード結果の少なく
とも2つは同時に生成されることによってデコード結果
は並列に生成されるステップ、 デコード結果を選択して伸長データを必然的なデータ順
序に従って出力するステップを有し、 複数のデータストリームを供給するステップが、それぞ
れがある特定の確率クラスに対応した複数のデータスト
リームを生成することを特徴とするデータ伸長方法。
35. A data stream comprising a plurality of codewords.
Providing a plurality of data streams from the data stream.
Steps, using a plurality of bit stream generator, said plurality
Decoding results according to the data in the number of data streams
In which the decoding result is reduced.
Both are generated at the same time, so the decoding result
Is a step that is generated in parallel, selects the decoding result, and decompresses the decompressed data in the necessary data order
Providing a plurality of data streams, comprising the steps of:
Multiple data lists for a particular probability class
A data decompression method characterized by generating a stream.
【請求項36】 請求項34,35記載のデータ伸長方
法において、デコード結果を選択するステップが、デコ
ードされたデータを並列に出力するステップを含む、こ
とを特徴とするデータ伸長方法。
36. A data expansion method according to claim 34,35.
In the method, the step of selecting the decoding result
Including outputting the loaded data in parallel.
And a data decompression method.
【請求項37】 複数の符号語からなるデータストリー
ムを伸長するための方法であって、 複数のデータストリームを提供するステップであって、
複数のチャネルのそれぞれがある特定のコンテキスト・
ビンに対応したデータを供給するステップ、 複数のビットストリーム・ジェネレータを使用し、該複
数のデータストリーム中のデータに応答してデコード結
果を生成するステップであって、該複数のビッ トストリ
ーム・ジェネレータのそれぞれが、ある決まったコンテ
キスト・ビンのためのデコード結果を与え、かつ、該複
数のビットストリーム・ジェネレータの少なくとも2つ
が同時にデコード結果を生成するステップ、 該複数のビットストリーム・ジェネレータに対し、それ
ぞれのデータストリームのデコーディングのためのコー
ドを指定するステップ、 複数の確率推定手段を選択し、選択した確率推定手段に
関係付けられたビットストリーム・ジェネレータにより
生成されたデコード結果を受け取り伸長データを生成す
るステップ、 を有することを特徴とするデータ伸長方法。
37. A data stream comprising a plurality of codewords.
Providing a plurality of data streams , the method comprising :
Each channel has a specific context
Providing data corresponding to the bins, using a plurality of bitstream generators;
Decoding in response to the data in
And generating a result, the plurality of bit Tosutori
Each of the game generators
Provide the decoding result for the quist bin and
At least two of the number bitstream generators
Generating decoded results simultaneously, wherein the plurality of bitstream generators
Code for decoding each data stream.
Specifying a plurality of probability estimating means, and selecting the plurality of probability estimating means.
With an associated bitstream generator
Receives the generated decoding result and generates decompressed data
Data decompression method characterized by comprising that step.
【請求項38】 複数の符号語からなるデータストリー
ムを伸長する方法であって、 複数のデータストリームを提供するステップであって、
複数のチャネルのそれぞれがある特定の確率クラスに対
応したデータを供給するステップ、 複数のビットストリーム・ジェネレータを使用し、該複
数のデータストリーム中のデータに応じてデコード結果
を生成するステップであって、該複数のビットストリー
ム・ジェネレータのそれぞれが、ある決まった確率クラ
スのためのデコード結果を与え、かつ、該複数のビット
ストリーム・ジェネレータの少なくとも2つが同時にデ
コード結果を生成するステップ、 該複数のビットストリーム・ジェネレータに対し、それ
ぞれのデータストリームのデコーディングのためのコー
ドを指定するステップ、 複数の確率推定手段を選択し、選択した確率推定手段に
関係付けられたビットストリームにより生成されたデコ
ード結果を受け取って伸長データを生成するステップ、 を有することを特徴とするデータ伸長方法。
38. A data stream comprising a plurality of codewords.
Providing a plurality of data streams , the method comprising :
Each of the channels corresponds to a particular probability class.
Providing corresponding data, using a plurality of bitstream generators,
Decoding results according to the data in the number of data streams
Generating the plurality of bit streams
Each of the generators has a fixed probability class.
A decoding result for the plurality of bits.
At least two of the stream generators
Generating a code result, wherein for the plurality of bitstream generators,
Code for decoding each data stream.
Specifying a plurality of probability estimating means, and selecting the plurality of probability estimating means.
Deco generated by the associated bitstream
Receiving data results and generating decompressed data .
【請求項39】 複数のビットからなるコード化された
データストリームをデコードするための装置であって、 該データストリームの複数のビットを受け取るためのチ
ャネル手段、 該チャネル手段に接続されており、少なくともデコード
されたデータビットの2つのストリームが生成されるよ
うに、該複数のビットをデコードするデコーデ ィング手
段、 該デコーディング手段よりデコードされたデータビット
を受け取るように接続されており、該デコーディング手
段からのデコードされたデータビットを選択することに
より、その出力を複数のデコードされたデータビットス
トリームより選択するモデリング手段、 を具備することを特徴とするデコーディング装置。
39. A coded stream comprising a plurality of bits.
An apparatus for decoding a data stream, comprising: a key for receiving a plurality of bits of the data stream.
Yaneru means is connected to said channel means, at least the decoding
Will generate two streams of
Sea urchin, Dekode Ingu hand to decode the bits of said plurality of
Stage, data bits decoded by the decoding means
Connected to receive the decoding hand
To select the decoded data bits from the stage
More than one decoded data bit
A decoding device, comprising: modeling means for selecting from a trim .
【請求項40】 請求項39記載のデコーディング装置
において、該少なくとも2つのストリームの各ストリー
ムが、少なくとも1つのコンテキスト・ビンに対応す
る、ことを特徴とするデコーディング装置。
40. A decoding device according to claim 39.
At each stream of said at least two streams
System corresponds to at least one context bin
A decoding device.
【請求項41】 請求項39記載のデコーディング装置
において、該少なくとも2つのストリームの各ストリー
ムが、少なくとも1つの確率クラスに対応する、ことを
特徴とするデコーディング装置。
41. The decoding device according to claim 39.
At each stream of said at least two streams
That at least one probability class corresponds to
Characteristic decoding device.
【請求項42】 複数のビットからなるコード化データ
ストリームをデコードする装置であって、 該コード化データストリームを受け取って記憶するメモ
リ手段、 該メモリ手段に接続されており、該メモリ手段よりコー
ド化データを受け取ってデコードするデコーディング手
段、 該デコーディング手段よりデコードされたデータを受け
取るように接続され、デコード結果を生成するものであ
って、その中の少なくとも2つが同時に利用可能なデコ
ード結果を持つ、複数のカウンタ手段、 該複数のカウンタ手段により生成されたデコード結果を
受け取るように接続され、該複数のカウンタ手段を選択
して、伸長データを生成するためのデコード結果を取得
するモデリング手段、 を具備することを特徴とするデコーディング装置。
42. Coded data comprising a plurality of bits
An apparatus for decoding a stream, comprising: a memo for receiving and storing the encoded data stream;
And the memory means.
Decoding method that receives and decodes decoded data
Stage, receives the decoded data from the decoding means
To generate the decoding result.
Therefore, at least two of them can be used simultaneously.
A plurality of counters each having a code result, and decoding results generated by the plurality of counters.
Connected to receive and select the plurality of counter means
And obtain the decoding result for generating decompressed data
A decoding unit for performing the decoding.
【請求項43】 請求項42記載のデコーディング装置
において、該デコーディング手段がコード化データを受
け取りながら同時にデコードされたデータを該複数のカ
ウンタ手段へ出力することにより、パイプライン方式で
動作することを特徴とするデコーディング装置。
43. A decoding device according to claim 42.
Wherein the decoding means receives the coded data.
While simultaneously decoding the decoded data
Output to the counter means, in a pipeline system
A decoding device that operates.
【請求項44】 複数のビットからなるコード化データ
ストリームをデコー ドするための装置であって、 該コード化データストリームを受け取って記憶するメモ
リ手段、 該メモリ手段に接続され、該メモリ手段よりコード化デ
ータを受け取ってデコードするものであって、ランレン
グスを判定し、かつ、ランの終わりに最低確率のシンボ
ルがあるか判定する、デコーディング手段、 該デコーディング手段より該ランレングス及び最低確率
シンボルの判定結果を受け取るように接続され、デコー
ド結果を生成するものであって、その中の少なくとも2
つが同時に利用可能なデコード結果を持つ、複数のカウ
ンタ手段、 該複数のカウンタ手段により生成されたデコード結果を
受け取るように接続され、該複数のカウンタ手段を選択
して、伸長データを生成するためのデコード結果を取得
するモデリング手段、 を具備することを特徴とするデコーディング装置。
44. Coded data consisting of a plurality of bits
An apparatus for decode the stream, note receiving and storing the coded data stream
Storage means, and coded data connected to the memory means.
Data that is received and decoded.
Judgment and the lowest probability symbol at the end of the run
Decoding means, the run length and the lowest probability from the decoding means.
Connected to receive the symbol determination result,
Generating at least two results.
Multiple cows, one with simultaneous available decode results
Counter means, and decode results generated by the plurality of counter means.
Connected to receive and select the plurality of counter means
And obtain the decoding result for generating decompressed data
A decoding unit for performing the decoding.
【請求項45】 複数のビットからなるデータストリー
ムをエンコードする装置であって、 該データストリームを記憶するメモリ手段、 該メモリ手段に接続され、該データストリームから複数
のデータストリームを提供するものであって、該複数の
データストリームのそれぞれが、ある特定のコンテキス
ト・ビンに対応したデータストリームのデータからな
る、該複数のデータストリームを提供する手段、 該複数のデータストリームを提供する手段に接続され、
該データを並列にエンコードするものであって、その中
の1つが該複数のデータストリームの1つに接続され
る、複数のエンコーディング手段、 該複数のエンコーディング手段からのエンコードされた
データを受け取るように接続された記憶手段、 該記憶手段に接続され、該記憶手段をアクセスして順序
付けしたコード化ストリームを生成する順序付け手段、 を具備することを特徴とするエンコーディング装置。
45. A data stream comprising a plurality of bits
An apparatus for encoding a beam, memory means for storing said data stream, coupled to said memory means, a plurality of the data streams
Providing a data stream of
Each of the data streams has a specific context
From the data of the data stream corresponding to the
Means for providing the plurality of data streams, connected to the means for providing the plurality of data streams,
Encoding the data in parallel, wherein
Is connected to one of the plurality of data streams.
A plurality of encoding means, encoded from the plurality of encoding means
Storage means connected to receive data, access to the storage means, access to the storage means,
Encoding means for generating an attached coded stream .
【請求項46】 請求項45記載のエンコーディング装
置において、該順序付け手段には該コード化データを要
求するデコーダ手段が含まれ、該圧縮データ の順序が確
認されることを特徴とするエンコーディング装置。
46. An encoding apparatus according to claim 45.
The ordering means requires the coded data.
Decoder means for determining the order of the compressed data.
An encoding device characterized by being recognized.
【請求項47】 請求項46記載のエンコーディング装
置において、該デコーダ手段が、 該記憶手段に接続され、該記憶手段からのデータをデコ
ードする複数のデコーダ、及び 該複数のデコーダに対し
コンテキスト・ビンを提供するモデリング手段を具備
し、該複数のデコーダは該モデリング手段によって与え
られた順序でデータをデコードする、ことを特徴とする
エンコーディング装置。
47. An encoding device according to claim 46.
The decoder means is connected to the storage means , and decodes data from the storage means.
Decoders to be loaded and for the plurality of decoders
Equipped with modeling means for providing context bins
And the plurality of decoders are provided by the modeling means.
Decoding data in a given order.
Encoding device.
【請求項48】 該複数のデコーダのそれぞれが適当な
コンテキスト・ピンのデータを受け取るように該複数の
デコーダからのデータ要求を調停する調停手段をさらに
具備することを特徴とする請求項47記載のエンコーデ
ィング装置。
48. Each of the plurality of decoders has an appropriate
The plurality of pins so as to receive the data of the context pin.
Further arbitration means for arbitrating data requests from the decoder
48. The encoding according to claim 47, comprising:
Device.
【請求項49】 請求項45記載のエンコーディング装
置において、該記憶手段が複数のビットパック・バッフ
ァからなることを特徴とするエンコーディング装置。
49. An encoding apparatus according to claim 45.
Wherein the storage means comprises a plurality of bit pack buffers.
An encoding device comprising:
【請求項50】 請求項45記載のエンコーディング装
置において、該順序付け手段が、該記憶手段からのエン
コードされたデータを1つのデータ・シーケンスに変換
する手段を含むことを特徴とするエンコーディング装
置。
50. An encoding apparatus according to claim 45.
Wherein the ordering means comprises an
Convert coded data into a single data sequence
Encoding means comprising means for performing
Place.
【請求項51】 複数のビットからなるデータストリー
ムをエンコードする装置であって、 該データストリームを記憶するメモリ手段、 該メモリ手段に接続され、該データストリームから複数
のデータストリームを提供するものであって、該複数の
データストリームのそれぞれが、ある特定の確率クラス
に対応したデータストリームのデータを含む、該複数の
データストリームを提供する手段、 該複数のデータストリームを提供する手段に接続され、
該データを並列にエンコードするものであって、その中
の1つが該複数のデータストリームの1つに接続され
る、複数のエンコーディング手段、複数のエンコーディング手段からエンコードされたデ
ータを受け取るように接続された記憶手段、 該記憶手段に接続され、該記憶手段をアクセスして順序
付けられたコード化ストリームを生成する順序付け手
段、 を具備することを特徴とするエンコーディング装置。
51. A data stream comprising a plurality of bits
An apparatus for encoding a beam, memory means for storing said data stream, coupled to said memory means, a plurality of the data streams
Providing a data stream of
Each of the data streams has a certain probability class
Including the data of the data stream corresponding to
Means for providing a data stream, connected to the means for providing the plurality of data streams;
Encoding the data in parallel, wherein
Is connected to one of the plurality of data streams.
That were encoded from a plurality of encoding means, said plurality of encoding means de
Storage means connected to receive data, the storage means being connected to the storage means, and
An ordering method that produces an attached coded stream
An encoding device comprising: a stage .
【請求項52】 請求項51記載のエンコーディング装
置において、該順序付け手段には該コード化データを要
求するデコーダ手段が含まれ、該圧縮データの順序が確
認されることを特徴とするエンコーディング装置。
52. An encoding apparatus according to claim 51.
The ordering means requires the coded data.
Decoder means for determining the order of the compressed data.
An encoding device characterized by being recognized.
【請求項53】 請求項52記載のエンコーディング装
置において、該デコーダ手段が、 該記憶手段に接続され、該記憶手段からのデータをデコ
ードする複数のデコーダ、及び 該複数のデコーダに対し
コンテキスト・ビンを提供するモデリング手段を具備
し、該複数のデコーダが該モデリング手段により与えら
れた順序でデータをデコードすることを特徴とするエン
コーディング装置。
53. An encoding apparatus according to claim 52.
The decoder means is connected to the storage means , and decodes data from the storage means.
Decoders to be loaded and for the plurality of decoders
Equipped with modeling means for providing context bins
And wherein the plurality of decoders are provided by the modeling means.
Characterized by decoding data in a specified order.
Coding equipment.
【請求項54】 請求項51記載のエンコーディング装
置において、該順序付け手段が該記憶手段からのエンコ
ードされたデータを1つのデータ・シーケンスに変換す
る手段を含むことを特徴とするエンコーディング装置。
54. An encoding apparatus according to claim 51.
Wherein the ordering means comprises an encoder from the storage means.
The loaded data into a single data sequence
Encoding means, comprising:
【請求項55】 複数の符号語からなるデータストリー
ムをデコードするエントロピー・デコーダであって、 該データストリームを受け取るビットストリーム生成手
段、及び 該ビットストリーム生成手段に接続され、確率
推定値を該ビットストリーム生成手段へ提供する確率推
定手段を具備し、 該ビットストリーム生成手段が、複数の値nに対し1つ
のRn(k)コードを使用し、該確率推定手段から提供され
た確率推定値に応じて該データストリーム中の各符号語
に対するデコード結果を生成することを特徴とするエン
トロピー・デコーダ。
55. A data stream comprising a plurality of codewords.
An entropy decoder for decoding the data stream , wherein the bit stream generator receives the data stream.
Stage, and connected to the bitstream generating means,
Probability estimation for providing an estimate to the bitstream generation means
Setting means, wherein the bit stream generating means includes one for a plurality of values n.
Provided by the probability estimating means.
Each codeword in the data stream according to the estimated probability value
Generating decode results for
Tropy decoder.
【請求項56】 請求項55記載のエントロピー・デコ
ーダにおいて、該ビットストリーム生成手段がR2(k)コ
ード及びRn(k)コードを使用する(ただしnは整数)こ
とを特徴とするエントロピー・デコーダ。
56. The entropy deco according to claim 55.
In the decoder, the bit stream generating means is an R2 (k)
Code and Rn (k) code (where n is an integer)
And an entropy decoder.
【請求項57】 請求項56記載のエントロピー・デコ
ーダにおいて、n= 3であり、該ビットストリーム生成
手段がR2(k)コード及びR3(k)コードを使用することを
特徴とするエントロピー・デコーダ。
57. An entropy deco according to claim 56.
N = 3, the bit stream generation
That the means uses R2 (k) and R3 (k) codes.
Characteristic entropy decoder.
【請求項58】 請求項55記載のエントロピー・デコ
ーダにおいて、該確率推定手段が状態マシンを含むこと
を特徴とするエントロピー・デコーダ。
58. An entropy deco according to claim 55.
The probability estimator includes a state machine
An entropy decoder.
【請求項59】 請求項58記載のエントロピー・デコ
ーダにおいて、該状態マシンが同一のRn(k)コードを持
つ少なくとも2つの状態を含むことを特徴とするエント
ロピー・デコーダ。
59. The entropy deco according to claim 58.
The state machine has the same Rn (k) code.
An entry comprising at least two states
Ropy decoder.
【請求項60】 請求項58記載のエントロピー・デコ
ーダにおいて、少なくとも1つの状態変化は、使用する
Rn(k)コードの変化をもたらさないことを特徴とするエ
ントロピー・デコーダ。
60. An entropy deco according to claim 58.
At least one state change uses
Rn (k) code is not changed.
Entropy decoder.
【請求項61】 請求項55記載のエントロピー・デコ
ーダにおいて、該確率推定手段が正の状態と負の状態を
持つ状態マシンを含むことを特徴とするエントロピー・
デコーダ。
61. The entropy deco according to claim 55.
, The probability estimating means switches between a positive state and a negative state.
Entropy characterized by including a state machine having
decoder.
【請求項62】 請求項61記載のエントロピー・デコ
ーダにおいて、該状態マシンが、その正状態だけ又は負
状態だけを格納した対称の状態テーブルからなることを
特徴とするエントロピー・デコーダ。
62. The entropy deco according to claim 61.
The state machine determines that only its positive state or negative
It consists of a symmetric state table that stores only states.
Characteristic entropy decoder.
【請求項63】 複数の符号語からなるデータストリー
ムをデコードするエントロピー・デコーダであって、 該データストリームを受け取るビットストリーム生成手
段、及び 該ビットストリーム生成手段に接続され、該ビ
ットストリーム生成手段に対し確率推定値を提供する状
態テーブルを具備し、 該状態テーブルが複数の状態を含み、該複数の状態のそ
れぞれが1つのコードに関係付けられ、該複数の状態の
中の少なくとも2つの状態は同一コードを持つことによ
り、該ビットストリーム生成手段が、該確率推定手段か
らの確率推定値に応じて、該データストリーム中の各符
号語に対するデコード結果をRn(k)コード(ただしnと
kは整数)を用いて生成することを特徴とするエントロ
ピー・デコーダ。
63. A data stream comprising a plurality of codewords.
An entropy decoder for decoding the data stream , wherein the bit stream generator receives the data stream.
Stage and the bit stream generating means,
To provide a probability estimate to the stream generator
A status table, the status table including a plurality of states, and
Each is associated with a single code and the multiple states
At least two states have the same code.
The bit stream generating means is the probability estimating means
Each symbol in the data stream according to their probability estimates.
The decoding result for the word is expressed as an Rn (k) code (where n and
k is an integer)
P-decoder.
【請求項64】 複数ビットからなる圧縮データストリ
ームをデコードする装置であって、 該データストリームをデコードするとともに、該複数の
ビットに応じて、ランレングス及び最低確率シンボル
(LPS)が生じたか否かの指示が生成されるデコーダ
手段、 該デコーダ手段に接続され、該LPS及びランレングス
に応じてデコードされたデータを出力するカウンタ手段
を具備し、 該デコーダ手段は複数の状態を持つ状態テーブルを含
み、該複数の状態のそれぞれが1つのコードに関係付け
られ、かつ、その少なくとも2つの状態は同一コードと
関係付けられることにより、該少なくとも2つの状態の
間の遷移時に該デコーダ手段が同一のコードを使用する
ことを特徴とするデコーディング装置。
64. A compressed data stream comprising a plurality of bits.
An apparatus for decoding the data stream , wherein the apparatus decodes the data stream;
Run length and lowest probability symbol depending on the bit
Decoder generating an indication of whether (LPS) has occurred
Means, connected to the decoder means, the LPS and the run length
Means for outputting data decoded according to the
And the decoder means includes a state table having a plurality of states.
Each of the states is associated with one code
And at least two states are the same code
Being related, the at least two states
Decoder means use the same code during transition between
A decoding device characterized by the above-mentioned.
【請求項65】 請求項64記載のデコーディング装置
において、該コードがR2(k)コード及びRn(k)コードか
らなる(ただしnは整数)、ことを特徴とするデコーデ
ィング装置。
65. A decoding device according to claim 64.
The code is an R2 (k) code and an Rn (k) code
(Where n is an integer)
Device.
【請求項66】 請求項65記載のデコーディング装置
において、n=3であり、該コードがR2(k)コード及び
R3(k)コードからなることを特徴とするデコーディング
装置。
66. A decoding apparatus according to claim 65.
, N = 3, and the code is an R2 (k) code and
Decoding characterized by consisting of R3 (k) code
apparatus.
【請求項67】 請求項64記載のデコーディング装置
において、該デコーダ手段が、 該データストリームを符号語として受け取るように接続
され、符号語の種類を判断するランレングス・デコーデ
ィング手段、及び 該ランレングス・デコーディング手段
に接続された確率推定手段を具備し、 該確率推定手段が該ランレングス・デコーディング手段
のためのコードを決定し、該ランレングス・デコーディ
ング手段が各符号語及び該コードに応じてランレングス
及びLPSが生じたか否かの指示を生成する、ことを特
徴とするデコーディング装置。
67. A decoding apparatus according to claim 64.
Wherein the decoder means is connected to receive the data stream as a codeword.
Run-length decoding to determine the type of codeword
Means and run-length decoding means
Probabilistic estimating means connected to the run length decoding means.
Code for the run-length decode
Running means according to each codeword and the code.
And an indication of whether an LPS has occurred.
Decoding device to be featured.
【請求項68】 該データストリームを受け取って、適
当に整列させたコード化データを該ランレングス・デコ
ーディング手段へ出力するシフト手段をさらに具備す
る、ことを特徴とする請求項67記載のデコーディング
装置。
68. Receiving said data stream,
The coded data that is properly aligned is stored in the run-length / deco
Further comprising shift means for outputting to the loading means.
68. The decoding of claim 67, wherein
apparatus.
【請求項69】 請求項68記載のデコーディング装置
において、該シフト手段が、該確率推定手段から与えら
れる、前の符号語の長さを示す信号に応じて 、コード化
データを該ランレングス・デコーディング手段に提供す
ることを特徴とするデコーディング装置。
69. A decoding device according to claim 68.
Wherein the shift means is provided from the probability estimation means.
It is, in response to a signal indicating the length of the previous codeword, coded
Providing data to the run-length decoding means.
A decoding device.
【請求項70】 請求項64記載のデコーディング装置
において、該カウンタ手段が、該デコーディング手段に
対し、次の符号語を処理すべき時を指示する手段を含
む、ことを特徴とするデコーディング装置。
70. A decoding apparatus according to claim 64.
Wherein the counter means is provided to the decoding means.
On the other hand, includes means to indicate when the next codeword should be processed.
A decoding device characterized by the following:
【請求項71】 複数の符号語からなるデータストリー
ムを伸長する装置であって、 該データストリームの複数の符号語を与えるためのチャ
ネル手段、及び該チャネル手段に接続され、該データス
トリーム中の各符号語をデコードするデコーディング手
段を具備し、 該デコーディング手段は確率クラスに従い、コードを使
用して該データストリームをデコードする複数のデコー
ダを含み、該複数のデコーダはカスケード接続され、該
複数のデコーダのそれぞれは前段のデコーダが入力する
とともに、ある確率クラスに対応したデータの入力を持
ち、該複数のデコーダのそれぞれは、該データ入力の確
率とは異なる確率のコードストリームを出力し、該カス
ケードされたデコーダのチェーン中のある入力でデータ
を受け取り、該データを該チェーンの残りの部分に伝播
させることにより、該データストリームがデコードされ
データが得られる、ことを特徴とするデータ伸長装置。
71. A data stream comprising a plurality of codewords
Apparatus for decompressing a data stream, the method for providing a plurality of codewords of the data stream.
And the data means connected to the channel means and the channel means.
Decoding method for decoding each codeword in the stream
A decoding step, wherein the decoding means uses a code according to the probability class.
Decoding of the data stream using
And the plurality of decoders are cascaded, and
Each of the plurality of decoders is input by the preceding decoder
With the input of data corresponding to a certain probability class.
That is, each of the plurality of decoders has a certainty of the data input.
Output a code stream with a probability different from the
Data at one input in a chain of cascaded decoders
And propagate the data to the rest of the chain
Causes the data stream to be decoded
A data decompression device for obtaining data.
【請求項72】 請求項71記載のデータ伸長装置にお
いて、該コード中の少なくとも1つは、該確率クラスの
ある1つに関し、下に示すように入力データがデコード
されるコードからなることを特徴とするデータ伸長装
置。 (入力データ) (デコード結果) 0000 → 0 0001 → 1000 0010 → 1001 0011 → 11111 010 → 101 011 → 11101 100 → 110 101 → 11110 11 → 11100
72. The data decompression device according to claim 71,
And at least one of the codes is of the probability class
For one, the input data is decoded as shown below
Data decompression device characterized by a code
Place. (Input data) (decoding result) 0000 → 00001 → 1000 0010 → 1001 0011 → 11111 010 → 101 011 → 11101 100 → 110 101 → 11110 11 → 11100
JP19509094A 1994-08-19 1994-08-19 Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder Expired - Lifetime JP3230933B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19509094A JP3230933B2 (en) 1994-08-19 1994-08-19 Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19509094A JP3230933B2 (en) 1994-08-19 1994-08-19 Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder

Publications (2)

Publication Number Publication Date
JPH0865171A JPH0865171A (en) 1996-03-08
JP3230933B2 true JP3230933B2 (en) 2001-11-19

Family

ID=16335374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19509094A Expired - Lifetime JP3230933B2 (en) 1994-08-19 1994-08-19 Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder

Country Status (1)

Country Link
JP (1) JP3230933B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011128268A1 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
EP2561680B1 (en) 2010-04-19 2020-07-15 BlackBerry Limited Methods and devices for reordered parallel entropy coding
CA2799763A1 (en) 2010-07-13 2012-01-19 Research In Motion Limited Methods and devices for data compression using context-based coding order
CA2798125C (en) 2010-07-28 2016-04-05 Research In Motion Limited Method and device for compression of binary sequences by grouping multiple symbols
JP5636816B2 (en) 2010-08-25 2014-12-10 富士ゼロックス株式会社 Reconfigurable arithmetic circuit and program
KR101726274B1 (en) * 2011-02-21 2017-04-18 한국전자통신연구원 Method and apparatus for parallel entropy encoding/decoding
CN104081772B (en) * 2011-10-06 2018-04-10 弗劳恩霍夫应用研究促进协会 Entropy Encoded Buffer Configuration
JP7115099B2 (en) 2018-07-25 2022-08-09 セイコーエプソン株式会社 PRINTING DEVICE, PRINTING METHOD AND PRINTING SYSTEM
CN112383313B (en) * 2020-10-10 2023-08-04 中科驭数(北京)科技有限公司 Parallel data decoding device and method
CN112290953B (en) * 2020-10-19 2023-05-23 华南理工大学 Array encoding device and method, array decoding device and method for multi-channel data stream

Also Published As

Publication number Publication date
JPH0865171A (en) 1996-03-08

Similar Documents

Publication Publication Date Title
US5381145A (en) Method and apparatus for parallel decoding and encoding of data
US5717394A (en) Method and apparatus for encoding and decoding data
JP3272580B2 (en) Encoding method, encoding device, encoder, coding device, decoding method, decoding device, decoder, entropy decoder, and initialization method
JP3007496B2 (en) Variable length decoder
US5583500A (en) Method and apparatus for parallel encoding and decoding of data
US5818877A (en) Method for reducing storage requirements for grouped data values
JP5583106B2 (en) Data decoding
US7397963B2 (en) Method and apparatus for storing bitplanes of coefficients in a reduced size memory
JP2831888B2 (en) HDTV decoder
EP3991303B1 (en) Features of range asymmetric number system encoding and decoding
US6492916B1 (en) Method and apparatus for generating multiple selectable contexts
US7006697B1 (en) Parallel block MQ arithmetic image compression of wavelet transform coefficients
CN1113473C (en) Length changeable decoder using relative address
JP3230933B2 (en) Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder
Chiang et al. High-speed EBCOT with dual context-modeling coding architecture for JPEG2000
GB2306279A (en) Apparatus for decoding data
US7088869B2 (en) 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
JPH07222164A (en) Digital video bitstream coder
US6961475B2 (en) Context model access to memory based on run and skip counts and context model skipping
Boliek et al. Very high speed entropy coding
US6859563B2 (en) Method and apparatus for decoding information using late contexts
US7457473B2 (en) Method for block sequential processing
Park et al. Area efficient fast Huffman decoder for multimedia applications
US12417554B2 (en) Split runlength encoding compression and decompression of multi-planar image data

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080914

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080914

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090914

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090914

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 12

EXPY Cancellation because of completion of term