An encoder reorders quantized wavelet coefficients to cluster large and
small wavelet coefficients into separate groups without requiring the use
of data-dependent data structures. The coefficients are then adaptively
encoded based on a run-length code which continuously modifies a parameter
that controls the codewords uses to represent strings of quantized
coefficients, seeking to minimize the number of bits spent in the
codewords. A matrix of indices contains the coarsest coefficients in the
upper left corner, and filling in low high and high low sub bands in
larger and larger blocks in an alternating manner, such that low high sub
bands comprise the top of the matrix and the high low sub bands comprise
the left side of the matrix. The shortest codewords are assigned to
represent a run of the most likely character having length of 2.sup.k,
where k is a parameter. k is adjusted based on successive characters being
encountered. k is increased when the character is the same, and decreased
when the character is different. A decoder applies the above in reverse
order. Decoding of the encoded coefficients is first performed, followed
by an unshuffling of the coefficients. The unshuffled coefficients are
then subjected to an inverse wavelet transform to recover the transformed
and compressed data, such as image pixels.
Ein Kodierer ordnet quantisierte Waveletkoeffizienten neu, um sich die großen und kleinen Waveletkoeffizienten in unterschiedliche Gruppen zu sammeln, ohne den Gebrauch von Daten-abhängigen Datenstrukturen zu erfordern. Den Koeffizienten werden dann anpassungsfähig basiert auf einem Laufen lassenlänge Code kodiert, der ununterbrochen einen Parameter ändert, der den codewords Gebrauch steuert, Zeichenketten der quantisierten Koeffizienten darzustellen und sucht, die Zahl den Spitzen herabzusetzen, die in den codewords ausgegeben werden. Eine Matrix von Indizes enthält die gröbsten Koeffizienten in der oberen linken Ecke, und die hohen und stark niedrigen Vorbänder in den größeren und größeren Blöcken in einer wechselnden Weise, so niedrig ausfüllen, daß niedrig hohe Vorbänder die Oberseite von der Matrix enthalten und die hohen niedrigen Vorbänder die linke Seite von der Matrix enthalten. Die kürzesten codewords werden zugewiesen, um einen Durchlauf des wahrscheinlichsten Buchstabens darzustellen, der Länge von 2.sup.k hat, in dem k ein Parameter ist. k wird gründete auf den aufeinanderfolgenden Buchstaben justiert, die angetroffen werden. k wird erhöht, wenn der Buchstabe derselbe ist, und verringert, wenn der Buchstabe unterschiedlich ist. Ein Decoder wendet das oben genannte im Rückauftrag an. Die Decodierung der kodierten Koeffizienten wird zuerst durchgeführt, gefolgt durch ein Unshuffling der Koeffizienten. Unshuffled Koeffizienten werden unterworfen dann einem umgekehrten Wavelet umwandeln, um die umgewandelten und zusammengedrückten Daten, wie Bildpixel zurückzugewinnen.