DE19758853B4 - Entropy encoder for compression and expansion of data - includes series of encoding tables which are coupled to receive state information and to encode bits of input data in response to state information - Google Patents

Entropy encoder for compression and expansion of data - includes series of encoding tables which are coupled to receive state information and to encode bits of input data in response to state information Download PDF

Info

Publication number
DE19758853B4
DE19758853B4 DE19758853A DE19758853A DE19758853B4 DE 19758853 B4 DE19758853 B4 DE 19758853B4 DE 19758853 A DE19758853 A DE 19758853A DE 19758853 A DE19758853 A DE 19758853A DE 19758853 B4 DE19758853 B4 DE 19758853B4
Authority
DE
Germany
Prior art keywords
bits
state
entropy coding
probability
mps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19758853A
Other languages
German (de)
Inventor
Michael J. Menlo Park Gormish
Edward L. Menlo Park Schwartz
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
Priority claimed from US08/719,819 external-priority patent/US5912636A/en
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to DE19742417A priority Critical patent/DE19742417B4/en
Application granted granted Critical
Publication of DE19758853B4 publication Critical patent/DE19758853B4/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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

Abstract

The apparatus for encoding input data includes a context model which is configured to generate a series of binary decisions in response to contexts. A probability estimation model is coupled to the context model to generate probability estimates for the series of binary decisions. A series of entropy encoding tables are coupled to receive state information from a channel state storage. The entropy encoding tables are configured to encode bits of the input data in response to the state information. One of the entropy encoding tables is configured to encode n bits at a time where n is greater than or equal to two.

Description

Die vorliegende Erfindung bezieht sich auf den Bereich der Datenkompressions- und -dekompressionssysteme; die vorliegende Erfindung bezieht sich insbesondere auf einen Dekoder gemäß Anspruch 1, ein System mit einem Kodierer und einem Dekoder nach Anspruch 8 sowie ein Verfahren zum Dekodieren gemäß Anspruch 9.The The present invention relates to the field of data compression and decompression systems; The present invention relates in particular to a decoder according to claim 1, a system with an encoder and a decoder according to claim 8 and a method for decoding according to claim 9th

Die Datenkompression ist ein äußerst nützliches Werkzeug zum Speichern und Übertragen großer Datenmengen. Zum Beispiel wird die zum Übertragen eines Bildes erforderliche Zeit, wie etwa eine Faksimileübertragung eines Dokuments, äußerst stark verringert, wenn eine Kompression verwendet wird, um die Anzahl von Bits zu verringern, die erforderlich ist, um das Bild zu rekonstruieren.The Data compression is extremely useful Tool for saving and transferring greater Amounts of data. For example, the required to transfer an image Time, such as a facsimile transmission a document, extremely strong decreases when compression is used to reduce the number of Reduce bits required to reconstruct the image.

Bei einigen Kompressionssystemen wird ein Eingabefeld oder Datensatz in eine Abfolge von Entscheidungen unter der Vorgabe eines Entscheidungsmodells übersetzt.at Some compression systems become an input field or record translated into a sequence of decisions under the guidance of a decision model.

Jede Entscheidung hat eine damit verknüpfte Wahrscheinlichkeit und basiert auf dieser Wahrscheinlichkeit, wobei ein Ausgabekode erzeugt wird und dem komprimierten Feld angehängt wird. Um dieses kodierte System zu realisieren, haben Kompressionssysteme drei Teile: ein Entscheidungsmodell, ein Wahrscheinlichkeitsabschätzungsmodell und einen Bitstromgenerator. Das Entscheidungsmodell empfängt die Eingangsdaten und übersetzt die Daten in einen Entscheidungssatz, den das Kompressionssystem verwendet, um die Daten zu kodieren. Auf das Entscheidungsmodell wird üblicherweise als einem Kontektmodell Bezug genommen. Das Wahrscheinlichkeitsabschätzungsverfahren ist eine Prozedur zum Entwickeln der Wahrscheinlichkeitsabschätzung für die Wahrscheinlichkeit jeder Entscheidung. Der Bitstromgenerator führt das letztendliche Bitstromkodieren durch, um den Ausgangskode zu erzeugen, der der komprimierte Datensatz oder das komprimierte Feld ist. Die Kompression kann wirksam in einem oder beiden der Entscheidungsmodelle und dem Bitgenerator auftreten.each Decision has an associated probability and based on this probability, generating an output code is appended to the compressed field. To this coded system compression systems have three parts: a decision model, a probability estimation model and a bitstream generator. The decision model receives the Input data and translated the data into a decision set, the compression system used to encode the data. On the decision model becomes common referred to as a Kontektmodell. The probability estimation method is a procedure for developing the likelihood probability estimate every decision. The bitstream generator performs the final bitstream coding through to produce the output code of the compressed data set or the compressed field. The compression can be effective in one or both of the decision models and the bit generator occur.

Eine Kompressionstechnik, die weithin eingesetzt wird, ist da arithmetische Kodieren. Arithmetisches Kodieren bildet einen Datenstring (d.h. eine "Nachricht") auf einen Kodestring in einer derartigen Weise ab, daß die Originalnachricht aus dem Kodestring bzw. der Kodefolge zurückgewonnen werden kann. Für eine Erörterung des arithmetische Kodierens siehe Glenn G. Langdon, Jr., "An Introduction to Arithmetic Coding", IBM Journal of Research and Development, Band 28, Nr. 2 (März 1984). Ein wünschenswertes Merkmal von einigen älteren arithmetischen Kodiersystemen ist, daß die Kompression in einer einzigen Durchlaufabfolge über die Daten ohne einen festen Satz von Statistiken durchgeführt wird, um die Daten zu kodieren. Auf diese Weise ist das arithmetische Kodieren angepaßt.A Compression technique, which is widely used, is because arithmetic Encode. Arithmetic coding forms a data string (i.e. a "message") on a code string in such a way that the original message from the Kodestring or the code sequence can be recovered. For a discussion of arithmetic coding, see Glenn G. Langdon, Jr., "An Introduction to Arithmetic Coding ", IBM Journal of Research and Development, Vol. 28, No. 2 (March 1984). A desirable one Characteristic of some older ones arithmetic coding systems is that the compression in one single pass sequence over the Data is performed without a fixed set of statistics, to encode the data. This is the arithmetic Coded adapted.

Ein binärer Arithmetikkodierer ist eine Art von arithmetischem Kodiersystem. In einem binären arithmetischen Kodiersystem kann die Auswahl eines Symbols aus einer Liste bzw. einem Satz von Symbolen als eine Abfolge von binären Entscheidungen kodiert werden. Ein Beispiel eines binären Arithmetikkodierers ist der Q-Kodierer, der von IBM von Armonk, New York, entwickelt worden ist.One binary Arithmetic coder is a kind of arithmetic coding system. In a binary Arithmetic coding system can be the selection of a symbol from a List or a set of symbols encoded as a sequence of binary decisions become. An example of a binary Arithmetic Encoder is the Q Encoder developed by IBM by Armonk, New York, has been developed.

Die Maschinenendzustands(FSM)-Kodierer sind im Stand der Technik verwendet worden, um ein wirksames Entropiekodieren für einzelne Bits mit einer verknüpften Wahrscheinlichkeitsabschätzung bereitzustellen. Einige dieser FSM-Kodierer sind als Nachschlagetabellen bzw. Tabellen (LUTs) realisiert worden. Siehe hierzu beispielsweise die US-Patente Nrn. 5,272,478 A und 5,363,099 A Als ein Beispiel einer Endzustandsmaschine, die eine Kanalmodulation und eine Fehlerkorrektur mit Entropiekodieren durchführt, sei auf das US-Patent Nr. 5,475,388 A verwiesen.The Final machine state (FSM) encoders are used in the art to provide efficient entropy coding for individual bits with associated probability estimation. Some of these FSM encoders are lookup tables (LUTs) has been realized. See, for example, the US patents Nos. 5,272,478 A and 5,363,099 A As an example of a final state machine, which encode channel modulation and error correction with entropy performs, Reference is made to U.S. Patent No. 5,475,388.

Im allgemeinen sind Endzustandsmaschinen, die LUTs verwenden, für Mehr-Bitsymbole nicht schnell. Falls z.B. eine Zahl zwischen einschließlich 0 und 7 zu kodieren ist, muß die Zahl in ein Minimum von drei Bits getrennt werden, wodurch drei separate Tabellennachschläge erforderlich werden. Der aufsummierte Aufwand von drei getrennten Nachschlägen verlangsamt den Kodierungsprozeß. Was erforderlich ist, ist, daß mehrere Tabellennachschläge vermieden werden, während Mehr-Bitsymbole kodiert werden.in the In general, final state machines that use LUTs are for multi-bit symbols not fast. If e.g. a number between 0 inclusive and 7 is to be coded, the Number can be separated into a minimum of three bits, creating three separate table lookups be required. The summed effort of three separate lookups slows down the coding process. What is needed is that avoiding multiple table lookups be while Multi-bit symbols are encoded.

Das Kodieren nach Huffman stellt ein m-faches Kodieren zur Verfügung, bei dem ein Mehrfachsymbol kodiert und/oder dekodiert wird. Das Huffman-Kodieren erzeugt Kodes mit variabler Länge, die integrale (nicht bruchstückhafte) Bitzahlen sind. Mit anderen Worten, es gibt keine Zeit, zu der der Kodierer Informationen enthält, die einige der Bits bewirkt, die gerade auszugeben sind. Symbole mit höheren Wahrscheinlichkeiten erhalten kürzere Kodes.Huffman coding provides m-fold coding in which a multiple symbol is encoded and / or decoded. Huffman coding produces variable length codes that are integral (not fragmentary) bit numbers are. In other words, there is no time at which the encoder contains information that causes some of the bits that are currently being output. Symbols with higher probabilities receive shorter codes.

Das Datenkodieren und -dekodieren sind äußerst zeitintensive Betätigungen. In vielen Systemen wird die Wahrscheinlichkeitsabschätzung unter Verwendung einer Tabelle durchgeführt. Wenn sowohl die Wahrscheinlichkeitsabschätzung als auch das Entropiekodieren als LUTs realisiert werden, werden separate Nachschläge in Tabellen ohne Parallelität erforderlich. Es ist wünschenswert, getrennte Nachschläge in Tabellen, falls möglich, zu vermeiden, um die Zeitmenge zu verringern, um die Wahrscheinlichkeitsabschätzung und das Entropiekodieren nach dem Stand der Technik durchzuführen.The Data encoding and decoding are extremely time consuming operations. In many systems, the probability estimate is under Using a table performed. If both the probability estimate as also the entropy coding are realized as LUTs, become separate lookups in tables without parallelism required. It is desirable separate lookups in tables, if possible, to reduce the amount of time to the probability estimate and To perform the Entropiekodieren according to the prior art.

Im Stand der Technik ist das Entropiekodieren üblicherweise schnell durchgeführt worden, jedoch ohne die bestmögliche Kompression, über beispielsweise das Kodieren nach Huffman, oder ist vollkommen adaptiv bzw. angepaßt gewesen, z.B. noch langsamer über arithmetisches Kodieren. Es ist wünschenswert, derartige Operationen bzw. Betätigungen zu beschleunigen, während sie angepaßt bzw. adaptiv bleiben.in the In the prior art, entropy coding has usually been done quickly, but without the best possible Compression, over for example, coding according to Huffman, or is completely adaptive or adapted been, e.g. even slower over arithmetic coding. It is desirable to have such operations or actuations to accelerate while they adapted or remain adaptive.

Die vorliegende Erfindung stellt eine erhöhte Geschwindigkeit für das Entropiekodieren unter Verwendung eines Endzustandsmaschinenkodierers bzw. eines Maschinenkodierers mit finitem Zustand zur Verfügung, der dazu in der Lage ist, Eingänge mit n Bits unterzubringen. Die vorliegende Erfindung stellt ferner das Kodieren von m-fachen Symbolen, wie das Kodieren nach Huffman, bereit, mit der Ausnahme einer nicht-integralen Anzahl von Bits (bruchstückhaften bzw. fraktionierten). Die vorliegende Erfindung stellt auch eher einen einzigen Tabellennachschlag sowohl für die Wahrscheinlichkeitsabschätzung als auch die Biterzeugung als zwei getrennte Betätigungen bzw. Operationen zur Verfügung.The The present invention provides increased speed for entropy coding using a final state machine encoder Machine encoder with finite state available, capable of doing so is, inputs to accommodate with n bits. The present invention further provides encoding m-fold symbols, such as Huffman coding, ready, with the exception of a non-integral number of bits (Sketchy or fractionated). The present invention is also more likely a single table lookup for both the probability estimate and also the bit generation as two separate operations for the Available.

Die vorliegende Erfindung löst die eingangs genannten Aufgaben bzw. Nachteile im Stand der Technik durch die Gegenstände der unabhängigen Ansprüche 1, 8 und 9. Vorteilhafte Ausführungsformen dieser unabhängigen Ansprüche werden durch die in den Unteransprüchen aufgeführten Merkmale vorgeschlagen.The present invention solves the tasks and disadvantages mentioned in the prior art by things the independent one claims 1, 8 and 9. Advantageous embodiments this independent claims are proposed by the features listed in the subclaims.

Ein m-facher Endzustandsmaschinenkodierer bzw. Maschinenkodierer mit finitem Zustand wird beschrieben. Bei einer Ausführungsform weist der Kodierer nach der vorliegenden Erfindung eine Kanalzustands-Speichereinrichtung und eine Entropiekodierungs-Nachschlagtabelle auf, die Zustandsinformationen von der Kanalzustands- Speichereinrichtung empfängt. Die Entropiekodierungstabelle kodiert n Bits von Eingangsdaten zu einer Zeit bzw. zur gleichen Zeit in Reaktion auf die Zustandsinformation von der Kanalzustands-Speichereinrichtung, wo bei n ≥ 2 ist.One m-fold final state machine encoder or machine encoder with Finite state is described. In one embodiment, the encoder according to the present invention, a channel state memory device and an entropy coding lookup table on, the state information from the channel state storage device receives. The entropy coding table encodes n bits of input data a time at the same time in response to the state information from the channel state storage device, where n≥2.

Die vorliegende Erfindung wird vollständiger aus der im einzelnen dargelegten Beschreibung zu verstehen sein, die unten angeführt ist, und aus den begleitenden Darstellungen von verschiedenen Ausführungsformen der Erfindung, die jedoch nicht dazu benutzt werden sollten, um die Erfindung auf die spezifischen Ausführungsformen einzuschränken, sondern nur zur Erläuterung und zum Verständnis sind.The The present invention will be more fully understood from the detailed the description given below, and from the accompanying drawings of various embodiments of the invention, which, however, should not be used to to limit the invention to the specific embodiments, but for explanation only and for understanding are.

1A stellt einen Endzustands-Maschinenabschätzer/-Kodierer bzw. einen finiten Zustandsmaschinenabschätzer/-Kodierer dar. 1A represents a final state machine estimator / encoder and a finite state machine estimator / encoder, respectively.

1B stellt eine Ausführungsform des FSM-Kodierers dar. 1B represents an embodiment of the FSM encoder.

1C stellt einen Maschinenabschätzer/-Dekodierer mit finitem Zustand bzw. Endzustand dar. 1C represents a finite state machine state machine / decoder.

2 stellt eine Ausführungsform eines FSM-Kodierers für Zwei Bit zu einer Zeit dar, der dazu in der Lage ist, beliebige Wahrscheinlichkeiten zu verarbeiten bzw. handzuhaben. 2 FIG. 10 illustrates one embodiment of a two-bit FSM encoder at a time capable of handling arbitrary probabilities.

3 stellt einen FSM-Kodierer für Vier-Bit zu einer Zeit bzw. zur gleichen Zeit dar, der für Bits der gleichen Wahrscheinlichkeitsklasse konstruiert ist. 3 Figure 4 illustrates a four-bit FSM encoder at a time constructed for bits of the same probability class.

4 stellt eine Ausführungsform eines FSM-Kodierers für Mehrfachsymbole (M-ary bzw. M-fach) dar. 4 FIG. 12 illustrates one embodiment of a multi-symbol FSM encoder (M-ary or M-fold).

5 stellt einen Kodierer dar, der dazu in der Lage ist, die gleiche Operation wie nach 1A, 3 und 4 durchzuführen, indem zwei zusätzliche Bits als einem Tabellenselektor verwendet werden. 5 represents an encoder that is capable of doing the same operation as after 1A . 3 and 4 by using two additional bits as a table selector.

6 stellt eine Ausführungsform einer Abschätzung mit einer Tabelle und eines Kodiersystems dar. 6 FIG. 12 illustrates one embodiment of a table and coding system estimation. FIG.

7 stellt eine Ausführungsform eines Maschinenabschätzers/-Kodierers mit Endzustand bzw. mit finitem Zustand dar, indem der Wahrscheinlichkeitsabschätzungszustand das wahrscheinlichste Symbol (MPS) enthält. 7 FIG. 10 illustrates one embodiment of a finite state machine estimator / encoder in which the likelihood estimation state includes the most probable symbol (MPS).

8 zeigt einen Kodierungsbaum, der durch den Huffman-Algorithmus für einen bestimmten Satz von Symbolen erzeugt worden ist. 8th Figure 13 shows a coding tree generated by the Huffman algorithm for a particular set of symbols.

Ein Verfahren und eine Vorrichtung zum Komprimieren und Dekomprimieren wird beschrieben. In der nachfolgenden, im einzelnen dargelegten Beschreibung der vorliegenden Erfindung werden zahlreiche spezifische Einzelheiten in den Vordergrund gerückt, wie etwa Arten von Kodierern, Anzahlen von Bits, Signalnamen usw., um ein sorgfältiges Verständnis der vorliegenden Erfindung zu ermöglichen. Jedoch wird es dem Fachmann im Stand der Technik vor Augen geführt, daß die vorliegende Erfindung ohne diese spezifischen Einzelheiten praktiziert werden kann. In anderen Beispielen sind wohlbekannte Strukturen und Einrichtungen in der Gestalt von Blockdiagrammen eher als im einzelnen gezeigt, um es zu vermeiden, daß die vorliegende Erfindung unklar gemacht wird.One Method and device for compressing and decompressing is described. In the following, detailed Description of the present invention will be numerous specific Details have come to the fore, such as types of encoders, Numbers of bits, signal names, etc., to get a thorough understanding of the to enable the present invention. However, it will be apparent to those skilled in the art that the present invention Invention be practiced without these specific details can. In other instances, well-known structures and devices are known in the art the shape of block diagrams rather than shown in detail to avoid that present invention is made unclear.

Einige Teile der im einzelnen dargelegten Beschreibungen, die folgen, werden in Algorithmen und symbolischen Darstellungen von Operationen, die auf Daten innerhalb eines Computerspeichers angewendet werden, dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die durch die Datenverarbeitungsfachleute im Stand der Technik verwendet werden, um das wesentliche bzw. die Substanz ihrer Arbeit anderen Fachleuten im Stand der Technik am wirksamsten zu übermitteln. Ein Algorithmus wird hier und allgemein als eine selbstkonsistente Abfolge von Schritten aufgefaßt, die zu einem gewünschten Ergebnis führen. Die Schritte sind von der Art, die physikalische Manipulationen von physikalischen Größen bzw. Mengen erfordern. Obwohl dies üblicherweise nicht erforderlich ist, haben die Größen die Gestalt von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anders manipuliert bzw. verändert werden können. Es hat sich vor einiger Zeit als angenehm erwiesen, prinzipiell aus Gründen der allgemeinen Verwendung, auf diese Signale als Bits, Werte, Elemente, Symbole, Charakter, Ausdrücke, Zahlen bzw. Ziffern oder dergleichen Bezug zu nehmen.Some Portions of the detailed descriptions that follow will become in algorithms and symbolic representations of operations that to be applied to data within a computer memory. These algorithmic descriptions and representations are the Means provided by the data processing experts in the art be used to the essential or the substance of their work to convey most effectively to others skilled in the art. An algorithm is used here and generally as a self-consistent Sequence of steps taken the one to a desired one Result. The steps are of the nature, the physical manipulations of physical quantities or quantities require. Although this is customary is not necessary, the sizes have the shape of electrical or magnetic signals that are stored, transferred, combined, compared and otherwise manipulated or changed can be. It proved to be pleasant some time ago, in principle for reasons general use, to these signals as bits, values, elements, Symbols, character, expressions, To refer numbers or numbers or the like.

Es sollte jedoch zur Kenntnis genommen werden, daß all diese und ähnliche Ausdrücke in Verbindung mit passenden physikalischen Größen zu bringen sind und lediglich bequeme Bezeichnungen sind, die diesen Größen zugeordnet sind. Falls es nicht gesondert anders zum Ausdruck gebracht wird, wie es aus der nachfolgenden Erörterung hervorgeht, wird es bevorzugt, daß sich über die vorliegende Erfindung hinweg Erörterungen, die Ausdrücke, wie etwa "Verarbeiten" oder "Berechnen" oder "Rechnen" oder "Bestimmen" oder "Anzeigen" oder dergleichen, verwenden, auf Tätigkeiten und Verfahren eines Computersystems oder einer ähnlichen elektronischen Recheneinrichtung beziehen, die Daten, die als physikalische (elektronische) Größen innerhalb eines Registers oder Speichers des Computersystems oder anderen derartigen Informationsspeicher-, -übertragungs- oder -wiedergabeeinrichtungen darstellt, manipuliert oder überträgt. Derartige Computersysteme setzen üblicherweise einen oder mehrere Prozessoren ein, um Daten zu verarbeiten, die an einen oder mehrere Speicher über einen oder mehrere Busse bzw. Datenbusse angekoppelt sind.It However, it should be noted that all these and similar expressions in conjunction with matching physical sizes are and only are convenient labels associated with these quantities. If it is not expressed differently, as it is made the following discussion It will be appreciated that it is preferable to be aware of the present invention away from discussions, the expressions, such as "processing" or "calculating" or "calculating" or "determining" or "displaying" or the like, use on activities and a method of a computer system or similar electronic computing device refer to the data as physical (electronic) sizes within a register or memory of the computer system or other such information storage, transmission or reproduction devices represents, manipulates or transmits. such Computer systems usually set one or more processors to process data that to one or more memories via one or more buses or data buses are coupled.

Die vorliegende Erfindung bezieht sich auch auf eine Vorrichtung, um die hier erläuterten Operationen bzw. Betätigungen durchzuführen. Diese Vorrichtung kann speziell für die erforderlichen Zwecke konstruiert sein oder sie kann einen Computer für generelle Zwecke aufweisen, der wahlweise aktiviert oder durch ein Computerprogramm, das im Computer gespeichert ist, neu konfiguriert wird. Ein derartiges Computerprogramm kann in einem mit dem Computer lesbaren Speichermedium gespeichert sein, wie etwa eine Art von Scheibe, die Disketten, optische Scheiben, CD-ROMs und magneto-optische Scheiben, statische Speicher (ROMs), Speicher (RAMs) mit wahlfreiem Zugriff, EPROMs, EEPROMs, magnetische oder optische Karten oder irgendeine Art von Medium enthalten, die zur Speicherung elektronischer Befehle geeignet sind, die jeweils an einen Bus des Computersystems angekoppelt sind, wobei die lesbaren Speichermedien nicht auf die vorgenannten beschränkt sind. Die hier dargestellten Algorithmen und Wiedergaben sind nicht inhärent auf irgendeinen bestimmten Computer oder andere Vorrichtungen bezogen. Verschiedene Maschinen für allgemeine Zwecke können mit Programmen gemäß den hier wiedergegebenen Lehren verwendet werden oder es kann sich als passend bzw. bequem erweisen, spezialisiertere Vorrichtungen zu konstruieren, um die erforderlichen Verfahrensschritte durchzuführen. Der erforderliche Aufbau für eine Anzahl dieser Vorrichtungen bzw. Maschinen wird aus der folgenden Beschreibung ersichtlich. Ferner wird die vorliegende Erfindung nicht unter Bezugnahme auf irgendeine bestimmte Programmiersprache beschrieben. Es ist vorzuziehen, daß verschiedene Programmiersprachen verwendet werden können, um die Lehren der hier beschriebenen Erfindung in die Tat umzusetzen.The present invention also relates to an apparatus for carrying out the operations and operations explained herein. This device may be specially constructed for the required purposes, or it may have a general purpose computer which is selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium such as a kind of disk, floppy disks, optical disks, CD-ROMs and magneto-optical disks, static memories (ROMs), random access memory (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of medium suitable for storing electronic commands, each coupled to a bus of the computer system, wherein the readable storage media are not limited to the aforementioned. The algorithms and reproductions presented herein are not inherently related to any particular computer or other device. Various general purpose machines may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatuses to perform the required method steps. The required structure for a number of these devices will become apparent from the following description. Furthermore, the present invention will not be described with reference to any particular programming language. It is preferable that various programming languages can be used to implement the teachings of the invention described herein to implement the act.

Die vorliegende Erfindung stellt eine Beschleunigung für einen Endzustands-Maschinenkodierer bzw. einen Maschinenkodierer mit finitem Zustand durch Kodieren von n Bits zu einer Zeit zur Verfügung. Mit anderen Worten stellt die vorliegende Erfindung das Kodieren eines Alphabets von M-Symbolen (wobei M > =2) unter Verwendung eines Maschinenkodierers mit finitem Zustand bzw. mit Endzustand zur Verfügung. Das Kodieren von M-Symbolalphabeten führt zu einer erhöhten Geschwindigkeit und einer erhöhten Kompressionsfunktion. Die vorliegende Erfindung führt auch ein Laufkodieren, ein Kodieren nach Huffman und andere Kodierungen mit mehreren Symbolen mit einem FSM-Kodierer durch. Die Kombination des FSM-Kodierers mit dem Mehr-Symbolkodierer bzw. Mehrfach-Symbolkodierer stellt sowohl die Geschwindigkeit der Mehr-Symbolkodes als auch die Kompressionsfunktion zur Verfügung, die typischerweise nur mit arithmetischen Kodes möglich ist.The present invention provides an acceleration for a Finite state machine encoder or machine encoder State available by encoding n bits at a time. With In other words, the present invention provides the coding of a Alphabets of M symbols (where M> = 2) using a machine encoder with finite state or with final state available. Encoding M symbol alphabets results in increased speed and an elevated one Compression function. The present invention also performs a run-coding, Huffman coding and other coding with multiple symbols with a FSM encoder through. The combination of the FSM encoder with the multi-symbol coder represents both the speed of the multi-symbol codes as well The compression feature is available, which typically only possible with arithmetic codes is.

Der. FSM-Kodierer nach der vorliegenden Erfindung kann mehrere Nachschlagtabellen (LUTs) verwenden. Jede LUT ist für die Verwendung in einer bestimmten Situation erzeugt worden. Wie z.B. in weiteren Einzelheiten unten beschrieben, kann eine der Tabellen zur Verwendung mit den letzten signifikanten Bits von Wavelet-Koeffizienten verwendet werden, die typischerweise 50% aus 1 und 50% aus 0 bestehen. Jede der Tabellen wird verwendet, um unterschiedliche Arten von Kodierern in bezug auf den gleichen Bitstrom durchzuführen. Die vorliegende Erfindung verwendet den Kodierer, in dem zwischen diesen Tabellen während des Kodierens zurück- und vorwärts geschaltet wird, während die fraktionalen Bits bzw. die bruchstückhaften bzw. gebrochenen Bits in dem Bitstrom aufrechterhalten werden.Of the. FSM coder according to the present invention may have several look-up tables Use (LUTs). Every LUT is for the use has been generated in a particular situation. As e.g. described in more detail below, one of the tables for use with the last significant bits of wavelet coefficients typically 50% 1 and 50% 0. Each of the tables is used to different kinds of Perform encoders with respect to the same bitstream. The The present invention uses the encoder in which between them Tables during coding back and forward is switched while the fractional bits or the fractional or broken bits be maintained in the bitstream.

Im Stand der Technik kann das auf FSM basierende Kodiersystem drei Tabellen verwenden. Die erste der Tabellen enthält die gegenwärtige Wahrscheinlichkeitsabschätzung und den Wert des wahrscheinlichsten Symbols (MPS) für jeden Kontext, für den eine Abschätzung durchgeführt wird. Die Eingänge in diese Tabelle werden mit jedem Symbol geändert, das in einem Kontext kodiert wird. Eine zweite Tabelle stellt die Aktualisierungen der Wahrscheinlichkeitsabschätzungen bereit. Diese Tabelle ändert sich nicht und aktualisiert Eingänge in die Kontexttabelle. Die dritte Tabelle ist der Satz bzw. die Liste von Zuständen, die legale Ausgänge zu dem Bitstrom beschreibt. Diese Tabelle ändert sich nicht und aktualisiert den gegenwärtigen Zustand für den Kodierer variabel. Die Tabelle zeigt auch an, was für Bits ausgegeben werden sollten.in the In the prior art, the FSM-based coding system can be three Use tables. The first of the tables contains the current probability estimate and the value of the most likely symbol (MPS) for each context, for the one appraisal carried out becomes. The inputs in this table are changed with each symbol in a context is encoded. A second table represents the updates of the probability estimates ready. This table changes not and updates inputs in the context table. The third table is the sentence or the List of states, the legal exits too describes the bit stream. This table does not change and updates the current one Condition for the Encoder variable. The table also indicates what bits are output should be.

Der Dekodierer verwendet die gleichen Tabellen zum Speichern von Wahrscheinlichkeitsabschätzungen und zum Aktualisieren von Wahrscheinlichkeitsabschätzungen, verwendet aber eine andere Tabelle zum Dekodieren. Die dritte Tabelle in dem Dekoder schaut nach Eingangsbits und Wahrscheinlichkeitsabschätzungen nach und bestimmt, ob die MPS auftritt, bestimmt den nächsten Zustand und bestimmt die Anzahl von Bits, durch die der Eingangsstrom zu verschieben ist, um die nächste Dekodieroperation vorzubereiten. Eine Ausführungsform der Größen und Strukturen dieser Tabellen wird in der Tabelle 1 unten angegeben.Of the Decoder uses the same tables to store probability estimates and for updating probability estimates, but uses a different table for decoding. The third table in the decoder looks for input bits and probability estimates and determines if the MPS occurs determines the next state and determines the number of bits through which the input stream to move to the next one To prepare the decoding operation. An embodiment of the sizes and Structures of these tables are given in Table 1 below.

Tabelle 1

Figure 00100001
Table 1
Figure 00100001

Die 1A ist eine Blockdarstellung einer Ausführungsform eines Maschinenabschätzers/-Kodierers mit endlichem Zustand bzw. finitem Zustand mit zwei Tabellen, die Anschlüsse zwischen den Tabellen darin darstellen. Bezugnehmend auf 1A wird ein Kontextspeicher 101, der die gegenwärtige Wahrscheinlichkeitsabschätzung den MPS-Wert für jeden Kontext, für den eine Abschätzung durchgeführt ist, speichert, gekoppelt, um einen Kontext 110, eine Nächst_mps-Anzeige 111 vom Exklusiv-Oder (XOR) 102 und eine Nächst_p-Zustandsanzeige 112 zu empfangen. Die Nächst_mps- Anzeige 111 stellt eine Anzeige für den Kontextspeicher 101 zur Verfügung, was das nächste MPS ist. Das heißt, die Nächst_mps-Anzeige 111 zeigt an, ob sich das MPS geändert hat. Die Nächst_p-Zustandsanzeige 112 stellt einen Hinweis für den Kontextspeicher 101 im Hinblick darauf, was die nächste Wahrscheinlichkeitsabschätzung ist, zur Verfügung. Auf der Grundlage dieser Eingänge wird auf den Kontextspeicher 101 zugegriffen und der gegenwärtige Wahrscheinlichkeitszustand (p-Zustand) 113 und das gegenwärtige MPS werden ausgegeben.The 1A Figure 12 is a block diagram of one embodiment of a finite state machine estimator / encoder with two tables representing connections between the tables therein. Referring to 1A becomes a context memory 101 that stores the present probability estimate the MPS value for each context for which an estimate is made coupled to a context 110 , a next_mps ad 111 Exclusive-Or (XOR) 102 and a next_p state indicator 112 to recieve. The next_mps ad 111 provides an ad for the context memory 101 available, which is the next MPS. That is, the next_mps ad 111 indicates if the MPS has changed. The next_p state indicator 112 provides an indication of the context memory 101 in terms of what the next probability estimate is. Based on these inputs is on the context memory 101 accessed and the current probability state (p-state) 113 and the current MPS are output.

Das gegenwärtige MPS 114 wird zu einem Eingang des XOR-Gatters 102 gekoppelt. Der andere Eingang des XOR-Gatters 102 wird zu einem Ausgang, dem Kipp_mps bzw. dem Toggle_mps 115, der Wahrscheinlichkeitsabschätzungstabelle 102 gekoppelt. In einer Ausführungsform wird dann, wenn das Kipp_mps-Signal 115 gleich "1" ist und der Wert des p-Zustands 113 kleiner als 215 ist, oder ein Ausgang (Ausgangsgröße 122 > 0) dort ist, der Wert des MPS, der in dem Kontextspeicher 101 gespeichert ist von "0" auf " 1 " oder von " 1 " auf "0" geändert.The current MPS 114 becomes an input of the XOR gate 102 coupled. The other input of the XOR gate 102 becomes an output, the Kipp_mps or the Toggle_mps 115 , the probability estimation table 102 coupled. In one embodiment, if the Kipp_mps signal 115 is equal to "1" and the value of the p-state 113 is less than 215, or an output (output 122 > 0) There is the value of the MPS stored in the context store 101 is changed from "0" to "1" or changed from "1" to "0".

Ein Komparatorblock 104 ist angekoppelt bzw. angeschlossen, um das momentane bzw. gegenwärtige MPS 114 zu empfangen und vergleicht das gegenwärtige MPS 114 mit dem Eingangsbit 116. Falls das Ergebnis des Vergleichs anzeigt, daß das MPS 114 dem Eingangsbit 116 gleicht, wird die "Gleichheits"-Anzeige 117 angegeben. Falls das Ergebnis des Vergleichs anzeigt, daß das MPS 114 nicht gleich dem Eingangsbit 116 ist, wird die "Gleichheits"- bzw. "Wahrscheinlichkeits"-Anzeige 117 nicht angezeigt.A comparator block 104 is coupled or connected to the current MPS 114 to receive and compare the current MPS 114 with the input bit 116 , If the result of the comparison indicates that the MPS 114 the input bit 116 equals, becomes the "equality" indicator 117 specified. If the result of the comparison indicates that the MPS 114 not equal to the input bit 116 is, becomes the "equality" or "probability" indicator 117 not displayed.

Die Wahrscheinlichkeitsabschätzungstabelle 103 wird angeschlossen, um den p-Zustand 113 und die Gleichheits- bzw. Wahrscheinlichkeitsanzeige 117 zu empfangen und gibt auf der Grundlage dieser Eingänge eine Wahrscheinlichkeitsklasse (p-Klasse) 118, das Kipp_ bzw. Toggle_mps 115 und die Nächst_p-Zustandsanzeige 112 aus. Das Kipp_mps 115 zeigt an, ob das MPS von 1 auf 0 oder umgekehrt geändert werden sollte. Die tatsächliche Wahrscheinlichkeitsabschätzung wird durch eine Klasse dargestellt, auf die hier als P-Klasse Bezug genommen wird. Jede P-Klasse wird für einen Bereich von Wahrscheinlichkeiten verwendet. In einer Ausführungsform wird jede P-Klasse für einen Wahrscheinlichkeitsbereich verwendet, anstatt verschiedene Bits zu verwenden, um eine genaue Wahrscheinlichkeit zu spezifizieren. In dieser Weise werden nur ein paar Bits benötigt, um zu spezifizieren, in welchem Klassenbereich die Wahrscheinlichkeit liegt. Bei einer Ausführungsform werden vier Bits verwendet, um die P-Klasse zu spezifizieren.The probability estimation table 103 is connected to the p-state 113 and the equality / probability indicator 117 receive and gives based on these inputs a probability class (p-class) 118 , the Kipp_ or Toggle_mps 115 and the next_p status indicator 112 out. The Kipp_mps 115 indicates whether the MPS should be changed from 1 to 0 or vice versa. The actual probability estimate is represented by a class referred to herein as a P-class. Each P-class is used for a range of probabilities. In one embodiment, each P-class is used for a probability range, rather than using different bits to specify an accurate probability. In this way, only a few Bits are needed to specify in which class area the probability lies. In one embodiment, four bits are used to specify the P-class.

Eine Ausführungsform der Wahrscheinlichkeitsabschätzungstabelle 103 wird in der Tabelle 2 unten gezeigt:An embodiment of the probability estimation table 103 is shown in Table 2 below:

Tabelle 2 – Eintritt PEM

Figure 00120001
Table 2 - Admission PEM
Figure 00120001

Die Entropiekodiertabelle 105, die eine Maschine mit finitem Zustand bzw. Endzustand darstellt, ist angekoppelt, um die P-Klasse 118, die Wahrscheinlichkeitsanzeige 117 und einen Ausgang vom Kanalzustand 106 zu empfangen und erzeugt 0 oder mehr Ausgangsbits wie der als dem komprimierten Bitstrom. Der Kanalzustand 106 speichert gebrochene Bits bzw. Bitbrüche, die den gegenwärtigen Zustand darstellen, in dem der Ausgangskanal ist. In einer Ausführungsform weist der Kanalzustand 106 ein Register oder ein anderes Speicherelement auf, das Zustandsinformationen speichert. In einer Ausführungsform speichert der Kanalzustand 106 sechs Bits der Kanalinformationen. Der Ausgang des Kanalzustands 106 tritt in Reaktion auf eine nächste Zustandsanzeige, dem Nächst_Zustand 119, auf, der von der Entropiekodierungstabelle 105 ausgegeben wird.The entropy coding table 105 , which represents a finite state machine, is coupled to the P-class 118 , the probability indicator 117 and an output from the channel state 106 and generates 0 or more output bits such as the compressed bit stream. The channel state 106 stores broken bits representing the current state in which the output channel is. In one embodiment, the channel state 106 a register or other storage element that stores state information. In one embodiment, the channel state stores 106 six bits of channel information. The output of the channel state 106 occurs in response to a next status indication, the next_state 119 , on, the from the entropy encoding table 105 is issued.

Basierend auf ihren Eingängen gibt die Entropiekodierungstabelle 105 ein oder mehr Bits als dem komprimierten Datenstrom, auf den hier als Ausgangsbit 121 Bezug genommen wird, und eine Anzeige der Anzahl von Bits in dem Ausgang, auf die hier als Ausgangsgröße 122 Bezug genommen wird, aus. Man bemerke, daß die Ausgangsgröße 122 nur eine Anzeige sein kann, im Hinblick auf welche Bits im Ausgangsstrom eine Signifikanz vorhanden ist. Die Entropiekodiertabelle 1.05 erzeugt auch ein oder mehrere Bits, um den nächsten Zustand anzuzeigen, auf den als Nächst_Zustand 119 Bezug genommen wird. Der Nächst_Zustand 119 wird in den Kanalzustand 106 als dem Zustand, der für das nächste Bit(s) eingegeben wird, eingespeist.Based on their inputs gives the entropy coding table 105 one or more bits than the compressed data stream, here as an output bit 121 Reference is made, and an indication of the number of bits in the output, here as an output 122 Reference is made. Note that the output size 122 may only be an indication as to which bits in the output stream have significance. The entropy coding table 1.05 also generates one or more bits to indicate the next state, the next_state 119 Reference is made. The next_state 119 becomes in the channel state 106 as the state input for the next bit (s).

Bei einer Ausführungsform weist die Entropiekodiertabelle 105 eine Nachschlagtabelle (LUT) auf, die mehrere Zustände hat, wobei jeder der Zustände ein oder mehrere Paare von legalen Übergängen hat. Jeder Übergang wird definiert, um das Speichern von null oder mehr Bits, die wegzulassen sind, zu verursachen, wenn der Übergang auftritt, und ein Zielzustand auftritt, auf den der Übergang während des Übergangs transferiert. Es ist wegen dieses Zielzustands, daß die LUTs es fortsetzen, das nächste Symbol zu verarbeiten.In one embodiment, the entropy coding table 105 a lookup table (LUT) having multiple states, each of the states having one or more pairs of legal transitions. Each transition is defined to cause the storage of zero or more bits to be omitted when the transition occurs and a target state to which the transition transfers during the transition. It is because of this target state that the LUTs continue to process the next symbol.

Die 1B stellt eine Ausführungsform des FSM-Kodierers dar. Bezugnehmend auf 1B wird die Entropiekodier-Nachschlagtabelle 105 angeschlossen, um sechs Bits der Zustandsinformation von dem Zustandsregister 106 zu empfangen. Vier Bits stellen die P-Klasse dar und ein Bit stellt die Wahrscheinlichkeitsanzeige bereitstellt. in Folge stellt die Entropiekodier-Nachschlagtabelle 105 8 Ausgangsbits (AUSBITS) bereit, vier Bits, um die Ausgangsgröße (AUSGRÖSSE) anzuzeigen und 6 Bits, um den nächsten Zustand anzuzeigen.The 1B FIG. 12 illustrates one embodiment of the FSM encoder. Referring to FIG 1B becomes the entropy coder lookup table 105 connected to six bits of state information from the state register 106 to recieve. Four bits represent the P class and one bit provides the probability indication. in succession, the entropy coder look-up table 105 8 output bits (OUTBITS) ready, 4 bits to indicate the output size (OUTPUT) and 6 bits to indicate the next state.

Eine Reihe von Puffern kann verwendet werden, um die Ausgangsbits 121 zwischenzuspeichern bzw. zu puffern. Diese Puffer werden nicht gezeigt, um zu vermeiden, daß die vorliegende Erfindung unklar wird.A bunch of buffers can be used to get the output bits 121 to buffer or buffer. These buffers are not shown to avoid obscuring the present invention.

Eine Ausführungsform der Wahrscheinlichkeitsabschätzungs- und der FSM-Kodiertabelle, die verwendet werden, um die Entropiekodierung durchzuführen, werden in den Tabellen 3 und 4 unten gezeigt. Die Tabelle 3 zeigt einen Auszug der Wahrscheinlichkeitsabschätzungstabelle, während die Tabelle 4 Auszüge aus der FSM-Kodiertabelle gibt.A embodiment the probability estimation and the FSM encoding table used to describe the entropy coding perform, are shown in Tables 3 and 4 below. Table 3 shows an excerpt of the probability estimation table while the Table 4 extracts from the FSM encoding table.

Tabelle 3 – Auszüge der Wahrscheinlichkeitsabschätzungstabelle

Figure 00150001
Table 3 - Excerpts from the Probability Estimate Table
Figure 00150001

Figure 00160001
Figure 00160001

Die Tabelle 4 zeigt nur die ersten und letzten paar Reihen bzw. Zeilen und wird durch den Zustand, die Wahrscheinlichkeitsklasse und LPS/MPF befehligt bzw. bestellt. Jeder Eintritt in die Tabelle ist dreifach (nächster Zustand, Ausgang, Ausgangsbits). Das dritte Element läßt die Anzahl der Ausgangsbits erkennen, die zu dem komprimierten Ausgangsstrom addiert werden sollten, was es ermöglicht, 0 und 00 zu unterscheiden.The Table 4 shows only the first and last few rows and is determined by the state, the probability class and LPS / MPF commanded or ordered. Each entry into the table is threefold (next State, output, output bits). The third element leaves the number of the output bits that correspond to the compressed output stream should be added, making it possible to distinguish 0 and 00.

Tabelle 4 – Auszüge aus der Kodiertabelle

Figure 00170001
Table 4 - Excerpts from the coding table
Figure 00170001

Figure 00180001
Figure 00180001

Die 1C stelle eine Blockdarstellung eines Maschinendekoders mit finitem Zustand dar. Der Kontextspeicher ist genau derselbe wie es für den Dekoder die Wahrscheinlichkeitsabschätzungstabelle ist. Die Entropiedekodiertabelle weist einen anderen Satz von Eingängen und Ausgängen auf, wie es unten beschrieben ist. Bezugnehmend auf 1C werden komprimierte Bits 130 durch ein Schieberegister 131 empfangen, welches komprimierte Bits für die Entropiekodiertabelle 115 bereitstellt. Die Entropiekodiertabelle 115 empfängt auch den Kanalzustand von dem Kanalzustandsspeicherbereich 106 und eine p-Klasse 118 von der Wahrscheinlichkeitsabschätzungstabelle 103. In Reaktion auf diese Eingänge erzeugt die Entropiekodiertabelle 115 einen LPS 132, den Nächst_Zustand 119 (wie in dem Kodierer) und die Ausgangsgröße 121.The 1C Figure 12 is a block diagram of a finite state machine decoder. The context memory is exactly the same as the probability estimation table for the decoder. The entropy decode table has a different set of inputs and outputs as described below. Referring to 1C become compressed bits 130 through a shift register 131 receive which compressed bits for the entropy coding table 115 provides. The entropy coding table 115 emp also captures the channel state from the channel state storage area 106 and a p-class 118 from the probability estimation table 103 , In response to these inputs, the entropy coding table generates 115 an LPS 132 , the next_state 119 (as in the encoder) and the output 121 ,

Das LPS 132 wird an einen Eingang des Exklusiv-Oder(XOR)-Gatters 137 angeschlossen, das auch das gegenwärtige MPS 114 empfängt. Auf der Grundlage dieser zwei Eingänge wird ein Bit 140 von dem Decoder ausgegeben.The LPS 132 is applied to an input of the exclusive OR (XOR) gate 137 connected, that too the current MPS 114 receives. On the basis of these two inputs will be one bit 140 output from the decoder.

Das LPS 132 wird auch mit dem Kipp_MPS 115, das von der Wahrscheinlichkeitsabschätzungstabelle 103 ausgegeben wird, durch das AND-Gatter 136 summiert. Der Ausgang des AND-Gatters 136 wird mit dem LPS 132 durch das XOR-Gatter 138 einer Exklusiv-Oder-Operation unterzogen, um die Nächst_p-Zustandsanzeige 112 zu erzeugen, die einen Eingang zu dem Kontextspeicher 101 darstellt.The LPS 132 also with the Kipp_MPS 115 that from the probability estimation table 103 is output through the AND gate 136 summed. The output of the AND gate 136 will be with the LPS 132 through the XOR gate 138 an exclusive-or operation to the next_p state indication 112 to generate an input to the context memory 101 represents.

Das LPS 132 wird auch als ein Auswählsignal für einen Multiplexer (Mux) 135 verwendet, um entweder das Nächst_LPS-Signal 133, das das nächste LPS anzeigt, oder das Nächst_MPS-Signal 132, das das nächste MPS anzeigt, auszugeben, die von der Wahrscheinlichkeitsabschätzungstabelle 103 ausgegeben werden. Der Ausgang von der Mux 135 ist das Nächst_MPS 111, das ein Eingang zu dem Kontextspeicher 101 ist.The LPS 132 is also used as a select signal for a multiplexer (mux) 135 used to get either the Next_LPS signal 133 that indicates the next LPS or the Next_MPS signal 132 indicating the next MPS to issue, that of the probability estimation table 103 be issued. The output from the Mux 135 is the next_MPS 111 , which is an input to the context memory 101 is.

Die Ausgangsgröße bzw. Ausgröße 121 wird von der Entropiekodiertabelle 115 ausgegeben, um die Anzahl der Bits zu steuern, um den komprimierten Bitstrom zu schieben, um den nächsten Eingang zu der Entropiekodiertabelle 115 bereitzustellen.The output size or size 121 is from the entropy coding table 115 to control the number of bits to shift the compressed bitstream to the next input to the entropy coding table 115 provide.

Der Dekoder kann aus dem Kodierer unter Verwendung des unten gezeigten Kodes hergeleitet werden. Gegeben sei die Kodiertabelle von der Form der Tabelle 4, wobei die Funktion maketable (table, 62, 16) zu einer Dekodiertabelle zurückkehren wird, die durch den Zustand, die Wahrscheinlichkeitsklasse und die komprimierten Bits (8 Bit für den komprimierten Datenstrom) in der Gestalt der Tabelle 5 indexiert ist.Of the Decoder can be removed from the encoder using the below Codes are derived. Given the coding table of the Form of Table 4, where the function maketable (table, 62, 16) too return to a decoding table is determined by the state, the probability class and the compressed Bits (8 bits for the compressed data stream) in the form of Table 5 is.

Dekodererzeugungskode

Figure 00200001
Dekodererzeugungskode
Figure 00200001

Figure 00210001
Figure 00210001

Figure 00220001
Figure 00220001

Ein Auszug für die Dekodiertabelle ist in der Tabelle 5 unten gezeigt.One Excerpt for the decoding table is shown in Table 5 below.

Tabelle 5 Teil der FSM Dekodiertabelle

Figure 00230001
Table 5 Part of the FSM decoding table
Figure 00230001

Mehrere Bits bei mehreren WahrscheinlichkeitenSeveral bits at several probabilities

Eine Entropiekodiertabelle kann aufgebaut werden, die mehrere Bits (gleiche Indikationen) und mehrere Wahrscheinlichkeiten (Wahrscheinlichkeitsklasse) zu einer Zeit akzeptiert. Ein Beispiel einer derartigen Tabelle wird in 2 gezeigt. Bezugnehmend auf 2 wird eine Entropiekodierungs-Nachschlagtabelle 205 angeschlossen, um 16 Eingangsbits zu empfangen, die die 6 Bits der Zustandsinformation vom Zustandsregister 106 aufweisen, 4 Bits, die eine erste Wahrscheinlichkeitsklasse P-Klasse-1 darstellen, ein Bit, das eine erste Wahrscheinlichkeitsanzeige Likely1 bereitstellt, vier Bits, die eine zweite Wahrscheinlichkeitsklasse P-Klasse-2 darstellen, und ein Bit, das eine zweite Wahrscheinlichkeitsanzeige Likely2 bereitstellt. Die Entropiekodierungstabelle 205 gibt 27 Bits aus, die 6 Bits aufweisen, die den nächsten Zustand darstellen, der zu dem Zustandsregister 106 zurückgeführt wird, 16 Ausgangsbits (AUSBITS) und fünf Bits, die die Größe des Ausgangs anzeigen (AUSGRÖSSE). Folglich kodiert die Entropiekodierungstabelle 205 zwei Bits für irgendwelche Wahrscheinlichkeiten zu einer Zeit.An entropy coding table can be constructed that accepts multiple bits (same indications) and multiple probabilities (probability class) at a time. An example of such a table is given in FIG 2 shown. Referring to 2 becomes an entropy-coding lookup table 205 connected to receive 16 input bits representing the 6 bits of state information from the status register 106 , 4 bits representing a first probability class P-class-1, a bit providing a first probability indication Likely1, four bits representing a second probability class P-class-2, and a bit providing a second probability indication Likely2 , The entropy coding table 205 outputs 27 bits having 6 bits representing the next state to the state register 106 16 output bits (OUTBITS) and five bits indicating the size of the output (SIZE). Thus, the entropy coding table encodes 205 two bits for any probabilities at a time.

Ein Problem bei der Verwendung einer einzigen Tabelle, die mehrere Bits für mehrere Wahrscheinlichkeitsklassen zu einer Zeit unterbringen kann, ist, daß eine solche Tabelle mit der Anzahl der größer werdenden Eingänge sehr groß wird. Auch erfordert eine sehr große Tabelle mehr Bits, um die Tabelle zu adressieren, was ihre Geschwindigkeit verringert.One Problem with using a single table that has multiple bits for many Can accommodate probability classes at a time, is that one Such table with the number of larger inputs very gets big. Also requires a very big one Table more bits to address the table, indicating its speed reduced.

Mehrere Bits bei fester WahrscheinlichkeitSeveral bits at a fixed probability

Die vorliegende Erfindung stellt eine gesteigerte Geschwindigkeit für einen Kodierer zur Verfügung, indem mehrere Bits bei einer fixen Wahrscheinlichkeit zu einer einzigen Entropiekodiertabelle gesandt werden. Die fixe Wahrscheinlichkeit kann eine Wahrscheinlichkeitsklasse aufweisen. Jedoch bringt jede Tabelle, die n Biteingänge (n ≥ 2) unterbringt, nur eine derartige Klasse oder Wahrscheinlichkeit unter. Es sollte bemerkt werden, daß eine Tabelle aufgebaut werden kann, um verschiedene P-Klassen unterzubringen, jedoch die Unterbringung einer gesteigerten Eingangsgröße erfordert.The present invention provides an increased speed for a Encoder available, by turning multiple bits into a single one at a fixed probability Entropiekiertiertabelle be sent. The fixed probability can have a probability class. However, each brings Table, the n bit inputs (n ≥ 2), only one such class or probability below. It should be noticed that one Table can be built to accommodate different P classes, However, the accommodation of an increased input size requires.

Ein Beispiel einer Tabelle, die mehrere Bits bei der gleichen Zeit unterbringt, ist eine Tabelle, die Bits handhabt, die bei einer Wahrscheinlichkeit von 0,5 (oder 50%) liegen. Die 3 stellt eine Ausführungsform einer derartigen Entropiekodiertabelle dar. Bezugnehmend auf 3 ist die Entropiekodiertabelle 305 angeschlossen, um 10 Eingangsbits zu empfangen, die 6 Bits der Zustandsinformation von dem Zustandsregister 306 zusammen mit vier Eingangsbits, Likelyl-4, aufweisen und gibt 21 Bits aus, die sechs Bits der Nächst-Zustandsinformation, die dem Zustandsregister 306 zurück eingespeist werden, 11 Ausgangsbits (AUSBITS) und vier Bits, um die Größe des Ausgangs (AUSGRÖSSE) anzuzeigen, aufweisen, Folglich werden unter Verwendung der fixen Wahrscheinlichkeit die Größe des Eingangs und des Ausgangs im Vergleich zu der Tabelle nach 2 verringert.An example of a table that accommodates multiple bits at the same time is a table that handles bits that are at a probability of 0.5 (or 50%). The 3 FIG. 12 illustrates one embodiment of such an entropy coding table. Referring to FIG 3 is the entropy coding table 305 connected to receive 10 input bits, the 6 bits of state information from the state register 306 along with four input bits, Likelyl-4, and outputs 21 bits, the six bits of the next state information corresponding to the state register 306 Therefore, using the fixed likelihood, the size of the input and the output will decrease compared to the table 2 reduced.

Bei einer anderen Ausführungsform empfängt die Kodiertabelle mehrere Eingänge, die eine fixe Wahrscheinlichkeit haben, die starkt erhöht ist, wie etwa z.B. in dem oberen Bereich von 90% (beispielsweise näherungsweise 98, näherungsweise 99%, usw.).at another embodiment receives the coding table several inputs, who have a fixed probability, which is strongly increased, such as e.g. in the upper range of 90% (for example, approximately 98, approximately 99%, etc.).

Der FSM-Kodierer der vorliegenden Erfindung kann in ein Kodiersystem einbezogen werden, wie es etwa in 1A gezeigt ist. Bei einer Ausführungsform wird der Abschätzungszustand bei Pseudo-Zufallsintervallen aktualisiert. Indem nur bei Pseudo-Zustandsintervallen aktualisiert wird, müssen vollständige Zählungen bzw. Zählwerte sämtlicher LPSs und MPSs nicht gespeichert werden. Bei einer Ausführungsform wird der Abschätzungszustand aktualisiert, wenn die Entropiekodierungstabelle 105 Ausgangsbits erzeugt. Bei einer Ausführungsform kann die Ausgangsgröße 122 mit Null verglichen werden, um zu bestimmen, wenn ein Ausgang aufgetreten ist. Dies erfordert es, daß die Tabelle Extrazustände enthält, um Änderungen der Wahrscheinlichkeit auszugleichen, die zwischen den Aktualisierungen auftreten. Gleichermaßen kann der FSM-Dekoder auch in den Dekoder einbezogen werden, der in Verbindung mit 1A erörtert worden ist.The FSM encoder of the present invention may be incorporated into a coding system such as that disclosed in U.S. Pat 1A is shown. In one embodiment, the estimation state is updated at pseudorandom intervals. By only updating at pseudo-state intervals, complete counts of all LPSs and MPSs need not be stored. In one embodiment, the estimation state is updated when the entropy encoding table 105 Output bits generated. In one embodiment, the output may be 122 are compared with zero to determine when an output has occurred. This requires that the table contain extra states to compensate for changes in the likelihood that occur between the updates. Likewise, the FSM decoder may also be included in the decoder associated with 1A has been discussed.

Tabellenerzeugungtable creation

Tabellen zum Handhaben mehrerer Bits zu einer Zeit im Gegensatz zu einzelnen Bits jeweils eines zu einer Zeit, können durch Anlegen einzelner Bits und Überwachen der Ausgangsbits und der nächsten Zustände, die auftreten, wenn eine Tabelle mit einem Bit zu einer Zeit verwendet wird, erzeugt werden. Dann können neue Ausgänge erzeugt werden, indem die Ausgangsbits von einer Reihe von Zuständen verknüpft bzw. verkettet werden. Der nächste Zustand für die Reihe ist der nächste Zustand, der von den letzten Ausgangsbits erzeugt wird. Dieses Verfahren wird durch die unten erörterten Beispiele deutlich gemacht. Die Tabelle ist häufig größer und enthält Eingänge, die durch Senden von Bits jeweils eines zu einer Zeit durch den gegenwärtigen Entropiekodierer bestimmt werden können. Das heißt, daß spezifische Tabellen konstruiert werden können, indem der Maschinenabschätzer/-Kodierer mit finitem Zustand bzw. Endzustand nach 1A verwendet wird. In den Entropiekodiertabellen, die mit mehreren Bits bzw. Mehrfachbits in dieser Weise aufgebaut werden, hält die vorliegende Erfindung die Kompatibilität mit binären Kodiertabellen aufrecht und ermöglicht es den Tabellen, an irgendeinem Punkt geschaltet zu werden, selbst mit Bruchteilen von Bits.Tables for handling multiple bits at a time, as opposed to individual bits one at a time, can be generated by applying individual bits and monitoring the output bits and the next states that occur when a one-bit-at-a-table is used , Then, new outputs can be generated by concatenating the output bits from a series of states. The next state for the series is the next state generated by the last output bits. This process is made clear by the examples discussed below. The table is often larger and contains inputs that can be determined by sending bits one at a time by the current entropy encoder. That is, specific tables can be constructed by the finite state machine estimator / decoder 1A is used. In the entropy coding tables constructed with multiple bits or multiple bits in this manner, the present invention maintains compatibility with binary coding tables and allows the tables to be switched at any point, even with fractions of bits.

Zum Beispiel wird ein beispielhafter FSM-Kodierer in der Tabelle 6 unten dargestellt.To the An example of an exemplary FSM encoder is shown in Table 6 below shown.

Tabelle 6 – FSM-Kodierer

Figure 00270001
Table 6 - FSM Encoder
Figure 00270001

FSM-Kodierer Kodierer mit Zwei- Zwei-Bit zu einer Zeit erzeugt einen nächsten Zustand und einen Ausgang in Antwort auf Eingänge, die den gegenwärtigen Zustand, zwei Wahrscheinlichkeitsklassen und zwei Ergebnisse aufweisen. Um zu bestimmen, was der nächste Zustand und der Ausgang sein sollte, werden der Ausgang von einem Kodierer mit einem Bit zu einer Zeit und der letzte Zustand nach dem Kodieren von zwei Bits verwendet. In dem Fall der Tabelle 1 z.B. ist anzunehmen, daß der Kodierer mit einem Bit zu einer Zeit in dem Zustand 0 ist und ein MPS in Klasse 1 zu kodieren ist, gefolgt durch ein MPS in Klasse 0. Das erste Bit veranlaßt den Kodierer mit einem zu einer Zeit, keine Bits auszugeben und sich zum Zustand 1 zu bewegen. Das zweite Bit ist im Zustand 1 kodiert und veranlaßt ein 0-Bit, ausgegeben zu werden und kehrt in den Zustand 0 zurück. Der Ausgang der neuen Tabelle für diesen Eingang mit zwei Bit würde 0 sein, was sich aus der Verkettung des Nicht-Bits verknüpft mit dem ersten Bit und dem 0-Bitausgang ergibt, der mit dem zweiten Bit verknüpft wird. Der neue nächste Zustand in dem Kodierer, der zwei zu einer Zeit kodiert, würde für den Eingang mit zwei Bits der Zustand 0 sein. Eine neue Tabelle, die mehrere (2) Bits zu einer Zeit handhabt, die von dem FSM-Kodierer mit einem Zustand nach Tabelle 6 erzeugt wird, wird in Tabelle 7 unten gezeigt.FSM encoder Two-two-bit encoder at a time generates a next state and an output in response to inputs representing the current state, have two probability classes and two results. Around to determine what the next one State and the output should be the output of one Encoder with one bit at a time and the last state after used to encode two bits. In the case of Table 1 e.g. is to assume that the Encoder with one bit at a time in the state is 0 and a MPS is to be coded in class 1 followed by an MPS in class 0. The first bit causes the encoder with one at a time, no bits to spend and to move to state 1. The second bit is encoded in state 1 and causes a 0-bit to be issued and returns to the 0 state. Of the Exit the new table for this input would be with two bits 0, which is linked to the concatenation of the non-bit the first bit and the 0-bit output, that with the second Bit linked becomes. The new next State in the encoder encoding two at a time would be for the input with two bits, the state is 0. A new table, several (2) Handle bits at a time supplied by the FSM encoder with a State as shown in Table 6 is shown in Table 7 below.

Tabelle 7

Figure 00280001
Table 7
Figure 00280001

Ein Beispiel eines Kodierers der Klasse 0 mit 3 Bit wird unten in Tabelle 8 gezeigt.One An example of a 3-bit class 0 encoder is shown in the table below 8.

Tabelle 8 – Klasse-0-Kodierer mit 3 Bit

Figure 00290001
Table 8 - 3-bit Class 0 Encoder
Figure 00290001

Es sollte bemerkt werden, daß das Tabellenerzeugungsverfahren der vorliegenden Erfindung verwendet werden kann, um Tabellen von verschieden großen Eingängen zu erzeugen. Jedoch wird ein Zustand für jede mögliche Eingangsbitkombination benötigt.It should be noted that the Table production method of the present invention used can be used to create tables of different sized inputs. However, it will a condition for each possible Input bit combination needed.

Es ist häufig wünschenswert, Tabellen, wie etwa Tabelle 7, schneller zu machen. Jedoch würde, um eine Tabelle mit 64 Zuständen, die 16 Wahrscheinlichkeitsklassen hat, auf viermal so schnell zu beschleunigen, die Tabelle anstelle von 211 Eingängen 226 Eingänge haben müssen, die durch die einfach schnelle Tabelle verwendet werden, und ist in vielen Situationen nicht praktikabel.It is often desirable to make tables, such as Table 7, faster. However, to accelerate a 64-state table having 16 probability classes to four times as fast, the table would need to have 2 26 inputs instead of 2 11 inputs 2 used by the single-quick table and is not in many situations practical.

M-fach-KodierenM-ary encoding

LaufkodesLaufkodes

Bei einer Ausführungsform werden für ein schnelles Kodieren für 50 % Bits (oder 60% Bits) und ein Golumb oder andere Startschritt-Stopp-Kodes bereitgestellt, die einzelne Bits und 50 % Bits verwenden. Ein solcher Kode wird in dem Buch bzw. Aufsatz von Bell, Cleary, Witten, Text Compression, beschrieben. Die Tabelle 9 stellt ein Beispiel eines Start-Schritt-Stopp-Kodes dar:at an embodiment be for a quick coding for 50% bits (or 60% bits) and a Golumb or other start step stop codes provided using single bits and 50% bits. Such a Code is in the book or essay by Bell, Cleary, Witten, text Compression, described. Table 9 shows an example of one Start-stop-stop codes:

Tabelle 9

Figure 00300001
Table 9
Figure 00300001

Ein typischer Lauflängenkode wird in der Tabelle 10 gezeigt. Bezugnehmend auf Tabelle 10 ist dieser Kode gut, um einen Ablauf von Nullen mit einer Wahrscheinlichkeit von näherungsweise 0,917 zu kodieren.One typical run length code is shown in Table 10. Referring to Table 10 This code is good for a sequence of zeros with a probability from approximate 0.917 to encode.

Tabelle 10

Figure 00310001
Table 10
Figure 00310001

Bei einem derartigen System gibt es zumeist zwei Tabellennachschläge für bis zu acht kodierten Bits. Bei der vorliegenden Erfindung kann der Laufkode in Tabelle 10 unter Verwendung der FSM-Kodiertabelle für 1 und 4 50% Bits realisiert werden,at Such a system usually has two table lookups for up to eight coded bits. In the present invention, the run code in Table 10 using the FSM coding table for 1 and 4 50% bits are realized

Eine Ausführungsform des Kodes zu Realisierung des Laufkodierers lautet:

Figure 00310002
An embodiment of the code for implementing the run coder is:
Figure 00310002

Falls die maximale Lautlänge (8 in diesem Fall) auftritt, dann ist nur ein Bit auszugeben. Dies wird durch Kodieren einer 0 bei einer fixen Wahrscheinlichkeit von 50% getan (durchgeführt durch die Funktion FSMCode_bei_50). Dieses Kodieren wird näherungsweise ein Bit verwenden, wird jedoch beliebige Bits von Brüchen von vorherigen Operationen aufrechterhalten. Falls ein Lauf auftritt, der geringer als das Maximum ist, dann muß ein Wert von 4 Bit kodiert werden, der mit einer 1 beginnt. Dies wird unter Verwendung einer Nachschlagtabelle mit einem Bit zu einer Zeit durchgeführt, was der Zugriff über die Funktion FSMCode_4_Bits_bei 50 ist. Die 50 in dem Funktionsnamen bezieht sich auf die Tatsache, daß diese Funktion annimmt, daß die Wahrscheinlichkeit fix bei ein halb oder 50% liegt.If the maximum sound length (8 in this case), then only one bit is to be output. This is coded by coding a 0 at a fixed probability of 50% done (done by the function FSMCode_bei_50). This encoding becomes approximate However, using a bit will result in arbitrary bits of fractions of maintained prior operations. If a run occurs, which is less than the maximum, then a value of 4 bits must be encoded that starts with a 1. This is done using a lookup table done with one bit at a time, giving access over the Function FSMCode_4_Bits_ is 50. The 50 in the function name refers to the fact that this function assumes that the probability fixed at half or 50%.

Eine Ausführungsform des Codes, der verwendet wird, um das Dekodieren zu realisieren, lautet wie folgt:

Figure 00320001
One embodiment of the code used to implement decoding is as follows:
Figure 00320001

Der Dekodierer weiß im voraus nicht, wann ein Wert mit 4 Bit oder ein Wert mit einem Bit dekodiert werden muß. So dekodiert er zuerst ein Bit bei 50% mit dem Aufruf FSMDekodiere_bei_50(). Falls dieses Bit eine Zahl 1 ist, dann kodiert der Kodierer tatsächlich vier Bits, um einen Lauf zu beschreiben. Die verbleibenden drei Bits werden mit dem Aufruf FSMDekodieren_bei_50() dekodiert und ihr Wert ist die kodierte Lauflänge. Falls das erste dekodierte Bit eine 0 war, dann trat der maximale Lauf auf und es ist nicht nötig, irgendwelche zusätzlichen Bits zu dekodieren.Of the Decoder knows in Do not predict when a 4-bit value or a one-bit value must be decoded. So he first decodes a bit at 50% with the call FSMDekodiere_bei_50 (). If this bit is a number 1, then the encoder actually encodes four Bits to describe a run. The remaining three bits are decoded with the call FSMDecode_in_50 () and their value is the encoded run length. If the first decoded bit was a 0, then the maximum occurred Run on and it is not necessary any additional ones To decode bits.

Huffman-Kodes und Huffman-ähnliche KodesHuffman codes and Huffman-like codes

Die vorliegende Erfindung stellt einen FSM-Kodierer zur Verfügung, der eine Kodiertabelle nach Huffman aufweist. Die Kodiertabelle nach Huffman kann die einzige Tabelle des FSM's sein oder kann eine von mehreren Entropiekodiertabellen in dem FSM sein. Bei einer Ausführungsform haben die Huffman-Bits eine Wahrscheinlichkeit von 50% und sie werden mit einer fixen Wahrscheinlichkeit von 50% kodiert. Dies kann einen Kompressionsvorteil gegenüber Huffman-ähnlichen Kodes zur Verfügung stellen. Bei einer Ausführungsform sind die Bits erhöht bzw. wahrscheinlicher anstelle von 50%.The The present invention provides a FSM encoder which has a Huffman coding table. The coding table after Huffman may be the only table of the FSM or one of several entropy coding tables to be in the FSM. In one embodiment the Huffman bits have a 50% chance and they will coded with a fixed probability of 50%. This can be one Compression advantage over Huffman similar Codes available put. In one embodiment the bits are increased or more likely instead of 50%.

Man bemerke, daß jedoch in diesem Fall diese Kompressionsfunktion nicht besser werden würde als bei einem Zeitverfahren.you notice, however, that in this case this compression function would not get better than at a time trial.

Man nehme an, ein Lauf bzw. eine Reihe von stark erhöhten oder wahrscheinlichem Bits sei zu kodieren. Zum Beispiel ist es mit 98% wahrscheinlich, daß Bits 0 sind und der Kodierer ist so zu konfigurieren, daß er einen Lauf bzw. Durchgang der Länge 0–5 kodiert, wie es in Tabelle 11 gezeigt ist. Tabelle 11

Figure 00330001
wobei jeder Ast des Huffman-Baums näherungsweise 98% sein sollte, jedoch die Wahrscheinlichkeitsklasse nur eine Erhöhungseffizient von 90 % ermöglichen kann. Ein Huffman-Baum mit diesen Wahrscheinlichkeiten wird in 8 gezeigt. Der Huffman-Kode kann verwendet werden, um die Anzahl von binären Entscheidungen zu verringern oder sogar zu minimieren und um die stark erhöhte Wahrscheinlichkeiten zu verringern. Zum Beispiel hat das erste kodierte Bit (nur) 90% anstatt daß jedes Bit bei 93 % Erhöhung bzw. Versatz kodiert wird.. Ein FSM-Kodierer, der Huffman-Ausgänge kodiert, wird effizienter sein als ein Huffman oder ein FSM-Kodierer, der eine Tabelle mit einem Bit zu einer Zeit einsetzt. Indem einfach der FSM-Kodierer mit einem Bit zu einer Zeit mit den wahrlichen Wahrscheinlichkeiten nach 8 verwendet wird und das Ergebnis aufgezeichnet wird, kann eine Tabelle mit einem Bit zu einer Zeit aufgebaut werden.Assume that a run or a series of strongly raised or probable bits should be coded. For example, at 98%, it is likely that bits are 0 and the encoder is to be configured to encode a run of length 0-5, as shown in Table 11. Table 11
Figure 00330001
where each branch of the Huffman tree should be approximately 98%, but the probability class can only provide an increase efficiency of 90%. A Huffman tree with these probabilities will be in 8th shown. The Huffman code can be used to reduce or even minimize the number of binary decisions and to reduce the greatly increased probabilities. For example, the first coded bit has (only) 90% instead of each bit being coded at 93% increment. An FSM encoder that encodes Huffman outputs will be more efficient than a Huffman or a FSM encoder, which inserts a table with one bit at a time. By simply hitting the FSM encoder one bit at a time with the true chances 8th is used and the result is recorded, a table can be built with one bit at a time.

Wird das FSM mit zwei Zuständen, wo die p-Klasse 0 für Wahrscheinlichkeiten von weniger als 0,618 verwendet wird und der Huffman-Baum nach 8 verwendet wird, kann die Tabelle 12 aufgebaut werden. Die Tabelle 10 läuft besser als der Huffman-Kode, weil 80 % der Zeit werden in einer Zeile bzw. Reihe zwei Läufe bzw. Abfolgen einer Länge von 5 sein und dies wird ein Bit einsparen.If the FSM is using two states, where p-class 0 is used for probabilities less than 0.618, and the huffman tree is after 8th is used, table 12 can be constructed. Table 10 works better than the Huffman code because 80% of the time is in one row or two row Be runs of a length of 5 and this will save a bit.

Tabelle 12

Figure 00340001
Table 12
Figure 00340001

Die 4 stellt eine Ausführungsform einer Entropiekodiertabelle mit mehreren Symbolen bzw. Mehrfachsymbolen dar, die verwendet werden kann, um ein Kodieren, wie etwa nach Huffman, oder ein Ablaufkodieren durchzuführen. Bezugnehmend auf 4 wird eine Entropiekodiertabelle 405 angekoppelt, um einen Eingang mit 14 Bits zu empfangen, der sechs Bits einer Zustandsinformation von dem Zustandsregister 406 und acht Bits von einem Symbol- oder Ablaufzählwert aufweist. Die acht Bits können irgendwelche ASCII-Charakter oder eine Lauflänge von 0 bis 255 anzeigen. In Folge gibt die Entropiekodiertabelle 405 25 Bits aus, die sechs Bits Zustandsinformationen für das Zustandsregister 406 aufweisen, die den nächsten Zustand darstellen. Die Entropiekodiertabelle 405 gibt auch 15 Ausgangsbits (AUSBITS) und vier Bits aus, die die Größe des Ausgangs anzeigen (AUSGRÖSSE).The 4 FIG. 12 illustrates one embodiment of a multi-symbol entropy encoding table that may be used to perform coding, such as by Huffman, or run-code encoding. Referring to 4 becomes an entropy coding table 405 coupled to receive a 14-bit input, the six bits of state information from the state register 406 and eight bits from a symbol or expiration count. The eight bits may indicate any ASCII character or run length from 0 to 255. In succession is the entropy coding table 405 25 bits off, the six bits state information for the status register 406 that represent the next state. The entropy coding table 405 Also outputs 15 output bits (OUTBITS) and four bits indicating the size of the output (SIZE).

Eine Entropiekodiertabelle mit mehreren TabellenAn entropy coding table with several tables

Die vorliegende Erfindung stellt verschiedene Untersätze einer größeren Beschleunigungstabelle zur Verfügung, die nützlich sind. Das heißt, in einer Ausführungsform wird die Entropiekodiertabelle mit n Bit zu einer Zeit nur eine einer Anzahl von Nachschlagtabellen sein, die durch das Entropiekodier-FSM eingesetzt wird. Das FSM kann mehrere Tabellen einsetzen, die konstruiert sind, um eine unterschiedliche Anzahl von Bits (zwei oder größer) für individuell fixierte Wahrscheinlichkeiten unterzubringen. Ein System kann eine Tabelle mit einem zu einer Zeit und eine Tabelle enthalten, um verschiedene Bits mit der gleichen Wahrscheinlichkeit zu kodieren. Auf diese Weise werden mehrere Bits mit der gleichen Wahrscheinlichkeit kodiert, so wie z.B., wenn die Wahrscheinlichkeit 50% beträgt oder sehr stark abgeschrägt bzw. erhöht ist (z.B. 99%). Eine spezielle Tabelle für eine beliebige fixe Wahrscheinlichkeit oder selbst ein fixes Muster von Wahrscheinlichkeiten könnte leicht erzeugt werden (z.B. ein 50 %iges Bit, dann ein 99 %iges Bit, dann zwei 60 %ige Bits).The The present invention provides different subsets of a larger acceleration table to disposal, the useful are. This means, in one embodiment For example, the n-bit entropy encoding table becomes only one at a time a number of lookup tables generated by the entropy coding FSM is used. The FSM can use several tables that are constructed are to make a different number of bits (two or more) for individually accommodate fixed probabilities. A system can have one Table with one at a time and a table included to different Encode bits with the same probability. To this Way, multiple bits are encoded with the same probability such as when the probability is 50% or very steeply sloped or increased is (e.g., 99%). A special table for any fixed probability or even a fixed pattern of probabilities could be easy generated (e.g., a 50% bit, then a 99% bit, then two 60% bits).

In einer Ausführungsform verwendet die vorliegende Erfindung eine LUT mit einem Bit zu einer Zeit in Verbindung mit einem oder mehreren LUTs mit n Bits zu einer Zeit mit fixer Wahrscheinlichkeit, um Wavelet-Koeffizienten zu kodieren. Die zwei letzten signifikanten Bits der Wavelet-Koeffizienten sind typischerweise mit 50 %iger Wahrscheinlichkeit bzw. 50%igem Zufall 1 oder 0 (d.h. die Wahrscheinlichkeiten sind nahe bei 0,5). Die oberen Bits bzw. Kopfbits in dem Koeffizienten, die in dem Artikel von Edward L. Schwartz, Ahmad Zandi, Martin Boliek, "Implementation of Compression with Reversible Embedded Wavelets", Proc. of SPIE 40th Annual Meeting, Band 2564, San Diego, CA, Juli 1995, sind stark abgeschrägt, näherungsweise bei 99 % Nullen. Eine getrennte LUT bringt mehrere Kopfbits zu einer Zeit unter.In an embodiment For example, the present invention uses a one bit LUT to one Time associated with one or more n bits with n bits to one Fixed-time time to encode wavelet coefficients. The last two significant bits of the wavelet coefficients are typically 50% chance or 50% chance 1 or 0 (i.e., the probabilities are close to 0.5). The upper bits in the coefficient contained in the article Edward L. Schwartz, Ahmad Zandi, Martin Boliek, "Implementation of Compression with Reversible Embedded Wavelets ", Proc. Of SPIE 40th Annual Meeting, Volume 2564, San Diego, CA, July 1995, are heavily sloped, approximate at 99% zeros. A separate LUT brings several bits of head to one Time under.

Wenn mehrere Tabellen verwendet werden, um den FSM-Kodierer zu realisieren, hält die vorliegende Erfindung die gleichen Kanalzustände als einen Eingang zu sämtlichen der Tabellen aufrecht. In einer Ausführungsform gibt ein einzelnes Kanalzustandsregister dieselbe Zustandsinformation als einen Eingang zu sämtlichen der Tabellen aus. In einer Ausführungsform wird der nächste Zustand, der von der Tabelle ausgegeben wird, als Rückkopplung zu den Kanalzustandsregistern für sämtliche Tabellen verwendet. Man bemerke, daß dies erfordert, daß sämtliche der Tabellen denselben Zustand haben müssen. Die Steuerlogik kann verwendet werden, um zu steuern, auf welche Tabelle auf der Grundlage der Eingänge durch Schalten zwischen den Tabellen zugegriffen wird. Die Steuerlogik kann eine Reaktion über das Passen bzw. Zutreffen für die Eingänge aufweisen. In einer anderen Ausführungsform wird auf sämtliche der Tabellen zu jeder Zeit zugegriffen, wobei jedoch der Ausgang von sämtlichen der Tabellen einem Multiplexen unterzogen wird. In diesem Fall wählt die Steuerlogik nur einen Satz von Eingängen als die Ausgänge des FSM-Kodierers aus. Indem der gleiche Kanalzustand für jede der Tabellen verwendet wird, werden keine Bruchbits verloren, wenn zwischen den Kodierern geschaltet wird.When multiple tables are used to implement the FSM encoder, the present invention maintains the same channel states as one input to all of the tables. In one embodiment, a single channel state register outputs the same state information as an input to all of the tables. In one embodiment, the next state output from the table is used as feedback to the channel state registers for all tables. Note that this requires all tables to have the same state. The control logic can be used to control which table is accessed based on the inputs by switching between the tables. The control logic may have a response via the fit for the inputs. In another embodiment, all of the tables are accessed at all times, but the output is multiplexed by all of the tables. In this case, the control logic selects only one set of inputs as the outputs of the FSM encoder. By using the same channel state for each of the tables, no fractional bits are lost when switching between the encoders.

Bei einer Ausführungsform, in der das Kopfbit bzw. das führende Bit und die letzten signifikanten Bits der Koeffizienten (Schwanzbits) mit einer n Bit-Tabelle (n > 2) kodiert werden, kann eine Tabelle mit einem Bit zu einer Zeit für jene Bits zwischen dem führenden und den Schwanzbits verwendet werden.at an embodiment, in which the head bit or the leading one Bit and the last significant bits of the coefficients (tail bits) with an n-bit table (n> 2) can be a table with one bit at a time for those bits between the leading and the tail bits.

Man bemerke, daß derartige Tabellen nicht übermäßig groß sind, weil die Anzahl der Bits, die erforderlich sind, um die Wahrscheinlichkeit darzustellen (z.B. 4 Bits), sich nicht für jedes der Eingangsbits ändert. Die Wahrscheinlichkeit braucht nur einmal gesendet zu werden, anstelle mit jedem Bit, das zu kodieren ist.you note that such Tables are not overly large, because the number of bits that are required to get the probability represent (e.g., 4 bits) does not change for each of the input bits. The Probability only needs to be sent once, instead of with every bit that needs to be encoded.

Ähnlich zu der oben erörterten, kann die Multi-Symboltabelle bzw. Mehrfach-Symboltabelle nach 4 eine der mehreren Tabellen sein, die durch den FSM-Kodierer eingesetzt werden. Die 5 stellt einen Kodierer dar, der dazu in der Lage ist, die gleiche Operation wie in 1A vorzunehmen (eine FSM-Tabelle mit einem Bit zu einer Zeit), 3 (eine FSM-Tabelle mit 4 Bit zu einer Zeit, die bei einer fixen Wahr scheinlichkeit von 50% operiert) und 4 (eine FSM-Tabelle mit Huffman-Kode), indem zwei zusätzliche Bits als einem Tabellenselektor verwendet werden. Der Rest der Bits würde gleichbleiben, wie sie in der vorherigen Tabelle verwendet worden sind. Die Eingangs- und Ausgangsgrößen werden auf der Grundlage der maximalen Größe bestimmt, die durch die Subtabellen benötigt werden (plus die Selektorbits). Bezugnehmend auf 5 empfängt die Entropiekodiertabelle 505 18 Bits des Eingangs, mit 6 Bits über die Zustandsinformationen, den 2 Bits des Tabellenselektors und den 10 tabellenspezifischen Bits. Für das Laufkodieren bzw. Ablaufkodieren können diese eine Lauflänge sein, wobei vier davon vier 50 %ige Bits usw. sein könnten. Die Entropiekodiertabelle 505 gibt 27 Bits aus, die 6 Zustandsinformationsbits, die eine Rückkopplung zu dem Zustandsregister 506 sind, 16 Ausgangsbits und 5 Bits sind, die die Größe des Ausgangs anzeigen.Similar to the one discussed above, the multi-symbol table or multiple symbol table may after 4 one of the several tables used by the FSM encoder. The 5 represents an encoder capable of performing the same operation as in 1A (a FSM table with one bit at a time), 3 (a 4-bit FSM table at a time operating at a 50% fixed probability), and 4 (a Huffman code FSM table) by using two additional bits as a table selector. The remainder of the bits would remain the same as used in the previous table. The input and output quantities are determined based on the maximum size required by the subtables (plus the selector bits). Referring to 5 receives the entropy coding table 505 18 bits of input, with 6 bits over the state information, 2 bits of the table selector, and 10 table specific bits. For run coding, these may be one run length, four of which could be four 50% bits and so on. The entropy coding table 505 outputs 27 bits, the 6 state information bits, which feed back to the state register 506 are 16 output bits and 5 bits that indicate the size of the output.

Kombinieren von TabellenCombine of tables

In einer Ausführungsform kann die Anzahl der Tabellen in einem System, wie etwa die Tabellen in 1A, durch das Kombinieren von Tabellen verringert werden. Da die Tabelle zum Aktualisieren des Abschätzungszustandes einen Ausgang hat, der als ein Eingang zu der Entropiekodierungszustandstabelle verwendet wird, können die Eingänge und Ausgänge dieser zwei Tabellen kombiniert werden. Die Integration der FSM und der Wahrscheinlichkeitsabschätzungsmaschine (PEM) stellen eine Verbesserung der Geschwindigkeit zur Verfügung, wenn ein Bit zu einer Zeit kodiert wird.In one embodiment, the number of tables in a system, such as the tables in FIG 1A , are reduced by combining tables. Since the table for updating the estimation state has an output which is used as an input to the entropy-encoding state table, the inputs and outputs of these two tables can be combined. The integration of the FSM and the Probability Estimation Engine (PEM) provides an improvement in speed when one bit is encoded at a time.

Eine Ausführungsform, die diese kombinierte Tabelle hat, wird in 6 gezeigt. Bezugnehmend auf 6 wird ein Kontextspeicher 101 angekoppelt bzw. angeschlossen, um einen Kontext 110 von einem Kontextmodell (nicht gezeigt, um zu vermeiden, daß die vorliegende Erfindung unklar wird) und eine Nächst_np-Zustandsanzeige 612 zu empfangen. Wie oben beschrieben, stellt die Nächst_np-Zustandsanzeige 612 eine Anzeige für den Kontextspeicher 101 zur Verfügung, im Hinblick auf welchen der nächste Wahrscheinlichkeitsabschätzungszustand gilt. Aufgrund dieser Eingänge wird auf den Kontextspeicher 101 zugegriffen und er gibt den gegenwärtigen Wahrscheinlichkeitszustand (np-Zustand) 613 aus.An embodiment having this combined table is described in FIG 6 shown. Referring to 6 becomes a context memory 101 coupled or connected to a context 110 from a context model (not shown to avoid obscuring the present invention) and a next_np state indication 612 to recieve. As described above, the next_np state indicator represents 612 an ad for the context memory 101 with respect to which the next probability estimation state holds. Because of these inputs is on the context memory 101 accessed and gives the current probability state (np state) 613 out.

Die verbundene Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle 603 wird angeschlossen, um den np-Zustand 613, das gegenwärtige Bit 616 und einen Ausgang des Kanalzustands 606 zu empfangen. Der Ausgang des Kanalzustands 606 ist in Reaktion auf eine nächste Zustandsanzeige (Nächst_Zustand), die von der verbundenen Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle 601 ausgegeben wird. Basierend auf ihre Eingänge erzeugt die verbundene Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle 601 Ausgangsbits, die als Ausgangsbits 121 gezeigt sind, und eine Anzeige der Ausgangsgröße, die als Ausgröße 122 gezeigt ist. Die verbundene Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle 601 erzeugt auch die Nächst_np-Zustandsanzeige 612, die den nächsten Wahrscheinlichkeitsabschätzungszustand anzeigt.The connected probability estimation and entropy coding table 603 is connected to the NP status 613 , the current bit 616 and an output of the channel state 606 to recieve. The output of the channel state 606 is in response to a next status indication (next_state) from the associated probability estimation and entropy coding table 601 is issued. Based on their inputs, the linked probability estimation and entropy coding table generates 601 Output bits as output bits 121 are shown, and a display of the output, which as Ausausgröße 122 is shown. The connected probability estimation and entropy coding table 601 also generates the next_np status indicator 612 indicating the next probability estimation state.

Eine Ausführungsform der verbundenen Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle 601 wird unten in der Tabelle 13 gezeigt.An embodiment of the connected probability estimation and entropy coding table 601 is shown below in Table 13.

Tabelle 13 Verbundenen Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle

Figure 00390001
Table 13 Connected probability estimation and entropy coding table
Figure 00390001

Die Dekodertabelle ist unterschiedlich, weil die Kodier- und Dekodier-Kodierertabellen unterschiedlich sind. Zum Beispiel enthält der Dekodierer die folgenden Eingänge. Einen Eingang für komprimierte Bits, der den komprimierten Bitstrom darstellt, einen Eingang für den Kanalzustand, der den Kanalzustand darstellt, und einen Eingang für den p-Zustand, der den Wahrscheinlichkeitsabschätzungszustand darstellt. Die Ausgänge der Dekoder enthalten das folgende: einen Verschiebungsbetrag, der einen Betrag anzeigt, um den eingegebenen komprimierten Bitstrom zu verschieben, eine MPS-Anzeige, einen Neu_p-Zustand, der den nächsten wahrscheinlichen Befehlszustand anzeigt, und eine Nächst_Zustandsanzeige, die den neuen Wahrscheinlichkeitsabschätzungszustand darstellt.The Decoder table is different because the encoder and decoder encoder tables are different. For example, the decoder includes the following Inputs. An entrance for compressed bits representing the compressed bitstream, a Entrance for the channel state, which represents the channel state, and an input for the p state representing the probability estimation state. The Outputs of the Decoders include the following: a shift amount that includes a Indicates amount to shift the input compressed bitstream, an MPS indicator, a new_p state, which is the next likely instruction state and a next_status indicator, which represents the new probability estimation state.

Für eine Pseudo-Zufallswahrscheinlichkeitsabschätzungstabelle ist der verbundene Tabellenkodierer von einer realisierbaren Größe. Die Verwendung einer einzigen Tabelle kann etwas Rechenzeit zu Lasten von Speicher einsparen.For a pseudorandom probability estimation table, the linked table encoder is of a realizable size. Using a single table can take some computing time at the expense of Save memory.

Die 7 stellt eine geänderte Ausführungsform eines Kodierers dar, in dem der Wahrscheinlichkeitszustand das MPS enthält. Die Verwendung dieser Ausführungsform stellt eine rechnermäßige Verbesserung mit geringeren Speicherkosten als die eines Tabellenmethode dar, die in Verbindung mit 6 beschrieben worden ist. Diese Ausführungsform erfordert eine Abschätzungstabelle, die zweimal so groß als die Abschätzungstabelle ist, die oben im Hinblick auf 1A beschrieben worden ist, eliminiert jedoch das Erfordernis des Vergleichs und der Exklusiv-Oder-Operation (XOR).The 7 FIG. 12 illustrates a modified embodiment of an encoder in which the likelihood state includes the MPS. The use of this embodiment represents a computational enhancement with lower storage costs than that of a table method associated with 6 has been described. This embodiment requires an estimation table that is twice as large as the estimation table described above with respect to 1A however, eliminates the need for comparison and exclusive-or-operation (XOR).

Bezugnehmend auf 7 wird ein Kontextspeicher 101 angeschlossen, um einen Kontext 110 und eine Nächst_np-Zustandsanzeige 712 zu empfangen. Die Nächst_np-Zustandsanzeige 712 stellt eine Anzeige für den Kontextspeicher 101 zur Verfügung, im Hinblick auf den der nächste Wahrscheinlichkeitsabschätzungszustand zutrifft und enthält auch das MPS. Basierend auf diesen Eingängen wird auf den Kontextspeicher 101 zugegriffen und er gibt den gegenwärtigen Wahrscheinlichkeitszustand (np-Zustand) 713 aus.Referring to 7 becomes a context memory 101 connected to a context 110 and a next_np status indicator 712 to recieve. The next_np state indicator 712 provides an ad for the context memory 101 with respect to which the next probability estimation state applies, and also includes the MPS. Based on these inputs is on the context memory 101 accessed and gives the current probability state (np state) 713 out.

Die Wahrscheinlichkeitsabschätzungstabelle 703 wird angeschlossen, um den p-Zustand 713 und das momentane Bit 116 zu empfangen und gibt auf der Grundlage dieser Eingänge eine Wahrscheinlichkeitsklasse (p-Klasse) 718 aus. Eine Ausführungsform der Wahrscheinlichkeitsabschätzungstabelle wird unten in Tabelle 14 gezeigt.The probability estimation table 703 is connected to the p-state 713 and the current bit 116 receive and gives based on these inputs a probability class (p-class) 718 out. One embodiment of the probability estimation table is shown in Table 14 below.

Tabelle 14 – PEM mit XOR und enthaltendem Vergleich

Figure 00410001
Table 14 - PEM with XOR and containing comparison
Figure 00410001

Die Entropiekodiertabelle 705 ist angeschlossen, um die p-Klasse 718 und einen Ausgang von dem Kanalzustand 106 zu empfangen. Der Ausgang des Kanalzustands 106 ist in Reaktion auf eine nächste Zustandsanzeige, einen Nächst_Zustand 119, der von der Entropiekodiertabelle 705 ausgegeben wird. Auf der Grundlage ihrer Eingänge erzeugt die Entropiekodiertabelle 705 Ausgangsbits, die als Ausgangsbits 121 gezeigt sind, und eine Anzeige der Ausgangsgröße, die als Ausgröße bzw. Ausgangsgröße 122 gezeigt wird.The entropy coding table 705 is connected to the p-class 718 and an output from the channel state 106 to recieve. The output of the channel state 106 is a next_state in response to a next status indication 119 that of the entropy coding table 705 is issued. Based on their inputs, the entropy coding table generates 705 Output bits as output bits 121 are shown, and an indication of the output, which as Ausgröße or output 122 will be shown.

In Form von Software ist es vernünftig, ein fixes Feld mit einem Bit mit einem Feld mit neun Bits zu kombinieren, so daß der Kontextspeicher 101 von 4 Bytes pro Kontext (2 Bytes Abschätzungszustand + 1 Byte MPS-Anzeige + ein Byte Auffüllung bzw. Reserve) auf 2 Bytes pro Kontext verringert werden kann.In the form of software, it is reasonable to combine a fixed field with a bit with a field of nine bits, so that the context memory 101 4 bytes per context (2 bytes estimate state + 1 byte MPS indication + one byte padding) can be reduced to 2 bytes per context.

Systemanwendungensystem applications

Der hier beschriebene Entropiekodierer kann bei einer Vielzahl von Kompressionssystemen verwendet werden. Zum Beispiel könnte der Entropiekodierer in dem JPEGSystem verwendet werden. In einer Ausführungsform können der SSM-Kodierer und die Wahrscheinlichkeitsabschätzung den QM-Kodierer des Standard-JPEG-Systems ersetzen. Diese Ersetzung würde wahrscheinlich nur von den kombinierten Abschätzungs- und Entropiekodiertabellen profitieren. Eine alternative Ausführungsform könnte den Huffman-Kode von dem JPEG-Standard mit der M-fachen Version des hier beschriebenen FSM ersetzen. In der Tat verwendet der JPEG-Standard "Mantissenbits" und "Make-up-Bits" bzw. "Aufmachungsbits" in den Kodes. Die "Mantissenbits" könnten durch das M-fach-FSM kodiert werden und die "Aufmachungsbits" könnten durch das fixe N bei einer zeitlichen 50%igen Bittabelle kodiert werden.The entropy coder described herein may be used in a variety of compression systems. For example, the entropy coder could be used in the JPEG system. In an off For example, the SSM encoder and the probability estimator can replace the QM encoder of the standard JPEG system. This replacement would probably only benefit from the combined estimation and entropy coding tables. An alternative embodiment could replace the Huffman code from the JPEG standard with the M-fold version of the FSM described herein. In fact, the JPEG standard uses "mantissa bits" and "make-up bits" in the codes. The "mantissa bits" could be coded by the M-times FSM and the "make-bits" coded by the fixed N at a 50% time-related bitmap.

Gleichermaßen könnte der Entropiekodierer mit dem CREW-Wavelet-Kompressionssystem verwendet werden, wie es in dem Artikel von Edward L. Schwartz, Ahmad Zandi, Martin Boliek, "Implementation of Compression with Reversible Embedded Wavelets", Proc. of SPIE 40th Annual Meeting, Band 2564, San Diego, CA, Juli 1995, beschrieben. In dem CREW-System gibt es führende Bits bzw. Kopfbits, von denen es sehr wahrscheinlich ist, daß sie 0 sind. Diese führenden Bits bzw. Kopfbits könnten ein Kode sein, der eine fixe Wahrscheinlichkeit von z.B. 95% durch einen FSM-Kodierer mit n Bits zu einer Zeit verwendet. Ähnlich sind viele der "Schwanz bits" gleichermaßen wahrscheinlich gleich 0 oder 1 und könnten unter Verwendung eines FSM-Kodierers mit n Bits zu einer Zeit für eine 50 %ige Wahrscheinlichkeit kodiert werden. Es gibt verschiedene Wege, über die die Kopf- oder Schwanzbits kodiert werden könnten. Zum Beispiel könnten vier Schwanzbits von einem einzigen Koeffizienten zusammen kodiert werden. Alternativ könnten die vier letzten signifikanten Bits von vier verschiedenen Koeffizienten zusammen kodiert werden. Es gibt viele andere Möglichkeiten, die den Fachleuten im Stand der Technik ersichtlich sind. Es ist deutlich, daß andere Wavelet-Bildkompressionssysteme und selbst Text- oder Schall-Kompressionssysteme die verschiedenen Kodierungsmöglichkeiten des FSM-Kodierers der vorliegenden Erfindung verwenden können.Similarly, the Entropy coder used with the CREW wavelet compression system as described in the article by Edward L. Schwartz, Ahmad Zandi, Martin Boliek, "Implementation of Compression with Reversible Embedded Wavelets ", Proc. of SPIE 40th Annual Meeting, Vol. 2564, San Diego, CA, July 1995. In the CREW system there are leading ones Bits that are very likely to be 0 are. These leading Bits or head bits could be a code having a fixed probability of e.g. 95% through uses an FSM encoder with n bits at a time. Many are similar the "tail bits" equally likely equal to 0 or 1 and could using an FSM coder with n bits at a time for a 50 % probability be coded. There are different ways about which the head or tail bits could be coded. For example, four could Tail bits are coded together by a single coefficient. Alternatively, could the last four significant bits of four different coefficients coded together. There are many other options available to the professionals can be seen in the prior art. It is clear that others Wavelet image compression systems and even text or sound compression systems the different coding possibilities of the FSM encoder the can use present invention.

Während viele Abänderungen und Modifikationen der vorliegenden Erfindung einem Fachmann im Stand der Technik ohne Zweifel vor Augen geführt werden, so er die voranstehende Beschreibung liest, ist es zu verstehen, daß die besondere Ausführungsform, die im Wege einer Illustration gezeigt und beschrieben worden ist, nicht dazu gedacht ist, als einschränkend in Betracht gezogen zu werden. Deshalb ist es nicht beabsichtigt, daß Bezugnahmen auf Einzelheiten der vorliegenden Ausführungsform den Schutzbereich der Ansprüche beschränken, die in sich selbst nur jene Merkmale wiedergeben, die für die Erfindung als wesentlich angesehen werden.While many amendments and modifications of the present invention to a person skilled in the art The technology will no doubt be brought to mind, he said the preceding Description, it is to be understood that the particular embodiment, which has been shown and described by way of illustration not intended to be considered restrictive become. Therefore, it is not intended that references to details the present embodiment the scope of the claims restrict, which in themselves reflect only those features that are essential to the invention considered essential.

Die vorliegende Erfindung betrifft eine Vorrichtung zum Kodieren und/oder Dekodieren, die zum Komprimieren bzw. zum Expandieren bzw. Dekomprimieren von Daten verwendet wird. Eine Maschine mit finitem Zustand bzw. mit endlichem Zustand weist eine Anzahl von Tabellen auf, die zusammen mehrere Zustände haben. Eine der Tabellen kodiert Symbole mit mehreren Bits für fixe Wahrscheinlichkeiten.The The present invention relates to a device for coding and / or Decoding for compression or expansion or decompression used by data. A machine with finite state or finite state has a number of tables together have several states. One of the tables encodes multi-bit symbols for fixed probabilities.

Die folgenden Ausführungsformen der Erfindung sind ebenfalls Bestandteile der Beschreibung:
A Kodierer zum Kodieren von Dateneingängen, wobei der Kodierer aufweist:
eine Kanalzustandsspeichereinrichtung; und
eine Entropiekodiertabelle, die angeschlossen bzw. angekoppelt ist, um Zustandsinformationen von der Kanalzustandsspeichereinrichtung zu empfangen, und die konfiguriert ist, um n Bits von den Eingangsdaten zu einer Zeit in Reaktion auf die Zustandsinformationen zu kodieren, wobei n größer als oder gleich 2 ist.
B Kodierer nach Merkmal A, wobei die Entropiekodiertabelle n Bits bei einer fixen Wahrscheinlichkeit kodiert.
C Kodierer nach einem der Merkmale A oder B, wobei die n Bits ein Symbol aufweisen.
D Kodierer nach einem der Merkmale A bis C, wobei die Entropiekodiertabelle einen Huffman-Kodierer aufweist.
E Kodierer nach einem der Merkmale A bis D, wobei die Entropiekodiertabelle einen Lauflängenkodierer aufweist.
F Kodierer nach einem der Merkmale A bis E, wobei die Entropiekodiertabelle letzte signifikante Bits von Koeffizienten kodiert.
G Kodierer nach einem der Merkmale A bis F, wobei die Entropiekodiertabelle führende Bits bzw. Kopfbits von Koeffizienten in dem Dateneingang kodiert.
H System zum Kodieren von Eingangsdaten, insbesondere mit dem Kodierer nach einem der Merkmale A bis G, wobei das System aufweist:
ein Kontextmodell, das konfiguriert ist, um eine Reihe von binären Entscheidungen in Reaktion auf Kontexte zu erzeugen;
ein Wahrscheinlichkeitsabschätzungsmodell, das an das Kontextmodell angekoppelt bzw. angeschlossen ist, um Wahrscheinlichkeitsabschätzungen für die Reihen von binären Entscheidungen zu erzeugen;
eine Kanalzustandsspeichereinrichtung; und
mehrere Entropiekodiertabellen, die angekoppelt sind, um Zustandsinformationen von dem Kanalzustandsspeicher zu empfangen, und konfiguriert sind, um Bits von den Eingangsdaten in Reaktion auf die Zustandsinformationen zu kodieren, wobei eine der mehreren Entropiekodiertabellen konfiguriert ist, um n Bits zu einer Zeit bzw. zur gleichen Zeit zu kodieren, wobei n größer als oder gleich 2 ist.
I System nach Merkmal H, wobei die eine der mehreren der Entropiekodiertabellen n Bits bei einer fixen Wahrscheinlichkeit kodiert.
J System nach einem der Merkmale H bis I, wobei die eine der mehreren der Entropiekodiertabellen einen Huffman-Kodierer aufweist.
K System nach einem der Merkmale H bis J, wobei die eine der mehreren der Entropiekodiertabellen einen Lauflängenkodierer aufweist.
L System nach einem der Merkmale H bis K, wobei die eine der mehreren der Entropiekodiertabellen die letzten signifikanten Bits der Koeffizientenschwänze bzw. -enden kodiert.
M System nach einem der Merkmale H bis L, wobei die eine der mehreren der Entropiekodiertabellen vorderte Bits bzw. Kopfbits der Koeffizienten in dem Dateneingang kodiert bzw. verschlüsselt.
N System nach einem der Merkmale H bis M, wobei zumindest eine der mehreren der Entropiekodiertabellen eine verbundene Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle aufweist.
O System nach einem der Merkmale H bis N, das ferner einen Schalter aufweist, der konfiguriert ist, um einzelne Tabellen der mehreren der Entropiekodiertabellen auszuwählen, um eines oder mehrere Bits der Eingangsdaten auf der Grundlage der Wahrscheinlichkeit zu kodieren.
P System nach einem der Merkmale H bis O, wobei das Wahrscheinlichkeitsabschätzungsmodell eine Tabelle aufweist.
Q System nach Merkmal P, wobei das Kontextmodell eine Wahrscheinlichkeitszustandsanzeige zur Verfügung stellt, die eine Anzeige für ein wahrscheinlichstes Symbol (MPS) darin hat.
R Kodierer zum Kodieren von Dateneingängen, insbesondere für ein System nach einem der Merkmal H bis Q, wobei der Kodierer aufweist:
eine Kanalzustandsspeichereinrichtung; und
eine verbundene Wahrscheinlichkeitsabschätzungs- und Entropiekodiertabelle, die angekoppelt bzw. angeschlossen ist, um Zustandsinformationen von der Kanalzustandsspeichereinrichtung zu empfangen, und konfiguriert ist, um n Bits der Eingangsdaten zu einer Zeit in Reaktion auf die Zustandsinformationen zu kodieren bzw. zu verschlüsseln, wobei n größer als oder gleich 2 ist.
S Kodierer nach Merkmal R, wobei die Entropiekodiertabeller n Bits bei einer fixen Wahrscheinlichkeit kodiert.
T Kodierer nach Merkmal R oder S, wobei die n Bits ein Symbol aufweisen.
U Kodierer nach einem der Merkmale R bis T, wobei die Entropiekodiertabelle einen Huffman-Kodierer aufweist.
V Kodierer nach einem der Merkmale R bis U, wobei die Entropiekodiertabelle einen Lauflängenkodierer aufweist.
W Kodierer nach einem der Merkmale R bis V bzw. nach Merkmal H, wobei die Entropiekodiertabelle am wenigsten signifikante Bits von Koeffizienten kodiert.
The following embodiments of the invention are also part of the description:
An encoder for encoding data inputs, the encoder comprising:
a channel state storage device; and
an entropy coding table coupled to receive state information from the channel state storage device and configured to encode n bits of the input data at a time in response to the state information, where n is greater than or equal to 2.
B coder according to feature A, wherein the entropy coding table encodes n bits at a fixed probability.
C Encoder according to one of the features A or B, wherein the n bits have a symbol.
D coder according to one of the features A to C, wherein the entropy coding table comprises a Huffman coder.
An encoder according to any of features A to D, wherein the entropy coding table comprises a run-length encoder.
F coder according to any of features A to E, wherein the entropy coding table encodes last significant bits of coefficients.
A coder according to any one of features A to F, wherein the entropy coding table encodes leading bits of coefficients in the data input.
H system for encoding input data, in particular with the encoder according to one of the features A to G, the system comprising:
a context model configured to generate a series of binary decisions in response to contexts;
a probability estimation model coupled to the context model to generate probability estimates for the series of binary decisions;
a channel state storage device; and
a plurality of entropy coding tables coupled to state information of the channel state memory and configured to encode bits from the input data in response to the state information, wherein one of the plurality of entropy encoding tables is configured to encode n bits at a time, wherein n is greater than or equal to 2 is.
I System according to feature H, wherein the one of the plurality of entropy coding tables encodes n bits at a fixed probability.
A system according to any of features H to I, wherein the one of the plurality of entropy coding tables comprises a Huffman encoder.
K system according to one of the features H to J, wherein the one of the plurality of Entropiekoderiertabellen has a run-length encoder.
L system according to one of the features H to K, wherein the one of the plurality of Entropiekoderiertabellen encodes the last significant bits of the coefficient tails and ends.
M system according to one of the features H to L, wherein the one of the plurality of Entropiekodiertabellen coded front or bits of the coefficients in the data input.
N system according to one of the features H to M, wherein at least one of the plurality of Entropiekodiertabellen has a combined probability estimation and entropy coding.
The system of any one of features H to N, further comprising a switch configured to select individual tables of the plurality of entropy coding tables to encode one or more bits of the input data based on the likelihood.
P system according to one of the features H to O, wherein the probability estimation model comprises a table.
Q System of feature P, wherein the context model provides a probability state indicator having a Most Probable Icon (MPS) indicator therein.
R encoder for encoding data inputs, in particular for a system according to one of the features H to Q, wherein the encoder comprises:
a channel state storage device; and
a linked probability estimation and entropy coding table coupled to receive state information from the channel state memory device and configured to encode n bits of the input data at a time in response to the state information, where n is greater than or equal to 2.
S Encoder according to feature R, wherein the Entropiekodiertabeller encodes n bits at a fixed probability.
T encoder according to feature R or S, wherein the n bits have a symbol.
U coder according to one of the features R to T, wherein the entropy coding table comprises a Huffman coder.
V coder according to one of the features R to U, wherein the entropy coding table comprises a run length coder.
W coder according to one of the features R to V or feature H, wherein the entropy coding table encodes the least significant bits of coefficients.

Claims (15)

Dekoder, der aufweist, – eine Zustandsspeichereinrichtung (106), um einen Kanalzustand zu speichern; – eine Wahrscheinlichkeitsabschätzungstabelle (103), um eine Anzeige für eine Wahrscheinlichkeitsabschätzung zur Verfügung zu stellen; – eine Entropie-Kodier-Tabelle (115), um Bits, die zu verschieben sind, von eingegebenen komprimierten Bits basierend auf den Zustandsinformationen, die von der Zustandsspeichereinrichtung (106) empfangen worden sind, und der Anzeige für die Wahrscheinlichkeitsabschätzung, die von der Wahrscheinlichkeitsabschätzungstabelle (103) empfangen worden sind, zu bestimmen, um die komprimierten Bits zu dekodieren; – ein Schieberegister (131), um die empfangene komprimierten Bits auf der Grundlage von Informationen zu verschieben, die von der Entropie-Kodier-Tabelle empfangen worden sind.Decoder, comprising - a state memory device ( 106 ) to store a channel state; A probability estimation table ( 103 ) to provide an indication of a probability estimate; An entropy coding table ( 115 ) to shift bits to be shifted from input compressed bits based on the state information supplied by the state memory device ( 106 ) and the likelihood estimation display provided by the likelihood estimation table ( 103 ) to decode the decoded compressed bits; - a shift register ( 131 ) to shift the received compressed bits based on information received from the entropy coding table. Dekoder nach Anspruch 1, wobei die Entropie-Codier-Tabelle eine Ausgangsgröße erzeugt, die angekoppelt wird, um das Schieberegister zu steuern.The decoder of claim 1, wherein the entropy coding table generates an output, which is coupled to control the shift register. Dekoder nach einem der Ansprüche 1 oder 2, wobei die Entropie-Codier-Tabelle den nächsten Zustand erzeugt, der zu der Zustandsspeichereinrichtung zurückgeführt wird, um beim Dekodieren des nächsten oder mehrerer Bits der komprimierten Daten Verwendung zu finden.Decoder according to one of claims 1 or 2, wherein the entropy coding table the next State, which is returned to the state storage device, to decode the next one or more bits of compressed data. Dekoder nach einem der Ansprüche 1 bis 3, der ferner ein XOR-Gatter aufweist, wobei die Entropie-Codier-Tabelle eine Letzt-Wahrscheinlichkeits-Symbol(LPS)-Anzeige erzeugt, die einer XOR-Operation durch das XOR-Gatter mit dem Meist-Wahrscheinlichkeits-Symbol (MPS) für den gegenwärtigen Wahrscheinlichkeitsabschätzungszustand unterzogen wird, um ein oder mehrere Bits zu erzeugen.The decoder of claim 1, further comprising an XOR gate, wherein the entropy coding table generates a Last Likelihood Symbol (LPS) indication that performs an XOR operation is subjected to the Most Probability Symbol (MPS) XOR gate for the current probability estimate state to generate one or more bits. Dekoder nach Anspruch 4, der ferner einen Kontextspeicher aufweist, der angekoppelt ist, um einen Wahrscheinlichkeitsabschätzungszustand für die Wahrscheinlichkeitsabschätzungstabelle in Reaktion auf einen Kontext zur Verfügung zu stellen, wobei der Kontextspeicher auch das MPS für den Kontext anzeigt.The decoder of claim 4, further comprising a context memory which is coupled to a probability estimation state for the Probability estimation table to provide in response to a context where the Context memory also the MPS for displays the context. Dekoder nach einem der Ansprüche 1 bis 5, der ferner aufweist, einen Multiplexer, der angekoppelt ist, um eine von dem nächsten LPS und dem nächsten MPS von der Wahrscheinlichkeitsabschätzungstabelle zu empfangen, wobei der MUX eine Anzeige von dem nächsten MPS in Reaktion auf den LPS-Ausgang von der Entropie-Codier-Tabelle ausgibt, wobei zwischen dem nächsten LPS- und dem nächsten MPS-Eingang zu der MUX ausgewählt wird.Decoder according to one of claims 1 to 5, further comprising a multiplexer coupled to one of the next LPS and the next Receive MPS from the probability estimation table, wherein the MUX provides an indication of the next MPS in response to the LPS output from the entropy coding table outputs, being between the next LPS and the next MPS input to the MUX selected becomes. Dekoder nach einem der Ansprüche 1 bis 6, wobei die Zustandsspeichereinrichtung gekoppelt ist, um die Zustandsinformation zu jeder der mehreren Entropie-Codier-Tabellen einzugeben.Decoder according to one of claims 1 to 6, wherein the state memory means is coupled to the state information to each of the several Entropy coding tables enter. System mit Codierer und Dekoder, wobei der Dekoder nach einem der Ansprüche 1 bis 7 aufgebaut ist, wobei die komprimierten Bits (130) von einer Entropiekodiertabelle im Codierer ausgegeben werden, die Zustandsinformationen von einer Kanalzustandsspeichereinrichtung empfängt und die konfiguriert ist, um n Bits von den Eingangsdaten gleichzeitig in Reaktion auf die Zustandsinformationen zu kodieren, wobei n größer oder gleich zwei ist.System with coder and decoder, wherein the decoder is constructed according to one of claims 1 to 7, wherein the compressed bits ( 130 ) are output from an entropy coding table in the encoder that receives state information from a channel state memory device and that is configured to code n bits of the input data simultaneously in response to the state information, where n is greater than or equal to two. Verfahren zum Dekodieren, mit den folgenden Schritten: – ein Kanalzustand wird in einer Zustandsspeichereinrichtung (106) gespeichert; – eine Anzeige für eine Wahrscheinlichkeitsabschätzung wird von einer Wahrscheinlichkeitsabschätzungstabelle (103) zur Verfügung gestellt; – Bits, die zu verschieben sind, von eingegebenen komprimierten Bits werden basierend auf den Zustandsinformationen, die von der Zustandsspeichereinrichtung (106) empfangen worden sind, und der Anzeige für die Wahrscheinlichkeitsabschätzung, die von der Wahrscheinlichkeitsabschätzungstabelle (103) empfangen worden sind, mittels einer Entropie-Kodier-Tabelle (115) bestimmt, um die komprimierten Bits zu dekodieren; – die Bits der komprimierten Bits werden auf der Grundlage von Informationen, die von der Entropie-Kodier-Tabelle empfangen worden sind in einem Schieberegister (131) verschoben.Method for decoding, comprising the following steps: - a channel state is stored in a state memory device ( 106 ) saved; A probability estimation display is provided by a probability estimation table ( 103 ) made available; Bits to be shifted from input compressed bits are determined based on the state information supplied by the state memory device (FIG. 106 ) and the likelihood estimation display provided by the likelihood estimation table ( 103 ) have been received by means of an entropy coding table ( 115 ) to decode the compressed bits; The bits of the compressed bits are stored in a shift register on the basis of information received from the entropy coding table ( 131 ) postponed. Verfahren nach Anspruch 9, wobei von der Entropie-Codier-Tabelle eine Ausgangsgröße erzeugt wird, die angekoppelt wird, um das Schieberegister zu steuern.The method of claim 9, wherein from the entropy coding table generates an output which is coupled to control the shift register. Verfahren nach einem der Ansprüche 9 oder 10, wobei von der Entropie-Codier-Tabelle der nächste Zustand erzeugt wird, und zu der Zustandsspeichereinrichtung zurückgeführt wird, um beim Dekodieren des nächsten oder mehrerer Bits der komprimierten Daten verwendet zu werden.Method according to one of claims 9 or 10, wherein of the Entropy coding table the next state is generated and returned to the state storage device, to decode the next one or more bits of the compressed data. Verfahren nach einem der Ansprüche 9 bis 11, wobei die Entropie-Codier-Tabelle eine Letzt-Wahrscheinlichkeits-Symbol(LPS)-Anzeige erzeugt, die einer XOR-Operation durch ein XOR-Gatter mit dem Meist-Wahrscheinlichkeits-Symbol (MPS) für den gegenwärtigen Wahrscheinlichkeitsabschätzungszustand unterzogen wird, um ein oder mehrere Bits zu erzeugen.Method according to one of claims 9 to 11, wherein the entropy coding table generates a Last Likelihood Symbol (LPS) display that an XOR operation through an XOR gate with the most probable symbol (MPS) for the current one Subjected to probability estimation state is to generate one or more bits. Verfahren nach Anspruch 12, wobei ferner ein Kontextspeicher vorgesehen wird, der einen Wahrscheinlichkeitsabschätzungszustand für die Wahrscheinlichkeitsabschätzungstabelle in Reaktion auf einen Kontext zur Verfügung stellt, wobei der Kontextspeicher auch das MPS für den Kontext anzeigt.The method of claim 12, further comprising a context memory providing a probability estimation state for the Probability estimation table in response to a context, wherein the context memory also the MPS for displays the context. Verfahren nach einem der Ansprüche 9 bis 13, wobei ein Multiplexer (MUX)angekoppelt wird, um eine von dem nächsten LPS und dem nächsten MPS von der Wahrscheinlichkeitsabschätzungstabelle zu empfangen, wobei der MUX eine Anzeige von dem nächsten MPS in Reaktion auf den LPS-Ausgang von der Entropie-Codier-Tabelle ausgibt, wobei zwischen dem. nächsten LPS- und dem nächsten MPS-Eingang zu der MUX ausgewählt wird.Method according to one of claims 9 to 13, wherein a multiplexer (MUX) is coupled to one of the next LPS and the next MPS from the probability estimation table receive, wherein the MUX is an indication of the next MPS in response to the LPS output from the entropy coding table, with between the. next LPS and the next MPS input to the MUX selected becomes. Verfahren nach einem der Ansprüche 9 bis 14, wobei die Zustandsspeichereinrichtung gekoppelt wird, um die Zustandsinformation zu jeder der mehreren Entropie-Codier-Tabellen einzugeben.Method according to one of claims 9 to 14, wherein the state memory device is coupled to the state information to each of the several Entropy coding tables enter.
DE19758853A 1996-09-26 1997-09-25 Entropy encoder for compression and expansion of data - includes series of encoding tables which are coupled to receive state information and to encode bits of input data in response to state information Expired - Lifetime DE19758853B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19742417A DE19742417B4 (en) 1996-09-26 1997-09-25 Apparatus and method for performing M-end machine-end-state entropy-coding or entropy-coding with a finite state machine

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/719,819 US5912636A (en) 1996-09-26 1996-09-26 Apparatus and method for performing m-ary finite state machine entropy coding
US08/719.819 1996-09-26
DE19742417A DE19742417B4 (en) 1996-09-26 1997-09-25 Apparatus and method for performing M-end machine-end-state entropy-coding or entropy-coding with a finite state machine

Publications (1)

Publication Number Publication Date
DE19758853B4 true DE19758853B4 (en) 2006-09-07

Family

ID=36848378

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19758853A Expired - Lifetime DE19758853B4 (en) 1996-09-26 1997-09-25 Entropy encoder for compression and expansion of data - includes series of encoding tables which are coupled to receive state information and to encode bits of input data in response to state information

Country Status (1)

Country Link
DE (1) DE19758853B4 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4494108A (en) * 1981-11-09 1985-01-15 International Business Machines Corporation Adaptive source modeling for data file compression within bounded memory
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4494108A (en) * 1981-11-09 1985-01-15 International Business Machines Corporation Adaptive source modeling for data file compression within bounded memory
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BELL,WITTEN: Text Compression *
EDWAED L. SCHWARTZ, AHMAD ZANDI, MARTIN BOLIEK: "Implementation of Compression with Reversible Embedded Wavelets", Proc. of SPIE 40th Annual Meeting, Band 2564, San Diego, CA, Juli 1995 *

Similar Documents

Publication Publication Date Title
DE19742417B4 (en) Apparatus and method for performing M-end machine-end-state entropy-coding or entropy-coding with a finite state machine
DE19635251C2 (en) Method and apparatus for compressing any data
DE4437790B4 (en) Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding
DE69725215T2 (en) Method and device for compressing and decompressing fonts
DE4314741C2 (en) Decoder for units of Huffman encoded data
DE19506164C2 (en) Method for compressing entered symbols into code words
DE19606178C2 (en) A method of compressing an array of pixel values and decompressing an array of pixel values from a compressed data set
DE69838074T2 (en) METHOD AND DEVICE FOR SIMULTANEOUS ENCRYPTION AND COMPRESSION OF DATA
EP1467491B1 (en) Arithmetical coding of transform coefficients
DE4340591C2 (en) Data compression method using small dictionaries for application to network packets
DE10196890B4 (en) Method for performing Huffman decoding
EP2068448B1 (en) Method and arrangement for arithmetic encoding and decoding with application of several tables
DE60107964T2 (en) DEVICE FOR CODING AND DECODING STRUCTURED DOCUMENTS
DE69834695T2 (en) Method and device for data compression
DE2547597C2 (en) Method and apparatus for compression and expansion of digital codewords
DE69820230T2 (en) N-WAY BIT CHAIN PROCESSING IN A DATA FLOW ARCHITECTURE
DE19900150B4 (en) Apparatus and method for encoding information with a finite state machine
DE60213205T2 (en) COMPRESSION AND EXTRACTION OF FONT TYPES
DE60015755T2 (en) LOSS-FREE ADAPTIVE CODING OF DATA OF A FINAL ALPHABET
DE19925667B4 (en) Adaptive coding with adaptive speed
DE19758853B4 (en) Entropy encoder for compression and expansion of data - includes series of encoding tables which are coupled to receive state information and to encode bits of input data in response to state information
DE60311886T2 (en) METHOD AND DEVICE FOR SORTING CYCLIC DATA IN LEXICOGRAPHIC ORDER
DE10131801B4 (en) Method for data compression and navigation system
DE19653133C2 (en) System and method for pre-entropic coding
DE19549491C2 (en) Palletised image compression with entropy encoding

Legal Events

Date Code Title Description
Q172 Divided out of (supplement):

Ref document number: 19742417

Country of ref document: DE

Kind code of ref document: P

8110 Request for examination paragraph 44
8181 Inventor (new situation)

Inventor name: GORMISH, MICHAEL J., MENLO PARK, CALIF., US

Inventor name: SCHWARTZ, EDWARD L., MENLO PARK, CALIF., US

AC Divided out of

Ref document number: 19742417

Country of ref document: DE

Kind code of ref document: P

AC Divided out of

Ref document number: 19742417

Country of ref document: DE

Kind code of ref document: P

8364 No opposition during term of opposition
R071 Expiry of right