Utente:Hellis/Run-length encoding

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

L'algoritmo Run-length encoding (RLE) è uno dei primi algoritmi di compressione inventati. Viene utilizzato principalmente per memorizzare dati che contengono al loro interno molte ripetizioni.

L'idea che sta alla base dell'algoritmo è di individuare simboli che vengono ripetuti sequenzialmente all'interno del file e di sostituirli con una rappresentazione compatta, tipicamente il simbolo più il numero di ripetizioni.

Per esempio la stringa

"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"

codificata con l'algoritmo RLE diventerebbe:

12W1B12W3B24W1B14W

Quindi una stringa di 67 caratteri viene codificata con una stringa di 18 caratteri, portando una compressione di quasi il 75%.

Questo algoritmo mostra buone prestazioni in presenza di file con molte ripetizioni consecutive, questa condizione si verifica spesso nelle immagini con pochi colori. L'algoritmo ha inoltre due grandi vantaggio, è semplice da implementare e molto veloce nella codifica e nella decodifica dei file, difatti i primi formati grafici lo implementavano dato che i primi computer avevano pochi colori e non erano molto potenti quindi richiedevano degli algoritmi di compressione molto veloci.