Lecture en zigzag

La lecture en zigzag permet de transformer un bloc 8x8 en un vecteur 1x64 en classant les coefficients par ordre des fréquences croissantes.

Codage différentiel sur la composante DC

La composante DC d'un bloc est souvent proche de la valeur DC du bloc précédent, donc on ne code pas directement la valeur du coefficient DC, mais la différence par rapport au coefficient DC du bloc précédent. La méthode de codage est appelée DPCM pour Differential Pulse Code Modulation.

 

Codage par plages sur les composantes AC

Le vecteur 1x64 contient beaucoup de zéros consécutifs. On code des paires (longueur, valeur), où longueur est le nombre de zéros et valeur est la valeur de la composante AC non nulle suivant immédiatement la chaîne de zéros dans l'ordre de lecture zigzag. Pour les derniers '0' du bloc, non suivis d'une valeur non nulle, on envoie un code spécial " End of Block ". Cette méthode se nomme RLE pour Run Length Encoding, codage par plage.

 

Codage entropique

Après l'encodage DPCM et RLE, on code les valeurs obtenues à l'aide d'un code à longueur variable de type Huffman pour le profil de base de JPEG.