Compresión de datos
Olivia tiene un plan de celular con 6,000 MB de datos al mes y le encanta ver videos. Un video en alta calidad se come sus datos en unos días, pero la versión de «ahorro de datos» le rinde mucho más. ¿Cómo es posible que el mismo video ocupe menos espacio? ¿Y qué pierde Olivia a cambio? Eso es la compresión de datos.
Qué es comprimir
Comprimir es representar la misma información con menos bits. Un archivo más pequeño se guarda en menos espacio y viaja más rápido por Internet, porque hay menos bits que enviar.
Casi siempre se comprime porque los datos tienen repeticiones o detalles que casi nadie nota. Una foto del cielo tiene miles de píxeles casi del mismo azul. Un texto repite palabras. Una canción tiene sonidos que el oído apenas distingue.
Hay dos grandes familias:
Ejemplos que conviene conocer:
| Tipo | Formatos | Se usa para |
|---|---|---|
| Sin pérdida | ZIP, PNG, FLAC | Documentos, hojas de cálculo, programas, capturas de pantalla |
| Con pérdida | JPEG, MP3, video en streaming | Fotos, música y video para ver o escuchar |
Define con tus propias palabras la compresión sin pérdida (lossless) y la compresión con pérdida (lossy). Luego clasifica cada caso como sin pérdida o con pérdida: (i)…
Define con tus propias palabras la compresión sin pérdida (lossless) y la compresión con pérdida (lossy). Luego clasifica cada caso como sin pérdida o con pérdida: (i) un archivo ZIP de una hoja de cálculo, (ii) la versión MP3 de una canción, (iii) una foto JPEG guardada con baja calidad.
Cuánto se reduce: el porcentaje
Para comparar compresiones se usa el porcentaje de reducción:
$$\text{reducción} = \frac{\text{tamaño original} - \text{tamaño comprimido}}{\text{tamaño original}} \times 100\%$$Se divide entre el original porque queremos saber qué fracción del archivo se «ahorró».
Un archivo de 12 MB se comprime a 3 MB. a) ¿En qué porcentaje se redujo el tamaño del archivo? b) ¿Puedes saber solo con estos números si la compresión fue sin pérdida o…
Un archivo de 12 MB se comprime a 3 MB.
- a) ¿En qué porcentaje se redujo el tamaño del archivo?
- b) ¿Puedes saber solo con estos números si la compresión fue sin pérdida o con pérdida? Explica.
Sofia tiene una foto original de 24 MB. La aplicación de edición ofrece estas configuraciones de exportación con pérdida: | Configuración | Tamaño del archivo |…
Sofia tiene una foto original de 24 MB. La aplicación de edición ofrece estas configuraciones de exportación con pérdida:
| Configuración | Tamaño del archivo |
|---|---|
| Alta | 6 MB |
| Media | 2 MB |
| Baja | 0.5 MB |
- a) Calcula el porcentaje de reducción del tamaño para cada configuración, redondeado a la décima de porcentaje más cercana.
- b) ¿Qué configuración elegirías para una miniatura en un sitio web? ¿Cuál guardarías para imprimir un póster más adelante? Explica, y di qué debe hacer Sofia con el archivo original.
Cómo se comprime sin pérdida
Codificación por longitud de series
La codificación por longitud de series (run-length encoding, RLE) reemplaza una repetición por un conteo seguido del carácter: AAA se convierte en 3A.
RLE es sin pérdida: con la versión codificada se reconstruye exactamente la original. Funciona muy bien con datos con muchas repeticiones (un logo de pocos colores), pero con datos sin repeticiones puede hacer el archivo más grande: ABCD se vuelve 1A1B1C1D.
Códigos de longitud variable
Un texto con 4 letras se puede guardar con 2 bits por letra. Pero si una letra aparece mucho más que las demás, conviene darle un código más corto, y a las raras uno más largo. En promedio se usan menos bits.
Sigue siendo sin pérdida: ningún código es el comienzo de otro, así que al leer los bits solo hay una forma de separar las letras. Por ejemplo, 0 solo puede ser A, y 10 solo B.
La codificación por longitud de series (run-length encoding) reemplaza los caracteres repetidos por un conteo seguido del carácter. Por ejemplo, AAA se convierte en 3A.…
La codificación por longitud de series (run-length encoding) reemplaza los caracteres repetidos por un conteo seguido del carácter. Por ejemplo, AAA se convierte en 3A.
- a) Codifica la cadena
AAAABBBCCD. ¿Cuántos caracteres tiene la original y cuántos la versión codificada?
- b) Decodifica
3X5Y1Z.
- c) ¿La codificación por longitud de series es sin pérdida o con pérdida? Justifica tu respuesta.
Un mensaje tiene 1,000 caracteres, y cada carácter es una de cuatro letras: A, B, C o D. Las letras aparecen con estas frecuencias: A 50%, B 25%, C 12.5%, D 12.5%. a)…
Un mensaje tiene 1,000 caracteres, y cada carácter es una de cuatro letras: A, B, C o D. Las letras aparecen con estas frecuencias: A 50%, B 25%, C 12.5%, D 12.5%.
- a) ¿Cuántos bits necesita el mensaje si cada carácter se guarda con 8 bits? ¿Y con un código fijo de 2 bits por carácter?
- b) Un código de longitud variable usa A =
0, B =10, C =110, D =111. Calcula el promedio de bits por carácter y el total de bits para el mensaje de 1,000 caracteres.
- c) ¿El código de longitud variable es sin pérdida o con pérdida? Explica por qué no se pierde información y explica por qué una letra frecuente debe recibir un código más corto.
Con pérdida: elegir y justificar
La compresión con pérdida logra archivos mucho más pequeños porque descarta lo que menos se nota: variaciones finas de color en un JPEG, o sonidos muy agudos en un MP3. Cuanto más se comprime, más se pierde, y esa pérdida no se puede deshacer.
Elegir es una concesión (trade-off):
| Factor | Sin pérdida | Con pérdida |
|---|---|---|
| Tamaño | Mayor | Mucho menor |
| Calidad | Exacta | Algo menor |
| Se puede recuperar el original | Sí | No |
| Datos y tiempo de descarga | Más | Menos |
Pregúntate: ¿puedo permitirme perder detalles?
-
Contrato, código o hoja de cálculo: un solo carácter cambiado arruina todo. Usa sin pérdida.
-
Video en el celular con datos limitados, o miniatura de una página web: el ojo no nota la diferencia. Usa con pérdida.
-
Archivo que quizá edites o imprimas más adelante: guarda el original (o una copia sin pérdida). Si comprimes con pérdida y borras el original, no hay vuelta atrás.
Un bufete de abogados quiere comprimir un contrato escaneado antes de enviarlo por correo, y cada carácter debe quedar exactamente igual. ¿Debe usar compresión sin…
Un bufete de abogados quiere comprimir un contrato escaneado antes de enviarlo por correo, y cada carácter debe quedar exactamente igual. ¿Debe usar compresión sin pérdida o con pérdida? Explica tu elección en dos o tres oraciones.
Olivia tiene un plan de celular con un límite de datos de 6,000 MB al mes. Una hora de video usa 1,200 MB en alta calidad y 450 MB en una calidad de «ahorro de datos»…
Olivia tiene un plan de celular con un límite de datos de 6,000 MB al mes. Una hora de video usa 1,200 MB en alta calidad y 450 MB en una calidad de «ahorro de datos» con pérdida.
- a) ¿Cuántas horas completas de video puede ver cada mes en cada calidad?
- b) Describe una concesión (trade-off) que hace al elegir la calidad de ahorro de datos.
Un servicio de música en línea guarda cada canción en dos versiones: una versión sin pérdida de 40 MB y una versión con pérdida de 4 MB. La biblioteca de un usuario…
Un servicio de música en línea guarda cada canción en dos versiones: una versión sin pérdida de 40 MB y una versión con pérdida de 4 MB. La biblioteca de un usuario tiene 500 canciones.
- a) Calcula el almacenamiento total que necesita la biblioteca en cada versión, en GB. Usa $1\text{ GB} = 1{,}000\text{ MB}$.
- b) Recomienda una versión para (i) una persona que escucha música con audífonos en el autobús escolar y tiene un celular con almacenamiento limitado, y (ii) un ingeniero de sonido que archiva grabaciones para remezclarlas después. Justifica cada elección usando la concesión entre tamaño y calidad.
- c) Explica por qué convertir un archivo con pérdida de nuevo a un formato sin pérdida no recupera la calidad original.
Resumen
-
Comprimir es guardar la misma información (o casi) con menos bits, para ahorrar espacio y tiempo de transferencia.
-
Sin pérdida (lossless): se recupera el original exacto (ZIP, PNG). Con pérdida (lossy): se descarta información y no se recupera (JPEG, MP3).
-
Reducción: $\frac{\text{original} - \text{comprimido}}{\text{original}} \times 100\%$. El tamaño no revela por sí solo si hubo pérdida.
-
RLE y los códigos de longitud variable son sin pérdida: los símbolos frecuentes reciben códigos cortos.
-
Elegir es una concesión entre tamaño y calidad: sin pérdida cuando todo debe ser exacto; con pérdida cuando importa ahorrar y se tolera perder detalle. Conserva el original si lo vas a necesitar.
Vuelve al principio: Olivia ve más video porque la compresión con pérdida descarta detalles que apenas se notan. La concesión es algo menos de calidad de imagen.