2. 2
Contenido de la presentación
• 1 – Aspectos teóricos de la DWT
• 2 – El esquema Lifting para la DWT
• 3 – Implementación en C++
• 4 – Resultados y comparativa con DWT clásica
3. 3
1 – Aspectos teóricos de la DWT
• Operación matemática que permite representar
coeficientes numéricos en función de Wavelets
(compuestas por función wavelet+ f. escalado).
• Se usa en JPEG2000 porque:
▫ Mejora la compresión respecto a la DCT de JPEG.
▫ Permite multiresolución si se aplican múltiples
niveles de DWT.
▫ Permite escalabilidad espacial y SNR.
▫ Elimina el efecto de "bloques" de JPEG.
▫ Robusta frente a errores
4. 4
1 – Aspectos teóricos de la DWT
• Wavelets usadas en JPEG2000:
▫ Cohen-Daubechies-Feauveau (CDF) 5/3
Tiene coeficientes enteros
Se usa en codificación sin pérdidas
▫ CDF 9/7
Tiene coeficientes reales
La DWT introduce ruido por cuantificación de los
coeficientes.
Se usa en codificación con pérdidas
5. 5
2 – DWT mediante Lifting
• Implementación clásica de la DWT: dos filtros
FIR, paso alto(detalle) y paso bajo (escalado)
• Filtrado FIR: convolución
6. 6
2 – DWT mediante Lifting
• Problemas del esquema clásico:
▫ Se procesan las mismas muestras dos veces (una
por cada filtro paso alto o paso bajo).
Esquema DWT 2D
▫ Requiere memoria auxiliar
▫ Costosa computacionalmente
7. 7
2 – DWT mediante Lifting
• Esquema Lifting : se procesa la información de
otro modo aprovechando propiedades de las
señales continuas (como las imágenes)
▫ Las muestras consecutivas son parecidas: se
pueden predecir unas a partir de otras
▫ Etapas de predicción & actualización (y escalado)
8. 8
2 – DWT mediante Lifting
• Esquema Lifting para DWT CDF5/3 y CDF9/7
CDF 5/3:
coeficientes enteros
CDF 9/7:
coeficientes reales
9. 9
3 – Implementación en C++
• Primero: implementación DWT 1D
directa/inversa para CDF 5/3 y 9/7
▫ Bloques predict/update con sus coeficientes
• Segundo: implementación DWT 2D aplicando
DWT 1D dos veces
• Tercero: DWT multinivel diádicas iterando
sobre el plano LL (multiplicando/dividiendo el
tamaño de planos por 2 en cada iteración)
10. 10
3 – Implementación en C++
• Representación de los pasos de la DWT en un
plano de imagen:
DWT DWT Multinivel
11. 11
4 – Resultados y comparativa
• Los resultados son los mismos que los calculados
mediante la implementación clásica
• Posiblemente más sencillo de codificar (menos
operaciones)
• Bastante más eficiente computacionalmente :
3145728mult. & 4194304sumas con lifting vs
4718592 & 7340032 con filtrado FIR para el plano Y
de una imagen 512x512 con CDF9/7.
• Utiliza menos memoria: cálculo in-place de los
coeficientes transformados.