Vous êtes sur la page 1sur 1

M2

TSSI - UE Compression des Images et des Sons

2010-2011

COMPRESSION DES IMAGES TP1 : codage RLE et code de Huffman


I/ Compression dune image binaire par RLE


Nous allons travailler dans cette partie avec limage cadastre.tif. 1) Charger limage sous Matlab. Donner ses dimensions, et indiquer la proportion de pixels noirs ou blancs la composant. Inverser limage afin dobtenir une majorit de pixels noirs. 2) Proposer une fonction entropie calculant la quantit dinformation moyenne dune suite de symbole, tant donn leur probabilit doccurrence. Lappliquer limage traite. 3) La mme image de cadastre est fournie au format zkp (fichier cadastre.zkp). Calculer, partir de sa taille, la quantit dinformation moyenne. Comparez avec la valeur prcdente. Comment expliquer cette diffrence dentropie ? 4) Analyser en dtail et complter le programme RLE fourni. Valider son fonctionnement partir de squences de test bien choisies de votre choix. Ecrire le dcodage dune squence sous la forme dun organigramme dtaill. 5) Tester RLE sur des morceaux de limage. Comparer les rsultats en BPP (bits par pixel) pour un balayage vertical et horizontal. Comparer le meilleur BPP avec lentropie E de Shannon calcule par votre programme entropie. 6) Etudier le lien entre la longueur moyenne dune squence de 0 et le nombre N de digits codant les rptitions.

II/ Codage de Huffman

On suppose donn un vecteur contenant les N frquences des symboles coder. Nous allons crire le codage de Huffman et comparer la longueur moyenne trouve lentropie de Shannon. Le principe est de reproduire dans un tableau tab(NxN) lalgorithme vu en cours : 1) Construction de larbre : La premire colonne contient les frquences. Pour passer de la colonne n n+1, on recherche les deux frquences les plus faibles. Soient a et b (avec a<b) leurs lignes. On recopie alors la colonne n dans n+1, sauf la ligne a qui reoit la somme des frquences, et la ligne b qui reoit une valeur arbitraire (NaN par exemple). Il faut mmoriser les valeurs de a et b pour ensuite lire le code. 2) Lecture du code : on reprend de droite gauche le tableau, et on calcule les codes de chaque message en concatnant des 0 (branche suprieure) ou des 1 (branches infrieures). 3) Calculer enfin la longueur moyenne du code obtenu, et lentropie de la source considre. 4) Tester le programme sur quelques frquences ( N = 4 8 par exemple). 5) Appliquer aux lettres du franais (cf. fichier frquences lettres.doc).

Vous aimerez peut-être aussi