JPH08116266A - Coding method, coder, coding device, decoding method, decoder, entropy decoder and initializing method - Google Patents

Coding method, coder, coding device, decoding method, decoder, entropy decoder and initializing method

Info

Publication number
JPH08116266A
JPH08116266A JP7253792A JP25379295A JPH08116266A JP H08116266 A JPH08116266 A JP H08116266A JP 7253792 A JP7253792 A JP 7253792A JP 25379295 A JP25379295 A JP 25379295A JP H08116266 A JPH08116266 A JP H08116266A
Authority
JP
Japan
Prior art keywords
codeword
data
memory
decoder
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7253792A
Other languages
Japanese (ja)
Other versions
JP3272580B2 (en
Inventor
Eru Shiyuwaru Edowaado
エル シュワル エドワード
Goomitsushiyu Maikeru
ゴーミッシュ マイケル
Dei Aren Jieimusu
ディ アレン ジェイムス
Pii Booritsuku Maatein
ピー ボーリック マーティン
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
Publication of JPH08116266A publication Critical patent/JPH08116266A/en
Application granted granted Critical
Publication of JP3272580B2 publication Critical patent/JP3272580B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • 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)

Abstract

PURPOSE: To attain high speed processing of a coder/decoder and especially the decoder as a system in parallel decoding of non-loss coding data. CONSTITUTION: A coder 600 includes a coder 602 generating code word information 604 in response to data and a rearrangement unit 606 generating a coded data stream in response to the code word information 604. The rearrangement unit 606 includes a run count rearrangement unit in which code words are arranged in the decoding order and a bit pack unit combining variable length code words to obtain a fixed length interleaved code word and outputting it in the order requested by the decoder.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、データ圧縮システ
ム及びデータ伸長システムの分野に係り、特に、データ
圧縮/伸長システムにおけるデータの並列符号化及び復
号のための方法及び装置に関する。
FIELD OF THE INVENTION The present invention relates to the field of data compression and decompression systems, and more particularly to a method and apparatus for parallel encoding and decoding of data in a data compression / decompression system.

【0002】なお、本出願は、米国特許出願第08/0
16,035号(1993年2月10日受理,”Method
And Apparatus For Parallel Decoding and Encoding
ofData”)の一部継続出願であるところの米国特許出願
第08/172,646号(1993年12月23日受
理,”Method and Apparatus For ParallelEncoding an
d Decoding of Data”)の一部継続出願である。
[0002] This application is based on US patent application Ser. No. 08/0.
No. 16,035 (Received February 10, 1993, "Method
And Apparatus For Parallel Decoding and Encoding
No. 08 / 172,646 (December 23, 1993, “Method and Apparatus For Parallel Encoding an”
d Decoding of Data ”).

【0003】[0003]

【従来の技術】今日、データ圧縮は広範囲に利用されて
おり、特に大量のデータの記憶及び伝送のために利用さ
れている。従来より、多くの様々なデータ圧縮手法が存
在している。圧縮手法は2つの大まかなカテゴリー、つ
まり損失性符号化と非損失性符号化とに分類できる。損
失性符号化とは、情報の損失を生じ、したがってオリジ
ナルデータの完全な再現が保証されない符号化のことで
ある。非損失性圧縮では、全ての情報が保存され、デー
タは完全な再現が可能な方法で圧縮される。
BACKGROUND OF THE INVENTION Data compression is widely used today, especially for the storage and transmission of large amounts of data. Conventionally, there are many various data compression methods. Compression techniques can be divided into two broad categories: lossy coding and lossless coding. Lossive coding is coding that results in loss of information and thus does not guarantee a complete reproduction of the original data. Lossless compression preserves all information and compresses the data in a completely reproducible manner.

【0004】非損失性圧縮では、入力シンボルは出力符
号語に変換される。圧縮がうまくいけば、その符号語
は、入力シンボルのビット数より少ないビット数で表現
される。非損失性符号化法には、辞書符号化方式(例え
ば、Lempel-Ziv方式)、ランレングス符号化方式、計数
符号化方式、エントロピー符号化方式がある。
In lossless compression, input symbols are converted into output codewords. If the compression is successful, the codeword will be represented with fewer bits than the input symbols. The lossless coding method includes a dictionary coding method (for example, Lempel-Ziv method), a run-length coding method, a count coding method, and an entropy coding method.

【0005】エントロピー符号化は、既知または予測の
シンボル確率を用いエントロピー限界に近づけるようデ
ータの圧縮を試みる何等かの非損失性符号化からなる。
エントロピー符号には、ハフマン符号、算術符号、バイ
ナリエントロピー符号がある。バイナリエントロピーコ
ーダは、最高確率(最尤)シンボル(MPS)と最低確
率シンボル(LPS)として表わされることのあるバイ
ナリ(yes/no)デシジョンにのみ有効な非損失性
コーダである。バイナリエントロピーコーダの例には、
IBM社のQ−コーダ、それにB−コーダと呼ばれるコ
ーダがある。B−コーダに関するこれ以上の情報につい
ては、”Method and Apparatus forEntropy Coding”な
る発明の名称で1993年12月21日に発行され、本
発明の共同譲受人に譲渡された米国特許第5,272,
478号(J.D.Allen)を参照されたい。また、M.J.Gor
mish and J.D.Allen, ”Finite State MachineBinary E
ntropy Coding,”abstract in Porc. Data Compression
Conference,30 March 1993, Snowbird,UT, pg.449 も
参照されたい。このB−コーダは、有限状態マシンを圧
縮に利用するバイナリエントロピーコーダである。
Entropy coding consists of some lossless coding that attempts to compress the data using known or predicted symbol probabilities to approach the entropy limit.
Entropy codes include Huffman codes, arithmetic codes, and binary entropy codes. The binary entropy coder is a lossless coder that is valid only for binary (yes / no) decisions, which may be represented as highest probability (maximum likelihood) symbols (MPS) and lowest probability symbols (LPS). An example of a binary entropy coder is
There is an IBM Q-coder and a coder called a B-coder. For further information regarding B-coders, see US Pat.
See No. 478 (JD Allen). Also, MJGor
mish and JDAllen, ”Finite State MachineBinary E
ntropy Coding, ”abstract in Porc. Data Compression
See also Conference, 30 March 1993, Snowbird, UT, pg.449. This B-coder is a binary entropy coder that utilizes a finite state machine for compression.

【0006】図1は、バイナリエントロピーコーダを用
いた従来の圧縮/伸長システムのブロック図を示す。符
号化の場合、データがコンテキストモデル(CM;cont
ext model)101に入力される。CM101は、入力
データをバイナリデシジョンの集合または系列に変換
し、各デシジョン(decision)毎にコンテキストビン
(context bin )を用意する。このバイナリデシジョン
の系列と、それらに関係したコンテキストビンが両方と
も、CM101より確率予測モジュール(PEM)10
2へ出力される。PEM102は、各コンテキストビン
を受け取り、各バイナリデシジヨンに対する確率予測値
を生成する。実際の確率予測値は、普通、Pクラス(PC
lass)と呼ばれるクラスによって表現される。それぞれ
のPクラスは、1つの確率区間(range)として用いら
れる。PEM102はまた、バイナリデシジョン(結
果)が、その優勢状態であるか(すなわち、デシジョン
がMPSに相当するか)否かも判定する。ビットストリ
ーム(bit-stream)ジェネレータ(BG)モジュール1
03は、確率予測値(すなわちPクラス)と、バイナリ
デシジョンが優勢であったか否かの判断結果を入力とし
て受け取る。それに応じて、BGモジュール103はオ
リジナル入力データを表現するための圧縮データストリ
ームを生成し、0ビット以上を出力する。
FIG. 1 shows a block diagram of a conventional compression / decompression system using a binary entropy coder. In the case of encoding, the data is context model (CM; cont
ext model) 101. The CM 101 converts input data into a set or series of binary decisions and prepares a context bin for each decision. Both the sequence of binary decisions and the context bins associated with them are more
2 is output. The PEM 102 receives each context bin and produces a probability estimate for each binary decision. Actual probability estimate is usually P class (PC
It is represented by a class called lass). Each P class is used as one probability range. The PEM 102 also determines whether the binary decision (result) is in its predominant state (ie, the decision corresponds to MPS). Bitstream generator (BG) module 1
03 receives as input the probability prediction value (that is, P class) and the determination result as to whether or not the binary decision is dominant. In response, the BG module 103 generates a compressed data stream for representing the original input data and outputs 0 or more bits.

【0007】復号の場合、CM104がコンテキストビ
ンをPEM105に与え、PEM105がそのコンテキ
ストビンに基づいて確率クラス(Pクラス)をBGモジ
ュール106に与える。BGモジュール106は、その
確率クラスを受け取るように接続されている。BGモジ
ュール106は、その確率クラスと圧縮データに応じ
て、バイナリデシジョン(すなわち、イベント)がその
優勢状態であるかを表わすビットを返す。PEM105
は、その返されたビットを受け取り、そのビットに基づ
き確率予測値を更新して、その結果をCM104へ返
す。CM104は、返されたビットを受け取り、受け取
ったビットを用いてオリジナルデータを生成するととも
に次のバイナリデシジョンのためのコンテキストビンを
更新する。
In the case of decoding, the CM 104 gives the context bin to the PEM 105, and the PEM 105 gives the 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. The BG module 106 returns a bit that indicates whether a binary decision (ie, event) is in its predominant state, depending on its probability class and compressed data. PEM105
Receives the returned bit, updates the probability prediction value based on the bit, and returns the result to the CM 104. The CM 104 receives the returned bits and uses the received bits to generate the original data and update the context bin for the next binary decision.

【0008】バイナリエントロピー符号を用いるIBM
社のQ−コーダやB−コーダ等の復号器の一つの問題点
は、速度が遅いこと、特にハードウエアで実現した時に
速度が遅いことである。これら復号器の動作には、単一
の大きな低速フィードバックループが必要である。復号
プロセスをリステート(restate)するために、コンテ
キストモデルは過去の復号データを使って1つのコンテ
キストを作成する。確率予測モジュールは、そのコンテ
キストを使って1つの確率クラスを作成する。ビットス
トリームジェネレータは、その確率クラスと圧縮データ
を用いて次のビットが優勢(likely)結果であるか劣勢
(unlikely)結果であるか判定する。確率予測モジュー
ルは、その優勢/劣勢結果を用いて結果ビットを生成す
る(かつ、該コンテキストに対する確率予測値を更新す
る)。この結果ビットは、コンテキストモデルによっ
て、過去のデータの履歴を更新するために用いられる。
これらステップ全部が、たったの1ビットの復号のため
に必要とされるのである。コンテキストモデルは、その
履歴を更新するため結果を待った後に初めて、次のコン
テキストを用意できるのであるから、次のビットの復号
が遅れざるを得ない。次ビットの復号の前にフィードバ
ックループの完了を待たなくともよいようにするのが望
ましい。換言すれば、圧縮データの復号速度を増加させ
るために、1度に1ビットもしくは1符号語よりも多く
復号することが望ましい。
IBM using binary entropy code
One problem with decoders such as Q-coders and B-coders from the company is that they are slow, especially when implemented in hardware. The operation of these decoders requires a single large slow feedback loop. To restate the decryption process, the context model uses past decrypted data to create a context. The probability prediction module uses that context to create one probability class. The bitstream generator uses the probability class and the compressed data to determine whether the next bit is a likely or a unlikely result. The probability predictor module uses the dominant / inferior result to generate a result bit (and updates the probability predictor for the context). This result bit is used by the context model to update the history of past data.
All these steps are needed for the decoding of only one bit. Since the context model can prepare the next context only after waiting for the result to update its history, the decoding of the next bit must be delayed. It is desirable not to have to wait for the feedback loop to complete before decoding the next bit. In other words, it is desirable to decode more than one bit or codeword at a time in order to increase the decoding speed of compressed data.

【0009】エントロピー符号を用いる復号器のもう一
つの問題点は、可変長データを処理しなければならない
ことである。大部分のシステムは、復号すべき符号語が
可変長である。あるいは、他のシステムは可変長シンボ
ル(符号化されていないデータ)を符号化する。可変長
データを処理する時には、復号または符号化動作のため
のに正確な次データを用意するため、データをビットレ
ベルでシフトする必要がある。このデータストリームに
対するビットレベル操作に、高価かつ/または低速のハ
ードウエア及び/またはソフトウエアを必要とすること
がある。さらに、従来システムは、このシフト操作を、
復号器の性能を制限するところの時間的に厳しいフィー
ドバックループ内で行なう必要がある。並列化を使って
速度を上げることができるように、時間的に厳しいフィ
ードバックループからデータストリームのビットレベル
操作を排除することも有利であろう。
Another problem with decoders using entropy codes is that variable length data must be processed. Most systems have variable length codewords to be decoded. Alternatively, other systems encode variable length symbols (uncoded data). When processing variable length data, it is necessary to shift the data at the bit level in order to prepare the correct next data for decoding or encoding operations. Bit-level operations on this data stream may require expensive and / or slow hardware and / or software. In addition, the conventional system
It must be done in a time critical feedback loop that limits the decoder performance. It would also be advantageous to eliminate bit-level manipulation of the data stream from the time sensitive feedback loop so that parallelization can be used to increase speed.

【0010】本発明は、以上に述べた問題点に鑑みてな
されたものであり、その目的とするところは、改良され
た非損失性圧縮及び伸長の方法及び装置を提供するこ
と、また、データを並列に符号化及び復号するリアルタ
イム符号化装置及びリアルタイム復号装置を提供するこ
とにある。本発明の符号化装置と復号装置とで、リアル
タイム符号化とリアルタイム復号を高速/安価なハード
ウエアで実行する平衡(balanced)並列エントロピーシ
ステムができるが、これも本発明の目的に含まれる。本
発明の他の目的は、以下の説明によって明らかになろ
う。
The present invention has been made in view of the above-mentioned problems, and an object of the present invention is to provide an improved lossless compression and decompression method and apparatus, and data. It is an object of the present invention to provide a real-time encoding device and a real-time decoding device that perform parallel encoding and decoding. The encoding device and the decoding device of the present invention can provide a balanced parallel entropy system that executes real-time encoding and real-time decoding with high-speed / inexpensive hardware, and this is also included in the object of the present invention. Other objects of the present invention will be clarified by the following description.

【0011】[0011]

【課題を解決するための手段】本発明によれば、符号化
装置により生成された情報を復号するための復号装置を
持つ圧縮システムに用いるための符号化装置が提供され
る。本発明の符号化装置は、データに応じて符号語情報
を発生する符号化器を含む。この符号化装置はまた、符
号化器から出た符号語情報に応じて符号化データストリ
ームを生成する再配列ユニットを含む。この再配列ユニ
ットは、符号語を復号順に整列させるランカウント並べ
替えユニットと、可変長符号語を組合せて固定長のイン
ターリーブド(interleaved)語とし、その固定長イン
ターリーブド語を復号装置に要求される順序で出力する
ビットパックユニットを含む。なお、ここに述べた内容
は本発明に含まれる課題を解決するための手段の一部に
過ぎず、その全体について以下の説明中において詳細に
述べる。
According to the present invention, there is provided a coding device for use in a compression system having a decoding device for decoding information generated by the coding device. An encoding apparatus of the present invention includes an encoder that generates codeword information according to data. The encoding device also includes a rearrangement unit that produces an encoded data stream in response to the codeword information output from the encoder. This rearrangement unit combines a run-count rearrangement unit for arranging codewords in decoding order with a variable-length codeword into a fixed-length interleaved word, and the fixed-length interleaved word is requested by a decoding device. Includes bit pack units that output in the order specified. The contents described here are only a part of means for solving the problems included in the present invention, and the whole thereof will be described in detail in the following description.

【0012】[0012]

【発明の実施の形態】データの並列符号化及び並列復号
のための方法と装置について述べる。以下の説明におい
て、本発明の好適な実施例を完全に理解してもらうため
に、ビット数、符号化器数、具体的な確率値、データ種
類等々、様々な具体例が示される。しかし、当業者に
は、そのような具体例によらずに本発明を実施し得るこ
とが理解されよう。また、本発明をいたづらに難解にし
ないため、周知の回路類は詳細には示されず、ブロック
図の形で示される。
DETAILED DESCRIPTION OF THE INVENTION A method and apparatus for parallel encoding and decoding of data is described. In the following description, various specific examples such as the number of bits, the number of encoders, specific probability values, data types, etc. are shown in order to fully understand the preferred embodiments of the present invention. However, one of ordinary skill in the art will appreciate that the invention may be practiced without such embodiments. Also, well-known circuits are not shown in detail but are shown in block diagram form in order not to obscure the present invention.

【0013】以下の詳細説明のかなりの部分が、コンピ
ュータメモリ内のデータビットに対する操作のアルゴリ
ズム及び記号表現によって与えられる。これらのアルゴ
リズム記述及び表現は、データ処理技術分野の当業者に
よって、その研究の内容を他の当業者に対し最も効率的
に伝えるために用いられる手段である。あるアルゴリズ
ムがあり、それが概して、希望する結果に至る自己矛盾
のないステップ系列だと考えられるとしよう。これらの
ステップは、物理量の物理的処理を必要とするものであ
る。必ずという訳ではないが、通常、これらの物理量は
記憶、転送、結合、比較、その他処理が可能な電気的ま
たは磁気的信号の形をとる。これらの信号をビット、
値、要素、シンボル、文字、用語、数字等で表わすの
が、主に慣用上の理由から、時に都合がよいことが分か
っている。
Much of the following detailed description is provided by algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. Suppose there is an algorithm, which is generally thought of as a self-consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities. Usually, but not necessarily, these physical quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise processed. Bit these signals,
Representation of values, elements, symbols, letters, terms, numbers, etc., has proven convenient at times, primarily for conventional reasons.

【0014】しかしながら、これら用語や類似の用語は
全て、適切な物理量と関係付けられるべきであって、こ
れら物理量につけた便宜上のラベルに過ぎないというこ
とを心に留めるべきである。以下の説明から明らかなよ
うに、特に断わらない限り、”処理””演算””計
算””判定””表示”等々の用語を用いて論じること
は、コンピュータシステムのレジスタ及びメモリ内の物
理的(電子的)な量として表現されたデータを処理し
て、コンピュータシステムのメモリまたはレジスタ、同
様の情報記憶装置、情報伝送装置あるいは表示装置の内
部の同様に物理量として表現された他のデータへ変換す
る、コンピュータシステムあるいは同様の電子演算装置
の作用及びプロセスを指すものである。
However, it should be borne in mind that all of these terms and similar terms should be associated with the appropriate physical quantities and are merely convenient labels attached to these physical quantities. As will be apparent from the following description, discussions using terms such as "processing", "operations", "calculations", "judgments", "displays", and the like, unless otherwise specified, refer to physical ( Processes data expressed as electronic quantities and converts them into other data, also expressed as physical quantities, inside a memory or register of a computer system, a similar information storage device, an information transmission device or a display device. , Computer systems or similar electronic computing devices.

【0015】本発明はまた、本明細書に述べられた動作
を遂行する装置に関する。この装置は、必要な目的のた
めに専用に作られてもよいし、あるいは、汎用コンピュ
ータを内蔵プログラムにより選択的に駆動または再構成
したものでもよい。本明細書に提示されるアルゴリズム
及び表示は、本質的に、いかなる特定のコンピュータや
その他装置とも関係がない。様々な汎用マシンを本明細
書に教示したところに従ったプログラムと一緒に用いて
もよいし、あるいは、必要な方法のステップの実行のた
めにより特化した装置を作るほうが好都合であるかもし
れない。これら多様なマシンに要求される構造は以下の
説明より明らかになろう。さらに、本発明は、特定のプ
ログラミング言語と関連付けては説明されない。本明細
書において述べるように、本発明の教示するところを実
現するために、様々なプログラミング言語を用い得るこ
とが理解されるであろう。
The present invention also relates to apparatus for performing the operations herein. This device may be specially constructed for the required purposes, or it may be a general purpose computer selectively driven or reconfigured by a built-in program. The algorithms and displays presented herein are essentially unrelated to any particular computer or other apparatus. Various general purpose machines may be used with programs according to the teachings herein, or it may be convenient to create more specialized equipment for performing the steps of the required method. . The required structure for a variety of these machines will appear from the description below. Moreover, the present invention is not described in the context of a particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.

【0016】<並列エントロピーコーディング>本発明
は、並列エントロピーコーディングシステムを提供す
る。このシステムは、符号化装置と復号装置を含む。一
実施例では、符号化装置はリアルタイムでデータの符号
化を実行する。同様に、一実施例では、本発明の復号装
置はリアルタイムでデータの復号を実行する。このリア
ルタイム符号化装置とリアルタイム復号装置が一緒にな
って平衡(balanced)コーディング化システムを形作
る。
<Parallel Entropy Coding> The present invention provides a parallel entropy coding system. The system includes an encoder and a decoder. In one embodiment, the encoder performs the encoding of data in real time. Similarly, in one embodiment, the decoding device of the present invention performs the decoding of data in real time. The real-time encoder and the real-time decoder together form a balanced coding system.

【0017】本発明は、非損失性符号化データを並列に
復号するシステムを提供する。データは複数の復号資源
を用いて並列に復号される。複数の復号資源のそれぞれ
は、データストリームから復号すべきデータ(例えば符
号語)を割り当てられる。このデータストリームの割り
当てが復号資源が並行してデータを復号している間に素
早く行なわれ、データストリームは並列に復号される。
復号資源を効率的に利用できるようなデータの割り当て
を可能にするため、データストリームは順序付けされ
る。これはデータの並列化(parallelizing)と呼ばれ
る。このデータ順序付けにより、各復号資源はコンテキ
ストモデルからのフィードバックを待たずに、符号化デ
ータの任意のものまたは全部の復号が可能になる。
The present invention provides a system for decoding lossless encoded data in parallel. The data is decoded in parallel using multiple decoding resources. Data (for example, codeword) to be decoded from the data stream is assigned to each of the plurality of decoding resources. This data stream allocation is done quickly while the decoding resources are decoding data in parallel, and the data streams are decoded in parallel.
The data streams are ordered to allow allocation of data so that decoding resources can be efficiently utilized. This is called parallelizing the data. This data ordering allows each decoding resource to decode any or all of the encoded data without waiting for feedback from the context model.

【0018】図2は、従来技術の低速フィードバックル
ープを持たない本発明の復号システムを示す。入力バッ
ファ204は、符号化データ(すなわち符号語)と復号
器205からのフィードバック信号を受け取り、符号化
データを予め定められた順序で(例えばコンテキストビ
ン順に)本発明の復号器205へ供給し、復器205は
その符号化データを復号する。復号器205は、複数の
復号器(205A,205B,205C,....)を
含んでいる。
FIG. 2 shows the decoding system of the present invention without the prior art slow feedback loop. The input buffer 204 receives the encoded data (that is, the codeword) and the feedback signal from the decoder 205, and supplies the encoded data to the decoder 205 of the present invention in a predetermined order (for example, in the context bin order), The decoder 205 decodes the encoded data. The decoder 205 includes a plurality of decoders (205A, 205B, 205C, ...).

【0019】一実施例では、復号器205A,205
B,205C,...はそれぞれ、1グループのコンテ
キストに対するデータを与えられる。復号器205内の
各復号器は、そのグループのコンテキスト中のすべての
コンテキストビンに対する符号化データを入力バッファ
204より与えられる。このデータを使って、各復号器
205A,205B,205C,...は、そのグルー
プのコンテキストビンに対する復号データを生成する。
コンテキストモデルは、符号化データを特定のグループ
のコンテキストビンに関連付ける必要はない。
In one embodiment, the decoders 205A, 205
B, 205C ,. . . Are each given data for a group of contexts. Each decoder in the decoder 205 is provided by the input buffer 204 with encoded data for all context bins in the context of the group. Using this data, each of the decoders 205A, 205B, 205C ,. . . Produces decoded data for the context bins of the group.
The context model need not associate encoded data with a particular group of context bins.

【0020】復号器205により、復号データは復号デ
ータ記憶装置205(207A,207B,207
C,...)へ送られる。なお、復号データ記憶装置2
07は、符号化データでも未符号化データでもない、ラ
ンカウント(run count)のような中間データを格納す
るかもしれない。この場合、復号データ記憶装置207
は、コンパクトではあるがエントロピー符号化されてい
ない形でデータを格納する。
The decrypted data is stored in the decrypted data storage device 205 (207A, 207B, 207) by the decoder 205.
C ,. . . ) Is sent to. The decrypted data storage device 2
07 may store intermediate data, such as run count, which is neither coded nor uncoded data. In this case, the decoded data storage device 207
Stores data in a compact but non-entropy coded form.

【0021】独立に動作するコンテキストモデル206
は、復号データ記憶装置207へフィードバック信号を
送り、このフィードバック信号に応答して復号データ記
憶装置207(207A,207B,207
C,...)から出される、以前に復号されたデータを
受け取るように接続されている。したがって、2つのフ
ィードバックループがある。1つは復号器205と入力
バッファ204の間にあるもので、もう1つはコンテキ
ストモデル206と復号データ記憶装置207の間にあ
るものである。大きなフィードバックループが除去され
たので、復号器205内の復号器(205A,205
B,205C,...)は、関係する符号語を入力バッ
ファ204から受け取るとすぐに復号することができ
る。
Independently operating context model 206
Sends a feedback signal to the decoded data storage device 207, and in response to this feedback signal, the decoded data storage device 207 (207A, 207B, 207)
C ,. . . ) Is connected to receive the previously decoded data. Therefore, there are two feedback loops. One is between the decoder 205 and the input buffer 204, and the other is between the context model 206 and the decoded data storage 207. Since the large feedback loop is removed, the decoders (205A, 205A) in the decoder 205 are removed.
B, 205C ,. . . ) Can be decoded as soon as the relevant codeword is received from the input buffer 204.

【0022】コンテキストモデルは、復号システムの記
憶部分を提供し、1つのデータセット(例えば画像)を
その記憶に基づいて様々なカテゴリー(例えばコンテキ
ストビン)に分ける。本発明においては、これらのコン
テキストビンは独立した順序データセット(ordered se
ts of data)とみなされる。一実施例では、コンテキス
トビンのグループ毎に独自の確率予測モデルを持ち、各
コンテキストビンは独自の状態(state)を持つ(確率
予測モデルは共用される)。したがって、コンテキスト
ビン毎に異なった確率予測モデル及び/またはビットス
トリームジェネレータを使ってもよい。
The context model provides the storage portion of the decoding system and divides a data set (eg, image) into various categories (eg, context bins) based on its storage. In the present invention, these context bins are independent segregated ordered datasets.
ts of data). In one embodiment, each group of context bins has its own probability prediction model, and each context bin has its own state (probability prediction model is shared). Therefore, different probability prediction models and / or bitstream generators may be used for each context bin.

【0023】このように、データは順序付けされ、すな
わちた並列化され、データストリームからのデータはそ
れぞれの復号器に割り当てられて復号される。
In this way, the data is ordered, ie, parallelized, and the data from the data stream is assigned to each decoder for decoding.

【0024】<旧来のエントロピーコーディングモデル
への並列化(parallelism)の付加>データストリーム
を並列化(parallelize)するために、データはコンテ
キスト、確率、タイリング(tiling)、符号語シーケン
ス(符号語に基づいた)等のいずれに従って分割されて
もよい。符号化データストリームの再配列は、並列化手
法、すなわちデータまたは確率を並列化するために別の
場所で用いられる方法から独立している。コンテキスト
モデル(CM)により区分されたデータを与えられる、
本発明の符号化システムの並列符号化装置部分が図3に
示されている。
<Addition of parallelism to the old entropy coding model> In order to parallelize the data stream, the data is context, probability, tiling, codeword sequence (codeword sequence). Based on any of the above). The rearrangement of the encoded data stream is independent of the parallelization technique, ie the method used elsewhere to parallelize data or probabilities. Given the data segmented by the context model (CM),
The parallel encoder portion of the encoding system of the present invention is shown in FIG.

【0025】図3において、コンテキスト依存(contex
t dependent)並列符号化装置部分はコンテキストモデ
ル(CM)214、確率予測モジュール(PEM)21
5〜217、ビットストリームジェネレータ(BG)2
18〜220からなる。CM214は入力データを受け
取るように接続されている。CM214はPEM215
〜217にも接続されている。PEM215〜217は
それぞれ、符号ストリーム1,2,3をそれぞれ出力す
るBG218〜220にも接続されている。PEMとB
Gの各ペアは1つの符号化器を構成する。したがって、
ここに示されている並列符号化装置は3つの符号化器を
持っている。並列の符号化器が3個だけ示されている
が、任意数の符号化器を用いて構わない。
In FIG. 3, context-dependent (contex
t dependent) The parallel encoding device part includes a context model (CM) 214 and a probability prediction module (PEM) 21.
5 to 217, bit stream generator (BG) 2
It consists of 18 to 220. CM 214 is connected to receive input data. CM214 is PEM215
~ 217 are also connected. The PEMs 215 to 217 are also connected to BGs 218 to 220, which output the code streams 1, 2, and 3, respectively. PEM and B
Each pair of G constitutes one encoder. Therefore,
The parallel encoder shown here has three encoders. Although only three encoders in parallel are shown, any number of encoders may be used.

【0026】CM214は、在来のCMと同じ方法でデ
ータストリームを様々なコンテキストに分け、複数のス
トリームを並列ハードウエア符号化資源へ送る。個々の
コンテキストまたはコンテキストグループは、別々の確
率予測モジュール(PEM)215〜217及びビット
ジェネレータ(BG)218〜220に割り当てられ
る。
The CM 214 splits the data stream into various contexts in the same manner as a conventional CM and sends multiple streams to parallel hardware coding resources. Individual contexts or groups of contexts are assigned to separate Probability Prediction Modules (PEMs) 215-217 and Bit Generators (BGs) 218-220.

【0027】図4は、本発明の復号システムの復号器部
分の一実施例のブロック図である。図4において、BG
221〜223、PEM224〜226及びCM227
を持つコンテキスト依存の並列復号装置が示されてい
る。符号ストリーム1〜3はBG221〜223にそれ
ぞれ接続される。BG221〜223はそれぞれPEM
223〜226にも接続されている。PEM224〜2
26はそれぞれ、復元した入力データを出力するCM2
27に接続されている。入力は、符号ストリーム1〜3
として示されているいくつかの符号ストリームから到来
する。それぞれのPEMとBGのペアに1つの符号スト
リームが割り当てられる。BG221〜223はそれぞ
れ、バイナリデシジョンが優勢状態であるか否かを表わ
す1ビットを返し、PEM224〜226はそのビット
を復号ビット(例えばバイナリデシジョン)を返すため
に用いる。PEM224〜226はそれぞれBG221
〜223の1つと関係付けられ、その入力符号データか
らデータストリームを生成するためにどの符号を用いる
べきか指示する。CM227は、ビットストリームジェ
ネレータから出力される復号ビットを適当な順序で選択
してオリジナルデータを再生することにより、復号デー
タストリームを生成する。このように、CM227は適
当なPEMとBGから伸長データビットを得るが、実際
には、そのデータをオリジナルの順序に並べ替える。な
お、このデザインのための制御は、データストリームと
逆の向きに流れる。BGとPEMはデータをCM227
がそれを必要とする前に復号し、CM227より1ビッ
ト以上先行し続ける。あるいは、CM227は、1つの
BG及びPEMに1ビットを要求し(受け取らない
が)、次に、その初めに要求したビットを利用する前に
別のBG及びPEMに1ビット以上を要求する。
FIG. 4 is a block diagram of one embodiment of the decoder portion of the decoding system of the present invention. In FIG. 4, BG
221-223, PEM224-226 and CM227.
A context-dependent parallel decoding device with is shown. The code streams 1 to 3 are connected to the BGs 221 to 223, respectively. BG221-223 are PEMs, respectively
It is also connected to 223-226. PEM224-2
26 is a CM2 that outputs the restored input data
It is connected to 27. Inputs are code streams 1-3
Comes from several codestreams shown as One code stream is assigned to each PEM and BG pair. Each of the BGs 221 to 223 returns one bit indicating whether or not the binary decision is dominant, and the PEMs 224 to 226 use the bit to return a decoded bit (for example, binary decision). PEM224 to 226 are BG221, respectively.
~ 223 to indicate which code should be used to generate a data stream from its input code data. The CM 227 generates a decoded data stream by selecting the decoded bits output from the bitstream generator in an appropriate order and reproducing the original data. Thus, CM 227 obtains the decompressed data bits from the appropriate PEM and BG, but actually rearranges the data in the original order. Note that the control for this design flows in the opposite direction to the data stream. BG and PEM CM227 data
Will decode it before it needs it and will continue to lead CM227 by one bit or more. Alternatively, CM 227 requests (but does not receive) one bit from one BG and PEM, and then requests one or more bits from another BG and PEM before utilizing its originally requested bit.

【0028】図4に示した構成は、PEMとBGを密に
結合するよう設計されている。IBM社のQ−コーダ
は、PEMとBGを密結合したコーダの好例である。P
EMとBGの間のローカルなフィードバックループは、
システム性能を根本的に制限するものではない。
The configuration shown in FIG. 4 is designed to tightly couple the PEM and BG. The IBM Q-coder is a good example of a coder in which PEM and BG are tightly coupled. P
The local feedback loop between EM and BG is
It does not fundamentally limit system performance.

【0029】別の設計では、PEMがデータを区分して
並列の複数のBGユニットへ送るかもしれない。そうす
れば、CMとPEMは1個だけになになろう、そしてB
Gは並列接続される。適応的ハフマンコーディング及び
有限状態マシンコーディングを、このようにして利用し
てもよい。
In another design, the PEM may partition the data and send it to multiple BG units in parallel. Then there would be only one CM and PEM, and B
G is connected in parallel. Adaptive Huffman coding and finite state machine coding may be utilized in this way.

【0030】データを区分して並列のBGへ送るPEM
を用いた同様の復号システムが図5に示されている。こ
の場合、確率クラスは並列に処理され、各ビットストリ
ームジェネレータは1つの特定の確率クラスを割り当て
られ、その結果の情報を受け取る。図5において、符号
化データストリーム1〜3は複数のビットストリームジ
ェネレータ(BG232,BG233,BG23
4,...)の1つに接続され、これらビットストリー
ムジェネレータはそれをを受け取るように接続されてい
る。各ビットストリームジェネレータはPEM235に
接続されている。PEM235はCM236にも接続さ
れている。このような構成において、各ビットストリー
ムジェネレータは符号化データを復号し、復号の結果は
PEM235によって(CM236によるのではない)
選択される。各ビットストリームジェネレータは1つの
確率クラスに関連した情報源からの符号化データを受け
取る(すなわち、符号化データはどのコンテキストビン
からも来る)。PEM235は確率クラスによってビッ
トストリームジェネレータを選択する。この確率クラス
は、CM236によってPEM235に与えられたコン
テキストビンにより指示される。このようにして、確率
クラスを並列処理することにより復号データが生成され
る。
PEM for partitioning data and sending to parallel BGs
A similar decoding system using is shown in FIG. In this case, the probability classes are processed in parallel and each bitstream generator is assigned one specific probability class and receives the resulting information. In FIG. 5, encoded data streams 1 to 3 are a plurality of bit stream generators (BG232, BG233, BG23).
4 ,. . . ), And these bitstream generators are connected to receive it. Each bitstream generator is connected to the PEM 235. The PEM 235 is also connected to the CM 236. In such a configuration, each bitstream generator decodes the encoded data and the result of the decoding is by the PEM 235 (not by the CM 236).
Selected. Each bitstream generator receives encoded data from sources associated with one probability class (ie, encoded data comes from any context bin). The PEM 235 selects the bitstream generator by probability class. This probability class is dictated by the context bin provided by CM 236 to PEM 235. In this way, the decoded data is generated by processing the probability classes in parallel.

【0031】本発明の並列復号システムは多くの実施形
態がある。一実施例では、複数のコンテキストビンに対
応した符号化ストリームを、各種コーダの要求により順
序付けられた1本のストリームにインターリーブするこ
とができる。本発明の一実施例では、符号化データが1
本のストリームとして復号器へ送られるとしても各コー
ダにコンスタントにデータが供給されるように、符号化
データは順序付けられる。なお、本発明は、画像データ
を初めとするあらゆる種類のデータに有効である。
The parallel decoding system of the present invention has many embodiments. In one embodiment, the coded streams corresponding to multiple context bins can be interleaved into one stream ordered by the demands of various coders. In one embodiment of the present invention, the encoded data is 1
The encoded data is ordered so that each coder is constantly supplied with data, even if sent to the decoder as a stream of books. The present invention is effective for all kinds of data including image data.

【0032】集積回路により安価に複製可能な小型簡易
な符号化器を使用し、符化データを並列に高速復号する
ことができる。一実施例では、符号化器はフィールドプ
ログラマブルゲートアレイ(FPGA)チップや標準セ
ル特定用途向け集積回路(ASCIC)チップを用いて
ハードウエアで実現される。並列化手法と単純なビット
ストリームジェネレータを組合せることにより、圧縮効
率を従来の復号システムと同等以上にしつつ、従来の復
号器を超えるスピードで符号化データの復号を行なうこ
とが可能になる。
It is possible to decode coded data in parallel at high speed by using a small and simple encoder which can be inexpensively copied by an integrated circuit. In one embodiment, the encoder is implemented in hardware using a field programmable gate array (FPGA) chip or standard cell application specific integrated circuit (ASCIC) chip. By combining the parallelization method and the simple bit stream generator, it becomes possible to decode the encoded data at a speed higher than that of the conventional decoder while making the compression efficiency equal to or higher than that of the conventional decoding system.

【0033】<複数データストリームのチャネル順序付
け>システムの性能に影響する、様々な設計上の問題点
及び課題がある。そのいくつかについて以下に述べる。
しかし、図3,図4(及び図5)に示した実施例は複数
の符号ストリームを用いる。この実施例に適合する並列
チャネルのシステムが考えられる。すなわち複数の電話
回線、ディスクドライブの複数のヘッド等々である。あ
る種の用途の場合、1チャネルだけが利用可能または好
都合である。実際、複数チャネルが要求されると、各符
号ストリームがバースト的であるために帯域幅の利用率
が悪いかもしれない。
Channel Ordering of Multiple Data Streams There are various design issues and challenges that affect system performance. Some of them are described below.
However, the embodiments shown in FIGS. 3 and 4 (and FIG. 5) use multiple code streams. Parallel channel systems compatible with this embodiment are envisioned. That is, multiple telephone lines, multiple disk drive heads, and so on. For certain applications, only one channel is available or convenient. In fact, when multiple channels are required, bandwidth utilization may be poor because each codestream is bursty.

【0034】一実施例では、符号ストリームは連結され
て連続的に復号器へ送られる。プレフィスヘッダ(pref
ace header)は各ストリームの開始ビット位置を指すポ
インタを含んでいる。図6は、このようなデータの構成
の一実施例を示している。図6において、3つのポイン
タ301〜303は、連結された符号ストリーム1,
2,3の開始位置をそれぞれ指示する。完全な圧縮デー
タファイルが復号器のためのバッファに得られる。符号
語は、必要とされる時に、適切なポインタを経由して適
切な位置より取り出される。そして、そのポインタは当
該符号ストリームの次の符号語を指すように更新され
る。
In one embodiment, the codestreams are concatenated and sent continuously to the decoder. Prefix header (pref
ace header) contains a pointer to the starting bit position of each stream. FIG. 6 shows an example of the structure of such data. In FIG. 6, three pointers 301 to 303 indicate the concatenated code streams 1,
Indicate the start positions of 2 and 3. The complete compressed data file is available in the buffer for the decoder. The codeword is retrieved from the appropriate location via the appropriate pointer when needed. Then, the pointer is updated to point to the next code word of the code stream.

【0035】なお、この方法は、復号器において、ま
た、実際的には符号化器においても、1つの符号化フレ
ーム全体を記憶しておく必要がある。リアルタイムシス
テムまたはバースト性の小さい(less bursty)データ
フローが必要とされるときには、符号化器及び復号器の
両方において2つのフレームバッファがバンキング(ba
nking)のために使われるかもしれない。
In this method, it is necessary to store one entire encoded frame in the decoder, and actually in the encoder. When a real-time system or a less bursty data flow is needed, two frame buffers in both the encoder and the decoder are banked (ba).
nking).

【0036】<データ順序と符号語順序>復号器は、あ
る一意に決まる順序で符号語を復号することに注目され
たい。並列符号化の場合、符号ストリームに対する要求
の順序は一意に定まる。よって、符号化器において並列
符号ストリームの符号語を正しい順序でインターリーブ
することができるならば、単一の符号ストリームで間に
合うことになる。符号語はジャスト・イン・タイム(ju
st-in-time)ベースで同じ順序で復号器へ渡される。符
号化器では、復号器のモデルが符号語の順序を決定して
符号語を単一のストリームにパック(pack)する。この
モデルは実際の復号器のこともある。
<Data Order and Codeword Order> It should be noted that the decoder decodes codewords in a uniquely determined order. In the case of parallel encoding, the order of requests for code streams is uniquely determined. Thus, if the encoder can interleave the codewords of the parallel codestream in the correct order, a single codestream will suffice. The codeword is just in time (ju
It is passed to the decoder in the same order on a st-in-time) basis. At the encoder, the model of the decoder determines the order of the codewords and packs the codewords into a single stream. This model may be the actual decoder.

【0037】データが可変長である場合、並列復号要素
へのデータの分配に関し1つの問題が生じる。可変長符
号語のストリームのアンパック(unpacking)のために
は、ビットシフタを使って符号語を整列しなければなら
ない。ビットシフタは、ハードウエアで実現した時に、
しばしば高価かつ/または低速である。ビットシフタの
制御は個々の符号語のサイズに依存する。この制御のフ
ィードバックループは可変長シフト操作の高速実行の妨
げになる。複数の復号器に単一のストリームを供給する
ことの効果は、そのストリームのアンパック処理が複数
の復号器に追従するには速度が不十分な単一のビットシ
フタで実行される場合には、発揮させることができな
い。
When the data is of variable length, one problem arises with the distribution of the data to the parallel decoding elements. For unpacking a stream of variable length codewords, the codewords must be aligned using bit shifters. Bit shifter, when realized by hardware,
Often expensive and / or slow. The control of the bit shifter depends on the size of individual codewords. The feedback loop of this control impedes fast execution of variable length shift operations. The effect of supplying a single stream to multiple decoders works well if the unpacking of that stream is performed with a single bit shifter that is not fast enough to keep up with multiple decoders. I can't let you do it.

【0038】本発明において提案される解決法は、符号
化データを並列の復号器へ分配する問題と、復号のため
の可変長符号語の整列とを切り離す。それぞれ独立した
符号ストリーム中の符号語は、インターリーブド(inte
rleaved)語と呼ぶところの固定長語へパックされる。
チャネルの復号器端で、固定配線の高速データラインと
単純な制御回路によって、これらインターリーブド語を
並列の復号器ユニットへ分配することができる。
The solution proposed in the present invention separates the problem of distributing encoded data to parallel decoders from the alignment of variable length codewords for decoding. Codewords in independent codestreams are interleaved (inte
rleaved) packed into fixed-length words, called words.
At the decoder end of the channel, these interleaved words can be distributed to parallel decoder units by hardwired high speed data lines and simple control circuitry.

【0039】インターリーブド語の長さを符号語の最大
長より長くするのが、最低でも1符号語を完成するに足
るビットが各インターリーブド語に含まれるので都合が
よい。1つのインターリーブド語は符号語と符号語の一
部を含む。図7は、一例としての1組の並列符号ストリ
ームのインターリーブ操作を示す。
It is convenient to make the length of the interleaved word longer than the maximum length of the codeword, because each interleaved word contains at least enough bits to complete one codeword. One interleaved word includes a codeword and a part of the codeword. FIG. 7 illustrates an example interleaving operation of a set of parallel code streams.

【0040】これらの語は復号器側の要求に従ってイン
ターリーブされる。個々の独立した復号器は1つのイン
ターリーブド語の全体を受け取る。ビットシフト動作が
各復号器で局所的に行なわれることにより、システムの
並列性を維持する。なお、図7において、各インターリ
ーブド語中の最初の符号語は、符号ストリームの組の中
の残っている符号語の中の最低番号の符号語である。例
えば、最初のインターリーブド語は符号ストリーム1か
ら生じ、最低番号の符号語(すなわち#1)から始ま
る。その後に、符号ストリーム2の最初のインターリー
ブド語が続き、次に符号ストリーム3の最初のインター
リーブド語が続く。しかし、次の最低番号の符号語は、
既に順序付けされたインターリーブド語中に入り切らな
かった#7である。したがって、ストリームの次の語
は、符号ストリーム2の2番目のインターリーブド語で
ある。
These words are interleaved according to the requirements of the decoder. Each independent decoder receives the whole of one interleaved word. The bit-shift operation is performed locally in each decoder to maintain system parallelism. In FIG. 7, the first codeword in each interleaved word is the lowest codeword among the remaining codewords in the codestream set. For example, the first interleaved word originates from codestream 1 and starts with the lowest numbered codeword (ie, # 1). This is followed by the first interleaved word of codestream 2 and then the first interleaved word of codestream 3. However, the next lowest codeword is
It was # 7 that didn't fit into the interleaved words that were already ordered. Therefore, the next word in the stream is the second interleaved word of codestream 2.

【0041】別の実施例においては、次のインターリー
ブド語の組(例えば、ストリーム1の符号語#8から始
まる符号語、ストリーム2の#7から始まる符号語、ス
トリーム3の#11から始まる符号語)がインターリー
ブド符号ストリームに挿入される順序は、その前のイン
ターリーブド語の組(例えばストリーム1の符号語#1
から始まる符号語、ストリーム2の符号語#2から始ま
る符号語、ストリーム3の符号語#4から始まる符号
語)の最初の符号語に基づき、先頭符号語が最低の番号
を持つインターリーブド語より先頭符号語が最高の番号
を持つインターリーブド語へと向かう順とされる。した
がって、この場合、符号語#1から始まるインターリー
ブド語が最初であったから、ストリーム1の次のインタ
ーリーブド語が次にインターリーブドストリームに挿入
される2番目のインターリーブド語のグループの最初の
インターリーブド語であり、その後にストリーム2の次
のインターリーブド語が続き、さらにストリーム3の次
のインターリーブド語が続く。なお、2番目のインター
リーブド語のグループがインターリーブドストリームに
挿入された後、ストリーム2の次のインターリーブド語
が次にストリームに挿入されるインターリーブド語であ
ろう。というのは、符号語#7は、2番目のインターリ
ーブド語の組の中で最低番号の符号語であるからである
(その後にストリーム1の符号語#8が続き、そしてス
トリーム3の符号語#11が続く)。
In another embodiment, the next set of interleaved words (eg, codeword starting with codeword # 8 of stream 1, codeword starting with # 7 of stream 2, code starting with # 11 of stream 3). The order in which the words are inserted into the interleaved codestream is that the preceding set of interleaved words (eg, codeword # 1 of stream 1).
From the interleaved word having the lowest number, based on the first codeword of the codeword starting with, the codeword starting with codeword # 2 of stream 2, and the codeword starting with codeword # 4 of stream 3 The leading codeword is ordered towards the interleaved word with the highest number. Therefore, in this case, since the interleaved word starting from codeword # 1 was first, the next interleaved word of stream 1 is the first interleaved group of the second interleaved word that is then inserted into the interleaved stream. The next interleaved word of stream 2, followed by the next interleaved word of stream 3. It should be noted that after the second group of interleaved words is inserted in the interleaved stream, the next interleaved word in stream 2 will be the interleaved word next inserted in the stream. This is because codeword # 7 is the lowest codeword in the second set of interleaved words (followed by codeword # 8 of stream 1 and codeword of stream 3). # 11 continues).

【0042】実際の復号器をデータストリーム用のモデ
ルとして使用すれば、インターリーブドストリームを生
成するためのあらゆる設計上の選択と遅れの大半は無用
になる。実際の復号器を使用しても、符号化器と復号器
の両方を持つデュプレックスシステムの場合には、たい
したコストではない。なお、このことは、一意的な順序
で使われる可変長の(または様々なサイズの)データ語
の並列の組すべてについて一般的に言えることである。
Using the actual decoder as a model for the data stream renders most of the design choices and delays for producing an interleaved stream useless. Using the actual decoder is not of great cost in the case of a duplex system with both encoder and decoder. Note that this is generally true for all parallel sets of variable-length (or varying size) data words used in a unique order.

【0043】<並列復号のための符号とビットストリー
ムジェネレータの種類>本発明は、Q−コーダやB−コ
ーダ等の既存のコーダを、並列に接続されるビットスト
リームジェネレーション要素として利用することができ
る。しかしながら、その他の符号及び符号化器を使用し
てもよい。本発明に用いられるコーダとそれに関連した
符号は単純なものである。
<Code for Parallel Decoding and Kind of Bitstream Generator> The present invention can use an existing coder such as a Q-coder or B-coder as a bitstream generation element connected in parallel. . However, other codes and encoders may be used. The coders and associated codes used in the present invention are simple.

【0044】本発明においては、Q−コーダに使われる
算術符号やB−コーダに使われるマルチステート(mult
i-state)符号等の複雑な符号でなく、単純な符号を使
うことにより、いくつかの利点を得られる。単純な符号
は、複雑な符号に比べ、ハードウエア構成が非常に高
速、単純であり、かつ必要なシリコンが少ないという利
点がある。
In the present invention, the arithmetic code used in the Q-coder and the multi-state (mult) used in the B-coder.
By using a simple code rather than a complicated code such as i-state) code, some advantages can be obtained. A simple code has the advantages over a complex code in that the hardware configuration is much faster, simpler and requires less silicon.

【0045】本発明のもう一つの利点は符号化効率を改
善できることである。有限量の状態情報を使う符号は、
シャノンのエントロピー限界を全ての確率について満足
することはできない。従来から知られているハードウエ
アで実現されたコーダで、単一のビットストリームジェ
ネレータで多数の確率またはコンテキストを処理できる
ものには、符号化効率を低下させるいくつかの制約があ
る。多数のコンテキストまたは確率クラスのために必要
なそれら制約を取り除けば、シャノンのエントロピー限
界の満足にさらに接近する符号の使用が可能になる。
Another advantage of the present invention is that it can improve coding efficiency. A code that uses a finite amount of state information is
Shannon's entropy limit cannot be satisfied for all probabilities. Conventionally known hardware-implemented coders that can handle multiple probabilities or contexts with a single bitstream generator have some limitations that reduce coding efficiency. Removing those constraints required for multiple contexts or probability classes allows the use of codes that are closer to meeting the Shannon entropy bounds.

【0046】<R−符号>本発明の一実施例に使用され
る符号(及びコーダ)は、R−符号と呼ばれる。R−符
号は、可変数の同一の入力シンボルを1つの符号語に変
換する適応的符号である。一実施例では、多くの異なっ
た確率を単一の復号器の設計で処理できるようにR−符
号はパラメタライズ(parameterize)される。さらに、
本発明のR−符号は、単純も高速なハードウエアで復号
できる。
<R-Code> The code (and coder) used in one embodiment of the present invention is called an R-code. The R-code is an adaptive code that transforms a variable number of identical input symbols into one codeword. In one embodiment, the R-code is parameterized so that many different probabilities can be handled with a single decoder design. further,
The R-code of the present invention can be decoded simply by high-speed hardware.

【0047】本発明において、R−符号はR−コーダに
より符号化または復号を行なうために用いられる。一実
施例では、R−コーダはビットストリームジェネレータ
と確率予測モジュールを組み合わせたものである。例え
ば、図1において、1つのR−コーダは、確率予測モジ
ュール102とビットストリームジェネレータ103の
組合せと、確率予測モジュール105とビットストリー
ムジェネレータ106の組合せとを含むかもしれない。
In the present invention, the R-code is used to perform encoding or decoding by the R-coder. In one embodiment, the R-coder is a combination of a bitstream generator and a probability prediction module. For example, in FIG. 1, one R-coder may include a combination of probability prediction module 102 and bitstream generator 103 and a combination of probability prediction module 105 and bitstream generator 106.

【0048】符号語は最高確率(最尤)シンボル(MP
S)のラン(run)を表わす。MPSは確率が50%を
超えるバイナリデシジョンの結果を表わす。他方、最低
確率シンボル(LPS)は確率が50%未満のバイナリ
デシジョンの結果を表わす。なお、2つの結果が等確率
の時に、そのどちらをMPSまたはLPSと呼ぶかは、
符号化器と復号器の両方が同じ呼び方をする限り、重要
なことではない。圧縮ファイルに結果として得られるビ
ット系列を、あるMAXRUNと呼ばれるパラメータに
関連して図49に示す。
The code word is a maximum probability (maximum likelihood) symbol (MP
S) represents the run. MPS represents the result of a binary decision with a probability of greater than 50%. The lowest probability symbol (LPS), on the other hand, represents the result of a binary decision with a probability of less than 50%. When two results have equal probabilities, which one is called MPS or LPS?
As long as both the encoder and decoder make the same name, it is not important. The resulting bit sequence in the compressed file is shown in FIG. 49 in relation to a parameter called MAXRUN.

【0049】図49に示したテーブル1の内容に関連し
て説明する。符号化するには、ラン中のMPSの個数が
簡単なカウンタによってカウントされる。そのカウント
がMAXRUNカウント値と等しいときに、0符号語が
符号ストリームに送出され、そしてカウンタはリセット
される。LPSが見つかったときには、1つの1に続け
て、そのLPSの前のMPSシンボル数の固有の記述で
あるビット群Nが符号ストリームへ送出される(なお、
ランレングスを記述するビット群Nの割り当て方は色々
ある)。再び、カウンタはリセットされる。なお、Nの
ために必要なビット数はMAXRUNの値に依存する。
また、符号語の1の補数が使用されてもよい。
Description will be made in relation to the contents of the table 1 shown in FIG. To encode, the number of MPS in the run is counted by a simple counter. When that count equals the MAXRUN count value, a 0 codeword is sent to the codestream and the counter is reset. When the LPS is found, a bit group N, which is a unique description of the number of MPS symbols before the LPS, is sent to the code stream following the one 1 (note that
There are various ways of assigning the bit group N that describes the run length). Again, the counter is reset. The number of bits required for N depends on the value of MAXRUN.
Also, the one's complement of the codeword may be used.

【0050】復号するには、符号ストリームの最初のビ
ットが0のときには、MUXRUNの値がMPSカウン
タにセットされ、LPS表示がクリアされる。そして、
その0のビットは捨てられる。最初のビットが1のとき
には、それに続くビットを調べてビット群Nを抽出し、
適切なカウント(N)がMPSカウンタにセットされ、
LPS表示がセットされる。そして、1N符号語を含む
符号ストリームビット群は捨てられる。
For decoding, when the first bit of the code stream is 0, the value of MUXRUN is set in the MPS counter and the LPS indication is cleared. And
The 0 bit is discarded. When the first bit is 1, the subsequent bits are examined to extract the bit group N,
An appropriate count (N) is set in the MPS counter,
LPS display is set. Then, the code stream bit group including the 1N code word is discarded.

【0051】R−符号は図49のテーブル1に示した規
則によりつくられる。なお、あるR−符号Rx(k)の定義
はMAXRUNによって定められる。例えば Rx(k)のMAXRUN=X・2k-1 である。よって、 R2(k)のMAXRUN=2・2k-1 R3(k)のMAXRUN=2・2k-1 等々である。
The R-code is created according to the rules shown in Table 1 of FIG. A certain R-code Rx (k) is defined by MAXRUN. For example, MAXRUN of Rx (k) = X · 2 k-1 . Therefore, MAXRUN of R2 (k) = 2 · 2 k−1 , MAXRUN of R3 (k) = 2 · 2 k−1, and so on.

【0052】なお、R−符号はGolomb符号のサブ
セットである。また、Rice符号はR2(*)符号しか用
いない。本発明のR−符号はR2(k)とR3(k)を両方用い
ることができ、また、望むならば他のRn(k)符号も用い
ることができる。一実施例では、R2(k)符号とR3(k)符
号が用いられる。なお、n=2または任意の奇数のnに
対するRn(すなわちR2,R3,R5,R7,R9,R11,
R13,R15)が存在する。一実施例では、R2(K)符号に
ついてランカウント(run count)rがNで符号化され
る。すなわち、ランカウントrはkビットで記述され、
したがって1Nはk+1ビットで表現される。また、一
実施例では、R3(k)符号について、ビット群Nはn<2
(k-1)であるかn≧2(k-1)であるかを示す1ビットと、
ランカウントrを示すk−1ビットまたはkビットを含
むことができ、したがって、変数Nは合計kビットまた
はk+1ビットで表現される。他の実施例では、Nの1
の補数が符号語に使われるかもしれない。この場合、M
PSは0の多い符号ストリームを発生する傾向があり、
LPSは1の多い符号ストリームを発生しがちである。
The R-code is a subset of the Golomb code. The Rice code uses only R2 (*) code. The R-code of the present invention can use both R2 (k) and R3 (k), and other Rn (k) codes can be used if desired. In one embodiment, R2 (k) and R3 (k) codes are used. Note that Rn for n = 2 or any odd n (that is, R2, R3, R5, R7, R9, R11,
R13, R15) are present. In one embodiment, the run count r is encoded with N for the R2 (K) code. That is, the run count r is described by k bits,
Therefore, 1N is represented by k + 1 bits. Also, in one embodiment, for the R3 (k) code, the bit group N is n <2.
1 bit indicating whether the (k-1) a is either n ≧ 2 (k-1),
It may contain k-1 bits or k bits indicating the run count r, so the variable N is represented by a total of k bits or k + 1 bits. In another embodiment, 1 of N
The complement of may be used for the codeword. In this case, M
PS tends to generate codestreams with many 0's,
LPS tends to generate codestreams with many ones.

【0053】図50のテーブル2、図51のテーブル
3、図52のテーブル4及び図53のテーブル5は、本
発明の一実施例に使用される一部の効率的なR−符号を
示している。なお、本発明において他のランレングス符
号も使用してよい。R2(2)符号の代替ランレングス符号
の例が図54のテーブル6に示されている。図55のテ
ーブル7と図56のテーブル8は一実施例で用いられる
符号の例を示す。
Table 2 of FIG. 50, Table 3 of FIG. 51, Table 4 of FIG. 52 and Table 5 of FIG. 53 show some efficient R-codes used in one embodiment of the present invention. There is. It should be noted that other run length codes may be used in the present invention. An example of the alternative run length code of the R2 (2) code is shown in Table 6 of FIG. Table 7 in FIG. 55 and table 8 in FIG. 56 show examples of codes used in one embodiment.

【0054】<R−符号用確率予測モデル>一実施例で
は、R2(0)符号は、何も符号化しない。すなわち、0の
入力は0に符号化され、1の入力は1に符号化され(ま
たは、その逆に符号化され)、したがって、R2(0)符号
は50%に等しい確率に対して最適である。現時点での
好適な実施例であるR2(1)符号は0.707(70.7
%)に近い確率に対して最適であり、R3(1)符号は0.
794(79.4%)の確率に対して最適である。R2
(2)符号は0.841(84.1%)の確率に対して最
適である。図57のテーブル9はほぼ最適なランレング
ス符号を示す。ここで、確率スキューは 確率スキュー=−log2(LSP) で定義される。
<Probability Prediction Model for R-Code> In one embodiment, the R2 (0) code does not code anything. That is, a 0 input is coded 0, a 1 input is coded 1 (or vice versa), so the R2 (0) code is optimal for probabilities equal to 50%. is there. The R2 (1) code of the presently preferred embodiment is 0.707 (70.7).
%), And the R3 (1) code is 0.
Optimal for a probability of 794 (79.4%). R2
(2) The code is optimal for a probability of 0.841 (84.1%). Table 9 in FIG. 57 shows a nearly optimum run length code. Here, the probability skew is defined by probability skew = −log 2 (LSP).

【0055】なお、テーブル9に示す符号は、確率スキ
ューで表わされる確率区間が、最適確率が高いk値では
低いk値におけるほどは細分化しないとしても、確率空
間をほぼ均等に変換する点でほぼ最適である。
The code shown in Table 9 is that the probability interval represented by the probability skew transforms the probability space almost evenly even if the k value having a high optimal probability is not subdivided as much as the k value having a low value. Almost optimal.

【0056】あるR−符号が最適である確率について述
べる。実際には、エントロピー曲線に合致するのはR2
(2)符号だけである。実際に検討することは、ある一定
のクラスの中で、ある特定のR−符号が他の全てのR−
符号に比べて優れているのはどの確率区間であるか、で
ある。図58のテーブル10はR2符号の確率区間を、
図59のテーブル11はR2符号及びR3の確率区間を示
す。
The probability that a certain R-code is optimal will be described. In reality, it is R2 that fits the entropy curve.
(2) Only code. The actual consideration is that within a certain class, one particular R-code can be used by all other R-codes.
Which probability interval is superior to the code? Table 10 in FIG. 58 shows the probability intervals of the R2 code as
Table 11 in FIG. 59 shows the probability intervals of R2 code and R3.

【0057】0から12までのR2符号のクラスに関
し、確率区間が図58のテーブル10に示されている。
例えば、R2符号だけが用いられる時には、R2(0)は
0.50≦確率≦0.6180の時に最適である。同様
に、R2(1)は0.6180≦確率≦0.7862の時に
最適である。
The probability intervals for the R2 code classes 0 through 12 are shown in Table 10 of FIG.
For example, when only the R2 code is used, R2 (0) is optimal when 0.50 ≦ probability ≦ 0.6180. Similarly, R2 (1) is optimal when 0.6180 ≦ probability ≦ 0.7862.

【0058】R2符号とR3符号のクラスに対する解答
は、図59のテーブル11にある。例えば、R2符号と
R3符号が用いられている時に、R2(1)は0.6180
≦確率≦0.7549の時に最適である。
The answers to the classes of R2 and R3 codes are in table 11 of FIG. For example, when R2 code and R3 code are used, R2 (1) is 0.6180
Optimal when ≤ probability ≤ 0.7549.

【0059】ある一定のkに対するR2(k)はランレング
ス符号と呼ばれる。しかし、ある一定のkが最適である
のは、1つの確率区間についてのみである。最適確率近
傍での符号化時に、本発明のR−符号は0符号語と1N
符号語をほぼ等頻度で用いることが分かる。言い換えれ
ば、本発明のR−コーダは、一方の符号と他方の符号を
半々の時間割合で出力する。0符号語と1N符号語の数
を調べることにより、最適な符号が用いられているかを
判断できる。すなわち、1N符号語の出力が多すぎると
きはランレングスが長すぎ、他方、0符号語の出力が多
すぎるときにはランレングスが短かすぎる。
R2 (k) for a given k is called a run length code. However, a certain k is optimal only for one probability interval. When encoding in the vicinity of the optimum probability, the R-code of the present invention has 0 codeword and 1N.
It can be seen that the codewords are used almost equally frequently. In other words, the R-coder of the present invention outputs one code and the other code at a half-time ratio. By examining the number of 0 codewords and 1N codewords, it can be determined whether the optimum code is used. That is, if the output of 1N codewords is too large, the run length is too long, and if the output of 0 codewords is too large, the run length is too short.

【0060】Langdonにより用いられた確率予測モデル
は、各符号語の最初のビットを調べて情報源確率が現在
の予測値より上であるか下であるか判定する。G.G.Lang
don,”An Adaptive Run-Length Coding Algorithm”, I
BM Technical DisclosureBulletin, Vol.26,No.7B,Dec.
1983 を参照されたい。この判定に基づき、kが増やさ
れまたは減らされる。例えば、MPSを示す符号語が見
つかれば、確率予測値は低すぎる。したがって、Langdo
n によれば、kは各0符号語毎に1ずつ増やされる。L
PSの前のMAXRUN個未満のMPSを示す符号語
(すなわち1N符号語)が見つかるときは、確率予測値
は高すぎる。したがって、Langdon によれば、kは各1
N符号語毎に1ずつ減らされる。
The probability prediction model used by Langdon examines the first bit of each codeword to determine if the source probability is above or below the current predicted value. GGLang
don, ”An Adaptive Run-Length Coding Algorithm”, I
BM Technical Disclosure Bulletin, Vol.26, No.7B, Dec.
See 1983. Based on this determination, k is increased or decreased. For example, if a codeword indicating MPS is found, the probability prediction value is too low. Therefore, Langdo
According to n, k is incremented by 1 for each 0 codeword. L
The probability estimate is too high when a codeword indicating less than MAXRUN MPS before the PS (ie, a 1N codeword) is found. Therefore, according to Langdon, k is 1 each
It is decremented by 1 for every N codewords.

【0061】本発明は、単純に1符号語毎にkを1ずつ
増加または減少させる方法よりも複雑な確率予測が可能
である。本発明は、使用する符号を決定する、1つの確
率予測モジュール状態を含む。多くの状態が同じ符号を
使用するかもしれない。状態テーブルまたは状態マシン
を用いて、符号が状態に割り当てられる。
The present invention enables more complicated probability prediction than the method of simply increasing or decreasing k by 1 for each codeword. The invention includes one probability prediction module state that determines the code to use. Many states may use the same code. Codes are assigned to states using state tables or state machines.

【0062】本発明の一実施例では、確率予測値は符号
語の出力のたびに状態を変える。そうして、確率予測モ
ジュールは、符号語が0で始まるか1で始まるかに応じ
て確率予測値を増加または減少させる。例えば、”0”
符号語が出力されると、MPS確率の予測値が増加す
る。他方、”1”符号語が出力されると、MPS確率の
予測値が減らされる。
In one embodiment of the present invention, the probability predictor changes state with each output of the codeword. The probability prediction module then increases or decreases the probability prediction value depending on whether the codeword starts with 0 or 1s. For example, "0"
When the codeword is output, the predicted value of the MPS probability increases. On the other hand, when a "1" codeword is output, the predicted value of MPS probability is reduced.

【0063】従来技術のLangdonコーダは、R2(k)符号
だけを使用し、符号語毎にkを増減させた。これに対し
て、本発明は、適応速度(adaptation rate)を用途に
合わせるため、状態テーブルまたは状態マシンと連係し
てR2(k)符号及びR3(k)符号を用いる。すなわち、少量
の固定データがあるときには、より最適な符号化を得る
ために適応はより迅速になされなければならないが、大
量の固定データがあるときには、残りのデータについて
より良好な圧縮を達成する符号化を選べるように、適応
時間を長くしてよい。なお、可変数の状態変化が起きる
場合、用途に固有の特性によっても適応速度が影響され
るかもしれない。R−符号の性質から、R−コーダのた
めの確率予測は、簡単でありハードウエアを殆ど必要と
しないが、非常に強力である。図40は、符号化効率
(エントロピーに対し正規化された符号長)対MPS確
率のグラフを示す。図40は、いくつかの本発明のR−
コーダが確率空間をどのようにカバーするかを示してい
る。一例を挙げれば、図40は、0.55のMPS確率
では、R2(0)符号の効率はエントロピー限界の1.01
倍である(すなわち、エントロピー限界より1%だけ悪
い)ことを示している。これに比べ、R2(1)符号の効率
はエントロピー限界の1.09倍(9%悪い)である。
この例は、この特定の低確率のケースに不適切な符号を
使用することで符号化効率の8%の損失を生じることを
示している。
Prior art Langdon coders used only R2 (k) codes and increased or decreased k for each codeword. In contrast, the present invention uses R2 (k) and R3 (k) codes in conjunction with a state table or state machine to adapt the adaptation rate to the application. That is, when there is a small amount of fixed data the adaptation has to be done more quickly to get a more optimal encoding, but when there is a large amount of fixed data the code that achieves better compression for the rest of the data. The adaptation time may be extended so that the choice can be made. It should be noted that when a variable number of state changes occur, the adaptation speed may also be affected by the characteristics specific to the application. Due to the nature of R-codes, probability prediction for R-coders is simple and requires little hardware, but is very powerful. FIG. 40 shows a graph of coding efficiency (code length normalized to entropy) vs. MPS probability. FIG. 40 shows some of the inventive R-
It shows how the coder covers the probability space. As an example, FIG. 40 shows that at an MPS probability of 0.55, the efficiency of the R2 (0) code is 1.01 which is the entropy limit.
Doubling (ie, 1% worse than the entropy limit). In comparison, the efficiency of the R2 (1) code is 1.09 times (9% worse) than the entropy limit.
This example shows that using an incorrect code for this particular low probability case results in a loss of 8% in coding efficiency.

【0064】R3(k)符号を導入することにより、より広
い確率空間をより高い効率でカバーすることができる。
本発明による確率予測状態テーブルの一例が図8に示さ
れている。図5に示された確率予測状態テーブルは、状
態カウンタと、個々の状態に関係付けられた符号の両方
を示している。このテーブルが正と負の状態を含んでい
ることに注目されたい。このテーブルは、0状態を含め
て37の正状態と、0状態を含めて37の負状態を持つ
よう表わされている。負の状態は、正の状態とはMPS
が異なることを意味している。一実施例では、負の状態
はMPSが1の時に用いることができ、また正の状態は
MPSが0の時に用いることができ、あるいはその逆で
ある。なお、図8に示したテーブルは一例に過ぎないも
のであり、テーブルの状態数がそれより多くても少なく
ても、また、状態割り当てが異なってもよい。
By introducing the R3 (k) code, it is possible to cover a wider probability space with higher efficiency.
An example of the probability prediction state table according to the present invention is shown in FIG. The probability prediction state table shown in FIG. 5 shows both the state counter and the code associated with each state. Note that this table contains positive and negative states. This table is shown to have 37 positive states, including 0 states, and 37 negative states, including 0 states. Negative state is MPS with positive state
Means different. In one embodiment, a negative state can be used when MPS is 1, and a positive state can be used when MPS is 0, or vice versa. Note that the table shown in FIG. 8 is merely an example, and the number of states in the table may be larger or smaller than that, or the state allocation may be different.

【0065】最初、コーダは状態0であり、これは0.
50の確率予測値に対するR2(0)符号である。各符号語
が処理された後に、その符号語の最初のビットに応じて
状態カウンタはインクリメントまたはデクリメントされ
る。一実施例では、符号語0は状態カウンタの値を増加
させ、1で始まる符号語は状態カウンタの値を減少させ
る。したがって、すべての符号語が状態カウンタによる
状態の変化を生じさせる。言い換えれば、確率予測モジ
ュールは状態を変化させる。しかし、連続した複数の状
態が同一の符号と関係付けられることがある。この場
合、符号語毎に符号を変えることなく確率予測が行なわ
れる。別の言い方をするならば、状態は符号語毎に変更
されるけれども、ある一定の場合に状態は同一の確率へ
写像される。例えば、状態5から状態−5は全てR2(0)
符号を用い、また、状態6から状態11及び状態−6か
ら状態−11はR2(1)符号を用いる。本発明のこの状態
テーブルを利用することにより、確率予測モジュールは
同じコーダをノンリニアに動かすことができる。
Initially, the coder is in state 0, which is 0.
R2 (0) code for 50 probability prediction values. After each codeword is processed, the state counter is incremented or decremented depending on the first bit of that codeword. In one embodiment, codeword 0 increments the value of the state counter and codewords beginning with 1 decrement the value of the state counter. Therefore, every codeword causes a state change by the state counter. In other words, the probability prediction module changes state. However, multiple consecutive states may be associated with the same code. In this case, probability prediction is performed without changing the code for each code word. Stated differently, the states change from codeword to codeword, but in certain cases the states map to the same probability. For example, from state 5 to state-5, all are R2 (0)
The codes are used, and the states 6 to 11 and the states -6 to -11 use the R2 (1) code. By utilizing this state table of the present invention, the probability prediction module can move the same coder non-linearly.

【0066】低い確率ほど同じR−符号を持つ状態が多
いことに気付かれたい。このようにしたのは、低確率に
おいて誤った符号を用いた時の効率低下が大きいからで
ある。ランレングス符号の状態テーブルの特質は、符号
語毎に状態が遷移することである。状態が変化するたび
に符号を変えるように状態テーブルを設計した場合、低
い確率における状態切り替わり時に、エントロピー効率
限界に非常に近い符号と、エントロピー効率限界から非
常に遠い符号との間で符号が切り替わる。このように、
状態間遷移で不利益(符号化データビット数の観点で)
が生ずる可能性がある。Langdonの確率予測モジュール
のような従来の確率予測モジュールは、このような不利
益のために性能を損なっている。
Notice that the lower the probability, the more states with the same R-code. This is done because the efficiency drops significantly when a wrong code is used at a low probability. A characteristic of the run-length code state table is that the state transitions for each codeword. If the state table is designed so that the sign changes each time the state changes, the code switches between a code very close to the entropy efficiency limit and a code very far from the entropy efficiency limit when the state switches at a low probability. . in this way,
Disadvantage in transition between states (in terms of coded data bit number)
May occur. Traditional probability prediction modules, such as Langdon's probability prediction module, suffer from performance due to these disadvantages.

【0067】高い確率のランレングス符号においては、
符号を誤ることによる不利益はそれほど大きくない。し
たがって、本発明では、低い確率に余分に状態が追加さ
れることにより、2つの正しい符号間で切り替わる変化
が増加し、それにより符号化の非効率性を減らす。
In a high probability run length code,
The disadvantages of incorrect sign are not so great. Therefore, the present invention adds extra states to the low probabilities to increase the changes that switch between the two correct codes, thereby reducing coding inefficiencies.

【0068】なお、ある実施例では、コーダは初期確率
予測状態を持つ。換言すれば、コーダは、予め決められ
1つの状態、例えば状態18でスタートする。一実施例
では、初めのいくつかのシンボルに対して、いくつかの
状態を用いて素早い適応を可能にするために別の状態テ
ーブルが使用され、そして、残りのシンボルに対して
は、確率予測値の微調整が可能な低速適応のために、も
う一つの状態テーブルが使用されるかもしれない。この
ようにすれば、コーダは、符号化プロセスにおいて、よ
り効率的な符号をより迅速に用いることができるであろ
う。別の実施例では、符号ストリームが各コンテキスト
毎に初期確率予測値を指定するかもしれない。一実施例
では、インクリメント及びデクリメントが固定した数
(例えば1)に従っては行なわれない。そうではなく
て、それまでに出会ったデータの量またはデータの変化
量(安定性)に応じた可変数だけ確率予測状態がインク
リメントされる。そのようなテーブルの例が、後述の図
69乃至図73のテーブル21〜25である。
Note that in one embodiment, the coder has an initial probability prediction state. In other words, the coder starts in one predetermined state, eg state 18. In one embodiment, another state table is used to enable fast adaptation with some states for the first few symbols, and probability prediction for the remaining symbols. Another state table may be used for slow adaptation with fine tuning of the values. This would allow the coder to use more efficient codes more quickly in the encoding process. In another example, the codestream may specify an initial probability estimate for each context. In one embodiment, increments and decrements are not performed according to a fixed number (eg, 1). Instead, the probability prediction state is incremented by a variable number according to the amount of data or the amount of change (stability) of data encountered up to that point. Examples of such tables are tables 21 to 25 in FIGS. 69 to 73 described later.

【0069】状態テーブルが対称ならば、図8に例示し
たテーブルから分かるように、テーブルの半分(0状態
を含む)だけ、記憶するか、ハードウエア化すればよ
い。一実施例では、この対称性を利用するため、状態番
号は符号(sign)・大きさの(1の)補数の形式で記憶
される。しかして、1の補数の絶対値をとって状態を確
認し、符号(sign)を調べてMPSが1か0かを判断す
ることにより、このテーブルを利用できる。こうするこ
とにより状態のインクリメント及びデクリメントのため
に必要なハードウエアを減らすことができる。というの
は、状態の絶対値がテーブルの索引に利用され、かつ、
1の補数の絶対値の計算はとるに足らないからである。
もう一つの実施例では、ハードウエア効率を増加させる
ため、状態テーブルは固定配線の状態マシンまたはプロ
グラマブル状態マシンに置き換えられる。固定配線の状
態−符号コンバータは、状態テーブルの1つの具体化形
態である。
If the state table is symmetric, as can be seen from the table illustrated in FIG. 8, only half (including 0 state) of the table needs to be stored or implemented as hardware. In one embodiment, to take advantage of this symmetry, state numbers are stored in the form of a sign-magnitude (one) complement. Therefore, this table can be used by taking the absolute value of 1's complement, confirming the state, and checking the sign to determine whether MPS is 1 or 0. This reduces the hardware required to increment and decrement the state. The absolute value of the state is used to index the table, and
This is because the calculation of the absolute value of the one's complement is trivial.
In another embodiment, the state table is replaced with a hardwired or programmable state machine to increase hardware efficiency. The hardwired state-to-code converter is one implementation of the state table.

【0070】<平衡並列エントロピーコーディングシス
テムの概要>本発明は、平衡(balanced)並列エントロ
ピーコーディングシステムを提供する。この並列エント
ロピーコーディングシステムは、リアルタイム符号化と
リアルタイム復号の両方を高速/低コストのハードウエ
アで実行する。本発明は、書き換え可能な光ディスクま
たは磁気ディスクのデータのリアルタイム圧縮/伸長、
コンピュータネットワークデータのリアルタイム圧縮/
伸長、多機能(例えばコピア、ファクシミリ、スキャ
ナ、プリンタ等々)マシンの圧縮フレーム記憶内の画像
データのリアルタイム圧縮/伸長、音声データのリアル
タイム圧縮/伸長のような(これに限定されないが)、
様々な非損失性コーディングの用途に利用し得る。
<Outline of Balanced Parallel Entropy Coding System> The present invention provides a balanced parallel entropy coding system. This parallel entropy coding system performs both real-time encoding and real-time decoding with fast / low cost hardware. The present invention provides real-time compression / decompression of data on a rewritable optical disk or magnetic disk,
Real-time compression of computer network data /
Decompression, such as (but not limited to) real-time compression / decompression of image data in compressed frame storage of multifunctional (eg copier, facsimile, scanner, printer, etc.) machines, real-time compression / decompression of audio data,
It can be used for various lossless coding applications.

【0071】符号化装置の性能を規定する際に多少の注
意を要する。符号化データチャネルが十分高速であると
仮定するならば、オリジナルデータに対しある速度を達
成する符号化装置を設計することは簡単である。しかし
ながら、多くの用途において目標とするところは、符号
化装置が符号化データチャネルを効率的に利用すること
である。符号化データチャネルの利用率は、オリジナル
データ・インターフェースの最高バースト速度、符号化
装置の速度、及びデータの圧縮率によって大きく左右さ
れる。これらの影響は、符号化装置におけるバッファリ
ング量に依存する、やや限定された量のデータについて
検討されなければならない。符号化データチャネルを効
率的に利用し、そのうえ符号化速度と高圧縮率を維持
し、さらには最高バースト速度を受容する符号化装置を
得ることが望ましい。
Some caution is required when defining the performance of the coding device. Given that the coded data channel is fast enough, it is straightforward to design a coding device that achieves a certain speed for the original data. However, in many applications the goal is for the encoder to make efficient use of the encoded data channel. The utilization rate of the coded data channel depends largely on the maximum burst rate of the original data interface, the speed of the encoder, and the compression rate of the data. These effects must be considered for a rather limited amount of data, which depends on the amount of buffering in the encoder. It is desirable to have a coding device that makes efficient use of the coded data channel, yet maintains the coding rate and high compression ratio, while still accepting the highest burst rates.

【0072】以下、本発明の符号化装置を説明する。こ
の符号化装置と一緒に使用されるであろう復号装置につ
いても説明する。
The encoding apparatus of the present invention will be described below. A decoding device that may be used with this encoding device is also described.

【0073】<本発明のリアルタイム符号化>図9は本
発明の符号化システムのブロック図である。一実施例で
は、この本発明の符号化装置はリアルタイムの符号化を
行なう。図9において、符号化システム600は、コン
テキストモデル(CM)・状態メモリ603と接続さ
れ、オリジナルデータ601に応じて符号化データを符
号語情報604として発生する符号化器602を含んで
いる。符号語情報604は再配列ユニット606に受け
取られ、この再配列ユニット606は再配列メモリ60
7と接続される。再配列ユニット606は再配列メモリ
607と協動し、符号語情報604に応じて符号化デー
タストリーム608を発生する。注意すべくは、この符
号化システムは符号語の処理に限定されるものでなく、
他の実施例では、本発明の教えるところを利用し、離散
的なアナログ波形、可変長ビットパターン、チャネルシ
ンボル、アルファベット、イベント等々を処理するかも
しれない。
<Real Time Encoding of the Present Invention> FIG. 9 is a block diagram of the encoding system of the present invention. In one embodiment, the inventive coding apparatus provides real-time coding. In FIG. 9, an encoding system 600 includes an encoder 602 that is connected to a context model (CM) / state memory 603 and that generates encoded data as codeword information 604 according to the original data 601. Codeword information 604 is received by reordering unit 606, which reordering unit 606 reorders memory 60.
Connected with 7. Reordering unit 606 cooperates with reordering memory 607 to generate encoded data stream 608 in response to codeword information 604. It should be noted that this coding system is not limited to processing codewords,
Other embodiments may utilize the teachings of the present invention to process discrete analog waveforms, variable length bit patterns, channel symbols, alphabets, events, and so on.

【0074】符号化器602は、コンテキストモデル
(CM)、確率予測マシン(PEM)及びビットストリ
ームジェネレータ(BM)を含んでいる。符号化器60
2内のコンテキストモデルとPEM(確率予測マシン)
は、復号器内のそれらと本質的に同じものである(デー
タフローの向きは別であるが)。符号化器602のビッ
トストリームジェネレータは、復号器のビットストリー
ムジェネレータと同様であり、後述する。符号化器60
2による符号化の結果は、オリジナルデータを表わす0
個以上のビットである。一実施例では、ビットストリー
ムジェネレータの出力も1つ以上の制御信号を含む。こ
れらの制御信号は、ビットストリーム中のデータに対し
制御パスを提供する。一実施例では、符号語情報はラン
開始表示、ラン終了表示、符号語、この符号語のランカ
ウント(run count)(それがコンテキストによろうと
確率クラスによろうと)を特定するインデックスからな
る。本発明のビットストリームジェネレータの一実施例
は後述する。
The encoder 602 includes a context model (CM), a probability prediction machine (PEM) and a bitstream generator (BM). Encoder 60
Context model in 2 and PEM (probability prediction machine)
Are essentially the same as those in the decoder (although the direction of the data flow is different). The bitstream generator of the encoder 602 is similar to the bitstream generator of the decoder and will be described later. Encoder 60
The result of encoding by 2 is 0, which represents the original data.
More than one bit. In one embodiment, the output of the bitstream generator also includes one or more control signals. These control signals provide a control path for the data in the bitstream. In one embodiment, the codeword information comprises a run start indication, a run end indication, a codeword, and an index identifying the run count of this codeword (whether it is contextual or probabilistic class). One embodiment of the bitstream generator of the present invention will be described later.

【0075】再配列ユニット606は、符号化器602
のビットストリームジェネレータにより生成されたビッ
トと制御信号(それがあれば)を受け取って、符号化デ
ータを発生する。一実施例では、再配列ユニット606
より出力される符号化データは、インターリーブド語の
ストリームからなる。
The rearrangement unit 606 includes an encoder 602.
And receives the bits and control signals (if any) generated by the bitstream generator of the above to generate encoded data. In one embodiment, rearrangement unit 606
The encoded data output from the stream is a stream of interleaved words.

【0076】一実施例では、再配列ユニット606は2
つの機能を遂行する。再配列ユニット606は、符号語
群を、符号化器602により生成されたランの末尾か
ら、復号器に必要とされるランの先頭へ移し、可変長の
符号語を組合せて固定長のインターリーブド語とし、そ
れらを復号器に要求される適切な順序で出力する。
In one embodiment, the rearrangement unit 606 has two
Perform one function. The rearrangement unit 606 moves the codeword group from the end of the run generated by the encoder 602 to the beginning of the run required by the decoder, combines variable length codewords, and interleaves the fixed length. And output them in the proper order required by the decoder.

【0077】再配列ユニット606はテンポラリー再配
列メモリ607を利用する。一実施例では、ワークステ
ーション上で符号化が実行される場合、テンポラリー再
配列メモリ607はサイズが100Mバイトを超えるこ
ともある。本発明の平衡システムでは、テンポラリー再
配列メモリ607は非常に小さく(例えば約1kバイ
ト)、かつ固定サイズである。このように、一実施例で
は、たとえ復号器に必要とされるメモリまたはビットレ
ートを増加させるとしても(1つのランの完了前に出力
が行なわれる時など)、リアルタイム符号化が一定量の
メモリを使用して遂行される。本発明の復号器は、例え
ば暗黙合図法、明示合図法、またはストリーム内合図法
(後述)によって、再配列ユニットが限定されたメモリ
を利用する影響を確認することができる。再配列ユニッ
ト606は再配列のために利用可能な有限のメモリを持
つが、”必要とされる”メモリは制限がない。ランの最
後から先頭までのキュー用とインターリーブド語再配列
用のメモリが限定される影響を両方考慮しなければなら
ない。
The rearrangement unit 606 utilizes a temporary rearrangement memory 607. In one embodiment, the temporary reordering memory 607 may exceed 100 Mbytes in size if the encoding is performed on the workstation. In the balanced system of the present invention, the temporary reordering memory 607 is very small (eg, about 1 kbyte) and has a fixed size. Thus, in one embodiment, even if the memory or bit rate required by the decoder is increased (such as when the output is done before the completion of one run), the real-time encoding requires a certain amount of memory. Carried out using. The decoder of the present invention can confirm the effect of the rearrangement unit utilizing limited memory by, for example, implicit signaling, explicit signaling, or in-stream signaling (described below). The reordering unit 606 has finite memory available for reordering, but the "required" memory is unlimited. The effect of limited memory for the queue from the end to the beginning of the run and for the interleaved word reordering must be considered.

【0078】一実施例では、本発明の符号化システム
(及び対応する復号システム)は、1つの集積回路チッ
プを用いて符号化(または復号)を遂行する。別の実施
例では、1つの集積回路に、本発明の符号化装置(符号
化器、復号器、メモリ)が収容される。独立したメモリ
が、符号化を支援するために付加されてもよい。1つの
マルチチップのモジュールもしくは集積回路に、符号化
/復号のためのハードウエアとメモリを収容してもよ
い。
In one embodiment, the encoding system (and corresponding decoding system) of the present invention performs encoding (or decoding) using a single integrated circuit chip. In another embodiment, one integrated circuit contains the encoding device (encoder, decoder, memory) of the present invention. A separate memory may be added to assist the encoding. A single multi-chip module or integrated circuit may contain the hardware and memory for encoding / decoding.

【0079】本発明の符号化システムは、実効帯域幅を
最高ファクターNだけ増加させようとするかもしれな
い。達成される圧縮率がN:1未満のときには、符号化
データチャネルは完全に利用されるが、圧縮率に等しい
実効帯域幅の増加が得られるにすぎない。達成される圧
縮率がN:1を超えるときには、実効帯域幅の増加が達
成され割増帯域幅は書き込み可能である。いずれの場合
も、達成される圧縮率とは、当然、符号化システム内に
存在するバッファ量により決まるデータの局部領域に対
するものである。
The coding system of the present invention may attempt to increase the effective bandwidth by a maximum factor N. When the compression ratio achieved is less than N: 1, the coded data channel is fully utilized but only an increase in effective bandwidth equal to the compression ratio is obtained. When the compression ratio achieved exceeds N: 1, an increase in effective bandwidth is achieved and the extra bandwidth is writable. In each case, the compression ratio achieved is, of course, for the local area of data determined by the amount of buffers present in the coding system.

【0080】<本発明の符号化器用ビットジェネレータ
>図10は本発明の符号化器のビットストリームジェネ
レータ(簡略のため、ビットジェネレータとも呼ぶ)の
一実施例を示す。ビットジェネレータ701は、入力と
して、1つの確率クラスと1つの符号化前ビット(例え
ばMPSまたはLPS表示)を受け取るように接続され
る。この入力に応答して、ビットジェネレータ701は
複数の信号を出力する。この出力中の2つは、ランの開
始とランの終了を示す制御信号(各符号語は1つのラン
を表わす)、すなわち開始信号711と終了信号712
である。ランが同時に開始及び終了することもあり得
る。ランが開始または終了する時に、”インデックス”
出力713は符号化前ビットの確率クラス(またはコン
テキスト)を指示する。一実施例では、インデックス出
力713はビットの確率クラスと、各確率クラスがいく
つかのメモリバンクに再現されるシステムのためのバン
ク識別との組合せからなる。符号語出力714はランが
終わった時にビットジェネレータ701より符号語を出
力するために用いられる。
<Bit Generator for Encoder of the Present Invention> FIG. 10 shows an embodiment of a bit stream generator (also called a bit generator for simplification) of the encoder of the present invention. The bit generator 701 is connected to receive as input one probability class and one uncoded bit (eg MPS or LPS representation). In response to this input, the bit generator 701 outputs a plurality of signals. Two of the outputs are control signals (each codeword represents one run) indicating the start and end of the run, namely the start signal 711 and the end signal 712.
Is. It is possible for a run to start and end at the same time. "Index" when a run starts or ends
Output 713 indicates the probability class (or context) of the uncoded bits. In one embodiment, the index output 713 consists of a combination of probability classes of bits and bank identifications for systems where each probability class is replicated in several memory banks. The codeword output 714 is used to output the codeword from the bit generator 701 when the run is completed.

【0081】メモリ702は、ビットジェネレータ70
1と接続され、ある特定の確率クラスに関するランカウ
ントを記憶する。ビットジェネレータ701は、ビット
ストリーム生成期間に、インデックス(例えば確率クラ
ス)を利用してメモリ702を読み出す。メモリ702
の読み出し後、ビットジェネレータ701は次のように
ビット生成を行なう。まず、ランカウントが0であるな
らば、開始信号711がアサートされ、ランの開始を表
示する。そして、符号化前ビットがLPSであるなら
ば、終了信号712がアサートされランの終了を表示す
る。また、符号化前ビットがLPSならば、符号語出力
714は符号語が1N符号語であることを指示するよう
設定され、かつランカウントはクリアされる、例えば0
に設定される(それがランの終わりであるので)。符号
化前ビットがLPSでなければ、ランカウントがインク
リメントされ、そして、テストをしてランカウントが符
号の最大ランカウントと等しいか判定する。最大ランカ
ウントと等しいときには、終了信号712がアサートさ
れ、符号語出力714が0に設定され、ランカウントが
クリアされる(例えばランカウントは0に設定され
る)。テストでランカウントが符号の最大ランカウント
と等しくないと判定したときには、ランカウントがイン
クリメントされる。インデックス信号712は入力とし
て受け取った確率クラスを表わすことに注意されたい。
The memory 702 is a bit generator 70.
Connected with 1 to store run counts for a particular probability class. The bit generator 701 reads the memory 702 using an index (for example, a probability class) during the bitstream generation period. Memory 702
After reading, the bit generator 701 performs bit generation as follows. First, if the run count is 0, the start signal 711 is asserted, indicating the start of a run. If the uncoded bit is LPS, then the end signal 712 is asserted to indicate the end of the run. If the uncoded bit is LPS, the codeword output 714 is set to indicate that the codeword is a 1N codeword, and the run count is cleared, eg 0.
Set to (because it is the end of the run). If the uncoded bit is not LPS, the runcount is incremented and a test is made to determine if the runcount is equal to the code's maximum runcount. When equal to the maximum run count, end signal 712 is asserted, codeword output 714 is set to 0, and the run count is cleared (eg, run count is set to 0). If the test determines that the run count is not equal to the maximum run count of the code, the run count is incremented. Note that the index signal 712 represents the probability class received as input.

【0082】本発明において、1N符号語の生成は、1
N符号語の長さが余分な情報なしに確認できるような方
法で行なわれる。図60のテーブル12は、復号器及び
符号化器用のR3(2)符号語の1N符号語の説明である。
復号器は、”1N”符号語中の”1”ビットがLSB
(最下位ビット)であり、かつ、”N”カウント部が適
当なMSB...LSBの順序であると考える。復号器の
順序では、どの符号が使われているか分かっていない
と、可変長符号語を0パッドと区別することができな
い。符号化器の順序では、符号語は順序が逆になってお
り、最上位の”1”ビットの位置が”1N”符号語の長
さを示す。符号語を符号化器の順序で生成するには、カ
ウント値の補数を逆順にしなければならない。これを達
成するには、13ビットのカウントを逆順にしてから、
LSBに揃うようシフトすればよい。以下に詳細に述べ
るように、再配列ユニット606は符号語の順序を逆に
して復号器の順序に戻す。しかし、いずれにしても再配
列ユニット606はシフト操作を行なわなければならな
いので、この符号語の順序反転のために再配列ユニット
606が複雑化することはない。
In the present invention, 1N codeword is generated by 1
It is done in such a way that the length of the N codewords can be verified without extra information. Table 12 of Figure 60 is a description of the 1N codewords of the R3 (2) codewords for the decoder and encoder.
The decoder determines that the "1" bit in the "1N" codeword is the LSB.
(Least significant bit) and the "N" count part is considered to be in the proper MSB ... LSB order. The decoder order cannot distinguish a variable length codeword from a 0 pad without knowing which code is being used. In the order of the encoder, the codewords are in reverse order, and the position of the most significant "1" bit indicates the length of the "1N" codeword. In order to generate codewords in the order of the encoder, the complements of the count values must be reversed. To achieve this, reverse the 13-bit count and then
It is sufficient to shift so as to align with the LSB. The reordering unit 606 reverses the order of the codewords back into the order of the decoder, as described in detail below. However, in any case, since the rearrangement unit 606 has to perform the shift operation, the rearrangement unit 606 is not complicated by the order inversion of the codeword.

【0083】R3 符号の場合、”N”符号語を生成する
には、”1”に続くビットで短いカウントと長いカウン
トのいずれが存在するか指示することも必要である。
For the R3 code, it is also necessary to indicate whether there is a short count or a long count in the bit following the "1" to generate an "N" codeword.

【0084】本発明は、複数のメモリバンクを使用する
ことによりパイプライン処理が可能である。例えば、マ
ルチポートのメモリの場合、符号化前ビットのメモリ読
み出し動作が行なわれ、同時にその前の符号化前ビット
のメモリ書き込み動作が行なわれる。
The present invention enables pipeline processing by using a plurality of memory banks. For example, in the case of a multi-port memory, the memory read operation for the pre-encoding bit is performed, and at the same time, the memory write operation for the previous pre-encoding bit is performed.

【0085】<Altra AHDLサンプルデザイン
>本発明の符号化器のビットジェネレータの一実施例は
FPGA(フィールドプログラマブルゲートアレイ)か
ら構成される。本設計は、R2(12)までのR2符号,R3
符号全部を処理する。そのAHDL(Altera Hardware
DescriptionLanguage)のソースコードを図41から図
46に示す。
<Altra AHDL Sample Design> An embodiment of the bit generator of the encoder of the present invention is composed of an FPGA (field programmable gate array). This design uses R2 code up to R2 (12), R3
Process all signs. The AHDL (Altera Hardware
DescriptionLanguage) source code is shown in FIGS. 41 to 46.

【0086】本設計は、図16に示すような複数の部分
からなる。第1に、”ENCBG”1301は本設計の
主要部であって、ランの開始、終了及び連続を処理する
ための論理を有する。第2に、”KEXPAND”13
02は、確率クラスを最大ラン長、可変長マスク及びR
3 符号の最初の長い符号語の長さへ展開するために使わ
れる。”KEXPAND”1302は、復号器の同名の
機能と同一である。第3に、”LPSCW”1303は
カウント値と確率クラスの情報を入力として受け取っ
て、適切な”1N”符号語を発生する。
The present design consists of multiple parts as shown in FIG. First, the "ENCBG" 1301 is the main part of the design and has the logic to handle the start, end and sequence of runs. Second, "KEXPAND" 13
02 is a probability class with maximum run length, variable length mask and R
3 Used to expand the length of the code to the length of the first long codeword. "KEXPAND" 1302 has the same function as the decoder of the same name. Third, the "LPSCW" 1303 receives as input the count value and probability class information and generates an appropriate "1N" codeword.

【0087】本設計は、2つのパイプラインステージを
用いる。第1のパイプラインステージで、カウントがイ
ンクリメントされ、確率クラスが展開され、かつ、長い
R3符号語のための減算及び比較が実行される。これ以
外の操作は全て第2パイプラインステージで実行され
る。
The present design uses two pipeline stages. In the first pipeline stage, counts are incremented, probability classes are expanded, and subtractions and comparisons for long R3 codewords are performed. All other operations are executed in the second pipeline stage.

【0088】<本発明の再配列ユニット>図11は再配
列ユニットの一実施例のブロック図である。図11にお
いて、再配列ユニット606はランカウント並べ替えユ
ニット801とビットパックユニット802からなる。
ランカウント並べ替えユニット801は、符号化器によ
り生成されたランの最後を復号器で必要とされるように
ランの先頭へ移動する。一方、ビットパックユニット8
02は可変長符号語を組合せて固定長のインターリーブ
ド語とし、それを復号器置に要求される適切な順序で出
力する。
<Re-arrangement Unit of the Present Invention> FIG. 11 is a block diagram of an embodiment of the re-arrangement unit. In FIG. 11, the rearrangement unit 606 includes a run count rearrangement unit 801 and a bit pack unit 802.
Run count reordering unit 801 moves the end of the run generated by the encoder to the beginning of the run as required by the decoder. On the other hand, bit pack unit 8
02 combines variable-length code words into a fixed-length interleaved word, and outputs it in an appropriate order required by the decoder unit.

【0089】”スヌーパー”(snooper)復号器を使っ
て、どのような復号既にも合うように並べ替えをするこ
とが可能であり、この場合、復号器が符号化装置に内蔵
され、これは実際の復号器が符号語を必要とする順序で
データ要求を出す。スヌーパー復号器をサポートするた
め、ランカウントの並べ替えが各ストリーム毎に独立し
て行なわれねばならないかもしれない。容易に模擬でき
る復号器の場合には、並べ替えを可能にするために複数
のタイムスタンプ付きキューまたは1つの併合キューが
用いられるかもしれない。一実施例では、各符号語の並
べ替えはキュー様のデータ構造を使って行なうことがで
き、また、複数の符号化データストリームの扱い方とは
独立している。並べ替えを行なう方法について以下に説
明する。
A "snooper" decoder can be used to reorder any decoding already in place, in which case the decoder is built into the encoder, which is actually Issue the data requests in the order that the codewords are needed. To support the snoop decoder, runcount reordering may have to be done independently for each stream. For easily mimicable decoders, multiple time stamped queues or a merged queue may be used to allow reordering. In one embodiment, the reordering of each codeword can be done using a queue-like data structure and is independent of how multiple coded data streams are handled. The method of rearranging will be described below.

【0090】符号化器において行なわれる最初の並べ替
え操作は、各ランカウントを、それがランの先頭で指定
されるように並べ替えることである(復号器が復号のた
めににそれを要求するので)。この並べ替えが必要とな
るのは、符号化器はランの終わりまで、どのようなラン
カウント(及び符号語)か決定しないからである。この
ように、データを符号化することによって得られたラン
カウントは、復号器がそれをデータストリームへ適切に
復号できるように並べ替えられる。
The first reordering operation performed in the encoder is to reorder each run count so that it is specified at the beginning of the run (the decoder requires it for decoding). So). This reordering is necessary because the encoder does not determine what run count (and codeword) until the end of the run. In this way, the run counts obtained by encoding the data are reordered so that the decoder can properly decode it into a data stream.

【0091】図11に戻る。本発明の再配列ユニット6
06は、ランカウント並べ替えユニット801とビット
パックユニット802からなる。ランカウント並べ替え
ユニット801は複数の入力、すなわち開始信号71
1、終了信号712、インデックス信号713及び符号
語714を受け取るように接続される。これらの信号に
ついては、図12のランカウント並べ替えユニットに関
連して、より詳細に説明する。ランカウント並べ替えユ
ニット801は、その入力に応じて、符号語803と信
号804を発生する。信号804は、ランカウントを何
時リセットすべきか指示する。符号語803はビットパ
ックユニット802に受け取られる。ビットパックユニ
ット803は、符号語803に応答してインターリーブ
ド語805を発生する。
Returning to FIG. Rearrangement unit 6 of the present invention
06 comprises a run count rearranging unit 801 and a bit pack unit 802. The runcount sorting unit 801 has multiple inputs, namely the start signal 71.
1, the end signal 712, the index signal 713, and the codeword 714. These signals will be described in more detail in connection with the runcount reordering unit of FIG. Run count reordering unit 801 generates codeword 803 and signal 804 in response to its input. Signal 804 indicates when the run count should be reset. The codeword 803 is received by the bitpack unit 802. Bitpack unit 803 generates interleaved word 805 in response to codeword 803.

【0092】ランカウント並べ替えユニット801とビ
ットパックユニット802について、以下にさらに詳し
く説明する。
The run count rearranging unit 801 and the bit pack unit 802 will be described in more detail below.

【0093】<ランカウント並べ替えユニット>前述の
ように、復号器は符号語に符号化されたデータの先頭部
分が必要となった時点で符号語を受け取る。しかし、符
号化器は、符号語の正体が、その符号語に符号化される
データの最後まで分からない。
<Run Count Rearrangement Unit> As described above, the decoder receives the code word when the head portion of the data encoded in the code word is needed. However, the encoder does not know the identity of the codeword until the end of the data encoded in that codeword.

【0094】ランカウント並べ替えユニット801の一
実施例のブロック図が図12に示されている。ここに述
べる実施例は、4本のインターリーブドストリームを収
容でき、各インターリーブド語は16ビットであり、符
号語は長さが1ビットから13ビットまで変化する。か
かるケースでは、再配列ユニット606は全ストリーム
を処理するためパイプライン化されるかもしれない。さ
らに、ランカウントを確率クラスと関係付ける符号化器
が用いられるので、任意時点でアクティブになり得るラ
ンカウントの最大数は小さく、本実施例では25と仮定
されている。なお、本発明は、4本のインターリーブド
ストリーム、16ビットのインターリーブド語、1〜1
3ビットの符号語長に限定されるものではなく、ストリ
ーム本数を増減し、インターリーブド語長を16ビット
から増減し、あるいは符号語長を1〜13ビットより拡
大した場合にも本発明を適用し得る。
A block diagram of one embodiment of the runcount reordering unit 801 is shown in FIG. The described embodiment can accommodate four interleaved streams, each interleaved word being 16 bits and the codeword varying in length from 1 bit to 13 bits. In such a case, the reordering unit 606 may be pipelined to process the entire stream. Furthermore, since a coder is used that associates run counts with probability classes, the maximum number of run counts that can be active at any given time is small, which is assumed to be 25 in this example. Note that the present invention uses four interleaved streams, 16-bit interleaved words, and 1-1.
The present invention is not limited to the code word length of 3 bits, and the present invention is also applied when the number of streams is increased or decreased, the interleaved word length is increased or decreased from 16 bits, or the code word length is increased from 1 to 13 bits. You can

【0095】図12において、ポインタメモリ901
は、インデックス入力713を受け取るよう接続され、
アドレス出力を発生する。このアドレス出力はマルチプ
レクサ(MUX)902の1つの入力に接続される。M
UX902の残りの2つの入力は、ヘッドカウンタ90
3よりヘッドポインタとして出されるアドレスと、テー
ルカウンタ904よりテールポインタとして出されるア
ドレスを受け取るように接続される。MUX902の出
力は符号語メモリ908に接続され同メモリをアクセス
するために用いられる。
In FIG. 12, a pointer memory 901
Is connected to receive index input 713,
Generate address output. This address output is connected to one input of a multiplexer (MUX) 902. M
The remaining two inputs of the UX902 are the head counter 90
3 is connected so as to receive an address issued as a head pointer by 3 and an address issued by a tail counter 904 as a tail pointer. The output of MUX 902 is connected to codeword memory 908 and is used to access the same.

【0096】インデックス入力713はMUX905の
1つの入力としても接続される。MUX905のもう1
つの入力は符号語入力714と接続される。MUX90
5の出力は有効検出モジュール906の入力及びデータ
バス907に接続される。データバス907は符号語メ
モリ908及びMUX905の入力と接続される。デー
タバス907には、制御モジュール909の出力も接続
される。開始入力711及び終了入力712は制御モジ
ュール909の別々の入力に接続される。有効検出モジ
ュール906の出力は符号語出力803と信号804
(図11)からなる。ランカウンタ並べ替えユニット8
01は、その各部分の動作を調整するためのコントロー
ラ論理(本発明を難解にしないため図示しない)も有す
る。
Index input 713 is also connected as one input of MUX 905. Another of MUX905
One input is connected to the codeword input 714. MUX90
The output of 5 is connected to the input of the validity detection module 906 and the data bus 907. The data bus 907 is connected to the input of the code word memory 908 and the MUX 905. The output of the control module 909 is also connected to the data bus 907. The start input 711 and the end input 712 are connected to separate inputs of the control module 909. The output of the validity detection module 906 is the codeword output 803 and the signal 804.
(FIG. 11). Run counter rearranging unit 8
01 also has controller logic (not shown in order not to obscure the invention) for coordinating the operation of its parts.

【0097】繰り返しになるが、インデックス入力71
3は1つのランを特定する。一実施例では、インデック
スは25の確率クラス中の1つを指示する。この場合、
インデックスの表現に5ビットを要する。なお、複数バ
ンクの確率クラスクが用いられるときは、特定のバンク
を指定するために余分なビットが必要となろう。一実施
例では、インデックス入力はランカウントの代わりに確
率クラスを特定する。符号語入力714はランの終了時
では符号語であるが、それ以外では”考慮不要”であ
る。開始入力711と終了入力712はランの始まり、
終わり、またはその両方のいずれであるかを指示する制
御信号である。ランの始まりと終わりが同時の時は、そ
のランは単一の符号化前ビットからなる。
Again, the index input 71
3 identifies one run. In one embodiment, the index points to one of 25 probability classes. in this case,
It takes 5 bits to express the index. It should be noted that when multiple banks of probability clsk are used, extra bits may be needed to specify a particular bank. In one embodiment, the index input specifies a probability class instead of a run count. The codeword input 714 is a codeword at the end of the run, but otherwise "don't care". Start input 711 and end input 712 are the start of the run
It is a control signal indicating whether it is the end or both. When the run begins and ends at the same time, the run consists of a single uncoded bit.

【0098】ランカウント並べ替えユニット801は、
ビットジェネレータがその入力に応じて生成したランカ
ウントを並べ替える。符号語メモリ908は、符号語を
並べ替えの間記憶する。一実施例では、符号語メモリ9
08は、同時にアクティブになり得るランカウントの数
より大きい。これは、圧縮の向上につながる。符号語メ
モリが、同時にアクティブになり得るランカウント数よ
り小さいと、アクティブなランカウントの実際の数がメ
モリに格納できる数までに制限されることになろう。良
好な圧縮率を得るシステムでは、ランカウントの長い1
つの符号語のデータの蓄積中に、ランカウントの短い多
数の符号語が開始する(そして恐らく終了する)という
ことがしばしば起こる。このため、大きなメモリを用い
ることにより、長いランが完了前に無理に押し出されな
いようにする必要がある。
The run count rearranging unit 801 is
Reorder the run counts generated by the bit generator according to its inputs. The codeword memory 908 stores codewords during rearrangement. In one embodiment, the codeword memory 9
08 is greater than the number of run counts that can be active at the same time. This leads to improved compression. If the codeword memory is smaller than the number of runcounts that can be active at the same time, the actual number of active runcounts will be limited to what can be stored in memory. A system with a good compression ratio has a long run count of 1
During the accumulation of data for one codeword, it is often the case that a large number of codewords with a short run count start (and possibly end). For this reason, it is necessary to use a large memory so that long runs are not forced out before completion.

【0099】ポインタメモリ901は、1つのランの途
中にある確率クラスに関する符号語メモリロケーション
のアドレスを保持し、符号語メモリ908をランダムア
クセス方式でアドレスする。ポインタメモリ901は、
1つのランの途中にあり得る各確率クラス毎に、符号語
メモリ908のアドレスのための1つのロケーションを
持っている。1つのランがある確率クラスとして終了し
たならば、ポインタメモリ901に記憶されている当該
確率クラスに関するアドレスを用いて符号語メモリ90
8がアクセスされ、完成した符号語が符号語メモリ90
8の当該ロケーションに書き込まれる。その時点まで
は、符号語メモリ908の当該ロケーションは無効なエ
ントリーを記憶していた。このように、ポインタメモリ
901はランカウント毎に無効な符号語のロケーション
を記憶する。
The pointer memory 901 holds the address of the codeword memory location for the probability class in the middle of one run, and addresses the codeword memory 908 in a random access manner. The pointer memory 901 is
For each probability class that can be in the middle of a run, we have one location for the address of codeword memory 908. When one run ends as a certain probability class, the codeword memory 90 is stored using the address of the certain probability class stored in the pointer memory 901.
8 is accessed and the completed codeword is the codeword memory 90.
8 are written to that location. Up to that point, that location in codeword memory 908 had stored an invalid entry. In this way, the pointer memory 901 stores the location of the invalid codeword for each run count.

【0100】ヘッドカウンタ903とテールカウンタ9
04も符号語メモリ908をアクセスするためのアドレ
スを供給する。ヘッドカウンタ903及びテールカウン
タ904を利用して、符号語メモリ908をキューもし
くは循環バッファ(例えば先入れ先出し[FIFO]メ
モリ)としてアドレスすることができる。テールポイン
タ(904)は、符号語メモリ908に符号語を挿入で
きるようにするため、符号語メモリ908の次に利用可
能なロケーションのアドレスを記憶している。ヘッドカ
ウンタ903は、符号語メモリ908の次に出力すべき
符号語のアドレスを記憶している。換言すれば、ヘッド
カウンタ903は符号語メモリ908より次に削除すべ
き符号語の符号語メモリアドレスを記憶している。ポイ
ンタメモリ901内のそれぞれの可能なインデックス
(例えば確率クラス)のためのロケーションを用いて1
つのランが始まった時にテールポインタ(904)がど
こにあったか覚えておくことにより、そのランが終わる
時に符号語メモリ908の当該ロケーションに適切な符
号語を格納できる。
Head counter 903 and tail counter 9
04 also supplies an address for accessing the codeword memory 908. The head counter 903 and tail counter 904 can be utilized to address the codeword memory 908 as a queue or circular buffer (eg, first in first out [FIFO] memory). The tail pointer (904) stores the address of the next available location in the codeword memory 908 so that the codeword can be inserted into the codeword memory 908. The head counter 903 stores the address of the codeword to be output next to the codeword memory 908. In other words, the head counter 903 stores the codeword memory address of the codeword to be deleted next from the codeword memory 908. 1 with the location for each possible index (eg probability class) in pointer memory 901
By remembering where the tail pointer (904) was when one run started, the appropriate codeword can be stored in that location in codeword memory 908 when the run ended.

【0101】制御モジュール909は、あるエントリー
が有効な符号語データを格納しているか否かを示す有効
信号を、符号語メモリ908内の格納データの一部とし
て発生する。例えば、その有効ビットが論理1ならば、
その符号語メモリロケーションは有効データを格納して
いる。しかし、その有効ビットが論理0ならば、その符
号語メモリロケーションは無効データを格納している。
有効検出モジュール906は、符号語メモリ908から
1つの符号語が読み出される度に、1つのメモリロケー
ションが有効な符号語を格納しているか判定する。一実
施例では、有効検出モジュール906は、メモリロケー
ションが有効な符号語を格納しているか、または特殊な
無効コードを格納しているか調べる。
The control module 909 generates a valid signal indicating whether or not a certain entry stores valid codeword data, as a part of the stored data in the codeword memory 908. For example, if its valid bit is a logical 1,
The codeword memory location stores valid data. However, if the valid bit is a logical 0, then the codeword memory location is storing invalid data.
The validity detection module 906 determines whether one memory location stores a valid codeword each time one codeword is read from the codeword memory 908. In one embodiment, the validity detection module 906 checks if the memory location contains a valid codeword or a special invalid code.

【0102】新たなランを始める時に、無効データエン
トリーが符号語メモリ908に格納される。この無効デ
ータエントリーは、ランが完了した時にメモリの正しい
ロケーションにそのランの符号語が格納されるようにす
るため(復号器を模擬する適切な順序付けを保証するよ
うに)、符号語メモリ908に格納されたデータストリ
ーム中のスペース格納部として働く。一実施例では、こ
の無効データエントリーは、MUX905経由のインデ
ックスと、制御モジュール909からの無効表示(例え
ば無効ビット)を含む。無効エントリーが格納される符
号語メモリ908のアドレスは、テールポインタ(90
5)により与えられ、符号語メモリ908内のランカウ
ンタのためのロケーションを知る手かがりとしてポイン
タメモリ901に格納される。残りのデータは、完成し
たランカウント(e,g.,並べ替えられたランカウント)
として、符号語メモリ908内のヘッドポインタ(90
3)とテールポインタ(904)との間にある。無効メ
モリロケーションの最大数は0からL−1である(ただ
し、Lはランカウントの数)。1つのランの終わりで1
つの符号語が完成した時に、そのランカウントがポイン
タメモリ901に格納されているアドレスを使って符号
語メモリ908に格納される。
When starting a new run, invalid data entries are stored in codeword memory 908. This invalid data entry is stored in the codeword memory 908 to ensure that the codeword for that run is stored in the correct location in memory when the run is complete (to ensure proper ordering that mimics the decoder). Serves as a space store in the stored data stream. In one embodiment, this invalid data entry includes an index via MUX 905 and an invalid indication (eg invalid bit) from control module 909. The address of the codeword memory 908 where the invalid entry is stored is the tail pointer (90
5) and stored in pointer memory 901 as a clue to the location for the run counter in codeword memory 908. The remaining data is the completed run count (e, g., Sorted run count)
As a head pointer (90 in the codeword memory 908).
3) and the tail pointer (904). The maximum number of invalid memory locations is 0 to L-1, where L is the number of run counts. One at the end of one run
When one codeword is completed, its run count is stored in the codeword memory 908 using the address stored in the pointer memory 901.

【0103】1つのランが始まる時に、そのランのため
のインデックスが符号語メモリ908に格納されるの
で、符号語メモリ908が満杯であるが、そのランが未
だ完了していないときには、そのインデックスは信号8
04と一緒に対応したランカウンタをリセットするため
に用いられる。符号語メモリ908に符号語またはイン
デックスを格納することに加え、1ビット(ここでは”
有効”ビットと呼ぶ)を用いて、これら2種類のデータ
のいずれが格納されているか指示する。
When a run begins, the index for that run is stored in codeword memory 908, so when codeword memory 908 is full, but that run is not yet complete, the index is Signal 8
Used with 04 to reset the corresponding run counter. In addition to storing the codeword or index in the codeword memory 908, 1 bit (here, "
A "valid" bit) is used to indicate which of these two types of data is stored.

【0104】ランを開始させも終了させもしないとき
は、ランカウント並べ替えユニットはアイドル状態であ
る。ランを開始させた終了させず、かつメモリが満杯の
ときは、符号語メモリ908より1つの符号語が出力さ
れる。この出力される符号語は、ヘッドポインタ(90
3)に保持されている当該確率クラスに関するアドレス
に格納されている符号語である。次に、ランを開始させ
たが終了させないときには(メモリが満杯であるか否か
にかかわらず)、インデックス入力713が、MUX9
05を介して、テールポインタ(904)により指示さ
れる符号語メモリ908のアドレスに格納される。そし
て、テールポインタ(904)は、インデックス入力7
13上のデータにより指定されたポインタメモリ901
のアドレス(例えば当該確率クラスに関するポインタメ
モリ901内のロケーション)に書き込まれる。テール
ポインタ(904)の書き込み後、テールポインタ(9
04)はインクリメントされる。
When neither the run is started nor ended, the run count rearrangement unit is in the idle state. When the run is started and not ended and the memory is full, one codeword is output from the codeword memory 908. This output codeword is the head pointer (90
It is a codeword stored in the address related to the probability class held in 3). Then, when a run is started but not ended (whether the memory is full or not), the index input 713 causes the MUX9
It is stored in the address of the code word memory 908 designated by the tail pointer (904) via 05. Then, the tail pointer (904) is set to the index input 7
Pointer memory 901 designated by the data on 13
Address (eg, location in pointer memory 901 for that probability class). After writing the tail pointer (904), the tail pointer (9
04) is incremented.

【0105】ランを終わらせたが、ランを開始させない
ときには、ポインタメモリ901に格納されているイン
デックスに対応したアドレスが読み出され、符号語入力
714上の完成した符号語を格納するための符号語メモ
リのロケーションとして用いられる。
When the run is ended but the run is not started, the address corresponding to the index stored in the pointer memory 901 is read out and the code for storing the completed code word on the code word input 714 is read. Used as a word memory location.

【0106】ランを開始させ、かつ、終了させ(すなわ
ち、1つのランが同時に始まりかつ終了する)、かつメ
モリが満杯のときには、符号語メモリ908より1つの
符号語が出力される。次に、ランを開始させ、かつ終了
させたときには(メモリが満杯であるか否かにかかわら
ず)、符号語入力714がテールポインタ(904)に
より指定された符号語メモリ908のアドレスに書き込
まれる。そして、テールカウンタ904は、次の利用可
能なロケーションを保持するようインクリメントされる
(例えば、1だけインクリメントされる)。
One codeword is output from the codeword memory 908 when a run is started and ended (ie one run begins and ends at the same time) and the memory is full. Then, when the run is started and ended (whether the memory is full or not), the codeword input 714 is written to the codeword memory 908 address specified by the tail pointer (904). . The tail counter 904 is then incremented (eg, incremented by 1) to hold the next available location.

【0107】本発明において、ランカウンタ並べ替えユ
ニット801は符号語を様々なタイミングで出力するで
あろう。一実施例では、符号語は有効な時または無効な
時に出力されるであろう。符号語は、無効な時でも、メ
モリが満杯状態で、かつ1つのランが完了していないな
らば出力されるであろう。最低限レートを維持するため
にも(すなわちレート制御のためにも)、無効な符号語
が出力されるかもしれない。また、データ全部のランカ
ウント並べ替えが済んだ時、または、リセット操作の結
果としてランカウント並べ替えユニットが符号語メモリ
908の中央へジャンプした時に、符号語メモリ908
のフラッシュ(flush)のために無効な符号語が出力さ
れるであろう。なお、かかる場合には、符号化装置がそ
のように動作していることを復号装置が知っていなけれ
ばならない。
In the present invention, the run counter rearrangement unit 801 will output codewords at various timings. In one embodiment, the codeword will be output when valid or invalid. The codeword will be output, even when it is invalid, if the memory is full and one run has not completed. Invalid codewords may be output to maintain a minimum rate (ie for rate control) as well. In addition, when the run count rearrangement of all the data is completed, or when the run count rearrangement unit jumps to the center of the code word memory 908 as a result of the reset operation, the code word memory 908
An invalid codeword will be output due to the flush of. In such a case, the decoding device must be aware that the encoding device is operating as such.

【0108】上述のように、符号語メモリ908が満杯
のときは何時でも符号語が出力される。符号語メモリ9
08が一旦満杯になると、符号語メモリ908への入力
(すなわち新たな符号語の開始)があるたびに、符号語
メモリ908からの出力が行なわれる。符号語メモリ9
08が満杯状態である時に、あるエントリーを更新して
も、符号語メモリ908の出力を生じさせない。すなわ
ち、1つのランを完了し、得られた符号語をその前に割
り当てられたメモリロケーションに書き込んでも、メモ
リ満杯出力を生じさせない。同様に、1つのランが終わ
り、ポインタメモリ901内の対応アドレスとヘッドカ
ウンタ903内のアドレスとが同一である時に、符号語
が直ちに出力され、そして、符号語メモリ908をアク
セスすることなくヘッドカウンタ903がインクリメン
トされるであろう。一実施例では、インクリメント後の
テールポインタ(904)がヘッドポインタ(903)
と等しい時に、メモリ満杯状態が発生する。したがっ
て、テールポインタ(904)が更新されると、ランカ
ウント並べ替えユニット801内のコントローラ論理
は、テールポインタ(904)とヘッドポインタ(90
3)を比較し、一致するときには符号語メモリ908が
満杯で1つの符号語を出力しなければならないと判断す
る。別の実施例では、メモリが満杯になる前に符号語が
出力されるであろう。例えば、ヘッドポインタ(90
3)によりアドレスされたキューの部分に有効な符号語
が入っていれば、その符号語が出力されるであろう。そ
のためには、キューの先頭部分を繰り返し調べて、その
中の符号語の状態を確認する必要がある。なお、符号語
メモリ908はファイルの符号化の終わりで空にされ
る。
As described above, the codeword is output whenever the codeword memory 908 is full. Codeword memory 9
Once 08 is full, every time there is an input to codeword memory 908 (ie, the start of a new codeword), an output from codeword memory 908 will occur. Codeword memory 9
Updating an entry when 08 is full does not cause the output of codeword memory 908. That is, completing one run and writing the resulting codeword to the previously allocated memory location does not cause a memory full output. Similarly, when one run is over and the corresponding address in pointer memory 901 and the address in head counter 903 are the same, the codeword is output immediately and the headcounter is accessed without accessing codeword memory 908. 903 will be incremented. In one embodiment, the tail pointer (904) after increment is the head pointer (903).
A memory full condition occurs when Therefore, when the tail pointer (904) is updated, the controller logic within the runcount reordering unit 801 is updated by the tail pointer (904) and the head pointer (90).
3) are compared, and when they match, it is determined that the codeword memory 908 is full and one codeword must be output. In another embodiment, the codeword will be output before the memory is full. For example, the head pointer (90
If the portion of the queue addressed by 3) contains a valid codeword, that codeword will be output. For that purpose, it is necessary to repeatedly check the head part of the queue and confirm the state of the codeword in it. Note that the codeword memory 908 is emptied at the end of encoding the file.

【0109】ランカウント並べ替えユニット801を利
用し、まず符号語メモリ908のヘッドポインタ(90
3)に指定されたアドレスから値(例えばデータ)を読
み出すことにより、1つの符号語が出力される。符号語
の出力はコントローラ論理によって制御調整される。有
効検出モジュール906は、その値が符号語であるか判
定するためのテストをする。換言すれば、有効検出モジ
ュール906は符号語が有効であるか判定する。一実施
例では、有効検出モジュール906は、各エントリーに
記憶されている有効性ビットを調べてエントリーの有効
性を判定する。その値が符号語であれば(すなわち、そ
の符号語が有効であれば)、その値が符号語として出力
される。他方、その値が符号語でなければ(すなわち、
その符号語が無効ならば)、現在のランカウント以上の
長さのMPSのランを有する符号語が出力されであろ
う。”0”符号語が現在のランを正確に表現する唯一の
符号語であるので、それが出力されるだろう。その出力
がなされた後に、ヘッドポインタ(903)は符号語メ
モリ908の次のロケーションを指すようインクリメン
トされる。あるいは、許容最短ランレングスの”1N”
を用いて、復号器に1つの符号語がLPS送出前に押し
出されたか否かだけチェックさせる。
Using the run count rearranging unit 801, first, the head pointer (90
One codeword is output by reading a value (for example, data) from the address designated in 3). The output of the codeword is controlled and regulated by the controller logic. Validity detection module 906 tests to determine if the value is a codeword. In other words, the validity detection module 906 determines whether the codeword is valid. In one embodiment, the validity detection module 906 examines the validity bit stored in each entry to determine the validity of the entry. If the value is a codeword (ie, the codeword is valid), then the value is output as a codeword. On the other hand, if its value is not a codeword (ie,
If that codeword is invalid), a codeword with a run of MPS that is longer than the current runcount will be output. It will be output because the "0" codeword is the only codeword that accurately represents the current run. After that output, the head pointer (903) is incremented to point to the next location in codeword memory 908. Alternatively, the allowable shortest run length is "1N"
Is used to force the decoder to only check if one codeword was pushed out before sending the LPS.

【0110】一実施例では、ランカウント並べ替えユニ
ット801は2クロックサイクル時間で動作する。第1
のクロックサイクルで、符号語メモリ908に入力が取
り込まれる。第2のクロックサイクルで、符号語メモリ
908の出力が生じる。
In one embodiment, runcount reordering unit 801 operates in two clock cycle times. First
In the clock cycle of, the input is loaded into the codeword memory 908. On the second clock cycle, the output of codeword memory 908 occurs.

【0111】ヘッドポインタ(903)が有効な符号語
をアドレスした時には必ず符号語が出力されるであろう
が、構成によっては、バッファが満杯の時にのみ符号語
が出力されるのが望ましいかもしれない。そのようにす
ると、システムの遅延が、ある符号語数分に固定し変動
しなくなる。符号語メモリ908が、1つのランが開始
し入力される時点と出力される時点との間に、所定数の
符号語を保持することが可能であるとすると、符号語メ
モリ908が満杯になるまで出力が行なわれないので、
上記遅延はその所定符号語数となる。なお、並べ替えの
ための遅延は、例えば符号化データ量またはオリジナル
データ量等によって依然として変動する。符号語メモリ
908を出力を出す前に満杯にさせれば、出力は1サイ
クルにつき1符号語を発生する。
The codeword will be output whenever the head pointer (903) addresses a valid codeword, but depending on the configuration, it may be desirable to output the codeword only when the buffer is full. Absent. By doing so, the system delay is fixed and does not fluctuate for a certain number of code words. Given that the codeword memory 908 can hold a predetermined number of codewords between the time a run starts and is input and the time it is output, the codeword memory 908 is full. Is not output until,
The delay is the predetermined number of code words. The delay for rearrangement still varies depending on, for example, the amount of encoded data or the amount of original data. If the codeword memory 908 is full before issuing the output, the output will generate one codeword per cycle.

【0112】なお、符号語メモリ908のあるロケーシ
ョンが無効としてマークされて場合に、その不使用ビッ
トを、当該ロケーションがどのようなランカウントのも
のかの識別情報を格納するために使用してもよい(すな
わち、そのロケーションを満たすべきコンテキストビン
または確率クラスが、そこに格納される)。当該情報
は、メモリが満杯になった場合の処理に役立つ。具体的
には、当該情報は、当該ランカウントに対する符号語が
完成していないこと、及び、それがたった今完成するこ
とをビットストリームジェネレータに指示するために利
用できる。この場合、無効な符号語を出力する決定がな
されているが、これはメモリ満杯状態により生じたので
あろう。このように、システムがランカウンタをリセッ
トする際に、当該情報は、ビットジェネレータ及びラン
カウントに関し、何時システムが動作を再開すべきか明
らかにする。
It should be noted that if a location in the codeword memory 908 is marked invalid, its unused bits may be used to store identification information of what runcount the location is. Good (ie, the context bin or probability class that should fill that location is stored there). This information is useful for handling when the memory is full. Specifically, this information can be used to indicate to the bitstream generator that the codeword for that runcount is not complete, and that it is complete. In this case, the decision was made to output an invalid codeword, which may have been caused by a memory full condition. Thus, as the system resets the run counter, this information reveals when the system should resume operation with respect to the bit generator and run count.

【0113】インデックス入力に関してであるが、複数
バンクの確率クラスが使用されている時のパイプライン
処理のため、インデックスがバンク識別情報を含むかも
しれない。すなわち、ある1つの確率クラスに対して複
数のランカウントがあるかもしれない。例えば、80%
符号に対して2つのランカウントがあるかもしれず、こ
の場合、その一方が用いられると、次には他方が用いら
れる。
Regarding the index input, but due to pipeline processing when multiple bank probability classes are used, the index may contain bank identification information. That is, there may be multiple runcounts for a probability class. For example, 80%
There may be two runcounts for a code, where one is used and the other is then used.

【0114】符号語は可変長であるから、符号語はその
長さを確認できるようなやり方で符号語メモリ908に
格納されなければならない。サイズを明示的に格納する
ことも可能であるかもしれないが、それではメモリ使用
量を最小にできない。R−符号では、0なる値をメモリ
に格納することで1ビットの”0”符号語を指示できる
ので、”1N”符号語を、プラオリティエンコーダによ
って最初の”1”からの長さを確認できるように格納で
きる。
Since codewords are of variable length, they must be stored in codeword memory 908 in such a way that their length can be ascertained. It may be possible to store the size explicitly, but that does not minimize memory usage. In the R-code, since a 1-bit "0" code word can be designated by storing a value of 0 in the memory, the length of the "1N" code word from the first "1" is confirmed by the priority encoder. Can be stored as you can.

【0115】符号語メモリ908がマルチポート(例え
ばデュアルポート)ならば、この設計は、1クロックあ
たり1符号語を処理するようパイプライン化することが
できる。符号語メモリ908のどのロケーションも複数
のポートからアクセスできるであろうから、符号語メモ
リ908のあるロケーションの書き込み(例えば無効ま
たは有効な符号語の格納)と、別のロケーションの読み
出し(例えば符号語の出力)とが同時に行ない得る。な
お、この場合には、複数のデータ及びアドレスバスをサ
ポートするようマルチプレクサを変更しなければならな
いであろう。
If the codeword memory 908 is multi-ported (eg dual ported) then this design can be pipelined to process one codeword per clock. Since any location in codeword memory 908 will be accessible from multiple ports, writing one location in codeword memory 908 (eg, storing invalid or valid codewords) and reading another location (eg, codeword memory 908). Output) and can be done simultaneously. Note that in this case the multiplexer would have to be modified to support multiple data and address buses.

【0116】符号化器が”0”符号語を出力する時及び
符号語メモリが満杯であるためにランカウンタをリセッ
トする時には必ず、復号器は同じことをしなければなら
ない。そのためには、復号器は符号化器の符号語メモリ
キューを模擬モデル化しなければならない。その方法に
ついては後述する。
The decoder must do the same whenever the encoder outputs a "0" codeword and whenever it resets the run counter because the codeword memory is full. To do so, the decoder must mimic the codeword memory queue of the encoder. The method will be described later.

【0117】なお、CMOSデバイス類の節電のた
め、”0”符号語が無効ランとして出力される時に”1
N”符号語のためのカウンタをディセーブルしてもよ
い。というのは、復号される”1N”符号語は有効であ
るが、”0”符号語だけは無効かもしれないからであ
る。
To save the power of CMOS devices, "1" is output when a "0" code word is output as an invalid run.
The counter for N "codewords may be disabled, because the decoded" 1N "codeword may be valid, but only the" 0 "codeword may be invalid.

【0118】<コンテキストベースの他の実施例>図1
3は、受け取ったデータを(確率クラスに対立するもの
としての)コンテキストに従って並べ替える、ランカウ
ント並べ替えユニットの他の実施例のブロック図であ
る。このランカウント並べ替えユニット1000は、R
−符号を使って並べ替えを行なう。図13において、ラ
ンカウント並べ替えユニット1000はポインタメモリ
1001、ヘッドカウンタ1002、テールカウンタ1
003、データマルチプレクサ(MUX)1004、ア
ドレスMUX1005、長さ計算ブロック1006、有
効検出ブロック1007及び符号語メモリ1008から
なる。符号語メモリ1008は符号語を並べ替えの間記
憶する。ポインタメモリ1001は、ランの途中のコン
テキストビンのための符号語メモリロケーションのアド
レスを格納する。ヘッドカウンタ1002とテールカウ
ンタ1003は、符号語メモリ1008をキューもしく
は循環バッファとしてアドレスさせることができるだけ
でなく、ポインタメモリ1001によりランダムアクセ
ス式にアドレスさせることができる。R−符号では、0
なる値をメモリに格納することで1ビットの”0”符号
語を指示することができるので、”1N”符号語を、プ
ラオリティエンコーダによって最初の”1”からの長さ
を確認できるように格納できる。長さ計算モジュール1
006は、プライオリティエンコーダのような働きをす
る。(もし他の可変長符号を使用するならば、符号語の
始まりをマークするために1つの”1”ビットを付加す
るほうが、符号語の長さを明示的に格納するためにlo
g2ビットを付加するよりもメモリ効率がよいであろ
う。) ランカウント並べ替えユニット1000はま
た、その要素1001〜1008の動作を調整制御する
ための不図示のコントローラ論理を有する。
<Other Embodiments Based on Context> FIG. 1
3 is a block diagram of another embodiment of a runcount reordering unit that reorders received data according to context (as opposed to probability class). This run count rearranging unit 1000 is
-Perform the sorting using the sign. In FIG. 13, the run count rearranging unit 1000 includes a pointer memory 1001, a head counter 1002, and a tail counter 1.
003, a data multiplexer (MUX) 1004, an address MUX 1005, a length calculation block 1006, a validity detection block 1007 and a code word memory 1008. Codeword memory 1008 stores codewords during rearrangement. The pointer memory 1001 stores the address of the codeword memory location for the context bin in the middle of the run. The head counter 1002 and the tail counter 1003 can not only address the codeword memory 1008 as a queue or a circular buffer, but can also be addressed by the pointer memory 1001 in a random access manner. 0 for R-code
Since a 1-bit "0" codeword can be specified by storing the value "0" in the memory, the length of the "1N" codeword from the first "1" can be confirmed by the priority encoder. Can be stored. Length calculation module 1
006 acts like a priority encoder. (If other variable length codes are used, it is better to add a "1" bit to mark the beginning of the codeword to store the codeword length explicitly.
It would be more memory efficient than adding g2 bits. The run count reordering unit 1000 also has controller logic (not shown) for regulating and controlling the operation of its elements 1001-1008.

【0119】ランカウント並べ替えユニット1000の
動作は、確率予測値をベースにしたランカウント並べ替
えユニットの動作に非常に似ている。新しいランを開始
すると、コンテキストビンを含む1つの無効エントリー
がテールポインタ(1003)に指定された符号語メモ
リ1008のアドレスに書き込まれる。次に、テールポ
インタ(1003)のアドレスが、ポインタメモリ10
01の、現在ランカウントのコンテキストビンのアドレ
スに格納される。そして、テールポインタ(1003)
がインクリメントされる。1つのランが完了した時に、
ポインタメモリ1001よりランカウントに対応したポ
インタが読み出され、そのポインタによって指示された
符号語メモリ1008のロケーションへ符号語が書き込
まれる。ランの開始でも終了でもなく、ヘッドポインタ
(1002)により指定された符号語メモリ1008の
ロケーションの内容が無効データであるときには、ヘッ
ドポインタ(1002)によりアドレスされた符号語が
読み出されて出力される。そして、ヘッドポインタ(1
002)がインクリメントされる。ランの開始と終了が
同時に起こる場合には、テールポインタ(1003)に
より指定された符号語メモリ1008のアドレスに符号
語が書き込まれ、それからテールポインタ(1003)
がインクリメントされる。
The operation of the runcount reordering unit 1000 is very similar to the operation of the runcount reordering unit based on probability estimates. When a new run is started, one invalid entry containing the context bin is written to the codeword memory 1008 address specified by the tail pointer (1003). Next, the address of the tail pointer (1003) is changed to the pointer memory 10
01 at the address of the current runcount context bin. And the tail pointer (1003)
Is incremented. When one run is completed,
A pointer corresponding to the run count is read from the pointer memory 1001 and the code word is written to the location of the code word memory 1008 designated by the pointer. It is neither the start nor the end of the run, and when the content of the location of the codeword memory 1008 designated by the head pointer (1002) is invalid data, the codeword addressed by the head pointer (1002) is read and output. It Then, the head pointer (1
002) is incremented. If the start and end of the run occur simultaneously, the codeword is written to the address of the codeword memory 1008 designated by the tail pointer (1003), and then the tail pointer (1003).
Is incremented.

【0120】同様に、1つのランが終わり、対応したポ
インタメモリ1001のアドレスとヘッドカウンタ10
02のアドレスとが同一である時には、符号語を直ちに
出力することができ、また、符号語メモリ1008をア
クセスしることなくヘッドカウンタ1002の値をイン
クリメントすることができる。
Similarly, after one run ends, the address of the corresponding pointer memory 1001 and the head counter 10
When the address of 02 is the same, the code word can be output immediately, and the value of the head counter 1002 can be incremented without accessing the code word memory 1008.

【0121】”コンテキスト別”ランカウントシステム
では、それぞれのコンテキストがポインタメモリ100
1の1つのロケーションを必要とするので、BG及びP
EM状態メモリを拡張してポインタメモリ1001を実
現してもよい。ポインタメモリ1001の幅は、符号語
メモリアドレスに必要なサイズと等しい。
In the "per context" run count system, each context has a pointer memory 100.
BG and P because it requires one location
The pointer memory 1001 may be realized by expanding the EM state memory. The width of the pointer memory 1001 is equal to the size required for the codeword memory address.

【0122】符号語メモリ1008のロケーション数
は、設計者が特定の構成において選べばよい。このメモ
リのサイズを制限すると圧縮効率が下がるので、コスト
/圧縮率の兼ね合いがある。符号語メモリの幅は、最大
の符号語に有効/無効表示用の1ビットを足したものに
等しい。
The number of locations of the code word memory 1008 may be selected by the designer in a specific configuration. Limiting the size of this memory lowers the compression efficiency, so that there is a trade-off between cost / compression ratio. The width of the codeword memory is equal to the maximum codeword plus one bit for valid / invalid indication.

【0123】図61のテーブル13に示したR2(2)符号
を用いる例を使って並べ替えを説明する。図62のテー
ブル14は、コンテキスト別にラベル付けされた、並べ
替えられるべきデータを示す(0=MPS,優勢シンボ
ル;1=LPS,劣勢シンボル)。コンテキストは2つ
しかない。符号化前ビットの番号は符号化前ビットクロ
ックサイクルによる時刻を示す。ランの始まりと終わり
が示されており、ランの終わりに符号語が示されてい
る。
The rearrangement will be described using an example of using the R2 (2) code shown in the table 13 of FIG. The table 14 of FIG. 62 shows the data to be sorted, labeled by context (0 = MPS, dominant symbol; 1 = LPS, inferior symbol). There are only two contexts. The pre-encoding bit number indicates the time in the pre-encoding bit clock cycle. The beginning and end of the run are shown, and the codeword is shown at the end of the run.

【0124】このデータ例に対する並べ替え動作が図6
3のテーブル15に示されている。4つのロケーション
0〜3を持つ符号語メモリが使用されるが、本例ではこ
のサイズで十分でありオーバーフローは生じない。各行
は、1つの動作、すなわち、あるコンテキストのランの
開始もしくは終了、または1つの符号語の出力を行なっ
た後のシステムの状態を示す。”x”は”考慮不要の”
メモリロケーションを示すために用いられている。いく
つかの符号化前ビットについては、ランが始まりも終わ
りもしないので、ランカウント並べ替えユニットはアイ
ドル状態である。ランを終了する符号化ビットについて
は、1つ以上の符号語が出力される可能性があり、シス
テム状態を様々に変化させるかもしれない。
The sorting operation for this data example is shown in FIG.
3 in Table 15. A codeword memory with four locations 0-3 is used, but in this example this size is sufficient and no overflow occurs. Each row shows the state of the system after one operation, the start or end of a run of a context, or the output of a codeword. "X" means "no need to consider"
Used to indicate memory location. For some uncoded bits, the runcount reordering unit is idle because the run does not begin or end. For coded bits that terminate a run, one or more codewords may be output, which may result in varying system states.

【0125】図63のテーブル15において、ヘッドポ
インタとテールポインタは0に初期化されるが、これは
符号語メモリ(例えばキュー)に何も記憶されていない
ことを意味する。ポインタメモリは、各コンテキストに
つき1つ、計2つの記憶ロケーションがあるように表わ
されている。各ロケーションは、ビット番号1の前
は、”考慮不要の”値を記憶している。符号語メモリは
4符号語の深さを持つもとして示されているが、それら
は全て最初は”考慮不要の”値である。
In Table 15 of FIG. 63, the head pointer and tail pointer are initialized to 0, which means that nothing is stored in the codeword memory (eg queue). The pointer memory is represented as having two storage locations, one for each context. Each location stores a "don't care" value before bit number one. The codeword memory is shown as having a depth of 4 codewords, but they are all initially "don't care" values.

【0126】ビット番号1について受け取られたデータ
に対し、ヘッドポインタは符号語メモリロケーション0
を指示したままである。復号器はデータを期待するの
で、次に利用可能な符号語メモリロケーション0が符号
語に割り当てられ、無効な値がメモリロケーション0に
書き込まれる。コンテキストは0であるため、符号語に
割り当てられた符号語メモリロケーションのアドレスが
0コンテキスト用のポインタメモリロケーション(ポイ
ンタメモリロケーション0)に格納される。かくし
て、”0”がポインタメモリロケーション0に格納され
る。テールポインタはインクリメントされて次の符号語
メモリロケーション1を指す。
For the data received for bit number 1, the head pointer is codeword memory location 0.
Is still instructed. Since the decoder expects data, the next available codeword memory location 0 is assigned to the codeword and the invalid value is written to memory location 0. Since the context is 0, the address of the codeword memory location assigned to the codeword is stored in the pointer memory location for 0 context (pointer memory location 0). Thus, "0" is stored in pointer memory location 0. The tail pointer is incremented to point to the next codeword memory location 1.

【0127】ビット番号2に対応するデータに対して、
ヘッドカウンタは最初のメモリロケーションを指示した
ままである(それを更新するような出力がなかったた
め)。このデータは第2のコンテキスト、つまりコンテ
キスト1に対応するので、次の符号語メモリロケーショ
ン、すなわちテールポインタにより指示された符号語メ
モリロケーション1が符号語に割り当てられ、無効な値
が同ロケーションに書き込まれる。そのアドレス、すな
わち符号語メモリロケーション1が、コンテキスト1に
対応したポインタメモリロケーション1に書き込まれ
る。すなわち、2番目の符号語メモリロケーションのア
ドレスがポインタメモリロケーション1に書き込まれ
る。そして、テールポインタがインクリメントされる。
For the data corresponding to bit number 2,
The head counter remains pointing to the first memory location (because there was no output to update it). This data corresponds to the second context, context 1, so that the next codeword memory location, codeword memory location 1 pointed to by the tail pointer, is assigned to the codeword and an invalid value is written to it. Be done. That address, codeword memory location 1, is written to pointer memory location 1, which corresponds to context 1. That is, the address of the second codeword memory location is written to pointer memory location 1. Then, the tail pointer is incremented.

【0128】ビット番号3に対応するデータに対して、
並べ替えユニットは、ランの始まりでも終わりでもない
ので、アイドルになる。
For the data corresponding to bit number 3,
The sorting unit is neither the beginning nor the end of the run, so it becomes an idol.

【0129】ビット番号4に対応するデータに対して、
ランの終了がコンテキスト1に関して指示される。した
がって、符号語”101”が、コンテキスト1用ポイン
タメモリロケーションにより指示されている、コンテキ
スト1に割り当てられた符号語メモリロケーション(符
号語メモリロケーション1)に書き込まれる。ヘッドポ
インタとテールポインタはそのままであり、コンテキス
ト1用のポインタメモリロケーションの値は再度利用さ
れることはないであろうから、それは”考慮不要な”値
である。
For the data corresponding to bit number 4,
The end of the run is indicated for context 1. Therefore, the code word “101” is written to the code word memory location assigned to context 1 (code word memory location 1) pointed to by the context 1 pointer memory location. It is a "don't care" value because the head and tail pointers remain the same and the value of the pointer memory location for context 1 will not be reused.

【0130】ビット番号5に対応するデータに対して、
並べ替えユニットは、ランが始まりも終わりもしないの
で、アイドルになる。
For the data corresponding to bit number 5,
The sorting unit becomes idle because the run does not begin or end.

【0131】ビット番号6に対応するデータに対して、
ビット2に関し上に述へたと同じ種類の動作が起きる。
For the data corresponding to bit number 6,
The same type of operation as described above for bit 2 occurs.

【0132】ビット番号7に対応するデータに対して、
コンテキスト0の符号語のランが終わる。この場合、符
号語”0”が、コンテキスト0用のポインタメモリロケ
ーション(ポインタメモリロケーション0)により指示
された符号語メモリロケーション(符号語メモリロケー
ション0)に書き込まれる。そして、このポインタメモ
リロケーションの値は再び使用されないので、それは”
考慮不要な”値である。また、ヘッドポインタにより指
定された符号語メモリロケーションは有効データを格納
している。したがって、この有効データは出力され、ヘ
ッドポインタはインクリメントされる。ヘッドポインタ
をインクリメントすることにより、ヘッドポインタに有
効な符号語を格納している別の符号語メモリロケーショ
ンを指示させる。したがって、この符号語が出力され、
ヘッドポインタは再度インクリメントされる。なお、こ
の例では、符号語が出力されるのは、それが可能な時で
あり、符号語メモリが完全に一杯になった時ではない。
For the data corresponding to bit number 7,
The run of the codeword of context 0 ends. In this case, the codeword "0" is written to the codeword memory location (codeword memory location 0) pointed to by the pointer memory location for context 0 (pointer memory location 0). And because the value of this pointer memory location is not used again, it is
It is a value that does not need to be considered. Also, the codeword memory location specified by the head pointer contains valid data. Therefore, this valid data is output and the head pointer is incremented. This causes the head pointer to point to another codeword memory location that stores a valid codeword, so that this codeword is output,
The head pointer is incremented again. Note that in this example, the codeword is output when it is possible, not when the codeword memory is completely full.

【0133】上述のようにして符号化前ビットの処理が
連続して行なわれる。なお、符号語メモリロケーション
は特定のコンテキスト用に専用化されていないので、デ
ータファイルの符号化の間じゅう、どのコンテキストか
らの符号語でも特定の符号語メモリロケーションに格納
できる。
As described above, the processing of the uncoded bits is continuously performed. It should be noted that the codeword memory location is not dedicated to a particular context, so codewords from any context can be stored in a particular codeword memory location throughout the encoding of a data file.

【0134】<ビットパックユニット>ビットパッキン
グ(packing)について図7で説明する。図7には、ビ
ットパッキングの前と後の再配列ユニットの処理データ
が示されている。図7に16個の可変長符号語が示され
ているが、それらに復号器で利用される順番を示すため
1から16までの番号が付けられている。どの符号語も
3本の符号化ストリーム中の1本に割り当てられる。各
符号化ストリーム中のデータはインターリーブド語と呼
ばれる固定長語へ分解される。(なお、1つの可変長符
号語が2つのインターリーブド語に分解されることもあ
る。) この例では、インターリーブド語は1本のイン
ターリーブドストリームへと順序付けられるので、ある
特定のインターリーブド語中の最初の可変長符号語(ま
たはその一部)の順番で、そのインターリーブド語の順
番が決まる。他の種類の順序付け規準を採用してもよ
い。複数の符号化ストリームをインターリーブする利点
は、データ転送のために単一の符号化データチャネルを
使用できることと、可変長シフト操作をストリーム毎に
並列にまたはパイプラインで行なうことができることで
ある。
<Bit Packing Unit> Bit packing will be described with reference to FIG. FIG. 7 shows the processed data of the rearrangement unit before and after bit packing. Sixteen variable length codewords are shown in FIG. 7, which are numbered 1 to 16 to indicate the order in which they will be utilized in the decoder. Every codeword is assigned to one of the three coded streams. The data in each encoded stream is decomposed into fixed-length words called interleaved words. (Note that one variable-length codeword may be decomposed into two interleaved words.) In this example, the interleaved words are ordered into one interleaved stream, so that a particular interleaved word The order of the first variable-length codeword (or part thereof) in it determines the order of the interleaved words. Other types of ordering criteria may be adopted. The advantage of interleaving multiple coded streams is that a single coded data channel can be used for data transfer and that variable length shift operations can be performed per stream in parallel or in pipelines.

【0135】本発明のビットパックユニット802は、
ランカウント並べ替えユニット801より可変長符号語
を受け取り、それらをインターリーブド語にパックす
る。ビットパックユニット802は、可変長符号語の処
理を行なうための論理と、固定長のインターリーブド語
を正しい順序で出力するための併合キュー型の並べ替え
ユニットとからなる。一実施例では、符号語は、最高1
符号語/クロックサイクルの速度でランカウント並べ替
えユニットより受け取られる。ビットパックユニット8
02の一実施例のブロック図が図14に示されている。
次に述べる実施例においては、4本のインターリーブド
ストリームが使われ、各インターリーブド語は16ビッ
トであり、符号語の長さは1ビットから13ビットまで
変化する。一実施例では、単一のビットパックユニット
が全ストリームを処理するようパイプライン化される。
本発明のビットパックユニット802がデュアルポート
のメモリ(またはレジスタファイル)を用いるならば、
1クロックサイクルあたり1インターリーブド語を出力
可能である。この速度は、符号化器の他の部分に追従す
るために要求される速度より高速であろう。
The bit pack unit 802 of the present invention is
It receives variable length codewords from runcount reordering unit 801 and packs them into interleaved words. The bit pack unit 802 includes logic for processing variable length code words and a merge queue type rearrangement unit for outputting fixed length interleaved words in the correct order. In one embodiment, the codeword is at most 1.
Received from the runcount reordering unit at the rate of codewords / clock cycles. Bit pack unit 8
A block diagram of one embodiment of 02 is shown in FIG.
In the embodiment described below, four interleaved streams are used, each interleaved word is 16 bits, and the codeword length varies from 1 bit to 13 bits. In one embodiment, a single bitpack unit is pipelined to handle the entire stream.
If the bit pack unit 802 of the present invention uses a dual port memory (or register file),
One interleaved word can be output per clock cycle. This speed may be faster than the speed required to follow the rest of the encoder.

【0136】図14において、ビットパックユニット8
02はパッキング論理1101、ストリームカウンタ1
102、メモリ1103、テールポインタ1104及び
ヘッドカウンタ1105からなる。パッキング論理11
01は、符号語を受け取るように接続され、またストリ
ームカウンタ1102と接続される。ストリームカウン
タ1102はメモリ1103とも接続される。メモリ1
103には、テールポインタ1104とヘッドカウンタ
1105も接続される。
In FIG. 14, the bit pack unit 8
02 is packing logic 1101 and stream counter 1
102, a memory 1103, a tail pointer 1104, and a head counter 1105. Packing logic 11
01 is connected to receive the codeword and is also connected to the stream counter 1102. The stream counter 1102 is also connected to the memory 1103. Memory 1
A tail pointer 1104 and a head counter 1105 are also connected to 103.

【0137】ストリームカウンタ1102は、現在の入
力符号語が関係したインターリーブド語を監視する。一
実施例では、ストリームカウンタ1102は、0からN
−1までストリームを繰り返しカウントする。ここで、
Nはストリーム数である。ストリームカウンタ1102
は、N−1に達すると、再び0からカウントを始める。
一実施例では、ストリームカウンタ1102は2ビット
カウンタで0から3までカウントする(インターリーブ
ドストリームが4本の場合)。一実施例では、ストリー
ムカウンタ1102は0に初期化される(例えばグロー
バルリセットによって)。
Stream counter 1102 monitors the interleaved word to which the current input codeword is related. In one embodiment, stream counter 1102 may range from 0 to N.
The stream is repeatedly counted up to -1. here,
N is the number of streams. Stream counter 1102
Starts counting from 0 again when it reaches N-1.
In one embodiment, stream counter 1102 is a 2-bit counter that counts from 0 to 3 (for four interleaved streams). In one embodiment, stream counter 1102 is initialized to 0 (eg, by global reset).

【0138】パッキング論理1101は、現在の入力符
号語を前に入力した符号語と併合してインターリーブド
語を作る。各符号語の長さは変化するであろう。したが
って、パッキング論理1101は、これら可変長符号語
を固定長語へ詰め込む。パッキング論理1101によっ
て生成されたインターリーブド符号語は順番にメモリ1
103へ出力され、それを出力する時までメモリ110
3に記憶される。一実施例では、メモリ1103は64
個の16ビット語を持つスタティックRAM(SRA
M)またはレジスタファイルである。
Packing logic 1101 merges the current input codeword with the previously input codeword to create an interleaved word. The length of each codeword will vary. Therefore, packing logic 1101 packs these variable length codewords into fixed length words. The interleaved codewords generated by the packing logic 1101 are stored in memory 1 in order.
103 is output to the memory 110 until it is output
3 is stored. In one embodiment, memory 1103 has 64
Static RAM with 16 16-bit words (SRA
M) or a register file.

【0139】インターリーブド語はメモリ1103に格
納される。本発明においては、メモリ1103のサイズ
は2つのケースを扱うことができるだけの大きさであ
る。一方のケースは、ある1つのインターリーブドスト
リームが最小の長さの符号語を有し、それ以外のインタ
ーリーブドストリームが最大の長さの符号語を有する通
常動作の場合である。この第1のケースは3×3=39
のメモリロケーションを必要とする。他方のケースは、
ある1つのインターリーブドストリームが最小長の、つ
まり短い符号語を有し、それ以外のインターリーブドス
トリームが最大長の、つまり長い符号語を有する初期化
の場合である。第2のケースのためには、2×3×13
=78のメモリロケーションで足りるが、PEMの動作
によって56まで絞ることが可能である。
The interleaved word is stored in the memory 1103. In the present invention, the size of the memory 1103 is large enough to handle two cases. One case is the case of normal operation, in which one interleaved stream has a minimum length codeword and the other interleaved stream has a maximum length codeword. This first case is 3 × 3 = 39
Need memory locations. The other case is
In the case of initialization, one interleaved stream has a minimum length, that is, a short codeword, and the other interleaved stream has a maximum length, that is, a long codeword. For the second case, 2 × 3 × 13
A memory location of = 78 is sufficient, but it can be narrowed down to 56 by the operation of the PEM.

【0140】メモリ1103とストリームカウンタ11
02及びテールポインタ1104は協動して並べ替えを
遂行する。ストリームカウンタ1102は、メモリ11
03により受け取られつつある符号語の現在ストリーム
を指示する。各インターリーブドストリームは少なくと
も1つのテールポインタと関係付けられる。テールポイ
ンタ1104とヘッドカウンタ1105は符号語の並べ
替えを行なう。1ストリームあたり2つのテールポイン
タがある理由は、インターリーブド語N−1のデータに
次の符号語の始まりが含まれている時に、インターリー
ブド語Nが復号装置により要求されるからである。一方
のテールポインタは、ある一定のインターリーブドスト
リームからの次のインターリーブド語を格納するメモリ
1103のロケーションを決定する。他方のテールポイ
ンタは、該次のインターリーブド語の次のインターリー
ブド語を格納するメモリ1103のロケーションを決定
する。こうするとで、復号器がインターリーブド語N−
1を要求する時刻が分かった時に、インターリーブド語
Nのロケーションを指定可能になる。一実施例では、テ
ールポインタは8個の6ビットレジスタである(1スト
リームにつきテールポインタ2個)。
Memory 1103 and stream counter 11
02 and tail pointer 1104 cooperate to perform rearrangement. The stream counter 1102 is the memory 11
Indicates the current stream of codewords being received by 03. Each interleaved stream is associated with at least one tail pointer. The tail pointer 1104 and the head counter 1105 rearrange the codewords. The reason there are two tail pointers per stream is that interleaved word N is requested by the decoding device when the data of interleaved word N-1 contains the beginning of the next codeword. One tail pointer determines the location in memory 1103 that stores the next interleaved word from a given interleaved stream. The other tail pointer determines the location in memory 1103 that stores the next interleaved word of the next interleaved word. This allows the decoder to interleave the word N-
The location of the interleaved word N can be specified when the time of requesting 1 is known. In one embodiment, the tail pointers are eight 6-bit registers (two tail pointers per stream).

【0141】一実施例では、符号化の初めに、テールポ
インタ1104は、初めの8個のインターリーブド語
(各ストリームから2語)が、各ストリームから1個ず
つ順にメモリ1103に格納されるように設定される。
初期化後、パッキング論理1101が、ある符号ストリ
ームの新しいインターリーブド語に着手する度に、”
次”テールポインタに”次の次”テールポインタの値が
設定され、当該符号ストリーム用の”次の次”テールポ
インタに次に利用できるメモリロケーションが設定され
る。このように、各ストリーム毎にテールポインタが2
つある。他の実施例では、各符号ストリームにつきテー
ルポインタが1個だけ使用され、テールポインタは次に
メモリ1203に格納すべきインターリーブド語を指示
する。
In one embodiment, at the beginning of encoding, the tail pointer 1104 ensures that the first eight interleaved words (two words from each stream) are stored sequentially in memory 1103, one from each stream. Is set to.
After initialization, each time packing logic 1101 undertakes a new interleaved word for a codestream,
The "next next" tail pointer is set to the value of the "next next" tail pointer, and the "next next" tail pointer for the code stream is set to the next available memory location. 2 tail pointers
There is one. In another embodiment, only one tail pointer is used for each codestream, the tail pointer pointing to the interleaved word to be stored in memory 1203 next.

【0142】ヘッドカウンタ1105は、ビットパック
ユニット802より次に出力されるインターリーブド語
のメモリロケーションを決定するために利用される。説
明している実施例では、ヘッドカウンタ1105は6ビ
ットカウンタからなり、1つのインターリーブド語全体
を一度に出力するようインクリメントされる。
The head counter 1105 is used to determine the memory location of the interleaved word output next from the bit pack unit 802. In the described embodiment, the head counter 1105 comprises a 6-bit counter, which is incremented to output an entire interleaved word at a time.

【0143】メモリ1103は、並べ替えのために利用
されるほか、符号化器とチャネルとの間のFIFOバッ
ファとしても利用できる。このメモリを、並べ替えに必
要とされるメモリより大きくするのが望ましく、そうす
れば、チャネルが符号化器に追従できない時に、FIF
Oがほぼ満杯であるという信号を使って符号化器を停止
させることができる。1ビット/サイクルの符号化器
は、1サイクル毎に1つのインターリーブド語を生成す
ることはできない。ある符号化器があるチャネルとよく
整合している場合、そのチャネルは毎サイクル、1つの
インターリーブド語を受け入れることはないであろうか
ら、何等かのFIFOバッファが必要である。例えば、
32クロックサイクル毎に1つの16ビットインターリ
ーブド語を受け入れ可能なチャネルは、圧縮率が2:1
以上の時に、2:1帯域幅拡大のためのに十分整合した
設計であろう。
The memory 1103 is used not only for rearrangement, but also as a FIFO buffer between the encoder and the channel. It is desirable to make this memory larger than the memory required for the reordering so that the FIF can be used when the channel cannot follow the encoder.
The signal that O is almost full can be used to stop the encoder. A 1-bit / cycle encoder cannot generate one interleaved word per cycle. If a given encoder is well matched to a channel, that channel will not accept one interleaved word every cycle, so some FIFO buffer is needed. For example,
A channel that can accept one 16-bit interleaved word every 32 clock cycles has a compression ratio of 2: 1.
At this point, it would be a well-matched design for 2: 1 bandwidth expansion.

【0144】<本発明のパッキング(packing)論理>
パッキング論理のブロック図が図15に示されている。
図15において、パッキング論理1101はサイズ(si
ze)ユニット1201、1組のアキュムレータ120
2、シフタ1203、MUX1204、1組のレジスタ
1205及びORゲート論理1206からなる。サイズ
ユニット1201は、符号語を受け取るよう接続されて
おり、またアキュムレータ1202と接続されている。
これらのアキュムレータ1202並びに符号語はシフタ
1203と接続されている。シフタ1203はMUX1
204及びORゲート論理1206と接続されている。
MUX1204はレジスタ1205及びORゲート論理
1206とも接続されている。これらレジスタ1205
はORゲート論理1206とも接続されている。
<Packing Logic of the Present Invention>
A block diagram of the packing logic is shown in FIG.
In FIG. 15, the packing logic 1101 has a size (si
ze) unit 1201, one set of accumulator 120
2, shifter 1203, MUX 1204, a set of registers 1205 and OR gate logic 1206. The size unit 1201 is connected to receive the codeword and is also connected to the accumulator 1202.
These accumulators 1202 and code words are connected to the shifter 1203. Shifter 1203 is MUX1
204 and OR gate logic 1206.
MUX 1204 is also connected to register 1205 and OR gate logic 1206. These registers 1205
Are also connected to OR gate logic 1206.

【0145】一実施例では、符号語は、未使用ビットが
0にされた13ビットバスにより入力される。これらの
0にされた未使用ビットが”1N”符号語の”1”に隣
接しているため、サイズユニット1201内部のプライ
オリティエンコーダを使って、”1N”符号語の長さを
決定し、また”0”符号語のサイズを生成することがで
きる。
In one embodiment, codewords are input over a 13-bit bus with unused bits set to zero. Since these unused zeroed bits are adjacent to the "1" in the "1N" codeword, the priority encoder inside the size unit 1201 is used to determine the length of the "1N" codeword, and A size of "0" codeword can be generated.

【0146】アキュムレータ1202は、各インターリ
ブドストリーム毎に1個ずつの複数のアキュムレータか
らなる。各インターリーブドストリーム用のアキュムレ
ータは、現在のインターリーブド語のそれまでのビット
数の記録を保持する。一実施例では、各アキュムレータ
は各ストリームのために利用される4ビット加算器(キ
ャリー出力付)と4ビットレジスタとからなる。一実施
例では、その加算器の出力がアキュムレータの出力であ
る。他の実施例では、そのレジスタの出力がアキュムレ
ータの出力である。サイズユニット1201より受け取
った符号語サイズを利用し、アキュムレータは、現在の
符号語を当該ストリームの現在のインターリーブド語を
保持しているレジスタへ連結するためにシフトすべきビ
ット数を決定する。
The accumulator 1202 is composed of a plurality of accumulators, one for each interleaved stream. The accumulator for each interleaved stream keeps a record of the previous number of bits of the current interleaved word. In one embodiment, each accumulator consists of a 4-bit adder (with carry output) and a 4-bit register utilized for each stream. In one embodiment, the output of that adder is the output of the accumulator. In another embodiment, the output of that register is the output of the accumulator. Utilizing the codeword size received from size unit 1201, the accumulator determines the number of bits to shift to concatenate the current codeword to the register holding the current interleaved word of the stream.

【0147】アキュムレータの現在値を基づき、シフタ
1203は、現在の符号語を、それが当該インターリー
ブド語中の前の符号語の後に適切に続くように整列す
る。このようにして、符号化器内のデータは復号器の順
序へ変更される。シフタ1203の出力は28ビットで
あり、これは現在の符号語からのビットが最終的に出力
される28ビットの上位12ビットに入るようにするた
め、現在のインターリーブド語の15ビットに13ビッ
トの符号語を付加しなければならない場合を扱う。な
お、シフタ1203は、フィードバックなしに動作する
ので、パイプライン化が可能である。一実施例では、シ
フタ1203はバレル(barrel)シフタからなる。
Based on the current value of the accumulator, shifter 1203 aligns the current codeword so that it properly follows the previous codeword in the interleaved word. In this way, the data in the encoder is changed to the decoder order. The output of shifter 1203 is 28 bits, which is 13 bits out of 15 bits of the current interleaved word so that the bits from the current codeword will be in the upper 12 bits of the final 28 bits output. Handles the case where the codeword of must be added. Since the shifter 1203 operates without feedback, it can be pipelined. In one embodiment, shifter 1203 comprises a barrel shifter.

【0148】レジスタ1205は現在のインターリーブ
ド語のビットを格納する。一実施例では、各インターリ
ーブドストリーム用の16ビットレジスタが、現在のイ
ンターリーブド語中の前のビットを保持する。
Register 1205 stores the bits of the current interleaved word. In one embodiment, a 16-bit register for each interleaved stream holds the previous bit in the current interleaved word.

【0149】最初に、1つのストリームの1つの符号語
がシフタ1203に受け取られ、一方、サイズユニット
1201が、その符号語のサイズを当該ストリームに対
応したアキュムレータへ指示する。そのアキュムレータ
は、グローバルリセットにより初期値0が設定されてい
る。アキュムレータ値が0であるため、その符号語はシ
フトされず、OR論理1206により当該ストリーム対
応のレジスタの内容と論理和される。しかし、ある実施
例では、インターリーブド語の初めでも1N符号語を適
切に整列せしめるためシフトしなければならない。この
レジスタは0に初期設定されているので、論理和演算の
結果は、符号語をOR論理1206の最右端ビット位置
へ入れることになり、そしてMUX1204を介しレジ
スタへフィードバックされて当該ストリームの次の符号
語まで格納される。このように、初めは、シフタ120
3は通過路として作用する。なお、最初の符号語のビッ
ト数が、今現在、アキュムレータに格納されている。当
該ストリームのための次の符号語を受け取ると、アキュ
ムレータの値がシフタ1203へ送られ、符号語はその
ビット数分、左へシフトされてインターリーブド語の前
に入力したビットと結合される。シフトされた語の他の
ビットに0が設定される。当該ストリームに対応したレ
ジスタからのビットは、OR論理1206により、シフ
タ1203からのビットと結合される。アキュムレータ
がキャリー出力表示(例えば信号)を出さないときは、
現在の符号語を完成するため、さらにビットが必要であ
るので、論理和演算により得られたデータはMUX12
04を介しレジスタに戻され保存される。一実施例で
は、MUX1204は2:1マルチプレクサである。ア
キュムレータがキャリー出力を発生した時には、OR論
理1206により論理和された16ビットデータは1つ
の完成したインターリーブド語であるので、その後に出
力される。MUX1204は、レジスタへ、初めの16
ビットに続けて追加ビット(例えば、シフタ1203か
ら出力された28ビット中の上位12ビット)をロード
せしめ、残りのビット位置に0を入れる。
First, one codeword of one stream is received by shifter 1203, while size unit 1201 indicates the size of that codeword to the accumulator corresponding to that stream. An initial value 0 is set to the accumulator by global reset. Since the accumulator value is 0, the code word is not shifted and is ORed with the contents of the register corresponding to the stream by the OR logic 1206. However, in some embodiments, even at the beginning of an interleaved word, the 1N codewords must be shifted in order to be properly aligned. Since this register is initialized to 0, the result of the OR operation will put the code word into the rightmost bit position of the OR logic 1206 and will be fed back to the register via the MUX 1204 to the next in the stream. The code word is stored. Thus, initially, the shifter 120
3 acts as a passage. The bit number of the first code word is currently stored in the accumulator. When the next codeword for the stream is received, the value of the accumulator is sent to the shifter 1203, and the codeword is shifted left by that number of bits and combined with the bits input before the interleaved word. Zeros are set in the other bits of the shifted word. The bit from the register corresponding to the stream is combined with the bit from shifter 1203 by OR logic 1206. If the accumulator does not give a carry output indication (eg signal),
Since more bits are needed to complete the current codeword, the data obtained by the OR operation is MUX12.
It is returned to the register via 04 and saved. In one embodiment, MUX 1204 is a 2: 1 multiplexer. When the accumulator produces a carry output, the 16-bit data OR'ed by the OR logic 1206 is one completed interleaved word and will be output thereafter. The MUX 1204 puts the first 16
An additional bit (for example, the upper 12 bits of the 28 bits output from the shifter 1203) is loaded following the bit, and 0 is inserted in the remaining bit positions.

【0150】MUX1204及びインターリーブド語出
力のための制御は、アキュムレータからのキャリー出力
信号を利用する。一実施例では、マルチプレクサ120
4は16個の2:1マルチプレクサからなり、その中の
4個のマルチプレクサは一方の入力が常に0にされる。
The control for MUX 1204 and interleaved word output utilizes the carry output signal from the accumulator. In one embodiment, multiplexer 120
4 consists of 16 2: 1 multiplexers, of which 4 multiplexers have one input always zeroed.

【0151】<並べ替えのオプション>本発明は、デー
タの並べ替えを行なうための多様なオプションを提供す
る。例えば、複数の符号ストリームを持つシステムにお
いては、それら符号ストリームは図7に示したようなイ
ンターリーブド語に並べ替えられなければならない。本
発明は、インターリーブド語への並べ替えを遂行する様
々な方法を提供する。
<Sorting Options> The present invention provides various options for sorting data. For example, in a system with multiple codestreams, those codestreams must be reordered into interleaved words as shown in FIG. The present invention provides various methods of accomplishing interleaved permutation.

【0152】データをインターリーブド語へ並べ替える
ための一つの方法は、図32に示すようにスヌーパー復
号器を利用する方法である。図32において、複数のラ
ンカウント並べ替えユニット2501a〜2501nは
符号語ストリームのほかに符号語情報を受け取るよう接
続されている。各ランカウント並べ替えユニットは符号
語出力とサイズ出力を発生する。ビットパックユニット
2502a〜2502nのような別々のビットパッキン
グ論理(1101)ユニットが、ランカウント並べ替え
ユニット2501a〜2501nのそれぞれの符号語出
力及びサイズ出力を受け取るよう接続される。ビットパ
ックユニット2502a〜2502nはインターリーブ
ド語を出力し、これらはMUX2503及びスヌーパー
復号器2504に接続される。スヌーパー復号器250
4は選択制御信号を出し、この選択制御信号はMUX2
503に受け取られ、どのインターリーブド語を符号ス
トリームへ出力すべきかをMUX2503に指示する。
One method for rearranging data into interleaved words is to use a snooping decoder as shown in FIG. In FIG. 32, a plurality of runcount rearranging units 2501a to 2501n are connected to receive codeword information in addition to the codeword stream. Each runcount reordering unit produces a codeword output and a size output. Separate bit packing logic (1101) units, such as bit pack units 2502a-2502n, are connected to receive the respective codeword and size outputs of runcount reordering units 2501a-2501n. The bit pack units 2502a to 2502n output interleaved words, which are connected to a MUX 2503 and a snooper decoder 2504. Snoop decoder 250
4 outputs a selection control signal, and this selection control signal is MUX2.
Received at 503 and instructing MUX 2503 which interleaved words should be output to the codestream.

【0153】各符号化データストリーム毎に1つのラン
カウント並べ替えユニットがあり、これは図11のラン
カウント並べ替えユニット801からなる。各ビットパ
ックユニットは可変長符号語を組合せて、固定サイズ
の、恐らく8ビット、16ビットまたは32ビット/語
のインターリーブド語にする。各ビットパックユニット
は、前述のようにレジスタとシフト回路を含む。スヌー
パー復号器2504は完全に動作する復号器(BG,P
EM,CMを含む)であり、全てのビットパックユニッ
トからのインターリーブド語を(図32に示すような別
々のバスにより、あるいは共通バスを通じて)アクセス
できる。スヌーパー復号器2504があるビットパック
ユニットからの1つのインターリーブド語を選択する度
に、そのインターリーブド語が符号ストリームへ送出さ
れる。受信側の復号器は、スヌーパー復号器2504と
同じ順番にデータを要求するので、インターリーブド語
は適切な順序で送出される。
There is one runcount reordering unit for each coded data stream, which consists of the runcount reordering unit 801 of FIG. Each bit pack unit combines variable length code words into fixed size, perhaps 8-bit, 16-bit or 32-bit / word interleaved words. Each bit pack unit includes a register and a shift circuit as described above. Snooper decoder 2504 is a fully functional decoder (BG, P
(Including EM and CM), the interleaved words from all bitpack units can be accessed (either by separate buses as shown in FIG. 32, or through a common bus). Each time snooper decoder 2504 selects an interleaved word from a bitpack unit, that interleaved word is sent to the codestream. The decoder on the receiving side requests the data in the same order as the snoop decoder 2504, so the interleaved words are sent out in the proper order.

【0154】スヌーパー復号器を持つ符号化器は、その
スヌーパー復号器を普通の復号器としても利用可能であ
るので、半二重システムの場合に魅力的であろう。スヌ
ーパー復号器を使う方法の1つの利点は、その方法がど
のような決定論的復号器にも適用可能であることであ
る。スヌーパー復号器によらない他の解決方法(後述)
では、ハードウエアコストを下げるため、復号器のより
単純なモデルを利用する。同一クロックサイクルで複数
の符号語を復号する復号器の場合には、復号器そのもの
より少ないハードウエアで復号器を模擬することは不可
能で、スヌーパー復号器を使う必要があろう。後述する
ように、1サイクルにつき、せいぜい1符号語しか復号
しない復号器の場合、より単純なモデルが存在する。
An encoder with a snooper decoder would be attractive for a half-duplex system, since it could also be used as a normal decoder. One advantage of the method of using a snooping decoder is that it is applicable to any deterministic decoder. Other solutions that do not rely on snoop decoders (see below)
Now we will use a simpler model of the decoder to reduce the hardware cost. In the case of a decoder that decodes multiple codewords in the same clock cycle, it is impossible to emulate the decoder with less hardware than the decoder itself, and it will be necessary to use a snooping decoder. As will be described later, for decoders that decode at most one codeword per cycle, there is a simpler model.

【0155】1クロックサイクルにつき、1符号語以下
の復号をするパイプライン化復号システムのための、も
う一つのデータ並べ替えの方法は、復号器の符号化デー
タ要求を模擬するのに必要な情報が、符号語(符号語全
部を考えている。各符号化データストリームの符号語を
独立に考えているわけではない)の順序に関する知識だ
けにすぎない、という事実に基づいている。各符号語が
ランカウント並べ替えユニットに入力した時に、その符
号語に1つのタイムスタンプ(time stamp)が付けられ
るならば、とにかく最も古いタイムスタンプを付けられ
たビットパック後のインターリーブド語が次に出力され
るべきインターリーブド語である。
Another method of data reordering for a pipelined decoding system that decodes less than one codeword per clock cycle is the information needed to mimic the encoded data requirements of the decoder. However, it is only knowledge of the order of the codewords (thinking all codewords, not each codeword of each encoded data stream). If each codeword has a time stamp attached to it when it enters the runcount reordering unit, then the oldest timestamped interleaved bitpacked bit is next. It is an interleaved word that should be output to.

【0156】符号化器の再配列ユニットの例が、ブロッ
ク図として図33に示されている。図33において、こ
の再配列ユニットは、タイムスタンプ情報も各ランカウ
ント並べ替えユニット2501a〜2501nによって
受け取られること以外は、図32に示したものと同じで
ある。このタイムスタンプ情報は、ビットパックユニッ
ト2501a〜2501nへも送られる。ビットパック
ユニット2502a〜2502nは、インターリーブド
語をMUX2503へ、また、それに関連したタイムス
タンプを論理2601へ、与える。論理2601は符号
ストリームへ出力すべきインターリーブド語を選択する
ための制御信号をMUX2503へ与える。
An example of an encoder rearrangement unit is shown in FIG. 33 as a block diagram. In FIG. 33, this rearrangement unit is the same as that shown in FIG. 32, except that the time stamp information is also received by each run count rearranging unit 2501a to 2501n. This time stamp information is also sent to the bit pack units 2501a to 2501n. Bitpack units 2502a-2502n provide the interleaved word to MUX 2503 and its associated time stamp to logic 2601. Logic 2601 provides control signals to MUX 2503 to select the interleaved words to output to the codestream.

【0157】この実施例では、スヌーパー復号器が、ビ
ットパックユニット2502a〜2502nのどれが最
も古いタイムスタンプを付けられた符号語(または符号
語の一部)を持っているか判定する簡単な比較に置き換
えられている。このようなシステムは、MUX2503
にとっては、複数のタイムスタンプ付キューに見える。
論理2601は、キュー間の選択をするに過ぎない。各
ランカウント並べ替えユニット2501a〜2501n
の論理は、ランが開始する時にタイムスタンプを書くた
めに、ほんの少しだけ変わる(ランカウント並べ替えユ
ニット801と比べて)。各ランカウント並べ替えユニ
ット2501a〜2501nは、タイムスタンプを符号
語メモリに格納する機能が備わっている。符号化データ
ストリーム中のすべての符号語を列挙するに足りるビッ
ト数のタイムスタンプを格納することで十分であるが、
実施例によっては、それよりも少ないビット数が用いら
れるかもしれない。
In this embodiment, the snooper decoder provides a simple comparison to determine which of the bitpack units 2502a-2502n has the oldest time-stamped codeword (or part of the codeword). Has been replaced. Such a system is a MUX2503
To them, it looks like multiple time-stamped queues.
Logic 2601 only makes a selection between queues. Each run count rearranging unit 2501a to 2501n
The logic of is changed slightly (compared to the runcount reordering unit 801) to write a timestamp when the run starts. Each of the run count rearranging units 2501a to 2501n has a function of storing the time stamp in the code word memory. It is sufficient to store a timestamp with enough bits to enumerate all codewords in the encoded data stream,
A smaller number of bits may be used in some embodiments.

【0158】複数のタイムスタンプ付キューを用いるス
テップの簡単な記述を図47に示す。この記述は当業者
には理解できるものである。これらは符号化器の動作で
ある。同一の符号語により1つのランが開始かつ終了す
る場合に関する簡略化はなされていない。各シンボルの
符号化毎に動作がチェックされる(実用上、全てのチェ
ックを行なう必要はないが)。インターリーブド語は3
2ビットのサイズであると仮定したいる。
A brief description of the steps using multiple time stamped cues is shown in FIG. This description will be understood by those skilled in the art. These are the operations of the encoder. No simplification is made on the case where a run starts and ends with the same codeword. The operation is checked for each encoding of each symbol (although it is not necessary to check all in practice). 3 for interleaved
It is assumed to be 2 bits in size.

【0159】復号器の動作は同様であるが、符号語をキ
ューにセーブする必要はない。符号語のタイムスタンプ
をキューにセーブすることは依然必要である。
The operation of the decoder is similar, but it is not necessary to save the codeword in the queue. It is still necessary to save the codeword timestamp in the queue.

【0160】前述のタイムスタンプの機能は、符号語の
順序情報を格納するために利用される。同じ概念を具現
する均等な方法は、全ての符号語のために単一のキュ
ー、すなわち併合キューを用いる方法である。併合キュ
ーのシステムにおいては、図34に示すように、単一の
ランカウント並べ替えユニット2701が全てのインタ
ーリーブドストリームに利用される。ランカウント並べ
替えユニット2701はビットパックユニット2502
a〜2502nに対し符号語出力、サイズ出力及びスト
リーム出力を出し、ビットパックユニット2502a〜
2502bはMUX2503へインターリーブド語を出
力するとともに論理2702に対し位置情報を出力し、
論理2702はMUX2503に対しインターリーブド
語を符号ストリームの一部として出力するよう合図す
る。
The time stamp function described above is used to store codeword order information. An equivalent way of embodying the same concept is to use a single queue, or merged queue, for all codewords. In a merged queue system, a single runcount reordering unit 2701 is utilized for all interleaved streams, as shown in FIG. The run count sorting unit 2701 is the bit pack unit 2502.
A codeword output, size output, and stream output are output to a to 2502n, and bit pack units 2502a to 2502a to
2502b outputs the interleaved word to the MUX 2503 and the position information to the logic 2702,
Logic 2702 signals the MUX 2503 to output the interleaved word as part of the codestream.

【0161】任意のストリームについて、ランカウント
並べ替えメモリは各符号語毎にインターリーブドストリ
ームIDを記憶する。各インターリーブドストリームは
固有のヘッドポインタを有する。あるビットパックユニ
ットがそれ以上のデータを必要とする時に、それに対応
するヘッドポインタを利用して、1つの新しいインター
リーブド語を形成するのに必要なだけの符号語を取り出
す。これには、多くの符号語メモリロケーションを調べ
て、どのロケーションが適切なストリームの部分である
か判断する必要があろう。あるいは、符号語メモリの追
加フィールドが構成する連結リストを利用する必要があ
ろう。
For any stream, the runcount rearrangement memory stores an interleaved stream ID for each codeword. Each interleaved stream has a unique head pointer. When a bitpack unit needs more data, the corresponding head pointer is utilized to retrieve as many codewords as needed to form one new interleaved word. This would require examining many codeword memory locations to determine which locations are part of the proper stream. Alternatively, it may be necessary to utilize a linked list made up of additional fields in the codeword memory.

【0162】本発明においてストリームをインターリー
ブする他の方法は、固定ストリーム割り当ての統合キュ
ーを利用する。この方法は、単一のテールポインタを併
合キューの場合と同じように利用するので、タイムスタ
ンプは必要でない。また、前記の場合と同様に、複数の
ヘッドポインタが用いられるので、あるストリームから
データを出力する時にオーバーヘッドが生じない。これ
を行なうために、インターリーブドストリームへの符号
語の割り当ては次のルールに従って行なわれる。すなわ
ち、N本のストリームの場合に、符号語Mは、ストリー
ムM mod Nに割り当てられる。なお、この方法によ
り、インターリーブドストリームはどのコンテキストも
しくは確率クラスからも符号語を受け入れることができ
る。ストリーム数が2のべき乗ならば、上位ビットの一
部を捨てることによりM mod Nを計算できる。例え
ば、符号語並べ替えメモリが12ビットでアドレスさ
れ、4本のインターリーブドストリームが使われるとし
よう。テールポインタは12ビット長であり、その最下
位の2ビットから次の符号語のための符号語ストリーム
が明らかにされる。4個の10ビットのヘッドポインタ
はそれぞれ、その最下位2ビットの4つの可能な組合せ
のそれぞれに暗黙に割り当てられる。テールポインタと
ヘッドポインタは共に普通のバイナリカウンタとしてイ
ンクリメントされる。
Another method of interleaving the streams in the present invention utilizes a fixed stream allocation unified queue. This method uses a single tail pointer as it does for merged queues, so no timestamp is required. Also, as in the case described above, since a plurality of head pointers are used, no overhead occurs when outputting data from a certain stream. To do this, codewords are assigned to interleaved streams according to the following rules. That is, in the case of N streams, the codeword M is assigned to the stream M mod N. Note that this method allows the interleaved stream to accept codewords from any context or probability class. If the number of streams is a power of 2, M mod N can be calculated by discarding some of the upper bits. For example, suppose the codeword reordering memory is addressed with 12 bits and four interleaved streams are used. The tail pointer is 12 bits long and its least significant 2 bits reveal the codeword stream for the next codeword. Each of the four 10-bit head pointers is implicitly assigned to each of the four possible combinations of its least significant 2 bits. Both the tail pointer and the head pointer are incremented as ordinary binary counters.

【0163】復号器においては、シフタはインターリー
ブド語を格納するためのレジスタを持っている。シフタ
は適切に整列された符号化データをビットジェネレータ
に提供する。ビットジェネレータはいくつかの符号化デ
ータを使うと、シフタへ通知する。シフタは次のインタ
ーリーブドストリームのデータを適切に整列して提供す
る。符号化データ数がNのとき、シフタは使用済みデー
タをシフトアウトするのにN−1クロック使い、そして
恐らく、当該インターリーブドストリームが再び使われ
る前にもう1つのインターリーブド符号語を要求するで
あろう。
In the decoder, the shifter has a register for storing the interleaved word. The shifter provides the properly aligned encoded data to the bit generator. When the bit generator uses some encoded data, it notifies the shifter. The shifter provides the data of the next interleaved stream by appropriately aligning the data. When the number of encoded data is N, the shifter may use N-1 clocks to shift out the used data, and possibly request another interleaved codeword before the interleaved stream is used again. Ah

【0164】<本発明の復号器>本発明は、並べ替えメ
モリが限定されたリアルタイム符号化器をサポートする
復号器を含む。一実施例では、この復号器にもまた、縮
小メモリ条件と、各コンテキストビン毎でなく各確率ク
ラス毎にランカウントを保持するための複雑さがある。
<Decoder of the Present Invention> The present invention includes a decoder that supports a real-time encoder with limited permutation memory. In one embodiment, this decoder also has reduced memory requirements and complexity for maintaining run counts for each probability class rather than for each context bin.

【0165】<本発明の復号システムの一実施例>図1
7は、本発明の復号ハードウエアシステムの一実施例の
ブロック図を示す。図17において、復号システム14
00は先入れ/先出し(FIFO)構造1401、復号
器1402、メモリ1403及びコンテキストモデル1
404からなる。復号器1402は複数の復号器からな
る。符号化データ1410はFIFO構造1401に受
け取られるよう接続される。FIFO構造1401は、
その符号化データを復号器1402へ供給するよう接続
されている。復号器1402はメモリ1403とコンテ
キストモデル1404に接続されている。コンテキスト
モデル1404はメモリ1403にも接続されている。
コンテキストモデル1404の一方の出力が復号データ
1411である。
<One Embodiment of the Decoding System of the Present Invention> FIG.
7 shows a block diagram of one embodiment of the decoding hardware system of the present invention. In FIG. 17, the decoding system 14
00 is a first-in / first-out (FIFO) structure 1401, a decoder 1402, a memory 1403, and a context model 1
It consists of 404. The decoder 1402 is composed of a plurality of decoders. The encoded data 1410 is connected to be received by the FIFO structure 1401. FIFO structure 1401
It is connected to supply the encoded data to the decoder 1402. The decoder 1402 is connected to the memory 1403 and the context model 1404. The context model 1404 is also connected to the memory 1403.
One output of the context model 1404 is the decoded data 1411.

【0166】復号システム1400において、FIFO
構造1401に入力した符号化データ1410は、順序
付けされかつインターリーブされている。FIFO構造
1401はデータを適切な順番に記憶する。このストリ
ームは復号器1402に渡される。復号器1402は、
これらストリームのデータを、シリアルかつ一意に決ま
る順序で必要とする。復号器1402が符号化データを
必要とする順序は、単純ではないが、ランダムではな
い。復号装置ではなく符号化装置において符号語をこの
順序に順序付けすることにより、符号化データを単一ス
トリームへインターリーブすることができる。他の実施
例では、符号化データ1410はインターリーブされて
いないデータの単一ストリームとされるかもしれない、
そして各コンテキストビン、各コンテキストクラスまた
は各確率クラスのためのデータがデータストリームに付
加される。この場合、符号化データを適切に分割できる
ようにするため、FIFO構造1410は符号化データ
全部を受け取った後に復号器へ送る記憶領域に置き換え
られる。
In the decoding system 1400, the FIFO
The encoded data 1410 input into structure 1401 is ordered and interleaved. FIFO structure 1401 stores the data in the proper order. This stream is passed to the decoder 1402. The decoder 1402
The data of these streams is required in a serially and uniquely determined order. The order in which the decoder 1402 needs the encoded data is not simple, but it is not random. By ordering the codewords in this order at the encoder rather than at the decoder, the encoded data can be interleaved into a single stream. In other embodiments, encoded data 1410 may be a single stream of non-interleaved data,
The data for each context bin, each context class or each probability class is then added to the data stream. In this case, the FIFO structure 1410 is replaced by a storage area that is sent to the decoder after receiving the entire encoded data, so that the encoded data can be divided appropriately.

【0167】符号化データ1410がFIFO構造14
01に受け取られると、コンテキストモデル1404は
現在のコンテキストビンを決定する。一実施例では、コ
ンテキストモデル1404は前の画素及び/又はビット
に基づいて現在のコンテキストビンを決定する。図示さ
れていないが、コンテキストモデル1404のためにラ
インバッファが設けられているであろう。このラインバ
ッファは、コンテキストモデル1404が現在コンテキ
ストビンを決定するために必要なデータすなわちテンプ
レート(template)を提供する。例えば、コンテキスト
が現在画素の近傍の画素値をベースにしている場合、特
定のコンテキストを得るために用いられる、それらの近
傍画素の画素値を記憶するためにラインバッファが利用
されであろう。
The encoded data 1410 is the FIFO structure 14
When received at 01, the context model 1404 determines the current context bin. In one embodiment, the context model 1404 determines the current context bin based on previous pixels and / or bits. Although not shown, a line buffer would be provided for the context model 1404. This line buffer provides the data or template that the context model 1404 needs to determine the current context bin. For example, if the context is based on pixel values in the neighborhood of the current pixel, a line buffer would be used to store the pixel values of those neighborhood pixels used to obtain a particular context.

【0168】そのコンテキストビンに応じて、復号シス
テム1400はメモリ1403より現在コンテキストビ
ンのための復号器状態を取り出す。一実施例では、復号
器状態は、確率予測モジュール(PEM)状態及びビッ
トジェネレータ状態を含む。PEM状態は、新たな符号
語を復号するために使用すべき符号を決定する。ビット
ジェネレータ状態は、現在のラン中のビットの記録を保
存する。復号器状態は、コンテキストモデル1404に
よって与えられるアドレスに応じて、メモリ1403よ
り復号器1402へ提供される。このアドレスは、コン
テキストビンに対応した情報を格納しているメモリ14
03のロケーションをアクセスする。
In response to the context bin, decoding system 1400 retrieves the decoder state for the current context bin from memory 1403. In one embodiment, the decoder states include probability prediction module (PEM) states and bit generator states. The PEM state determines the code that should be used to decode the new codeword. The bit generator state keeps a record of the bits in the current run. Decoder state is provided from memory 1403 to decoder 1402 in response to the address provided by context model 1404. This address is the memory 14 that stores the information corresponding to the context bin.
Access 03 locations.

【0169】現在のコンテキストビンのための復号器状
態がメモリ1403より取り出されると、復号システム
1400は次の未圧縮ビットを決め、復号器状態を処理
する。次に復号器1402は、必要ならば新しい符号語
を復号し、かつ/又はランカウントを更新する。PEM
状態が、必要ならば、ビットジェネレータ状態と同様、
更新される。そして、復号器1402は新しい復号器状
態をメモリ1403に書き込む。
Once the decoder state for the current context bin is retrieved from memory 1403, decoding system 1400 determines the next uncompressed bit and processes the decoder state. The decoder 1402 then decodes the new codeword and / or updates the run count if necessary. PEM
States, if needed, as well as bit generator states
Will be updated. Decoder 1402 then writes the new decoder state to memory 1403.

【0170】図18は、本発明の復号器の一実施例を示
す。図18において、復号器1430はシフト論理14
31、ビット生成論理1432、”新k”論理143
3、PEM更新論理1434、新符号語論理1435、
PEM状態−符号論理1436、符号−マスク論理14
37、符号−最大RL/マスク/R3スプリット展開論
理1438、復号論理1439、マルチプレクサ144
0、ランカウント更新論理1441からなる。シフト論
理1431は、符号化データ入力1443並びに状態入
力(メモリからの)を受け取るよう接続されている。シ
フト論理1431の出力はビット生成論理1432、”
新k”論理1433及びPEM更新論理l434に入力
として接続されている。ビット生成論理1432はま
た、状態入力1442を受け取るように接続されてお
り、コンテキストモデルに対する復号データ出力を発生
する。新k論理1433が発生する出力は、符号−マス
ク論理1437の入力に接続される。PEM更新論理1
434は、状態入力1442にも接続され、(メモリに
対する)状態出力を発生する。状態入力1442は、新
符号語論理1435及びPEM状態−符号論理1436
の入力にも接続されている。PEM状態−符号論理14
36の出力は展開論理1438に受け取られるように接
続されてる。展開論理1438の出力は復号論理143
9及ランカウント更新論理1441に接続されている。
復号論理1439のもう1つの入力は符号−マスク論理
1437の出力と接続されている。復号論理1439の
出力はMUX1330の一方の入力に接続されている。
MUX1440の他方の入力は状態入力1442に接続
されている。MUX1440の選択入力は新符号語論理
1435の出力と接続されている。MUX1440及び
展開論理1438の出力は、符号−マスク論理1437
の出力とともに、ランカウント更新論理1441の2つ
の入力に接続されている。ランカウント更新論理144
1の出力は、メモリへの状態出力に含まれる。
FIG. 18 shows an embodiment of the decoder of the present invention. In FIG. 18, the decoder 1430 has a shift logic 14
31, bit generation logic 1432, "new k" logic 143
3, PEM update logic 1434, new codeword logic 1435,
PEM state-sign logic 1436, sign-mask logic 14
37, Code-Max RL / Mask / R3 Split Expansion Logic 1438, Decoding Logic 1439, Multiplexer 144
0, run count update logic 1441. Shift logic 1431 is connected to receive encoded data input 1443 as well as status input (from memory). The output of the shift logic 1431 is the bit generation logic 1432, "
New k "logic 1433 and PEM update logic 1434 are connected as inputs. Bit generation logic 1432 is also connected to receive state input 1442 and produces the decoded data output for the context model. The output generated by 1433 is connected to the input of sign-mask logic 1437. PEM update logic 1
434 is also connected to status input 1442 to generate status output (for memory). The status input 1442 is the new codeword logic 1435 and the PEM status-code logic 1436.
Is also connected to the input of. PEM state-sign logic 14
The output of 36 is connected to be received by expansion logic 1438. The output of the expansion logic 1438 is the decoding logic 143.
9 and run count update logic 1441.
The other input of decode logic 1439 is connected to the output of code-mask logic 1437. The output of decode logic 1439 is connected to one input of MUX 1330.
The other input of MUX 1440 is connected to status input 1442. The select input of MUX 1440 is connected to the output of new codeword logic 1435. The outputs of MUX 1440 and expansion logic 1438 are the sign-mask logic 1437.
Is connected to the two inputs of the runcount update logic 1441. Run count update logic 144
The output of 1 is included in the status output to the memory.

【0171】シフト論理1431は符号化データストリ
ームよりデータをシフトインする。入力した符号化デー
タに基づき、ビット生成論理1432は復号データを生
成しコンテキストモデルへ送る。新k論理1433もシ
フトインデータ及び状態入力を使って新k値を発生す
る。一実施例では、新k論理1433は、新k値を発生
するためにPEM状態と符号化データの最初のビットを
使う。この新k値に基づいて、符号−マスク論理143
7は次の符号語のためのRLZマスクを生成する。この
次の符号語用のRLZマスクは、復号論理709へ送ら
れ、ついでランカウント更新論理1441へ送られる。
Shift logic 1431 shifts in the data from the encoded data stream. Based on the input encoded data, the bit generation logic 1432 generates decoded data and sends it to the context model. The new-k logic 1433 also uses the shift-in data and status inputs to generate a new-k value. In one embodiment, the new k logic 1433 uses the PEM state and the first bit of encoded data to generate the new k value. Based on this new k value, the sign-mask logic 143
7 produces the RLZ mask for the next codeword. The RLZ mask for this next codeword is sent to decoding logic 709 and then to runcount update logic 1441.

【0172】PEM更新論理1434はPEM状態を更
新する。一実施例では、PEM状態は現在の状態を利用
して更新される。更新後の状態はメモリへ送られる。新
符号語論理1434は、新しい符号語が必要とされてい
るか判定する。PEM状態−符号論理1436は、状態
入力1442を利用し復号のための符号を決定する。こ
の符号は、最大ラン長、現在マスク及びR3スプリット
(split)値の生成のための展開論理1438の入力へ
送られる。復号論理1439は、符号語を復号してラン
カウント出力を出す。MUX1440は、復号論理14
39の出力または状態入力1442を選択してランカウ
ント更新論理1441へ送る。ランカウント更新論理1
441はランカウントを更新する。
The PEM update logic 1434 updates the PEM state. In one embodiment, the PEM state is updated using the current state. The updated state is sent to the memory. New codeword logic 1434 determines if a new codeword is needed. PEM state-code logic 1436 utilizes state input 1442 to determine the code for decoding. This code is sent to the input of expansion logic 1438 for the generation of maximum run length, current mask and R3 split values. Decoding logic 1439 decodes the codeword and provides a run count output. The MUX 1440 is the decoding logic 14
39 output or status input 1442 to send to runcount update logic 1441. Run count update logic 1
441 updates the run count.

【0173】復号器1430を含む本発明の復号システ
ム1400は、パイプライン方式で動作する。一実施例
では、本発明の復号システム1400は、コンテキスト
ビンの決定、確率の予測、符号語の復号、ランカウント
に基づいたビット生成を全てパイプライン方式で行な
う。復号システムのパイプライン構造の一実施例を図2
0に示す。図20において、本発明のパイプライン化復
号プロセスは1番から6番までの6ステージで表わされ
ている。
The decoding system 1400 of the present invention including the decoder 1430 operates in a pipelined manner. In one embodiment, the decoding system 1400 of the present invention performs context bin determination, probability prediction, codeword decoding, and run count-based bit generation all in a pipelined fashion. FIG. 2 shows an embodiment of the pipeline structure of the decoding system.
0 is shown. In FIG. 20, the pipelined decoding process of the present invention is represented by 6 stages from 1 to 6.

【0174】第1ステージにおいて現在のコンテキスト
ビンが決定される(1501)。第2ステージにおい
て、コンテキストビン決定後に、メモリ読み出しが発生
し(1502)、コンテキストビンのための現在の復号
器状態がメモリより取り出される。前述のように復号器
状態はEMS状態とビットジェネレータ状態を含む。
In the first stage, the current context bin is determined (1501). In the second stage, after the context bin determination, a memory read occurs (1502) and the current decoder state for the context bin is retrieved from memory. As mentioned above, the decoder state includes the EMS state and the bit generator state.

【0175】本発明のパイプライン化復号プロセスの第
3ステージにおいて、1つの伸長(decompressed)ビッ
トが生成される(1503)。これにより、コンテキス
トビンがビットを利用可能できるようなる。第3ステー
ジ内で2つの異なった動作が行なわれる。PEM状態が
ある符号種類へ変換され(1504)、また、新しい符
号語を復号しなければならないかの判定が行なわれる
(1505)。
In the third stage of the pipelined decoding process of the present invention, one decompressed bit is generated (1503). This makes the bits available to the context bin. Two different operations are performed within the third stage. The PEM state is converted to a certain code type (1504), and it is determined whether a new codeword should be decoded (1505).

【0176】第4ステージの期間に、復号システムは1
つの符号語を処理し、かつ/またはランカウントを更新
する(1506)。符号語の処理及びランカウントの更
新には、いくつかの副動作が含まれる。例えば、符号語
が復号されて次のランカウントを決定し、あるいは、現
在符号語につきランカウントが更新される(150
6)。新しい符号語を復号する時に、必要ならば、さら
に符号化データが入力FIFOより取り出される。第4
ステージで発生するもう一つの副動作は、PEM状態の
更新である(1507)。最後に、復号パイプラインの
第5ステージにおいて、現在の符号語のためのランカウ
ントが0のときには、新PEM状態を用いて次の符号が
どのようなラン長0符号語(後述)であるか判定する
(1508)。本発明の復号パイプラインの第5ステー
ジ中に、PEM状態の更新された復号器状態がメモリに
書き込まれ(1509)、そして次の符号語のためのシ
フト動作が始まる(1510)。第6ステージにおい
て、次の符号語へのシフト動作が完了する(151
0)。
During the fourth stage, the decoding system is set to 1
Process one codeword and / or update run count (1506). The processing of codewords and updating of run counts involves several sub-operations. For example, the codeword is decoded to determine the next runcount, or the runcount is updated for the current codeword (150).
6). When decoding a new codeword, further coded data is retrieved from the input FIFO if necessary. Fourth
Another side action that occurs at the stage is the update of the PEM state (1507). Finally, in the fifth stage of the decoding pipeline, when the runcount for the current codeword is 0, what run length 0 codeword (described below) is the next code using the new PEM state. A determination is made (1508). During the fifth stage of the inventive decoding pipeline, the updated decoder state of the PEM state is written to memory (1509) and the shift operation for the next codeword begins (1510). In the sixth stage, the shift operation to the next code word is completed (151
0).

【0177】本発明のパイプライン化復号動作は、実際
には、復号プロセスを開始するか否かの判定からスター
トする。この判定は、本発明の復号器に提供するに十分
なデータがあるか否かに基づいてなされる。FIFOに
十分なデータを得られないと、復号システムは停止して
しまう。別のケースとしては、復号器の出力データ全部
を、その出力中に受け取ることが不可能な周辺機器へ復
号データを出力している時に、復号システムが止まって
しまうかもしれない。例えば、復号器がビデオディスプ
レイインターフェイスとそれに関係したビデオ回路へ出
力を出している時に、そのビデオが遅過ぎると、復号器
はビデオが追い付けるよう停止する必要がある。
The pipelined decoding operation of the present invention actually starts with determining whether to start the decoding process. This decision is made based on whether there is enough data to provide to the decoder of the present invention. If not enough data is available in the FIFO, the decoding system will stop. In another case, the decoding system may stall when outputting the entire output data of the decoder to the peripheral device that cannot receive during the output. For example, when the decoder is outputting to a video display interface and associated video circuitry and the video is too slow, the decoder must stop to catch up.

【0178】復号プロセスを開始すると判定されると、
現在コンテキストビンがコンテキストモデルにより決定
される。本発明においては、この現在コンテキストビン
は前データを調べることにより決定される。この前デー
タは、ランバッファに格納されているかもしれない、ま
た現在ライン及び/又は前ラインのデータからなるかも
しれない。前データに関するテンプレートを使い、現在
データに対するコンテキストビンが、調べている前デー
タと該テンプレートとが一致するか否かに応じて選択さ
れるように、ラインバッファ(複数)から出るビットが
設計されるかもしれない。これらのラインバッファはビ
ットシフトレジスタを含むかもしれない。nビット画像
の各ビットプレーン毎に1つのテンプレートが用いられ
るかもしれない。
When it is determined to start the decoding process,
The current context bin is determined by the context model. In the present invention, this current context bin is determined by examining previous data. This previous data may be stored in the run buffer and may consist of current line and / or previous line data. Using the template for the previous data, the bits out of the line buffer (s) are designed such that the context bin for the current data is selected depending on whether the previous data being examined matches the template. It may be. These line buffers may include bit shift registers. One template may be used for each bitplane of an n-bit image.

【0179】一実施例では、コンテキストビンは、次の
パイプラインステージ中に、あるアドレスをメモリへ出
力することにより選択される。このアドレスは、ビット
プレーンを区別するための所定数のビット、例えば3ビ
ットを含むかもしれない。これら3ビットを使って、画
素データのビット位置が識別されるかもしれない。コン
テキストを決定するために用いられるテンプレートも、
そのアドレスの一部として表現されるかもしれない。ビ
ットプレーンを識別するためのビットとテンプレートを
表現するためのビットが組み合わされて、それらビット
で定義されるコンテキストビンの状態情報を格納してい
るメモリの特定ロケーションのアドレスが作られるかも
しれない。例えば、ある特定の画素位置のビット位置を
決定するための3ビットと、テンプレート中の前画素そ
れぞれの同位置の前10ビットを用いて、13ビットの
アドレスが生成されるかもしれない。
In one embodiment, the context bin is selected by outputting an address to memory during the next pipeline stage. This address may include a predetermined number of bits to distinguish the bit planes, for example 3 bits. These 3 bits may be used to identify the bit position of the pixel data. The template used to determine the context is also
It may be expressed as part of that address. The bits for identifying the bit planes and the bits for representing the template may be combined to create the address of a particular location in memory that stores the state information for the context bin defined by those bits. For example, a 13-bit address may be generated using 3 bits to determine the bit position of a particular pixel location and the previous 10 bits of the same location of each previous pixel in the template.

【0180】コンテキストモデルにより生成された該ア
ドレスを使い、メモリ(例えばRAM)がアクセスされ
状態情報が得られる。この状態はPEM状態を含む。P
EM状態は現在の確率予測値を含む。2つ以上の状態で
同じ符号を使うため、PEM状態は、確率クラスや符号
の指定を含まず、図8に示したようなテーブルへのイン
デックスを含む。また、図8に示したようなテーブルを
用いる場合、PEM状態は、現在のPEM状態がテーブ
ルの正側にあるか負側にあるかを識別する手段として、
最高確率シンボル(MPS)も提供する。ビット生成状
態は、カウント値と、LPSの有無の表示を含むかもし
れない。一実施例では、現在のランに対するMPS値も
次の符号語の復号のために含まれる。本発明では、ラン
カウンタのために必要なメモリスペースを減らすため、
ビット生成状態はメモリに格納される。システムにおけ
る各コンテキストのカウンタ用スペースのコストが低い
ならば、ビット生成状態をメモリに格納する必要はな
い。
Using the address generated by the context model, the memory (for example, RAM) is accessed and the state information is obtained. This state includes the PEM state. P
The EM state contains the current probability estimate. Since the same code is used in two or more states, the PEM state does not include a probability class or code designation, but includes an index into the table as shown in FIG. Further, when the table as shown in FIG. 8 is used, the PEM state is used as means for identifying whether the current PEM state is on the positive side or the negative side of the table.
The highest probability symbol (MPS) is also provided. The bit generation status may include a count value and an indication of the presence or absence of LPS. In one embodiment, the MPS value for the current run is also included for decoding the next codeword. In the present invention, to reduce the memory space required for the run counter,
The bit generation state is stored in memory. If the cost of the counter space for each context in the system is low, it is not necessary to store the bit generation state in memory.

【0181】第4ステージが終了すると、新しいビット
生成状態及びPEM状態がメモリに書き込まれる。ま
た、第5ステージにおいて、符号化データストリームが
次符語までシフトされる。このシフト操作は第6ステー
ジで完了する。
At the end of the fourth stage, the new bit generation state and PEM state are written to memory. Also, in the fifth stage, the encoded data stream is shifted to the next codeword. This shift operation is completed in the sixth stage.

【0182】図19は本発明のFIFO構造1401の
一実施例のブロック図であり、復号器が2個の場合のイ
ンターリーブド語のバッファリングを示している。な
お、復号器の数がいくつであっても、本発明の教えるこ
とによりサポートできる。図示のように、入力データ及
びFIFOは2つのインターリーブド語を保持できる幅
である。FIFO構造1401は、FIFO1460、
レジスタ1461,1462、MUX1463,146
4及び制御ブロック1465からなる。2つの入力符号
語が、入力インターリーブド語として接続される。FI
FO1460の出力はレジスタ1461,1462の入
力に接続される。MUX1463の入力はレジスタ14
61,1462の出力に接続される。制御ブロック14
65は、FIFO1460、レジスタ1461,146
2及びMUX1463,1464に制御信号を供給する
ように接続されている。2つの復号器へ供給される出力
データ(出力データ1,2)はインターリーブド語であ
る。各復号器は要求信号を使って、現在の語が使用済み
であり新たな語が次に必要であることを指示する。この
復号器からの要求信号は制御ブロック1465の入力に
接続される。制御ブロック1465も、メモリから次の
データを要求するためにFIFO要求信号を出力する。
FIG. 19 is a block diagram of an embodiment of the FIFO structure 1401 of the present invention, which shows buffering of interleaved words when there are two decoders. It should be noted that any number of decoders can be supported by the teaching of the present invention. As shown, the input data and FIFO are wide enough to hold two interleaved words. The FIFO structure 1401 includes a FIFO 1460,
Registers 1461, 1462, MUX1463, 146
4 and control block 1465. Two input codewords are connected as an input interleaved word. FI
The output of FO1460 is connected to the inputs of registers 1461 and 1462. The input of MUX1463 is register 14
It is connected to the outputs of 61 and 1462. Control block 14
65 is a FIFO 1460, registers 1461, 146
2 and MUXs 1463 and 1464 are connected to supply control signals. The output data (output data 1, 2) supplied to the two decoders are interleaved words. Each decoder uses a request signal to indicate that the current word has been used and a new word is needed next. The request signal from this decoder is connected to the input of control block 1465. The control block 1465 also outputs a FIFO request signal to request the next data from the memory.

【0183】最初に、FIFO1460及びレジスタ1
461,1462にデータが満たされ、また、制御ブロ
ック1465内の有効フリップフロップがセットされ
る。要求が生じる度に、制御ブロック1465は図64
のテーブル16に示された論理に従ってデータを供給す
る。
First, the FIFO 1460 and register 1
461 and 1462 are filled with data and the valid flip-flop in control block 1465 is set. Each time a request is made, the control block 1465 is shown in FIG.
Data is supplied according to the logic shown in Table 16 of FIG.

【0184】図21は、本発明の復号器の別の概念図を
示す。図21において、可変長(符号化)データが復号
器に入力される。復号器は固定長(復号)データを出力
する。この出力はまた遅延フィードバックとして戻さ
れ、復号器に入力として受け取られる。本発明の復号器
において、復号に使われる可変長シフトは、いくらか遅
延して得られる復号データに基づいている。このフィー
ドバックの遅延は、遅延許容型(delay-tolerant)の復
号器においてはスループットを低下させない。
FIG. 21 shows another conceptual diagram of the decoder of the present invention. In FIG. 21, variable length (encoded) data is input to the decoder. The decoder outputs fixed length (decoded) data. This output is also returned as delayed feedback and received as an input to the decoder. In the decoder of the present invention, the variable length shift used for decoding is based on the decoded data obtained with some delay. This feedback delay does not degrade throughput in delay-tolerant decoders.

【0185】入力した可変長データは、図7に関連して
述べたような固定長インターリーブド語に分割される。
復号器は固定長語を後に図22で述べるように扱う。こ
の復号器と遅延の組合せで、図20及び図39に関連し
て述べたようなパイプライン化復号器、あるいは図2乃
至図5に関連して説明したような複数の並列復号器をモ
デル化する。このように、本発明は遅延許容型復号器を
提供する。本発明の遅延許容型復号器は可変長データの
並列処理が可能である。
The input variable length data is divided into fixed length interleaved words as described with reference to FIG.
The decoder handles fixed length words as described later in FIG. This decoder and delay combination models a pipelined decoder as described in connection with FIGS. 20 and 39, or a plurality of parallel decoders as described in connection with FIGS. 2-5. To do. Thus, the present invention provides a delay tolerant decoder. The delay tolerant decoder of the present invention is capable of parallel processing of variable length data.

【0186】従来の復号器(例えばハフマン復号器)は
遅延許容型ではない。前の符号語全ての復号により決定
された情報が、次の符号語の復号に要する可変長シフト
を行なうために必要とされる。他方、本発明は遅延許容
型復号器を提供する。
Conventional decoders (eg Huffman decoders) are not delay tolerant. The information determined by decoding all previous codewords is needed to perform the variable length shift required to decode the next codeword. On the other hand, the invention provides a delay tolerant decoder.

【0187】<復号システムにおけるシフト操作>本発
明の復号器は、インターリーブド語を復号するために適
切なビットジェネレータへシフトするシフト論理を備え
る。本発明のシフタ(シフト論理)は、いかなる種類
の”コンテキスト別”または”確率別”の並列化(para
llelism)も必要としない。符号語Mをストリーム M m
od N (C言語ではM%N)に割り当てる符号化器を想
定しよう(Nはストリーム数)。本発明においては、現
在ストリームの符号化データが、符号語を要求されるま
で与えられる。その時にはじめて、データが次のストリ
ームへ切り替えられる。
Shift Operations in Decoding Systems The decoder of the present invention comprises shift logic that shifts to the appropriate bit generator for decoding interleaved words. The shifter (shift logic) of the present invention may be used for any kind of "contextual" or "probability-based" parallelization (para).
llelism) is not required. Stream codeword M into stream M m
Let us assume an encoder assigned to od N (M% N in C language) (N is the number of streams). In the present invention, the encoded data of the current stream is provided until a codeword is requested. Only then is the data switched to the next stream.

【0188】図22は本発明の復号器用のシフタの一実
施例を示す。シフタ1600は、4本のデータストリー
ム用に設計されている。これは、各シフト操作に4クロ
ックサイクル充てる。インターリーブド語は16ビット
で、最長符号語は13ビットである。図22において、
シフタ1600はインターリーブド符号化データからの
入力を受け取るよう接続された4個のレジスタ1601
〜1604を有する。レジスタ1601〜1604のそ
れぞれの出力はMUX1605に入力として接続されて
いる。MUX1605の出力はバレル(barrel)シフタ
1606の入力に接続されている。バレルシフタ160
6の出力は、レジスタ1607、MUX及びレジスタ1
608〜1610、並びにサイズ(size)ユニット16
11の入力に接続されている。サイズユニット1611
の出力はアキュムレータ1612に接続されている。ア
キュムレータ1612の出力はバレルシフタ1606へ
フィードバックされる。レジスタ1607の出力はMU
X及びレジスタ1608に1つの入力として接続されて
いる。MUX及びレジスタ1608の出力はMUX及び
レジスタ1609に1つの入力として接続されている。
MUX及びレジスタ1609の出力はMUX及びレジス
タ1610に1つの入力として接続されている。MUX
及びレジスタ1610の出力が整列後の(aligned)符
号化データである。一実施例では、レジスタ1601〜
1604は16ビットのレジスタであり、バレルシフタ
1606は32ビット−13ビットのバレルシフタであ
り、また、アキュムレータ1612は4ビットのアキュ
ムレータである。
FIG. 22 shows an embodiment of the shifter for the decoder of the present invention. The shifter 1600 is designed for four data streams. This devotes four clock cycles to each shift operation. The interleaved word is 16 bits and the longest codeword is 13 bits. In FIG. 22,
Shifter 1600 has four registers 1601 connected to receive input from interleaved encoded data.
˜1604. Each output of the registers 1601-1604 is connected as an input to the MUX 1605. The output of MUX 1605 is connected to the input of barrel shifter 1606. Barrel shifter 160
The output of 6 is the register 1607, the MUX and the register 1
608-1610, and size unit 16
It is connected to 11 inputs. Size unit 1611
The output of is connected to the accumulator 1612. The output of the accumulator 1612 is fed back to the barrel shifter 1606. Output of register 1607 is MU
It is connected to the X and register 1608 as one input. The output of MUX and register 1608 is connected as one input to MUX and register 1609.
The output of MUX and register 1609 is connected as one input to MUX and register 1610. MUX
And the output of the register 1610 is the aligned encoded data. In one embodiment, registers 1601
1604 is a 16-bit register, barrel shifter 1606 is a 32-bit-13-bit barrel shifter, and accumulator 1612 is a 4-bit accumulator.

【0189】レジスタ1601〜1604は、FIFO
より16ビット語を受け取り、それらをバレルシフタ1
606へ入力する。少なくとも32ビットの未復号デー
タが常にバレルシフタ1606に与えられる。4つのレ
ジスタ1601〜1604は、初めに、16ビット語、
2語の符号化データを初期設定される。これにより、各
ストリーム毎に少なくとも1つの新しい符号語を常に利
用可能となる。
Registers 1601 to 1604 are FIFO registers.
Accepts more 16-bit words and barrels them 1
Input to 606. At least 32 bits of undecoded data are always provided to the barrel shifter 1606. The four registers 1601-1604 are initially 16-bit words,
Two-word coded data is initialized. This ensures that at least one new codeword is always available for each stream.

【0190】R−符号の場合、符号語サイズユニット1
611は”0”符号語または”1N”符号語があるか判
定し、それが”1N”符号語であるならば、”1”より
何ビットだけ後が現在の符号語の部分であるか判定す
る。同じ機能を提供するサイズユニットを、図15に関
連して述べた。他の符号の場合の符号語サイズの判定
は、従来より周知である。
For R-code, codeword size unit 1
611 determines whether there is a "0" codeword or a "1N" codeword, and if it is a "1N" codeword, determines how many bits after "1" is the part of the current codeword. To do. Size units that provide the same functionality have been described in connection with FIG. The determination of codeword size for other codes is well known in the art.

【0191】シフタ1600は、4個のレジスタ160
6〜1610からなるFIFOを有し、これらレジスタ
中の3個1608〜1610は入力が多重化(multiple
xed)されている。レジスタ1607〜1610の各レ
ジスタは少なくとも1つの符号語を保持するので、これ
らレジスタ及びマルチプレクサの幅は、最長の符号語に
対応する13ビットである。各レジスタ1607〜16
10はまた、関連した1つの制御フリップフロップ(煩
雑にしないために図示されていない)を持っている。こ
の制御フリップフロップは、レジスタが符号語を保持し
ているか、あるいはバレルシフタ1606が符号語を提
供するのを待っているかを表示する。
The shifter 1600 has four registers 160.
It has a FIFO consisting of 6 to 1610, and 3 of these registers 1608 to 1610 have their inputs multiplexed (multiplexed).
have been xed). Since each register of registers 1607 to 1610 holds at least one codeword, the width of these registers and multiplexer is 13 bits corresponding to the longest codeword. Each register 1607-16
10 also has an associated control flip-flop (not shown to avoid clutter). This control flip-flop indicates whether the register holds a codeword or is waiting for barrel shifter 1606 to provide a codeword.

【0192】このFIFOは空になることはない。1ク
ロックサイクルにつき扱うことができるのは1符号語だ
けであり、また、1クロックサイクルにつき1符号語を
シフトできる。システムは4符号語先にスタートするの
で、シフト操作による遅延は補償される。各符号語がシ
フトされて整列後(aligned)符号化データ出力となる
につれて、レジスタ1607〜1610内の他の符号語
が下側へシフトされる。FIFOに残っている符号語が
レジスタ1610に格納される時に、バレルシフタ16
06はレジスタ1607〜1609を満たすためMUX
1605を介しレジスタ1601〜1604より符号語
を読み出す。なお、FIFOは、レジスタ1607の符
号語がレジスタ1608へシフトされるとすぐにレジス
タ1607にデータにデータを補充するように設計され
てもよい。
This FIFO is never empty. Only one codeword can be handled per clock cycle, and one codeword can be shifted per clock cycle. Since the system starts four codewords ahead, the delay due to the shift operation is compensated. As each codeword is shifted into the aligned encoded data output, the other codewords in registers 1607-1610 are shifted down. When the code words remaining in the FIFO are stored in the register 1610, the barrel shifter 16
06 is MUX because it fills registers 1607 to 1609.
The code word is read from the registers 1601 to 1604 via 1605. It should be noted that the FIFO may be designed to populate the register 1607 with data as soon as the codeword of the register 1607 is shifted into the register 1608.

【0193】バレルシフタ1606、符号語サイズユニ
ット1611及びアキュムレータ1612は、可変長シ
フトの処理をする。アキュムレータ1612は、各デー
タストリーム毎に現在符号語の整列されたものを保持す
るレジスタを、各データストリーム用に1個、計4個有
する。アキュムレータ1612は4ビットのアキュムレ
ータで、バレルシフタ1606の制御に利用される。ア
キュムレータ1612の値は、符号語サイズユニット1
611からの入力値だけ増加する。アキュムレータ16
12がオーバーフローした時に(例えば、シフトカウン
トが6以上になる都度)、レジスタ1601〜1604
はクロックされてシフトする。16ビットシフトする毎
に、FIFOから新しい32ビット語が要求される。ア
キュムレータ1611の入力は符号語のサイズであり、
これは現在の符号及び現在の符号語の最初の1または2
ビットによって決まる。なお、実施例によっては、レジ
スタ1601〜1604が符号化データを初期設定され
てからでないと復号動作を開始できない。
The barrel shifter 1606, the codeword size unit 1611 and the accumulator 1612 perform variable length shift processing. The accumulator 1612 has a total of four registers, one for each data stream, which holds an aligned version of the current codeword for each data stream. The accumulator 1612 is a 4-bit accumulator and is used to control the barrel shifter 1606. The value of the accumulator 1612 is the codeword size unit 1
It is incremented by the input value from 611. Accumulator 16
When 12 overflows (for example, every time the shift count becomes 6 or more), the registers 1601-1604
Is clocked and shifted. Every 16-bit shift requires a new 32-bit word from the FIFO. The input of the accumulator 1611 is the codeword size,
This is the current code and the first 1 or 2 of the current codeword.
It depends on the bit. Note that in some embodiments, the decoding operation can be started only after the registers 1601 to 1604 have initialized the encoded data.

【0194】システムにより符号語を要求された時に、
FIFO内のレジスタがクロックされ、符号語が出力へ
送られる。バレルシフタ1606が新しい符号語を送出
できる時に、その符号語はFIFO内の初めの空きレジ
スタへ入力される。
When a codeword is requested by the system,
The registers in the FIFO are clocked and the codeword is sent to the output. When the barrel shifter 1606 can issue a new codeword, it is input to the first free register in the FIFO.

【0195】この実施例では、ストリームの切り替えが
決定される前に、ビットジェネレータから次符号語信号
を受け取る。
In this embodiment, the next codeword signal is received from the bit generator before the stream switching is decided.

【0196】このビットジェネレータからの次符号語信
号が、ストリーム切り替えの決定前に受領されることを
保証できないときには、図23に示すようなルックアヘ
ッド(look ahead)システムを利用できる。図23にお
いて、ルックアヘッドを利用するシフタ1620がブロ
ック図として示されている。シフタ1620は、現在の
符号化データと次の符号化データの出力を出すシフタ1
600を有する。現在の符号化データは符号語前処理論
理ユニット1621の入力及び符号語処理論理ユニット
1624の入力に接続される。次の符号化データは符号
語前処理論理ユニット1622の入力に接続される。両
方の前処理論理ユニット1621,1622の出力はM
UX1623の入力に接続される。MUX1623の出
力は符号語処理論理ユニット1624のもう1つの入力
に接続される。
When it is not guaranteed that the next codeword signal from this bit generator will be received before the stream switching decision, a look ahead system as shown in FIG. 23 can be used. In FIG. 23, a shifter 1620 utilizing look ahead is shown as a block diagram. The shifter 1620 is a shifter 1 that outputs the current encoded data and the next encoded data.
Has 600. The current encoded data is connected to the inputs of codeword preprocessing logic unit 1621 and codeword processing logic unit 1624. The next encoded data is connected to the input of the codeword preprocessing logic unit 1622. The output of both preprocessing logic units 1621, 1622 is M
Connected to the input of UX1623. The output of MUX 1623 is connected to another input of codeword processing logic unit 1624.

【0197】符号語を扱う論理は2つの部分、すなわち
符号語前処理論理と符号語処理論理とに分けられてい
る。2つの同一のパイプライン化前処理ユニット162
1,1622が動作した後にインターリーブドストリー
ムがシフト可能になる。ストリームがスイッチされてい
ると前処理ユニット1621,1622の一方が適切な
情報を発生し、ストリームがスイッチされていなければ
他方が情報を発生する。ストリームがスイッチされる時
に、適切な符号語前処理の出力がMUX1623により
符号語処理論理1624へ送られ、符号語処理論理16
24は適切な符号語をもって動作を完了する。
The logic for handling codewords is divided into two parts: codeword preprocessing logic and codeword processing logic. Two identical pipelined pretreatment units 162
The interleaved stream can be shifted after the operation of 1, 1622. One of the pre-processing units 1621, 1622 will generate the appropriate information if the stream is switched, and the other one if the stream is not switched. When the streams are switched, the output of the appropriate codeword preprocessing is sent by MUX 1623 to codeword processing logic 1624, which
24 completes the operation with the appropriate codeword.

【0198】<オフチップのメモリとコンテキストモデ
ル>一実施例では、外部メモリまたは外部コンテキスト
モデルのために複数のチップを使用するのが望ましいか
もしれない。このような実施例では、複数の集積回路が
使われる場合、ビットを生成してから、そのビットをコ
ンテキストモデルが利用できるようになるまでの遅延を
減少させることが望ましい。
Off-Chip Memory and Context Model In one embodiment, it may be desirable to use multiple chips for the external memory or external context model. In such an embodiment, when multiple integrated circuits are used, it is desirable to reduce the delay between generating a bit and making it available to the context model.

【0199】図24は、外部コンテキストモデルチップ
1701と、コンテキスト毎にメモリを持つ復号器チッ
プ1702を有するシステムの一実施例のブロック図を
示す。なお、コンテキストモデルに関連した復号器チッ
プ内のユニットだけが示されている。すなわち、復号器
チップ1702がビット生成、確率予測等々を含んでい
ることは当業者には明白である。図24において、復号
器チップ1702は、0次コンテキストモデル170
3、コンテキストモデル1704,1705、選択論理
1706、メモリコントロール1707及びメモリ17
08を含む。0次コンテキストモデル1703とコンテ
キストモデル1704,1705の発生する出力は選択
論理1706の入力に接続される。選択論理1706の
もう1つの入力は、外部コンテキストモデルチップ17
01の出力と接続される。選択論理1706の出力はメ
モリ1708の1つの入力に接続される。メモリ170
8のもう1つの入力には、メモリコントロール1708
の出力が接続される。
FIG. 24 shows a block diagram of an embodiment of a system having an external context model chip 1701 and a decoder chip 1702 having a memory for each context. Note that only the units within the decoder chip that are relevant to the context model are shown. That is, it will be apparent to those skilled in the art that the decoder chip 1702 includes bit generation, probability prediction, and so on. In FIG. 24, the decoder chip 1702 has a 0th-order context model 170.
3, context models 1704, 1705, selection logic 1706, memory control 1707 and memory 17.
Including 08. The outputs produced by the 0th-order context model 1703 and the context models 1704, 1705 are connected to the inputs of the selection logic 1706. Another input of the selection logic 1706 is the external context model chip 17
01 output. The output of select logic 1706 is connected to one input of memory 1708. Memory 170
The other input of 8 is the memory control 1708
The output of is connected.

【0200】選択論理1706は、1つの外部コンテキ
ストモデルか1つの内部コンテキストモデル(例えば、
0次コンテキストモデル1703、コンテキストモデル
1704、コンテキストモデル1705)の使用を許可
する。選択論理1706は、外部コンテキストモデルチ
ップ1701の使用時に内部の0次コンテキストモデル
1703の使用を許す。0次コンテキストモデル170
3が1ビットまたはそれ以上のビットを提供し、一方、
外部コンテキストモデルチップ1701が、その残りの
ビットを提供する。例えば、すぐ前のビットはフィード
バックされて0次コンテキストモデル1703より取り
出されるであろう、一方それより前のビットは外部コン
テキストモデルチップ1701による。このように、時
間的に厳しい情報はチップ上に留まる。これは、生成さ
れて間もないビットについて、オフチップによる通信遅
延を排除する。
The selection logic 1706 may include one external context model or one internal context model (eg,
The use of the 0th-order context model 1703, the context model 1704, and the context model 1705) is permitted. The selection logic 1706 allows the use of the internal 0th order context model 1703 when using the external context model chip 1701. Zero-order context model 170
3 provides one or more bits, while
External context model chip 1701 provides the remaining bits. For example, the immediately previous bit will be fed back and retrieved from the 0th order context model 1703, while the previous bits are due to the external context model chip 1701. Thus, time sensitive information remains on the chip. This eliminates off-chip communication delays for newly generated bits.

【0201】図25は、外部コンテキストモデルチップ
1801、外部メモリ1803及び復号器チップ180
2を有するシステムのブロック図である。図25におい
て、一部のメモリアドレス線は外部コンテキストモデル
チップ1801に駆動され、残りのメモリアドレス線は
復号器チップ1802内の”0次”コンテキストモデル
により駆動される。すなわち、すぐ前の復号サイクルか
らのコンテキストは0次コンテキストモデルにより駆動
される。これは、復号器チップが直ぐ前の復号サイクル
からのコンテキスト情報を最小の通信遅延で提供できる
ようにする。コンテキストモデルチップ1801は、そ
れより前に復号されたビットだけを使い、そのコンテキ
スト情報の残余部分より先に進むので、通信遅延が許さ
れる。多くの場合、直ぐ前の復号サイクルからのコンテ
キスト情報は0次マルコフ状態であり、それより前から
のコンテキスト情報はより高次のマルコフ状態である。
図25に示した実施例は、外部コンテキストモデルチッ
プ1801内で0次モデルを実現する場合に避けられな
い通信遅延を排除する。しかし、それでもなお、復号器
チップ1802及びメモリ1803に起因した、生成ビ
ットに対するコンテキストビン決定の遅延はあるであろ
う。
FIG. 25 shows an external context model chip 1801, an external memory 1803 and a decoder chip 180.
2 is a block diagram of a system having 2. In FIG. 25, some memory address lines are driven by the external context model chip 1801 and the remaining memory address lines are driven by the “0th order” context model in the decoder chip 1802. That is, the context from the immediately preceding decoding cycle is driven by the 0th order context model. This allows the decoder chip to provide context information from the immediately previous decoding cycle with minimal communication delay. Communication delay is allowed because the context model chip 1801 uses only the previously decoded bits and goes beyond the rest of its context information. In many cases, the context information from the immediately preceding decoding cycle is the 0th-order Markov state, and the context information from before it is the higher-order Markov state.
The embodiment shown in FIG. 25 eliminates the communication delay that cannot be avoided when the 0th-order model is realized in the external context model chip 1801. However, there will nevertheless be a delay in the context bin decision for the generated bits due to the decoder chip 1802 and the memory 1803.

【0202】なお、他のメモリアーキテクチャを利用し
てもよい。例えば、コンテキストモデルとメモリが1つ
のチップ上にあり、復号器が別チップ上にあるシステム
を採用してもよい。また、あるシステムは、一部のコン
テキスト用に使用される内部メモリを有する復号器チッ
プと、その他のコンテキスト用の外部メモリを含むかも
しれない。
It should be noted that other memory architectures may be used. For example, a system in which the context model and the memory are on one chip and the decoder is on another chip may be adopted. Also, some systems may include decoder chips with internal memory used for some contexts and external memory for other contexts.

【0203】<メモリを利用するビットジェネレータ>
図26は、メモリを利用するパイプライン化ビットジェ
ネレータを持つ復号器を示す。図26において、復号器
1900はコンテキストモデル1901、メモリ190
2、PEM状態−符号ブロック1903、パイプライン
化ビットジェネレータ1905、メモリ1804及びシ
フタ1906からなる。コンテキストモデル1901の
入力は、パイプライン化ビットストリームジェネレータ
1905からの復号データである。シフタ1906の入
力は符号化データを受け取るように接続される。コンテ
キストモデル1901の出力はメモリ1902の入力に
接続される。メモリ1902の出力はPEM状態−符号
ブロック1903に接続される。PEM状態−符号ブロ
ック1903の出力と、シフタ1906の整列後符号化
データ出力はビットジェネレータ1905の入力に接続
される。メモリ1904も、双方向バスによってビット
ジェネレータ1905に接続される。ビットジェネレー
タ1905の出力が復号データである。
<Bit Generator Utilizing Memory>
FIG. 26 shows a decoder with a pipelined bit generator that utilizes memory. In FIG. 26, the decoder 1900 includes a context model 1901 and a memory 190.
2, PEM state-consisting of a code block 1903, a pipelined bit generator 1905, a memory 1804 and a shifter 1906. The input of the context model 1901 is the decoded data from the pipelined bitstream generator 1905. The input of shifter 1906 is connected to receive encoded data. The output of the context model 1901 is connected to the input of the memory 1902. The output of memory 1902 is connected to the PEM state-code block 1903. The output of the PEM state-code block 1903 and the aligned coded data output of the shifter 1906 are connected to the input of the bit generator 1905. The memory 1904 is also connected to the bit generator 1905 by a bidirectional bus. The output of the bit generator 1905 is the decoded data.

【0204】コンテキストモデル1901は、その入力
の符号化データに応じて1つのコンテキストビンを出力
する。このコンテキストビンをアドレスとしてメモリ1
902がアクセスされ、1つの確率状態が得られる。こ
の確率状態がPEM状態−符号モジュール1903に受
け取られ、PEM状態−符号モジュール1903は、そ
の確率状態に応じた確率クラスを生成する。この確率ク
ラスをアドレスとしてメモリ1904がアクセスされ、
ランカウントが得られる。このランカウントがビットジ
ェネレータ1905に受け取られて復号データが生成さ
れる。
The context model 1901 outputs one context bin according to the encoded data of its input. Memory 1 using this context bin as an address
902 is accessed and one stochastic state is obtained. The probability state is received by the PEM state-code module 1903, and the PEM state-code module 1903 generates a probability class according to the probability state. The memory 1904 is accessed with this probability class as an address,
A run count is obtained. This run count is received by the bit generator 1905 to generate decoded data.

【0205】一実施例では、メモリ1902は1024
×7ビットのメモリからなり(1024は異なったコン
テキストの数である)、メモリ1904は25×14ビ
ットのメモリからなる(25は異なったランカウントの
数である)。
In one embodiment, the memory 1902 has 1024
It consists of x7-bit memory (1024 is the number of different contexts) and memory 1904 is 25x14-bit memory (25 is the number of different run counts).

【0206】ビットジェネレータ状態(ランカウント等
々)は確率クラスと関連付けられ、コンテキストビンと
は関連付けられないので、コンテキストモデルがビット
を利用できるようになるまでに、さらにパイプライン遅
延がある。ビットジェネレータ状態の更新に複数クロッ
クサイクル(ビットジェネレータ状態メモリ再訪(revi
sit)遅延)かかるため、各確率クラスのために複数の
ビットジェネレータ状態が用いられるであろう。例え
ば、パイプラインが6クロックサイクルならば、ビット
ジェネレータメモリは1確率クラスあたり6エントリー
有するであろう。その適切なメモリロケーションを選択
するためにカウンタが用いられる。1確率クラスあたり
複数エントリーを持つ場合でも、このメモリのサイズは
普通、コンテキスト数より小さいであろう。このメモリ
は、複数バンクのSRAMまたはマルチポートのレジス
タファイルで実現してよい。
Since bit generator states (runcounts, etc.) are associated with probability classes and not context bins, there is an additional pipeline delay before the bits are available to the context model. Multiple clock cycles (bit generator state memory revisit (revi
Because of this, multiple bit generator states will be used for each probability class. For example, if the pipeline is 6 clock cycles, the bit generator memory will have 6 entries per probability class. A counter is used to select the appropriate memory location. Even with multiple entries per probability class, the size of this memory will usually be less than the number of contexts. This memory may be implemented with multiple banks of SRAM or a multi-ported register file.

【0207】1つのランカウントが複数のコンテキスト
に関連するかもしれないので、ある実施例では、1つま
たは2つ以上のコンテキストの確率予測状態をアップグ
レードしなければならない。一実施例では、ランを終了
させるコンテキストのPEM状態が更新される。
Since one runcount may be associated with multiple contexts, in some embodiments the probability prediction state of one or more contexts must be upgraded. In one embodiment, the PEM state of the context that ends the run is updated.

【0208】ランカウントを読み出し、修正して書き込
んだ後でなければ、それを再び読み出すことができない
のではなく、ランカウントを、その修正が完了するとす
ぐに再び利用することができる。
Only after the run count has been read, modified and written can it be read again, and the run count can be reused as soon as the modification is complete.

【0209】図39は、本発明の一実施例における復号
動作のタイミング図を示す。図39には、3サイクルの
復号動作が表わされている。信号名はタイミング図の左
側に並べられている。信号があるサイクル期間有効であ
ることは、そのサイクル(またはその一部)期間にバー
をつけることによって示されている。場合によっては、
有効な信号の発生または供給を担うユニットまたは論理
が、その有効な信号の近傍に、点線で囲んで示されてい
る。時には、本明細書に開示した特定のエレメント及び
ユニットの例も提示される。なお、信号の一部が次のサ
イクルまで延びていることがあるが、これは、その別サ
イクル内へ延びているように表わされた期間の間だけ、
その信号が有効であることを意味する。また、ある信号
は、1サイクルより長い期間にわたって途切れ途切れに
有効であるかのように表わされている。そのような信号
の一例がテンポラリーランカウント(temp runcount)
信号であり、これは第2サイクルの最後の1時点で有効
であり、そしてまた、第3サイクルの間じゅう有効であ
る。これは、この信号がそのサイクルの終わりに単にレ
ジスタに保持されたことを示している。同クロックサイ
クルまたは前クロックサイクルから現時点まで信号が有
効と規定されている依存関係を明らかにする、依存関係
リストも図65のテーブル17に示されている。
FIG. 39 is a timing chart of the decoding operation in the embodiment of the present invention. FIG. 39 shows a 3-cycle decoding operation. Signal names are listed on the left side of the timing diagram. The signal is valid for a certain cycle period by indicating a bar during that cycle (or part thereof). In some cases,
The unit or logic responsible for generating or supplying a valid signal is shown in the vicinity of the valid signal, surrounded by a dotted line. At times, examples of specific elements and units disclosed herein are also presented. It should be noted that some of the signals may extend into the next cycle, but only during the period represented as extending into that other cycle.
It means that the signal is valid. Also, certain signals are represented as if they were intermittently valid for more than one cycle. An example of such a signal is a temporary runcount.
Signal, which is valid at the end of the second cycle and also valid during the third cycle. This indicates that this signal was simply held in a register at the end of the cycle. A dependency list is also shown in Table 17 of FIG. 65, which reveals the dependency relationships that the signal has been defined to be valid from the same clock cycle or the previous clock cycle to the present time.

【0210】<暗黙合図法>ある実施例においては、復
号器は符号化器の有限の並べ替えバッファを模擬しなけ
ればならない。一実施例ではこの模擬は暗黙合図法(im
plicit signaling)によってなされる。
Implicit Signaling In some embodiments, the decoder must mimic the finite reordering buffer of the encoder. In one embodiment, this simulation is an implicit cue (im
Explicit signaling).

【0211】符号化器に関して前に述べたように、符号
化器において1つの符号語が始まる時に、適当なバッフ
ァ内に、チャネルへ符号語が出力される順番に、その符
号語のためのスペースが確保される。あるバッファの最
後のスペースが新しい符号語のために確保されると、い
くつかの符号語が、完全に確定していようといまいと、
圧縮ビットストリームに出される。
As described above with respect to the encoder, at the beginning of a codeword in the encoder, in the appropriate buffer, in the order in which the codewords are output to the channel, the space for that codeword. Is secured. When the last space in a buffer is reserved for a new codeword, some codewords may or may not be completely fixed.
It is put out in a compressed bitstream.

【0212】不完全な符号語を完成させなければならな
い時には、それまでに受け取ったシンボルを正しく表わ
す、短い符号語を用いてよい。例えば、R−符号システ
ムの場合、128という最長ランレングスの1つのラン
符号中の連続した100個のMPSに対する符号語を本
来より早く完成させる必要があるときには、128個の
MPSに対する符号語を用いてよい。その符号語は、初
めの100個のMPSを正しく表わしているからであ
る。
When an incomplete codeword must be completed, a short codeword that correctly represents the previously received symbol may be used. For example, in the case of an R-code system, when it is necessary to complete the codewords for 100 consecutive MPSs in one run code having the longest run length of 128, the codewords for 128 MPSs are used. You may This is because the codeword correctly represents the first 100 MPSs.

【0213】あるいは、後に1個のLPSが続く100
個のMPSを表わす符号語を用いてよい。この符号語が
完成した時に、それを並べ替えバッファから取り除き符
号ストリームへ追加してよい。こうすることで、前に完
成された符号語を符号ストリームへ出力できるようにも
なる。1つの不完全な符号語を強制的に完成させること
で満杯のバッファから1つの符号語が取り除かれるなら
ば、符号化を続けることができる。1つのバッファが依
然として満杯のときには、次の符号語を再び完成させて
符号ストリームに追加しなければならない。このプロセ
スは、満杯であったバッファが満杯でなくなるまで続
く。復号器は、各ビットジェネレータ状態情報メモリロ
ケーション毎に1つのカウンタを使用する暗黙合図法に
合わせて符号化器を模擬してよい。
Alternatively, 100 followed by one LPS
Codewords representing MPSs may be used. When this codeword is complete, it may be removed from the reordering buffer and added to the codestream. This also allows the previously completed codeword to be output to the codestream. Encoding can continue if one codeword is removed from the full buffer by forcing one incomplete codeword to complete. When one buffer is still full, the next codeword must be completed again and added to the codestream. This process continues until the buffer that was full is no longer full. The decoder may mimic the encoder for implicit signaling using one counter for each bit generator state information memory location.

【0214】一実施例では、各ランカウンタ(本例では
各確率クラス)は、符号化器内のヘッドカウンタまたは
テールカウンタと同じサイズ(例えば6ビット)のカウ
ンタを有する。新たなランが開始される(新たな符号語
が取り出される)たびに、対応するカウンタに符号語メ
モリのサイズがロードされる。1つのランが開始される
(1つの符号語が取り出される)たびに、全てのカウン
タがデクリメントされる。いずれかのカウンタが0にな
ることにより、対応したランカウントがクリアされる
(そしてLPS有(present)フラグがクリアされ
る)。
In one embodiment, each run counter (each probability class in this example) has a counter of the same size (eg 6 bits) as the head or tail counter in the encoder. Each time a new run is started (a new codeword is fetched), the corresponding counter is loaded with the size of the codeword memory. Every time one run is started (one codeword is taken), all counters are decremented. When any counter becomes 0, the corresponding run count is cleared (and the LPS present flag is cleared).

【0215】<有限メモリ用合図法のオプション>本発
明のリアルタイム復号によれば、復号器は、LPSが後
に続かず、かつ、最大ランレングスでないMPSのラン
を処理する必要がある。このようなことが起きるのは、
符号化器がMPSのランを開始したが、有限の並べ替え
メモリが足りないために、そのランが完了するまで待て
ない時である。この状況は、次にこのコンテキストビン
が使われる時に新たな符号語が復号されることを要求す
るので、この状況は復号器に知らされなければならな
い。復号器を修正する3つのやり方について以下に述べ
る。
<Option for Finite Memory Cue Method> According to the real-time decoding of the present invention, the decoder is required to process the runs of the MPS that are not followed by the LPS and are not the maximum run length. This is what happens
The encoder has begun to run MPS, but it is not possible to wait until the run is complete due to lack of finite reordering memory. This situation must be signaled to the decoder since it requires a new codeword to be decoded the next time this context bin is used. Three ways to modify the decoder are described below.

【0216】バッファが満杯の時に、強制的に出される
コンテキストビンまたは確率クラスのランカウントは、
リセットされねばならない。これを効率的に実現するた
めには、そのコンテキストビンまたは確率クラスを符号
語メモリに格納することが有効である。これが必要とな
るのは、まだ関係付けられた符号語を持たないランに対
してだけであるので、符号語の格納に使われるメモリは
共用可能である。なお、あるシステムでは、バッファが
満杯の時に、不完全な符号語を強制的に出すかわりに、
バッファにある未決状態の符号語のコンテキスト/確率
クラスにビットを押し込むことができる。復号器は、こ
れを検出して対応した(間違った)コンテキストビンま
たは確率クラスを扱う。
The run count of a context bin or probability class that is forced out when the buffer is full is
Must be reset. In order to achieve this efficiently, it is effective to store the context bin or probability class in the codeword memory. The memory used to store codewords is sharable because this is only needed for runs that do not yet have an associated codeword. Note that on some systems, instead of forcing an incomplete codeword when the buffer is full,
Bits can be pushed into the context / probability class of pending codewords in the buffer. The decoder detects this and handles the corresponding (wrong) context bin or probability class.

【0217】ストリーム内合図法(instream signalin
g)は、復号器への合図のために符号語を使う。一実施
例では、R2(k)、R3(k)符号の定義は、後にLPSが来
ない、最大長でないMPSのランを含むように変更され
る。これは、最低確率で発生する符号語に1ビットを追
加することにより実現できる。これは、非最大長のラン
カウントのために一義的に復号可能なプリフィックス
(prefix)を与える。図66のテーブル18はストリー
ム内合図法が可能なR2(2)符号の置き換えを示す。この
方法の欠点は、R−符号復号論理を変更しなければなら
ないことと、最低確率の符号語が発生するたびに圧縮コ
ストがかかることである。
In-stream signalin
g) uses codewords to signal the decoder. In one embodiment, the definition of the R2 (k), R3 (k) code is modified to include a run of non-maximum length MPS that is not followed by an LPS. This can be realized by adding 1 bit to the code word generated with the lowest probability. This gives a uniquely decodable prefix for non-maximum length run counts. The table 18 of FIG. 66 shows the replacement of the R2 (2) code capable of in-stream signaling. The disadvantage of this method is that the R-code decoding logic has to be changed and the cost of compression is incurred each time the least probable codeword occurs.

【0218】ある実施例では、復号器はタイムスタンプ
を使って暗黙合図法を行なう。1つの符号語が要求され
るたびにカウンタをインクリメントすることにより、現
在”時刻”を監視する。また、1つの符号語が始まるた
びに、現在”時刻”は、その符号語に関連したメモリに
セーブされる。1つの符号語が初めて使用された後は常
に、それに対応した記憶されている”時刻”値に符号化
器内の並べ替えバッファのサイズを足した値が、現在”
時刻”と比較される。現在”時刻”のほうが大きけれ
ば、暗黙の合図が出されることにより1つの新たな符号
が要求される。このようにして、符号化器内の限定され
た並べ替えメモリがシミュレートされた。一実施例で
は、全ての符号語を列挙できるよう”時刻”値のための
十分なビットが使われる。
In one embodiment, the decoder uses a time stamp to perform implicit signaling. The current "time" is monitored by incrementing the counter each time one codeword is requested. Also, each time a codeword begins, the current "time" is saved in the memory associated with that codeword. After a codeword is first used, the current stored "time" value plus the size of the reordering buffer in the encoder is now "
Compared with the "time". If the current "time" is greater, one new code is required by the implicit signal. Thus, the limited permutation memory in the encoder In one embodiment, enough bits are used for the "time" value to enumerate all codewords.

【0219】必要メモリを少なくするため、タイムスタ
ンプ用のビット数は最小に押さえられる。タイムスタン
プが使用するビット数が少ないため時刻値が再使用され
る場合、カウンタが時刻の再使用を開始する前に古いタ
イムスタンプがすべて記録されるよう配慮しなければな
らない。キュー用アドレスビットとビットジェネレータ
状態メモリ用アドレスビットの中で大きいほうのビット
数を、Nとする。N+1ビットのタイムスタンプを使用
できる。ビットジェネレータ状態メモリは多重アクセ
ス、恐らく復号された1ビットにつき2つの読み出しア
クセスと2つの書き込みアクセスをサポートしなければ
ならない。カウンタがビットジェネレータ状態メモリを
循環させるために用いられ、1ビット復号される毎に1
回インクリメントする。古すぎるメモリロケーション
は、将来使用される時に新たな符号語が取り出されるよ
うにクリアされる。これによって、タイム値が再使用さ
れる前に全てのタイムスタンプが確実にチェックされ
る。
In order to reduce the required memory, the number of bits for the time stamp can be suppressed to the minimum. If the time value is reused because the time stamp uses fewer bits, care must be taken to ensure that all old time stamps are recorded before the counter starts reusing the time. The larger bit number of the queue address bit and the bit generator state memory address bit is N. A time stamp of N + 1 bits can be used. The bit generator state memory must support multiple accesses, perhaps two read and two write accesses per bit decoded. A counter is used to cycle through the bit generator state memory, one for every one bit decoded.
Increment times. Memory locations that are too old are cleared so that new codewords can be retrieved for future use. This ensures that all time stamps are checked before the time value is reused.

【0220】ビットジェネレータ状態メモリがキューよ
り小さいときは、カウンティング(タイムスタンプカウ
ンタ)のレートと必要とされるメモリ帯域幅を削減でき
る。というのは、各タイムスタンプ(ビットジェネレー
タ状態メモリあたり1個)は、キュー全体を使用するの
に要するサイクル数毎に1回、チェックしなければなら
ないためである。また、タイムスタンプを別メモリに格
納すれば、必要なメモリ帯域幅が減るかもしれない。部
分ランのために”0”符号語を用いるシステムでは、”
1N”符号語に関してはタイムスタンプをチェックする
必要がない。部分ランのために”1N”符号語を用いる
システムでは、タイムスタンプをチェックしなければな
らないのはLPSを生成する前だけである。
When the bit generator state memory is smaller than the queue, the counting (time stamp counter) rate and the required memory bandwidth can be reduced. This is because each time stamp (one per bit generator state memory) must be checked once every cycle required to use the entire queue. Also, storing the time stamps in a separate memory may reduce the required memory bandwidth. In a system that uses a "0" codeword for partial runs,
There is no need to check the time stamp for the 1N "codeword. In systems that use the" 1N "codeword for partial runs, the time stamp must be checked only before the LPS is generated.

【0221】ある実施例では、復号期間に1つのキュー
を用いて暗黙合図法が実施される。この方法は、符号化
用ハードウエアを復号期間に利用できる半二重システム
において有効であろう。このキューの動作は符号化期間
と殆ど同じである。新たな符号語が要求された時に、そ
のインデックスがキューに入れられ、無効のマークが付
けられる。1つの符号語のデータが終わった時に、その
キューエントリーは有効のマークが付けられる。新たな
符号語のための空きを作るためキューからデータが取り
出される時に、そのデータに無効のマークが付けられて
いるならば、該当インデックスからのビットジェネレー
タ状態情報はクリアされる。このクリア動作のために
は、ビットジェネレータ状態メモリが余分な書き込み動
作をサポートできることが必要になるかもしれない。
In one embodiment, implicit cues are implemented using one queue during the decoding period. This method may be useful in half-duplex systems where coding hardware is available during decoding. The operation of this cue is almost the same as the encoding period. When a new codeword is requested, its index is queued and marked invalid. When the data for one codeword is finished, the cue entry is marked valid. When data is removed from the queue to make room for a new codeword, if the data is marked invalid, the bit generator state information from that index is cleared. This clear operation may require the bit generator state memory to be able to support extra write operations.

【0222】一方、明示合図法(explicit signaling)
は、バッファのオーバーフローを圧縮データとして知ら
せる。1つの例は、補助的なコンテキストビンを持ち、
この補助的なコンテキストビンをそれぞれの標準コンテ
キストビンの復号毎に1回、あるいは復号された各符号
語毎に1回、使用する方法である。補助的なコンテキス
トビンより復号されるビットは、新たな符号語を必要と
する条件が発生し、新たな符号語を対応した標準コンテ
キストビンで復号しなければならないか指示する。この
場合、この特殊なコンテキストの符号語は適切に並べ替
えられなければならない。この補助的コンテキストを使
うことは利用は並べ替えユニットに分かっている1機能
であるので(普通、それは各符号語毎に1度使用され
る)、補助的コンテキストの並べ替えのために必要とさ
れるメモリは、暗黙的に限定もしくは模擬できる。ま
た、この補助的コンテキストに対し許容し得る符号も限
定できる。
On the other hand, explicit signaling
Reports buffer overflow as compressed data. One example has an auxiliary context bin,
This auxiliary context bin is used once for each standard context bin decoding or once for each decoded codeword. The bits decoded from the auxiliary context bins indicate if a condition requiring a new codeword occurs and the new codeword must be decoded in the corresponding standard context bin. In this case, the codewords of this special context must be properly reordered. Using this ancillary context is needed for the ancillary context reordering, as utilization is a function known to the reordering unit (typically it is used once for each codeword). Memory can be implicitly limited or simulated. Also, the codes that can be allowed for this auxiliary context can be limited.

【0223】暗黙合図法は、復号時に、新たな符号語を
復号しなければならないことを示す信号を生成するた
め、符号化器の限定されたバッファを模擬する。一実施
例では、各コンテキスト毎に1つのタイムスタンプが保
持される。一実施例では、符号化器の有限サイズの並べ
替えバッファが直接的に模擬される。半二重システムで
は、符号化器の並べ替え回路が復号期間に利用可能であ
るので、その並べ替え回路は復号器のためのその信号の
生成に利用されることになろう。
Implicit signaling mimics the encoder's limited buffer to generate a signal at decoding that indicates that a new codeword must be decoded. In one embodiment, one timestamp is maintained for each context. In one embodiment, the encoder's finite size reordering buffer is directly simulated. In a half-duplex system, the permutation circuit of the encoder will be available during the decoding period, so that the permutation circuit will be used to generate its signal for the decoder.

【0224】正確には、暗黙合図法を実現する方法は、
符号化器がバッファ満杯状態を認識し処理する具体的な
方法によって決まる。割り当ての固定した併合キューを
使うシステムの場合、複数のヘッドポインタを用いるこ
とにより、”バッファ満杯”の意味する内容を複数種類
選択できる。符号化器としての設計が与えられれば、適
切なモデルを設計できる。
To be exact, the method for realizing the implicit signal method is
It depends on the specific way the encoder recognizes and handles the buffer full condition. In the case of a system using a merged queue with a fixed allocation, it is possible to select a plurality of types of contents meaning "buffer full" by using a plurality of head pointers. Given a design as an encoder, an appropriate model can be designed.

【0225】符号化器の動作と、復号器に利用される、
固定ストリーム割り当てで確率別並列方式の併合キュー
用のモデルについて、以下に述べる。この例では、並べ
替えバッファが256個のロケーションを有し、4つの
インターリーブドストリームが用いられ、各インターリ
ーブド語が16ビットであると仮定する。バッファに2
56個のエントリーが入っている時には、1つのエント
リーをビットパックを行なう部分(例えばビットパック
ユニット)へ出力した後でないと、257番目の符号語
をキューに入れることができない。必要ならば、それよ
り前にエントリーを出してもよい。
[0225] The operation of the encoder and the decoder,
A model for a fixed-stream-allocation-probabilistic parallel merging queue is described below. In this example, assume that the reordering buffer has 256 locations, four interleaved streams are used, and each interleaved word is 16 bits. 2 in the buffer
When there are 56 entries, the 257th codeword cannot be queued until one entry is output to the bit-packing portion (eg, bit-pack unit). If necessary, you may make an entry before that.

【0226】あるシステムでは、最初のエントリーを取
り除くためには、1つのインターリーブド語全体を完成
するに足るビットを取り除く必要がある。したがって、
1ビットの符号語があり得るならば、16ビットのイン
ターリーブド語の場合、符号語0を取り除くには、符号
語4,8,12,...,52,56,60をも取り除か
なければならないことになろう。これらのバッファエン
トリー全部が有効なエントリーを持つことを保証するた
め、メモリが満杯になるまで1つのエントリーを強制的
に押し込むことができるのは、新たな符号語が入れられ
るロケーションから192ロケーションはなれた、アド
レス64においてである(256−16×4=19
2)。
In some systems, removing the first entry requires removing enough bits to complete an entire interleaved word. Therefore,
If a 1-bit codeword is possible, in the case of a 16-bit interleaved word, to remove codeword 0, codewords 4, 8, 12, ..., 52, 56, 60 must also be removed. It will not happen. To ensure that all of these buffer entries have valid entries, you can force one entry until the memory is full, 192 locations away from the location where the new codeword is placed. , At address 64 (256-16 × 4 = 19
2).

【0227】復号器には、各確率毎に1つのカウンタが
ある。ある符号語があるランを開始させるために使用さ
れる時に、そのカウンタは192をロードされる。1つ
の新たな符号語がどのような確率に使用される時でも常
に、全部のカウンタがデクリメントされる。どのカウン
タが0に達しても、該当確率のためのランレングスは0
に設定される(かつLPS有フラグはクリアされる)。
The decoder has one counter for each probability. The counter is loaded with 192 when a codeword is used to start a run. Whenever one new codeword is used, every counter is decremented. No matter which counter reaches 0, the run length for that probability is 0
Is set to (and the LPS presence flag is cleared).

【0228】各符号化データストリーム毎に1バンクず
つ、複数のRAMバンク(マルチポートのメモリ、高速
メモリを使ったシミュレーション、等々)を用いると好
都合であろう。こうすれば、全てのビットパックユニッ
トが同時にデータを受け取ることができるので、あるス
トリームのための複数の符号語の読み出しが他のストリ
ームによる読み出しの妨げにならない。
It may be convenient to use a plurality of RAM banks (multi-port memory, simulations using high speed memory, etc.), one bank for each encoded data stream. In this way, all bitpack units can receive data at the same time so that reading multiple codewords for one stream does not interfere with reading by another stream.

【0229】他のシステムにおいては、複数のビットパ
ックユニットが、符号語のバッファへの格納順序に基づ
き、1つのメモリに対して調停をしなければならない。
このようなシステムでは、バッファから1つのエントリ
ーを取り除いても1つのインターリーブド語を完成しな
いかもしれない。各ビットパックユニットは、通常、1
つのインターリーブド語の部分を順々に受け取る。各ビ
ットパックユニットは、最低でも最短符号語長(例えば
1ビット)に相当する数のビットを受け取り、最大でも
最長符号語長(例えば13ビット)に相当する数のビッ
トを受け取る。インターリーブド語は、それらが完成す
るまで送出することはできず、また、初期化の順に送出
されねばならない。この例において、1つのビットパッ
クユニットが13個のインターリーブド語をバッファし
なければならないであろう。この13個とは、別のスト
リームが、最小長符号語を受け取りつつあるペンディン
グ中の1つのインターリーブド語を持っている時に、最
大長符号語で完成し得るインターリーブド語の最大数で
ある。
In other systems, multiple bit pack units must arbitrate for one memory based on the order in which the codewords are stored in the buffer.
In such a system, removing one entry from the buffer may not complete an interleaved word. Each bit pack unit is typically 1
Receives one interleaved part in turn. Each bit pack unit receives at least as many bits as the shortest codeword length (eg 1 bit) and at most as many bits as the longest codeword length (eg 13 bits). Interleaved words cannot be sent until they are complete, and must be sent in the order of initialization. In this example, one bitpack unit would have to buffer 13 interleaved words. The thirteen is the maximum number of interleaved words that can be completed with the maximum length codeword when another stream has one pending interleaved word that is receiving the minimum length codeword.

【0230】あらゆる符号語がメモリの2回の書き込み
と1回の読み出しを必要とするシステムは、2回の書き
込みと2回の読み出しを行なうシステムに比べ、ハード
ウエアで実現するためには望ましくないかもしれない。
もし、これが4ストリームの本例システムで要求される
ならば、ビットパックユニット1とビットパックユニッ
ト2が一方のメモリ読み出しサイクルを共有し、ビット
パックユニット1とビットパックユニット3が他方のメ
モリ読み出しサイクルを共有することになろう(あるい
は他の任意の組合せ)。これは必要なバッファサイズを
減少させないかもしれないが、ビットパックユニットへ
の転送レートを高めるであろう。これによって、ビット
パックユニットは符号化データチャネルの容量をより有
効に利用できるであろう。
A system in which every codeword requires two writes and one read of the memory is less desirable to implement in hardware than a system that performs two writes and two reads. It may be.
If this is required in the 4-stream example system, bitpack unit 1 and bitpack unit 2 share one memory read cycle and bitpack unit 1 and bitpack unit 3 the other memory read cycle. Will be shared (or any other combination). This may not reduce the required buffer size, but it will increase the transfer rate to the bitpack unit. This will allow the bitpack unit to make better use of the capacity of the encoded data channel.

【0231】<メモリサイズが固定されたシステム>1
確率クラスにつき複数のビットジェネレータ状態を持つ
システムの1つの利点は、固定サイズのメモリがオーバ
ーフローした時に損失性コーディングをサポートできる
ことである。このことは、フレームバッファに対する画
像圧縮や、それ以外のある決まった量のデータしか記憶
しない用途に有利であろう。
<System with fixed memory size> 1
One advantage of a system with multiple bit generator states per probability class is that it can support lossy coding when a fixed size memory overflows. This may be advantageous for image compression to the frame buffer and other applications that store only a certain amount of data.

【0232】メモリが固定サイズのシステムでは、各確
率毎の複数のビットジェネレータ状態はそれぞれデータ
の一部に割り当てられる。例えば、8ビットデータの場
合、8状態中の各状態を1つの特定のビットプレーンに
割り当てることができよう。この場合にはまた、複数の
シフタが順々に次の符号語を提供するのではなく、デー
タの各部分に1つのシフタが割り当てられる。なお、デ
ータはビットプレーンに分割される必要はない。また、
符号化器においては、インターリービングは行なわれ
ず、データの各部分は単にビットパックされるだけであ
る。メモリはデータの各部分に割り当てられる。
In a system with fixed size memory, multiple bit generator states for each probability are each assigned to a portion of the data. For example, for 8-bit data, each of the eight states could be assigned to one particular bitplane. In this case also, one shifter is assigned to each piece of data, rather than the shifters providing the next codeword in sequence. Note that the data does not have to be divided into bit planes. Also,
In the encoder, no interleaving is done and each piece of data is simply bit packed. Memory is assigned to each piece of data.

【0233】全てのデータを固定サイズのメモリに格納
するシステム及び許容最大限の帯域幅を持つチャネルで
データを伝送するシステムのための、符号化データのメ
モリ管理方法について述べる。これらのシステムのどち
らでも、損失性システムへ緩やかに移行することが望ま
れる。十分な記憶スペースまたは帯域幅を利用できない
時に、重用度の低いデータを格納することができるか、
あるいは転送できないよう、異なった重用度のデータに
対して異なったデータストリームが使われる。
A memory management method for encoded data for a system that stores all data in a fixed size memory and a system that transmits data in a channel having an allowable maximum bandwidth will be described. In either of these systems, a gradual transition to a lossy system is desired. Is it possible to store less important data when sufficient storage space or bandwidth is not available,
Alternatively, different data streams are used for different weights of data so that they cannot be transferred.

【0234】メモリを使う時に、重要なデータストリー
ムを復号する能力を損なわずに重用度の低いデータスト
リームを捨てることができるような符号化データのアク
セスが可能なように、符号化データを格納しなければな
らない。符号化データは可変長であるので、動的メモリ
割り当てを用いることができる。図38は、3つの符号
化データストリームのための動的メモリ割り当ての一例
を示す。レジスタファイル3100(または他の記憶
域)は、各ストリーム毎のポインタのほかに、次の空き
メモリロケーションを指示するためのもう1つのポイン
タを保持している。メモリ3101は固定サイズのペー
ジに分割される。
When the memory is used, the encoded data is stored so that the encoded data can be accessed so that the less important data stream can be discarded without impairing the ability to decode the important data stream. There must be. Since the encoded data is of variable length, dynamic memory allocation can be used. FIG. 38 shows an example of dynamic memory allocation for three encoded data streams. The register file 3100 (or another storage area) holds not only the pointer for each stream but also another pointer for indicating the next free memory location. Memory 3101 is divided into fixed size pages.

【0235】最初、1つのストリームに割り当てられた
各ポインタはメモリの1つのページの先頭を指してお
り、また空きポインタはメモリの次に利用可能なページ
を指している。ある特定のストリームの符号化データ
は、対応したポインタによりアドレスされるメモリロケ
ーションに格納される。そして、このポインタは次のメ
モリロケーションを指すようインクリメントされる。
Initially, each pointer assigned to one stream points to the beginning of one page of memory, and the empty pointer points to the next available page of memory. The encoded data for a particular stream is stored in a memory location addressed by a corresponding pointer. This pointer is then incremented to point to the next memory location.

【0236】ポインタが現在ページのための最大値に達
した時に、以下に述べる操作が行なわれる。次の空きペ
ージの先頭のアドレス(空きポインタに格納されてい
る)に現在ページが格納される。(符号化データメモリ
の一部または別のメモリもしくはレジスタファイルのい
ずれを使用してもよい。) 現在ポインタは次の空きペ
ージを指すように設定される。空きポインタはインクリ
メントされる。これらの動作で、メモリの新たな1ペー
ジを特定のストリームに割り当て、割り当て順序を復号
中に判定できるようリンクさせる。
When the pointer reaches the maximum value for the current page, the following operations are performed. The current page is stored at the first address (stored in the empty pointer) of the next empty page. (A portion of the encoded data memory or another memory or register file may be used.) The current pointer is set to point to the next free page. Free pointers are incremented. These operations allocate a new page of memory to a particular stream and link it so that the allocation order can be determined during decoding.

【0237】メモリの全てのページが使用中で、メモリ
内の重用度が最低のデータよりも重用度が高い、あるス
トリームからのデータがほかにある時には、3つの動作
の中の1つが行なわれるであろう。3つのケース全てに
おいて、重用度が最低のデータストリームに割り当てら
れたメモリは、それより重用度の高いデータストリーム
に再割り当てされ、最低重用度のデータストリームから
のデータはそれ以上格納されない。
When all pages of memory are in use and there is more data from one stream that is more busy than the least busy data in memory, then one of three actions is taken. Will. In all three cases, the memory allocated to the least important data stream is reallocated to the more important data stream and no more data from the least important data stream is stored.

【0238】その1つは、最低重用度のストリームによ
り現在使われているページが、単に、それより高い重用
度のデータに割り当てられる。最も一般的なエントロピ
ーコーダは内部状態情報を利用するので、当該ページに
前に格納されていた最低重用度のデータは失われる。
One is that the page currently being used by the lowest-duty stream is simply assigned to the higher-duty data. Since the most common entropy coders utilize internal state information, the lowest severity data previously stored on the page is lost.

【0239】もう1つは、最低重用度のデータにより現
在使われているページが、単に、それより高い重用度の
データに割り当てられる。しかし、前ケースと違って、
ポインタは当該ページの最後を指すように設定され、よ
り重用度の高いデータが当該ページに書き込まれるに従
い対応したポインタがデクリメントされる。これは、重
用度の高いデータストリームが当該ページ全体を必要と
しないならば、当該ページの初めの部分にある最低重用
度のデータが保存されるという利点がある。
On the other hand, the page currently used by the lowest-usage data is simply assigned to the higher-usage data. However, unlike the previous case,
The pointer is set so as to point to the end of the page, and the corresponding pointer is decremented as more highly important data is written to the page. This has the advantage that if the heavy duty data stream does not require the entire page, the lowest weight data at the beginning of the page is saved.

【0240】3つめは、最低重用度データの現在ページ
を再割り当てする代わりに、最低重用度データの任意の
ページが再割り当てされる。これには全てのページにつ
き符号化データが独立に符号化される必要があるが、こ
のことは達成される圧縮率を低下させる可能性がある。
また、全ページの先頭に対応する符号化前データが識別
される必要がある。最低重用度データのどのページを捨
ててもよいので、損失性符号化へ緩やかに移行させる上
でのフレキシビリティの増加を得られる。
[0240] Third, instead of reallocating the current page of the lowest-usage data, any page of the lowest-usage data is reallocated. This requires the encoded data to be encoded independently for every page, which can reduce the compression rate achieved.
In addition, it is necessary to identify the uncoded data corresponding to the beginning of all pages. Since any page of the least important data can be discarded, an increase in flexibility in gradual transition to lossy coding can be obtained.

【0241】この3番目の選択肢は、画像の複数領域に
わたって一定の圧縮率を達成するシステムには特に魅力
的であろう。指定された数のメモリページを画像の1つ
の領域に割り当てることができる。重用度の低いデータ
が保存されるか否かを、特定の領域において達成された
圧縮率によって決めることができる。(ある領域に割り
当てられたメモリは、その割り当てメモリ量より少ない
メモリ量しか非損失性圧縮に必要としなければ、全部は
使用されないであろう。) 画像の1つの領域に対し一
定の圧縮率を達成することにより、その画像領域へのラ
ンダムアクセスをサポートできる。
This third option would be particularly attractive for systems that achieve constant compression over multiple regions of the image. A specified number of memory pages can be allocated to an area of the image. Whether less important data is stored can be determined by the compression ratio achieved in a particular area. (The memory allocated to an area will not be used if less memory is needed for lossless compression.) A constant compression ratio for one area of the image. By accomplishing this, random access to the image area can be supported.

【0242】各ページにその両端よりデータを書き込む
機能を、システム内で利用可能なメモリ全体の利用率を
向上させるために利用できる。全ページが割り当てられ
ている時に、一端側に十分な空きスペースのあるページ
を、その端から利用するように割り当てることができ
る。ページの両端を利用する機能は、2種類のデータが
ぶつかるロケーションの管理コストと比較衡量されなけ
ればならない。(これは、一方のデータ種類が重要でな
く単純に上書きされてよい場合は別である。) ここで、データがメモリに格納されるのではなくチャネ
ルで伝送されるシステムを考える。固定サイズのメモリ
ページが使用されるが、1ストリームにつき1ページし
か必要とされない。(あるいは、チャネルに対するバフ
ァリングを行なうため、一方のページに書き込んでいる
間に、他方のページを読み出して出力することができる
ようなピンポン動作が必要ならば、1ストリームにつき
2ページが必要となろう。) メモリの1つのページが
満杯になった時に、そのページはチャネルで伝送され、
該ページの伝送後すぐに当該メモリロケーションは再利
用可能である。ある種のアプリケーションでは、メモリ
のページサイズを、チャネルで用いられるデータパケッ
トのサイズ、あるいは、パケットサイズの何倍かにする
ことができる。
The function of writing data from both ends of each page can be used to improve the utilization rate of the entire memory available in the system. When all pages have been allocated, a page with sufficient free space at one end can be allocated to be used from that end. The ability to utilize both ends of the page must be weighed against the cost of managing locations where two types of data collide. (This is the case if one data type is not important and may simply be overwritten.) Now consider a system in which data is transmitted in channels rather than stored in memory. Fixed size memory pages are used, but only one page per stream is needed. (Alternatively, if ping-pong operation is required such that one page can be read and output while the other page is being written to perform buffering for the channel, then two pages are required for each stream. When a page of memory is full, that page is transmitted on the channel,
The memory location is reusable immediately after transmission of the page. In some applications, the page size of memory can be the size of the data packet used by the channel, or many times the packet size.

【0243】ある種の通信方式では、例えばATM(非
同期転送モード)では、パケットにプライオリティを持
たせることができる。ATMは、プライマリとセカンダ
リの2つのプライオリティレベルを有する。セカンダリ
パケットは十分な帯域幅を利用できるときだけ伝送され
る。どのストリームがプライマリであるか、どのストリ
ームがセカンダリであるかを判断するために、閾値を利
用することができる。もう一つの方法は、ある閾値より
重用度が低いストリームを伝送させないための閾値を、
符号化器において利用することであろう。
In a certain type of communication system, for example, ATM (asynchronous transfer mode), a packet can be given priority. ATM has two priority levels, primary and secondary. Secondary packets are transmitted only when sufficient bandwidth is available. Thresholds can be used to determine which streams are primary and which are secondary. The other method is to set a threshold to prevent the transmission of streams that are less important than a certain threshold.
It will be used in the encoder.

【0244】<符号毎に分離されたビットジェネレータ
>図27は、各符号毎に分離したビットジェネレータを
持つシステムのブロック図である。図27において、復
号システム2000はコンテキストモデル2001、メ
モリ2002、PEM状態−符号ブロック2003、デ
コーダ2004、ビットジェネレータ2005a〜20
05n、シフタ2006からなる。コンテキストモデル
2001の出力はメモリ2002の入力に接続される。
メモリ2002の出力はPEM状態−符号ブロック20
03の入力に接続される。PEM状態−符号ブロック2
003の出力はデコーダ2004の入力に接続される。
デコーダ2004の出力は、ビットジェネレータ200
5a〜2005n用のイネーブルとして接続される。ビ
ットジェネレータ2005a〜2005nはまた、シフ
タ2006の符号化データ出力を受け取るように接続さ
れる。
<Bit Generator Separated for Each Code> FIG. 27 is a block diagram of a system having a bit generator separated for each code. 27, the decoding system 2000 includes a context model 2001, a memory 2002, a PEM state-code block 2003, a decoder 2004, and bit generators 2005a to 20a.
It consists of 05n and shifter 2006. The output of the context model 2001 is connected to the input of the memory 2002.
The output of the memory 2002 is the PEM state-code block 20.
03 input. PEM state-code block 2
The output of 003 is connected to the input of the decoder 2004.
The output of the decoder 2004 is the bit generator 200.
Connected as enables for 5a-2005n. Bit generators 2005a-2005n are also connected to receive the encoded data output of shifter 2006.

【0245】コンテキストモデル2001、メモリ20
02及びPEM状態−符号ブロック2003は、図26
中の対応部分と同じ様に作用する。コンテキストモデル
2001はコンテキストビンを発生する。メモリ200
2は、そのコンテキストビンに基づき確率状態を出力す
る。この確率状態は、各確率状態に対し1つの確率クラ
スを生成するPEM状態−符号ブロック2003に受け
取られる。デコーダ2004は、その確率クラスをデコ
ードしてビットジェネレータ2005a〜2005n中
の1つをイネーブルする。(なお、デコーダ2004は
周知の74×138 3:8デコーダに類似したM:2M
デコーダ回路である。エントロピー復号器ではな
い。) なお、各符号毎に別々のビットジェネレータが
あるので、一部のビットジェネレータはR−符号以外の
符号を用いるかもしれない。特に、60%近くの確率の
ための符号が、R2(0)とR2(1)の間の確率空間をよりよ
くカバーするために用いられるかもしれない。例えば、
図67のテーブル19はそのような符号を示している。
Context model 2001, memory 20
02 and PEM state-code block 2003 is shown in FIG.
Works the same as the corresponding part inside. The context model 2001 generates a context bin. Memory 200
2 outputs the probability state based on the context bin. This stochastic state is received in the PEM state-code block 2003, which produces one probability class for each stochastic state. Decoder 2004 decodes the probability class and enables one of bit generators 2005a-2005n. (Note that the decoder 2004 is M: 2 M similar to the well-known 74 × 138 3: 8 decoder.
This is a decoder circuit. Not an entropy decoder. Note that there is a separate bit generator for each code, so some bit generators may use codes other than the R-code. In particular, codes for probabilities near 60% may be used to better cover the probability space between R2 (0) and R2 (1). For example,
Table 19 in FIG. 67 shows such a code.

【0246】所要の速度を達成するために必要ならば、
復号データを迅速に利用できることを保証するため1ビ
ット以上の前復号を行なってもよい。ある実施例では、
各クロックサイクル毎に長いランカウントを更新できな
くともよいように、符号語の復号と長い符号のためのラ
ンカウンティングが両方とも分割される。
If necessary to achieve the required speed,
Pre-decoding of 1 bit or more may be performed to ensure that the decoded data can be used quickly. In one embodiment,
Both the decoding of codewords and the run counting for long codes are split so that the long run count may not be updated every clock cycle.

【0247】R2(0)符号用のビットジェネレータは複雑
でない。1ビットが要求される度に1つの符号語が要求
される。この生成されるビットは(MPSと論理和され
た)符号語にすぎない。
The bit generator for the R2 (0) code is uncomplicated. One codeword is required every time one bit is required. The generated bits are only codewords (ORed with MPS).

【0248】短いランレングスのための符号、例えばR
2(1),R3(1),R2(2),R3(2)は次に述べるように扱わ
れる。1つの符号語中のビット全部が復号されて、小さ
なカウンタ(1,2または3ビット)及びLPS有ビッ
トからなる状態マシンに格納される。このカウンタとL
PS有ビットはR−符号復号器のように働く。
Codes for short run lengths, eg R
2 (1), R3 (1), R2 (2), R3 (2) are treated as described below. All the bits in one codeword are decoded and stored in a state machine consisting of a small counter (1, 2 or 3 bits) and LPS with bits. This counter and L
The PS present bit works like an R-code decoder.

【0249】R2(k),R3(k)(k>2)のような長い符
号については、ビットジェネレータは図28に示される
ように2つのユニットに分割される。図28において、
短ランユニット2101と長ランユニット2102を持
つ、R2(k)(k>2)用のビットジェネレータの構造が
示されている。なお、この構造はR2(k>2)符号用である
が、その動作はR3(k>2)符号に対しても同様となる
(そして、これは当業者には明白である)。
For long codes such as R2 (k) and R3 (k) (k> 2), the bit generator is split into two units as shown in FIG. In FIG. 28,
The structure of a bit generator for R2 (k) (k> 2) having a short run unit 2101 and a long run unit 2102 is shown. Note that although this structure is for the R2 (k> 2) code, the operation is similar for the R3 (k> 2) code (and this will be apparent to those skilled in the art).

【0250】短ランユニット2101はイネーブル信号
と符号語[0..2]をビットジェネレータに対する入力
として受け取り、また長ランユニット2102より”オ
ール1”信号と”カウント0”信号(カウントが0であ
ることを表示する)を受け取るよう接続されている。こ
れらの入力に応答して、短ランユニット2101は復号
ビットと、新たな符号語が必要であることを示すnex
t信号表示とを出力する。短ランユニット2101はま
た、カウントイネーブル信号、カウントロード信号及び
カウントmax信号を発生し長ランユニット2102へ
送る。長ランユニット2102はまた、符号語[k...
3]をビットジェネレータへの入力として受け取るよう
接続されている。
The short run unit 2101 receives the enable signal and the code word [0..2] as inputs to the bit generator, and the long run unit 2102 receives an "all 1" signal and a "count 0" signal (count is 0). Connected to receive). In response to these inputs, the short run unit 2101 indicates the decoded bits and a new code word next.
and t signal display are output. The short run unit 2101 also generates a count enable signal, a count load signal and a count max signal and sends them to the long run unit 2102. The long run unit 2102 also uses the codewords [k ...
3] is received as an input to the bit generator.

【0251】短ランユニット2101は長さ4までのラ
ンを扱うもので、R2(2)ビットジェネレータに類似して
いる。一実施例では、短ランユニット2101はR2(k>
2)符号全部について同一である。長ランユニット210
2の目的は、ランの最後の1〜4ビットが何時出力され
るべきか判断することである。長ランユニット2102
は、入力、AND論理、及びkによってサイズが変わる
カウンタを有する。
The short run unit 2101 handles runs up to length 4 and is similar to the R2 (2) bit generator. In one embodiment, the short run unit 2101 uses R2 (k>
2) It is the same for all symbols. Long run unit 210
The purpose of 2 is to determine when the last 1-4 bits of the run should be output. Long run unit 2102
Has a counter whose size varies with inputs, AND logic, and k.

【0252】長ラン(カウント)ユニット2102の一
実施例が図29に示されている。図29において、長ラ
ンユニット2102はAND論理2201を有する。こ
のAND論理2201は、符号語[k...3]を受け取
るように接続され、その符号語中のビット全部が1のと
きに論理1の”オール1”信号を出力することにより、
現在の符号語が1N符号語であって、ランカウントが4
未満であることを表示する。NOT論理2202も、そ
の符号語を受け取って反転するように接続されている。
NOT論理2202の出力はビットカウンタ2203の
1つの入力に接続される。ビットカウンタ2203はま
た、カウントイネーブル信号、カウントロード信号及び
カウントmax信号を受け取るように接続される。ビッ
トカウンタ2203は、それら入力に応じて、カウント
0信号を発生する。
An example of a long run (count) unit 2102 is shown in FIG. In FIG. 29, the long run unit 2102 has an AND logic 2201. This AND logic 2201 is connected to receive the codeword [k ... 3], and outputs an "all 1" signal of logic 1 when all the bits in the codeword are 1
The current codeword is a 1N codeword and the run count is 4
Indicates that it is less than. NOT logic 2202 is also connected to receive and invert the codeword.
The output of NOT logic 2202 is connected to one input of bit counter 2203. The bit counter 2203 is also connected to receive the count enable signal, the count load signal and the count max signal. The bit counter 2203 generates a count 0 signal according to those inputs.

【0253】一実施例では、ビットカウンタ2203は
k−2ビットのカウンタであり、長いランカウントを、
4個のMPSからなるランと、恐らくいくらかの余りと
に分解する。カウントイネーブル信号は、4個のMPS
が出力されたのでカウンタがデクリメントされるべきこ
とを指示する。カウントロード信号は、”1N”符号語
を復号する時に利用され、符号語ビットk〜3の補数を
カウンタにロードさせる。カウントmax信号は、”
0”符号語を復号する時に利用され、カウンタにその最
大値をロードする。カウント0信号は、カウンタが0で
あることを表示する。
In one embodiment, the bit counter 2203 is a k-2 bit counter, which provides a long run count
It decomposes into a run of 4 MPSs, and possibly some excess. Count enable signal is 4 MPS
Is output, indicating that the counter should be decremented. The count load signal is used when decoding "1N" codewords and loads the counter with the complement of codeword bits k-3. The count max signal is "
Used when decoding a 0 "codeword, it loads the counter with its maximum value. The count 0 signal indicates that the counter is zero.

【0254】短ラン(カウント)ユニット2101の一
実施例が図30に示されている。図30において、この
短ラン(カウント)ユニット2101は制御モジュール
2304、2ビットのカウンタ(MPSカウンタ)23
02及び3ビットのカウンタ(R2(2)カウンタ及びLP
S)2303を含む。制御モジュール2301はイネー
ブル信号、符号語「0...2」、長ラン(カウント)ユ
ニットからのオール1信号及びカウント0信号を受け取
る。2ビットカウンタ2302は、長いランの一部であ
る4ビットのMPSのランをカウントするために用いら
れる。R2(2)カウンタ及びLPSビット(合計3ビッ
ト)2303は、ランの終わりで1〜4ビットを生成す
るために用いられる。イネーブル入力は、ビット出力に
1ビットを出すよう指示する。カウント0入力は、アサ
ートされない時に、4個のMPSからなるランが出力さ
れることを表示する。MPSカウンタ2302が0にな
った時には常に、カウンタイネーブル出力がアサートさ
れる。カウント0入力がアサートされた時には、R2(2)
カウンタ及びLPS2303が使用されるか、あるいは
新たな符号語が復号されてnext出力がアサートされ
る。
An example of a short run (count) unit 2101 is shown in FIG. In FIG. 30, the short run (count) unit 2101 includes a control module 2304, a 2-bit counter (MPS counter) 23.
02 and 3-bit counter (R2 (2) counter and LP
S) 2303. The control module 2301 receives the enable signal, the code word "0 ... 2", the all 1 signal and the count 0 signal from the long run (count) unit. The 2-bit counter 2302 is used to count the 4-bit MPS runs that are part of the long run. The R2 (2) counter and LPS bits (3 bits total) 2303 are used to generate 1 to 4 bits at the end of the run. The enable input directs the bit output to output one bit. The count 0 input indicates that a run of 4 MPS will be output when not asserted. Whenever the MPS counter 2302 reaches 0, the counter enable output is asserted. When count 0 input is asserted, R2 (2)
Either a counter and LPS 2303 is used, or a new codeword is decoded and the next output is asserted.

【0255】その新たな符号語が復号される時に実行さ
れる動作は、符号語入力によって決定される。入力が”
0”符号語ならば、MPSカウンタ2302が用いら
れ、カウントmax出力がアサートされる。”1N”符
号語の場合には、その符号語の最初の3ビットがR2(2)
カウンタ及びLPS2303へロードされ、カウントロ
ード出力がアサートされる。オール1入力がアサートさ
れるときには、R2(2)カウンタ及びLPS2303がビ
ットを生成するために利用されるが、そうでないときに
はカウント0入力がアサートされるまでMPSカウンタ
2302が利用される。
The operation performed when the new codeword is decoded is determined by the codeword input. Input is "
If it is a 0 "codeword, the MPS counter 2302 is used and the count max output is asserted. In the case of a" 1N "codeword, the first 3 bits of that codeword are R2 (2).
The counter and LPS 2303 are loaded and the count load output is asserted. The R2 (2) counter and LPS 2303 are used to generate bits when the All-1 input is asserted, otherwise the MPS Counter 2302 is used until the Count0 input is asserted.

【0256】システム全体としてみると、符号数は、シ
ステムが良好に動作するよう小さくしなければならず、
普通、25未満にしなければならない。ビット出力及び
符号語出力のために必要なマルチプレクサのサイズと、
特定のビットジェネレータをイネーブルするデコーダの
サイズは、高速動作のために制限しなければならない。
また、シフタからの符号語のファンアウトは、高速動作
のために大き過ぎてはならない。
Looking at the system as a whole, the number of codes must be small for the system to operate well,
Normally, it should be less than 25. The size of the multiplexer required for bit output and codeword output,
The size of the decoder that enables a particular bit generator must be limited for high speed operation.
Also, the fanout of codewords from the shifter should not be too large for high speed operation.

【0257】符号語毎に分離したビットジェネレータ
は、パイプライン処理が可能である。全ての符号語が結
果として2ビット以上になるとするならば、符号語の処
理を1サイクルでなく2サイクル単位でパイプラン化で
きるであろう。そうすれば、ビットジェネレータがシス
テムの速度制限部分でるとすると、復号器の速度は2倍
になろう。これを成し遂げる1つの方法は、ランレング
ス0の符号語(単に1個のLPSを示す符号語)の後に
次の未復号ビットである1ビットを付けることである。
これらは、例えばRN(k)+1 符号と呼ばれ、常に2ビッ
ト以上を符号化することになろう。なお、R2(0)符号
と、恐らく他の短い符号語のいくつかは、高速化のため
にパイプライン化される必要はない。
The bit generator separated for each code word is capable of pipeline processing. If all codewords result in more than one bit, the processing of codewords could be pipelined in two-cycle units rather than one cycle. That way, if the bit generator were the speed limiting part of the system, the speed of the decoder would double. One way to accomplish this is to add a runlength 0 codeword (a codeword that simply represents one LPS) followed by one bit, the next undecoded bit.
These are called RN (k) +1 codes, for example, and will always encode more than one bit. Note that the R2 (0) code, and perhaps some of the other short codewords, need not be pipelined for speed.

【0258】分離したビットジェネレータは、暗黙合図
法で使用するのに向いている。有限のメモリを使った符
号化のための暗黙合図法は、次のような方法で達成でき
る。各ビットジェネレータは1つのカウンタを持つが、
このカウンタのサイズはキューアドレスと同じサイズで
あり、例えばサイズが512のキューが用いられる時に
は9ビットである。1つのビットジェネレータにより1
つの新たな符号語が使用される都度、そのカウンタに最
大値がロードされる。いずれかのビットジェネレータが
1つの符号語を要求すると、全てのビットジェネレータ
のカウンタがデクリメントされる。あるカウンタが0に
なると、それに対応したビットジェネレータの状態がク
リアされる(例えば、MPSカウンタ、R2(2)カウンタ
及びLPS、及び長ランカウント・カウンタがクリアさ
れる)。あるビットジェネレータがイネーブルされてい
ないときでも、このクリアは行なわれるので、状態カウ
ンタに関して全く問題はない。
The separate bit generator lends itself well to use in implicit signaling. The implicit signaling method for encoding using finite memory can be achieved by the following method. Each bit generator has one counter,
The size of this counter is the same size as the queue address, for example 9 bits when a 512 size queue is used. 1 by one bit generator
Each time one new codeword is used, the maximum value is loaded into that counter. When any bit generator requests a codeword, the counters of all bit generators are decremented. When a counter reaches 0, the corresponding bit generator state is cleared (eg, the MPS counter, R2 (2) counter and LPS, and the long run count counter are cleared). This is done even when a bit generator is not enabled, so there is no problem with the status counter.

【0259】<各コンテキストビン用メモリの初期化>
各コンテキストビン用メモリが確率予測情報を保持する
場合、復号器(例えば該メモリ)を極めて迅速に初期化
するためには余分なメモリ帯域幅が必要かもしれない。
復号器に多くのコンテキストがあり、かつ、これらコン
テキスト全部はクリアされなくともよい場合、復号器を
素早く初期化することが難問になりかねない。復号器が
多くのコンテキスト(1K以上)をサポートし、メモリ
を全体的にクリアできない時には、許容できないほど多
数のクロックサイクルがメモリをクリアするのに必要に
なろう。
<Initialization of memory for each context bin>
If each context bin memory holds probability prediction information, then extra memory bandwidth may be needed to initialize the decoder (eg, the memory) very quickly.
If the decoder has many contexts, and not all of these contexts need to be cleared, then initializing the decoder quickly can be a challenge. When the decoder supports many contexts (1K or more) and the memory cannot be cleared entirely, an unacceptably high number of clock cycles will be required to clear the memory.

【0260】コンテキストを素早くクリアするために、
本発明のいくつかの実施例では、各コンテキストと一緒
に格納される特別のビット(本明細書で初期化状態ビッ
トと呼ぶ)を用いる。したがって、この特別ビットは、
各コンテキストのPEM状態(例えば8ビット)と一緒
に格納される。
To quickly clear the context,
Some embodiments of the present invention use special bits (referred to herein as initialization state bits) that are stored with each context. Therefore, this special bit is
It is stored with the PEM state (eg 8 bits) for each context.

【0261】各コンテキストビン用のメモリと初期化制
御論理が図31に示されている。図31において、コン
テキストメモリ2401はレジスタ2402に接続され
ている。一実施例では、レジスタ2402は1ビットの
レジスタであり、これは初期化された状態ビンのための
現在適切な状態を指示する。レジスタ2402はXOR
論理2403の1つの入力に接続される。XOR論理2
403のもう1つの入力はメモリ2401の出力と接続
される。XOR論理2403の出力は、有効信号であ
り、また制御論理2404の1つの入力に接続される。
制御論理2404の他の入力は、カウンタ2405の出
力及びコンテキストビン信号と接続される。制御論理2
404の1つの出力は、MUX2406,2407の選
択入力及びカウンタ2405の入力に接続される。制御
論理2404のもう1つの出力は、MUX2408の選
択入力に接続される。MUX2406の入力はカウンタ
2405の出力及びコンテキストビン信号と接続され
る。MUX2406の出力はメモリ2401へ接続され
る。MUX2407の入力は新たなPEM状態及び0と
接続される。MUX2407の出力はメモリ2401の
入力に接続され、メモリ2401の出力及び初期PEM
状態はMUX2408の入力に接続される。MUX24
08の出力がPEM状態出力である。
The memory and initialization control logic for each context bin is shown in FIG. In FIG. 31, the context memory 2401 is connected to the register 2402. In one embodiment, register 2402 is a 1-bit register, which indicates the currently appropriate state for the initialized state bin. Register 2402 is XOR
Connected to one input of logic 2403. XOR logic 2
The other input of 403 is connected to the output of memory 2401. The output of XOR logic 2403 is a valid signal and is also connected to one input of control logic 2404.
The other input of control logic 2404 is connected to the output of counter 2405 and the context bin signal. Control logic 2
One output of 404 is connected to the select inputs of MUX 2406, 2407 and the input of counter 2405. Another output of control logic 2404 is connected to the select input of MUX 2408. The input of MUX 2406 is connected to the output of counter 2405 and the context bin signal. The output of MUX 2406 is connected to memory 2401. The input of MUX 2407 is connected to the new PEM state and 0. The output of MUX 2407 is connected to the input of memory 2401, and the output of memory 2401 and the initial PEM
The state is connected to the input of MUX 2408. MUX24
The 08 output is the PEM status output.

【0262】1つの復号動作が行なわれる度に(すなわ
ち、各データセット毎であり、各復号ビット毎ではな
い)、レジスタ2402の値は反転される。XOR論理
2403は、アクセスされたメモリロケーションの値と
レジスタ値とを比較して、アクセスされたメモリロケー
ションが当該復号動作にとって妥当であるか判定する。
これは、XOR論理2404によって、初期化状態ビッ
トがレジスタ2402にある適切な状態と一致するか調
べることによってなされる。メモリ2401内のデータ
が妥当でなければ、制御論理2402は、そのデータを
状態−符号論理に無視させ、代わりに初期PEM状態を
使用させる。これはMUX2408によってなされる。
新たなPEM状態がメモリに書き込まれる時に初期化ビ
ットはレジスタの現在値に設定されるため、その初期化
ビットは再びアクセスされた時には妥当とみなされるこ
とになる。
Each time one decoding operation is performed (that is, for each data set, not for each decoded bit), the value in register 2402 is inverted. XOR logic 2403 compares the value of the accessed memory location with the register value to determine if the accessed memory location is valid for the decoding operation.
This is done by the XOR logic 2404 by checking that the initialization status bits match the appropriate status in register 2402. If the data in memory 2401 is not valid, control logic 2402 causes the state-sign logic to ignore the data and use the initial PEM state instead. This is done by MUX 2408.
Since the initialization bit is set to the current value of the register when a new PEM state is written to memory, that initialization bit will be considered valid when it is accessed again.

【0263】全てのコンテキストビンのメモリのエント
リーの初期化状態ビットがレジスタの現在値に設定され
た後でないと、次の復号動作は開始し得ない。カウンタ
2405は、全てのメモリロケーションを、それが初期
化されたことを確認するため順に指定する。あるコンテ
キストビンが使われるが、そのPEM状態は更新されて
いない時には、利用されない書き込みサイクルをカウン
タ2405で指示されたメモリロケーションのテストま
たは更新のために利用し得る。1つの復号動作が完了し
た後、カウンタ2405が最大値に達していなければ、
次の動作を始める前に残りのコンテキストが初期化され
る。この動作を制御するために図48に示す論理が用い
られる。
Only after the initialization state bits of all context bin memory entries have been set to the current value of the register can the next decoding operation begin. Counter 2405 sequentially specifies all memory locations to make sure it has been initialized. When a context bin is used but its PEM state is not updated, the unused write cycles may be used to test or update the memory location indicated by counter 2405. After the completion of one decoding operation, if the counter 2405 has not reached the maximum value,
The remaining contexts are initialized before starting the next operation. The logic shown in FIG. 48 is used to control this operation.

【0264】<高速適応のPEM>本発明で用いられる
PEMは、利用可能なデータ量のいかんにかかわらず、
より高速な適応を可能にする適応スキームを含んでもよ
い。そうすることによって、本発明は復号動作を初めは
より迅速に適応させ、そして利用可能なデータが多くな
るに従いゆっくりと適応させて、より精度のよい予測値
を得る。さらに、このPEMは、フィールドプログラマ
ブルゲートアレイ(FPGA)またはASICで構成さ
れたPEM状態テーブル/マシン内に固定されてもよ
い。
<High-speed adaptive PEM> The PEM used in the present invention is irrespective of the available data amount.
An adaptation scheme may be included that allows faster adaptation. By doing so, the present invention adapts the decoding operation initially faster and then slowly as more data is available to obtain a more accurate prediction. Further, the PEM may be fixed in a PEM state table / machine configured with a field programmable gate array (FPGA) or ASIC.

【0265】図68乃至図73に示したテーブル20〜
25は、いくつかの確率予測状態マシンを説明するもの
である。その中のいくつかのテーブルでは、ハードウエ
アコストを削減するため、R3 符号は用いられず、また
は長い符号は用いられない。テーブル20以外のテーブ
ル21〜25では、最初のLPSが生じるまでの符号化
の初めに素早く適応させるための特別な”高速適応”状
態が利用される。これらの高速適応状態は、テーブル中
でイタリック体にされている。例えば図69のテーブル
21を参照して説明すれば、復号の開始時は、現在状態
が状態0である。MPSが出現すると、復号器は状態3
5へ遷移する。MPSが出現する限り復号器は状態35
から上の方へ遷移し、最終的に状態28へ遷移する。ど
こかでLPSが出現すると、復号器はイタリック体で示
された高速適応状態から抜け出て、それまでに受け取っ
たデータに適した確率状態を表わす状態へと遷移する。
Tables 20 to 20 shown in FIGS. 68 to 73
25 describes some probabilistic prediction state machines. In some of the tables, R3 codes are not used or long codes are not used to reduce hardware costs. Tables 21-25, other than table 20, utilize a special "fast adaptation" state for quick adaptation at the beginning of the encoding until the first LPS occurs. These fast adaptation states are italicized in the table. For example, referring to the table 21 in FIG. 69, the current state is state 0 at the start of decoding. When MPS appears, the decoder is in state 3
Transition to 5. As long as the MPS appears, the decoder is in state 35
To the upper side, and finally to the state 28. When LPS appears somewhere, the decoder exits from the fast adaptation state shown in italics and transitions to a state that represents a stochastic state suitable for the data received so far.

【0266】なお、各テーブルにおいて、復号器は、あ
る数のMPSを受け取った後に高速適応状態から抜け出
す。望ましい実施例では、高速適応状態から一旦抜け出
たならば、復号動作を再開するほかには、それらの状態
へ戻る手段が全くない。他の実施例では、状態テーブル
は、より高速な適応を可能にするため、これらの高速適
応状態へ再び入るように設計されるかもしれない。本発
明は、復号器をよりスキューの大きな符号へより早く到
達できるようにするもので、これによって、恐らく圧縮
率向上による利益が得られるであろう。なお、ある特定
のテーブルに関し、入力されたデータに応じてテーブル
が1状態だけ上または下へ遷移するように、テーブルの
現在状態0のためのエントリーを変更することにより、
高速適応を省くことができる。
Note that in each table, the decoder exits the fast adaptive state after receiving a certain number of MPSs. In the preferred embodiment, once the fast adaptive states are exited, there is no way to return to those states other than restarting the decoding operation. In other embodiments, the state table may be designed to re-enter these fast adaptation states to allow faster adaptation. The present invention allows the decoder to reach faster skew codes faster, which would probably benefit from improved compression. It should be noted that, regarding a specific table, by changing the entry for the current state 0 of the table so that the table transitions up or down by one state according to the input data,
Fast adaptation can be omitted.

【0267】これらテーブル全てにおいて、各状態に対
するデータは、その状態に対する符号と、正方向更新
(上向き)時の次の状態、及び負方向更新(下向き)時
の次の状態である。アスタリスクは、MPSが負方向更
新で変更されなければならない状態を示す。
In all of these tables, the data for each state is the code for that state, the next state at the time of positive direction update (upward), and the next state at the time of negative direction update (downward). The asterisk indicates that the MPS has to be changed with a negative update.

【0268】高速適応を確率予測に付加しても、これは
符号化の初めに役に立つだけである。コンテキストビン
の統計値が前述のPEM状態テーブルより素早く変化す
る場合、符号化期間における適応を向上させるため別の
方法を利用できる。
The addition of fast adaptation to probability prediction only helps at the beginning of the encoding. If the context bin statistics change more quickly than the PEM state table described above, another method can be used to improve adaptation during the coding period.

【0269】符号化動作中ずっと高速な適応を維持する
1つの方法は、PEM状態更新に対し加速条件を追加す
ることである。この加速は、それぞれの符号を一定回数
(例えば8回)繰り返すことによりPEM状態テーブル
に組み込むことができる。この場合、加速条件M(例え
ば正の整数)を更新時に現在状態に加算しあるいは現在
状態から減算することができる。Mが1の時は、システ
ムは加速なしの全く同じ動作をし、最も低速の適応が行
なわれる。Mが1より大きい時には、より高速の適応が
行なわれる。最初は、初期高速適応を行なうためMは1
より大きな値に設定されるであろう。
One way to maintain fast adaptation throughout the encoding operation is to add an acceleration condition to the PEM state update. This acceleration can be incorporated into the PEM state table by repeating each code a certain number of times (eg, 8 times). In this case, the acceleration condition M (for example, a positive integer) can be added to or subtracted from the current state at the time of updating. When M is 1, the system behaves exactly the same without acceleration, with the slowest adaptation. When M is greater than 1, a faster adaptation is done. Initially, M is 1 for initial fast adaptation.
Will be set to a larger value.

【0270】Mの値を更新するための本発明の一方法
は、連続した符号語の数をベースにする方法である。例
えば、ある所定数の符号語が連続的に出現したときに、
Mの値が増大させられる。例えば、連続した4個の符号
語が”0””0””0””0”であるか、あるいは”1
N””1N””1N””1N”であるきに、Mの値が増
大させられる。他方、あるパターンで”0”符号語と”
1N”符号語とが切り替わることが、Mの値を減少させ
るために利用されるかもしれない。例えば、連続した4
個の符号語が”0””1N””0””1N”であるか、
あるいは”1N””0””1N””0”であるときに、
M値が減少させられる。
One method of the present invention for updating the value of M is based on the number of consecutive codewords. For example, when a certain number of codewords appear consecutively,
The value of M is increased. For example, four consecutive codewords are "0""0""0""0", or "1"
When N "" 1N "" 1N "" 1N ", the value of M is increased, while" 0 "codeword and"
Switching to the 1N "codeword may be used to reduce the value of M. For example, 4 consecutive 4
Whether each codeword is "0""1N""0""1N",
Or when it is "1N""0""1N""0",
The M value is reduced.

【0271】もう1つの加速方法は、各符号がS回繰り
返される状態テーブルを用いる。ただし、Sは正の整数
である。Sは逆加速パラメータである。Sが1の時に適
応は高速であり、Sがそれより大きい時に適応は低速で
ある。最初は、初期高速適応を行なうため、Sの値を1
に設定してよい。上述した方法と同様の方法によって、
連続した4個の符号語が”0””0””0””0”であ
るか、あるいは”1N””1N””1N””1N”であ
るときにSの値を更新してよい。この場合、Sの値は減
少させられる。これに対し、連続した4個の符号語が”
0””1N””0””1N”であるか、”1N””
0””1N””0”であるときに、Sの値は増加させら
れる。
Another acceleration method uses a state table in which each code is repeated S times. However, S is a positive integer. S is an inverse acceleration parameter. The adaptation is fast when S is 1, and slow when S is larger. Initially, the value of S is set to 1 in order to perform initial fast adaptation.
May be set to. By a method similar to the one described above,
The value of S may be updated when four consecutive codewords are "0""0""0""0" or "1N""1N""1N""1N". In this case, the value of S is reduced. On the other hand, four consecutive codewords
0 "" 1N "" 0 "" 1N "or" 1N ""
When 0 "" 1N "" 0 ", the value of S is increased.

【0272】連続した符号語という定義は、いくつかの
意味を持ち得る。”コンテキスト別”システムでは、連
続した符号語とは同じコンテキストビンでの連続した符
号語のことを指すであろう。”確率別”システムでは、
連続した符号語とは同じ確率クラスでの連続符号語のこ
とを指すであろう。あるいは、そのどちらシステムで
も、連続した符号語とは連続した符号語を包括的に(コ
ンテキストビンか確率クラスかの区別なく)指すかもし
れない。これら3つの例の場合に、符号語の履歴を保存
するために必要なメモリビット数はそれぞれ、3×コン
テキストビン数、3×確率クラス数、そして3である。
コンテキストビン毎の加速をサポートするならば、最良
の適応が可能であろう。符号化前のデータのグローバル
な変化によりトラッキングが悪くなることが多いので、
グローバルに加速を判断することによっても良好な適応
を得られよう。
The definition of consecutive codewords can have several meanings. In a "contextual" system, consecutive codewords will refer to consecutive codewords in the same context bin. In the “probability-based” system,
Consecutive codewords will refer to consecutive codewords in the same probability class. Alternatively, in either of these systems, a continuous codeword may generically refer to a continuous codeword (no distinction between context bins or probability classes). In the case of these three examples, the number of memory bits required to store the history of codewords is 3 × the number of context bins, 3 × the number of probability classes, and 3, respectively.
The best adaptation would be possible if it supports acceleration per context bin. Tracking often deteriorates due to global changes in data before encoding, so
Good adaptation can also be obtained by judging acceleration globally.

【0273】<システムの応用>圧縮システムの1つの
効果は、データセットのために必要なメモリが減ること
である。本発明の並列システムは、現在非損失性コーデ
ィングシステムにより間に合わせている全ての用途に、
代わりに用いることができ、また、音声、文書、データ
ベース、コンピュータが実行可能なまたはそれ以外のデ
ジタルデータ、信号あるいはシンボルを処理するシステ
ムに適用できる。代表的な非損失性コーディングシステ
ムには、ファクシミリ圧縮システム、データベース圧縮
システム、ビットマップグラフィックイメージ圧縮シス
テム、JPEG及びMPEGのような画像圧縮規格にお
ける変換係数の圧縮システムがある。本発明は、小規模
で効率的なハードウエアにより実施可能であり、また、
高速である必要がない用途にも最適な比較的高速なソフ
トウエアによる実施も可能である。
System Application One advantage of the compression system is that it requires less memory for the data set. The parallel system of the present invention is suitable for all applications currently being made fast by lossless coding systems.
Alternatively, it may be applied to voice, documents, databases, computer-executable or otherwise digital data, signals or symbols processing systems. Typical lossless coding systems include facsimile compression systems, database compression systems, bitmap graphic image compression systems, and transform coefficient compression systems in image compression standards such as JPEG and MPEG. The present invention can be implemented by small-scale and efficient hardware, and
It can also be implemented by relatively high-speed software, which is optimal for applications that do not need to be high-speed.

【0274】従来技術を超える本発明の実際的な利点
は、非常に高速な動作が可能であること、特に復号動作
がそうであることである。したがって、高速コンピュー
タネットワークや衛星または地上放送チャネルのような
費用の嵩む高速チャネルを最大限利用することができ
る。図35はこのようなシステムを表わしており、放送
データ、あるいは高速コンピュータネットワークのデー
タが復号システム2801に与えられ、同システムはデ
ータを並列的に復号して出力データを送出する。現在の
ハードウエア・エントロピー復号器(Q−コーダ等)を
用いたのでは、これらシステムのスループットは下がる
であろう。これらシステムは全て、高帯域幅を持つよう
高コストの設計となっている。復号器によってスループ
ットが下がるのでは非生産的である。本発明の並列シス
テムは、これらの高帯域幅に対応するだけでなく、デー
タを圧縮した形で伝送できるので実効帯域幅を実際に増
加させるのである。
A practical advantage of the present invention over the prior art is that very fast operations are possible, especially decoding operations. Thus, high speed computer networks and costly high speed channels such as satellite or terrestrial broadcast channels can be fully utilized. FIG. 35 shows such a system. Broadcast data or high-speed computer network data is given to a decoding system 2801, which decodes the data in parallel and sends output data. Using current hardware entropy decoders (such as Q-coders) would reduce the throughput of these systems. All of these systems are designed to have high bandwidth and high cost. It is unproductive for the decoder to reduce throughput. The parallel system of the present invention not only accommodates these high bandwidths, but also actually increases the effective bandwidth because the data can be transmitted in a compressed form.

【0275】本発明の並列システムはまた、ISDN、
CD−ROM、SCSIのようなそこそこ高速のチャネ
ルから、それ以上の実効帯域幅を得る目的に応用でき
る。このような帯域幅整合システムが図36に示されて
おり、CD−ROM、イーサネット、SCSI(Small
Computer Standard Interface)、その他同様のソース
からのデータが復号システム2901に接続され、同シ
ステムはそのデータを受け取って復号し出力を発生す
る。これらのチャネルは、いくつかの現在のコーダより
ずっと高速である。しばしば、これらのチャネルは、リ
アルタイムビデオやコンピュータベースのメディアのよ
うな、チャネルが持っている帯域幅以上の帯域を必要と
するデータソースのサービスに利用される。本発明のシ
ステムは、帯域幅を整合させる役割を果たすことができ
る。
The parallel system of the present invention also includes ISDN,
It can be applied to obtain more effective bandwidth from moderately high speed channels such as CD-ROM and SCSI. Such a bandwidth matching system is shown in FIG. 36, which includes CD-ROM, Ethernet, SCSI (Small).
Computer Standard Interface) and other similar sources of data are connected to a decryption system 2901 that receives the data, decrypts it, and produces an output. These channels are much faster than some current coders. Often, these channels are used to service data sources that require more bandwidth than the channel has, such as real-time video and computer-based media. The system of the present invention can serve to match bandwidth.

【0276】本発明のシステムは、高解像度テレビ(H
DTV)やMPEGビデオ規格のようなリアルタイムビ
デオシステムのエントロピーコーダ部として最適なもの
である。そのようなシステムが図37に示されている。
図37において、このリアルタイムビデオシステムは、
圧縮された画像データが接続される復号システム300
1を有する。この復号システム3001は、そのデータ
を復号してから損失性復号器3002へ出力する。損失
性復号器3002は、HDYVまたはMPEG復号器の
変換、色変換及びサブサンプリングの部分であるかもし
れない。モニタ3003はテレビまたはビデオモニタで
あろう。
The system of the present invention is a high-definition television (H
It is most suitable as an entropy coder section for real-time video systems such as DTV) and MPEG video standards. Such a system is shown in FIG.
In FIG. 37, this real-time video system is
Decoding system 300 to which compressed image data is connected
One. The decoding system 3001 decodes the data and then outputs the data to the lossy decoder 3002. Lossy decoder 3002 may be part of the transform, color transform and sub-sampling of HDYV or MPEG decoders. Monitor 3003 may be a television or video monitor.

【0277】[0277]

【発明の効果】以上の詳細な説明から理解されるよう
に、本発明によれば、従来技術の問題点を解決し、デー
タの符号化または復号を高速に行なう装置、データの符
号化または復号を並列に行なう装置、リアルタイムの符
号化または復号を行なう装置等を提供でき、また、その
ような装置を安価なハードウエアによって実現可能にな
る等の多大な効果が得られる。
As can be understood from the above detailed description, according to the present invention, the problems of the prior art can be solved, and a device for encoding or decoding data at a high speed, a device for encoding or decoding data. It is possible to provide a device for performing parallel processing, a device for performing real-time encoding or decoding, and the like, and it is possible to obtain such a large effect that such a device can be realized by inexpensive hardware.

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

【図1】従来のバイナリエントロピー符号化装置及び復
号装置のブロック図である。
FIG. 1 is a block diagram of a conventional binary entropy encoding device and decoding device.

【図2】本発明の復号システムのブロック図である。FIG. 2 is a block diagram of a decoding system of the present invention.

【図3】本発明の符号化システムのブロック図である。FIG. 3 is a block diagram of an encoding system of the present invention.

【図4】コンテキストビンを並列に処理する本発明の並
列復号器の一実施例のブロック図である。
FIG. 4 is a block diagram of one embodiment of a parallel decoder of the present invention that processes context bins in parallel.

【図5】確率クラスを並列に処理する本発明の並列符号
化器の一実施例のブロック図である。
FIG. 5 is a block diagram of an embodiment of a parallel encoder of the present invention that processes probability classes in parallel.

【図6】本発明のノンインターリーブド符号ストリーム
を示す図である。
FIG. 6 is a diagram showing a non-interleaved code stream of the present invention.

【図7】データセットとインターリーブド符号ストリー
ムの例を示す図である。
FIG. 7 is a diagram showing an example of a data set and an interleaved code stream.

【図8】本発明のR−コーダ用確率予測テーブルの一例
を示す図である。
FIG. 8 is a diagram showing an example of an R-coder probability prediction table of the present invention.

【図9】本発明の符号化装置の一実施例のブロック図で
ある。
FIG. 9 is a block diagram of an embodiment of an encoding device of the present invention.

【図10】本発明のビットジェネレータの一実施例のブ
ロック図である。
FIG. 10 is a block diagram of an embodiment of a bit generator of the present invention.

【図11】本発明の再配列ユニットの一実施例のブロッ
ク図である。
FIG. 11 is a block diagram of an embodiment of a rearrangement unit of the present invention.

【図12】本発明のランカウント並べ替えユニットの一
実施例のブロック図である。
FIG. 12 is a block diagram of an embodiment of the run count rearranging unit of the present invention.

【図13】本発明のランカウント並べ替えユニットの他
の実施例のブロック図である。
FIG. 13 is a block diagram of another embodiment of the run count rearranging unit of the present invention.

【図14】本発明のビットパックユニットの一実施例の
ブロック図である。
FIG. 14 is a block diagram of an embodiment of a bit pack unit of the present invention.

【図15】本発明のパッキング論理の一実施例のブロッ
ク図である。
FIG. 15 is a block diagram of one embodiment of packing logic of the present invention.

【図16】本発明の符号化器用ビットジェネレータの一
実施例のブロック図である。
FIG. 16 is a block diagram of an embodiment of a bit generator for an encoder of the present invention.

【図17】本発明の復号システムの一実施例のブロック
図である。
FIG. 17 is a block diagram of an embodiment of the decoding system of the present invention.

【図18】本発明の復号器のブロック図である。FIG. 18 is a block diagram of the decoder of the present invention.

【図19】本発明のFIFO構造の一実施例のブロック
図である。
FIG. 19 is a block diagram of one embodiment of the FIFO structure of the present invention.

【図20】本発明の復号用パイプラインの一実施例を示
す図である。
FIG. 20 is a diagram showing an embodiment of a decoding pipeline of the present invention.

【図21】本発明の復号器の概念図である。FIG. 21 is a conceptual diagram of a decoder of the present invention.

【図22】本発明のシフタの一実施例のブロック図であ
る。
FIG. 22 is a block diagram of an embodiment of a shifter of the present invention.

【図23】本発明のシフタの他の実施例のブロック図で
ある。
FIG. 23 is a block diagram of another embodiment of the shifter of the present invention.

【図24】外部コンテキストモデルを有するシステムの
一例のブロック図である。
FIG. 24 is a block diagram of an example of a system having an external context model.

【図25】外部コンテキストモデルを有するシステムの
他の例のブロック図である。
FIG. 25 is a block diagram of another example of a system having an external context model.

【図26】パイプライン化ビットジェネレータを有する
本発明の復号器の一実施例を示すブロック図である。
FIG. 26 is a block diagram illustrating one embodiment of a decoder of the present invention having a pipelined bit generator.

【図27】分離ビットジェネレータを持つ本発明の復号
器の一実施例を示すブロック図である。
FIG. 27 is a block diagram showing one embodiment of a decoder of the present invention having a separated bit generator.

【図28】本発明の復号器用ビットジェネレータの一実
施例のブロック図である。
FIG. 28 is a block diagram of an embodiment of a bit generator for a decoder of the present invention.

【図29】本発明の長ランユニットの一実施例のブロッ
ク図である。
FIG. 29 is a block diagram of an embodiment of the long run unit of the present invention.

【図30】本発明の短ランユニットの一実施例のブロッ
ク図である。
FIG. 30 is a block diagram of an embodiment of a short run unit of the present invention.

【図31】本発明の初期化・制御論理の一実施例のブロ
ック図である。
FIG. 31 is a block diagram of one embodiment of initialization and control logic of the present invention.

【図32】スヌーパー復号器を使う再配列ユニットの一
実施例のブロック図である。
FIG. 32 is a block diagram of one embodiment of a rearrangement unit that uses a snooping decoder.

【図33】再配列ユニットの他の実施例のブロック図で
ある。
FIG. 33 is a block diagram of another embodiment of the rearrangement unit.

【図34】併合キューを使用する再配列ユニットの一実
施例のブロック図である。
FIG. 34 is a block diagram of one embodiment of a rearrangement unit that uses a merge queue.

【図35】本発明を利用する高帯域幅システムの説明図
である。
FIG. 35 is an illustration of a high bandwidth system utilizing the present invention.

【図36】本発明を利用する帯域幅整合システムの説明
図である。
FIG. 36 is an illustration of a bandwidth matching system utilizing the present invention.

【図37】本発明を利用するリアルタイムビデオシステ
ムのブロック図である。
FIG. 37 is a block diagram of a real-time video system utilizing the present invention.

【図38】本発明の符号化データメモリの一実施例を示
す図である。
FIG. 38 is a diagram showing one embodiment of the encoded data memory of the present invention.

【図39】本発明の復号タイミング図である。FIG. 39 is a decoding timing chart of the present invention.

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

【図41】本発明の符号化器用ビットジェネレータのA
HDLソースコードを示す図である。
[FIG. 41] A of a bit generator for encoder of the present invention
It is a figure which shows HDL source code.

【図42】図41に示したAHDLソースコードの続き
を示す図である。
42 is a diagram showing a continuation of the AHDL source code shown in FIG. 41. FIG.

【図43】図42に示したAHDLソースコードの続き
を示す図である。
43 is a diagram showing a continuation of the AHDL source code shown in FIG. 42. FIG.

【図44】図43に示したAHDLソースコードの続き
を示す図である。
FIG. 44 is a diagram showing a continuation of the AHDL source code shown in FIG. 43.

【図45】図44に示したAHDLソースコードの続き
を示す図である。
45 is a diagram showing a continuation of the AHDL source code shown in FIG. 44. FIG.

【図46】図45に示したAHDLソースコードの続き
を示す図である。
FIG. 46 is a diagram showing a continuation of the AHDL source code shown in FIG. 45.

【図47】タイムスタンプ付キューに関連したC言語ソ
ースコードを示す図である。
FIG. 47 is a diagram showing C language source code related to a queue with a time stamp.

【図48】コンテキスト初期化に関連したC言語ソース
コードを示す図である。
FIG. 48 is a diagram showing C language source code related to context initialization.

【図49】R符号による符号語とその意味を示すテーブ
ルである。
FIG. 49 is a table showing codewords by R code and their meanings.

【図50】R符号のテーブルである。FIG. 50 is a table of R codes.

【図51】R符号のテーブルである。FIG. 51 is an R code table.

【図52】R符号のテーブルである。FIG. 52 is a table of R codes.

【図53】R符号のテーブルである。FIG. 53 is a table of R codes.

【図54】R符号のテーブルである。FIG. 54 is a table of R codes.

【図55】R符号のテーブルである。FIG. 55 is an R code table.

【図56】R符号のテーブルである。FIG. 56 is a table of R codes.

【図57】確率、確率スキュー、最適Golomb符号
の対照テーブルである。
FIG. 57 is a comparison table of probability, probability skew, and optimal Golomb code.

【図58】R2符号と確率区間の対照テーブルである。FIG. 58 is a comparison table of R2 codes and probability intervals.

【図59】R2符号及びR3符号と確率区間の対照テー
ブルである。
FIG. 59 is a comparison table of R2 codes and R3 codes and probability intervals.

【図60】R3(2)符号の1N符号語を説明するテーブル
である。
FIG. 60 is a table illustrating 1N codewords of R3 (2) code.

【図61】R2(2)符号の符号語とデータの対照テーブル
である。
FIG. 61 is a comparison table of code words and data of R2 (2) code.

【図62】データの符号化動作の例を示すテーブルであ
る。
FIG. 62 is a table showing an example of a data encoding operation.

【図63】並べ替え操作の例を示すテーブルである。FIG. 63 is a table showing an example of a rearrangement operation.

【図64】復号器ようFIFO構造の制御論理を示すテ
ーブルである。
FIG. 64 is a table showing control logic of a FIFO structure like a decoder.

【図65】復号タイミング図に関連した信号の依存関係
リストのテーブルである。
FIG. 65 is a table of a signal dependency list associated with a decoding timing diagram.

【図66】ストリーム内合図法の可能なR2(2)符号のテ
ーブルである。
FIG. 66 is a table of R2 (2) codes capable of in-stream signaling.

【図67】R符号以外の符号を示すテーブルである。FIG. 67 is a table showing codes other than the R code.

【図68】PEM状態テーブルである。FIG. 68 is a PEM status table.

【図69】PEM状態テーブルである。FIG. 69 is a PEM status table.

【図70】PEM状態テーブルである。FIG. 70 is a PEM status table.

【図71】PEM状態テーブルである。FIG. 71 is a PEM status table.

【図72】PEM状態テーブルである。FIG. 72 is a PEM status table.

【図73】PEM状態テーブルである。FIG. 73 is a PEM status table.

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

204 入力バッファ 205 復号器 206 コンテキストモデル 207 復号データ記憶装置 214 コンテキストモデル 215,216,217 確率予測モジュール 218,219,220 ビットストリームジェネレ
ータ 221,222,223 ビットストリームジェネレ
ータ 224,225,226 確率予測モジュール 227 コンテキストモデル(CM) 232,233,234 ビットストリームジェネレ
ータ 235 確率予測モジュール 236 コンテキストモデル 600 符号化装置 601 オリジナルデータ 602 符号化器 603 CM・状態メモリ 604 符号語情報 606 再配列ユニット 607 再配列メモリ 608 符号化データ 701 ビットジェネレータ 702 メモリ 801 ランカウント並べ替えユニット 802 ビットパックユニット 901 ポインタメモリ 902 マルチプレクサ 903 ヘッドカウンタ(ポインタ) 904 テールカウンタ(ポインタ) 905 マルチプレクサ 906 有効検出モジュール 908 符号語メモリ 909 制御モジュール 1000 ランカウント並べ替えユニット 1001 ポインタメモリ 1002 ヘッドカウンタ(ポインタ) 1003 テールカウンタ(ポインタ) 1004,1005 マルチプレクサ 1006 長さ計算ブロック 1007 有効検出ブロック 1008 符号語メモリ 1101 パッキング論理 1102 ストリームカウンタ 1103 メモリ 1104 テールポインタ 1105 ヘッドカウンタ 1201 サイズユニット 1202 アキュムレータ 1203 シフタ 1204 マルチプレクサ 1205 レジスタ 1206 OR論理 1400 復号システム 1401 FIFO構造 1402 復号器 1403 メモリ 1404 コンテキストモデル 1460 FIFO 1461,1462 レジスタ 1463,1464 マルチプレクサ 1465 制御ブロック 1600 シフタ 1601,1602,1603,1605 レジスタ 1605 マルチプレクサ 1606 バレルシフタ 1607,1608,1609,1061 レジスタ 1611 サイズユニット 1612 アキュムレータ 1620 シフタ 1621,1622 符号語前処理論理 1623 マルチプレクサ 1624 符号語処理論理 1701 CMチップ 1702 復号器チップ 1801 CMチップ 1802 復号器チップ 1803 メモリ 1900 復号器 1901 コンテキストモデル 1902 メモリ 1903 PEM状態−符号モジュール 1904 メモリ 1905 パイプライン化ビットジェネレータ 1906 シフタ 2000 復号器 2001 コンテキストモデル 2002 メモリ 2003 PEM状態−符号モジュール 2004 デコーダ 2005 ビットストリームジェネレータ 2006 シフタ 2101 短ラン(カウント)ユニット 2102 長ラン(カウント)ユニット 2201 AND論理 2202 NOT論理 2203 ビットカウンタ 2302 カウンタ(MPSカウンタ) 2303 カウンタ(R2(2)カウンタ及びLPS) 2401 コンテキストメモリ 2402 レジスタ 2403 XOR論理 2404 制御論理 2405 カウンタ 2406,2407,2408 マルチプレクサ 2501 ランカウント並べ替えユニット 2502 ビットパックユニット 2503 マルチプレクサ 2504 スヌーパー復号器 2601 論理 2701 ランカウント並べ替えユニット 2801 復号システム 2901 復号システム 3001 復号システム 3002 損失性復号器 3003 モニタ 3100 レジスタファイル 3101 メモリ
204 Input Buffer 205 Decoder 206 Context Model 207 Decoded Data Storage Device 214 Context Model 215, 216, 217 Probability Prediction Modules 218, 219, 220 Bit Stream Generator 221, 222, 223 Bit Stream Generator 224, 225, 226 Probability Prediction Module 227 Context model (CM) 232, 233, 234 Bitstream generator 235 Probability prediction module 236 Context model 600 Encoder 601 Original data 602 Encoder 603 CM / state memory 604 Codeword information 606 Rearrangement unit 607 Rearrangement memory 608 Code Data 701 Bit generator 702 Memory 801 Run count rearrangement unit 802 Bit pack unit 901 Pointer memory 902 Multiplexer 903 Head counter (pointer) 904 Tail counter (pointer) 905 Multiplexer 906 Validity detection module 908 Code word memory 909 Control module 1000 Run count rearrangement unit 1001 Pointer memory 1002 Head counter (pointer) 1003 Tail Counter (pointer) 1004, 1005 Multiplexer 1006 Length calculation block 1007 Validity detection block 1008 Codeword memory 1101 Packing logic 1102 Stream counter 1103 Memory 1104 Tail pointer 1105 Head counter 1201 Size unit 1202 Accumulator 1203 Shifter 1204 Multiplexer 1205 Register 1206 OR logic 1400 Decoding system 1401 FIFO structure 1402 Decoder 1403 Memory 1404 Context model 1460 FIFO 1461, 1462 registers 1463, 1464 Multiplexer 1465 Control block 1600 shifters 1601, 1602, 1603, 1605 register 1605 Multiplexers 1606 Barrel shifter 1607, 1607, 1607. , 1061 register 1611 size unit 1612 accumulator 1620 shifter 1621, 1622 codeword pre-processing logic 1623 multiplexer 1624 codeword processing logic 1701 CM chip 1702 decoder chip 1801 CM chip 1802 decoder chip 1803 memory 1900 decoder 1901 context model 1902 Memory 1903 PEM State-Code Module 1904 Memory 1905 Pipelined Bit Generator 1906 Shifter 2000 Decoder 2001 Context Model 2002 Memory 2003 PEM State-Code Module 2004 Decoder 2005 Bitstream Generator 2006 Shifter 2101 Short Run (Count) Unit 2102 Long Run ( Count) Unit 2201 AND logic 2202 NOT logic 2203 bit counter 2302 counter (MPS counter) 2303 counter (R2 (2) counter and LPS) 2401 context memory 2402 register 2403 XOR logic 2404 control logic 2405 counter 2406, 2407, 2408 multiplexer 2501 run Count sorting unit 2502 bit pack unit 2503 multiplexer 2504 snooper decoder 2601 logic 2701 run count reorder unit 2801 decoding system 2901 decoding system 3001 decoding system 3002 lossy decoder 3003 monitors 3100 register file 3101 memory

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04N 7/24 (72)発明者 ジェイムス ディ アレン アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコーコーポレーション内 (72)発明者 マーティン ピー ボーリック アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコーコーポレーション内─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 6 Identification number Internal reference number FI Technical indication location H04N 7/24 (72) Inventor James Diallen USA California 94025 Menlo Park Sand Hill Road 2882 Ricoh Corporation (72) Inventor Martin Pee Borrick, California, USA 94025 Menlo Park Sand Hill Road 2882 Ricoh Corporation

Claims (121)

【特許請求の範囲】[Claims] 【請求項1】 データストリームを符号化するための符
号化方法であって、 該データストリームに応じて該データストリームを表わ
す符号語情報を生成するステップを有し、ここにおい
て、該符号語情報は複数の符号語からなり、また、該デ
ータストリームのデータが並列に処理されることによっ
て複数の符号語が生成され、 該データストリーム中の該複数の符号語のそれぞれを該
データストリームの各符号語により表わされる部分の最
初の部分に基づく順序で出力することを含むところの、
該符号語情報に応じて符号化データを生成するステップ
を有する、符号化方法。
1. A coding method for coding a data stream, comprising the step of generating codeword information representing the datastream in response to the datastream, wherein the codeword information is A plurality of code words, and a plurality of code words are generated by processing data of the data stream in parallel, and each of the plurality of code words in the data stream is generated by each code word of the data stream. , Including outputting in an order based on the first part of the part represented by
An encoding method comprising a step of generating encoded data according to the codeword information.
【請求項2】 請求項1記載の符号化方法において、該
複数の符号語のそれぞれが各ランの初めに出力されるこ
とを特徴とする符号化方法。
2. The encoding method according to claim 1, wherein each of the plurality of codewords is output at the beginning of each run.
【請求項3】 請求項1記載の符号化方法において、該
符号化データ生成ステップがさらに可変長符号語を組合
せて固定長データ構造にすることを含むことを特徴とす
る符号化方法。
3. The encoding method according to claim 1, wherein the encoded data generating step further includes combining variable length codewords into a fixed length data structure.
【請求項4】 請求項3記載の符号化方法において、該
固定長データ構造がそれぞれ1つのインターリーブド語
からなることを特徴とする符号化方法。
4. The encoding method according to claim 3, wherein each of the fixed length data structures is composed of one interleaved word.
【請求項5】 符号語が復号順に順序付けられるように
符号化データを出力するステップをさらに有することを
特徴とする請求項1記載の符号化方法。
5. The encoding method according to claim 1, further comprising the step of outputting the encoded data such that the codewords are ordered in decoding order.
【請求項6】 符号語を順序付けするステップをさらに
有することを特徴とする請求項1記載の符号化方法。
6. The encoding method of claim 1, further comprising the step of ordering the codewords.
【請求項7】 請求項1記載の符号化方法において、該
符号語情報生成ステップが、符号語の確率状態を生成す
るステップ、該確率状態に基づきビット生成符号を選択
するステップ、及びメモリをアクセスして該確率状態に
関連したランカウントを得るステップからなることを特
徴とする符号化方法。
7. The encoding method according to claim 1, wherein the code word information generating step generates a probability state of a code word, a bit generating code is selected based on the probability state, and a memory is accessed. And then obtaining a run count associated with the stochastic state.
【請求項8】 データストリームを符号化するための符
号化装置であって、 該データストリームを受け取るよう接続され、符号語か
らなる符号語情報を生成する符号化器を有し、ここにお
いて該符号化器によりデータが並列的に処理されること
によって複数の符号語が生成され、かつ該符号化器に接
続され、該符号語情報に応じて符号化データを生成する
再配列ユニットを有し、ここにおいて該再配列ユニット
は、該符号化器により生成された符号語を、符号語の出
力順が各符号語により表わされる該データストリームの
部分の最初の部分に基づくような復号器の順序に並べ替
える、符号化装置。
8. An encoding device for encoding a data stream, comprising an encoder connected to receive the data stream and producing code word information consisting of code words, wherein the code A plurality of codewords are generated by parallelizing the data by the encoder, and the rearrangement unit is connected to the encoder and generates encoded data according to the codeword information; Here, the rearrangement unit arranges the codewords generated by the encoder in a decoder order such that the output order of the codewords is based on the first part of the part of the data stream represented by each codeword. Encoding device that rearranges.
【請求項9】 請求項7の符号化装置において、該再配
列ユニットが該符号語を符号語サイズが分かるように格
納することを特徴とする符号化装置。
9. The encoding device according to claim 7, wherein the rearrangement unit stores the codeword so that the codeword size can be known.
【請求項10】 請求項9記載の符号化装置において、
1N符号語が最上位の”1”ビットが各符号語の長さを
表示するように並べ替えられることを特徴とする符号化
装置。
10. The encoding device according to claim 9,
An encoding device, wherein 1N codewords are rearranged so that the most significant "1" bit indicates the length of each codeword.
【請求項11】 請求項8記載の符号化装置において、
該再配列ユニットが、該符号語情報中の該複数の符号語
のそれぞれを各ランの初めに生成する1つ以上のランカ
ウント並べ替えユニット、及び、可変長符号語を組合せ
て固定長データ構造にする1つ以上のビットパックユニ
ットからなることを特徴とする符号化装置。
11. The encoding apparatus according to claim 8, wherein
The reordering unit combines one or more runcount reordering units to generate each of the plurality of codewords in the codeword information at the beginning of each run, and a fixed length data structure by combining variable length codewords. An encoding device comprising one or more bit pack units according to claim 1.
【請求項12】 請求項11記載の符号化装置におい
て、該固定長データ構造がそれぞれ1つのインターリー
ブド語からなることを特徴とする符号化装置。
12. The encoding device according to claim 11, wherein each of the fixed length data structures is composed of one interleaved word.
【請求項13】 請求項11記載の符号化装置におい
て、該再配列ユニットが符号語を並べ替えることを特徴
とする符号化装置。
13. The encoding device according to claim 11, wherein the rearrangement unit rearranges codewords.
【請求項14】 符号語をある順番に格納するための該
メモリに接続されたメモリをさらに有することを特徴と
する請求項13記載の符号化装置。
14. The encoding apparatus according to claim 13, further comprising a memory connected to the memory for storing codewords in a certain order.
【請求項15】 請求項8記載の符号化システムにおい
て、該符号化器が、コンテキストモデルと、該コンテキ
ストモデルに接続された確率予測マシーンと、該データ
ストリームに応じて符号語を生成する、該確率予測マシ
ンに接続されたビットジェネレータ構造とからなること
を特徴とする符号化装置。
15. The encoding system according to claim 8, wherein the encoder generates a codeword according to a context model, a probability prediction machine connected to the context model, and the data stream. And a bit generator structure connected to a probability prediction machine.
【請求項16】 請求項15記載の符号化装置におい
て、該符号化器が複数のランカウントを格納するメモリ
をさらに有し、該メモリが該確率予測マシンより与えら
れる確率クラスを用いてアクセスされることにより、該
複数のランカウント中の1つのランカウントが該符号語
情報の一部として出力されるべく該ビットジェネレータ
構造へ提供されることを特徴とする符号化装置。
16. The encoding device according to claim 15, wherein the encoder further comprises a memory for storing a plurality of run counts, the memory being accessed by using a probability class given by the probability prediction machine. An encoding device, wherein a run count of the plurality of run counts is provided to the bit generator structure to be output as part of the codeword information.
【請求項17】 請求項15記載の符号化装置におい
て、該ビットジェネレータ構造が、インデックス及びM
PS/LPS表示に応じて符号語情報を提供するビット
ジェネレータと、該ビットジェネレータにランカウント
を与えるための該ビットジェネレータと接続されたメモ
リとからなり、該ビットジェネレータが該インデックス
に基づいて該メモリを読み出し、該読み出しによって得
られたデータに基づきビット生成を行なうことを特徴と
する符号化装置。
17. The encoding device according to claim 15, wherein the bit generator structure is an index and an M.
A bit generator that provides codeword information according to PS / LPS display and a memory connected to the bit generator for giving a run count to the bit generator, the bit generator including the memory based on the index. And a bit is generated based on the data obtained by the reading.
【請求項18】 請求項17記載の符号化装置におい
て、該符号語情報が、MPS/LPS表示の内容がラン
の始まりであるか否かを示す第1の信号と、MPS/L
PS表示の内容がランの終わりであるか否かを示す第2
の信号と、符号語出力とからなることを特徴とする符号
化装置。
18. The encoding device according to claim 17, wherein the code word information includes a first signal indicating whether or not the content of the MPS / LPS display is the start of a run, and MPS / L.
Second indicating whether or not the content of the PS display is the end of the run
And a codeword output.
【請求項19】 請求項11記載の符号化装置におい
て、該ビットパックユニットがインターリーブド語を並
べ替えて符号化データストリームを、各ストリームの各
インターリーブド語中のN個前の符号語に応じて順序付
けられたインターリーブドストリームとして生成するこ
とを特徴とする符号化装置。
19. The encoding apparatus according to claim 11, wherein the bit pack unit rearranges interleaved words to generate an encoded data stream according to N codewords in each interleaved word of each stream. And an encoding device for generating an ordered interleaved stream.
【請求項20】 請求項11記載の符号化装置におい
て、該再配列ユニットは符号ストリームに出力されるイ
ンターリーブド語を選択するためのスヌーパー復号器を
有することを特徴とする符号化装置。
20. The coding device according to claim 11, wherein the rearrangement unit has a snooping decoder for selecting interleaved words output to a code stream.
【請求項21】 請求項20記載の符号化装置におい
て、該再配列ユニットが複数のビットパックユニットに
接続された複数のランカウント並べ替えユニットを有
し、該複数のビットパックユニットがそれぞれインター
リーブド語を生成し、該スヌーパー復号器が該複数のイ
ンターリーブド語より該符号ストリームへの出力として
のインターリーブド語を選択することを特徴とする符号
化装置。
21. The encoding apparatus according to claim 20, wherein the rearrangement unit includes a plurality of runcount rearrangement units connected to a plurality of bitpack units, each of the plurality of bitpack units being interleaved. An encoding device for generating a word, wherein the snooping decoder selects an interleaved word as an output to the code stream from the plurality of interleaved words.
【請求項22】 請求項11記載の符号化装置におい
て、該符号語情報がタイムスタンプを含み、該再配列ユ
ニットがインターリーブド語を関連したタイムスタンプ
に基づき出力するための論理をさらに有する、ことを特
徴とする符号化装置。
22. The encoding device of claim 11, wherein the codeword information includes a time stamp and the reordering unit further comprises logic for outputting an interleaved word based on the associated time stamp. An encoding device characterized by.
【請求項23】 請求項22記載の符号化装置におい
て、該再配列ユニットが複数のビットパックユニットと
接続された複数のランカウント並べ替えユニットを有
し、該論理がインターリーブド語を関連したタイムスタ
ンプに基づき出力させることを特徴とする符号化装置。
23. The encoding device of claim 22, wherein the reordering unit comprises a plurality of runcount reordering units connected to a plurality of bitpack units, the logic relating interleaved words to a time. An encoding device which outputs based on a stamp.
【請求項24】 請求項23記載の符号化装置におい
て、インターリーブド語が最も古いタイムスタンプに基
づき出力されることを特徴とする符号化装置。
24. The encoding device according to claim 23, wherein the interleaved word is output based on the oldest time stamp.
【請求項25】 請求項11記載の符号化装置におい
て、単一のキューが複数のビットパックユニットへ符号
語を供給し、該複数のビットパックユニットが該符号ス
トリームの一部として出力されるインターリーブド語を
生成することを特徴とする符号化装置。
25. An encoder according to claim 11, wherein a single queue supplies a code word to a plurality of bit pack units, the plurality of bit pack units being output as part of the code stream. An encoding device for generating a Do word.
【請求項26】 請求項25記載の符号化装置におい
て、該単一のキューが単一のランカウント並べ替えユニ
ットを含み、論理が該符号ストリームとして出力すべき
次のインターリーブド語を決定することを特徴とする符
号化装置。
26. The encoding apparatus of claim 25, wherein the single queue includes a single runcount reordering unit and logic determines the next interleaved word to output as the codestream. An encoding device characterized by.
【請求項27】 請求項11記載の符号化装置におい
て、単一のキューが単一のビットパックユニットへ符号
語を供給することを特徴とする符号化装置。
27. The coding device according to claim 11, wherein a single queue supplies the codewords to a single bit pack unit.
【請求項28】 データに応じて符号語情報を発生する
符号化器と、該符号化器に接続された再配列ユニットを
有し、該再配列ユニットが該符号語情報に応じて符号化
データストリームを生成し、該再配列ユニットが各符号
語を対応したデータの最初の部分に並べるためのランカ
ウント並べ替えユニットと、該ランカウント並べ替えユ
ニットから符号語を受け取り可変長符号語を組合せて複
数の固定長インターリーブド語とし、該複数の固定長イ
ンターリーブド語を復号器で必要とされる順番に出力す
るように接続されたビットパックユニットとからなる、
符号化器により生成された情報を復号するための復号器
を持つ圧縮システム用の符号化装置。
28. An encoder that generates codeword information according to data, and a rearrangement unit connected to the encoder, the rearrangement unit including encoded data according to the codeword information. A stream count rearrangement unit for generating a stream, the rearrangement unit arranging each codeword in the first part of the corresponding data, and receiving the codeword from the runcount rearrangement unit to combine the variable length codewords. A plurality of fixed length interleaved words, and a bit pack unit connected so as to output the plurality of fixed length interleaved words in the order required by the decoder,
An encoder for a compression system having a decoder for decoding the information generated by the encoder.
【請求項29】 符号語を並べ替えの間記憶するための
メモリをさらに有することを特徴とする請求項28記載
の符号化装置。
29. The encoding apparatus according to claim 28, further comprising a memory for storing codewords during rearrangement.
【請求項30】 請求項28記載の符号化装置におい
て、符号化器がさらに、コンテキストモデル、該コンテ
キストモデルと接続された確率予測機構、及び該確率予
測機構と接続されたビットストリームジェネレータを有
することを特徴とする符号化装置。
30. The encoding apparatus according to claim 28, wherein the encoder further includes a context model, a probability prediction mechanism connected to the context model, and a bitstream generator connected to the probability prediction mechanism. An encoding device characterized by.
【請求項31】 請求項30記載の符号化装置におい
て、該ランカウント並べ替えユニットがさらに、符号語
を記憶するための第1のメモリと、該第1のメモリをキ
ューとしてアドレスするための第1のインジケータ及び
第2のインジケータとを有し、該第1のインジケータが
該第1のメモリの出力として指定される第1のエントリ
ーを指し示し、該第2のインジケータが該第1のメモリ
の次の利用可能で割り当てられていない記憶ロケーショ
ンとして指定される第2のエントリーを指し示すことを
特徴とする符号化装置。
31. The encoding device of claim 30, wherein the runcount reordering unit further comprises a first memory for storing codewords and a first memory for addressing the first memory as a queue. One indicator and a second indicator, the first indicator pointing to a first entry designated as an output of the first memory, and the second indicator next to the first memory. An encoding device which points to a second entry designated as an available and unallocated storage location of the.
【請求項32】 各インデックス毎に符号語の記憶のた
めに現在指定されている第1のメモリ内のロケーション
に対応するアドレス情報を記憶するためのポインタメモ
リをさらに有することを特徴とする請求項31記載の符
号化装置。
32. A pointer memory for storing address information corresponding to a location in the first memory currently designated for storing a codeword for each index. 31. The encoding device according to item 31.
【請求項33】 請求項32記載の符号化装置におい
て、各インデックスが1つの確率クラスを指示すること
を特徴とする符号化装置。
33. The coding apparatus according to claim 32, wherein each index indicates one probability class.
【請求項34】 請求項32記載の符号化装置におい
て、各インデックスが少なくとも1つのコンテキストを
指示することを特徴とする符号化装置。
34. The encoding device of claim 32, wherein each index points to at least one context.
【請求項35】 請求項28記載の符号化装置におい
て、該再配列ユニットが、符号語を記憶するための符号
語メモリキューと、出力すべき少なくとも1つの符号語
を指示するヘッドポインタと、該符号語メモリキューに
符号語を挿入するための少なくとも1つのメモリロケー
ションを指示するテールポインタとをさらに有すること
を特徴とする符号化装置。
35. The encoding device according to claim 28, wherein the rearrangement unit includes a codeword memory queue for storing codewords, a head pointer indicating at least one codeword to be output, and And a tail pointer pointing to at least one memory location for inserting a codeword into the codeword memory queue.
【請求項36】 請求項35記載の符号化装置におい
て、該符号語メモリキューの各符号語エントリーが有効
性表示を含み、該符号語メモリキューより1つの符号語
が出力される時に該ヘッドポインタが当該符号語のアド
レスを指定し当該該符号語の有効性表示が当該該符号語
の有効性を表示することを特徴とする符号化装置。
36. The encoder of claim 35, wherein each codeword entry of the codeword memory queue includes a validity indication and the head pointer when one codeword is output from the codeword memory queue. Is an address of the codeword, and the validity display of the codeword displays the validity of the codeword.
【請求項37】 請求項28記載の符号化装置におい
て、該ビットパックユニットが該再配列ユニットから符
号語を受け取って符号語を複数のストリームのためのイ
ンターリーブド語に統合するビットパック論理を有する
ことを特徴とする符号化装置。
37. The encoding apparatus of claim 28, wherein the bitpack unit has bitpack logic for receiving codewords from the rearrangement unit and integrating the codewords into interleaved words for multiple streams. An encoding device characterized by the above.
【請求項38】 請求項37記載の符号化装置におい
て、該ビットパック論理が複数のアキュムレータと複数
のレジスタを有し、該複数のレジスタのそれぞれが該複
数のアキュムレータ中の1つのアキュムレータ及び該複
数のストリーム中の1つのストリームに関連付けられ、
各レジスタがそれに関連したストリームのためのインタ
ーリーブド語を格納し、各アキュムレータが関連したレ
ジスタ内の該ストリームのための現在符号語を格納する
ための次のロケーションを指示することにより、該複数
のストリーム中の1つのストリームのための各符号語
が、該関連したアキュムレータの値に基づき、該1つの
ストリームに関連したレジスタの内容に付加されること
を特徴とする符号化装置。
38. The encoding apparatus according to claim 37, wherein the bit pack logic has a plurality of accumulators and a plurality of registers, each of the plurality of registers being one accumulator and the plurality of accumulators. Associated with one of the streams
Each register stores an interleaved word for its associated stream, and each accumulator indicates the next location for storing the current codeword for that stream in its associated register, thereby An encoding device, wherein each codeword for one stream in a stream is added to the contents of a register associated with the one stream based on the value of the associated accumulator.
【請求項39】 該複数のアキュムレータに接続され、
該複数のアキュムレータからの少なくとも1つの信号に
応答して符号語をシフトするシフタをさらに有し、1つ
のアキュムレータ値に基づき、符号語が該複数のレジス
タ中の1つのレジスタの内容に付加されるようにシフト
され、少なくとも2個の符号語の部分を各インターリー
ブド語にパックすることを特徴とする請求項38記載の
符号化装置。
39. Connected to the plurality of accumulators,
Further comprising a shifter that shifts the codeword in response to at least one signal from the plurality of accumulators, the codeword being added to the contents of one of the plurality of registers based on the one accumulator value. 39. The encoding device as claimed in claim 38, which is shifted in such a way that at least two codeword parts are packed into each interleaved word.
【請求項40】 該復号器により指定される順序でイン
ターリーブド語を格納するための並べ替えメモリをさら
に有することを特徴とする請求項37記載の符号化装
置。
40. The encoding apparatus according to claim 37, further comprising a rearrangement memory for storing interleaved words in an order specified by the decoder.
【請求項41】 複数のインターリーブドデータストリ
ームに対応した複数のポインタをさらに有し、該複数の
ポインタがそれぞれ該複数のストリーム中の各ストリー
ムに対応する次のインターリーブド語のための該並べ替
えメモリ内のロケーションを指定することを特徴とする
請求項40記載の符号化装置。
41. The permutation for a next interleaved word further comprising a plurality of pointers corresponding to a plurality of interleaved data streams, the plurality of pointers each corresponding to a respective stream in the plurality of streams. The encoding device according to claim 40, characterized in that a location in memory is designated.
【請求項42】 複数のランカウント並べ替えユニット
をさらに有し、該複数のランカウント並べ替えユニット
がそれぞれ該符号化データストリームの1つに関連付け
られ、また、各符号化データストリームに対するインタ
ーリーブド語を生成するための複数のビットパックユニ
ットと、該複数のビットパックユニットから出るインタ
ーリーブド語を該復号化出力として選択するための復号
器とをさらに有することを特徴とする請求項28記載の
符号化装置。
42. A plurality of runcount reordering units are further provided, each of the plurality of runcount reordering units being associated with one of the encoded data streams, and an interleaved word for each encoded data stream. 29. The code of claim 28, further comprising: a plurality of bitpack units for generating a, and a decoder for selecting an interleaved word emanating from the plurality of bitpack units as the decoded output. Device.
【請求項43】 複数のランカウント並べ替えユニット
をさらに有し、該複数のランカウント並べ替えユニット
がそれぞれ該符号化データストリームの1つに関連付け
られ、かつ、複数の符号語及び該複数の符号語のそれぞ
れに関連したタイムスタンプを生成し、また、各符号化
データストリームに対するインターリーブド語を生成す
るための複数のビットパックユニットと、該インターリ
ーブド語それぞれを該インターリーブド語それぞれの符
号語のタイムスタンプに基づき選択するための論理とを
さらに有することを特徴とする請求項28記載の符号化
装置。
43. A plurality of runcount reordering units, each of the plurality of runcount reordering units being associated with one of the encoded data streams, the plurality of codewords and the plurality of codes. A plurality of bit pack units for generating time stamps associated with each of the words and also for generating each interleaved word for each encoded data stream; and each of the interleaved words for each of the interleaved words 29. The encoding device of claim 28, further comprising logic for selecting based on a time stamp.
【請求項44】 請求項43記載の符号化装置におい
て、該論理が最も古いタイムスタンプを持つ符号語を含
むインターリーブド語を選択することを特徴とする符号
化装置。
44. The encoding apparatus according to claim 43, wherein the logic selects an interleaved word including a codeword having an oldest time stamp.
【請求項45】 請求項28記載の符号化装置におい
て、該ビットパックユニットが複数のストリーム中の1
つから符号語を受け取るように接続された複数のビット
パッキングユニットを有し、また、次のストリームに基
づき、該複数のビットパッキングユニットのそれぞれよ
り出力すべきインターリーブド語を選択する論理をさら
に有することを特徴とする符号化装置。
45. The encoding device according to claim 28, wherein the bit pack unit is one of a plurality of streams.
A plurality of bit packing units connected to receive a code word from one of the plurality of bit packing units, and further includes logic for selecting an interleaved word to be output from each of the plurality of bit packing units based on the next stream. An encoding device characterized by the above.
【請求項46】 請求項28記載の符号化装置におい
て、該再配列ユニットが有限のメモリをさらに有するこ
とを特徴とする符号化装置。
46. The encoding device according to claim 28, wherein the rearrangement unit further has a finite memory.
【請求項47】 データを処理するためのコーディング
装置であって、該データに基づきインデックスを生成す
るインデックスジェネレータと、該インデックスに基づ
き確率予測値を提供するように接続された状態テーブル
とを有し、 該状態テーブルは第1の複数の状態と第2の複数の状態
を含み、該状態はそれぞれ1つの符号に対応し、該第1
の複数の状態の状態間の遷移時における該第1の複数の
状態に対応する異なった符号間の遷移は、該第2の複数
の状態の状態間の遷移時における該第2の複数の状態に
対応する異なった符号間の遷移より高速に起こるコーデ
ィング装置。
47. A coding device for processing data, comprising: an index generator for generating an index based on the data; and a state table connected to provide a probability prediction value based on the index. , The state table includes a first plurality of states and a second plurality of states, each state corresponding to one code, and the first plurality of states.
Transitions between different symbols corresponding to the first plurality of states during transitions between the states of the plurality of states of the second plurality of states during transitions between states of the second plurality of states. A coding device that occurs faster than the transition between different codes corresponding to.
【請求項48】 請求項47記載のコーディング装置に
おいて、該第1の複数の状態がある所定数のインデック
スに対してのみ用いられることを特徴とするコーディン
グ装置。
48. The coding device of claim 47, wherein the first plurality of states is used only for a predetermined number of indexes.
【請求項49】 請求項47記載のコーディング装置に
おいて、該第1の複数の状態が、最初に該状態テーブル
を索引する所定数のインデックスに対してのみ用いられ
ることを特徴とするコーディング装置。
49. The coding device of claim 47, wherein the first plurality of states is used only for a predetermined number of indexes that initially index the state table.
【請求項50】 請求項47記載のコーディング装置に
おいて、該第1の複数の状態がそれぞれ1つのR2符号
に関係付けられることを特徴とするコーディング装置。
50. The coding device of claim 47, wherein each of the first plurality of states is associated with an R2 code.
【請求項51】 請求項48記載のコーディング装置に
おいて、該第1の複数の状態に該第2の複数の状態への
遷移を少なくとも1つ含むことにより、該状態テーブル
が該所定数のインデックスの後に該第1の複数の状態か
ら該第2の複数の状態へ遷移することを特徴とするコー
ディング装置。
51. The coding apparatus as set forth in claim 48, wherein the first plurality of states includes at least one transition to the second plurality of states, so that the state table stores the predetermined number of indexes. A coding device, characterized by making a transition from the first plurality of states to the second plurality of states later.
【請求項52】 請求項47記載のコーディング装置に
おいて、該第1の複数の状態がそれぞれ1つの異なった
符号と関係付けられることを特徴とするコーディング装
置。
52. The coding device of claim 47, wherein each of the first plurality of states is associated with a different code.
【請求項53】 請求項47記載のコーディング装置に
おいて、該状態テーブルが、最低確率シンボルに応答し
て、該第1の複数の状態中のある状態から該第2の複数
の状態中のある状態へ遷移することを特徴とするコーデ
ィング装置。
53. The coding apparatus of claim 47, wherein the state table is responsive to a least-probability symbol from a state in the first plurality of states to a state in the second plurality of states. A coding device characterized by a transition to.
【請求項54】 請求項47記載のコーディング装置に
おいて、該状態テーブルが最高確率シンボルに応答して
状態を上げることを特徴とするコーディング装置。
54. The coding device of claim 47, wherein the state table raises states in response to highest probability symbols.
【請求項55】 データを処理するためのコーディング
装置であって、該データに基づきインデックスを生成す
るインデックスジェネレータと、該インデックスに基づ
き確率予測値を提供するように接続された状態テーブル
とを有し、 該状態テーブルは複数の状態を含み、該状態はそれぞれ
1つの符号に対応し、該状態テーブル中の全ての符号が
所定回数繰り返され、 該状態テーブルの状態間遷移が修正可能な加速条件に基
づいて起こることにより、第1の期間における状態遷移
の第1の速度は第2の期間における遷移の第2の速度と
異なるコーディング装置。
55. A coding device for processing data, comprising: an index generator for generating an index based on the data; and a state table connected to provide a probability prediction value based on the index. The state table includes a plurality of states, each state corresponds to one code, all the codes in the state table are repeated a predetermined number of times, and the transition between states of the state table becomes a correctable acceleration condition. A coding device, wherein the first rate of state transitions in the first period is different than the second rate of transitions in the second period.
【請求項56】 請求項55記載のコーディング装置に
おいて、該状態テーブルに対する更新が該加速条件の増
減によりPEM状態を修正することを含むことを特徴と
するコーディング装置。
56. The coding device of claim 55, wherein updating the state table comprises modifying a PEM state by increasing or decreasing the acceleration condition.
【請求項57】 請求項56記載のコーディング装置に
おいて、加速条件が所定の数である時には適応的加速が
行なわれないことを特徴とするコーディング装置。
57. The coding apparatus according to claim 56, wherein adaptive acceleration is not performed when the acceleration condition is a predetermined number.
【請求項58】 請求項56記載のコーディング装置に
おいて、該加速条件が連続した符号語の数に基づき更新
されることを特徴とするコーディング装置。
58. The coding apparatus according to claim 56, wherein the acceleration condition is updated based on the number of consecutive codewords.
【請求項59】 請求項58記載のコーディング装置に
おいて、連続した符号語が同じコンテキストでの連続し
た符号語であることを特徴とするコーディング装置。
59. The coding device according to claim 58, wherein the consecutive codewords are consecutive codewords in the same context.
【請求項60】 請求項58記載のコーディング装置に
おいて、連続した符号語が同じ確率クラスでの連続した
符号語であることを特徴とするコーディング装置。
60. The coding device according to claim 58, wherein the consecutive codewords are consecutive codewords in the same probability class.
【請求項61】 請求項56記載のコーディング装置に
おいて、該加速条件が交互に替わる符号語の数に基づい
て更新されることを特徴とするコーディング装置。
61. The coding apparatus according to claim 56, wherein the acceleration condition is updated based on the number of alternating codewords.
【請求項62】 複数の符号語からなるデータストリー
ムを復号するためのエントロピー復号器であって、該デ
ータストリームを受け取るための複数のビットストリー
ムジェネレータと、該複数のビットストリームジェネレ
ータに確率予測値を与えるために該複数のビットストリ
ームジェネレータに接続された状態テーブルとを有し、 該複数のビットジェネレータは、複数のn値に対するR
n(k)符号を用い、該確率予測値に応じて該データス
トリーム中の各符号語に対する復号結果を生成し、ま
た、該状態テーブルは第1の複数の状態と第2の複数の
状態を含み、符号間遷移は、該第1の複数の状態におい
て遷移する時のほうが、該第2の複数の状態において遷
移する時よりも高速に起こるエントロピー復号器。
62. An entropy decoder for decoding a data stream composed of a plurality of codewords, the plurality of bitstream generators for receiving the datastream, and the probability prediction value for the plurality of bitstream generators. A state table connected to the plurality of bitstream generators to provide R for multiple n values.
An n (k) code is used to generate a decoding result for each codeword in the data stream according to the probability prediction value, and the state table includes a first plurality of states and a second plurality of states. An entropy decoder comprising, wherein inter-code transition occurs faster when transitioning in the first plurality of states than during transitioning in the second plurality of states.
【請求項63】 請求項62記載のエントロピー復号器
において、 該第1の複数の状態がそれぞれR2(k)
符号を含むことを特徴とするエントロピー復号器。
63. The entropy decoder of claim 62, wherein each of the first plurality of states is R2 (k).
An entropy decoder including a code.
【請求項64】 請求項62記載のエントロピー復号器
において、該第1の複数の状態が初期化の間だけ利用さ
れることを特徴とするエントロピー復号器。
64. The entropy decoder of claim 62, wherein the first plurality of states are utilized only during initialization.
【請求項65】 複数の符号語からなるデータストリー
ムを復号するためのエントロピー復号器であって、該デ
ータストリームを受け取るための複数のビットストリー
ムジェネレータと、インデックスに基づいて確率予測値
を与えるために接続された状態テーブルとを有し、 ここにおいて、該状態テーブルは複数の状態を持ち、該
複数の状態はそれぞれ1つの符号に対応し、該状態テー
ブル内の全ての符号が予め決められた回数繰り返され、 該状態テーブルの状態間遷移は修正可能な加速条件に基
づいて起こることにより、第1の期間における状態間遷
移の第1の速度は第2の期間における遷移の第2の速度
と異なるエントロピー復号器。
65. An entropy decoder for decoding a data stream consisting of a plurality of codewords, wherein the entropy decoder comprises a plurality of bitstream generators for receiving the datastream, and a probability prediction value based on an index. A state table connected thereto, wherein the state table has a plurality of states, each of the plurality of states corresponds to one code, and all the codes in the state table have a predetermined number of times. Again, the state-to-state transitions of the state table occur based on a modifiable acceleration condition such that the first rate of inter-state transitions in the first period is different from the second rate of transitions in the second period. Entropy decoder.
【請求項66】 請求項62記載のエントロピー復号器
において、該状態テーブル内の全ての符号が一定回数繰
り返されることを特徴とするエントロピー復号器。
66. The entropy decoder according to claim 62, wherein all codes in the state table are repeated a fixed number of times.
【請求項67】 請求項66記載のエントロピー復号器
において、該状態テーブルに対する更新が加速条件によ
りPEM状態を修正することを含むことを特徴とするエ
ントロピー復号器。
67. The entropy decoder of claim 66, wherein updating the state table comprises modifying PEM states according to acceleration conditions.
【請求項68】 請求項67記載のエントロピー復号器
において、該加速条件が予め決められた値である時に適
応的加速が行なわれないことを特徴とするエントロピー
復号器。
68. The entropy decoder according to claim 67, wherein adaptive acceleration is not performed when the acceleration condition is a predetermined value.
【請求項69】 請求項67記載のエントロピー復号器
において、該加速条件が連続した符号語の数に基づいて
更新されることを特徴とするエントロピー復号器。
69. The entropy decoder according to claim 67, wherein the acceleration condition is updated based on the number of consecutive codewords.
【請求項70】 請求項67記載のエントロピー復号器
において、該加速条件が交互に替わる符号語の数に基づ
いて更新されることを特徴とするエントロピー復号器。
70. The entropy decoder according to claim 67, wherein the acceleration condition is updated based on the number of alternating codewords.
【請求項71】 複数のインターリーブド語を復号する
ための復号器であって、 該データストリームを受け取って適切に整列された符号
化データを出力するためのシフタ、 該適切に整列された符号化データを符号語として受け取
って符号語種類を判定するための、該シフタに接続され
たランレングスデコーダ、 該ランレングスデコーダが各符号語に応じてランレング
スとLPSが出現したか否かの表示を生成するように、
該ランレングスデコーダのための符号を決定する、該ラ
ンレングスデコーダに接続された確率予測マシンを有
し、 ここにおいて、該シフタは該データストリームからの符
号語をシフトするための可変長シフト機構を有し、かつ
整列された符号語データが符号語の1つの系列として出
力されるように、該シフト機構に応答して該データスト
リームから符号語を受け取るよう接続された複数のレジ
スタを有する復号器。
71. A decoder for decoding a plurality of interleaved words, the shifter for receiving the data stream and outputting properly aligned encoded data, the properly aligned encoding. A run length decoder connected to the shifter for receiving data as a code word and determining a code word type, and an indication as to whether or not the run length decoder and the run length have appeared according to each code word. To produce,
A probability prediction machine connected to the run length decoder for determining a code for the run length decoder, wherein the shifter comprises a variable length shift mechanism for shifting codewords from the data stream. A decoder having a plurality of registers connected to receive codewords from the data stream in response to the shift mechanism such that the aligned and aligned codeword data is output as a sequence of codewords. .
【請求項72】 請求項71記載の復号器において、該
複数のレジスタ中の一部のレジスタは、該複数のレジス
タ中の別のレジスタから、または該データストリームか
らデータを受け取るように接続されることを特徴とする
復号器。
72. The decoder of claim 71, wherein some registers in the plurality of registers are connected to receive data from another register in the plurality of registers or from the data stream. A decoder characterized in that.
【請求項73】 請求項71記載の復号器において、該
可変長シフト機構が該データストリームからのデータを
該複数のレジスタへシフトするためのバレルシフタを含
むことを特徴とする復号器。
73. The decoder of claim 71, wherein the variable length shift mechanism includes a barrel shifter for shifting data from the data stream into the plurality of registers.
【請求項74】 請求項71記載の復号器において、該
シフタが複数のレジスタを持つFIFOを有し、該複数
のレジスタのそれぞれが該インターリーフド語を入力と
して受け取り、かつ、該複数のレジスタ中の少なくとも
1つのレジスタが該複数のレジスタ中の他のレジスタか
ら符号語を受け取るように接続されることを特徴とする
復号器。
74. The decoder of claim 71, wherein the shifter comprises a FIFO having a plurality of registers, each of the plurality of registers receiving the interleaf word as an input, and the plurality of registers. A decoder, wherein at least one register therein is connected to receive a codeword from another register in the plurality of registers.
【請求項75】 請求項71記載の復号器において、該
シフタが、 符号語データを受け取るように接続され、それぞれが複
数のストリーム中の別個のストリームに接続された第1
の複数のレジスタと、 該第1の複数のレジスタのそれぞれから符号語データを
入力として受け取り、1度に該第1の複数のレジスタ中
の1つのレジスタから符号語を出力するように接続され
たマルチプレクサと、 該マルチプレクサからの符号語データをシフトし整列さ
れた符号語データとして出力するための、該マルチプレ
クサの出力に接続されたバレルシフタと、 符号語をシフトすべきビット数を指示するための、該バ
レルシフタに接続された論理と、 該マルチプレクサから符号語を受け取るように接続され
た複数のレジスタを持つFIFOとを有し、 該複数のレジスタのそれぞれは入力として該インターリ
ーブド語からのデータを受け取り、かつ、該複数のレジ
スタ中の少なくとも1つのレジスタは該複数のレジスタ
中の別のレジスタから符号語を受け取るように接続され
ることを特徴とする復号器。
75. The decoder of claim 71, wherein the shifter is coupled to receive codeword data, each shifter being coupled to a separate stream of the plurality of streams.
Connected to receive the codeword data from each of the first plurality of registers as inputs, and output the codeword from one register of the first plurality of registers at a time. A multiplexer, a barrel shifter connected to the output of the multiplexer for outputting the codeword data from the multiplexer as shifted and aligned codeword data, and for indicating the number of bits to shift the codeword, A logic having a logic connected to the barrel shifter and a FIFO having a plurality of registers connected to receive a codeword from the multiplexer, each of the plurality of registers receiving as input data from the interleaved word. , And at least one register in the plurality of registers is another register in the plurality of registers. Decoder, characterized in that it is connected to receive the codewords from.
【請求項76】 データを復号するための復号装置であ
って、 該データを受け取るよう接続されたFIFO構造と、 コンテキストを提供するためのコンテキストモデルと、 該コンテキストモデルに接続された、状態情報を記憶す
るためのメモリであって、該コンテキストモデルによっ
て提供された各コンテキストに応じて状態情報を提供す
るメモリと、 該FIFO構造から符号化データを、該メモリから状態
情報を受け取るように接続され、該FIFO構造から与
えられた符号語を、該メモリから与えられた状態情報を
利用して復号する複数の復号器とを有し、該複数の復号
器が複数の符号のためのランカウントを提供する復号装
置。
76. A decoding device for decoding data, a FIFO structure connected to receive the data, a context model for providing context, and state information connected to the context model. A memory for storing, the memory providing state information in response to each context provided by the context model, and coupled to receive encoded data from the FIFO structure and state information from the memory, A plurality of decoders for decoding a code word given from the FIFO structure using state information given from the memory, the plurality of decoders providing run counts for a plurality of codes. Decryption device.
【請求項77】 請求項76記載の復号装置において、
該FIFO構造がコンテキスト及び確率クラスと無関係
に符号化データを該複数の復号器に供給することを特徴
とする復号装置。
77. The decoding device according to claim 76,
A decoding device, wherein the FIFO structure supplies encoded data to the plurality of decoders regardless of context and probability class.
【請求項78】 請求項76記載の復号装置において、
該復号器がランカウントを記憶するためのランカウント
メモリを有し、該ランカウントメモリが確率クラスに基
づいてアクセス可能であることを特徴とする復号装置。
78. The decoding device according to claim 76,
A decoding device, wherein the decoder has a run count memory for storing a run count, and the run count memory is accessible based on a probability class.
【請求項79】 請求項76記載の復号装置において、
該FIFO構造が2つの復号器に対しデータを供給する
ことを特徴とする復号装置。
79. The decoding device according to claim 76,
Decoding device characterized in that the FIFO structure supplies data to two decoders.
【請求項80】 請求項76記載の復号装置において、
該FIFO構造が各復号器毎に1つずつ複数の出力を有
することを特徴とする復号装置。
80. The decoding device according to claim 76,
Decoding device characterized in that the FIFO structure has a plurality of outputs, one for each decoder.
【請求項81】 請求項80記載の復号装置において、
該FIFO構造が、1対のマルチプレクサと、各復号器
へ1つの符号語が確実に供給されるよう該1対のマルチ
プレクサを選択するための制御論理とを有することを特
徴とする復号装置。
81. A decoding device according to claim 80,
Decoding device characterized in that the FIFO structure comprises a pair of multiplexers and control logic for selecting the pair of multiplexers to ensure that one codeword is supplied to each decoder.
【請求項82】 請求項81記載の復号装置において、
該1対のマルチプレクサが該制御論理により該複数の復
号器中の1つから受領した要求に基づき選択されること
を特徴とする復号装置。
82. The decoding device according to claim 81,
A decoding device, wherein the pair of multiplexers is selected by the control logic based on a request received from one of the plurality of decoders.
【請求項83】 入力データを符号化するための符号化
装置であって、 該入力データを受け取るよう接続された、符号化データ
を複数のストリームとして生成するための符号化ユニッ
トを有し、符号化データは1組の基準に基づいて該複数
のストリームに割り当てられ、かつ該複数の符号化デー
タのストリームを記憶するための、該符号化ユニットに
接続された一定サイズのメモリを有し、重用度が低い符
号化データは該一定サイズメモリがオーバーフローする
ときには捨てられる、符号化装置。
83. A coding device for coding input data, comprising a coding unit connected to receive the input data for generating the coded data as a plurality of streams. Encoded data is assigned to the plurality of streams based on a set of criteria and has a fixed size memory connected to the encoding unit for storing the plurality of encoded data streams, An encoding device in which low-degree encoded data is discarded when the fixed size memory overflows.
【請求項84】 請求項83記載の符号化装置におい
て、該メモリが複数の記憶域を有し、該複数の記憶域の
それぞれに格納される符号語データが異なった重用度レ
ベルの符号化データからなることを特徴とする符号化装
置。
84. The encoding device according to claim 83, wherein the memory has a plurality of storage areas, and code word data stored in each of the plurality of storage areas has different levels of importance. An encoding device comprising:
【請求項85】 請求項84記載の符号化装置におい
て、ある重用度レベルの符号化データが別の重用度レベ
ルの符号化データを記憶している少なくとも1つの該メ
モリの記憶域に格納されることを特徴とする符号化装
置。
85. The encoding device according to claim 84, wherein the encoded data of one duty level is stored in the storage area of at least one of the memories storing the encoded data of another duty level. An encoding device characterized by the above.
【請求項86】 請求項85記載の符号化装置におい
て、該ある重用度レベルの符号化データが該少なくとも
1つの記憶域内の該別の重用度レベルの符号化データの
上に重ね書きされることを特徴とする符号化装置。
86. The encoding device according to claim 85, wherein the coded data of the certain degree of importance level is overwritten on the coded data of the other degree of importance level in the at least one storage area. An encoding device characterized by.
【請求項87】 データの符号化中にシステムの複数の
コンテキストを初期化するための方法であって、 該複数のコンテキストを初期化するステップを有し、こ
こにおいて該複数のコンテキスト中の各コンテキストは
カウンタ値に基づいてアクセスされ、 現在コンテキストのPEM状態を取得するステップを有
し、該PEM状態取得のステップは、 該PEM状態を指示する各コンテキストのための記憶指
示をアクセスするステップと、 該アクセスされたメモリロケーションが現在動作のため
に有効か否か判定するため、該現在コンテキストの番号
を該カウンタ値と比較し、該カウンタ値が該ロケーショ
ンが初期化済みであることを指示しているときにデータ
が有効であると判定するステップと、 該コンテキストのために初期PEM状態を用い、該アク
セスされたメモリロケーションが有効でない時にはコン
テキストのための現在PEM状態を無視するステップ
と、 該データが有効ならば該コンテキストのために現在割り
当てられているPEM状態を用いるステップとを有す
る、初期化方法。
87. A method for initializing a plurality of contexts of a system during encoding of data, comprising the step of initializing the plurality of contexts, wherein each context in the plurality of contexts. Is accessed based on the counter value and has a step of obtaining the PEM state of the current context, the step of obtaining the PEM state includes accessing a storage instruction for each context indicating the PEM state, The number of the current context is compared to the counter value to determine if the accessed memory location is valid for the current operation, the counter value indicating that the location has been initialized. Sometimes determining that the data is valid, and using the initial PEM state for the context , Ignoring the current PEM state for the context when the accessed memory location is not valid, and using the currently allocated PEM state for the context if the data is valid, initial Method.
【請求項88】 請求項87記載の初期化方法におい
て、PEM状態が変わったときに新しいPEM状態を書
き込むステップをさらに有することを特徴とする初期化
方法。
88. The initialization method of claim 87, further comprising writing a new PEM state when the PEM state changes.
【請求項89】 入力データを復号するための復号器で
あって、 コンテキストビンを提供するためのコンテキストモデル
と、 該コンテキストビンに基づいて確率状態を提供するため
の、該コンテキストモデルに接続されたメモリと、 該確率状態に基づいて確率クラスを発生するための、該
メモリに接続された論理と、 該確率クラスに基づきイネーブル信号を発生するデコー
ダと、 該デコーダに接続され、かつ該符号化データを受け取る
ように接続された複数のビットジェネレータとを有し、 該複数のビットジェネレータはそれぞれ少なくとも1つ
の固有の符号のための専用とされ、該デコーダは該確率
クラスに基づいて該複数のビットジェネレータ中の1つ
のビットジェネレータをイネーブルすることにより、該
1つのビットジェネレータが該符号化データを復号す
る、復号器。
89. A decoder for decoding input data, the context model for providing a context bin and connected to the context model for providing a stochastic state based on the context bin. A memory, a logic connected to the memory for generating a probability class based on the probability state, a decoder generating an enable signal based on the probability class, and the coded data connected to the decoder A plurality of bit generators connected to receive the plurality of bit generators, each of the plurality of bit generators being dedicated to at least one unique code, the decoder being based on the probability class. By enabling one bit generator in the A decoder for decoding the encoded data.
【請求項90】 請求項89記載の復号器において、該
複数のビットジェネレータ中の少なくとも1つのビット
ジェネレータがR−符号を使ってデータを復号し、該複
数のビットジェネレータ中の少なくとも1つのビットジ
ェネレータがR−符号以外の符号を使ってデータを復号
することを特徴とする復号器。
90. The decoder of claim 89, wherein at least one bit generator in the plurality of bit generators decodes data using an R-code and at least one bit generator in the plurality of bit generators. Decoder for decoding data using a code other than the R-code.
【請求項91】 請求項89記載の復号器において、短
ランレングス用ビットジェネレータがR−符号復号器と
して働くことを特徴とする復号器。
91. The decoder of claim 89, wherein the short run length bit generator acts as an R-code decoder.
【請求項92】 請求項89記載の復号器において、長
ランレングス用ビットジェネレータが短ランユニットと
長ランユニットとからなり、該短ランユニットが予め決
められた第1の長さの符号を扱い、該長ランユニットが
残りのビットを扱い、該残りのビットに出力すべきビッ
トがあれば、それを決定することを特徴とする復号器。
92. The decoder according to claim 89, wherein the long run length bit generator comprises a short run unit and a long run unit, and the short run unit handles a code of a predetermined first length. A decoder, characterized in that the long run unit handles the remaining bits and determines if there are any bits to be output.
【請求項93】 コンテキストビンを提供するステップ
と、 該コンテキストビンを用いてメモリをアクセスし確率状
態を得るステップと、 該確率状態に基づいて確率クラスを生成するステップ
と、 複数のビットジェネレータ中の1つのビットジェネレー
タをイネーブルするステップとを有し、該複数のビット
ジェネレータはそれぞれ少なくとも1つの固有の符号の
ための専用であって、該少なくとも1つの固有の符号だ
けが復号に使用されて該1つのビットジェネレータが符
号化データを復号する、入力データを復号するための復
号方法。
93. Providing a context bin; accessing a memory to obtain a probability state using the context bin; generating a probability class based on the probability state; Enabling one bit generator, each of the plurality of bit generators is dedicated for at least one unique code, and only the at least one unique code is used for decoding. A decoding method for decoding input data, in which one bit generator decodes encoded data.
【請求項94】 入力データを符号化するための符号化
器と、 コンテキストビンを提供するためのコンテキストモデル
と、 該コンテキストビンに基づいて確率状態を提供するため
の、該コンテキストモデルに接続されたメモリと、 該確率状態に基づいて確率クラスを提供するための、該
メモリに接続された論理と、 該確率クラスに基づきイネーブル信号を発生するデコー
ダと、 該デコーダに接続され該入力データを受け取るよう接続
された複数のビットジェネレータとを有し、該複数のビ
ットジェネレータはそれぞれ少なくとも1つの固有の符
号のための専用であって、該デコーダは該確率クラスに
基づいて該複数のビットジェネレータ中の1つのビット
ジェネレータをイネーブルすることにより、該1つのビ
ットジェネレータが該入力データを符号化する、符号化
器。
94. An encoder for encoding input data, a context model for providing context bins, and a context model for providing stochastic states based on the context bins. A memory, logic connected to the memory for providing a probability class based on the probability state, a decoder generating an enable signal based on the probability class, and connected to the decoder to receive the input data A plurality of bit generators connected to each other, each of the plurality of bit generators being dedicated for at least one unique code, the decoder being one of the plurality of bit generators based on the probability class. Enabling one bit generator causes the one bit generator to Encoding the data, encoder.
【請求項95】 請求項94記載の符号化器において、
該複数のビットジェネレータ中の少なくとも1つのビッ
トジェネレータがR−符号を用いてデータを符号化し、
該複数のビットジェネレータ中の少なくとも1つのビッ
トジェネレータがR−符号以外の符号を用いてデータを
符号化することを特徴とする符号化器。
95. The encoder of claim 94,
At least one bit generator in the plurality of bit generators encodes data using an R-code,
An encoder, wherein at least one bit generator in the plurality of bit generators encodes data using a code other than an R-code.
【請求項96】 請求項94記載の符号化器において、
短ランレングス用ビットジェネレータがR−符号符号化
器として働くことを特徴とする符号化器。
96. The encoder of claim 94,
Encoder characterized in that the bit generator for short run length acts as an R-code encoder.
【請求項97】 請求項94記載の符号化器において、
長ランレングス用ビットジェネレータが短ランユニット
と長ランユニットとからなり、該短ランユニットが予め
決められた第1の長さの符号を扱い、該長ランユニット
が残りのビットを扱い、該残りのビットに出力すべきビ
ットがあれば、それを決定することを特徴とする符号化
器。
97. The encoder of claim 94,
A long run length bit generator comprises a short run unit and a long run unit, the short run unit handles a code of a predetermined first length, the long run unit handles the remaining bits, and the remaining bit An encoder characterized by determining, if any, of the bits of the bit to be output.
【請求項98】 入力データを符号化する方法であっ
て、 コンテキストビンを提供するステップと、 該コンテキストビンを用いてメモリをアクセスし確率状
態を得るステップと、 該確率クラスに基づいて確率クラスを生成するステップ
と、 複数のビットジェネレータ中の1つのビットジェネレー
タをイネーブルするステップとを有し、該複数のビット
ジェネレータはそれぞれ少なくとも1つの符号のための
専用とされており該少なくとも1つの符号だけが符号化
に用いられ、該1つのビットジェネレータが該入力デー
タデータを符号化する、符号化方法。
98. A method of encoding input data, the method comprising: providing a context bin; accessing a memory to obtain a probability state using the context bin; and generating a probability class based on the probability class. Generating, and enabling one bit generator in the plurality of bit generators, each of the plurality of bit generators being dedicated to at least one code and only the at least one code being An encoding method used for encoding, wherein the one bit generator encodes the input data data.
【請求項99】 複数の符号語からなる符号化データを
復号するための方法であって、 各ランカウンタに関連したカウンタにカウント値をロー
ドするステップを有し、ここにおいて、該カウント値は
符号化中に新たなランが始まった時に用いられる符号語
メモリのサイズに対応し、該カウント値は該各ランカウ
ンタのための新たな符号語がフェッチされた時にロード
され、かつ符号語がフェッチされるたびに該カウント値
をデクリメントするステップと、 該カウンタが0までデクリメントした時に該新たな符号
語に関連したビットジェネレータ状態をクリアするステ
ップと、を有する復号方法。
99. A method for decoding encoded data composed of a plurality of code words, comprising the step of loading a count value into a counter associated with each run counter, wherein the count value is a code value. Corresponding to the size of the codeword memory used when a new run begins during conversion, the count value is loaded when a new codeword is fetched for each run counter, and the codeword is fetched. Each time the counter value is decremented, and the bit generator state associated with the new codeword is cleared when the counter decrements to 0.
【請求項100】 請求項99記載の復号方法におい
て、各ランカウンタが1つのPEM状態に対応すること
を特徴とする復号方法。
100. The decoding method of claim 99, wherein each run counter corresponds to one PEM state.
【請求項101】 請求項99記載の復号方法におい
て、各ランカウンタが1つのコンテキストビンに対応す
ることを特徴とする復号方法。
101. A decoding method according to claim 99, wherein each run counter corresponds to one context bin.
【請求項102】 複数の符号語からなる符号化データ
を復号するための方法であって、 1つの符号語が要求される度に現在時刻表示を含むカウ
ンタ値をインクリメントするステップと、 最初の符号語が始まった時に該カウンタ値を記憶時刻表
示として格納するステップと、 該記憶時刻表示に符号化器メモリのサイズを足したもの
を現在時刻表示と比較するステップとを有し、 該現在時刻表示のほうが該記憶時刻表示に該符号化器メ
モリのサイズを足したものより大きい時に、該最初の符
号語のためのビットジェネレータ状態がクリアされ第2
の符号語が要求される、復号方法。
102. A method for decoding coded data consisting of a plurality of codewords, the method comprising: incrementing a counter value including a current time indication each time one codeword is requested; Storing the counter value as a stored time display at the beginning of the word, and comparing the stored time display plus the size of the encoder memory with the current time display. Is greater than the storage time representation plus the size of the encoder memory, the bit generator state for the first codeword is cleared to the second
Decoding method, which requires the codeword of.
【請求項103】 請求項102記載の復号方法におい
て、該記憶時刻表示が1つのタイムスタンプからなるこ
とを特徴とする復号方法。
103. The decoding method according to claim 102, wherein the stored time display comprises one time stamp.
【請求項104】 該記憶時刻表示を後続の符号語のた
めに再使用するステップをさらに有することを特徴とす
る請求項102記載の復号方法。
104. The decoding method of claim 102, further comprising the step of reusing the stored time representation for subsequent codewords.
【請求項105】 複数の符号語からなる符号化データ
を復号するための方法であって、 符号語に対応したインデックスを該符号語が要求された
時にキューに格納するステップと、 該キュー内の該インデックスのエントリーに無効のマー
クを付けるステップ;該符号語が完成したならば該符号
語を該エントリーに格納して該エントリーに有効のマー
クを付けるステップと、 該キューより復号すべきデータを出力させ、該キューエ
ントリーが有効であれば該符号語が復号のため出力され
るステップと、 該キューエントリーからデータを出力させ、その時に該
キューエントリーに無効のマークが付いているならば該
データが無効であることを復号器に指示するステップと
を有し、該無効のマークが付けられたキューからのデー
タを受け取ると該復号器によりビットジェネレータ状態
がクリアされる、復号方法。
105. A method for decoding encoded data composed of a plurality of codewords, comprising storing an index corresponding to the codeword in a queue when the codeword is requested; Marking the entry of the index as invalid; storing the codeword in the entry when the codeword is completed, marking the entry valid, and outputting the data to be decoded from the queue If the queue entry is valid, the codeword is output for decoding, and data is output from the queue entry, and if the queue entry is marked invalid at that time, the data is output. Instructing the decoder to be invalid, and receiving the data from the queue marked as invalid Bit generator state is cleared by issue unit, decoding method.
【請求項106】 符号化データを復号するための復号
装置であって、 コンテキストを提供するための、複数の集積回路からな
るコンテキストモデル機構と、 状態情報を格納し該コンテキストモデル機構から提供さ
れる各コンテキストに応じて状態情報を提供する、該コ
ンテキストモデル機構に接続されたメモリと、 該メモリより提供される該状態情報を用いて符号語を復
号するための、該メモリに接続された複数の復号器とを
有し、該複数の復号器は複数のR−符号を用いて符号語
を復号し、該複数のR−符号が最低確率シンボルが後に
続かない最高確率シンボルの非最大長ランを少なくとも
1つ含む、復号装置。
106. A decoding device for decoding encoded data, comprising: a context model mechanism comprising a plurality of integrated circuits for providing context; and a context model mechanism for storing state information. A memory connected to the context model mechanism for providing state information according to each context, and a plurality of memories connected to the memory for decoding a codeword using the state information provided by the memory. A decoder for decoding the codeword using the plurality of R-codes, the plurality of R-codes performing a non-maximum length run of the highest probability symbols not followed by the lowest probability symbols. A decoding device including at least one.
【請求項107】 請求項106記載の復号装置におい
て、非最大長ランのカウントが一義的に復号可能なプリ
フィックスを有する、ことを特徴とする復号装置。
107. The decoding device of claim 106, wherein the count of non-maximum length runs has a uniquely decodable prefix.
【請求項108】 複数の符号語を有する符号ストリー
ムを復号するための復号装置であって、 コンテキストを提供するための、複数の集積回路からな
るコンテキストモデル機構と、 状態情報を格納し該コンテキストモデル機構から提供さ
れる各コンテキストに応じて状態情報を提供する、該コ
ンテキストモデル機構に接続されたメモリと、 該メモリより提供される該状態情報を用いて符号語を復
号するための、該メモリに接続された複数の復号器とを
有する復号装置。
108. A decoding device for decoding a codestream having a plurality of codewords, comprising: a context model mechanism comprising a plurality of integrated circuits for providing context; and a context model for storing state information. A memory connected to the context model mechanism for providing state information according to each context provided by the mechanism, and a memory for decoding a codeword using the state information provided by the memory A decoding device having a plurality of connected decoders.
【請求項109】 請求項108記載の復号装置におい
て、該コンテキストモデル機構が、該複数の集積回路中
の1つの集積回路よりコンテキストを提供する少なくと
も1つのコンテキストモデルと、該複数の集積回路中の
別の集積回路よりコンテキストを提供する少なくとも1
つのコンテキストモデルとを含むことを特徴とする復号
装置。
109. The decoding device according to claim 108, wherein said context model mechanism provides at least one context model which provides a context from one integrated circuit in said plurality of integrated circuits, and in said plurality of integrated circuits. At least one that provides context from another integrated circuit
And a context model.
【請求項110】 請求項109記載の復号装置におい
て、該複数の集積回路中の該1つの集積回路側の該少な
くとも1つのコンテキストモデルが0次コンテキストモ
デルを含むことを特徴とする復号装置。
110. The decoding device according to claim 109, wherein the at least one context model on the one integrated circuit side in the plurality of integrated circuits includes a zero-order context model.
【請求項111】 請求項108記載の復号装置におい
て、該複数の集積回路より該メモリへ直接的にコンテキ
ストが与えられることを特徴とする復号装置。
111. The decoding device according to claim 108, wherein a context is directly applied to the memory from the plurality of integrated circuits.
【請求項112】 請求項108記載の復号装置におい
て、第1のコンテキストの第1の部分が1つの集積回路
によって提供され、該第1のコンテキストの第2の部分
が別の集積回路より提供されることを特徴とする復号装
置。
112. The decoding device of claim 108, wherein the first portion of the first context is provided by one integrated circuit and the second portion of the first context is provided by another integrated circuit. A decoding device characterized by the above.
【請求項113】 請求項17記載の符号化装置におい
て、該ビットジェネレータのビットジェネレータ状態が
更新され、該ビットジェネレータが更新後の状態が該メ
モリに書き込まれる前に再使用されることを特徴とする
符号化装置。
113. The encoding device of claim 17, wherein the bit generator state of the bit generator is updated and the updated bit generator is reused before being written to the memory. Encoding device.
【請求項114】 請求項113記載の符号化装置にお
いて、該ビットジェネレータが1つの読み出し−修正−
書き込みサイクルの修正ステージ中に再使用されること
を特徴とする符号化装置。
114. The encoding device of claim 113, wherein said bit generator makes one read-correction-
An encoding device, characterized in that it is reused during the correction stage of a write cycle.
【請求項115】 請求項17記載の符号化装置におい
て、該ビットジェネレータが更新された状態のメモリへ
の書き込み前に再使用される時に非最小長ランカウント
を生成することを特徴とする符号化装置。
115. The encoding device of claim 17, wherein the bit generator produces a non-minimum length run count when it is reused before writing to the updated memory. apparatus.
【請求項116】 請求項17記載の符号化装置におい
て、該ビットジェネレータが各ランレングスの後に少な
くとも符号化されない1ビットが続くように決められた
R−符号を用いてデータを符号化することにより、同一
ランレングスの2つの符号語が連続して復号されること
がないことを特徴とする符号化装置。
116. The encoding device of claim 17, wherein the bit generator encodes data using an R-code that is determined such that each run length is followed by at least one uncoded bit. , An encoding device characterized in that two codewords having the same run length are not continuously decoded.
【請求項117】 複数の符号語を有する符号ストリー
ムを復号するための復号装置であって、 コンテキストを提供するためのコンテキストモデル機構
と、 状態情報を格納し該コンテキストモデル機構から提供さ
れる各コンテキストに応じて状態情報を提供する、該コ
ンテキストモデル機構に接続されたメモリと、 該メモリより提供される該状態情報を用いて符号語を復
号するための、該メモリに接続された複数の復号器とを
有し、該複数の復号器中の少なくとも1つの復号器は遅
延許容型の復号器である復号装置。
117. A decoding device for decoding a code stream having a plurality of code words, comprising: a context model mechanism for providing contexts; and contexts for storing state information and provided by the context model mechanism. And a plurality of decoders connected to the memory for decoding a codeword using the state information provided by the memory. And at least one of the plurality of decoders is a delay tolerant decoder.
【請求項118】 請求項117記載の復号装置におい
て、該複数の復号器中の少なくとも1つの復号器が、あ
る遅延の後に利用可能な復号データに基づいて可変長シ
フトを行なうことを特徴とする復号装置。
118. The decoding device according to claim 117, wherein at least one of the plurality of decoders performs a variable length shift based on decoded data available after a certain delay. Decoding device.
【請求項119】 請求項117記載の復号装置におい
て、該複数の復号器がそれぞれ入力として可変長データ
を受け取ることを特徴とする復号装置。
119. The decoding device according to claim 117, wherein each of the plurality of decoders receives variable length data as an input.
【請求項120】 請求項119記載の復号装置におい
て、該複数の復号器が可変長の入力データを並列的に復
号することを特徴とする復号装置。
120. The decoding device according to claim 119, wherein the plurality of decoders decode variable-length input data in parallel.
【請求項121】 請求項117記載の復号装置におい
て、該複数の復号器の出力が固定長インターリーブド語
に分割されることを特徴とする復号装置。
121. The decoding device according to claim 117, wherein outputs of the plurality of decoders are divided into fixed-length interleaved words.
JP25379295A 1994-09-30 1995-09-29 Encoding method, encoding device, encoder, coding device, decoding method, decoding device, decoder, entropy decoder, and initialization method Expired - Fee Related JP3272580B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31611694A 1994-09-30 1994-09-30
US08/316116 1994-09-30

Publications (2)

Publication Number Publication Date
JPH08116266A true JPH08116266A (en) 1996-05-07
JP3272580B2 JP3272580B2 (en) 2002-04-08

Family

ID=23227538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25379295A Expired - Fee Related JP3272580B2 (en) 1994-09-30 1995-09-29 Encoding method, encoding device, encoder, coding device, decoding method, decoding device, decoder, entropy decoder, and initialization method

Country Status (10)

Country Link
JP (1) JP3272580B2 (en)
KR (1) KR100240372B1 (en)
CN (1) CN1136659C (en)
CA (1) CA2156889C (en)
DE (1) DE19536401B4 (en)
FR (1) FR2725330B1 (en)
GB (1) GB2293735B (en)
NL (1) NL1001317C2 (en)
RU (1) RU2117388C1 (en)
TW (1) TW410311B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2003085942A1 (en) * 2002-04-08 2005-08-18 株式会社エイティング Network game method, network game terminal and server
JP2012147248A (en) * 2011-01-12 2012-08-02 Mitsubishi Electric Corp Entropy encoding apparatus, entropy decoding apparatus, entropy encoding method and entropy decoding method
JP2013528025A (en) * 2010-04-13 2013-07-04 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Entropy coding
JP2014502827A (en) * 2011-01-14 2014-02-03 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Entropy encoding and decoding scheme
JP2014534677A (en) * 2011-10-06 2014-12-18 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Entropy coding

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2311704B (en) * 1995-08-31 1998-04-15 Ricoh Kk Method and apparatus for compressing arbitrary data
US5654703A (en) * 1996-06-17 1997-08-05 Hewlett-Packard Company Parallel data compression and decompression
US5963716A (en) * 1996-12-02 1999-10-05 Hewlett-Packard Company Bi-directional data stream decompression
US6222468B1 (en) * 1998-06-04 2001-04-24 Ricoh Company, Ltd. Adaptive coding with adaptive speed
BRPI0206629B1 (en) 2001-11-22 2017-09-26 Godo Kaisha Ip Bridge 1 METHOD FOR DECODING A CODED BLOCK IMAGE
US7555540B2 (en) * 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
US7395490B2 (en) * 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7346832B2 (en) * 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7788106B2 (en) 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
US7991610B2 (en) 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
KR100818268B1 (en) * 2005-04-14 2008-04-02 삼성전자주식회사 Apparatus and method for audio encoding/decoding with scalability
US7716551B2 (en) * 2005-12-07 2010-05-11 Microsoft Corporation Feedback and frame synchronization between media encoders and decoders
KR100717587B1 (en) * 2006-07-05 2007-05-15 주식회사 대우일렉트로닉스 Method and apparatus for detecting optical information and optical information processing apparatus
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
KR101010938B1 (en) 2006-11-14 2011-01-25 니폰덴신뎅와 가부시키가이샤 Image signal coding method and decoding method, information source coding method and decoding method, devices for them, and memory medium with recorded program
CN101247496B (en) * 2007-02-13 2012-10-10 华晶科技股份有限公司 Method for dynamically regulating image frame
KR100842042B1 (en) 2007-07-16 2008-06-30 충남대학교산학협력단 A method for code-blocks encryption which enables dynamic decryption of encrypted executable code
PL2297856T3 (en) * 2008-07-11 2023-05-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method for encoding a symbol, method for decoding a symbol, method for transmitting a symbol from a transmitter to a receiver, encoder, decoder and system for transmitting a symbol from a transmitter to a receiver
CN104159111B (en) * 2009-05-29 2018-11-06 三菱电机株式会社 Picture decoding apparatus and picture decoding method
CN102055483B (en) * 2009-10-29 2013-05-08 鸿富锦精密工业(深圳)有限公司 Entropy decoding device
KR101631944B1 (en) 2009-10-30 2016-06-20 삼성전자주식회사 Method and apparatus for entropy encoding and entropy decoding for accelarting video decoding
EP2362657B1 (en) * 2010-02-18 2013-04-24 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US8769686B2 (en) 2010-02-26 2014-07-01 Futurewei Technologies, Inc. System and method for securing wireless transmissions
US8761240B2 (en) * 2010-07-13 2014-06-24 Blackberry Limited Methods and devices for data compression using context-based coding order
KR101676477B1 (en) * 2010-07-21 2016-11-15 삼성전자주식회사 Method and apparatus lossless encoding and decoding based on context
US8650456B2 (en) * 2010-09-08 2014-02-11 Marvell World Trade Ltd. Decoder based data recovery
US8913666B2 (en) * 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
CN102457284B (en) * 2010-10-29 2014-09-03 池勇潮 Digital data compression/decompression method and system
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
JP2013214832A (en) * 2012-03-30 2013-10-17 Fujitsu Ltd Compression and decompression system, compression device, decompression device, compression and decompression method, and compression program and decompression program
EP2901643B1 (en) * 2012-09-28 2017-03-22 Telefonaktiebolaget LM Ericsson (publ) An apparatus for, a method of, and a network server for detecting data patterns in a data stream
US9990202B2 (en) * 2013-06-28 2018-06-05 Intel Corporation Packed data element predication processors, methods, systems, and instructions
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
CN105828083A (en) * 2015-01-06 2016-08-03 中兴通讯股份有限公司 Method and device for decoding data streams
GB2539239B (en) * 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
CN109075911B (en) * 2016-05-10 2020-12-08 华为技术有限公司 Data sending method, data receiving method, sending equipment and receiving equipment
WO2017197358A1 (en) * 2016-05-13 2017-11-16 Intel Corporation Polar code construction and encoding
JP7027706B2 (en) * 2017-06-15 2022-03-02 ソニーグループ株式会社 Transmitter, receiver, transmission method, reception method and recording medium
CN107623524B (en) * 2017-07-01 2020-07-31 中山大学 Hardware-based Huffman coding method and system
CN111384963B (en) * 2018-12-28 2022-07-12 上海寒武纪信息科技有限公司 Data compression/decompression device and data decompression method
US11139827B2 (en) 2019-03-15 2021-10-05 Samsung Electronics Co., Ltd. Conditional transcoding for encoded data
TWI825305B (en) * 2019-04-16 2023-12-11 南韓商三星電子股份有限公司 Transcoder and method and article for transcoding
CN110635807B (en) * 2019-08-05 2022-10-21 湖南遥昇通信技术有限公司 Data coding method and decoding method
US11146433B2 (en) * 2020-03-11 2021-10-12 Nxp B.V. High data rate transmission using minimum energy coding with ultra wide band modulation
CN112383313B (en) * 2020-10-10 2023-08-04 中科驭数(北京)科技有限公司 Parallel data decoding device and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3394352A (en) * 1965-07-22 1968-07-23 Electronic Image Systems Corp Method of and apparatus for code communication
CA1291820C (en) * 1986-09-15 1991-11-05 William B. Pennebaker Probability estimation based on decision history
CA1291821C (en) * 1986-09-15 1991-11-05 Glen G. Langdon, Jr. Arithmetic coding encoder and decoder system
US5097261A (en) * 1989-11-22 1992-03-17 International Business Machines Corporation Data compression for recording on a record medium
EP0442548B1 (en) * 1990-01-30 1995-08-02 Laboratoires D'electronique Philips S.A.S. Variable length coding and decoding devices for digital data
US5045852A (en) * 1990-03-30 1991-09-03 International Business Machines Corporation Dynamic model selection during data compression
KR950000286B1 (en) * 1992-05-28 1995-01-12 삼성전자 주식회사 Coding device and method for fax
US5475388A (en) * 1992-08-17 1995-12-12 Ricoh Corporation Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
GB2272612B (en) * 1992-11-06 1996-05-01 Roke Manor Research Improvements in or relating to ATM signal processors
KR0134166B1 (en) * 1992-11-24 1998-04-22 모리시타 요이찌 Video signal recording apparatus and method thereof
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5414423A (en) * 1993-04-29 1995-05-09 International Business Machines Corporation Stabilization of probability estimates by conditioning on prior decisions of a given context

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4484526B2 (en) * 2002-04-08 2010-06-16 株式会社エイティング Network game method, network game terminal and server
JPWO2003085942A1 (en) * 2002-04-08 2005-08-18 株式会社エイティング Network game method, network game terminal and server
US8907823B2 (en) 2010-04-13 2014-12-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding
JP2013528025A (en) * 2010-04-13 2013-07-04 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Entropy coding
JP2012147248A (en) * 2011-01-12 2012-08-02 Mitsubishi Electric Corp Entropy encoding apparatus, entropy decoding apparatus, entropy encoding method and entropy decoding method
US9698818B2 (en) 2011-01-14 2017-07-04 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10224953B2 (en) 2011-01-14 2019-03-05 Ge Video Compression, Llc Entropy encoding and decoding scheme
US9083374B2 (en) 2011-01-14 2015-07-14 Ge Video Compression, Llc Entropy encoding and decoding scheme using VLC coding and pipe or entropy coding for high compression efficiency
US9473169B2 (en) 2011-01-14 2016-10-18 Ge Video Compression Llc Entropy encoding and decoding scheme
US9647683B2 (en) 2011-01-14 2017-05-09 Ge Video Compression, Llc Entropy encoding and decoding scheme
JP2014502827A (en) * 2011-01-14 2014-02-03 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Entropy encoding and decoding scheme
US9806738B2 (en) 2011-01-14 2017-10-31 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10090856B2 (en) 2011-01-14 2018-10-02 Ge Video Compression, Llc Entropy encoding and decoding scheme
US20190013822A1 (en) 2011-01-14 2019-01-10 Ge Video Compression, Llc Entropy encoding and decoding scheme
US11405050B2 (en) 2011-01-14 2022-08-02 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10404272B2 (en) 2011-01-14 2019-09-03 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10419017B2 (en) 2011-01-14 2019-09-17 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10581454B2 (en) 2011-01-14 2020-03-03 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10644719B2 (en) 2011-01-14 2020-05-05 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10826524B2 (en) 2011-01-14 2020-11-03 Ge Video Compression, Llc Entropy encoding and decoding scheme
US10855309B2 (en) 2011-01-14 2020-12-01 Ge Video Compression, Llc Entropy encoding and decoding scheme
JP2014534677A (en) * 2011-10-06 2014-12-18 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Entropy coding

Also Published As

Publication number Publication date
GB9518375D0 (en) 1995-11-08
FR2725330A1 (en) 1996-04-05
CN1136659C (en) 2004-01-28
CA2156889C (en) 1999-11-02
RU2117388C1 (en) 1998-08-10
NL1001317C2 (en) 1998-01-21
TW410311B (en) 2000-11-01
FR2725330B1 (en) 1999-01-22
DE19536401B4 (en) 2006-07-20
KR100240372B1 (en) 2000-01-15
KR960012741A (en) 1996-04-20
NL1001317A1 (en) 1996-04-01
GB2293735B (en) 1997-10-22
CN1133512A (en) 1996-10-16
DE19536401A1 (en) 1996-04-04
JP3272580B2 (en) 2002-04-08
CA2156889A1 (en) 1996-03-31
GB2293735A (en) 1996-04-03

Similar Documents

Publication Publication Date Title
JP3272580B2 (en) Encoding method, encoding device, encoder, coding device, decoding method, decoding device, decoder, entropy decoder, and initialization method
US5717394A (en) Method and apparatus for encoding and decoding data
US5583500A (en) Method and apparatus for parallel encoding and decoding of data
US11705924B2 (en) Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US6819271B2 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US5381145A (en) Method and apparatus for parallel decoding and encoding of data
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6842124B2 (en) Variable length decoder
US6043765A (en) Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders
GB2306279A (en) Apparatus for decoding data
JP2005510981A (en) Multi-channel video transcoding system and method
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
US5663726A (en) High speed variable-length decoder arrangement with reduced memory requirements for tag stream buffering
Klimesh et al. Hardware implementation of a lossless image compression algorithm using a field programmable gate array
JP3230933B2 (en) Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder
US11431978B2 (en) Video decoding method and video decoding device for improving decoding efficiency
Boliek et al. Very high speed entropy coding
CA2273144C (en) Apparatus and system for decoding data
CN101873499B (en) Method and apparatus for improved multimedia decoder
Baroud et al. Architecture for parallel marker-free variable length streams decoding
Lo et al. Design of a High-Throughput CABAC Encoder
JP3293382B2 (en) Data compression device and data decompression device
Chan Architecture of a high speed JBIG processing engine
KR20040002134A (en) Variable length decoder

Legal Events

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

Free format text: PAYMENT UNTIL: 20080125

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100125

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20140125

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees