Abre cualquier archivo .jpg en un editor hexadecimal. Los dos primeros bytes:
FF D8
Ese es el marcador Start of Image (inicio de imagen). Cada archivo JPEG comienza con el. Cada decodificador JPEG en la Tierra lo busca. Los siguientes bytes le indican al decodificador que variante de JPEG es esta, que espacio de color esperar y donde comienzan los datos de los pixeles. El formato es mas antiguo que el navegador web, y aun asi transporta aproximadamente el 57% de todas las imagenes servidas en la web moderna, segun el Web Almanac 2025.
La crisis de almacenamiento que creo JPEG
En 1986, una imagen en escala de grises sin comprimir de 640 x 480 consumia 307 KB de espacio en disco. Una imagen a color de la misma resolucion necesitaba 921 KB. En una epoca en la que un disco duro de 20 MB costaba cientos de dolares y los disquetes de 1,44 MB eran el medio de intercambio estandar, una sola foto sin comprimir podia llenar dos tercios de un disco.
La necesidad era obvia: un formato de compresion estandar para imagenes de tono continuo -- fotografias, no dibujos de lineas. Varios grupos trabajaban en el problema. El Joint Photographic Experts Group, formado en 1986 por ISO/IEC e ITU-T, fusiono las mejores ideas en un unico borrador. Despues de seis anos de refinamiento, el estandar se publico en 1992 como ISO/IEC 10918-1.
JPEG nunca fue concebido para ser el unico formato de imagen. Fue disenado para un solo trabajo: hacer que las fotografias fueran lo suficientemente pequenas para almacenarlas y transmitirlas. Hace ese trabajo descartando informacion en un orden muy especifico.
Por que JPEG comprime tan bien
La compresion JPEG es una canalizacion, no un unico algoritmo. Cada etapa elimina datos que el sistema visual humano tiene menos probabilidades de extrañar.
1. Conversion del espacio de color (RGB -> YCbCr)
Tu pantalla muestra RGB. JPEG almacena YCbCr. El canal Y transporta la luminancia (brillo). Cb y Cr transportan la crominancia (diferencia de azul y diferencia de rojo). Esto importa porque el ojo humano tiene aproximadamente 2,5 millones de celulas cono sintonizadas al brillo y solo 100.000 sintonizadas al color. Vemos el detalle de luminancia mucho mejor que el detalle de color.
2. Submuestreo de croma (Chroma Subsampling)
La mayoria de los JPEG utilizan submuestreo 4:2:0. Por cada 4 muestras de luminancia, hay 1 muestra Cb y 1 muestra Cr. Eso significa que los canales de croma se almacenan a un cuarto de la resolucion del canal de luma. Para una imagen de 4000 x 3000, el plano Y esta a resolucion completa. Los planos Cb y Cr son de 2000 x 1500 cada uno. Acabas de reducir los datos brutos aproximadamente un 50% antes de que siquiera comience la compresion real, y la mayoria de los espectadores nunca se dan cuenta.
3. La transformada discreta del coseno (DCT)
La imagen se divide en bloques de 8 x 8 pixeles. Cada bloque se somete a una DCT, que convierte datos espaciales (valores de pixeles) en datos de frecuencia (que tan rapido cambian los valores a lo largo del bloque). El resultado es una matriz de 8 x 8 de coeficientes. El valor de la esquina superior izquierda es el coeficiente DC -- el brillo promedio del bloque. Los otros 63 son coeficientes AC que representan detalles de frecuencia cada vez mas alta.
Los coeficientes de alta frecuencia codifican textura fina: cabello, cesped, ruido. Los coeficientes de baja frecuencia codifican formas amplias: cielos, paredes, tonos de piel.
4. Cuantizacion
Aqui es donde ocurre la perdida. JPEG aplica una tabla de cuantizacion a cada bloque DCT. La tabla es una segunda matriz de 8 x 8 de divisores. Cada coeficiente DCT se divide por su cuantizador correspondiente y se redondea al entero mas cercano.
La tabla de cuantizacion estandar golpea mas fuerte los coeficientes de alta frecuencia:
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
Un coeficiente de alta frecuencia de, digamos, 7 se divide por 121 y se redondea a 0. Se fue. Irreversible. El decodificador nunca lo ve. Eso es compresion con perdida: los datos se destruyen, no solo se recodifican.
A calidad 90, los cuantizadores se dividen por un factor de escala mas pequeño. A calidad 50, el factor de escala es mayor. Mas coeficientes se anulan. El archivo se hace mas pequeño. La imagen se vuelve mas suave.
5. Codificacion de entropia
Despues de la cuantizacion, los coeficientes restantes se escanean en zigzag, se codifican con codificacion de longitud de carrera (RLE) y se comprimen con codificacion de Huffman. Esta etapa es sin perdida. Solo empaqueta los datos ya destruidos de manera mas eficiente.
El resultado: una imagen RGB sin comprimir de 12 MP es 36 MB. Guardala como JPEG calidad 90 con submuestreo 4:2:0 y cae a ~3,5 MB. Eso es una reduccion de 10:1 con perdida de calidad visible solo bajo magnificacion.
Que tan con perdida es realmente?
El daño no se distribuye uniformemente.
| Calidad | Tamano tipico (12 MP) | Impacto visual |
|---|---|---|
| 95+ | ~8 MB | Casi invisible; preferido para archivar |
| 90 | ~3,5 MB | Suavizado menor; estandar para camaras |
| 75 | ~1,8 MB | Desenfoque visible en detalles finos; predeterminado web |
| 50 | ~1,0 MB | Artefactos de bloqueo obvios al zoom al 100% |
| 30 | ~600 KB | Banda de color, ruido de mosquito, inutilizable para impresion |
Aparecen tres artefactos distintos a medida que baja la calidad:
- Bloqueo (Blocking): Bordes de cuadricula de 8 x 8 visibles, especialmente en degradados suaves como cielos.
- Anillamiento (Ringing): Halos oscilantes alrededor de bordes de alto contraste (texto junto a fondo).
- Sangrado de color: El submuestreo de croma difumina el color a traves de limites nítidos.
El verdadero asesino es la perdida de generacion (Generation Loss). Abre un JPEG, editelo, guardalo como JPEG de nuevo. Cada guardado vuelve a ejecutar toda la canalizacion: RGB -> YCbCr -> submuestreo -> DCT -> cuantizar. Los errores de redondeo se acumulan. Despues de 10 generaciones, una imagen puede parecer que fue pintada en acuarela. Despues de 50, es irreconocible.
El desplazamiento hacia el verde y otras peculiaridades de recompresion
Vuelve a guardar un JPEG suficientes veces y quizas notes que la temperatura de color se desplaza. Algunas imagenes adquieren un ligero tono verdoso. Otras se desplazan hacia el magenta. La razon esta enterrada en los canales de croma.
JPEG almacena Cb y Cr a resolucion reducida y los cuantiza agresivamente. Cada guardado introduce error de redondeo en ambos canales. La conversion de regreso a RGB usa esta matriz:
R = Y + 1.402 x (Cr - 128)
G = Y - 0.344136 x (Cb - 128) - 0.714136 x (Cr - 128)
B = Y + 1.772 x (Cb - 128)
Observa que el verde se calcula a partir de Cb y Cr. Cuando la cuantizacion repetida empuja Cb hacia arriba y Cr hacia abajo, incluso por un solo paso de cuantizacion, el canal G se desplaza. Un sesgo positivo en Cb empuja el verde hacia abajo. Un sesgo negativo en Cr empuja el verde hacia arriba. La interaccion no es simetrica porque los coeficientes -0.344136 y -0.714136 tienen diferentes magnitudes. El resultado: una lenta acumulacion de verde en algunas regiones de la imagen, especialmente donde los valores de croma originales ya estaban cerca de los limites de cuantizacion.
Este no es un efecto garantizado. Depende de las tablas de cuantizacion del codificador, el modo de submuestreo y el contenido de la imagen. Pero es real, reproducible, y una razon por la que los flujos de trabajo profesionales evitan volver a guardar JPEGs.
Si JPEG es tan defectuoso, por que todo lo usa?
JPEG no es popular porque sea perfecto. Es popular porque es suficiente y universal.
- Sin bloqueo de patentes: La patente de JPEG de linea base (en manos de Forgent Networks) expiro en 2006. El formato es libre de regalias.
- Decodificacion por hardware: Cada camara, telefono, impresora y navegador tiene un decodificador JPEG en silicio o en C altamente optimizado. Cuesta casi nada renderizarlo.
- Lo suficientemente bueno: Para redes sociales, sitios de noticias y archivos adjuntos de correo, un JPEG calidad 75 es indistinguible del original en la pantalla de un telefono.
- Inercia del ecosistema: Los sistemas de gestion de contenido, las CDN, las bibliotecas de imagenes y los archivos heredados todos hablan JPEG. Reemplazarlos requiere mas que un mejor formato. Requiere un mejor formato mas una razon para migrar petabytes de activos existentes.
Los formatos que deberian haber ganado
Varios formatos han intentado destronar a JPEG. Ninguno lo ha logrado por completo.
| Formato | Con perdida | Sin perdida | Transparencia | Animacion | Profundidad de bits max | Ventaja clave |
|---|---|---|---|---|---|---|
| JPEG | Si | No | No | No | 8 bits | Soporte universal |
| PNG | No | Si | Si | No | 16 bits | Sin perdida perfecta, alpha |
| WebP | Si | Si | Si | Si | 8 bits | 25-35% mas pequeno que JPEG, nativo navegador |
| HEIC | Si | Si | Si | Si | 16 bits | ~50% mas pequeno que JPEG, predeterminado de Apple |
| AVIF | Si | Si | Si | Si | 12 bits | Mejor compresion hoy, libre de regalias |
| JPEG XL | Si | Si | Si | Si | 32 bits | Recompresion JPEG sin perdida, decodificacion progresiva |
PNG resolvio el problema sin perdida pero produce archivos 5 a 10 veces mas grandes que JPEG para fotos. Domina las capturas de pantalla, los recursos de interfaz y los graficos.
WebP (Google, 2010) supera a JPEG en tamano y anade transparencia y animacion. Ahora se envia en cada navegador principal. El Web Almanac 2025 situa a WebP en el 11% de las imagenes LCP, frente al 7% en 2024. Es la ruta de actualizacion segura hoy.
HEIC (Apple, 2017) utiliza compresion HEVC dentro de un contenedor ISOBMFF. Es ~40-50% mas pequeno que JPEG y contiene multiples imagenes por archivo. Domina el ecosistema de Apple y se estanca en todas partes mas debido a los pools de patentes HEVC.
AVIF (AOM, 2019) deriva del video AV1. Logra las mejores relaciones de compresion de cualquier formato ampliamente soportado -- aproximadamente 30% mas pequeno que WebP a calidad equivalente. La desventaja es la velocidad de decodificacion. Las imagenes AVIF pueden tardar 2 a 3 veces mas en renderizarse que JPEG en dispositivos moviles, consumiendo bateria y retrasando el Largest Contentful Paint.
JPEG XL (ISO/IEC 18181, 2021) es tecnicamente superior a todos ellos. Comprime 50-60% mas pequeno que JPEG. Decodifica rapido. Admite decodificacion progresiva: una imagen utilizable aparece despues de descargar solo ~1% del archivo. Mas importante aun, puede recomprimir JPEGs existentes sin perdida para ahorros de ~20% en tamano con recuperacion bit a bit del original. Ningun otro formato puede hacer esto.
Donde estamos ahora
JPEG XL tuvo una infancia dificil. Google agrego soporte experimental a Chrome en 2021, luego lo elimino el 31 de octubre de 2022 -- la "decision de Halloween". La razon declarada: beneficio incremental insuficiente sobre los formatos existentes. La reaccion fue inmediata. El problema de Chromium se convirtio en el segundo mas destacado en la historia del proyecto. Se acuso a Google de proteger a AVIF, un formato vinculado a la Alliance for Open Media que Google co-fundo.
A finales de 2025, Chromium dio marcha atras. Un nuevo decodificador en Rust (jxl-rs) llego a Chrome Canary. Chrome 145, lanzado en febrero de 2026, incluyo soporte para JPEG XL detras de una bandera (flag). Safari lo ha soportado desde 2023. Firefox Nightly esta integrando el mismo decodificador en Rust. JPEG XL aun no esta habilitado por defecto, pero esta de vuelta en la base de codigo.
AVIF, mientras tanto, es la opcion pragmatica para 2026. El soporte del navegador es amplio. Los codificadores estan mejorando. Tanto Cloudinary como Cloudflare sirven AVIF automaticamente mediante la negociacion del encabezado Accept. La pagina mediana que sirve AVIF o WebP muestra 81% de buenas tasas LCP frente al 64% de las paginas solo JPEG, segun datos de CoreDash.
La conclusion
JPEG es un compromiso de 33 años de antiguedad. Descarta resolucion de color, textura de alta frecuencia y precision numerica a cambio de tamanos de archivo que hicieron viable la fotografia digital en la decada de 1990. Los artefactos son bien comprendidos. La perdida de generacion es real. El desplazamiento verde ocurre.
Aun asi, JPEG persiste por la misma razon que persiste QWERTY: el costo de cambiar es mayor que el dolor de quedarse.
El camino practico hacia adelante es por capas:
- Conserva masters de alta calidad. Archiva los originales como PNG, TIFF o JPEG calidad 95+. Nunca vuelvas a editar desde una exportacion web calidad 75.
- Sirve formatos modernos dinamicamente. Usa una CDN o un servicio de imagenes que negocie AVIF, WebP o JPEG XL basado en el encabezado
Acceptdel navegador. Almacena un master; deja que el borde convierta bajo demanda. - No recomprima JPEGs en lotes. Cada generacion destruye datos. Si necesitas archivos mas pequenos, recodifica desde el master, no desde otro JPEG.
JPEG no morira de repente. Se desvanecera de la misma manera que se desvanecio GIF: todavia compatible en todas partes, todavia abriendose en cada visor, pero cada vez mas superado por formatos que hacen el mismo trabajo con menos bytes y menos artefactos. La diferencia es que esta vez, los formatos de reemplazo realmente estan ganando.


