MXPA04011841A - Metodo y sistema para la cuantificacion vectorial reticular multivelocidad de una senal. - Google Patents

Metodo y sistema para la cuantificacion vectorial reticular multivelocidad de una senal.

Info

Publication number
MXPA04011841A
MXPA04011841A MXPA04011841A MXPA04011841A MXPA04011841A MX PA04011841 A MXPA04011841 A MX PA04011841A MX PA04011841 A MXPA04011841 A MX PA04011841A MX PA04011841 A MXPA04011841 A MX PA04011841A MX PA04011841 A MXPA04011841 A MX PA04011841A
Authority
MX
Mexico
Prior art keywords
codebook
index
vector
base
voronoi
Prior art date
Application number
MXPA04011841A
Other languages
English (en)
Inventor
Ragot Stephane
Original Assignee
Voiceage Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29589087&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=MXPA04011841(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Voiceage Corp filed Critical Voiceage Corp
Publication of MXPA04011841A publication Critical patent/MXPA04011841A/es

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/0001Codebooks
    • G10L2019/0007Codebook element generation
    • G10L2019/0008Algebraic codebooks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

La presente invencion se refiere a un metodo y sistema para la cuantificacion vectorial, reticular, multivelocidad de un vector fuente x que representa un cuadro de una senal fuente que se va a usar, por ejemplo, en sistemas de almacenamiento y transmision digital. El metodo de codificacion de cuantificacion reticular multivelocidad comprende los pasos de asociar a x un punto reticular y en una reticula ? no unida; verificar si y se incluye en un libro de codigos C base derivados de la reticula ?; si es el caso entonces indexar y en C para producir los indices de cuantificacion. Si no entonces extender el libro de codigos, base usando, por ejemplo, un metodo de extension basado en Voronoi, produciendo un libro de codigos, extendido; asociar a y un vector de codigo c de libro de codigos extendido e indexar y en el libro de codigos C extendido. La tecnica de extension permite obtener libros de codigos de mayor proporcion de bits a partir de libros de codigos base en comparacion al metodo y sistema de cuantificacion de la tecnica anterior.

Description

MÉTODO' Y SISTEMA PARA LA CUANTIFICACIÓN VECTORIAL RETICULAR MULTIVELOCIDAD DE UNA SEÑAL Campo de la Invención La presente invención se refiere a la codificación y descodificación de señales. De manera más específica, la presente invención se refiere a un método y sistema para la cuantificación vectorial, reticular, multivelocidad de una señal que se va a usar, por ejemplo, en sistemas de almacenamiento y transmisión digital.
Antecedentes de la Invención Una técnica anterior clásica para la codificación de señales digitales de voz y audio es la codificación por transformadas, por la cual la señal que se va a codificar se divide en bloques de muestras, llamados cuadros, y donde cada cuadro se procesa por una transformada ortogonal lineal, por ejemplo, la transformada discreta de Fourier o la transformada discreta del coseno, para producir coeficientes de la transformada, que luego se cuantifican. La Figura 1 de las figuras anexas muestra un esquema de alto nivel para la codificación por transformadas. En este esquema, se aplica una transformada T en un codificador a un cuadro de entrada lo que da coeficientes de transformada. Los coeficientes de transformada se cuantifican con un cuantificador Q para obtener un índice o un conjunto de índices para la caracterización de los coeficientes cuantificados de transformada del cuadro. Los índices se codifican en general en códigos binarios que se pueden ya sea almacenar en una forma binaria en un medio de almacenamiento o transmitir sobre 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 usan para reconstruir los coeficientes cuantificados de transformada con un descodificador del cuantificador Q"1. La transformada invertida T"1 entonces se aplica a estos coeficientes cuantificados de transformada para reconstruir el cuadro sintetizado . En la cuantificación vectorial (VQ) , se confinan varias muestras o coeficientes, conjuntamente en vectores, y cada vector se aproxima (cuantifica) con una entrada de un libro de códigos. La entrada seleccionada para cuantificar el vector de entrada es típicamente el vecino más cercano en el libro de códigos de acuerdo a un criterio de distancia. La adición de más entradas en un libro de códigos incrementa la velocidad de bits y la complejidad, pero reduce la distorsión promedio. Las entradas del libro de códigos se refieren como vectores de código. Para adaptarse a las características cambiantes de una fuente, se usa normalmente la asignación adaptable de bit. Con la asignación adaptable de bit, se pueden usar diferentes tamaños del libro de códigos para cuantificar un vector de fuente. En la codificación por transformada, el número de bit asignados a un vector fuente depende típicamente de la energía del vector con relación a otros vectores dentro del mismo cuadro, sometido a un número máximo de bits disponibles para cuantificar todos los coeficientes. Las Figuras 2a y 2b detallan los bloques de cuantificación de la Figura 1 en el contexto general de un cuantificador mul ivelocidad . Este cuantificador muíti elocidad usa varios libros de código que tienen típicamente diferentes velocidades de bit para cuantificar un vector fuente x. este vector fuente se obtiene típicamente al aplicar una transformada a la señal y tomar todos o un subconjunto de los coeficientes de transformada. La Figura 2 (a) representa un codificador del cuantificador multivelocidad, denotado por Q, que selecciona un número n del libro de códigos y un índice i de vector de código para caracterizar una representación y cuantificada para el vector fuente x. El número n del libro de códigos especifica el libro de códigos seleccionado por el codificador en tanto que el índice i identifica el vector de código seleccionado en este libro de códigos particular. En general, se puede aplicar una técnica apropiada de codificación sin pérdida a n e i en los bloques En y Ei( respectivamente, para reducir la velocidad promedio de bit del número nE codificado del libro de códigos y el índice iE antes multiplexarlos (MUX) para el almacenamiento o transmisión sobre un canal de comunicación. La Figura 2 (b) muestra las operaciones de descodificación del cuantificador multivelocidad . Primero, los códigos binarios nE e iE se desmultiplexan (DESMUX) y sus códigos sin pérdida se descodifican en los bloques Dn y Di, respectivamente. El número n recuperado del libro de códigos y el índice i se conducen el descodificador del cuantificador multivelocidad, denotado por Q-l, que los usa para recuperar la representación y cuantificada del vector fuente x. Diferentes valores de n usualmente dan por resultado diferentes asignaciones de bits, y velocidades de bits equivalentemente diferentes, para el índice i. la velocidad de bits del libro de códigos dada en bits por dimensión se define como la relación entre el número de bits asignados a un vector fuente y la dimensión del vector fuente. El libro de códigos se puede construir usando varios planteamientos. Un planteamiento popular es aplicar un algoritmo de entrenamiento (por ejemplo, el algoritmo de k-medio) para optimizar las entradas del libro de códigos de acuerdo a la distribución de la fuente. Este planteamiento produce un libro de códigos sin estructurar, que tiene típicamente que ser almacenado y buscado exhaustivamente para cada vector fuente que se va a cuantificar. Las limitaciones de este planteamiento de esta manera son sus requerimientos de memoria y complejidad computacional, lo que se incrementa exponencialmente con la velocidad de bits del libro de códigos. Estas limitaciones se amplifican aún si el esquema de cuantificación multivelocidad se basa en libro de códigos no estructurados, debido a que en general se usa un libro de códigos específico para cada posible asignación bit. Una alternativa es usar libros de códigos restringidos o estructurados, lo que reduce la complejidad de búsqueda y en muchos casos los requisitos de almacenamiento. Ahora se analizarán en más detalle dos casos de la cuantificación vectorial estructurada; la cuantif icación vectorial, reticular y de multivelocidad. En la cuantificación vectorial multivelocidad, se cuantifica un vector fuente x con un libro de códigos Ci de primera etapa en un vector de código yi. Para reducir el error de cuantificación, el error residual ei = x- yi de la primera etapa, que es la diferencia entre el vector x de entrada y el vector de código yi de primera etapa, seleccionado, entonces se cuantifica con un segundo libro de códigos C2 de segunda etapa en un vector de código y2. Este proceso se puede iterar con etapas subsiguientes hasta la etapa final, donde el error residual en-1 = -yn-i de la (n -Désima etapa se cuantifica con un libro de códigos Cn de n-ésima etapa en un vector de código yn. Cuando se usan las n etapas (n > 2) , la reconstrucción se puede escribir como una suma de los vectores de código y = yx + ... + yn, donde Yi es una entrada del libro de códigos Ci de la 1-ésima etapa para 1 = 1, n. la velocidad total de bit es la suma de las velocidades de bit de todos los n libro de códigos. En la cuantificación vectorial reticular, también llamada VQ reticular o VQ algebraica para abreviar, el libro de códigos se forma al seleccionar un subconjunto de puntos reticulares en una retícula dada. Una retícula es una estructura lineal en N dimensiones donde todos los puntos o vectores se pueden obtener por combinaciones de números enteros de N vectores base, es decir, como una suma ponderada de los vectores base con pesos firmados en números enteros. La Figura 3 muestra un ejemplo en dos dimensiones, donde los vectores base son i y v2. La retícula usada en este ejemplo es bien conocida como la retícula hexagonal denotada por A2. Todos los puntos marcados con cruces en esta figura se pueden obtener como y = kivl + kJv2 (Ec ^ donde y es un punto reticular, y k± y k2 pueden ser cualquier número entero. Se señala que la Figura 3 muestra sólo un subconjunto de la retícula, puesto que la retícula misma se extiende al infinito. También se puede escribir la Ecuación 1 en forma de matriz donde los vectores base x = [vu v12] y v2 = [?2? v22] forman las filas de la matriz generadora. Entonces se puede obtener un vector reticular al tomar una combinación de números enteros de estos vectores de fila. Cuando se elige una retícula para construir el libro de códigos de cuantificación, se selecciona un subconjunto de puntos para obtener un libro de códigos con un número dado (finito) de bits. Esto se realiza usualmente al emplear una técnica llamada formación. La formación se realiza al truncar la retícula de acuerdo al límite de formación. El límite de formación se centra típicamente en el origen pero esto no tiene que ser el caso, y por ejemplo puede ser rectangular, esférica o piramidal. La Figura 3 muestra un ejemplo con un límite esférico de formación. La ventaja de usar una retícula es la existencia de algoritmos de búsqueda rápida del libro de códigos lo que puede reducir significativamente la complejidad en comparación a los libro de códigos no estructurados, en la determinación del vecino más próximo de un vector fuente x entre todos los puntos reticulares dentro del libro de códigos. También no hay necesidad, virtualmente , de almacenar los puntos reticulares puesto que se pueden obtener de la matriz generadora. Los algoritmos de búsqueda rápida comprenden en general el redondeo al número entero más cercado de los elementos del x sujeto a ciertas restricciones tal que la suma de todos los elementos redondeados sea par o impar, o igual al número entero en el módulo aritmético. Una vez que se cuantifica el vector, es decir, una vez que se determina el punto reticular más cercano dentro del libro de códigos, usualmente una operación más compleja consiste de la indexación del punto reticular seleccionado. Una clase particular de los algoritmos de indexación y búsqueda rápida del libro de códigos de retícula comprende el concepto de conductores o guías, que se describe en detalle en la siguiente referencia: • C. Lambíin y 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); • J.-M. Moureaux, P. Loyer, y M. Antonini . Low-complexity indexing method for Zn y Dn lattice quantizers. IEEE Trans. Communications, vol. 46, no. 12, Dec. 1998 (Moureaux, 1988) ; y en • P. Rault y C. Guillemont. Indexing algotithms for Zn, An, Dn, y Dn++ lattice vector quantizers. IEEE Transactions on Multimedia, vol . 3, no. 4, pp. 395-404, Dec . 2001 (Rault, 2001) . Un conductor o guía es un punto reticular con componentes clasificados, por convención, en orden descendente. Una guía absoluta es una guía con todos los componentes no negativos. Una guía de signo es una guía con signos en cada componente. Usualmente, la estructura reticular impone restricciones en los signos de un punto reticular, y de esta manera en los signos de una guía o conductor. El concepto de guías se explicará en más detalle posteriormente. Una retícula frecuentemente usada en la cuantificación vectorial es la retícula de Gosset en la dimensión 8, denotada por RE8. Cualquier punto y reticular 8 -dimensional en RE8 se puede generar por: y = [k¡ k2 ... k^G^ ^c ^ Donde ki, k.2 , ¦ ¦ · , k8 pueden ser números enteros con signo y GRE8 es la matriz generadora, definida como Los vectores v1( v2, de fila son los vectores base de la retícula. Se puede verificar fácilmente matriz generadora GRE8 es Esta matriz invertida es útil para recuperar la expansión base de y: [*, k2 ... k,) = yG^ (Ec 6) Es bien conocido que todas las retículas consisten de un conjunto infinito de esferas incrustadas en las cuales están todos los puntos reticulares. Estas esferas se refieren frecuentemente como envolturas. Los puntos reticulares en una esfera en RE8 se pueden generar de una o varias guías por permutación de sus componentes con signo.
Todas las permutaciones de los componentes de una guía son puntos reticulares con la misma norma, y de esta manera caen en la misma envoltura reticular. Por lo tanto, las guías son útiles para enumerar de forma breve las envolturas de una retícula. En realidad, los puntos reticulares localizados en las envolturas cercanos al origen se pueden obtener de un número muy pequeño de guías. Sólo las guías absolutas y las restricciones con signo se requieren para generar todos los puntos reticulares en una envoltura. Para diseñar un libro de códigos RE8, se puede seleccionar un subconjunto finito de puntos reticulares al explotar la geometría intrínseca de la retícula, especialmente su estructura de envoltura. Como se describe en (Lamblin, 1988) , la 1-ésima envoltura de RE8 tiene un radio donde 1 es un número entero no negativo. Las envolturas de alto radio comprenden más puntos reticulares que las envolturas de menor radio. Es posible enumerar todos los puntos en una envoltura dada usando guías absolutas y con signo, señalando que hay un número fijo de guías en una envoltura y que todos los otros puntos reticulares en la envoltura se obtienen por permutaciones de los componentes de la guía con digno, con algunas restricciones en los signos . En la VQ reticular esférica, es suficiente reordenar en orden decreciente ios componentes de x y luego realizar una búsqueda de vecino más cercano entre las guías o conductores que definen el libro de códigos para determinar el vecino más cercano de un vector fuente x entre todos los puntos reticulares en el libro de códigos. El índice de la guía más cercana y el índice de permutación obtenido indirectamente de la operación de ordenamiento en x entonces envían al descodificador, que puede reconstruir el análogo cuantificado de x de esta información. En consecuencia, el concepto de las guías permite una estrategia conveniente de indexación, donde se puede describir un punto reticular por un desplazamiento de cardinalidad con referencia a una guía con signo y un índice de permutación con referencia al índice relativo de una permutación de la guía con signo. En base a la estructura de envoltura de una retícula, y de la enumeración de la retícula en términos de guías absolutas y con signo, es posible construir un libro de códigos al retener sólo las envolturas de radio menor, y completar posiblemente el libro de códigos con pocas guías adicionales de envolturas de radio mayor. Se refiere a esta clase de generación del libro de códigos de retícula como la formación reticular casi esférica. Este planteamiento se usa en M. Xie y J.-P. Adoul , Embedded algebraic vector quantization (EAVQ) ith application to wideband audio coding, IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP) , Atlanta, GA, U.S. A, vol . 1, pp. 240-243, 1996 (Xie, 1996). Para RE8, las guías absolutas en las envolturas de radio 0, y e se muestran a continuación. Guía absoluta para la envoltura de radio 0 [00000000] Guías absolutas para la envoltura de radio 8 [22000000] y [11111111] Un listado más completo para envolturas de menor radio, para el caso específico de RE8, se puede encontrar en Lamblin (1988) . Para la cuantificación reticular que se va a usar en la codificación por transformada con asignación adaptable de bit, es deseable construir libros de códigos, .reticulares, multivelocidad. Una posible solución consiste de explotar la enumeración de una retícula en términos de guías de una manera similar como en Xie (1996) . Como se explica en Xie, se puede diseñar un cuantificador reticular, basado en guías, multivelocidad, con por ejemplo: · libros de códigos, algebraicos, incrustados, por lo que los libros de códigos de menor velocidad son subconj untos de los libros de códigos de mayor velocidad, o • libros de códigos, algebraicos, anidados, por lo que los libros de códigos de multivelocidad no se traslapan si no que son complementarios de una manera similar como un nido de muñecas Rusas . En el caso específico de Xie, la cuantificación reticular, multivelocidad usa seis de los libros de códigos llamados Q, Qlt Q2, Q5, donde los últimos cinco libros de códigos están incrustados, es decir, Qi z Q2 c ... c Q5. Estos libros de códigos se derivan esencialmente de una retícula 8 -dimensional RE8. Siguiendo las anotaciones de Xie, Qn se refiere al n-ésimo libro de códigos de RE8. la asignación de bit del libro de códigos Qn es 4n bits que corresponden a 24n entradas. La velocidad de bits del libro de códigos que se define como la relación entre el número de bits asignados a un vector fuente y la dimensión del vector fuente, y en la cuantificación de RE8/ la dimensión del vector fuente que es 8, la velocidad de bits del libro de códigos de Qn es 4n/8 = n/2 bits por dimensión. Con la técnica de Xie, la velocidad de bits del libro de códigos no puede exceder 5/2 bits por dimensión. Debido a esta limitación, se debe 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 vecino y más cercano en la retícula RE8 que no está en uno de los libros de códigos de multivelocidad Qn. En Xie, estos puntos se llevan una escala menor por un factor g > 1 hasta que x/g no es más un valor atípico. Aparentemente, el uso de g puede dar por resultado mayores errores de cuantificación . Este problema se fija en Xie (1996) al normalizar el vector fuente antes de la cuantificación reticular multivelocidad. Existen desventajas y limitaciones en la técnica de cuantificación de multivelocidad de Xie, que incluyen: 1. La saturación de valores atípicos usualmente es una carga de computación. Adicionalmente , la saturación puede degradar significativamente el desempeño de cuantificación (y por lo tanto la calidad) en el caso de grandes valores atípicos. 2. La técnica maneja valores atípicos con saturación y no permite la asignación de más de 20 bits por vector 8 -dimensional . Esto puede ser una desventaja en la codificación por transformada, puesto que los vectores de alta energía (que van a ser más probablemente valores atípicos) se deben cuantificar normalmente con una pequeña distorsión para aumentar al máximo la calidad, implicando que debe ser posible usar un libro de códigos con suficientes bits asignados a un vector específico. 3. Los libros de códigos Q2, Q3, Q4 y Q5 de 8, 12, 16 y 20 bits son específicos con 3, 8, 23 y 73 guías absolutas, respectivamente. Puesto que los requisitos de almacenamiento y la complejidad de búsqueda se relacionan cercanamente al número de guías absolutas, la complejidad de estos libros de códigos reticulares explota con el incremento de la velocidad de bits del libro de códigos. 4. Se empeora ligeramente el desempeño de los libros de códigos incrustados con respecto a los libros de códigos sin traslape, (es decir, anidados) . Otra clase de formación reticular, como lo opuesto a la formación casi-esferica, es la formación de Voronoi , que se describe en J. H. Conway y 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). Depende del concepto de la región de Voronoi descrita por ejemplo en A. Gersho y R. M. Gray, Vector Quantization and Signal Compression, Kluwer Academic Publishers, 1992 (Gersho, 1992) . En el caso específico de un libro de códigos de retícula, una región de Voronoi es la región del espacio donde todos los puntos en el espacio N-dimensional están más cerca a un punto reticular dado que cualquier otro punto en la retícula. Cada punto reticular tiene una región Voronoi cerrada, asociada que incluye también puntos límite, equidistantes a los puntos reticulares vecinos. En una retícula dada, todas las regiones Voronoi tienen la misma forma, es decir, son congruentes. Este no es el caso para un libro de códigos sin estructurar. Un libro de códigos de Voronoi es un subconjunto de una retícula tal que todos los puntos del libro de códigos caen en una región del espacio con la misma forma como la región Voronoi de la retícula, puesta y trasladada apropiadamente a una escala mayor. Para ser más precisos, un libro de códigos de Voronoi V(r) derivado de la retícula ? en la dimensión N se define como F«^An(2fA{0)+fl) {Ec ?) donde r es un parámetro entero no negativo definido posteriormente en más detalle, VA(0) es la región Voronoi de ? alrededor del origen, y a es un vector de desplazamiento N-dimensional . La Ecuación 7 se interpreta como sigue: "el libro de códigos Voronoi V(r) se define como todos los puntos de la retícula ? incluidos en la región del espacio N-dimensional dentro de una región Voronoi VA(0) , aumentada en escala y traslada, con el factor de escalamiento m = 2R y el vector de desplazamiento a" . Con esta definición, la velocidad de bits del libro de códigos de V(rl es r bits por dimensión. El papel de a es fijar los nexos, es decir, impedir que cualquier punto reticular caiga en la región de formación 2rVA(0) + a. La Figura 4 ilustra la codificación de Voronoi, las regiones Voronoi, y el enlosamiento de las regiones Voronoi en la retícula hexagonal bi-dimensional A2. El punto o se refiere al origen. Ambos puntos o y z caen dentro del mismo límite marcado con líneas de guiones. Este límite es realmente una región Voronoi de A2 puesta a escala por m = 2 y ligeramente trasladada a la derecha para evitar puntos reticulares en el límite de la región. Hay en total 4 puntos reticulares marcados con tres puntos (·) y un signo de (+) dentro del límite que comprende o y z. En forma más general, cada región contiene mN puntos. Se puede ver en la Figura 4 que el mismo patrón, una región Voronoi de A2 puesta a escala por m = 2 se duplica varias veces. Este proceso se llama enlosamiento . Por ejemplo, los puntos o' y z1 se pueden ver como equivalentes a o y z, respectivamente, con respecto al enlosamiento. El punto z1 se puede escribir como ?' = o' + z donde o' es un punto de 2A2. Los puntos de 2A2 se muestran con signos de más en la Figura 4. De manera más general, la retícula completa se puede generar al enlozar todos los traslados posibles de un libro de códigos de Voronoi por puntos de la retícula puestos a escala por m. Como se describe en D. Mukherjee y S. K. Mitra, Vector setpartitioning with successive refinement Voronoi lattice VQ for embedded wavelet image coding, Proc. ICIP, Parte I, Chicago, IL, Oct . 1998, pp . 107-111 (Mukherjee, 1988), la codificación de Voronoi se puede usar para extender la cuantificación reticular por refinamientos sucesivos. La técnica de múltiples etapas de Mukherjee produce una cuantificación de multivelocidad con descripciones granulares más finas después de cada refinamiento. Esta técnica, que se puede usar para la cuantificación de multi-velocidad en la codificación por transformada, tiene varias limitaciones: 1. El paso de cuantificación se disminuye después de cada refinamiento sucesivo, y por lo tanto no puede tratar eficientemente con valores atípicos grandes. En realidad, si se presenta un valor atípico grande en la primera etapa, las etapas sucesivas no pueden reducir eficientemente el error resultante, debido a que no se diseñan para reducir sólo el ruido granular. Por lo tanto es crítico el desempeño de la primera etapa. 2. La propiedad de refinamientos sucesivos implica restricciones en los pasos sucesivos de cuantificación. Esto limita el desempeño de la cuantificación .
Objetos de la Invención Un objeto de la presente invención es proporcionar un método y sistemas mejorados para construir, buscar y indexar un cuantificador vectorial, reticular, multi-velocidad. Otro objeto de la presente invención es proporcionar un método mejorado de búsqueda e indexación para libros de códigos de retícula.
Breve Descripción de la Invención Los objetos anteriores se logran por un cuantificador multi -velocidad que usa un conjunto de libros de códigos de retícula, llamados libros de códigos base, y una extensión que hace posible obtener libros de códigos de mayor velocidad de bits a partir de los libros de códigos base en comparación a los cuantificadores de la técnica anterior . De manera más específica, de acuerdo con un primer aspecto de la presente invención, se proporciona un método de codificación de cuantificación reticular multi-velocidad, que comprende : i) proporcionar un vector fuente x que representa un cuadro de una señal fuente; ii) proporcionar un libro de códigos C base derivado de una retícula ?; iii) asociar a x un punto reticular y en la retícula ?; iv) si y se incluye en el libro de códigos C base entonces indexar y en el libro de códigos C base que produce índices de cuantificación, y que termina el método, si no, entonces v) extender el libro de códigos, base, produciendo un libro de códigos extendido,- vi) asociar a y un vector de códigos c del libro de códigos extendido; y vii) indexar y en el libro de códigos extendido produciendo índices de cuantificación .
De acuerdo a un segundo aspecto de la presente invención, se proporciona un método de descodificación de cuantificación reticular multi -velocidad, que comprende: i) proporcionar un libro de códigos C base derivado de una retícula ?; ii) proporcionar un número n del libro de códigos y un índice i de cuantificación; iii) desmultiplexar el índice i de cuantificación usando el número n del libro de códigos; iv) si n = 0, entonces descodificar el índice i usando el libro de códigos base, produciendo un vector cuantificado y, y terminando el método; v) si n > 0, entonces a) proporcionar un libro de códigos Vír) de Voronoi, preseleccionado; b) establecer un orden de extensión a r = n y un factor de escala m = 2r; c) desmultiplexar los índices j y k de i ; d) descodificar j en c en el libro de códigos C base; e) descodificar k en v en el libro de códigos V(r> de Voronoi ; y (f) reconstruir un vector cuantificado como y = ni c + v. De acuerdo con un tercer aspecto de la presente invención, también se proporciona un método para la extensión del libro de códigos de retícula, que comprende: i) proporcionar un subconjunto de vectores a partir de una retícula L de vectores, produciendo un libro de códigos base; ii) poner a escala el libro de códigos base por un factor de escala predeterminado, produciendo los vectores de código puestos a escala; y iii) insertar un libro de códigos de Voronoi alrededor de cada vector de código puesto a escala, produciendo un libro de códigos extendido. El método de extensión descrito se puede usar con los libros de códigos derivados de cualquier retícula de cualquier dimensión. Sin embargo, de acuerdo a una modalidad ilustrativa de la invención, la retícula REa de Gosset 8-dimensional se usa junto con libros de códigos, base, casi esféricos especificados por tablas optimizadas de guías. Además del método de cuantificación vectorial, reticular, multivelocidad, los métodos para la búsqueda e indexación rápida en los libros de códigos reticulares que hacen uso de identificadores de guías absolutas, también se proporcionan de acuerdo a otra modalidad ilustrativa de la presente invención. Estos métodos no son específicos a la retícula RE8 y se pueden usar en el contexto de cualquier retícula con o sin una extensión.
De acuerdo a un cuarto aspecto de la presente invención, se proporciona un codificador de cuantificación reticular muíti-velocidad, que comprende: un medio de recepción para proporcionar un vector fuente x que representa un cuadro de una señal fuente ,- un medio de memoria que incluye un libro de códigos C base derivado de una retícula ?; un medio que asocia a x un punto reticular y en la retícula ?; un medio para verificar si y está incluido en el libro de códigos C base y para indexar y en el libro de códigos C base, produciendo los índices de cuantificación; un medio para extender el libro de códigos base y para producir un libro de códigos extendido; un medio para asociar a y un vector de códigos c del libro de códigos extendido; y un medio para indexar y en el libro de códigos C extendido y para producir los índices de cuantificación . Finalmente, de acuerdo a un quito aspecto de la presente invención, se proporciona un descodificador de cuantificación reticular multi-velocidad, que comprende: un medio de memoria para proporcionar un libro de códigos C base derivado de una retícula ?; un medio de recepción para proporcionar un número n del libro de códigos, codificado y un índice i codificado; un medio para desmultiplexar el índice i de cuantificación usando el número n del libro de códigos; un medio para verificar si n = 0, y a) para descodificar el índice i usando el libro de códigos base, produciendo un vector cuantificado y; un medio para verificar si n > 0; un medio para proporcionar un libro de códigos V(r> de Voronoi preseleccionado; un medio para establecer un orden de extensión a r = n y un factor de escala m = 2r; un medio para desmultiplexar los índices j y k. de i ; un medio para descodificar j en c en el libro de códigos C base; un medio para descodificar k en v en el libro de códigos Vlr) de Voronoi; y un medio para reconstruir un vector cuantificado -como y = m c + v. De acuerdo a los métodos y sistemas de la presente invención, un libro de códigos C base bi-dimensional se extiende al llevarlo a escala por potencia sucesiva de 2 y al enlosar un libro de códigos V(r) de Voronoi alrededor de cada punto del libro de códigos, base, puesto a escala. Por lo tanto, el método de extensión se refiere como extensión de Voronoi. El orden de extensión r es el número de veces que se aplica a la extensión. Los libros de códigos extendidos C (r) comprenden más puntos y se extienden más alto en el espacio vectorial capturando valores atípicos, en tanto que mantienen la misma granularidad como el libro de códigos, base. Esto se logra a un costo de una velocidad incrementada de bit requerida para indexar no sólo el libro de códigos base sino también el libro de códigos de Voronoi, y para transmitir la información lateral en el orden de extensión. La velocidad de bits del cuantificador multi-velocidad obtenida por el medio descrito es dependiente de la fuente. El número de bits usados para indexar el libro de códigos de Voronoi se refiere como sobreencabezado . Otros objetos, ventajas y características de la presente invención llegarán a ser más evidentes en la lectura de la siguiente descripción limitante de las modalidades ilustrativas de la misma, dadas a manera de ejemplo únicamente con referencia a las figuras anexas.
Breve Descripción de las Figuras En las figuras anexas: La Figura 1, que se marca "técnica anterior", es un diagrama de bloques que ilustra un codificador de transformada de acuerdo a la técnica anterior,- Las Figuras 2 (a) y 2 (b) , que se marcan "técnica anterior" son diagramas de bloque respectivamente del codificador y descodificador de un cuantificador multivelocidad de acuerdo a un método de la técnica anterior; La Figura 3, que se marca "técnica anterior", es una vista esquemática que ilustra la formación esférica en una retícula A2 hexagonal, bidimensional , de acuerdo a un método de la técnica anterior; La Figura 4, que se marca "técnica anterior", es una vista esquemática que ilustra la codificación de Voronoi , regiones de Voronoi , y el enlosamiento de las regiones de Voronoi en una retícula A2 hexagonal, bidimensional, de acuerdo a un método de la técnica anterior; La Figura 5 es una gráfica que ilustra los puntos de la retícula hexagonal A2; La Figura 6 es la gráfica de la figura 5, que incluye un límite de formación para definir un libro de códigos base; La Figura 7 es una gráfica que ilustra un libro de códigos C base obtenido al retener sólo los puntos reticulares que caen en el límite de formación mostrado en la Figura 6; La Figura 8 es una gráfica que ilustra el libro de códigos C base de la Figura 7, con regiones Voronoi alrededor de cada vector de código; La Figura 9 es la gráfica de la Figura 8 que ilustra la posición de un vector fuente; La Figura 10 es una gráfica que ilustra el libro de códigos C base de la Figura 8 puesto a escala por el factor m = 2 ; La Figura 11 es una gráfica que ilustra el libro de códigos, base puesto en escala, de la Figura 10, con las regiones de Voronoi, puestas a escala, desplazadas, y un libro de códigos de Voronoi que comprende 4 puntos; La Figura 12 es la gráfica de la Figura 11, que ilustra un libro de códigos extendido del orden r = 1 ; La Figura 13 es una gráfica que ilustra el libro de códigos, extendido, de la Figura 12, con las regiones de Voronoi relacionadas; La Figura 14 es la gráfica de la Figura 13, que ilustra el vector y cuantificado, reconstruido como una suma del vector de código me puesto a escala y el vector de código v del libro de códigos de Voronoi; La Figura 15 es un diagrama de flujo que ilustra un método de codificación de cuantificación reticular multivelocidad de acuerdo a una primera modalidad ilustrativa de un segundo aspecto de la presente invención; La Figura 16 es un diagrama de flujo que ilustra un método de descodificación de cuantificación reticular, multivelocidad de acuerdo a una primera modalidad ilustrativa de un tercer aspecto de la presente invención; La Figura 17 es un diagrama de flujo que ilustra la generación de los libros de código, Q5, Qs extendidos, y de otros libros de código de alta proporción de acuerdo a un aspecto de la presente invención; La Figura 18 es un diagrama de flujo que ilustra un método de codificación de cuantificación reticular de multivelocidad de acuerdo a una segunda modalidad ilustrativa de un segundo aspecto de la presente invención; Las Figuras 19A-19B son vistas esquemáticas que ilustran la estructura del índice i de vector de código como se produce por el método de codificación de la Figura 18 respectivamente en el caso donde no se use la extensión, y cuando se usa la extensión; y La Figura 20 es un diagrama de flujo que ilustra un método de descodificación de cuantificación reticular de multivelocidad de acuerdo a una segunda modalidad ilustrativa de un tercer aspecto de la presente invención.
Descripción de las Modalidades Ilustrativas Volviendo primero a las Figuras 5 a 1 , se describirá un método para la extensión de libros de códigos, reticular, multivelocidad, de acuerdo a una primera modalidad ilustrativa de un primer aspecto de la presente invención. Los métodos de extensión de acuerdo a la presente invención se referirán en la presente como métodos de extensión de Voronoi. La primera modalidad ilustrativa se describe a manera de un ejemplo bidimensional en base a una retícula hexagonal A2. Por razones de claridad, los símbolos clave relacionados a la primera modalidad ilustrativa se reúnen en la Tabla 1.
Tabla 1. Lista de símbolos relacionados al método de extensión de Voronoi de acuerdo con una primera modalidad ilustrativa de la presente invención.
Símbolo Definición Nota A2 Retícula hexagonal en dimensión 2. N Dimensión de fuente ? Retícula en dimensión N. Por ejemplo; ? = A2 con N = 2. X Vector fuente en dimensión N. y Punto reticular más cercano a x en ? n Número de libro de códigos Símbolo Definición Nota i índice de vector de código. Cuando la extensión no se aplica, i es un índice a C representado con NR bits. Con la extensión, i es un índice al libro de códigos C<r) extendido que comprende un múltiplo de j y k donde j es un índice a C y k es un índice de Voronoi que corresponde a v. En este caso, i se representa con N(R+r) bits. a Desplazamiento para codificación de Voronoi, un vector en dimensión N. r Orden de extensión, un número entero no negativo. m Factor de escala de la m = 2r extensión . c Vector de código base en C. V Vector de código de Voronoi en Computado tal que v ?. sea congruente a y.
C Libro de códigos base en ?. Comprende 2NR entradas .
Símbolo Definición Nota R Proporción de bits del libro de códigos C base en bits por dimensión . C(r) Libro de códigos extendido del Ver, ecuación 9 orden r. para definición. k índice de Voronoi en V(r) , Ver ecuación 10 representado por Nr bits. para el computo de k. Matriz generadora de ?. w Vector de diferencia w = y - v . v(r) Libro de códigos de Voronoi Ver ecuación 7 para del orden r. definición. ??(?) Región de Voronoi de ? alrededor del origen. modra Operación de módulo en un vector, si y = [yi ... y8] , entonces modm (y) = [yimod m ... a mod m] donde mod es el módulo escalar.
La Figura 5 muestra una parte de la retícula hexagonal A2 que se extiende a infinito. Se obtiene un libro de códigos, base al formar apropiadamente esta retícula para obtener un conjunto finito de puntos reticulares. Esto se ilustra en la Figura 6, donde se muestra con línea sólida un límite de formación, esférico, y en la Figura 7, donde sólo los puntos reticulares dentro del límite de formación están retenidos. Los puntos dentro del límite de formación comprenden el libro de códigos C base. Aunque se usa la formación esférica en la presente modalidad ilustrativa, se pueden usar de manera alternativa otros límites, tal como un cuadrado, una pirámide, un rectángulo, etc. En este ejemplo particular, el libro de códigos C base comprende 31 puntos reticulares, y por simplicidad, se asumirá que se usa un índice i de 5 bits para marcar este libro de códigos. Las regiones de Voronoi del libro de códigos base son las áreas hexagonales centradas alrededor de cada punto reticular mostrado con puntos (') en la Figura 8. La Figura 9 muestra un vector fuente x en un plano bidimensional . Se puede ver en este ejemplo ilustrativo que el vecino y más cercano (no mostrado) de x en la retícula no, es una entrada del libro de códigos C base. Se va a señalar que la búsqueda del vecino más cercano no se limita al libro de códigos C base; el vecino y más cercano que se define como el punto más cerrado a x en la retícula completa A2. En el caso específico de la Figura 9, y es un valor atípico. Se recuerda que un método de la técnica anterior para tratar con este valor atlpicb y va hacer poner a escala el libro de códigos por un factor dado, por ejemplo, una potencia de 2, dando por resultado el libro de códigos puesto a escala, ilustrado en la Figura 10. Sin embargo, esto incrementará la región de Voronoi, y de esta manera la distorsión granular. Para mantener la misma región de Voronoi, para mantener la granularidad en tanto que se extiende el libro de códigos para incluir el valor atípico, el libro de códigos, base se pone a escala por 2, y se inserta un libro de códigos de Voronoi alrededor de cada vector de código puesto a escala como se muestra en las Figuras 11 y 12. Este procedimiento de puesta en escala produce un libro de códigos V(1> de Voronoi en dos dimensiones que comprenden 4 puntos reticulares y que requieren 2 bits adicionales como un sobreencabezado para indexarlo. El libro de códigos Ca) , extendido, resultante se representa en la Figura 13- Como se puede ver en la Figura 13 , el vecino más cercano y de x no es más un valor atípico, puesto que corresponde al libro de códigos, extendido. Sin embargo, 5 + 2 = 7 bits ahora se requieren para describir y en el libro de códigos extendido en comparación a los 5 bits requeridos por el libro de códigos base sin ninguna extensión. Como se muestra en la Figura 14, el vector cuantificado y se puede representar como ·. y = me + v (Ec.8) donde m es el factor de puesta o ajuste a escala de extensión (aquí, m = 2) , c es un vector de código del libro de códigos C base, y v corresponde al libro de códigos de Voronoi usado para extender C. Siguiendo este último ejemplo bidimensional que ilustra un método para extender los libros de códigos de retícula para impedir la saturación, ahora se presentará un método de extensión del libro de códigos de retícula de acuerdo al primer aspecto de la presente invención con referencia a una segunda modalidad ilustrativa. Ahora se asume que se deriva un libro de códigos C base a partir de una retícula ? en la dimensión N que tiene una proporción de bits de R bits por dimensión. En otras palabras, C contiene 2NR vectores de código N-dimensionales y requiere NR bits para la indexación. La extensión incluye poner a escala el libro de códigos, base por potencias sucesivas de 2 (2, 4, 8, etc.), y enlozar un libro de códigos de Voronoi alrededor de cada punto del libro de códigos, base, puesto en escala. Por esta razón, el método de extensión se refiere en la presente como extensión de Voronoi. La extensión del libro de código C base del orden r es el libro de códigos C(r> definido como: C(r)= U mc + v (Ec.9) donde m = 2r y V(r) es un libro de códigos de Voronoi de tamaño mN = 2rN derivado de la misma retícula ? como C. El orden r de extensión define el número de veces que se ha aplicado la extensión. Los libros de códigos extendidos comprenden más vectores de código y usan en consecuencia más bits que el libro de códigos C base. La definición en la ecuación móvil implica que el libro de códigos C(r) de extensión requiere NR bits para indexar primero el libro de códigos, base y luego Nr bits para el libro de códigos de Voronoi, dando por resultado un total de N(R + r) bits más la información lateral en el orden r de extensión. La puesta en escala del libro de códigos, base por potencias sucesivas de 2 permite tener índices de Voronoi representados en un número exacto de bits (no fracciónales) . Sin embargo, en general, m puede ser cualquier número entero superior o igual a 2. Se señala que la granularidad de esta forma básica de extensión de Voronoi es 1 bit por dimensión, puesto que el incremento en la proporción de bits del libro de códigos es 1 bit por dimensión para el r-ésimo al (r+l)ésima extensión. Se va a señalar que el ejemplo previo bi-dimensional usó un libro de códigos C base específico derivado de la retícula A2. En el caso del ejemplo de la Figura 7, ? = A2, N = 2, y la proporción de bit del libro de códigos, base R = 5/2 bits por dimensión.
Ahora se describirá con referencia a la Figura 15 un método 100 de codificación de cuantificación reticular, multivelocidad de acuerdo a una primera modalidad ilustrativa de un segundo aspecto de la presente invención. Dejando que x sea un vector fuente N-dimensional que se va a cuantificar. Dejando que C denote el libro de códigos, base derivado de una retícula ?, y definir m ? como la retícula ? puesta a escala por un factor de número entero m > 0. Luego, los pasos para codificar un vector x usando C o una de sus extensiones de acuerdo al método 100 son como sigue : En el paso 102, el vecino y más cercano de x se determina en la retícula ? infinita. El paso 102 produce un vector y cuantificado . Luego, en el paso 104, se determina si y es una entrada del libro de códigos C base. Si y está en C (paso 106) , el número de bits usados para cuantificar x es de esta manera NR, que corresponde al número de bits usados por el libro de códigos, base. El número n del libro de códigos se ajusta a 0 y termina el método de codificación. Si y no está en el libro de código C base, y se considera un valor atípico y el método 100 prosigue con el paso 108, que, con los pasos 110-118, forma un método de extensión de Voronoi de acuerdo a una tercera modalidad del primer aspecto de la presente invención.
Como se analiza posteriormente en la presente, puesto que y es un valor atípico, se requieren más bits para cuantificar x con y en comparación con el caso donde y es parte del libro de códigos, base. El procedimiento de extensión, que es iterativo, genera un libro de códigos, extendido, que incluye eventualmente un vector y reticular, que entonces se pueden indexar de forma apropiada. El paso 108 es un paso de inicialización, donde el orden r de extensión se ajusta a 1 y el factor de escala m a 2r = 2. El índice k de Voronoi entonces se computa del punto reticular y (paso 110) que fue el vecino más cercano del vector x en la retícula ? obtenida en el paso 102. El índice k de Voronoi depende del orden de extensión r y el factor de escala m. El índice de Voronoi k se computa vía las siguientes operaciones de módulo tal que depende sólo de la posición relativa de y en una región de Voronoi puesta a escala y trasladada: k = moám(yG;1) (Ec.10) donde GA es la matriz generadora de ? y modm(') es la operación de módulo-m a manera de componentes. Por lo tanto, el índice k de Voronoi es un vector de números enteros con cada componente en el intervalo de 0 a m - 1. En el paso 112, el vector de código v de Voronoi se computa a partir del índice k de Voronoi dada m. Esto se puede implementar, por ejemplo, usando un algoritmo descrito en Conway (1983) . El cómputo de v se puede realizar como sigue: 1. computar z=k * G (RE8) ; 2. encontrar el vecino más cercano w de 1/m (z-a) en RE8; 3. computar v=z-m*w. En el paso 114, el vector de diferencia w = y - v se computa primero. El vector de diferencia w siempre corresponde a la retícula t?? puesta a escala. Entonces, c = w/m se computa al aplicar la puesta en escala invertida al vector de diferencia w. El vector de código c corresponde a la retícula ?, puesto que w corresponde a mA. Entonces se verifica si C está en el libro de código C base (paso 116) . Si C no está en el libro de código C base, el orden r de extensión se incrementa por 1, el factor m de puesta en escala se multiplica por 2 (paso 118) , y la extensión de Voronoi prosigue con una nueva iteración (paso 110) . Sin embargo, si c está en C, entonces se ha encontrado un orden r de extensión y un factor de puesta en escala m = 2r suficientemente grande para cuantificar el vector fuente x con y sin saturación. Entonces se indexa y como un vector de código base en j (paso 120) como en Lamblin (1988) . j y k se multiplexan en un índice i (paso 122) y el número n del libro de códigos se ajusta al orden de extensión (n = r) en el paso 124, determina el método 100 de codificación. Como es bien conocido en la técnica, la multiplexión incluye la concatenación de j y k, que significa que los bits de j se siguen por los bits de k. El resultado del método de cuantificación consiste del número n del libro de códigos y el índice i del vector y de código. Si se usa la extensión de Voronoi, n > 0. De otro modo N = 0. El índice i es : • el índice de y = c en el libro de códigos, base, si no se usa la extensión de Voronoi. • el múltiplo de j y k, donde j es el índice de c en el libro de códigos C y k es el índice de Voronoi que corresponde al vector v. Se va a señalar que en la ecuación 10, el índice k de Voronoi se define como k = modm ( GA_1) , donde m = 2r. Puesto que y es un punto reticular en ?, yG^1 corresponde realmente a la expansión base de y en ? y en consecuencia es un vector N dimensional de números enteros. Por lo tanto, k también es un vector de N números enteros, y debido a la operación de módulo a manera de componentes, modm cada componente de k es un número entero entre 0 y m - 1. Puesto que m = 2r, por construcción k requiere un total de Nr bits para indexar todos sus N componentes . El método 100 de cuantificación se termina al definir la codificación sin pérdida del número n del libro de códigos y el libro i para obtener nE e iE que se van a multiplexar, y almacenar o transmitir sobre un canal de comunicación como se ilustró en la Figura 2. En general, la salida de un cuantificador vectorial multivelocidad consiste de un número n del libro de códigos y un índice i que pueden exhibir ambos redundancia estadística. Sin limitar el alcance o generalidad de la presente invención, se afronta aquí sólo la codificación de entropía del número n del libro de códigos para reducir la proporción promedio de bits del cuantificador, en tanto que no se aplica codificación al índice i que da iE = i. Se puede emplear cualquier técnica apropiada de codificación sin pérdida de la técnica anterior, tal como codificación aritmética o codificación de Huffman (Gersho, 1992) , para n. Un método de codificación simple es el código unario, en el cual se representa un número entero n positivo en forma binaria por n - 1 unos, seguido por cero. Este esquema de codificación se describirá posiblemente en la presente en más detalle. Regresando ahora en la Figura 16 de las Figuras anexas, se describirá ahora un método 200 de descodificación de cuantificación reticular multivelocidad de acuerdo con una modalidad ilustrativa de un cuarto aspecto de la presente invención. El número nE codificado del libro de códigos se lee primero del canal y la técnica de codificación sin pérdida usada en el método 100 se invierte para tener el número n del libro de códigos (paso 202) . Es importante señalar que n indica la asignación de bits del cuantificador multi -velocidad y se requiere para desmultiplexar el índice i de cuantificación en el paso 204. Si n=0 (paso 206) , no se usa la extensión de Voronoi . En este caso, el índice i se descodifica para formar el vector de código c del libro de códigos C base (paso 208) usando una técnica anterior tal como se describe en (Lamblin, 1988), (Moureaux, 1998) o (Rault, 2001). El vector cuantificado entonces se reconstruye simplemente como y = c. Si n > 0 (paso 206) , se usa la extensión de Voronoi. El orden de extensión y el factor de escala se ajustan a r = n y m = 2r (paso 210) , respectivamente. Los índices j y k se desmultiplexan (paso 212) . El índice j se descodifica en c en el libro de códigos C (base 214) , en tanto que k se descodifica en v en el libro de códigos Vír) de Voronoi (paso 216) . El vector cuantificado se reconstruye en el paso 218 como y = me + v (Ec. 11) Se va a señalar que el método de extensión usado en la modalidad ilustrativa de la presente invención se requiere sólo si el punto reticular más cercano y al vector x que se va a cuantificar está fuera del libro de códigos, base. En consecuencia, esta extensión impide la saturación con la condición que exista suficiente memoria (número de bits disponible) . Es importante señalar que el libro de códigos extendido alcanza adicionalmente el espacio N-dimensional, en tanto que tiene la misma granularidad reticular como el libro de códigos base (ver, por ejemplo la Figura 5) . Sin embargo, se requieren más bits cuando se usa la extensión. En algunos casos, el cuantificador puede quedarse sin bits sin que sea capaz de capturar el vector fuente x. En otras palabras, el número de bits disponible para cuantificar el vector x puede ser más pequeño que el número de bits requeridos para el índice i del vector de código y el número n del libro de códigos. En este caso, no se restringe el error de cuantificación por la estructura granular del libro de códigos, base, pero puede presentarse un mayor error. Esto ocurre típicamente con un valor atípico muy grande . Se pueden implementar varias estrategias para manejar los valores atípicos, tal como la reducción en escala del vector fuente x antes de la cuantificación multi-velocidad. El factor a escala aplicado en x se puede variar de una manera tal que no exista desborde del balance de bits. Para valores atípicos x arbitrarios, la complejidad de la extensión como se describe previamente es ilimitada, debido a que la extensión siempre inicia con r = 0 e incrementa r por 1 en cada iteración, independientemente de x. Sin embargo, en la práctica, el orden r de extensión se limita debido al tamaño asignado a los números enteros en la plataforma de implementación, por ejemplo, 16 para números enteros pero sin signo de 16 bits. Esta limitación se refiere al valor máximo de los componentes del índice k de Voronoi . Se ha encontrado preferible que todos los puntos reticulares sean entradas de ya sea el libro de códigos C base o una de sus extensiones Ctr) para r = 1, 2, ... . De otra manera, son imposibles de indexar algunos de los puntos reticulares. Por ejemplo, un libro de códigos C base designado por formación casi esférica centrado alrededor del origen cumple con esta condición. También, la mayoría de los libros de códigos obtenidos al formar (truncar) una retícula con una región centrada (convexa) cumplen con esta condición . Ahora se describirán métodos de codificación y descodificación de cuantificación reticular multivelocidad de acuerdo a las terceras modalidades de respectivamente el segundo y el tercer aspectos de la presente invención. Estas tres modalidades de la presente invención se basan en la retícula RE8 analizada anteriormente en la presente . Las modalidades ilustrativas previas de los métodos de codificación y descodificación de cuantificación multi-velocidad de acuerdo con la invención se basaron en un libro de códigos base individual derivado de una retícula ? que se extendió con una granularidad de proporción de bits de un bit por dimensión. En particular, el método de extensión usado se adapta para extender varios libros de códigos, base, casi esféricos para obtener una granularidad de proporción de 1/2 bit por dimensión, 4 bits en la dimensión 8. Para propósitos de claridad, los símbolos clave relacionados a los métodos de cuantificación reticular, multi-velocidad de 8-dimensionales se reúnen en la tabla 2.
Tabla 2. Lista de símbolos relacionados al método de cuantificación reticular multivelocidad 8-dimensional de acuerdo con la tercera modalidad ilustrativa de la invención .
Símbolo Definición Nota RE8 Retícula de Gosset en dimensión 8.
Símbolo Definición Nota X Vector fuente en dimensión 8. y Punto reticular más cercano El índice de y es i. a x en RE8. El dispositivo de cuantificación produce y como el vector cuantificado con la condición de que sea suficiente el balance de bits. n Número del libro de códigos restringido al conjunto {0, 2 , 3 4 5/ ...} . Qn Libro de códigos de Qn se indexa con 4n retícula en RE8 de índice bits n. Hay dos categorías de libros de código Qn: 1) los libros de códigos Q0, Q2, Q3 y Q4 base y 2) los libros de códigos Qn extendidos para n > 4.
Símbolo Definición Nota i índice de punto reticular y El índice i se en un libro de códigos Qn. representa con 4n Si se usa la extensión de bits . Voronoi (n > 4) , el índice i es un múltiplo de los índices j y k. El índice j corresponde a un punto reticular c en Q3 y Q4, en tanto que el índice k es un índice de Voronoi . Para n < 4, i es un índice en un libro de códigos base. a Desplazamiento para a = [20000000] codificación de Voronoi, un vector 8 -dimensional . r Orden de extensión, un número entero no negativo. m Factor de escala de la m = 2r extensión . c Vector de código base en RE8 j índice de vector de código base c Símbolo Definición Nota V Vector de código de Voronoi El índice de v es k en RE8. Ya Guía absoluta, ya = [yal ... ya8] · Identificador de la guía 0 < k8 < el número de absoluta ya. guías absolutas. Los libros de código base se especifican en términos de guías absolutas (ver Tabla 3) . Para la guía absoluta ya, el identificador ka se puede computar como sigue: • Computar s = (yai4 +—+ ya84)/8. • Encontrar la entrada s en la Tabla 4 que da ka. k índice de vector de código Ver ecuación 10 para v de Voronoi o índice de una definición en Voronoi . general , donde ? = RE8 y G l como en la ecuación 4.
Como se explicará posiblemente en la presente en más detalle, el método de codificación de acuerdo a la tercera modalidad ilustrativa del segundo aspecto de la presente invención incluye tomar un vector fuente x 8- dimensional como una entrada y producir un índice i y un número n del libro de códigos. El número n del libro de códigos identifica un libro de códigos RE8 específico denotado por Qn que es, cada Qn es un subconjunto de la retícula RE8- La proporción de bits del libro de códigos de Qn es 4n/8 bits por dimensión. El número de bits en el índice i es de esta manera 4n. El descodificador usa los mismos libros de código Qn muítivelocidad como el codificador, y reconstruye simplemente el punto reticular i a partir del índice i y el número n del libro de códigos. De acuerdo a la tercera modalidad ilustrativa, n se permite que sea cualquier número entero no negativo excepto unidad, tomando su valor en el conjunto {O, 2, 3, 4, 5, 6, ...} . El caso n=l no es ventajoso puesto que corresponde a una asignación de bits de 4 bits en la dimensión 8. En cambio, a esta baja proporción de bits, no es muy eficiente la cuantificación reticular, y usualmente es mejor en el contexto de la codificación por transformada para usar en cambio una técnica de compensación de ruido. De acuerdo a esta tercera modalidad ilustrativa, los libros de código multi-velocidad se dividen en dos categorías . Los libros de códigos Q0, Q2, Q3 y QÍ base de baja proporción, que son libros de códigos, reticulares, casi esféricos, clásicos. En el caso donde se implemente el método en un dispositivo, estos libros de códigos se hacen disponibles usando tablas almacenadas en una memoria o codificadas por escrito en el dispositivo. Se señala que en la modalidad ilustrativa, se incrustan los libros de código Q2 y Q3 es decir, Q2 es un conjunto de Q3. Los libros de código Qn extendidos de alta proporción para n > 4 que se construyen virtualmente en el dispositivo al aplicar un método de extensión de Voronoi de acuerdo a la presente invención, de manera alternativa Q3 y Q4 tal que Q5 se genera como la extensión de primera orden de Q3, Q6 se genera como la extensión de primer orden de Q , Q7 se genera como la extensión de segunda orden de Q3, etc. De manera más general, como se ilustra en la Figura 17, el libro de códigos Qn- extendido para n' = n + 2r > 4 se genera como la r-ésima extensión de orden de Qn tal que n = 3 para n' impares y n = 4 para n' pares.
La separación entre los libros de código extendidos de baja y alta proporción permite un compromiso entre la calidad (desempeño) y la complejidad. Por ejemplo, estableciendo, por ejemplo, la separación en Q5 producirá mayores tablas de indexación, en tanto que estableciendo la separación en Q3 provocará la degradación de la calidad pero la reducción de la complejidad. La tabla 3 define la correlación de las guías absolutas para Q0, Q2 y Q4. Esta correlación permite especificar los libros de código, base de forma inambigua. Se señala que las restricciones de signo asociadas a estas guías no aparecen en la tabla, sino que se cree que están dentro del alcance de una persona que tenga habilidad en la técnica para encontrarlas a partir de las propiedades de RE8 (Lamblin, 1988) .
Tabla 3. Lista de guías absolutas en RE8 que definen los libros de códigos Q0, Q2, Q3 y Q4 base de acuerdo con la tercera modalidad ilustrativa de un tercer aspecto de la presente invención.
Guía absoluta Qo Q2 Q3 Q4 0, 0, 0, 0, 0, 0, 0, 0, X 1, 1, 1, 1, 1, 1, 1, 1, X X 2, 2, 0, 0, 0, 0, 0, 0, X X 50 La separación entre los libros de código extendidos de baja y alta proporción permite un compromiso entre la calidad (desempeño) y la complejidad. Por ejemplo, estableciendo, por ejemplo, la separación en Q5 producirá mayores tablas de indexación, en tanto que estableciendo la separación en Q3 provocará la degradación de la calidad pero la reducción de la complejidad. La tabla 3 define la correlación de las guías absolutas para Q0, Q2 Y Q4 · Esta correlación permite especificar los libros de código, base de forma inambigua. Se señala que las restricciones de signo asociadas a estas guías no aparecen en la tabla, sino que se cree que están dentro del alcance de una persona que tenga habilidad en la técnica para encontrarlas a partir de las propiedades de RE8 (Lamblin, 1988) .
Tabla 3. Lista de guías absolutas en RE8 que definen los libros de códigos Q0, Q2, C y h base de acuerdo con la tercera modalidad ilustrativa de un tercer aspecto de la presente invención.
Guía absoluta Qo Q2 Q3 Q4 0, 0, 0, 0, 0, 0, 0, 0, X 1, 1, 1, 1, 1, 1, 1, 1, X X 2, 2, 0, 0, 0, 0, 0, 0, X X 51 Guía absoluta Qo Q2 Q3 Q4 2, 2, 2, 2, 0, 0, 0, 0, X 3, 1, 1, 1, 1, 1, 1, 1, X 4, 0, 0, 0, 0, 0, 0, 0, X X 2, 2, 2, 2, 2, 2, 0, 0, X 3, 3, 1, 1, 1, 1, 1, 1, X 4, 2, 2, 0, 0, 0, 0, 0, X 2, 2, 2, 2, 2, 2, 2, 2, X 3, 3, 3, 1, 1, 1, 1, 1, X 4, 2, 2, 2, 2, 0, 0, 0, X 4, 4, 0, 0, 0, 0, 0, 0, X 5, 1, 1, 1, 1, 1, 1, 1, X 3, 3, 3, 3, 1, 1, 1, 1, X 4, 2, 2, 2, 2, 2, 2, 0, X 4, 4, 2, 2, 0, 0, 0, 0, X 5, 3, 1, 1, 1, 1, 1, 1, X 6, 2, 0, 0, 0, 0, 0, 0, X 4, 4, 4, 0, 0, 0, 0, 0, X 6, 2, 2, 2, 0, 0, 0, 0, X 6, 4, 2, 0, 0, 0, 0, 0, X 7, 1, 1, 1, 1, 1, 1, 1, X 8, 0, 0, 0, 0, 0, 0, 0, X 6, 6, 0, 0, 0, 0, 0, 0, X 8, 2, 2, 0, 0, 0, 0, 0, X 52 Adicionalmente , el desplazamiento a 8 -dimensional que define la formación de Voronoi se establece como a = [200000000] . Ahora se describirá en más detalle con referencia a la Figura 18 el método 300 de codificación reticular mult ivelocidad de acuerdo con una tercera modalidad del segundo aspecto de la invención. Proporcionando x que es un vector fuente que se va a cuantificar en la dimensión 8. Con el paso 302, el método prosigue primero al encontrar el vecino más cercano y de la entrada x 8 -dimensional en la retícula infinita RE8. Luego, en el paso 304, se hace la verificación en cuanto a si y es 53 una entrada de un libro de códigos Q0, Q2, Q3 ó Q4 base. Esta verificación produce un número n del libro de códigos y un identificador ka si n > 0. Los detalles de esta verificación se proporcionarán posteriormente en la presente. El número n del libro de códigos en esta etapa se toma en el conjunto {O, 2, 3, 4, fuera}. El valor fuera es un número entero ajustado arbitrariamente a fuera = 100. El valor n = fuera se usa para indicar que se ha detectado un valor atípico, queriendo decir que el punto reticular y no es una entrada en ninguno de los libro de códigos, base. Entonces hay dos casos : • si n < 4 (paso 304) , la codificación se termina en el paso 306. Si n = 0 (paso 306), y es el vector cero y se termina la codificación. Si n = 2, 3 ó 4, entonces la información adicional ka identifica una de las guías absolutas que definen Qn. El vector y se indexa en Qn dado ka como se explicará posteriormente en la presente en más detalle . • si n = fuera (paso 304), se aplica un método de extensión de Voronoi de acuerdo a la presente invención. El primer paso (308) del método de extensión es iniciar los parámetros de la extensión, y luego iterar el algoritmo de extensión de Voronoi como se describe posteriormente en la presente, hasta que y se incluya en un libro de códigos, extendido. 54 En la segunda modalidad de los métodos de codificación y descodificación, vectorial, reticular, multivelocidad, la extensión de Voronoi se itera al incrementar el orden r de extensión hasta que se alcance y. Esto puede producir una complejidad limitada. A fin de restringir la complejidad en el peor caso, se ha encontrado ventajoso usar un máximo de dos iteraciones para la extensión de Voronoi . En el paso de inicialización del método de extensión, el orden r de extensión y el factor de escala m de extensión se ajustan a algunos valores iniciales dado el vector reticular y = [yi ... ya] para reducir el mínimo el número de iteraciones sobre r. El contador de iteración ter se ajusta a cero. La pre-selección de r y m se implementa como sigue. Primero, el valor de punto flotante s = (yi2+ ... +ye2)/32 se computa, r=l se establece y m=2r=2. En tanto que s iterar s, r y m al actualizar s:=s/4, r:= r + 1 y m:= 2 m. El fundamento de este procedimiento se justifica por las siguientes dos observaciones: • Cuando se mueve desde la r -ésima extensión de orden a la (r+1) -ésima extensión, los libros de códigos Q3 y Q4 base se multiplican por m = 2r+1 en lugar de m = 2r. La norma cuadrada de los vectores de código base puestos a escala se multiplica por 4 después la (r + 1) -ésima 55 extensión en comparación a la r-ésima extensión. Esto explica el factor 1/4 aplicado a s después de cada iteración sobre r. • La unión de los libros de código Q0 u Q2 u Q3 Q4 base comprende puntos reticulares en las envolturas 0 a 32 de RE8. Se puede verificar que la envoltura completa más exterior en Q0 Q2 ^ Q3 <J Q4 es la envoltura 5. La constante 11 en la condición de terminación s > 11 se ha seleccionado de forma experimental entre 5 y 32. Una alternativa a este procedimiento de inicialización consiste en computar directamente cuantas veces s entre en 11 y luego establecer r y m por consiguiente. El resultado será naturalmente idéntico al procedimiento iterativo descrito previamente. Si iter = 2 (paso 310) , el método sale del circuito que comprende los pasos 310-326. En el paso 312, el índice k de Voronoi del punto reticular y se computa dado m usando aritmética modular. El índice k de Voronoi depende del orden r de extensión y el factor m de escala. En el caso particular de la retícula RE8, el índice de Voronoi se calcula como sigue: k = moám(yGH-¡^) donde GRE8 es la matriz generadora definida en la Ecuación 4, y modm(') es la operación de módulo-m a manera de componentes. Por lo tanto, el índice k de Voronoi es un 56 vector de 8 enteros, cada componente que está entre 0 y m-1. Por construcción, k requiere de esta manera un total de 8r bits para indexar todos los componentes. El vector de código v de Voronoi se computa a partir del índice k de Voronoi dado m (paso 314) . El algoritmo descrito en (Conway, 1983) se puede usar para este propósito. El vector de diferencia w = y - v se computa (paso 316) . Este vector w de diferencia es un punto en la retícula mRE8. c = w/m puesta a escala entonces se computa (paso 316) , es decir, la puesta en escala invertida se aplica al vector de diferencia w. El punto c corresponde a la retícula RE8 puesto que w corresponde a mRE8. El método de extensión prosigue con la verificación en cuanto a si c es una entrada de los libros de códigos Q2, C ó Q4 base (paso 318) . Esta verificación produce un número n del libro de códigos y también un identificador ka. Los detalles de la verificación se explicarán posteriormente en la presente en más detalle. Con los libros de códigos, base, multi-velocidad, descritos, c no puede estar en Q0 en esta etapa. Como resultado, el valor real de n puede ser ya se 2, 3, 4 ó fuera. Si n fuera, el orden r de extensión se incrementa por uno y la escala m de extensión de multiplica por 2 (paso 320) . 57 Si c es una entrada de Q2, también es una entrada de Q3 debido a que Q2 está incrustado en Q3 (Q2 c Q3) . Por lo tanto, si n = 2, n se ajusta a n = 3 (paso 322) . Un orden r de extensión y el factor de escala m = 2r suficientemente grande para cuantificar el vector fuente x sin que se presente la saturación cuando n = 3 ó n = 4. El número n del libro de códigos se actualiza para incorporar el orden r de extensión. Esto se logra al adicionar 2r a n (paso 322). c, ka y k entonces se salvan en una memoria (paso 324) y el orden r de extensión se disminuye por uno y el factor de escala m se divide por 2 (paso 326) . El incremento del contador de iteración iter se incrementa por uno (paso 328) , antes del comienzo de una nueva iteración (paso 310) . Cuando se termina el circuito después de dos iteraciones, los parámetros que caracterizan a la extensión se recuperan de la memoria (paso 330) que contiene los siguientes valores: • El vector c computado en el paso 316 que es una entrada de Q3 ó Q ; • El índice k de Voronoi computado en el paso 312. Se va a señalar que el índice k de Voronoi es un vector 8-dimensional , donde cada componente es un número entero entre 0 y m-1 y se puede indexar por r bits; · El identificador ka computado como un producto 58 lateral del paso 318; y • El número n de libro de códigos que incorpora el orden r de extensión como se computa en el paso 320. El Indice j de c se computa en el paso 332. Este índice se multiplexa con el índice k. de Voronoi para formar el índice i (paso 334) . Para terminar la codificación, el número n de libro de códigos se somete a la codificación sin pérdida como se describirá posteriormente y se multiplexa con el índice i para el almacenamiento o transmisión sobre un canal . Se va a señalar que el método 300 de codificación asume que está disponible suficiente memoria para caracterizar el vector fuente x con el punto reticular y. Por lo tanto, se aplica de manera preferente el método 300 de codificación de cuantificación multivelocidad de una manera en forma de ganancia al reducir en escala el vector fuente x como x/g antes de aplicar el método 300. El parámetro escalar g > 1 se determina para evitar una invasión en la memoria, y se cuantifica de forma separada usando un medio de la técnica anterior. Sin embargo, si se presenta la invasión de la memoria cuando se falla en elegir apropiadamente g, por omisión n se ajusta a cero y la reconstrucción y llega hacer un vector cero. La técnica de selección y cuantificación de g no se detalla en la presente puesto que depende de la aplicación real. 59 Adicionalmente, asumiendo que se implementa el método 300 en una plataforma del programa de cómputo donde los componentes del índice k de Voronoi se representan con números enteros de 16 bits, el valor máximo de r es r = 16 que da por resultado el valor máximo n = 4 + 2 x l6 = 36 para el número de libro de códigos. Los métodos para encontrar el identificador de una guía absoluta en los libros de códigos, base, y para verificar si un punto reticular está en un libro de códigos base (pasos 304 y 308) se explicará ahora en más detalle. De acuerdo a este método de la técnica anterior, para verificar si un punto reticular y es una entrada en un libro de códigos Q2, Q3 ó Q4, reticular, casi-esférico, los valores absolutos de los componentes de y se reordenan en orden descendente y se comparan directamente componente por componente con las guías absolutas que definen los libros de códigos (ver, por ejemplo, Lamblin 1988) . El método de acuerdo a la presente invención se basa en el uso del identificador ka. Este método se describe posteriormente en tres pasos: 1) Computar el valor s a partir de y. Escribir y a manera de componentes como y = [yi ... y8] , este valor se computa como s = (yi4 + ... ya4)/8 (Ec. 12) 2) Los valores de s computados para las guías 60 absolutas y que definen los libros de códigos base difieren todos entre sí. Además, todas las permutaciones con signo válidas de y darán por resultado el mismo valor s. Como consecuencia, el valor s se refiere a que como una clave, puesto que identifica de forma única una guía absoluta y todas las permutaciones relacionadas con signo. 3) Establecimiento de ka a valor 36 si s = 0, y es un vector cero. De otro modo, la búsqueda de la llave s en una tabla de correlación que traduzca s en el identificador ka que puede lograr valores de números enteros entre 0 y 37. La Tabla 4 da esta correlación que se puede computar fácilmente a partir de la Tabla 3. Si la llave s es una entrada de la Tabla 4, el identificador ka es un número entero entre 0 y 36 (ver Tabla 4) . De otra manera, y se declara un valor atípico al ajustar ka a 37.
Tabla 4. Lista de identificadores ka para las guías absolutas en RE8 que definen los libros de códigos Q2, Q3 y Q4 base.
Identificador Llave en Guía absoluta ka hexadecimal S 0 0001 1, 1, 1, 1, 1, 1, 1, 1 1 0004 2, 2, 0, 0, 0, 0, 0, 0 2 0008 2, 2, 2, 2, 0, 0, 0, 0 61 Identificador Llave en Guía absoluta hexadecimal S 3 000B 3, 1, 1, 1, 1, 1, 1, 1 4 0020 4, 0, 0, 0, 0, 0, 0, 0 5 OOOC 2, 2, 2, 2, 2, 2, 0, 0 6 0015 3, 3, 1, 1, 1, 1, 1, 1 7 0024 4, 2, 2, 0, 0, 0, 0, 0 8 0010 2, 2, 2, 2, 2, 2, 2/ 2 9 001F 3, 3, 3, 1, 1, 1, 1, 1 10 0028 4, 2, 2, 2, 2, 0, 0, 0 11 0040 4, 4, 0, 0, 0, 0, 0, 0 12 004F 5, 1, 1, 1, 1, 1, 1, 1 13 0029 3, 3, 3, 3, 1, 1, 1, 1 14 002C 4, 2, 2, 2, 2, 2, 2, 0 15 004 4, 4, 2, 2, 0, 0, 0, 0 16 0059 5, 3, 1, 1, 1, 1, 1, 1 17 00A4 6, 2, 0, 0, 0, 0, 0, 0 18 0060 4, 4, 4, 0, 0, 0, 0, 0 19 00A8 6, 2, 2, 2, 0, 0, 0, 0 20 00C4 6, 4, 2, 0, 0, 0, 0, 0 21 012D 7, 1, 1, 1, 1, 1, 1, 1 22 0200 8, 0, 0, 0, 0, 0, 0, 0 23 0144 6, 6, 0, 0, 0, 0, 0, 0 24 0204 8, 2, 2, 0, 0, 0, 0, 0 62 Se va a señalar que la última columna a la derecha en la Tabla 4 es sólo informativa y define sin ambigüedad la correlación entre el identificador ka y la guía absoluta relacionada . En esta etapa, el identificador verifica 0 < ka < 37. En realidad, si 0 < Ka < 36, y es ya sea Q2, Q3 ó Q4. Si ka = 36, y está en Q0. Si ka = 37, y no está en ninguno de los libros de códigos, base. El identificador ka entonces se correlaciona al número n del libro de códigos con la Tabla 5. 63 Tabla 5. Tabla de correlación para traducir el identificador ka de guías absolutas en un número n del libro de códigos, base de acuerdo con la presente invención. Número n de Número n de Identificador Identificador libro de libro de ka ka códigos códigos 0 2 19 4 1 2 20 4 2 3 21 4 3 3 22 3 4 2 23 4 5 4 24 4 6 4 25 4 7 3 26 4 8 4 27 4 9 4 28 4 10 4 29 4 11 3 30 4 12 4 31 4 13 4 32 4 14 4 33 4 15 4 34 4 16 4 35 4 17 3 36 0 18 4 37 fuera = 100 64 El método para indexar en los libros de códigos Q2, Q3 y Q4 base en base al identificador de la guía absoluta (pasos 306 y 332) ahora se describirá en más detalle. El índice de una entrada y en los libros de códigos Q2, Q3 y Q4 base se computa usando una técnica de indexación de la técnica anterior para libros de códigos casi-esféricos como se describen en Lamblin (1988) . Para ser más preciso, el índice de y, por ejemplo j, se computa como sigue: j = desplazamiento de cardinalidad + clasificación de permutación. La clasificación de permutación se computa de acuerdo a la fórmula de Schalkwijk, que es bien conocida en la técnica y esta descrita en (Lamblin, 1988) . El desplazamiento de cardinalidad se encuentra por búsqueda en tabla después de computar la guía con signo por y. Esta búsqueda en tabla se basa en el" identificador ka de la guía absoluta relacionada. De acuerdo a las modalidades ilustrativas de la invención, el número n del libro de código se codifica usando un código binario de longitud variable, bien conocido en la técnica como un código unario, en base a la siguiente correlación . Qo 0 Q2 10 Q3 "> 110 65 Q5 -> 11110 El lado derecho de la correlación anterior da nE en representación binaria que se va a multiplexar con el índice i del vector de código. Además, cuando se usa la extensión de Voronoi (cuando n > 4) el índice i de vector de código comprende dos subíndices multiplexados conjuntamente: • el índice j del libro de códigos, base de 12 bits por n impar y 16 bits para n par; y · el índice k de Voronoi de 8r bits, que comprende ocho números enteros de r bits como sus componentes. La estructura i se ilustra en la Figura 19(a) para 2 < n < 4, en tanto que la Figura 19(a) considera el caso n > 4. Se va a señalar que los bits multiplexados se pueden permutar de cualquier manera dentro del bloque completo de 4n bits. Ahora se describirá en más detalle con referencia a la Figura 20 en método 400 de descodificación reticular multi-velocidad de acuerdo con una tercera modalidad del tercer aspecto de la invención. El número nE codificado del libro de códigos se lee primero a partir del canal y se descodifica para obtener el número n del libro de códigos (paso 402) . El número n de libro de códigos se recupera a partir de nE al invertir la correlación descrita en el método 300. Luego, el 66 descodificador interpreta el índice i del vector de código y de forma diferente dependiendo del número n del libro de códigos . Si n = 0 (paso 404), y se reconstruye como un vector cero que es la única entrada del libro de códigos Q0 base (paso 406) . Si 0 < n < 4 (paso 404) , el índice i del vector de códigos de tamaño 4n bits del canal se desmultiplexa (paso 408) . Entonces, i se descodifica como un índice de un libro de códigos Q2, Q3 ó Q4 base y y se reconstruye usando técnicas anteriores (paso 410) tal como aquellas descritas en Lamblin (1988) Moureaux (1998) y Rault (2001) . Un valor n > 4 en el paso 404 indica que se emplea la extensión de Voronoi . El índice i del vector de código de tamaño 4n bits del canal (paso 408) se desmultiplexa como el índice j del libro de códigos base y el índice k de Voronoi de i (paso 412) . El orden r de extensión también se recupera y de este modo se pone a una escala por un factor m a partir de n (paso 414) . El valor de r se obtiene como un cociente de (n-3)/2, y m=2r. Entonces 2r se sustrae de n para identificar ya sea Q3 ó Q4, y el índice j se descodifica en c usando el valor sustraído de n (paso 416) . La codificación de j se basa en el método de la técnica anterior que comprende la descodificación por clasificación y las búsquedas en tablas como se describe en Lamblin (1988) , 67 Moureaux (1998) y Rault (2001) . El índice k de Voronoi se descodifica en v (paso 418) en base a m usando el algoritmo de la técnica anterior descrito en (Conway, 1983) . Finalmente, en el paso 420, el descodificador computa la reconstrucción como y = me + v, donde m = 2r es el factor de puesto en escala de extensión, c es un vector de código del libro de códigos, base y v es un vector de código del libro de códigos de Voronoi. Cuando r = 0, no se usa extensión, y v es un vector cero y m llega hacer uno. Aunque la presente invención se ha descrito anteriormente en la presente a manera de modalidades ilustrativas de la misma, se puede modificar sin apartarse del espíritu y naturaleza de la presente invención, como se define en las reivindicaciones anexas.

Claims (39)

  1. 68 REIVINDICACIONES 1 Un método de codificación de cuantificación reticular multivelocidad, caracterizado porque comprende: i) proporcionar un vector fuente x que representa un cuadro de una señal fuente; ii) proporcionar un libro de códigos C base derivado de una retícula ?; iii) asociar a x un punto reticular y en la retícula ?; iv) si y se incluye en el libro de códigos C base, entonces indexar y en el libro de códigos C base produciendo índices de cuantificación, y terminar el método, sino entonces , v) extender el libro de códigos, base, reduciendo un libro de códigos extendido; vi) asociar a y un vector de códigos c del libro de códigos extendido; y vii) indexar y en el libro de códigos extendido produciendo índices de cuantificación .
  2. 2. Un método de conformidad con la reivindicación 1, caracterizado porque el libro de códigos extendido se representa por la expresión mC + V, en donde C es el libro de códigos base, V es un conjunto apropiado de puntos en la retícula ?.
  3. 3. Un método de conformidad con la reivindicación 69 1, caracterizado porque en iii) el punto reticular y en la retícula ? se selecciona como el vecino más cercano de x en la retícula ?.
  4. 4. Un método de conformidad con la reivindicación 1, caracterizado porque el paso v) incluye proporcionar un factor de escala de número entero m>= 2; el paso vi) incluye computar un vector de código v de Voronoi que corresponde al punto reticular y usando m y proporcionando un desplazamiento; y vi) incluye computar el vector de código c usando v y m.
  5. 5. Un método de conformidad con la reivindicación 4, caracterizado porque en el paso de v) el factor de escala m se ajusta a 2r y el paso v) incluye además computar un índice de Voronoi k; el paso i) incluye computar un vector de código v de Voronoi que corresponde al punto reticular y usando k y m.
  6. 6. Un método de conformidad con la reivindicación 4, caracterizado porque en vi) el vector de código c se computa como c = (y - v) /m, en donde en m es un número entero mayor o igual a 2.
  7. 7. Un método de conformidad con la reivindicación 4, caracterizado porque el paso de vi) incluye además verificar si c está en el libro de códigos C base, entonces. a) El paso de vii) incluye además indexar y como un vector de código base y multiplexar j y k produciendo 70 índices de cuantificación, donde j es el índice de c en el libro de códigos C base y A: es el índice de Voronoi que corresponde al vector v; sino entonces b) incrementar el factor de escala y el orden de la extensión de Voronoi y repetir los pasos v) a vi) .
  8. 8. Un método de conformidad con la reivindicación 4, caracterizado porque comprende además en vii) definir la codificación sin pérdida del número del libro de códigos que corresponde al orden r de extensión y al índice i del vector de código y en el libro de códigos base, produciendo un número nE del libro de códigos, codificado y un índice iE codificado; y multiplexar nE e iE.
  9. 9. Un método de conformidad con la reivindicación 1, caracterizado porque además comprende: vii) almacenar los índices de cuantificación en el medio de almacenamiento .
  10. 10. Un método de conformidad con la reivindicación 1, caracterizado porque además comprende: vii) transmitir los índices de cuantificación sobre un canal de comunicación.
  11. 11. Un método de codificación de cuantificación reticular multivelocidad caracterizado porque comprende: proporcionar un vector fuente x que representa un cuadro de una señal fuente; proporcionar subconjuntos finitos C y V de una 71 retícula infinita L de puntos; asociar x con y, y que es uno de los puntos en la retícula L; y indexar y en un número n entero del libro de códigos y un índice i como y = me + v, en donde c es un elemento de C, v es un elemento de V, y m es un número entero mayor o igual a dos; en donde los subconj untos C y V de la retícula L, el valor de ?7 y el tamaño de i que se definen de forma única de n.
  12. 12. Un método de conformidad con la reivindicación 11, caracterizado porque n se representa por un código unario .
  13. 13. Un método de conformidad con la reivindicación 11, caracterizado porque el subconj unto V de una retícula infinita L es un libro de códigos de Voronoi y el índice de v es un índice de Voronoi.
  14. 14. Un método de conformidad con la reivindicación 11, caracterizado porque el índice i es la concatenación de un índice de c y un índice de v.
  15. 15. Un método de conformidad con la reivindicación 11, caracterizado porque y = [0 ... 0] y n se ajusta a un valor predeterminado cuando un número de bits asignados disponibles en la implementacion del método no es suficiente para representar el vector fuente x en la retícula infinita L.
  16. 16. Un método de conformidad con la reivindicación 11, caracterizado porque m = 2r; el subconjunto C que se predetermina; el número n de libro de códigos que es igual a r más un número entero predeterminado; r que es un número entero mayor o igual 1.
  17. 17. Un método de codificación de cuantificación reticular multivelocidad caracterizado porque comprende: i) proporcionar un vector fuente x de 8 -dimensión que representa un cuadro de una señal fuente; ii) proporcionar libros de códigos Q0, Q2, Q3 y Q4 base, reticulares, de baja proporción derivados de una retícula RE&; iii) determinar un punto reticular y en la retícula RE8 que es el vecino más cercano de x en la retícula REe; iv) si y se incluye en Qz, donde z es igual a 0, 2, 3 ó 4, entonces a) memorizar el número z y un identificador ka que identifica una de las guías absolutas que define Qz, b) si Z > 0 entonces bl ) indexar y en Qz produciendo índices de cuantificación, si m = 0 entonces b2) y se transfiere como un vector cero, y c) terminar el método; v) proporcionar un orden r, de extensión y establecer un factor de escala m a 2r; vi) ajustar un número de interacción i er = 0; 73 vii) computar un índice de Voronoi k del punto reticular y; viii) computar un vector de código v de Voronoi que corresponde al punto reticular y usando k y ; ix) computar un vector código c como c = (y-v) /m,- x) si c se incluye en Qz, en donde z es igual a 2, 3, o 4, entonces aa) proporcionar z y ka; si n = 2, establecer n = 3; incrementar n por 2r; almacenar los valores de k, c, z y ka; dividir m por 2; disminuir r desde 1; si no, entonces bb) multiplicar m por 2; incrementar r por 1; xi) incrementar el número de iteración por 1; xii) si el número de iteración = 2 entonces aaa) recuperar el valor de k, c, z y ka; indexar j de s en Q3 o en Q4 dado ka; multiplexar j y k para formar el índice i; en donde 1 es el índice del vector de código y y j es el índice de c; si no entonces bbb) repetir los pasos de vii) a xii) .
  18. 18. Un método de conformidad con la reivindicación 17, caracterizado porque en vii) k se computa como que es: k = modm(yGJí¡,i) donde GREa es una matriz generadora definida como 74 y modm ( . ) es la operación por modulo m-competente .
  19. 19. Un método de conformidad con la reivindicación 17, caracterizado porque además comprende la reducción en escala del vector fuente x como x/g antes del paso iii) ; g que se elige para ser mayor de 1 y para evitar una invasión en la memoria usada en la implementación del método.
  20. 20. Un método de descodificación de cuantificación reticular multivelocidad, caracterizado porque comprende: i) proporcionar un libro de código C base derivado de una retícula ?; ii) proporcionar un número n de libro de códigos y un índice i de cuantificación; iii) desmultiplexar el índice i de cuantificación usando el número n del libro de códigos; iv) si n = 0 entonces descodificar el índice i usando el libro de códigos base; produciendo un vector y cuantificado y terminando el método; v) si n > 0, entonces 75 a) proporcionar un libro de códigos V(r) de Voronoi, preseleccionado b) establecer un orden de extensión de r = n y un factor de escala m =2r; c) desmultiplexar los índices y Je de i; d) descodificar j en c en el libro de códigos C base ; e) descodificar Je en v en el libro de códigos V<r> de Voronoi ; y f) reconstruir un vector cuantificado como y = m c + v.
  21. 21. Un método de conformidad con la reivindicación 21, caracterizado porque en ii) un número nE codificado del libro de códigos y un índice codificado iE se proporcionan primero, entonces se aplica una técnica predeterminada de codificación sin pérdida en el número codificado nE del libro de códigos para obtener el número n del libro de códigos y el índice i de cuantificación .
  22. 22. Un método de descodificación de conformidad con la reivindicación 20, caracterizado porque el número n de libro de códigos y el índice i se leen de un canal de comunicación .
  23. 23. Un método de descodificación de conformidad con la reivindicación 20, caracterizado porque el número n del libro de códigos y el índice i se leen del medio de 76 almacenamiento .
  24. 24. Un método de descodificación de cuantificación reticular multivelocidad, caracterizado porque comprende: proporcionar subconjuntos finitos C y V de una retícula infinita L de puntos; proporcionar un número n de libro de códigos y un índice ; usar n e i para reconstruir un vector y en una retícula L como y = me + v, donde m es un número entero mayor o igual a dos, y c y v son puntos incluidos en L; el punto c que se reconstruye como un elemento de un subconjunto finito C de L, el punto v que se reconstruye como un elemento de un subconjunto finito V de L; los índices de v y de c que se computan usando i; en donde los subconjuntos C y V de la retícula L, el valor de m y el tamaño de i que se definen de forma única a partir de n.
  25. 25. Un método de conformidad con la reivindicación 20, caracterizado porque n se reconstruye de un código unario.
  26. 26. Un método de conformidad con la reivindicación 20, caracterizado porque el subconjunto V de L es un código de Voronoi y el índice de v es un índice de Voronoi .
  27. 27. Un método de descodificación de cuantificación reticular multivelocidad, caracterizado porque comprende: 77 proporcionar libros de códigos Q0, Q2, Q3 y Q4 base reticulares de baja proporción derivados de una retícula RE8 ; proporcionar un número n del libro de códigos y un índice i; si n = 0, entonces reconstruir y como un vector cero; si 0 < n < 4, entonces desmultiplexar un índice i de vector de código, descodificar i como un índice de un libro de códigos, base, Q2, , ó Q4 y reconstruir y; si n > 4 entonces desmultiplexar el índice i de vector de código como un índice j de libro de códigos base y un índice k de Voronoi a partir de i; proporcionar un orden r de extensión y un factor de escala m a partir de n; usar n para edificar ya sea Q3 ó Q4, y descodificar el índice j; computar y = m e + v, donde m = 2r es un factor de escala de extensión, c es un vector de código de libro de códigos base y v es un vector de código de un libro de códigos de Voronoi .
  28. 28. Un método para la extensión del libro de códigos de retícula, caracterizado porque comprende: i) proporcionar un subconjunto de vectores a partir de una retícula L de vectores, produciendo un libro de códigos base; ii) poner a escala el libro de códigos, base por 78 un factor de escala predeterminado, produciendo vectores de código puestos a escala; y iii) insertar un libro de códigos de Voronoi alrededor de cada vector de código puesto a escala, produciendo un libro de códigos, extendido.
  29. 29. Un método de conformidad con la reivindicación 28, caracterizado porque el subconjunto de vectores se selecciona al retener los vectores dentro de un límite.
  30. 30. Un método de conformidad con la reivindicación 28, caracterizado porque el paso ii) incluye proporcionar un factor de escala de número entero m > = 2.
  31. 31. Un método de conformidad con la reivindicación 28, caracterizado porque en el paso ii), el factor de escala m se ajusta a 2r.
  32. 32. Un método de conformidad con la reivindicación 28, caracterizado porque el subconjunto de vectores se selecciona al retener los vectores dentro de un límite.
  33. 33. Un método para la cuantificación vectorial reticular de un vector fuente x, caracterizado porque comprende : i) proporcionar un subconjunto de vectores a partir de una retícula de vectores de dimensión N, produciendo un libro de códigos, base, que requiere NR bits para indexar, donde R es la velocidad de bits por dimensión del libro de códigos, base; 79 ii) determinar el vector y más cercano de x en la retícula de vectores; iii) si el vector y más cercano está comprendido dentro del libro de códigos, base, entonces indexar y en el libro de códigos, base, produciendo los índices de cuantificación, transferir los índices de cuantificación, y terminal el método; si no entonces: iv) proporcionar un factor de escala predeterminado; v) poner a escala el libro de códigos, base por el factor de escala, produciendo un libro de códigos puesto a escala que incluye los co-vectores puestos a escala; vi) insertar un libro de códigos de Voronoi al rededor de cada uno de los vectores de código puestos a escala, produciendo un libro de códigos extendido que requiere N(R+r) bits para indexación, donde r es el orden del libro de códigos de Voronoi; y vii) si el vecino y muy cercano está comprendido dentro de libro de códigos extendidos entonces indexar y en el libro de códigos extendido produciendo índices de cuanti icación, transfiriendo los índices de cuantificación, y terminando el método; si no entonces viii) si el número de bits requeridos para indexar el libro de códigos extendido no ha accedido un umbral predeterminado, entonces incrementar el factor de escala y 80 el orden del libro de código de Voronoi y repetir los pasos v) a viii) ,· si no; entonces el vecino más cercano se considera un valor atípico remoto y transferir los índices de cuantificación, correspondientes, predeterminados.
  34. 34. Un método de conformidad con la reivindicación 33, caracterizado porque en el paso iv) el factor de escala predeterminado es 2 y en el paso viii) el factor de escala se incrementa por 2.
  35. 35. Un método de conformidad con la reivindicación 33, caracterizado porque en el paso viii) el orden del libro de códigos de Voronoi se incrementa por 1.
  36. 36. Un codificador de cuantificación reticular multivelocidad, caracterizado porque comprende: un medio de recepción para proporcionar un vector fuente x que representa un cuadro de una señal fuente; un medio de memoria que incluye un libro de código C base derivado de una retícula ?; un medio para asociar a x un punto reticular y en la retícula ?; un medio para verificar si y se incluye en el libro de códigos C base y para indexar y en el libro de código C base y para indexar y en el libro de código C base produciendo los índices de cuantificación; un medio para extender el libro de códigos base y para producir un libro de códigos extendido; 81 un medio para asociar a y un vector de códigos c de libro de código extendido, y un medio para indexar y en el libro de códigos C extendido y para producir sus índices de cuantificación.
  37. 37. Un codificador de cuantificación reticular, mul ivelocidad, caracterizado porque comprende: un medio para recibir un vector fuente x que representa un cuadro de una señal fuente; un medio para proporcionar subcon untos finitos C y V de una retícula infinita L de puntos; un medio para asociar x con y uno de los puntos en la retícula L; un medio para indexar y en un número n entero de libro de códigos de un índice i como y = m c + v, en donde c es un elemento de C, v es un elemento de V, m es un número entero mayor que o igual a dos; en donde los subconjuntos C y V de la retícula L, el valor de ir? y el tamaño de i que se definen de forma única á partir de n.
  38. 38. Un descodificador de cuantificación reticular, multivelocidad, caracterizado porque comprende: un medio de memoria para proporcionar un libro de códigos C base derivado de una retícula ?; un medio de recepción para proporcionar un número codificado n del libro de códigos y índice i codificado; un medio para desmultiplexar el índice i de 82 cuantificación usando el número n del libro de códigos; un medio para verificar si n = 0, y a) para descodificar el índice i usando el libro de códigos base produciendo un vector y cuantificado; un medio para verificar si ¡i > 0; un medio para proporcionar un libro de códigos V<r> de Voronoi preseleccionado; un medio para establecer un orden de extensión a r = n y un factor de escala ni = 2r; un medio para desmultiplexar los índices j y k a partir de i; un medio para descodificar j en c en el libro de códigos C base; un medio para descodificar k en v en el libro de código de V(r> de Voronoi; y un medio para reconstruir un vector cuantificado como y - c + v.
  39. 39. Un descodificador de cuantificación reticular muíti elocidad : un medio de memoria para proporcionar subconjuntos finitos C y V de una retícula infinita L de puntos; un medio de recepción para proporcionar un número n de libro de códigos y un índice i; un medio para usar n e i para reconstruir un vector y en una retícula L como y = me + v, donde m es un 83 número entero mayor o igual a dos, y c y v son puntos incluidos en L; el punto c que se reconstruye como un elemento de un subconjunto finito C de L; el punto v se reconstruye como un elemento de un subconjunto finito V de L; los índices de v y de c que se computan usando i; en donde los subconjuntos C y V de la retícula L, el valor de m y el tamaño de i que se definen de forma única a partir de n.
MXPA04011841A 2002-05-31 2003-05-30 Metodo y sistema para la cuantificacion vectorial reticular multivelocidad de una senal. MXPA04011841A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002388358A CA2388358A1 (en) 2002-05-31 2002-05-31 A method and device for multi-rate lattice vector quantization
PCT/CA2003/000829 WO2003103151A1 (en) 2002-05-31 2003-05-30 Method and system for multi-rate lattice vector quantization of a signal

Publications (1)

Publication Number Publication Date
MXPA04011841A true MXPA04011841A (es) 2005-07-26

Family

ID=29589087

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04011841A MXPA04011841A (es) 2002-05-31 2003-05-30 Metodo y sistema para la cuantificacion vectorial reticular multivelocidad de una senal.

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
CN1659785B (zh) 2011-04-20
DK1514355T3 (da) 2009-12-14
KR20050008761A (ko) 2005-01-21
ES2331876T3 (es) 2010-01-19
ZA200408780B (en) 2005-08-30
US20050285764A1 (en) 2005-12-29
WO2003103151A1 (en) 2003-12-11
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
MXPA04011841A (es) Metodo y sistema para la cuantificacion vectorial reticular multivelocidad de una senal.
Choi et al. Universal deep neural network compression
KR101190875B1 (ko) 차원 벡터 및 가변 분해능 양자화
JP4801160B2 (ja) 逐次改善可能な格子ベクトル量子化
EP2274833B1 (en) Vector quantisation method
US20070168197A1 (en) Audio coding
US6504877B1 (en) Successively refinable Trellis-Based Scalar Vector quantizers
WO2003054860A1 (en) Method and system for information signal coding using combinatorial and huffman codes
WO2011097963A1 (zh) 编码方法、解码方法、编码器和解码器
US20100017196A1 (en) Method, system, and apparatus for compression or decompression of digital signals
CN101266795A (zh) 一种格矢量量化编解码的实现方法及装置
WO2001050769A9 (en) Method and apparatus for video compression using multi-state dynamical predictive systems
CA2482994C (en) Method and system for multi-rate lattice vector quantization of a signal
Wang et al. Hierarchy-oriented searching algorithms using alternative duplicate codewords for vector quantization mechanism
KR20110033154A (ko) 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법
Rault et al. Lattice vector quantization with reduced or without look-up table
Kanawade et al. Tree structured vector quantization based technique for speech compression
CN102801427B (zh) 源信号变速率格矢量量化的编解码方法和系统
Aksu et al. Design, performance, and complexity analysis of residual trellis-coded vector quantizers
US20090326935A1 (en) Method of treating voice information
Fonteles et al. High dimension lattice vector quantizer design for generalized gaussian distributions
Makwana et al. Image compression using tree structured vector quantization with compact codebook
Fischer et al. High-quality audio transform coded excitation using trellis codes
Ryu et al. A fast full search equivalent encoding algorithm for image vector quantization based on the WHT and a LUT
CN110771045A (zh) 编码装置、解码装置、编码方法、解码方法、以及程序