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.
Een codeur brengt gekwantiseerde wavelet coëfficiënten weer in orde om zich grote en kleine wavelet coëfficiënten in afzonderlijke groepen te groeperen zonder het gebruik van gegeven-afhankelijke gegevensstructuren te vereisen. De coëfficiënten worden dan adaptief gecodeerd gebaseerd op een looppas-lengte code die onophoudelijk een parameter die controleert het codewordsgebruik om koorden te vertegenwoordigen die van gekwantiseerde coëfficiënten wijzigt, het aantal beetjes tot doel hebben te minimaliseren besteed in codewords. Een matrijs van indexen bevat de ruwste coëfficiënten in de hogere linkerhoek, en het invullen van lage hoge en hoge lage subbanden in steeds belangrijker blokken op een afwisselende manier, dusdanig dat de lage hoge subbanden uit de bovenkant van de matrijs bestaan en de hoge lage subbanden uit de linkerkant van de matrijs bestaan. Kortste codewords worden toegewezen om een looppas van het waarschijnlijkste karakter te vertegenwoordigen dat lengte van 2.sup.k heeft, waar k een parameter is. k wordt aangepast gebaseerd op opeenvolgende karakters die worden ontmoet. k wordt verhoogd wanneer het karakter het zelfde is, en verminderde wanneer het karakter verschillend is. Een decoder past bovengenoemd in omgekeerde orde toe. Het decoderen van de gecodeerde coëfficiënten wordt eerst uitgevoerd, gevolgd door van de coëfficiënten unshuffling. Unshuffled coëfficiënten dan worden onderworpen aan een omgekeerde wavelet transformatie om de omgezette en samengeperste gegevens, zoals beeldpixel terug te krijgen.