DE19819405B4 - Implementation of a reversible embedded wavelet system - Google Patents
Implementation of a reversible embedded wavelet system Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data 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.
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.
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.
Tabelle 1 Spanne eines Wavelet-Baumes für unterschiedliche Niveaus einer Dekompression Table 1 Span of a wavelet tree for different levels of decompression
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.
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.
Die
inverse Transformation ist bei der folgenden Gleichung gezeigt. wobei p(n) wie folgt berechnet
wird:
Die TS-Transformation und die TT-Transformation unterscheiden sich in der Definition von t(n). Für die TS-Transformation gilt: The TS transformation and the TT transformation differ in the definition of t (n). For the TS transformation:
Für die TT-Transformation gilt: For the TT transformation, the following applies:
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.
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
Der
Addierer
Die
Ausgabe der Multiplexer
Die
Ausgaben von den Multiplexern
Die
Ausgabe des Multiplexers
Die
Ausgaben der Registerdatei
Die
Ausgabe
Der
Addierer
Der
Addierer
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
Der
größte Hardwareaufwand
bzw. die meisten Hardwarekosten der Filtereinheit
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.
Die
Filtereinheit
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
Tabelle 2 – "ss"-Verzögerungsspeicher Table 2 - "ss" delay memory
Die
Ordnungseinheit
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
Die
Elemente, die in
Transformations-ZeitsteuerungTransformations timing
Die
Transformations-Zeitsteuerung der Vorwärtstransformation der
Bei
einer Ausführungsform
berechnet die dritte Filtereinheit (
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.
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: 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:
TT-TransformationTT transform
Nimmt
man Bezug auf
Beide
Ausgaben der Multiplexer
Die
Ausgaben des Speichers
Die Überlappeinheit
Die
Ausgabe der Überlappeinheit
Die Überlappeinheit
der
Der
Multiplizierer
Der
Multiplizierer
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 Table 3 - Bit significance representation for 4-bit values
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:
1000000000000111In 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
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 Table 4 - Coefficient orientation
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
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
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-DDIn the case of a four-level decomposition, where the code stream of the
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.
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
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.
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
Tabelle 5 Table 5
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.
Bemerkenswert
ist, daß zusätzlich zu
dem, was in den
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: One embodiment of ordering coding for wavelet coefficients is summarized in the following pseudo-code:
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
Als
nächstes
bestimmt ein Test, ob alle LIC-Bitebenen mit Daten kodiert worden
sind (Verarbeitungsblock
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: An embodiment of the order for coding the most important data is as follows:
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
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
- • 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:
- • 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:
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
Dann
testet die Verarbeitungslogik, ob der MIC des ganzen Baumes Null
ist (Verarbeitungsblock
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
Bei
dem Verarbeitungsblock
Die
Ausgabe des Tonnen-Schiebers
Beide
Ausgaben des Tonnen-Schiebers
Der
Tonnen-Schieber
Bei
einer Ausführungsform
können
die Vergleichseinheiten
Ein
Speicher
Kontextmodelle
(CM)
Beim
Start wird das Register
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: Each bit-level for the least important data is processed as follows:
Eine
Ausführungsform
der Verarbeitung des Kodierens einer LIC-Bitebene ist in dem Flußdiagramm der
Falls
Vorhersehen aktiv ist, schreitet die Verarbeitung beim Verarbeitungsblock
Falls
das Vorhersehen nicht aktiv ist, kodiert die Verarbeitungslogik
das Kopf- oder Schwanzbit (Verarbeitungsblock
Beim
Verarbeitungsblock
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.
Nimmt
man Bezug auf
Die
Kontexte, die durch die Kontextmodelle
Der
Ausgang des Multiplexers
Die
Kontexte und Ergebnisse werden im FIFO
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
Kontextmodell für Kopfbitscontext model for head bits
Nimmt
man Bezug auf
Der
Block
Tabelle 6 – Definition der Schwanz-Information Table 6 - Definition of tail information
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
Nimmt
man Bezug auf
Der
Ausgang des Wichtigkeitsniveaus und des Speicherbildungsblocks bzw. "Bucketing"-Blocks
Ebenso
ist der Ausgang von dem Kontextmodell
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
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.
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 Table 7 - Probability states (codes) used for tail bits
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:
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.
- • 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
Eine Drucksystemanwendung der vorliegenden ErfindungA printing system application of the present invention
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
Der
Kompressor
Die
benötigte
Bandbreite zwischen dem Dekompressor
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
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
Die
Koeffizientenausgabe von dem Wavelet-Transformationsblock
Die
Koeffizienten, die von dem Wavelet-Transformationsblock
Bei
einer Ausführungsform
umfaßt
der Kodierer/Dekodierer
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
Die
Schnittstelle
Während der
Dekompression werden kodierte Daten von dem Kodierer/Dekodierer
Die
grundsätzliche
Zeitsteuerung des Systems während
des Ausdruckens ist in
Einbetten von Koeffizienten zur Speicherung auf einer DiskEmbed of coefficients for storage on a disk
Ein
gewisser Umfang an weniger wichtigen Daten
Für schwer
zu komprimierende Bilder können
manche Daten während
der Kodierzeit weggelassen werden. Die Daten werden als am wenigsten
wichtige Daten
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
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.
Die
Abschnitte des Bandpuffers
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.
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
- * Geschrieben während der Verarbeitung des wichtigsten Teils bzw. Batzens (MIC).
- + Gelesen während inverser Transformation.
- * 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.
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
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.
Die
Ausgabe des Multiplexers
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.
Bei
einer Ausführungsform
beinhaltet der Decoder
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.
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
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
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
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:
- 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
- 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?
- 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)
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)
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)
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)
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 |
-
1998
- 1998-04-21 GB GB9808412A patent/GB2325584B/en not_active Expired - Fee Related
- 1998-04-28 JP JP11804898A patent/JP4148429B2/en not_active Expired - Fee Related
- 1998-04-30 FR FR9805485A patent/FR2763766B1/en not_active Expired - Fee Related
- 1998-04-30 DE DE19819405A patent/DE19819405B4/en not_active Expired - Fee Related
- 1998-04-30 KR KR1019980015709A patent/KR100317792B1/en not_active IP Right Cessation
-
2000
- 2000-04-28 HK HK00102587A patent/HK1023470A1/en not_active IP Right Cessation
-
2007
- 2007-03-26 JP JP2007080246A patent/JP2007267384A/en active Pending
Patent Citations (14)
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)
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 |