Cuantizacion Vectorial: Capítulo 4
Cuantizacion Vectorial: Capítulo 4
Cuantización Vectorial
Capítulo 4
CUANTIZACION VECTORIAL
43
Capítulo 4. Cuantización Vectorial
DIGITALIZACIÓN
X(t) X(n) Xq(n) 0100…
MUESTREO CUANTIZACIÓN CODIFICACIÓN
FIG. 4.1 PROCESO DE DIGITALIZACIÓN
4.1 FUNDAMENTOS
Cuantización Escalar
Este tipo de cuantización es un mapeo de los números reales a un determinado conjunto
representado por C={y1,y2,…,yN}, donde y Є , y 0 < N < ∞. Asociado al conjunto C se tienen
regiones Ri tales que:
; (4.1)
44
Capítulo 4. Cuantización Vectorial
Para generar de una manera precisa los niveles de decisión se toman las siguientes consideraciones:
• Sea una señal de entrada modelada por una variable aleatoria X,
• Sea Fx(x) la función de densidad de probabilidad (PDF) de X,
• Para un cuantizador de M intervalos, al que representamos como la función Q(x), por lo que
se deben conocer:
Niveles de decisión:
Son los M + 1 puntos límites de los intervalos
Se representan por
Niveles de reconstrucción:
Son los valores representativos de los intervalos (salidas)
Se representan por
CÓDIGOS
……………
000 001 010 011 100 101 110 111
‐3 ‐2 ‐1 0 1 2 3 SALIDA
FIG. 4.2 EJEMPLO DE CUANTIZADOR DE 3 BITS
45
Capítulo 4. Cuantización Vectorial
En los cuantizadores escalares existen dos diferentes regiones que son: regiones
granulares, que tienen un intervalo finito; y las regiones de sobrecarga, que tienen un intervalo
infinito.
En este tipo de cuantizadores, la distorsión depende de la partición en intervalos elegida y
los valores representativos elegidos, mientras que la longitud media depende de la partición y de la
longitud de las palabras código elegido.
Cuantización Uniforme
La cuantización uniforme es el tipo de cuantización más simple que hay, ya que todos los
intervalos tienen un mismo tamaño (tamaño de escalón) Δ, excepto quizá los intervalos extremos.
Todos los niveles de reconstrucción están uniformemente espaciados, y en los intervalos
internos son los puntos medios de los intervalos.
SALIDA
3.5
2.5
1.5
0.5
‐4.0 ‐3.0 ‐2.0 ‐1.0 1.0 2.0 3.0 4.0
‐0.5 ENTRADA
‐1.5
‐2.5
‐3.5
FIG. 4.3 CUANTIZADOR UNIFORME MIDRISE
Al igual que los cuantizadores escalares, existen dos tipos de cuantizadores uniformes:
midrise, en los cuales el cero no es considerado como un nivel de reconstrucción, por lo que tiene
un número par de niveles; y los midtread, donde el cero si forma parte de los niveles de
reconstrucción.
46
Capítulo 4. Cuantización Vectorial
Cuantización Adaptativa
Este tipo de cuantización se encarga de adaptar dinámicamente las características del
cuantizador a la estadística de la entrada.
Y hay dos tipos de cuantización: adaptativa hacia adelante (off-line o forward-adaptive),
donde la salida de la fuente se divide en bloques de datos, analizando posteriormente cada uno para
modificar los parámetros del cuantizador antes de cuantizar el bloque, y finalmente, los nuevos
parámetros del cuantizador se transmiten al receptor; y la cuantización adaptativa hacia atrás (on-
line o backward-adaptive), donde los parámetros del cuantizador se modifican en función de las
características de los últimos datos ya cuantizados.
Cuantización no uniforme
Este tipo de cuantizadores tienen su utilizada cuando las mayores probabilidades se den en
torno al origen, y una manera de disminuir la distorsión es aproximar mejor la entrada en las zonas
de mayor probabilidad. Esto se logra (sin aumentar el número de intervalos) utilizando intervalos
más pequeños en las zonas de alta probabilidad.
FIG. 4.4 PROBABILIDADES MAYORES CERCANAS AL ORIGEN
47
Capítulo 4. Cuantización Vectorial
Cuantización Vectorial
El último tipo de cuantización es la cuantización vectorial. A partir de este momento, el
presente trabajo estará enfocado únicamente a describir los fundamentos y características de este
tipo de cuantización, así como los métodos que existen para su implementación, y las posibles
optimizaciones que se le puedan agregar.
La cuantización vectorial es un tipo de cuantización que trabaja en bloques de datos, en
lugar de datos aislados, y dichos bloques pueden ser representados por vectores, de ahí el nombre.
La ventaja de trabajar sobre bloques de datos radica en que es más fácil lograr una buena
compresión sin tener tantas pérdidas, y por lo tanto, se puede lograr que la longitud de palabra sea
menor para una distorsión dada, o una menor distorsión para una longitud de palabra dada.
A continuación se presenta la definición matemática de la cuantización vectorial:
K
Un cuantizador vectorial de dimensión K y tamaño N es un mapeo del espacio ,
… a un conjunto con N elementos ,…, donde yi pertenece al conjunto de
los números reales. Asociado a cada se tienen regiones Ri tales que:
; (4.2)
1. Codebook: Se genera con la finalidad de poseer todos los vectores que van a representar la
información transmitida y este se genera únicamente al inicio del diseño, por lo que en general,
no se modifica su contenido, pero eso depende de la aplicación. Para su construcción existen
diversos algoritmos, siendo el algoritmo LGB de los más usados, el cual se basa en división
binaria de códigos (más adelante se explicarán las características y funcionamiento de este
procedimiento).
Algunos otros métodos para crear el codebook inicial son los siguientes:
48
Capítulo 4. Cuantización Vectorial
Clustering: Este proceso se inicia con todos los vectores de la secuencia de entrenamiento
como codevectors, se agrupan de a dos y son sustituidos por su centroide. Aquí, los vectores
del codebook no son generalmente elementos de la secuencia de entrenamiento, pero son muy
pesados computacionalmente.
2. Codificación: Este es el proceso que carga con la mayor dificultad, ya que se encarga de
realizar una búsqueda para poder asociar un vector del diccionario creado con anterioridad, el
cual debe ser lo más cercano posible y que sea capaz de representar al vector de entrada.
Es decir, el proceso consiste en tomar un vector X que corresponda a la entrada y
compararlo con el contenido del diccionario, y de esta forma saber con cual de ellos se tiene la
menor distorsión posible (es decir, la menor distancia). Una vez localizado se marca su
posición mediante los índices i y manda esta información al decodificador.
A continuación se presenta el funcionamiento general de la cuantización vectorial:
El primer paso consiste en agrupar los datos que provienen de la fuente en bloques, o
vectores. El codificador y el decodificador contienen un conjunto de vectores L-dimensionales
llamado codebook (libro de códigos, o simplemente, diccionario). Los vectores de este
‘diccionario’ se llaman ‘vectores de código’ y se seleccionan de tal manera que sean una
representación de las muestras emitidas.
49
Capítulo 4. Cuantización Vectorial
FUENTE CODIFICADOR DECODIFICADOR
DESTINO
BLOQUE BÚSQUEDA TABLA BLOQUE
DE DEL VECTOR DE DE
VECTORES MÁS CERCANO BÚSQUEDA VECTORES
DICCIONARIO DICCIONARIO
FIG. 4.5 CUANTIZACIÓN VECTORIAL
El diccionario asigna índices a cada vector código, y el codificador busca el vector código
más cercano al vector de entrada. Después se transmite el índice de este vector código y el
decodificador genera el mismo vector código, produciendo como salida la secuencia de
componentes del vector código.
Por ejemplo, si el tamaño del diccionario es K y los vectores poseen una dimensión L, el
índice requiere log2 (K) bits y cada vector contiene valores para reconstruir L muestras
consecutivas de señal. Por tanto, la longitud media esta dada por:
(4.3)
50
Capítulo 4. Cuantización Vectorial
donde DX(U) representa la distorsión cuando se transmite un vector de entrada U sobre el canal.
4.2.1 CONCEPTOS
1 (4.5)
, ,
Iteración de Lloyd
Pero, ¿qué es una iteración de Lloyd? Para poder llevar a cabo el logaritmo de Lloyd, y así
poder encontrar los valores de cuantización que general la menor distorsión posible, se deben
realizar mediciones cíclicas que son conocidas como Iteración de Lloyd. Estas siguen el siguiente
método.
51
Capítulo 4. Cuantización Vectorial
: , ,
(4.6)
• Después de que se tengan las regiones necesarias, se calculan los centroides de dichas
regiones para recalcular el alfabeto. Y finalmente hacer Cm+1={cent(Ri)}.
NOTA: Sin embargo, si al realizar este proceso se genera una celda vacía, se debe asignar un
vector alternativo para dicha celda:
1
(4.7)
Regiones de Voronoi
Las regiones de Voronoi son un método de interpolación, basado en la distancia
euclidiana. Se crean al unir los puntos entre sí, trazando las mediatrices de los segmento de unión.
Las intersecciones de estas mediatrices determinan una serie de regiones en un espacio
bidimensional alrededor de un conjunto de puntos de control1.
Un diagrama de Voronoi es una estructura geométrica que representa información de
proximidad acerca de un conjunto de puntos u objetos es decir, el diagrama de Voronoi de un
conjunto de objetos geométricos es una partición del espacio en celdas cada una de la cuales
contiene una colindancia con sus puntos más cercanos.
X2
X1
FIG. 4.6 REGIONES DE VORONOI
1
Las regiones de Voronoi permiten conocer de forma gráfica las zonas que comprenden a cada uno de los
centroides generados.
52
Capítulo 4. Cuantización Vectorial
Este principio se utiliza en el caso de querer codificar una serie de datos mediante palabras códigos
que resulten en la menor distorsión posible.
Si se tienen varios vectores que se deseen codificar dentro de una región Ri específica, el
principio del vecino más cercano se encargará de determinar en cuál de esas regiones debe
colocarse el vector en cuestión basándose principalmente en la distorsión producida, es decir, en la
distancia a dicha región, ya que a mayor distancia entre el vector y la región, la distorsión
aumentará, y de igual forma, disminuirá si la distancia se reduce.
53
Capítulo 4. Cuantización Vectorial
P1 P2
P3 P4
FIG. 4.7 PRINCIPIO DEL VECINO MÁS CERCANO
Para reducir la distancia es necesario minimizar el valor de DX(u) para todas las u dadas.
Este principio ayuda a encontrar las regiones de codificación denotadas por ΘX:
(4.8)
es decir:
(4.9)
| ℓ ; ℓ
donde U representa los vectores de entrada en el canal, y Dx(U) denota la distorsión cuando las
entradas U pasan a través del canal.
Generalización:
Debido a que en muchos casos es posible considerar a la distorsión incluyendo el concepto
del error medio cuadrático como:
1
(4.10)
Con la medida del error medio cuadrático, la formulación del vecino más cercano se da de
la siguiente manera:
(4.11)
ℓ ℓ ; ℓ (4.12)
54
Capítulo 4. Cuantización Vectorial
Estado en donde las representaciones de las salidas para las regiones dadas tienen la característica
de minimizar la distorsión total.
Si se desea codificar una cierta cantidad de vectores en las regiones Ri dadas, el principio
del centroide se encarga de calcular el promedio de los vectores contenidos dentro de una sola
región, con la finalidad de encontrar un punto (o vector) con el cual se pueda disminuir la distorsión
de toda la región con respecto al vector de entrada
A
C
B
FIG. 4.8 PRINCIPIO DEL CENTROIDE
Para una salida y, el decodificador de la salida V*y que optimice la distorsión es:
(4.13)
Generalización:
Conociendo la derivada de D con respecto a Vy, el valor de decodificación para cada una de
las salidas se encuentra para ser la expresión matemática de la entrada sabiendo que la salida ha
sido observada. La función de decodificación es la siguiente:
1
|
1
|
0
2 (4.14)
| 0
55
Capítulo 4. Cuantización Vectorial
|
(4.15)
Esta ecuación explica que el valor óptimo para cada uno de los centroides y es el promedio
de todas las entradas sabiendo que el código recibido es y.
La cuantización de vector fuente en un canal sin ruido fue propuesta en enero de 1980, y es
conocida como LGB por las iniciales de las tres personas que la inventaron: Linde Yoseph, Buzo
Andrés y Gray Robert.
Este algoritmo tiene como finalidad de este algoritmo es generar un buen codebook, o
diccionario disminuyendo el valor de la distorsión, y es similar al algoritmo de k-medias. Este
principio de cuantización es una variable del algoritmo de Lloyd y está basado en los principios
mencionados anteriormente, el principio del vecino más cercano y el principio del centroide.
Además puede inicializarse tanto en el codificador como en el decodificador. Las
iteraciones que se van realizando se detienen cuando el proceso empieza a converger a estos
principios. Y el sub-espacio que es codificado con y es llamado, regiones de Voronoi o células
|
(4.16)
y la reconstrucción para las salidas de las regiones de Voronoi son llamadas centroides, vy.
En forma muy general, en cada una de las iteraciones realizadas, cada uno de los vectores es
dividido en otros dos nuevos mediante el siguiente proceso:
• Primero se tiene un estado inicial x(0), es decir, un centroide de la secuencia de
entrenamiento;
• Después de la primera estimación se genera un diccionario de dimensión dos y una
estimación final después de aplicar el algoritmo de Lloyd, es decir, se genera un diccionario
óptimo de dos vectores. Este proceso se lleva a cabo mediante splitting;
• Finalmente, se vuelve a repetir el proceso para ir generando cada un diccionario óptimo que
contenga una mayor cantidad de vectores.
56
Capítulo 4. Cuantización Vectorial
Usando este algortimos mediante una secuencia de entrenamiento, se inicia con un solo
nivel de cuantización que consiste en el centroide de la secuencia de entrenamiento, a partir de
donde estos vectores son divididos en otros dos nuevos vectores generando de esta manera un
cuantizador de dos niveles de cuantización. Finalmente se realiza el mismo procedimiento para cada
uno de estos vectores generando un cuantizador de cuatro niveles, y así sucesivamente, por lo que
los niveles se dan en el siguiente orden: 1, 2, 4, 8, … , N niveles. A continuación se presenta un
diagrama que representa la metodología de este algoritmo:
0 1
00 01 10 11
00 01 10 11
FIG. 4.9 DESCRIPCIÓN DEL ALGORITMO LGB
Como se mencionó con anterioridad, el algoritmo LGB está basado en los principios del
vecino más cercano y del centroide, por lo que para este algoritmo se definen las siguientes
ecuaciones:
Para el vecino más cercano se tiene:
| ℓ ; ℓ (4.17)
Y para el centroide:
(4.18)
Como se puede observar, las expresiones obtenidas para el vecino más cercano y para los
centroides son muy similares a las obtenidas en LGB que en algoritmo de Lloyd-Max, pero con
notación de vector.
57
Capítulo 4. Cuantización Vectorial
Esquema COSQ
El esquema de canal optimizado por cuantización escalar o COSQ por sus siglas en inglés
(channel optimized scalar quantization) fue propuesto ya que se tenía la necesidad de disminuir el
valor de la distorsión debida al canal y considerando que se usa una fuente escalar.
Este esquema fue propuesto por Farvardin y Vaishampayan, quienes lograron las
condiciones necesarias para una cuantización óptima escalar.
Las expresiones para el vecino más cercano y centroide son similares a las utilizadas en el
algoritmo de Lloyd-Max, pero reaparecen los términos de expectativas en notación escalar como se
muestra a continuación:
ℓ ; ℓ (4.19)
(4.20)
|
Esquema COVQ
El esquema de canal optimizado por cuantización vectorial o COVQ por sus siglas en inglés
(channel optimized vector quantization) es considerada como una generalización de trabajos en k-
dimensiones, o también como una versión del algoritmo LGB descrito anteriormente, pero en un
ambiente con ruido. Este esquema es capaz de minimizar la distorsión tomando en cuenta los
errores de cuantización y los errores debidos a las perturbaciones del canal.
En COVQ, la fuente es cualquier vector con muestras de amplitud continua con o sin
memoria. Y sus expresiones generales para el vecino más cercano y el centroide son las siguientes,
las cuales manejan notación de vector, e incluyen los efectos del ruido:
ℓ ; ℓ (4.21)
(4.22)
|
58
Capítulo 4. Cuantización Vectorial
FIG. 4.10 DESCRIPCIÓN DEL ALGORITMO COVQ
Como se observó en las ecuaciones para el vecino más cercano y el centroide de los anteriores tres
esquemas de diseño, LGB, COSQ y COVQ, es posible darse cuenta de que estas son muy similares,
sin embargo la diferencia entre COSQ y COVQ radica en que el primer método es una
representación escalar de una fuente, mientras que en el caso de COVQ, se tienen las mismas
ecuaciones pero para el caso de una fuente de tipo vectorial.
Por otro lado, cabe mencionar que tanto los esquemas LGB como COVQ hacen referencia a
una fuente vectorial, así que, ¿cuál es la diferencia entre estos esquemas?
La respuesta es la siguiente y basándonos en las siguientes ecuaciones correspondientes a
los dos principios que hemos estado tratando, pero en su forma general (omitiendo por el momento
el concepto de error medio cuadrático) tenemos que para el vecino más cercano,
59
Capítulo 4. Cuantización Vectorial
| ℓ ; ℓ , 1, … , (4.23)
y para el centroide,
∑ |
, 1, … , (4.24)
∑ |
60
Capítulo 4. Cuantización Vectorial
61