Vai al contenuto
100% locale

Codifica run-length

Comprime i caratteri ripetuti in coppie numero-carattere e li decodifica di nuovo.

Ingresso

Codifica run-length

La codifica run-length sostituisce i caratteri ripetuti con un numero e il carattere stesso: "aaabcc" diventa "3a1b2c" — tre a, una b, due c. Questo strumento codifica il testo in questo modo, e lo decodifica direttamente, interamente nel tuo browser. È lo stesso principio dietro la compressione fax, la variante RLE di BMP e i semplici formati di asset di gioco: i dati ripetitivi si comprimono molto, e il testo senza ripetizione cambia di dimensione a malapena.

Due opzioni di formato controllano come viene scritta ogni sequenza: numero prima del carattere (3a) o carattere prima del numero (a3). Attivando "comprimere solo sequenze più lunghe di 1", gli eventi singoli rimangono nudi — "aaabcc" diventa "3ab2c" invece di "3a1b2c" — il che legge più vicino a come RLE viene insegnato, al costo di aver bisogno di un separatore per il testo che contiene anche cifre. Un separatore tra le sequenze (una virgola, uno spazio, qualsiasi cosa tu digiti) elimina completamente l'ambiguità, ed è essenziale per la modalità byte. "Elaborare riga per riga" impedisce alle sequenze di attraversare interruzioni di riga, utile quando ogni riga è davvero il suo stesso record.

La modalità byte tratta l'ingresso come byte esadecimali invece di caratteri di testo — incolla hex come "00 00 00 ff" (gli spazi vengono ignorati) e viene raggruppato e compresso byte per byte, che è il modo in cui RLE viene effettivamente utilizzato su dati binari come righe di immagini non compresse. La decodifica rispecchia ogni opzione: scegli lo stesso formato, separatore e impostazione della modalità byte utilizzati per codificare, e il testo o hex originale torna esattamente. Il contatore dal vivo mostra la lunghezza di ingresso e uscita più il rapporto di compressione, così puoi vedere a colpo d'occhio se un determinato ingresso è un buon candidato per la codifica run-length.

Tutto viene eseguito localmente nel tuo browser — nulla di ciò che incolla viene caricato da nessuna parte. Copia il risultato, scaricalo come file .txt, oppure invia l'output direttamente di nuovo nell'ingresso per cambiare direzione e verificare il viaggio di andata e ritorno.

FAQ

Cosa significa realmente 3a1b2c?
Significa tre a, una b, poi due c — la codifica run-length di "aaabcc". Il numero viene sempre con il carattere che conta, nell'ordine che sceglie l'opzione di formato.
Perché a volte la decodifica fallisce o produce testo errato?
La decodifica presuppone che il formato, il separatore e le opzioni della modalità byte corrispondano a quello che è stato utilizzato per codificare. Se il testo originale contiene caratteri numerici e nessun separatore è stato utilizzato, i numeri possono essere fraintesi come parte di un numero — aggiungi un separatore per evitare questo.
Quando la codifica run-length è veramente utile?
Su dati con lunghe sequenze ripetute — righe di immagini di colore solido, byte di riempimento, caratteri di log ripetuti — comprime molto l'output. Su prosa tipica di solito aumenta l'output, poiché la maggior parte dei caratteri non si ripete.
A cosa serve la modalità byte?
Tratta l'ingresso come byte codificati in esadecimale invece del testo, in modo che tu possa codificare con run-length i dati binari (incollati come hex) nel modo in cui i formati di immagine e fax lo fanno, byte per byte invece che carattere per carattere.
Il mio testo viene caricato da qualche parte?
No. La codifica e la decodifica vengono eseguite interamente nel tuo browser — nulla di ciò che digiti o incolla esce dal tuo dispositivo.