Codificación de Imagen
Transcripción
Codificación de Imagen
Tema 3: Codificación y compresión de imagen 1. Introducción. 2. Características de la imagen. Captura y digitalización de imagen. Tipos de imagen 3. Compresión de imagen. Redundancia espacial. Estándar JPEG Wavelets EZW JPEG 2000 LTW 4. Conclusiones. Bibliografía [FLU95] Fluckiger, “Understanding networked multimedia” [TSU99] Introduction to video coding standards for multimedia communication [JPEG2000] JPEG 2000 performance evaluation and assessment [GEO99] Wavelet-based Image Coding: An Overview [EZW] Embedded image coding using zerotrees of wavelet coefficients [LTW] Fast and efficient spatial scalable image compression using wavelet lower trees Arquitecturas de red para la distribución de contenidos Arquitecturas de red para la distribución de contenidos 1. Introducción Las imágenes que percibimos están compuestas de ondas electromagnéticas (: 250nm - 780nm). El ojo es más sensible a unos colores que a otros. A diferentes longitudes de onda, diferentes sensaciones de color. Dadas tres fuentes de luz de la misma intensidad y distinto color (una roja, otra verde y otra azul), el ojo percibe la verde con el doble de intensidad que la roja, y seis veces más intensa que la azul. Los mecanismos de percepción visual humanos son menos sensibles y estrictos que los auditivos. Ej.: Variaciones de frecuencia, supresión de imágenes, etc. Mezclando 3 colores (RGB) podemos obtener otro. Integra la información que recibe. 2 Arquitecturas de red para la distribución de contenidos 2.1 Captura y digitalización de imagen (I) Las imágenes digitales están compuestas de píxels (picture element). Una cámara fotográfica digital utiliza un CCD (charge coupled device) para realizar el proceso de adquisición analógica. El CCD tiene una serie de pequeños diodos sensibles a la luz que convierten luz en cargas eléctricas (o sea, fotones en electrones). Cada diodo del CCD captura un píxel de la imagen a adquirir. Para poder situar cada píxel de la imagen (luz entrante) en su diodo correspondiente del CCD se utiliza una lente. Mediante la lente se puede conseguir también realizar zoom óptico (no confundir con zoom digital) 3 Arquitecturas de red para la distribución de contenidos 2.1 Captura y digitalización de imagen (II) Problemática del color: Si el CCD captura la luz directa que recibe de la lente, sólo tenemos la intensidad de luz, pero no su color. Añadimos un filtro (R, G ó B) a cada píxel, de manera que algunos píxeles reciben sólo la luz roja, otros la verde y otros la azul. El número de píxeles que reciben luz verde es el mismo que la suma de los que reciben luz roja y azul. La información de color que no se ha obtenido en cada píxel se interpola directamente de sus vecinos, usando un DSP. 4 Arquitecturas de red para la distribución de contenidos 2.1 Captura y digitalización de imagen (III) El CCD es un dispositivo analógico. Es necesario un conversor analógico digital (ADC) que obtenga la representación digital de cada píxel a partir de la señal eléctrica generada por cada diodo. Una cámara digital necesita un DSP (Digital Signal Processor) para gestionar el funcionamiento de la cámara. Realiza el acceso y almacenamiento de fotos en memoria, el proceso de compresión, la interpolación de los colores, gestión de menús, etc. Uno de los más usados, el TMS320DSC24 de Texas Instruments, funciona a 80 Mhz y es utilizado por Kodak en sus productos. 5 Arquitecturas de red para la distribución de contenidos 2.1 Captura y digitalización de imagen (IV) Codificación y recodificación. Cada muestra RGB se codifica con una cantidad de bits por componente de color (p.ej., 8 bits/componente→24 bits/muestra). A veces resulta interesante codificar el nivel de brillo de una muestra (luminancia, o componente Y) y las diferencias de color (crominancias azul, roja y verde, o componentes Cb, Cr, Cg). La conversión de RGB a YCbCr (YUV) se realiza mediante una matriz de conversión (aproximada): Y = 0.3R + 0.6G + 0.1B (Nivel de brillo o luminancia) U = B - Y (Diferencia de color azul) (equiv. Cb=U/2+128) V = R - Y (Diferencia de color rojo) (equiv. Cr=V/1.6+128) Cada uno de los componentes se codifica con 8 bits. Y (8 bits): rango 16-235 Cb (8 bits) y Cr (8 bits): rango 16-240 La diferencia de color verde (Cg) es redundante y no se almacena, ya que se puede obtener a partir de la Y, la Cb y la Cr. 6 Arquitecturas de red para la distribución de contenidos 2.1 Captura y digitalización de imagen (V) Subsampling: El ojo es más sensible a la información de luminancia que de crominancia. Muestra Y Muestra Cr + Muestra Cb 720 720 480 o 576 480 o 576 480 o 576 Y Cb Cr 360 Y Cb Cr Formato 4:2:2 Formato 4:4:4 720 480 o 576 720 480 o 576 Y 360 240 o 288 Formato 4:2:0 Y 480 o 576 Cb Cr Formato 4:1:1 180 Cb Cr 7 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: RGB 8 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: YCbCr 9 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: Y Subsampling (I) 10 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: Y Subsampling x2 (II) 11 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: Y Subsampling x4 (III) 12 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: Y Subsampling x8 (IV) 13 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: CbCr Subsampling (V) 14 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: CbCr Subsampling x2 (VI) 15 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: CbCr Subsampling x4 (VII) 16 Arquitecturas de red para la distribución de contenidos 2.2 Codificación: CbCr Subsampling x8 (VIII) 17 Arquitecturas de red para la distribución de contenidos 2.3 Tipos de imagen (según su resolución) La resolución de una imagen se mide según el número de píxels por lado (ancho x alto). En cámaras digitales se suele medir en Megapixels (millones de píxels por imagen) 1) Common Intermediate Format (CIF) (352x288): Utilizado habitualmente en videoconferencia (junto con Quarter CIF) 2) VGA (640x480): Usado por cámaras de baja calidad. 3) n-Megapixels: Ofrecido por cámaras de mayor calidad. A veces, la resolución real de una cámara digital no coincide con la del CCD de esa misma cámara. P.ej, una cámara de 3,3 MP ofrece una resolución de 2048x1536. Parte de la circuitería del CCD que transporta los datos al ADC está situada en determinados diodos que no pueden ser usados. 18 Tema 3: Codificación y compresión de imagen 1. Introducción. 2. Características de la imagen. Captura y digitalización de imagen. Tipos de imagen 3. Compresión de imagen. Redundancia espacial. Estándar JPEG Wavelets EZW JPEG 2000 LTW 4. Conclusiones. Bibliografía [FLU95] Fluckiger, “Understanding networked multimedia” [TSU99] Introduction to video coding standards for multimedia communication [JPEG2000] JPEG 2000 performance evaluation and assessment [GEO99] Wavelet-based Image Coding: An Overview [EZW] Embedded image coding using zerotrees of wavelet coefficients [LTW] Fast and efficient spatial scalable image compression using wavelet lower trees Arquitecturas de red para la distribución de contenidos Arquitecturas de red para la distribución de contenidos 3. Compresión de imagen. Una imagen suele presentar redundancia espacial: Redundancia espacial: Las imágenes tienen información redundante susceptible de ser eliminada o reducida (por ejemplo, el color del cielo en una foto suele ser uniforme y azul :-). El proceso de compresión de imagen consistirá en: 1) Eliminar en la medida de lo posible la redundancia espacial utilizando técnicas de source encoding (normalmente mediante transformada matemática). 2) Codificar los datos obtenidos en el paso anterior usando entropy enconding (elimina aun más la redundancia espacial). Para conseguir mayores índices de compresión, este proceso será con pérdidas (cuantización de los datos). 20 Arquitecturas de red para la distribución de contenidos 3.1 Redundancia espacial: JPEG Es un estándar ISO (‘91) cuyo origen proviene del grupo JPEG (Joint Photographic Expert Group). Codifica imágenes de tono-continuo Dispone de cuatro modos de operación (incluyendo codificación sin perdidas). Se definen una serie de parámetros que permiten codificar las imágenes para obtener una gran variedad de calidades de compresión. Factor de compresión ronda 20:1* Es un sistema de codificación simétrico. Forma parte de otros estándares de compresión de secuencias de vídeo (MPEG y H.26*). 21 Arquitecturas de red para la distribución de contenidos Codificación JPEG (pasos) Codificación JPEG en modo secuencial con pérdidas Codificación fuente Imagen original (RGB) Prep. de bloques DCT Cuantiz. Tabla Codificación entrópica Run Length Huffman Imagen codificada Tabla Paso 1: Preparación de la imagen. No define el formato de imagen original. Podría ser RGB, YUV, YIQ, YCrCb, etc. Convierte la imagen a formato YCbCr utilizando una reducción de color 4:2:0 (sub-sampling) Ej.: RGB 640x480 (VGA) Y (640x480), Cb y Cr (320x240) Se divide la imagen en bloques de 8x8 elementos Ej. anterior: 4800 bloques Y, 1200 Cb y 1200 Cr. 22 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Transformada DCT Paso 2: Transformada discreta del coseno (DCT). Transforma un dominio de amplitudes al dominio de la frecuencia. Las componentes frecuenciales más altas son susceptibles de ser eliminadas (percepción visual) Se aplica esta transformada a cada bloque de 8x8 obteniendo la matriz de coeficientes DCT asociada Componente (0,0): el nivel de continua DC del bloque (Media) Coeficiente DCT Amplitud x y Transformada DCT Fx Fy 23 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Transformada DCT(II) DCT-1D: (vector N elementos) Transformada directa C (u ) N 1 (2 x 1)u S (u ) s ( x) cos N x 0 2N 1 2 Si u 1, C (u ) 1 Si u 0, C (u ) C (u ) (2 x 1)u S (u ) cos 2N u 0 N N 1 s ( x) Transformada inversa DCT-2D: (matriz NxN elementos) N 1 N 1 1 (2 x 1)i (2 y 1) j DCT (i, j ) C (i )C ( j ) pixel ( x, y ) cos cos 2N 2N 2N x 0 y 0 1 pixel ( x, y ) 2N N 1 N 1 (2 x 1)i (2 y 1) j cos 2N 2N C (i)C ( j ) DCT (i, j ) cos i 0 j 0 24 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Cuantificación Paso 3: Cuantificación (quantization). Se eliminan los coeficientes menos representativos de la DCT (transformación con pérdidas). Cada coeficiente de la matriz 8x8 es dividido por un valor almacenado en una tabla (quantization table). El estándar sugiere dos tablas una para la componente Y y otra para las componentes Cb y Cr. Estas tablas se pueden escalar con otro parámetro Q que nos permitirá ajustar el índice de compresión requerido. 150 88 21 4 1 0 0 0 70 56 34 6 0 1 0 0 38 22 12 3 5 0 0 0 16 9 4 7 0 0 0 0 4 2 0 0 2 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 Coeficientes DCT 0 0 0 0 0 0 0 0 Tabla de cuantificación 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 150 88 10 1 0 0 0 0 70 56 17 1 0 0 0 0 19 11 6 1 0 0 0 0 4 8 1 2 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 0 0 0 0 0 Coeficientes DCT cuantificados 25 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Codificación entropía Paso 4: Codificación DPCM de los componentes DC de cada bloque. Bloques sucesivos tienen un valor medio muy similar. Paso 5: Codificación run-length de todos los componente de un bloque. Se hace un barrido “zig-zag” con el fin de agrupar todos los componentes nulos. 150 88 10 1 0 0 0 0 70 56 17 1 0 0 0 0 19 11 6 1 0 0 0 0 4 8 1 2 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 0 0 0 0 0 150-70-88-10-56-19-4-11-17-1-0-1-6-8-0-0-0-1-1-0-0-0-0-0-2-..(39 0’s) 150-70-88-10-56-19-4-11-17-1-0-1-6-8-A0/3-A1/2-A0/5-2-A0/39 26 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Codificación entropía Paso 6: Codificación estadística VLC: Huffman A lo obtenido en el paso anterior se aplica el algoritmo de Huffman para comprimir aún más la información. El resultado de este paso es lo que debemos enviar o almacenar. Decodificación JPEG Consiste en realizar el proceso inverso: Inverse Quantization Zig-zag ordering Run-length decoder Inverse DCT Huffman decoder 110001110011100010….. 27 40 44 52 68 62 47 36 48 44 52 55 45 48 67 56 55 47 40 36 56 56 40 23 36 40 47 67 60 48 55 67 55 40 40 63 52 40 55 62 52 55 48 62 55 36 40 44 47 79 67 52 36 47 36 49 47 75 79 72 60 62 62 47 36 Bloque de muestras (pixels) DCT 411 20 -11 -8 -3 3 8 1 -18 14 -8 24 -10 -14 -18 -34 27 -9 -11 11 14 7 -23 -1 5 -19 4 -20 -2 -5 14 -14 -8 -3 -3 9 9 7 2 -10 17 18 16 -2 -17 8 7 -3 1 -8 1 -2 3 -2 -7 -1 -2 -8 -4 2 2 3 -7 2 Bloque de muestras transformadas Quant Arquitecturas de red para la distribución de contenidos Codificación JPEG: Ejemplo real (Quant) 39 50 54 58 64 56 43 42 49 49 46 47 52 52 50 50 38 38 43 50 51 51 47 40 47 46 55 59 54 55 58 53 45 45 54 55 45 44 51 50 55 57 60 57 48 45 49 51 70 65 53 43 41 42 43 48 76 72 60 55 60 55 42 39 Bloque recuperado de muestras Q-1+ IDCT 102 -2 2 -4 -1 -2 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 0 -1 1 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 Bloque de muestras cuantizadas 28 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Ejemplo real I (RLE+VLC) Codificación RLE+VLC de los coeficientes cuantizados Número de bits 102 -2 2 -4 -1 -2 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 0 -1 1 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 Bloque de muestras cuantizadas Código 0 1 2 5 100 00 01 1110 6 1111 0 7 1111 10 8 1111 110 9 1111 1110 10 1111 1111 0 11 1111 1111 1 Tabla para la DC Paso 1. Se codifica la DC usando codificación diferencial DPCM • Si DC Bloque anterior es 98 → codificar 102-98 • Se codifica como: Num. bits necesarios (tabla VLC) + codif + signo • DC se codifica como: 101 100 0 29 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Ejemplo real II (RLE+VLC) 102 -2 2 -4 -1 -2 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 0 -1 1 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Run 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 EOB 0 0 0 0 0 Paso 1 1 1 1 2: Se codifica en zig-zag pares <Run (cuenta de ceros), coeficientes> Valores 0 0 0 0 0 1 -2 2 -1 -4 1 2 … 1 2 3 4 5 Código 10 11s 0100 0010 0000 0010 s 1s 110s 0110 s … Bloque de muestras cuantizadas Run (Num. De Ceros) Nivel 2 2 Escape 1 2 3 4 … 1 2 … 011s 0001 10s 0010 0101 s 0000 0011 00s 0101 s 0000 100s 0000 01 Tabla para pares <Run, Niveles> Código VLC 0100 0100 111 0000 110 0001 1 0 1101 Existe código de escape: • 0000 01 RRRR RR NNNN NNNN 100 Parte del bloque codificado con VLC 30 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Ejemplo real III (RLE+VLC) Resultado final de la codificación RLE+VLC 102 -2 2 -4 -1 -2 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 0 -1 1 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 Bloque de muestras cuantizadas Run (Num. De Ceros) Valores N/A 0 0 0 0 0 1 0 5 3 5 0 2 4 7 EOB 4 -2 2 -1 -4 1 2 -2 1 1 -1 -1 -1 -1 -1 Código VLC 101 100 0 0100 1 0100 0 111 0000 1101 110 0001 100 0100 1 0001 110 0011 10 0001 111 111 0101 1 0011 01 0001 001 10 Bloque codificado con VLC Tasa de compresión: Stream final: 1011000010010100011100001101 … 000100110 (85 bits) Bits por píxel: (Núm bits/ Núm píxels) 85/64= 1’33 bpp Factor de compresión: Tam_comprimida:Tam_original= 85:(8*8*8)= 85:512 1:Tam_original/Tam_comprimida= (85/85):(512/85)= 1:6 31 Arquitecturas de red para la distribución de contenidos Codificación JPEG: Ejemplo real IV (Calidad) 40 44 52 68 62 47 36 48 44 52 55 45 48 67 56 55 47 40 36 56 56 40 23 36 40 47 67 60 48 55 67 55 40 40 63 52 40 55 62 52 55 48 62 55 36 40 44 47 79 67 52 36 47 36 49 47 75 79 72 60 62 62 47 36 Bloque de muestras (pixels) 39 50 54 58 64 56 43 42 49 49 46 47 52 52 50 50 38 38 43 50 51 51 47 40 47 46 55 59 54 55 58 53 45 45 54 55 45 44 51 50 55 57 60 57 48 45 49 51 70 65 53 43 41 42 43 48 76 72 60 55 60 55 42 39 Bloque recuperado de muestras Medida objetiva del error: MSE (Mean Square Error) 1 MSE N s i s i i 1 N 2 Medida objetiva de la calidad: PSNR (Peak SNR) 2552 PSNR 10 log10 MSE Valores del ejemplo: MSE = 49’53 PSNR = 31’18 dB 32 Tema 3: Codificación y compresión de imagen 1. Introducción. 2. Características de la imagen. Captura y digitalización de imagen. Tipos de imagen 3. Compresión de imagen. Redundancia espacial. Estándar JPEG Wavelets EZW JPEG 2000 LTW 4. Conclusiones. Bibliografía [FLU95] Fluckiger, “Understanding networked multimedia” [TSU99] Introduction to video coding standards for multimedia communication [JPEG2000] JPEG 2000 performance evaluation and assessment [GEO99] Wavelet-based Image Coding: An Overview [EZW] Embedded image coding using zerotrees of wavelet coefficients [LTW] Fast and efficient spatial scalable image compression using wavelet lower trees Arquitecturas de red para la distribución de contenidos Arquitecturas de red para la distribución de contenidos 3.1 Redundancia espacial: Wavelets. Problemas con la DCT Efectos de borde en los bloques Base ortonormal fija (cosenos a distinta frec) Se basa en un conjunto de funciones básicas que se derivan de una función prototipo (“madre”). Estas funciones son escalados y desplazamientos de la función prototipo. Permiten analizar regiones de la señal con diferente detalle (resolución). Analiza de forma independiente las bajas y altas frecuencias de la señal (realmente actúa como un filtro). 34 Arquitecturas de red para la distribución de contenidos Descomposición Wavelet: ejemplo. Dos funciones: Función generadora del espacio wavelet () Función de escalado () que define la señal en el espacio original a distintas escalas 3 s= -5 2 6 + -1 4 s 1= 4 + -2 +- 1.5 -2.5 s 2= 4 -2 Versión ortogonal de la Haar Wavelet 35 Arquitecturas de red para la distribución de contenidos Una familia de wavelets: Haar wavelet I si 0 t 0.5 1, (t ) 1, si 0.5 t 1 0 , en otro caso (t) (2t)(2t 1) 1, si 0 t 1 (t ) 0, en otro caso 36 Arquitecturas de red para la distribución de contenidos Una familia de wavelets: Haar wavelet II 1,0(t) (2t) 1, si 0 t 1 0, en otro caso (t ) 37 Arquitecturas de red para la distribución de contenidos Una familia de wavelets: Haar wavelet III 1,0(t) (2t) 1,1 (t ) (2t 1) n , k (t ) 2 n ( 2 n t k ), 0 k 2n -1 1, si 0 t 1 0, en otro caso (t ) n: Escala k: Desplazamiento 38 Arquitecturas de red para la distribución de contenidos Análisis de multiresolución (Mallat) Relaciona las funciones wavelets de distintos niveles (t ) hk 2 (2t k ) (t ) (1) k h1 k 2 (2t k ) k k Permite definir familias de funciones wavelets a partir de los coeficientes {hk} (usados como filtros) Ej.: Daubechies4 h0 1 3 4 2 h1 3 3 4 2 h2 3 3 4 2 h3 1 3 4 2 39 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre señales 1D (I) s s 40 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre señales 1D (II) r1 H 2 G 2 s r1 d1 d1 41 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre señales 1D (III) r2 r1 H r2 2 G 2 2 s G H 2 d2 d2 d1 d1 42 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre señales 1D (IV) r2 r1 H G G d3 2 r3 G 2 d3 2 2 s r3 H H 2 d2 2 d2 d1 d1 43 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre imágenes I N M Imagen 44 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre imágenes II M/2 M N Hf 2 Gf 2 Low N Low High High 45 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre imágenes II M/2 M/2 N Low M N Hf Gf Hc 2 Gc 2 Hc 2 Gc 2 2 2 High LL N/2 LH HL HH LL HL LH HH 46 Arquitecturas de red para la distribución de contenidos Aplicación de wavelets sobre imágenes IV M/2 M/2 N Low M N Hf Gf Hc 2 Gc 2 Hc 2 Gc 2 2 2 High LL N/2 LH HL HH 47 Arquitecturas de red para la distribución de contenidos Aplicación sobre imágenes, ejemplo I 48 Arquitecturas de red para la distribución de contenidos Aplicación sobre imágenes, ejemplo II 49 Arquitecturas de red para la distribución de contenidos Aplicación sobre imágenes, ejemplo III 50 Arquitecturas de red para la distribución de contenidos Aplicación sobre imágenes, ejemplo IV 51 Arquitecturas de red para la distribución de contenidos Wavelets: Estructura de un codec. 52 Tema 3: Codificación y compresión de imagen 1. Introducción. 2. Características de la imagen. Captura y digitalización de imagen. Tipos de imagen 3. Compresión de imagen. Redundancia espacial. Estándar JPEG Wavelets EZW JPEG 2000 LTW 4. Conclusiones. Bibliografía [FLU95] Fluckiger, “Understanding networked multimedia” [TSU99] Introduction to video coding standards for multimedia communication [JPEG2000] JPEG 2000 performance evaluation and assessment [GEO99] Wavelet-based Image Coding: An Overview [EZW] Embedded image coding using zerotrees of wavelet coefficients [LTW] Fast and efficient spatial scalable image compression using wavelet lower trees Arquitecturas de red para la distribución de contenidos Arquitecturas de red para la distribución de contenidos Wavelets: Cuantización Una vez descompuesta la imagen en sub-bandas, se procede a cuantificar los coeficientes wavelets. La mayor parte de la energía está concentrada en las bandas de menor frecuencia. Existe una relación clara entre los coeficientes de la misma posición espacial en las diferentes bandas. Algoritmos propuestos: Embedded Zero-tree Wavelet (EZW) Set Partitioning In Hierarchical Trees (SPIHT) Stack-Run Cuantificación conjunta: espacial y en frecuencia. Lower-Tree Wavelet (LTW) 54 Arquitecturas de red para la distribución de contenidos Wavelets: Algoritmo EZW Basado en la definición de árboles de coeficientes Hay coeficientes en diferentes subbandas que representan la misma posición espacial en la imagen. En imágenes naturales, la mayor parte de energía se centra en las bandas de menor frecuencia. Cuanto más cerca del nodo raíz está un coeficiente, mayor magnitud tiene Si un nodo es menor que un umbral, posiblemente sus descendientes también lo serán. El algoritmo realiza aproximaciones sucesivas (planos de bits) con dos pasos por plano Utiliza un codificador aritmético 4 símbolos: sp, sn, zr, iz 55 Arquitecturas de red para la distribución de contenidos Wavelets: Algoritmo EZW INICIALIZACION: n log 2 cmax n: número de bits necesarios para codificar el mayor coeficiente. PASO DOMINANTE (se almacena el mapa de coeficientes) 1) Los coeficientes que necesitan exactamente n bits para ser codificados se etiquetan como significantes (positivo sp o negativo sn), se añaden a una lista de significantes y ya no se procesan en otros pasos dominantes. 2) El resto de coeficientes (que necesitan menos de n bits): Si todos sus descendientes también necesitan menos de n bits, se etiqueta todo el árbol como raíz de un árbol de ceros (zr) Sino, se etiqueta ese coeficiente como cero aislado (iz) PASO SUBORDINADO (se almacenan los bits de los coeficientes) Se codifica el bit n de los coeficientes de la lista de significantes Si no se ha alcanzado la tasa de bits deseada Se decrementa n en uno (vamos al siguiente bit de menor peso) Procedemos a realizar una nueva iteración (pasos dominante y subordinado) 56 Arquitecturas de red para la distribución de contenidos Wavelets: Algoritmo EZW. Ejemplo I 11 11 4 -6 3 4 2 3 0 -1 2 2 1 7 1 2 2 4 -1 2 -6 2 1 4 2 3 3 0 7 1 2 2 n=3 1 1011 0110 0100 0011 0100 0011 0010 0000 0001 0010 0111 0010 0010 0001 0001 0010 0100 0011 0010 0000 0001 0010 0111 0010 0010 0001 0001 0010 Símbolos = {sp,zr,zr,zr} Bits={} Lista signif = {} Nº bits: 4*2+0 = 8 n=2 2 * 0110 0100 0011 Símbolos = {sp,zr,zr,zr, sp,sn,iz, zr,zr,zr,zr, sp,zr,zr,zr, sp,zr,zr,zr} Bits={0} Lista signif = {1011} Nº bits: 19*2+1 = 39 57 Arquitecturas de red para la distribución de contenidos Wavelets: Algoritmo EZW. Ejemplo II 11 11 4 -6 3 4 2 3 0 -1 2 2 1 7 1 2 2 4 -1 n=1 3 * * 0001 * 0011 0010 * 0010 * 0011 0000 0010 0010 0001 0001 0010 2 -6 2 1 4 2 3 3 0 7 1 2 2 Símbolos = {sp,zr,zr,zr, sp,sn,iz, zr,zr,zr,zr, sp,zr,zr,zr, sp,zr,zr,zr, sp, zr,sp,sp,zr, sp,sp,zr, zr,sp,sp} Bits={0, 1, 0, 1, 0, 1} Lista signif = { 1011, 0100, Nº bits: 30*2+6 = 66 0110, 0100, 0111 } 58 Arquitecturas de red para la distribución de contenidos Wavelets: Algoritmo EZW 11 11 4 -6 3 4 2 3 0 4 -1 2 -6 2 1 4 2 3 3 0 7 1 2 2 ¿Cuándo dejamos de codificar? -1 2 2 1 7 1 2 2 Cuando terminamos con la cuota de bits Varias opciones a la hora de que el decodificador complete los bits no transmitidos: Relleno de ceros (p.ej 101xxx 101000) Relleno de unos (p.ej 101xxx 101111) Reducir el intervalo de error (p.ej 101xxx 101100) 59 Arquitecturas de red para la distribución de contenidos Tunning and Optimizing an EZW codec [OLI01] We have implemented the EZW algorithm in order to tune it Here we present different implementation alternatives, some of them mentioned by Shapiro and others not All these alternatives can be grouped in four categories: Choosing the best filter Coefficient preprocessing Improvements on the EZW algorithm Improvements related to the adaptive arithmetic encoder 60 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Choosing the best filter Choosing a good filter bank is very important to achieve good compactness of the image in LL band Our implementation shows similar results using the same image and filter validate our implementation Evaluated filters: Daubechies 4-tap Biorthogonal 9/7 Villasenor 10/18 Adelson 9-QMF (original used by Shapiro) Bit Rate 2 1 0.5 0.25 Orig N/A 39.55 36.28 33.17 Adel 44.03 39.53 36.28 33.18 PSNR Lena Image Vil B9/7 44.05 44.18 39.63 39.64 36.49 36.59 33.43 33.50 D4 43.90 39.17 35.54 32.23 61 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Choosing the best filter Lena Baboon 62 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Coeffcient preprocessing An important effect appears in all Rate/Distortion curves its scalloped aspect with several peaks Peaks correspond with the end of a full EZW iteration The EZW presents its best performance when the algorithm finishes its bit budget at the end of a subordinate pass Lena Baboon 63 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Coefficient Pre-Quantization At an established bit rate, depending on the prequantization factor, peaks of performance appear These peaks are shifted to the right when the bit rate decreases With the suitable quantization factor and filter bank, performance can be improved up to 0.8 dB !!. 64 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Improvements on the EZW (I) Some options can be tuned in the algorithm: No swap: Different gradient between the subordinate and dominant pass bit from subordinate step are more valuable Swap: The subordinate pass is performed first, and then the dominant pass Reduce & no swap: The decoder must predict the bits that the coder could not send. In order to reduce the uncertainty interval, it predicts that the more significant is 1 and the rest are 0 Reduce & swap: Performing swap is not actually significant when the uncertainty interval is reduced 65 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Improvements on the EZW (II) Other options: Scan order Morton order: Morton order performs the coefficient scan in small groups, improving the adaptivity achieved by the arithmetic encoder No_skip_first_bit_1 Skip: The MSB of a significant coefficient is always 1 and may be skipped Reorder No reorder: Shapiro proposes to sort the coefficients in the subordinate pass according to its magnitude.. Poor benefit Encoder and decoder become much more slow. 66 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Improvements on the arithmetic coder Use four histograms Not use four histograms Little improvement using four histograms. Restart Not restart All histograms can be restarted at the end of a full pass, to achieve better adaptivity Use three symbols Use four Last subbands do not have offspring, a three-symbol alphabet without the isolated-zero symbol can be used in these bands (no improvement) 67 Arquitecturas de red para la distribución de contenidos EZW opt&tun: Conclusions We have evaluated 15 alternatives in different coder stages We have shown that it is possible to get better results than those published by Shapiro: Around 0.4 dB under the same conditions Up to 0.8 dB more by using more efficient filter banks 68 Tema 3: Codificación y compresión de imagen 1. Introducción. 2. Características de la imagen. Captura y digitalización de imagen. Tipos de imagen 3. Compresión de imagen. Redundancia espacial. Estándar JPEG Wavelets EZW JPEG 2000 LTW 4. Conclusiones. Bibliografía [FLU95] Fluckiger, “Understanding networked multimedia” [TSU99] Introduction to video coding standards for multimedia communication [JPEG2000] JPEG 2000 performance evaluation and assessment [GEO99] Wavelet-based Image Coding: An Overview [EZW] Embedded image coding using zerotrees of wavelet coefficients [LTW] Fast and efficient spatial scalable image compression using wavelet lower trees Arquitecturas de red para la distribución de contenidos Arquitecturas de red para la distribución de contenidos 3.1 Redundancia espacial: JPEG 2000 Estándar ISO/ITU (‘01) que mejora el anterior JPEG. Mejora la compresión usa transformada Wavelet Hay versión con pérdidas y sin pérdidas. Permite multiresolución (gracias al análisis Wavelet). Es embedded (enclavado) Decodificación progresiva Escalable SNR Permite dividir la imagen en bloques de cualquier tamaño (no solo 8x8) (incluso un único bloque) Permite codificar Regiones de Interés (ROI) Es más robusto frente a errores. 70 Arquitecturas de red para la distribución de contenidos JPEG 2000: Motivación Inconvenientes del EZW: Debido a las estructuras de árboles, los errores se propagan de unas subbandas a otras Menor robustez frente a errores. Debido a la codificación progresiva por planos de bits, no hay escalabilidad espacial (sólo de calidad SNR). JPEG 2000 corrige estos inconvenientes: Codifica las distintas subbandas por bloques y de forma independiente, sin utilizar árboles (algoritmo Embedded Block Coding with Optimized Truncation, EBCOT). Se utiliza un nuevo algoritmo para suplir la pérdida de eficiencia al no aprovechar la redundancia existente entre subbandas. Se introduce una etapa de reordenación de coeficientes que permite todo tipo de escalabilidad (al no haber árboles los coeficientes se reordenan con mayor facilidad). 71 Arquitecturas de red para la distribución de contenidos JPEG 2000: Estructura Estructura de un codificador JPEG 2000: Una imagen se puede dividir en bloques denominados tiles (normalmente hay sólo uno). A cada tile se le aplica el algoritmo JPEG2000: Se calcula su transformada Wavelet. Se cuantizan los coeficientes. Se aplica el algoritmo EBCOT por bloques (de 32x32 ó 64x64 coeficientes) (tier 1 coding) Se organiza el bit stream (tier 2 coding) según la escalabilidad deseada. – Escalabilidad espacial: Se sitúan primero las subbandas de menor frecuencia. – Escalabilidad SNR o en calidad: Se codifica primero los planos de bits de los coeficientes de mayor magnitud. 72 Arquitecturas de red para la distribución de contenidos JPEG 2000: Estructura bit-plane 5 bit-plane 4 part of the encoded bit-stream for a desired target bit rate bit-plane 3 bit-plane 2 … significance propagation pass bit-plane 1 (LSB) magnitude refinement pass clean up pass block 1 block 2 block 3 block 4 block 5 Fig. 4.3: Example of block coding in JPEG2000. In tier 1 coding, each code-block is completely encoded bit-plane by bit-plane, with three passes per bit-plane (namely signification propagation, magnitude refinement and clean up passes). Only part of each code-block is included in the final bitstream. In this figure, the truncation point for each code-block is pointed out with a dotted line. These truncation points are computed with an optimization algorithm in tier 2 coding, in order to match with the desired bit rate with the lowest distortion. 73 Arquitecturas de red para la distribución de contenidos JPEG 2000: Comparativa JPEG-JPEG2000 Comparación objetiva 74 Arquitecturas de red para la distribución de contenidos JPEG 2000: Comparativa JPEG-JPEG2000 Comparación subjetiva Original: 700 kbytes Comprimida con JPEG 6,1 kbytes - 1:115 Comprimida con JPEG 2000 6,1 kbytes - 1:115 75 Tema 3: Codificación y compresión de imagen 1. Introducción. 2. Características de la imagen. Captura y digitalización de imagen. Tipos de imagen 3. Compresión de imagen. Redundancia espacial. Estándar JPEG Wavelets EZW JPEG 2000 LTW 4. Conclusiones. Bibliografía [FLU95] Fluckiger, “Understanding networked multimedia” [TSU99] Introduction to video coding standards for multimedia communication [JPEG2000] JPEG 2000 performance evaluation and assessment [GEO99] Wavelet-based Image Coding: An Overview [EZW] Embedded image coding using zerotrees of wavelet coefficients [LTW] Fast and efficient spatial scalable image compression using wavelet lower trees Arquitecturas de red para la distribución de contenidos Arquitecturas de red para la distribución de contenidos LTW: A fast Multiresolution Image Coding Algorithm Our proposal: Coefficients are encoded without performing one loop scan per bit plane Quantization is performed following two strategies: Finer quantization: Scalar uniform quantization of wavelet coefficients Coarser quantization: Removing bit planes of all the coefficients rplanes: number of least significant bits to be removed A coefficient is significant if it is different from 0 after discarding the first rplanes bits ( c ≥ 2rplanes ) 77 Arquitecturas de red para la distribución de contenidos LTW: Algorithm I Scan all the subbands For each coefficient in this subband: Get the number of bits needed to represent it (nbits) if it is significant (nbits > rplanes), – Arithmetic_output nbits – Output significant bits (quantized value) and sign else (it is not significant), – Arithmetic_output LOWER 78 Arquitecturas de red para la distribución de contenidos LTW: Example of Algorithm I Input Quantized wavelet coefficients 0 1 -1 2 3 1 -8 3 47 -2 -1 4 +1 0 6 bits 1 -1 0 1 0 +1 0 0 1 -1 1 0 -1 rplanes=2 0 Output Encoded Bitstream 6,+, {011} L L 3,+, {} L L 4,-, {0} L L L L L 79 Arquitecturas de red para la distribución de contenidos LTW: : Characteristics of Algorithm I The encoding process is spatial scalable (Mallat decomposition) but it is not SNR scalable No inter-subband dependency: Possibility of robustness using synch marks Lower compression performance One arithmetic symbol is always encoded for every wavelet coefficient… 3/4 part of the execution time is spent in the arithmetic encoder stage So, we propose an evolution of this algorithm that considers working with coefficient trees and avoids some drawbacks. 80 Arquitecturas de red para la distribución de contenidos LTW: Two-pass block coding using lower-trees We use coefficient trees as a fast and efficient method of grouping coefficients (quad-tree) The quantization method is the same as in Algorithm I A coefficient is lower-tree root if this coefficient and all its descendants are not significant (i.e., <= 2rplanes) The root coefficient is labeled as LOWER (L) The rest of coefficients in the tree are LOWER_COMPONENTS (*) and are never stored If a coefficient is not significant, but any descendant is significant, that coefficient is ISOLATED_LOWER (I) and does not form a tree 81 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II It is a two-pass algorithm First pass: Wavelet coefficients are properly labeled according to their significance Subbands are scanned in 2x2 blocks If all the coefficients in the block are not significant They are labeled (*) If any coefficient is significant They are labeled as (L), (I ) or with (nbits) according to their significance Second pass: Coefficient values are coded in a similar way than in algorithm I 82 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example We want to encode an 8x8 example image The wavelet coefficient matrix is obtained (from DWT) rplanes=2, coefficients within interval ] 22, -(22)[ are absolutely quantized We focus on the first level subbands 51 42 -9 In this block “-4” is significant (needs 3 bits to be represented) The rest are not significant (LOWER) 2 4 4 0 -1 25 17 10 11 3 1 0 2 12 3 3 -2 2 -2 -5 3 -9 -3 3 -3 0 3 -1 2 -4 1 1 2 0 2 1 3 2 -3 0 2 1 -1 -1 -2 1 3 2 1 1 2 -3 1 -2 -3 3 -12 2 0 2 1 83 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example These blocks are not significant and their coefficients are labeled as LOWER_COMPONENT 51 42 -9 2 4 4 0 -1 25 17 10 11 3 1 0 2 12 3 3 -2 2 -2 -5 3 -9 -3 3 -3 0 3 -1 2 3 L L L 1 2 0 2 1 3 0 2 1 -1 -1 -2 1 3 2 1 1 2 -3 1 -2 -3 3 -12 2 0 2 1 84 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example In this block we have a significant coefficient 51 42 -9 2 4 4 0 -1 25 17 10 11 3 1 0 2 12 3 3 -2 2 -2 -5 3 -9 -3 3 -3 0 3 -1 2 3 L L L * * 0 2 1 3 * * 1 -1 -1 -2 * * 2 1 1 2 -3 1 * * 3 -12 2 0 2 1 85 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example All these blocks in this subband are not significant 51 42 -9 2 4 4 0 -1 25 17 10 11 3 1 0 2 12 3 3 -2 2 -2 -5 3 -9 -3 3 -3 0 3 -1 2 3 L L L * * 0 2 1 3 * * 1 -1 -1 -2 * * 2 -3 1 * L 4 1 * L L 2 0 2 1 86 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example These subbands have significant coefficients 51 42 -9 2 4 4 0 -1 25 17 10 11 3 1 0 2 12 3 3 -2 2 -2 -5 3 -9 -3 3 -3 0 3 -1 2 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 87 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example These subbands have significant coefficients While these subbands are not significant 3 3 0 -1 25 17 10 11 L L 0 2 12 3 3 -2 2 -2 -9 -3 3 -3 0 3 3 L L L 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 51 42 -9 2 88 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example Now we focus on the following subband level This coefficient and all its descendants are not significant: LOWER symbol 3 3 * * 25 17 10 11 L L * * 12 3 3 -2 * * -9 -3 3 -3 * * 3 L L L 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 51 42 -9 2 89 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example This coefficient is not significant, but there is a significant descendant: ISOLATED_LOWER symbol 3 3 * * 25 17 10 11 L L * * 12 L 3 -2 * * -9 -3 3 -3 * * 3 L L L 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 51 42 -9 2 90 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example This coefficient is significant: we use a symbol indicating the number of bits needed to represent it, a nbits symbols 3 3 * * 25 17 10 11 L L * * 12 L 3 -2 * * 3 -3 * * L L 3 L I L L 3 L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 51 42 -9 -9 2 91 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example This coefficient is significant, but its descendants are not significant: a special nbits symbol indicates that it is the root of a special lower-tree (the root is significant) 3 3 * * 25 17 10 11 L L * * 4 L L 51 42 -9 2 3 -2 * * 3 -3 * * 3 L 3 L L I L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * -9 92 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example This block and all its descendants are not significant, the tree can continue growing 3 3 * * 25 17 10 11 L L * * 4 4L 3 L L I L L 3 -2 * * 3 -3 * * 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 51 42 -9 2 93 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example We can finish this first step calculating the rest of symbols in the same way 3 3 * * 25 17 10 11 L L * * 4 4L 3 L L I L L * * * * * * * * 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 51 42 -9 2 94 Arquitecturas de red para la distribución de contenidos LTW: Algorithm II example In a second pass, all the symbols (except (*)) are encoded like in algorithm I This is the subband scan order for the second pass 6 6 4 L 3 3 * * 5 5L 4L 4 L L * * 4 4L 3 L L I L L * * * * * * * * 3 L L L * * * * * * * * * * * * * * * * * * L 4 * * L L * * * * 95 Arquitecturas de red para la distribución de contenidos LTW: Comparison with other wavelet image coders We use real implementations in this evaluation All the implementations are in standard C++ (no assembly language), compiled using the same optimization level SPIHT: Source code available from the authors JPEG 2000: Jasper v1.6 (ISO/IEC 15444-5 reference software) LTW: Implementation available at GATCOM web site Selected images: Standard Lena (8bpp, 512x512): We can compare our algorithm with practically all the published algorithms Café image from the JPEG 2000 test set: A typical high detailed picture that has been taken using a high quality 5-Megapixel digital camera 96 Arquitecturas de red para la distribución de contenidos LTW: Lena Rate/PSNR comparison Our Lower-Tree Wavelet (LTW) encoder is the one that better results show, including the recently released JPEG 2000 standard Codec \rate EZW SPIHT Stack Run Embedded Run-length JPEG 2000 LTW 2 n/a 45.07 n/a n/a 44.62 45.46 1 39.55 40.41 n/a 40.28 40.31 40.50 0.5 36.28 37.21 36.79 37.09 37.22 37.35 0.25 33.17 34.11 33.63 34.01 34.04 34.31 0.125 30.23 31.10 n/a n/a 30.84 31.27 97 Arquitecturas de red para la distribución de contenidos LTW: Café Rate/PSNR comparison In high-detail images, the advantage is not so big compared to JPEG 2000: Many details lead to less insignificant coefficients in first levels, thus less lower-trees Codec \rate SPIHT JPEG 2000 LTW 2 38.91 39.09 39.11 1 31.74 32.04 32.03 0.5 26.49 26.80 26.85 0.25 23.03 23.12 23.24 0.125 20.67 20.74 20.76 98 Arquitecturas de red para la distribución de contenidos LTW: Café Execution time comparison Our encoder: Up to 8 times faster than J2K, and 2.5 times faster than SPIHT Our decoder: Up to 2.5 faster than J2K, and 7 times faster than SPIHT Similar results with Lena café coding café decoding codec\ rate SPIHT JPEG 2000 LTW SPIHT JPEG 2000 LTW 2 4368.7 7393.1 1663.5 5375.4 2373.0 1505.6 1 2400.1 6907.6 1203.7 3514.0 1475.2 911.6 0.5 1399.3 6543.9 938.6 2619.7 991.8 569.5 0.25 889.8 6246.2 782.8 2193.0 763.6 366.6 Time in million of CPU cycles (only coding/decoding, no WT) 99 Arquitecturas de red para la distribución de contenidos LTW: Conclusions A new wavelet image coder based on the construction and efficient coding of wavelet lower-trees (LTW) has been presented Its compression performance is within the state-of-the-art The main contribution is its lower complexity Improves SPIHT in 0.2-0.4 dB and J2K with Lena in 0.35 dB as mean value Encodes an image up to 8 times faster than J2K and 2.5 times faster than SPIHT There is no memory overhead (in-place processing of the wavelet coefficients): only needs memory to store the source image, no extra lists 100 Arquitecturas de red para la distribución de contenidos 4. Conclusiones Las imágenes son captadas por los CCDs en las cámaras digitales. Utilizamos distintos tipos de codificación YCbCr con subsampling de la información de color. Compresión de imagen, elimina redundancia espacial: JPEG: Utiliza la DCT, cuantiza los coeficientes resultantes y los almacena usando RLE+huffman. Wavelets: Más eficiente. Permite definir la función base (no necesariamente cosenos) y descomponer toda la imagen. EZW: Almacena los coeficientes Wavelet usando estructuras de árboles y aproximaciones sucesivas. JPEG2000: Almacena los coeficientes Wavelet por bloques utilizando el algoritmo EBCOT, de manera que consigue escalabilidad espacial y SNR, y mayor robustez frente a errores. LTW: Eficiente, bajo consumo de recursos (memoria y ciclos CPU) 101