ES2331876T3 - Procedimiento y sistema de cuantificacion vectorial multi-velocidad de enrejado de una señal. - Google Patents
Procedimiento y sistema de cuantificacion vectorial multi-velocidad de enrejado de una señal. Download PDFInfo
- Publication number
- ES2331876T3 ES2331876T3 ES03727093T ES03727093T ES2331876T3 ES 2331876 T3 ES2331876 T3 ES 2331876T3 ES 03727093 T ES03727093 T ES 03727093T ES 03727093 T ES03727093 T ES 03727093T ES 2331876 T3 ES2331876 T3 ES 2331876T3
- Authority
- ES
- Spain
- Prior art keywords
- list
- code
- vector
- index
- codes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 238000011002 quantification Methods 0.000 title claims description 82
- 239000013598 vector Substances 0.000 claims abstract description 198
- 238000013139 quantization Methods 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims abstract description 6
- 238000012546 transfer Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 8
- 238000004132 cross linking Methods 0.000 claims description 7
- 238000000429 assembly Methods 0.000 claims 1
- 230000009466 transformation Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0007—Codebook element generation
- G10L2019/0008—Algebraic codebooks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método para codificar una señal de fuente, para la transmisión o almacenamiento utilizando cuantificación reticular de multivelocidad, comprendiendo dicho método los pasos de: i) proporcionar un vector de fuente x que representa una trama de ejemplos de la señal de fuente; ii) proporcionar una lista de códigos de base C derivada de un reticulado delta de puntos; íii) asociar al vector de fuente x un punto reticular y en dicho reticulado delta; caracterizado por el hecho de que - si el punto reticular y está incluido en la lista de códigos de base C, realizando el siguiente paso iv): iv) indexar el punto reticular y en la lista de códigos de base C generando índices de cuantificación, y finalizar el método; y - si el punto reticular y no está incluido en la lista de códigos de base C, realizando las siguientes pasos v), vi) y vii): v) ampliar la lista de códigos de base C, generando una lista de códigos ampliada; vi) asociar al punto reticular y un vector de códigos c a partir de la lista de códigos ampliada; y vii) indexar el punto reticular y en la lista de códigos ampliada generando los índices de cuantificación; donde los índices de cuantificación forman una representación cuantificada del vector de fuente x.
Description
Procedimiento y sistema de cuantificación
vectorial multi-velocidad de enrejado de una
señal.
La presente invención se refiere a la
codificación y descodificación de señales. Más específicamente, la
presente invención se refiere a un método y sistema para la
cuantificación vectorial reticular de multivelocidad de una
determinada señal utilizada, por ejemplo, en los sistemas de
transmisión y almacenamiento digital.
\vskip1.000000\baselineskip
Una técnica anterior clásica para la
codificación digital de señales de voz y audio es transformar la
codificación, por lo que la señal que se codifica se divide en
bloques de muestras denominadas tramas, y donde se procesa cada
trama por una transformación ortogonal lineal, por ejemplo la
transformación discreta de Fourier o la transformación de Coseno
discreta, para generar los coeficientes de transformación, los
cuales quedan cuantificados a continua-
ción.
ción.
En la figura 1 de los dibujos adjuntos se
muestra una trama de trabajo de alto nivel para la transformación
de la codificación. En esta trama de trabajo, se aplica una
transformación T a un codificador en una trama de entrada que
proporciona coeficientes de transformación. Los coeficientes de
transformación se cuantifican con un cuantificador Q para obtener
un índice o un conjunto de índices para caracterizar los
coeficientes de transformación cuantificados de la trama. En
general, los índices suelen codificarse en códigos binarios los
cuales bien pueden almacenarse en forma binaria en un medio de
almacenamiento, bien transmitirse por un canal de comunicación. En
un descodificador, los códigos binarios recibidos del canal de
comunicación o recuperados del medio de almacenamiento se utilizan
para reconstruir los coeficientes de transformación cuantificados
con un descodificador del cuantificador Q^{-1}. A continuación se
aplica la transformación inversa T^{-1} a estos coeficientes de
transformación cuantificados para reconstruir la trama
sintetizada.
En la cuantificación de vector (VQ), se bloquean
conjuntamente varias muestras o coeficientes en vectores, y cada
vector es aproximado (cuantificado) con una entrada de una lista de
códigos. La entrada seleccionada para cuantificar el vector de
entrada suele ser la adyacente más próxima en la lista de códigos
en función del criterio de distancia. Añadiendo más entradas en una
lista de códigos se incrementa la velocidad de los bits y la
complejidad pero se reduce el promedio de distorsión. Se hace
referencia a las entradas de la lista de códigos como vectores de
códigos.
Para adaptarse a las características cambiantes
de una fuente, se suele utilizar normalmente la asignación de bit
adaptiva. Con la asignación de bit adaptiva, se podrán utilizar
distintos tamaños de listas de códigos para cuantificar un vector
de fuente. En la codificación de transformación, la cantidad de
bits asignados a un vector de fuente suele depender de la energía
del vector en relación a otros vectores dentro de la misma trama,
sujeta a un número máximo de bits disponibles para cuantificar
todos los coeficientes. En las figuras 2a y 2b se detallan los
bloques de cuantificación de la figura 1 en el marco general de un
cuantificador de multivelocidad. Este cuantificador de
multivelocidad utiliza varias listas de códigos que suelen tener
distintas velocidades de bits para cuantificar un vector de fuente
x. Este vector de fuente se suele obtener aplicando una
transformación a la señal y tomando todo o un subconjunto de los
coeficientes de transformación.
En la figura 2(a) se representa un
codificador de un cuantificador de multivelocidad, indicado por Q,
que selecciona un número de la lista de códigos n y un
índice del vector de códigos i para caracterizar una
representación cuantificada y para el vector de fuente x. El número
de la lista de códigos n especifica la lista de códigos
seleccionada por el codificador mientras que el índice i
idéntica el vector de códigos seleccionado en esta lista de códigos
específica. En general, puede aplicarse una técnica de codificación
adecuada sin pérdidas a n y i en bloques E_{n} y
E_{i}, respectivamente, para reducir el promedio de la tasa de
transferencia de datos del número de la lista de códigos codificado
n_{E} y el índice i_{E} anterior a una
multiplexación (MUX) de los mismos para un almacenamiento o
transmisión a lo largo de un canal de comunicación.
En la figura 2(b) se muestran operaciones
de descodificación del cuantificador de multivelocidad. En primer
lugar, los códigos binarios n_{E} e i_{E} se
desmultiplexan (DEMUX) y sus códigos sin pérdidas se descodifican en
bloques D_{n} y D_{i}, respectivamente. El número de la lista
de códigos recuperada n y el índice i son conducidos
al decodificador del cuantificador de multivelocidad, que se indica
con Q-1, que los utiliza para recuperar la
representación de cuantificación y del vector x de la
fuente. Los valores distintos de n dan lugar a diferentes
asignaciones de datos, y de forma equivalente a diferencias de
tasas de transmisión de datos, para el índice i. La tasa de
transferencia de datos de la lista de códigos dada en bits por
dimensión se define como la relación entre el número de bits
asignado al vector de una fuente y la dimensión del mismo.
La lista de códigos puede ser construida con la
utilización de varios enfoques. Un enfoque común es aplicar un
algoritmo de entrenamiento (por ej. el significado del algoritmo
k-) para optimizar las entradas de la lista de códigos en función
de la fuente de distribución. Este enfoque produce una
desestructuración de la lista de códigos, lo cual típicamente se
tiene que almacenar y buscar exhaustivamente para cada vector de
fuente para cuantificar. Las limitaciones de este enfoque están de
este modo en sus requerimientos de memoria y en su complejidad
computacional, lo cual se incrementa exponencialmente con la tasa
de transferencia de datos de la lista de códigos. Estas
limitaciones son incluso amplificadas si un esquema de
cuantificación de multivelocidad se basa en una listas de códigos
desestructurado, porque en general se utiliza una lista de códigos
específica para cada posible asignación de bit.
Una alternativa es utilizar listas de códigos
forzadas o estructuradas, lo cual reduce la complejidad de búsqueda
y en muchos casos los requerimientos de almacenamiento.
Dos instancias de cuantificación de vector
estructurado serán ahora discutidos en más detalles: multietapa y
cuantificación de vector reticular.
En la cuantificación de vector multietapa, se
cuantifica un vector x de una fuente con la primera etapa de una
lista de códigos C_{1} dentro de un vector de códigos y_{1}.
Con el objetivo de reducir el error de cuantificación, el error
residual e_{1} = x - y_{1} de la primera etapa, lo cual es la
diferencia entre la entrada del vector x y la primera etapa del
vector de códigos seleccionado y_{1}, es entonces, cuantificado
con una segunda etapa de la lista de códigos C_{2} dentro de un
vector de códigos y_{2}. Esta proceso puede ser iterado con
subsiguientes etapas hasta la etapa final, donde el error residual
e_{n-1} = x - y_{n-1} de la
etapa (n - 1)th se cuantifica con una etapa nth
de la lista de códigos C_{n} dentro de un vector de códigos
y_{n}.
Cuando la etapa n es utilizada (n
\geq 2), la reconstrucción puede entonces ser escrita como una
suma de los vectores de códigos y = y_{1} + ... + y_{n}, donde
y_{1} es una entrada de la etapa lth en la lista de
códigos C_{1} para l =1, ..., n. El promedio de la
tasa de transferencia de datos es la suma de la tasa de
transferencia de datos de todas las n de las listas de
códigos.
En la cuantificación de vector reticular,
también llamada retícula VQ la algebraico VQ para acortarlo, la
lista de códigos es formada seleccionando un subconjunto de puntos
reticulares en una dada retícula.
\vskip1.000000\baselineskip
Una retícula es una estructura lineal en
N dimensiones donde todos los puntos de vectores pueden ser
obtenidos por combinaciones de números enteros de N basadas
en vectores, que es, como una suma cargada de vectores de base con
la señalización de los pesos de los números enteros. En la figura 3
se muestra un ejemplo en dos dimensiones, donde los vectores
básicos son v_{1} y v_{2}. La retícula utilizada en este
ejemplo se conoce como la retícula hexagonal que se indica con
A_{2}. Todos los puntos seleccionados con la X en esta
figura puede ser obtenidos como
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde y es un punto
reticular, y k_{1} y k_{2} pueden ser cualquier
número entero. Véanse que en la figura 3 se muestra solo un
subsistema de la red, desde que la retícula se extiende a si misma
infinitamente. También se puede escribir la ecuación 1 en forma de
matriz
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde los vectores básicos
v_{1} = [v_{11} v_{12}] y v_{2}
= [v_{21} v_{22}] forman la fila del generador de
matriz. Un vector reticular es entonces, obtenido tomando una
combinación de números enteros de esta fila de
vectores.
\vskip1.000000\baselineskip
Cuando se elige una retícula para construir la
cuantificación de una lista de códigos, se selecciona un subsistema
de puntos para obtener una lista de códigos con un dado número de
bits (finito). Esto se hace en general con el empleo de una técnica
llamada modelado. El modelado se realiza truncando la retícula
según un límite de modelado. El límite del modelado es típicamente
centrado en el origen pero no viene al caso, y quizás puedan ser
para instancias rectangulares, esféricas, o piramidales. En la
figura 3 se muestra un ejemplo con un límite de modelado
esférico.
La ventaja de utilizar una retícula es la
existencia de rápidos algoritmos de búsqueda dentro de las listas
de códigos los cuales pueden reducir significantemente la
complejidad si se compara con las listas de códigos
desestructuradas en determinar el vecino más próximo de un vector x
de una fuente entre todos los puntos reticulares dentro de la lista
de códigos. No hay también virtualmente necesidad de almacenar los
puntos reticulares puesto que pueden ser obtenidos de la matriz de
generador. El algoritmo de búsqueda rápida implica generalmente en
completar el número entero más cercano de los elementos de x
conforme a ciertos apremios tales que la suma de todos los
elementos redondeados es uniforme o impar, o igual a un cierto
número entero en aritmética modular. Una vez cuantificado el
vector, o sea, una vez que se determina el punto reticular más
próximo dentro de las listas de códigos, usualmente una operación
más complexa consiste en indexar el punto reticular
seleccionado.
\vskip1.000000\baselineskip
Una clase en particular de búsqueda rápida de
lista de códigos de listay indexando algoritmos implica el
concepto de líderes, los cuales se describe en detalle en las
siguientes referencias bibliográficas:
\bullet C. Lamblin and J.-P.
Adoul. Algorithme de quantification vectorielle sphérique à
partir du réseau de Gosset d'ordre 8. Ann. Télécommun., vol.
43, no. 3-4, pp. 172-186,
1988 (Lamblin, 1988);
\bullet J.-M. Moureaux, P.
Loyer, and M. Antonini.
Low-complexity indexing method for Zn and Dn lattice
quantizers. IEEE Trans. Communications, vol. 46, no. 12,
Dec. 1998 (Moureaux, 1998); y en
\bullet P. Rault and C.
Guillemot. Indexing algorithms for Zn, An, Dn, and Dn++
lattice vector quantizers. IEEE Transactions on Multimedia,
vol. 3, no. 4, pp. 395-404, Dec. 2001
(Rault, 2001).
\vskip1.000000\baselineskip
Un líder es un punto reticular con componentes
clasificados, por convención, en orden decreciente. Un líder
absoluto es un líder con todos los componentes no negativos. Un
líder señalado es un líder con las señales en cada componente. Por
lo general la estructura reticular impone restricciones ante las
muestras de un punto reticular, y así ante las muestras de un
líder. El concepto de líderes será explicado con más detalles a
continuación.
\vskip1.000000\baselineskip
Una red utilizada con frecuencia en
cuantificación de vector es la red Gosset en 8 dimensiones, que se
indica con RE_{8}. Cualquier punto reticular
8-dimensional y en RE_{8} puede ser
generado por
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde k_{1},
k_{2}, ..., k_{8} son números enteros señalados y
G_{RE8} es el generador de matriz, definido
como
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\newpage
Las filas de vectores v_{1},
v_{2}, ..., v_{8} son los vectores básicos de la
red. Se puede comprobar fácilmente que lo contrario del generador
de la matriz G_{RE8} es
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Esta matriz inversa es útil para recuperar la
expansión básica de y:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Es bien sabido que las redes consisten en un
sistema infinito de esferas integradas en las cuales permanecen
todos los puntos de red. Estas esferas se refieren a menudo como
líneas de comando. Puntos reticulares en una esfera en
RE_{8} puede ser generada desde uno de los varios líderes
por permutación de sus componentes señalados. Todas las
permutaciones de los componentes de los líderes son puntos
reticulares con la misma norma, y caen así en la misma línea de
comando de red. Los líderes son por lo tanto útiles para enumerar
sucintamente las líneas de comando de una red. De hecho, los puntos
reticulares situados en líneas de comando cerca del origen se
pueden obtener de un número muy pequeño de líderes. Solamente se
requiere líderes absolutos y apremios de muestra para generar todos
los puntos reticulares en una línea de comando.
Para diseñar una lista de códigos
RE_{8}, un subsistema finito de puntos de red pueden ser
seleccionado explotando la geometría intrínseca de la red,
especialmente su estructura de línea de comando. Como descrito en
(Lamblin, 1988), el /th línea de comando de RE_{8} tiene un
radio \sqrt{8l} donde l es un número entero no negativo.
Las líneas de comando de radios elevados abarcan más puntos
reticulares que las shells de radios más bajos. Es posible enumerar
todos los puntos de una dada línea de comando utilizando líderes
absolutos y señalados, observando que hay un número fijo de líderes
en una cáscara y que el resto de los puntos del enrejado en la
cáscara son obtenidos por permutaciones de los componentes firmados
del líder, con algunas restricciones en las muestras.
En la retícula esférica VQ, es suficiente
reordenar por orden decreciente los componentes de x y
después realizar una búsqueda del vecino-cercano
entre los líderes que definen la lista de códigos para determinar
al vecino más cercano de un vector x de la fuente entre todos los
puntos reticulares en la lista de códigos. El índice del líder más
cercano y el índice de permutación obtenido indirectamente de la
operación que ordena en x se envían entonces al decodificador, que
puede reconstruir el análogo cuantificado de x desde esta
información. Por lo tanto, el concepto de líderes permite una
estrategia conveniente de la indexación de direcciones, donde un
punto reticular se puede describir por una compensación de la
cardinalidad que refiere a un líder señalado y a un índice de
permutación que refieren al índice relativo de una permutación del
líder señalado.
De acuerdo con la estructura de una retícula, y
en la enumeración de la retícula en términos de líderes absolutos
y señalados, es posible construir una lista de códigos conservando
solamente las líneas de comando de radio más bajos, y posiblemente
terminando la lista de códigos con algunos líderes adicionales de
líneas de comando de radio más altos. Referimos a esta clase de
generación de lista de códigos reticular como retícula en forma
casi esférica. Este acercamiento se utiliza en M. Xie y J. -P.
Adoul, cuantificación de vector algebraico integrado (EAVQ) con el
uso a la codificación de audio de banda ancha, Conferencia
Internacional de sobre Acústica IEEE, Discurso, y tratamiento de
señales (ICASSP), Atlanta, GA, U.S.A, vol. 1, pp.
240-243, 1996 (Xie, 1996).
Para RE_{8}, los líderes absolutos en
líneas de comando de radio 0 y \surd8 se muestran abajo.
\newpage
Líderes absolutos para la línea de comando del
radio 0
[0 0 0 0 0 0 0 0]
\vskip1.000000\baselineskip
Líderes absolutos para la línea de comando del
radio \surd8
[22000000] y [1 1 1 1 1 1 1 1]
\vskip1.000000\baselineskip
Un listado más completo para las líneas de
comando de radio bajo, para el caso específico de RE_{8},
se puede encontrar en Lamblin (1988).
Para que la cuantificación de la retícula sea
utilizada en codificación transformada con la asignación adaptante
de bits, es deseable construir listas de códigos reticulares
multivelocidad. Una solución posible consiste en explotar la
enumeración de una retícula en términos de líderes en una vía
similar como en Xie (1996). Según lo explicado en Xie, un
cuantificador de línea de comando basado en líder multivelocidad
puede ser diseñado con por ejemplo:
- \bullet
- listas de códigos algebraicas integradas, por lo que las listas de códigos de baja tasa de transferencia sean subconjuntos de listas de códigos de alta tasa, o
- \bullet
- las listas de códigos algebraicas jerarquizadas, por lo que las listas de códigos multivelocidad no se traslapen sino que son complementarias en una manera similar como jerarquía de las muñecas rusas.
\vskip1.000000\baselineskip
En el caso específico de Xie, la cuantificación
de retícula multi-tasa utiliza seis de las listas
de códigos nombradas Q_{0}, Q_{1}, Q_{2}, ..., Q_{5}, donde
las últimas cinco listas de códigos están integradas, es decir
Q_{1} \subset Q_{2} \subset ... \subset Q_{5}. Estas
listas de códigos son esencialmente derivadas de una retícula
8-dimensional RE_{8}. Siguiendo los apuntes
de Xie, Q_{n}, se refiere a la lista de códigos nto
RE_{8}. La asignación de bits de la lista de códigos
Q_{n} es 4n bits correspondiente a las entradas 2^{4n}.
La tasa de bits de la lista de código definida por el cociente
entre el número de bits asignados a un vector fuente y la dimensión
del vector fuente, y en la cuantificación RE_{8}, la
dimensión del vector fuente siendo 8, la tasa de bits de la lista
de código de Q_{n} es 4n/8 = n/2 bits por
dimensión.
Con la técnica de Xie, la tasa de bits de la
lista de códigos no puede exceder 5/2 bits por dimensión. Debido a
esta limitación, se necesita aplicar un procedimiento para saturar
los valores atípicos. Un valor atípico se define como un punto x en
el espacio que tiene el punto adyacente más próximo y en el
reticulado RE_{8} el cual no está en una de las listas de
códigos multi-tasa Q_{n}. En Xie, tales puntos son
reducidos proporcionalmente por un factor g > 1 hasta que
x/g deje de ser un valor atípico. Al parecer el uso de g
puede dar lugar a grandes errores de cuantificación. Este problema
es fija en Xie (1996) normalizando el vector fuente antes de la
cuantificación de la retícula multi-tasa.
\vskip1.000000\baselineskip
Hay desventajas y limitaciones en la técnica de
la cuantificación multi-tasa de Xie, que
incluyen:
1. La saturación del valor atípico es
generalmente una carga del calculo. Además, la saturación puede
degradar perceptiblemente el funcionamiento de la cuantificación
(por lo tanto calidad) en el caso de grandes valores atípicos.
2. La técnica maneja valores atípicos con la
saturación y no permite asignar más de 20 bits por vector
8-dimensional. Esto puede ser una desventaja en la
codificación transformada, puesto que los vectores de gran energía
(que son más probables de ser en valores atípicos) serán
cuantificados normalmente con una pequeña distorsión para maximizar
calidad, implicándola será posible utilizar una lista de códigos
con bastantes bits asignados a un vector específico.
3. Las listas de códigos Q_{2}, Q_{3},
Q_{4} y Q_{5} de 8, 12, 16 y 20 bits son especificadas con 3,
8, 23 y 73 líderes absolutos, respectivamente. Puesto que los
requisitos de almacenamiento y la complejidad de la búsqueda están
estrechamente vinculados al número de líderes absolutos, la
complejidad de estas listas de códigos reticulares estalla con el
aumento de la tasa de transferencia de datos de la lista de
códigos.
4. El funcionamiento de las listas de códigos
integrados es levemente peor que las listas de códigos sin traslapo
(es decir jerarquizadas).
\vskip1.000000\baselineskip
Otra clase de formato de retícula, en
comparación con el formato casi esférico es el formato Voronoi, que
se describe en J.H. Conway and N.J.A. Sloane, A fast encoding
method for lattice codes and quantizers, IEEE Trans. Inform.
Theory, vol. IT-29, no. 6, pp.
820-824, Nov. 1983 (Conway, 1983). Esto confía en
el concepto de región de Voronoi descrito por instancia en A.
Gersho y R.M. Gray, Vector Quantization and Signal Compression,
KluwerAcademic Publishers, 1992 (Gersho, 1992). En el caso
específico de una lista de códigos retucular, una región de Voronoi
es una región del espacio donde todos los puntos en N -
espacio dimensional están más cerca a un punto dado de la retícula
que cualquier otro punto en la retícula. Cada punto reticular tiene
región una de Voronoi cerrada asociada que incluye también los
puntos extremos y equidistantes a los puntos reticulares vecinos.
En una retícula dada, todas las regiones de Voronoi tienen el
mismo formato, lo que significa que son congruentes. Este no es el
caso de una lista de códigos desestructurada.
Una lista de códigos de Voronoi es un subsistema
de una retícula tal que todos los puntos de una lista de códigos
caen dentro de una región del espacio con el mismo formato como la
región de Voronoi de la retícula, apropiadamente ampliado y
traducido. Para ser más preciso, una lista de códigos de Voronoi
V^{(r)} derivada de una retícula \Lambda en dimensión N
se define como
donde r es un parámetro de un
número entero no-negativo que se definirá
detalladamente más adelante, V_{\Lambda}(0) es la
región Voronoi de \Lambda alrededor de la origen, y un adecuado
N-dimensional ajuste de vector. Se interpreta la ecuación 7
como sigue: "la lista de códigos de Voronoi V^{(r)} es define
como todos los puntos de la retícula \Lambda incluidos en la
región del espacio N-dimensional dentro de una
región Voronoi ampliada y convertida V_{\Lambda}(0),
con un factor de escala m = 2^{r} y el ajuste del vector a".
Con esta definición, la tasa de transferencia de datos de la lista
de códigos de V^{(r)} es r bits por dimensión. El papel de
a es fijar lazos, es decir, para prevenir que cualquier punto
reticular se caiga en la región de formato
2^{r}V_{\Lambda}(0) +
a.
En la figura 4 se muestra la codificación
Voronoi, las regiones Voronoi, y el embaldosado de las regiones de
Voronoi en la retícula hexagonal de dos dimensiones A_{2}. El
punto o se refiere a la origen. Ambos puntos o y
z caen dentro del mismo límite marcado con líneas
discontinuas. Este límite es actualmente una región Voronoi de
A_{2} ampliada por m = 2 y ligeramente traducida hasta la
derecha para esquivar los puntos reticulares sobre la región
límite. hay en total 4 puntos reticulares marcado con tres puntos
(\cdot) y una señal plus (+) dentro del límite que comprende
o y z. En general cada región contiene m^{N}
puntos. Esto se muestra en la figura 4 que el mismo patrón, una
región Voronoi de A_{2} ampliada por m = 2, se
duplica varias veces. Este proceso se llama teselar. Para
instancia, los puntos o' y z' pueden ser visualizados
como equivalentes o y z, respectivamente, con respecto
a la teselación. El punto z' puede ser escrito como
z' = o' + z donde o' es un punto del
2A_{2}. Los puntos del 2A_{2} se muestran además
con señales en la figura 4. En general, todo el punto reticular
puede ser generado teselando todas las traducciones posibles de una
lista de códigos de Voronoi por puntos de los puntos reticulares
ampliados por m.
\vskip1.000000\baselineskip
Tal y como se describe en D. Mukherjee y S.K.
Mitra, Vector set-partitioning with successive
refinement Voronoi lattice VQ for embedded wavelet image coding,
Proc. ICIP, Part I, Chicago, IL, Oct. 1998, pp.
107-111 (Mukherjee, 1998), la códificación de
Voronoi puede ser utilizada para extender la cuantificación del
punto reticular por sucesivos refinamientos. La técnica multietapa
de Mukherjee produce cuantificación de multivelocidad con
descripciones granulares refinadas después de cada refinamiento.
Esta técnica, la cual se podría utilizar para cuantificación de
multivelocidad en transformación de codificación, posee varias
limitaciones:
1. La etapa de cuantificación se disminuye
después de cada sucesivo refinamiento, y por lo tanto no puede
alcanzar la eficiencia con elevado valor atípico. De hecho, si un
elevado valor atípico ocurre en la primera etapa, las etapas
sucesivas no podrán reducir eficientemente el error resultante,
porque ellos están diseñados para reducir únicamente el ruido
granular. El desempeño en la primera etapa es por lo tanto
crítico.
2. La propiedad de sucesivos refinamientos
implica limitaciones en los sucesivas etapas de cuantificación.
Esto limita el desempeño de la cuantificación.
\vskip1.000000\baselineskip
Esto se conoce más a fondo de acuerdo con Y.
Zhang et al. "An Improvement Image Vector Quantization
Based on Affine Transformation", SYSTEMS, MAN, AND CYBERNETICS,
1997. COMPUTATIONAL CYBERNETICS AND SIMULATION, 1997 IEEE
INTERNATIONAL CONFERENCE ON ORLANDO, FL, USA 12-15
OCT. 1997, NEW YORK, NY, USA, IEEE, US, 12 October 1997
(1997-10-12), páginas
1094-1099, una técnica para ampliación de listas de
códigos basada en transformaciones perfeccionadas. Vectores son
primeramente cuantificados con una lista de códigos inicial y se
determina la distorsión de cuantificación. Si la distorsión es
mayor que un dado umbral, se genera una lista de códigos expandido
para cuantificar el vector inserido. La técnica descrita se aplica
a la cuantificación del vector utilizando vectores de códigos
adquiridos por aprendizaje, no para puntos reticulares
cuantificadores.
Un propósito de la presente invención es
proporcionar un método mejorado y un sistema de construcción,
búsqueda e indexación de un cuantificador de vector reticular de
multivelocidad.
Otro propósito de la presente invención es
proporcionar un método de búsqueda y indexación para listas de
códigos de punto reticular.
Los propósitos indicados anteriormente se
consiguen mediante cuantificador de multivelocidad utilizando un
conjunto de listas de códigos de punto reticular, llamadas listas
de códigos de base, y una extensión la cuál hace que sea posible
obtener una elevada tasa de transferencia de datos de las listas de
códigos desde las listas de códigos de base comparado para
cuantificar desde la técnica anterior.
Más específicamente, de acuerdo con un aspecto
de la actual invención, se proporciona un método de codificación
de la cuantificación del punto reticular de multivelocidad según la
reivindicación 1.
Según otro aspecto de la presente invención, se
proporciona un método de decodificación de la cuantificación del
punto reticular de multivelocidad según la reivindicación 20.
De acuerdo con los demás aspectos de la presente
invención, se proporciona un codificador de cuantificación de
punto reticular de multivelocidad según la reivindicación 36.
Finalmente, de acuerdo con el mismo aspecto de
la presente invención, se proporciona un decodificador de
cuantificación de punto reticular de multivelocidad según la
reivindicación 38.
De acuerdo con los métodos y sistemas de la
presente invención, una lista de códigos de base C de dos
dimensiones es extendido ampliándolo por sucesivas potencias de 2 y
teselando a una lista de códigos V de Voronoi (r) alrededor de cada
punto de la lista de códigos escalado. Por lo tanto, el método de
extensión se refiere a la extensión Voronoi. El orden de extensión
r es el número de veces que se aplica la extensión. Las listas de
códigos extendidos C(r) abarcan más puntos y extienden bien
alto en el espacio del vector capturando valores atípicos, mientras
se mantiene la misma granularidad como la lista de códigos de base.
Esto se atiene al coste del incremento de la tasa de bits requerida
para indexar no solamente la lista de códigos sino también la lista
de códigos de Voronoi, y transmitir informaciones paralelas en el
orden de extensión. La tasa de transferencia de datos de un
cuantificador de multivelocidad obtenido por los medios descritos
es fuente-dependiente. El número de bits utilizado
para indexar la lista de códigos de Voronoi se refiere como
cabecera.
Otros objetos, ventajas y características de la
actual invención llegarán a ser más evidentes después de la lectura
de la siguiente descripción no restrictiva de realizaciones
ilustrativas, dadas a modo de ejemplo únicamente con referencia a
los dibujos de acompañamiento.
\vskip1.000000\baselineskip
En los dibujos en anexo:
En la figura 1, la cuál se denomina "estado de
la técnica", es un diagrama cerrado que ilustra un codificador
transformador de acuerdo con el estado de la técnica;
En las figuras 2(a) y 2(b),
denominadas "estado de la técnica", son diagramas cerrados
respectivamente del codificador y decodificador de un cuantificador
de multivelocidad de acuerdo con un método proveniente del estado
de arte;
En la figura 3, denominada "estado de la
técnica", es una visión esquemática que ilustra formas esféricas
en un punto reticular hexagonal bidimensional A_{2}, de
acuerdo con un método proveniente del estado del arte;
En la figura 4, denominada "estado de la
técnica", es una visión esquemática que ilustra la codificación
de Voronoi, regiones de Voronoi, y teselación de la regiones de
Voronoi en un punto reticular hexagonal bidimensional
A_{2}, de acuerdo con el método proveniente del estado del
arte;
En la figura 5 se ilustra gráficamente los
puntos provenientes del punto reticular hexagonal
A_{2};
En la figura 6 es el gráfico de la figura 5,
incluyendo una forma limitadora para definir una lista de códigos
de base:
La figura 7 es un gráfico que ilustra una lista
de códigos de base C obtenida al retener únicamente el punto
reticular que cae dentro del límite del formato que se muestra en
la figura 6;
En la figura 8 es un gráfico que ilustra la
lista de códigos de base C proveniente de la figura 7, con
las regiones de Voronoi alrededor de cada vector de códigos;
En la figura 9 es el gráfico de la figura 8 que
ilustra la posición de un vector fuente;
En la figura 10 es un gráfico que ilustra la
lista de códigos de base C proveniente de la figura 8
amplificada por el factor m = 2;
En la figura 11 es un gráfico que ilustra la
lista de códigos de base amplificada proveniente de la figura 10,
con las regiones de Voronoi desplazadas, amplificadas y una lista
de códigos de Voronoi abarcando 4 puntos;
En la figura 12 es un gráfico proveniente de la
figura 11, que ilustra una lista de códigos extendida de orden
r = 1;
En la figura 13 es un gráfico que ilustra la
lista de códigos extendida proveniente de la figura 12 con las
regiones de Voronoi relacionadas;
En la figura 14 es un gráfico proveniente de la
figura 13, que ilustra el vector cuantificador y,
reconstruido como una suma del vector de código amplificado
mc y el vector de código v de la lista de códigos de
Voronoi;
En la figura 15 es un diagrama de flujo que
ilustra un método de codificación de cuantificación de retícula
multivelocidad de acuerdo con la primera realización ilustrativa de
un segundo aspecto de la presente invención;
En la figura 16 es un diagrama de flujo que
ilustra un método de codificación de cuantificación de retícula
multivelocidad de acuerdo con la primera realización ilustrativa de
un tercer aspecto de la presente invención;
En la figura 17 es un diagrama de flujo que
ilustra la generación de una lista de códigos extendida Q_{5},
Q_{6}, y de la otra lista de códigos de tasa alta de acuerdo con
un aspecto de la presente invención;
En la figura 18 es un diagrama de flujo que
ilustra un método de codificación de cuantificación de retícula
multivelocidad de acuerdo a una segunda realización de un segundo
aspecto de la presente invención;
En las figuras 19A-19B son
visualizaciones esquemáticas que ilustran la estructura del índice
de l vector de código i como producido por el método de
codificación de la figura 18 respectivamente en el caso donde
ninguna extensión sea utilizada, y cuando una extensión es
utilizada; y
En la figura 20 es un diagrama de flujo que
ilustra un método de decodificación de cuantificación de retícula
multivelocidad de acuerdo con una segunda realización ilustrativa
del tercer aspecto de la presente invención.
Tornando primero a las figuras 5 a 14 un método
para extensión de lista de códigos reticular de multivelocidad se
describirá de acuerdo con una primera realización ilustrativa de un
primer aspecto de la presente invención. Los métodos de extensión
según la presente invención se referirá aquí como método de
extensión de Voronoi.
La primera realización ilustrativa se describe
por medio de un ejemplo bidimensional basado en una retícula
hexagonal A_{2}.
Por claridad, símbolos llave relacionados a la
primera realización ilustrativa están recolectados en la Tabla
1.
\vskip1.000000\baselineskip
En la figura 5 se muestra una parte de la
retícula hexagonal A_{2} que se extiende al infinito. Una
lista de códigos de base se obtiene por aproximación de formación
de la retícula para obtener un conjunto finito de puntos
reticulares. Esto se ilustra en la figura 6, donde un límite de
formato esférico se muestra con línea sólida, y en la figura 7,
donde se retiene únicamente el punto reticular dentro del límite
del formato. El punto dentro del límite del formato abarca la lista
de códigos de base C. Aunque el formato esférico es
utilizado en la presente representación ilustrativa, otros límites
pueden ser alternativamente utilizados, tales como un cuadrado, una
pirámide, un rectángulo etc.
En este ejemplo en particular, la lista de
códigos de base C abarca 31 puntos reticulares, y por
razones de simplificación, asumimos que un índice i de 5
bits se utiliza para etiquetar esta lista de códigos. Las regiones
de Voronoi de la lista de códigos son las áreas hexagonales
centradas alrededor de cada punto reticular representados por
puntos (\cdot) en la figura 8.
En la figura 9 se muestra un vector fuente
x en un plano bidimensional. Uno de ellos puede ser visto en
este ejemplo ilustrativo que el vecino más cercano y (no mostrado)
de x en la retícula no es una entrada de la lista de códigos
de base C. Se debe observar que la búsqueda del punto
adyacente más próximo no está limitada a la lista de códigos de
base C; el punto adyacente más próximo y definido como el
punto más próximo para x en la totalidad de la retícula
A_{2}. En el caso específico de la figura 9, y es un
valor atípico. Se debe recordar que un método de estado de
arte para tratamiento con tal valor atípico y es ampliar la lista
de códigos por un dado factor, por ejemplo una potencia de 2,
resultando en una lista de códigos ampliada que se ilustra en la
figura 10. Sin embargo, esto podrá incrementar la región Voronoi,
así como la distorsión granular.
Para mantener la misma región Voronoi para
mantener la granularidad mientras se extiende la lista de códigos
para la inclusión del valor atípico, se escala la lista de códigos
de base por 2, y se inserta una lista de códigos de Voronoi
alrededor de cada vector de código escalado tal y como se muestra
en la figura 11 y 12. Este procedimiento de ampliación produce una
lista de códigos de Voronoi V^{(1)} bidimensional que
abarca 4 puntos reticulares y requiere 2 bits adicionales como una
cabecera para indexarlo. La lista de códigos extendida resultante
C^{(1)} se representa en la figura 13. Como se puede ver
en la figura 13, el punto adyacente más próximo y de
x ya no es un valor atípico, desde que pertenece a la lista
de códigos ampliada. Contudo, 5 + 2 = 7 bits se requiere ahora para
describir y en la lista de códigos extendida comparada a los _ bits
requeridos por la lista de códigos de base sin ninguna extensión.
Tal y como se muestra en la figura 14, el vector cuantificado y
puede ser representado como
donde m es la extensión del
factor ampliado (aquí, m = 2), c es un vector de
códigos de la lista de códigos de base C, y v
pertenece a la lista de códigos de Voronoi utilizada para extender
C.
\vskip1.000000\baselineskip
Siguiendo estos ejemplos bidimensionales se
ilustra un método para extender lista de códigos reticulares para
prevenir saturación, un método de extensión de lista de códigos
reticular de acuerdo con el primer aspecto de la presente invención
querrá ser presentado con referencia a la segunda representación
ilustrativa.
Se asume entonces que la lista de códigos de
base C se deriva de una retícula \Lambda en dimensión
N teniendo una tasa de transferencia de datos de R
bits por dimensión. En otras palabras, C contiene 2^{NR}
N-dimensional vectores de códigos y requiere NR bits
para indexación.
La extensión incluye ampliación de la lista de
códigos de base por sucesivas potencias de 2 (2, 4, 8, etc.), y
teselar la lista de códigos de Voronoi alrededor de cada punto de
la lista de códigos de base ampliada. Por este motivo, el método de
extensión se refiere aquí como extensión de Voronoi. La
extensión de la lista de códigos de base C de orden r
es la lista de códigos C^{(r)} definida como
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde m = 2^{r} y
V^{(r)} es una lista de códigos de Voronoi de tamaño
m^{N} = 2^{rN} derivada de la misma retícula \Lambda
como C. El orden de extensión r define el número de
veces que la extensión ha sido aplicada. La lista de códigos
extendida abarca más vectores de códigos y consecuentemente utiliza
más bits que la lista de código base C. La definición en
Eq. 9 implica que la lista de códigos extendida C^{(r)}
requiere NR bits para indexar primero la lista de códigos de
base y entonces Nr bits para la lista de códigos de Voronoi,
resultando en un total de N(R + r) bits a más
de información lateral en el orden de extensión
r.
La ampliación de la lista de códigos de base por
sucesivas potencias de 2 permite tener los índices de Voronoi
representados en un número exacto de bits (no fraccionario). Sin
embargo en general, m puede ser cualquier número entero superior o
igual a 2.
Véase que la granularidad de la forma
básica de la extensión de Voronoi es 1 bit por dimensión, desde que
el incremento en la tasa de transferencia de datos en la lista de
códigos es de 1 bit por dimensión desde la r° para la
(r + 1)th extensión.
Se debe percibir que el ejemplo bidimensional
anteriormente visto utiliza una lista de códigos de base específica
C derivada desde la retícula A_{2}. En el caso
ejemplificado de la figura 7, \Lambda = A_{2}, N =
2, y la tasa de transferencia de datos de la lista de códigos de
base R = 5/2 bits por dimensión.
Un método de codificación de cuantificación
reticular de multivelocidad 100 de acuerdo con la primera
representación ilustrativa del segundo aspecto de la presente
invención será descrito ahora con referencia a la figura 15.
Deje x ser un vector fuente
N-dimensional para ser cuantificado. Deje C denotar
la lista de códigos de base derivada desde la retícula \Lambda, y
defina m \Lambda como la retícula \Lambda ampliada por
un número entero de factor m > 0. Entonces, los pasos
para codificar un vector x utilizando C o una de las
extensiones de acuerdo con el método 100 son como sigue:
En el paso 102, el punto adyacente más próximo
y de x se determina en una reticulado infinito
\Lambda. El paso 102 procede a cuantificar el vector
y.
Entonces, en el paso 104, se le determina si y
es una entrada de la lista de códigos de base C. Si y está
en C (paso 106), el número de bits utilizado para
cuantificar x es así NR, lo cuál corresponde al
número de bits utilizado por la lista de códigos de base. El número
de la lista de códigos n se configura a 0 y se termina el
método de codificación. Si y no está en la lista de códigos
de base C, y se considera un valor atípico y el método 100 se
procede con el paso 108, lo cuál, con los pasos
110-118, desde un método de extensión de Voronoi de
acuerdo con una tercera representación del primer aspecto de la
presente invención.
Según se ha debatido a continuacón, puesto que
y es un valor atípico, se requieren más bits para
cuantificar x con y en comparación con el caso en que
y forma parte de la lista de códigos de base. El
procedimiento de ampliación, que es iterativo, genera una lista de
códigos ampliada, que eventualmente incluye un vector reticular
y, que entonces, puede indexarse de forma adecuada.
El paso 108 es un paso de inicialización, en el
que el orden de ampliaciónr se fija en 1 y el factor de escala
m hasta 2^{r} = 2.
\vskip1.000000\baselineskip
A continuación se calcula el índice Voronoi
k del punto reticular y (paso 110) que era el punto
adyacente más próximo del vector x en el reticulado
\Lambda obtenido en el paso 102. El índice Voronoi k
depende del orden de ampliación r y del factor de escala
m. El índice Voronoi k se computa a través de las
siguientes operaciones de modulo de manera que depende solo en la
posición relativa de y en una región Voronoi escalada y
convertida:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde G_{\Lambda} es la
matriz generadora de \Lambda y mod_{m}(\cdot) es la
operación del modulo componente a componente m. Por lo
tanto, el índice Voronoi k es un vector de enteros con cada
componente en el intervalo 0 hasta m -
1.
\vskip1.000000\baselineskip
En el paso 112, el vector de códigos de Voronoi
v se calcula desde el índice Voronoi k dado por
m. Este se puede implementar, por ejemplo, utilizando un
algoritmo descrito por Conway (1983).
\vskip1.000000\baselineskip
El cómputo de v se puede realizar del modo
siguiente:
1. calculo z=k * G (RE8);
2. buscar el punto adyacente más próximo w de
1/m. (z-a) en RE8;
3. calculo v=z-m*W.
\vskip1.000000\baselineskip
En el paso 114, el vector de diferencia w
= y - v es el primero en calcularse. Este vector de
diferencia w pertenece siempre al reticulado escalado
m\Lambda. Entonces, c = w/m se calcula
aplicando la escala inversa hasta el vector de diferencia w.
El vector de códigos c pertenece al reticulado \Lambda,
puesto que w pertenece a m \Lambda.
Entonces este se verifica si c se
encuentra en la lista de códigos de base C (paso 116). Si
c no se encuentra en la lista de códigos de base C,
se incrementa por 1 el orden de ampliación r, se multiplica
por 2 el factor de escala m (paso 118), y sigue la
ampliación de Voronoi con una nueva iteración (paso 110). Sin
embargo, si c está en C, entonces se ha encontrado un
orden de ampliación r y un factor de escala m =
2^{r} lo suficientemente grande como para cuantificar el vector
de fuente x con y sin saturación. Entonces y
se indexa como un vector de códigos de base en j (paso 120)
tal y como se describe en Lamblin (1988). j y k se
multiplexan en un índice i (paso 122) y el número de la
lista de códigos n se fija para el orden de ampliación (n
= r) en el paso 124, que finaliza el método de codificación
100. Tal y como es notorio en la técnica, la multiplexación incluye
una concatenación de j y k, que indica que los bits de j están
seguidos por los bits de k.
\vskip1.000000\baselineskip
La salida del método de cuantificación consta
del número de la lista de códigos n y del índice i
del vector de códigos y. Si se utiliza la ampliación de
Voronoi, n > 0. De lo contrario n = 0. El índice
i es:
\bullet el índice de y = c en la lista
de códigos de base, si no se utiliza la ampliación de Voronoi,
\bullet el múltiplexo de j y k,
donde j es el índice de c en la lista de códigos de
base C y k es el índice de Voronoi correspondiente al
vector v.
\vskip1.000000\baselineskip
Debe señalarse que en la ecuación 10 el índice
de Voronoi k se define como k =
mod_{m}(yG_{\Lambda}^{-1}), donde m = 2^{r}.
Puesto que y es un punto reticular en \Lambda,
yG_{\Lambda}^{-1} en realidad se corresponde a la
ampliación básica de y en \Lambda y en consecuencia es un
vector de enteros N-dimensional. Por lo tanto, también
k es un vector de enteros N, y debido a la operación
del módulo componente a componente modm cada componente de k
es un número entero entre 0 y m - 1. Puesto que m =
2^{r}, por construcción k requiere un total de Nr
bits para indexar todos sus componentes N.
El método de cuantificación 100 se completa
definiendo la codificación sin pérdidas del número de la lista de
códigos n y el índice i para obtener n_{E} y
i_{E} que se multiplexan, y almacenan o transmiten por un
canal de comunicaciones tal y como se ilustra en la Figura 2.
En general, la salida de un cuantificador de
vector de multivelocidad consta de un número de la lista de
códigos n y un índice i que en ambos casos pueden
exhibir una redundancia estadística. Sin limitar el alcance o la
generalidad de la presente invención, aquí nos dirigimos solo el
codificación entrópica del número de la lista de códigos n
para reducir la tasa de transferencia de datos promedio del
cuantificador, mientras no se aplica ninguna codificación al índice
i dando i_{E} = i. Se puede emplear para
n cualquier otra codificación sin pérdidas de la técnica
anterior tales como la codificación aritmética o codificación
Huffman (Gersho, 1992). Un método de codificación sencillo coding
método es el código unario, en el que se representa un número
entero positivo n en forma binaria por n - 1
unidades, seguidas por cero. Este esquema de codificación se
describirá a continuación con más detalle.
Volviendo ahora a la Figura 16 de los dibujos
adjuntos, se describirá un método de descodificación de
cuantificación reticular de multivelocidad 200 según la primera
realización ilustrativa del tercer aspecto de la presente
invención. El número codificado de la lista de códigos
n_{E} es el primero en leerse del canal y se invierte la
técnica de codificación sin pérdida utilizada en el método 100 para
proporcionar el número de la lista de códigos n (paso 202).
Es importante observar que n indicada la asignación de bit
del cuantificador de multivelocidad y se requiere para
desmultiplexar el índice de cuantificación i en el paso
204.
Si n = 0 (paso 206), no se utiliza la
ampliación de Voronoi. En este caso, se descodifica el índice
i para formar el vector de códigos c de la lista de
códigos de base C (paso 208) utilizando la técnica anterior
tal y como se describe en (Lamblin, 1988), (Moureaux, 1998) o
(Rault, 2001). Entonces se reconstruye el vector cuantificado de
forma sencilla como y = c.
Si n > 0 (paso 206), se utiliza la
ampliación de Voronoi. Se fijan el orden de ampliación y el factor
de escala para r = n y m = 2^{r} (paso 210),
respectivamente. Se desmultiplexan los índices j y k
(paso 212). Se descodifica el índice j dentro de c en
la lista de códigos de base C (paso 214), mientras que
k se descodifica dentro de v en la lista de códigos
de Voronoi V^{(r)} (paso 216). Se reconstruye el vector
cuantificado en el paso 218 como
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Debe observarse que se requiere el método de
ampliación empleado en la realización ilustrativa de la presente
invención solo si el punto reticular más próximo y del
vector x debe cuantificarse cuando se encuentra fuera de la
lista de códigos de base. En consecuencia esta ampliación evita la
saturación procurando que la memoria (número de bits disponible)
sea suficiente. Es importante observar que la lista de códigos
ampliada se alcance más lejos en el espacio N-dimensional,
mientras tenga la misma granularidad de reticulado que la lista de
códigos de base (véase por ejemplo la Figura 5). Sin embargo, se
requieren más bits al utilizarse la ampliación.
En algunos casos, el cuantificador puede
ejecutarse con falta de bits sin que sea capaz de capturar el
vector de fuente x. Dicho de otro modo, el número de bits
disponible para cuantificar el vector de fuente x puede ser
inferior al número de bits requerido para el índice del vector de
códigos i y al número de la lista de códigos n. En
este caso, el error de cuantificación no está provocado por la
estructura granular de la lista de códigos de base, sino que puede
estar relacionado por un error mayor. Esto suele ocurrir con un
valor atípico extremadamente grande.
\newpage
Se pueden implementar varios estrategias para
contener los valores atípicos, como escalar hacia abajo el vector
de fuente x antes de la cuantificación de multivelocidad. Se
puede variar el factor de escala aplicado a x de manera que
no se produzca ningún desbordamiento de los bits previstos.
Para los valores atípicos arbitrarios x,
se desune la complejidad de la ampliación tal y como se ha descrito
anteriormente, puesto que la ampliación siempre empieza con
r = 0 e incrementa r por 1 a cada iteración, con
independencia de x. Sin embargo, en la práctica, se limita
el orden de ampliación r debido al tamaño asignado a los
números enteros en la plataforma de implementación, por ej., 16
para los enteros de bit 16 no firmados. Esta limitación se refiere
al valor máximo de los componentes del índice de Voronoi
k.
Se ha determinado preferentemente que todos los
puntos reticulares tengan entradas tanto en cualquier lista de
códigos de base C como en una de sus ampliaciones
C^{(r)} para r = 1, 2, ... De lo contrario, será
imposible indexar algunos de los puntos reticulares. Por ejemplo,
encuentra esta condición una lista de códigos de base C
diseñada por una conformación casi esférica centrada alrededor del
origen. Asimismo, encontrará esta condición la mayoría de las
listas de códigos obtenida por conformación (truncación) de un
reticulado con una región centrada
(convexa).
(convexa).
Ahora se describirán los métodos para codificar
y descodificar las cuantificaciones de reticulados multivelocidad
de acuerdo con realizaciones de terceros, respectivamente del
segundo y del tercer aspecto de la presente invención.
Estas terceras realizaciones de la presente
invención se basan en el reticulado RE_{8} descrito
anteriormente.
Las realizaciones ilustrativas anteriores sobre
los métodos para codificar y descodificar las cuantificaciones de
reticulados multivelocidad de acuerdo con la invención se basaban
en una lista individual de códigos de base derivada de un
reticulado \Lambda que se amplió con una granularidad de bit
nominal de 1 bit por dimensión. En particular, el metodo de
ampliación empleado está adaptado para ampliar varias lista de
códigos de base casi esféricas de manera que se obtiene una
granularidad nominal de 1/2 bit por dimensión, 4 bits en la
dimensión 8.
Para mayor claridad, en la Tabla 2 se han
recogido los símbolos asociados a los métodos de cuantificación de
reticulación multivelocidad del 8-dimensional.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Tal y como se explicará a continuación con más
detalle, el método de codificación de acuerdo con la tercera
realización ilustrativa del segundo aspecto de la presente
invención incluye tomar un vector de fuente
8-dimensional x como una entrada y
elaboración de un índice i y un número de la lista de
códigos n. El número de la lista de códigos n
identifica una lista de códigos RE_{8} específica indicada
por Q_{n}, esto es, cada Q_{n} es un subconjunto del reticulado
RE_{8}. La tasa de transferencia de datos de la lista de
códigos de Q_{n} es 4n/8 bits por dimensión. De este modo
el número de bits en el índice i es 4n. El
descodificador utiliza las mismas listas de códigos de
multivelocidad Q_{n} al igual que el codificador, y reconstruye
sencillamente el punto reticular y desde el índice i y el
número de la lista de códigos
n.
n.
De acuerdo con la tercera realización
ilustrativa, n se asigna para ser un número entero no
negativo excepto unidad, tomando su valor en el conjunto {0, 2, 3,
4, 5, 6, ...}. El caso n = 1 no es ventajoso puesto que
corresponde a una asignación de bit de 4 bits en la dimensión 8. De
hecho, en dicha baja tasa de transferencia de datos, la
cuantificación reticular no es muy eficaz, y suele ser mejor en el
contexto de la codificación de transformación para utilizar en
lugar de una técnica de cobertura de ruido.
\vskip1.000000\baselineskip
De acuerdo con esta tercera realización
ilustrativa, la lista de códigos multivelocidad se divide en dos
categorías:
Las listas de códigos de base de baja velocidad
Q_{0}, Q_{2}, Q_{3} y Q_{4}, que son listas de códigos
reticulares casi esféricas clásicas. En el caso en que el método se
implementa en un dispositivo, estas listas de códigos llegan a
estar disponibles utilizando las tablas almacenadas en una memoria
o precodificadas en el dispositivo. Se debe observar que en la
realización ilustrativa, las listas de códigos Q_{2} y Q_{3}
están integradas, esto es, Q_{2} es un subconjunto de
Q_{3}.
Las listas de códigos ampliadas de alta
velocidad Q_{n} para n > 4 que se construyen
virtualmente en el dispositivo aplicando un método de ampliación de
Voronoi según la presente invención de forma alternativa a Q_{3}
y Q_{5} de manera que Q_{5} se genera como la primera
ampliación de orden de Q_{6}, Q_{6} se genera como la primera
ampliación de orden de Q_{4}, Q_{7} se genera como la primera
ampliación de orden de Q_{3}, etc. Mas en general como se ilustra
en la Figura 17, la lista de códigos ampliada Q_{n'} para
n' = n + 2r > 4 se genera como el rª
ampliación de orden de Q_{n} de manera que n = 3 para
impar n' y n = 4 para par n'.
\newpage
La separación entre listas de códigos ampliadas
de baja y alta velocidad en Q4 permite un compromiso entre calidad
(rendimiento) y complejidad. Por ejemplo, estableciendo, por
ejemplo, la separación en Q5 debería generar tablas de indexación
mayores, mientras que estableciendo la separación en Q3 debería
provocar la degradación de la calidad pero reduce la
complejidad.
En la Tabla 3 se define el mapa de los líderes
absolutos para Q_{0}, Q_{2}, Q_{3} y Q_{4}. Este mapa
permite especificar las listas de códigos de base sin ambiguidades.
Debe observarse que las restricciones de signo asociadas a estos
líderes no aparecen en la tabla, pero se cree que están dentro del
alcance de una persona que posee una experiencia ordinaria en la
técnica para buscarlos en las propiedades de RE_{8}
(Lamblin, 1988).
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Además, el desplazamiento
8-dimensional establece una definición de la
conformación de Voronoi como
a = [2 0 0 0 0 0 0 0 0].
a = [2 0 0 0 0 0 0 0 0].
Ahora se describirá con más detalle el método de
codificación reticular de multivelocidad 300 según la segunda
realización del segundo aspecto de la invención en relación con la
Figura 18.
\vskip1.000000\baselineskip
Proporcionando x como un vector de fuente
para ser cuantificado en la dimensión 8. Con el paso 302, el primer
método sigue buscando el punto adyacente más próximo y de la
entrada 8-dimensional x en el reticulado
infinito RE_{8}. Entonces, en el paso 304, se efectúa la
verificación como para si y es una entrada de una lista de códigos
de base Q_{0}, Q_{2}, Q_{3} o Q_{4}. Esta verificación
produce un número de la lista de códigos n y un
k_{a} si n > 0 identificado. Los detalles de
esta verificación se proporcionarán a continuación. El número de la
lista de códigos n en esta etapa se toma en el conjunto {0,
2, 3, 4, out}. El valor out es un número entero
establecido arbitrariamente a out = 100. El valor n =
out se utiliza para indicar que se ha detectado un valor
atípico, que significa que el punto reticular y no es una entrada
en cualquiera de las listas de códigos de base. Hay entonces dos
casos:
\bullet Si n \leq 4 (paso 304), la
codificación se completa en el paso 306. Si n = 0 (paso
306), y es el vector de cero y la codificación finaliza. Si
n = 2, 3, o 4, entonces la información adicional
k_{a} identifica uno de los líderes absolutos que define
Q_{n}. El vector y se indexa en Q_{n} dando k_{a} tal
y como se explicará a continuación con más detalle.
\bullet Si n = out (paso 304), se
aplica el método de ampliación Voronoi según la presente invención.
El primer paso (308) del método de ampliación sirve para
inicializar los parámetros de la ampliación, y entonces iterar el
algoritmo de ampliación de Voronoi, tal y como se describe a
continuación, hasta incluir a y en una lista de códigos
ampliada.
\vskip1.000000\baselineskip
En la segunda realización de los métodos de
codificación y descodificación del vector reticular de
multivelocidad, la ampliación de Voronoi se iteró incrementando el
orden de ampliación r hasta alcanzar a y. Este puede
generar una complejidad desunida. A fin de limitar el peor caso de
complejidad, se ha demostrado ventajoso utilizar un máximo de dos
iteraciones para la ampliación de Voronoi.
En el paso de inicialización del método de
ampliación, el orden de ampliación r y el factor de escala
de ampliación m se establecen en algunos valores iniciales
que determinan el vector reticular y = [y_{1}...
y_{8}] de manera que se minimiza el número de iteraciones
erráticas r. El contador de iteración iter se fija en
cero.
\vskip1.000000\baselineskip
La preselección de r y m se
implementa como sigue. En primer lugar, se calcula el valor de
punto flotante
\sigma = (y_{1}^{2} + ...+ y_{8}^{2})/32, se establece r = 1 y m = 2^{r} = 2. Entonces, mientras \sigma > 11, se itera \sigma, r, y m actualizando \sigma:= \sigma /4, r:= r + 1 y m:= 2m. El fundamento de este procedimiento está justificado por las dos observaciones siguientes:
\sigma = (y_{1}^{2} + ...+ y_{8}^{2})/32, se establece r = 1 y m = 2^{r} = 2. Entonces, mientras \sigma > 11, se itera \sigma, r, y m actualizando \sigma:= \sigma /4, r:= r + 1 y m:= 2m. El fundamento de este procedimiento está justificado por las dos observaciones siguientes:
\bullet Al trasladar la ampliación de orden
desde rª a la ampliación (r + 1)ª, la listas de
códigos de base Q_{3} y Q_{4} se múltiplica por m =
2^{r+1} en lugar de m = 2^{r}. La norma al cuadrado de
los vectores de códigos de base escalados se múltiplica por 4
después de haber comparado la ampliación (r + 1)ª con la
ampliación rª. Esto explica el factor 1/4 aplicado a
\sigma después de cada iteración erráticar r.
\bullet La unión de las listas de códigos de
base Q_{0} \cup Q_{2} \cup Q_{3} \cup Q_{4} abarcan
los puntos reticulares en RE_{8} líneas de comando 0 a 32.
Se puede verificar que el extremo de la línea de comando completa en
Q_{0} \cup Q_{2} \cup Q_{3} \cup Q_{4} es la línea de
comando 5. La constante 11 en la condición de finalización \sigma
> 11 se ha seleccionado de forma experimental entre 5 y 32.
Una alternativa a este procedimiento de
inicialización consiste en calcular directamente tantas veces como
\sigma vaya en 11 y entoces establecer r y m en
consecuencia. Naturalmente el resultado será idéntico al
procedimiento iterativo descrito anteriormente.
Si iter = 2 (paso 310), el método se sale
del bucle que comprende los pasos 310-326.
En el paso 312, se calcula el índice de Voronoi
k del punto reticular y dando m utilizando la
aritmética modular. El índice Voronoi k depende del orden de
ampliación r y del factor de escala m. En el caso
particular del reticulado RE_{8}, el índice de Voronoi se
calcula como sigue:
donde G_{RE8} es la matriz
generadora definida en la Ecuación 4, y mod_{m}(\cdot)
es la operación del módulo componente a componente -m. Por
lo tanto, el índice de Voronoi k es un vector de 8 números
enteros, estando cada componente comprendido entre 0 y m -
1. Por construcción k requiere de este modo un total de
8r bits para indexar todos los
componentes.
El vector de códigos de Voronoi v se
calcula a partir del índice de Voronoi k dando m
(paso 314). Para este propósito puede usarse el algoritmo descrito
en (Conway, 1983).
Se calcula el vector de diferencia w =
y - v (paso 316). Este vector de diferencia w
es un punto en el reticulado escalado mRE_{8}. Entonces de
calcula c = w/m (paso 316), que se obtiene aplicando la
escala inversa al vector de diferencia w. El punto c
pertenece al reticulado RE_{8} puesto que w
pertenece a mRE_{8}.
El método de ampliación sigue verificando si
c es una entrada de la listas de códigos de base Q_{2},
Q_{3} o Q_{4} (paso 318). Esta verificación produce un número de
la lista de códigos n y también un identificador
k_{a}. Los detalles de la verificación se explicarán a
continuación con más detalle. Con la listas de códigos de base de
multivelocidad revelado, c no puede estar en Q_{0} en esta
etapa. Como resultado de ello, el valor actual de n puede
ser tanto 2, 3, 4, como out.
Si n = out, el orden de ampliación
r se incrementa por uno y la escala de ampliación m
se múltiplca por 2 (paso 320).
Si c es una entrada de Q_{2}, este también es
una entrada de Q_{3} puesto que Q_{2} está integrado en Q_{3}
(Q_{2} \subset Q_{3}). Por lo tanto, si n = 2,
n se fija en n = 3 (paso 322). Un factor de escala
límite del orden de ampliación m = 2^{r} lo
suficientemente grande como para cuantificar el vector de fuente
x que sin saturación ocurre cuando n = 3 o n =
4. Se actualiza el número de la lista de códigos n para
incorporar el orden de ampliación r. Este se consigue
añadiendo 2r a n (paso 322). Entonces c,
k_{a}, n y k se guardan en una memoria (paso
324) y el orden de ampliación r se decrementa por uno y el
factor de escala m se divide por 2 (paso 326).
La incrementación del contador de iteración
iter se incrementa por uno (paso 328), antes del inicio de
una nueva iteración (paso 310).
\vskip1.000000\baselineskip
Al finalizarse el bucle tras dos iteraciones, el
parámetro que caracteriza la ampliación se recupera de la memoria
(paso 330) que contiene los siguientes valores:
\bullet El vector c calculado en el
paso 316 que es una entrada de Q_{3} o Q_{4};
\bullet El índice de Voronoi k
calculado en el paso 312. Debe observarse que el índice de Voronoi
k es un vector 8-dimensional, donde cada
componente es un número entero entre 0 y m - 1 y puede ser
indexado por r bits;
\bullet El identificador k_{a}
calculado como un producto colateral del paso 318; y
\bullet El número de la lista de códigos
n que incorpora el orden de ampliación r tal y como
se calcula en el paso 320.
\vskip1.000000\baselineskip
El índice j de c se calcula en el
paso 332. Este índice se multiplexa con el índice de Voronoi
k para formar el índice i (paso 334). Para completar
la codificación, se sujeta el número de la lista de códigos
n para la codificación sin pérdidas tal y como se describirá
más adelante y se multiplexa con el índice i para el
almacenamiento o transmisión por un canal.
Debe observarse que el método de codificación
300 asume que está disponible suficiente memoria para caracterizar
el vector de fuente x con un punto attice y. Por lo
tanto, el método de codificación de la cuantificación de
multivelocidad 300 se aplica preferentemente en una forma ventajosa
escalando hacia abajo el vector de fuente x como xlg
antes de la aplicación del método 300. El parámetro escalar
g > 1 se determina para evitar un sobrepasamiento en la
memoria, y cuantificado de forma separada utilizando los medios de
las técnicas anteriores. Sin embargo, si se produce un
sobrepasamiento de la memoria al fallar en la elección de g
adecuadamente, por defecto n se fija en cero y la
reconstrucción y empieza con un vector de cero. La técnica
de selección y cuantificación de g no se detalla aquí puesto
que depende de la aplicación actual.
Además, suponiendo que el método 300 se
implementa en una plataforma de software donde los componentes del
índice de Voronoi k se representan con enteros de 16 bits,
el valor máximo de r es r = 16 resultando en el valor
máximo n = 4 + 2x16 = 36 para el número de la lista de
códigos.
Ahora se describirá con más detalle el método
para encontrar el identificador de un líder absoluto en la listas
de códigos de base, y para verificar si un punto reticular está en
una lista de códigos de base (pasos 304 y 318).
De acuerdo con dicho método de la técnica
anterior, para verificar si un punto reticular y es una entrada en
una lista de códigos reticular casi esférica Q_{2}, Q_{3} o
Q_{4}, los valores absolutos de los componentes de y se reordenan
en orden descendiente y se comparan directamente componente a
componente con los líderes absolutos que definen la listas de
códigos (véase por ejemplo Lamblin, 1988). El método según la
presente invención se basa en la utilización del identificador
k_{a}. Este método se describe a continuación en tres
pasos:
1) Cálculo del valor s a partir de y.
Escribiendo y componente a componente como y =
[y_{1} ... y_{8}], este valor se calcula como
2) Los valores de s calculados para los
líderes absolutos y que definen la listas de códigos de base
distinta de todas las demás entre ellas. Además, todas las
permutaciones firmadas válidas de y dará como resultado el
mismo valor s. Como consecuencia, el valor s está
relacionado aquí como una clave, puesto que identifica de forma
única un líder absoluto y todas las permutaciones firmadas
asociadas.
3) Estableciendo k_{a} pare el valor 36
si s = 0, y es un vector de cero. De lo contrario la
búsqueda para la clave s en una tabla de mapa que convierte
a s en el identificador k_{a} que puede cumplir los
valores enteros entre 0 y 37. La Tabla 4 proporciona este mapa que
puede calcularse fácilmente a partir de la Tabla 3. Si la clave s
es una entrada de la Tabla 4, el identificador k_{a} es un
número entero entre 0 y 36 (ver Tabla 4). De lo contrario, y
se declara un valor atípico por establecer k_{a} en 37.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Debe observarse que la última columna a la
derecha en la Tabla 4 es puramente informativa y define sin
ambigüedades el mapa entre el identificador k_{a} y el
líder absoluto asociado.
En esta etapa, el identificador verifica 0
\leq k_{a} \leq 37. De hecho, si 0 \leq
k_{a} < 36, y está en un Q_{2}, Q_{3} o Q_{4}
cualquiera. Si k_{a} = 36, y está en Q_{0}. Si
k_{a} = 37, y no está en cualquiera de las listas de
códigos de base. Entonces el identificador k_{a} se mapea
en el número de la lista de códigos n de la Tabla 5.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Ahora se describirá con más detalle el método
para indexar en la listas de códigos de base Q_{2}, Q_{3} y
Q_{4} en base al identificador del líder absoluto (pasos 306 y
332).
El índice de una entrada y en la listas
de códigos de base Q_{2}, Q_{3} y Q_{4} se calcula utilizando
la técnica anterior de indexación para la listas de códigos casi
esférica tal y como se ha descrito en Lamblin (1988). Para ser más
precisos, el índice de y, por ejemplo j, se calcula
como sigue: j = desplazamiento de cardinalidad + rango de
permutación. El rango de permutación se calcula de acuerdo con
la fórmula de Schalkwijk's, que es notoria en la técnica y descrita
en (Lamblin, 1988). El desplazamiento de cardinalidad se
encuentra mediante la tabla de búsqueda después de calcular el
líder firmado para y. Esta tabla de búsqueda se basa en el
identificador k_{a} del líder absoluto
asociado.
asociado.
De acuerdo con las realizaciones ilustrativas de
la invención, el número de la lista de códigos n se codifica
utilizando un código binario de longitud variable, bien conocido
en la técnica anterior como un código unario, basado en el
siguiente mapeo:
Q_{0} \rightarrow 0
Q_{2} \rightarrow 10
Q_{3} \rightarrow 110
Q_{4} \rightarrow 1110
Q_{5} \rightarrow 11110
...
El lado derecho del mapa anterior proporciona
n_{E} en representación binaria para ser multiplexado con
el índice del vector de códigos i. Además, al utilizarse la
ampliación de Voronoi (cuando n > 4), el índice del vector
de códigos i comprende dos sub-indices
multiplexados juntos:
- \bullet
- el índice de la lista de códigos de base j de 12 bits para impar n y 16 bits para par n; y
- \bullet
- el índice de Voronoi k de 8r bits, que comprende ocho números enteros de r bits como sus componentes.
La estructura de i se ilustra en la
Figura 19(a) para 2 \leq n \leq 4, mientras que
la Figura 19(b) considera el caso n > 4. Debe
observarse que los bits multiplexados pueden permutarse en
cualquier forma dentro del bloque en su conjunto de 4n bits.
Ahora se describirá con más detalle el método
400 para la descodificación reticular de multivelocidad según la
segunda realización del tercer aspecto de la invención, en relación
con la Figura 20.
El número de la lista de códigos codificado
n_{E} es el primero en leerse del canal y descodificado
para obtener el número de la lista de códigos n (paso 402).
El número de la lista de códigos n se recupera de
n_{E} por inversión del mapa descrito en el método 300.
Entonces el descodificador interpreta el índice del vector de
códigos i de forma distinta dependiendo del número de la
lista de códigos n.
Si n = 0 (paso 404), y se reconstruye
como un vector de cero que es la única entrada de la lista de
códigos de base Q_{0} (paso 406).
Si 0 < n \leq 4 (paso 404), se
desmultiplexa el índice del vector de códigos i del tamaño
4n bits desde el canal (paso 408). Entonces se descodifica
i como índice de una lista de códigos de base Q_{2},
Q_{3}, o se reconstruye Q_{4} y y utilizando la técnica
anterior (paso 410) como los que se describen en Lamblin (1988),
Moureaux (1998) y Rault (2001).
Un valor n > 4 en el paso 404 indica
que se ha empleado la ampliación de Voronoi. Se desmultiplexa el
índice del vector de códigos i del tamaño 4n bits
desde el canal (paso 408) como el índice de la lista de códigos de
base j y el índice de Voronoi k a partir de i
(paso 412). También se recupera el orden de ampliación r y
de esta forma el factor de escala m a partir de n
(paso 414). El valor de r se obtiene como un cociente de (n
- 3)/2, y m = 2^{r}. Entonces 2^{r} se sustrae de
n para identificar tanto a Q_{3} como a Q_{4}, y se
descodifica el índice j en c utilizando el valor
sustraído de n (paso 416). La descodificación de j se
basa en el método de la técnica anterior que consta de rangos de
descodificación y tablas de búsqueda tal y como se ha descrito en
Lamblin (1988), Moureaux (1998) y Rault (2001). El índice de
Voronoi k se descodifica dentro de en v (paso 418) en
base a m utilizando el algoritmo de la técnica anterior
descrito en (Conway, 1983). Por último, en el paso 420, el
descodificador calcula la reconstrucción como y = mc
+ v, donde m = 2^{r} es el factor de escala de la
ampliación, c es un vector de códigos de la lista de códigos
de base y v es un vector de códigos de la lista de códigos
de Voronoi. Al ser r = 0, no se utiliza ninguna ampliación,
y v es un vector de cero y m se convierte en uno.
Aunque la presente invención se ha descrito
anteriormente por medio de las realizaciones ilustrativas de la
misma, estas pueden modificarse sin alejarse del alcance del objeto
de la invención, tal y como se define en las reivindicaciones
anexas.
\vskip1.000000\baselineskip
Esta lista de referencias bibliográficas
mencionada por el solicitante se ha incorporado exclusivamente para
información del lector, pero no forma parte integrante de la
documentación de la patente europea. Aún habiéndose recopilado
estas referencias bibliográficas con sumo cuidado, no pueden
excluirse errores u omisiones, por lo que la EPO declina toda
responsabilidad a este respecto.
\bullet C. Lamblin J.-P. Adoul.
Algorithme de quantification vectorielle sphérique à partir du
réseau de Gosset d'ordre 8. Ann. Télécommun., 1988,
vol. 43, 3-4172-186
\bullet J.-M. Moureaux P. Loyer
M. Antonini. Low-complexity indexing method
for Zn and Dn lattice quantizers. IEEE Trans.
Communications, 1998, vol. 46, 12
\bullet P. Rault C. Guillemot.
Indexing algorithms for Zn, An, Dn, and Dn++ lattice vector
quantizers. IEEE Transactions on Multimedia, 2001,
vol. 3, 4395-404
\bullet M. Xie J.-P. Adoul.
Embedded algebraic vector quantization (EAVQ) with application to
wideband audio coding. IEEE International Conference on
Acoustics, Speech, and Signal Processing (ICASSP), 1996,
vol. 1, 240-243
\bullet J.H. Conway N.J.A.
Sloane. A fast encoding method for lattice codes and
quantizers. IEEE Trans. Inform. Theory, 1983, vol.
IT-29, 6820-824
\bullet A. Gersho R.M. Gray.
Vector Quantization and Signal Compression. Kluwer Academic
Publishers 1992
\bullet D. Mukherjee S.K. Mitra.
Vector set-partitioning with successive refinement
Voronoi lattice VQ for embedded wavelet image coding Proc.
ICIP, 1998, 107-111
\bullet Y. Zhang et al. An
Improvement Image Vector Quantization Based on Affine
Transformation SYSTEMS, MAN, AND CYBERNETICS, 1997.
COMPUTATIONAL CYBERNETICS AND SIMULATION, 1997 IEEE
INTERNATIONAL CONFERENCE ON ORLANDO, 1997,
1094-1099.
Claims (39)
1. Un método para codificar una señal de fuente,
para la transmisión o almacenamiento utilizando cuantificación
reticular de multivelocidad, comprendiendo dicho método los pasos
de:
i) proporcionar un vector de fuente x que
representa una trama de ejemplos de la señal de fuente;
ii) proporcionar una lista de códigos de base
C derivada de un reticulado \Lambda de puntos;
íii) asociar al vector de fuente x un
punto reticular y en dicho reticulado \Lambda;
caracterizado por el hecho de que
- si el punto reticular y está incluido
en la lista de códigos de base C, realizando el siguiente
paso iv):
iv) indexar el punto reticular y en la
lista de códigos de base C generando índices de
cuantificación, y finalizar el método; y
- si el punto reticular y no está
incluido en la lista de códigos de base C, realizando las
siguientes pasos v), vi) y vii):
v) ampliar la lista de códigos de base C,
generando una lista de códigos ampliada;
vi) asociar al punto reticular y un
vector de códigos c a partir de la lista de códigos
ampliada; y
vii) indexar el punto reticular y en la lista de
códigos ampliada generando los índices de cuantificación;
donde los índices de cuantificación forman una
representación cuantificada del vector de fuente x.
2. Un método tal y como se ha descrito en la
reivindicación 1, en el que la lista de códigos ampliada está
representada por la expresión mC + V, donde m
es un factor de escala, C es la lista de códigos de base y
V es un conjunto de puntos en el reticulado \Lambda.
3. Un método tal y como se ha descrito en la
reivindicación 1, en el que el paso iii) consiste en seleccionar el
punto reticular y en el reticulado \Lambda como un punto
adyacente más próximo del vector de fuente x en el
reticulado \Lambda.
4. Un método tal y como se ha descrito en la
reivindicación 1, en el que el paso v) consiste en proporcionar un
factor de asiento de número entero m \geq 2; el paso vi)
consiste en calcular un vector de códigos de Voronoi v
correspondiente al punto reticular y utilizando el factor de
escala m; y el paso vi) consiste además en calcular el
vector de códigos c utilizando el vector de códigos de
Voronoi v y el factor de escala m.
5. Un método tal y como se ha descrito en la
reivindicación 4, en el que el paso v) consiste en establecer el
factor de escala m para 2^{r}, con r siendo un
orden de ampliación; el paso v) consiste además en calcular un
índice de Voronoi k; y el paso vi) consiste en calcular el
vector de códigos de Voronoi v correspondiente al punto
reticular y utilizando el índice de Voronoi k y el
factor de escala m.
6. Un método tal y como se ha descrito en la
reivindicación 4, en el que el paso vi) consiste en calcular el
vector de códigos c como c = (y - v) / m.
7. Un método tal y como se ha descrito en la
reivindicación 4, en el que el paso vi) consiste además en
verificar si el vector de códigos c está en la lista de
códigos de base C,
- si el vector de códigos c está en la
lista de códigos de base C, realizando el siguiente paso
a):
a) en el paso vii) indexar el punto reticular y
como un vector de códigos de base y multiplexar j y k
generando los índices de cuantificación, donde j es un
índice del vector de códigos c en la lista de códigos de
base C y k es un índice de Voronoi correspondiente al
vector de códigos de Voronoi v;
- si el vector de códigos c no está en la
lista de códigos de base C, realizar el siguiente paso
b):
b) incrementar el factor de escala m y un
orden de una ampliación de Voronoi y repetir los pasos v) hasta
vi).
8. Un método tal y como se ha descrito en la
reivindicación 4, que comprende además en el paso vii) la
definición de una codificación sin pérdidas de un número de la
lista de códigos correspondiente a un orden de ampliación r
y un índice i del punto reticular y en la lista de códigos
de base C, generando un número de la lista de códigos
codificado n_{E} y un índice codificado i_{E}; y
multiplexar el número de la lista de códigos codificado
n_{E} y el índice codificado i_{E}.
9. Un método tal y como se ha descrito en la
reivindicación 1, que comprende además un paso viii) para almacenar
los índices de cuantificación en medios de almacenamiento.
\global\parskip0.950000\baselineskip
10. Un método tal y como se ha descrito en la
reivindicación 1, que comprende además un paso viii) para
transmitir los índices de cuantificación por un canal de
comunicación.
11. Un método para codificar una señal de fuente
utilizando la cuantificación reticular de multivelocidad según se
ha definido en la reivindicación 1, en el que:
el paso v) consiste en proporcionar un
subconjunto V de puntos del reticulado \Lambda;
el paso vii) consiste en indexar el punto
reticular y dentro de un número entero de la lista de
códigos n y un índice ii como y = mc+v, donde
c es un elemento de la lista de códigos de base C,
v es un elemento del subconjunto V, y m es un
número entero mayor que o igual a dos;
donde la lista de códigos de base C y el
subconjunto V del reticulado \Lambda, el número entero
m y el índice ii, están definidos a partir del número
de la lista de códigos n; y
donde n y ii son los índices de
cuantificación que forman una representación cuantificada del
vector de fuente x.
12. Un método tal y como se ha descrito en la
reivindicación 11, en el que el número de la lista de códigos
n está representada por un código unario.
13. Un método tal y como se ha descrito en la
reivindicación 11, en el que el subconjunto V del reticulado
\Lambda es una lista de códigos de Voronoi y un índice del
elemento v es un índice de Voronoi.
14. Un método tal y como se ha descrito en la
reivindicación 11, en el que el índice ii es una
concatenación de un índice del elemento c y un índice del
elemento v.
15. Un método tal y como se ha descrito en la
reivindicación 11, en el que se establece el punto reticular y =
[0 ... 0] y el número entero de la lista de códigos n en
un valor predeterminado al no ser suficiente un número de asignación
de bits disponible en la implementación del método para representar
el vector de fuente x en el reticulado \Lambda.
16. Un método tal y como se ha descrito en la
reivindicación 11, en el que el número entero m = 2^{r},
con r es un número entero mayor que o igual a 1; estando
predeterminada la lista de códigos de base C; y siendo el
número de la lista de códigos n igual a r además de un
número entero predeterminado.
17. Un método para codificar una señal de fuente
utilizando la cuantificación reticular de multivelocidad según se
ha definido en la reivindicación 1, en el que:
el paso i) consiste en proporcionar un vector de
fuente 8-dimensional x que representa una trama de
la señal de fuente;
el paso ii) consiste en proporcionar listas de
códigos de base reticuladas de baja velocidad Q_{0}, Q_{2},
Q_{3} y Q_{4} derivadas a partir de un reticulado de puntos
RE_{8};
el paso iii) consiste en determinar un punto
reticular y en el reticulado RE_{8} que es un punto
adyacente más próximo del vector de fuente x en el
reticulado RE_{8};
- si el punto reticular y está incluido
en la listas de códigos de base reticuladas de baja velocidad
Q_{n}, donde n es igual a 0, 2, 3 o 4, el paso iv)
consiste en:
a) memorizar el número n y un
identificador k_{a} que identifica uno de los líderes
absolutos que definen la lista de códigos de base
Q_{n},
b) si n > 0, realizar el siguiente
paso b1:
b1) indexar el punto reticular y en la
lista de códigos de base Q_{n}, generando índices de
cuantificación,
si un factor de escala m = 0, realizar el
siguiente paso b2:
b2) el punto reticular y se elabora como
un vector de cero, y
c) finalizar el método;
- si el punto reticular y no está incluido en la
listas de códigos de base reticuladas de baja velocidad
Q_{n}, donde n es igual a 0, 2, 3 o 4:
el paso v) comprende los pasos de viii)
proporcionando una orden de ampliación r; ix) establecer el
factor de escala m en 2^{r}; x) establecer un número de iteración
iter = 0; xi) calcular un índice de Voronoi k del
punto reticular y; xii) calcular un vector de códigos de
Voronoi v correspondiente al punto reticular y
utilizando el índice de Voronoi k y el factor de escala
m;
\global\parskip1.000000\baselineskip
el paso vi) comprende el paso de xiii)
calculando el vector de códigos c como c = (y - v) /
m; y
el paso vii) comprende los pasos de:
xiv) - si el vector de códigos c está
incluido en la lista de códigos de base Q_{n}, donde
n es igual a 2, 3 o 4, realizar el siguiente paso aa):
aa) proporcionar el número n y el
identificador k_{a}; si un número de la lista de códigos
n es igual a 2 (n = 2), establecer n = 3;
incrementar el número de la lista de códigos n por
2r; almacenar los valores del índice de Voronoi k, el
vector de códigos c, el número n y el identificador
k_{a}; dividir el factor de escala m por 2;
disminuir el orden de ampliación r por 1;
- si el vector de códigos c no está
incluido en la lista de códigos base Q_{n}, donde n
es igual a 2, 3 o 4, realizar el siguiente paso bb):
bb) multiplicar el factor de escala m por
2; incrementar r por 1;
xv) disminuir el número de iteración iter
por 1;
xvi) - si dicho número de iteración iter
= 2 realizar entonces el siguiente paso aaa):
aaa) recuperar los valores del índice de Voronoi
k, el vector de códigos c, el número n y el
identificador k_{a}; indexar el vector de códigos c
en la lista de códigos de base Q_{3} o Q_{4},
proporcionando k_{a}; multiplexar j y k para
formar el índice i, donde i es el índice del punto
reticular y y j es el índice del vector de códigos
c;
- si dicho número de iteración iter
\neq 2 realizar entonces el siguiente paso bbb):
bbb) repetir los pasos xi) hasta xvi);
donde los pasos iv) y xvi) generan los índices
de cuantificación que forman una representación cuantificada del
vector de fuente x.
18. Un método tal y como se ha descrito en la
reivindicación 17, en el que en el paso xi) el índice de Voronoi
k se calcula como sigue:
donde G_{RE8} es una
matriz generadora definida
como
y mod_{n}(\cdot)
es una operación del módulo componente a componente
m.
19. Un método tal y como se ha descrito en la
reivindicación 17, que comprende además escalar hacia abajo el
vector de fuente x como x/g antes del paso iii);
eligiéndose g de manera que sea mayor que 1 y para evitar un
sobrepasamiento en una memoria utilizada en la implementación del
método.
\vskip1.000000\baselineskip
20. Un método para descodificar una señal de
fuente transmitida o almacenada utilizando la cuantificación
reticular de multivelocidad, comprendiendo dicho método los pasos
de:
i) proporcionar una lista de códigos de base
C derivada a partir de un reticulado \Lambda;
ii) proporcionar un número de la lista de
códigos n y un índice de cuantificación i;
caracterizado por el hecho de que
iii) desmultiplexa el índice de cuantificación
i utilizando el número de la lista de códigos n;
iv) si n = 0 descodificar entonces el
índice de cuantificación i utilizando la lista de códigos de
base C, generando un vector de códigos cuantificado
y, y finalizando el método;
v) si n > 0 entonces
a) proporcionar una lista de códigos de Voronoi
preseleccionada V^{(r)};
b) establecer un orden de ampliación para r =
n y un factor de escala m = 2^{r};
c) desmultiplexar los índices j y
k a partir del índice de cuantificación i;
d) descodificar j dentro de un vector de
códigos c en la lista de códigos de base C;
e) descodificar k dentro de un vector de
códigos v en la lista de códigos de Voronoi V^{(r)}; y
f) reconstruir un vector de códigos cuantificado
como
y = mc +
v
donde el vector de códigos
reconstruido y representa una representación cuantificada de una
trama de muestras de la señal de
fuente.
\vskip1.000000\baselineskip
21. Un método tal y como se ha descrito en la
reivindicación 20, en el que en el paso ii) se proporcionan primero
un número de la lista de códigos codificado n_{E} y un
índice codificado i_{E}; luego se aplica una técnica
predeterminada de codificación sin pérdidas al número de la lista
de códigos codificado n_{E} y al índice codificado
i_{E} para proporcionar el número de la lista de códigos
n y el índice de cuantificación i,
respectivamente.
22. Un método tal y como se ha descrito en la
reivindicación 20, en el que el número de la lista de códigos
n y el índice de cuantificación i se leen desde un
canal de comunicación.
23. Un método tal y como se ha descrito en la
reivindicación 20, en el que el número de la lista de códigos
n y el índice de cuantificación i se leen desde
medios de almacenamiento.
24. Un método para descodificar una señal de
fuente utilizando cuantificación reticular de multivelocidad tal y
como se define en la reivindicación 20, en el que:
el reticulado \Lambda es un reticulado de
puntos;
la lista de códigos de base C es un
primer subconjunto del reticulado \Lambda de puntos;
la lista de códigos de Voronoi V^{(r)} es un
segundo subconjunto del reticulado \Lambda de puntos;
reconstruyendo el vector de códigos y
como y = mc + v que consiste en reconstruir el
punto c como un elemento del subconjunto C del
reticulado \Lambda, el reticulado L, reconstruir el vector
de códigos v como un elemento del subconjunto V del
reticulado \Lambda;
en el que el método de descodificación de la
señal de fuente consiste en definir los subconjuntos C y
V del reticulado \Lambda, el valor del número entero
m y el tamaño del índice i a partir del número de la
lista de códigos n.
25. Un método tal y como se ha descrito en la
reivindicación 24, en el que el número de la lista de códigos
n se reconstruye a partir de un código unario.
26. Un método tal y como se ha descrito en la
reivindicación 24, en el que el subconjunto V del reticulado
\Lambda es un código de Voronoi y el índice del vector de códigos
v es un índice de Voronoi.
27. Un método para descodificar una señal de
fuente utilizando cuantificación reticular de multivelocidad tal y
como se define en la reivindicación 20, en el que:
el paso i) consiste en proporcionar listas de
códigos de base reticuladas de baja velocidad Q_{0},
Q_{2}, Q_{3}, y Q_{4} derivadas a partir
de un reticulado RE_{8};
si n = 0, el paso iv) se sustituye por un
paso de vi) reconstruyendo un vector de códigos y como un vector de
cero;
el paso v) comprende los pasos de:
si 0 < n \leq 4, descodificar el
índice del vector de códigos i como un índice de la lista de
códigos de base Q_{2}, Q_{3} o Q_{4} y
reconstruir el vector de códigos y;
Si n > 4, utilizar el número de la
lista de códigos n para identificar tanto la lista de
códigos de base Q_{3} como Q_{4}, y realizar los
pasos a)-f) utilizando la lista de códigos de base
seleccionada Q_{3} o Q_{4} como lista de códigos
de base C.
\vskip1.000000\baselineskip
28. Un método tal y como se ha definido en la
reivindicación 1, en el que la lista de códigos de base C
define un subconjunto de vectores de códigos, y en el que el paso
v) comprende los pasos de:
escalar los vectores de códigos de la lista de
códigos de base C mediante un factor de escala
predeterminado, generando vectores de códigos escalados; y
iii) introducir una lista de códigos de Voronoi
alrededor de cada vector de códigos escalado, generando la lista de
códigos ampliada.
\vskip1.000000\baselineskip
29. Un método tal y como se ha descrito en la
reivindicación 28, que comprende el paso para seleccionar el
subconjunto de los vectores de códigos reteniendo los vectores de
códigos dentro de un límite.
30. Un método tal y como se ha descrito en la
reivindicación 28, en el que el paso para escalar los vectores de
códigos consiste en proporcionar un factor de escala de número
entero m \geq 2.
31. Un método tal y como se ha descrito en la
reivindicación 28, en el que, en el paso para escalar el vectores
de códigos, se establece el factor de escala m en 2^{r},
donde r es un orden de ampliación.
32. Un método tal y como se ha descrito en la
reivindicación 29, en el que se proporciona el límite mediante una
forma seleccionada del grupo consistente en una esfera, un
cuadrado, una pirámide y un rectángulo.
33. Un método para codificar una señal de fuente
utilizando la cuantificación reticular de multivelocidad según la
Reivindicación 1, en el que:
el paso ii) consiste en proporcionar la lista de
códigos de base C formada por un subconjunto de vectores de
códigos a partir del reticulado \Lambda teniendo una dimensión
N, en la que la lista de códigos de base C requiere
NR bits para indexar, donde R es una tasa de
transferencia de datos por dimensión de dicha lista de códigos de
base C;
el paso iii) consiste en determinar un vector de
códigos desde el reticulado \Lambda más próximo al vector de
fuente x;
- si el vector de códigos más próximo está
comprendido dentro de la lista de códigos de base C, el paso
iv) consiste en:
indexar el vector de códigos más próximo en la
lista de códigos de base generando los índices de cuantificación,
elaborando los índices de cuantificación, y finalizando el
método;
- si el vector de códigos más próximo no está
comprendido dentro de la lista de códigos de base C, el paso
v) comprende los siguientes pasos viii) hasta x):
viii) proporcionar un factor de escala
predeterminado;
ix) escalar la lista de códigos de base C
por el factor de escala, generando una lista de códigos escalada
que consta de vectores de códigos escalados;
x) introducir una lista de códigos de Voronoi
alrededor de cada vector de códigos escalado, generando una lista
de códigos ampliada que requiere N(R+r) bits para
indexar, donde r es el orden de la lista de códigos de
Voronoi:
- si el vector de códigos más próximo está
comprendido dentro de la lista de códigos ampliada entonces el paso
vii) consiste en indexar el vector de códigos más próximo en la
lista de códigos ampliada generando los índices de cuantificación,
elaborando los índices de cuantificación, y finalizando el
método;
- si el vector de códigos más próximo no está
comprendido dentro de la lista de códigos ampliada y si el número
de bits requerido para la indexación de la lista de códigos
ampliada no ha sobrepasado un umbral predeterminado entonces se
repiten los pasos viii) hasta x) para incrementar el factor de
escala y el orden de la lista de códigos de Voronoi;
- si el número de bits requerido para la
indexación de la lista de códigos ampliada ha sobrepasado un umbral
predeterminado, realizar un paso de xi) que considere el vector de
códigos más próximo como un valor atípico remoto y elaborando los
correspondientes índices de cuantificación predeterminados.
\vskip1.000000\baselineskip
34. Un método tal y como se ha descrito en la
reivindicación 33, donde el factor de escala predeterminado es 2 y
se ha incrementado por 2 el factor de escala.
35. Un método tal y como se ha descrito en la
reivindicación 33, en el que el orden de la lista de códigos de
Voronoi se ha incrementado por 1.
36. Un codificador de señal para codificar una
señal de fuente para transmitir o almacenar utilizando una
cuantificación reticular de multivelocidad, comprendiendo el
codificador:
recibir medios para proporcionar un vector de
fuente x que representa una trama de muestras de la señal de
fuente;
medios de memoria que incluyen una lista de
códigos de base C derivada a partir de un reticulado
\Lambda de puntos;
medios para asociar al vector de fuente x
un punto reticular y en el reticulado \Lambda;
caracterizado por el hecho de que;
los medios para verificar si el punto reticular
y está incluido en la lista de códigos de base C;
si el punto reticular y está incluido en
la lista de códigos de base C, los medios para indexar el
punto reticular y en la lista de códigos de base C
generando índices de cuantificación;
si el punto reticular y no está incluido en la
lista de códigos de base C, los medios para ampliar la lista
de códigos de base y para generar una lista de códigos ampliada;
los medios para asociar al punto reticular y un vector de códigos
c a partir de la lista de códigos ampliada; y los medios
para indexar el punto reticular y en la lista de códigos ampliada y
para generar los índices de cuantificación;
donde los índices de cuantificación forman una
representación cuantificada del vector de fuente x.
\vskip1.000000\baselineskip
37. Un codificador de señal para codificar una
señal de fuente utilizando una cuantificación reticular de
multivelocidad tal y como se ha definido en la reivindicación 36,
en el que:
los medios para ampliar la lista de códigos de
base C constan de medios para proporcionar un subconjunto
V de los puntos del reticulado \Lambda;
los medios para indexar el punto reticular
y en la lista de códigos ampliada comprenden los medios para
indexar el punto reticular y dentro de un número entero de
la lista de códigos n y un índice i como y =
mc + v, donde c es un elemento de la lista de
códigos de base C, v es un elemento del subconjunto
V, y m es un número entero mayor que o igual a 2;
el codificador de señal comprende los medios
para definir la lista de códigos de base C, el subconjunto
V del reticulado \Lambda, el número entero m y el
índice i a partir del número de la lista de códigos
n.
\vskip1.000000\baselineskip
38. A descodificador de señal para descodificar
una señal de fuente codificada transmitida o almacenada utilizando
la cuantificación reticular de multivelocidad, comprendiendo el
descodificado:
los medios de memoria para proporcionar una
lista de códigos de base C derivada de un reticulado
\Lambda;
recibir los medios para proporcionar un número
de la lista de códigos codificado n y un índice de cuantificación
codificado i; caracterizado por el hecho de que
los medios para desmultiplexar el índice de
cuantificación i utilizando el número de la lista de códigos
n;
los medios para verificar si el número de la
lista de códigos es n = 0;
si n = 0, los medios para descodificar el
índice de cuantificación i utilizando la lista de códigos de
base C, generando un vector de códigos cuantificado
y;
los medios para verificar si n >
0;
si n > 0, los medios para proporcionar
una lista de códigos de Voronoi preseleccionada V^{(r)};
los medios para establecer un orden de ampliación para r = n
y un factor de escala para m = 2^{r}; los medios para
desmultiplexar índices j y k a partir del índice de
cuantificación i; los medios para descodificar j de
manera que se genera un vector de códigos c a partir de la
lista de códigos de base C; los medios para descodificar el
índice k de manera que se genera un vector de códigos
v a partir de la lista de códigos de Voronoi V^{(r)}; y
los medios para reconstruir un vector de códigos cuantificado como
y = mc + v;
donde el vector de códigos reconstruido y
representa una representación cuantificada de una trama de muestras
de la señal de fuente.
39. Un descodificador de señal utilizando una
cuantificación reticular de multivelocidad tal y como se define en
la reivindicación 38, en el que:
los medios para proporcionar una lista de
códigos de Voronoi preseleccionada V^{(r)} comprende los
medios para proporcionar un subconjunto V del reticulado
\Lambda;
los medios para reconstruir el vector de códigos
cuantificado y como y = mc + v
comprende los medios para reconstruir el punto reticular c
como un elemento de la lista de códigos de base C y los
medios para reconstruir el punto reticular v como un elemento del
subconjunto V del reticulado \Lambda;
donde el descodificado de señal comprende los
medios para definir la lista de códigos de base C y el
subconjunto V del reticulado \Lambda, el número entero
m y el índice i a partir del número de la lista de
códigos n.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2388358 | 2002-05-31 | ||
CA002388358A CA2388358A1 (en) | 2002-05-31 | 2002-05-31 | A method and device for multi-rate lattice vector quantization |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2331876T3 true ES2331876T3 (es) | 2010-01-19 |
Family
ID=29589087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03727093T Expired - Lifetime ES2331876T3 (es) | 2002-05-31 | 2003-05-30 | Procedimiento y sistema de cuantificacion vectorial multi-velocidad de enrejado de una señal. |
Country Status (18)
Country | Link |
---|---|
US (1) | US7106228B2 (es) |
EP (1) | EP1514355B1 (es) |
JP (1) | JP4224021B2 (es) |
KR (1) | KR20050008761A (es) |
CN (1) | CN1659785B (es) |
AT (1) | ATE440409T1 (es) |
AU (1) | AU2003233723A1 (es) |
BR (1) | BR0311336A (es) |
CA (1) | CA2388358A1 (es) |
DE (1) | DE60328892D1 (es) |
DK (1) | DK1514355T3 (es) |
ES (1) | ES2331876T3 (es) |
MX (1) | MXPA04011841A (es) |
NO (1) | NO20045718L (es) |
PT (1) | PT1514355E (es) |
RU (1) | RU2004138289A (es) |
WO (1) | WO2003103151A1 (es) |
ZA (1) | ZA200408780B (es) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002309206A1 (en) * | 2001-05-22 | 2002-12-03 | Soliton Holdings Corp. | Method for digital quantization |
EP1709743A1 (fr) | 2004-01-30 | 2006-10-11 | France Telecom S.A. | Quantification vectorielle en dimension et resolution variables |
CA2457988A1 (en) | 2004-02-18 | 2005-08-18 | Voiceage Corporation | Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization |
US7587314B2 (en) * | 2005-08-29 | 2009-09-08 | Nokia Corporation | Single-codebook vector quantization for multiple-rate applications |
JP4801160B2 (ja) * | 2005-09-23 | 2011-10-26 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 逐次改善可能な格子ベクトル量子化 |
US20070094035A1 (en) * | 2005-10-21 | 2007-04-26 | Nokia Corporation | Audio coding |
US20070168197A1 (en) * | 2006-01-18 | 2007-07-19 | Nokia Corporation | Audio coding |
US8346544B2 (en) * | 2006-01-20 | 2013-01-01 | Qualcomm Incorporated | Selection of encoding modes and/or encoding rates for speech compression with closed loop re-decision |
US8090573B2 (en) * | 2006-01-20 | 2012-01-03 | Qualcomm Incorporated | Selection of encoding modes and/or encoding rates for speech compression with open loop re-decision |
US8032369B2 (en) * | 2006-01-20 | 2011-10-04 | Qualcomm Incorporated | Arbitrary average data rates for variable rate coders |
FR2897742A1 (fr) * | 2006-02-17 | 2007-08-24 | France Telecom | Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation |
WO2007107159A1 (en) * | 2006-03-20 | 2007-09-27 | Aalborg Universitet | Communication system and method for communication in a communication system |
US7966175B2 (en) * | 2006-10-18 | 2011-06-21 | Polycom, Inc. | Fast lattice vector quantization |
US7953595B2 (en) | 2006-10-18 | 2011-05-31 | Polycom, Inc. | Dual-transform coding of audio signals |
US7961640B2 (en) * | 2006-10-26 | 2011-06-14 | Qualcomm Incorporated | Method and apparatus for codebook exchange in a multiple access wireless communication system |
US20080120098A1 (en) * | 2006-11-21 | 2008-05-22 | Nokia Corporation | Complexity Adjustment for a Signal Encoder |
US7983322B2 (en) * | 2007-01-09 | 2011-07-19 | Broadcom Corporation | Method and system for codebook design of MIMO pre-coders with finite rate channel state information feedback |
CN101266796B (zh) * | 2007-03-12 | 2012-05-23 | 华为技术有限公司 | 一种量化编解码方法及装置 |
KR101285595B1 (ko) * | 2007-03-16 | 2013-07-15 | 퍼듀 리서치 파운데이션 | 다중 입출력 시스템을 위한 프리코딩 행렬 코드북 생성장치 및 그 방법 |
US7839945B2 (en) * | 2007-03-20 | 2010-11-23 | Nec Laboratories America, Inc. | Static and differential precoding codebook for MIMO systems |
CN100583649C (zh) * | 2007-07-23 | 2010-01-20 | 华为技术有限公司 | 矢量编/解码方法、装置及流媒体播放器 |
WO2009022193A2 (en) | 2007-08-15 | 2009-02-19 | Nokia Corporation | Devices, methods and computer program products for audio signal coding and decoding |
DK3401907T3 (da) * | 2007-08-27 | 2020-03-02 | Ericsson Telefon Ab L M | Fremgangsmåde og indretning til perceptuel spektral afkodning af et audiosignal omfattende udfyldning af spektrale huller |
WO2009044346A1 (en) * | 2007-10-05 | 2009-04-09 | Nokia Corporation | System and method for combining adaptive golomb coding with fixed rate quantization |
CN101419802B (zh) * | 2007-10-25 | 2011-07-06 | 华为技术有限公司 | 用于语音编码的矢量量化方法及矢量量化器 |
CN101436408B (zh) * | 2007-11-13 | 2012-04-25 | 华为技术有限公司 | 矢量量化方法及矢量量化器 |
WO2009056047A1 (en) * | 2007-10-25 | 2009-05-07 | Huawei Technologies Co., Ltd. | A vector quantizating method and vector quantizer |
JP4871246B2 (ja) * | 2007-10-30 | 2012-02-08 | 日本電信電話株式会社 | ベクトル量子化方法,装置およびそれらのプログラムとそれを記録したコンピュータ読み取り可能な記録媒体 |
CN101430879B (zh) * | 2007-11-05 | 2011-08-10 | 华为技术有限公司 | 一种多速率语音频编码的方法 |
US20100324708A1 (en) | 2007-11-27 | 2010-12-23 | Nokia Corporation | encoder |
RU2461079C2 (ru) * | 2008-02-15 | 2012-09-10 | Нокиа Корпорейшн | Упрощенная индексация и деиндексация векторов |
PL3367381T3 (pl) * | 2008-02-15 | 2020-12-14 | Nokia Technologies Oy | Kwantyfikacja dźwięku poprzez redukcję złożoności indeksowania wektorów |
EP2274833B1 (en) | 2008-04-16 | 2016-08-10 | Huawei Technologies Co., Ltd. | Vector quantisation method |
CN101281750B (zh) * | 2008-05-29 | 2010-12-22 | 上海交通大学 | 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统 |
FR2931963A1 (fr) * | 2008-06-02 | 2009-12-04 | Centre Nat Rech Scient | Procede de traitement de donnees numeriques |
FR2931964A1 (fr) * | 2008-06-02 | 2009-12-04 | Centre Nat Rech Scient | Procede de denombrement des vecteurs dans les reseaux reguliers de points. |
AU2009271019A1 (en) | 2008-07-14 | 2010-01-21 | Gilead Sciences, Inc. | Fused heterocyclyc inhibitors of histone deacetylase and/or cyclin-dependent kinases |
WO2010009139A2 (en) | 2008-07-14 | 2010-01-21 | Gilead Colorado, Inc. | Imidazolyl pyrimidine inhibitor compounds |
US8344018B2 (en) | 2008-07-14 | 2013-01-01 | Gilead Sciences, Inc. | Oxindolyl inhibitor compounds |
MX2011001090A (es) | 2008-07-28 | 2011-03-15 | Gilead Sciences Inc | Compuestos de inhibidor de desacetilasa de histona de cicloalquilideno y heterocicloalquilideno. |
CN101430881B (zh) * | 2008-11-10 | 2013-04-17 | 华为技术有限公司 | 一种编码、解码、编解码方法、编解码系统以及相关装置 |
WO2010078964A1 (en) * | 2009-01-09 | 2010-07-15 | Nokia Corporation | Cyclic leader vectors for search of binary cyclic code |
US20100223061A1 (en) * | 2009-02-27 | 2010-09-02 | Nokia Corporation | Method and Apparatus for Audio Coding |
CN101577551A (zh) | 2009-05-27 | 2009-11-11 | 华为技术有限公司 | 一种生成格型矢量量化码书的方法及装置 |
MX2011013166A (es) | 2009-06-08 | 2012-01-30 | Gilead Sciences Inc | Compuestos inhibidores de hdac de cicloalquilcarbamatobenzamida-an ilina. |
EP2440519A1 (en) | 2009-06-08 | 2012-04-18 | Gilead Sciences, Inc. | Alkanoylamino benzamide aniline hdac inihibitor compounds |
CN102081926B (zh) * | 2009-11-27 | 2013-06-05 | 中兴通讯股份有限公司 | 格型矢量量化音频编解码方法和系统 |
EP2525354B1 (en) | 2010-01-13 | 2015-04-22 | Panasonic Intellectual Property Corporation of America | Encoding device and encoding method |
CN102158692B (zh) | 2010-02-11 | 2013-02-13 | 华为技术有限公司 | 编码方法、解码方法、编码器和解码器 |
JP6073215B2 (ja) | 2010-04-14 | 2017-02-01 | ヴォイスエイジ・コーポレーション | Celp符号器および復号器で使用するための柔軟で拡張性のある複合革新コードブック |
EP2562750B1 (en) | 2010-04-19 | 2020-06-10 | Panasonic Intellectual Property Corporation of America | Encoding device, decoding device, encoding method and decoding method |
US20120109993A1 (en) * | 2010-10-28 | 2012-05-03 | Qualcomm Incorporated | Performing Visual Search in a Network |
CN102623012B (zh) * | 2011-01-26 | 2014-08-20 | 华为技术有限公司 | 矢量联合编解码方法及编解码器 |
PL2676266T3 (pl) | 2011-02-14 | 2015-08-31 | Fraunhofer Ges Forschung | Układ kodowania na bazie predykcji liniowej wykorzystujący kształtowanie szumu w dziedzinie widmowej |
AU2012217158B2 (en) | 2011-02-14 | 2014-02-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Information signal representation using lapped transform |
PT2676267T (pt) | 2011-02-14 | 2017-09-26 | Fraunhofer Ges Forschung | Codificação e descodificação de posições de pulso de faixas de um sinal de áudio |
CN103493129B (zh) | 2011-02-14 | 2016-08-10 | 弗劳恩霍夫应用研究促进协会 | 用于使用瞬态检测及质量结果将音频信号的部分编码的装置与方法 |
BR112013020324B8 (pt) | 2011-02-14 | 2022-02-08 | Fraunhofer Ges Forschung | Aparelho e método para supressão de erro em fala unificada de baixo atraso e codificação de áudio |
PL2676268T3 (pl) | 2011-02-14 | 2015-05-29 | Fraunhofer Ges Forschung | Urządzenie i sposób przetwarzania zdekodowanego sygnału audio w domenie widmowej |
US9036925B2 (en) | 2011-04-14 | 2015-05-19 | Qualcomm Incorporated | Robust feature matching for visual search |
CA2833868C (en) | 2011-04-21 | 2019-08-20 | Samsung Electronics Co., Ltd. | Apparatus for quantizing linear predictive coding coefficients, sound encoding apparatus, apparatus for de-quantizing linear predictive coding coefficients, sound decoding apparatus, and electronic device therefor |
JP6178305B2 (ja) | 2011-04-21 | 2017-08-09 | サムスン エレクトロニクス カンパニー リミテッド | 量子化方法 |
NO2669468T3 (es) | 2011-05-11 | 2018-06-02 | ||
US8706711B2 (en) | 2011-06-22 | 2014-04-22 | Qualcomm Incorporated | Descriptor storage and searches of k-dimensional trees |
WO2013005065A1 (en) | 2011-07-01 | 2013-01-10 | Nokia Corporation | Multiple scale codebook search |
US8924203B2 (en) | 2011-10-28 | 2014-12-30 | Electronics And Telecommunications Research Institute | Apparatus and method for coding signal in a communication system |
US8666753B2 (en) * | 2011-12-12 | 2014-03-04 | Motorola Mobility Llc | Apparatus and method for audio encoding |
EP2812816A1 (en) * | 2012-02-06 | 2014-12-17 | Thomson Licensing | Interactive content search using comparisons |
US9454972B2 (en) | 2012-02-10 | 2016-09-27 | Panasonic Intellectual Property Corporation Of America | Audio and speech coding device, audio and speech decoding device, method for coding audio and speech, and method for decoding audio and speech |
CN104221287B (zh) * | 2012-03-29 | 2017-05-31 | 瑞典爱立信有限公司 | 矢量量化器 |
CN104620315B (zh) * | 2012-07-12 | 2018-04-13 | 诺基亚技术有限公司 | 一种矢量量化的方法及装置 |
PL2915166T3 (pl) * | 2012-10-30 | 2019-04-30 | Nokia Technologies Oy | Sposób i urządzenie do kwantyzacji odpornego wektora |
US20160019900A1 (en) * | 2013-02-01 | 2016-01-21 | Nokia Technologies Oy | Method and apparatus for lattice vector quantization of an audio signal |
CN105144288B (zh) | 2013-04-05 | 2019-12-27 | 杜比国际公司 | 高级量化器 |
US9455799B2 (en) | 2013-08-06 | 2016-09-27 | OptCTS, Inc. | Dynamic control of quality of service (QOS) using derived QOS measures |
US9444580B2 (en) | 2013-08-06 | 2016-09-13 | OptCTS, Inc. | Optimized data transfer utilizing optimized code table signaling |
US10523490B2 (en) | 2013-08-06 | 2019-12-31 | Agilepq, Inc. | Authentication of a subscribed code table user utilizing optimized code table signaling |
CN106030703B (zh) * | 2013-12-17 | 2020-02-04 | 诺基亚技术有限公司 | 音频信号编码器 |
JP6542796B2 (ja) | 2014-03-28 | 2019-07-10 | サムスン エレクトロニクス カンパニー リミテッド | 線形予測係数量子化方法及びその装置、並びに線形予測係数逆量子化方法及びその装置 |
EP4336500A3 (en) | 2014-04-17 | 2024-04-03 | VoiceAge EVS LLC | Methods, encoder and decoder for linear predictive encoding and decoding of sound signals upon transition between frames having different sampling rates |
CN112927703A (zh) | 2014-05-07 | 2021-06-08 | 三星电子株式会社 | 对线性预测系数量化的方法和装置及解量化的方法和装置 |
GB2527099B (en) * | 2014-06-11 | 2018-07-18 | Gurulogic Microsystems Oy | Apparatus and method for data compression |
US10056919B2 (en) | 2014-07-02 | 2018-08-21 | Agilepq, Inc. | Data recovery utilizing optimized code table signaling |
SE538512C2 (sv) | 2014-11-26 | 2016-08-30 | Kelicomp Ab | Improved compression and encryption of a file |
WO2017005296A1 (en) | 2015-07-06 | 2017-01-12 | Nokia Technologies Oy | Bit error detector for an audio signal decoder |
WO2017214060A1 (en) | 2016-06-06 | 2017-12-14 | Agilepq, Inc. | Data conversion systems and methods |
US10366698B2 (en) * | 2016-08-30 | 2019-07-30 | Dts, Inc. | Variable length coding of indices and bit scheduling in a pyramid vector quantizer |
US10020839B2 (en) * | 2016-11-14 | 2018-07-10 | Rampart Communications, LLC | Reliable orthogonal spreading codes in wireless communications |
US10200814B1 (en) * | 2018-04-24 | 2019-02-05 | The Florida International University Board Of Trustees | Voronoi diagram-based algorithm for efficient progressive continuous k-nearest neighbor query for moving objects |
RU2769429C2 (ru) * | 2018-08-17 | 2022-03-31 | Нокиа Текнолоджиз Ой | Кодер звукового сигнала |
US10965352B1 (en) | 2019-09-24 | 2021-03-30 | Rampart Communications, Inc. | Communication system and methods using very large multiple-in multiple-out (MIMO) antenna systems with extremely large class of fast unitary transformations |
CN111914714B (zh) * | 2020-07-24 | 2021-05-14 | 深圳市鹰硕教育服务有限公司 | 点阵本交互方法 |
CN114770971B (zh) * | 2022-04-27 | 2023-07-07 | 郑州大学 | 泡沫填充仿生点阵复合结构及其制备方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371544A (en) * | 1992-02-07 | 1994-12-06 | At&T Corp. | Geometric vector quantization |
AU668817B2 (en) * | 1993-03-26 | 1996-05-16 | Blackberry Limited | Vector quantizer method and apparatus |
US5943446A (en) * | 1995-07-19 | 1999-08-24 | Unisys Corporation | Method and apparatus for increasing the speed of a full code book search in a quantizer encoder |
US6215910B1 (en) * | 1996-03-28 | 2001-04-10 | Microsoft Corporation | Table-based compression with embedded coding |
US6128346A (en) * | 1998-04-14 | 2000-10-03 | Motorola, Inc. | Method and apparatus for quantizing a signal in a digital system |
US6516297B1 (en) * | 1998-12-23 | 2003-02-04 | At&T Corp. | Multiple description lattice vector quantization |
US6807312B2 (en) * | 2001-07-13 | 2004-10-19 | Sharp Laboratories Of America, Inc. | Robust codebooks for vector quantization |
-
2002
- 2002-05-31 CA CA002388358A patent/CA2388358A1/en not_active Abandoned
-
2003
- 2003-05-30 DK DK03727093T patent/DK1514355T3/da active
- 2003-05-30 JP JP2004510114A patent/JP4224021B2/ja not_active Expired - Lifetime
- 2003-05-30 CN CN038126524A patent/CN1659785B/zh not_active Expired - Lifetime
- 2003-05-30 AT AT03727093T patent/ATE440409T1/de active
- 2003-05-30 RU RU2004138289/09A patent/RU2004138289A/ru not_active Application Discontinuation
- 2003-05-30 WO PCT/CA2003/000829 patent/WO2003103151A1/en active Application Filing
- 2003-05-30 KR KR10-2004-7019540A patent/KR20050008761A/ko not_active Application Discontinuation
- 2003-05-30 BR BR0311336-1A patent/BR0311336A/pt not_active Application Discontinuation
- 2003-05-30 MX MXPA04011841A patent/MXPA04011841A/es unknown
- 2003-05-30 DE DE60328892T patent/DE60328892D1/de not_active Expired - Lifetime
- 2003-05-30 PT PT03727093T patent/PT1514355E/pt unknown
- 2003-05-30 ES ES03727093T patent/ES2331876T3/es not_active Expired - Lifetime
- 2003-05-30 US US10/515,550 patent/US7106228B2/en not_active Expired - Lifetime
- 2003-05-30 EP EP03727093A patent/EP1514355B1/en not_active Expired - Lifetime
- 2003-05-30 AU AU2003233723A patent/AU2003233723A1/en not_active Abandoned
-
2004
- 2004-10-29 ZA ZA200408780A patent/ZA200408780B/en unknown
- 2004-12-30 NO NO20045718A patent/NO20045718L/no not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
CN1659785B (zh) | 2011-04-20 |
DK1514355T3 (da) | 2009-12-14 |
KR20050008761A (ko) | 2005-01-21 |
ZA200408780B (en) | 2005-08-30 |
US20050285764A1 (en) | 2005-12-29 |
WO2003103151A1 (en) | 2003-12-11 |
MXPA04011841A (es) | 2005-07-26 |
DE60328892D1 (de) | 2009-10-01 |
AU2003233723A1 (en) | 2003-12-19 |
JP2005528839A (ja) | 2005-09-22 |
EP1514355A1 (en) | 2005-03-16 |
EP1514355B1 (en) | 2009-08-19 |
NO20045718L (no) | 2005-02-22 |
ATE440409T1 (de) | 2009-09-15 |
CN1659785A (zh) | 2005-08-24 |
US7106228B2 (en) | 2006-09-12 |
BR0311336A (pt) | 2005-03-15 |
JP4224021B2 (ja) | 2009-02-12 |
RU2004138289A (ru) | 2005-06-10 |
PT1514355E (pt) | 2009-11-19 |
CA2388358A1 (en) | 2003-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2331876T3 (es) | Procedimiento y sistema de cuantificacion vectorial multi-velocidad de enrejado de una señal. | |
US10700808B2 (en) | Method and apparatus for encoding data using a polar code | |
KR101190875B1 (ko) | 차원 벡터 및 가변 분해능 양자화 | |
KR101405962B1 (ko) | Ldpc 코드를 이용한 복호화 방법 | |
KR100709545B1 (ko) | 부호기 및 복호기 | |
CN101032082B (zh) | 编码和解码数据的方法和设备 | |
JP4602406B2 (ja) | データをエンコード及びデコードするための方法並びに装置 | |
KR100982211B1 (ko) | 다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화 | |
ES2880779T3 (es) | Método y aparato para la indexación y desindexación de cuantificación vectorial piramidal de vectores de muestra de audio/video | |
ES2902518T3 (es) | Codificador de audio | |
CN104917536B (zh) | 一种支持低码率编码的方法及装置 | |
JP2010532129A (ja) | パリティ検査行列の生成 | |
KR20090065791A (ko) | 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법 | |
US20130139038A1 (en) | Error correcting decoding device and error correcting decoding method | |
WO2015120719A1 (zh) | 信息处理方法及装置 | |
KR100984234B1 (ko) | 벡터 코딩/디코딩 방법 및 장치 그리고 스트림 미디어플레이어 | |
JP2016510454A (ja) | 頂点誤差訂正のための方法および装置 | |
US8307184B1 (en) | Communication and memory capacity enhancement method and apparatus | |
KR20050063660A (ko) | 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법 | |
JP2009526445A (ja) | 順列を生成するための方法および装置 | |
JP2009530940A (ja) | 抑制されたベクトル量子化 | |
CN107733441B (zh) | 编码方法及装置、译码方法及装置 | |
KR102382491B1 (ko) | 시퀀스 결정을 위한 방법 및 장치, 디바이스 및 저장 매체 | |
Wang et al. | Hierarchy-oriented searching algorithms using alternative duplicate codewords for vector quantization mechanism | |
CA2482994C (en) | Method and system for multi-rate lattice vector quantization of a signal |