- JPEG comprime imágenes combinando espacio de color YCbCr, submuestreo de crominancia y bloques de 8×8 procesados con la Transformada Discreta del Coseno.
- La cuantificación elimina sobre todo altas frecuencias y datos de color poco perceptibles, logrando gran reducción de tamaño a costa de una pérdida irreversible de información.
- La codificación entrópica (zig-zag, RLE y Huffman) empaqueta los coeficientes cuantificados en pocos bits, produciendo archivos ligeros idóneos para web y fotografía digital.
- El formato es ideal para fotografías naturales pero inadecuado para transparencias, gráficos nítidos o flujos de trabajo donde se requieren ediciones sucesivas sin pérdida.

Si llevas años usando Internet, cámara digital o móvil, has convivido con el formato JPEG casi sin darte cuenta. Este estándar nació a principios de los 90 y hoy sigue siendo el rey absoluto para fotos en la web, redes sociales y un montón de aplicaciones profesionales. Su truco está en que permite reducir muchísimo el tamaño de las imágenes manteniendo una calidad visual que suele ser más que suficiente para el ojo humano.
Por debajo, eso sí, no hay nada sencillo: el algoritmo combina espacios de color específicos, transformadas matemáticas, cuantificación y codificación estadística. Todo ello apoyado en cómo vemos los humanos: somos mucho más sensibles a los cambios de brillo que a los de color y peor detectando detalles muy finos. JPEG exprime estas limitaciones de nuestra visión para tirar por la borda información que apenas notamos, y así logra la famosa compresión con pérdida.
Qué es JPEG y por qué se usa tanto
JPEG son las siglas de Joint Photographic Experts Group, el comité de expertos que definió el estándar de compresión de imágenes fijas más usado del planeta. Aunque técnicamente JPEG es el nombre del algoritmo, en el día a día solemos llamar “JPEG” al propio archivo de imagen con extensiones como .jpg, .jpeg, .jpe, .jfif o .jif.
Este formato se basa en una compresión con pérdida ajustable: tú decides cuánto quieres comprimir y el software y los programas para comprimir imágenes adaptan la intensidad de la cuantificación. Un nivel de calidad alto genera archivos más grandes pero muy fieles al original; un nivel de calidad bajo produce ficheros pequeños a costa de que aparezcan defectos visibles, los clásicos artefactos.
JPEG fue publicado como estándar en 1992 tras años de trabajo dentro de ISO y la ITU. En su desarrollo participaron numerosos investigadores en compresión de imagen; más tarde surgirían variantes como JPEG 2000, JPEG-LS o Lossless JPEG, capaces de trabajar sin pérdida de datos, aunque ninguna ha alcanzado la masificación del JPEG clásico basado en la DCT.
Hoy es el formato dominante en fotografía digital, impresión, diseño gráfico, webs y redes sociales. Las cámaras lo usan porque permite almacenar miles de fotos en una tarjeta; los servidores y navegadores lo adoran porque ahorra ancho de banda y acelera tiempos de carga; y los móviles lo aprovechan para mostrar y compartir imágenes casi al instante.
Eso sí, no es perfecto para todo: no gestiona canal alfa (transparencia) y no se lleva bien con gráficos de líneas nítidas o logotipos. Para dibujos técnicos, iconos, interfaces o imágenes con mucho contraste y bordes duros, formatos sin pérdida como PNG o TIFF suelen ser mejor apuesta.
Compresión con pérdida: qué sacrifica JPEG y por qué

La clave del éxito de JPEG está en que su compresión es “con pérdida”, pero pierde justo lo que el ojo humano peor detecta. Esto se apoya en dos fenómenos de nuestra percepción visual: somos más sensibles a la luminancia (brillo) que a la crominancia (color), y detectamos mejor pequeños cambios de brillo en zonas suaves que en áreas ya muy detalladas.
El algoritmo explota esto separando la imagen en componentes de brillo y color, y aplicando recortes más agresivos a los datos de crominancia y a las frecuencias espaciales altas, que son esas variaciones muy rápidas de intensidad responsables de los detalles finos. Cuando se tiran a la basura muchos de esos coeficientes de alta frecuencia, el archivo se encoge sin que, en condiciones normales, notemos demasiado la diferencia.
El precio de este truco es que la transformación no es reversible: una vez comprimida una foto JPEG, la información descartada no se puede recuperar. Además, cada vez que guardas de nuevo una imagen JPEG, se vuelve a comprimir y se pierde un poquito más de calidad, acumulándose artefactos con los sucesivos guardados.
Por eso, en flujos de trabajo profesionales se suele editar en formatos sin pérdida (RAW, TIFF, PNG) y se deja el JPEG solo como formato final de distribución. Guardar y re-guardar el mismo archivo JPEG es la receta perfecta para ver bloques, manchas raras y texto borroso.
También conviene saber que JPEG permite ajustar la calidad en un rango típico de 0 a 100. Valores muy bajos reducen drásticamente el tamaño pero generan artefactos muy notorios; rangos medios-alto (por ejemplo 70-90) suelen ofrecer un compromiso razonable para web, y valores casi al máximo pueden hacer que te compense más un PNG sin pérdida.
Del RGB al YCbCr: cambio de espacio de color
El primer paso interno del algoritmo es transformar la imagen desde el clásico espacio RGB a un sistema YCbCr (o YUV). En este modelo, se separan claramente tres componentes: Y como luminancia (brillo en escala de grises) y Cb/Cr como crominancias (información de color relativa al azul y al rojo).
Matemáticamente, cada píxel RGB se convierte en Y, Cb y Cr mediante ecuaciones lineales donde se combinan los canales con diferentes pesos. Los valores se normalizan para encajar en rangos que caben en un byte, típicamente dejando Y entre 16 y 235, y Cb/Cr entre 16 y 240, con pequeños redondeos que introducen un error prácticamente invisible.
Ese cambio de base no es caprichoso: al tener el brillo separado del color, JPEG puede comprimir de forma más agresiva la información cromática sin que lo apreciemos demasiado. Nuestra visión presta mucha más atención a los detalles en luminancia, así que el algoritmo se “porta mejor” con Y y se ensaña un poco más con Cb y Cr.
Existen fórmulas ligeramente distintas según norma o implementación, pero todas persiguen lo mismo: obtener una representación donde sea más fácil explotar las debilidades de nuestro sistema visual. Esta fase apenas provoca pérdida de calidad más allá del redondeo.
En el proceso inverso, al decodificar el JPEG, se aplica la transformación contraria: a partir de Y, Cb y Cr se reconstruyen los valores R, G y B originales aproximados, listos para que el monitor los muestre.
Submuestreo de crominancia: menos color, mismo brillo
Una vez en YCbCr, JPEG suele aplicar submuestreo a las componentes de color. Como somos mucho menos sensibles a variaciones de crominancia que de luminancia, se puede reducir la resolución espacial de Cb y Cr sin que el resultado nos parezca especialmente raro.
El caso sin submuestreo se conoce como 4:4:4: cada píxel tiene su información completa de Y, Cb y Cr. Pero lo habitual para fotos y vídeo es trabajar con esquemas como 4:2:2 (mitad de resolución horizontal en color) o 4:2:0 (mitad de resolución en ambas direcciones), donde varios píxeles comparten el mismo valor de crominancia.
Este truco ahorra un buen número de bytes, ya que las componentes Cb y Cr pasan a ocupar mucho menos espacio. En pantallas corrientes y a distancias normales de visualización, la pérdida de detalle en el color es muy difícil de percibir, sobre todo en fotografías del mundo real, donde los cambios suelen ser suaves.
Algunos programas muestran estas configuraciones con notaciones como 1×1,1×1,1×1 (equivalente a 4:4:4), 2×1,1×2,1×1 (similar a 4:2:2) o 2×2,1×1,1×1 (4:2:0). Durante la decodificación, los valores de crominancia se “reconstruyen” a su tamaño completo usando técnicas como interpolación bilineal, vecino más próximo, interpolación cúbica o splines.
Si la imagen original ya era en escala de grises, directamente se prescinde de la crominancia y se trabaja solo con Y, algo que en cierta manera se puede ver como un submuestreo extremo 4:0:0, con compresión muy eficiente y sin pérdida de información de color que en realidad no existía.
Bloques de 8×8 y Transformada Discreta del Coseno (DCT)
El siguiente hito del proceso es dividir cada componente en bloques de 8×8 píxeles. Cada uno de esos bloques se comprime de manera prácticamente independiente, lo que simplifica mucho los cálculos y permite tratar por separado porciones pequeñas de la imagen.
Antes de aplicar la transformada, a cada valor de la matriz 8×8 se le resta 128, de forma que los números queden centrados alrededor de cero, entre -128 y 127. Esto facilita el trabajo de la DCT, que funciona mejor con valores equilibrados alrededor del origen.
Sobre cada bloque se aplica la Transformada Discreta del Coseno (DCT), que traslada la información del dominio espacial (valores de píxel) al dominio de frecuencia. El resultado es otra matriz 8×8 de coeficientes: el de la esquina superior izquierda es el coeficiente DC (brillo medio del bloque) y el resto son coeficientes AC que codifican variaciones de diferentes frecuencias.
Tras la DCT, la mayor parte de la energía de la imagen suele concentrarse en pocas frecuencias bajas, mientras que las altas frecuencias, que representan bordes muy finos y texturas complejas, tienden a tener valores pequeños. Justo aquí es donde JPEG tiene margen para ahorrar, porque son estos detalles finos los que peor percibimos, sobre todo cuando ya hay mucho contraste o ruido.
Matemáticamente, la DCT puede expresarse con una fórmula donde se suma, para cada u y v (frecuencias), la contribución de todos los píxeles f(x, y) multiplicados por cosenos con diferentes frecuencias espaciales, escalados por factores de normalización. Es una base ortogonal de funciones coseno que descompone el bloque en “ondas” de distintas frecuencias.
Cuantificación: donde realmente se gana espacio

Una vez tenemos los coeficientes DCT de cada bloque, llega el paso donde de verdad se produce la pérdida de información: la cuantificación. Consiste en dividir cada coeficiente de la matriz por el valor correspondiente de una tabla de cuantificación 8×8 y redondear el resultado al entero más cercano.
Estas tablas suelen tener valores pequeños en la zona de bajas frecuencias y valores grandes en las altas. Al dividir por números grandes, muchos coeficientes de alta frecuencia se convierten en cero tras el redondeo. De este modo se elimina gran parte de los detalles finos que menos afectan a la percepción visual, a cambio de una compresión mucho mayor.
Un ejemplo típico es la matriz de cuantificación propuesta en el estándar (a menudo llamada matriz “por defecto”), con elementos relativamente moderados cerca del coeficiente DC y crecientes hacia la esquina opuesta. Al cuantificar, el coeficiente DC del bloque se reduce a un entero bastante más pequeño que su valor original, y los coeficientes más alejados suelen hacerse cero o tomar valores pequeños.
El grado de compresión global depende en buena medida de estas tablas: si se multiplican todos sus valores por un factor mayor, los coeficientes resultantes tras dividir y redondear serán más pequeños y con más ceros, lo que aumenta la compresión pero deteriora la calidad. Un ajuste más suave da como resultado archivos mayores pero con menos artefactos.
El ojo humano no es igual de sensible a todos los errores: donde hay zonas suaves o áreas homogéneas puede percibir mejor pequeños cambios, mientras que en bordes fuertes y texturas complicadas tiene más “tolerancia”. JPEG se aprovecha de esta tolerancia para introducir errores precisamente donde menos se notan, guiando el diseño de las tablas de cuantificación.
Codificación entrópica: Huffman, RLE y compañía
Después de cuantificar, tenemos muchísimos coeficientes iguales a cero y otros repetidos. Es el momento perfecto para aplicar técnicas de compresión sin pérdida basadas en la estadística, de forma que los valores más frecuentes se codifiquen con menos bits.
Primero se recorre cada bloque cuantificado en un patrón en zig-zag, que empieza en la esquina superior izquierda (bajas frecuencias) y va serpenteando hacia las altas. Este recorrido agrupa los coeficientes de baja frecuencia, que suelen ser más significativos, y al final tiende a producir largas series de ceros.
Sobre esa secuencia, se aplica a menudo una combinación de codificación run-length (RLE), para representar tramos de ceros de manera compacta, y codificación de Huffman, que asigna códigos binarios más cortos a los valores que aparecen con mayor frecuencia y más largos a los raros. El estándar también contempla la codificación aritmética, algo más eficiente (puede reducir el tamaño en torno a un 5 % adicional), pero menos utilizada por temas de patentes históricas y complejidad.
En la práctica, se utiliza un símbolo especial llamado EOB (End Of Block) para indicar que el resto de coeficientes de un bloque son cero, ahorrando escribir todos esos ceros explícitamente. De esta forma, un bloque muy cuantificado se reduce a unos pocos valores significativos y un EOB final.
El resultado de todos estos pasos es un flujo de bits muy compacto que, junto con las cabeceras y tablas necesarias, forma el archivo JPEG final. Dentro del contenedor JFIF o Exif, además, se almacenan metadatos como dimensiones, espacio de color, datos de cámara, fecha o incluso información de geolocalización.
Proceso inverso: cómo se reconstruye una imagen JPEG
Al abrir un archivo JPEG, el decodificador realiza el camino contrario para reconstruir la imagen, sabiendo de antemano que no podrá obtener exactamente los datos originales porque parte de ellos se perdió en la cuantificación.
Primero se leen las cabeceras y se extrae la información de dimensiones, espacio de color, tablas de cuantificación y códigos Huffman. Luego, se toman los datos comprimidos, se decodifica Huffman y RLE y se reconstruye para cada bloque la secuencia de 64 coeficientes siguiendo otra vez el patrón en zig-zag.
Cuando se tiene la matriz cuantificada de cada bloque, se multiplica cada coeficiente por el valor correspondiente de la tabla de cuantificación que se usó en la codificación. Esta des-cuantificación no recupera los decimales perdidos, pero aproxima los valores DCT originales, sobre todo en los elementos de baja frecuencia que no se habían redondeado tan agresivamente.
A continuación se aplica la DCT inversa (IDCT) para volver al dominio espacial, obteniendo la matriz de píxeles del bloque. Después se suma 128 a cada valor para deshacer el centrado previo. El resultado son píxeles ya en YCbCr, que se colocan en su posición correspondiente en la imagen completa.
En imágenes con submuestreo de crominancia, los componentes Cb y Cr se escalan de nuevo a la resolución completa del componente Y mediante interpolación. Finalmente, se aplica la conversión inversa YCbCr→RGB para generar valores R, G y B que la pantalla pueda mostrar.
Si comparas bloque a bloque la imagen reconstruida con la original antes de la compresión, verás diferencias: los valores de muchos píxeles se han desplazado algunos niveles de intensidad, especialmente en zonas cercanas a bordes y detalles. La media de los errores absolutos en un ejemplo típico puede rondar unos pocos niveles de gris, lo que en términos visuales suele tolerarse bien.
Artefactos típicos y limitaciones del formato JPEG
La compresión con pérdida tiene un coste: cuando fuerzas demasiado la mano con el nivel de compresión, empiezan a aparecer artefactos de compresión muy característicos. Los más conocidos son los bloques visibles de 8×8, como una cuadricula sutil (o no tan sutil) en zonas uniformes o cerca de bordes de alto contraste.
También es frecuente ver “manchas” o bandas de color extrañas alrededor de contornos, causadas por que las altas frecuencias se han eliminado en exceso y la transición entre colores se vuelve brusca. Repetir guardados JPEG sobre la misma imagen refuerza estos defectos, ya que cada compresión introduce nuevos errores sobre errores anteriores.
Otra limitación importante es que el estándar JPEG original no soporta canal alfa. Es decir, no permite definir transparencias por píxel como sí hacen PNG o algunas variantes de JPEG 2000. Por eso, cuando necesitas iconos, logotipos o gráficos superpuestos con fondo transparente, JPEG no es la opción adecuada.
Tampoco brilla con gráficos vectoriales, textos nítidos o ilustraciones técnicas con líneas muy finas y colores planos. En estos casos, la cuantificación tiende a emborronar bordes y a introducir halos que se notan mucho más que en una fotografía natural de paisajes o retratos, donde los cambios suelen ser graduales.
Aun así, para fotos “del mundo real” y uso general en pantallas, JPEG sigue ofreciendo un equilibrio calidad/tamaño difícil de batir, incluso frente a formatos más nuevos como WebP, que aunque suelen comprimir mejor, no están tan universalmente integrados en todo tipo de dispositivos, software y flujos de trabajo heredados.
Usos habituales de JPEG y cuándo evitarlo
En cámaras de fotos, móviles y redes sociales, JPEG es prácticamente omnipresente. Las cámaras suelen permitir elegir entre RAW y JPEG, y muchos usuarios optan por este último por comodidad: los archivos ocupan poco, se pueden enviar por correo o mensajería al momento y cualquier dispositivo los abre sin problemas.
En la web, la mayoría de las fotos de artículos, blogs, catálogos de producto y portadas se publican en JPEG porque su peso reducido mejora los tiempos de carga y reduce el consumo de ancho de banda. Esto se nota especialmente en conexiones móviles o en sitios con muchísimas imágenes.
También se usa en impresión y diseño gráfico cuando se necesita enviar versiones ligeras para revisión o distribución digital. Aplicaciones como Photoshop, GIMP o similares permiten guardar en JPEG con ajuste de calidad, de modo que el diseñador puede equilibrar tamaño y fidelidad según el destino del archivo.
Sin embargo, hay escenarios donde conviene evitarlo: si vas a editar intensamente una imagen, si necesitas guardar versiones intermedias sin pérdida, o si el contenido es un gráfico con texto, logotipos o diagramas muy precisos, es mejor recurrir a formatos sin pérdida como PNG o TIFF. Y si trabajas con fotografía profesional, lo habitual es revelar en RAW y exportar a JPEG solo al final.
También hay que tener en cuenta que, aunque existen variantes como JPEG 2000 con mejor compresión y soporte de canal alfa, su implantación real en navegadores, cámaras y software de consumo es muy limitada. Por eso, el JPEG “clásico” sigue mandando, con todas sus virtudes y defectos.
Comprender cómo funciona la compresión JPEG por dentro —desde el cambio de espacio de color hasta la DCT, la cuantificación y la codificación Huffman— ayuda a elegir mejor la calidad al guardar, a evitar recomprimir innecesariamente y a saber cuándo este formato es tu mejor aliado y cuándo conviene buscar alternativas. Al final, todo se resume en encontrar el punto dulce entre calidad visual, tamaño de archivo, compatibilidad y uso previsto de la imagen.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.