Sistemas operativos modernos
didas) se efectúa dividiendo cada uno de los coeficientes de la matriz DCT de 8 x 8 entre un peso tomado de una tabla. Si todos los pesos son l, la transformación no tiene ningún efecto. En cambio, si los pesos aumentan al acrecentar la distancia respecto al origen, las frecuencias espaciales más altas se desechan con rapidez. En la figura 7-8 se presenta un ejemplo de este paso. Ahí vemos ia matriz DCT original, la ta bla de cuanfización y el resultado que se obfiene al dividir cada elemento DCT entre el elemento correspondiente de la tabla de cuanfización. Los valores de esta tabla no forman parte del estándar JPEG. Cada aplicación debe proporcionar su propia tabla de cuanfización, y esto le permite con trolar su propio equilibrio entre pérdida y compresión. Coeficientes DCT Coeficientes cuantizados Tabla de cuanfización 150 80 40 14 4 2 0 92 75 36 10 6 1 0 0 52 38 26 6 7 4 0 0 12 8 6 4 2 1 0 0 4 3 2 0 0 0 0 0 2 2 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 80 20 4 0 0 0 92 75 18 3 0 0 0 26 19 13 2 0 0 0 3 2 2 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 4 8 16 32 64 1 1 2 4 8 16 32 64 2 2 2 4 8 16 32 64 4 4 4 4 8 16 32 64 8 8 8 8 8 16 32 64 16 16 16 16 16 16 32 64 32 32 32 32 32 32 32 64 64 64 64 64 64 64 64 64 Figura 7*8. Cálculo de los coeficientes DCT cuantizados. El paso 4 reduce el valor (0 ,0) de cada bloque (el que está en la esquina superior izquierda), sustituyéndolo por la diferencia entre él y el elemento correspondiente del bloque anterior. í^iesto que estos elementos son las medias de sus respectivos bloques, el cambio de un bloque al siguien te deberá ser gradual, y la obtención de los valores diferenciales deberá reducirlos casi todos a va lores pequeños. No se calculan diferenciales para los demás elementos. Los valores (O, 0) se denominan componentes DC; los demás valores son los componentes AC. El paso 5 vuelve lineales los 64 elementos y aplica codificación por longitud de series (gru pos de valores iguales consecufivos) a la lista. Si el bloque se explora de izquierda a derecha y luego de arriba abajo, los ceros no se concentrarán (no se encontrarán series largas de ceros), así que se ufiliza un patrón de exploración en zigzag, como se muestra en la figura 7-9. En este ejemplo, el patrón en zigzag produce al final 38 ceros consecutivos al término de la matriz. Es ta cadena puede reducirse a una sola cuenta que indique que hay 38 ceros. Ahora tenemos una lista de números que representan la imagen (en espacio transformado). El paso 6 aplica codificación Huffman a los números para almacenarlos o transmifirlos. Es posible que JPEG parezca complicado, pero eso se debe a que es complicado. No obs tante, es común que produzca una compresión de 20:1 o incluso mayor, y por ello se ufiliza en forma amplia. Para decodificar una imagen JPEG, el algoritmo se ejecuta al revés. JPEG es casi simétrico: toma aproximadamente el mismo fiempo decodificar una imagen que codificarla.
RkJQdWJsaXNoZXIy MjI4NDcx