DE19819405B4 - Implementation of a reversible embedded wavelet system - Google Patents

Implementation of a reversible embedded wavelet system Download PDF

Info

Publication number
DE19819405B4
DE19819405B4 DE19819405A DE19819405A DE19819405B4 DE 19819405 B4 DE19819405 B4 DE 19819405B4 DE 19819405 A DE19819405 A DE 19819405A DE 19819405 A DE19819405 A DE 19819405A DE 19819405 B4 DE19819405 B4 DE 19819405B4
Authority
DE
Germany
Prior art keywords
bit
data
coefficients
coding
tree
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 - Fee Related
Application number
DE19819405A
Other languages
German (de)
Other versions
DE19819405A1 (en
Inventor
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
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE19819405A1 publication Critical patent/DE19819405A1/en
Application granted granted Critical
Publication of DE19819405B4 publication Critical patent/DE19819405B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output

Abstract

System mit:
– einem Puffer;
– einer Wavelet-Transformationseinheit mit einem Eingang, der an den Puffer angeschlossen ist, um eine reversible Wavelet-Transformation mit Pixeln durchzuführen, die in dem Puffer gespeichert sind, und um Koeffizienten bei einem Ausgang zu erzeugen;
– einem Kodierer, der mit der Wavelet-Transformationseinheit verbunden ist, um Bitebenen von wavelet-transformierten Pixeln von der Wavelet-Transformationseinheit und in dem Puffer gespeicherte Bitebenen von wavelet-transformierten Pixeln zu kodieren.
System with:
A buffer;
A wavelet transform unit having an input connected to the buffer to perform a reversible wavelet transform on pixels stored in the buffer and to produce coefficients at an output;
An encoder connected to the wavelet transformation unit to encode bit planes of wavelet-transformed pixels from the wavelet transformation unit and bit planes of wavelet-transformed pixels stored in the buffer.

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung betrifft das Gebiet der Datenkompressions- und -dekompressiongssysteme; insbesondere betrifft die vorliegende Erfindung ein Verfahren und einen Apparat zum verlustfreien und verlustbehafteten Codieren und Decodieren von Daten in Kompressions-/Dekompressionssystemen.The The present invention relates to the field of data compression and decompression systems; In particular, the present invention relates Invention a method and apparatus for lossless and lossy coding and decoding of data in compression / decompression systems.

Die Datenkompression ist ein extrem nützliches Werkzeug, um große Datenmengen zu speichern und zu übertragen. Zum Beispiel wird die Zeit, die erforderlich ist, um ein Bild, wie z.B. eine Faksimileübertragung eines Dokuments, zu übertragen, drastisch reduziert, wenn eine Kompression verwendet wird, um die Anzahl von Bits zu verringern, die zur Erzeugung des Bildes benötigt werden.The Data compression is an extremely useful tool for large amounts of data to save and transfer. For example, the time required to take a picture, such as e.g. a facsimile transmission of a Document, to transfer, drastically reduced when compression is used to the Reduce the number of bits needed to create the image.

Die WO88/04117 A1 bezieht sich auf ein Verfahren zum Übertragen digitalisierter Tonsignale, wobei zum Übertragen von Tonsignalen mittels Quadrature-Mirror-Filterung das Tonsignal durch eine Vielzahl spektraler Teilbandsignale digitalisiert dargestellt wird, die Quantisierung der Abtastwerte in den Teilbändern dahingehend gesteuert wird, dass die Quantisierungsrauschpegel der einzelnen Teilbandsignale näherungsweise gleiche Abstände zu der aus einzelnen Teilbandsignalen resultierenden Mithörschwelle des menschlichen Gehörs aufweisen, wobei die Abstände der Quantisierungsrauschpegel der Teilbandsignale bezüglich der resultierenden Mithörschwelle durch die Differenz zwischen dem für die Kodierung erforderlichen Gesamtinformationsfluss und dem für die Kodierung verfügbaren Gesamtinformationsfluss festgelegt werden.The WO88 / 04117 A1 relates to a method for transmitting digitized sound signals, wherein for transmitting sound signals by means of Quadrature mirror filtering the sound signal through a variety of spectral Subband signals are digitized, the quantization the samples in the subbands is controlled so that the quantization noise levels of individual subband signals approximately the same distances to the listening threshold resulting from individual subband signals of human hearing have, wherein the distances the quantization noise level of the subband signals with respect to resulting listening threshold by the difference between that required for coding Overall information flow and the total information flow available for coding be determined.

Die ISO/IEC11172-3: 1993, C.1.5.3 – C.1.5.4.4.8 bezieht sich auf den MPEG1 Audiostandard, und speziell auf den Layer III dieses Audiostandards, wobei ein mögliches Layer III Kodierungsverfahren beschrieben wird, welches ein psychoakustisches Modell, eine Polyphasenfilterbank und eine MDCT verwendet.The ISO / IEC11172-3: 1993, C.1.5.3 - C.1.5.4.4.8 refers to the MPEG1 audio standard, and specifically to the layer III of this audio standard, using a possible Layer III coding method which is a psychoacoustic model, a polyphase filter bank and an MDCT used.

Viele verschieden Datenkompressionstechniken gibt es in dem Stand der Technik. Kompressionstechniken können in zwei große Kategorien aufgeteilt werden, verlustbehaftetes Codieren und verlustfreies Codieren. Verlustbehaftetes Codieren schließt das Codieren ein, das zum Verlust von Information führt, so daß es keine Garantie für eine perfekte Rekonstruktion ursprünglicher Daten gibt. Das Ziel einer verlustbehafteten Kompression ist es, daß Änderungen an den ursprünglichen Daten in einer solchen Art und Weise durchgeführt werden, daß sie nicht beanstandbar oder detektierbar sind. Bei einer verlustfreien Kompression wird die gesamte Information aufrechterhalten bzw. beibehalten und die Daten werden in einer Art und Weise komprimiert, die eine perfekte Rekonstruktion ermöglicht.Lots There are various data compression techniques in the state of Technology. Compression techniques can in two big ones Categories are split, lossy coding and lossless Coding. Lossy coding includes coding used for Loss of information leads so that there is no Guarantee for there is a perfect reconstruction of original data. The goal A lossy compression is that changes to the original Data is done in such a way that it does not objectionable or detectable. For lossless compression the entire information is maintained or maintained and the data is compressed in a way that is perfect Reconstruction allows.

Bei einer verlustfreien Kompression werden Eingangssymbole oder Intensitätsdaten konvertiert, um Codewörter auszugeben. Die Eingabe kann folgende Daten enthalten: Bilddaten, Audiodaten, eindimensionale Daten (z.B. Daten, die sich räumlich oder zeitlich ändern), zweidimensionale Daten (z.B. Daten, die sich in zwei räumliche Richtungen ändern (oder eine räumliche Dimension und eine zeitliche Dimension ändern)), oder mehrdimensionale/multispektrale Daten. Falls die Kompression erfolgreich ist, werden die Codewörter durch weniger Bits dargestellt als die Anzahl der Bits, die für die uncodierten Eingangssymbole (oder Intensitätsdaten) notwendig waren. Verlustfreie Codierverfahren beinhalten lexikalische Verfahren ("dictionary methods") des Codierens (z.B. Lempel-Ziv), Lauflängencodieren, aufzählendes Codieren ("enumerative coding") und Entropiecodieren. Bei einer verlustfreien Bildkompression basiert die Kompression auf Vorhersagen oder Kontexten plus dem Codieren. Der JPEG-Standard für Faksimilekompression (ISO/IEC 11544) und DPCM (Differenzpulscodemodulation bzw. "Differential Pulse Code Modulation" – eine Option in dem JPEG-Standard (SIO/IEC 10918)) für Bilder mit kontinuierlicher Tönung stellen Beispiele für eine verlustfreie Kompression von Bildern dar. Bei der verlustbehafteten Kompression werden Eingangssymbole oder Intensitätsdaten vor der Konversion zu Ausgabecodewörtern quantisiert. Die Quantisierung ist dafür gedacht, relevante Charakteristiken der Daten beizubehalten, während unwichtige Charakteristiken beseitigt werden. Vor der Quantisierung verwenden verlustbehaftete Systeme häufig eine Transformation, um eine Energieverdichtung ("energy compaction") bereitzustellen. JPEG stellt ein Beispiel für ein verlustbehaftetes Codierverfahren für Bilddaten dar.at lossless compression becomes input symbols or intensity data converts to codewords issue. The input may contain the following data: image data, Audio data, one-dimensional data (e.g., data that is spatial or change over time), two-dimensional data (e.g., data that is in two spatial Change directions (or a spatial Dimension and a temporal dimension)), or multidimensional / multispectral Dates. If the compression succeeds, the codewords will pass through less bits represented than the number of bits that are required for the uncoded ones Input symbols (or intensity data) were necessary. Lossless coding techniques include lexical Procedure ("dictionary methods ") of coding (e.g., Lempel-Ziv), run-length coding, aufzählendes Encoding ("enumerative coding ") and entropy coding. For lossless image compression, the compression is based on predictions or contexts plus coding. The JPEG standard for facsimile compression (ISO / IEC 11544) and DPCM (Differential Pulse Code Modulation or "Differential Pulse Code Modulation "- an option in the JPEG standard (SIO / IEC 10918)) for images with continuous tint provide examples of a lossless compression of images. In the lossy Compression will be input symbols or intensity data before conversion to output codewords quantized. Quantization is meant to have relevant characteristics while maintaining the data unimportant characteristics are eliminated. Use before quantization lossy systems often a transformation to provide an energy compaction. JPEG provides an example for a lossy coding method for image data.

Kürzliche Entwicklungen bei der Bildsignalverarbeitung konzentrieren weiter ihre Aufmerksamkeit auf den Bedarf nach effizienten und wirksamen Formen der Datenkompressionscodierung. Verschiedene Formen einer Transformation oder pyramidalen Signalverarbeitung sind vorgeschlagen worden, und zwar einschließlich der Mehrfachauflösungs-Pyramidalverarbeitung ("multi-resolution pyramidal processing") und der Wavelet-Pyramidalverarbeitung ("wavelet pyramidal processing"). Diese Formen werden ebenso als Unterbandverarbeitung ("subband processing") und hierarchische Verarbeitung ("hierarchical processing") bezeichnet. Die Wavelet-Pyramidalverarbeitung von Bilddaten stellt einen spezifischen Typ einer Mehrfachauflösungs-Pyramidalverarbeitung dar, die Quadratur-Spiegelfilter (QMFs bzw. "Quadrature Mirror Filters") verwenden kann, um Unterbandzerlegungen eines Originalbildes zu erzeugen. Bemerkenswert ist, daß andere Typen von Nicht-QMF-Wavelets existieren. Für mehr Information hinsichtlich der Waveletverarbeitung wird auf Antonini, M., et al. "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing, Band 1, Nr. 2, April 1992; Shapiro, J. "An Embedded Hierarchical Image Coder Using Zerotrees of Wavelet Coefficients", Proc. IEEE Data Compression Conference, Seiten 214–223, 1993, verwiesen. Hinsichtlich der Information über reversible Transformationen wird auf Said, A. und Pearlman, W. "Reversible Image Compression via Multiresolution Representation and Predictive Coding", Dept. of Electrical, Computer and Systems Engineering, Renssealaer Polytechnic Institute, Troy, NY 1993, verwiesen.Recent developments in image signal processing continue to focus on the need for efficient and effective forms of data compression coding. Various forms of transformation or pyramidal signal processing have been proposed, including multi-resolution pyramidal processing and wavelet pyramidal processing. These forms are also referred to as subband processing and hierarchical processing. Wavelet pyramidal processing of image data represents a specific type of multi-resolution pyramid processing, which may use Quadrature Mirror Filters (QMFs) to produce subband decompositions of an original image. It is noteworthy that other types of non-QMF wavelets exist. For more information regarding wavelet processing, see Antonini, M., et al. "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing, Vol. 1, No. 2, April 1992; Shapiro, J. "Embedded Hierarchical Image Coding Using Zerotrees of Wavelet Coefficients," Proc. IEEE Data Compression Conference, pages 214-223, 1993. With regard to information on reversible transformations, Said, A. and Pearlman, W. "Reversible Image Compression via Multiresolution Representation and Predictive Coding", Dept. of Electrical, Computer and Systems Engineering, Renssealaer Polytechnic Institute, Troy, NY 1993.

Eine Kompression benötigt häufig sehr viel Zeit und ist speicherintensiv. Es ist wünschenswert, die Kompression schneller und/oder mit einem reduzierten Speicher durchzuführen, wenn es möglich ist. Manche Anwendungen haben nie eine Kompression verwendet, weil entweder die Qualität nicht gewährleistet werden konnte, die Kompressionsrate nicht hoch genug war oder die Datenrate nicht steuerbar war. Jedoch ist die Verwendung einer Kompression wünschenswert, um die Informationsmenge, die übertragen und/oder gespeichert werden soll, zu reduzieren.A Compression needed often a lot of time and is memory intensive. It is desirable the compression faster and / or with a reduced memory perform, if it is possible is. Some applications have never used compression because either the quality not guaranteed could not, or the compression rate was not high enough Data rate was not controllable. However, the use of compression desirable, to the amount of information that is transmitted and / or stored.

Digitale Kopierer, Drucker, Scanner und multifunktionale Maschinen werden mit einer Vollbildspeicherung stark verbessert. Eine komprimierte Vollbildspeicherung reduziert den Speicher und somit die Kosten, die für eine Vollbildspeicherung bei diesen Produkten notwendig sind. Jedoch werden viele Vollbildspeicherungen mit Speichern mit wahlfreiem Zugriff (RAMs) implementiert bzw. realisiert. Ein RAM ist schnell aber im allgemeinen teuer. Festplatten können ebenso als Speicher verwendet werden und werden im allgemeinen als günstig angesehen (oder im allgemeinen als weniger teuer als die RAM). Deshalb würde es jeder Systemhersteller als einen Vorteil bei der Erzeugung eines weniger teuren Systems ansehen, eine Festplatte für die Zwecke, wie z.B. Vollbildspeicher, anstelle eines RAM's zu verwenden.digital Copiers, printers, scanners and multifunctional machines greatly improved with frame storage. A compressed one Frame storage reduces storage and thus costs the for frame storage is required for these products. however will save many frame stores with random stores Access (RAMs) implemented or realized. A RAM is fast but generally expensive. Hard disks can also be used as storage are and will generally be considered cheap (or generally as less expensive than the RAM). That's why it would be every system manufacturer as an advantage in creating a less expensive system watch a hard drive for the purposes such as Frame memory to use instead of a RAM.

Ein Problem bei der Verwendung von Festplatten für die zeitempfindlichen Anwendungen ist, daß es schwierig ist, auf Information von einer Festplatte so schnell direkt zuzugreifen, wie man auf dieselbe Information von einem RAM zugreifen könnte. Ebenso verwenden viele Festplatten eine Kompression, wenn sie Information auf der Platte speichern, um die Informationsmenge zu erhöhen, die auf der Festplatte gespeichert werden kann. Die Zeit, die notwendig ist, um die Kompression durchzuführen, kann ebenso von einer Verwendung von Festplatten bei zeitempfindlichen Anwendungen abschrecken. Sowohl die langsame Geschwindigkeit, die der Verwendung von Festplatten inhärent ist, als auch die Verwendung der Kompression macht die Verwendung von Festplatten bei zeitsensitiven Anwendungen zu einem schwierigen Implementationsthema.One Problem with using hard drives for time-sensitive applications is that difficult is to access information from a hard drive so fast directly how to access the same information from a RAM. As well Many hard drives use compression when they have information Save on the disk to increase the amount of information that can be stored on the hard disk. The time necessary is to perform the compression, can also be sensitive to using hard drives when time sensitive Deter applications. Both the slow speed, the Use of hard drives inherent is, as well as the use of compression makes use of hard drives in time-sensitive applications to a difficult one Implementation topic.

Die vorliegende Erfindung stellt eine schnelle verlustbehaftete/verlustfreie Kompression bereit. Die vorliegende Erfindung stellt Systemimplementationen dar, die die Verwendung einer kostengünstigen Festplattentechnologie anstelle eines teueren RAM erlaubt. Weiter stellte die vorliegende Erfindung einen Ratenabgleich bzw. eine Geschwindigkeitsanpassung für eine Festplatte bereit und stellt eine Kompression bereit, um die Festplatte an Bandbreiten anderer Teile der Systemimplementation, wie z.B. eine Druckmaschine oder eine Bilderzeugungseinrichtung, anzupassen. Die vorliegende Erfindung stellt ebenso die Verwendung eines RAM bereit, wo die Zeit zur Kompression und Dekompression nicht viel langsamer ist als die RAM-Geschwindigkeit. Auf diese Art und Weise führt die vorliegende Erfindung eine Geschwindigkeitsanpassung an ein RAM durch.The The present invention provides a fast lossy / lossless Compression ready. The present invention provides system implementations This involves the use of low-cost hard disk technology instead of an expensive RAM allowed. Next presented the present Invention a rate adjustment or a speed adjustment for one Hard drive ready and provides compression to the hard drive at bandwidths of other parts of the system implementation, e.g. a printing press or image forming device. The present invention also provides the use of a RAM where the time for compression and decompression is not much slower is considered the RAM speed. In this way leads the The present invention provides a speed adaptation to a RAM by.

Ein Verfahren und ein Apparat zur Durchführung einer Kompression und/oder einer Dekompression werden beschrieben. Bei einer Ausführungsform umfaßt die vorliegende Erfindung ein System mit einem Puffer, einer Wavelet-Transformationseinheit und einem Codierer. Die Wavelet-Transformationseinheit weist einen Eingang auf, der an den Puffer angeschlossen ist, um eine Wavelet-Transformation mit Pixeln durchzuführen, die darin gespeichert sind, und um Koeffizienten an einem Ausgang zu erzeugen. Der Codierer ist an eine Wavelet-Transformationseinheit angeschlossen, um die transformierten Pixel zu codieren, die von dem Puffer empfangen wurden.One Method and apparatus for performing compression and / or a decompression will be described. In one embodiment comprises the present invention is a system having a buffer, a wavelet transform unit and an encoder. The wavelet transformation unit has a Input connected to the buffer to a wavelet transform with pixels, stored in it and coefficients at an output to create. The encoder is to a wavelet transform unit connected to encode the transformed pixels from received in the buffer.

Bei der folgenden Beschreibung werden weitere Merkmale offenbart. Dabei können verschiedene Merkmale unterschiedlicher Ausführungsformen untereinander kombiniert werden.at The following description discloses further features. there can different features of different embodiments with each other be combined.

1A zeigt Kontextabhängigkeitsverhältnisse. Kinder („children") sind auf ihre Eltern bzw. Elternteile („parents") konditioniert. 1A shows context dependency relationships. Children ("children") are on their parents or parents ("Parents") conditioned.

2A zeigt eine Ordnung, die einer Rasterordnung ähnelt. 2A shows an order that resembles a grid order.

2B zeigt eine alternative Ausführungsform einer Ordnung, die hierin als kurze Saumordnung beschrieben wird. 2 B Figure 4 shows an alternate embodiment of an order described herein as a short fringe order.

2C zeigt eine alternative kurze Saumordnung. 2C shows an alternative short seam order.

3A bis 3H zeigen das Ergebnis einer jeden Anwendung des Transistor-Transformationsfilters für eine Vier-Niveau-Transformation auf einem Wavelet-Baum der vorliegenden Erfindung. 3A to 3H show the result of each application of the transistor transform filter for a four-level transform on a wavelet tree of the present invention.

4A ist ein Blockdiagramm eine Ausführungsform einer Vorwärts-/Invers-Filtereinheit zur Verwendung bei der Implementation der eindimensionalen Filter. 4A Figure 13 is a block diagram of one embodiment of a forward / inverse filter unit for use in the implementation of the one-dimensional filters.

4B ist ein Blockdiagramm einer Ausführungsform einer ersten Niveau-Vorwärts-Transformation gemäß der vorliegenden Erfindung. 4B FIG. 12 is a block diagram of one embodiment of a first level forward transform according to the present invention. FIG.

5 ist ein Blockdiagramm einer Ausführungsform einer vollständigen Vorwärtstransformation gemäß der vorliegenden Erfindung. 5 Figure 10 is a block diagram of one embodiment of a complete forward transform according to the present invention.

6 ist ein Zeitdiagramm hinsichtlich, wann Koeffizienten ausgegeben werden. 6 is a timing diagram as to when coefficients are spent.

7A bis 7H zeigen die Ergebnisse (Ausgaben) eines jeden eindimensionalen Filterbetriebs für die TT-Transformation. 7A to 7H show the results (outputs) of each one-dimensional filter operation for the TT transformation.

8 ist ein Blockdiagramm einer 10-Abgriffs-Vorwärts-/Invers-Filtereinheit. 8th Figure 10 is a block diagram of a 10-tap forward / inverse filter unit.

9 ist ein Blockdiagramm einer Ausführungsform der Überlappeinheit für die Vorwärts-/Invers-Filter der 8. 9 FIG. 12 is a block diagram of one embodiment of the overlap unit for the forward / inverse filters of FIG 8th ,

10 zeigt die Ordnung des Codestroms und die Ordnung innerhalb einer Codiereinheit. 10 shows the order of the code stream and the order within a coding unit.

11 zeigt die Bittiefe verschiedener Koeffizienten in einer Zwei-Niveau-TS-Transformation und einer TT-Transformationszerlegung von einem Eingangsbild mit b Bits pro Pixel. 11 shows the bit depth of various coefficients in a two-level TS transform and a TT transform decomposition from an input image with b bits per pixel.

12 ist eine Ausführungsform der Multiplizierer für das Frequenzband, das für eine Koeffizientenausrichtung bei der vorliegenden Erfindung verwendet wird. 12 FIG. 12 is one embodiment of the frequency band multiplier used for coefficient alignment in the present invention. FIG.

13A zeigt einen Koeffizienten, der in die wichtigsten Daten und weniger wichtigen Daten aufgeteilt ist. 13A shows a coefficient, which is divided into the most important data and less important data.

13B zeigt den verlustfreien Fall, wo keine Daten beseitigt bzw. gelöscht werden. 13B shows the lossless case where no data is deleted or deleted.

13C zeigt den Fall, wo eine Bitebene von Daten gelöscht bzw. auf die Seite gelegt wurde (d.h. Q = 2), da ein Beseitigen bzw. Löschen einer Bitebene einer Division durch 2 entspricht. 13C FIG. 12 shows the case where a bit-plane of data has been cleared (ie, Q = 2) since deleting a bit-plane corresponds to dividing by 2.

14 ist ein Flußdiagramm, das eine Ausführungsform der Operation des Kompressions-/Dekompressionssystems zeigt. 14 Fig. 10 is a flowchart showing an embodiment of the operation of the compression / decompression system.

15 zeigt eine Ausführungsform, wo 6 Bits für jede Baum verwendet werden. 15 shows an embodiment where 6 bits are used for each tree.

16 zeigt ein Flußdiagramm zum Codieren des wichtigsten Teils. 16 shows a flowchart for coding the most important part.

17 ist ein Blockdiagramm einer Ausführungsform der Formatiereinheit und des Kontextmodells, das während des wichtigsten Datencodier-Durchlaufs verwendet wird. 17 Figure 10 is a block diagram of one embodiment of the formatter and context model used during the most important data encoding run.

18 zeigt eine Ausführungsform einer ersten Bitebeneneinheit. 18 shows an embodiment of a first bit plane unit.

19 ist ein Flußdiagramm, das eine Ausführungsform der Codierverarbeitung einer LIC-Bitebene zeigt. 19 FIG. 10 is a flowchart illustrating an embodiment of the coding processing of a LIC bit plane. FIG shows.

20 ist ein Blockdiagramm einer Ausführungsform der vorausschauenden und Kontextmodell für weniger wichtige Daten. 20 Figure 12 is a block diagram of one embodiment of the predictive and contextual model for less important data.

21 ist ein Blockdiagramm einer Ausführungsform des Kontextmodells, das die Konditionierung für Kopfbits bzw. Headbits bereitstellt. 21 Figure 10 is a block diagram of one embodiment of the context model that provides conditioning for header bits.

22 zeigt die Speicherverwendung für eine Ausführungsform des Kontextmodells mit einer Konditionierung aller Nachbarn und Eltern ("parents"). 22 shows the memory usage for one embodiment of the context model with conditioning of all neighbors and parents.

23 ist ein Blockdiagramm einer Ausführungsform des Kontextmodells für Vorzeichenbits. 23 Figure 4 is a block diagram of one embodiment of the sign bit context model.

24 zeigt eine Ausführungsform von Parallelcodieren für die LIC. 24 shows an embodiment of parallel coding for the LIC.

25 ist ein Blockdiagramm einer Ausführungsform eines Vorderendes eines Druckers. 25 Fig. 10 is a block diagram of one embodiment of a front end of a printer.

26 ist ein Blockdiagramm einer Ausführungsform des Hinterendes des Druckers. 26 Figure 10 is a block diagram of one embodiment of the rear end of the printer.

27 ist ein Blockdiagramm einer alternativen Ausführungsform des Hinterendes des Druckers. 27 Figure 12 is a block diagram of an alternative embodiment of the rear end of the printer.

28 ist ein Blockdiagramm einer Ausführungsform eines integrierten Schaltungs-(IC)-Chips, der die Druckerkompression/Dekompression enthält. 28 Figure 10 is a block diagram of one embodiment of an integrated circuit (IC) chip that includes printer compression / decompression.

29 zeigt die grundsätzliche Zeitsteuerung bzw. den grundlegenden Zeitablauf des Systems während des Druckens. 29 shows the basic timing of the system during printing.

30 zeigt eine mögliche Ausführungsform, wie Pixeldaten organisiert sind. 30 Figure 1 shows one possible embodiment of how pixel data is organized.

31 zeigt einen Bandpuffer einer Seite. 31 shows a band buffer of a page.

32 zeigt ein Zeitsteuerdiagramm bzw. Zeitablaufdiagramm des Codierens, das aktuelle Speicherzugrifferfordernisse erläutert. 32 FIG. 12 is a timing diagram of encoding that illustrates current memory access requirements. FIG.

33 zeigt, wie zirkulares Adressieren verwendet werden kann, um das Schreiben von Daten zu handhaben, die größer als die gelesenen Daten sind. 33 Figure 4 illustrates how circular addressing can be used to handle the writing of data larger than the read data.

34 zeigt ein Codierer- und Decodiererpaar. 34 shows an encoder and decoder pair.

35 zeigt eine Ausführungsform eines binären Kontextmodells. 35 shows an embodiment of a binary context model.

36 zeigt eine alternative Ausführungsform eines binären Kontextmodells. 36 shows an alternative embodiment of a binary context model.

37 zeigt die Nachbarschaftskoeffizienten für jeden Koeffizienten einer Codiereinheit. 37 shows the neighborhood coefficients for each coefficient of a coding unit.

38 zeigt eine pyramidale Ausrichtung basierend auf einer MSE-Ausrichtung. 38 shows a pyramidal orientation based on MSE alignment.

39 zeigt eine MSE-Ausrichtung von Wavelet-Koeffizienten. 39 shows an MSE alignment of wavelet coefficients.

Es werden ein Verfahren und ein Apparat zur Kompression und Dekompression beschrieben. Bei der folgenden Beschreibung werden zahlreiche Details dargelegt, wie z.B. Verzögerungstypen, Bitraten, Filtertypen usw. Für einen Fachmann wird es jedoch klar sein, daß die vorliegende Erfindung ohne diese spezifischen Details praktiziert werden kann. In anderen Fällen werden gut bekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, und zwar eher als im Detail, um eine Verschleierung der vorliegenden Erfindung zu vermeiden.It become a method and apparatus for compression and decompression described. In the following description will be numerous details set forth as e.g. Delay types, Bitrates, filter types, etc. For however, it will be apparent to those skilled in the art that the present invention without these specific details can be practiced. In other make become well-known structures and devices in block diagram form shown, rather than in detail, to disguise the to avoid the present invention.

Manche Teile der detaillierten Beschreibungen, die folgen, werden in Termen von Algorithmen und symbolischen Darstellungen von Operationen mit Datenbits innerhalb eines Computerspeichers dargestellt. Dies algorithmischen Beschreibungen und Darstellungen stellen die Mittel dar, die von den Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um das Wesen ihrer Arbeit anderen Fachleuten effektiv zu vermitteln. Ein Algorithmus bedeutet hier und im allgemeinen eine selbstkonsistente Abfolge von Schritten, die zu einem gewünschten Ergebnis führen. Bei den Schritten handelt es sich um solche, die physikalische Manipulationen von physikalischen Quantitäten erfordern. Üblicherweise, aber nicht notwendigerweise, nehmen diese Quantitäten die Gestalt von elektrischen und magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und sonstwie manipuliert werden können. Es hat sich als zweckmäßig erwiesen, hauptsächlich aus Gründen einer einheitliche Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen und dergleichen zu bezeichnen.Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations with data bits within a computer memory. These algorithmic descriptions and representations represent the means used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art convey. An algorithm here and in general means a self-consistent sequence of steps leading to a desired result. The steps are those that require physical manipulations of physical quantities. Usually, but not necessarily, these quantities take the form of electrical and magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated. It has been found to be convenient, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, and the like.

Man sollte jedoch nicht vergessen, daß alle diese und ähnliche Terme entsprechenden physikalischen Quantitäten zugeordnet sind und lediglich zweckmäßige Benennungen darstellen, die diesen Quantitäten verliehen wurden. Wenn es nicht anderweitig festgestellt wird, wie es sich aus der folgenden Diskussion ergibt, wird man erkennen, daß durchgehend bei der vorliegenden Erfindung die Diskussionen, die Terme, wie z.B. "Verarbeiten" oder "Berechnen" oder "Errechnen" oder "Bestimmen" oder "Anzeigen" oder dergleichen, auf die Wirkung und auf die Verarbeitungen eines Computersystems oder einer ähnlichen elektronischen Berechnungsvorrichtung Bezug nehmen, die Daten manipuliert und transformiert, die als physikalische (elektronische) Quantitäten innerhalb der Register und Speicher des Computersystems dargestellt werden, und zwar in andere Daten, die in ähnlicher Weise als physikalische Quantitäten innerhalb der Speicher oder Register oder anderer derartiger Informationsspeicher, Übertragungs- oder Anzeigevorrichtungen gespeichert oder registriert werden.you but should not forget that all these and similar Terme corresponding physical quantities are assigned and only appropriate names represent those quantities were awarded. Unless otherwise stated, how it turns out from the following discussion, one will realize that throughout in the present invention, the discussions, the terms, such as e.g. "Processing" or "calculating" or "calculating" or "determining" or "displaying" or the like, on the effect and on the processing of a computer system or a similar one electronic calculation device that manipulates data and transformed as physical (electronic) quantities within the registers and memory of the computer system are displayed, into other data that is similar to physical quantities within the memories or registers or other such information storage, transmission or display devices saved or registered.

Die vorliegende Erfindung betrifft ebenso einen Apparat, um die Operationen darin durchzuführen. Dieser Apparat kann speziell für die erforderliche Zwecke konstruiert sein oder er kann einen Allzweckcomputer umfassen, der durch ein Computerprogramm selektiv aktiviert oder rekonfiguriert wird, das in dem Computer gespeichert ist. Ein derartiges Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie z.B. in jeder Art von Platte einschließlich Diskette, optischer Disk, CD-ROMs und magneto-optische Disk, Nur-Lese-Speicher (ROMs), Speicher mit wahlfreiem Zugriff (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten oder jeglichen Typ von Medium, das zum Speichern elektronischer Instruktionen geeignet ist, wobei jede Speichereinrichtung mit einem Computersystembus verbunden sein kann. Die Algorithmen und Anzeigen, die hierin dargestellt sind, stehen nicht inhärent mit irgendeinem bestimmten Computer oder Apparat in Beziehung.The The present invention also relates to an apparatus for carrying out the operations to perform in it. This Apparatus can be specially designed for the required purposes can be constructed or it can be a general purpose computer which is selectively activated by a computer program or is reconfigured, which is stored in the computer. Such a thing Computer program can be stored in a computer-readable storage medium be such as in any kind of disk including floppy disk, optical disk, CD-ROMs and magneto-optical disk, read-only memory (ROMs), memory with random access (RAMs), EPROMs, EEPROMs, magnetic or optical cards or any type of medium for storage electronic instructions is suitable, each memory device can be connected to a computer system bus. The algorithms and advertisements presented herein are not inherent any particular computer or apparatus in relation.

Verschiedene Allzweckgeräte können mit Programmen verwendet werden, die den hierin gegebenen Lehren entsprechen, oder es kann sich als zweckmäßig erweisen, spezialisiertere Apparate aufzubauen, um die erforderlichen Verfahrensschritte auszuführen. Die erforderliche Struktur für eine Vielfalt dieser Maschinen wird sich aus der folgenden Beschreibung ergeben. Zusätzlich wird die vorliegende Erfindung nicht unter Bezugnahme auf irgendeine bestimmte Programmiersprache beschrieben. Man wird begrüßen, daß eine Vielfalt von Programmiersprachen verwendet werden kann, um die Lehren der Erfindung, wie hierin beschrieben, zu realisieren.Various general purpose devices can be used with programs that are in accordance with the teachings herein or it may prove appropriate, more specialized Set up apparatuses to carry out the required process steps. The required structure for A variety of these machines will become apparent from the following description result. additionally The present invention will not be described with reference to any certain programming language described. It will be appreciated that a variety of Programming languages can be used to implement the teachings of the invention, as described herein.

Die folgenden Terme werden in der folgenden Beschreibung verwendet. Eine Definition für diese verschiedenen Terme wurde mit aufgenommen. Die Definitionen stellen grundsätzlich keine Beschreibung des Standes der Technik dar, sondern sollen das Verständnis der Lehre der vorliegenden Erfindung erleichtern. ABS-Kodieren: ("ABS coding) Ein Verfahren parallelen Entropiekodierens, das einfache Kodes (z.B. Laufkodes) zur Biterzeugung und Wahrscheinlichkeitsschätzung basierend auf verwendeten Kodewörtern (z.B. Tabellenwahrscheinlichkeitsschätzung) verwendet. Bei einer Ausführungsform beinhaltet das ABS-Kodieren ebenso ein Verfahren zum Multiplexen und Demultiplexen von Strömen von verschiedenen Kodierern. Ausrichtung: ("alignment") Der Grad bzw. Umfang der Verschiebung der Transformationskoeffizienten in einem Frequenzband bezüglich der anderen Frequenzbänder. arithmetisches Kodieren: ("arithmetic coding") Shannon/Elias-Kodieren mit endlicher Präzisionsarithmetik, nicht notwendigerweise ein binärer Entropiekodierer. B-Kodieren: ("B-coding") Ein binärer Entropiekodierer, der einen Automaten mit finiten Zuständen ("finit state machine" bzw. FSM) zur Kompression verwendet. Anders als beim Huffman-Kodieren führt die Verwendung des Automaten mit finiten Zuständen zu einer guten Handhabung von binären Symbolen und ist nützlich für eine Spanne von Eingangswahrscheinlichkeiten. binärer Entropiekodierer: ("binary entroyp coder") Ein rauschfreier Kodierer, der auf binäre (Ja/Nein) Entscheidungen wirkt, die häufig als das höchstwahrscheinliche Symbol (mps bzw. "most probable symbol") und als das am wenigsten wahrscheinliche Symbol (lps bzw. "leat probable symbol") ausgedrückt werden. Binärstil: ("binary-style") Codierungsstil mit randfüllenden bzw. kantenfüllenden ("edge-fill") Gray-Kodieren der Pixel und ein bestimmtes Kontextmodell. Binärstil-Kontextmodell: ("binary-style context model") Ein Kontextmodell für Bi-Niveau bzw. Zwei-Niveau und Begrenzt-Niveau-Bilddaten. Bit-Signifikanz: ("bit-significance") Eine Zahlendarstellung, ähnlich zu Vorzeichen und Betrag, mit Kopfbits bzw. Headbits, gefolgt von dem Vorzeichenbit, gefolgt von Schwanzbits bzw. Tail-Bits, falls welche vorhanden sind. Das Einbetten kodiert in Bit-Ebenen-Ordnung bezüglich dieser Darstellung. kind-basierte Ordnung: ("child-based order") Eine Abtastordnung bzw. Abtastreihenfolge durch ein zweidimensionales Bild. Sie ähnelt einer Rasterordnung mit der Ausnahme, daß das Abtasten („scanning") auf Zwei-mal-Zwei-Blöcken arbeitet bzw. wirkt. Man betrachte ein Abtasten eines "Elternteil"-Frequenzbandes in Rasterordnung. Jeder Koeffizient wird vier Kinder haben. Diese Kinder werden von links oben, rechts oben, links unten und rechts unten gefolgt von dem nächsten Elternteil und dem nächsten Satz von vier Kindern usw. bis zum Ende der Zeile geordnet. Dann kehrt die Verarbeitung zu den nächsten zwei Zeilen zurück und endet schließlich in der unteren rechten Ecke. Keine Zeilen werden übersprungen. Eine kind-basierte Ordnung wird ebenso als eine 2x2-Blockordnung bezeichnet. Koeffizient: ("coefficient") Komponenten nach der Transformation. Komponenten: ("components") Bestandteile des Bildes. Die Komponenten bilden die Pixel. Zum Beispiel stellen die roten, grünen und blaue Bänder Komponentenbänder dar. Jedes einzelne Pixel ist aus einem roten, grünen und blauen Komponenten gebildet. Komponenten und Komponentenbänder können jeglichen Typ von Information enthalten, der eine räumliche Abbildung auf das Bild aufweist. Kontextmodell: ("context model") Kausal verfügbare Information relativ zu dem aktuell zu kodierenden Bit, die historisch gelernte Information über das aktuelle Bit wiedergibt, wobei eine konditionelle Wahrscheinlichkeitsschätzung zum Entropiekodieren ermöglicht wird. Bei binären Bildern stellt ein möglicher Kontext für ein Pixel die vorhergehenden zwei Pixel in derselben Zeile und drei Pixel von der vorhergehenden Zeile dar. Zerlegungsniveau: ("decomposition level") Platz in der Wavelet-Zerlegungspyramide. Dies steht in direktem Zusammenhang mit der Auflösung. effiziente Transformation: ("efficient transform") Transformation, die die beste Energieverdichtung in den Koeffizienten erzielt, während die minimale Anzahl von Bits verwendet wird, um jene Koeffizienten darzustellen. eingebettetes Kontextmodell: ("embedded context model") Ein Kontextmodell, das die Kontextbins separiert und zu Niveaus der Wichtigkeit in einer solchen Art und Weise führt, daß eine effektive verlustbehaftete Kompression erhalten wird, falls die wichtigeren Werte beibehalten werden. eingebettet mit Ordnen: ("embedded with ordering") Ein spezieller Fall eingebetteter Kontextmodelle, wo es keine explizite Markierung bzw. Benennung von Wichtigkeit gibt, sondern eher die komprimierten Daten so geordnet werden, daß die wichtigsten Daten vorne sind. eingebettete Quantisierung: ("embedded quantization") Quantisierung, die durch den Kodestrom implementiert wird. Zum Beispiel, falls die Wichtigkeitsniveaus in Reihenfolge plaziert sind, und zwar von der wichtigsten zu der am wenigsten wichtigen, dann wird die Quantisierung durch einfaches Abschneiden des Kodestroms durchgeführt. Dieselbe Funktionalität ergibt sich bei Tags bzw. Markierungen, Markern, Pointern bzw. Zeigern, oder einer anderen Signalisierung. Mehrfachquantisierungen können mit einem Bild beim Dekodieren durchgeführt werden, aber nur eine eingebettete Quantisierung kann zur Kodierzeit durchgeführt werden. Entropiekodierer: ("entropy code") Eine Vorrichtung, die ein aktuelles Bit basierend auf einer Wahrscheinlichkeitsschätzung kodiert oder dekodiert. Ein Entropiekodierer kann ebenso hierin als ein Multikontext-Binär-Entropiekodierer bezeichnet werden. Der Kontext des aktuellen Bits ist eine gewisse gewählte Konfiguration von "naheliegenden" Bits und ermöglicht eine Wahrscheinlichkeitsschätzung für die beste Darstellung des aktuellen Bits (oder mehrerer Bits). Bei einer Ausführungsform kann ein Entropiekodierer einen binären Kodierer, einen parallelen Lauflängenkodierer oder einen Huffman-Kodierer enthalten. Eintrittspunkt: ("entry point") Ein Punkt in den kodierten Daten, der mit einem bekannten Kodierzustand startet. Der Kodierer kann das Kodieren bei diesem Punkt starten, ohne die vorhergehenden Daten zu dekodieren. In den meisten Fällen erfordert dies, daß der Kontext und der binäre Entropiekodierer in einen Anfangszustand zurückgesetzt werden. Die kodierten Daten für jede Kodiereinheit beginnen bei einem Eintrittspunkt. Festlänge: ("fixed-length") Ein System, das einen spezifischen Datenblock in einen spezifischen Block komprimierter Daten konvertiert, z.B. BTC (Block-Abschneidekodieren) und gewisse Formen von VQ (Vektorquantisierung). Festlängenkodes dienen für Festraten und Festgrößenanwendungen, aber die Raten-Verzerrungs-Leistungsfähigkeit ("Rate Distortion"-Leistungsfähigkeit) (siehe z.B. Anneal K. Jain, "Fundamentals of Digital Image Processing", Prentice Hall, 1989), ist häufig schlecht im Vergleich mit Systemen mit variabler Rate. Festrate: ("fixed-rate") Eine Anwendung oder ein System, das eine gewisse Pixelrate aufrechterhält und einen Kanal mit begrenzter Bandweite hat. Bei einer Ausführungsform wird, um dieses Ziel zu erreichen, eine lokale mittlere Kompression eher als eine globale mittlere Kompression erzielt. Zum Beispiel erfordert MPEG eine Festrate bzw. feste Rate. Festgröße: ("fixed-size") Eine Anwendung oder ein System, das einen Puffer begrenzter Größe umfaßt. Bei einer Ausführungsform wird zum Erreichen dieses Ziels eine globale mittlere Kompression erreicht, z.B. ein Druckpuffer. (Die Anwendung kann eine Festraten-, eine Festgrößen-Anwendung oder eine Anwendung mit beidem sein.) Frequenzband: ("frequency band") Jedes Frequenz beschreibt eine Gruppe von Koeffizienten, die sich aus derselben Sequenz von Filteroperationen ergeben. Kopfbits: Eine Bitsignifikanzdarstellung, die Kopfbits stellen die Be ("head bits") tragbits von den höchstsignifikanten bzw. höchstwertigen bis zu und einschließlich des ersten Bits ungleich Null dar. Huffman-Kodierer: ("Huffman Coder") Im allgemeinen ein Festlängenkode, der eine ganze Anzahl von Bits für jedes Symbol erzeugt. Wichtigkeitsniveaus: ("importance levels") Eine Einheit kodierter Daten, die vor der Kompression einer ganze Bitebene der eingebetteten Daten entspricht. Der Wichtigkeitspegel beinhaltet alle geeigneten Bitebenen von den verschiedenen Koeffizientenfrequenzbändern. LPS (am wenigsten wahrscheinliches Symbol): ("LPS (Least Probable Symbol")) Das Resultat einer binären Entscheidung mit weniger als 50% Wahrscheinlichkeit. Wenn zwei Resultate bzw. Ergebnisse gleich wahrscheinlich sind, ist es unwichtig, welches als MPS oder als LPS bezeichnet wird, solange sowohl der Kodierer als auch der Dekodierer dieselbe Bezeichnung durchführen. verlustfreies/rauschfreies/reversibles Kodieren: ("lossless/noiseless/reversible coding") Das Komprimieren von Daten in einer Art und Weise, die eine perfekte Rekonstruktion der ursprünglichen Daten erlaubt. verlustbehaftetes Kodieren: ("lossy coding") Das Kodieren von Daten, das keine perfekte Rekonstruktion der ursprünglichen Daten garantiert. Die Änderungen der ursprünglichen Daten können in einer solchen Art und Weise durchgeführt werden, daß sie nicht visuell beanstandbar oder detektierbar sind. Häufig ist eine feste Rate möglich. MPS (höchstwahrscheinliches Symbol): ("MPS(Most Probable Symbol") Das Ergebnis bzw. Resultat einer binären Entscheidung mit mehr als 50% Wahrscheinlichkeit. überlappte Transformation: ("overlapped transform") Eine Transformation, wo ein einzelner Quellenwertpunkt bzw. Quellenabtastwertpunkt zu mehreren Koeffizienten derselben Frequenz beiträgt. Beispiele sind viele Wavelets und die überlappte orthogonale Transformation ("Lapped Orthogonal Transform" bzw. LOT). Elternteil-Koeffizient: ("parent coefficient") Der Koeffizient oder Pixel in dem nächsthöheren pyramidischen Niveau, der denselben Bildraum wie der aktuelle Koeffizient oder Pixel abdeckt. Zum Beispiel sind das Elternteil für die 1SC-Koeffizienten die 2SD-Koeffizienten, die das Elternteil für die 3SD-Koeffizienten in Fig. 1A sind. Wahrscheinlichkeits-Schätzmaschine/Modul: ("Probability Estimation Machine/Module") Teil eines Kodiersystems, das die Wahrscheinlichkeit innerhalb eines Kontextes verfolgt bzw. deren Spur aufzeichnet. Progressive Pixeltiefe: ("progressive pixel depth") Ein Kodestrom, der mit tiefergehenden Bitebenen von Daten bei voller Bildauflösung geordnet wird. progressiv pyramidisch: ("progressive pyramidal") Eine Abfolge von Auflösungen, wo jede geringere Auflösung ein linearer Faktor von 2 in jeder Dimension ist (ein Faktor von 4 hinsichtlich der Fläche). Q-Kodierer: ("Q-Coder") Ein binärer Arithmetikkodierer, wo Additionen für Multiplikationen substituiert wurden und Wahrscheinlichkeiten auf diskrete Werte beschränkt wurden und Wahrscheinlichkeitsschätzungen aktualisiert werden, wenn Bits ausgegeben werden. Rasterordnung: ("raster order") Ein Abtastordnung bzw. Abtastreihenfolge durch ein zweidimensionales Bild. Sie beginnt in der oberen linken Ecke, bewegt sich von links nach rechts, dann kehrt sie zu der linken Seite der nächsten Zeile zurück, schließlich endet sie in der unteren rechten Ecke. Keine Zeilen werden übersprungen. reversibel Transformation: ("reversible transform") Bei einer Ausführungsform stellt eine reversible Transformation eine effiziente Transformation dar, die mit einer Ganzzahl-Arithmetik implementiert wird, deren komprimierte Ergebnisse zu den ursprünglichen Werten rekonstruiert werden können. Schwanzbits (oder Schwanz): ("tail-bits (or tail)") Eine Bit-Signifikanz-Darstellung, die Schwanzbits stellen Betragbits dar, die weniger signifikant sind als die höchstwertigen bzw. höchstsignifikanten Bits ungleich Null. Tile-Datensegment: ("tile data segment") Abschnitt des Kodestroms, der vollständig eine Kodiereinheit beschreibt. "Tile" kann man als Block oder Gruppe auffassen. TS-Transformation: Zwei-Sechs-Transformation("Two-Six"-Transformation), ("TS-transform") ein spezifisches reversibles Wavelet-Filterpaar mit einem 2-Abgriffs-Tiefpaß-Analyse- und einem 6-Abgriffs-Hochpaß-Analysefilter. Die Synthesefilter stellen Quadraturspiegel ("quadrature mirror") der Analysefilter dar. TT-Transformation: ("TT-transform") Zwei-Zehn-Transformation("Two-Ten"-Transformation), ein spezifisches reversibles Wavelet-Filterpaar mit einem 2-Abgriffs-Tiefpaß-Analyse- und einem 10-Abgriffs-Hochpaß-Analysefilter. Die Synthesefilter ("Synthesis"-Filter) sind Quadraturspiegel der Analysefilter. vereinigt verlustfrei/verlustbehaftet:("unified lossless/lossy") Dasselbe Kompressionssystem liefert einen Kodestrom, der zu einer verlustfreien oder verlustbehafteten Rekonstruktion in der Lage ist. Bei einer Ausführungsform der vorliegenden Erfindung ist dieser Kodestrom zu beidem in der Lage, ohne Einstellungen an dem Kodierer vorzunehmen oder diesem Befehle zu geben. Wavelet-Filter: ("wavelet filters") Die Hoch- und Tiefpaßsynthese- und -analyse-Filter, die bei der Wavelet-Transformation verwendet werden. Wavelet-Transformation: ("wavelet transform") Eine Transformation mit sowohl "Frequenz"- als auch "Zeit (oder Raum)"-Domänenbeschränkungen bzw. Raumnebenbedingungen. Bei einer Ausführungsform stellt sie eine Transformation dar, die einen Hochpaßfilter und einen Tiefpaßfilter umfaßt. Die sich ergebenden Koeffizienten werden um zwei dezimiert (kritisch gefiltert) und die Filter werden auf die Tiefpaßkoeffizienten angewendet. Wavelet-Bäume: ("wavelet trees") Die Koeffizienten und die Pixel, die mit einem einzigen Koeffizienten in dem SS-Abschnitt der Wavelet-Zerlegung höchsten Niveaus in Beziehung stehen. Die Anzahl von Koeffizienten stellen eine Funktion der Anzahl von Niveaus dar. Die Fig. 1A zeigt die Koeffizienten, die in einem Wavelet-Baum enthalten sind. Die Spanne eines Wavelt-Baumes hängt von der Anzahl der Zerlegungsniveaus ab. Zum Beispiel umspannt mit einem Zerlegungsniveau ein Wavelet-Baum vier Pixel, mit zwei Niveaus umspannt er 16 usw. Die unten dargestellte Tabelle 1 zeigt die Anzahl der Pixel, die durch einen Wavelet-Baum für verschiedene Niveaus beeinflußt werden. In zwei Dimensionen umfaßt jeder Wavelet-Baum drei Unterbäume, die SD, DD und DS genannt werden. The following terms are used in the following description. A definition for these different terms was included. The definitions are not in principle a description of the prior art, but are intended to facilitate the understanding of the teachings of the present invention. ABS coding: ("ABS coding) A method of parallel entropy coding that uses simple codes (eg, run codes) for bit generation and probability estimation based on codewords used (eg, table likelihood estimation). In one embodiment, the ABS encoding also includes a method of multiplexing and demultiplexing streams from different encoders. Alignment: ("alignment") The degree of displacement of the transform coefficients in one frequency band with respect to the other frequency bands. arithmetic coding: ("arithmetic coding") Shannon / Elias finite precision arithmetic, not necessarily a binary entropy coder. B-coding: ("B-coding") A binary entropy coder that uses a finite state machine (FSM) for compression. Unlike Huffman coding, the use of the finite state machine results in good binary symbol handling and is useful for a range of input probabilities. binary entropy coder: ("binary entroyp coder") A noise-free encoder that works on binary (yes / no) decisions, often referred to as the most probable symbol (mps) and the least probable symbol (lps) , Binary style: ("binary-style") Encoding style with edge-fill or edge-fill Gray encoding of the pixels and a specific context model. Binary style context model: ("binary-style context model") A context model for bi-level and bi-level and bounded-level image data. Bit significance: ("bit-significance") A number representation, similar to sign and magnitude, with head bits followed by the sign bit, followed by tail bits, if any. Embedding encodes in bit-level order with respect to this representation. child-based order: ("child-based order") A scanning order by a two-dimensional image. It is similar to raster ordering except that the scanning works on two-by-two blocks Consider sampling a "parent" frequency band in raster order Each coefficient will have four children Children are ordered to the end of the line from top left, top right, left bottom and bottom right, followed by the next parent and the next set of four children, etc. Then processing returns to the next two lines and ends in the second line No lines are skipped, a child-based order is also referred to as a 2x2 block order. Coefficient: ("coefficient") Components after the transformation. Components: ("components") Components of the picture. The components form the pixels. For example, the red, green, and blue bands represent component bands. Each individual pixel is formed from a red, green, and blue component. Components and component bands may contain any type of information that has a spatial mapping on the image. Context model: ("context model") Causally available information relative to the currently-to-be-coded bit representing historically learned information about the current bit, allowing for conditional probability estimation for entropy coding. For binary images, one possible context for a pixel is the previous two pixels in the same row and three pixels from the previous row. Decomposition level: ("decomposition level") Place in the wavelet decomposition pyramid. This is directly related to the resolution. efficient transformation: ("efficient transform") Transformation that achieves the best energy compression in the coefficients, while the minimum number of bits is used to represent those coefficients. embedded context model: ("embedded context model") A context model that separates the context bins and results in levels of importance in such a way that effective lossy compression is obtained if the more important values are preserved. embedded with ordering: ("embedded with ordering") A special case of embedded context models, where there is no explicit tagging of importance, but rather the compressed data is ordered so that the most important data is in front. embedded quantization: ("embedded quantization") Quantization implemented by the code stream. For example, if the importance levels are placed in order, from the most important to least important, quantization is performed by simply cutting off the code stream. The same functionality results in tags or markers, markers, pointers or pointers, or other signaling. Multiple quantizations can be performed on a decoded image, but only embedded quantization can be performed at encode time. Entropy coder: ("entropy code") A device that encodes or decodes a current bit based on a probability estimate. An entropy coder may also be referred to herein as a multicontext binary entropy coder. The context of the current bit is some chosen configuration of "nearby" bits and allows a probability estimate for the best representation of the current bit (or more bits). In one embodiment, an entropy coder may include a binary coder, a parallel run-length coder, or a Huffman coder. Entry point: ("entry point") A point in the coded data starting with a known coding state. The encoder can start encoding at this point without decoding the previous data. In most cases, this requires the context and binary entropy coder to be reset to an initial state. The coded data for each coding unit starts at an entry point. Fixed length: ("fixed-length") A system that converts a specific block of data into a specific block of compressed data, such as BTC (block clipping) and certain forms of VQ (vector quantization). Fixed-length codes are for fixed rates and fixed-size applications, but Rate Distortion performance (see, eg, Anneal K. Jain, "Fundamentals of Digital Image Processing", Prentice Hall, 1989) is often poor compared to Variable rate systems. Fixed rate: ("fixed-rate") An application or system that maintains a certain pixel rate and has a narrow bandwidth channel. In one embodiment, to achieve this goal, local average compression is achieved rather than global average compression. For example, MPEG requires a fixed rate. Fixed size: ("fixed-size") An application or system that includes a buffer of limited size. In one embodiment, to achieve this goal, global average compression is achieved, eg, a print buffer. (The application can be a fixed-rate, a fixed-size application, or an application with both.) Frequency band: ("frequency band") Each frequency describes a set of coefficients resulting from the same sequence of filter operations. header bits: A bit significance representation, the head bits represent the Be ("head bits") Tragbits of the most significant or most significant up to and including the first bit is not equal to zero. Huffman encoder: ("Huffman Coder") In general, a fixed-length code that generates an integer number of bits for each symbol. Importance levels: ("importance levels") A unit of encoded data that corresponds to the embedded data before it compresses an entire bit-level. The importance level includes all appropriate bit planes from the different coefficient frequency bands. LPS (Least Probable Symbol): ("LPS (Least Probable Symbol")) The result of a binary decision with less than 50% probability. If two results are equally likely, it is unimportant what will be referred to as MPS or LPS as long as both the encoder and the decoder perform the same designation. lossless / noise-free / reversible coding: ("lossless / noiseless / reversible coding") Compressing data in a way that allows a perfect reconstruction of the original data. lossy coding: (lossy coding) Coding data that does not guarantee a perfect reconstruction of the original data. The changes to the original data may be made in such a manner that they are not visually objectionable or detectable. Often a fixed rate is possible. MPS (Most Probable Symbol): ("MPS (Most Probable Symbol)" The result or result of a binary decision with more than 50% probability. overlapped transformation: ("overlapped transform") A transformation where a single source point contributes to multiple coefficients of the same frequency. Examples are many wavelets and the overlapped orthogonal transform (LOT). Parent coefficient: ("parent coefficient") The coefficient or pixel in the next higher pyramidal level that covers the same image space as the current coefficient or pixel. For example, the parent for the 1SC coefficients are the 2SD coefficients that are the parent for the 3SD coefficients in Figure 1A. Probability Estimator / Module: ("Probability Estimation Machine / Module") Part of a coding system that tracks the likelihood within a context or records its lane. Progressive pixel depth: ("progressive pixel depth") A code stream ordered with deeper bit planes of data at full image resolution. progressive pyramidal: ("progressive pyramidal") A sequence of resolutions where each lower resolution is a linear factor of 2 in each dimension (a factor of 4 in area). Q-coder: ("Q-coder") A binary arithmetic coder where additions for multiplications have been substituted and probabilities have been limited to discrete values and probability estimates are updated as bits are output. Grid order: ("raster order") A scanning order by a two-dimensional image. It starts in the upper left corner, moves from left to right, then returns to the left side of the next line, finally ending in the lower right corner. No lines are skipped. reversible transformation: ("reversible transform") In one embodiment, a reversible transformation is an efficient transformation implemented with integer arithmetic whose compressed results can be reconstructed to the original values. Tail bits (or tail): ("tail-bits (or tail)") A bit significance representation, the tail bits represent magnitude bits that are less significant than the non-zero most significant bits. Tile data segment: ("tile data segment") Section of the code stream that completely describes a coding unit. "Tile" can be understood as a block or group. TS-transform: Two-Six transform ( "Two-Six" transformation) ( "TS-transform") a specific reversible wavelet filter pair with a 2-tap low-pass analysis and a 6-tap high pass analysis filter. The synthesis filters represent quadrature mirrors of the analysis filters. TT transformation: ("TT-transform") Two-Ten Transform, a specific reversible wavelet filter pair with a 2-tap low-pass analysis and a 10-tap high pass analysis filter. The synthesis filters ("Synthesis" filters) are quadrature mirrors of the analysis filters. combined lossless / lossy :( "unified lossless / lossy") The same compression system provides a code stream capable of lossless or lossy reconstruction. In one embodiment of the present invention, this code stream is capable of both without making adjustments to or giving commands to the encoder. Wavelet filter: ("wavelet filters") The high and low pass synthesis and analysis filters used in the wavelet transform. Wavelet transformation: ("wavelet transform") A transformation with both "frequency" and "time (or space)" domain constraints. In one embodiment, it represents a transformation that includes a high pass filter and a low pass filter. The resulting coefficients are decimated by two (critically filtered) and the filters are applied to the low-pass coefficients. Wavelet trees: ("wavelet trees") The coefficients and the pixels related to a single coefficient in the SS portion of the highest level wavelet decomposition. The number of coefficients represents a function of the number of levels. Figure 1A shows the coefficients contained in a wavelet tree. The span of a wavelet tree depends on the number of decomposition levels. For example, with a decomposition level, a wavelet tree spans four pixels, with two levels it spans 16 and so on. Table 1 below shows the number of pixels that are affected by a wavelet tree for different levels. In two dimensions, each wavelet tree includes three subtrees, called SD, DD, and DS.

Tabelle 1 Spanne eines Wavelet-Baumes für unterschiedliche Niveaus einer Dekompression

Figure 00220001
Table 1 Span of a wavelet tree for different levels of decompression
Figure 00220001

Die vorliegende Erfindung stellt ein Kompressions-/Dekompressionssystem bereit mit einem Kodierabschnitt und einem Dekodierabschnitt. Der Kodierabschnitt ist für das Kodieren der Eingangsdaten verantwortlich, um komprimierte Daten zu erzeugen, während der Dekodierabschnitt für das Dekodieren zuvor kodierter Daten verantwortlich ist, um eine rekonstruierte Version der ursprünglichen Eingangsdaten zu erzeugen. Die Eingangsdaten können eine Vielfalt von Datentypen umfassen, wie z.B. Bilddaten (Stillbilder oder Videobilder), Audiodaten usw. Bei einer Ausführungsform handelt es sich bei den Daten um digitale Signaldaten; jedoch sind digitalisierte analoge Daten, Textdatenformate und andere Formate möglich. Die Quelle der Daten für den Kodierabschitt und/oder den Dekodierabschnitt kann ein Speicher oder ein Kanal sein.The The present invention provides a compression / decompression system ready with a coding section and a decoding section. Of the Coding section is for the coding of the input data responsible for compressed data to produce while the decoding section for decoding previously coded data is responsible for one reconstructed version of the original To generate input data. The input data can be a variety of data types include, e.g. Image data (still images or video images), audio data etc. In one embodiment is the data digital signal data; however, are Digitized analog data, text data formats and other formats possible. The source of the data for the coding section and / or the decoding section may be a memory or be a channel.

Bei der vorliegenden Erfindung können Elemente des Kodierabschnittes und/oder des Dekodierabschnittes in Hardware oder Software implementiert bzw. realisiert werden, wie z.B. jene, die in einem Computersystem verwendet werden. Die vorliegende Erfindung stellt ein verlustfreies Kompressions-/Dekompressionssystem dar. Die vorliegende Erfindung kann ebenso konfiguriert werden, um verlustbehaftet Kompression/Dekompression durchzuführen.at of the present invention Elements of the coding section and / or the decoding section implemented or realized in hardware or software, such as. those used in a computer system. The The present invention provides a lossless compression / decompression system The present invention may also be configured to perform lossy compression / decompression.

Das System der vorliegenden Erfindung verwendet schnelle verlustbehaftete/verlustfreie Kompression durch reversible Wavelets, was im folgenden genauer beschrieben wird. Das System kann einen Drucker, z.B. einen Laserdrucker enthalten. Bei einer Ausführungsform verwendet der Drucker eine preisgünstige Festplatte, um eine aufbereitete Seite zu speichern, wobei stark der Umfang von benötigtem teuerem Speicher mit wahlfreiem Zugriff (RAM) reduziert wird. Die Kompression wird verwendet, um die beschränkte Bandbreite der Festplatte oder der Speichervorrichtung an die größere Bandbreite, die von der Druckmaschine benötigt wird, anzupassen. Die Kodiertechnologie der vorliegenden Erfindung erfüllt die Hochgeschwindigkeits-, Echtzeitanforderungen der Druckmaschine, während die vorliegende Erfindung entweder eine exzellente verlustfreie oder verlustbehaftete Kompression bereitstellt, wie sie durch die Bildcharakteristiken und die diskontinuierliche Natur der Festplatte gefordert werden.The System of the present invention uses fast lossy / lossless Compression by reversible wavelets, which is more accurate below is described. The system may include a printer, e.g. a laser printer contain. In one embodiment The printer uses a reasonably priced hard disk to create a save the edited page, which greatly reduces the amount of expensive Memory with random access (RAM) is reduced. The compression is used to the limited Bandwidth of the hard disk or storage device to the larger bandwidth, needed by the printing press will adapt. The coding technology of the present invention Fulfills the high-speed, real-time requirements of the printing press, while the present invention either an excellent lossless or provides lossy compression, as evidenced by the image characteristics and the discontinuous nature of the hard drive are required.

Die folgende detaillierte Beschreibung stellt eine allgemeine Übersicht über die Kompression durch reversible Wavelets, eine komprimierte Vollbild-Speicheranwendung, einen Farblaserdrucker und Ausführungsformen eines Druckerchips dar. Die Aufbereitungsmaschine des Druckers verwendet eine Festplatte zum Speichern. Weil die Festplatte langsamer ist als die Druckmaschine, wird die Kompression verwendet, um eine Ratenanpassung vorzunehmen. Eine Anzeigenliste-Technologie kann ebenso verwendet werden, um den während der Aufbereitung erforderlichen Speicher zu verringern. Eine Aufbereitungsmaschine, die auf einer Anzeigenliste basiert, erlaubt es dem Kompressionssystem, Bänder des Bildes unabhängig handzuhaben. Bemerkenswert ist, daß, obwohl die vorliegende Erfindung in Termen eines Druckersystems beschrieben wird, die vorliegende Erfindung auf andere Systeme anwendbar ist, die Kompressions- und/oder Dekompressionsuntersysteme als Teile davon enthalten.The The following detailed description provides a general overview of the Reversible wavelet compression, a compressed full-screen storage application, a Color laser printers and embodiments of a printer chip. The reconditioning machine of the printer is used a hard disk to save. Because the hard drive is slower As the printing press, the compression is used to rate matching make. An ad list technology can also be used be around during the to reduce the processing required storage. A processing machine, based on an ad list, allows the compression system to bands of the picture independently handle. It is noteworthy that, although the present invention is described in terms of a printer system, the present Invention is applicable to other systems, the compression and / or Decompression subsystems included as parts thereof.

Ebenso wird hierin ein eingebettetes vereinigtes bzw. vereinheitlichtes verlustfreies/verlustbehaftetes Kompressionssystem beschrieben. Die eingebettete Charakteristik des Systems ermöglicht es, daß die Qualität durch die Übertragungsrate der Platte bzw. Disk bestimmt wird. Für leicht komprimierte Bilder (z.B. die meisten Dokumente mit Text und/oder Linienzeichnung) wird eine verlustfreie Kompression erzielt. Für schwieriger zu komprimierende Bilder (z.B. Dokumente mit rauschbehafteten natürlichen Bildern und/oder Halbtönen) wird eine verlustbehaftete Kompression hoher Qualität erzielt.As well herein is an embedded unified lossless / lossy compression system described. The embedded characteristic of the system allows the quality through the transmission rate the disc or disc is determined. For slightly compressed pictures (e.g., most documents with text and / or line drawing) achieves lossless compression. For more difficult to compress Images (e.g., documents with noisy natural images and / or halftones) achieves high quality lossy compression.

Für eine Beschreibung eines Systems bzw. der Systeme, die sowohl verlustfreie Kompression als auch eine verlustbehaftete Kompression hoher Qualität von Farbbildern unterstützen, wird auf die US-Patentanmeldung Nr. 08/642,518, eingereicht am 3. Mai 1996, mit dem Titel "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device-Dependent Parser", und auf die US-Patentanmeldung Nr. 08/436,662, eingereicht am 8. Mai 1995, mit dem Titel "Method and Apparatus for Reversible Color Conversion", verwiesen.For a description of a system or systems that provide both lossless compression as well as lossy high quality compression of color images support, is assigned to U.S. Patent Application Serial No. 08 / 642,518, filed 3. May 1996, entitled "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device Dependent Parser, "and U.S. Patent Application No. 08 / 436,662 on May 8, 1995, entitled "Method and Apparatus for Reversible Color Conversion ".

Reversible WaveletsReversible wavelets

Die vorliegende Erfindung verwendet die Kompression durch reversible Wavelets.The The present invention uses compression by reversible Wavelets.

Wavelet-ZerlegungWavelet decomposition

Die vorliegende Erfindung führt zu Beginn eine Zerlegung eines Bildes (in der Form von Bilddaten) oder eines anderen Datensignals durch, indem reversible Wavelets verwendet werden. Bei der vorliegenden Erfindung umfaßt eine reversible Wavelet-Transformation eine Implementation eines Exakt-Rekonstruktionssystems in Ganzzahl-Arithmetik, so daß ein Signal mit Ganzzahl-Koeffizienten verlustfrei wiedergewonnen werden kann. Eine effiziente reversible Transformation ist eine mit einer Transformationsmatrix, deren Determinante gleich 1 (oder fast 1) ist.The present invention leads at the beginning a decomposition of an image (in the form of image data) or another data signal by using reversible wavelets become. In the present invention, a reversible wavelet transform includes a Implementation of an exact reconstruction system in integer arithmetic, so that a signal with integer coefficients lossless can be recovered. An efficient reversible transformation is one with a transformation matrix, whose determinant is 1 (or almost 1).

Durch die Verwendung reversibler Wavelets ist die vorliegende Erfindung dazu in der Lage, eine verlustfreie Kompression mit endlicher Präzisionsarithmetik bereitzustellen. Die Ergebnisse, die durch die Anwendung der reversiblen Wavelet-Transformation auf die Bilddaten erzeugt werden, sind eine Reihe von Koeffizienten.By the use of reversible wavelets is the present invention capable of a lossless compression with finite precision arithmetic provide. The results obtained by the application of the reversible Wavelet transformation to be generated on the image data are one Set of coefficients.

Die reversibe Wavelet-Transformation der vorliegenden Erfindung kann implementiert werden, indem ein Satz von Filtern verwendet wird. Bei einer Ausführungsform handelt es sich bei den Filtern um einen 2-Abgriffs-Tiefpaßfilter und einen 6-Abgriffs-Hochpaßfilter, um eine Transformation zu implementieren, die hierin als TS-Transformation oder 2,6-Transformation bezeichnet wird. Bei einer anderen Ausführungsform handelt es sich bei den Filtern um einen 2-Abgriffs-Tiefpaßfilter und einen 10-Abgriffs-Hochpaßfilter, um eine Transformation zu implementieren, die hierin als eine TT-Transformation oder 2,10-Transformation bezeichnet wird. Diese Filter können implementiert werden, indem nur Additions- und Subtraktionsoperationen (plus hardwareverdrahtete Bit-Verschiebung) verwendet werden.The reversibe wavelet transformation of the present invention can be implemented by using a set of filters. In one embodiment the filters are a 2-tap low pass filter and a 6-tap high pass filter, to implement a transformation, referred to herein as a TS transformation or 2,6 transformation. In another embodiment the filters are a 2-tap low pass filter and a 10-tap high pass filter, to implement a transformation, referred to herein as a TT transformation or 2,10 transformation. These filters can be implemented only by adding and subtracting operations (plus hardware-wired Bit shift).

Die TT-Transformation weist wenigstens einen Vorteil und wenigstens einen Nachteil gegenüber der TS-Transformation auf. Ein Vorteil ist, daß sie eine bessere Kom pression bereitstellt als die TS-Transformation. Der Nachteil der TT-Transformation ist, daß der längere 10-Abgriffs-Filter einen höheren Hardwareaufwand erfordert.The TT transformation has at least one advantage and at least a disadvantage compared to the TS transformation. An advantage is that they give better compression provides as the TS transformation. The disadvantage of TT transformation is that the longer 10-tap filter a higher Hardware required.

Zweidimensionale Wavelet-ZerlegungTwo-dimensional Wavelet decomposition

Durch die Verwendung von Tiefpaß- und Hochpaßfiltern bei der vorliegenden Erfindung wird eine Mehrfachauflösungszerlegung durchgeführt. Die Anzahl von Niveaus der Zerlegung ist variabel und kann beliebig in der Anzahl sein; jedoch ist die aktuelle Anzahl der Zerlegungsniveaus gleich 2 bis 8 Niveaus. Die maximale Anzahl der Niveaus ist log2 der maximalen Länge oder Breite der Eingabe.By using low-pass and high-pass filters in the present invention, a multi-resolution decomposition is performed. The number of levels of decomposition is variable and may be any number; however, the current number of decomposition levels is equal to 2 to 8 levels. The maximum number of levels is log 2 of the maximum length or width of the input.

Die allgemeinste Art und Weise, um die Transformation mit zweidimensionalen Daten durchzuführen, wie z.B. einem Bild, liegt darin, die eindimensionalen Filter separat anzuwenden, d.h. entlang der Zeilen und dann entlang der Spalten. Das erste Niveau der Zerlegung führt zu vier unterschiedlichen Koeffizientenbändern, die hierin als SS, DS, SD und DD bezeichnet werden. Die Buchstaben beziehen sich auf glatte (S für "Smooth")- und Detail-(D)-Filter, die oben definiert wurden, die jeweilig Tief-(L für "Low")- und Hoch-(H für "High")-Paßfiltern entsprechen. Folglich besteht das SS-Band aus Koeffizienten von den Glattfiltern sowohl in der Zeilenrichtung als auch in der Spaltenrichtung.The most general way to transform with two-dimensional Perform data, such as e.g. a picture lies in it, the one-dimensional filter separately to apply, i. along the lines and then along the columns. The first level of decomposition leads to four different coefficient bands, referred to herein as SS, DS, SD and DD are called. The letters refer to smooth (S for "Smooth") and Detail (D) filters, defined above, the respective low (L for "low") and high (H for "high") pass filters correspond. Consequently, the SS band consists of coefficients from the smooth filters both in the row direction and in the column direction.

Jedes Frequenzunterband in einer Wavelet-Zerlegung kann weiter zerlegt werden. Die allgemeinste Praxis liegt darin, nur das SS-Frequenzunterband weiter zu zerlegen. Sie kann eine weitere Zerlegung des SS-Frequenzunterbandes in jedes Zerlegungsniveau beinhalten, wenn jedes erzeugt wird. Eine derartige Mehrfachzerlegung wird als pyramidale Zerlegung bezeichnet. Die Bezeichnungen SS, SD, DS, DD und die Zerlegungsniveaunummer bezeichnen jede Zerlegung.each Frequency subband in a wavelet decomposition can be further decomposed become. The most common practice is to use only the SS frequency subband continue to disassemble. It can be a further decomposition of the SS frequency subband in each decomposition level when each is generated. A Such multiple decomposition is called pyramidal decomposition. The terms SS, SD, DS, DD and the decomposition level number denote any decomposition.

Bemerkenswert ist, daß weder mit der TS- oder der TT-Transformation der vorliegenden Erfindung die pyramidale Zerlegung nicht die Koeffizientengröße erhöht.Remarkable is that neither with the TS or TT transform of the present invention the pyramidal decomposition does not increase the coefficient size.

Falls die reversible Wavelet-Transformation rekursiv auf ein Bild angewendet wird, arbeitet das erste Niveau der Zerlegung bei dem feinsten Detail oder der feinsten Auflösung. Bei einem ersten Zerlegungsniveau wird das Bild in vier Unterbilder (z.B. Unterbänder) zerlegt. Jedes Unterband stellt ein Band von räumlichen Frequenzen dar. Die ersten Niveau-Unterbänder werden mit 1SS, 1SD, 1DS und 1DD bezeichnet. Der Prozeß der Zerlegung des Originalbildes enthält eine Unterabtastung mit zwei in sowohl horizontaler als auch vertikaler Dimension, so daß die Unterbänder ersten Niveaus 1SS, 1SD, 1DS und 1DD jeweils ein Viertel soviele Koeffizienten aufweisen, wie die Eingabepixel (oder Koeffizienten) des Bildes aufweisen.If the reversible wavelet transform is recursively applied to an image The first level of decomposition works at the finest detail or the finest resolution. At a first decomposition level, the image becomes four sub-images (e.g., subbands) disassembled. Each subband represents a band of spatial frequencies. The first level subbands are called 1SS, 1SD, 1DS and 1DD. The process of decomposition of the original image a subsampling with two in both horizontal and vertical dimensions, So that the subbands first levels 1SS, 1SD, 1DS and 1DD each a quarter as many Have coefficients such as the input pixels (or coefficients) of the picture.

Das Unterband 1SS enthält gleichzeitig Niederfrequenz-Horizontal- und Niederfrequenz-Vertikal-Information. Typischerweise ist ein großer Teil der Bildenergie in diesem Unterband konzentriert (zum Begriff der Energie siehe das oben erwähnte Buch von Anneal K. Jain aaO., siehe dort insbesondere die Begriffe "energy compaction" und "energy conservation"). Das Unterband 1SD enthält eine Niederfrequenz-Horizontal und eine Hochfrequenz-Vertikal-Information (z.B. horizontale Kanteninformation bzw. Randinformation bzw. "Edge"-Information). Das Unterband 1DS enthält eine Hochfrequenz-Horizontal-Information und eine Niederfrequenz-Vertikal-Information (z.B. vertikale Kanteninformation). Das Unterband 1DD enthält eine Hochfrequenz-Horizontal-Information und eine Hochfrequenz-Vertikal-Information (z.B. Struktur- oder Diagonalkanten-Information).The Subband 1SS contains simultaneously low frequency horizontal and low frequency vertical information. Typically, a big one Part of the forming energy concentrated in this subband (to term of energy see above mentioned Book by Anneal K. Jain op. Cit., See in particular the terms "energy compaction" and "energy conservation"). The subband 1SD contains a low frequency horizontal and a high frequency vertical information (e.g., horizontal edge information or "edge" information). The Subband 1DS contains high-frequency horizontal information and low-frequency vertical information (e.g., vertical edge information). The subband 1DD contains a High-frequency horizontal information and high-frequency vertical information (e.g., structural or diagonal edge information).

Jede der aufeinanderfolgenden zweiten, dritten und vierten unteren Zerlegungsniveaus wird durch Zerlegen des unteren Frequenz-SS-Unterbandes des vorhergehenden Niveaus erzeugt. Dieses Unterband 1SS des ersten Niveaus wird zerlegt, um Unterbänder 2SS, 2SD, 2DS und 2DD des mäßig detaillierten zweiten Niveaus zu erzeugen. In ähnlicher Weise wird das Unterband 2SS zerlegt, um grob detaillierte Unterbänder 3SS, 3SD, 3DS und 3DD des dritten Niveaus zu erzeugen. Ebenso wird das Unterband SS, zerlegt, um grober detaillierte Unterbänder 4SS, 4SD, 4DS und 4DD des dritten Niveaus zu erzeugen. Aufgrund der Unterabtastung um zwei, wird jedes zweite Niveau-Unterband ein sechzehntel der Größe des ursprünglichen Bildes. Jeder Abtastwert bzw. Wert (z.B. Pixel) stellt bei diesem Niveau ein mäßiges Detail in dem Originalbild bzw. eine mäßig detaillierte Wiedergabe des Originalbilds bei derselben Stelle dar. In ähnlicher Weise beträgt jedes dritte Niveau-Unterband 1/64 der Größe des Originalbildes. Jedes Pixel bei diesem Niveau entspricht einem relativ groben Detail in dem Originalbild bzw. eine grobkörnig detaillierte Wiedergabe des Originalbilds bei derselben Stelle. Ebenso beträgt jedes vierte Niveau-Unterband 1/256 der Größe des Originalbildes.each the successive second, third and fourth lower decomposition levels is done by decomposing the lower frequency SS subband of the previous one Generated levels. This subband 1SS of the first level is decomposed, around subbands 2SS, 2SD, 2DS and 2DD of moderately detailed to generate second levels. In similar Way, the subband 2SS is decomposed to roughly detailed sub-bands 3SS, 3SD, 3DS and 3DD of the third level. Likewise, that will Sub-band SS, decomposed to rough detailed sub-bands 4SS, 4SD, 4DS and 4DD of the third level. Due to subsampling at two, every second level sub-band becomes one-sixteenth of Size of the original Image. Each sample or value (e.g., pixel) represents this Level a moderate detail in the original picture or a moderately detailed Playback of the original image in the same place. In similar Way is every third level subband 1/64 the size of the original image. each Pixel at this level corresponds to a relatively rough detail in the original picture or a coarse grained detailed reproduction of the original image in the same place. Likewise every fourth level sub-band 1/256 the size of the original image.

Da die zerlegten Bilder aufgrund der Unterabtastung physisch kleiner sind als das Originalbild, kann derselbe Speicher, der zur Speicherung des Originalbildes verwendet wird, verwendet werden, um alle zerlegten Unterbänder zu speichern. Mit anderen Worten werden das Originalbild und die zerlegten Unterbänder 1SS und 2SS beseitigt bzw. gelöscht und bei einer Drei-Niveau-Zerlegung nicht gespeichert.There the decomposed images are physically smaller due to undersampling are as the original image, the same memory, which can be stored The original image used to be all disassembled subbands save. In other words, the original image and the disassembled subbands 1SS and 2SS eliminated or deleted and not stored in a three-level decomposition.

Obwohl nur vier Unterbandzerlegungsniveaus beschrieben sind, können zusätzliche Niveaus in Übereinstimmung mit den Erfordernissen eines bestimmten Systems entwikkelt werden. Ebenso können mit anderen Transformationen, wie z.B. einer DCT oder linear beabstandeten Unterbändern, unterschiedliche Elternteil-Kind-Verhältnisse festgelegt werden.Even though only four subband decomposition levels are described, may additional Levels in agreement be developed with the requirements of a particular system. Likewise with other transformations, e.g. a DCT or linearly spaced Sub-bands, different parent-child relationships.

Bemerkenswert ist, daß eine pyramidale Zerlegung nicht die Koeffizientengröße mit den Wavelet-Filtern der vorliegenden Erfindung erhöht.Remarkable is that one pyramidal decomposition does not decompose the coefficient size with the wavelet filters of the present invention.

Bei anderen Ausführungsformen können andere Unterbänder zusätzlich zu dem SS ebenso zerlegt werden.at other embodiments can other subbands additionally to be split up to the SS as well.

Baumstruktur der WaveletsTree structure of the wavelets

Es gibt eine natürliche und nützliche Baumstruktur für Wavelet-Koeffizienten bei einer pyramidalen Zerlegung. Ein Ergebnis der Unterbandzerlegung ist ein Einzel-SS-Frequenz-Unterband, das dem letzten Niveau einer Zerlegung entspricht. Auf der anderen Seite gibt es so viele SD-, DS- und DD-Bänder wie die Anzahl der Niveaus. Die Baumstruktur legt das Elternteil eines Koeffizienten in einem Frequenzband so fest, daß er ein Koeffizient in einem selben Frequenzband bei einer niedrigeren Auflösung ist und mit derselben räumlichen Stelle in Beziehung steht.It gives a natural and useful Tree structure for Wavelet coefficients in a pyramidal decomposition. A result The subband decomposition is a single SS frequency subband that corresponds to the last level of a decomposition. On the other hand There are as many SD, DS and DD bands as the number of levels. The tree structure places the parent of a coefficient in one Frequency band so tight that it turns on Coefficient in a same frequency band at a lower resolution and with the same spatial location in relationship.

Bei der vorliegenden Erfindung umfaßt jeder Baum die SS-Koeffizienten und drei Unterbäume, nämlich die DS-, SD- und DD-Unterbäume. Die Verarbeitung der vorliegenden Erfindung wird typischerweise auf drei Unterbäumen durchgeführt. Die Wurzel eines jeden Baumes ist ein reiner Glättungskoeffizient. Für ein zweidimensionales Signal, wie z.B. ein Bild, gibt es drei Unterbäume, jeder mit vier Kindern. Der Baum ist hierarchisch nicht auf zweidimensionale Signale beschränkt. Zum Beispiel hat bei einem eindimensionalen Signal jeder Unterbaum ein Kind. Höhere Dimensionen ergeben sich aus dem eindimensionalen und zweidimensionalen Fall.In the present invention, each tree comprises the SS coefficients and three subtrees, viz the DS, SD, and DD subtrees. The processing of the present invention is typically performed on three subtrees. The root of each tree is a pure smoothing coefficient. For a two-dimensional signal, such as a picture, there are three subtrees, each with four children. The tree is hierarchically not limited to two-dimensional signals. For example, with a one-dimensional signal, each sub-tree has a child. Higher dimensions result from the one-dimensional and two-dimensional case.

Der Prozeß einer Multiauflösungszerlegung kann unter Verwendung eines Filtersystems durchgeführt werden. Hinsichtlich einer zweidimensionalen Zwei-Niveau-Transformation, die unter Verwendung eindimensionaler beispielhafter Filter implementiert ist, siehe US-Patentanmeldung Nr. 08/498,695, eingereicht am 30. Juni 1995, mit dem Titel "Method and Apparatus for Compression Using Reversible Wavelet Transforms and an Embedded Codestream" und die US-Patentanmeldung Nr. 08/498,036, eingereicht am 30. Juni 1995, mit dem Titel "Reversible Wavelet Transform and Embedded Codestream Manipulation".Of the Process one Multiresolution decomposition can be performed using a filter system. Regarding a two-dimensional two-level transformation, implemented using one-dimensional exemplary filters See, for example, U.S. Patent Application No. 08 / 498,695, filed June 30 1995, entitled "Method and Apparatus for Compression Using Reversible Wavelet Transforms and to Embedded Codestream "and U.S. Patent Application No. 08 / 498,036, filed June 30, 1995, titled "Reversible Wavelet Transform and Embedded Codestream Manipulation ".

Durchführen der Vorwärts-Wavelet-TransformationPerform the Forward wavelet transform

Bei der vorliegenden Erfindung wird die Wavelet-Transformation mit zwei 1D-Operationen, zuerst horizontal, dann vertikal durchgeführt. Bei einer Ausführungsform führt ein Hardwareteil die horizontale Operation durch, während ein anderer die vertikalen Operationen durchführt.at According to the present invention, the wavelet transform is two 1D operations, first horizontal, then vertical. at an embodiment introduces Hardware part goes through the horizontal operation while another goes through the vertical ones Performs operations.

Die Anzahl der Niveaus bestimmt die Anzahl der Iterationen. Bei einer Ausführungsform wird eine Vier-Niveau-Zerlegung durchgeführt, indem die TT-Transformation sowohl in der horizontalen als auch in der vertikalen Richtung verwendet wird. Bei einer anderen Ausführungsform wird die Vier-Niveau-Zerlegung durchgeführt, indem vier DS-Transformationen statt dessen verwendet werden.The Number of levels determines the number of iterations. At a embodiment a four-level decomposition is performed by the TT transformation used in both the horizontal and vertical directions becomes. In another embodiment The four-level decomposition is performed by using four DS transformations be used instead.

Die Transformation der vorliegenden Erfindung ist hinsichtlich der Berechnung sehr effizient. Bei einer Ausführungsform ordnet die vorliegende Erfindung die Berechnungen, die durch die Transformation durchgeführt werden, um die Menge sowohl eines auf dem Chip befindlichen Speichers (On-Chip Memory) als auch eines nicht auf einem Chip befindlichen Speichers (Official Communication-Chip Memory) und die benötigte Bandbreite zu reduzieren.The Transformation of the present invention is in terms of calculation very efficient. In one embodiment assigns the present invention, the calculations by the Transformation performed are the amount of both on-chip memory (On-Chip Memory) as well as one not on a chip Memory (Official Communication Chip Memory) and the required bandwidth to reduce.

Berechnungsordnungen bzw. Reihenfolgen der Berechnung und Datenfluß für die TransformationCalculation orders or Sequences of calculation and data flow for the transformation

Wie oben beschrieben wurde, stellt bei der vorliegenden Erfindung die Basiseinheit zur Berechnung der Transformation der Wavelet-Baum dar. Man nehme eine Vier-Niveau-Transformation an, jeder Wavelet-Baum stellt einen 16x16-Block von Pixeln dar. Ein 16x16-Block von Pixeln (alle vier Komponenten für CMYK-Bilder) wird in die Transformation der vorliegenden Erfindung eingegeben und alle möglichen Berechnungen, um Koeffizienten zu erzeugen, werden durchgeführt. (Das Inverse ist ähnlich, ein 16x16-Block mit Koeffizienten für jede Komponente wird eingegeben und alle möglichen Berechnungen werden durchgeführt.) Da die vorliegende Erfindung eine überlappte Transformation verwendet, wird die Information von vorhergehenden, benachbarten Bäumen gespeichert und bei den Berechnungen verwendet. Die Grenze zwischen dem gegenwärtigen Wavelet-Baum und der vorhergehenden benachbarten Information wird hierin als ein Saum bezeichnet. Die Information, die über einen Saum bewahrt wird, um die Transformation der vorliegenden Erfindung durchzuführen, wird im folgenden detailliert beschrieben.As has been described above, in the present invention, the Base unit for calculating the transformation of the wavelet tree Let's take a four-level transformation On, each wavelet tree represents a 16x16 block of pixels. A 16x16 block of pixels (all four components for CMYK images) is input to the transformation of the present invention and all sorts of things Calculations to generate coefficients are performed. (The Inverse is similar a 16x16 block of coefficients for each component is entered and all sorts of things Calculations are performed.) Since the present invention uses an overlapped transformation, the information is stored by previous, neighboring trees and used in the calculations. The boundary between the current wavelet tree and the previous adjacent information is referred to herein as a hem called. The information that is saved about a hem, to carry out the transformation of the present invention is detailed below.

Ordnung von Wavelet-BäumenOrder of Wavelet trees

Die Ordnung von Wavelet-Bäumen zur Berechnung der Transformation ist wichtig, da bei gewissen Anwendungen (z.B. Drucken) Codiereinheiten der vorliegenden Erfindung eine große Breite und eine geringe Höhe aufweisen. Bei einer Ausführungsform enthält jede Kodiereinheit 4096x256 Pixel.The Order of wavelet trees to calculate the transformation is important because in certain applications (e.g., printing) encoding units of the present invention have a large width and a low altitude exhibit. In one embodiment contains each coding unit 4096x256 pixels.

Bei der folgenden Diskussion enthält jede der Kodiereinheiten 4096x256 Pixel. Jedoch ist bemerkenswert, daß das Ordnen, das im folgenden beschrieben wird, auf Kodiereinheiten mit anderen Größen anwendbar ist. 2A zeigt eine Ordnung, die einer Rasterordnung ähnelt. Diese Ordnung bzw. Reihenfolge wird hierin als Lang-Saum-Transformations-Ordnung bezeichnet. Nimmt man Bezug auf 2A, so zeigen die dicken Linien den Datenumfang an, der über die Säume bewahrt wird, und weist darauf hin, wieviel Speicher erforderlich ist, um die Transformation zu berechnen. Diese Daten sind proportional zu einem Wavelet-Baum für die horizontale Transformation, aber zu der Breite des Bildes (4096 in diesem Beispiel) für die vertikale Transformation. Die Speichermenge für die Daten können die Verwendung eines externen Speichers erforderlich machen. Jedoch können wegen der Nähe der Rasterordnung während der inversen Transformation die Daten von der Transformation (zu z.B. einem Drucker in einer Druckeranwendung) ausgegeben werden, sobald eine horizontale Reihe bzw. Zeile von Wavelet-Bäumen in Pixel konvertiert werden muß.In the following discussion, each of the encoding units contains 4096x256 pixels. However, it is noteworthy that the ordering described below is applicable to encoding units of other sizes. 2A shows an order that resembles a grid order. This order is referred to herein as a long-tail transformation order. If you take reference 2A For example, the thick lines indicate the amount of data that is preserved across the seams and indicate how much memory is needed to compute the transformation. This data is proportional to a wavelet tree for the horizontal transformation, but to the width of the image (4096 in this example) for the vertical transformation. The amount of memory for the data may require the use of external memory. However, because of the closeness of the raster order during the inverse transform, the data of transformation (for example, to a printer in a printer application) as soon as a horizontal row of wavelet trees needs to be converted to pixels.

2B zeigt eine alternative Ausführungsform einer Reihenfolge, die hierin als kurze Saumordnung bezeichnet wird. Der Speicher für die Säume ist proportional zu der Höhe der Kodiereinheit (256 in diesem Beispiel) für die Horizontaltransformation und ein Wavelet-Baum für die Vertikaltransformation. Dies vermindert erheblich die erforderliche Speichermenge, was eine Speicherung auf einem Chip (On-Chip-Speicherung) praktikabel macht. 2 B FIG. 12 shows an alternative embodiment of an order, referred to herein as a short seam order. The memory for the seams is proportional to the height of the encoding unit (256 in this example) for the horizontal transformation and a wavelet tree for the vertical transformation. This significantly reduces the amount of memory required, making storage on-chip (on-chip storage) feasible.

2C zeigt eine alternative kurze Saumordnung. Auf Kosten von Speicher, der proportional zu einem weiteren Wavelet-Baum ist, wird die Anzahl aufeinanderfolgender Pixel, die in Rasterordnung verarbeitet werden, erhöht. Diese Alternative oder ähnliche Alternativen können eine effizientere Verwendung eines Schnell-Seitenmodus oder eines RAM's für die beschleunigte Datenausgabe bzw. eines EDO-RAM's in dem Bandpuffer mit wenig Extraaufwand in dem Saumspeicher erlauben. Die Effizienz wird durch die Tatsache gewonnen, daß die meisten Speicher für den Zugriff zu benachbarten Speicherstellen gewünscht oder optimiert werden. Deshalb führt jegliche Zunahme in der Verwendung benachbarter Speicherzugriffe aufgrund der Saumreihenfolge zu einer effizienteren Speicherverwendung. 2C shows an alternative short seam order. At the expense of memory proportional to another wavelet tree, the number of consecutive pixels processed in raster order is increased. These alternative or similar alternatives may allow more efficient use of a fast page mode or RAM for the accelerated data output or an EDO RAM in the band buffer with little overhead in the seam memory. Efficiency is gained by the fact that most of the memory is desired or optimized for access to adjacent memory locations. Therefore, any increase in the use of adjacent memory accesses due to the sear sequence results in more efficient memory usage.

Berechnung für einen Wavelet-Baumcalculation for one Wavelet tree

Die folgenden Gleichungen legen sowohl die TS-Transformation als auch die TT-Transformation fest. Für eine Eingabe x(n) werden die Ausgabe des Tiefpaßfilters, das glatte Signal s(n), und des Hochpaßfilters, das detaillierte Signal d(n), berechnet, wie in der folgenden Gleichung gezeigt ist.The following equations lay both the TS transformation as well the TT transformation firmly. For an input x (n) will be the output of the low pass filter, the smooth signal s (n), and the high-pass filter, the detailed signal d (n), calculated as in the following equation is shown.

Figure 00320001
Figure 00320001

Die inverse Transformation ist bei der folgenden Gleichung gezeigt.

Figure 00330001
wobei p(n) wie folgt berechnet wird: p(n) = d(n) – t(n). The inverse transformation is shown in the following equation.
Figure 00330001
where p (n) is calculated as follows: p (n) = d (n) -t (n).

Die TS-Transformation und die TT-Transformation unterscheiden sich in der Definition von t(n). Für die TS-Transformation gilt:

Figure 00330002
The TS transformation and the TT transformation differ in the definition of t (n). For the TS transformation:
Figure 00330002

Für die TT-Transformation gilt:

Figure 00330003
For the TT transformation, the following applies:
Figure 00330003

Bemerkenswert ist, daß bei der folgenden Diskussion die Notation ⌊.⌋ bedeutet, nach unten abzurunden oder abzuschneiden und wird manchmal als Bodenfunktion bezeichnet.Remarkable is that at the following discussion means the notation ⌊.⌋ to round down or cut down and is sometimes used as ground function designated.

Die TS-TransformationThe TS transformation

Der Effekt der Verwendung des Sechs-Abgriffsfilters und eines Zwei-Abgriffsfilters bei gleichmäßigen Abständen ist, daß drei Stücke einer Information gespeichert werden müssen. Der Sechs-Abgriffsfilter erfordert zwei Verzögerungen. Der Zwei-Abgriffsfilter erfordert eine Verzögerung, so daß sein Ergebnis bezüglich des Ergebnisses des Sechs-Abgriffsfilters zentriert werden kann. Insbesondere müssen zwei s(•)- Werte und ein d(•)-Wert oder ein Teilergebnis von der d(•)-Berechnung gespeichert werden. Eine Speicherung dieser Werte ist identisch, und zwar ungeachtet, ob oder ob nicht ein bestimmter Filterbetrieb einen Saum kreuzt oder nicht.The effect of using the six-tap filter and a two-tap filter at even intervals is that three pieces of information must be stored. The six-tap filter requires two delays. The two-tap filter requires a delay so that its result can be centered with respect to the result of the six-tap filter. In particular, two s (•) values and a d (•) value or a partial result from the d (•) calculation are stored. A storage of these values is identical regardless of whether or not a particular filter operation crosses a seam or not.

3A bis 3H zeigen das Ergebnis einer jeden Anwendung des TS-Transformationsfilters für eine Vier-Niveau-Transformation auf einem Wavelet-Baum der vorliegenden Erfindung. Bei diesen Figuren wird die Ausgabe des Tiefpaßfilters als "s" für "smooth" bzw. glatt bezeichnet. Die Ausgabe des Hochpaßfilters wird als "d" für Detail bezeichnet. Das "B" bezeichnet einen Zwischenwert, der verwendet wird, um ein "d" zu berechnen; er ist ein x(2n) – x(2n + 1)-Wert. Die "B"-Werte werden während der Vorwärtstransformation verwendet; für die inverse Transformation wird ein "d"-Wert, der nicht für irgendwelche Berechnungen verwendet wird, an seiner Stelle gespeichert. Die Notation "sd" zeigt an, daß ein Koeffizient das Ergebnis von zuerst einem horizontalen Tiefpaßfilter und dann einem vertikalen Hochpaßfilter ist. Die Bedeutungen von "ds", "dd", "ss", "dB" und "sB" sind ähnlich. Das fette bzw. fettgedruckte Rechteck entspricht den 256 Eingangspixeln. Die schattierten "s"-, "ds"- und "ss"-Werte werden mit einem vorhergehenden Wavelet-Baum berechnet und zur Verwendung bei dem aktuellen Wavelet-Baum verwendet. 3A to 3H show the result of each application of the TS transform filter for a four-level transform on a wavelet tree of the present invention. In these figures, the output of the low-pass filter is referred to as "s" for "smooth". The output of the high pass filter is referred to as "d" for detail. The "B" denotes an intermediate value used to calculate a "d"; it is an x (2n) - x (2n + 1) value. The "B" values are used during the forward transformation; for inverse transformation, a "d" value that is not used for any calculations is stored in its place. The notation "sd" indicates that a coefficient is the result of first a horizontal low-pass filter and then a vertical high-pass filter. The meanings of "ds", "dd", "ss", "dB" and "sB" are similar. The bold or bold rectangle corresponds to the 256 input pixels. The shaded "s", "ds" and "ss" values are calculated with a previous wavelet tree and used for use in the current wavelet tree.

Bezüglich der Vorwärtstransformation stellen die "ss"-Koeffizienten von dem vorhergehenden Niveau die Eingaben zu dn Niveaus 2, 3 und 4 der Transformation dar. Die "sd"-, "ds"- und "dd"-Koeffizienten sind erledigt, so daß sie ausgegeben werden können, wenn sie berechnet sind. Die inverse Transformation führt alle Berechnungen in einer bezüglich der Niveaus (das vierte Niveau zuerst, dann das dritte, zweite und schließlich das erste) und bezüglich vertikaler (zuerst) und horizontaler (als zweites) Reihenfolge durch. Innerhalb eines Durchlaufs der Transformation ist der Datenfluß von vorwärts und invers identisch, jedoch ist die Berechnung unterschiedlich.Regarding the forward transformation represent the "ss" coefficients of the previous level the inputs to the levels 2, 3 and 4 of the transformation. The "sd", "ds" and "dd" coefficients are done so they can be issued when they are calculated. The inverse transformation performs all calculations in a respect of the levels (the fourth level first, then the third, second and third finally that first) and re vertical (first) and horizontal (second) order. Within one pass of the transformation is the flow of forward and inversely identical, but the calculation is different.

TS-Transformations-HardwareTS transform hardware

4A ist ein Blockdiagramm einer Ausführungsform einer vorwärts/inversen Filtereinheit zur Verwendung bei der Implementation der eindimensionalen Filter. Es sind nur Speicher- und Berechnungseinheiten gezeigt, hardware-verdrahtete Verschiebungen sind nicht gezeigt. Nimmt man Bezug auf 4A, so handhabt eine Filtereinheit 4000 sowohl die Vorwärts- als auch inverse Transformation. Alternative Ausführungsformen können verwendet werden, um Einheiten für die Vorwärts- und inverse Transformation zu separieren. Für die Vorwärtstransformation werden Eingänge der Größe "n" verwendet und die "s"- und "d"-Ausgänge werden erzeugt. Für die inverse Transformation werden die "s"- und "d"-Eingänge verwendet und die anderen Ausgaben werden erzeugt. 4A Fig. 10 is a block diagram of one embodiment of a forward / inverse filter unit for use in the implementation of the one-dimensional filters. Only memory and calculation units are shown, hardware wired shifts are not shown. If you take reference 4A so handles a filter unit 4000 both forward and inverse transformation. Alternative embodiments may be used to separate units for forward and inverse transformation. For the forward transform, inputs of size "n" are used and the "s" and "d" outputs are generated. For inverse transformation, the "s" and "d" inputs are used and the other outputs are generated.

Der Addierer 4001 ist angeschlossen, um n-Bit-Eingaben zu empfangen und sie zusammenzuaddieren, um eine Ausgabe x(2n + 2) + x(2n + 3) zu erzeugen. Der Addierer 4002 subtrahiert ein n-Bit-Eingabe von der anderen und gibt die Quantität x(2n + 2)– x(2n + 3) aus. Die Ausgaben der Addierer 4001 und 4002 sind mit einem Eingang der Multiplexer (jeweils abgekürzt "mux") 4003 und 4004 jeweilig verbunden. Die anderen Eingänge zu den Multiplexern 4003 und 4004 sind angeschlossen, um die s- und d-Eingaben jeweilig zu empfangen. Bei einer Ausführungsform beträgt die s-Eingabe n-Bits, während die d-Eingabe größer als n-Bits ist.The adder 4001 is connected to receive n-bit inputs and to add them together to produce an output x (2n + 2) + x (2n + 3). The adder 4002 subtracts one n-bit input from the other and outputs the quantity x (2n + 2) -x (2n + 3). The outputs of the adders 4001 and 4002 are connected to one input of the multiplexer (each abbreviated to "mux") 4003 and 4004 respectively connected. The other inputs to the multiplexers 4003 and 4004 are connected to receive the s and d inputs, respectively. In one embodiment, the s input is n bits while the d input is greater than n bits.

Die Ausgabe der Multiplexer 4003 und 4004 wird durch ein Vorwärts-/Invers-Steuersignal gesteuert, das darauf hinweist, ob der Filter sich in dem Vorwärts- oder inversen Modus befindet. In entweder dem Vorwärts- oder inversen Modus ist die Ausgabe des Multiplexers 4003 gleich s(n + 1). Auf der anderen Seite ist die Ausgabe des Multiplexers 4004 gleich p(n + 1) in dem Vorwärtsmodus und d(n + 1) in dem inversen Modus.The output of the multiplexers 4003 and 4004 is controlled by a forward / inverse control signal indicating whether the filter is in forward or reverse mode. In either the forward or inverse mode, the output of the multiplexer is 4003 equal to s (n + 1). On the other side is the output of the multiplexer 4004 equal to p (n + 1) in the forward mode and d (n + 1) in the inverse mode.

Die Ausgaben von den Multiplexern 4003 und 4004 zusammen mit einer Rückkopplung einer s(n)-Ausgabe von dem Multiplexer 4006 werden zu den Eingängen der Registerdatei 4005 gekoppelt. Die Registerdatei 4005 enthält die Einträge für jede Komponente für die Länge eines Wavelet-Baums. Die Daten werden typischerweise durch die Registerdatei 4005 hindurchgereicht. Basierend auf der räumlichen Stelle werden die Eingaben zum Register 4005 zum Ausgang verzögert. Eine Adresseneingabe steuert die Ausgaben der Registerdatei 4005. Bei einer Ausführungsform umfaßt die Registerdatei 4005 zwei Speicherbänke mit einem Port pro Bank und wird in einem Pingpong-Stil verwendet, wobei hin- und her zwischen den beiden Speicherbänken zugegriffen wird.The outputs from the multiplexers 4003 and 4004 together with a feedback of an s (n) output from the multiplexer 4006 become the inputs of the register file 4005 coupled. The register file 4005 contains the entries for each component for the length of a wavelet tree. The data is typically passed through the register file 4005 through enough. Based on the spatial location, the inputs become the register 4005 delayed to the exit. An address entry controls the outputs of the register file 4005 , In one embodiment, the register file includes 4005 two memory banks with one port per bank and is used in a ping-pong style, with back and forth access between the two memory banks.

Die Ausgabe des Multiplexers 4003 stellt ebenso die s-Ausgabe der Filtereinheit dar.The output of the multiplexer 4003 also represents the s output of the filter unit.

Die Ausgaben der Registerdatei 4005 sind mit den Eingaben des Multiplexers 4006 zusammen mit den extern gepufferten Daten bei einem Saumpuffer in 4020 angeschlossen. Die Ausgabe 4006A umfaßt s(n – 1), was eine zweimal verzögerte Version der Ausgabe von dem Multiplexer 4003 ist. Die Ausgabe 4006B umfaßt s(n), was eine verzögerte Version von s(n + 1) ist. Die Ausgabe 4006C umfaßt p(n) für den Vorwärtsmodus und d(n) für den inversen Modus. Der Multiplexer 4006 wird ebenso gesteuert, um extern zu puffernde Saumdaten bei dem Saumpufferausgang 4021 bereitzustellen.The outputs of the register file 4005 are with the inputs of the multiplexer 4006 together with the externally buffered data at a hem buffer in 4020 connected. The edition 4006A includes s (n-1), what a twice delayed version of the output from the multiplexer 4003 is. The edition 4006B includes s (n), which is a delayed version of s (n + 1). The edition 4006C includes p (n) for the forward mode and d (n) for the inverse mode. The multiplexer 4006 is also controlled to externally buffer hem data at the hem buffer output 4021 provide.

Die Ausgabe 4006C ist mit einem Eingang der Addierer 4008 und 4009 verbunden. Die andere Eingabe der Addierer 4008 und 4009 ist der Ausgang des Multiplexers 4015. Der Multiplexer 4015 handhabt die Randbedingungen bzw. Grenzbedingungen. Auf einer Grenze gibt der Multiplexer 4015 aus, wie die Null, die mit einem seiner Eingänge fest verdrahtet ist. Die fest verdrahtete Null kann geändert werden, um andere Werte bei manchen Ausführungsformen zu verwenden. Bei einer Nicht-Grenzbedingung gibt der Multiplexer 4015 t(n) aus, das von dem Addierer 4007 ausgegeben wird, der angeschlossen ist, um s(n + 1) auf einen Eingang zu s(n – 1) auf einen anderen Eingang zu addieren, indem s(n – 1) von s(n + 1) subtrahiert wird.The edition 4006C is with an input of adders 4008 and 4009 connected. The other input of adders 4008 and 4009 is the output of the multiplexer 4015 , The multiplexer 4015 handles the boundary conditions or boundary conditions. On a border there is the multiplexer 4015 like the zero hardwired to one of its inputs. The hard-wired zero can be changed to use other values in some embodiments. In a non-boundary condition, the multiplexer outputs 4015 t (n) from the adder 4007 which is connected to add s (n + 1) to an input to s (n-1) to another input by subtracting s (n-1) from s (n + 1).

Der Addierer 4008 addiert die Ausgabe 4006C vom Multiplexer 4006 zu der Ausgabe vom Multiplexer 4015, um die d-Ausgabe der Filtereinheit zu erzeugen.The adder 4008 adds the output 4006C from the multiplexer 4006 to the output from the multiplexer 4015 to generate the d output of the filter unit.

Der Addierer 4009 subtrahiert die Ausgabe von 4006C vom Multiplexer 4006 von der Ausgabe vom Multiplexer 4015. Die Ausgabe des Addierers 4009 wird zu s(n) auf der Ausgabe 4006B des Multiplexers 4006 durch den Addierer 4010 addiert, um eine n-Bit-Ausgabe der Filtereinheit zu erzeugen. Die Ausgabe 4009 wird ebenso von s(n) der Ausgabe 4006B vom Multiplexer 4006 durch den Addierer 4011 subtrahiert, der die andere n-Bit-Ausgabe der Filtereinheit in der inversen Richtung ausgibt.The adder 4009 subtracts the output from 4006C from the multiplexer 4006 from the output from the multiplexer 4015 , The output of the adder 4009 becomes s (n) on the output 4006B of the multiplexer 4006 through the adder 4010 is added to produce an n-bit output of the filter unit. The edition 4009 is also of s (n) of the output 4006B from the multiplexer 4006 through the adder 4011 which outputs the other n-bit output of the filter unit in the inverse direction.

Für Säume, die länger als ein Wavelet-Baum sind, können Saumdaten in einem auf einem Chip befindlichen statischen RAM (SRAM) oder einem externen Speicher anstelle einer Registerdatei 4005 gespeichert werden. Der Multiplexer 4006 stellt einen Zugriff zu und von diesem zusätzlichen Saumspeicher bereit.For seams that are longer than a wavelet tree, seam data may reside in on-chip static RAM (SRAM) or external memory instead of a register file 4005 get saved. The multiplexer 4006 provides access to and from this additional hem memory.

Der größte Hardwareaufwand bzw. die meisten Hardwarekosten der Filtereinheit 4000 sind auf die Registerdatei 4005 zurückzuführen. Der gesamte Speicherumfang, der benötigt wird, hängt von der Anzahl der Filtereinheiten ab. Bei einer Ausführungsform werden insgesamt 60 Stellen zum Speichern von drei Werten (s, s, d oder ss, ss, sd) benötigt. Wenn mehr Filtereinheiten verwendet werden, ist die benötigte Speichermenge kleiner. Deshalb sind die Hardwarekosten bzw. der Hardwareaufwand für die Verwendung von mehreren Filtereinheiten gering.The largest hardware effort or the most hardware costs of the filter unit 4000 are on the register file 4005 due. The total amount of memory needed depends on the number of filter units. In one embodiment, a total of 60 locations are needed to store three values (s, s, d or ss, ss, sd). If more filter units are used, the required amount of memory is smaller. Therefore, the hardware costs or the hardware costs for the use of multiple filter units are low.

Eine schnelle inverse Transformation erlaubt eine geringere Latenz zwischen dem Ende des Dekodierens und Beginn der Dateiausgabeoperation, wie z.B. Drucken. Dies reduziert den Arbeitsspeicher, der für die Dekompression benötigt wird, und erlaubt größere Kodiereinheiten. Eine schnelle Vorwärtstransformation ermöglicht es, daß die Filter Diskontinuitäten in den Daten bzw. Daten-Bursts handhaben können, wenn eine größere Bandbreite verfügbar ist, was es wiederum ermöglicht, daß die Transformation mehr Daten zu dem Kontextmodell liefert, wenn ein Vorausschauen es dem Kon textmodell erlaubt, die Daten schnell zu verarbeiten. Falls die Vorwärtstransformation nicht mit dem Kontextmodell während des Kodierens Schritt halten kann, wird eine Plattenbandbreite bzw. Disk-Bandbreite während des Kodierens verschwendet, was die Zeit bis zum Beginn des Druckens verzögert. Ebenso können die Steuerung und der Datenfluß durch die Verwendung mehrerer Filter vereinfacht werden.A fast inverse transformation allows lower latency between the end of decoding and start of the file output operation, such as e.g. To Print. This reduces the memory needed for decompression needed and allows larger encoding units. A fast forward transformation allows it that the Filter discontinuities in the data or data bursts can handle, if a larger bandwidth available is what makes it possible, that the Transformation provides more data to the contextual model, if one Looking ahead, the text model allows you to quickly access the data to process. If the forward transformation not with the contextual model during of coding, a disc bandwidth or Disk bandwidth during of coding, which wastes time until the beginning of printing delayed. Likewise the control and the data flow through the use of multiple filters can be simplified.

4B ist ein Blockdiagramm einer Ausführungsform einer Vorwärtstransformation ersten Niveaus gemäß der vorliegenden Erfindung. Nimmt man Bezug auf 4B, so führen zwei Filtereinheiten 401 und 402, wie z.B. jene, die in 4A gezeigt sind, das erste Niveau der Transformation durch. Die Filtereinheit 401 führt eine Niveau-1-Horizontaltransformation durch, während die Filtereinheit 402 eine Niveau-1-Vertikaltransformation durchführt. Bei einer Ausführungsform arbeitet das erste Niveau der Transformation auf 2x2-Blöcken der Eingabe. Vier Register 403 bis 406 arbeiten als Verzögerungseinheiten, um Ausgaben der Filtereinheit 401 zu verzögern. Dies wird als eine kind-basierte Reihenfolge bezeichnet. Das Register 403 empfängt die S-Ausgabe der Filtereinheit 401, während die Register 404 und 405 die d-Ausgabe empfangen. Die Ausgabe des Registers 404 ist an die Eingabe des Registers 406 angeschlossen. Die Ausgaben der Register 403 und 406 sind an die Eingaben des Multiplexers 407 angeschlossen, wohingegen die s-Ausgabe der Filtereinheit 401 und die Ausgabe des Registers 405 an die Eingaben des Multiplexers 408 angeschlossen sind. Zwei Multiplexer 407 und 408 wählen Eingaben für die Filtereinheit 402 von jenen der verzögerten Koeffizientenausgabe von der Filtereinheit 401 aus. 4B Figure 10 is a block diagram of one embodiment of a first level forward transform according to the present invention. If you take reference 4B so lead two filter units 401 and 402 , such as those in 4A are shown, the first level of transformation through. The filter unit 401 performs a level 1 horizontal transformation while the filter unit 402 performs a level 1 vertical transformation. In one embodiment, the first level of the transformation operates on 2x2 blocks of the input. Four registers 403 to 406 work as delay units to filter unit outputs 401 to delay. This is called a child-based order. The registry 403 receives the S output of the filter unit 401 while the registers 404 and 405 receive the d output. The output of the register 404 is at the input of the register 406 connected. The issues of the registers 403 and 406 are to the inputs of the multiplexer 407 whereas the s output of the filter unit 401 and the output of the register 405 to the inputs of the multiplexer 408 are connected. Two multiplexers 407 and 408 select inputs for the filter unit 402 from those of the delayed coefficient output from the filter unit 401 out.

Die Filtereinheit 401 arbeitet konsekutiv auf zwei vertikal benachbarten Paaren von Eingaben bzw. Eingangssignalen. Dies erzeugt vier Koeffizienten, die mit der richtigen Verzögerung, die von den Registern 403 bis 406 für jede Komponente bereitgestellt wird, in die Filtereinheit 402 eingegeben werden. Drei dieser vier Ergebnisse können sofort ausgegeben werden, die "ss"-Ausgabe wird weiterverarbeitet.The filter unit 401 works consecutively on two vertically adjacent pairs of inputs. This produces four coefficients, with the correct delay being set by the registers 403 to 406 for each component is provided in the filter unit 402 be entered. Three of these four results can be output immediately, the "ss" output is processed further.

Die Vorwärtsübertragung gemäß dem ersten Niveau arbeitet auf Gruppen von vier Pixeln, die sich in 2x2-Gruppierungen befinden. Für Diskussionszwecke sollte die erste Zeile bzw. Reihe Pixel a und b enthalten, während die zweite Zeile bzw. Reihe Pixel c und d enthalten sollte. Die Operation der Erst-Niveau-Vier-Transformation in 4B ist wie folgt. Während des ersten Zyklus wird die horizontale Transformation auf die a- und b-Pixel angewendet, die durch die Filtereinheit 401 verarbeitet werden. Die Filtereinheit 401 erzeugt die Sab, was im Register 403 gespeichert wird, und Dab, was im Register 404 und 405 gespeichert wird. In dem nächsten Zyklus werden die Pixel c und d durch die Filtereinheit 401 verarbeitet, um die horizontale Transformation durchzuführen. Infolge der Anwendung der Filtereinheit 401 wird Scd, das im Register 403 gespeichert ist, und Dcd, das in den Registern 404 und 405 gespeichert ist, erzeugt. Bei diesem Zyklus werden Sab vom Register 403 und Scd vom Register 405 durch die Filtereinheit 402 verarbeitet, die einen vertikalen Durchlaß der Transformation durchführt und SS und SD erzeugt. Ebenso während des zweiten Zyklus bewegt sich der Wert Dab vom Register 404 zum Register 406. Im nächsten Zyklus werden der Wert Dab vom Register 406 und Dcd von 405 durch die Filtereinheit 402 verarbeitet, die die Ausgaben DS und DD erzeugt. In demselben Zyklus verarbeitet Filtereinheit 401 die a- und b-Pixel von dem nächsten 2x2-Block.The forward transmission according to the first level works on groups of four pixels which are in 2x2 groupings. For discussion purposes, the first row or row should contain pixels a and b, while the second row should contain pixels c and d. The operation of the first-level-four-transformation in 4B is as follows. During the first cycle, the horizontal transformation is applied to the a and b pixels passing through the filter unit 401 are processed. The filter unit 401 produces the S from what's in the register 403 stored, and D from what is in the register 404 and 405 is stored. In the next cycle, pixels c and d pass through the filter unit 401 processed to perform the horizontal transformation. As a result of application of the filter unit 401 S cd that is in the register 403 is stored, and D cd in the registers 404 and 405 is stored, generated. In this cycle, S are subtracted from the register 403 and S cd from the register 405 through the filter unit 402 which performs a vertical pass of the transformation and generates SS and SD. Also during the second cycle, the value D ab moves from the register 404 to the register 406 , In the next cycle, the value D is removed from the register 406 and D cd of 405 through the filter unit 402 which generates the outputs DS and DD. In the same cycle processed filter unit 401 the a and b pixels from the next 2x2 block.

5 ist ein Blockdiagramm einer Ausführungsform einer Vorwärtstransformation gemäß der vorliegenden Erfindung. Nimmt man Bezug auf 5, so führt die Niveau-1-Transformation 502 die Niveau-1-Transformation durch. Bei einer Ausführungsform umfaßt die Niveau-1-Transformation die Niveau-1-Transformation der 4B. Die Filtereinheit 505. handhabt die Niveaus 2, 3 und 4 der Transformation. Ein Speicher 503 speichert "ss"-Koeffizienten, bis ausreichend Koeffizienten verfügbar sind, um die Transformation durchzuführen. Die Anzahl der Koeffizienten, die gespeichert werden müssen, ist unten in der Tabelle 2 gezeigt. (Jede Stelle speichert einen Koeffizienten für jede Komponente.) 5 Figure 10 is a block diagram of one embodiment of a forward transform according to the present invention. If you take reference 5 , so does the level 1 transformation 502 the level 1 transformation by. In one embodiment, the level 1 transformation comprises the level 1 transformation of 4B , The filter unit 505 , handles the levels 2, 3 and 4 of the transformation. A store 503 stores "ss" coefficients until sufficient coefficients are available to perform the transformation. The number of coefficients to be stored is shown in Table 2 below. (Each digit stores a coefficient for each component.)

Tabelle 2 – "ss"-Verzögerungsspeicher

Figure 00400001
Table 2 - "ss" delay memory
Figure 00400001

Die Ordnungseinheit 504 multiplext die richtigen Eingaben in die Filtereinheit 505. Der Eingangspuffer 501 und der Ausgangspuffer 506 können erforderlich sein, um zwischen der Transferreihenfolge, die von der Transformation benötigt wird, und der Ordnung bzw. Reihenfolge, die durch den Bandpuffer oder das Kontextmodell benötigt wird, abzustimmen.The order unit 504 multiplexes the correct entries in the filter unit 505 , The input buffer 501 and the output buffer 506 may be required to tune between the transfer order needed by the transform and the order needed by the band buffer or the context model.

Für die inverse Transformation wird der Datenfluß umgedreht, wobei die Niveau-4-Invers-Transformation gefolgt von der Niveau-3-, Niveau-2- und Niveau-1-Transformation in einer Reihenfolge durchgeführt wird. Die Ausgabe der Niveau-2-Transformation wird in die erste Niveau-Transformations-Hardware der Niveau-1-Transformation 502 eingegeben. Ebenso wird ein vertikales Filtern vor einem horizontalen Filtern durchgeführt. Da das horizontale und vertikale Filtern identisch sind mit der Ausnahme, daß eine Richtung einen Zugriff zu zusätzlichen Speichern für die Säume erforderlich macht, kann eine Umkehrung des Datenflusses mit einem geringen Umfang an Multiplexen durchgeführt werden. Vor der inversen Transformation müssen die Zwei-Byte-Koeffizienten von der eingebetteten Form mit zwei Signalisierungsbits in normale Zweier-Komplementärzahlen konvertiert werden.For inverse transformation, the data flow is reversed, with the level 4 inverse transform followed by the level 3, level 2, and level 1 transforms in an order. The output of the level 2 transform becomes the level 1 transform first level transform hardware 502 entered. Likewise, vertical filtering is performed before horizontal filtering. Since the horizontal and vertical filtering are identical except that one direction requires access to additional memories for the seams, inversion of the data flow can be performed with a small amount of multiplexing. Prior to the inverse transform, the two-byte coefficients must be converted from the embedded form with two signaling bits to normal two's complement numbers.

Die Elemente, die in 4B und 5 gezeigt sind, können ebenso für die TT-Transformationen verwendet werden.The elements that are in 4B and 5 can also be used for the TT transformations.

Transformations-ZeitsteuerungTransformations timing

Die Transformations-Zeitsteuerung der Vorwärtstransformation der 5 basiert auf der Zeitsteuerung der einzelnen Filtereinheiten. Die erste Filtereinheit, die Filtereinheit 401, berechnet Horizontal-Niveau-1-Transformationen, während die zweite Filtereinheit, die Filtereinheit 402, vertikale Niveau-1-Transformationen berechnet. Die dritte Filtereinheit, die Filtereinheit 505, berechnet Transformationen für Niveaus 2 bis 4 oder sie ist untätig.The transformation timing of the forward transformation of 5 based on the timing of the individual filter units. The first filter unit, the filter unit 401 calculated horizontal level 1 transformations, while the second filter unit, the filter unit 402 calculated vertical level 1 transformations. The third filter unit, the filter unit 505 , calculates transformations for levels 2 to 4 or she is idle.

Bei einer Ausführungsform berechnet die dritte Filtereinheit (505), wenn sie nicht untätig ist, horizontale Transformationen während geradzahligen Taktzyklen und vertikale Transformationen während ungeradzahligen Taktzyklen. Die Zeitsteuerung für die inverse Transformation ist ähnlich (aber umgekehrt).In one embodiment, the third filter unit calculates ( 505 ) when not idle, horizontal transforms during even clock cycles and vertical transforms during odd clock cycles. The timing for inverse transformation is similar (but vice versa).

Bei dem folgenden Beispiel werden 2x2-Blöcke innerhalb eines Wavelet-Baums in der Transponierten einer Rasterordnung verarbeitet. Bemerkenswert ist, daß eine geringe Eingangs-/Ausgangs-(I/O)-Pufferung erforderlich sein könnte, um ein Schnell-Seitenmodus-/EDO-DRAM zu unterstützen, falls 2x2-Blöcke innerhalb eines Wavelet-Baums statt dessen in Rasterordnung verarbeitet werden.at The following example shows 2x2 blocks within a wavelet tree processed in the transposed a raster order. Remarkable is that one low input / output (I / O) buffering might be required to support a fast page mode / EDO DRAM if 2x2 blocks within a Wavelet tree instead be processed in raster order.

6 ist ein Zeitsteuerdiagramm für den Fall, wenn Koeffizienten ausgegeben werden. Die folgende Zeitsteuerung bzw. der folgende Zeitablauf gilt für jedes Pixel. Es gibt vier Komponenten pro Pixel. 6 is a timing chart for the case when coefficients are output. The following timing or timing applies to each pixel. There are four components per pixel.

Figure 00410001
Figure 00410001

Figure 00420001
Figure 00420001

Da es für den Fachmann üblicher ist, sog. Pseudokodes in der englischen Sprache zu lesen, wird der oben deutsch wiedergegebene Pseudokode im folgenden nochmals in Englisch wiedergegeben:

Figure 00420002
Figure 00430001
Since it is more common for a person skilled in the art to read so-called pseudo codes in the English language, the pseudo code reproduced above in German is again reproduced in English:
Figure 00420002
Figure 00430001

TT-TransformationTT transform

7A bis 7H zeigen die Ergebnisse (Ausgaben) jeder eindimensionalen Filteroperation der TT-Transformation. Ein Rechteck zeigt Koeffizienten in einem einzigen Wavelet-Baum an, der den Eingabepixeln entspricht, die gegenwärtig verarbeitet werden. Eine Schattierung zeigt Koeffizienten an, die von dem vorhergehenden Baum gespeichert werden. Die Werte, die mit "B" bezeichnet bzw. markiert werden, stellen Zwischenergebnisse dar, die gespeichert werden (und die die Differenz zwischen benachbarten Abtastwerten bzw. Werten darstellen). Die TT-Transformation ähnelt der TS-Transformation, benötigt aber mehr Speicher. 7A to 7H show the results (outputs) of each one-dimensional filter operation of the TT transformation. A rectangle displays coefficients in a single wavelet tree that corresponds to the input pixels currently being processed. Shading indicates coefficients stored by the previous tree. The values labeled "B" represent intermediate results that are stored (and the difference between adjacent samples or represent values). The TT transformation is similar to the TS transformation, but requires more memory.

8 ist ein Blockdiagramm einer 10-Abgriffs-Vorwärts-/Invers-Filtereinheit. Bemerkenswert ist, daß hardware-verdrahtete Verschiebungen und Rundungsoffsets bzw. ein Rundungsversatz nicht gezeigt sind, um die vorliegende Erfindung nicht zu verschleiern. Bemerkenswert ist, daß der Multiplexer 806 in 8 ebenso zur Spiegelung ("mirroring") bei Transformationsgrenzen verwendet werden kann. Für eine Implementation der Spiegelung ist es ebenso nötig, daß der "d"-Eingang 0 gemacht wird und der s(n + 2)-Eingang der Überlappeinheit gemultiplext wird. 8th Figure 10 is a block diagram of a 10-tap forward / inverse filter unit. It is noteworthy that hardware wired shifts and round offsets are not shown so as not to obscure the present invention. It is noteworthy that the multiplexer 806 in 8th also can be used for mirroring ("mirroring") at transformation limits. For an implementation of the mirroring, it is also necessary that the "d" input 0 be made and the s (n + 2) input of the overlap unit be multiplexed.

Nimmt man Bezug auf 8, so sind die Addierer 801 und 802 angeschlossen, um die 2-n-Bit-Eingänge während des Vorwärtsdurchlaufs der Filtereinheit zu empfangen. Der Addierer 801 addiert die 2-n-Bit-Eingaben und gibt einen Wert aus, der mit einem Eingang des Multiplexers 803 verbunden ist. Der Addierer 802 subtrahiert einen Eingang von dem anderen, wobei er seine Ausgabe für einen Eingang des Multiplexers 804 erzeugt. Die Multiplexer 803 und 804 sind ebenso angeschlossen, um die s- und d-Eingaben jeweilig für den Invers-Modus-Betrieb der Filtereinheit zu empfangen. Die Ausgaben des Multiplexers 803 stellen eine n-Bit-Eingabe dar, die s(n + 2) gleicht, während der Ausgang des Multiplexers 804 einer n + 1-Bit-Eingabe entspricht, die p(n + 2) für den Vorwärtsdurchlauf und d(n + 2) für den inversen Durchlauf ist.If you take reference 8th so are the adders 801 and 802 connected to receive the 2 n-bit inputs during the forward pass of the filter unit. The adder 801 adds the 2-n-bit inputs and outputs a value equal to one input of the multiplexer 803 connected is. The adder 802 subtracts one input from the other, giving its output to one input of the multiplexer 804 generated. The multiplexers 803 and 804 are also connected to receive the s and d inputs respectively for the inverse-mode operation of the filter unit. The outputs of the multiplexer 803 represent an n-bit input equal to s (n + 2) while the output of the multiplexer 804 corresponds to an n + 1-bit input which is p (n + 2) for the forward pass and d (n + 2) for the inverse pass.

Beide Ausgaben der Multiplexer 803 und 804 sind mit den Eingaben des Speichers 805 verbunden. Ebenso sind mit den Eingaben des Speichers 805 die Ausgaben 806A und 806D bis F verbunden, die von dem Multiplexer 806 ausgegeben werden. Der Speicher 805 verzögert die Eingaben zu seinen Ausgängen basierend auf der räumlichen Stelle. Bei einer Ausführungsform umfaßt der Speicher 805 eine Registerdatei oder ein SRAM, das in einer Pingpong Art und Weise mit zwei Bänken oder einem Port pro Bank verbunden ist. Eine Adresse ist mit einem Eingang des Speichers verbunden, um die Ausgaben zu steuern, die für den Multiplexer 806 erzeugt werden. Bei einer Ausführungsform speichert die Adresse 16 oder 28 Stellen pro Komponente.Both outputs of the multiplexer 803 and 804 are with the inputs of the memory 805 connected. Likewise are with the inputs of the memory 805 expenditure 806A and 806D connected to F by the multiplexer 806 be issued. The memory 805 delays the inputs to its outputs based on the spatial location. In one embodiment, the memory comprises 805 a register file or SRAM connected in a ping-pong fashion with two banks or one port per bank. An address is connected to an input of the memory to control the outputs necessary for the multiplexer 806 be generated. In one embodiment, the address stores 16 or 28 Digits per component.

Die Ausgaben des Speichers 805 sind mit den Eingängen des Multiplexers 806 zusammen mit den externen Pufferdaten, die von dem Saumpuffer bei 820 empfangen werden, verbunden. Die Ausgabe 806A des Multiplexers 806 umfaßt s(n + 1), was eine einmal verzögerte Version von s(n + 2) bei dem Ausgang von dem Multiplexer 803 ist. Der Ausgang 806B des Multiplexers 806 umfaßt s(n), was eine zweimal verzögerte Version des Ausgangs des Multiplexers 803 ist. Der Ausgang 806C des Multiplexers 806 umfaßt p(n) für den Vorwärtsdurchlauf, was eine zweimal verzögerte Version des Ausgangs des Multiplexers 806 ist, und d(n) in dem inversen Durchlauf, was eine zweimal verzögerte Version des Ausgangs des Multiplexers 804 ist. Der Ausgang 806D umfaßt s(n – 2), was eine viermal verzögerte Version des Ausgangs des Multiplexers 803 ist. Der Ausgang 806E des Multiplexers 806 umfaßt s(n – 1), was dreimal verzögert vom Ausgang des Multiplexers 803 ist. Letztlich umfaßt der Ausgang 806F t(n + 1) in dem Vorwärtsdurchlauf, was eine einmal verzögerte Version der Ausgabe des Multiplexers 804 ist, und d(n + 1) für den inversen Durchlauf, was eine einmal verzögerte Version der Ausgabe des Multiplexers 804 ist.The issues of the store 805 are connected to the inputs of the multiplexer 806 along with the external buffer data supplied by the hem buffer 820 be received, connected. The edition 806A of the multiplexer 806 includes s (n + 1), which is a once-delayed version of s (n + 2) at the output from the multiplexer 803 is. The exit 806B of the multiplexer 806 includes s (n), which is a twice delayed version of the output of the multiplexer 803 is. The exit 806C of the multiplexer 806 includes p (n) for the forward pass, which is a twice delayed version of the output of the multiplexer 806 is, and d (n) in the inverse pass, which is a twice delayed version of the output of the multiplexer 804 is. The exit 806D includes s (n-2), which is a four-time delayed version of the output of the multiplexer 803 is. The exit 806E of the multiplexer 806 includes s (n-1), which is delayed three times from the output of the multiplexer 803 is. Ultimately, the output includes 806F t (n + 1) in the forward pass, which is a once-delayed version of the output of the multiplexer 804 is, and d (n + 1) for the inverse pass, which is a once delayed version of the output of the multiplexer 804 is.

Die Überlappeinheit 807 ist angeschlossen, um die Ausgabe des Multiplexers 803 zusammen mit den Ausgaben 806A, D und E vom Multiplexer 806 zu empfangen. In Antwort auf diese Eingaben erzeugt die Überlappeinheit 807 t(n). Eine Ausführungsform der Überlappeinheit wird in 9 beschrieben.The overlap unit 807 is connected to the output of the multiplexer 803 along with the issues 806A , D and E from the multiplexer 806 to recieve. In response to these inputs, the overlap unit generates 807 t (n). An embodiment of the overlapping unit is shown in FIG 9 described.

Die Ausgabe der Überlappeinheit 807, t(n), ist mit einem Eingang der Addierer 808 und 809 verbunden. Der Addierer 808 addiert t(n) zu dem Ausgang 806C des Multiplexers 806, um den D-Ausgang der Filtereinheit zu erzeugen. Der Addierer 809 subtrahiert den Ausgang 806C des Multiplexers 806 von t(n). Der Ausgang des Addierers 809 ist mit einem Eingang von jedem der Addierer 810 und 811 verbunden. Der Addierer 810 addiert den Ausgang des Addierers 809 mit dem Ausgang 806B des Multiplexers 806, um einen der n-Bit-Ausgaben des Filters zu erzeugen, wenn er als eine inverse Filtereinheit arbeitet. Der Addierer 811 subtrahiert den Ausgang des Addierers 809 von dem Ausgang 806B des Multiplexers 806, um die andere Ausgabe der Filtereinheit zu erzeugen, wenn er als ein inverser Filter arbeitet.The output of the overlap unit 807 , t (n), is one input of the adders 808 and 809 connected. The adder 808 adds t (n) to the output 806C of the multiplexer 806 to generate the D output of the filter unit. The adder 809 subtracts the output 806C of the multiplexer 806 from t (n). The output of the adder 809 is with one input from each of the adders 810 and 811 connected. The adder 810 adds the output of the adder 809 with the exit 806B of the multiplexer 806 to produce one of the n-bit outputs of the filter when operating as an inverse filter unit. The adder 811 subtracts the output of the adder 809 from the exit 806B of the multiplexer 806 to generate the other output of the filter unit when operating as an inverse filter.

9 ist ein Blockdiagramm einer Ausführungsform der Überlappeinheit für den Vorwärts-/Invers-Filter der 8. Nimmt man Bezug auf 9, so umfaßt die Überlappeinheit Addierer 901 bis 906, Multiplizierer 907 bis 909 und einen Dividierer 910. Bei den Multiplizierern und Dividierern kann es sich um hardware-verdrahtete Verschiebungen bzw. Verschieber handeln. 9 FIG. 12 is a block diagram of one embodiment of the overlap unit for the forward / inverse filter of FIG 8th , If you take reference 9 Thus, the overlap unit comprises adders 901 to 906 , Multiplier 907 to 909 and a divider 910 , The multipliers and dividers may be hardware-wired shifters.

Die Überlappeinheit der 9 berechnet t(n) für die TT-Transformation, die oben beschrieben ist. Nimmt man Bezug auf 9, so ist der Addierer 901 angeschlossen, um den s(n + 2)-Eingang zu empfangen und ihn von dem s(n – 2)-Eingang zu subtrahieren, und er erzeugt eine Ausgabe, die an einen Eingang des Addierers 903 angekoppelt ist. Der Addierer 902 ist angeschlossen, um den s(n – 1)-Eingang zu empfangen und ihn von dem s(n + 1)-Eingang zu subtrahieren. Der Ausgang des Addierers 902 ist an den Eingang des Multiplizierers 907 und Multiplizierers 908 angeschlossen. Der Multiplizierer 907 multipliziert seinen Eingang mit 2. Bei einer Ausführungsform wird die Multiplikation durch Verschieben der Bits zur linken Position durchgeführt. Die Ausgabe des Multiplizierers 907 ist an den anderen Eingang des Addierers 903 angeschlossen.The overlap unit of 9 calculates t (n) for the TT transformation described above. If you take reference 9 so is the adder 901 connected to receive the s (n + 2) input and to subtract it from the s (n - 2) input, and generates an output which is applied to one input of the s adder 903 is coupled. The adder 902 is connected to receive the s (n - 1) input and to subtract it from the s (n + 1) input. The output of the adder 902 is at the input of the multiplier 907 and multiplier 908 connected. The multiplier 907 multiplies its input by 2. In one embodiment, the multiplication is performed by shifting the bits to the left position. The output of the multiplier 907 is at the other input of the adder 903 connected.

Der Multiplizierer 908 multipliziert die Ausgabe des Addierers 902 mit 16. Bei einer Ausführungsform wird die Multiplikation durchgeführt, indem die Bits verschoben werden, die von dem Addierer 902 ausgegeben werden, und zwar zu den linken vier Bit-Positionen. Der Ausgang des Multiplexers 908 ist an einen Eingang des Addierers 905 angeschlossen. Der Ausgang des Addierers 903 ist an einen Eingang des Addierers 904 angeschlossen und ebenso an den Eingang des Multiplexers 909.The multiplier 908 multiplies the output of the adder 902 16. In one embodiment, the multiplication is performed by shifting the bits sent by the adder 902 are output, to the left four bit positions. The output of the multiplexer 908 is to an input of the adder 905 connected. The output of the adder 903 is to an input of the adder 904 connected and also to the input of the multiplexer 909 ,

Der Multiplizierer 909 multipliziert die Ausgabe des Addierers 903 mit 2. Bei einer Ausführungsform wird diese Multiplikation durchgeführt, indem die Bits verschoben werden, die von dem Addierer 903 ausgegeben werden, und zwar zu der linken Bit-Position. Die Ausgabe des Multiplizierers 909 ist mit dem anderen Eingang des Addierers 904 verbunden. Die Ausgabe des Addierers 904 ist mit dem anderen Eingang des Addierers 905 verbunden. Der Ausgang des Addierers 905 ist an einen Eingang des Addierers 906 angeschlossen, der diese zu 32 addiert, wobei es sich um einen hardware-verdrahteten Eingang handelt. Die Ausgabe des Addierers 906 ist an den Angang des Dividierers 910 angeschlossen. Der Dividierer 910 dividiert den Eingang durch 64. Bei einer Ausführungsform wird diese Division durch Verschieben der Bits des Eingangs zu den rechten sechs Bit-Positionen bewerkstelligt. Die Ausgabe des Dividierers 910 umfaßt den t(n)-Ausgang. Bemerkenswert ist, daß die 9 jeden Ausgang mit dem aktuellen Wert auf den Leitungen zeigt.The multiplier 909 multiplies the output of the adder 903 with 2. In one embodiment, this multiplication is performed by shifting the bits sent by the adder 903 are output to the left bit position. The output of the multiplier 909 is with the other input of the adder 904 connected. The output of the adder 904 is with the other input of the adder 905 connected. The output of the adder 905 is to an input of the adder 906 connected, adding them to 32, which is a hardware-wired input. The output of the adder 906 is at the start of the divider 910 connected. The divider 910 divides the input by 64. In one embodiment, this division is accomplished by shifting the bits of the input to the right six bit positions. The output of the divider 910 includes the t (n) output. It is noteworthy that the 9 shows each output with the current value on the lines.

Bemerkenswert ist, daß sowohl bei der reversiblen TS-Transformation als auch TT-Transformation, ähnlich bei der S-Transformation, der Tiefpaßfilter so implementiert wird, daß die Spanne des Eingangssignals x(n) dieselbe ist, wie die des Ausgangssignals s(n). Das heißt, es gibt kein Wachstum in dem glatten bzw. geglätteten Ausgang. Falls das Eingangssignal b-Bits tief ist, dann beträgt der glatte bzw. geglättete Ausgang ebenso b-Bits. Zum Beispiel ist, falls das Signal ein 8-Bit-Bild ist, der Ausgang des Tiefpaßfilters ebenso 8 Bits. Dies ist eine wichtige Eigenschaft für ein pyramidales System, wo der glatte Ausgang weiter dekomprimiert wird durch z.B. sukzessives Anwenden des Tiefpaßfilters. Bei Systemen nach dem Stand der Technik ist die Spanne des Ausgangssignals größer als jene des Eingangssignals, wodurch aufeinanderfolgende bzw. sukzessive Anwendungen des Filters erschwert sind. Ebenso gibt es keinen systemischen Fehler aufgrund des Rundens bei den Ganzzahl-Implementationen der Transformation, so daß sämtliche Fehler in einem verlustbehafteten System durch die Quantisierung gesteuert bzw. kontrolliert werden können. Zusätzlich weist der Tiefpaßfilter nur zwei Abgriffe auf, die ihn zu einem nicht überlappenden Filter machen. Diese Eigenschaft ist für die Hardware-Implementation wichtig.Remarkable is that both in reversible TS transformation as well as TT transformation, similar to the s-transform, the low-pass filter is implemented like this that the Span of the input signal x (n) is the same as that of the output signal s (n). This means, there is no growth in the smooth output. If the input signal b bits is deep, then amounts to the smooth or smoothed Output as well b bits. For example, if the signal is an 8-bit image is, the output of the low-pass filter as well 8 bits. This is an important property for a pyramidal System where the smooth output is further decompressed by e.g. successively applying the low-pass filter. In prior art systems, the span of the output signal is greater than those of the input signal, whereby successive or successive Applications of the filter are difficult. Likewise, there is no systemic Error due to rounding in integer implementations of the Transformation, so that all Error in a lossy system due to quantization can be controlled or controlled. In addition, the low pass filter just two taps on, making it a non-overlapping filter. This property is for the hardware implementation important.

Eingebettetes Ordnenembedded Organize

Bei der vorliegenden Erfindung werden die Koeffizienten, die als ein Ergebnis der Wavelet-Zerlegung erzeugt werden, entropiekodiert. Bei der vorliegenden Erfindung durchlaufen die Koeffizienten anfänglich ein eingebettetes Ordnen, bei dem die Koeffizienten in einer visuell signifikanten Reihenfolge geordnet werden, oder allgemeiner bezüglich derselben Fehlermetrik geordnet werden (z.B. Verzerrungsmetrik bzw. Distorsionsmetrik). Fehler- oder Verzerrungsmetriken beinhalten z.B. einen Spitzen-Fehler oder mittleren quadrierten Fehler bzw. mittleren quadratischen Fehler (MSE). Zusätzlich kann ein Ordnen durchgeführt werden, um einer Bit-Signifikanz-Raumstelle, einer Relevanz hinsichtlich der Datenbasisabfrage und einer Richtung (vertikal, horizontal, diagonal usw.) den Vorzug zu geben.at According to the present invention, the coefficients serving as a Result of the wavelet decomposition can be generated, entropy-coded. In the present invention, the coefficients initially undergo an embedded one Order in which the coefficients are in a visually significant Ordered order, or more generally with respect to the same Error metric (e.g., distortion metric). Error or distortion metrics include e.g. a top mistake or middle one squared error or mean square error (MSE). In addition, can a sorting performed be of relevance to a bit significance space location the database query and one direction (vertical, horizontal, diagonal, etc.) to give preference.

Das Ordnen der Daten wird durchgeführt, um die eingebettete Quantisierung des Kodestroms zu erzeugen. Bei der vorliegenden Erfindung werden zwei ordnende Systeme verwendet: ein erstes zum Ordnen der Koeffizienten und ein zweites zum Ordnen der binären Werte innerhalb eines Koeffizienten. Das Ordnen der vorliegenden Erfindung erzeugt einen Bitstrom, der danach mit einem binären Entropiekodierer kodiert wird.The Ordering the data is done to generate the embedded quantization of the code stream. at Two ordering systems are used in the present invention: a first for ordering the coefficients and a second for ordering the binary Values within a coefficient. The order of the present Invention generates a bitstream which is subsequently provided with a binary entropy coder is encoded.

Bit-Signifikanz-DarstellungBit-significance representation

Die meisten Transformationskoeffizienten stellen vorzeichenbehaftete Zahlen dar, selbst wenn die ursprünglichen Komponenten nicht vorzeichenbehaftet sind (jeder Koeffizient, der von wenigstens einem Detailfilter ausgegeben wird, ist vorzeichenbehaftet). Bei einer Ausführungsform ist die eingebettete Reihenfolge, die für binäre Werte innerhalb eines Koeffizienten verwendet wird, eine Reihenfolge Bitebene für Bitebene. Die Koeffizienten werden in einer Bit-Signifikanz-Darstellung vor dem Kodieren ausgedrückt. Die Bit-Signifikanz ist eine Vorzeichen-Betrag-Darstellung, wo das Vorzeichenbit, eher als daß es das höchstwertige Bit (MSB) ist, mit dem ersten Bit mit Betrag ungleich Null kodiert wird. Das heißt, das Vorzeichenbit folgt dem ersten Bit mit Betrag ungleich Null, eher als daß es allen Betragsbits vorangeht. Ebenso wird das Vorzeichenbit so angesehen, daß es in derselben Bitebene wie das höchstwertige Betragsbit ungleich Null liegt.Most transform coefficients represent signed numbers, even if the original components are unsigned (each coefficient output by at least one detail filter is signed). In one embodiment, the embedded order used for binary values within a coefficient is a bit-level bit-plane order. The Ko Efficiencies are expressed in a bit significance representation before encoding. The bit significance is a sign magnitude representation where the sign bit, rather than being the most significant bit (MSB), is encoded with the first non-zero magnitude bit. That is, the sign bit follows the first nonzero bit, rather than preceding all magnitude bits. Likewise, the sign bit is considered to be in the same bit-plane as the most significant magnitude non-zero magnitude bit.

Das Bit-Signifikanz-Format stellt eine Zahl dar, indem drei Sätze von Bits verwendet werden: Kopf, Schwanz und Vorzeichen. Die Kopfbits sind alle Null-Bits von dem MSB bis zu und einschließlich dem ersten Betragsbit ungleich Null. Die Bitebene, in der das erste Betragsbit ungleich Null auftritt, legt die Signifikanz des Koeffizienten fest. Der Satz von Schwanzbits umfaßt die Betragsbits nach dem ersten Betragsbit ungleich Null bis zu dem LSB. Das Vorzeichenbit bezeichnet einfach das Vorzeichen, wobei 0 ein positives Vorzeichen und 1 ein negatives Vorzeichen darstellen kann. Eine Zahl, wie z.B. ±1n, mit einem Null-Bit als das MSB, weist nur ein Kopfbit auf. Ein Null-Koeffizient hat keine Schwanz- oder Vorzeichenbits. Tabelle 3 zeigt alle möglichen Werte zum Ausbilden von Bit-Koeffizienten, die von –7 bis 8 reichen.The bit significance format represents a number using three sets of bits: head, tail, and sign. The header bits are all zero bits from the MSB up to and including the first nonzero magnitude bit. The bit plane in which the first non-zero magnitude bit occurs determines the significance of the coefficient. The set of tail bits includes the magnitude bits after the first non-zero magnitude bit up to the LSB. The sign bit simply denotes the sign, where 0 can represent a positive sign and 1 a negative sign. A number, such as ± 1 n , with a zero bit as the MSB has only one header. A zero coefficient has no tail or sign bits. Table 3 shows all possible values for forming bit coefficients ranging from -7 to 8.

Tabelle 3 – Bit-Signifikanz-Darstellung für 4-Bit-Werte

Figure 00500001
Table 3 - Bit significance representation for 4-bit values
Figure 00500001

In Tabelle 3 enthält die Bit-Signifikanz-Darstellung, die in jeder Spalte gezeigt ist, ein oder zwei Bits. In dem Fall von zwei Bits, ist das erste Bit das erste 1-Bit und wird von dem Vorzeichenbit gefolgt.In Table 3 contains the bit significance representation shown in each column one or two bits. In the case of two bits, the first bit is the first 1-bit and is followed by the sign bit.

In dem Fall, wo die Werte nicht negative ganze Zahlen sind, wie dies z.B. bezüglich der Intensität der Pixel auftritt, ist die Reihenfolge, die verwendet werden kann, die Bitebenen-Reihenfolge bzw. die Bitebenen-Ordnung (z.B. von der höchstwertigen zu der niedrigswertigen Bitebene). Die Ausführungsformen, wo negative ganze Zweier komplementzahlen ebenso erlaubt sind, ist die eingebettete Ordnung des Vorzeichenbits dieselbe, wie das erste Bit ungleich Null des absoluten Werts der ganzen Zahl. Deshalb wird das Vorzeichenbit nicht beachtet, bis ein Bit ungleich Null kodiert wird. Verwendet man z.B. eine Vorzeichen-Betrag-Notation, so lautet die 16-Bitzahl –7:
1000000000000111
In the case where the values are non-negative integers, as occurs, for example, with respect to the intensity of the pixels, the order that can be used is bit plane order or bit plane order (eg, from most significant to least significant bit level). The embodiments where negative integer integer numbers are also allowed, the embedded order of the sign bit is the same as the first non-zero bit of the integer value of the integer. Therefore, the sign bit is ignored until a nonzero bit is encoded. For example, if you use a sign magnitude notation, the 16 bit number is -7:
1000000000000111

Auf einer Bitebenenbasis werden die ersten zwölf Entscheidungen "insignifikant" oder Null sein. Das erste 1-Bit tritt bei der dreizehnten Entscheidung auf. Als nächstes wird das Vorzeichenbit ("negativ") kodiert. Nachdem das Vorzeichenbit kodiert ist, werden die Schwanzbits verarbeitet. Die fünfzehnte und sechzehnte Entscheidung lautet jeweils "1".On At a bit-plane basis, the first twelve decisions will be "insignificant" or zero. The first 1-bit occurs at the thirteenth decision. When next the sign bit ("negative") is coded. After this the sign bit is encoded, the tail bits are processed. The fifteenth and sixteenth decision is "1".

Da die Koeffizienten von der höchstwertigen Bitebene zu der niedrigstwertigen Bitebene kodiert werden, muß die Anzahl der Bitebenen in den Daten bestimmt werden. Bei der vorliegenden Erfindung wird dies bewerkstelligt, indem eine obere Grenze für die Beträge der Koeffizientenwerte gefunden wird, die von den Daten berechnet werden oder von der Tiefe des Bildes und den Filterkoeffizienten abgeleitet wird. Wenn z.B. die obere Grenze 149 beträgt, dann gibt es acht signifikante Bits oder acht Bitebenen. Zur Beschleunigung der Software kann ein Bitebenenkodierer nicht verwendet werden. Bei einer alternative Ausführungsform wird eine Bitebene nur kodiert, wenn ein Koeffizient als eine binäre Zahl signifikant wird.There the coefficients of the highest order Bite level must be encoded to the least significant bit plane, the number the bitplanes in the data. At the present The invention accomplishes this by setting an upper bound on the values of the coefficient values which are calculated from the data or from the depth of the image and the filter coefficients. If e.g. the upper limit is 149, then there are eight significant bits or eight bit planes. For acceleration the software can not use a bit-plane encoder. In an alternative embodiment a bit plane is only coded if a coefficient is a binary number becomes significant.

Koeffizientenausrichtungcoefficients orientation

Die vorliegende Erfindung richtet Koeffizienten vor der Bitebenenkodierung gegeneinander aus. Dies liegt daran, daß die Koeffizienten in verschiedenen Frequenzunterbändern unterschiedliche Frequenzen darstellen, die der FFT oder der DCT ähneln. Durch das Ausrichten der Koeffizienten steuert die vorliegende Erfindung die Quantisierung. Die weniger heftig quanisierten Koeffizienten werden in Richtung auf die früheren Bitebenen ausgerichtet (z.B. nach links verschoben). Somit werden diese Koeffizienten, falls der Strom abgeschnitten wird, mehr Bits aufweisen, die sie festlegen, als die heftiger quantisierten Koeffizienten.The The present invention sets coefficients before bid-plane coding against each other. This is because the coefficients in different Frequency sub-bands represent different frequencies that are similar to the FFT or the DCT. By the alignment of the coefficients controls the present invention the quantization. The less heavily quantized coefficients will be heading towards the earlier bit levels aligned (e.g., shifted to the left). Thus, these coefficients, if the stream is cut off, they have more bits that they than the more heavily quantized coefficients.

Bei eine Ausführungsform werden die Koeffizienten für die beste Raten-Verzerrungs-Leistungsfähigkeit in Termen von SNR ("Signal to Noise Ratio" bzw. "Signal-zu-Rausch-Verhältnis") oder MSE ausgedrückt. Es gibt viele mögliche Ausrichtungen bzw. Anordnungen einschließlich einer, die nahezu hinsichtlich der statistischen Fehlermetriken, wie z.B. MSE, ist. Alternativ könnte die Ausrichtung eine psychovisuelle Quantisierung der Koeffizientendaten erlauben. Die Ausrichtung hat einen wesentlichen Einfluß auf die Evolution der Bildqualität (oder in anderen Worten auf die Raten-Verzerrungs-Kurve), aber sie hat einen vernachlässigbaren Einfluß das endgültige Kompressionsverhältnis des verlustfreien Systems. Andere Ausrichtungen können einer spezifischen Koeffizientenquantisierung, einem Interessenbereichs-Wiedergabetreue-Kodieren ("Region of Interest"-Wiedergabetreue) oder einer Auflösungs-Progressivausrichtung ("resolution progressive alignment") entsprechen.at an embodiment be the coefficients for the best rate distortion efficiency in terms of SNR ("Signal to Noise Ratio "or" signal-to-noise ratio ") or MSE are many possible Orientations or arrangements including one that is almost in terms of the statistical error metrics, such as MSE, is. alternative could the orientation is a psychovisual quantization of the coefficient data allow. The orientation has a significant influence on the Evolution of image quality (or in other words on the rate-distortion curve), but she has one negligible influence the final compression ratio of lossless system. Other orientations may be specific coefficient quantization, a region of interest fidelity or resolution-progressive alignment ("resolution progressive alignment ").

Die Ausrichtung kann in dem Kopf der komprimierten Daten signalisiert sein oder sie kann für eine bestimmte Anwendung fixiert sein (d.h. das System hat nur eine Ausrichtung). Die Ausrichtung der mit unterschiedlichen Größen versehenen Koeffizienten ist sowohl dem Kodierer als auch dem Dekodierer bekannt und hat keinen Einfluß auf die Effizienz des Entropiekodierers.The Alignment can be signaled in the header of the compressed data his or she can be for a particular application (i.e., the system has only one Orientation). The orientation of the different sizes Coefficients are known to both the encoder and the decoder and has no influence on the efficiency of the entropy coder.

Die Bittiefen der verschiedenen Koeffizienten in einer Zwei-Pegel-TS-Transformation und einer TT-Transformations-Zerlegung von einem Eingabebild mit b-Bits pro Pixel sind in 11 gezeigt. Die 12 stellt eine Ausführungsform der Multiplizierer für das Frequenzband dar, das für eine Koeffizientenausrichtung in der vorliegenden Erfindung verwendet wird. Um die Koeffizienten auszurichten bzw. abzustimmen, wird die 1-DD-Koeffizientengröße als eine Referenz verwendet, und Verschiebungen werden bezüglich dieser Größe durchgeführt bzw. vorgegeben. Eine Verschiebung von n stellt eine Multiplikation mit 2n dar.The bit depths of the various coefficients in a two-level TS transform and a TT transform decomposition from a b-bit per pixel input image are in 11 shown. The 12 FIG. 10 illustrates one embodiment of the multiplier for the frequency band used for coefficient alignment in the present invention. To align the coefficients, the 1-DD coefficient size is used as a reference, and shifts are made with respect to that size. A shift of n represents a multiplication by 2 n .

Bei einer Ausführungsform werden die Koeffizienten bezüglich des Betrags des größten Koeffizienten verschoben, um eine Ausrichtung aller Koeffizienten in dem Bild zu erzeugen. Die ausgerichteten Koeffizienten werden dann in Bitebenen gehandhabt, die Wichtigkeitsniveaus genannt werden, und zwar von dem höchstsignifikanten Wichtigkeitsniveau zu dem niedrigstsignifikanten Wichtigkeitsniveau. Das Vorzeichen wird mit dem letzten Kopfbit eines jeden Koeffizienten kodiert. Das Vorzeichenbit ist dort, wo das letzte Kopfbit drinnen ist, und zwar ungeachtet in welchem Wichtigkeitsniveau das letzte Kopfbit drinnen ist. Es ist wichtig, daß die Ausrichtung einfach die Reihenfolge steuert, in der die Bits zu dem Entropiekodierer gesendet werden. Tatsächlich wird ein Auffüllen, Verschieben, Speichern oder Codieren von Extra-Null-Bits nicht durchgeführt.at an embodiment the coefficients are relative to the amount of the largest coefficient, to create an alignment of all coefficients in the image. The aligned coefficients are then handled in bit planes, are called the importance levels, and of the most significant one Importance level at the lowest significant importance level. The sign becomes the last bit of each coefficient coded. The sign bit is where the last header bit is inside, regardless of the level of importance of the last header bit inside is. It is important that the alignment simply controls the order in which the bits to the entropy encoder be sent. Indeed becomes a padding, Move, save or encode extra zero bits not performed.

Tabelle 4 zeigt eine Ausführungsform von Ausrichtzahlen zum Ausrichten von Koeffizienten.table 4 shows an embodiment alignment numbers for aligning coefficients.

Tabelle 4 – Koeffizientenausrichtung

Figure 00530001
Table 4 - Coefficient orientation
Figure 00530001

Die Ausrichtung von Koeffizienten unterschiedlicher Größe ist sowohl dem Kodierer als auch dem Dekodierer bekannt und hat keinen Einfluß auf die Effizienz des Entropiekodierers.The Alignment of coefficients of different size is both the encoder as well as the decoder known and has no influence on the Efficiency of the entropy coder.

Bemerkenswert ist, daß die Codiereinheiten desselben Datensatzes unterschiedliche Ausrichtungen haben können.Remarkable is that the Encoding units of the same record have different orientations can.

Ordnen des Kodestroms und das KontextmodellArrange the Code stream and the context model

10 zeigt das Ordnen des Kodestroms und das Ordnen innerhalb einer Kodiereinheit. Nimmt man Bezug auf 10, so folgen dem Header bzw. Kopf 1001 die Kodiereinheiten 1002 in der Reihenfolge vom obersten Band zum Boden. (Der Header bzw. Kopf 1001 ist optional bei Anwendungen, die für einen einzelnen bzw. einzigartigen Bildtyp gestaltet sind.) Jede Kodiereinheit beinhaltet wichtigste Daten 1003, weniger wichtige Daten 1004 und am wenigsten wichtig Daten 1005. 10 shows the ordering of the code stream and the ordering within a coding unit. If you take reference 10 , so follow the header 1001 the coding units 1002 in the order from the top band to the bottom. (The header or header 1001 is optional for applications designed for a single or unique image type.) Each encoding unit contains key data 1003 , less important data 1004 and least importantly data 1005 ,

Das Kontextmodell bestimmt sowohl die Reihenfolge, in der die Daten kodiert werden und die Konditionierung, die für die spezifischen Bits der Daten verwendet wird. Das Ordnen wird zuerst beachtet. Das Ordnen der Daten bezüglich des höchsten Niveaus wurde bereits oben beschrieben. Die Daten werden in "wichtigste Daten" unterteilt, was hierin austauschbar als der wichtigste Hauptteil bzw. wichtigste Batzen bezeichnet wird (MIC bzw. "Most Important Chunk"), was verlustbehaftet in Transformationsordnung kodiert wird, und "weniger wichtige Daten", die hierin austauschbar als der am wenigsten wichtige Teil bzw. am wenigsten wichtige Batzen (LIC bzw. "Least Important Chunk) bezeichnet werden, und in einer eingebetteten vereinheitlichten bzw. vereinigten verlustfreien/verlustbehafteten Art und Weise kodiert wird.The Context model determines both the order in which the data and the conditioning required for the specific bits of the Data is used. The ordering is considered first. The arranging the data regarding of the highest Levels have already been described above. The data is divided into "main data", what herein interchangeable as the most important part Batzen is called (MIC or "Most Important Chunk"), which is lossy in the transformation order is coded, and "less important data", herein interchangeable as the least important part or least significant chunks (LIC), and in an embedded unified lossless / lossy one Way is encoded.

Die Ordnung in der die Koeffizienten während jeder Bitebene verarbeitet werden, läuft von der niedrigen Auflösung zu der hohen Auflösung (von der niedrigen Frequenz zu der hohen Frequenz). Der Koeffizientenunterbandkodierer innerhalb jeder Bitebene läuft von dem hohen Niveau (niedrige Auflösung, niedrige Frequenz) zu dem niedrigen Niveau (hohe Auflösung, hohe Frequenz). Innerhalb jedes Frequenzunterbandes findet das Kodieren in einer definierten Ordnung bzw. Reihenfolge statt. Bei einer Ausführungsform kann es sich bei der Ordnung um eine Rasterordnung, eine 2x2-Blockordnung, eine Serpentinenordnung bzw. gewundenen Ordnung, eine Peano-Abtastordnung („Peano scan order") usw. handeln.The Order in which the coefficients are processed during each bit level be, running from the low resolution to the high resolution (from low frequency to high frequency). The coefficient subband coder running within each bit level from the high level (low resolution, low frequency) too the low level (high resolution, high frequency). Within each frequency subband the coding takes place in a defined order or sequence. In one embodiment can the order be a grid order, a 2x2 block order, a serpentine order, a peano-order ( "Peano scan order ") etc. act.

Bei dem Fall einer Vier-Niveau-Zerlegung, wobei der Kodestrom der 3 verwendet wird, ist die Reihenfolge wie folgt:
4-SS, 4-DS, 4-SD, 4-DD, 3-DS, 3-SD, 3-DD, 2-DS, 2-SD, 2-DD, 1-DS, 1-SD, 1-DD
In the case of a four-level decomposition, where the code stream of the 3 is used, the order is as follows:
4-SS, 4-DS, 4-SD, 4-DD, 3-DS, 3-SD, 3-DD, 2-DS, 2-SD, 2-DD, 1-DS, 1-SD, 1 DD

Eine Ausführung des Kontextmodells, die bei der vorliegenden Erfindung verwendet wird, wird im folgenden beschrieben. Dieses Modell verwendet Bits innerhalb einer Kodiereinheit basierend auf der räumlichen und spektralen Abhängigkeit der Koeffizienten. Die verfügbaren binären Werte der benachbarten Koeffizienten und der Elternteil-Koeffizienten kann verwendet werden, um Kontexte zu erzeugen. Die Kontexte sind jedoch für die Dekodierfähigkeit und in kleiner Zahl für effiziente Adaption kausal.A execution of the context model used in the present invention will be described below. This model uses bits within a coding unit based on the spatial and spectral dependence the coefficients. The available binary Values of adjacent coefficients and parent coefficients can be used to create contexts. The contexts are however for the decoding ability and in small numbers for efficient adaptation causally.

Die vorliegende Erfindung liefert ein Kontextmodell, um den Bitstrom zu modellieren, der durch die Koeffizienten in der eingebetteten Bit-Signifikanz-Reihenfolge für den binären Entropiekodierer erzeugt wird.The The present invention provides a context model for the bitstream to be modeled by the coefficients in the embedded Bit significance order for the binary Entropiekodierer is generated.

37 zeigt die Nachbarschaftskoeffizienten für jeden Koeffizienten einer Kodiereinheit. Nimmt man Bezug auf 37, so werden die Nachbarschaftskoeffizienten mit offensichtlichen geographischen Bezeichnungen (z.B. N = Norden, NE = Nordosten, NW = Nordwesten, W = Westen, E = Osten, SE = Südosten usw.) bezeichnet. Sind ein Koeffizient, wie z.B. P in 37, und eine aktuelle Bitebene gegeben, kann das Kontextmodell jegliche Information von der gesamten Kodiereinheit vor der gegebenen Bitebene verwenden. Der Elternteil-Koeffizient des vorliegenden Koeffizienten wird ebenso für dieses Kontextmodell verwendet. 37 shows the neighborhood coefficients for each coefficient of a coding unit. If you take reference 37 , the neighborhood coefficients are given obvious geographical names (eg N = north, NE = northeast, NW = northwest, W = west, E = east, SE = southeast, etc.). Are a coefficient, such as P in 37 Given a current bit-plane, the context model can use any information from the entire coding unit before the given bit-plane. The parent coefficient of the present coefficient is also used for this context model.

Die Kopfbits sind die am meisten kompressiblen Daten. Deshalb wird ein großer Kontextumfang oder eine Konditionierung verwendet, um die Kompression zu verbessern. Eher, als daß die Nachbarschafts- oder Elternteil-Koeffizientenwerte verwendet werden, um den Kontext für das vorliegende Bit des vorliegenden Koeffizienten zu bestimmen, wird die Information auf zwei Signalisierbits verwendet, die in Verbindung mit 13A beschrieben sind. Diese Information kann in einem Speicher gespeichert werden oder dynamisch von dem Nachbarschafts- oder Elternteil-Koeffizienten berechnet werden.The header bits are the most compressible data. Therefore, a large amount of context or conditioning is used to improve compression. Rather than that the neighborhood or Parent coefficient values are used to determine the context for the present bit of the present coefficient, the information is used on two signaling bits associated with 13A are described. This information may be stored in memory or calculated dynamically from the neighborhood or parent coefficient.

Implementieren des Einbettens zum Speichern auf einer DiskTo implement embedding for storage on a disc

Eine Ausführungsform des Einbettungsschemas für die vorliegende Erfindung basiert auf der Tatsache, daß, wenn mit dem Kodieren von Daten begonnen wird, der gesamte Bandpufferspeicher voll mit Daten ist, so daß es keinen extra verfügbaren Raum in dem Band zur Verwendung als Arbeitsspeicher gibt. Die vorliegende Erfindung schreibt einige der weniger wichtigen Daten in den Speicher, die später eingebettet werden sollen. Bei der vorliegenden Erfindung wären die Daten, die eingebettet werden sollen, in dem Speicher, und dies sind die weniger wichtigen Daten. Die wichtigeren Daten werden direkt kodiert. Die am wenigsten wichtigen Daten umfassen eine gewisse Anzahl der am wenigsten signifikanten Bits.A embodiment the embedding scheme for the present invention is based on the fact that when starting with the encoding of data, the entire tape buffer memory is full of data, so it no extra available Space in the tape for use as memory. The present Invention writes some of the less important data into the memory, The later to be embedded. In the present invention, the Data to be embedded in the memory, and this are the less important dates. The more important data becomes direct coded. The least important data include a certain amount Number of least significant bits.

Bei einer Ausführungsform wird ein Teil eines jeden Koeffizienten zurück zu dem Speicher zum späteren Kodieren geschrieben, die Kopfbits und die Schwanzbits müssen bekannt sein, genauso gut, wie bekannt sein muß, ob das Vorzeichenbit in Ordnung ist bzw. der Ordnung bzw. Reihenfolge gemäß verarbeitet wurde, um ein korrektes Kodieren zu gewährleisten. Bei einer Ausführungsform werden zwei oder mehrere Signalisierbits (z.B. 3, 4, 5 usw.) verwendet, um die Kopf-, Schwanz- und Vorzeichenbitinformation anzuzeigen.at an embodiment a part of each coefficient is returned to the memory for later coding written, the head bits and the tail bits must be known, as well well, as you know, whether the sign bit is okay or the order or sequence processed according to was used to ensure correct coding. In one embodiment if two or more signaling bits (e.g., 3, 4, 5, etc.) are used, to display the header, tail and sign bit information.

Bei einer Ausführungsform, wo 8-Bit-Speicherstellen verwendet werden, zeigen zwei Signalisierbits die Kopf-, Schwanz- und Vorzeichenbitinformation an. die Verwendung von zwei Signalisierbits erlaubt, daß die am wenigsten wichtigen sechs Wichtigkeitsniveaus zurück zu dem Speicher mit zwei Signalisierbits geschrieben werden. Ein Signalisierbit zeigt an, ob das höchstwertige Bit bzw. am meisten signifikante Bit der sechs Wichtigkeitsniveaus ein Kopf- oder ein Schwanzbit ist. Falls das erste signalisierende Bit anzeigt, daß es ein Kopfbit ist, dann ist das zweite signalisierende Bit das Vorzeichen für den Koeffizienten. Auf der anderen Seite, falls das erste signalisierende Bit anzeigt, daß das höchstwertige Bit der Daten, das zurück zu dem Speicher geschrieben wird, ein Schwanzbit ist, dann ist das zweite signalisierende Bit ein freies signalisierendes Bit, das eine zusätzliche Schwanzinformation enthalten kann, wie z.B., ob das wichtigste Schwanzbit das erste Schwanzbit oder ein späteres Schwanzbit ist.at an embodiment, where 8-bit memory locations are used, two signaling bits show the Header, tail and sign bit information. the usage of two signaling bits allows the least important six importance levels back are written to the memory with two signaling bits. One Signaling bit indicates whether the most significant bit or most significant bits of the six importance levels a header or a Tail bit is. If the first signaling bit indicates that it is on Is the head bit, then the second signaling bit is the sign for the Coefficients. On the other hand, if the first signaling Bit indicates that most Bit of data, that back written to the memory is a tail bit, then that is second bit signaling a free signaling bit that an additional Tail information, such as whether the most important tail bit the first tail bit or a later one Tail bit is.

13A zeigt einen Koeffizienten, der in die wichtigsten Daten 1301, die als MIC bezeichnet werden, und weniger wichtige Daten 1302, die als LIC bezeichnet werden, aufgeteilt ist. Bei einer Ausführungsform umfaßt der MIC die sechs Bits höherer Ordnung eines jeden Koeffizienten, während der LIC die sechs Bits niederer Ordnung umfaßt. Die wichtigsten Daten 1301 werden zu dem Kontextmodell gesendet, um sofort in einer Koeffizientenreihenfolge kodiert zu werden. Kein Puffern im externen Speicher ist für diese Daten erforderlich. Die weniger wichtigen Daten 1302 werden in den Speicher geschrieben (z.B. RAM), um später kodiert zu werden und in dieser Reihenfolge eingebettet zu werden. Zusätzlich werden die zwei Signalisierbits in den Daten in den Speicher geschrieben. Das Signalisierungsbit 1303 zeigt an, ob das höchstsignifikante Bit in den Daten, das in den Speicher geschrieben wird, ein Kopfbit ist. Das Signalisierungsbit 1304 gibt das Vorzeichen für den Koeffizienten an oder zeigt, falls das Schwanzbit in den Daten enthalten ist oder nicht. Bemerkenswert ist, daß die Signalisierungsbits in einer verketteten Art und Weise mit den weniger wichtigen Daten 1302 gespeichert werden können oder in einem anderen Speicher oder einer anderen Speicherstelle, die mit dem Speicher in Verbindung steht, der weniger wichtige Daten 1302 speichert, so daß die Signalisierungsbits, die mit jedem Abschnitt eines Koeffizienten in Verbindung stehen, identifiziert werden können. 13A shows a coefficient in the main data 1301 called MIC and less important data 1302 , which are referred to as LIC, is divided. In one embodiment, the MIC comprises the six higher-order bits of each coefficient, while the LIC comprises the six lower-order bits. The most important data 1301 are sent to the context model to be coded immediately in a coefficient order. No buffering in external memory is required for this data. The less important data 1302 are written in memory (eg RAM) to be encoded later and embedded in this order. In addition, the two signaling bits in the data are written to memory. The signaling bit 1303 indicates whether the most significant bit in the data written to the memory is a header. The signaling bit 1304 indicates the sign for the coefficient or shows if the tail bit is included in the data or not. It is noteworthy that the signaling bits work in a concatenated manner with the less important data 1302 can be stored in memory or other memory location associated with the memory, the less important data 1302 so that the signaling bits associated with each section of a coefficient can be identified.

Beispiele in Tabelle 5 zeigen die Verwendung von zwei Signalisierungsbits. Die Spalten des Körpers der Tabelle 5 sollen sich mit den Datentypen in der 13A ausrichten. Die Vorzeichenbits werden mit "S" bezeichnet, die Schwanzbits werden mit "T" bezeichnet, die nicht zu beachtenden Bits werden mit "x" bezeichnet, der Wert des Schwanz-ein-Bits wird mit "h" oder "t" bezeichnet. In Tabelle 5 gilt h = 0 und t = 1 für die Signalisierungsbits. Bei einer alternativen Ausführungsform können die Konventionen umgekehrt werden. Bei einer Ausführungsform zeigt ein Vorzeichenbit in Tabelle 5 mit 0 ein positives Vorzeichen an, während ein Vorzeichenbit in Tabelle 5 mit 1 ein negatives Vorzeichen anzeigt. Eine entgegengesetzte Zuweisung kann verwendet werden. Bemerkenswert ist, daß das Vorzeichenbit immer mit dem ersten "Ein"-Bit gehalten bzw. beibehalten wird, so daß es zur selben Zeit zum Einbetten kodiert werden kann.Examples in Table 5 show the use of two signaling bits. The columns of the body of Table 5 are intended to deal with the data types in the 13A align. The sign bits are denoted by "S", the tail bits are denoted by "T", the bits to be ignored are designated by "x", the value of the tail one bit is denoted by "h" or "t". In Table 5, h = 0 and t = 1 for the signaling bits. In an alternative embodiment, the conventions may be reversed. In one embodiment, a sign bit in Table 5 indicates 0 with a positive sign, while a sign bit in Table 5 indicates 1 with a negative sign. An opposite assignment can be used. It is noteworthy that the sign bit is always held with the first "on" bit, so that it can be coded for embedding at the same time.

Tabelle 5

Figure 00580001
Table 5
Figure 00580001

In Tabelle 5 oben bezeichnet "T" das entsprechende Bit in dem Koeffizienten und kann entweder 0 oder 1 sein.In Table 5 above denotes "T" the corresponding one Bit in the coefficient and can be either 0 or 1.

Bei einer Ausführungsform werden während des Dekodierens, wenn die wichtigsten Daten dekodiert werden, sie in den Speicher geschrieben, und zur selben Zeit werden die richtigen zwei Signalisierungsbits in den Speicher geschrieben, um den Speicher für das Speichern weniger wichtiger Daten zu initialisieren. (In Abhängigkeit von der Ausrichtung der Koeffizienten können manche der wichtigsten Daten in dem zweiten Byte ebenso gespeichert werden.) Mit dieser Initialisierung erfordert das Dekodieren weniger wichtiger Daten mit einer Bitebene zu einer Zeit nur das Lesen und dann das Schreiben eines Bytes (oder weniger bei manchen Ausführungsformen) pro Koeffizient. Wenn die Koeffizienten gelesen werden, um in die inverse Transformation eingegeben zu werden, werden sie in eine normale numerische Form konvertiert (z.B. Zweier-Komplementform).at an embodiment be while of decoding, when the most important data is decoded, they written in memory, and at the same time are the right ones two signaling bits written to the memory to the memory for the Save less important data to initialize. (Dependent on Of the orientation of the coefficients may be some of the most important Data in the second byte will also be stored.) With this Initialization requires decoding less important data with one bit level at a time just reading and then writing one byte (or less in some embodiments) per coefficient. When the coefficients are read, entered into the inverse transformation they are converted into a normal numeric form (e.g., two's complement form).

Zusätzlich dazu, daß man "wichtigste Daten" und "weniger wichtige Daten" hat, kann man ebenso Daten während des Kodierens weglassen bzw. löschen oder quantisieren. Koeffizienten werden durch einen Quantisierungs-Skalierungsfaktor 2Q–1 quantisiert. (Die Quantisierung der Koeffizienten wird in dem JPEG-Standard beschrieben.) Bei der vorliegenden Erfindung stellt die Quantisierung eine Potenz von 2 dar, da eine Teilung bzw. Division durch das Weglassen bzw. Löschen von Bitebenen bewerkstelligt wird. Zum Beispiel stellt Q = 1 eine Division durch 1 dar und somit ändern sich die Koeffizienten nicht, während Q = 2 eine Division durch 2 darstellt, was bedeutet, daß eine Bitebene weggelassen bzw. beseitigt bzw. gelöscht wurde. Diese Divisionen können implementiert werden, indem Verschiebungen (z.B. eine Verschiebung um eine Bitposition für Q = 2) verwendet werden. 13B und 13C zeigen das Format der wichtigsten und weniger wichtigen Daten, wenn sowohl eine Quantisierungsausrichtung als auch eine Koeffizientenausrichtung für unterschiedliche Unterbänder berücksichtigt werden.In addition to having "most important data" and "less important data", one can also omit or delete or quantize data during encoding. Coefficients are quantized by a quantization scaling factor 2 Q-1 . (The quantization of the coefficients is described in the JPEG standard.) In the present invention, the quantization represents a power of 2, since division is accomplished by omitting bit-planes. For example, Q = 1 represents a division by 1, and thus the coefficients do not change while Q = 2 represents a division by 2, which means that a bit plane has been eliminated. These divisions can be implemented by using shifts (eg a shift by one bit position for Q = 2). 13B and 13C show the format of the most important and less important data when considering both quantization alignment and coefficient alignment for different subbands.

13B zeigt den verlustfreien Fall, wo keine Daten weggelassen bzw. gelöscht werden. Folgt man der Konvention von JPEG, wird diese eine Quantisierung Q = 1 genannt, da der aktuelle Koeffizient durch 1 (verlustfrei) dividiert wird. Die wichtigsten Daten werden ohne Kreuzschraffierung angezeigt, während die am wenigsten wichtigen Daten kreuz-schraffiert werden. 13B shows the lossless case where no data is omitted or deleted. Following the convention of JPEG, it is called a quantization Q = 1 because the current coefficient is divided by 1 (lossless). The most important data is displayed without cross-hatching, while the least important data is cross-hatched.

13C zeigt den Fall, wo eine Bitebene mit Daten weggelassen bzw. gelöscht wurde (d.h. Q = 2), weil das Weglassen einer Bitebene gleich einer Division durch 2 ist. Die weggelassene Bitebene wird in schwarz gezeigt. 13C Fig. 12 shows the case where a bit plane with data has been deleted (ie Q = 2) because the omission of a bit plane is equal to a division by 2. The omitted bit plane is shown in black.

Bemerkenswert ist, daß zusätzlich zu dem, was in den 13B und C gezeigt ist, die wichtigsten Daten ebenso die SS-Koeffizienten enthalten. Obwohl die Koeffizienten für 8-Bit-Daten gezeigt sind, würde die Verwendung eines reversiblen Farbraums 9-Bit-Daten erforderlich machen, wobei die Größe der Chrominanzkoeffizienten um ein Bit erhöht wird.It is noteworthy that in addition to what is in the 13B and C, the most important data also contains the SS coefficients. Although the coefficients for 8-bit data are shown, the use of a reversible color space would require 9-bit data, increasing the size of the chrominance coefficients by one bit.

Bei der vorliegenden Erfindung umfaßt das Vorzeichenbit-Kontextmodell das Kodieren des Vorzeichens nach dem letzten Kopfbit. Es gibt drei Kontexte für das Vorzeichen, in Abhängigkeit davon, ob der N-Koeffizient positiv, negativ oder das Vorzeichen noch nicht kodiert ist. Alternativ kann ein Kontext für das Vorzeichen verwendet werden oder das Vorzeichen kann immer als 50 % kodiert werden.In the present invention, the sign bit context model includes encoding the sign after the last header bit. There are three contexts for the sign, depending on whether the N-Ko efficiently positive, negative or the sign is not yet coded. Alternatively, a sign may be used for the sign, or the sign may always be encoded as 50%.

Reihenfolge bzw. Ordnung der Kodierung für Wavelet-KoeffizientenOrder or order the coding for Wavelet coefficients

Eine Ausführungsform des Ordnens des Kodierens für Wavelet-Koeffizienten wird in dem folgenden Pseudo-Kode zusammengefaßt:

Figure 00600001
One embodiment of ordering coding for wavelet coefficients is summarized in the following pseudo-code:
Figure 00600001

Wenn die wichtigsten Daten kodiert werden, wird die erste Bitebene in den weniger wichtigen Daten, die nicht vollständig aus Null-Kopfbits bestehen, für jeden Koeffizienten bestimmt. Dies ermöglicht es dem Kodierer und Dekodierer, über gesamte Bitebenen von weniger wichtigen Daten hinwegzuschauen. Dies ist besonders nützlich zur Kodierung von Einheiten von schwarze und weißen Daten, wo alle Informationen in den K-Koeffizienten liegen und die CMY-Koeffizienten alle Null sind. Ein Nicht-Kodieren der Bitebenen hilft individuell einem Kompressionsverhältnis, insbesondere, falls R2(7) der längste Lauflängenkode ist, der verfügbar ist. (Siehe US-Patente Nrn. 5,381,145 und 5,583,500 für eine Beschreibung des "R2"-Kodes.) Falls jedoch die vier parallelen Kodierkerne mit Komponenten synchron arbeiten, wird die Verarbeitungsgeschwindigkeit durch die Komponente mit den meisten zu kodierenden Bitebenen bestimmt; Kerne ("cores"), die anderen Komponenten zugewiesen sind, sind während unkodierter Bitebenen untätig.If the main data being encoded will be the first bit plane in the less important data that does not consist entirely of zero overhead bits, for each Coefficients determined. this makes possible it's the encoder and decoder, over to ignore entire bitplanes of less important data. This is especially useful for coding units of black and white data, where all information in the K coefficients and the CMY coefficients are all zero are. A non-coding the bit planes individually helps a compression ratio, in particular, if R2 (7) is the longest run length code is that is available. (See U.S. Patent Nos. 5,381,145 and 5,583,500 for a description of the "R2" code.) However, if the four parallel coding cores work synchronously with components, the processing speed through the component with the most of the bit planes to be coded; Cores, the other components are assigned during unencoded bite levels idle.

Ein Flußdiagramm, das eine Ausführungsform des Betriebs des obigen Pseudo-Kodes zeigt, ist in 14 gezeigt. Nimmt man Bezug auf 14, so beginnt das Kontextmodell mit dem Kodieren des wichtigsten Teils bzw. Batzens (MIC) (Verarbeitungsblock 1401). Nach dem Kodieren des MIC's kodiert die Verarbeitungslogik die Position der ersten LIC-Bitebene mit Daten (Verarbeitungsblock 1402), wobei LIC für den am wenigsten wichtigen Batzen bzw. Teil steht. Dies gilt für die ganze Kodiereinheit. Entweder werden 0, 1, 2, 3, 4, 5 oder 6 Bitebenen Daten enthalten, falls es sechs Bitebenen in dem LIC gibt. Dann setzt die Verarbeitungslogik eine aktuelle LIC-Bitebenen-Variable auf die erste LIC-Bitebene mit Daten (Verarbeitungsblock 1403).A flowchart showing an embodiment of the operation of the above pseudo-code is shown in FIG 14 shown. If you take reference 14 Thus, the context model begins with the coding of the most significant part (MIC) (processing block 1401 ). After encoding the MIC, the processing logic encodes the position of the first LIC bit plane with data (processing block 1402 ), where LIC stands for the least important chunk or part. This applies to the entire coding unit. Either 0, 1, 2, 3, 4, 5, or 6 bit-planes will contain data if there are six bit-planes in the LIC. Then, the processing logic sets a current LIC bitplane variable to the first LIC bitplane with data (processing block 1403 ).

Als nächstes bestimmt ein Test, ob alle LIC-Bitebenen mit Daten kodiert worden sind (Verarbeitungsblock 1404). Falls dem so ist, endet der Prozeß; falls nicht, kodiert die Verarbeitungslogik eine LIC-Bitebene (Verarbeitungsblock 1405) und stellt die aktuelle LIC-Bitebenen-Variable auf die nächste LIC-Bitebene ein (Verarbeitungsblock 1406). Danach springt die Verarbeitung zu dem Verarbeitungsblock 1404 zurück.Next, a test determines whether all LIC bit planes have been encoded with data (processing block 1404 ). If so, the process ends; if not, the processing logic encodes a LIC bit plane (processing block 1405 ) and sets the current LIC bitplane variable to the next LIC bitplane (processing block 1406 ). Thereafter, the processing jumps to the processing block 1404 back.

Ordnen des Codierens für die wichtigsten DatenArrange the Coding for the most important data

Eine Ausführungsform der Ordnung bzw. Reihenfolge zum Kodieren der wichtigsten Daten lautet wie folgt:

Figure 00620001
An embodiment of the order for coding the most important data is as follows:
Figure 00620001

Die wichtigsten Daten werden für Wavelt-Baum verarbeitet bzw. mit einem Wavelet-Baum zu einer Zeit. Zum erneuten Iterieren sind sie nicht eingebettet. Ein MIC-Vorherseher („MIC lookahead") bestimmt Bitebenen, die alle Null-Kopfbits sind, für alle Nicht-SS-Koeffizienten in dem Wavelet-Baum. Bei einer Ausführungsform ist eine 4-Bit-Zahl ausreichend, um die erste Bitebene zu identifizieren, um individuell zu kodieren. Bei einer alternativen Ausführungsform, die in 15 gezeigt ist, wird ein Bit verwendet, um anzuzeigen, daß alle Nicht-SS-Koeffizienten 1501 der zweiten Zerlegung (schraffierter Bereich) Null sind, und ein anderes Bit, um anzuzeigen, daß alle Nicht-SS-Koeffizienten 1503 der ersten Zerlegung Null sind. Diese zwei Bits werden zusätzlich zu den vier Bits verwendet, die verwendet werden, um die erste Bitebene zu spezifizieren.The most important data are processed for a wavelet tree or with one wavelet tree at a time. They are not embedded for re-iterating. An MIC lookahead determines bit-planes that are all zero-header bits for all non-SS coefficients in the wavelet tree. In one embodiment, a 4-bit number is sufficient to match the first bit-plane identify to individually encode. In an alternative embodiment, disclosed in U.S. Pat 15 is shown, one bit is used to indicate that all non-SS coefficients 1501 the second decomposition (hatched area) are zero, and another bit to indicate that all non-SS coefficients 1503 the first decomposition are zero. These two bits are used in addition to the four bits used to specify the first bit-plane.

Bei einer alternativen Ausführungsform kann ein Baum-Vorherseher („tree lookahead") verwendet werden, wo die SS-Koeffizienten kodiert werden, und dann wird für den ganze Baum die erste Bitebene mit Nicht-Null-Kopfbits kodiert.at an alternative embodiment can a tree-predator ("tree lookahead "), where the SS coefficients are coded, and then for the whole Tree encodes the first bitplane with non-zero overhead bits.

Um eine Kontext-Neubesuchs-Verzögerung zu berücksichtigen, falls eine Konditionierung für das SS- und Erst-Bitebenen-Kodieren verwendet wird, kann das aktuelle Kodieren/Dekodieren der Bits des SS-Koeffizienten (der 9 Bits beträgt, falls ein reversibler Farbraum verwendet wird) und der Vorherseher-Wert alterniert werden. Falls Konditionieren nicht verwendet wird, ist ein Alternieren nicht erforderlich.Around a context re-entry delay to take into account if conditioning for SS and first bit-plane encoding can be used Encoding / decoding the bits of the SS coefficient (which is 9 bits if a reversible color space is used) and the predictor value be alternated. If conditioning is not used, then no alternation required.

Wie zuvor diskutiert wurde, verwendet das Kontextmodell der vorliegenden Erfindung ein Vorhersehen bzw. einen Vorherseher. Eine Ausführungsform des Vorhersehers bzw. des Vorhersehens kann für die wichtigsten Daten verwendet werden, d.h. den wichtigsten Teil bzw. wichtigsten Batzen (MIC). Bei einer Ausführungsform, wie in 15 gezeigt ist, werden für jeden Baum 6 Bits verwendet: 4 für eine Maximum-Bitebene, 1 für Niveau 0 alle Null, 1 für Niveau 1 alle Null. Falls die maximale Bitebene Null ist, dann werden die zwei Extrabits redundant, aber dies ist nicht wichtig. Ansonsten wird eine adaptive Kodierentscheidung verwendet, um "isoliert Null/nicht Null" zu entscheiden. Für Nicht-Null-Koeffizienten können sie weiter durch folgendes spezifiziert werden:

  • • Eine M-ary-Operation, um den Wert und das Vorzeichen eines Koeffizienten zu bestimmen. (Insgesamt: 2 Zyklen pro Koeffizient)
  • • Eine adaptive Kodierungsentscheidung wird verwendet, um "±1/nicht ±1" zu entscheiden. Ein zweiter Zyklus wird verwendet, um das Vorzeichen mit dem Betrag gleich 1 und das Vorzeichen und den Wert für die Beträge größer als 1 zu bekommen. (Insgesamt: 3 Zyklen pro Koeffizient)
  • • In ähnlicher Weise kann "±1/nicht ±1", "±2,3/nicht ±2,3" usw. für insgesamt 4 Zyklen pro Koeffizient durchgeführt werden.
  • • Das folgende Verfahren:
    Figure 00630001
    Figure 00640001
As previously discussed, the contextual model of the present invention uses a predictor. An embodiment of the prediction or foresight can be used for the most important data, ie the most important parts (MIC). In one embodiment, as in 15 6 bits are used for each tree: 4 for a maximum bitplane, 1 for level 0 all zero, 1 for level 1 all zero. If the maximum bit-level is zero, then the two extra bits become redundant, but this is not important. Otherwise, an adaptive coding decision is used to decide "isolated zero / not zero". For non-zero coefficients, they can be further specified by the following:
  • • An M-ary operation to determine the value and sign of a coefficient. (Total: 2 cycles per coefficient)
  • • An adaptive coding decision is used to decide "± 1 / not ± 1". A second cycle is used to get the sign with the amount equal to 1 and the sign and the value for the amounts greater than 1. (Total: 3 cycles per coefficient)
  • • Similarly, "± 1 / not ± 1", "± 2.3 / not ± 2.3", etc. can be performed for a total of 4 cycles per coefficient.
  • • The following procedure:
    Figure 00630001
    Figure 00640001

Bemerkenswert ist, daß ein "Spezifizieren" eines Bits oder von Bits adaptives Kodieren sein kann, Kodieren mit 50 % Wahrscheinlichkeit oder einfach Kodieren von Bits zu dem kodierten Datenstrom.Remarkable is that "specifying" a bit or of bits may be adaptive coding, coding with 50% probability or simply encoding bits to the encoded data stream.

Falls alle oder die meisten der Bitebenen individuell zu kodieren sind, können manche Niveaus der Transformation ungenutzte Bitebenen aufgrund einer Ausrichtung haben – ungenutzte Bitebenen werden niemals kodiert. Es gibt eine Anzahl von Optionen zum Handhaben einer Bit-zu-Kontext-Verzögerung für die Kopf- und Schwanzbits. Ein Verfahren ist es, drei Koeffizienten alternierend zu tuen. Ein DD, ein SD und ein DS. Das Vorzeichenbit für Nicht-Null-Koeffizienten kann am Ende des Koeffizienten kodiert werden – da alle wichtigsten Daten immer verlustfrei sind, ist ein exaktes Folgen des ersten "Ein"-Bits nicht notwendig.If all or most of the bit-planes are to be coded individually can some levels of transformation due to unused bit planes to have an orientation - unused Bitplanes are never encoded. There are a number of options for handling a bit-to-context delay for the header and tail bits. One method is to do three coefficients alternately. One DD, an SD and a DS. The sign bit for non-zero coefficients can be coded at the end of the coefficient - since all the most important data always lossless, an exact following of the first "on" bit is not necessary.

Eine Ausführungsform eines Flußdiagramms, das den Pseudo-Kode zum Kodieren des wichtigsten Teils bzw. Batzens zeigt, ist in 16 gezeigt. Nimmt man Bezug auf 16, so beginnt der Prozeß damit, daß die Prozeßlogik den gegenwärtigen Baum auf den ersten Baum einstellt (Verarbeitungsblock 1601). Dann kodiert die Verarbeitungslogik den SS-Koeffizienten (Verarbeitungsblock 1602). Nach Kodieren des SS-Koeffizienten, kodiert die Verarbeitungslogik die Position der ersten Bitebene mit Daten in dem MIC des Baums (Verarbeitungsblock 1603) oder führt den MIC-Vorherseher durch.An embodiment of a flowchart showing the pseudo-code for coding the most important part is shown in FIG 16 shown. If you take reference 16 Thus, the process begins with the process logic setting the current tree to the first tree (processing block 1601 ). Then, the processing logic encodes the SS coefficient (processing block 1602 ). After encoding the SS coefficient, the processing logic encodes the position of the first bit plane with data in the MIC of the tree (Processing block 1603 ) or performs the MIC Predictor.

Dann testet die Verarbeitungslogik, ob der MIC des ganzen Baumes Null ist (Verarbeitungsblock 1604). Falls der MIC des ganzen Baumes Null ist, schreitet die Verarbeitung beim Verarbeitungsblock 1614 fort; ansonsten geht die Verarbeitung zum Verarbeitungsblock 1605 über, wo die Verarbeitungslogik den aktuellen Koeffizienten zu den ersten Nicht-SS-Koeffizienten in dem Baum einstellt bzw. festlegt.Then the processing logic tests whether the MIC of the whole tree is zero (processing block 1604 ). If the MIC of the whole tree is zero, processing proceeds to the processing block 1614 continue; otherwise the processing goes to the processing block 1605 where the processing logic sets the current coefficient to the first non-SS coefficients in the tree.

Nach dem Einstellen des aktuellen Koeffizienten zu dem ersten Nicht-SS-Koeffizienten in dem Baum, stellt die Verarbeitungslogik die aktuelle Bitebene auf die erste Bitebene mit Daten ein (Verarbeitungsblock 1606). Dann kodiert die Verarbeitungslogik ein Bit des aktuellen Koeffizienten in der aktuellen Bitebene (Verarbeitungsblock 1607). Danach testet die Verarbeitungslogik, ob alle Bitebenen kodiert worden sind (Verarbeitungsblock 1608). Falls alle Bitebenen kodiert worden sind, legt die Verarbeitungslogik die aktuelle Bitebene auf die nächste Bitebene fest (Verarbeitungsblock 1609) und geht zum Verarbeitungsblock 1607 über. Falls alle Bitebenen kodiert worden sind, testet die Verarbeitungslogik, ob der aktuelle Koeffizient Null ist (Verarbeitungsblock 1610). Falls der aktuelle Koeffizient nicht Null ist, kodiert die Verarbeitungslogik das Vorzeichenbit (Verarbeitungsblock 1611) und die Verarbeitung geht zum Verarbeitungsblock 1613 über. Falls der aktuelle Koeffizient Null ist, dann geht die Verarbeitungslogik zu dem Verarbeitungsblock 1613 über.After setting the current coefficient to the first non-SS coefficient in the tree, the processing logic sets the current bit-plane to the first bit-plane with data (processing block 1606 ). Then, the processing logic encodes one bit of the current coefficient in the current bit plane (processing block 1607 ). Thereafter, the processing logic tests whether all bit-planes have been coded (processing block 1608 ). If all bit planes have been coded, the processing logic sets the current bit plane to the next bit plane (processing block 1609 ) and goes to the processing block 1607 above. If all bit-planes have been encoded, the processing logic tests whether the current coefficient is zero (processing block 1610 ). If the current coefficient is not zero, the processing logic encodes the sign bit (processing block 1611 ) and the processing goes to the processing block 1613 above. If the current coefficient is zero, then the processing logic goes to the processing block 1613 above.

Bei dem Verarbeitungsblock 1613 testet die Verarbeitungslogik, ob alle Koeffizienten in dem Baum kodiert worden sind. Falls alle Koeffizienten in dem Baum nicht kodiert worden sind, dann legt die Verarbeitungslogik den aktuellen Koeffizienten auf den nächsten Koeffizienten in dem Baum fest (Verarbeitungsblock 1612) und die Verarbeitung geht zum Verarbeitungsblock 1606 über. Falls alle Koeffizienten in dem Baum kodiert worden sind, dann testet die Verarbeitungslogik, ob alle Bäume kodiert worden sind (Verarbeitungsblock 1614). Falls alle Bäume kodiert worden sind, endet die Verarbeitung; ansonsten geht die Verarbeitung zum Verarbeitungsblock 1615 über, wo die Verarbeitungslogik den aktuellen Baum auf den nächsten Baum festlegt und die Verarbeitung geht zum Verarbeitungsblock 1602 über.At the processing block 1613 the processing logic tests whether all coefficients in the tree have been coded. If all the coefficients in the tree have not been encoded, then the processing logic sets the current coefficient to the nearest coefficient in the tree (processing block 1612 ) and the processing goes to the processing block 1606 above. If all the coefficients in the tree have been encoded then the processing logic tests if all trees have been encoded (processing block 1614 ). If all trees have been encoded, processing ends; otherwise the processing goes to the processing block 1615 across where the processing logic sets the current tree to the next tree and processing goes to the processing block 1602 above.

17 ist ein Blockdiagramm einer Ausführungsform der Formatiereinheit und ein Kontextmodell, das während des wichtigsten Datenkodierdurchlaufs verwendet wird. Nimmt man Bezug auf 17, so ist ein Tonnenschieber ("Barrel"-Schieber) 1701 angeschlossen, um die Stärke des Koeffizienten und einen Quantisierungspegel zu empfangen, der während des Kodierens verwendet wurde, um zu verhindern, daß die wichtigsten Daten die minimale Disk-Bandbreite bzw. Platten-Bandbreite überschreiten, wodurch eine verlustfreie Dekompression gewährleistet wird. Somit kontrolliert das Quantisierungsniveau den Tonnen-Schieber bzw. Barrel-Schieber 1701. Bei einer Ausführungsform verschiebt der Tonnen-Schieber 1701 die Betragsbits um 0, 1, 2 oder 3, um die Quantisierungen 1, 2, 4 oder 8 zu unterstützen. Bei einer alternativen Ausführungsform wird eine niedrigere oder höhere Anzahl von Quantisierungen unterstützt, wie z.B. nur zwei Quantisierungen. 17 Figure 10 is a block diagram of one embodiment of the formatter and a context model used during the most important data encoding run. If you take reference 17 so is a barrel shifter ("barrel" slider) 1701 to receive the magnitude of the coefficient and a quantization level used during encoding to prevent the most important data from exceeding the minimum disk bandwidth, thereby ensuring lossless decompression. Thus, the quantization level controls the barrel slide 1701 , In one embodiment, the barrel pusher shifts 1701 the magnitude bits around 0, 1, 2, or 3 to support quantizations 1, 2, 4, or 8. In an alternative embodiment, a lower or higher number of quantizations is supported, such as only two quantizations.

Die Ausgabe des Tonnen-Schiebers 1701 umfaßt die sechs Bitebenen niedrigerer Ordnung, wobei es sich um die weniger wichtigen Daten handelt, und den Rest der Bits höherer Ordnung, wobei es sich um die wichtigsten Daten handelt. Bei einer alternativen Ausführungsform wird ein einfacher Separationsmechanismus verwendet, um diese zwei Ausgaben zu erzeugen.The issue of the tons slider 1701 includes the six lower-level bit-planes, which are the less important data, and the remainder of the higher-order bits, which are the most important data. In an alternative embodiment, a simple separation mechanism is used to generate these two outputs.

Beide Ausgaben des Tonnen-Schiebers 1701 werden in die erste Bitebeneneinheit 1702 eingegeben, die bestimmt, welche Bitebenen Daten in sich haben. Die erste Bitebeneneinheit 1702 wird verwendet, um die Bitebene mit dem ersten "Ein"-Bit für die ganze Kodiereinheit zu finden (siehe 10), und zwar zur Verwendung, wenn die weniger wichtigen Daten verarbeitet werden. Eine andere Bitebeneneinheit 1706 ist angeschlossen, um die wichtigsten Daten, die von einem Tonnen-Schieber 1701 ausgegeben werden, ebenso zu empfangen. Die erste Bitebeneneinheit 1706 wird für jeden Baum verwendet, wenn die wichtigeren Daten verarbeitet werden. Eine Ausführungsform der ersten Bitebeneneinheit wird unten unter Bezugnahme auf 18 beschrieben.Both issues of the barrel slider 1701 become the first bitplane unit 1702 which determines which bit-planes have data in them. The first bit level unit 1702 is used to find the bit plane with the first "on" bit for the whole coding unit (see 10 ) for use when processing the less important data. Another bit level unit 1706 is connected to the main data by a barrel slider 1701 be issued, as well to receive. The first bit level unit 1706 is used for each tree as the more important data is processed. An embodiment of the first bit plane unit will be described below with reference to FIG 18 described.

Der Tonnen-Schieber 1701 ist ebenso an die Vergleichseinheit 1703 und 1704 angeschlossen, die zwei Vergleiche mit den wichtigsten Daten durchführen, um die Zwei-Bit-Signalisierinformation für die weniger wichtigen Daten zu erzeugen. Die Vergleichseinheit 1703 bestimmt, falls die wichtigsten Daten gleich 0 sind, dadurch wird angezeigt, ob ein Schwanzbit bereits aufgetreten ist (d.h. ob das Kodieren noch in dem Schwanz ist). Die Ausgabe der Vergleichseinheit 1703 ist das Schwanz-ein-Bit. Eine Vergleichseinheit 1704 bestimmt, ob die wichtigsten Daten gleich 1 sind. Falls die wichtigsten Daten gleich 1 sind, dann ist die Ausgabe von der obigen Tabelle 5 0. Die Ausgabe einer Vergleichseinheit 1704 ist an einen Eingang des Multiplexers (MUX) 1705 angeschlossen. Der andere Eingang zu dem Multiplexer 1705 ist angeschlossen, um das Vorzeichenbit zu empfangen. Eine Auswahleingabe des Multiplexers 1705 wird durch die Ausgabe einer Vergleichseinheit 1703 gesteuert, so daß, falls die Ausgabe der Vergleichseinheit 1703 anzeigt, daß das Bit ein Schwanzbit ist, dann die Ausgabe des Multiplexers 1705 ein "erstes Schwanz"-Bit 1304 ist. Jedoch, falls der Ausgang der Vergleichseinheit 1703 anzeigt, daß das Bit das Kopfbit ist, dann wird der Multiplexer 1705 gesteuert, um das Vorzeichen auszugeben.The barrel slider 1701 is also to the comparison unit 1703 and 1704 which make two comparisons with the most important data to produce the two-bit signaling information for the less important data. The comparison unit 1703 determines if the most important data is 0, thereby indicating whether a tail bit has already occurred (ie, whether the encoding is still in the tail). The output of the comparison unit 1703 is the tail-a-bit. A comparison unit 1704 determines if the most important data is equal to 1. If the most important data is 1, then the output from the above table 5 is 0. The output of a comparison unit 1704 is connected to one input of the multiplexer (MUX) 1705 connected. The other input to the multiplexer 1705 is connected to receive the sign bit. A selection input from the multiplexer 1705 is through the output of a comparison unit 1703 controlled so that, if the output of the comparison unit 1703 indicates that the bit is a tail bit, then the output of the multiplexer 1705 a "first tail" bit 1304 is. However, if the output of the comparison unit 1703 indicates that the bit is the header, then becomes the multiplexer 1705 controlled to output the sign.

Bei einer Ausführungsform können die Vergleichseinheiten 1703 und 1704 implementiert werden, indem einfache Bit-Vergleicher verwendet werden.In one embodiment, the comparison units 1703 and 1704 can be implemented by using simple bit comparators.

Ein Speicher 1707 ist angeschlossen, um das Vorzeichenbit, die wichtigsten Daten, die von dem Tonnen-Schieber 1701 ausgegeben werden, und die Ausgabe der Bitebeneneinheit 1706 zu empfangen. Der Speicher 1707 wird verwendet, um Koeffizienten so zu verzögern, daß Elternteil- und Nachbarschafts-Information für das Konditionieren verfügbar ist. Die Organisation des Speichers 1707 wird im folgenden diskutiert.A store 1707 is connected to the sign bit, the main data coming from the barrel slider 1701 and the output of the bit-plane unit 1706 to recieve. The memory 1707 is used to delay coefficients so that parent and neighborhood information is available for conditioning. The organization of the store 1707 will be discussed below.

Kontextmodelle (CM) 17101712 stellen eine Konditionierung für das Vorzeichen, den Kopf, den Schwanz und andere Bits bereit. Jedes dieser Kontextmodelle wird unten beschrieben.Context models (CM) 1710 - 1712 Provide conditioning for the sign, head, tail, and other bits. Each of these context models is described below.

18 zeigt eine Ausführungsform einer Bitebeneneinheit. Nimmt man Bezug auf 18, so umfaßt die erste Bitebeneneinheit 1800 ein ODER-Gatter 1801, das angeschlossen ist, um einen Koeffizienten und eine Rückkopplung von dem Ausgang eines Registers 1802 zu empfangen. Der Ausgang eines ODER-Gatters 1801 ist an den Eingang eines Registers 1802 angeschlossen. Das Register 1802 wird durch einen Start einer Baum-/Kodiereinheit-Rücksetzanzeige gesteuert. Der Ausgang des Registers 1802 ist an einem Prioritätskodierer 1803 angeschlossen. Der Ausgang des Prioritätskodierers 1803 ist der Ausgang einer ersten Bitebeneneinheit 1800. 18 shows an embodiment of a bit-plane unit. If you take reference 18 , so the first bit plane unit comprises 1800 an OR gate 1801 , which is connected to a coefficient and a feedback from the output of a register 1802 to recieve. The output of an OR gate 1801 is at the entrance of a register 1802 connected. The registry 1802 is controlled by a start of a Tree / Encoder Reset Display. The output of the register 1802 is at a priority encoder 1803 connected. The output of the priority encoder 1803 is the output of a first bit plane unit 1800 ,

Beim Start wird das Register 1802 gelöscht. Jedes Bit eines Registers 1802 wird mit jedem Bit des Eingangskoeffizienten geodert, wobei das ODER-Gatter 1801 verwendet wird. Für jedes Bit des Koeffizienten, das 0 ist, verbleibt der Wert des Registers 1802 sein aktueller Wert, das zu dem Prioritätskodierer ausgegeben wird. Für jedes Bit des Koeffizienten, das eine 1 ist (z.B. das erste), ist die Ausgabe des ODER-Gatters 1801 zu dem Register 1802 1, was zu dem Prioritätskodierer 1803 ausgegeben wird. Der Prioritätskodierer 1803 lokalisiert dann die erste 1, die die erste Bitebene des Koeffizienten ist, die eine 1 hat.When starting the register 1802 deleted. Every bit of a register 1802 is ORed with each bit of the input coefficient, with the OR gate 1801 is used. For each bit of the coefficient that is 0, the value of the register remains 1802 its current value, which is output to the priority encoder. For each bit of the coefficient that is a 1 (eg, the first one), the output of the OR gate 1801 to the register 1802 1, resulting in the priority encoder 1803 is issued. The priority encoder 1803 then locates the first 1, which is the first bit plane of the coefficient that has a 1.

Ordnung bzw. Reihenfolge der Verarbeitung für weniger wichtige DatenOrder or order the processing for less important data

Jede Bitebene für die am wenigsten wichtigen Daten wird wie folgt verarbeitet:

Figure 00680001
Each bit-level for the least important data is processed as follows:
Figure 00680001

Eine Ausführungsform der Verarbeitung des Kodierens einer LIC-Bitebene ist in dem Flußdiagramm der 19 gezeigt. Die Verarbeitung des Kodierens einer LIC-Bitebene beginnt damit, daß die Verarbeitungslogik den aktuellen Baum zu dem ersten Baum festlegt (Verarbeitungsblock 1901). Dann legt die Verarbeitungslogik den aktuellen Koeffizienten auf den ersten Nicht-SS-Koeffizienten in dem Baum fest (Verarbeitungsblock 1902). Nach dem Festlegen des aktuellen Koeffizienten auf den ersten Nicht-SS-Koeffizienten in dem Baum, testet die Verarbeitungslogik, ob das Kodieren beim Start eines Vorherseh-Intervalls ist (Verarbeitungsblock 1903). Falls der Kodierprozeß bei dem Start eines Vorherseh-Intervalls ist, führt die Verarbeitungslogik ein Vorhersehen durch (Verarbeitung 1904) und die Verarbeitung schreitet zum Verarbeitungsblock 1905 fort. Falls der Kodierprozeß nicht beim Start eines Vorherseh-Intervalls ist, geht die Verarbeitungslogik direkt zum Verarbeitungsblock 1905 über und bestimmt, ob Vorhersehen aktiv ist.One embodiment of the processing of encoding a LIC bitplane is shown in the flowchart of FIG 19 shown. The processing of encoding a LIC bit plane begins with the processing logic determining the current tree to the first tree (processing block 1901 ). Then, the processing logic sets the current coefficient to the first non-SS coefficient in the tree (processing block 1902 ). After setting the current coefficient to the first non-SS coefficient in the tree, the processing logic tests whether encoding is at the start of a foresight interval (processing block 1903 ). If the coding process is at the start of a predictive interval, the processing logic performs foresight (processing 1904 ) and the processing proceeds to the processing block 1905 continued. If the coding process is not at the start of a predictive interval, the processing logic goes directly to the processing block 1905 over and determines whether foresight is active.

Falls Vorhersehen aktiv ist, schreitet die Verarbeitung beim Verarbeitungsblock 1909 fort, wo die Verarbeitungslogik bestimmt, ob alle Koeffizienten in dem Baum kodiert sind. Falls alle Koeffizienten in dem Baum kodiert sind, schreitet die Verarbeitung beim Verarbeitungsblock 1913 fort; ansonsten legt die Verarbeitungslogik den aktuellen Koeffizienten auf den nächsten Koeffizienten in dem Baum nach dem Vorherseh-Intervall fest (Verarbeitungsblock 1910) und die Verarbeitung geht zum Verarbeitungsblock 1903 über.If look ahead is active, processing proceeds to the processing block 1909 where the processing logic determines if all coefficients in the tree are encoded. If all the coefficients in the tree are encoded, processing proceeds to the processing block 1913 continue; otherwise, the processing logic sets the current coefficient to the nearest coefficient in the tree after the look-ahead interval (processing block 1910 ) and the processing goes to the processing block 1903 above.

Falls das Vorhersehen nicht aktiv ist, kodiert die Verarbeitungslogik das Kopf- oder Schwanzbit (Verarbeitungsblock 1906) und testet dann, ob das erste Nicht-Null-Bit empfangen worden ist (Verarbeitungsblock 1907). Falls das erste Nicht-Null-Bit nicht empfangen worden ist, schreitet die Verarbeitung beim Verarbeitungsblock 1911 fort. Falls das erste Nicht-Null-Bit empfangen worden ist, schreitet die Verarbeitung beim Verarbeitungsblock 1908 fort, wo die Verarbeitungslogik das Vorzeichenbit kodiert und die Verarbeitung geht dann zum Verarbeitungsblock 1911 über.If foresight is not active, the processing logic encodes the header or tail bit (processing block 1906 ) and then tests to see if the first non-zero bit has been received (processing block 1907 ). If the first non-zero bit has not been received, processing proceeds to the processing block 1911 continued. If the first non-zero bit has been received, processing proceeds to the processing block 1908 where the processing logic encodes the sign bit and processing then passes to the processing block 1911 above.

Beim Verarbeitungsblock 1911 bestimmt die Verarbeitungslogik, ob alle Koeffizienten in dem Baum kodiert worden sind. Falls alle Koeffizienten in dem Baum nicht kodiert worden sind, legt die Verarbeitungslogik den aktuellen Koeffizienten auf den nächsten Koeffizienten in dem Baum fest (Verarbeitungsblock 1912) und geht zum Verarbeitungsblock 1903 über. Falls alle Koeffizienten in dem Baum kodiert worden sind, geht die Verarbeitung zum Verarbeitungsblock 1913 über, wo die Verarbeitungslogik testet, ob alle Bäume kodiert worden sind. Falls alle Bäume nicht kodiert worden sind, legt die Verarbeitungslogik den aktuellen Baum auf den nächsten Baum fest (Verarbeitungsblock 1914) und die Verarbeitung schreitet beim Verarbeitungsblock 1902 fort. Falls alle Bäume kodiert worden sind, endet die Verarbeitung.At the processing block 1911 the processing logic determines if all the coefficients in the tree have been encoded. If all the coefficients in the tree have not been encoded, the processing logic sets the current coefficient to the nearest coefficient in the tree (processing block 1912 ) and goes to the processing block 1903 above. If all coefficients in the tree have been encoded, processing transfers to the processing block 1913 over where the processing logic tests if all trees have been encoded. If all trees have not been encoded, the processing logic sets the current tree to the next tree (processing block 1914 ) and the processing proceeds at the processing block 1902 continued. If all trees have been encoded, processing ends.

Die Verarbeitung eines Wavelet-Baumes zu einer Zeit kann nicht wichtig sein, aber da die Transformation verursacht, daß Daten in dieser Ordnung bzw. Reihenfolge gelesen und geschrieben werden, kann es zweckmäßig sein. Falls die Daten durch Wavelet-Bäume verarbeitet werden, kann eine Anpassung an eine Bit-zu-Kontext-Verzögerung vorgenommen werden, indem zwischen DD-, SD- und DS-Koeffizienten alterniert wird (Alternieren zwischen Unterbäumen). Ansonsten kann ein Unterband zu einer Zeit kodiert werden. Ungeachtet der gewählten Reihenfolge werden ungenutzte Kopf-/Schwanzbits aufgrund der Ausrichtung unterschiedlicher Unterbänder niemals kodiert und erfordern keine untätigen bzw. unproduktiven Zyklen.The Processing a wavelet tree at a time may not matter but because the transformation causes data in that order or Order can be read and written, it may be appropriate. If the data is processed by wavelet trees can be adapted to a bit-to-context delay be alternated by alternating DD, SD and DS coefficients (Alternate between subtrees). Otherwise, a subband can be encoded at one time. regardless the chosen one Order becomes unused header / tail bits due to alignment different subbands never coded and do not require idle or unproductive cycles.

20 ist ein Blockdiagramm eine Ausführungsform der Vorherseher- und Kontektmodelle für weniger wichtige Daten. Bei einer Ausführungsform verwenden die wichtigsten Daten und die weniger wichtigen Daten dieselben Kontextmodelle (CM), die eine Konditionierung für die Vorzeichen-, Kopf- und Schwanzbits bereitstellen. 20 Figure 13 is a block diagram of an embodiment of the predictor and counter models for less important data. In one embodiment, the most important data and the less important data use the same context models (CM) that provide conditioning for the sign, head and tail bits.

Nimmt man Bezug auf 20, so werden Kontextmodelle 2001 bis 2003 mit den Eingangsdaten verbunden. Ein Vorzeichen-Kontextmodell 2001 ist angeschlossen, um das Schwanz-ein-Bit, ein Vorzeichen-/Erst-Schwanz-Bit-Signal und die Daten zu empfangen. Das Kopfbit-Kontextmodell 2002 ist angeschlossen, um das Schwanz-ein-Bit und die Daten zu empfangen. Das Schwanzbit-Kontextmodell 2003 ist angeschlossen, um das Schwanz-ein-Bit, ein Vorzeichen-/Erst-Schwanz-Bit-Signal und die Daten zu empfangen. In Antwort auf ihre Eingänge erzeugt jedes Kontextmodell 2001 bis 2003 einen Kontext. Das erwähnte "Erst-Schwanz-Bit" kann auch als "erstes Schwanzbit" bezeichnet werden.If you take reference 20 , so are contextual models 2001 to 2003 connected to the input data. A sign context model 2001 is connected to receive the tail-a-bit, a sign / first-tail bit signal and the data. The header contextual model 2002 is connected to receive the tail-a-bit and the data. The tail bit context model 2003 is connected to receive the tail-a-bit, a sign / first-tail bit signal and the data. In response to their inputs, each context model generates 2001 to 2003 a context. The mentioned "first tail bit" may also be referred to as "first tail bit".

Die Kontexte, die durch die Kontextmodelle 2001 bis 2003 erzeugt werden, werden an die Eingänge des Multiplexers 2004 angeschlossen. Der Multiplexer 2004 wird durch die vorhergehenden Bits und die Bit-Signifikanz-Darstellung selbst gesteuert. Das Kopf-Kontextmodell 2002 wird verwendet, bis ein 1-Bit bei dem Dateneingang gesehen wird. Das Vorzeichen-Kontextmodell 2001 wird verwendet, wenn das letzte Bit das erste 1-Bit des Kopfes war. Danach wird das Schwanz-Kontextmodell 2003 verwendet.The contexts created by the contextual models 2001 to 2003 are generated, to the inputs of the multiplexer 2004 connected. The multiplexer 2004 is controlled by the preceding bits and the bit significance representation itself. The head context model 2002 is used until a 1-bit is seen at the data input. The sign context model 2001 is used if the last bit was the first 1-bit of the head. After that, the tail context model becomes 2003 used.

Der Ausgang des Multiplexers 2004 ist an die "=Kopf?"-Einheit 2005 und den zuerst-ein/zuerst-aus-(FIFO für "first-in/first-out")-Puffer 2006 angeschlossen. Die "=Kopf?"-Einheit 2005 testet, ob der aktuelle Kontext ein Kopfbit-Kontext mit Null-Kopfbits in der Nachbarschaft und Elternteil ist. Falls alle Kontexte in dem Kopf sind, löscht ein Signal von der "=Kopf?"-Einheit 2005 den FIFO 2006.The output of the multiplexer 2004 is to the "= head?" unit 2005 and the first-in / first-out (FIFO) buffer 2006 connected. The "= head?" Unit 2005 tests whether the current context is a header bit context with zero headers in the neighborhood and parent. If all contexts are in the header, clear a signal from the "= head?" Unit 2005 the FIFO 2006 ,

Die Kontexte und Ergebnisse werden im FIFO 2006 oder im Speicher für das Vorherseher-Intervall gepuffert. Am Ende des Intervalls werden, falls nötig, eine Vorherseher-Entscheidung und/oder individuelle Entscheidungen kodiert. Falls die Koeffizienten mit einem Wavelet-Baum zu einer Zeit verarbeitet werden, kann der FIFO zum Vorhersehen ein einziger FIFO sein, der für alle Unterbänder verwendet wird, oder mehrere FIFOs können verwendet werden, einer für jedes Unterband.The contexts and results are in the FIFO 2006 or buffered in the memory for the Predictor interval. At the end of the interval, if necessary, a predictor's decision and / or individual decisions are encoded. If the coefficients are processed with a wavelet tree at a time, the FIFO foreseeing may be a single FIFO used for all subbands, or multiple FIFOs may be used, one for each subband.

Bemerkenswert ist, falls es zweckmäßig war, das Multiplexen zu reduzieren, die wichtigsten Daten ein Vorhersehen ebenfalls verwenden könnten. Es kann jedoch etwas redundant sein, sowohl ein Vorhersehen als auch eine erste Bitebene für jeden Baum zu verwenden.Remarkable is, if appropriate, to reduce the multiplexing, the most important data predicting could also use. However, it can be somewhat redundant, both anticipation and a first bit level for to use every tree.

Falls ein Kern, der einer Komponente zugewiesen ist, ein Vorzeichenbit kodiert, werden Kerne, die zu irgendwelchen anderen Komponenten zugewiesen sind, die nicht ein Vorzeichenbit bei derselben Bitebene kodieren, untätig bzw. unproduktiv sein. Deshalb können bis zu vier Taktzyklen für Vorzeichenbits verwendet werden, falls jeder Kern ein Vorzeichenbit auf einer unterschiedlichen Bitebene kodiert. Bei einer Ausführungsform gibt es bis zu sechs Kopf- oder Schwanzbits pro Koeffizienten.If a core assigned to a component encodes a sign bit, cores assigned to any other components that do not match a sign bit at the same bit level become co-efficient to be inactive, idle or unproductive. Therefore, up to four clock cycles can be used for sign bits if each core encodes a sign bit at a different bit-level. In one embodiment, there are up to six head or tail bits per coefficient.

Ein mögliches Zeitsteuerproblem ist, daß der wichtigste Teil bzw. Batzen ausreichend gut komprimiert, so daß die Disk bzw. Platte während des Dekodierens eines Teils der Daten untätig bzw. unproduktiv ist. Falls es eine ausreichende Speicherbandbreite für den Bandpuffer gibt, kann ein Vorhersehen verwendet werden, um die wichtigsten Daten schnelle zu verarbeiten. Dann können die weniger wichtigen Daten einen Kopf-Start bzw. einen Kopf-Beginn erhalten. Ebenso wäre es gut, falls die Disk eine Burst-Übertragungsrate bzw. eine diskontinuierliche Übertragungsrate hätte, die höher wäre als die maximal aufrechterhaltene Rate. Festplatten weisen normalerweise einen signifikanten Puffer auf und vielleicht würde ein vorauslaufendes Lesen in diesen Puffer die unnütze bzw. unproduktive Zeit beseitigen.One potential Timing problem is that the most important part or chunk compressed sufficiently well, so that the disc or plate during the decoding of a portion of the data is idle or unproductive. if it there is sufficient memory bandwidth for the band buffer A foresight can be used to get the most important data fast to process. Then can the less important data get a head start or a head start. Likewise would be it's good if the disk has a burst transfer rate or a discontinuous transmission rate would have, the higher would be considered the maximum sustained rate. Hard drives usually have a significant buffer on and maybe a pre-reading in this buffer the useless or eliminate unproductive time.

Konditionieren eines Teiles des KontextmodellsCondition part of the contextual model

Das Konditionieren, das in dem Kontextmodell verwendet wird, hängt von den Hardwarekosten bzw. dem Hardwareaufwand gegenüber den Kompressionskompromissen ab. Deshalb werden in den folgenden Abschnitten viele Optionen zum Konditionieren vorgestellt, die von Designers beachtet werden können.The Conditioning, which is used in the context model depends on the hardware costs or the hardware costs compared to the Compression compromises. Therefore, in the following sections Many conditioning options are presented by Designers can be considered.

Kontextmodell für SS-Koeffizientencontext model for SS coefficients

Bei einer Ausführungsform des Kontextmodells werden SS-Koeffizienten nicht kodiert. Da sie nur 1/256 der ursprünglichen Daten ausmachen, führt deren Kodierung nur zu einem geringen Gewinn. Falls ihr Kodieren gewünscht ist, können sie durch ein Gray-Kodieren, ein Konditionieren auf dem vorhergehenden Bit in demselben Koeffizienten und/oder auf ein entsprechendes Bit in dem vorhergehenden Koeffizienten gehandhabt werden.at an embodiment of the context model, SS coefficients are not encoded. As she only 1/256 of the original Make data leads their coding only for a small profit. If you are coding required is, can they by a Gray coding, conditioning on the previous bit in the same coefficient and / or to a corresponding bit in the previous coefficient be handled.

Kontextmodell für Erst-Bitebenen-Informationcontext model for first bit level information

Die vier Bits der Erst-Bitebenen-Information bzw. Information für die erste Bitebene für die wichtigsten Daten jedes Wavelet-Baums können ähnlich wie die SS-Koeffizienten behandelt werden. Sie erhöhen die Größe der Originaldaten nur um 1/512. Bei einer Ausführungsform können sie unkodiert auf ihrer geringen Größe im Vergleich zu den ursprünglichen Daten bleiben oder eine Gray-Kodierung oder eine andere Konditionierung durchlaufen.The four bits of the first bit plane information for the first one Bite level for The most important data of each wavelet tree can be similar to the SS coefficients be treated. They increase the size of the original data only at 1/512. In one embodiment can they are uncoded on their small size compared to the original one Data remain or undergo a Gray coding or other conditioning.

In ähnlicher Weise, falls sechs Bits gemäß der 15 verwendet werden, können sie wie SS-Koeffizienten behandelt werden.Similarly, if six bits according to 15 can be treated as SS coefficients.

Kontextmodell für Kopfbitscontext model for head bits

21 ist ein Blockdiagramm für eine Ausführungsform des Kontextmodells, das die Konditionierung für Kopfbits bereitstellt. Nimmt man Bezug auf 21, so enthält das Kontextmodell 2100 Schieberegister, ähnliche wie jene, die in einem Bitebenen-Kontextmodell gefunden werden. Ein wichtiger Unterschied ist, daß anstelle der Verwendung vorhergehender Koeffizientenbits von der aktuellen Bitebene das Konditionieren auf einer Schwanz-ein-Information basiert, die alle vorhergehenden Bitebenen und die zuvor kodierte Information in der aktuellen Bitebene verwendet. Ebenso werden manche Bits zum Identifizieren der kodierten Bitebene oder der Gruppe von kodierten Bitebenen und des Unterbandes oder der Gruppe von kodierten Unterbändern von dem Wichtigkeitsniveau und dem Unterband-Speicherbereichsbilden („subband bucketing") (ratenartig) erzeugt. 21 Figure 10 is a block diagram for one embodiment of the context model providing header bit conditioning. If you take reference 21 so contains the context model 2100 Shift registers similar to those found in a bit-level context model. An important difference is that instead of using previous coefficient bits from the current bit-plane, conditioning is based on tail-on information that uses all previous bit-planes and the previously encoded information in the current bit-plane. Likewise, some bits for identifying the coded bit plane or group of coded bit planes and the subband or group of coded subbands are generated from the level of importance and subband bucketing (guess-like).

Nimmt man Bezug auf 21, so umfaßt das Kontextmodell zwei Eingänge, das aktuelle Signifikanzniveau 2110 und die Koeffizienten vom Speicher 2111. Das aktuelle Signifikanzniveau 2110 ist mit den Eingängen des Schwanz-ein-Informations-/Bitgenerator(en)-Blocks 2101 und dem Wichtigkeitsniveau- und Unterband-Speicherbereichs bildungs-Block 2102 verbunden, wobei der gebildete Speicher insbesondere Daten für eine Anwendung enthält und der Vorgang der Speicherbereichsbildung auch als "Bucketing"-Block bezeichnet wird und auch als Variablenzuweisung aufgefaßt werden kann. Die Koeffizienten von dem Speicher werden ebenso mit dem Block 2101 und den Register 2103 bis 2106 verbunden.If you take reference 21 Thus, the context model includes two inputs, the current level of significance 2110 and the coefficients from memory 2111 , The current significance level 2110 is with the inputs to the tail-an-information-bit-generator (s) block 2101 and the importance level and subband storage area formation blocks 2102 The memory formed in particular contains data for an application and the process of the storage area formation is also referred to as a "bucketing" block and can also be understood as a variable assignment. The coefficients from the memory are also used with the block 2101 and the register 2103 to 2106 connected.

Der Block 2101 nimmt die Koeffizienten und bestimmt, ob es ein Bit gibt oder nicht. Bei einer Ausführungsform bestimmt 2101 ebenso, von wo das eine Bit ist. Die Ausgabe des Blocks 2101 stellt ein oder zwei Bits dar, die auf der Schwanz-ein-Information basieren. Bei einer Ausführungsform stellt die Schwanz-Information eine Beziehung bezüglich dem her, ob oder ob nicht das erste Nicht-Null-Betragsbit beobachtet worden ist (z.B. ob das erste "Ein-Bit" beobachtet worden ist) und, falls dem so ist, wieviele Bitebenen dies ungefähr her ist. Tabelle 6 beschreibt die Schwanz-Information-Bits.The block 2101 takes the coefficients and determines if there is a bit or not. Determined in one embodiment 2101 as well, from where that is one bit. The output of the block 2101 make one or two Bits that are based on the tail-on information. In one embodiment, the tail information establishes a relationship as to whether or not the first non-zero magnitude bit has been observed (eg, whether the first "one bit" has been observed) and, if so, how many Bitebenen this is about ago. Table 6 describes the tail information bits.

Tabelle 6 – Definition der Schwanz-Information

Figure 00740001
Table 6 - Definition of tail information
Figure 00740001

Von der 2-Bit-Schwanz-Information wird ein 1-Bit-"Schwanz-ein"-Wert synthetisiert, um anzuzeigen, ob die Schwanz-Information Null ist oder nicht. Bei einer Ausführungsform werden die Schwanz-Information und die Schwanz-ein-Bits aktualisiert, unmittelbar, nachdem der Koeffizient kodiert worden ist. Bei einer anderen Ausführungsform tritt eine Aktualisierung später auf, um eine parallele Kontexterzeugung zu ermöglichen.From For the 2-bit tail information, a 1-bit "tail-on" value is synthesized to indicate whether the tail information is zero or not. In one embodiment the tail information and tail-a-bits are updated, immediately after the coefficient has been coded. At a another embodiment an update occurs later to allow parallel context generation.

Zusätzlich können die zwei Bits verwendet werden, um anzuzeigen, daß das Wichtigkeitsniveau kodiert worden ist. Die ersten zwei Bitebenen verwenden den Wert 0, die zweiten zwei 1, die dritten zwei 2 und die übrigen Bitebenen 3. Zusätzlich gibt es eine Lauflängekodierung der Bits, die alle Null-Kopf-Bits sind bzw. darstellen.In addition, the two bits are used to indicate that the importance level is coding has been. The first two bit planes use the value 0, the second two 1, the third two 2 and the remaining bit planes 3. In addition there it's a run length encoding the bits that are all zero-head bits.

Die 10 Bits des Kontextes für die Kopfbits beinhalten die 2 Bits von Information, jeweils von dem Elternteil und den West-Koeffizienten, 1 Bit von Information jeweils von den Nord-, Ost-, Südwest- und Süd-Koeffizienten und 2 Bits von der Wichtigkeitsniveauinformation.The 10 bits of context for the header bits contain the 2 bits of information, each from the parent and the west coefficient, 1 bit of information each from the north, east, southwest and South coefficients and 2 bits of the importance level information.

Bei einer Ausführungsform wird die Schwanz-Information nicht für manche oder alle Frequenzbänder verwendet. Dies ermöglicht es, daß ein Frequenzband dekodiert wird, ohne zuvor sein Elternteil zu dekodieren.at an embodiment the tail information is not used for some or all frequency bands. this makes possible it, that one Frequency band is decoded without first decoding its parent.

Bei einer Ausführungsform verwendet die Zuweisung der Bitebenen eines jeden Frequenzbandes zu den Wichtigkeitsniveaus eine Ausrichtung. Die Bestimmung der Schwanz-ein-Information des Elternteils verwendet eine zweite Ausrichtung, die weniger Bitebenen des Elternteils verwendet als tatsächlich kodiert worden sind. Dies ermöglicht es, daß manche Bitebenen eines Frequenzbandes dekodiert werden, ohne die entsprechenden Bitebenen des Elternteils in demselben Nichtigkeitsniveau zu dekodieren (siehe 38). Zum Beispiel kann ein Bild mit einer pyramidalen Ausrichtung kodiert werden, wobei aber die Elternteil-Schwanz-ein-Information auf einer MSE-Ausrichtung basiert (siehe 39). Dies ermöglicht es dem Dekode, eine pyramidale Ausrichtung zudekodieren, eine MSE-Ausrichtung zu simulieren oder irgendeine Ausrichtung zwischen pyramidisch und MSE zu simulieren.In one embodiment, the assignment of the bit-planes of each frequency band to the importance levels uses an alignment. Parental tail information determination uses a second alignment that uses fewer bit planes of the parent than has actually been encoded. This allows some bit-planes of a frequency band to be decoded without decoding the corresponding bit-planes of the parent at the same level of nullity (see 38 ). For example, an image may be encoded with a pyramidal orientation, but the parent tail information is based on MSE alignment (see 39 ). This allows the decode to decode a pyramidal orientation, to simulate MSE alignment, or to simulate any alignment between pyramidal and MSE.

Nimmt man Bezug auf 21, so sind die Ausgänge des Blocks 2101 mit den Eingängen der Register 2103 bis 2106 gekoppelt. Die Register 2103 bis 2106 akkumulieren die Nachbarschaftsdaten. Zum Beispiel halten die oberen/linken Schieberegister Bits während der Zeile aufrecht, die unmittelbar überhalb des aktuellen Koeffizienten ist. Das aktuelle Schieberegister enthält die Bits der aktuellen Zeile von Koeffizienten, während das untere/rechte Schieberegister 2105 die Zeilen der Zeile unmittelbar unterhalb des Schieberegisters enthält. Schließlich hält das Elternteil-Register 2106 die Elternteil-Daten aufrecht. Die Ausgänge der Schieberegister bilden den Kontext.If you take reference 21 so are the outputs of the block 2101 with the inputs of the registers 2103 to 2106 coupled. The registers 2103 to 2106 accumulate the neighborhood data. For example, the upper / left shift registers maintain bits during the line that is just above the current coefficient. The current shift register contains the bits of the current line of coefficients, while the lower / right shift register 2105 contains the lines of the line just below the shift register. Finally, the parent keeps register 2106 the parent data upright. The outputs of the shift registers form the context.

Der Ausgang des Wichtigkeitsniveaus und des Speicherbildungsblocks bzw. "Bucketing"-Blocks 2102 können ebenso für einen Kontext verwendet werden. Derartiges wäre Teil des Kontexts, wenn die Unterbänder und unterschiedliche Niveaus zu demselben Kontext zu kodieren sind. Falls dies der Fall ist, wird der Ausgang vom Block 2102 mit den Ausgängen der Register 2103 bis 2106 verbunden, um den Kontext auszubilden. Falls nicht, umfaßt der Kontext nur die Ausgänge der Register 2103 bis 2106.The output of the importance level and the bucketing block 2102 can also be used for a context. This would be part of the context if the subbands and different levels are to be coded to the same context. If so, the output is from the block 2102 with the outputs of the registers 2103 to 2106 connected to form the context. If not, the context includes only the outputs of the registers 2103 to 2106 ,

Ebenso ist der Ausgang von dem Kontextmodell 2100 ein Bit.Likewise, the output is from the context model 2100 one bit.

Ein Kodieren kann durchgeführt werden, indem zwischen DD-, SD- und DS-Koeffizienten alterniert wird, um die Bit-zu-Kontext-Verzögerung zur Verwendung von Daten von der aktuellen Bitebene zu ermöglichen (wobei zwischen Unterbäumen alterniert wird).One Coding can be done be alternated by alternating between DD, SD and DS coefficients, around the bit-to-context delay to allow use of data from the current bit-plane (where between subtrees is alternated).

Bemerkenswert ist, daß der Speicher benötigt wird, um Koeffizienten zu speichern, die zur Konditionierung gebraucht werden (siehe 17). Der Speichergebrauch bezüglich einer Ausführungsform des Kontextmodells mit Konditionierung aller Nachbarn und Elternteile ist in 22 gezeigt. Eine kurze Saum-Transformationsordnung wird angenommen. (Ein externer Speicher kann verwendet werden, um eine lange Saum-Transformationsordnung zu unterstützen. Dies würde sowohl einen zusätzlichen Speicherraum als auch eine zusätzliche Bandbreite erforderlich machen.) Die Konditionierung von Elternteilen hohen Niveaus ist besonders aufwendig. Der Niveau-4-DD-Koeffizient für einen gegebenen Baum wird nicht berechnet bis zu 16 Bäume später als die meisten der Niveau-1-DD-Koeffizienten für jenen Baum. Ebenso ist das Speichern ganzer Koeffizienten, die später zu kodieren sind (unschattiert in 22) viel aufwendiger als nur das Speichern der Schwanz-ein-Information zur späteren Verwendung bei der Konditionierung (kreuz-schraffiert in 22). Die Konditionierung von nur der "West"-Information, wobei es sich um denselben Baum handelt, und der Elternteile, die ohne Daten von "West"-Bäumen erzeugt sind, würde den erforderlichen Speicherumfang erheblich reduzieren. Wenn ein Elternteil oder eine West-Information nicht verfügbar waren, ist das Kopieren der Information vom Norden oder Osten nützlich.It is noteworthy that the memory is needed to store coefficients needed for conditioning (see 17 ). The memory usage for one embodiment of the context model with conditioning of all neighbors and parents is in 22 shown. A short hem-transformation order is assumed. (An external memory can be used to support a long seam transformation order, which would require both additional memory space and additional bandwidth.) Conditioning high-level parenting is particularly expensive. The level 4 DD coefficient for a given tree is not calculated up to 16 trees later than most of the level 1 DD coefficients for that tree. Likewise, storing whole coefficients to be encoded later (unshaded in 22 ) much more than just storing tail information for later use in conditioning (crosshatched in FIG 22 ). Conditioning only the "West" information, which is the same tree, and the parent generated without data from "West" trees would significantly reduce the amount of memory required. If a parent or West information was not available, copying the information from the north or east is useful.

Kontextmodell für Vorzeichenbitscontext model for sign bits

Das Kontextmodell, das eine Konditionierung für Vorzeichenbits liefert, ist einfach. Falls das Vorzeichen der obigen Pixel bekannt ist, wird es für die Konditionierung verwendet. Falls das Vorzeichenbit für das obige Pixel unbekannt ist, dann wird das unkodierte Bit (R2(0)) verwendet. Alternativ kann keine Kodierung (R2(0)) für alle Vorzeichenbits verwendet werden.The Context model that provides conditioning for sign bits is easy. If the sign of the above pixels is known, then it for used the conditioning. If the sign bit for the above Pixel is unknown then the uncoded bit (R2 (0)) is used. Alternatively, no coding (R2 (0)) can be used for all sign bits become.

23 ist ein Blockdiagramm einer Ausführungsform des Kontextmodells für Vorzeichenbits. Nimmt man Bezug auf 23, so empfängt ein Multiplexer 2301 ein Nord-Vorzeichenbit 2303 und ein 0-Bit 2304 (verdrahtet) und wird durch ein Nord-Schwanz-ein-Bit 2302 gesteuert, um das Nord-Vorzeichenbit 2303 auszugeben, falls das Nord-Schwanz-ein-Bit 2302 eine 1 ist; ansonsten gibt der Multiplexer 2301 eine 0 aus. Somit liefert das Nordpixel das Nord-Schwanz-ein-Bit 2302 und das Nord-Vorzeichenbit 2303, um einen Kontext für das Pixel südlich des Nordpixels bereitzustellen. 23 Figure 4 is a block diagram of one embodiment of the sign bit context model. If you take reference 23 , so receives a multiplexer 2301 a north sign bit 2303 and a 0-bit 2304 (wired) and is by a north tail-a-bit 2302 controlled to the north sign bit 2303 if the north tail is a bit 2302 a 1 is; otherwise there is the multiplexer 2301 a 0 off. Thus, the north pixel provides the north tail-a-bit 2302 and the north sign bit 2303 to provide a context for the pixel south of the north pixel.

Kontextmodell für Schwanzbitscontext model for tail bits

Es wird keine Konditionierung für Schwanzbits verwendet. Bei einer Ausführungsform wird ein fixierter Wahrscheinlichkeitszustand verwendet und keine Wahrscheinlichkeitsaktualisierung wird verwendet. Tabelle 7 zeigt drei Optionen für Kodes, die für Schwanzbits zu verwenden sind. Die zweite Option, die R2(1) und R2(0) verwendet, stellt eine gute Wahl dar.It will not be conditioned for Tail bits used. In one embodiment, a fixed probability state used and no probability update is used. Table 7 shows three options for Codes for tail bits to be used. The second option, which uses R2 (1) and R2 (0), is a good choice.

Tabelle 7 – Wahrscheinlichkeitszustände (Kodes), die für Schwanzbits verwendet werden

Figure 00780001
Table 7 - Probability states (codes) used for tail bits
Figure 00780001

Bei einer Ausführungsform lautet der Kode gemäß eines goldenen Verhältnisses („goldenes Verhältnis"-Kode bzw. "Golden Ratio"-Kode), der gut für Wahrscheinlichkeiten von M ≅ 60 %, L ≅ 40 % ist, wie folgt: Eingabe Kodewort MMM 00 MML 110 ML 01 LM 10 SS 111 In one embodiment, the code according to a golden ratio ("Golden Ratio" code) that is good for probabilities of M ≅ 60%, L ≅ 40% is as follows: input codeword MMM 00 MML 110 ML 01 LM 10 SS 111

Kontextbin-ZusammenfassungKontextbin Summary

Die minimale Anzahl der Kontextbins, die in dem System verwendet werden könnten, sind wie folgt. SS, erste Bitebene für jeden Baum, Vorzeichen- und Schwanzbits werden alle nicht kodiert (der verwendete Kode lautet R2(0)). Obwohl kein PEM-Zustand oder ein Bit für ein höchstwahrscheinliches Symbol (MPS) bzw. ein MPS-Bit gespeichert werden muß, muß es eine Logik geben, um den R2(0)-Kode auszuwählen.The minimal number of context bins used in the system could are as follows. SS, first bit level for each tree, sign and Tail bits are all not encoded (the code used is R2 (0)). Although not a PEM state or a bit for a most likely Symbol (MPS) or an MPS bit, it must be a Give logic to select the R2 (0) code.

Deshalb ist der Hardwareaufwand in Abhängigkeit davon, wie dies gezählt wird, null oder ein Kontextbin. Adaptives Kodieren sollte für Kopfbits verwendet werden. Für weniger wichtige Daten ist, da eine Bitebene zu eine Zeit kodiert wird, das Konditionieren der Bitebene nicht wichtig. Für die wichtigsten Daten kann die erste Bitebene für jeden Wavelet-Baum die Anzahl der Bitebenen ausreichend reduzieren, so daß Konditionierung der Bitebene nicht wichtig ist. Es ist weniger klar, was die Nützlichkeit der Konditionierung des Unterbandes darstellt, aber dies wird ebenfalls in diesem Minimalkontextbeispiel ignoriert werden. Die Schwanz-ein-Bits dieser drei Nachbarn und eines Elternteils könnten für insgesamt vier Bits (16 Kontextbins) verwendet werden. Ein zusätzliches Kontextbin kann für einen Vorherseher bzw. für ein Vorhersehen verwendet werden. (Es kann zweckmäßig sein, die zwei Kopf-Kontextbins zusammen abzubilden, um Platz für das Vorhersehen zu machen, so daß die Speichergröße immer noch eine Potenz von 2 ist.)Therefore is the hardware cost depending of how this counted becomes, null, or a context bin. Adaptive coding should be for header bits be used. For less important data is because one bit level encodes at a time does not matter, conditioning the bit-plane. For the most important Data may be the first bit level for sufficiently reduce the number of bit planes for each wavelet tree, so that conditioning the Bite level is not important. It is less clear what the usefulness the conditioning of the subband represents, but this will too be ignored in this minimal context example. The tail-a-bits of these three neighbors and one parent could be for a total of four bits (16 context bins) be used. An additional Context bin can for a forerunner or for a foresight can be used. (It may be appropriate map the two head context bins together to make room for anticipation to do so that the Memory size always is still a power of 2)

Mit vier Kernen (was eine vierfache Replizierung von Kontexten erforderlich macht) und zwei Kontextspeicherbänken pro Kern würde die minimal zu verwendende Anzahl von Kontextbins zwischen 128 und 144 liegen, und zwar in Abhängigkeit davon, wie "nicht kodierte" Kontexte gezählt werden und ob zwei Kopf-Kontextbins zusammen abgebildet werden bzw. durch Abbildung zusammengebracht werden.With four cores (which requires a fourfold replication of contexts power) and two context memory banks per core would the minimum number of context bins to use between 128 and 144, depending on of it, like "not coded "contexts counted and whether two header context bins are mapped together or be matched by picture.

Ein System mit einem üppigen Konditionierungsumfang lautet wie folgt:

  • • Für SS (9-Bit) und eine erste Bitebene (4 Bit) verwende 4 Kontextbins pro Bit, für insgesamt 52 Kontextbins (dies könnte in Bänke aufgeteilt werden, sie müssen nicht dupliziert werden).
  • • Schwanzbits werden nicht kodiert, aber sowohl R2(0) und R2(1) werden verwendet. In Abhängigkeit davon, wie sie gezählt werden, kostet dies 0,1 oder 2 Kontextbins.
  • • Zwei adaptive Kontexte und ein "Kein-Kode"-Kontext werden für die Vorzeichenbits verwendet.
  • • Die Kopfbits können 8 Bits von Nachbarn/Elternteil und 2 Bits für Unterband-/Bitebenen-Information verwenden (1024 Kontextbins).
  • • Ein Kontext wird für Vorhersehen verwendet.
A system with a lush conditioning scope is as follows:
  • • For SS (9-bit) and a first bit-level (4 bits) use 4 context bins per bit, for a total of 52 context bins (this could be split into banks, they do not have to be duplicated).
  • • tail bits are not encoded, but both R2 (0) and R2 (1) are used. Depending on how they are counted, this costs 0.1 or 2 context bins.
  • • Two adaptive contexts and a "no-code" context are used for the sign bits.
  • The header bits can use 8 bits of neighbor / parent and 2 bits for subband / bitplane information (1024 context bins).
  • • A context is used for predicting.

Eine alternative Ausführungsform eines Kontextmodells einschließlich einer Ausführungsform einer Vorzeichen-/Betragseinheit, die Eingangskoeffizienten in ein Vorzeichen-/Betragsformat konvertiert, ist in der US-Patentanmeldung Nr. 08/498,695, eingereicht am 30. Juni 1995 mit dem Titel "Method and Apparatus for Compression Using Reversible Wavelet Transforms and an Embedded Codestream" und der US-Patentanmeldung Nr. 08/498,036, eingereicht am 30. Juni 1995, mit dem Titel "Reversible Wavelet Transform and Embedded Codestream Manipulation" und ebenso in der US-Patentanmeldung Nr. 08/642,518, eingereicht am 3. Mai 1996, mit dem Titel "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device-Dependent Parser", und der US-Patentanmeldung Nr. 08/643, 268, eingereicht am 3. Mai 1996, mit dem Titel "Compression/Decompression Using Reversible Embedded Wavelets" beschrieben.A alternative embodiment including a contextual model an embodiment a sign / amount unit, the input coefficients in a Signed / Amount converted, is in the US patent application No. 08 / 498,695, filed June 30, 1995, entitled "Method and Apparatus for Compression Using Reversible Wavelet Transforms and Embedded Codestream "and the US patent application No. 08 / 498,036, filed June 30, 1995, entitled "Reversible Wavelet Transform and Embedded Codestream Manipulation "and also in the US patent application No. 08 / 642,518, filed May 3, 1996, entitled "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device Dependent Parser ", and the U.S. Patent Application No. 08 / 632,248, filed May 3, 1996, entitled "Compression / Decompression Using Reversible Embedded Wavelets ".

Das Kontextmodell liefert Kontexte für Entropiekodieren der Daten. Bei einer Ausführungsform wird das Entropiekodieren, das durch die vorliegende Erfindung durchgeführt wird, durch binäre Entropiekodierer durchgeführt. Ein einziger Kodierer kann verwendet werden, um einen einzigen Ausgabe-Kodestrom zu erzeugen. Alternativ können mehrere (physikalische oder virtuelle) Kodierer verwendet werden, um mehrere (physikalische oder virtuelle) Datenströme zu erzeugen.The Context model provides contexts for Entropy coding of the data. In one embodiment, entropy encoding is performed by the present invention is performed by binary entropy coders. One single encoder can be used to provide a single output code stream to create. Alternatively you can multiple (physical or virtual) encoders are used to generate multiple (physical or virtual) data streams.

M-ary-Kodieren für LICM-ary encoding for LIC

24 zeigt die Verwendung von M-ary-Kodieren für die LIC. Die Verwendung von M-ary für ein reduziertes Kodieren arbeitet als ein Vorherseher (wie gezeigt). Als erstes wird der Zustand der nächsten acht Koeffizienten untersucht. Falls irgendetwas in dem Kopf ist, wird ein Entropiekodieren mit den Kopfbits durchgeführt, so daß alle Kopfbits, einer pro Zyklus, entropiekodiert werden, bis alle Kopfbits bei den acht Koeffizienten kodiert sind. Nimmt man Bezug auf 24, so werden die Kopfbits, die 1 sind, in den ersten und dritten Zyklen kodiert, während die Kopfbits, die 0 sind, in den zweiten und vierten Zyklen kodiert werden. Wenn einmal die Kopfbits entropiekodiert sind, werden die Vorzeichen und Schwanzbits in demselben Zyklus kodiert. Zum Beispiel werden in 24 alle Vorzeichen- und Schwanzbits, die einem Kopfbit, das 1 ist, folgen, in dem fünften Zyklus kodiert. Auf diese Art und Weise wird die Gesamtzahl der Zyklen reduziert. 24 shows the use of M-ary encodings for the LIC. The use of M-ary for reduced coding works as a forerunner (as shown). First, the state of the next eight Coefficients examined. If there is anything in the header, entropy coding is performed on the header bits so that all header bits, one per cycle, are entropy encoded until all header bits are encoded at the eight coefficients. If you take reference 24 Thus, the header bits, which are 1, are encoded in the first and third cycles, while the header bits, which are 0, are encoded in the second and fourth cycles. Once the head bits are entropy coded, the sign and tail bits are coded in the same cycle. For example, in 24 all sign and tail bits following a header bit that is 1 are encoded in the fifth cycle. In this way, the total number of cycles is reduced.

Eine Drucksystemanwendung der vorliegenden ErfindungA printing system application of the present invention

25 ist ein Blockdiagramm einer Ausführungsform des Vorderendes eines Druckers. Nimmt man Bezug auf 25, so empfängt ein Aufbereiter bzw. Bildaufbereiter Daten in der Form eine Seitenbeschreibungssprache ("Page Description Language" PDL) oder einer Anzeigeliste. Der Aufbereiter 2501 kann eine Rasterbildverarbeitung umfassen. Für jede Stelle (z.B. jeden Punkt bzw. Spot) bestimmt der Aufbereiter 2501 seine Farbe (z.B. schwarz/weiß, 8-Bit-RGB-Werte, 8-Bit-CMYK-Werte in Abhängigkeit von der Anwendung). Die Ausgabe des Aufbereiters 2501 stellt einen Satz von Pixeln dar, die in Bändern formatiert sind und in einem Bandpuffer (Speicher) 2503 gespeichert sind. 25 Fig. 10 is a block diagram of one embodiment of the front end of a printer. If you take reference 25 Thus, a renderer receives data in the form of a page description language (PDL) or a display list. The dresser 2501 may include raster image processing. For each position (eg every point or spot) the conditioner determines 2501 its color (eg black and white, 8-bit RGB values, 8-bit CMYK values depending on the application). The edition of the conditioner 2501 represents a set of pixels that are formatted in bands and in a tape buffer (memory) 2503 are stored.

Bei einer alternativen Ausführungsform werden Daten von einer Seitenbeschreibungssprache (PDL), wie z.B. Adobe Postscript® oder Microsoft Windows® GDI, zu einer Anzeigeliste bzw. in eine Displayliste aufbereitet. Die Anzeigeliste bzw. Displayliste wird verwendet, um Bänder von Pixeln zu erzeugen. Bei dieser Ausführungsform wird angenommen, daß die Pixel kontinuierliche Tonwerte darstellen, und jegliche Halbtonverarbeitung oder Zitterverarbeitung bzw. Dithering, die von der Druckmaschine gefordert wird, wird nach der Dekompression durchgeführt.In an alternative embodiment, data of a page description language (PDL), such as Adobe PostScript ® or Microsoft ® Windows GDI, treated to a display list or in a display list. The display list or display list is used to generate bands of pixels. In this embodiment, it is assumed that the pixels represent continuous tonal values, and any halftone processing or dithering required by the printing press is performed after decompression.

Bei der vorliegenden Erfindung wird der Speicher, der für den Bandpuffer 2503 verwendet wird, ebenso als Arbeitsraum zur Kompression verwendet (ohne den erforderlichen Speicher zu erhöhen). Diese duale Verwendung wird detaillierter im folgenden beschrieben.In the present invention, the memory allocated to the band buffer 2503 is used as well as working space used for compression (without increasing the required memory). This dual use will be described in more detail below.

Der Kompressor 2504 komprimiert jedes Band von Pixel. Falls die Eingabe des Kompressors 2504 Halbton- oder Zitterpixel ("dithered pixels") darstellt, würde der Kompressor 2504 immer noch arbeiten, aber die erzielte Kompression wäre wahrscheinlich mit Wavelet-Prozessen schlecht. Ein binäres Kontextmodell kann bei Halbton- oder Zitterpixeln verwendet werden. Der Kompressor 2504 schreibt die komprimierten Daten auf die Disk 2505. Die Disk bzw. Platte 2505 kann eine Festplatte sein. Bei einer alternativen Ausführungsform kann es sich bei der Disk 2505 um einen Speicher mit wahlfreiem Zugriff (RAM), einen Flash-Speicher, eine optische Disk, jeden Typ von Speichereinrichtung oder jeden Typ von Kommunikationskanal handeln.The compressor 2504 compresses each band of pixels. If the input of the compressor 2504 Halftone or dithered pixels, the compressor would 2504 Still working, but the compression achieved would probably be bad with wavelet processes. A binary context model can be used with halftone or dither pixels. The compressor 2504 writes the compressed data to the disc 2505 , The disc or plate 2505 can be a hard disk. In an alternative embodiment, the disk may be the same 2505 a random access memory (RAM), a flash memory, an optical disk, any type of memory device, or any type of communication channel.

26 ist ein Blockdiagramm einer Ausführungsform des Hinterendes des Druckers. Nimmt man Bezug auf 26, so umfaßt das Hinterende des Druckers 2500 einen Dekompressor 2602, der an die Disk bzw. Platte 2505, einen Bandpuffer (Speicher) 2603 und eine Druckmaschine 2604 angeschlossen ist. Der Dekompressor 2602 liest komprimierte Daten von der Festplatte 2505 und dekomprimiert sie. Die dekomprimierten Daten werden in dem Bandpuffer (Speicher) 2603 in der Gestalt von Pixeln gespeichert. Bei dem Bandpuffer 2603 kann es sich um denselben Speicher, wie dem Bandpuffer 2503 handeln, um als ein Arbeitsraum für den Kompressor 2504 zu arbeiten. Der Dekompressor 2602 hält den Bandpuffer 2603 ausreichend voll, so daß die Pixel zu der Druckmaschine 2604 in Echtzeit gesendet werden können. 26 Figure 10 is a block diagram of one embodiment of the rear end of the printer. If you take reference 26 so includes the back end of the printer 2500 a decompressor 2602 to the disk or disk 2505 , a band buffer (memory) 2603 and a printing press 2604 connected. The decompressor 2602 reads compressed data from the hard disk 2505 and decompress it. The decompressed data is stored in the tape buffer (memory) 2603 stored in the form of pixels. In the band buffer 2603 it can be the same memory as the tape buffer 2503 act as a working space for the compressor 2504 to work. The decompressor 2602 holds the tape buffer 2603 sufficiently full, so that the pixels to the printing press 2604 can be sent in real time.

27 stellt eine alternative Ausführungsform dar, die eine optionale Verbesserung enthält. Nimmt man Bezug auf 27, so laufen Pixel von dem Dekompressor 2602 zu dem Bandpuffer 2603 über einen Verbesserungsblock 2705, während eine andere Information, die die Information ist, die noch nicht Pixel (Teil-Koeffizienten) ist, direkt zu dem Bandpuffer 2603 gesendet wird. Ein Verbesserungsblock 2705 kann derartige Funktionen durch Interpolation, Glätten, Fehlerdiffusion, Halbtönen und/oder Zitterverarbeitung durchführen. 27 FIG. 12 illustrates an alternative embodiment that includes an optional enhancement. If you take reference 27 , so pixels run from the decompressor 2602 to the tape buffer 2603 about a block of improvement 2705 while some other information, which is the information that is not yet pixels (sub-coefficients), goes directly to the band buffer 2603 is sent. A block of improvement 2705 can perform such functions by interpolation, smoothing, error diffusion, halftoning and / or jitter processing.

Die benötigte Bandbreite zwischen dem Dekompressor 2602 und dem Bandpuffer 2603 erlaubt es dem Dekompressor 2602, zuerst die Transformationskoeffizienten zu dem Bandpuffer 2603 zu schreiben, auf den Bandpuffer 2603 zuzugreifen, um gewisse Koeffizienten zu erhalten und die inverse Transformation mit derartigen Koeffizienten durchzuführen und sie dann zurück zu dem Bandpuffer 2603 zu schreiben. Bemerkenswert ist, daß der Bandpuffer 2603 als ein Arbeitsspeicher klein sein kann. Zum Beispiel, falls ein Vollseitenbild 64 Megabyte ist und ein Bandpuffer 2603 16 Megabyte ist, würde er immer noch als kleiner Arbeitsspeicher betrachtet werden.The required bandwidth between the decompressor 2602 and the tape buffer 2603 allows the decompressor 2602 First, the transform coefficients to the band buffer 2603 to write on the tape buffer 2603 to get certain coefficients and perform the inverse transform with such coefficients and then back to the band buffer 2603 to write. It is noteworthy that the band buffer 2603 as a working memory can be small. For example, if a full page image is 64 megabytes and a tape buffer 2603 16 megabytes, it would still be considered a small memory.

Bei einer Ausführungsform erfordern A4-Bilder mit 400 dpi mit 32 Bits/Pixel (vier 8-Bit-Komponenten, CMYK) ungefähr 8 Seiten/Minute eine Datenrate von ungefähr 8 Mbytes/s von dem Bandpuffer 2603 zur Druckmaschine bzw. zum Drucker 2604. Die Übertragungsrate einer beispielhaften Festplatte liegt bei ungefähr 2 Mbytes pro Sekunde (z.B. 1,7–3,5 Mbytes/s). Deshalb ist eine typische Kompressionsrate von ungefähr 4:1 erforderlich, um die Bandbreite der Disk 2601 an die Bandbreite des Druckers anzupassen. Bei einer Ausführungsform sind der Kompressor 2504 in der 25 und der Dekompressor 2602 in der 26 oder 27 in einem einzigen integrierten Schaltungschip enthalten.In one embodiment, 400 dpi 32-bit / pixel (four 8-bit components, CMYK) A4 images require about 8 pages / minute data rate of about 8 Mbytes / s from the band buffer 2603 to the printing press or to the printer 2604 , The transfer rate of an exemplary hard disk is about 2 Mbytes per second (eg 1.7-3.5 Mbytes / s). Therefore, a typical compression rate of about 4: 1 is required to reduce the bandwidth of the disk 2601 to adapt to the bandwidth of the printer. In one embodiment, the compressor is 2504 in the 25 and the decompressor 2602 in the 26 or 27 contained in a single integrated circuit chip.

28 ist ein Blockdiagramm einer Ausführungsform eines integrierten Schaltungs-(IC)-Chips, der die Drucker-Kompression/-Dekompression enthält. Nimmt man Bezug auf 28, so ist das Pixeldaten-Interface 2801 mit dem Bandpuffer (nicht gezeigt) verbunden. Das Pixeldaten-Interface bzw. die Pixeldaten-Schnittstelle 2801 ist mit dem Bandpuffer (nicht gezeigt) verbunden. Die Pixeldaten-Schnittstelle 2801 erzeugt Adressen zum Lesen und Schreiben vom Pixeln von und zu dem Bandpuffer, und zwar jeweilig. Ein optionaler reversibler Farbraum 2802 kann enthalten sein, um eine reversible Farbraumkonversion durchzuführen. Die Koeffizientendaten-Schnittstelle 2804 erzeugt Adressen zum Lesen und Schreiben von Koeffizienten und stellt korrekt zwei Byte-Koeffizienten zusammen. Die Koeffizientendaten-Schnittstelle 2804 handhabt zusammen mit der Pixeldaten-Schnittstelle 2801 jegliches Zeilenpuffern oder Koeffizientenpuffern, das in einem externen Speicher erforderlich ist. Die Koeffizientendaten-Schnittstelle 2804 und die Verwendung eines reversiblen Farbraums wird im folgenden detaillierter diskutiert. 28 Figure 12 is a block diagram of one embodiment of an integrated circuit (IC) chip that includes printer compression / decompression. If you take reference 28 so is the pixel data interface 2801 connected to the band buffer (not shown). The pixel data interface or the pixel data interface 2801 is connected to the band buffer (not shown). The pixel data interface 2801 generates addresses for reading and writing the pixels from and to the band buffer, respectively. An optional reversible color space 2802 can be included to perform a reversible color space conversion. The coefficient data interface 2804 generates addresses for reading and writing coefficients and correctly assembles two byte coefficients. The coefficient data interface 2804 handles together with the pixel data interface 2801 any line buffers or coefficient buffers required in external memory. The coefficient data interface 2804 and the use of a reversible color space will be discussed in more detail below.

Bemerkenswert ist, daß die Doppelpfeile implizieren, daß die Daten in beide Richtungen fließen können. Zum Beispiel bewegen sich beim Komprimieren der Daten die Daten von links nach rechts durch die verschiedenen Komponenten des IC-Chips. Auf der anderen Seite bewegen sich, wenn die Daten komprimiert werden, die Daten im allgemeinen von rechts nach links.Remarkable is that the Double arrows imply that the Data flows in both directions can. For example, when compressing the data, the data moves from left to right through the various components of the IC chip. On the other hand, when the data is compressed, the data generally from right to left.

Wenn die Daten kodiert werden, werden die Pixeldaten von der Pixeldaten-Schnittstelle 2801 oder dem reversiblen Farbraum 2802 (falls enthalten) von dem Wavelet-Transformationsblock 2803 empfangen, der die Wavelet-Transformation mit den Pixeldaten durchführt. Bei einer Ausführungsform stellt die Transformation, die von dem Wavelet-Transformationsblock 2803 durchgeführt wird, eine überlappte Wavelet-Transformation dar. Sie stellt eine Energieverdichtung sowohl für die verlustfreie als auch für die verlustbehaftete Bildkompression bereit. Für die verlustbehaftete Kompression werden die Blockgrenzen-Artifakte, die JPEG-Plaguen, vermieden. Die Filterkoeffizienten werden so normalisiert, wenn sie richtig ausgerichtet sind, daß eine skalare Quantisierung gute Ergebnisse bei verlustbehafteter Komprimierung bereitstellen. Bei einer Ausführungsform führt der Wavelet-Transformationsblock 2803 eine 2,6-Transformation durch. Bei einer anderen Ausführungsform führt der Wavelet-Transformationsblock 2803 eine 2,10-Transformation durch. Der Wavelet-Transformationsblock 2803 kann andere gut bekannte Transformationen durchführen. Verschiedene Implementatio nen des Wavelet-Transformationsblocks 2803 werden detaillierter im folgenden beschrieben.When the data is encoded, the pixel data from the pixel data interface 2801 or the reversible color space 2802 (if included) from the wavelet transform block 2803 received, which performs the wavelet transform with the pixel data. In one embodiment, the transform provided by the wavelet transform block 2803 is an overlapped wavelet transform. It provides energy compression for both lossless and lossy image compression. For lossy compression, the block boundary artifacts, the JPEG plagues, are avoided. The filter coefficients are normalized, if properly aligned, for scalar quantization to provide good results in lossy compression. In one embodiment, the wavelet transform block performs 2803 a 2,6 transformation through. In another embodiment, the wavelet transform block results 2803 a 2,10 transformation by. The wavelet transformation block 2803 can perform other well-known transformations. Various implementations of the wavelet transformation block 2803 will be described in more detail below.

Die Koeffizientenausgabe von dem Wavelet-Transformationsblock 2803 kann zurück zu dem Speicher geschrieben werden (z.B. der Bandpuffer), und zwar über die Koeffizientendaten-Schnittstelle 2804 zum späteren Kodieren. Bei einer Ausführungsform sind die Daten, die zu dem Speicher zurückgeschrieben werden, weniger wichtige Daten und werden im folgenden detaillierter beschrieben. Derartige Daten werden später in den IC-Chip zurückgelesen und kodiert.The coefficient output from the wavelet transform block 2803 may be written back to the memory (eg, the band buffer) via the coefficient data interface 2804 for later coding. In one embodiment, the data that is written back to the memory is less important data and will be described in more detail below. Such data is later read back into the IC chip and encoded.

Die Koeffizienten, die von dem Wavelet-Transformationsblock 2803 ausgegeben werden oder die über die Koeffizientendaten-Schnittstelle 2804 empfangen werden, werden dem Kontextmodell 2805 bereitgestellt. Das Kontextmodell 2805 stellt den Kontext zum Kodieren (und Dekodieren) von Daten bereit, und zwar unter Verwendung des Kodierers/Dekodierers 2806. Bei einer Ausführungsform unterstützt das Kontextmodell 2805 das Senden von Daten direkt zum Kodieren. Auf diese Art und Weise arbeitet das Kontextmodell 2805 als das wichtigste Kontextmodell. Ein Architektur zum Implementieren verschiedener Kontextmodelle wurde oben beschrieben.The coefficients generated by the wavelet transform block 2803 be output or via the coefficient data interface 2804 are received, the context model 2805 provided. The context model 2805 provides the context for encoding (and decoding) data using the encoder / decoder 2806 , In one embodiment, the context model supports 2805 sending data directly for encoding. In this way, the context model works 2805 as the most important context model. An architecture for implementing various context models has been described above.

Bei einer Ausführungsform umfaßt der Kodierer/Dekodierer 2806 einen Hochgeschwindigkeitsparallelkodierer. Der Hochgeschwindigkeitsparallelkodierer handhabt verschiedene Bits parallel. Bei einer Ausführungsform wird der Hochgeschwindigkeitsparallelkodierer in einer VLSI-Hardware oder einem Multiprozessor-Computer realisiert, ohne die Kompressionsleistungsfähigkeit zu opfern. Eine Ausführungsform eines Hochgeschwindigkeitsparallelkodierers, die bei der vorliegenden Erfindung verwendet werden kann, ist in dem US-Patent Nr. 5,381,145 beschrieben, das den Titel "Method and Apparatus for Parallel Decoding and Encoding of Data" trägt und am 10. Januar 1995 herausgegeben wurde.In one embodiment, the encoder / decoder comprises 2806 a high-speed parallel coder. The high speed parallel coder handles different bits in parallel. In one embodiment, the high speed parallel encoder is implemented in a VLSI hardware or a multiprocessor computer without sacrificing compression performance. One embodiment of a high speed parallel coder which can be used in the present invention is described in U.S. Patent No. 5,381,145, entitled "Method and Apparatus for Parallel Decoding and Encoding of Data", issued January 10, 1995.

Bei alternativen Ausführungsformen umfaßt der binäre Entropiekodierer entweder einen Q-Kodierer, einen QM-Kodierer, einen FSM-Kodierer usw. Die Q- und QM-Kodierer sind gut bekannt und stellen effiziente binäre Entropiekodierer dar. Die FSM-Kodierer stellen die einfachste Konversion von einer Wahrscheinlichkeit und einem Ergebnis ("outcome") zu einem komprimierten Bitstrom dar. Bei einer Ausführungsform wird der FSM-Kodierer realisiert, indem Nachschlagtabellen sowohl für einen Dekodierer als auch einen Kodierer verwendet werden. Eine Vielfalt von Wahrscheinlichkeitsschätzverfahren können bei einem derartigen FSM-Kodierer verwendet werden. Bei einer Ausführungsform umfaßt der FSM-Kodierer der vorliegenden Erfindung einen B-Kodierer, der in dem US-Patent Nr. 5,272,478 mit dem Titel "Method and Apparatus for Entropy Coding", herausgegeben am 21. Dezember 1993, definiert ist.at alternative embodiments comprises the binary Entropy encoder either a Q-encoder, a QM encoder, a FSM Encoder, etc. The Q and QM encoders are well known and available efficient binary Entropy coder. The FSM coders provide the simplest conversion from a probability and an outcome to a compressed one Bitstream. In one embodiment The FSM encoder is realized by looking up both lookup tables for one Decoder and a coder can be used. A variety of probability estimation can be used in such a FSM encoder. In one embodiment comprises the FSM encoder of the present invention includes a B-coder incorporated in U.S. Patent No. 5,272,478, entitled "Method and Apparatus for Entropy Coding", issued to December 21, 1993, is defined.

Die Ausgabe des Kodierers/Dekodierers 2806 ist mit der Schnittstelle 2807 für kodierte Daten verbunden, die eine Schnittstelle zu der Disk oder einem anderen Speichermedium oder sogar einem anderen Kanal bereitstellt.The output of the encoder / decoder 2806 is with the interface 2807 for encoded data providing an interface to the disc or other storage medium or even another channel.

Die Schnittstelle 2807 für kodierte Daten sendet und empfängt kodierte Daten von der Disk. Bei einer Ausführungsform kann, falls der SCSI-Kontroller bzw. die SCSI-Steuereinrichtung in dem Chip enthalten ist, er bzw. sie an dieser Stelle realisiert bzw. implementiert werden. Bei einer anderen Ausführungsform steht das Interface 2807 für kodierte Daten mit einem externen SCSI-Kontroller in Verbindung. Ein Nicht-SCSI-Speicher oder -Kommunikation kann verwendet werden.the interface 2807 For encoded data, encoded data is sent and received from the disk. In one embodiment, if the SCSI controller or controller is included in the chip, it may be implemented at that location. In another embodiment, the interface is 2807 for encoded data, connect to an external SCSI controller. Non-SCSI memory or communication can be used.

Während der Dekompression werden kodierte Daten von dem Kodierer/Dekodierer 2806 von der Disk (oder einem anderen Speicher oder Kanal) über das Interface 2807 für kodierte Daten empfangen und darin dekomprimiert, wobei Kontexte von dem Kontextmodell 2805 verwendet werden. Die Koeffizienten, die sich aus der Dekompression ergeben, werden invers durch den Wavelet-Transformationsblock 2803 transformiert. (Bemerkenswert ist, daß, obwohl ein Wavelet-Transformationsblock 2803 sowohl Vorwärts- als auch Inverstransformationen bei einer Ausführungsform durchführt, bei anderen Ausführungsformen die zwei Transformationen durch separate Blöcke durchgeführt werden können.) Die Ausgabe des Transformationsblockes 2803 umfaßt Pixel, die jegliche optionale Farbraumkonversion durchmachen und die zu dem Bandpuffer über das Pixeldaten-Interface 2801 ausgegeben werden.During decompression, encoded data is output from the encoder / decoder 2806 from the disk (or other memory or channel) via the interface 2807 for encoded data and decompressed in it, using contexts from the context model 2805 be used. The coefficients that result from decompression become inverse through the wavelet transform block 2803 transformed. (It is noteworthy that, although a wavelet transform block 2803 performing both forward and inverse transforms in one embodiment, in other embodiments, the two transformations may be performed by separate blocks.) The output of the transform block 2803 includes pixels that undergo any optional color space conversion and those to the band buffer via the pixel data interface 2801 be issued.

Die grundsätzliche Zeitsteuerung des Systems während des Ausdruckens ist in 29 gezeigt. Nimmt man Bezug auf 29, so werden die kodierten Daten von jeder Kodiereinheit von der Disk gelesen. Es werden so viel wie möglich Daten gelesen und nach einer kurzen Verzögerung werden Koeffizienten dekodiert. Nachdem das Dekodieren vollendet ist, wird die inverse Wavelet-Transformation berechnet. Nachdem die Transformation vollendet ist, können die Pixel zu dem Druckgerät gesendet werden. Bemerkenswert ist, daß die Kreuzschraffur in 29 anzeigt, wenn verschiedene Aktionen für eine spezifische Kodiereinheit auftreten.The basic timing of the system during printing is in 29 shown. If you take reference 29 Thus, the encoded data from each encoding unit is read from the disc. As much data as possible is read and after a short delay coefficients are decoded. After the decoding is completed, the inverse wavelet transform is calculated. After the transformation is completed, the pixels can be sent to the printing device. It is noteworthy that the cross hatching in 29 indicates when various actions occur for a specific encoding unit.

Einbetten von Koeffizienten zur Speicherung auf einer DiskEmbed of coefficients for storage on a disk

10 zeigt die Organisation der kodierten Daten bei der vorliegenden Erfindung. Nimmt man Bezug auf 10, so werden die wichtigsten Daten 1003 in Koeffizientenreihenfolge kodiert (nicht eingebettet), und zwar unmittelbar, nachdem sie transformiert worden sind. Deshalb müssen diese Daten nicht gepuffert werden. Bei einer Ausführungsform wird der Umfang der wichtigsten Daten 1003 so begrenzt, daß er immer von der Disk gelesen werden kann. 10 shows the organization of the coded data in the present invention. If you take reference 10 so be the most important data 1003 encoded in coefficient order (not embedded) immediately after they have been transformed. Therefore, these data do not need to be buffered. In one embodiment, the scope of the most important data 1003 so limited that it can always be read from the disk.

Ein gewisser Umfang an weniger wichtigen Daten 1004 wird gepuffert, eingebettet und zu der Disk in der Wichtigkeitsordnung bzw. in der Reihenfolge der Wichtigkeit geschrieben. Die Datenmenge, die gepuffert, eingebettet und geschrieben werden kann, wird basierend auf der Übertragungszeit bestimmt. Das heißt, das System liest die Daten, bis die Übertragungszeit von der Disk erschöpft ist. Die Übertragungsrate der Disk bestimmt, wieviele Daten behalten werden. Diese Raten sind bekannt und von physikalischen Charakteristiken einer bestimmten Übertragung abhängig.A certain amount of less important data 1004 is buffered, embedded and written to the disk in the order of importance. The amount of data that can be buffered, embedded, and written is determined based on the transmission time. That is, the system reads the data until the transfer time from the disk is exhausted. The transfer rate of the disc determines how much data is retained. These rates are known and dependent on physical characteristics of a particular transmission.

Für schwer zu komprimierende Bilder können manche Daten während der Kodierzeit weggelassen werden. Die Daten werden als am wenigsten wichtige Daten 1005 gezeigt. In dem Fall, daß es keine Möglichkeit gibt, daß die am wenigstens wichtigen Daten unter der Voraussetzung der bestmöglichen Disk-Übertragungsrate gelesen werden können, gibt es keinen Grund, jene Daten auf der Disk zu speichern. Für viele und vielleicht für die meisten Bilder würden keine Daten weggelassen bzw. gelöscht werden.For images that are difficult to compress, some data may be omitted during the encoding time. The data is considered the least important data 1005 shown. In the case where there is no possibility that the least important data can be read on the assumption of the best possible disk transfer rate, there is no reason to store that data on the disk. For many and perhaps most images, no data would be deleted or deleted.

Das Ordnen von kodierten Daten und wie es bewerkstelligt wird, wird im folgenden genauer beschrieben.The Ordering of coded data and how it is accomplished is described in more detail below.

Im folgenden wird das Bandpuffer-Management während der Kompression und Dekompression diskutiert, und zwar gefolgt durch eine Beschreibung des Einbettungsschemas für die kodierten Daten. Hardwareimplementationen der Transformation, des Kontextmodells und des Parallelismus mit dem Kodierer/Dekodierer werden ebenfalls beschrieben.in the Following is the band buffer management during compression and decompression followed by a description of the embedding scheme for the coded data. Hardware implementations of the transformation, the Contextual model and parallelism with the encoder / decoder are also described.

Pixel- und Koeffizienten-SchnittstellenPixel and Coefficients interfaces

30 zeigt eine mögliche Ausführungsform, wie Pixeldaten organisiert werden. Nimmt man Bezug auf 30, so wird eine Seite (Bild) 3000 in Bänder 3001 bis 3004 aufgeteilt. Bei einer Ausführungsform kann die Seite 3000 eine Seitenbeschreibungssprache oder eine Anzeigenlisten-Beschreibung bzw. Display-List-Beschreibung einer Seite, die zur Erzeugung von Pixeln für die einzelnen Bänder verwendet wird, umfassen. Bei einer Ausführungsform wird jedes Band 3001 bis 3004 individuell gerastert, indem eine Anzeigenlisten-Technologie verwendet wird. Jedes Band 3001 bis 3004 wird weiter in Kodiereinheiten aufgeteilt (z.B. 3001A–D). 30 Figure 1 shows one possible embodiment of how pixel data is organized. If you take reference 30 , so one page (picture) 3000 in ribbons 3001 to 3004 divided up. In one embodiment, the page 3000 a page description language or display list description of a page used to generate pixels for each band. In one embodiment, each band 3001 to 3004 individually rasterized using ad-list technology. Every band 3001 to 3004 is further divided into coding units (eg 3001A -D).

Ein Vorteil bei der Verwendung mehrerer Kodiereinheiten pro Band ist, daß Abschnitte des Bandpuffers in Rotation bzw. rotierend als Arbeitsspeicher während der Dekom pression (ähnlich dem Pingpong-Puffern) verwendet werden können. Mit anderen Worten, ein Teil der Pixel kann dekomprimiert, in dem Bandpuffer gespeichert und zu dem Drucker gesendet werden, während ein zweiter Teil des Bandpuffers als Arbeitsspeicher verwendet werden kann, um Koeffizient zu speichern, während dekodiert wird, wobei ein dritter Teil des Puffers verwendet wird, um die Pixel zu speichern, die den Koeffizienten entsprechen.One Advantage of using multiple encoding units per band, that sections the tape buffer in rotation or rotating as memory during the Decompression (similar the ping-pong buffers). In other words, one Part of the pixels may be decompressed, stored in the tape buffer and sent to the printer while a second part of the Bandbuffers can be used as memory to coefficient to save while is decoded using a third part of the buffer, to store the pixels corresponding to the coefficients.

31 zeigt einen Bandpuffer 3101 der Seite 3100. Der Bandpuffer 3101 umfaßt Kodiereinheiten 3001A–D. Die Kodiereinheiten 3101A und 3101B wirken als Arbeitsspeicher für den Dekompressor, um Koeffizienten zu speichern. Die Kodiereinheit 3101C speichert Pixel, die zu dem Drucker (oder Kanal) ausgegeben werden sollen, während die Kodiereinheit 3101D als ein Arbeitsraum für den Dekompressor arbeitet, indem die nächsten Pixel gespeichert werden. 31 shows a band buffer 3101 the side 3100 , The tape buffer 3101 includes coding units 3001A -D. The coding units 3101a and 3101b act as a memory for the decompressor to store coefficients. The coding unit 3101C stores pixels to be output to the printer (or channel) while the encoding unit 3101D works as a work space for the decompressor by storing the next pixels.

Die Abschnitte des Bandpuffers 3101 können in Rotation verwendet werden, wenn die ganze Seite 3100 gedruckt wird. Zum Beispiel sind für die nächste Kodiereinheit die Pixel in der Kodiereinheit 3101D die Pixel, die zu dem Drucker ausgegeben werden sollen. Wenn diese auftritt, werden die Kodiereinheiten 3101B und 3101C als Arbeitsraum für den Dekompressor verwendet werden, um Koeffizienten zu speichern. Ebenso wird zu jener Zeit eine Kodiereinheit 3101A als Arbeitsspeicher für den Dekompressor verwendet werden, um die nächsten Pixel, die zu dem Drucker ausgegeben werden sollen, zu speichern.The sections of the tape buffer 3101 can be used in rotation when the whole page 3100 is printed. For example, for the next encoding unit, the pixels are in the encoding unit 3101D the pixels to be output to the printer. When this occurs, the encoding units become 3101b and 3101C used as a work space for the decompressor to store coefficients. Likewise, at that time, a coding unit 3101a used as memory for the decompressor to store the next pixels to be output to the printer.

Bei der vorliegenden Erfindung sind die Koeffizienten größer als die Pixel. Deshalb wird doppelt so viel Speicher zu dem Arbeitsraumspeicher zugeordnet. Bei einer alternativen Ausführungsform können die Bänder in mehr oder weniger Kodiereinheiten aufgeteilt werden. Zum Beispiel können bei einer Ausführungsform die Bänder in acht Kodiereinheiten jeweils aufgeteilt werden.at In the present invention, the coefficients are larger than the pixels. Therefore, twice as much memory becomes the workspace memory assigned. In an alternative embodiment, the Ribbons in more or less coding units are split. For example can in one embodiment the bands divided into eight coding units each.

SpeicherbandbreiteMemory Bandwidth

Zusammen managen die Pixeldaten-Schnittstelle und die Koeffizientendaten-Schnittstelle den Bandpufferspeicher effizient. Falls ein Schnellseitenmodus-DRAM, ein EDO-DRAM oder andere Speicher verwendet werden, die einen aufeinanderfolgenden Zugriff begünstigen, dann übertragen diese Schnittstellen Daten von aufeinanderfolgenden Adressen in ausreichend langen Bursts, um die potentielle Bandbreite des Speichers effizient zu nutzen. Manche Puffer können benötigt werden, um Burst-Zugriffe bzw. diskontinuierliche Zugriffe zu aufeinanderfolgenden Adressen zu unterstützen.Together manage the pixel data interface and the coefficient data interface the tape buffer efficiently. If a fast-page mode DRAM, an EDO DRAM or other memories are used, one after the other Favor access, then transfer these interfaces receive data from consecutive addresses in sufficiently long bursts to the potential bandwidth of the memory efficient to use. Some buffers may be needed to handle bursts or discontinuous accesses to successive addresses to support.

32 zeigt ein Zeitablaufdiagramm des Dekodierens, das Speicherzugrifferfordernisse für einen gleichzeitigen Speicherzugriff bzw. parallelen Speicherzugriff zeigt. Nimmt man Bezug auf 32, so ist die Bandbreite, die zum Dekodieren erforderlich ist, wie folgt. Man erinnere sich daran, daß bei einer Ausführungsform ein 2-MHz-Pixeltakt ein 8-MHz-Komponententakt und ein 32-MHz-Dekodertakt verwendet wurden und daß der Drucker 1 Byte/Komponententakt benötigt, die Transformation liest zwei Bytes pro Koeffizient und schreibt ein Byte pro Komponente. Falls die Transformation in der halben Kodiereinheitszeit durchgeführt wird, würde dies einen 6 Byte/Komponententakt erforderlich machen. Die Geschwindigkeit der Transformation ist durch die Speicherbandbreite beschränkt, nicht durch die Berechnungszeit. Falls eine Bandbreite eines 24 Byte/Komponententakt verfügbar ist, kann die Transformation innerhalb eines Achtels der Kodiereinheitszeit berechnet werden. Die Transformation kann eine zusätzliche Bandbreite benötigen, falls ein externer Speicher für Säume verwendet wird. Bei einer Ausführungsform braucht das Kodieren von Koeffizienten das Schreiben von zwei Bytes pro Komponententakt für den wichtigsten Teil der kodierten Daten. Ein Dekodieren erfordert ein Lesen und ein Schreiben eines Bytes pro Komponententakt für jede Bitebene des weniger wichtigen Teils der kodierten Daten. Bemerkenswert ist, daß dies bei manchen Ausführungsformen weniger sein kann. Bandbreiten von 4 Bytes pro Komponententakt und 24 Bytes pro Komponententakt würden jeweilig benötigt werden, falls beide Operationen die halbe Kodiereinheitszeit benötigen. Eine zusätzliche Bandbreite kann erforderlich sein, falls ein externer Speicher für eine Kontext-Sauminformation verwendet wurde. 32 FIG. 12 is a timing diagram of decoding showing memory access requirements for concurrent memory access. FIG. If you take reference 32 Thus, the bandwidth required for decoding is as follows. Recall that in one embodiment, a 2 MHz pixel clock, an 8 MHz component clock, and a 32 MHz decoder clock were used and that the printer requires 1 byte / component clock, the transform reads two bytes per coefficient and writes Byte per component. If the transformation is performed in half the encoding unit time, this would require a 6 byte / component clock. The speed of the transformation is limited by the memory bandwidth, not the computation time. If a bandwidth of a 24 byte / component clock is available, the transform can be calculated within one eighth of the encoder unit time. The transformation may require extra bandwidth if external memory is used for seams. In one embodiment, encoding coefficients requires writing of two bytes per component clock for the most important part of the encoded data. Decoding requires reading and writing one byte per component clock for each bitplane of the less important part of the encoded data. It should be noted that in some embodiments this may be less. Bandwidths of 4 bytes per component clock and 24 bytes per component clock would respectively be required if both operations require half the encoder unit time. Additional bandwidth may be required if external memory was used for context seam information.

Bei einer Ausführungsform beträgt die maximale Burst-Mode-Übertragungsrate vier Speicherzugriffe pro Komponententakt (ein Zugriff pro Kodierertakt). Deshalb ist bei einem 32-Bit-Datenbus die maximale Übertragungsrate etwas kleiner als 16 Bytes/Komponententakt. Mit einem 64-Bit-Datenbus ist die maximale Übertragungsrate etwas geringer als 32 Bytes/Komponententakt.at an embodiment is the maximum burst mode transmission rate four memory accesses per component clock (one access per encoder clock). Therefore, for a 32-bit data bus, the maximum transfer rate slightly smaller than 16 bytes / component clock. With a 64-bit data bus is the maximum transfer rate slightly less than 32 bytes / component clock.

Reduktion von LIC-Speicherbandbreiten-Erfordernissenreduction LIC memory bandwidth requirements

Jedes Bit eines jeden Koeffizienten in dem LIC benötigt ein Lesen und ein Schreiben des externen Speichers während des Dekodierens (ein Kodieren benötigt nur ein Lesen). Diese Speicherzugriffe machen die Mehrheit der erforderlichen Speicherbandbreite aus. Bei einer Ausführungsform speichert die vorliegende Erfindung, anstatt daß sie jeden LIC-Koeffizienten in 8 Bits speichert, die Koeffizienten, wobei weniger als 8 Bits, wenn möglich, verwendet werden, um die Bandbreiten-Erfordernisse zu reduzieren.each Bit of each coefficient in the LIC requires reading and writing of the external memory during of decoding (encoding only requires reading). These Memory accesses make up the majority of the required memory bandwidth out. In one embodiment stores the present invention instead of having each LIC coefficient in 8 bits stores the coefficients, with less than 8 bits, if possible, used to reduce the bandwidth requirements.

Tabelle 8 zeigt, wieviel Speicher benötigt wird, um die LIC-Koeffizienten für das Dekodieren einer jeden Bitebene zu speichern. Nimmt man Bezug auf Tabelle 8, wenn man den MIC abhandelt bzw. tut, wird ein Bit pro Koeffizient geschrieben, welches das Schwanz-ein-Bit ist. Was für die Bitebene 5 geschrieben wird, wird für die Bitebene 4 zurückgelesen: 2 bis 3 Bits, die das Schwanz-ein-Bit, was Bit 5 war, und ob Bit 5 1 war, dann ein Vorzeichenbit enthalten. Der Prozentsatz zeigt für jede Bitebene an, welcher Prozentsatz der Koeffizienten teilnimmt. Dies kann dadurch klarer gemacht werden, indem man auf die 13B schaut. Nimmt man Bezug auf die 13B, so hat die Bitebene 5 Koeffizienten von allen teilnehmenden Unterbändern, weil alle Koeffizienten von den DD1- bis zu den DS4- und SD4-Unterbändern Daten in der Bitebene 5 haben (wie durch eine Schattierung angedeutet ist). Die Bitebene 0 hat nur Koeffizienten von dem DD1-Unterband. Wie in Tabelle 8 gezeigt ist, haben beide Bitebenen 4 und 5 Koeffizienten von allen Unterbändern, so daß der Prozentsatz 100 ist, während die Bitebene 0 nur 25% der Koeffizienten hat (in dem DD1-Unterband). Wenn mehr Dekodieren auftritt, werden manche Bitebenen vollendet, bevor eine Bitebene 0 erreicht wird. Tabelle 8 – Erforderliche Bits, um LIC-Koeffizienten während des Dekodierens zu speichern

Figure 00920001

  • * Geschrieben während der Verarbeitung des wichtigsten Teils bzw. Batzens (MIC).
  • + Gelesen während inverser Transformation.
Table 8 shows how much memory is needed to store the LIC coefficients for decoding each bitplane. Referring to Table 8, when dealing with the MIC, one bit is written per coefficient, which is the tail-one-bit. What is written for the bitplane 5 is read back to the bitplane 4: 2 to 3 bits which was the tail-a-bit, which was bit 5 and if bit 5 was 1, then a sign bit. The percentage indicates for each bit level what percentage of the coefficients participate. This can be made clearer by looking at the 13B looks. If one refers to the 13B Thus, the bit plane has 5 coefficients from all participating subbands because all the coefficients from the DD1 to the DS4 and SD4 subbands have data in the bit plane 5 (as indicated by shading). The bitplane 0 has only coefficients from the DD1 subband. As shown in Table 8, both bit-planes 4 and 5 have coefficients of all sub-bands, so that the percentage is 100, while bit-plane 0 has only 25% of the coefficients (in the DD1 sub-band). As more decodes occur, some bit-planes are completed before a bit-level 0 is reached. Table 8 - Required bits to store LIC coefficients during decoding
Figure 00920001
  • * Written during processing of the most important part (MIC).
  • + Read during inverse transformation.

In Tabelle 8 ist während des Beginns des Dekodierens kein Dekodieren der Bitebenen aufgetreten; deshalb wird nur ein Bit (Bit/Koeffizient) eines jeden Koeffizienten gelesen, um zu bestimmen, ob es ein Kopf oder ein Schwanz ist. Wenn das Dekodieren fortschreitet, nimmt die Anzahl von Bits pro Koeffizient zu.In Table 8 is during the beginning of the decoding no decoding of the bit planes occurred; therefore only one bit (bit / coefficient) of each coefficient is read, to determine if it is a head or a tail. If the decoding As the rate increases, the number of bits per coefficient increases.

33 zeigt, wie ein zirkulares Adressieren verwendet werden kann, um das Schreiben von Daten handzuhaben, die größer sind als die gelesenen Daten. Dies tritt auf, weil die Ergebnisse der Verarbeitung mehr zu schreibende Bits erzeugen als ursprünglich gelesen wurden. Nimmt man Bezug auf 33, so beginnt der Prozeß, indem ein Bit pro Koeffizient geschrieben wird, was 1/8 des Speicherraums ist. Darauffolgend wird ein Bit pro Koeffizient gelesen, während 2 bis 3 Bits pro Koeffizient geschrieben werden. Dann werden die 2 bis 3 Bits pro Koeffizient gelesen, während 3 bis 4 Bits pro Koeffizient geschrieben werden. Dies schreitet fort, bis alle Daten abgehandelt sind. 33 shows how circular addressing can be used to handle the writing of data larger than the read data. This occurs because the results of processing generate more bits to write than originally read. If you take reference 33 Thus, the process begins by writing one bit per coefficient, which is 1/8 of the memory space. Subsequently, one bit per coefficient is read while writing 2 to 3 bits per coefficient. Then, the 2 to 3 bits per coefficient are read while writing 3 to 4 bits per coefficient. This continues until all the data has been dealt with.

Es gibt einige Optionen, um die Hardwareimplementationen zu vereinfachen. Anstatt daß immer die minimale Anzahl von Bits verwendet werden, würden nur z.B. 1, 2, 4, 6 oder 8 Bits verwendet werden, was dazu führen würde, daß ein Bit bei manchen Größen verschwendet werden würde. Ein Raum für das Vorzeichenbit könnte immer verwendet werden, selbst wenn das Vorzeichenbit nicht in dem LIC kodiert wurde oder noch nicht bekannt war.It gives some options to simplify the hardware implementations. Instead of always the minimum number of bits would be used would only be e.g. 1, 2, 4, 6 or 8 bits, which would cause one bit to be wasted on some sizes would become. A room for the sign bit could always be used even if the sign bit is not in the LIC was coded or not yet known.

Eine Option, die weiter die Speicherbandbreite verringern würde, wäre, das Schwanz-ein-Bit nicht zu speichern, wenn es nicht notwendig ist. Zum Beispiel, wenn man die Bitebene 0 schreibt, gibt es 6 Bits, die entweder Kopf- oder Schwanzbits sind. Falls irgendeines dieser Bits nicht 0 sind, muß Schwanz-ein ("tail-on") wahr sein, und es ist kein Bedarf, die Schwanz-ein-Werte zu speichern und das Vorzeichenbit kann als das siebte Bit gespeichert werden.A Option that would further reduce memory bandwidth would be that Cock-a-bit not to save, if it is not necessary. For example when If you write the bit-level 0, there are 6 bits that are either header or tail bits. If any of these bits are not 0, must be cock-one ("tail-on") to be true, and there is no need to store the tail-on values and the sign bit can be stored as the seventh bit.

Eine Speicherbandbreite für den wichtigsten Batzen (MIC) kann ebenso durch variable Längenspeicherverfahren reduziert werden. Indem einfach die minimale Anzahl von Bits verwendet werden, anstatt daß immer 8 Bits pro Koeffizient verwendet werden, würde zu Einsparungen führen. Das Speichern von 6-Bit-Vorhersehwerten (wie in 15) anstatt von 0 Koeffizientenbits, würde zu einer sogar noch effizienteren Verwendung des Speichers führen.Memory bandwidth for the most important chunk (MIC) can also be reduced by variable length memory techniques. Simply using the minimum number of bits rather than always using 8 bits per coefficient would result in savings. Storing 6-bit predictive values (as in 15 ) instead of 0 coefficient bits would result in even more efficient use of the memory.

Reversibler FarbraumReversible color space

Die vorliegende Erfindung stellt eine optionale Durchführung einer reversiblen Farbraumkonversion bereit, die eine Konvertierung zwischen zwei Farbräumen erlaubt, so daß sie komplett reversibel und in einer Ganzzahl-Arithmetik implementierbar ist. Das heißt, die Farbraumdaten, die konvertiert werden, können umgekehrt werden, um alle existierenden Daten zu erhalten, und zwar ungeachtet jeglichen Rundens oder eines jeglichen Abschneidens, das während des Vorwärts-Konversionsprozesses auftritt. Reversible Farbräume werden in der US-Patentanmeldung Nr. 08/436,661, mit dem Titel "Method and Apparatus for Reversible Color Conversion", eingereicht am 8. Mai 1995 und übertragen auf den gegenwärtigen Anmelder, beschrieben.The The present invention provides an optional implementation of a reversible color space conversion ready, which is a conversion between two color spaces allowed, so they completely reversible and implementable in an integer arithmetic is. This means, The color space data that is converted can be reversed to all existing data, regardless of any rounding or any clipping during the forward conversion process occurs. Be reversible color spaces in U.S. Patent Application No. 08 / 436,661, entitled "Method and Apparatus for Reversible Color Conversion ", filed May 8, 1995 and assigned on the present Applicant, described.

Die Farbraumkonversionen ermöglichen die Vorteile eines gegensätzlichen Farbraums, ohne die Fähigkeit zu opfern, verlustfreie Ergebnisse zu liefern. Für den verlustfreien Fall liefert ein entgegengesetzter Farbraum eine Dekorrelierung, die die Kampression verbessert. Für den verlustbehafteten Kode erlaubt ein entgegengesetzter Farbraum, daß Luminanzinformation weniger quantisiert wird als Chrominanzinformation, was eine höhere visuelle Qualität liefert. Wenn ein reversibler Farbraum mit der Transformation der vorliegenden Erfindung verwendet wird, ist eine korrekte Einbettung der Luminanz- und Chrominanzkoeffizienten eine Unterabtastung für die verlustbehaftete Kompression überlegen, während immer noch eine verlustfreie Kompression erlaubt wird.The Allow color space conversions the benefits of an opposite Color space, without the ability to sacrifice lossless results. For the lossless case supplies an opposite color space is a decorrelation, the campression improved. For the lossy code allows an opposite color space, that luminance information is less quantized as chrominance information, giving a higher visual quality supplies. If a reversible color space with the transformation of present invention is a correct embedding the luminance and chrominance coefficients sub-sample the lossy one Superior to compression, while still a lossless compression is allowed.

Falls ein reversibler Farbraum verwendet wird, ist es wünschenswert, die Koeffizienten so auszurichten, daß das höchstwertige Bit bzw. am meisten signifikante Bit der 8-Bit-Luminanzkomponenten und der 9-Bit-Chrominanzkomponenten dieselbe Ausrichtung haben. Für die verlustbehaftete Kompression verursacht diese Ausrichtung, daß Chrominanzdaten doppelt so häufig quantisiert werden wie Luminanzdaten, und erlaubt ebenso die Möglichkeit einer verlustfreien Kompression für bzw. hinsichtlich der Luminanz und eine verlustbehaftete (aber mit sehr hoher Qualität) Kompression für bzw. hinsichtlich der Chrominanz. Diese beiden Ergebnisse ziehen einen Vorteil aus den Eigenschaften des menschlichen visuellen Systems.If a reversible color space is used, it is desirable align the coefficients so that the most significant bit or most significant bit of 8-bit luminance components and the 9-bit chrominance components have the same orientation. For the lossy compression causes this alignment to cause chrominance data twice as common be quantized like luminance data, and also allows the possibility Lossless compression for luminance and a lossy (but very high quality) compression for or in terms of chrominance. These two results draw one Advantage from the properties of the human visual system.

Andere PixeloperationenOther pixel operations

Häufig wird ein Drucker Dokumente haben, die überwiegend oder vollständig nichtkontinuierlich sind. Zum Beispiel können Textbilder mit nur schwarz und weiß (nur der 0- und 255-Wert) üblich sein.Frequently becomes a printer have documents that are predominantly or completely non-continuous are. For example, you can Text images with only black and white (only the 0 and 255 value) will be common.

Bei einer Ausführungsform wird das Histogramm von Bändern vollendet. Zum Beispiel können reine 0,255-Schwarz/Weiß-Bilder (die K-Komponente) neu auf 0,1-Bilder abgebildet werden. Ähnliche Verdichtungen können hinsichtlich Spot-Farbbildern bzw. Punkt-Farbbildern durchgeführt werden. Bemerkenswert ist, daß, wenn eine Verdichtung verwendet wird, die Kompression verlustfrei sein muß. Jedoch wird die erzielte verlustfreie Kompression wesentlich verbessert, wenn die Verdichtung durchgeführt wird.In one embodiment, the histogram of bands is completed. For example, pure 0.255 black and white images (the K component) can be remapped to 0.1 images. Similar densifications can be made with respect to spot color images. It is noteworthy that when compression is used, the compression must be lossless. However, the scored lossless compression significantly improved when the compaction is performed.

Alternativ können, anstelle der Verwendung der überlappten Wavelet-Transformationen, die hierin beschrieben sind, binäre und Spot-Farbbilder durch ein verlustfreies, auf Bitebenen basierendes JBIG-ähnliches Kontextmodell gehandhabt werden.alternative can, instead of using the overlapped one Wavelet transforms described herein are binary and spot color images through a lossless bit-plane based JBIG-like context model be handled.

Bei einer anderen alternativen Ausführungsform kann das System so gestaltet werden, daß es einen binären Modus enthält. 35 zeigt eine Ausführungsform eines binären Kontextmodells, das der Kontextmodell-Schablone bzw. -Maske vom JBIG-Stil ähnelt. Nimmt man Bezug auf 35, so stellen Schieberegister 3501 bis 3503 mehrere Bits pro bzw. für den JBIG-Standard bereit. Die Schieberegister 3501 und 3502 empfangen zweite und erste obere Zeilen von dem Zeilenpuffer 3500. Die "oberen" Leitungen stellen die Bits bereit, die den Pixeln in den Nordwest-(NW)-, Nord-(N)- und Nordost-(NE)-Positionen der Schablone entsprechen, wie in 37 gezeigt ist. Die Ausgaben der Schieberegister 3501 und 3502 werden direkt zu dem Kontextmodell 3505 geliefert. Die Ausgaben des Schieberegisters 3503 werden zu einem optionalen Multiplexer 3504 geliefert, der die adaptive Schablone des JBIG-Standards implementieren kann. Das Kontextmodell 3505 ist angeschlossen an die Wahrscheinlichkeitsschätzmaschine 3506, die wiederum an den Bitgenerator 3507 angeschlossen ist. Das Kontextmodell 3505, die Wahrscheinlichkeitsschätzmaschine 3506 und der Bitgenerator 3507 arbeiten zusammen, wie es in der Fachwelt gut bekannt ist.In another alternative embodiment, the system may be designed to include a binary mode. 35 Figure 12 shows an embodiment of a binary context model that is similar to the JBIG style context model template. If you take reference 35 , so put shift registers 3501 to 3503 several bits per or for the JBIG standard. The shift registers 3501 and 3502 receive second and first upper lines from the line buffer 3500 , The "upper" lines provide the bits corresponding to the pixels in the Northwest (NW), North (N), and Northeast (NE) positions of the template, as in FIG 37 is shown. The outputs of the shift registers 3501 and 3502 become the context model directly 3505 delivered. The outputs of the shift register 3503 become an optional multiplexer 3504 which can implement the adaptive template of the JBIG standard. The context model 3505 is connected to the probability estimator 3506 , in turn, to the bit generator 3507 connected. The context model 3505 , the probability estimator 3506 and the bit generator 3507 work together as is well known in the art.

Die Ausgabe des Multiplexers 3504 in Verbindung mit den Ausgaben des Schieberegisters 3501 und 3502 und eine Rückkopplung von dem Bitgenerator bilden die Kontextbinadresse, die zum Adressieren des Kontextspeichers verwendet wird. Bei einer Ausführungsform beinhaltet der Kontextspeicher 3505 1024 Kontexte mit 6 Bits, um jeden Wahrscheinlichkeitszustand zu beschreiben. Dies erfordert einen Kontextspeicher von 1024 mal 6 Bits.The output of the multiplexer 3504 in conjunction with the outputs of the shift register 3501 and 3502 and feedback from the bit generator form the context bin address used to address the context memory. In one embodiment, the context memory includes 3505 1024 6-bit contexts to describe each probability state. This requires a context memory of 1024 by 6 bits.

Da der Bitgenerator ein decodiertes Bit von der aktuellen Zeile als Teil der Kontextadresse bereitstellt, gibt es eine große "Bit-zu-Kontext"-Verzögerung einschließlich der Zugriffszeit für den Kontextspeicher.There the bit generator takes a decoded bit from the current line as Providing part of the context address, there is a large "bit-to-context" delay including the Access time for the context memory.

36 zeigt eine alternative Ausführungsform, die das dekodierte Bit von der aktuellen Zeile verwendet, um auf die Wahrscheinlichkeitsschätzmaschine in Verbindung mit einem selben Adressenblock 3601 zuzugreifen, der die Ausgaben des Schieberegisters 3501 und 3502 und die Ausgabe des Multiplexers 3504 empfängt. Der PEM 3506 empfängt das vorhergehende Bit und verwendet es, um das korrekte aus dem verwendeten Kontextpaar auszuwählen. Der ausgewählte Kontext wird aktualisiert und beide Kontexte werden zurück in den Speicher geschrieben. Derselbe Adressenblock 3601 detektiert Adressen, die bereits geschrieben worden sind, so daß die Daten bereits in der Wahrscheinlichkeitsschätzmaschine sind. Derselbe Adressenblock 3801 sendet ebenso das Signal, um die Daten zu verwenden, die bereits in der PEM sind (bei denen es sich um aktualisierte Daten handeln kann), und zwar anstatt der alten Information im Speicher. 36 Figure 4 shows an alternative embodiment that uses the decoded bit from the current line to access the probability estimator in conjunction with a same address block 3601 access the outputs of the shift register 3501 and 3502 and the output of the multiplexer 3504 receives. The PEM 3506 receives the previous bit and uses it to select the correct one from the context pair used. The selected context is updated and both contexts are written back to memory. The same address block 3601 detects addresses that have already been written so that the data is already in the probability estimator. The same address block 3801 also sends the signal to use the data already in the PEM (which may be updated data) instead of the old information in memory.

Bei einer Ausführungsform beinhaltet der Decoder 1024 Kontextbins mit 6 Bits, um jeden Wahrscheinlichkeitszustand zu beschreiben. Dies macht eine Kontextspeicher mit 512 x 12 Bits erforderlich. Die Ausgaben des Schieberegisters 3501 und 3502 zusammen mit der Ausgabe des Multiplexers 3504 liefern eine Teil-Kontextbin-Adresse, bei der nur die Verwendung des vorhergehenden Bits fehlt. Dies führt zu einer Auswahl eines Kontextbinpaares aus dem Kontextspeicher 3505. Mehr als ein Bit eines Kontextbins kann von dem Teilkontext ausgeschlossen werden. Jede Speicherstelle enthält 2n Wahrscheinlichkeitszustände, wobei n die Anzahl der ausgeschlossenen Bits ist.In one embodiment, the decoder includes 1024 Context bins with 6 bits to describe each probability state. This requires a 512x12 bit context memory. The outputs of the shift register 3501 and 3502 along with the output of the multiplexer 3504 provide a partial context bin address which only misses the use of the previous bit. This results in a selection of a context bin pair from the context store 3505 , More than one bit of a context bin can be excluded from the subcontext. Each memory location contains 2 n probability states, where n is the number of excluded bits.

Bemerkenswert ist, daß die "Bit-zu-Kontext"-Verzögerung reduziert ist. Der Kontextspeicherzugriff kann auftreten, bevor das vorhergehende Bit dekodiert wird. Die Verarbeitung des PEM-Zustands für beide Zustände in einem Paar kann parallel beginnen, bevor das vorhergehende Bit dekodiert ist. Ein Hochgeschwindigkeitsbetrieb kann erreicht werden.Remarkable is that the "bit-to-context" delay reduces is. The context memory access can occur before the previous one Bit is decoded. The processing of the PEM state for both conditions in a pair can start in parallel before the previous bit is decoded. High speed operation can be achieved.

KodiererratensteuerungKodiererratensteuerung

Zusätzlich zu der Fähigkeit, die Daten zu quantisieren, erfordert das Durchführen einer Ratensteuerung in dem Codierer ebenso das Messen der Rate, so daß Entscheidungen über die Quantisierung getroffen werden können. Falls die Rate anzeigt, daß die Kompression nicht gut ist (d.h. nicht bei einem gewünschten Niveau ist, kann die Quantisierung erhöht werden. Auf der anderen Seite-, falls die Rate anzeigt, daß die Kompression zu hoch ist, kann die Quantisierung verringert werden. Ratensteuer-Entscheidungen müssen identisch in dem Kodierer und dem Dekodierer gemacht werden.In addition to the ability to to quantize the data requires performing a rate control in the coder also measuring the rate so that decisions about the Quantization can be made. If the rate indicates that the Compression is not good (i.e. not at a desired level is, the quantization can be increased become. On the other hand, if the rate indicates that the compression is too high, the quantization can be reduced. Rate control decisions must be identical in the encoder and the decoder.

Ein Verfahren zur Gewährleistung, daß der Kodierer und der Dekodierer dieselben Entscheidungen machen, ist es, eine Signalisierung zu verwenden. Der Kodierer mißt die Rate bei vorbestimmten Intervallen und speichert die Quantisierung Q in einem Speicher für die zukünftige Verwendung in dem nächsten Intervall. Der Dekodierer ruft einfach erneut die Quantisierung von dem Speicher für jedes Intervall auf. Dies würde einen Extra-Speicher erfordern. Zum Beispiel wäre ein On-Chip-SRAM bzw. ein SRAM, der sich auf einem Chip befindet, mit 256 Stellen von 2 Bits (zum Anzeigen einer Änderung im q um +2, +1, 0, –1 oder zum Speichern von Q als 1, 2, 3, 4) ausreichend, um die Quantisierung Q alle 16 Zeilen für ein 4096-Zeilenbild zu ändern.One Procedure for ensuring that the Encoder and the decoder make the same decisions is it to use a signaling. The encoder measures the rate at predetermined intervals and stores the quantization Q in a store for the future Use in the next Interval. The decoder simply calls the quantization again from the memory for every interval. This would be one Require extra memory. For example, an on-chip SRAM would be SRAM, which is on a chip, with 256 bits of 2 bits (to display a change in q by +2, +1, 0, -1 or for storing Q as 1, 2, 3, 4) sufficient to quantize Q every 16 lines for to change a 4096-line image.

Es gibt viele Optionen für die Ratenmessung. 34 zeigt ein Kodierer- und Dekodiererpaar. Nimmt man Bezug auf 34, so ist ein Kodierer-/Dekodiererpaar gezeigt, das Kontextmodelle (CM), Wahrscheinlichkeitsschätzmodelle/-maschinen (PEM) und Bitgeneratoren (BG) zusammen mit einer Lauf-Zähl-Neuordungseinheit ("run count reorder unit"), eine Neuordnungseinheit für verschachtelte Wörter ("interleaved word reorder unit") und eine Schiebeeinrichtung enthält. All das ist in der Fachwelt gut bekannt. Hinsichtlich der Beschreibung wird auf die US-Patente Nrn. 5,381,145 und 5,583,500 des vorliegenden Anmelders verwiesen, deren Inhalt hiermit durch Bezugnahme aufgenommen ist.There are many options for rate measurement. 34 shows a coder and decoder pair. If you take reference 34 Thus, there is shown an encoder / decoder pair comprising context models (CM), probability estimation models (PEM) and bit generators (BG) together with a run count reorder unit, a nested word reordering unit ("interleaved word reorder unit") and a sliding device contains. All of this is well known in the art. For the description, reference is made to U.S. Patent Nos. 5,381,145 and 5,583,500 to the present assignee, the contents of which are hereby incorporated by reference.

Die Ratenmessung muß explizit sein, falls der Dekoder sie nicht am selben Platz bzw. bei derselben Stelle messen kann. Zum Beispiel wird die Ratenmessung dem Dekoder als Teil des komprimierten Kodestroms bereitgestellt.The Rate measurement must be explicit if the decoder is not in the same place or at the same place can measure. For example, the rate measurement is the decoder as Part of the compressed code stream provided.

Eine andere Option für eine Ratenhandhabung, die als der kleinere Kreis gezeigt ist (Position 2 in 34), ist es, den Start der verschachtelten Wörter in dem Kodierer zu zählen. Bei einer anderen Ausführungsform wird dies nach der Biterzeugungsstufe durchgeführt (Position 4 in 34). Weil der Kodierer und der Dekodierer ein Kodewort zur selben Zeit starten, kann ein implizites Signalisieren der Rate verwendet werden. Das Zählen kann mit einer Zählhardware durchgeführt werden, die ein Register und einen Addierer umfaßt, der die Kodewortlängen addiert und die mittlere Kodewortlänge bestimmt. Eine Hardware, um das Zählen durchzuführen und eine mittlere Anzahl von Bits zu bestimmen, ist in der Fachwelt gut bekannt und wird in 34 als Block 3401 gezeigt. Es ist offensichtlich, daß dieser Block verwendet werden kann, um ähnliche Messungen bei anderen Stellen in dem System durch zuführen (z.B. Positionen 1, 2, 3, 4 auf sowohl dem Kodierer als auch Dekodierer).Another option for rate handling, shown as the smaller circle (position 2 in 34 ) is to count the start of the interlaced words in the encoder. In another embodiment, this is done after the biting stage (position 4 in FIG 34 ). Because the encoder and decoder start a codeword at the same time, implicit rate signaling can be used. The counting may be performed with a counting hardware comprising a register and an adder which adds the code word lengths and determines the average code word length. Hardware for performing the counting and determining an average number of bits is well known in the art and is disclosed in US Pat 34 as a block 3401 shown. It is obvious that this block can be used to perform similar measurements at other locations in the system (eg, positions 1, 2, 3, 4 on both the encoder and decoder).

Andere Optionen wären das Zählen der Größe vollendeter Kodewörter nach dem Bitgenerator und vor der Neuordnungseinheit für verschachtelte Wörter (Position 3 in 34), oder die Bestimmung der aktuellen Datenmenge, die auf die Disk geschrieben ist (Position 1 in 34).Other options would be to count the size of completed codewords after the bit generator and before the nested word reordering unit (position 3 in FIG 34 ), or determining the current amount of data written to the disc (position 1 in 34 ).

Die Ratenmessung kann implizit sein: sowohl der Kodierer als auch der Dekodierer führen dieselbe Ratenbestimmungsberechnung durch. Zum Beispiel könnten der Kodierer und der Dekodierer die mittlere Größe eines Kodewortes akkumulieren, jedesmal wenn ein neues Kodewort begonnen wird. Dies wird durch die Position in 34 dargestellt. (Die aktuelle Größe kann nicht verwendet werden, da der Kodierer nicht die Größe bis zu dem Ende des Kodewortes weiß). Falls die R-Kodes, die in dem Kern verwendet werden, hinsichtlich ihrer Größe von R2(0) bis R2(7) variieren, variiert die mittlere Kodewortgröße von 1 bis 4,5 Bits. Falls die Wahrscheinlichkeitsschätzung gut arbeitet, sollte die Verwendung des mittleren sehr genau sein. In anderen Fällen sind die Differenzen zwischen der minimalen und der maximalen Kodewortlänge gegenüber dem mittleren typischerweise nicht so groß, so daß die Schätzung immer noch nützlich sein sollte. Die mittlere Größe eines Rz(k)-Kodewortes beträgt (k/2) + 1 Bits.The rate measurement may be implicit: both the encoder and the decoder perform the same rate determination calculation. For example, the encoder and decoder could accumulate the average size of a codeword each time a new codeword is started. This is determined by the position in 34 shown. (The current size can not be used because the encoder does not know the size to the end of the codeword). If the R codes used in the core vary in size from R2 (0) to R2 (7), the average codeword size varies from 1 to 4.5 bits. If the probability estimate works well, the use of the middle should be very accurate. In other cases, the differences between the minimum and maximum codeword length are typically not as large as the mean, so the estimate should still be useful. The average size of an Rz (k) codeword is (k / 2) + 1 bits.

Es kann das Ziel sein, daß in fast allen Fällen die wichtigsten Daten gut komprimiert werden und keine Quantisierung (Q = 1) erforderlich sein wird. Nur "pathologische" Bilder werden eine Quantisierung (Q > 1) benötigen. Das Einschließen des Quantisierungsmerkmals kann jedoch garantieren, daß das System nicht bei pathologischen Bildern zusammenbrechen wird.It the goal may be that in almost all cases the most important data are well compressed and no quantization (Q = 1) will be required. Only "pathological" images will require quantization (Q> 1). The Lock in However, the quantization feature can guarantee that the system will not collapse in pathological images.

Ein anderer Vorteil der Kodiererratensteuerung ist, daß das Kodieren weniger wichtiger Daten gestoppt werden kann, wenn die maximale Bandbreite überschritten wird. Dies erhöht die Geschwindigkeit des Kodierens und vermindert die Gesamtzeit der ausgegebenen Daten (z.B. die gesamte Druckzeit wird vermindert).One Another advantage of encoder rate control is that coding less important data can be stopped if the maximum Bandwidth exceeded becomes. This increases the speed of coding and reduces the total time the output data (e.g., the total printing time is decreased).

Das beständige Verfolgen der Wirkungen von Quantisierungsänderungen (der Wert von Q) ist wichtig. Zum Beispiel muß die Definition des größten Koeffizienten in einer Gruppe von Koeffizienten mit den Quantisierungsänderungen konsistent sein. Ebenso muß die Rekonstruktion von quantisierten Koeffizienten (wenn Bitebenen weggelassen werden) die Anzahl der weggelassenen Bitebenen zum Erzielen der besten Ergebnisse berücksichtigen.Continuously tracking the effects of quantization changes (the value of Q) is important. For example, the definition of the largest coefficient in a group of coefficients must be consistent with the quantization changes. Similarly, the reconstruction of quantized coefficients (if bitplanes are omitted) must reduce the number of bitplanes omitted to achieve the best result take into account.

Hochgeschwindigkeitsparallelkodieren und KontextmodellHigh-speed parallel coding and context model

Der Entropiekodierabschnitt der vorliegenden Erfindung umfaßt zwei Teile. Zum ersten stellen Hochgeschwindigkeitskodierkerne, die parallel arbeiten, eine Wahrscheinlichkeitsschätzung und eine Biterzeugung bereit. Zweitens stellt ein Kontextmodell die Kontexte bereit, die zum Kodieren verwendet werden.Of the Entropy coding section of the present invention comprises two Parts. First, make high-speed encoding cores in parallel work, a probability estimate and a biter generation ready. Second, a contextual model provides the contexts for coding be used.

Die Anzahl der Kerne, die zum Erzielen der gewünschten Geschwindigkeit benötigt werden, ist anwendungsabhängig.The Number of cores needed to achieve the desired speed is application-dependent.

Der andere Teil des Entropiekodiersystems ist das Kontextmodell für die Koeffizienten der vorliegenden Erfindung. Es gibt eine große Anzahl von Kompromissen, die bei der Implementierung des Kontextmodells möglich sind. Bei einer Ausführungsform liefert die vorliegende Erfindung ein Kontextmodell mit geringem Hardwareaufwand, das eine Parallelität bereitstellt, um die Verwendung der Hochgeschwindigkeitsparallelkodierer der vorliegenden Erfindung zu unterstützen. Ausführungsformen des Kontextmodells sind oben beschrieben.Of the another part of the entropy coding system is the context model for the coefficients of the present invention. There are a lot of compromises that are possible when implementing the context model. In one embodiment the present invention provides a context model with low hardware overhead, that a parallelism provides for the use of high speed parallel encoders to assist the present invention. Embodiments of the context model are described above.

Obwohl nur das Kontextmodell für Wavelet-Koeffizienten hierin beschrieben ist, ist die vorliegende Erfindung nicht auf Kontextmodelle beschränkt, die nur Wavelet-Koeffi zienten unterstützen. Zum Beispiel kann sie, falls ein Bitebenen-Kodiermodus für binäre oder Spot-Farbbilder gewünscht ist, ein zusätzliches Kontextmodell verwenden, wie es z.B. in der US-Patentanmeldung Nr. 08/642,518, eingereicht am 3. Mai 1996, mit dem Titel "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device-Dependent Parser", und in der US-Patentanmeldung Nr. 08/643,268, eingereicht am 3. Mai 1996, mit dem Titel "Compression/Decompression Using Reversible Embedded Wavelets" beschrieben ist.Even though only the context model for Wavelet coefficient is described herein is the present The invention is not limited to context models that only use wavelet coefficients support. For example, if a bit-plane encoding mode is binary or Spot color images desired is an additional one Use contextual model, as e.g. in US patent application no. 08 / 642,518, filed May 3, 1996, entitled "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device Dependent Parser ", and in US Patent Application No. 08 / 643,268, filed May 3, 1996, entitled "Compression / Decompression Using Reversible Embedded Wavelets "is described.

Parallelismusparallelism

Bei einer Ausführungsform werden vier Hochgeschwindigkeitkodierkerne verwendet, um 8 Bits pro Koeffizient zu kodieren/dekodieren, wo Koeffizienten von 8 zu 12 Bits reichen (13, falls ein reversibler Farbraum verwendet wird). Bei einer Ausführungsform wird ein Kern zu einer jeden Komponente der vier Komponenten zugewiesen, wobei der Parallelismus und der Datenfluß vereinfacht werden. Jeder Koeffizient kann bis zu 16 Zyklen zum Kodieren/Dekodieren von Bits verwenden (einschließlich Entscheidungen zum Vorhersehen usw.).at an embodiment Four high-speed encoding cores are used, 8 bits to code / decode coefficients where coefficients of 8 to 12 bits suffice (13, if a reversible color space is used). In one embodiment a core is assigned to each component of the four components whereby the parallelism and the data flow are simplified. Everyone Coefficient can take up to 16 cycles to encode / decode bits use (including Foresight decisions, etc.).

Die vorliegende Erfindung hält die Kerne für jede Komponente in Synchronisation, selbst wenn gewisse Kerne unproduktiv sind, und zwar wegen ihres erfolgreichen Vorhersehens, oder ein anderer Kern handhabt ein Vorzeichenbit nach einem ersten "Ein"-Bit. Die Gesamtzeit zum Laufen des Kontextmodells wird in Abhängigkeit von den Daten, insbesondere der Wirksamkeit des Vorhersehens und in einem geringeren Umfang von den Stelle der ersten "Ein"-Bits variieren.The present invention the cores for every component in synchronization, even if certain cores are unproductive are because of their successful foresight, or one another core handles a sign bit after a first "on" bit. The total time to run the contextual model will depend on the data, in particular the effectiveness of the foresight and to a lesser extent vary from the location of the first "on" bits.

Die Erfindung läßt sich insbesondere wie folgt zusammenfassen:
Ein Verfahren und ein Apparat zum Durchführen eine Kompression und/oder einer Dekompression wird beschrieben. Bei einer Ausführungsform umfaßt die vorliegende Erfindung ein System mit einem Puffer, einer Wavelet-Transformationseinheit und einem Kodierer. Die Wavelet-Transformationseinheit hat einen Eingang, der mit dem Puffer verbunden ist, um eine Wavelet-Transformation mit den Pixeln durchzuführen, die darin gespeichert sind und um Koeffizienten am Ausgang zu erzeugen. Der Kodierer ist an die Wavelet-Transformationseinheit angeschlossen, um die transformierten Pixel zu kodieren, die von dem Puffer empfangen werden.
The invention can be summarized in particular as follows:
A method and apparatus for performing compression and / or decompression is described. In one embodiment, the present invention includes a system including a buffer, a wavelet transform unit, and an encoder. The wavelet transform unit has an input connected to the buffer to perform a wavelet transform with the pixels stored therein and to produce coefficients at the output. The encoder is connected to the wavelet transform unit to encode the transformed pixels received from the buffer.

Figurenbeschreibung:Brief Description:

1414

14011401
Kodiere MICEncode MIC
14021402
Kodiere Position der ersten LIC-Bitebene mit DatenEncode Position of the first LIC bit plane with data
14031403
Setze aktuelle LIC-Bitebene zu erster LIC-Bitebene mit DatenSet current LIC bit level to first LIC bit level with data
14041404
Alle LIC-Bitebenen mit Daten kodiertAll LIC bit planes encoded with data
14051405
Kodiere eine LIC-BitebeneEncode a LIC bit plane
14061406
Setze aktuelle LIC-Bitebene zu nächster LIC-BitebeneSet current LIC bit level to next LIC-bit level

1616

16011601
Setze aktuellen Baum zu erstem BaumSet current tree to first tree
16021602
Kodiere SS-KoeffizientenEncode SS coefficients
16031603
Führe MIC-(oder Baum-)Vorhersehen durch (5)Perform MIC (or tree) foresight ( 5 )
16041604
Ist die MIC des gesamten Baumes 0?is the MIC of the whole tree 0?
16051605
Setze aktuellen Koeffizienten zu ersten Nicht-SS-Koeffizienten im BaumSet current coefficients to first non-SS coefficients in the tree
16061606
Setze aktuelle Bitebene zu erster Bitebene mit DatenSet Current bit level to first bit level with data
16071607
Kodiere Bit eines aktuellen Koeffizienten in aktueller BitebeneEncode Bit of a current coefficient in the current bit plane
16081608
Alle Bitebenen kodiert?All Bite levels coded?
16091609
Setze aktuelle Bitebene zu nächster BitebeneSet current bit level to next bit level
16101610
Ist aktuelle Koeffizient 0?is current coefficient 0?
16111611
Kodiere VorzeichenbitEncode sign
16121612
Setze aktuellen Koeffizienten auf nächsten Koeffizienten im BaumSet current coefficients on next Coefficients in the tree
16131613
Alle Koeffizienten im Baum kodiert?All Coded coefficients in the tree?
16141614
Alle Bäume kodiert?All Trees coded?

1919

19011901
Setze aktuellen Baum zu erstem BaumSet current tree to first tree
19021902
Setze aktuellen Koeffizienten zu erstem Nicht-SS-Koeffizienten im BaumSet current coefficients to first non-SS coefficients in the tree
19031903
Am Start eines Vorherseh-Intervalls?At the Start a foresight interval?
19041904
Vorhersehenforesee
19051905
Vorhersehen aktiviert?foresee enabled?
19061906
Kodiere Kopf- oder SchwanzbitEncode Head or tail bit
19071907
Erstes Nicht-Null-Bit?first Non-zero bit?
19081908
Kodiere VorzeichenbitEncode sign
19091909
Alle Koeffizienten im Baum kodiert?All Coded coefficients in the tree?
19101910
Setze aktuellen Koeffizienten zum nächsten Koeffizienten im Baum nach VorSet current coefficients to the next Coefficients in the tree after vor
herseh-Intervallherseh interval
19111911
Alle Koeffizienten im Baum kodiert?All Coded coefficients in the tree?
19121912
Setze aktuellen Koeffizienten zum nächsten Koeffizienten im BaumSet current coefficients to the next Coefficients in the tree
19131913
Alle Bäume kodiert?All Trees coded?

Claims (87)

System mit: – einem Puffer; – einer Wavelet-Transformationseinheit mit einem Eingang, der an den Puffer angeschlossen ist, um eine reversible Wavelet-Transformation mit Pixeln durchzuführen, die in dem Puffer gespeichert sind, und um Koeffizienten bei einem Ausgang zu erzeugen; – einem Kodierer, der mit der Wavelet-Transformationseinheit verbunden ist, um Bitebenen von wavelet-transformierten Pixeln von der Wavelet-Transformationseinheit und in dem Puffer gespeicherte Bitebenen von wavelet-transformierten Pixeln zu kodieren.System with: A buffer; - one Wavelet transformation unit with an input connected to the buffer is connected to a reversible wavelet transform with Perform pixels, which are stored in the buffer and coefficients at a To produce output; - one Encoder connected to the wavelet transformation unit, to bit planes of wavelet-transformed pixels from the wavelet transformation unit and bit planes stored in the buffer of wavelet-transformed ones Encode pixels. System nach Anspruch 1, bei welchem der Puffer einen Bandpuffer umfasst, um wenigstens ein Band von Pixeln zu speichern.The system of claim 1, wherein the buffer has a Band buffer to store at least one band of pixels. System nach Anspruch 1, bei welchem der Kodierer folgendes umfasst: – ein Kontextmodell; und – einen parallelen Entropiekodierer; – bei welchem die wichtigsten Daten nicht eingebettet sind und in eine Koeffizientenordnung bzw. -reihenfolge ohne Puffern kodiert sind bzw. werden, ein Teil weniger wichtiger Daten gepuffert, in der Reihenfolge der Wichtigkeit eingebettet und dann in einen Speicher geschrieben sind.The system of claim 1, wherein the encoder comprising: - one Context model; and - one parallel entropy coders; - in which the most important Data are not embedded and in a coefficient order or sequence are coded without buffers, a part less important data buffered, embedded in order of importance and then written to a memory. System nach Anspruch 1, bei welchem der Kodierer einen Hochgeschwindigkeitsparallelkodierer umfasst.The system of claim 1, wherein the encoder a high speed parallel encoder. System nach Anspruch 1, bei welchem der Kodierer einen QM-Kodierer umfasst.The system of claim 1, wherein the encoder a QM encoder. System nach Anspruch 1, wobei der Kodierer einen Kodierer mit einem Automaten mit finiten Zuständen bzw. einen FSM-Kodierer umfasst.The system of claim 1, wherein the encoder comprises a Encoder with a finite-state machine or an FSM encoder includes. System nach Anspruch 1, das weiter eine Schnittstelle für kodierte Daten umfasst.The system of claim 1, further comprising an interface for coded Includes data. Verfahren zum Komprimieren von Information, das die folgenden Schritte umfasst: – eine Wavelet-Transformation von Pixelinformation, die von einem Puffer empfangen wird, wird durchgeführt, wobei wenigstens eine Bitebene von Koeffizienten reversible wavelet-transformierte Pixel darstellt; – die Pixel in dem Puffer werden durch kodierte Bitebenen ersetzt; und – Bitebenen, die in dem Puffer gespeichert sind, werden kodiert.Method for compressing information that the following steps include: - a wavelet transformation of pixel information received from a buffer becomes performed, where at least one bit-plane of coefficients reversible wavelet-transformed Representing pixels; - the Pixels in the buffer are replaced by coded bit-planes; and - bitplanes, which are stored in the buffer are encoded. Dekompressionssystem, das folgendes umfasst: – einen Bandpuffer, der umfasst: – eine Anzahl von Kodiereinheiten für Koeffizienten, die eine inverse Transformationsoperation durchmachen sollen; – wenigstens eine Kodiereinheit zum Speichern von Pixeln, die an eine Ausgabevorrichtung auszugeben sind; – wenigstens eine Kodiereinheit für Pixel, die zuvor invertierten transformierten Koeffizienten entsprechen, die zu der Ausgabevorrichtung zu senden sind; – einen Dekompressor, der mit dem Bandpuffer verbunden ist, wobei der Dekompressor komprimierte Daten zu transformierten Koeffizienten dekomprimiert, die transformierten Koeffizienten zu dem Bandpuffer schreibt, transformierte Koeffizienten von dem Bandpuffer zurückliest, eine inverse Transformation mit den transformierten Koeffizienten, die von dem Bandpuffer zurückgelesen wurden, durchführt, um Pixelwerte zu erzeugen, und Pixelwerte zu dem Bandpuffer schreibt.Decompression system comprising: - one Band buffer comprising: - one Number of coding units for Coefficients to undergo an inverse transformation operation; - at least a coding unit for storing pixels that are sent to an output device are to be issued; - at least a coding unit for Pixels that correspond to previously inverted transformed coefficients, which are to be sent to the output device; - one Decompressor connected to the band buffer, the decompressor decompressed compressed data into transformed coefficients, writes the transformed coefficients to the band buffer Retrieving coefficients from the band buffer, an inverse transformation with the transformed coefficients read back from the band buffer were, performed, to generate pixel values and write pixel values to the band buffer. Dekompressionssystem nach Anspruch 9, bei welchem der Dekompressor komprimierte Daten von einem Speicherbereich liest.A decompression system according to claim 9, wherein the decompressor reads compressed data from a storage area. Dekompressionssystem nach Anspruch 10, bei welchem der Speicherbereich eine Festplatte umfasst.A decompression system according to claim 10, wherein the storage area comprises a hard disk. Dekompressionssystem nach Anspruch 9, das weiter eine Druckmaschine umfasst, die an den Bandpuffer angeschlossen ist.The decompression system of claim 9, further includes a printing machine connected to the tape buffer is. Verfahren zum Kodieren eines Satzes von transformierten Koeffizienten bei einer Bildkompression, das die folgenden Schritte umfasst: – die Datenbits eines transformierten Koeffizienten werden in die wichtigsten Daten und weniger wichtigen Daten aufgeteilt; – die wichtigsten Daten werden zu einem Kontextmodell zum Kodieren in Koeffizientenordnung bzw. Koeffizientenreihenfolge gesendet; – die weniger wichtigen Daten und eine Anzahl von Signalisierbits werden in einem Speicher gespeichert; und – nach dem Kodieren der wichtigsten Daten aller Koeffizienten in dem Satz von Koeffizienten werden die weniger wichtigen Daten kodiert und gemäß einer Ordnung bzw. Reihenfolge eingebettet, die zum Teil auf der Anzahl bzw. Vielzahl der Signalisierbits basiert.Method for coding a set of transformed Coefficients in image compression, the following steps includes: - the Data bits of a transformed coefficient become the most important ones Split data and less important data; - the most important Data becomes a context model for coding in coefficient order or coefficient order sent; - the less important data and a number of signaling bits are stored in a memory; and - to coding the most important data of all the coefficients in the sentence of coefficients the less important data are encoded and according to a Order or order embedded, in part on the number or variety of Signalisierbits based. Verfahren nach Anspruch 13, bei welchem die Signalisierbits ein erstes Bit und ein zweites Bit umfassen.The method of claim 13, wherein the signaling bits a first bit and a second bit. Verfahren nach Anspruch 13, bei welchem ein erstes der Signalisierbits anzeigt, ob das erste Bit der weniger wichtigen Daten des Koeffizienten ein Kopf- oder ein Schwanzbit ist, und ein zweites der Signalisierbits das Vorzeichenbit anzeigt, falls das erste der Signalisierbits anzeigt, dass das erste Bit der weniger wichtigen Daten des Koeffizienten ein Kopfbit ist.The method of claim 13, wherein a first the signaling bits indicates whether the first bit is the less important one Data of the coefficient is a head or a tail bit, and a second of the signaling bits indicates the sign bit, if that first of the signaling bits indicates that the first bit of the less important data of the coefficient is a bit header. Verfahren nach Anspruch 13, bei welchem die Signalisierbits benachbart zu den weniger wichtigen Daten gespeichert werden.The method of claim 13, wherein the signaling bits stored next to the less important data. Vorrichtung zum Ausführen einer Vorwärtstransformation, die folgendes umfasst: – einen Eingangspuffer mit einem Eingang, der angeschlossen ist, um Eingangsdaten zu empfangen, und einem ersten und zweiten Ausgang, um gerade und ungerade Werte bzw. Abtastwerte bzw. Proben zu übertragen; – eine Erst-Niveau-Transformationseinheit, die angeschlossen ist, um die geraden und ungeraden Werte bzw. Abtastwerte zu empfangen und Koeffizienten zu erzeugen, wobei horizontale Tiefpass- und vertikale Hochpasskoeffizienten Ausgaben der Vorwärtstransformation darstellen; – einen Speicher mit einem ersten Eingang, der angeschlossen ist, um ss-Koeffizienten zu empfangen, die durch die Erst-Niveau-Transformation bzw. durch die Transformation gemäß einem ersten Niveau der Erst-Niveautransformationseinheit erzeugt werden, und mit einem zweiten Eingang, um ss-Koeffizienten von einer Höher-Niveau-Transformationsfilterung zu empfangen; – eine Ordnungseinheit mit einem ersten Eingang, der an den Speicher angeschlossen ist, um ss-Koeffizienten für höhere Niveaus des Filterns zu ordnen; und – eine erste Filtereinheit, die an die Ordnungseinheit angeschlossen ist, um eine Anzahl von Transformationsniveaus anzuwenden, wobei die Filtereinheit eine Transformation von ss-Koeffizienten gemäß einem höheren Niveau bzw. eine Höher-Niveautransformation-ss-Koeffizienten durchführt, die von der Ordnungseinheit empfangen wurden, wobei die Filtereinheit ss-Koeffizientenwerte erzeugt, die zu dem zweiten Eingang des Speichers und dem zweiten Eingang der Ordnungseinheit zurückgegeben bzw. rückgekoppelt werden.An apparatus for performing a forward transform, comprising: an input buffer having an input connected to receive input data and first and second outputs for transmitting even and odd samples; A first-level transform unit connected to receive the even and odd values and generate coefficients, horizontal low-pass and vertical high represent pass-coefficient outputs of the forward transform; A memory having a first input connected to receive ss coefficients generated by the first level transformation or by the first level transformation of the first level transformation unit and having a second input receive ss coefficients from higher level transform filtering; An ordering unit having a first input connected to the memory for ordering ss coefficients for higher levels of filtering; and a first filter unit connected to the ordering unit for applying a number of transformation levels, the filter unit performing a transformation of ss coefficients according to a higher level and a higher level transformation ss coefficients, respectively, received from the ordering unit wherein the filter unit generates ss coefficient values which are fed back to the second input of the memory and to the second input of the ordering unit. Vorrichtung zum Ausführen einer Vorwärtstransformation nach Anspruch 17, bei welcher die Erst-Niveau-Transformation mit 2x2-Blöcken der Eingangsdaten arbeitet bzw. diese verarbeitet.Device for carrying out a forward transformation according to claim 17, wherein the first level transformation with 2x2 blocks the input data works or processes these. Vorrichtung zum Ausführen einer Vorwärtstransformation nach Anspruch 17, bei welcher die Erst-Niveautransformation folgendes umfasst: – eine zweite Filtereinheit, um eine Erst-Niveau-Horizontaltransformation durchzuführen, bei welcher die zweite Filtereinheit einen ersten und einen zweiten Ausgang hat; – eine erste einzelne bzw. einzige Verzögerung, die an den ersten Ausgang des zweiten Filters angeschlossen ist; – eine zweite einzelne bzw. einzige Verzögerung, die an den zweiten Ausgang des zweiten Filters angeschlossen ist; – eine Doppel-Verzögerung, die an den zweiten Ausgang des zweiten Filters angeschlossen ist; – einen ersten Multiplexer, der angeschlossen ist, um die Ausgaben der ersten einzelnen Verzögerung und der doppelten Verzögerung zu empfangen; – ein zweiter Multiplexer, der angeschlossen ist, um eine Ausgabe der ersten Filtereinheit und eine Ausgabe der zweiten einzelnen Verzögerung zu empfangen; und – eine dritte Filtereinheit, die angeschlossen ist, um die Ausgaben von dem ersten und zweiten Multiplexer zu empfangen und um eine Erst-Niveau-Vertikaltransformation durchzuführen.Device for carrying out a forward transformation according to claim 17, wherein the first level transformation comprises includes: - one second filter unit to a first-level horizontal transformation perform, in which the second filter unit has a first and a second Output has; - one first single or single delay, which is connected to the first output of the second filter; - a second single or single delay, which is connected to the second output of the second filter; - a double delay, which is connected to the second output of the second filter; - one first multiplexer, which is connected to the outputs of the first single delay and twice the delay to recieve; - one second multiplexer connected to receive an output of first filter unit and an output of the second single delay receive; and - one third filter unit, which is connected to the outputs of receive the first and second multiplexers and a first level vertical transformation perform. System nach Anspruch 1, das weiter umfasst: – einen Kompressor; – einen Arbeitsraumspeicher, der an den Kompressor angeschlossen ist, wobei der Arbeitsraumspeicher dieselbe Größe hat wie das Bild, und der Kompressor den Arbeitsraumspeicher verwendet, um das Bild zu kodieren, indem Koeffizienten verwendet werden, die größer sind als die Pixel in dem Bild.The system of claim 1, further comprising: - one Compressor; - one Workspace storage, which is connected to the compressor, wherein the work space memory has the same size as the image, and the Compressor uses the workspace memory to encode the image by using coefficients larger than the pixels in the Image. Verfahren zum Kodieren von Informationen, die aus wichtigsten Daten und weniger wichtigen Daten bestehen, wobei das Verfahren die folgenden Schritte umfasst: – Kodieren der wichtigsten Daten; – Kodieren der Position der ersten Bitebene in den weniger wichtigen Daten für jeden Koeffizienten, der nicht vollständig aus Null-Kopfbits besteht; – Kodieren jeder Bitebene von weniger wichtigen Daten, die nicht vollständig aus Null-Kopfbits bestehen.Method for Coding Information Consisting of main data and less important data, the Method comprising the following steps: - Coding of the most important Dates; - Coding the position of the first bit plane in the less important data for each Coefficients that are not complete consists of zero overhead bits; - Encoding each bit level of less important data that does not consist entirely of zero overhead bits. Verfahren nach Anspruch 21, bei welchem die Information Wavelet-Koeffizienten umfasst.The method of claim 21, wherein the information Includes wavelet coefficients. Verfahren nach Anspruch 21, bei welchem der Schritt zum Kodieren der Position der ersten weniger wichtigen Bitebene das Durchführen eines Vorhersehens über die gesamten Bitebenen von weniger wichtigen Daten umfasst.The method of claim 21, wherein the step for coding the position of the first less important bit plane the performing of a foresight includes the entire bitplanes of less important data. Verfahren nach Anspruch 21, bei welchem der Schritt des Kodierens der wichtigsten Daten die folgenden Schritte umfasst: für jeden Baum: – Kodieren des ss-Koeffizienten; – Durchführen eines Vorhersehens für die wichtigsten Daten; und – für jeden Nicht-ss-Koeffizienten: – Kodieren eines Kopf- oder Schwanzbits für jede Bitebene mit Daten, und – Kodieren eines Vorzeichenbits, falls der Koeffizient nicht Null ist.The method of claim 21, wherein the step coding the key data involves the following steps: for each Tree: - Coding the ss coefficient; - Perform a Foresight the most important data; and - for each non-ss coefficient: - Coding a head or tail bit for every bit-level with data, and - coding a sign bit, if the coefficient is not zero. Verfahren nach Anspruch 24, bei welchem das Vorhersehen ein Baum-Vorhersehen umfasst, und der Schritt des Durchführens des Vorhersehens Kodieren der ss-Koeffizienten und Kodieren der ersten Null-Bitebene mit Nicht-Null-Kopfbits für den gesamten Baum umfasst.The method of claim 24, wherein anticipating includes tree anticipation, and the step of performing the Predictively encode the ss coefficients and encode the first one Zero bit-plane with non-zero overhead bits for the entire tree. Verfahren nach Anspruch 24, bei welchem die wichtigsten Daten mit einem Wavelet-Baum zu einer Zeit bzw. Wavelet-Baum für Wavelet-Baum verarbeitet werden.The method of claim 24, wherein the most important Data with a wavelet tree at one time or wavelet tree for wavelet tree processed become. Verfahren nach Anspruch 21, bei welchem das Vorhersehen Bitebenen bestimmt, die alle Null-Kopfbits für alle Nicht-ss-Koeffizienten in dem Wavelet-Baum umfassen.The method of claim 21, wherein anticipating Bite planes determines all zero overhead bits for all non-ss coefficients in the wavelet tree. Verfahren nach Anspruch 27, das weiter die Schritte des Identifizierens der ersten Bitebene umfasst, um individuell zu kodieren.The method of claim 27, further comprising the steps Identifying the first bit level involves being customized to code. Verfahren nach Anspruch 28, bei welchem der Schritt des Identifizierens der ersten Bitebene, um individuell zu kodieren, das Anzeigen, dass alle Nicht-ss-Koeffizienten der zweiten Zerlegung Null sind, unter Verwendung eines ersten Bits, und das Anzeigen, dass alle Nicht-ss-Koeffizienten der ersten Zerlegung Null sind, unter Verwendung eines zweiten Bits umfasst.The method of claim 28, wherein the step identifying the first bit-plane to encode individually indicating that all non-ss coefficients of the second decomposition Are zero, using a first bit, and displaying, that all non-ss coefficients of the first decomposition are zero, below Using a second bit. Verfahren nach Anspruch 21, bei welchem der Schritt des Kodierens der wichtigsten Daten die folgenden Schritte umfasst: für jeden Baum: – Kodieren des ss-Koeffizienten; – Durchführen eines Vorhersehens, um Bitebenen zu bestimmen, die alle Null-Kopfbits für alle Nicht-ss-Koeffizienten in jedem Baum sind; – es wird bestimmt, ob die wichtigsten Daten des gesamten Baums Null sind; – falls die wichtigsten Daten des gesamten Baums nicht Null sind, dann für alle Koeffizienten in dem Baum: – Bits des aktuellen Koeffizienten für alle Bitebenen werden kodiert, wobei der aktuelle Koeffizient der erste Nicht-ss-Koeffizient in dem Baum ist und mit der ersten Bitebene begonnen wird, die Daten enthält; – das Vorzeichenbit wird kodiert, falls der aktuelle Koeffizient nicht Null ist.The method of claim 21, wherein the step coding the key data involves the following steps: for each Tree: - Coding the ss coefficient; - Perform a Predictably, to determine bit planes, all zero overhead bits for all non-ss coefficients in every tree; - it determines if the main data of the entire tree is zero are; - if the main data of the whole tree are not zero, then for all coefficients in the tree: - bits the current coefficient for all bit planes are coded, where the current coefficient of the first non-ss coefficient in the tree is and with the first bit plane is started, which contains data; - the sign bit is coded if the current coefficient is not zero. Verfahren nach Anspruch 21, bei welchem der Schritt des Kodierens der weniger wichtigen Daten die folgenden Schritte umfasst: für jeden Baum: – für jeden Koeffizienten: – ein Vorhersehen wird durchgeführt, falls am Start eines Vorhersehintervalls; – Kodieren eines Kopf- oder Schwanzbits, falls das Vorhersehen nicht aktiv ist; und – Kodieren eines Vorzeichenbits, falls das erste Eins-Bit aufgetreten ist und das Vorhersehen nicht aktiv ist.The method of claim 21, wherein the step of coding the less important data the following steps includes: For every tree: - for each coefficients: - one Foresight is carried out if at the start of a foresight interval; - Coding of a header or Tail bits if foresight is not active; and - Coding a sign bit if the first one bit has occurred and foresight is not active. Apparat zum Kodieren von Informationen, die aus wichigsten Daten und weniger wichtigen Daten bestehen, wobei der Apparat folgendes aufweist: – eine Einrichtung zum Kodieren der wichtigsten Daten; – eine Einrichtung zum Kodieren der Position der ersten Bitebene in den weniger wichtigen Daten für jeden Koeffizienten, der nicht vollständig aus Null-Kopfbits besteht; – eine Einrichtung zum Kodieren jeder Bitebene von weniger wichtigen Daten, die nicht vollständig aus Null-Kopfbits bestehen.Apparatus for coding information resulting from Most important data and less important data exist, whereby the Apparatus comprising: - a device for coding the most important data; - one Device for coding the position of the first bit plane in the less important data for any coefficient that does not consist entirely of zero overhead bits; - An institution to encode each bit-level of less important data that is not Completely consist of zero overhead bits. Apparat nach Anspruch 32, bei welchem die Information Wavelet-Koeffizienten umfasst.Apparatus according to claim 32, wherein the information Includes wavelet coefficients. Apparat nach Anspruch 32, bei welchem die Einrichtung zum Kodieren der Position der ersten weniger wichtigen Bitebene eine Einrichtung zum Durchführen eines Vorhersehens über die gesamten Bitebenen von weniger wichtigen Daten umfasst.Apparatus according to claim 32, wherein the device for coding the position of the first less important bit plane a device for performing of a foresight includes the entire bitplanes of less important data. Apparat nach Anspruch 32, bei welchem die Einrichtung zum Kodieren der wichtigsten Daten folgendes umfasst: – eine Einrichtung zum Kodieren des ss-Koeffizienten für jede Baum; – eine Einrichtung zum Durchführen eines Vorhersehens für die wichtigsten Daten für jeden Baum; – eine Einrichtung zum Kodieren eines Kopf- oder Schwanzbits für jede Bitebene mit Daten für jeden Nicht-ss-Koeffizienten für jeden Baum; und – eine Einrichtung zum Kodieren eines Vorzeichenbits, falls der Koeffizient für jeden Nicht-ss-Koeffizienten für jeden Baum nicht Null ist.Apparatus according to claim 32, wherein the device for coding the most important data includes: - An institution for encoding the ss coefficient for each tree; - An institution to perform of a foresight for the most important data for every tree; - one Device for coding a header or tail bit for each bit plane with data for each non-ss coefficient for every tree; and - one Means for coding a sign bit if the coefficient for each Non-ss coefficients for each Tree is not zero. Apparat nach Anspruch 35, bei welchem das Vorhersehen ein Baum-Vorhersehen umfasst, und die Einrichtung zum Durchführen des Vorhersehens eine Einrichtung zum Kodieren der ss-Koeffizienten und eine Einrichtung zum Kodieren der ersten Null-Bit-Ebene mit Nicht-Null-Kopfbits für den gesamten Baum umfasst.Apparatus according to claim 35, wherein said anticipating a tree anticipation, and the means for performing the Predictably, means for encoding the ss coefficients and means for encoding the first zero bit level Non-zero header bits for includes the entire tree. Apparat nach Anspruch 35, bei welchem die wichtigsten Daten gemäß einem Wavelet-Baum zu einer Zeit bzw. Wavelet-Baum für Wavelet-Baum verarbeitet werden.Apparatus according to claim 35, wherein the most important Data according to one Wavelet tree too a time or wavelet tree for Wavelet tree are processed. Apparat nach Anspruch 32, bei welchem die Einrichtung zum Durchführen des Vorhersehens die Bitebenen bestimmt, die alle Null-Kopfbits für alle Nicht-ss-Koeffizienten in dem Wavelet-Baum umfassen.Apparatus according to claim 32, wherein the device to perform of foresight determines the bit planes, all zero overhead bits for all Comprise non-ss coefficients in the wavelet tree. Apparat nach Anspruch 38, der weiter eine Einrichtung zum Identifizieren der ersten Bitebene umfasst, um individuell zu kodieren.The apparatus of claim 38, further comprising means To identify the first bit level includes to individually encode. Apparat nach Anspruch 39, bei welchem die Einrichtung zum Identifizieren der ersten Bitebene, um individuell zu kodieren, eine Einrichtung umfasst, um unter Verwendung eines ersten Bits anzuzeigen, dass alle Nicht-ss-Koeffizienten der zweiten Zerlegung Null sind, und eine Einrichtung umfasst, um unter Verwendung eines zweiten Bits anzuzeigen, dass alle Nicht-ss-Koeffizienten der ersten Zerlegung Null sind.Apparatus according to claim 39, wherein the device for identifying the first bit plane to encode individually means to use a first bit indicate that all non-ss coefficients of the second decomposition Are zero, and means include using a second bits indicate that all non-ss coefficients of the first Decomposition are zero. Apparat nach Anspruch 32, bei welchem die Einrichtung zum Kodieren der wichtigsten Daten folgendes umfasst: – eine Einrichtung zum Kodieren des ss-Koeffizienten für jeden Baum; – eine Einrichtung zum Durchführen eines Vorhersehens, um Bitebenen zu bestimmen, die alle Null-Kopfbits für alle Nicht-ss-Koeffizienten in jedem Baum sind; – eine Einrichtung zum Bestimmen, ob die wichtigsten Daten des gesamten Baumes für jeden Baum Null sind; und – eine Einrichtung, um Bits des aktuellen Koeffizienten für alle Bitebenen für alle Koeffizienten in dem Baum zu kodieren, falls die wichtigsten Daten für den gesamten Baum nicht Null sind, wobei der aktuelle Koeffizient der erste Nicht-ss-Koeffizient in dem Baum ist und wobei mit der ersten Bitebene gestartet wird, die Daten enthält; – eine Einrichtung zum Kodieren des Vorzeichenbits, falls der aktuelle Koeffizient nicht Null ist für alle Koeffizienten in dem Baum, falls die wichtigsten Daten für den ganzen Baum nicht Null sind.Apparatus according to claim 32, wherein the device for coding the most important data includes: - An institution for encoding the ss coefficient for each tree; - An institution to perform of a prediction to determine bit planes, all zero overhead bits for all non-ss coefficients in every tree; - one Device for determining if the most important data of the whole Tree for every tree is zero; and - one Set up to use bits of the current coefficient for all bit planes for all Encode coefficients in the tree if the most important data for the Whole tree are not zero, with the current coefficient of first non-ss coefficient in the tree and being the first Bite level is started, which contains data; - a device for coding the sign bit if the current coefficient is not zero for all Coefficients in the tree, if the most important data for the whole Tree are not zero. Apparat nach Anspruch 32, bei welchem die Einrichtung zum Kodieren der weniger wichtigen Daten folgendes umfasst: – eine Einrichtung zum Durchführen eines Vorhersehens für jeden Koeffizienten für jeden Baum, falls am Start eines Vorherseh-Intervalls; – eine Einrichtung zum Kodieren eines Kopf- oder Schwanzbits für jeden Koeffizienten für jeden Baum, falls das Vorhersehen nicht aktiv ist; und – eine Einrichtung zum Kodieren eines Vorzeichenbits für jeden Koeffizienten für jeden Baum, falls das erste Eins-Bit aufgetreten ist und das Vorhersehen nicht aktiv ist.Apparatus according to claim 32, wherein the device for coding the less important data comprises: - An institution to perform of a foresight for every coefficient for every tree, if at the start of a foresight interval; - An institution for coding a header or tail bit for each coefficient for each Tree, if the foresight is not active; and - An institution for coding a sign bit for each coefficient for each Tree, if the first one-bit has occurred and the anticipation is not active. Verfahren für m-ary-Kodieren einer Information, wobei das Verfahren die folgenden Schritte umfasst: – eine vorbestimmte Anzahl von Koeffizienten wird untersucht; – ein Entropiekodieren aller Kopfbits mit einem pro Zyklus, bis alle Kopfbits in der vorbestimmten Anzahl von Koeffizienten kodiert sind; – ein Kodieren der Vorzeichen- und Schwanzbits der vorbestimmten Anzahl von Koeffizienten in demselben Zyklus.Procedure for m-ary encoding information, the method being the following Steps includes: - one predetermined number of coefficients are examined; - an entropy coding all header bits with one per cycle until all header bits in the predetermined one Number of coefficients are coded; - a coding of the sign and tail bits of the predetermined number of coefficients in the same cycle. Integrierter Schaltungs-(IC)-Chip, der folgendes umfasst: – eine Pixeldaten-Schnittstelle, um Pixeldaten zwischen dem IC-Chip und dem Speicher zu übertragen; – eine reversible Wavelet-Transformation, die an die Pixeldaten-Schnittstelle angeschlossen ist, um Information zu und von dem Speicher über die Pixeldaten-Schnittstelle zu übertragen; – ein Kontextmodell, das an die reversible Wavelet-Transformation angeschlossen ist, um Kontexte zum Kodieren der Daten, die davon geliefert werden, bereitzustellen; – einen Kodierer, um Koeffizienten zu kodieren, die durch die reversible Wavelet-Transformation basierend auf Kontexten, die von dem Kontextmodell bereitgestellt werden, erzeugt werden.Integrated circuit (IC) chip, the following includes: - one Pixel data interface to pixel data between the IC chip and to transfer to the memory; - a reversible Wavelet transformation connected to the pixel data interface is to get information to and from the memory via the pixel data interface transferred to; - a context model, which is connected to the reversible wavelet transformation, contexts to encode the data that comes from it provide; - one Encoder to encode coefficients by the reversible Wavelet transform based on contexts provided by the context model will be generated. IC-Chip nach Anspruch 44, der weiter eine Koeffizientendaten-Schnittstelle umfasst, die angeschlossen ist, um Koeffizienten von der Transformation zu dem Speicher ohne Kodieren zu übertragen.The integrated circuit chip of claim 44, further comprising a coefficient data interface which is connected to coefficients of the transformation to transfer the memory without coding. IC-Chip nach Anspruch 44, bei welchem die Koeffizientendaten-Schnittstelle Koeffizienten von dem Speicher zu dem Kontextmodell zum Kodieren überträgt.The integrated circuit chip of claim 44, wherein the coefficient data interface Transfer coefficients from the memory to the context model for coding. IC-Chip nach Anspruch 44, der weiter eine Schnittstelle für kodierte Daten umfasst, um entropiekodierte Daten zu dem Speicher zu liefern.The integrated circuit chip of claim 44, further comprising an interface for coded Includes data to provide entropy-coded data to the memory. IC-Chip nach Anspruch 47, der weiter einen Dekodierer umfasst, um kodierte Daten zu dekodieren.The integrated circuit chip of claim 47, further comprising a decoder includes to decode encoded data. IC-Chip nach Anspruch 46, der weiter eine Schnittstelle für kodierte Daten umfasst, um den Decoder mit entropiekodierten Daten zum Dekodieren zu versorgen.The integrated circuit chip of claim 46, further comprising an interface for coded Data includes the decoder with entropy-coded data for decoding to supply. IC-Chip nach Anspruch 44, der weiter einen reversiblen Farbraumkonverter umfasst, der zwischen der Pixeldaten-Schnittstelle und der reversiblen Wavelet-Transformation angeschlossen ist, um eine reversible Farbraumkonversion durchzuführen.The IC chip of claim 44, further comprising a reversible Color space converter that covers the pixel data interface and the reversible wavelet transform is connected to to perform a reversible color space conversion. Dekodierer zum Dekodieren kodierter Bilddaten, wobei der Dekodierer folgendes umfasst: – wenigstens einen Bitgenerator, der angeschlossen ist, um die kodierten Daten zu empfangen und um die kodierten Daten basierend auf einer Wahrscheinlichkeitsschätzung zu dekodieren, wobei der wenigstens eine Bitgenerator ein dekodiertes Bit von einer aktuellen Zeile erzeugt; – eine Wahrscheinlichkeitsschätzmaschine, die an den wenigstens einen Bitgenerator angeschlossen ist, um die Wahrscheinlichkeitsschätzung basierend auf dem dekodierten Bit von der aktuellen Zeile zu liefern; – ein Kontextmodell, das an die Wahrscheinlichkeitsschätzmaschine angeschlossen ist, um eine Anzahl von Kontexten der Wahrscheinlichkeitsschätzmaschine bereitzustellen, und zwar basierend auf einer Teil-Kontextadresse, wobei die Wahrscheinlichkeitsschätzmaschine unter der Anzahl bzw. Vielzahl von Kontexten basierend auf dem dekodierten Bit auswählt.Decoder for decoding encoded image data, wherein the decoder comprises: At least one bit generator, which is connected to receive and encode the encoded data the coded data based on a probability estimate decode, wherein the at least one bit generator is a decoded one Bit generated by a current line; A probability estimator, which is connected to the at least one bit generator to the probability estimate based on the decoded bit from the current line; - a context model, which is connected to the probability estimator, around a number of contexts of the probability estimator based on a partial context address, the probability estimator among the number of contexts based on the decoded one Select bit. Dekoder nach Anspruch 51, der weiter einen Indikator für gleiche Adressen bzw. einen Gleichadressen-Indikator umfasst, der an die Wahrscheinlichkeitsschätzmaschine angeschlossen ist, um die Adressen zu detektieren, die bereits gelesen worden sind, wobei dadurch angezeigt wird, dass die Daten bereits in der Wahrscheinlichkeitsschätzmaschine verfügbar sind, wobei der Indikator für gleiche Adressen eine Anzeige zu der Wahrscheinlichkeitsschätzmaschine erzeugt, die anzeigt, dass die Daten bereits in einer Wahrscheinlichkeitsschätzmaschine sind, und zwar basierend auf dem Teil-Kontext, der adressiert wird.The decoder of claim 51, further comprising an indicator for same Addresses or an equal address indicator, which corresponds to the Probability estimation machine is connected to detect the addresses that are already read indicating that the data is already displayed in the probability estimator available are, with the indicator for same addresses an indication to the probability estimator which indicates that the data is already in a probability estimator are based on the sub-context being addressed. Dekoder nach Anspruch 51, der weiter eine Anzahl von Schieberegistern umfasst, die an das Kontextmodell angeschlossen sind, um die Teil-Kontextadresse bereitszustellen.The decoder of claim 51, further comprising a number of shift registers that are connected to the context model are to provide the sub-context address. Dekoder nach Anspruch 51, der weiter einen Zeilenpuffer umfasst, der angeschlossen ist, um eine Anzahl bzw. Vielzahl oberer Zeilen bereitzustellen.The decoder of claim 51, further comprising a line buffer which is connected to a number or a plurality of upper To provide rows. Kontextmodell, das folgendes umfasst: – eine erste Bitebeneneinheit, die angeschlossen ist, um weniger wichtige Daten und wichtigste Daten zu empfangen, um zu bestimmen, welche Bitebenen Daten enthalten, wobei die erste Bitebeneneinheit eine Anzeige der Bitebene mit dem ersten Eins-Bit für die gesamte Kodiereinheit zur Verwendung, wenn die weniger wichtigen Daten verarbeitet werden, erzeugt; – einen Vergleichsmechanismus, der angeschlossen ist, um die weniger wichtigen Daten und die wichtigsten Daten zu empfangen, um eine Signalisierinformation für die weniger wichtigen Daten zu erzeugen; – einen Speicher, der angeschlossen ist, um das Vorzeichenbit, die wichtigsten Daten und eine Anzeige der ersten Bitebene mit Daten zu empfangen, wobei der Speicher Koeffizienten verzögert, um Konditionierinformation bereitzustellen; – ein erstes Kontextmodell, das an den Speicher angeschlossen ist, um Kontexte für Vorzeichenbits bereitzustellen; – ein zweites Kontextmodell, das an den Speicher und die wichtigsten Daten angeschlossen ist, um Kontexte für die Kopfbits bereitzustellen; und – ein drittes Kontextmodell, das an den Speicher und die wichtigsten Daten angeschlossen ist, um Kontexte für die Schwanzbits bereitzustellen.Contextual model comprising: - a first one Bit-plane unit connected to less important data and receive the most important data to determine which bit-planes Data, wherein the first bit-plane unit is an indication of Bit plane with the first one bit for the entire coding unit for use when processing the less important data generated; - one Comparison mechanism that is connected to the less important ones Data and the most important data to receive a signaling information for the to generate less important data; - a memory that is connected is to the sign bit, the most important data and an indication receive the first bit plane with data, the memory coefficients delayed to provide conditioning information; - a first Context model connected to the memory to contexts for sign bits provide; - one second context model attached to the memory and the most important data is connected to contexts for to provide the header bits; and - a third contextual model, which is connected to the memory and the most important data, around contexts for to provide the tail bits. Kontextmodell nach Anspruch 55, das weiter einen Trennmechanismus bzw. Separationsmechanismus umfasst, um die Eingangsdaten in die wichtigeren und weniger wichtigen Daten aufzuteilen.The context model of claim 55, further comprising Separation mechanism or separation mechanism includes the input data into more important and less important data. Kontextmodell nach Anspruch 56, bei welchem der Trennmechanismus bzw. Separationsmechanismus einen Tonnen-Schieber bzw. "Barrel"-Schieber umfasst.Context model according to claim 56, wherein the separation mechanism mus comprises a barrel slide or "barrel" slider. Kontextmodell nach Anspruch 57, bei welchem der Tonnen-Schieber Daten basierend auf einem Quantisierungsniveau verschiebt.Context model according to claim 57, wherein the Tons slider shifts data based on a quantization level. Kontextmodell nach Anspruch 55, bei welchem der Vergleichsmechanismus folgendes umfasst: – eine erste Vergleichseinheit, um zu bestimmen, ob die wichtigsten Daten gleich Null sind, um anzuzeigen, dass ein Schwanzbit bereits aufgetreten ist, wobei die Ausgabe der ersten Vergleichseinheit ein Schwanz-Eins-Bit ist; – eine zweite Vergleichseinheit, um zu bestimmen, ob die wichtigsten Daten gleich Eins sind, wobei eine Ausgabe der zweiten Vergleichseinheit gleich Null ist, wenn die wichtigsten Daten gleich Eins sind; und – einen Multiplexer, der angeschlossen ist, um die Ausgabe der zweiten Vergleichseinheit und das Vorzeichenbit zu empfangen, um ein erstes Schwanzbit auszugeben, falls der Auswähleingang in einem ersten Zustand ist, und um das Vorzeichen auszugeben, falls der Auswähleingang in einem zweiten Zustand ist.Context model according to claim 55, wherein the Comparative mechanism comprising: A first comparison unit, to determine if the most important data is equal to zero, to indicate that a tail bit has already occurred, the output of the first Comparison unit is a tail one bit; - a second Compare unit to determine if the most important data is the same One are where an output of the second compare unit is the same Zero is when the most important data equals one; and - one Multiplexer connected to the output of the second comparator and receive the sign bit to output a first tail bit, if the selection input is in a first state, and to output the sign if the selection input is in a second state. Kontextmodell nach Anspruch 59, bei welchem der Auswähleingang die Schwanz-Eins-Ausgabe der ersten Vergleichseinheit umfasst.Context model according to claim 59, wherein the select input the tail-one issue the first comparison unit comprises. Kontextmodell nach Anspruch 58, bei welchem die erste und/oder zweite Vergleichseinheit einen Bitvergleicher umfasst.Context model according to claim 58, in which the first and / or second comparison unit comprises a bit comparator. Kontextmodell nach Anspruch 55, bei welchem die erste Bitebeneneinheit folgendes umfasst: – ein ODER-Gatter, das angeschlossen ist, um einen Koeffizienten und eine Rückkopplung zu empfangen; – ein Register, das angeschlossen ist, um die Ausgabe des ODER-Gatters zu empfangen; und – einen Prioritätskodierer, der angeschlossen ist, um die Ausgabe des Registers zu empfangen, um die erste Bitebene des Koeffizienten aufzuzeichnen, die eine Eins hat.Context model according to claim 55, wherein the first bit-plane unit comprises: - an OR gate connected is to receive a coefficient and a feedback; - a register, connected to receive the output of the OR gate; and - one priority encoder, which is connected to receive the output of the register, to record the first bit plane of the coefficient, the one One has. Kontextmodell nach Anspruch 62, bei welchem das Register einen Rücksetzeingang enthält, um den Inhalt des Registers am Start der Kodiereinheit zurückzusetzen.Context model according to claim 62, wherein said Register a reset input contains to reset the content of the register at the start of the encoding unit. Kontextmodell nach Anspruch 62, bei welchem der Rücksetzeingang ebenso den Inhalt bzw. Dateninhalt des Registers am Start eines jeden Baums zurücksetzt.Context model according to claim 62, wherein the Reset input also the content or data content of the register at the start of a reset each tree. Verfahren nach Anspruch 8, das weiter die folgenden Schritte umfasst: – ausgehend von der mittleren Länge der Kodewörter wird ein aktuelles Kompressionsniveau bestimmt; und – eine Kompressionsrate wird basierend auf dem aktuellen Kompressionsniveau eingestellt bzw. justiert.The method of claim 8, further comprising the following Steps includes: - outgoing from the middle length the code words a current compression level is determined; and - a compression rate is set based on the current compression level or adjusted. Verfahren nach Anspruch 65, das weiter die folgenden Schritte aufweist: – ein Umfang bzw. Grad eines Quantisierungsniveaus wird erhöht, falls die Kodierrate anzeigt, dass die Kompression unterhalb eines ersten gewünschten Niveaus ist; und – der Grad bzw. der Umfang der Quantisierung wird abgesenkt, falls die Kodierrate anzeigt, dass die Kompression oberhalb eines zweiten gewünschten Niveaus ist.The method of claim 65 further comprising the following Steps: - one The extent of a quantization level is increased if the coding rate indicates that the compression is below a first desired Levels is; and - of the The degree of quantization is lowered if the Encoding rate indicates that the compression is above a second desired Levels is. Verfahren nach Anspruch 66, wobei das erste und zweite gewünschte Niveau nicht dieselben sind.The method of claim 66, wherein the first and second desired Level are not the same. Verfahren nach Anspruch 65, bei welchem der Schritt der Bestimmung der mittleren Länge von Kodewörtern nach der Biterzeugung durchgeführt wird.The method of claim 65, wherein the step Determination of average length of codewords performed after the biter production becomes. Verfahren nach Anspruch 65, das weiter den Schritt umfasst, wonach einem Dekoder eine neue Kompressionsrate signalisiert wird.The method of claim 65, further comprising the step comprising, after which a decoder signals a new compression rate becomes. Verfahren nach Anspruch 69, bei welchem das Signalisieren explizit ist.The method of claim 69, wherein signaling is explicit. Verfahren nach Anspruch 69, bei welchem das Signalisieren implizit ist.The method of claim 69, wherein signaling is implicit. System das folgendes umfasst: – ein Kontextmodell; – eine Wahrscheinlichkeitsschätzmaschine, die an das Kontextmodell angeschlossen ist; – einen Bitgenerator, der an die Wahrscheinlichkeitsschätzmaschine angeschlossen ist; und – eine Kodierratensteuerung, die an einen Ausgang des Bitgenerators angeschlossen ist, um die Kodierrate zu steuern, indem eine mittlere Kodewortlänge bestimmt wird.A system comprising: a context model; A probability estimator connected to the context model; A bit generator connected to the probability estimator; and A coding rate control connected to an output of the bit generator to control the coding rate by determining an average code word length. System nach Anspruch 72, bei welchem eine Kodierratensteuerung eine Quantisierung einstellt bzw. justiert.The system of claim 72, wherein a coding rate control adjusts or adjusts a quantization. System nach Anspruch 72, das einen Signalisierblock umfasst, um einen Dekoder bezüglich eines neuen Quantisierungsniveaus bzw. -pegels zu signalisieren.The system of claim 72, including a signaling block includes to a decoder with respect signal a new quantization level. System nach Anspruch 72, das weiter einen Signalisierungsblock umfasst, um Kopfdaten für eine komprimierte Datenstromausgabe des Kodierers zu erzeugen, die auf den komprimierten Bitstrom verkettet ist, um dem Kodierer ein neues Quantisierungsniveau anzuzeigen.The system of claim 72, further comprising a signaling block includes to header data for to generate a compressed data stream output of the encoder which concatenated to the compressed bitstream, to the encoder display new quantization level. System nach Anspruch 72, bei welchem die Kodierratensteuerung eine Anzeige des Quantisierungsniveaus speichert, das für eine darauffolgende Verwendung durch den Dekoder notwendig ist.The system of claim 72, wherein the coding rate control stores an indication of the quantization level that is for a subsequent one Use by the decoder is necessary. Verfahren zum Verarbeiten eines am wenigsten wichtigen Teils von Daten-Bitebenen von einem Satz von transformierten Koeffizienten, das die folgenden Schritte umfasst: – eine erste Datenmenge der Daten der transformierten Koeffizienten wird von einem Speicher gelesen; und – eine zweite Datenmenge größer als die erste Datenmenge wird zu dem Speicher geschrieben, während die erste Datenmenge gelesen wird, um transformierte Bitebenen mit weniger Daten in den Bitebenen niedrigerer Ordnung des Satzes transformierter Koeffizienten auszugleichen.Process for processing a least important Part of data bit planes of a set of transformed coefficients, which includes the following steps: A first dataset of the Data of the transformed coefficients is from a memory read; and - one second amount of data greater than the first amount of data is written to the memory while the first Dataset is read to transformed bit-planes with less Data in the lower-order bit-planes of the sentence transformed To equalize coefficients. Verfahren nach Anspruch 77, bei welchem die Bits, die zum Speichern der am wenigsten wichtigen Koeffizienten erforderlich sind, zunehmen, wenn die Bitebenenanzahl abnimmt.The method of claim 77, wherein the bits, required to store the least important coefficients are increasing as the bit plane number decreases. Verfahren zum Dekomprimieren von Information, wobei ein Bandpuffer bereitgestellt wird, der umfasst: – eine Anzahl von Kodiereinheiten für Koeffizienten, die eine inverse Transformationsoperation durchmachen sollen; – wenigstens eine Kodiereinheit zum Speichern von Pixeln, die an eine Ausgabevorrichtung auszugeben sind; – wenigstens eine Kodiereinheit für Pixel, die zuvor invertierten transformierten Koeffizienten entsprechen, die zu der Ausgabevorrichtung zu senden sind; wobei mittels eines Dekompressors komprimierte Daten zu transformierten Koeffizienten dekomprimiert werden, die transformierten Koeffizienten zu dem Bandpuffer geschrieben werden, transformierte Koeffizienten von dem Bandpuffer zurückgelesen werden, eine inverse Transformation mit den transformierten Koeffizienten, die von dem Bandpuffer zurückgelesen wurden, durchgeführt wird, um Pixelwerte zu erzeugen, und Pixelwerte zu dem Bandpuffer geschrieben werden.Method for decompressing information, wherein providing a band buffer comprising: - a number of coding units for Coefficients to undergo an inverse transformation operation; - at least a coding unit for storing pixels that are sent to an output device are to be issued; - at least a coding unit for Pixels that correspond to previously inverted transformed coefficients, which are to be sent to the output device; by means of a Decompressors compress data to transformed coefficients decompressed, the transformed coefficients to the band buffer are written, transformed coefficients from the band buffer read back be an inverse transformation with the transformed coefficients, which read back from the tape buffer were carried out, to generate pixel values and write pixel values to the band buffer become. Vorrichtung zum Kodieren eines Satzes von transformierten Koeffizienten bei einer Bildkompression, wobei die Vorrichtung ausgebildet ist, das Verfahren nach Anspruch 13 durchzuführen.Apparatus for coding a set of transformed ones Coefficients in image compression, wherein the device is formed is to carry out the method of claim 13. Verfahren zum Ausführen einer Vorwärtstransformation, das die folgenden Schritte umfasst: – Empfangen von Eingangsdaten mittels eines Eingangs eines Eingangspuffers; – Übertragen von geraden und ungeraden Werten bzw. Abtastwerten bzw. Proben mittels eines ersten und eines zweiten Ausganges des Eingangspuffers; – Empfangen der geraden und ungeraden Werte bzw. Abtastwerte und Erzeugen von Koeffizienten, wobei horizontale Tiefpass- oder vertikale Hochpasskoeffizienten Ausgaben der Vorwärtstransformation darstellen, mittels einer Erst-Niveau-Transformationseinheit; – Empfangen von ss-Koeffizienten, die durch die Erst-Niveau-Transformation bzw. durch die Transformation gemäß einem ersten Niveau der Erst-Niveau-Transformationseinheit erzeugt werden, mittels eines ersten Eingangs eines Speichers, und Empfangen von ss-Koeffizienten von einer Höher-Niveau-Transformationsfilterung mittels eines zweiten Eingangs; – Ordnen von ss-Koeffizienten für höhere Niveaus des Filters mittels einer Ordnungseinheit mit einem ersten Eingang; und – Anwenden einer Anzahl von Transformationsniveaus mittels einer ersten Filtereinheit, wobei mittels der Filtereinheit eine Transformation von ss-Koeffizienten gemäß einem höheren Niveau bzw. eine Höher-Niveautransformation-ss-Koeffizienten durchgeführt wird, die von der Ordnungseinheit empfangen wurden, wobei mittels der Filtereinheit ss-Koeffizientenwerte erzeugt werden, die zu dem zweiten Eingang des Speichers und dem zweiten Eingang der Ordnungseinheit zurückgegeben bzw. rückgekoppelt werden.Method for carrying out a forward transformation, which includes the following steps: - Receive input data by means of an input of an input buffer; - Transfer of even and odd values or samples or samples by means of a first and a second output of the input buffer; - receive of even and odd values and samples and generating Coefficients, where horizontal low-pass or vertical high-pass coefficients Issues of the forward transformation represent, by means of a first-level transformation unit; - receive of ss coefficients which are determined by the first-level transformation or by the transformation according to a first level of the first-level transformation unit are generated, by means of a first input of a memory, and receiving ss coefficients from higher-level transform filtering by means of a second input; - ordering ss coefficients for higher levels the filter by means of an ordering unit with a first input; and - Apply a number of transformation levels by means of a first filter unit, wherein by means of the filter unit, a transformation of ss coefficients according to one higher Level or higher level transformation ss coefficients carried out is received by the ordering unit, by means of the filter unit ss coefficient values generated to the second input of the memory and the second input of the ordering unit returned or fed back become. Vorrichtung zum m-ary Kodieren einer Information, wobei die Vorrichtung ausgebildet ist, das Verfahren nach Anspruch 43 durchzuführen.An apparatus for m-ary encoding information, wherein the apparatus is adapted to the Verfah Ren carry out according to claim 43. Verfahren zum Kodieren von Information mittels eines Integrierten Schaltungs-(IC)-Chips, das die folgenden Schritte umfasst: – Übertragen von Pixeldaten zwischen dem IC-Chip und einem Speicher mittels einer Pixeldaten-Schnittstelle des IC-Chips; – Übertragen von Information zu und von dem Speicher über die Pixeldaten-Schnittstelle mittels einer reversiblen Wavelet-Transformation, die an die Pixeldaten-Schnittstelle angeschlossen ist; – Bereitstellen von Kontexten zum Kodieren der Daten mittels eines Kontextmodells, wobei die Daten davon geliefert werden und das Kontextmodell an die reversible Wavelet-Transformation angeschlossen ist; – Kodieren von Koeffizienten, die durch die reversible Wavelet-Transformation basierend auf Kontexten, die von dem Kontextmodell bereitgestellt werden, erzeugt werden.Method for coding information by means of a Integrated circuit (IC) chips, which includes the following steps: - Transfer pixel data between the IC chip and a memory by means of a pixel data interface of the IC chips; - Transfer of information to and from the memory via the pixel data interface using a reversible wavelet transform applied to the pixel data interface connected; - Provide contexts for encoding the data using a contextual model, where the data is supplied and the context model the reversible wavelet transformation connected; - Coding of coefficients by the reversible wavelet transformation based on contexts provided by the context model will be generated. Verfahren zum Dekodieren kodierter Bilddaten, das die folgenden Schritte umfasst: – Empfangen kodierter Daten und Dekodieren kodierter Daten basierend auf einer Wahrscheinlichkeitsschätzung mittels wenigstens eines Bitgenerators, wobei mittels des Bitgenerators ein dekodiertes Bit von einer aktuellen Zeile erzeugt wird, wobei die Wahrscheinlichkeitsschätzung basierend auf dem dekodierten Bit von der aktuellen Zeile von einer Wahrscheinlichkeitsschätzmaschine geliefert wird; – Bereitstellen einer Anzahl von Kontexten der Wahrscheinlichkeitsschätzmaschine mittels eines Kontextmodells, das an die Wahrscheinlichkeitsschätzmaschine angeschlossen ist, und zwar basierend auf einer Teil-Kontextadresse, wobei die Wahrscheinlichkeitsschätzmaschine unter der Anzahl bzw. Vielzahl von Kontexten basierend auf dem dekodierten Bild ausgewählt.Method for decoding encoded picture data, the the following steps include: - receiving encoded data and decoding encoded data based on a probability estimate at least one bit generator, wherein by means of the bit generator a decoded bit is generated from a current line, where the probability estimate based on the decoded bit from the current line of one Probability estimation machine is delivered; - Provide a number of contexts of the probability estimator by means of a contextual model, which is sent to the probability estimator connected, based on a partial context address, the probability estimator among the number of contexts based on the decoded one Image selected. Verfahren zum Bereitstellen von Kontexten, das die folgenden Schritte umfasst: – Empfangen weniger wichtiger Daten und wichtigster Daten mittels einer ersten Bitebeneneinheit, um zu bestimmen, welche Bitebenen Daten enthalten, wobei die erste Bitebeneneinheit eine Anzeige der Bitebene mit dem ersten Eins-Bit für die gesamte Kodiereinheit zur Verwendung, wenn die weniger wichtigen Daten verarbeitet werden, erzeugt; – Empfangen der weniger wichtigen Daten und der wichtigsten Daten mittels eines Vergleichsmechanismus, um eine Signalisierungsinformation für die weniger wichtigen Daten zu erzeugen; – Empfangen des Vorzeichenbits, der wichtigsten Daten und einer Anzeige der ersten Bitebene mit Daten mittels eines Speichers, wobei mittels des Speichers Koeffizienten verzögert werden, um Konditionierinformation bereitzustellen; – Bereitstellen von Kontexten für Vorzeichenbits mittels eines ersten Kontextmodells, das an den Speicher angeschossen ist; – Bereitstellen von Kontexten für Kopfbits mittels eines zweiten Kontextmodells, das an den Speicher und die wichtigsten Daten angeschossen ist; und – Bereitstellen von Kontexten für Schwanzbits mittels eines dritten Kontextmodells, das an den Speicher und die wichtigsten Daten angeschlossen ist.Method for providing contexts that the following steps include: - Receive less important Data and most important data by means of a first bit-plane unit, to determine which bit-planes contain data, the first Bit plane unit is an indication of the bit plane with the first one bit for the entire coding unit for use when the less important Data processed, generated; - Receive the less important Data and key data using a comparison mechanism to signaling information for the less important data to create; - receive the sign bit, the most important data and a display of the first bit plane with data by means of a memory, by means of of memory coefficients delayed to provide conditioning information; - Provide of contexts for Sign bits by means of a first context model sent to memory shot at; - Provide of contexts for Header bits by means of a second context model, which is sent to the memory and the most important data is shot; and - Provide of contexts for Tail bits by means of a third contextual model sent to the memory and the most important data is connected. Verfahren zur Steuerung einer Kodierrate mit den folgenden Schritten: Bereitstellen eines Kontextmodells; Anschließen einer Wahrscheinlichkeitsschätzmaschine an das Kontextmodell; Anschließen eines Bitgenerators an die Wahrscheinlichkeitsschätzmaschine; wobei die Kodierrate gesteuert wird, indem mittels einer Kodierratensteuerung, die an einen Ausgang des Bitgenerators angeschlossen ist, eine mittlere Kodewortlänge bestimmt wird.Method for controlling a coding rate with the following steps: Providing a contextual model; Connecting one Probability estimation machine to the context model; Connecting a bit generator the probability estimator; in which the coding rate is controlled by using a coding rate control, which is connected to an output of the bit generator, a middle one code word is determined. Vorrichtung zum Verarbeiten eines am wenigstens wichtigen Teils von Daten-Bitebenen von einem Satz von transformierten Koeffizienten, wobei die Vorrichtung ausgebildet ist, das Verfahren nach Anspruch 77 durchzuführen.Apparatus for processing at least one important part of data bit planes of a set of transformed ones Coefficients, wherein the device is designed, the method to carry out according to claim 77.
DE19819405A 1997-05-01 1998-04-30 Implementation of a reversible embedded wavelet system Expired - Fee Related DE19819405B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84707497A 1997-05-01 1997-05-01
US08/847,074 1997-05-01

Publications (2)

Publication Number Publication Date
DE19819405A1 DE19819405A1 (en) 1998-11-26
DE19819405B4 true DE19819405B4 (en) 2006-06-29

Family

ID=25299688

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19819405A Expired - Fee Related DE19819405B4 (en) 1997-05-01 1998-04-30 Implementation of a reversible embedded wavelet system

Country Status (6)

Country Link
JP (2) JP4148429B2 (en)
KR (1) KR100317792B1 (en)
DE (1) DE19819405B4 (en)
FR (1) FR2763766B1 (en)
GB (1) GB2325584B (en)
HK (1) HK1023470A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US6201897B1 (en) * 1998-11-09 2001-03-13 Earth Resource Mapping Transformation and selective inverse transformation of large digital images
DE10008055A1 (en) * 2000-02-22 2001-08-30 Infineon Technologies Ag Data compression method
US6633688B1 (en) 2000-04-28 2003-10-14 Earth Resource Mapping, Inc. Method system and apparatus for providing image data in client/server systems
KR20030021009A (en) * 2001-09-05 2003-03-12 김효준 Image compression method using block-based zerotree and quadtree
KR100451584B1 (en) * 2001-12-20 2004-10-08 엘지전자 주식회사 Device for encoding and decoding a moving picture using of a wavelet transformation and a motion estimation
US7460722B2 (en) 2002-01-11 2008-12-02 Canon Kabushiki Kaisha Encoding of digital data with determination of sample path
FR2834832B1 (en) * 2002-01-11 2005-05-20 Canon Kk CODING DIGITAL DATA WITH HISTOGRAM CALCULATION
WO2004028142A2 (en) * 2002-09-17 2004-04-01 Vladimir Ceperkovic Fast codec with high compression ratio and minimum required resources
EP2194126B1 (en) 2007-10-15 2014-01-15 Chugai Seiyaku Kabushiki Kaisha Method of constructing cells with high productivity of foreign protein
JP5058341B2 (en) * 2007-11-30 2012-10-24 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド Image processing method
KR101681059B1 (en) * 2009-09-22 2016-12-01 삼성전자주식회사 Video signal generation apparatus and method for minimizing crosstalk between luminace signal and color difference signal
JP5298381B2 (en) * 2011-12-20 2013-09-25 株式会社アクセル Image processing apparatus and image processing method
US9813718B2 (en) 2013-10-03 2017-11-07 Samsung Display Co., Ltd. Apparatus and method for compact bit-plane data compression

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988004117A1 (en) * 1986-11-21 1988-06-02 Bayerische Rundfunkwerbung Gmbh Process for transmitting digital audio-signals
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
DE19534943A1 (en) * 1994-09-21 1996-03-28 Ricoh Kk Embedded wavelet type data compression device e.g. for facsimile transmission of documents
DE19534730A1 (en) * 1994-09-20 1996-05-02 Ricoh Kk Entropy encoder for facsimile transmission
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
DE19626615A1 (en) * 1995-07-03 1997-01-09 Ricoh Kk Compression method and apparatus using reversible wavelet transforms and an embedded code stream
DE19626600A1 (en) * 1995-06-30 1997-01-09 Ricoh Kk Reversible wavelet transformations and embedded code stream manipulation
US5731988A (en) * 1995-05-08 1998-03-24 Richo Company, Ltd. Method and apparatus for reversible color conversion
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US5966465A (en) * 1994-09-21 1999-10-12 Ricoh Corporation Compression/decompression using reversible embedded wavelets
DE19549491C2 (en) * 1994-02-23 2003-08-07 Ricoh Kk Palletised image compression with entropy encoding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638498A (en) * 1992-11-10 1997-06-10 Adobe Systems Incorporated Method and apparatus for reducing storage requirements for display data
GB2293733B (en) * 1994-09-20 1997-10-22 Ricoh Kk Encoder including an embedded coder for performing bit-significance encoding
GB2302245B (en) * 1994-09-20 1997-10-22 Ricoh Kk Wavelet transform filter

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988004117A1 (en) * 1986-11-21 1988-06-02 Bayerische Rundfunkwerbung Gmbh Process for transmitting digital audio-signals
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
DE19549491C2 (en) * 1994-02-23 2003-08-07 Ricoh Kk Palletised image compression with entropy encoding
DE19534730A1 (en) * 1994-09-20 1996-05-02 Ricoh Kk Entropy encoder for facsimile transmission
US5867602A (en) * 1994-09-21 1999-02-02 Ricoh Corporation Reversible wavelet transform and embedded codestream manipulation
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US5966465A (en) * 1994-09-21 1999-10-12 Ricoh Corporation Compression/decompression using reversible embedded wavelets
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
DE19534943A1 (en) * 1994-09-21 1996-03-28 Ricoh Kk Embedded wavelet type data compression device e.g. for facsimile transmission of documents
US5731988A (en) * 1995-05-08 1998-03-24 Richo Company, Ltd. Method and apparatus for reversible color conversion
DE19626600A1 (en) * 1995-06-30 1997-01-09 Ricoh Kk Reversible wavelet transformations and embedded code stream manipulation
DE19626615A1 (en) * 1995-07-03 1997-01-09 Ricoh Kk Compression method and apparatus using reversible wavelet transforms and an embedded code stream

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
ANTONINI, M., et al.: Image Coding Using Wavelet Transform. In: IEEE Transactions on Image Proces- sing, Bd. 1, Nr. 2, April 1992 *
ISO/IEC 11172-3: 1993, C.1.5.3 - C.1.5.4.4.8 *
SHUPIRO, J.: An Embedded Hirarchical Image Coder Using Zerotrees of Wavelet Coefficients. In: Proc. IEEE Data Compression Conference, S. 214-223,1993
SHUPIRO, J.: An Embedded Hirarchical Image Coder Using Zerotrees of Wavelet Coefficients. In: Proc.IEEE Data Compression Conference, S. 214-223,1993 *
US 57 31 988 A (Anmeldetag: 8.5.1995)
US 58 67 602 A (Anmeldetag: 30.6.1995)
US 58 81 176 A (Anmeldetag: 3.3.1996)
US 59 66 465 A (Anmeldetag: 3.3.1996)
US 61 95 465 B1 (Anmeldetag: 30.6.1995)

Also Published As

Publication number Publication date
JP2007267384A (en) 2007-10-11
GB2325584B (en) 2000-03-29
DE19819405A1 (en) 1998-11-26
HK1023470A1 (en) 2000-09-08
JPH10304368A (en) 1998-11-13
KR19980086694A (en) 1998-12-05
GB9808412D0 (en) 1998-06-17
FR2763766A1 (en) 1998-11-27
FR2763766B1 (en) 2002-10-25
JP4148429B2 (en) 2008-09-10
KR100317792B1 (en) 2002-02-19
GB2325584A (en) 1998-11-25

Similar Documents

Publication Publication Date Title
DE19861377B4 (en) An improved compression and decompression system with reversible wavelets and lossy reconstruction
DE19626615C2 (en) Compression method and apparatus using reversible wavelet transforms and an embedded code stream
DE19626600C2 (en) Encoder and coding method
US7068849B2 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US7321695B2 (en) Encoder rate control
US6256415B1 (en) Two row buffer image compression (TROBIC)
US5966465A (en) Compression/decompression using reversible embedded wavelets
US5881176A (en) Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US7492955B2 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6229927B1 (en) Reversible embedded wavelet system implementation
DE69722601T2 (en) DATA COMPRESSION WITH HYBRID LOSS ENTROPY CODING FROM RUN-LENGTH CODES
DE19819405B4 (en) Implementation of a reversible embedded wavelet system
DE19534730A1 (en) Entropy encoder for facsimile transmission
JPH11225076A (en) Data compressing method
Vrindavanam et al. A survey of image compression methods
US6934420B1 (en) Wave image compression

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee