Le standard JPEG 2000 utilise un quantificateur scalaire uniforme à zone morte. La quantification vectorielle bien que théoriquement plus performante est considérée comme trop coûteuse. Le quantificateur scalaire uniforme est au contraire extrêmement simple d’implémentation et peu coûteux.
L’intérêt de la zone morte provient des très nombreux coefficients ondelettes non-nuls mais proches de zéro. Ces coefficients n’apportent que très peu d’information pertinente, et leur codage entropique impliquerait un important surcoût au vu de la qualité gagnée. La zone morte permet donc de se débarrasser de ces coefficients en les quantifiant à zéro.
Dans la terminologie JPEG 2000 un paquet est constitué d'un en-tête et du regroupement des données entropiques associées à une tuile, une couche de qualité, une composante, une résolution et un precinct. Pour une image monochrome (1 composante) compressée avec les options par défaut (1 tuile, 1 precinct, 1 couche de qualité et 5 résolutions) le nombre de paquets est donc de 5.
L'ordre des paquets est important car il détermine la progressivité. Selon que l'on désire une progressivité spatiale, par couche de qualité, ou même par composante, l'ordre des paquets sera différent pour permettre un décodage progressif selon la modalité choisie.
Un paquet peut être vide, il n'y a alors pas de données entropiques qui correspondent à ce precinct particulier, dans cette couche de qualité, cette composante et cette résolution. Ceci peut arriver sur de petites images sur-découpées par des tuiles et des precincts.
Cette fonction peut varier fortement d'un algorithme de codage à un autre suivant les performances et fonctionnalités escomptées pour le codeur. Néanmoins tous les algorithmes d'allocation de débit ont pour but commun la création de paquets de données tels qu'ils sont définis dans la norme.
Chaque paquet correspond à une certaine couche (généralement associé au concept de qualité) d'un niveau de résolution d'une composante de l'image. Il est constitué d'un en-tête identifiant son contenu et permettant un accès aléatoire rapide dans le codestream, ainsi que de données compressées obtenues par concaténation d'un certain nombre de coding passes de code-blocks d'un même niveau de résolution. Afin d'obtenir des taux de compression élevés, les dernières coding passes d'un code-block sont souvent sautées. Ce dernier cas revient plus ou moins à changer le pas de quantification, et donc à diminuer la précision des coefficients dont les bits de poids les plus faibles ont été évincés.
Enfin chaque paquet est ajouté au codestream à la suite d'un en-tête (regroupant tous les paramètres de codage) et suivant un ordre d'inclusion dépendant du type de progression désiré (ex: par résolution, par couche). Rappelons tout de même qu'il est toujours possible de modifier la progression au moment de la transmission, à partir d'un même codestream stocké côté serveur. Ainsi, suivant l'ordre dans lequel le décodeur reçoit les paquets, il est capable de reconstruire une image progressivement par résolution ou par couche.
Une originalité de JPEG 2000 est d’inclure des outils de résistance aux erreurs de transmission. Le problème vient essentiellement du codeur arithmétique car un seul bit erroné entraîne le décodage d’une mauvaise séquence.
Par défaut, le codage arithmétique agit en effet sur un code-bloc. En cas d’erreur (un seul bit erroné suffit) c’est l’ensemble du code-bloc qui est perdu. Afin de limiter les effets de ces erreurs, la norme propose plusieurs outils, dont la philosophie est essentiellement de compartimenter les mots de codes ou de réduire leur longueur afin d'éviter la propagation des erreurs ou de limiter leurs effets.
Les outils proposés sont les suivants :
Ces outils ne suffisent pas pour une transmission sans fil. Des méthodes spécifiques ont été développées dans la partie 11 du standard, JPEG 2000 Wireless (JPWL).