Compression et décompression d'une matrice : méthode de RLE (Run Lengle Ending)
Objectif
On souhaite décompresser une information en binaire correspondant à une matrice 16x4 (rouge, noir, gris, blanc)
Le wagon chiffrant une case de la matrice est un double mot de 16 bits codé en binaire et divisé en 5 labels ou étiquettes.
Etiquette (A): bit (0)
Bit de fin de texte.
A=0 ; le caractère lu est dernier du texte
Etiquette (B): bit 2
Position du caractère sur la colonne de la matrice. Il faut prendre 16 valeurs de 0000 à 1111.
Etiquette (L): bits (6) et bit(7)
Indique la ligne du caractère lu, prend 4 valeurs: L1=00 (première ligne) ; L2=01 ; L4=11
Etiquette (C) : bit(8) et (9)
Indique la couleur du caractère lu, prend =4 valeurs: noir=00 ; blanc=01 ; gris=10 et rouge=11
Etiquette (R) : bits (10) à (14)
Indique le nombre de répartition du caractère lu en allant vers la droite de la ligne considérée et recommençant à gauche de la ligne suivante (LK+1).
Il peut prendre 32 valeurs de (00000) à (11111).
Etiquette (E): bits (15)
Pour les caractères d'ordre 2K-1 on a E=1. Pour les caractères d'ordre 2K on a E=0 et lorsque A=0, on a toujours E=0.
Il indique le nouveau caractère.
Exercice d'application
Soit le train d'information, comprenant un tableau en couleur (4lignes*16colonnes).
NB: On lit ce tableau de bas vers le haut.
26 |
0111 1111 |
0000 0010 |
||
24 |
1010 0011 |
1100 0110 |
1010 1011 |
0000 0111 |
22 |
1010 0011 |
1000 0010 |
1001 0111 |
1100 0111 |
20 |
1001 0011 |
1000 0010 |
1000 1011 |
1100 0101 |
18 |
1010 1010 |
0000 1000 |
1001 0110 |
1000 0111 |
16 |
1010 1010 |
0000 0110 |
1001 0110 |
1000 0011 |
14 |
1001 0110 |
1100 0110 |
1001 0010 |
1000 0011 |
12 |
1000 1010 |
1100 0100 |
1011 1001 |
0000 1001 |
10 |
1010 1101 |
1000 0110 |
1010 1001 |
0000 0011 |
8 |
1001 0101 |
1000 1010 |
1000 1001 |
1100 0101 |
6 |
1010 1000 |
0000 1000 |
1011 0100 |
1000 0111 |
4 |
1010 1000 |
0000 0110 |
1001 0100 |
1000 1011 |
2 |
1000 1000 |
0100 0100 |
1000 0000 |
0000 0101 |
Remplir la matrice originale (M)
L1 |
N |
N |
B |
B |
G |
G |
G |
G |
G |
N |
N |
N |
G |
G |
G |
|
L2 |
R |
R |
G |
G |
G |
G |
G |
N |
G |
G |
G |
N |
N |
|||
L3 |
N |
N |
R |
|||||||||||||
L4 |