Por qué la calidad JPEG 75 es el número mágico para la compresión de imágenes

En el mundo de la compresión de imágenes, un número vuelve una y otra vez: 75. Observa los ajustes predeterminados de casi cualquier herramienta de compresión y el factor de calidad está preestablecido en algún lugar cerca de este valor. No es ni una suposición de ingeniería ni una decisión arbitraria de un comité — se desprende de la estructura matemática del propio algoritmo JPEG. Este artículo recorre todo el pipeline de compresión JPEG, desglosa el «factor de calidad» hasta el nivel de escalado de las tablas de cuantización, y te muestra exactamente por qué 75 es el punto de equilibrio ideal entre el tamaño del archivo y la calidad visual.

1. El pipeline de compresión JPEG de un vistazo

JPEG (Joint Photographic Experts Group) es un estándar de compresión con pérdida. Su idea central es aprovechar la sensibilidad del sistema visual humano al brillo, su relativa insensibilidad al color y su tolerancia al detalle de alta frecuencia, descartando información difícil de percibir. El pipeline tiene cinco etapas.

Etapa 1 — Conversión del espacio de color: RGB → YCbCr

Las imágenes de origen suelen almacenarse en RGB (rojo, verde, azul), pero JPEG primero las convierte al espacio de color YCbCr:

  • Y: Luminancia, la información de brillo
  • Cb: Crominancia azul
  • Cr: Crominancia roja

Las fórmulas de conversión son:


Y  =  0.299·R + 0.587·G + 0.114·B
Cb = -0.1687·R - 0.3313·G + 0.5·B + 128
Cr =  0.5·R - 0.4187·G - 0.0813·B + 128

Esta etapa existe porque el ojo es extremadamente sensible a los cambios de luminancia (puede distinguir diferencias finas de brillo) pero relativamente insensible a la crominancia. Por lo tanto, los canales Cb y Cr pueden submuestrearse de forma agresiva (submuestreo de croma 4:2:0) mientras que Y se mantiene a resolución completa. Esta sola etapa normalmente reduce los datos a la mitad casi sin pérdida perceptible.

Etapa 2 — División en bloques 8×8 y desplazamiento de nivel

La imagen se divide en bloques de 8×8 píxeles. Cada valor de píxel va de 0 a 255; para que el cálculo DCT posterior sea más limpio, se resta 128 a cada valor para centrar el rango en -128 a 127.

Etapa 3 — Transformada de coseno discreta bidimensional (DCT)

Cada bloque 8×8 se transforma con una DCT 2D, pasando los datos del dominio espacial al dominio de la frecuencia. El resultado es una matriz de coeficientes 8×8. La esquina superior izquierda contiene el coeficiente DC (el brillo promedio del bloque); al desplazarse hacia la esquina inferior derecha, los coeficientes AC representan frecuencias progresivamente más altas — detalle fino, bordes y textura.

La DCT en sí es reversible y sin pérdida, pero reorganiza la información por importancia visual: los coeficientes de baja frecuencia portan la forma principal de la imagen, los coeficientes de alta frecuencia portan sobre todo detalle y ruido. Esto prepara la etapa con pérdida que sigue.

Etapa 4 — Cuantización: donde ocurre la pérdida

Los coeficientes DCT son números de coma flotante y no pueden codificarse directamente. JPEG divide cada coeficiente por la entrada correspondiente de una tabla de cuantización 8×8, produciendo enteros. Cuanto mayor es el divisor, más burdo es el resultado y más información se descarta.

Hay dos tablas: una para luminancia, otra para crominancia. La tabla de luminancia estándar de JPEG tiene valores pequeños en la esquina superior izquierda (p. ej. 16) y valores grandes en la esquina inferior derecha (p. ej. 99) — aprovechando precisamente la insensibilidad del ojo a las altas frecuencias para que puedan descartarse de forma más agresiva.

Esta es la única etapa con pérdida de todo el pipeline, y es exactamente donde el factor de calidad hace su trabajo.

Etapa 5 — Codificación entrópica: un acabado sin pérdida

Los coeficientes cuantizados se recorren en orden ZigZag (de baja a alta frecuencia), se codifican por longitud de carrera (RLE) para comprimir secuencias de ceros, y luego se comprimen más con codificación Huffman o aritmética. Esta etapa es completamente sin pérdida — solo empaqueta los datos de forma más ajustada.

El pipeline completo se ve así:

JPEG quality factor impact on compression effect: file size and quality comparison across different quality values

2. Lo que el factor de calidad controla realmente

Mucha gente asume que el factor de calidad (Q) es una «puntuación de calidad» de 0 a 100. No lo es. Lo que realmente controla es el escalado de la tabla de cuantización.

La fórmula de escalado de la tabla de cuantización

JPEG define una tabla de cuantización de referencia. El factor de calidad no reemplaza la tabla — escala cada entrada según esta fórmula:


If Q >= 50:
    scale = 5000 / Q
If Q < 50:
    scale = 200 - 2·Q

quant_value = floor((baseline_value × scale + 50) / 100)
quant_value = clamp(quant_value, 1, 255)   # min 1, max 255

Conclusiones clave de esta fórmula:

  • Q = 100: escala = 50, los valores de cuantización son aproximadamente la mitad de la referencia, casi no se pierde información (pero el error de cuantización sigue existiendo, por lo que JPEG nunca es verdaderamente sin pérdida).
  • Q = 50: escala = 100, los valores de cuantización igualan la referencia — este es el punto de referencia del estándar JPEG.
  • Q = 75: escala = 5000/75 ≈ 66,7, los valores de cuantización son aproximadamente 2/3 de la referencia — ligeramente más holgado que la referencia.
  • Q < 50: la escala supera 100, la cuantización se vuelve cada vez más burda y el detalle de alta frecuencia se elimina.
  • Q = 1: escala = 198, casi todos los coeficientes de alta frecuencia se ponen a cero y los artefactos de bloque se hacen evidentes.

Por qué 75 es el punto de equilibrio ideal

La clave es el rendimiento marginal en la curva de cuantización. De Q50 a Q75, el tamaño del archivo cae bruscamente mientras que la pérdida de calidad visual es mínima; de Q90 a Q95, el tamaño del archivo se dispara mientras que la ganancia de calidad es esencialmente invisible al ojo.

Considera una comparación concreta: usando el tamaño de Q95 como referencia del 100 %, Q75 suele situarse en torno al 30 %–35 %, mientras que el PSNR (relación señal-ruido máxima) cae solo 2–3 dB y el SSIM (similitud estructural) cae menos de 0,05. En otras palabras, Q75 intercambia 1/3 del tamaño del archivo por más del 95 % de la calidad visual. Esa es la razón fundamental por la que se convirtió en el valor predeterminado — se sitúa justo en el límite de la compresión visualmente sin pérdida, e ir más allá es un desperdicio.

JPEG DCT quantization process diagram: 8x8 pixel block frequency domain coefficient quantization after discrete cosine transform

Observa dónde se sitúa Q75 en el gráfico: la barra de tamaño ha caído al 32 % mientras que la curva de calidad aún flota cerca del 90 % — este es el significado geométrico del «punto de equilibrio».

3. Medir diferentes factores de calidad en Python

El script siguiente usa Pillow (PIL) para comprimir la misma imagen a diferentes factores de calidad e imprimir una comparación. Puedes ejecutarlo directamente para verificar las conclusiones anteriores.


from PIL import Image
from io import BytesIO
import os

def compress_jpeg(img_path, quality):
    """Comprime la imagen al factor de calidad dado, devuelve el tamaño en bytes."""
    img = Image.open(img_path).convert('RGB')
    buffer = BytesIO()
    img.save(buffer, format='JPEG', quality=quality, optimize=True, subsampling=2)
    return buffer.tell()

def compare_qualities(img_path):
    original_size = os.path.getsize(img_path)
    print(f"Source file: {img_path}")
    print(f"Original size: {original_size / 1024:.1f} KB")
    print(f"{'Quality':<10}{'Size(KB)':<12}{'Ratio':<10}{'Saved':<12}{'vs Q95':<10}")
    print("-" * 58)

    sizes = {}
    for q in [95, 85, 75, 65, 50, 30, 10]:
        size = compress_jpeg(img_path, q)
        sizes[q] = size
        ratio = original_size / size
        saving = (1 - size / original_size) * 100
        rel = size / sizes[95] * 100 if q != 95 else 100
        print(f"Q{q:<8}{size/1024:<12.1f}{ratio:<10.2f}{saving:<12.1f}{rel:<10.1f}")

    # Informe de ahorros de Q75 vs Q95
    if 95 in sizes and 75 in sizes:
        saved = (1 - sizes[75] / sizes[95]) * 100
        print(f"\nQ75 saves {saved:.1f}% vs Q95")

if __name__ == '__main__':
    compare_qualities('sample.jpg')

Salida típica (usando una foto paisaje de 4000×3000):


Source file: sample.jpg
Original size: 5823.4 KB
Quality   Size(KB)    Ratio      Saved        vs Q95
----------------------------------------------------------
Q95       1245.8      4.67       78.6%       100.0
Q85       722.5       8.06       87.6%       58.0
Q75       398.7       14.61      93.2%       32.0
Q65       274.2       21.24      95.3%       22.0
Q50       186.9       31.16      96.8%       15.0
Q30       99.5        58.52      98.3%       8.0
Q10       49.8        116.91     99.1%       4.0

Q75 saves 68.0% vs Q95

Los números confirman la conclusión anterior: Q75 reduce aproximadamente un 68 % el tamaño respecto a Q95, mientras que las dos imágenes son virtualmente indistinguibles a la distancia de visualización normal en pantalla.

4. Comparación de los formatos de imagen comunes

Una vez entendido JPEG, es útil situarlo en el ecosistema más amplio de formatos de imagen. Cada formato encarna una filosofía de compresión diferente.

FormatoCompresiónTransparenciaAnimaciónRatio típicoMejor caso de uso
JPEGCon pérdida (DCT)NoNoMedio-altoFotos, imágenes en color natural, miniaturas web
PNGSin pérdida (DEFLATE)Sí (8bit/16bit)NoBajoIconos, elementos de interfaz, capturas de texto, transparencia
WebPCon pérdida + Sin pérdidaAlto (25 %–35 % más pequeño que JPEG)Fotos modernas, sustitución de animación, tamaño mínimo
TIFFSin pérdida / Con pérdida (opcional)NoBajoImpresión, escaneo, archivo profesional
BMPSin comprimirNoNoMuy bajo (píxeles en bruto)No recomendado, solo heredado

Algunas notas:

  • JPEG no tiene transparencia: su mayor defecto. Los iconos que necesitan un fondo transparente deben usar PNG o WebP.
  • PNG es el «peso pesado» sin pérdida: calidad perfecta pero archivos grandes — una foto de 4000×3000 guardada como PNG puede superar los 20 MB.
  • WebP es el mayor rival de JPEG: en modo con pérdida es 25 %–35 % más pequeño que JPEG a calidad equivalente, con transparencia y animación. Su debilidad es el soporte incompleto en navegadores antiguos y algunas cadenas de herramientas.
  • TIFF/BMP no son aptos para la web: pertenecen a flujos de trabajo profesionales o existen como formatos heredados.

5. La resolución y el factor de calidad trabajan juntos

Mucha gente se obsesiona con el factor de calidad ignorando la resolución, que es en realidad la palanca más potente. En la práctica, bajar la resolución suele producir mayores ahorros de tamaño que bajar la calidad.

La estrategia en dos pasos

Una foto original de 4000×3000 (unos 12 megapíxeles) guardada directamente como JPEG en Q95 puede superar los 4 MB. Pero una pantalla normalmente solo necesita 1920×1080 (unos 2 megapíxeles), así que hay una enorme redundancia.

La optimización en dos pasos:

  1. Paso 1 — Bajar la resolución. Reducir de 4000×3000 a 1920×1080 baja el recuento de píxeles de 12 M a 2 M, una reducción de aproximadamente el 83 %. Como el tamaño JPEG es aproximadamente proporcional al número de píxeles, este paso por sí solo elimina alrededor del 75 %–83 % de los bytes.
  2. Paso 2 — Ajustar el factor de calidad. En la nueva resolución, bajar de Q95 a Q75. Como la reducción ya ha suavizado gran parte del detalle de alta frecuencia, los artefactos de bloque de Q75 son casi invisibles a esta resolución, eliminando otro ~50 % de los bytes.

Combinados, el tamaño final es aproximadamente el 8 %–10 % del original. Una imagen de origen de 4 MB puede reducirse a 300–400 KB con una experiencia de visualización en pantalla esencialmente sin pérdida.

JPEG quality factor vs file size/quality relationship curve: quality trend from 10 to 100

Hay una regla de orden importante aquí: bajar primero la resolución, luego bajar el factor de calidad. Hacerlo al revés (comprimir la calidad antes de escalar) hace que el escalador amplifique los artefactos de bloque de JPEG, empeorando el resultado.

6. Un árbol de decisión para la selección de formato

Cuando tienes una imagen en mano, ¿qué formato elegir? Este árbol de decisión da una respuesta rápida:

Visual quality comparison at different JPEG quality levels: quality=10/30/50/70/90 visual differences

En resumen: las fotos van a JPEG o WebP, los iconos y el texto van a PNG, y cualquier cosa que necesite transparencia debe evitar JPEG.

7. Preguntas frecuentes: tres preguntas comunes

P1: ¿Por qué Q75 se considera el «mejor» factor de calidad?

Porque la curva de cuantización tiene un punto de inflexión aquí. Q75 corresponde a una escala de aproximadamente 66,7, comprimiendo la tabla de cuantización a aproximadamente 2/3 de su referencia. En este punto, los coeficientes de baja frecuencia a los que el ojo es más sensible se conservan casi intactos, mientras que los coeficientes de alta frecuencia visualmente poco importantes empiezan a descartarse de forma razonable. Subir más a Q85 o Q95 infla el tamaño del archivo mucho más rápido de lo que mejora la calidad; bajar más a Q60 o Q50 hace visibles los artefactos de bloque y el ringing. Q75 se sitúa justo en la zona donde el tamaño cae rápido y la calidad cae lentamente, por eso se usa tanto como valor predeterminado. Ten en cuenta que «mejor» es relativo a la visualización en pantalla web — la impresión profesional o el archivo pueden necesitar Q90 o superior.

P2: ¿Puede WebP reemplazar completamente a JPEG?

En eficiencia de compresión, el modo con pérdida de WebP es 25 %–35 % más pequeño que JPEG a SSIM equivalente, y admite transparencia y animación, por lo que es técnicamente superior. Pero un «reemplazo completo» aún no es viable, por tres razones. Primero, algunos navegadores antiguos y bibliotecas de procesamiento de imágenes no admiten WebP completamente. Segundo, la codificación WebP era más lenta que JPEG en las primeras implementaciones (aunque las bibliotecas modernas han cerrado en gran medida esta brecha). Tercero, JPEG tiene 30 años de saturación del ecosistema — la salida de cámaras, las plataformas CMS, los archivos adjuntos de correo lo soportan todos a la perfección. Una práctica de ingeniería común consiste en producir ambas versiones JPEG y WebP y dejar que el navegador elija mediante la etiqueta <picture>.

P3: ¿Qué pasa si la misma imagen se recomprime como JPEG repetidamente?

La distorsión se acumula, y es irreversible. Cada compresión JPEG vuelve a ejecutar la cuantización y la DCT; los artefactos de bloque y el ringing introducidos por la pasada anterior se tratan como «contenido de imagen» y se cuantizan de nuevo, por lo que los artefactos se vuelven progresivamente más visibles y la calidad se degrada en forma de escalera. Este fenómeno se llama «pérdida de generación». La solución consiste en conservar un máster sin pérdida (PNG/TIFF o JPEG en Q100) y derivar cada variante de ese máster — nunca recomprimir un JPEG ya comprimido. Si son inevitables varias ediciones, guarda las versiones de trabajo en un formato intermedio sin pérdida (PSD, TIFF) y solo comprime a JPEG en la salida final.

8. Resumen y tabla de referencia de parámetros

El núcleo de la compresión JPEG es intercambiar información del dominio de la frecuencia por tamaño de archivo, y el factor de calidad es esencialmente una perilla que escala la tabla de cuantización. Q75 es el número mágico porque se sitúa precisamente en el punto de inflexión de la curva de cuantización: subir más infla el tamaño sin ganancia de calidad perceptible; bajar más empieza a hacer visibles los artefactos de bloque. Combinado con una reducción de resolución sensata, Q75 permite que una foto de varios megapíxeles aparezca en la web en unos pocos cientos de kilobytes con una pérdida visual despreciable.

Una vez entendidos los principios, la selección de parámetros deja de ser una conjetura. Esta tabla de referencia es para uso diario:

EscenarioFormato recomendadoFactor de calidadResoluciónTamaño esperado
Imagen de artículo web (foto)JPEG75–80Lado largo ≤ 1920px200–400 KB
Miniatura webJPEG70Lado largo ≤ 400px15–40 KB
Icono / elemento de interfazPNGOriginalVariable
Captura de textoPNGOriginalVariable
Fondo transparenteWebP / PNGOriginal
Archivo de foto de alta resoluciónJPEG90–95Original2–5 MB
Salida de impresiónTIFF / PNG≥ 300 DPIIlimitado
Sitio moderno, tamaño mínimoWebP75–80Lado largo ≤ 1920px150–300 KB

Domina la línea principal — conversión de espacio de color → DCT → cuantización → codificación entrópica — entiende cómo el factor de calidad escala la tabla de cuantización, luego combínalo con la reducción de resolución y la elección de formato, y la compresión de imagen pasa de «ajustar parámetros a ojo» a una decisión de ingeniería basada en evidencia.

Lecturas relacionadas:

¿Necesita comprimir archivos? Pruebe SmartSlim

Basado en un motor de compresión Rust de desarrollo propio, soporta más de 40 formatos en 10 categorías como PDF, imágenes, vídeo, Office y OFD. La compresión se realiza localmente y los datos no salen de su dominio.