Hay 2 factores principales que parecen conducir a artefactos digitales al crear imágenes JPEG: Aliasing y Compresión.
Ejemplo:
La conversión de un PNG con caracteres en un JPEG o la colocación de imágenes vectoriales sobre una fotografía dará como resultado una pixelización en sus bordes. El antialiasing generalmente crea una especie de desenfoque a su alrededor, pero si la imagen está comprimida con pérdida , parte de los detalles también se pierden, por lo tanto, el desenfoque y la pixelización pueden volverse menos notorios.
¿Es esto lo correcto? Es decir, dado que una compresión sin pérdidas genera una imagen muy detallada, los artefactos resultantes del alias serán más notorios, por lo que se puede encontrar un equilibrio utilizando la compresión correcta, aunque comprometiendo la calidad de la imagen.
Editar
Acabo de guardar este JPEG en mspaint (3.46KB):
Aquí está el mismo JPEG con compresión máxima (calidad más baja, 0.5 KB):
Aquí está el mismo JPEG con una compresión del 50% (observe la diferencia de tamaño, 1.29 KB):
La misma compresión del 50% pero guardada como "JPG progresivo", mantuvo los datos EXIF y XMP originales, y "trató de guardar con calidad JPG original" (puede notar que no hay píxeles grises alrededor, 2.96KB):
Y finalmente lo mismo que antes con el submuestreo de croma deshabilitado (mismo tamaño de archivo, 2.96KB):
fuente
mozjpeg
compresor tiene un truco especial para producir menos distorsión en este tipo de imágenes. (y es más eficiente en general que los escritores de JPEG habituales también.) ¿Lo intentaste?Respuestas:
La compresión JPEG implica tres pasos principales:
Submuestreo de croma . La imagen se convierte de RGB a espacio de color YCbCr, en el que la luma o brillo (Y) se almacena por separado de los componentes de croma o color, Cb y Cr. El componente Y se mantiene a resolución completa, pero Cb y Cr se disminuyen, generalmente a media resolución en cada eje. Esto explota el hecho de que el sistema visual humano es más sensible a los detalles finos del brillo que del color.
Cuantización de frecuencia. Las imágenes Y, Cb y Cr se convierten en una representación de frecuencia, dividiéndolas en bloques de 8x8 y aplicando la transformada discreta del coseno (una variante de la transformada de Fourier) a cada bloque. El resultado es una matriz de números que describe las amplitudes de diferentes frecuencias espaciales en el bloque. Estos números pueden ser cuantificados (redondeados a un número elegido de bits de precisión). Se utilizan diferentes niveles de cuantización para diferentes frecuencias, explotando la sensibilidad relativamente baja de nuestro sistema visual a las frecuencias altas. Aquí es donde entra en juego la configuración de calidad del codificador JPEG: las calidades inferiores utilizan una cuantización más gruesa.
Codificación de entropía . Los valores de DCT cuantificados se pasan a través de un codificador de entropía, que comprime sin pérdidas el flujo de bits utilizando menos bits para representar los valores más comunes, algo así como un archivo zip.
Los pasos 1 y 2 son los con pérdida, y cada uno produce su propio tipo de artefactos (aunque hay cierta superposición). El submuestreo de croma tiende a difuminar los bordes afilados entre regiones de diferentes colores. Esto es particularmente visible en el arte vectorial, donde las formas de colores brillantes recogen irregularidades viciosas alrededor de sus bordes. La cuantificación de frecuencia difumina los detalles finos en general, y también crea artefactos en forma de bloque en configuraciones de baja calidad, porque el DCT se realiza bloque por bloque. Es particularmente visible en el texto.
Esta es la razón por la que JPEG generalmente no se usa para imágenes que contienen gráficos vectoriales o texto: sus algoritmos de compresión son poco adecuados para esos casos, aunque funcionan bien para fotografías y otras imágenes con textura compleja y bordes no demasiado nítidos.
fuente