Cuantificación. Codificación de imágenes y video

57  16  Descargar (0)

Texto completo

(1)

Cuantificación

(2)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 2

Temario

Un poco de historia

Definiciones

Performance de un cuantificador

El cuantificador escalar

Performance del cuantificador escalar

El cuantificador escalar uniforme

VQ: una extensión de la cuantificación escalar?

Codificador – Decodificador

Cuantificadores de Vecino Más Cercano

Condiciones de optimalidad

Diseño de un Cuantificador Vectorial

Codebook Inicial

Algoritmo de Lloyd (ejemplo)

VQ: imágenes fijas

VQ: video

VQ: aplicaciones y variantes

(3)

1898 - W.F.Sheppard, “On the calculation of the most probable values of frequency constant for data arranged according to equidistant division of scales”, primer análisis de la cuantificación escalar, error de redondeo, etc.

1948 - C.E.Shannon, “A mathematical theory of communnication”

1956 - Steinhaus considera un problema equivalente a una generalización 3D de la cuantificación escalar. En este trabajo se derivan lo que hoy se conocen como las condiciones de optimalidad de Lloyd.

1957 - S.P.Lloyd “Least squared quantization in PCM”, condiciones necesarias y suficientes para la optimalidad local de cuantificadores de rate fijo.

1959 - C.E.Shannon “Coding theorems for a discrete source with fidelity criterion”, esboza para fuentes i.i.d., MSE y codificación en bloques

1959 - Toth describe una especificación del problema planteada por

Un poco de historia

(4)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 4

Un poco de historia (VQ)

Principios de `60 son ‘redescubiertas’ las condiciones de optimalidad de Lloyd, Steinhaus y Zador, y los algoritmos de diseño de Lloyd y Steinhaus en la literatura de statistical clustering.

1965-1969 - desarrollo de algoritmos basados en aplicaciones de statistical clustering (selección de templates que representen una gran colección de datos)

1974-75 - Chaffee y Omura: aplicaciones de VQ a speech vocoding

1977 - Hilbert: aplicaciones de VQ a compresión y clasificación de imágenes

1978-79 - Aplicaciones de VQ a LPC speech

Julio 1979 - A.Gersho “Asimptotically optimal block quantization”, popularizó y potencializó las mejoras en la performance de VQ, e introdujo los lattice VQ para alcanzar asintoticamente la optimalidad.

1980 - Linde, Buzo y Gray “An algorithm for vector quantizer design”, extiende el algoritmo de Lloyd al diseño de cuantificadores vectoriales

década de ‘80 - publican varios tutorial que popularizan y hacen accesible el tema...

(5)

Definiciones

Cuantificador

Función (mapeo) de un vector de un espacio euclídeo de dimensión k en un conjunto finito C (codebook) conteniendo N vectores de salida yi (code-vector), esto es

 Celdas o Regiones

Asociado a cada uno de los N code-vectors existe una celda o región Ri definida como

R ={x∈Rk/Q  x= y }

Q : RkC C={y1,⋯, yN } yi∈Rk

(6)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 6

Definiciones

 Celdas o Regiones

De la definición de celda se desprende que

 Cuantificador regular

Un cuantificador vectorial es regular si cada celda es un conjunto convexo y si cada

.∪iN=1 Ri=ℝk Ri∩Rj=∅ para i≠ j

yi∈Ri

(7)

Medición de la performance de un cuantificador

Proceso con pérdida.

Se modela la entrada como una variable aleatoria, x, especificada por su función densidad de probabilidad, fx(x).

Distorsión: media estadística de la distancia entre x y Q(x),

D=E

[

d

x ,Q x

]

=

k

d

x ,Q x

f X  xdx

(8)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 8

Medición de la performance de un cuantificador

La performance de un cuantificador es especificada en términos de la relación señal-ruido, definida como el cociente entre la potencia de la señal, E[X2], y la distorsión (“potencia del ruido”)

SNR=10 log10

E[ XD 2]

PSNR=10 log10

255D

(9)

El cuantificador escalar (k=1)

Cuantificador escalar regular:

Ri

{

x∈ℝ/Q  x= yi

}

=Q−1 yi

yi

xi−1 , xi

]

(10)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 10

En caso de un cuantificador regular,

Performance de un cuantificador escalar

D = ∑

i=1

N

xi−1 xi

dx ,Q  xf

X

 xdx

Usando como distancia d(x,Q(x)) = (x - yi)2

MSE=

i=1

N

xi−1 xi

x− yi

2 f X  xdx

(11)

De (b) 

El cuantificador escalar uniforme

Es un cuantificador regular donde,

(a) los puntos límite o de decisión están igualmente espaciados,

(b) la salida para una celda (intervalo) acotado es su punto medio

De (a), el paso de cuantificación es:

Pueden existir dos celdas (intervalos) no acotados,

= yi− yi−1

yi= xi−xi−1

2 i=1, 2,⋯, N −1

(12)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 12

Performance del cuantificador escalar uniforme

Consideremos un cuantificador regular con una entrada acotada en [-V,V]. El rango del cuantificador, (x0, xN), se divide en N intervalos iguales, de longitud D=2V/N.

Error de cuantificación:

Si la pdf de entrada es U[-V,V], entonces el error de cuantificación tiene una pdf U[-D/2,D/2]

= X −Q  X 

2

f = 1

 con ∈

[

2 , 2

]

 E []=0 y E [2]=2 12

(13)

Performance del cuantificador escalar uniforme

En este caso,

Válido también si la pdf de entrada no es uniforme, y N es suficientemente grande.

Si la pdf de entrada no es acotada, existen dos intervalos saturados. Puede diseñarse un cuantificador escalar donde las aproximaciones realizadas sigan siendo válidas.

D=2

12 = 4 V 2

12 N2=1

3

VN

2

PSNR=10 log10 E

[

X 2

]

D =10 log10 3 N 22 V 2

(14)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 14

VQ: una extensión de la cuantificación escalar ?

Pasaje de escalares a vectores (conjunto de escalares ordenados)

Técnicas de análisis y diseño generalizadas de la cuantificación escalar.

No existe otra técnica de codificación que logre mejores resultados que VQ.

Sin embargo presenta un cambio de enfoque y descubre nuevos conceptos, técnicas y aplicaciones.

Idea de extender el alfabeto de entrada aprovechando correlación.

(15)

VQ: una extensión de la cuantificación escalar ?

Cuantificación escalar

conversión A/D

VQ

Acompaña un procesamiento digital “sofisticado”

En general la salida es la entrada “comprimida”

Compresión de audio y video

Reconocimiento de patrones

Competitive Learning

...

(16)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 16

Los cuantificadores pueden ser descompuestos en dos funciones más elementales, la codificación y la decodificación.

Codificador

mapea un vector del espacio de entrada en un conjunto de índices, I

Una partición dada de Rk determina completamente la forma como el codificador asignará el índice a cada vector de entrada; no es necesario conocer el codebook para codificar

Codificador - Decodificador

E :k I =

{

1,⋯, N

}

(17)

Decodificador

mapea el conjunto de índices I en el conjunto de representantes C (codebook)

Dado un codebook queda completamente determinado como el decodificador generará la salida a partir de un índice; no es necesario conocer la geometría de la partición.

Resumiendo

Codificador - Decodificador

D : I C=

{

y1,⋯, yN

}

Q x=D

E

x

(18)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 18

Son una clase especial de cuantificadores donde las particiones en regiones vienen dadas por

Una ventaja de estos cuantificadores es que el proceso de codificación no necesita almacenar una descripción geométrica de las celdas, alcanza con conocer el codebook C, la codificación es mediante una comparación de distancias.

Cuantificadores de Vecino Más Cercano (Voronoi)

R

i

= { x : d  x , y

i

≤d  x , y

j

∀ j∈I }

C={ yi}

(19)

Regla de codificación del vecino más cercano

1. Inicio: D=d0 , i=1 y j=1 2. Calculo Dj=d(x,yj)

3. Si Dj ≤ D entonces D=Dj y i=j 4. Si j ≤ N entonces j=j+1. Ir a 2

5. FIN. Resultado: i es el índice con que se codificará el vector de entrada.

Cuantificadores de Vecino Más Cercano

(Voronoi)

(20)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 20

Búsqueda del Vecino Más Cercano

Métodos exhaustivos implementados en VLSI

Algoritmos de búsqueda más eficientes (en el tiempo):

Codebooks con estructura particular que facilita la búsqueda

Puede no encontrar el verdadero vecino más cercano

Ejemplo con polytopal VQ

(21)

Búsqueda del Vecino Más Cercano

(22)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 22

Condiciones de optimalidad

Optimalidad en el rendimiento ante una medida de distorsión o desempeño,

En el caso discreto

D=E

[

d

x ,Q x

]

=

k

d

x ,Q x

f X  xdx

D=E

[

d

x ,Q x

]

=

i

d

xi ,Q xi

pX  xi

(23)

Condiciones de optimalidad

Existen condiciones necesarias para que un codificador sea óptimo para un determinado decodificador y viceversa.

El codificador queda determinado dada la partición de Rk y el decodificador queda determinado por el codebook.

Las condiciones de optimalidad son:

Condición de vecino más cercano (E óptimo dado D)

Condición de centroide (D óptimo dado E)

Condición de probabilidad cero en los bordes

(24)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 24

Condición del Vecino más Cercano (Partición óptima)

La imagen de cada vector de entrada es el vector del codebook más cercano a él.

Condición del Centroide (Codebook óptimo)

Cada región, Ri, será representada por el centroide de ella, yi

Condiciones de optimalidad

yi=

Ri

x f X  xdx

Ri

f X  xdx

(25)

Condiciones de optimalidad (cuantificador uniforme)

D=

i=1

N

ti ti1

 x− yi2 f X  xdx

∂ D

∂ yi=−2

ti ti1

 x− yi f X xdx = 0

t t

x f X xdx

∂ D

∂ti = ∂

∂ti

ti−1 ti

 x− yi−12 f X xdx  ∂

∂ti

ti ti1

 x− yi2 f X xdx = 0

 ti− yi−1ti− yi=0  ti= yi yi−1 2

Busco ti óptimo

Busco yi óptimo

(26)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 26

Con estas dos condiciones de optimalidad se plantea la Iteración de Lloyd

Dado Cm, encontrar la partición óptima utilizando la Condición del Vecino más Cercano.

Utilizando la Condición de Centroide, encontrar el codebook óptimo Cm+1 para la partición hallada.

Diseño de un Cuantificador Vectorial

(27)

Diseño de un Cuantificador Vectorial

Algoritmo de Lloyd (Generalizado)

1. Se comienza con un codebook inicial C1, y m=1

2. Dado el codebook Cm se aplica la Iteración de Lloyd para generar el codebook Cm+1.

3. Se calcula la distorsión media para Cm+1. Si el cambio desde la última iteración es menor que cierto umbral, FIN.

Si no es así se hace m=m+1 y se vuelve al paso 2.

(28)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 28

En el paso 2 se puede utilizar algún método para el caso en que se genere algún celda vacía.

Criterio de parada.

Verificar la condición de probabilidad cero en los bordes.

El algoritmo de Lloyd (la iteración) garantiza que la distorsión no crece.

Converge en un número finito de pasos a un mínimo local.

Dependencia muy fuerte del codebook inicial que se utilice en el algoritmo.

Diseño de un Cuantificador Vectorial

(29)

 Random Coding

se eligen aleatoriamente N vectores de la secuencia de entrenamiento

 Algoritmo de Pruning

algoritmo poco costoso que se adecua a la estadística de la secuencia de entrenamiento

los vectores del codebook hallado pertenecen a la secuencia de entrenamiento

todos los vectores de la secuencia de entrenamiento distan menos

Diseño de un Cuantificador Vectorial:

Codebook Inicial

(30)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 30

 Clustering

se comienza con todos los vectores de la secuencia de entrenamiento como codevectors, se agrupan de a dos y son sustituidos por su centroide.

los vectores del codebook no son generalmente elementos de la secuencia de entrenamiento.

muy pesado computacionalmente.

 Splitting

se comienza con el centroide de la secuencia de entrenamiento como único integrante del codebook. Luego se divide en dos codevectors perturbándolo; y se aplica la iteración de Lloyd. Se repite este procedimiento hasta llegar al tamaño de codebook buscado.

Diseño de un Cuantificador Vectorial:

Codebook Inicial

(31)

Algoritmo de Lloyd:

ejemplo de corrida

A partir de una imagen y se formaron vectores de dimensión 2, tomando los pixeles de a dos.

Se representan en el plano, R2

Se toman 4 puntos del plano al azar como codebook inicial y se corre el Algoritmo de Lloyd.

(32)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 32

(33)
(34)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 34

(35)
(36)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 36

(37)
(38)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 38

(39)
(40)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 40

(41)
(42)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 42

VQ: imágenes fijas

Izquierda: imagen original.

Derecha: imagen codificada con un codebook de 32 elementos, y vectores de dimensión 4.

(43)

VQ: imágenes fijas

Zoom del ojo derecho de Lena en las imágenes anteriores.

(44)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 44

VQ: imágenes fijas

Codebook de 256 elementos de 4x4 pixeles

(45)

VQ: imágenes fijas

Imagen error

(46)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 46

PSNR

bpp JPEG

VQ: imágenes fijas

JPEG

VQ

(47)

Aplicaciones:

Pequeños videos en CD-ROM

WEB (solo a bit-rates altos)

Características:

Orientado a bloque

Cuantificación vectorial

Tiempos de codificación importantes

Compresión temporal y espacial

Asimétrico: comp./decom. = 300

Para buena calidad: rate > 30 kbps

VQ: video

Cinepack

(48)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 48

Ventajas:

Consume pocos recursos (CPU)

Está implementado en Quicktime y Video for Windows

Desventajas:

Mala calidad (existen mejores a igual rate)

Compresión 10:1.

VQ: video

Cinepack

(49)

Aplicaciones:

Similar a Cinepak

Características:

Orientado a bloque

Cuantificación vectorial

Más rápido que Cinepak

Calidad acceptable (mejor que Cinepak)

VQ: video

Indeo

(50)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 50

Ventajas:

1/3 más rápido que Cinepak

Mejores resultados en secuencias de videotelefonia, videoconferencia donde el fondo es estático

Desventajas:

Problemas de color (artifacts)

No esta soprtado en Quicktime 3

VQ: video

Indeo 3.2

(51)

VQ: variaciones

Complejidad en cálculo y almacenamiento.

TSVQ (Tree Structured VQ)

búsqueda del NN basado en un árbol de busqueda

puede no llegar a encontrarlo

CVQ (Clasified VQ)

Mean Removed VQ

Predictive VQ

Variable Dimension VQ

dependiendo caracteristicas de la señal, el mapeo se realiza sobre codebooks de diferentes dimensiones

el decodificador debe conocerlos todos

Multistage VQ

Se codifica VQ el error de la última codificación

(52)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 52

VQ: aplicaciones

Codificación de voz

Speech waveform coding

LPC-VQ

Compresión de imágenes

Codificación de video

Reconocimiento de patrones

Competitive Learning

(53)

Cuantificación no uniforme

compresor Z

expansor Z-1 cuantificación

uniforme

x x'

(54)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 54

ADPCM(Adaptive Diferencial PCM)

Reducción de la varianza del error de cuantificación reduciendo la varianza de la señal de entrada.

Predicción de la muestra actual a partir de muestras anteriores.

El error que se comete en esta predicción es cuantificado y transmitido al receptor.

Paso de cuantificación adaptable.

Los coeficientes de A(z) son calculados de forma de minimizar el MSE.

Forward ADPCM y Backward ADPCM

Recomendación ITU-T G727

(55)

Referencias

Vector quantization and signal compression.

A.Gersho & R.M.Gray. KAP. ISBN:0-7923-9181-0

Quantization.

R.M.Gray & D.L.Neuhoff.

(Information theory: 50 years of discovery. S.Verdú & S.McLaughlin ISBN: 0-7803-5363-3)

Cuantificación vectorial

Larunbat (documentación de proyecto de grado) Capítulo 2, pp.17-35

(56)

lunes, 10 de mayo de 2004 Codificación de imágenes y video 56

Lectura adicional: ‘‘Una nueva visión’’

El principio de equidistorsión y la generación de Cuantificadores Vectorial óptimos

El codebook que minimiza la distorsión para una secuencia de entrenamiento dada es aquel que asigna igual distorsión a todas las regiones

(57)

Preguntas, dudas, etc.

Figure

Actualización...

Referencias

Actualización...