RLE este un acronim pentru Run Length Encoding, sau RLC care vine de la Run Length Coding.
Ideea in aceasta schema este sa recodezi datele care se refera la cadrele ce se repeta. Un cadru este unul sau mai multi biti care se repeta o data sau de mai multe ori.
Exista mai multe feluri de repetitii de codat, deci vor exista cateva scheme de codare. De exemplu poti avea o secventa ca :
0,0,0,0,0,0,255,255,255,2,3,4,2,3,4,5,8,11
Unele scheme de codare se vor ocupa doar de repetitiile de "0" si "255" in timp ce altele se vor ocupa cu repetitiile de "0","255" si "2,3,4".
Trebuie retinut ceva important in legatura cu acest exemplu : nu e suficienta o singura schema pentru a incerca sa codezi date. Deci in acest caz nonexistenta unei secvente repetitive nu ar trebuie sa ne dea un mesaj de care sa indice esecul.
Toti algoritmii cu numele RLE includ urmatoarele valori in cadrul fisierului comprimat :
-valoare despre faptul ca exista repetitie;
-valoare despre cate repetitii (nonrepetitii ) sunt;
-valoare despre lungimea cadrului (nefolositoare daca codezi un cadru de un byte);
-valoarea cadrului care trebuie repetat;
Prima schema RLE
Prima schema este cea mai simpla si seamana cu cea folosita in sistemele MAC si cateva formate de fisiere de imagine ca Targa, PCX, TIFF,
In aceasta schema, toate blocurile comprimate incep cu un bait, numit header, descris astfel :
biti76543210
headerxxxxxxxx
Bitii 7 : stare de compresie (1=compresie aplicata);
0 - 6 Numarul de biti folositi;
Daca bitul 7 este setat pe 0, bitii de la 0 la 6 dau numarul de baiti ce urmeaza ( minus 1) si care nu au fost comprimati (baiti nativi). Daca bitul 7 este setat pe 1, aceeasi biti de la 0 la 6 dau numarul de repetitii (minus 2) incepand de la baitul urmator.
Dupa cum se poate vedea, aceasta metoda se ocupa doar de cadrele de un bait.
Schema de compresie:
Exemplu:
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.