Saltar al contenido
Totalmente local

Codificación run-length

Comprime caracteres repetidos en pares de número-carácter, y decodifícalos de nuevo.

Entrada

Codificación run-length

La codificación run-length reemplaza caracteres repetidos con un número y el carácter en sí: "aaabcc" se convierte en "3a1b2c" — tres a's, una b, dos c's. Esta herramienta codifica texto de esa manera, y lo decodifica inmediatamente, completamente en tu navegador. Es el mismo principio detrás de la compresión de fax, la variante RLE de BMP y formatos simples de activos de juegos: los datos repetitivos se encogen mucho, y el texto sin repetición apenas cambia de tamaño.

Dos opciones de formato controlan cómo se escribe cada ejecución: número antes del carácter (3a) o carácter antes del número (a3). Al activar "comprimir solo ejecuciones más largas que 1", los caracteres solitarios quedan sin codificar — "aaabcc" se convierte en "3ab2c" en lugar de "3a1b2c" — lo que se parece más a cómo se enseña RLE, a costa de necesitar un separador para texto que también contenga dígitos. Un separador entre ejecuciones (una coma, un espacio, cualquier cosa que escribas) elimina esa ambigüedad por completo, y es esencial para el modo de bytes. "Procesar línea por línea" evita que las ejecuciones atraviesen saltos de línea, útil cuando cada línea es realmente su propio registro.

El modo de bytes trata la entrada como bytes hexadecimales en lugar de caracteres de texto — pega hex como "00 00 00 ff" (se ignoran los espacios) y se agrupa y comprime byte por byte, que es cómo RLE se usa realmente en datos binarios como filas de imágenes sin comprimir. La decodificación refleja cada opción: elige el mismo formato, separador y configuración de modo de bytes usados para codificar, y el texto original o hex vuelve exactamente. El contador en vivo muestra la longitud de entrada y salida más la relación de compresión, para que puedas ver de un vistazo si una entrada dada es una buena candidata para la codificación run-length.

Todo se ejecuta localmente en tu navegador — nada de lo que pegues se carga a ningún sitio. Copia el resultado, descárgalo como archivo .txt, o envía la salida directamente de vuelta a la entrada para cambiar de dirección y verificar el viaje de ida y vuelta.

Preguntas frecuentes

¿Qué significa realmente 3a1b2c?
Significa tres a's, una b, entonces dos c's — la codificación run-length de "aaabcc". El número siempre viene con el carácter que cuenta, en el orden que elija la opción de formato.
¿Por qué a veces la decodificación falla o produce texto incorrecto?
La decodificación asume que el formato, separador y opciones de modo de bytes coinciden con lo que se usó para codificar. Si el texto original contiene caracteres de dígitos y no se usó separador, los dígitos pueden malinterpretarse como parte de un número — agrega un separador para evitar eso.
¿Cuándo es realmente útil la codificación run-length?
En datos con ejecuciones repetidas largas — filas de imágenes de color sólido, bytes de relleno, caracteres de registro repetidos — encoge la salida mucho. En prosa típica generalmente crece la salida, ya que la mayoría de los caracteres no se repiten.
¿Para qué sirve el modo de bytes?
Trata la entrada como bytes codificados en hexadecimal en lugar de texto, para que puedas codificar con run-length datos binarios (pegados como hex) de la manera en que lo hacen los formatos de imagen y fax, byte por byte en lugar de carácter por carácter.
¿Mi texto se carga a algún sitio?
No. La codificación y decodificación se ejecutan completamente en tu navegador — nada de lo que escribas o pegues sale de tu dispositivo.