Cuéntame un cuento...

...o una historia, o una anécdota... Simplemente algo que me haga reir, pensar, soñar o todo a la vez, si cabe ..Si quereis mandarme alguna de estas, hacedlo a pues80@hotmail.com..

lunes, mayo 25

La magia del formato JPG

(Leído en el muro de Ciencia al límite en Facebook hace unos meses)

El formato JPEG (Joint Photographic Experts Group) es mucho más que una simple extensión de archivo; es una de las piezas de ingeniería matemática más elegantes de la era digital. Su objetivo es resolver un problema de eficiencia: ¿cómo reducir el tamaño de una imagen sin que el ojo humano note una pérdida de calidad significativa?
 
​Para lograrlo, el JPEG no guarda píxeles, guarda frecuencias.
 
​1. El Espacio de Color: De RGB a YCbCr ​El primer paso no es puramente matemático, sino biológico. El ojo humano es mucho más sensible a la brillantez (luminancia) que al color (crominancia). Por ello, el JPEG convierte el modelo RGB en YCbCr: ​Y: Luminancia (brillo).
 
​Cb y Cr: Crominancia (componentes de color azul y rojo). ​Esto permite aplicar un "submuestreo", descartando información de color que no somos capaces de percibir, reduciendo el peso del archivo antes incluso de empezar con el cálculo pesado. ​
 
2. La Transformada Discreta del Coseno (DCT) ​Aquí reside el corazón matemático del proceso. La imagen se divide en bloques de 8 x 8 píxeles. Cada bloque pasa por una operación denominada Transformada Discreta del Coseno. ​En lugar de ver el bloque como 64 puntos de color independientes, la DCT lo descompone en una suma de 64 patrones de ondas de diferentes frecuencias.
 
​El coeficiente DC representa el promedio de brillo del bloque. ​Los coeficientes AC representan las variaciones (detalles) de alta y baja frecuencia. Este paso es reversible y no pierde información por sí mismo; simplemente traslada los datos del "dominio del espacio" al "dominio de la frecuencia". 
 
​3. Cuantificación: Donde ocurre la magia (y la pérdida) ​Es en este paso donde el JPEG se vuelve un formato "con pérdida". Se aplica una matriz de cuantificación que divide cada coeficiente de la DCT por un valor específico y luego redondea al entero más cercano.
 
​Las frecuencias altas (detalles muy finos) suelen tener valores pequeños que, al ser divididos por números grandes en la matriz, se convierten en cero. El cerebro humano apenas nota la ausencia de estas frecuencias ultra-rápidas. Al final de este proceso, la mayoría de los 64 coeficientes del bloque terminan siendo ceros, lo que facilita enormemente la compresión posterior. ​4. Codificación Entrópica (Huffman) ​Finalmente, los datos restantes se organizan en un orden de "zig-zag", colocando los ceros juntos. ​Se utiliza la codificación de Huffman, un algoritmo que asigna códigos más cortos a los valores que aparecen con más frecuencia. Es como crear un alfabeto personalizado para cada imagen donde las "letras" más comunes ocupan menos espacio en la memoria. ​
 
En resumen ​El JPEG es un triunfo de la aproximación: utiliza la trigonometría para identificar qué partes de una imagen son vitales y la estadística para empaquetar lo que queda de la forma más compacta posible. Cuando ves un "artefacto" o ruido en una imagen muy comprimida, lo que estás viendo en realidad es el eco de una función coseno que no tenía suficientes datos para completarse correctamente.
 

Etiquetas: