seegongsik
Mis palabras
Datos

Compresión: guardarlo más pequeño

Al meter una carga larga en una bolsa, has enrollado la misma ropa para hacerla más pequeña. No tiras nada y, aun así, ocupa menos. Los datos pueden hacer lo mismo. Mantener la misma información reduciendo solo el espacio que ocupa es la compresión.

01

Recorta la repetición

Antes vimos que la información
ocupa espacio como bits, ceros y unos.
Si pudiéramos guardarla ocupando menos,
mantendríamos la misma información más pequeña.
La habilidad más fácil es recortar la repetición.
Cuando la misma letra se alarga en fila,
en vez de escribir cada una,
anotamos solo qué se repite y cuántas veces.
AAAA se vuelve A cuatro veces, así.

comprimido · longitud 12
original · longitud 12
AAAABBBCCCCC
Toca una serie repetida para encogerla

Toca una serie de letras repetidas. La serie larga se reduce a qué se repite y cuántas veces, y la longitud baja.

La serie larga se encogió.
No se tiró ni una letra.
Solo anotamos qué y cuántas veces.
Así que al expandirla vuelve el original.
Cuanta más repetición, más encoge.
Pero ¿y si no es la misma letra en fila,
sino que el mismo trozo está disperso por ahí?
¿Cómo encogeríamos eso?

02

Haz el patrón corto

Las repeticiones dispersas también se recortan.
Encuentra un trozo largo que aparezca a menudo
y fíjale un único código corto.
Luego, cada vez que el trozo largo aparezca,
escríbelo como ese código corto.
Lo que significa el código
puede quedar en una tabla aparte.
Cuanto más aparezca un trozo, mayor la ganancia,
ya que más cambios significan más encogimiento.

datos · longitud 18
thexandtheyandthez
da un código a un trozo frecuente
Toca un trozo para asignarle un código corto

Toca un trozo frecuente para asignarle un código corto. Ese trozo se vuelve el código y la longitud total baja.

Al cambiar el trozo largo por un código corto,
el conjunto encogió notablemente.
Recortar repeticiones y dar códigos cortos
vienen de la misma idea, al fin:
guardar la misma información en menos sitio.
Pero una vez que lo hemos encogido así,
querremos el contenido original más tarde,
así que al expandirlo, ¿vuelve de verdad exacto?

03

Deshazlo y vuelve el original

Esta es la promesa más sólida de la compresión.
Encógelo pequeño y luego expándelo otra vez,
y el original vuelve sin una sola letra mal.
Natural, ya que nada se tiró.
A cuatro veces vuelve a ser AAAA,
y el código corto vuelve a ser el trozo largo.
La compresión que no pierde nada así
se llama sin pérdida.
Encaja con lo que no puede fallar ni en una letra,
como el texto o los programas.

comprimido
descomprimido
Toca los tokens comprimidos por turno para expandir
original
AAAAtheBB
Toca los tokens comprimidos por turno para expandir

Toca la copia comprimida para expandirla. La forma encogida se descomprime a letras y compruebas que coincide con el original, lado a lado.

El expandido coincidió exacto con el original.
Aun guardado pequeño, nada se perdió.
Así que podemos comprimir sin preocupación
y recuperarlo tal cual cuando haga falta.
Entonces, ¿deberíamos comprimir siempre
tan fuerte como podamos?
En realidad hay un canje escondido ahí.
¿Vemos qué se cambia por qué?

04

Más pequeño frente a tiempo

La compresión te deja elegir una intensidad.
Ve suave y es rápido pero encoge menos;
ve fuerte y encoge más,
pero comprimir y descomprimir lleva más tiempo.
Cuanto más cuidas la búsqueda de repeticiones y patrones,
más pequeño queda, pero más esfuerzo cuesta.
Así que la respuesta correcta cambia con la situación.
Si el espacio aprieta, ve fuerte;
si debe ser rápido, ve suave.

tamaño
tiempo
Elige una intensidad de compresión

Elige y toca una intensidad de compresión. Cuanto más fuerte, menor el tamaño pero mayor el tiempo, el canje a la vista.

Viste tirar el tamaño y el tiempo uno del otro.
No puedes tener ambos.
Guárdalo más pequeño y esperas más;
termina más rápido y encoge menos.
Así que la compresión es una herramienta que eliges cómo usar.
Para guardar mucho tiempo, ve fuerte;
para abrirlo a menudo, ve suave.
Ahora resumamos todo.

05

Resumamos

Reunido en una línea, es esto.
La compresión guarda la misma información más pequeña.
La repetición se reduce a qué y cuántas veces,
y un trozo frecuente recibe un código corto.
Deshazlo y vuelve el original, así nada se pierde.
Comprime más fuerte y es más pequeño,
pero cuesta más tiempo, así que elige por la situación.
Guárdalo pequeño y deshacerlo lo devuelve tal cual;
eso es la compresión.

Toca los puntos clave en orden para repasar.

Toca los puntos clave en orden para repasar. (recorta la repetición -> código corto para trozos frecuentes -> deshacer devuelve el original -> canje de más pequeño frente a tiempo)

Ahora tienes la maña
de guardar la misma información más pequeña.
Solo recortar la repetición y dar códigos cortos
te deja ahorrar espacio con tino.
Y como deshacerlo devuelve el original tal cual,
puedes guardarlo pequeño sin preocupación.
Este sentido de manejar datos pequeños pero enteros
se enlaza con la próxima historia.
Sigamos explorando juntos.

En una líneaLa compresión es el arte de guardar la misma información en menos espacio. Hay dos habilidades. Una es recortar la repetición. Cuando lo mismo se alarga como AAAA, escribir A cuatro veces lo acorta. La otra es dar un código corto a un trozo que aparece a menudo. Cambiar un trozo largo por un símbolo corto encoge el conjunto. Y una copia comprimida, al deshacerla, es exactamente el original; nada se tiró. Esto se llama sin pérdida. Comprime más fuerte y queda más pequeño, pero comprimir y descomprimir lleva más tiempo. Así que negocias entre cuán pequeño y cuán rápido. En resumen, recorta la repetición y da códigos cortos para guardarlo pequeño, mientras que deshacerlo devuelve el original; eso es la compresión.
Datos
¿Te fue útil? Apoyar seegongsik