Compresión de datos

En esta página, aprenderás sobre diferentes algoritmos de compresión de datos.
DAT-1.D.1

El tamaño de los datos (el número de bits necesarios para almacenarlos) afecta al tiempo que se tarda en enviar esos datos a través de Internet. Entonces, la gente usa compresión de datos algoritmos para reducir el tamaño de imágenes, sonidos, películas y algunos otros tipos de datos.

DAT-1.D.3

La cantidad de reducción de tamaño depende de dos cosas:

  1. la cantidad de redundancia en los datos originales
  2. el algoritmo de compresión aplicado

Hay dos grandes categorías de algoritmos de compresión de datos: sin pérdida y con pérdida, dependiendo de si se pierde información.

: Compresión sin pérdida

Los algoritmos de compresión de datos sin pérdida (lossless data compression) (como PNG) son reversibles (no hay pérdida de calidad); puedes reconstruir los datos originales.

DAT-1.D.4

La compresión sin pérdida funciona por eliminación de datos redundantes. Estos algoritmos pueden, usualmente, reducir el número de bits necesarios para almacenar o transmitir los datos, garantizando al mismo tiempo que los datos originales se puedan reconstruir perfectamente.

Logo de BJC sin comprimir

La codificación de longitud de ejecución (run-length encoding en inglés) es un ejemplo de compresión sin pérdida. Fíjate en los 158 píxeles en la fila superior del logo de BJC (a la derecha). Los primeros 60 píxeles son blancos. Luego vienen cinco píxeles de naranja amarillento (la parte superior de la "b"). Y el resto de esa fila es blanca.

...Primera fila de píxeles en el logo de BJC: 4 blancos, 6 amarillo-naranja, 3 blancos...

En lugar de almacenar los 158 píxeles individualmente, podríamos comprimirlos con codificación de longitud de ejecución y solo almacenar seis valores (tres números y tres colores):

pixel count color code
60 FFFFFF
5 E5A84A
93 FFFFFF
DAT-1.D.2

Esos seis valores (60, FFFFFF, 5, E5A84A, 93, FFFFFF) se pueden reconstruir en toda esa primera fila de la imagen (158 píxeles). Por lo tanto, menos bits no significa necesariamente menos información.

: Compresión con pérdida

Los algoritmos de compresión de datos con pérdida (lossy data compression) no son totalmente reversibles; solo pueden reconstruir una aproximación de los datos originales.

DAT-1.D.5

La compresión con pérdida funciona eliminando detalles que son menos perceptibles para las personas. El algoritmo de compresión con pérdida más utilizado para imágenes se llama JPEG (o JPG, ambos pronunciados "llei-peg" para "Joint Photographic Experts Group", el comité que lo inventó). JPEG funciona preservando la mayor parte de la información de brillo para cada píxel (ya que los ojos humanos son sensibles a eso) y realizando una especie de proceso de promedio de la información de color (porque los ojos humanos no son tan buenos para distinguir el color, especialmente los colores cercanos al blanco).

A continuación se muestra una imagen original sin comprimir de guijarros (piedras pequeñas) en un estanque y un JPEG altamente comprimido de la misma imagen. ¿Puedes decir cuál es cuál?
imagen de piedras pequeñas en un estanque imagen de piedras pequeñas en un estanque

Probablemente puedas decir cuál es cuál, especialmente si buscaste bordes afilados o manchas muy brillantes. Pero el archivo comprimido usa 1/30 del espacio utilizado por el original, e incluso se podría decir que es una imagen de rocas. Por lo tanto, para muchos propósitos, la versión comprimida sería lo suficientemente buena. Los algoritmos con pérdida generalmente te permiten controlar el grado de precisión, y, en general, las personas seleccionan configuraciones de compresión menos extremas, por lo que el archivo comprimido se parece mucho más al original que a este ejemplo.

¿Qué tamaño tiene este archivo cuando se codifica en diferentes formatos?

Aquí están los tamaños de la imagen de los guijarros en el estanque en cuatro formatos diferentes:
formato tamaño
BMP codificando cada píxel individualmente (se muestra arriba) 148 kB
PNG 106 kB
JPEG con la menor compresión 94 kB
JPEG con la mayor compresión (se muestra arriba) 5 kB

El formato MP3, que probablemente usas para archivos de música portátiles, es un formato de compresión con pérdida. Tiende a enfatizar las frecuencias altas, por lo que las personas acostumbradas a la música MP3 encuentran que las versiones sin comprimir de la misma música tienen un sonido excesivamente grave (boomy o con mucho énfasis en los graves).

¿Cuál es el mejor?

Ambos tipos de compresión de datos existen porque cada uno es útil en ciertas circunstancias:

  1. Estas preguntas son similares a las que verá en el examen AP CSP.
    Un estudiante de cine graba una película en su teléfono inteligente y luego guarda una copia en su computadora. Se da cuenta de que la copia guardada es de una calidad de imagen mucho menor que la original. ¿Cuál de los siguientes podría NO ser una posible explicación para la menor calidad de imagen?
    La película se guardó usando menos bits por segundo (una velocidad de bits más baja) que la película original.
    La copia del archivo de película se corrompió de alguna manera en el proceso de guardado.
    La película se guardó utilizando una técnica de compresión con pérdida.
    Cada vez que se guarda un archivo de una computadora a otra, siempre se pierde cierta información.
    Un artista visual está procesando una imagen digital. ¿Cuál de las siguientes opciones describe una transformación sin perdida de la que se puede recuperar la imagen original? Elige dos respuestas.
    Crear el negativo de una imagen, donde los colores se invierten (las áreas oscuras aparecen claras).
    Desenfocar los bordes de una imagen.
    Crear una copia en escala de grises de una imagen.
    Creación de una copia de la imagen volteada verticalmente.
    DAT-1.D
    ¿Para cuál de los siguientes tipos datos podría usarse la compresión de datos con pérdida? Marca todas las respuestas que apliquen.
    El código HTML de esta página web.
    Imagen del escritorio del equipo.
    Una película de acción en vivo en Netflix.
    Una caricatura en Netflix.
    Un libro digital, para ser leído en una computadora.