Dev & Código Jul 18, 2026Añadir a favoritos

Un entusiasta publica una exploración inversa del códec JPEG: generar imágenes que, al decodificarse, produzcan artefactos deliberados jugando con la cuantificación DCT. Curioso, instructivo y un excelente ejercicio para comprender el formato.
En la página principal de Hacker News esta semana, un artículo titulado « Regressive JPEGs » (maurycyz.com/projects/bad_jpeg/) llamó nuestra atención. Su autor documenta una exploración inversa del códec JPEG: en lugar de optimizar una imagen para tamaño y calidad, genera JPEG deliberadamente degradados manipulando las tablas de cuantificación y los bloques DCT (Transformada Discreta del Coseno).
No es una herramienta de producción, pero es un excelente pretexto para entender cómo funciona JPEG bajo el capó: un formato que la mayoría de los desarrolladores usan sin haber leído nunca la especificación.
JPEG (Joint Photographic Experts Group, estándar ISO/IEC 10918-1 de 1992) sigue un flujo clásico:
La calidad percibida depende principalmente del paso 5: cuanto más agresiva sea la tabla de cuantificación, más se pierden detalles en las altas frecuencias.
El autor desvía este mecanismo. Al construir tablas de cuantificación exóticas (valores muy altos en ciertas frecuencias, valores anormalmente bajos en otras), produce JPEG que, al ser leídos por un decodificador estándar, exhiben:
El interés pedagógico es real: se ven a simple vista los efectos de cada parámetro del códec en la preservación de la imagen.
Más allá de la curiosidad, hay algunos usos legítimos:
En el fondo, este tipo de proyectos muestra que un formato que creemos una caja negra siempre esconde palancas explotables, ya sea para lo mejor o por pura curiosidad.
La especificación original de JPEG (ITU T.81 / ISO 10918-1) es extensa pero legible, y es la mejor entrada para entender qué ve realmente un decodificador. En cuanto a herramientas, libjpeg-turbo (Darrell Commander) permite inspeccionar las tablas de cuantificación de un archivo mediante djpeg -verbose: una excelente forma de verificar qué almacenó el códec en un JPEG concreto.
Para recordar: los formatos de archivo no son cajas negras. Leer un poco de especificación (JPEG, PNG, WebP) convierte a cualquier desarrollador en un mejor usuario de las herramientas de imagen que usa a diario.
Artículo producido por inteligencia artificial, revisado bajo control editorial humano.