04.07.2017 Views

Análisis numérico, Timothy Sauer

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1 U TDC bidimensional y compresión de imágenes | 509<br />

El parámetro de pérdida pes un botón que puede activarse para intercambiar bits por precisión<br />

visual. Entre menor sea el parámetro de pérdida, mejor será la reconstrucción. El conjunto de números<br />

resultante en la matriz ^representa la nueva versión cuantificada de la imagen.<br />

Para descomprimir el archivo la matriz Yq se descu a nt i tica inviniendo el proceso, que es la<br />

multiplicación de cada entrada por Q. Ésta es la parte con pérdidas de la codificación de imágenes.<br />

Al sustituir las entradas y tí dividiendo entre qu y redondeando, para después reconstruir multiplicando<br />

por qu, se añade un error de tamaño q J 2 a yu. Éste es el error de cuantificación. Cuanto<br />

mayor sea qkb mayor será la posibilidad de en-or en la reconstrucción de la imagen. Por otra parte,<br />

cuanto mayor sea q u , menores serán las entradas enteras de Y q , y será necesario almacenar menos<br />

bits. Ésta es la compensación entre la precisión de la imagen y el tamaño de archivo.<br />

De hecho, con la cuantificación se logran dos cosas: muchas contribuciones pequeñas con<br />

frecuencias altas se igualan de inmediato a cero por (11.20), y las contribuciones que permanecen<br />

distintas de cero ücnen un tamaño reducido, de modo que pueden transmitirse o almacenarse utilizando<br />

menos bits. El conjunto resultante de números se convierte en un flujo de bits con el uso de<br />

la codificación de Huffman, que se analiza en la sección siguiente.<br />

A continuación se muestra la serie completa de pasos para la compresión de una matriz de<br />

valores de píxel en M atlab. La salida del comando im readde M ati.ab es una matriz de m x n<br />

enteros de 8 bits para una fotografía cn escala de grises, o tres de esas matrices para una fotografía<br />

a color. (Las tres matrices contienen la información para el rojo, verde y azul, respectivamente;<br />

más adelante se tratará el color con mayor detalle). Un entero de 8 bits se llama u in t8 . para distinguirlo<br />

de un d o u b le, que requiere 64 bits de almacenamiento, como se estudió en el capitulo 0. El<br />

comando d o u b le (x) convierte el número x u in t8 al formato d o u b le, y el comando u i n t s (x)<br />

hace lo contrario al redondear x al entero más cercano entre 0 y 255.<br />

Los siguientes cuatro comandos realizan la conversión, el centrado, la transformación y la<br />

cuantificación de una matriz cuadrada X de n x n números u in t 8. como las matrices de píxel de<br />

8 x 8 consideradas con anterioridad. Se indica por C la matriz de la TDC d en x n .<br />

>> Xd=double(X);<br />

» Xc=Xd-128;<br />

» Y=C*Xc*C';<br />

>> Yq=round(Y./Q);<br />

En este punto la Yq resultante se almacena o se transmite. Para recuperar la imagen es necesario<br />

deshacer los cuatro pasos cn orden inverso:<br />

» Ydq«Yq.*Q;<br />

» Xdq=C'*Ydq*C;<br />

» Xe=Xdq+128;<br />

» Xf=uint8(Xe);<br />

Después de la descuantificadón se aplica la transformada inversa de la TDC, se suma de nuevo<br />

el desplazamiento de 128, y el formato d o u b le se convierte otra vez en una matriz Xf de enteros<br />

u in t8 .<br />

Qiando se aplica la cuantificadón lineal a (11.17) con p = 1, los coeficientes resultantes son<br />

-1 5 - 4 5 - 2 1 2 0 0<br />

13 1 - 4 1 -1 - 1 0 0<br />

5 1 -1 1 0 - 1 0 0<br />

0 1 -1 - 2 0 1 0 0<br />

0 0 0 0 0 0 0 0<br />

- 3 - 1 1 1 0 0 0 0<br />

1 1 -1 -1 0 0 0 0<br />

0 0 0 0 0 0 0 0<br />

El bloque de imagen reconstniido. que se formó al dcscuantificar y transformar de manera<br />

inversa Yq , se muestra cn la figura 11.8(a). Pueden verse pequeñas diferencias cn comparación con<br />

el bloque original, pero es más fiel que la reconstrucdón con d filtrado pasa-hajas.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!