|
JPEG
- Joint Picture Experts Group (Unión de expertos en
fotografía)
Formato de compresión digital de
imagen fija que consigue altos porcentajes de compresión
eliminando detalles de la imagen considerados como
imperceptibles por sus algoritmos.
Este algoritmo fue concebido para
comprimir imágenes de 24 bits de profundidad de colores (224
posibilidades diferentes) o en escala de grises, en
contraposición a otros formatos como el GIF que comprime
imágenes de hasta 256 colores codificando en LZW. El método de
compresión JPEG es la base del algoritmo MPEG
o MPEG-1 para imagen en movimiento, que mejora aún más la
compresión aprovechando la redundancia existente entre imágenes
fijas.
|
|

64 funciones base. La
suma de ellas, que dará la imagen completa, se hace sumando
coeficientes en la transformada DCT. |
|
El algoritmo JPEG realiza una
compresión con pérdidas, es decir, que al descomprimir la imagen
obtenemos una de calidad inferior a la original que teníamos
antes de la compresión. El grado de compresión es ajustable, si
ésta es muy alta se hará una pérdida significativa de calidad
pero obtendremos ficheros de menor tamaño. La reducción
conseguida es entre un 10:1 y un 50:1
La pérdida de calidad de imagen es
acumulable. Es decir, una imagen JPEG, comprimida con un cierto
grado de calidad, si se modifica y se vuelve a comprimir, aunque
sea con el mismo grado, el resultado será una imagen de peor
calidad. Por eso no es recomendable pasar la imagen a JPEG hasta
que hayan sido realizados todos los retoques y ediciones
necesarias.
El JPEG es un formato muy utilizado
para la compresión de fotos, dando unos resultados óptimos. En
caso de textos, líneas y diagramas, es poco recomendable debido
a los efectos de la codificación por transformada que forma
parte del proceso de compresión, siendo en este caso más
recomendable usar, por ejemplo, el formato GIF.
Los archivos JPEG se conocen
frecuentemente como JPG debido a los sistemas de archivos de
formato 8.3 (8 letras + 3 letras de extensión).
Pasos para la compresión
Los pasos de la compresión pueden
resumirse en estos 9 pasos:
- Cambiar el espacio de color
RGB de la imagen al espacio YCbCr. Es
decir, de 3 matrices con los números de luminosidad
correspondientes a los colores primeros rojo, verde y azul;
pasamos a 3 matrices con información sobre luminancia (Y),
diferencia entre luminancia y azul (Cb) y luminancia y rojo (Cr).
En el hipotético caso de querer recuperar el verde,
simplemente tendríamos que restar a Y las otras componentes.
- Ya dentro del espacio YCbCr,
se realiza un submuestreo de los
componentes CbCr, aprovechando que el ojo humano es menos
sensible al cambio de crominancia que de luminancia, es
decir, notamos menos claramente los cambios de color que de
brillo. Sólo en este paso, con una pérdida de calidad casi
inapreciable, ya hemos reducido el espacio necesario a la
mitad.
- Generación de bloques de 8x8
píxeles para el procesamiento. Este tamaño de bloques se
emplea también en MPEG o MPEG-1 y
MPEG-2, no así en
MPEG-4 Parte 10/AVC que es variable. El valor
del coeficiente situado arriba a la izquierda es el más
grande de todos, se denomina DC ya que es el valor medio.
- Aplicación la DCT
bidimensional a cada bloque de pixeles. La DCT es similar a
la FFT salvo que tomamos únicamente los valores coseno de
cada coeficiente descartando los senos, es decir, nos
quedamos con la parte real. Con esto se ahorra mucho
espacio.
- Desempaquetado de los
coeficientes.
- Ponderación de cada
coeficiente por un factor de cuantización.. Esto se realiza
dividiendo cada componente en el dominio de la frecuencia
por una constante para ese componente, para posteriormente
redondearlo a su número entero más cercano. De este modo las
altas frecuencias (coeficientes situados hacia abajo a la
derecha de la matriz) tienden a igualarse a cero. Los demás
se convierten en números positivos y negativos pequeños.
- Puesta a cero de los
coeficientes cercanos a dicho número, es decir, los valores de alta
frecuencia situados hacia la esquina inferior-derecha de la
matriz. En este paso y el anterior, la cuantificación, es
donde se decide el grado de compresión de la imagen JPEG.
- Codificación entrópica. En
esta etapa no hay pérdida de datos. Se recorre la matriz en
zig-zag (para agrupar coeficientes correspondientes a
frecuencias similares), consiguiendo así largas cadenas de
ceros correspondientes a los valores de alta frecuencia, para posteriormente codificar mediante el algoritmo
de Huffman. La codificación aritmética es algo más
eficiente, pero no se suele emplear debido a que está
protegida por patentes.
- Agregar el "header info" y
factores de cuantización, necesarios para poder realizar la
futura descompresión.
Artefactos de la codificación por
transformada
Tenemos tres tipos de artefactos (artifacts)
posibles en la codificación por la DCT, que pueden ser
clasificados como:
 |
 |
 |
|
Emborronamiento debido al truncamiento de
coeficientes de alta frecuencia |
Grano
debido a errores de cuantificación de algunos
coeficientes |
Artifactos por bloques, especialmente los que se
refieren a discontinuidades artificiales en los bordes
de los bloques vecinos, ya que son los más molestos.
Aparecen cuando cada bloque se procesa de una manera
independiente, con diferentes estrategias de
cuantificación. Se manifiestan sobre todo a bajos
bitrates. |
Como métodos para corregir
los artefactos existen varios. Principalmente:
- Superponer los bloques en el
transmisor, lo cual requiere codificación y transmisión de
los píxeles de las regiones que se solapan más de una vez.
Estos píxeles se promedian en el receptor, ofreciendo un
efecto de suavizado. La reducción se consigue a expensas de
subir el bit rate.
- Esto se puede hacer mediante
LOT (otro tipo de transformada) alternativo a la
DCT. Debido a que este método no se suele usar en la
práctica, simplemente se realiza un postprocesado usando
técnicas de restauración de imágenes.
|