ES2645375T3 - Dispositivo y método de cuantificación y cuantificación inversa de filtro LPC de tasa de bits variable - Google Patents
Dispositivo y método de cuantificación y cuantificación inversa de filtro LPC de tasa de bits variable Download PDFInfo
- Publication number
- ES2645375T3 ES2645375T3 ES09793769.2T ES09793769T ES2645375T3 ES 2645375 T3 ES2645375 T3 ES 2645375T3 ES 09793769 T ES09793769 T ES 09793769T ES 2645375 T3 ES2645375 T3 ES 2645375T3
- Authority
- ES
- Spain
- Prior art keywords
- vector
- filter
- quantified
- lsf
- lpc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011002 quantification Methods 0.000 title claims description 130
- 238000000034 method Methods 0.000 title claims description 32
- 239000013598 vector Substances 0.000 claims abstract description 194
- 230000003595 spectral effect Effects 0.000 claims abstract description 16
- 101000959200 Lytechinus pictus Actin, cytoskeletal 2 Proteins 0.000 description 57
- 238000013139 quantization Methods 0.000 description 53
- 102100040006 Annexin A1 Human genes 0.000 description 23
- 101000959738 Homo sapiens Annexin A1 Proteins 0.000 description 23
- 101000929342 Lytechinus pictus Actin, cytoskeletal 1 Proteins 0.000 description 23
- 101000797296 Lytechinus pictus Actin, cytoskeletal 3 Proteins 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 10
- 230000005284 excitation Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000013213 extrapolation Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un dispositivo para cuantificar un filtro LPC en forma de un vector (607) de frecuencia espectral de línea (LSF) de entrada, que comprende: medios (601) para calcular una aproximación (608) de primera etapa del vector LSF de entrada; medios (602) para restar la aproximación de primera etapa del vector LSF de entrada para producir un vector (609) residual; medios (603) para calcular una función de ponderación (610) a partir de la aproximación de primera etapa; medios (604) para aplicar la función de ponderación (610) al vector (609) residual; un cuantificador vectorial algebraico (605) para cuantificar el vector residual ponderado para suministrar un vector (612) LSF residual ponderado cuantificado; y un multiplexor de la aproximación (608) de primera etapa y del vector (612) LSF residual ponderado cuantificado 10 en los índices (613) codificados multiplexados correspondientes.
Description
DESCRIPCIÓN
Dispositivo y método de cuantificación y cuantificación inversa de filtro LPC de tasa de bits variable
Campo de la invención
La presente invención se refiere a la codificación y decodificación de una señal de sonido, por ejemplo una señal de audio. Más específicamente, la presente invención se refiere al dispositivo y método de cuantificación y 5 cuantificación inversa de filtro LPC (Coeficientes de Predicción Lineal) de tasa de bits variable.
Antecedentes de la invención
La demanda de técnicas de codificación de voz y audio digital eficientes con un buen compromiso entre calidad subjetiva y tasa de bits está aumentando en diversas áreas de aplicación tales como teleconferencia, multimedia, y comunicación inalámbrica. 10
Un codificador de voz convierte una señal de voz en un flujo de bits digital que se transmite sobre un canal de comunicación o se almacena en un medio de almacenamiento. La señal de voz a codificar se digitaliza, esto es se muestrea y cuantifica utilizando por ejemplo 16 bits por muestra. Un desafío del codificador de voz es representar las muestras digitales con un número más pequeño de bits manteniendo una buena calidad de voz subjetiva. Un decodificador o sintetizador de voz convierte el flujo de bits transmitido o almacenado de vuelta a una señal de 15 sonido.
El documento US 2008/052068 A1 describe un cuantificador vectorial de múltiples etapas que realiza operaciones de rotación y escalado.
La codificación de predicción lineal con excitación por código (CELP) es una de las mejores técnicas para lograr un buen compromiso entre calidad subjetiva y tasa de bits. La técnica de codificación CELP es una base para varios 20 estándares de codificación de voz tanto en aplicaciones inalámbricas como cableadas. En la codificación CELP, la señal de voz se muestrea y se procesa en bloques sucesivos de L muestras llamadas normalmente tramas, donde L es un número predeterminado de muestras que corresponden normalmente a 10-30 ms de voz. Un filtro de predicción lineal (LP) se calcula y se transmite por cada trama; el filtro LP también se conoce como filtro LPC (Coeficientes de Predicción Lineal). El cálculo del filtro LPC utiliza normalmente una búsqueda hacia adelante, por 25 ejemplo un segmento de voz de 5-15 ms de la trama posterior. La trama de L muestras se divide en bloques más pequeños llamados subtramas. En cada subtrama, se obtiene normalmente una señal de excitación a partir de dos componentes, una excitación pasada y una excitación de libro de códigos fijo innovativa. La excitación pasada se denomina a menudo como la excitación de libro de códigos adaptativo o de libro de códigos de paso. Los parámetros que caracterizan la señal de excitación se codifican y se transmiten al decodificador, donde la señal de 30 excitación se reconstruye y se utiliza como la entrada del filtro LPC.
En aplicaciones tales como transmisión y difusión multimedia, puede ser necesario codificar la voz, música, y contenido mixto a una baja tasa de bits. Para este propósito, se han desarrollado modelos de codificación que combinan una codificación CELP optimizada para señales de voz con codificación por transformada optimizada para señales de audio. Un ejemplo de tales modelos es el AMR-WB+ [1], que conmuta entre CELP y TCX (excitación 35 codificada por transformada). Para mejorar la calidad de la música y el contenido mixto, se utiliza un retardo largo para permitir una resolución de frecuencia más fina en el dominio de la transformada. En AMR-WB+, se utiliza una así denominada supertrama que consiste en cuatro tramas CELP (normalmente 80 ms).
Aunque los parámetros de codificación CELP se transmiten una vez cada cuatro tramas en AMR-WB+, la cuantificación del filtro LPC se realiza separadamente en cada trama. También, el filtro LPC se cuantifica con un 40 número fijo de bits por trama en el caso de tramas CELP.
Para superar el inconveniente expuesto anteriormente, existe la necesidad de una técnica que utilice cuantificación de tasa de bits variable de los filtros LPC para reducir el número de bits implicados en la cuantificación de los filtros LPC. También, tal técnica será relevante para los modelos de codificación de voz o audio que utilizan una estructura tanto de supertrama como multimodo tal como el AMR-WB+ [1] y USAC que se está desarrollando en MPEG. 45
Compendio de la invención
Según un primer aspecto de la presente invención, se proporciona un dispositivo tal como se expone en la reivindicación 1.
Según un segundo aspecto de la presente invención, se proporciona un dispositivo tal como se expone en la reivindicación 2. 50
Según un tercer aspecto de la presente invención, se proporciona un método tal como se expone en la reivindicación 3.
Según un cuarto aspecto de la presente invención, se proporciona un método tal como se expone en la reivindicación 4.
Los siguientes y otros objetivos, ventajas y características de la presente invención se harán más evidentes tras la lectura de la siguiente descripción no restrictiva de realizaciones ilustrativas de la misma, dadas a modo de ejemplo solamente con referencia a los dibujos adjuntos. 5
Breve descripción de los dibujos
En los dibujos adjuntos:
La Figura 1 es un diagrama de bloques que ilustra un cuantificador de filtro LPC diferencial absoluto y de múltiples referencias y el método de cuantificación;
La Figura 2 es un diagrama esquemático que ilustra un esquema de cuantificación de bucle abierto; 10
La Figura 3 es un diagrama de flujo que ilustra un dispositivo y método para determinar los filtros LPC a transmitir en una configuración en la que se utilizan y se transmiten cuatro (4) filtros LPC en una supertrama;
La Figura 4a es una ventana de análisis LPC típica y la posición central de análisis LPC típica cuando se estima un filtro LPC por trama (o supertrama) en un códec basado en LPC, en donde LPC0 corresponde a un último filtro LPC calculado durante la trama (o supertrama) previa; 15
La Figura 4b es una ventana de análisis LPC típica cuando se estiman cuatro (4) filtros LPC por trama (o supertrama) en un códec basado en LPC, en donde la ventana de análisis LPC se centra en el final de la trama;
La Figura 5 es un diagrama de flujo que ilustra un ejemplo de un esquema de cuantificación fuera del bucle;
La Figura 6 es un diagrama de bloques esquemático de un cuantificador LPC algebraico ponderado y el método de cuantificación; 20
La Figura 7 es un diagrama de bloques esquemático de un cuantificador inverso LPC algebraico ponderado y el método de cuantificación inversa;
La Figura 8 es un diagrama de bloques esquemático de un cuantificador y el método de cuantificación; y
La Figura 9 es un diagrama de bloques esquemático de un decodificador y el método de codificación.
Descripción detallada 25
Cuantificación diferencial con una elección de referencias posibles
Se utiliza cuantificación diferencial con una elección entre varias referencias posibles. Más específicamente, se cuantifica diferencialmente un filtro LPC con relación a varias referencias posibles.
Se sabe que los filtros LPC consecutivos muestran un cierto grado de correlación. Para aprovechar esta correlación, los cuantificadores LPC generalmente hacen uso de la predicción. En lugar de cuantificar el vector de Coeficientes 30 de Predicción Lineal (vector LPC) que representa el filtro LPC directamente, un cuantificador diferencial (o predictivo) calcula primero un valor predicho de este vector LPC y, entonces, cuantifica la diferencia (a menudo llamada residuo de predicción) entre el vector LPC original y el vector LPC predicho.
La predicción se basa normalmente en valores previos del filtro LPC. Se utilizan comúnmente dos tipos de predictores: predictores de promedio móvil (MA) y auto-regresivos (AR). Aunque los predictores AR son a menudo 35 más eficientes en la reducción de la norma L2 (media cuadrática) de los datos a cuantificar que los predictores MA, estos últimos son algunas veces útiles porque son menos propensos a propagación de errores en caso de errores de transmisión [2].
Dado que la norma L2 del residuo de predicción es en promedio más baja que la norma L2 del vector LPC original (la relación entre los dos dependiendo del grado de predictibilidad del filtro LPC), un cuantificador diferencial (o 40 predictivo) puede lograr el mismo grado de desempeño que un cuantificador absoluto pero a una tasa de bits más baja.
En promedio, la predicción es verdaderamente eficiente en la reducción de la norma L2 de los datos a cuantificar. Este comportamiento no es constante, sin embargo; la predicción es mucho más eficiente durante los segmentos estables de señal que durante los segmentos de transición. La predicción puede incluso conducir a un aumento de 45 los valores de la norma L2 cuando los filtros LPC cambian rápidamente. Se puede lograr alguna mejora del desempeño considerando dos predictores diferentes, uno para segmentos altamente predictivos, el otro para segmentos menos predictivos [3, 4]. Como se ha mencionado en la descripción anterior, esta técnica utiliza solamente valores pasados del filtro LPC.
Para superar este problema, se propone cuantificar diferencialmente un filtro LPC con relación a una referencia, por ejemplo un filtro de referencia, elegido entre una serie de referencias posibles. Los filtros de referencia posibles son filtros LPC pasados o futuros ya cuantificados (por lo tanto disponibles en el decodificador como en el codificador), o los resultados de diversas operaciones de extrapolación o interpolación aplicadas a filtros LPC pasados o futuros ya cuantificados. Se selecciona el filtro de referencia que proporciona la menor distorsión a una tasa dada, o la tasa de 5 bits más baja para un nivel de distorsión objetivo dado.
La Figura 1 es un diagrama de bloques que ilustra un dispositivo y método de cuantificación de filtro LPC de múltiples referencias. Un filtro 101 LPC dado representado por un vector de Coeficientes de Predicción Lineal se introduce al dispositivo y método de cuantificación de filtro LPC de múltiples referencias. El filtro 101 LPC de entrada se cuantifica diferencialmente con respecto a una referencia elegida entre una serie de referencias 1,2…n posibles. 10 Las referencias posibles comprenden:
- filtros LPC cuantificados pasados o futuros.
- el resultado de las operaciones de extrapolación o interpolación aplicadas a filtros LPC cuantificados pasados o futuros; o
- cualquier valor cuantificado disponible tanto en el codificador como el decodificador. 15
Como un ejemplo no limitativo, el filtro 101 LPC de entrada se puede cuantificar diferencialmente con respecto al filtro LPC cuantificado previo, el filtro LPC cuantificado siguiente, o un valor medio de esos dos filtros LPC cuantificados previo y siguiente. Una referencia puede ser también un filtro LPC cuantificado utilizando un cuantificador absoluto, o el resultado de cualquier tipo de interpolación, extrapolación o predicción (AR o MA) aplicada a filtros LPC ya cuantificados. 20
Operaciones 102 y 1031, 1032, …, 103n: todavía en referencia a la Figura 1, el filtro 101 LPC de entrada se suministra a un cuantificador absoluto (Operación 102) y a cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n). El cuantificador absoluto (Operación 102) cuantifica el valor absoluto (no una diferencia) del filtro 101 LPC de entrada. Los cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n) se diseñan para cuantificar diferencialmente el filtro 101 LPC de entrada con respecto a las referencias 1, 2,…, n respectivas. 25
Operación 104: el dispositivo y método de cuantificación de filtro LPC de múltiples referencias de la Figura 1 comprende un selector para seleccionar una referencia entre las referencias 1, 2, …, n que proporcione el nivel de distorsión más bajo a una tasa de bits dada, o la tasa de bits más baja para un nivel de distorsión objetivo dado. Más específicamente, el selector (Operación 104) utiliza un criterio de selección que minimiza la tasa de bits para lograr un cierto nivel de distorsión objetivo, o que minimiza el nivel de distorsión producido a una tasa de bits dada. 30
En la Operación 104, la selección de una referencia entre las referencias 1, 2, …, n a utilizar realmente en el proceso de cuantificación diferencial se puede realizar en bucle cerrado o en bucle abierto.
En bucle cerrado, se prueban todas las referencias posibles y se elige la referencia que optimiza un cierto criterio de distorsión o tasa de bits. Por ejemplo, la selección de bucle cerrado se puede basar en minimizar un error cuadrático medio ponderado entre el vector LPC de entrada y el vector LPC cuantificado correspondiente a cada referencia. 35 También, se puede utilizar la distorsión espectral entre el vector LPC de entrada y el vector LPC cuantificado. Alternativamente, la cuantificación utilizando las referencias posibles se puede realizar manteniendo una distorsión bajo un cierto umbral, y se elige la referencia que cumple este criterio y utiliza el número más pequeño de bits. Como se explicará en la siguiente descripción, se puede utilizar un cuantificador vectorial algebraico de tasa de bits variable para cuantificar el vector residual escalado (diferencia entre el vector LPC de entrada y la referencia) que 40 utiliza un cierto presupuesto de bits en base a la energía del vector residual escalado. En este caso, se elige la referencia que produce el número más pequeño de bits.
En bucle abierto, el selector de la Operación 104 predetermina la referencia en base al valor de los Coeficientes de Predicción Lineal del filtro LPC de entrada a cuantificar y de los Coeficientes de Predicción Lineal de los filtros LPC de referencia disponibles. Por ejemplo, la norma L2 del vector residual se calcula para todas las referencias y se 45 elige la referencia que produce el valor más pequeño.
Operación 105: después de la selección de una de las referencias 1, 2, …, n mediante la Operación 104, un transmisor (Operación 105) comunica o señala al decodificador (no mostrado) el filtro LPC cuantificado (no mostrado) y un índice indicativo del modo de cuantificación (suboperación 1051), por ejemplo cuantificación absoluta o diferencial. También, cuando se utiliza cuantificación diferencial, el transmisor (Operación 105) comunica o señala 50 al decodificador índices representativos de la referencia seleccionada y el cuantificador diferencial asociado de las Operaciones 1031, 1032, …, 103n (suboperación 1052). Se transmiten algunos bits específicos al decodificador para tal señalización.
La utilización de una serie de diferentes referencias posibles hace la cuantificación diferencial más eficiente en términos de reducción de la norma L2 de residuo de predicción en comparación con la restricción a valores pasados 55
solamente como en la predicción convencional. También, para un nivel de distorsión objetivo dado, esta técnica es más eficiente en términos de tasa de bits promedio.
Cuantificación absoluta o diferencial conmutada
Según un segundo aspecto, se utiliza cuantificación absoluta /diferencial (o predictiva) conmutada. La Figura 1 ilustra un ejemplo de un esquema absoluto/diferencial que selecciona entre un cuantificador absoluto (Operación 5 102) y n cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n) que utilizan diferentes referencias 1, 2, …, n respectivas. De nuevo, la selección de un cuantificador puede ser hecha por el selector de la Operación 104 entre los cuantificadores absolutos y diferenciales (Operaciones 102 y 1031, 1032, …, 103n), en donde el cuantificador seleccionado, según el criterio de selección, minimizará el nivel de distorsión producido a una tasa de bits dada o minimizará la tasa de bits para lograr un nivel de distorsión objetivo. 10
Algunos filtros LPC se pueden codificar utilizando el cuantificador absoluto (Operación 102). Los otros filtros LPC se codifican diferencialmente con respecto a uno o varios filtros LPC de referencia en los cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n).
El cuantificador absoluto (Operación 102) se puede utilizar como una solución de red de seguridad para los filtros LPC de otro modo cuantificados diferencialmente, por ejemplo en el caso de grandes desviaciones LPC o cuando el 15 cuantificador absoluto (Operación 102) es más eficiente que los cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n) en términos de tasa de bits. El/los filtro(s) LPC de referencia pueden estar todos dentro de la misma supertrama para evitar introducir dependencias entre supertramas que normalmente plantean problemas en caso de errores de transmisión (pérdidas de paquetes o borrado de tramas).
Como se ha explicado en la descripción anterior, el uso de predicción en cuantificación LPC conduce a una norma 20 L2 reducida de los datos a cuantificar y consecuentemente a una reducción en la tasa de bits promedio para lograr un cierto nivel de desempeño. La predicción no es siempre igual de eficiente, sin embargo. En LPC conmutado [3, 4], se realiza una clasificación previa del filtro LPC y se utilizan diferentes predictores dependiendo de la predictibilidad del filtro LPC a cuantificar. Sin embargo, esta técnica se ha desarrollado en el contexto de una tasa de bits fija, requiriendo los dos cuantificadores diferenciales un mismo número de bits para codificar un filtro LPC. 25
También, pueden proporcionarse uno o varios cuantificadores absolutos (Operación 102). Además, pueden proporcionarse uno o varios cuantificadores (predictivos) diferenciales (Operaciones 1031, 1032, …, 103n). Varios cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n) implican varias referencias posibles tales como 1, 2, …, n y/o varios tamaños y/o estructuras del cuantificador diferencial.
Como se ha descrito en la descripción anterior, cuando se utilizan varios cuantificadores diferenciales (Operaciones 30 1031, 1032, …, 103n), la selección del cuantificador diferencial actual a utilizar se puede realizar en un proceso de selección de bucle abierto o de bucle cerrado.
Cuando la cuantificación diferencial no consigue lograr un nivel de distorsión objetivo, o cuando la cuantificación absoluta requiere un número más pequeño de bits que la cuantificación diferencial para lograr ese nivel de distorsión, se utiliza la cuantificación absoluta como una solución de red de seguridad. Uno o varios bits, 35 dependiendo del número de posibles cuantificadores absolutos y diferenciales, se transmite(n) a través del transmisor (Operación 105) para indicar al decodificador (no mostrado) el cuantificador actual que se está utilizando.
La cuantificación absoluta/diferencial combina las ventajas de la cuantificación predictiva (reducción en la tasa de bits asociada con la reducción de la norma L2 de los datos a cuantificar) con la generalidad de la cuantificación absoluta (que se utiliza como una red de seguridad en caso de que la cuantificación diferencial (o predictiva) no 40 logre un objetivo, por ejemplo nivel imperceptible, de distorsión.
Cuando se incluyen varios cuantificadores diferenciales (Operaciones 1031, 1032, …, 103n), estos cuantificadores diferenciales pueden hacer uso de un mismo predictor o de diferentes predictores. En particular, pero no exclusivamente, estos varios cuantificadores diferenciales pueden utilizar los mismos coeficientes de predicción o diferentes coeficientes de predicción. 45
El decodificador comprende medios para recibir y extraer del flujo de bits, por ejemplo un demultiplexor, (a) el filtro LPC cuantificado y (b) el índice (índices) o información:
- acerca del modo de cuantificación para determinar si el filtro LPC se ha cuantificado utilizando cuantificación absoluta o cuantificación diferencial; y
- acerca de la referencia entre la pluralidad de referencias posibles que se ha utilizado para cuantificar el filtro LPC. 50
Si la información acerca del modo de cuantificación indica que el filtro LPC se ha cuantificado utilizando cuantificación absoluta, se proporciona un cuantificador inverso absoluto (no mostrado) para la cuantificación inversa del filtro LPC cuantificado. Si la información acerca del modo de cuantificación indica que el filtro LPC se ha cuantificado utilizando cuantificación diferencial, un cuantificador inverso diferencial (no mostrado) cuantifica
entonces inversamente diferencialmente el filtro LPC cuantificado diferencialmente de múltiples referencias utilizando la referencia correspondiente a la información de referencia extraída.
Esquema de cuantificación fuera del bucle
El códec AMR-WB+ es un códec híbrido que conmuta entre un modelo de codificación en el dominio del tiempo en base al esquema de codificación ACELP, y un modelo de codificación en el dominio de la transformada llamado 5 TCX. El AMR-WB+ procede como sigue [1]:
- La señal de entrada se segmenta en supertramas de cuatro (4) tramas;
- Cada supertrama se codifica utilizando una combinación de cuatro (4) posibles modos de codificación, cubriendo cada modo de codificación una duración diferente:
- ACELP (que cubre una duración de una (1) trama); 10
- TCX256 (que cubre una duración de una (1) trama);
- TCX512 (que cubre una duración de dos (2) tramas); y
- TCX1024 (que cubre una duración de cuatro (4) tramas).
Hay por lo tanto 26 posibles combinaciones de modo para codificar cada supertrama.
Para una supertrama dada, la combinación de modos que minimiza un error ponderado total es determinada por un 15 procedimiento de selección de modo de “bucle cerrado”. Más específicamente, en lugar de probar las 26 combinaciones, la selección del modo se realiza a través de once (11) pruebas diferentes (búsqueda en árbol, véase la Tabla 1). En el códec AMR-WB+, la selección de bucle cerrado se basa en minimizar el error cuadrático medio entre la señal de entrada y de códec en un dominio ponderado (o maximizar la relación señal a ruido de cuantificación). 20
- Prueba
- Trama 1 Trama 2 Trama 3 Trama 4
- 1
- ACELP
- 2
- TCX256
- 3
- ACELP
- 4
- TCX256
- 5
- TCX512
- 6
- ACELP
- 7
- TCX256
- 8
- ACELP
- 9
- TCX256
- 10
- TCX512
- 11
- TCX1024
Tabla1 – Las 11 pruebas para selección de modo de bucle cerrado en AMR-WB+
Los filtros LPC son uno de los diversos parámetros transmitidos por el códec AMR-WB+. A continuación se dan algunos elementos clave con respecto a la cuantificación y transmisión de esos filtros LPC. 25
Aunque los diferentes modos de codificación no cubren el mismo número de tramas, el número de filtros LPC transmitido al decodificador es el mismo para todos los modos de codificación e igual a 1. Solamente se transmite el filtro LPC correspondiente al final del segmento cubierto. Más específicamente, en el caso de TCX1024, se calcula y se transmite un (1) filtro LPC para una duración de cuatro (4) tramas. En el caso de TCX512, se calcula y se transmite un (1) filtro LPC para una duración de dos (2) tramas. En el caso de TCX256 o ACELP, se calcula y se 30 transmite un (1) filtro LPC para la duración de una (1) trama.
El códec AMR-WB+ utiliza un cuantificador LPC predictivo (de promedio móvil de primer orden). El funcionamiento de este último cuantificador depende del filtro LPC previamente transmitido, y consecuentemente del modo de codificación previamente seleccionado. Por lo tanto, puesto que la combinación exacta de modos no se conoce hasta que se codifica toda la supertrama, algunos filtros LPC se codifican varias veces antes de que se determine la combinación final de modos. 5
Por ejemplo, el filtro LPC situado en el final de la trama 3 se transmite al decodificador solamente cuando se codifica la tercera trama como ACELP o TCX256. No se transmite cuando las tramas 3 y 4 se codifican conjuntamente utilizando TCX512. Con respecto al filtro LPC situado en el final de la trama 2, se transmite en todas las combinaciones de modos excepto en TCX1024. Por lo tanto, la predicción realizada al cuantificar el último filtro LPC de la supertrama depende de la combinación de modos para la supertrama completa. 10
El principio de la técnica descrita es que el orden el que se cuantifican los filtros LPC se elige de modo que, una vez que se finaliza la decisión de bucle cerrado, la información de cuantificación correspondiente a los filtros LCP innecesarios se puede omitir de la transmisión sin efecto en la manera en la que otros filtros serán transmitidos y decodificados en el decodificador. Para cada filtro LPC a cuantificar utilizando la estrategia de cuantificación diferencial descrita anteriormente, esto impone algunas restricciones en los filtros LPC de referencia posibles. 15
El siguiente ejemplo se da con referencia a la Figura 2.
Operación 1 de la Figura 2: para evitar cualquier dependencia entre supertramas, al menos un filtro LPC se cuantifica utilizando un cuantificador LPC absoluto. Dado que el filtro LPC4 de la trama 4 de la supertrama se transmite siempre cualquiera que sea la combinación de modo de codificación determinada por el procedimiento de selección de bucle cerrado, es conveniente cuantificar ese filtro LPC4 utilizando un cuantificador absoluto. 20
Operación 2 de la Figura 2: el siguiente filtro LPC a cuantificar es el filtro LPC2 de la trama 2 de la supertrama que se transmite para todas las combinaciones de modos excepto para TCX1024. Se puede utilizar un cuantificador diferencial, por ejemplo para codificar la diferencia entre el filtro LPC2 y la versión cuantificada absoluta del filtro LPC4. El mismo cuantificador absoluto que el utilizado para codificar el filtro LPC4 se puede utilizar también como una solución de red de seguridad, por ejemplo en el caso de grandes desviaciones LPC o cuando el cuantificador 25 LPC absoluto es más eficiente que el cuantificador diferencial en términos de tasa de bits y/o nivel de distorsión.
Operación 3 de la Figura 2: los dos filtros LPC (filtro LPC1 de la trama 1 de la supertrama y filtro LPC3 de la trama 3 de la supertrama) restantes se cuantifican también utilizando la misma estrategia de cuantificación diferencial/absoluta. Ambos filtros LPC se pueden cuantificar con relación a la versión cuantificada del filtro LPC2. Algunas estrategias alternativas se dan a continuación en la presente memoria. 30
La Figura 5 es un diagrama de flujo que ilustra en más detalle un ejemplo de un esquema de cuantificación fuera del bucle.
Operación 501: un cuantificador absoluto cuantifica el filtro LPC4.
Operación 502: la operación 512 es opcional y se utiliza en una primera trama de codificación basada en LPC después de una trama de codificación no basada en LPC. Un cuantificador absoluto cuantifica el filtro LPC0 o un 35 cuantificador diferencial cuantifica diferencialmente el filtro LPC0 con relación al filtro LPC4 cuantificado. El filtro LPC0 es el último filtro LPC (LPC4) de la supertrama previa y se puede utilizar como una referencia posible para cuantificar los filtros LPC1 a LPC4.
Operación 503: un cuantificador absoluto cuantifica el filtro LPC2 o un cuantificador diferencial cuantifica diferencialmente el filtro LPC2 con relación al filtro LPC4 cuantificado utilizado como referencia. 40
Operación 504: un cuantificador absoluto cuantifica el filtro LPC1, un cuantificador diferencial cuantifica diferencialmente el filtro LPC1 con relación al filtro LPC2 cuantificado utilizado como referencia, o un cuantificador diferencial cuantifica diferencialmente el filtro LPC1 con relación al (filtro LPC2 cuantificado + filtro LPC0 cuantificado)/2) utilizado como referencia.
Operación 505: un cuantificador absoluto cuantifica el filtro LPC3, un cuantificador diferencial cuantifica 45 diferencialmente el filtro LPC3 con relación al filtro LPC2 cuantificado utilizado como referencia, un cuantificador diferencial cuantifica diferencialmente el filtro LPC3 con relación al filtro LPC4 cuantificado utilizado como referencia, o un cuantificador diferencial cuantifica diferencialmente el filtro LPC3 con relación al (filtro LPC2 cuantificado + filtro LPC4 cuantificado)/2) utilizado como referencia.
La Figura 3 es un diagrama de flujo que ilustra la determinación de los filtros LPC a transmitir en una configuración 50 donde cuatro (4) filtros LPC se pueden calcular y transmitir en una supertrama.
En primer lugar debe tenerse en cuenta que el filtro LPC1 cuantificado se transmite solamente cuando se selecciona ACELP y/o TCX256 para la primera mitad de la supertrama. Similarmente, el filtro LPC3 se transmite solamente cuando se utiliza ACELP y/o TCX256 para la segunda mitad de esa supertrama.
Operación 301: el filtro LPC1 de la trama 1 de la supertrama, el filtro LPC2 de la trama 2 de la supertrama, el filtro LPC3 de la trama 3 de la supertrama, y el filtro LPC4 de la trama 4 de la supertrama se cuantifican utilizando por ejemplo la estrategia de cuantificación ilustrada y descrita con relación a las Figuras 2 y 5. Por supuesto, son posibles otras estrategias de cuantificación.
Operación 302: se realiza la selección de bucle cerrado de los modos de codificación como se ha descrito 5 anteriormente en la presente memoria.
Operación 303: el filtro LPC4 cuantificado se transmite al decodificador por ejemplo a través del transmisor 105 de la Figura 1. El decodificador comprende:
- medios para recibir y extraer del flujo de bits recibido, por ejemplo un demultiplexor, el filtro LPC4 cuantificado; y
- un cuantificador inverso absoluto suministrado con el filtro LPC4 cuantificado para la cuantificación inversa del filtro 10 LPC4 cuantificado.
Operación 304: si la supertrama se codifica utilizando el modo TCX1024, no se requiere ninguna transmisión adicional.
Operación 305: si la primera, segunda, tercera y cuarta tramas de la supertrama no se codifican utilizando el modo TCX1024, el filtro LPC2 cuantificado y un índice indicativo de uno del modo de cuantificación absoluta y el modo de 15 cuantificación diferencial se transmiten al decodificador por ejemplo a través del transmisor 105 de la Figura 1. El decodificador comprende:
- medios para recibir y extraer del flujo de bits recibido, por ejemplo un demultiplexor, el filtro LPC2 cuantificado y el índice indicativo de uno del modo de cuantificación absoluta y el modo de cuantificación diferencial; y
- un cuantificador inverso absoluto suministrado con el filtro LPC2 cuantificado y el índice indicativo del modo de 20 cuantificación absoluta para la cuantificación inversa del filtro LPC2 cuantificado, o un cuantificador inverso diferencial suministrado con el filtro LPC2 cuantificado y el índice indicativo del modo de cuantificación diferencial para la cuantificación inversa del filtro LPC2 cuantificado.
Operación 306: si las tramas 1 y 2 de la supertrama se codifican utilizando el modo TCX512, el filtro LPC1 cuantificado no se transmite al decodificador. 25
Operación 307: si las tramas 1 y 2 de la supertrama no se codifican utilizando el modo TCX512, i.e., si las tramas 1 y 2 de la supertrama se codifican utilizando ACELP o TCX256, el filtro LPC1 cuantificado, y un índice indicativo de uno del modo de cuantificación absoluta, el modo de cuantificación diferencial con relación al filtro LPC2 cuantificado utilizado como referencia, y el modo de cuantificación diferencial con relación al (filtro LPC2 cuantificado + filtro LPC0 cuantificado)/2 utilizado como referencia se transmiten al decodificador por ejemplo a través del transmisor 30 105 de la Figura 1. El decodificador comprende:
- medios para recibir y extraer del flujo de bits recibido, por ejemplo un demultiplexor, el filtro LPC1 cuantificado, y el índice indicativo de uno del modo de cuantificación absoluta, el modo de cuantificación diferencial con relación al filtro LPC2 cuantificado utilizado como referencia, y el modo de cuantificación diferencial con relación al (filtro LPC2 cuantificado + filtro LPC0 cuantificado)/2 utilizado como referencia; y 35
- un cuantificador inverso absoluto suministrado con el filtro LPC1 cuantificado y el índice indicativo de uno del modo de cuantificación absoluta, el modo de cuantificación diferencial con relación al filtro LPC2 cuantificado utilizado como referencia, y el modo de cuantificación diferencial con relación al (filtro LPC2 cuantificado + filtro LPC0 cuantificado)/2) utilizado como referencia para la cuantificación inversa del filtro LPC1 cuantificado.
Operación 308: si las tramas 3 y 4 de la supertrama se codifican utilizando el modo TCX512, el filtro LPC3 40 cuantificado no se transmite al decodificador.
Operación 309: si las ramas 3 y 4 de la supertrama no se codifican utilizando el modo TCX512, i.e., si las tramas 3 y 4 de la supertrama se codifican utilizando ACELP o TCX256, el filtro LPC3 cuantificado y el índice indicativo de uno del modo de cuantificación absoluta, el modo de cuantificación diferencial con relación al filtro LPC2 cuantificado utilizado como referencia, el modo de cuantificación diferencial con relación al filtro LPC4 cuantificado utilizado como 45 referencia, y el modo de cuantificación diferencial con relación al (filtro LPC2 cuantificado + filtro LPC4 cuantificado)/2 utilizado como referencia se transmiten al decodificador por ejemplo a través del transmisor 105 de la Figura 1. El decodificador comprende:
- medios para recibir y extraer del flujo de bits recibido, por ejemplo un demultiplexor, el filtro LPC3 cuantificado, y el índice indicativo de uno del modo de cuantificación absoluta, el modo de cuantificación diferencial con relación al 50 filtro LPC2 cuantificado utilizado como referencia, el modo de cuantificación diferencial con relación al filtro LPC4 cuantificado utilizado como referencia, y el modo de cuantificación diferencial con relación al (filtro LPC2 cuantificado + filtro LPC4 cuantificado)/2 utilizado como referencia; y
- un cuantificador inverso absoluto suministrado con el filtro LPC3 cuantificado y el índice indicativo de uno del modo de cuantificación absoluta, el modo de cuantificación diferencial con relación al filtro LPC2 cuantificado utilizado como referencia, el modo de cuantificación diferencial con relación al filtro LPC4 cuantificado utilizado como referencia, y el modo de cuantificación diferencial con relación al (filtro LPC2 cuantificado + filtro LPC4 cuantificado)/2 utilizado como referencia para la cuantificación inversa del filtro LPC3 cuantificado. 5
Algunos beneficios de la solución descrita anteriormente comprenden:
- Cuantificar el conjunto completo de filtros LPC antes de la selección de bucle cerrado de los modos de codificación ahorra complejidad;
- Utilizar un cuantificador diferencial en el esquema de cuantificación global preserva algo del ahorro de tasa de bits que fue obtenido por, por ejemplo, el cuantificador predictivo en el esquema de cuantificación de AMR-WB+ original. 10
Las siguientes variantes se pueden utilizar para construir los filtros LPC de referencia que se utilizan en los cuantificadores diferenciales (Operaciones tales como 1031, 1032, …, 103n);
- Si la dependencia entre supertramas no es un problema, el último filtro LPC (LPC4) de la supertrama previa (LPC0) se puede utilizar como una posible referencia para codificar los filtros LPC1 a LPC4;
- Cuando hay disponibles diferentes filtros LPC de referencia, por ejemplo el filtro LPC0 y LPC4 al codificar el filtro 15 LPC2, se puede transmitir un patrón de bits específico al decodificador para indicar cuál de las referencias se utiliza realmente. Por ejemplo, la selección de la referencia se puede realizar como se ha descrito anteriormente en la presente memoria con referencia a la Figura 1, por ejemplo sobre la base de una distancia o una medición de tasa de bits.
- Cuando hay disponibles diferentes filtros LPC de referencia, se pueden obtener filtros LPC de referencia 20 secundarios adicionales aplicando diversos esquemas de extrapolaciones o interpolaciones a los filtros LPC de referencia ya disponibles. Se puede transmitir un patrón de bits específico para indicar la estrategia de interpolación o extrapolación actual seleccionada por el codificador. Por ejemplo, el filtro LPC3 se puede cuantificar diferencialmente con respecto a las versiones cuantificadas de cualquiera de los filtros LPC2 o LPC4, o incluso con respecto a un valor interpolado (p.ej., promedio) entre estos dos filtros LPC2 y LPC4 cuantificados (véase Operación 25 505 de la Figura 5).
El esquema de cuantificación “fuera del bucle” descrito anteriormente se puede extender a la codificación de más de cuatro (4) filtros LPC: por ejemplo para cuantificar y transmitir el filtro LPC0 junto con la supertrama. En ese caso, el filtro LPC0 correspondiente al último filtro LPC (LPC4) calculado durante la supertrama previa se podría, como un ejemplo no limitativo, cuantificar con relación al filtro LPC4 dado que este filtro LPC4 está siempre disponible como 30 una referencia. El filtro LPC0 cuantificado se transmite al decodificador junto con un índice indicativo de uno del modo de cuantificación absoluta y el modo de cuantificación diferencial. El decodificador comprende:
- medios para recibir y extraer del flujo de bits recibido, por ejemplo un demultiplexor, el filtro LPC0 cuantificado, y el índice indicativo de uno del modo de cuantificación absoluta y el modo de cuantificación diferencial; y
- un cuantificador inverso absoluto suministrado con el filtro LPC0 cuantificado y el índice indicativo del modo de 35 cuantificación absoluta para la cuantificación inversa del filtro LPC0 cuantificado, o un cuantificador inverso diferencial suministrado con el filtro LPC0 cuantificado, y el índice indicativo del modo de cuantificación diferencial para la cuantificación inversa del filtro LPC0 cuantificado.
Transmitir el filtro LPC0 al decodificador es útil para inicializar un códec basado en LPC en el caso de conmutar de un modo de codificación no basado en LPC a un modo de codificación basado en LPC. Ejemplos de modos de 40 codificación no basados en LPC son: modulación por impulsos codificados (PCM), y codificación por transformada utilizada por ejemplo por el MP3 y por el códec de audio avanzado AAC. Ejemplos de modos de codificación basados en LPC son: predicción lineal con excitación por código (CELP) y CELP algebraica (ACELP) utilizada por el códec AMR-WB+ [1].
En códecs basados en LPC, se estiman y se transmiten al codificador uno o varios filtros LPC por trama (o por 45 supertrama). Cuando se estima y se transmite un único filtro LPC por trama, este filtro LPC se estima más frecuentemente utilizando una ventana de análisis LPC centrada en el final de la trama como se representa en la Figura 4a. Cuando se transmiten varios filtros LPC por trama (o por supertrama como en el códec AMR-WB+), se estiman más frecuentemente en posiciones espaciadas regularmente a lo largo de la longitud de la trama como se representa en la Figura 4b. El filtro LPC0 en las Figuras 4a y 4b es de hecho el último filtro LPC de la trama (o 50 supertrama) previa que se cuantifica y se transmite al decodificador.
Los códecs basados en LPC típicos generalmente utilizan valores interpolados para los filtros LPC. En el ejemplo de la Figura 4a, por ejemplo, el códec basado en LPC normalmente divide la trama en cuatro (4) subtramas y utiliza un filtro LPC interpolado diferente para cada subtrama, estando el filtro LPC de la primera subtrama más cerca del filtro LPC0 y estando el filtro LPC de la 4ª subtrama más cerca del filtro LPC1. 55
En un códec que conmuta de un modo de codificación no basado en LPC a un modo de codificación basado en LPC, el filtro LPC0 utilizado para operar el códec basado en LPC normalmente no está disponible en la primera trama que sigue a la conmutación del modo de codificación no basado en LPC al modo de codificación basado en LPC.
En ese contexto, se propone proporcionar un valor para el filtro LPC0 que está disponible tanto en el codificador 5 como en el decodificador al codificar y decodificar la primera trama después de la conmutación del modo de codificación no basado en LPC al modo de codificación basado en LPC. Más específicamente, el valor del filtro LPC0 se obtiene en el decodificador a partir los parámetros transmitidos desde el codificador.
Según una primera solución, el filtro LPC0 se determina en el codificador (utilizando análisis LPC bien conocido para los expertos en la técnica), se cuantifica y se transmite al decodificador después de que se haya decidido la 10 conmutación del modo de codificación no basado en LPC al modo de codificación basado en LPC. El decodificador utiliza el valor cuantificado transmitido y el filtro LPC0. Para cuantificar el filtro LPC0 eficientemente, se puede utilizar el esquema de cuantificación fuera del bucle como se ha descrito anteriormente, extendido a más de cuatro (4) filtros LPC.
Lo siguiente describe las segunda y tercera soluciones para estimar el filtro LPC0 en el decodificador a partir de los 15 parámetros transmitidos:
- Estimación del filtro LPC0 a partir de los otros filtros LPC transmitidos utilizando, por ejemplo, extrapolación; y
- Estimación del filtro LPC0 a partir de los otros parámetros transmitidos. Por ejemplo el filtro LPC0 se puede estimar aplicando el procedimiento de análisis LPC convencional a la señal decodificada pasada, más específicamente la salida del decodificador conmutado antes de la conmutación del modo de codificación no basado en LPC al modo de 20 codificación basado en LPC.
Cuantificación con un cuantificador vectorial algebraico uniforme
El principio de cuantificación vectorial estocástica es buscar un libro de códigos de vectores para el vecino más cercano (generalmente en términos de distancia Euclídea o distancia Euclídea ponderada) del vector a cuantificar. Al cuantificar los filtros LPC en los dominios LSF (Frecuencia Espectral de Línea) o ISF (Frecuencia Espectral de 25 Inmitancia), se utiliza generalmente una distancia Euclídea ponderada, siendo cada componente del vector ponderado de manera diferente dependiendo de su valor y el valor de los otros componentes [5]. El propósito de esa ponderación es hacer que la minimización de la distancia Euclídea se comporte tan cercanamente como sea posible a una minimización de la distorsión espectral. A diferencia de un cuantificador estocástico, un cuantificador vectorial algebraico uniforme no realiza una búsqueda exhaustiva de un libro de códigos. Es por lo tanto difícil introducir una 30 función de ponderación en el cálculo de la distancia.
En la solución propuesta en la presente memoria, los filtros LPC se cuantifican, como un ejemplo no limitativo, en el dominio LSF. Se proporcionan por lo tanto los medios apropiados para convertir el filtro LPC en el dominio de cuantificación LSF para formar el vector LSF de entrada. Más específicamente, el vector residual LSF, i.e. la diferencia entre el vector LSF de entrada y una aproximación de primera etapa de este vector LSF de entrada, se 35 deforma utilizando una función de ponderación calculada a partir de la aproximación de primera etapa, en donde la aproximación de primera etapa utiliza un cuantificador absoluto estocástico del vector LSF de entrada, un cuantificador diferencial del vector LSF de entrada, un interpolador del vector LSF de entrada, u otro elemento que dé una estimación del vector LSF de entrada a cuantificar. Deformar significa que se aplican diferentes pesos a los componentes del vector residual LSF. Puesto que la aproximación de primera etapa también está disponible en el 40 decodificador, los pesos inversos se pueden calcular también en el decodificador y la deformación inversa se puede aplicar al vector residual LSF cuantificado. Deformar el vector residual LSF según un modelo que minimiza la distorsión espectral es útil cuando el cuantificador es uniforme. Los LSF cuantificados recibidos en el decodificador son una combinación de la aproximación de primera etapa con una cuantificación de tasa de bits variable, por ejemplo AVQ (Cuantificación Vectorial Algebraica), refinamiento que se deforma inversamente en el decodificador. 45
Algunos beneficios de la solución propuesta son los siguientes:
- Con una buena función de ponderación, un cuantificador uniforme puede proporcionar una distorsión espectral relativamente uniforme.
- Las ventajas de la cuantificación vectorial de tasa de bits variable, por ejemplo AVQ (Cuantificación Vectorial Algebraica), sobre SVQ (Cuantificación Vectorial Estocástica) son un número más pequeño de tablas (memoria), 50 menor complejidad y mayor granularidad de tasa de bits.
- Otra ventaja a favor de la cuantificación vectorial de tasa de bits variable, por ejemplo AVQ (Cuantificación Vectorial Algebraica), es su tamaño de libro de códigos ilimitado; esto garantiza la misma distorsión espectral para cualquier tipo de señal.
El principio general para la cuantificación de un filtro LPC dado se da en la Figura 6. En este ejemplo no limitativo, el filtro LPC se cuantifica en el dominio LSF.
Operación 601: una calculadora calcula una aproximación 608 de primera etapa del vector 607 LSF de entrada.
Operación 602: un restador resta la aproximación 608 de primera etapa de la Operación 601 del vector 607 LSF de entrada para producir un vector 609 LSF residual. 5
Operación 603: una calculadora deriva una función de ponderación LSF 610 de la aproximación 608 de primera etapa de la Operación 601.
Operación 604: un multiplicador, o deformador, aplica la función de ponderación LSF 610 de la Operación 603 al vector 609 LSF residual de la Operación 602.
Operación 605: un cuantificador de tasa de bits variable, por ejemplo un cuantificador vectorial algebraico (AVQ) 10 cuantifica el vector 611 LSF residual ponderado resultante para suministrar un vector 612 LSF residual ponderado cuantificado.
Operación 606: un multiplexor responde a la aproximación 608 de primera etapa de la Operación 601 y el vector 612 LSF residual ponderado cuantificado de la Operación 605 para multiplexar y transmitir los índices 613 codificados correspondientes. 15
La aproximación de primera etapa (Operación 601) se puede calcular de diferentes maneras. Como un ejemplo no limitativo, la calculadora de la aproximación 608 de primera etapa puede ser un cuantificador vectorial estocástico absoluto del vector 607 LSF de entrada con un número pequeño de bits, un cuantificador diferencial del vector 607 LSF de entrada que utiliza una referencia como se ha explicado anteriormente donde la aproximación de primera etapa es la propia referencia. Por ejemplo, al cuantificar el vector LPC1 como en la Figura 5, Operación 504, la 20 calculadora de la aproximación 608 de primera etapa puede ser un cuantificador absoluto con 8 bits, o el filtro LPC2 cuantificado o el (filtro LPC2 cuantificado + filtro LPC0 cuantificado)/2.
El cálculo y propósito de la función de ponderación (Operación 603) se describe a continuación en la presente memoria.
El cuantificador inverso correspondiente se ilustra en la Figura 7. 25
Operación 701: los índices 707 codificados del codificador son demultiplexados por un demultiplexor.
Operación 702: los índices codificados demultiplexados incluyen la aproximación 708 de primera etapa.
Operación 703: dado que la aproximación de primera etapa está disponible en el decodificador como en el codificador (Operación 702), se puede utilizar una calculadora para calcular la función 709 de ponderación LSF inversa. 30
Operación 704: los índices 710 decodificados representativos del vector LSF residual ponderado cuantificado se suministran a un cuantificador vectorial inverso de tasa de bits variable, por ejemplo un cuantificador vectorial inverso algebraico (AVQ inverso) para recuperar el vector 711 LSF residual ponderado.
Operación 705: un multiplicador multiplica el vector 711 LSF residual ponderado de la Operación 704 por la función 709 de ponderación LSF inversa de la Operación 703 para recuperar el vector 712 LSF residual. 35
Operación 706: un sumador suma la aproximación 708 de primera etapa de la Operación 702 con el vector 712 LSF residual de la Operación 705 para formar el vector 713 LSF decodificado. El vector 713 LSF decodificado es una combinación de la aproximación de primera etapa de la Operación 702 con el refinamiento de cuantificación inversa de tasa de bits variable (Operación 704) que se pondera inversamente (Operación 705) en el decodificador.
Aproximación de primera etapa. 40
Como se ha explicado anteriormente un filtro LPC dado se puede cuantificar utilizando varios modos de cuantificación que incluyen cuantificación absoluta y cuantificación diferencial utilizando varias referencias. La aproximación de primera etapa depende del modo de cuantificación. En el caso de cuantificación absoluta, la aproximación de primera etapa puede utilizar un cuantificador vectorial con un número pequeño de bits (p.ej., 8 bits). En el caso de cuantificación diferencial, la aproximación de primera etapa constituye la propia referencia. Por 45 ejemplo, al cuantificar el vector LPC3 según se ilustra en la Figura 5 (Operación 505), la aproximación de primera etapa puede ser una de las siguientes:
- VQ de 8 bits (cuantificación absoluta);
- Filtro LPC2 cuantificado (cuantificación diferencial utilizando el filtro LPC2 cuantificado como referencia);
- Filtro LPC4 cuantificado (cuantificación diferencial utilizando el filtro LPC4 cuantificado como referencia); o
- Promedio de los filtros LPC2 y LPC4 cuantificados (cuantificación diferencial utilizando el (filtro LPC2 cuantificado + filtro LPC4 cuantificado)/2 como referencia).
Como un ejemplo no limitativo, en el caso de un filtro LPC de orden p expresado con parámetros LSF, en el modo de cuantificación absoluta, la aproximación de primera etapa se calcula utilizando un cuantificador vectorial estocástico 5 de 8 bits de p dimensiones aplicado al vector LSF de entrada. Una búsqueda de libro de códigos utiliza una distancia Euclídea ponderada en la que cada componente de la diferencia cuadrática entre el vector LSF de entrada y la entrada del libro de códigos se multiplica por el peso wt(i). Por ejemplo, el peso wt(i) puede ser dado por la siguiente expresión:
10
con:
d0 = f(0)
dp = SF/2 – f(p-1)
di = f(i) – f(i-1), i=1, …, p – 1
donde f(i), i=0, … p-1 es el vector LSF de entrada a cuantificar, p es el orden del análisis LP, y SF es la frecuencia 15 de muestreo interna del códec basado en LPC (en Hz).
En los modos de cuantificación diferencial, la aproximación de primera etapa se basa en filtros LPC ya cuantificados.
Como se ha explicado con referencia a la Figura 5, el conjunto de filtros LPC se cuantifica en el siguiente orden: LPC4, LPC2, LPC1 y luego LPC3. Cuando se requiere, el filtro LPC0 opcional se cuantifica después del filtro LPC4. Por lo tanto la cuantificación diferencial del filtro LPC2 solamente puede hacerse con respecto a LPC4, mientras que 20 la cuantificación diferencial del filtro LPC3 puede hacerse con respecto a LPC2, LPC4 o una combinación de LPC2 y LPC4; LPC1 no se considera una buena elección porque no es adyacente a LPC3.
Para cada aproximación de primera etapa f1ª (i), el vector LSF residual se calcula como:
r(i) = f(i) – f1ª(i), i=0, …, p-1
Como se muestra en la Figura 6, el vector 609 LSF residual de la Operación 602 se pondera (Operación 604) con la 25 función de ponderación 610 de la Operación 603 calculada en base a la aproximación de primera etapa f1ª(i) para obtener un vector 611 LSF residual deformado (Operación 604). El vector 611 LSF residual deformado se cuantifica entonces utilizando un cuantificador de tasa de bits variable, por ejemplo un cuantificador vectorial algebraico (Operación 605).
Por ejemplo, los pesos aplicados a los componentes del vector LSF residual p-ésimo pueden ser dados por la 30 siguiente relación:
con:
d0 = f1ª(0)
dp = SF/2 – f1ª(p-1) 35
di = f1ª(i) – f1ª(i-1), i=1, …, p – 1
donde f1ª(i) es la aproximación de primera etapa, SF es la frecuencia de muestreo interna en Hz del códec basado en LPC, y W es un factor de escalado que depende del modo de cuantificación. El valor de W se elige para obtener una cierta distorsión espectral objetivo y/o una cierta tasa de bits promedio objetivo una vez que el vector LSF residual deformado se cuantifica con el cuantificador de tasa de bits variable. Como un ejemplo no limitativo, el 40 cuantificador vectorial de tasa de bits variable elige la tasa de bits para un cierto vector en base a su energía promedio.
En un ejemplo ilustrativo, los cuatro (4) filtros LPC en una supertrama, así como el filtro LPC0 opcional se cuantifican según la Figura 5. La Tabla 2 muestra el factor de escalado utilizado para cada modo de cuantificación, y la codificación del índice del modo utilizado en este ejemplo. Obsérvese que el modo de cuantificación especifica cuál 45
de la cuantificación absoluta o diferencial se utiliza, y en caso de cuantificación diferencial especifica el filtro de referencia utilizado. Como se ha explicado anteriormente el filtro de referencia utilizado en la cuantificación diferencial es la aproximación de primera etapa actual para la cuantificación de tasa de bits variable.
- Filtro
- Modo de cuantificación Aproximación de primera etapa Modo codificado W
- LPC4
- Absoluta VQ de 8 bits (ninguno) 60
- LPC0
- Absoluta VQ de 8 bits 0 60
- LPC4 relativa
- LPC4 cuantificado 1 63
- LPC2
- Absoluta VQ de 8 bits 0 60
- LPC4 relativa
- LPC4 cuantificado 1 63
- LPC1
- Absoluta VQ de 8 bits 00 60
- (LPC0+LPC2)/2 relativa (Nota 1)
- (LPC0+LPC2)/2 cuantificado 01 65
- LPC2 Relativa
- LPC2 cuantificado 10 64
- LPC3
- Absoluta VQ de 8 bits 10 60
- (LPC2+LPC4)/2 relativa
- (LPC2+LPC4)/2 cuantificado 0 65
- LPC2 relativa
- LPC2 cuantificado 110 64
- LPC4 relativa
- LPC4 cuantificado 111 64
- Nota 1: en este modo, no hay cuantificador AVQ de segunda etapa
5
Tabla 2 – Posibles modos de cuantificación absoluta y relativa y señalización de flujo de bits correspondiente, y el factor de escalado y la función de ponderación.
La Figura 8 es un diagrama de bloques esquemático que explica el procedimiento de cuantificación como se ha descrito anteriormente en la presente memoria.
Operaciones 801, 8011, 8012, … 801n: el vector 800 LSF de entrada se suministra a un cuantificador absoluto 10 (Operación 801) para realizar, por ejemplo, una cuantificación vectorial absoluta de 8 bits del vector 800 LSF de entrada. El vector LSF de entrada se suministra también a cuantificadores diferenciales (Operaciones 8011, 8012, …, 801n) para realizar cuantificación diferencial del vector 800 LSF de entrada. Los cuantificadores diferenciales utilizan referencias diferentes respectivas como se ha explicado en la descripción anterior con referencia a la Figura 1. El VQ de 8 bits en la Operación 801 y las referencias en las Operaciones 8011, 8012, …, 801n representan la aproximación 15 de primera etapa.
En las Operaciones 802, 8021, 8022, … 802n una calculadora calcula un vector LSF residual a partir del vector de la aproximación de primera etapa de las Operaciones 801, 8011, 8012, … 801n, respectivamente. El vector residual se calcula como la diferencia entre el vector de entrada y la aproximación de primera etapa. Esto corresponde a las Operaciones 601 y 602 de la Figura 6. 20
En las Operaciones 803, 8031, 8032, … 803n, una calculadora calcula una función de ponderación para deformar el vector LSF residual de las Operaciones 802, 8021, 8022, … 802n, respectivamente. Esto corresponde a las Operaciones 601 y 603 de la Figura 6.
En las Operaciones 804, 8041, 8042, … 804n, un deformador multiplica el vector LSF residual de las Operaciones 802, 8021, 8022, … 802n, respectivamente, por la función de ponderación de las operaciones 803, 8031, 8032, … 25 803n, respectivamente.
En las Operaciones 805, 8051, 8052, … 805n, un cuantificador de tasa de bits variable, por ejemplo un cuantificador vectorial algebraico (AVQ) cuantifica el vector LSF residual ponderado resultante de las Operaciones 804, 8041, 8042, … 804n, respectivamente, para suministrar un vector LSF residual ponderado cuantificado.
En la Operación 806, la selección de un modo de cuantificación es realizada por un selector entre cuantificación absoluta (Operación 801) y cuantificación diferencial que utiliza una de las referencias 1, 2, … n (Operaciones 8011, 5 8012, … 801n). Por ejemplo, la Operación 806 podría seleccionar el modo de cuantificación (Operaciones 801, 8011, 8012, … 801n) que produce una menor distorsión para una tasa de bits dada o la tasa de bits más baja para un nivel de distorsión objetivo. Con respecto a la selección entre el VQ de 8 bits y las referencias 1, 2, …, n, la selección se puede realizar en bucle cerrado o en bucle abierto. En bucle cerrado, se prueban todas las referencias posibles y se elige la referencia que optimiza un cierto criterio de distorsión o tasa de bits, por ejemplo la menor distorsión para 10 una tasa de bits dada o la tasa de bits más baja para un nivel de distorsión objetivo. En bucle abierto, la Operación 806 predetermina la referencia en base al valor de los Coeficientes de Predicción Lineal del filtro LPC a cuantificar y de los Coeficientes de Predicción Lineal de los filtros LPC de referencia disponibles.
Operación 807: después de la selección en la Operación 806, un transmisor (Operación 807) comunica o señala al decodificador (no mostrado) un índice indicativo de: 15
- el modo de cuantificación (suboperación 8071), por ejemplo cuantificación absoluta o diferencial; y
- en el caso de cuantificación diferencial, de la referencia seleccionada y el cuantificador diferencial asociado de las Operaciones 8011, 8012, … 801n (suboperación 8072).
Algunos bits específicos se transmiten al decodificador para tal señalización.
Cuantificador vectorial algebraico 20
Un posible cuantificador vectorial algebraico (AVQ) utilizado por ejemplo en la Operación 605 de la Figura 6 y las Operaciones 805, 8051, 8052, … 805n de la Figura 8 se basa en el cuantificador vectorial de retícula RE8 de 8 dimensiones utilizado para cuantificar el espectro en los modos TCX de AMR-WB+ [1].
Para un LPC de orden 16, cada vector LSF residual ponderado se divide en dos sub-vectores B1 y B2 de 8 dimensiones. Cada uno de estos dos sub-vectores se cuantifica utilizando el enfoque de tres operaciones descrito 25 anteriormente.
Los vectores LSF no tienen todos la misma sensibilidad al error de cuantificación, por lo cual un cierto error de cuantificación aplicado a un vector LSF puede tener más impacto sobre la distorsión espectral que el mismo error de cuantificación aplicado a otro vector LSF. La operación de ponderación da la misma sensibilidad relativa a todos los vectores LSF ponderados. El AVQ tiene la particularidad de introducir el mismo nivel de error de cuantificación a los 30 vectores LSF ponderados (error de cuantificación uniforme). Al realizar la cuantificación inversa, la ponderación inversa que se aplica a los vectores LSF ponderados cuantificados inversamente también se aplica obviamente al error de cuantificación. Por tanto, el error de cuantificación originalmente uniforme se distribuye entre los vectores LSF cuantificados, adquiriendo los vectores LSF más sensibles un error de cuantificación más pequeño y adquiriendo los vectores LSF menos sensibles un error de cuantificación más grande. Como consecuencia, se 35 minimiza el impacto del error de cuantificación sobre la distorsión espectral.
Como se explica en la Referencia [1], el cuantificador RE8 utiliza una cuantificación fija y predeterminada. Como consecuencia, la tasa de bits requerida para codificar un subvector aumenta con la amplitud de este subvector.
El vector de escalado W controla la amplitud de los vectores LSF ponderados. Por lo tanto, el factor de escalado W también controla tanto la tasa de bits necesaria para cuantificar el vector LSF como la distorsión espectral promedio. 40
Primera operación: encontrar el vecino más cercano en la retícula RE8.
En esta primera operación, un sub-vector Bk de 8 dimensiones se redondea como un punto en la retícula RE8, para producir su versión cuantificada, k. Antes de observar el procedimiento de cuantificación, vale la pena observar las propiedades de esta retícula. La retícula RE8 se define como sigue:
RE8=2D8{2D8+(1,…,1)} 45
que es como la unión de una retícula 2D8 y una versión de la retícula 2D8 desplazada por el vector (1,1,1,1,1,1,1,1). Por lo tanto, buscar el vecino más cercano en la retícula RE8 es equivalente a buscar el vecino más cercano en la retícula 2D8, buscar luego el vecino más cercano en la retícula 2D8 + (1,1,1,1,1,1,1,1), y finalmente seleccionar el mejor de esos dos puntos de la retícula. La retícula 2D8 es la retícula D8 escalada por un factor de 2, con la retícula D8 definida como: 50
D8 = {(x1, …, x8) Z8 | x1 + … + x8 es par }
Esto es, los puntos en la retícula D8 son todos enteros, con la restricción de que la suma de todos los componentes es par. Esto también implica que la suma de los componentes de un punto en la retícula 2D8 es un entero múltiplo de 4.
A partir de esta definición de retícula RE8, es sencillo desarrollar un algoritmo rápido para buscar el vecino más cercano de un sub-vector Bk de 8 dimensiones entre todos los puntos de la retícula en la retícula RE8. Esto puede 5 hacerse aplicando las siguientes operaciones. Los componentes del sub-vector Bk son valores de coma flotante, y el resultado de la cuantificación, k, será un vector de enteros.
1. zk = 0,5 * Bk
2. Redondear cada componente de zk al entero más cercano, para generar k.
3. y1k = 2 k. 10
4. Calcular S como la suma de los componentes de y1k.
5. Si S no es un entero múltiplo de 4 (los valores negativos son posibles), entonces modificar uno de sus componentes como sigue:
- encontrar la posición I donde abs(zk(i) – y1k(i)) es el más alto
- si zk(l) – y1k(l) < 0, entonces y1k(l) = y1k(l) -2 15
- si zk(l) – y1k(l) > 0, entonces y1k(l) = y1k(l) +2
6. zk = 0,5 * (Bk – 1,0) donde 1,0 denota un vector en el que todos los componentes son 1.
7. Redondear cada componente de zk al entero más cercano, para generar k.
8. y2k = 2 k
9. Calcular S como la suma de los componentes de y2k 20
10. Si S no es un entero múltiplo de 4 (los valores negativos son posibles), entonces modificar uno de sus componentes como sigue:
- encontrar la posición I donde abs(zk(l) – y2k(l)) es el más alto
- si zk(l) – y2k(l) < 0, entonces y2k(l) = y2k(l) -2
- si zk(l) – y2k(l) > 0, entonces y2k(l) =y2k(l) +2 25
11. y2k = y2k +1,0
12. Calcular e1k = (Bk – y1k)2 y e2k = (Bk – y2k)2
13. Si e1k > e2k, entonces el mejor punto de la retícula (el vecino más cercano en la retícula) es y1k
de lo contrario el mejor punto de la retícula es y2k.
k = ck donde ck es el mejor punto de la retícula según se ha seleccionado anteriormente. 30
Segunda operación: cálculo de los índices
En la primera operación, cada sub-vector Bk de 8 dimensiones se redondeaba como un punto en la retícula RE8. El resultado es k =ck, la versión cuantificada de Bk. En la presente segunda operación se calcula un índice para cada ck para transmisión al decodificador. El cálculo de este índice se realiza como sigue.
El cálculo de un índice para un punto dado en la retícula RE8 se basa en dos principios básicos: 35
1. Todos los puntos en la retícula RE8 se encuentran en esferas concéntricas de radio con m=0, 1, 2, 3, etc., y cada punto de la retícula en una esfera dada se puede generar permutando las coordenadas de los puntos de referencia llamados líderes. Hay muy pocos líderes en una esfera, en comparación con el número total de puntos de la retícula que se encuentran en la esfera. Los libros de códigos de diferentes tasas de bits se pueden construir incluyendo esferas solo hasta un número dado m. Véase la Referencia [6] para más detalles, donde los libros de 40 códigos Q0, Q1, Q2, Q3, Q4 y Q5 se construyen con respectivamente 0, 4, 8, 12, 16 y 20 bits. Por tanto, el libro de códigos Qn requiere 4n bits para indexar cualquier punto en ese libro de códigos.
2. A partir de un libro de códigos base C (i.e., un libro de códigos que contiene todos los puntos de la retícula de un conjunto dado de esferas hasta un número m), se puede generar un libro de códigos extendido multiplicando los elementos del libro de códigos base C por un factor M, y añadiendo un libro de códigos de segunda etapa llamado extensión de Voronoi. Esta construcción es dada por y= Mz + , donde M es el factor de escalado, z es un punto en el libro de códigos base y es la extensión de Voronoi. La extensión se calcula de tal manera que cualquier punto 5 y=Mz + es también un punto en la retícula RE8. El libro de códigos extendido incluye puntos de la retícula que se extienden más lejos del origen que el libro de códigos base.
En el presente caso, el libro de códigos base C en el cuantificador LPC puede ser cualquiera de los libros de códigos Q0, Q2, Q3, o Q4 de la Referencia [6]. Cuando un punto ck de la retícula dado no se incluye en estos libros de códigos base, se aplica la extensión de Voronoi, utilizando esta vez solamente el libro de códigos Q3 o Q4. Obsérvese que 10 aquí, Q2 Q3 pero Q3 Q4.
Entonces, el cálculo del índice para cada punto ck de la retícula, obtenido en la primera operación, se realiza según las siguientes operaciones.
Verificar si ck está el libro de códigos base C. Esto implica verificar si ck es un elemento de los libros de códigos Q0, Q2, Q3, o Q4 de la Referencia [6]. 15
- Si ck es un elemento del libro de códigos base C, el índice utilizado para codificar ck es por tanto el número nk del libro de códigos más el índice Ik del vector de códigos ck en el libro de códigos Qnk. El número nk del libro de códigos se codifica como se describe en una tercera operación. El índice Ik indica el rango del vector de códigos ck, i.e., la permutación a aplicar a un líder específico para obtener ck (véase la Referencia [7]). Si nk =0, entonces Ik no utiliza bits. De lo contrario, el índice Ik utiliza 4nk bits. 20
- Si ck no está en el libro de códigos base, entonces aplicar la extensión de Voronoi mediante las siguientes suboperaciones, utilizando esta vez solamente el libro de códigos Q3 o Q4 como el libro de códigos base.
V0 Establecer el orden de la extensión r=1 y el factor de escalado M=2’= 2.
V1 Calcular el índice de Voronoi k del punto ck de la retícula. El índice de Voronoi k depende del orden de la extensión r y el factor de escalado M. El índice de Voronoi se calcula mediante operaciones de módulo de tal 25 manera que k depende solamente de la posición relativa de ck en una región de Voronoi escalada y trasladada.
k = modM(ckG-1)
donde G es la matriz generadora y modM(·) es la operación de módulo M de componente racional. Por tanto, el índice de Voronoi k es un vector de enteros con cada componente comprendido en el intervalo 0 a M-1.
V2 Calcular el vector de códigos de Voronoi del índice de Voronoi k. Esto se puede implementar utilizando un 30 algoritmo como se describe en la referencia [8].
V3 Calcular el vector de diferencia w = ck – v. Este vector de diferencia w siempre pertenece a la retícula m escalada, donde es la retícula RE8. Calcular z = w/M, i.e., aplicar el escalado inverso al vector de diferencia w. El vector de códigos z pertenece a la retícula dado que w pertenece a M.
V4 Verificar si z está en el libro de códigos base C (i.e., en Q3 o Q4). 35
Si z no está en el libro de códigos base C, incrementar el orden de la extensión r por 1, multiplicar el factor de escala M por 2, y volver a la suboperación V1. De lo contrario, si z está en el libro de códigos base C, entonces se ha encontrado un orden de la extensión r y un factor de escalado M=2’ suficientemente grande para codificar el índice de ck. El índice está formado por tres partes: 1) el número nk del libro de códigos como un código unario definido a continuación; 2) el rango Ik de z en el libro de códigos base correspondiente (bien Q3 o bien Q4); y 3) los 8 índices 40 del vector de índice de Vornoi k calculado en la suboperación V1, donde cada índice requiere exactamente r bits (r es el orden de la extensión de Voronoi establecido en la suboperación V0). El número nk del libro de códigos se codifica como se describe en la tercera operación.
El punto ck de la retícula se describe entonces como:
ck = Mz +v 45
Tercera Operación: codificación de longitud variable de los números del libro de códigos.
Los números nk del libro de códigos se codifican utilizando un código de longitud variable que depende de la posición del filtro LPC y del modo de cuantificación, como se indica en la Tabla 3.
- Filtro
- Modo de cuantificación modo nk
- LPC4
- Absoluta 0
- LPC0
- Absoluta 0
- LPC4 relativa
- 3
- LPC2
- Absoluta 0
- LPC4 relativa
- 3
- LPC1
- Absoluta 0
- (LPC0+LPC2)/2 relativa
- 1
- LPC2 relativa
- 2
- LPC3
- Absoluta 0
- (LPC2+LPC4)/2 relativa
- 1
- LPC2 relativa
- 2
- LPC4 relativa
- 2
Tabla 3 – Modos de codificación para los números nk del libro de códigos
modos nk 0 y 3:
El número nk del libro de códigos se codifica como un código de longitud variable, como sigue:
Q2 → el código para nk es 00 5
Q3 → el código para nk es 01
Q4 → el código para nk es 10
Otros: el código para nk es 11 seguido de:
Q5 → 0
Q6 → 10 10
Q0 → 110
Q7 → 1110
Q8 → 11110
etc.
modo nk 1: 15
El número nk del libro de códigos se codifica como un código unario, como sigue:
Q0 → el código unario para nk es 0
Q2 → el código unario para nk es 10
Q3 → el código unario para nk es 110
Q4 → el código unario para nk es 1110 20
etc.
modo nk 2:
El número nk del libro de códigos se codifica como un código de longitud variable, como sigue:
Q2 → el código para nk es 00
Q3 -→ el código para nk es 01
Q4 → el código para nk es 10
Otros: el código para nk es 11 seguido de:
Q0 → 0 5
Q5 → 10
Q6 → 110
etc.
Decisión del modo de cuantificación
Para cada vector LSF, todos los posibles modos de cuantificación absoluta y diferencial como se ha descrito en la 10 Tabla 2 son probados cada uno y, por ejemplo, se selecciona el modo de cuantificación que requiere el mínimo número de bits. El modo de cuantificación codificado y el conjunto correspondiente de índices de cuantificación se transmiten al decodificador.
Como se ha mencionado en la descripción anterior, el número actual de filtros LPC cuantificados transmitidos desde el codificador al decodificador no es fijo sino que depende de la decisión de ACELP/TCX tomada en el codificador. 15 Por ejemplo, el TCX largo (TCX1024) requiere solamente la transmisión del filtro LPC4 cuantificado mientras que cualquier combinación que implique ACELP o TCX corto (TCX256) requiere la transmisión de todos los cuatro (4) filtros LPC cuantificados LPC1 a LPC4. Solamente los filtros LPC cuantificados que son requeridos por la configuración del modo ACELP/TCX se transmiten realmente.
Proceso de decodificación de cuantificador vectorial algebraico 20
Como se ha mencionado anteriormente en la presente memoria, el número actual de filtros LC cuantificados codificados dentro del flujo de bits depende de la combinación de modo ACELP/TCX de la supertrama. La combinación de modo ACELP/TCX se extrae del flujo de bits y determina los modos de codificación, mod[k] para k=0 a 3, de cada una de las cuatro (4) tramas que componen la supertrama. El valor del modo es 0 para ACELP, 1 para TCX256, 2 para TCX512, 3 para TCX1024. 25
Además del uno (1) a cuatro (4) filtros LPC cuantificados de la supertrama, el filtro LPC0 cuantificado opcional, anteriormente descrito, se transmite para la primera supertrama de cada segmento codificado utilizando el códec basado en predicción lineal.
El orden en el que los filtros LPC cuantificados se encuentran normalmente en el flujo de bits es: LPC4, el LPC0 opcional, LPC2, LPC1, y LPC3. 30
La condición para la presencia de un filtro LPC dado dentro del flujo de bits se resume en la tabla 4.
- Filtro LPC
- Presente si
- LPC0
- 1ª supertrama codificada utilizando LP
- LPC1
- mod[0] < 2
- LPC2
- mod[2] < 3
- LPC3
- mod[2] < 2
- LPC4
- Siempre
Tabla 4- Condición para la presencia de un filtro LPC dado en el flujo de bits
La Figura 9 es un diagrama de bloques esquemático que resume el proceso de decodificación.
Operaciones 901 y 902: el decodificador comprende medios para recibir y extraer, por ejemplo un demultiplexor, del 35 flujo de bits recibido los índices de cuantificación correspondientes a cada uno de los filtros LPC cuantificados requeridos por la combinación de modo ACELP/TCX. Para un filtro LPC cuantificado dado, un determinador del modo de cuantificación extrae del flujo de bits recibido del codificador el índice o la información relativa al modo de
cuantificación, y determina si el modo de cuantificación es el modo de cuantificación absoluta o diferencial como se indica en la Tabla 2.
Operaciones 903 y 905: cuando las operaciones 901 y 902 determinan que el modo de cuantificación es el modo de cuantificación absoluta, un extractor extrae del flujo de bits el índice o índices correspondientes a la aproximación de primera etapa cuantificada por VQ estocástica (Operación 903). Una calculadora calcula entonces la aproximación 5 de primera etapa mediante cuantificación inversa (Operación 905).
Operaciones 904 y 905: cuando las Operaciones 901 y 902 determinan que el modo de cuantificación es el modo de cuantificación diferencial (no el modo de cuantificación absoluta), un extractor extrae del flujo de bits los índices o la información representativa de la referencia entre la pluralidad de referencias posibles, por ejemplo el vector LPC de referencia (Operación 904). La calculadora calcula entonces a partir de esta información la aproximación de primera 10 etapa como se ha descrito con referencia a la Tabla 2 (Operación 905).
En la Operación 906, un extractor de información de VQ extrae del flujo de bits recibido del codificador información de VQ de tasa de bits variable, por ejemplo información de AVQ. Más específicamente, como un ejemplo no limitativo, la información de AVQ para los dos sub-vectores k LSF residuales se extraen del flujo de bits. La información de AVQ normalmente comprende dos números del libro de códigos codificados y los índices de AVQ 15 correspondientes. La única excepción es cuando el filtro LPC1 se cuantifica diferencialmente con relación al (filtro LPC0 cuantificado + filtro LPC2 cuantificado)/2, dado que en este caso no hay información de AVQ presente en el flujo de bits. En el caso de ésta última excepción, el vector 909 LSF cuantificado se emite como la aproximación de primera etapa de la Operación 905.
Operación 907: un cuantificador vectorial algebraico inverso recibe la información de AVQ extraída de la Operación 20 906 para cuantificar inversamente, o ponderar inversamente y recuperar la contribución de AVQ.
Decodificación de los índices de AVQ
Decodificar los filtros LPC implica decodificar la información de AVQ extraída, por ejemplo los parámetros de AVQ que describen cada sub-vector k cuantificado del vector LSF residual ponderado. En el ejemplo anterior, cada sub-vector Bk tiene una dimensión 8. Los parámetros de AVQ para cada sub-vector Bk se describen en la segunda 25 operación de la cuantificación vectorial algebraica descrita anteriormente. Para cada sub-vector k cuantificado, tres conjuntos de índices binarios son enviados por el codificador al decodificador:
a) el número nk del libro de códigos, transmitido utilizando un código de entropía como se ha descrito en la tercera operación de la cuantificación vectorial algebraica descrita anteriormente;
b) el rango Ik de un punto z de la retícula seleccionado en un libro de códigos base, que indica qué 30 permutación debe aplicarse a un líder específico (véase la segunda operación de la cuantificación vectorial algebraica descrita anteriormente) para obtener un punto z de la retícula; y
c) si el sub-vector k cuantificado (un punto de la retícula en la retícula RE8) no estaba en el libro de códigos base, los 8 índices del vector k de índice de la extensión de Voronoi calculado en la sub-operación V1 de la segunda operación de la cuantificación vectorial algebraica descrita anteriormente; a partir de los índices de 35 la extensión de Voronoi, un vector v de la extensión se puede calcular como se enseña en la Referencia [8]. El número de bits en cada componente del vector k de índice es dado por el orden r de la extensión, que se puede obtener a partir del valor de código del índice nk. El factor de escalado M de la extensión de Voronoi es dado por M=2’.
Entonces, a partir del factor M de escalado, el vector v de la extensión de Voronoi (un punto de la retícula en la 40 retícula RE8) y el punto z de la retícula en el libro de códigos base (también un punto de la retícula en la retícula RE8), cada sub-vector k escalado cuantificado se puede calcular utilizando la siguiente relación:
k = Mz + v
Cuando no hay extensión de Voronoi (i.e., nk < 5, M=1 y z=0), el libro de códigos base es cualquiera de los libros de códigos Q0, Q2, Q3 o Q4 de la referencia [6]. No se requieren entonces bits para transmitir el vector k. De lo contrario, 45 cuando la extensión de Voronoi se utiliza porque k es lo suficientemente grande, entonces solamente se utiliza Q3 o Q4 de la Referencia [6] como un libro de códigos base. La selección de Q3 o Q4 está implícita en el valor de número nk del libro de códigos como se ha descrito en la segunda operación de la cuantificación vectorial algebraica descrita anteriormente.
Operación 908: un sumador suma la aproximación de primera etapa de la Operación 905 a la contribución de AVQ 50 ponderada inversamente de la Operación 907 para reconstruir y recuperar el vector 909 LSF cuantificado.
Aunque la presente invención se ha definido en la descripción anterior por medio de realizaciones ilustrativas de la misma, estas realizaciones se pueden modificar a voluntad, dentro del alcance de las reivindicaciones adjuntas.
Referencias 5
10
15
20
25
30
Claims (4)
1. Un dispositivo para cuantificar un filtro LPC en forma de un vector (607) de frecuencia espectral de línea (LSF) de entrada, que comprende:
medios (601) para calcular una aproximación (608) de primera etapa del vector LSF de entrada;
medios (602) para restar la aproximación de primera etapa del vector LSF de entrada para producir un vector (609) residual; 5
medios (603) para calcular una función de ponderación (610) a partir de la aproximación de primera etapa;
medios (604) para aplicar la función de ponderación (610) al vector (609) residual;
un cuantificador vectorial algebraico (605) para cuantificar el vector residual ponderado para suministrar un vector (612) LSF residual ponderado cuantificado; y
un multiplexor de la aproximación (608) de primera etapa y del vector (612) LSF residual ponderado cuantificado 10 en los índices (613) codificados multiplexados correspondientes.
2. Un dispositivo para la cuantificación inversa de un filtro LPC, que comprende:
un demultiplexor (701) para recibir índices (707) codificados representativos de una aproximación (708) de primera etapa de un vector de frecuencia espectral de línea (LSF) representativo del filtro LPC, y una versión (710) residual ponderada cuantificada del vector LSF; 15
medios (703) para calcular una función (709) de ponderación inversa a partir de la aproximación de primera etapa;
un cuantificador (704) vectorial algebraico inverso para la cuantificación inversa de la versión residual ponderada cuantificada del vector LSF para producir un vector (711) residual ponderado;
medios (705) para aplicar la función de ponderación inversa al vector residual ponderado para producir un vector 20 (712) residual; y
medios (706) para sumar la aproximación de primera etapa con el vector residual para producir el vector LSF.
3. Un método para cuantificar un filtro LPC en forma de un vector (607) de frecuencia espectral de línea (LSF) de entrada, que comprende:
calcular una aproximación (608) de primera etapa del vector LSF de entrada; 25
restar la aproximación de primera etapa del vector LSF de entrada para producir un vector (609) residual;
calcular una función de ponderación (610) a partir de la aproximación de primera etapa;
aplicar la función de ponderación (610) al vector (609) residual;
cuantificar, utilizando un cuantificador vectorial algebraico (605), el vector residual ponderado para suministrar un vector (612) LSF residual ponderado cuantificado); y 30
multiplexar la aproximación (608) de primera etapa y el vector (612) LSF residual ponderado cuantificado en los índices (613) codificados multiplexados correspondientes.
4. Un método para la cuantificación inversa de un filtro LPC, que comprende:
demultiplexar (701) los índices (707) codificados representativos de una aproximación (708) de primera etapa de un vector de frecuencia espectral de línea (LSF) representativo del filtro LPC; y una versión (710) residual 35 ponderada cuantificada del vector LSF;
calcular una función (709) de ponderación inversa a partir de la aproximación (708) de primera etapa;
cuantificar inversamente, utilizando un cuantificador (704) vectorial algebraico inverso, la versión (710) residual ponderada cuantificada del vector LSF para producir un vector (711) residual ponderado;
aplicar la función de ponderación inversa al vector residual ponderado para producir un vector (712) residual; y 40
sumar la aproximación (708) de primera etapa con el vector (712) residual para producir el vector LSF.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202075P | 2000-05-05 | ||
US12966908P | 2008-07-10 | 2008-07-10 | |
US129669P | 2008-07-10 | ||
US20207509P | 2009-01-27 | 2009-01-27 | |
PCT/CA2009/000980 WO2010003253A1 (en) | 2008-07-10 | 2009-07-10 | Variable bit rate lpc filter quantizing and inverse quantizing device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2645375T3 true ES2645375T3 (es) | 2017-12-05 |
Family
ID=41506638
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES09793769.2T Active ES2645375T3 (es) | 2008-07-10 | 2009-07-10 | Dispositivo y método de cuantificación y cuantificación inversa de filtro LPC de tasa de bits variable |
ES09793768.4T Active ES2639747T3 (es) | 2008-07-10 | 2009-07-10 | Dispositivo y método para cuantificar filtros de LPC en una súper-trama |
ES09793770.0T Active ES2650492T3 (es) | 2008-07-10 | 2009-07-10 | Dispositivo y método de cuantificación de filtro LPC de múltiples referencias |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES09793768.4T Active ES2639747T3 (es) | 2008-07-10 | 2009-07-10 | Dispositivo y método para cuantificar filtros de LPC en una súper-trama |
ES09793770.0T Active ES2650492T3 (es) | 2008-07-10 | 2009-07-10 | Dispositivo y método de cuantificación de filtro LPC de múltiples referencias |
Country Status (17)
Country | Link |
---|---|
US (4) | US8332213B2 (es) |
EP (3) | EP2301021B1 (es) |
JP (2) | JP2011527442A (es) |
KR (2) | KR101604774B1 (es) |
CN (2) | CN102119414B (es) |
BR (1) | BRPI0915450B1 (es) |
CA (5) | CA2729751C (es) |
CY (3) | CY1119501T1 (es) |
DK (3) | DK2313887T3 (es) |
ES (3) | ES2645375T3 (es) |
HK (2) | HK1153840A1 (es) |
MX (1) | MX2011000363A (es) |
NO (1) | NO2313887T3 (es) |
PL (1) | PL2313887T3 (es) |
PT (3) | PT2301021T (es) |
RU (2) | RU2509379C2 (es) |
WO (3) | WO2010003252A1 (es) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008107027A1 (en) | 2007-03-02 | 2008-09-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and arrangements in a telecommunications network |
CN101308655B (zh) * | 2007-05-16 | 2011-07-06 | 展讯通信(上海)有限公司 | 一种音频编解码方法与装置 |
EP2077550B8 (en) * | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
US20110158189A1 (en) * | 2009-12-29 | 2011-06-30 | Industrial Technology Research Institute | Methods and Apparatus for Multi-Transmitter Collaborative Communications Systems |
KR101660843B1 (ko) | 2010-05-27 | 2016-09-29 | 삼성전자주식회사 | Lpc 계수 양자화를 위한 가중치 함수 결정 장치 및 방법 |
CN102934161B (zh) * | 2010-06-14 | 2015-08-26 | 松下电器产业株式会社 | 音频混合编码装置以及音频混合解码装置 |
EP3422346B1 (en) * | 2010-07-02 | 2020-04-22 | Dolby International AB | Audio encoding with decision about the application of postfiltering when decoding |
KR101747917B1 (ko) * | 2010-10-18 | 2017-06-15 | 삼성전자주식회사 | 선형 예측 계수를 양자화하기 위한 저복잡도를 가지는 가중치 함수 결정 장치 및 방법 |
CN104025191A (zh) * | 2011-10-18 | 2014-09-03 | 爱立信(中国)通信有限公司 | 用于自适应多速率编解码器的改进方法和设备 |
US9842598B2 (en) * | 2013-02-21 | 2017-12-12 | Qualcomm Incorporated | Systems and methods for mitigating potential frame instability |
US9208775B2 (en) * | 2013-02-21 | 2015-12-08 | Qualcomm Incorporated | Systems and methods for determining pitch pulse period signal boundaries |
BR112015025009B1 (pt) * | 2013-04-05 | 2021-12-21 | Dolby International Ab | Unidades de quantização e quantização inversa, codificador e decodificador, métodos para quantizar e dequantizar |
EP3961622B1 (en) | 2013-05-24 | 2023-11-01 | Dolby International AB | Audio encoder |
FR3008533A1 (fr) * | 2013-07-12 | 2015-01-16 | Orange | Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences |
CN104299614B (zh) * | 2013-07-16 | 2017-12-29 | 华为技术有限公司 | 解码方法和解码装置 |
US10970967B2 (en) * | 2014-09-24 | 2021-04-06 | Jcm American Corporation | Electronic voucher ticket system |
US9407989B1 (en) | 2015-06-30 | 2016-08-02 | Arthur Woodrow | Closed audio circuit |
WO2017162260A1 (en) * | 2016-03-21 | 2017-09-28 | Huawei Technologies Co., Ltd. | Adaptive quantization of weighted matrix coefficients |
US10366698B2 (en) | 2016-08-30 | 2019-07-30 | Dts, Inc. | Variable length coding of indices and bit scheduling in a pyramid vector quantizer |
WO2019121980A1 (en) * | 2017-12-19 | 2019-06-27 | Dolby International Ab | Methods and apparatus systems for unified speech and audio decoding improvements |
TWI812658B (zh) | 2017-12-19 | 2023-08-21 | 瑞典商都比國際公司 | 用於統一語音及音訊之解碼及編碼去關聯濾波器之改良之方法、裝置及系統 |
KR102697685B1 (ko) | 2017-12-19 | 2024-08-23 | 돌비 인터네셔널 에이비 | 통합 음성 및 오디오 디코딩 및 인코딩 qmf 기반 고조파 트랜스포저 개선을 위한 방법, 장치 및 시스템 |
US10950251B2 (en) * | 2018-03-05 | 2021-03-16 | Dts, Inc. | Coding of harmonic signals in transform-based audio codecs |
Family Cites Families (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0443548B1 (en) | 1990-02-22 | 2003-07-23 | Nec Corporation | Speech coder |
US6006174A (en) * | 1990-10-03 | 1999-12-21 | Interdigital Technology Coporation | Multiple impulse excitation speech encoder and decoder |
US5255339A (en) * | 1991-07-19 | 1993-10-19 | Motorola, Inc. | Low bit rate vocoder means and method |
US5233660A (en) * | 1991-09-10 | 1993-08-03 | At&T Bell Laboratories | Method and apparatus for low-delay celp speech coding and decoding |
FI90477C (fi) * | 1992-03-23 | 1994-02-10 | Nokia Mobile Phones Ltd | Puhesignaalin laadun parannusmenetelmä lineaarista ennustusta käyttävään koodausjärjestelmään |
EP0751496B1 (en) | 1992-06-29 | 2000-04-19 | Nippon Telegraph And Telephone Corporation | Speech coding method and apparatus for the same |
JP3255189B2 (ja) * | 1992-12-01 | 2002-02-12 | 日本電信電話株式会社 | 音声パラメータの符号化方法および復号方法 |
BR9404725A (pt) * | 1993-03-26 | 1999-06-15 | Motorola Inc | Processo de quantificação por vetor de um vetor de coeficiente de reflexão ótimo processo de codificação de fala sistema de comunicação de rádio e processo de armazenagem de vetores de coeficiente de reflexão |
WO1995010760A2 (en) | 1993-10-08 | 1995-04-20 | Comsat Corporation | Improved low bit rate vocoders and methods of operation therefor |
FI98163C (fi) * | 1994-02-08 | 1997-04-25 | Nokia Mobile Phones Ltd | Koodausjärjestelmä parametriseen puheenkoodaukseen |
JP3013698B2 (ja) * | 1994-04-20 | 2000-02-28 | 松下電器産業株式会社 | ベクトル量子化符号化装置と復号化装置 |
CA2154911C (en) * | 1994-08-02 | 2001-01-02 | Kazunori Ozawa | Speech coding device |
JP3235703B2 (ja) * | 1995-03-10 | 2001-12-04 | 日本電信電話株式会社 | ディジタルフィルタのフィルタ係数決定方法 |
US6263307B1 (en) * | 1995-04-19 | 2001-07-17 | Texas Instruments Incorporated | Adaptive weiner filtering using line spectral frequencies |
US5649051A (en) * | 1995-06-01 | 1997-07-15 | Rothweiler; Joseph Harvey | Constant data rate speech encoder for limited bandwidth path |
JP3537008B2 (ja) * | 1995-07-17 | 2004-06-14 | 株式会社日立国際電気 | 音声符号化通信方式とその送受信装置 |
TW321810B (es) * | 1995-10-26 | 1997-12-01 | Sony Co Ltd | |
US5956674A (en) | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
JP3094908B2 (ja) * | 1996-04-17 | 2000-10-03 | 日本電気株式会社 | 音声符号化装置 |
US6904404B1 (en) * | 1996-07-01 | 2005-06-07 | Matsushita Electric Industrial Co., Ltd. | Multistage inverse quantization having the plurality of frequency bands |
JP3357795B2 (ja) * | 1996-08-16 | 2002-12-16 | 株式会社東芝 | 音声符号化方法および装置 |
JP3707153B2 (ja) | 1996-09-24 | 2005-10-19 | ソニー株式会社 | ベクトル量子化方法、音声符号化方法及び装置 |
JP3707154B2 (ja) * | 1996-09-24 | 2005-10-19 | ソニー株式会社 | 音声符号化方法及び装置 |
US6154499A (en) | 1996-10-21 | 2000-11-28 | Comsat Corporation | Communication systems using nested coder and compatible channel coding |
US6167375A (en) | 1997-03-17 | 2000-12-26 | Kabushiki Kaisha Toshiba | Method for encoding and decoding a speech signal including background noise |
DE19730130C2 (de) | 1997-07-14 | 2002-02-28 | Fraunhofer Ges Forschung | Verfahren zum Codieren eines Audiosignals |
US6889185B1 (en) * | 1997-08-28 | 2005-05-03 | Texas Instruments Incorporated | Quantization of linear prediction coefficients using perceptual weighting |
TW408298B (en) * | 1997-08-28 | 2000-10-11 | Texas Instruments Inc | Improved method for switched-predictive quantization |
WO1999010719A1 (en) * | 1997-08-29 | 1999-03-04 | The Regents Of The University Of California | Method and apparatus for hybrid coding of speech at 4kbps |
DE69836785T2 (de) * | 1997-10-03 | 2007-04-26 | Matsushita Electric Industrial Co., Ltd., Kadoma | Audiosignalkompression, Sprachsignalkompression und Spracherkennung |
JP3842432B2 (ja) | 1998-04-20 | 2006-11-08 | 株式会社東芝 | ベクトル量子化方法 |
US6823303B1 (en) * | 1998-08-24 | 2004-11-23 | Conexant Systems, Inc. | Speech encoder using voice activity detection in coding noise |
US7072832B1 (en) * | 1998-08-24 | 2006-07-04 | Mindspeed Technologies, Inc. | System for speech encoding having an adaptive encoding arrangement |
US6507814B1 (en) * | 1998-08-24 | 2003-01-14 | Conexant Systems, Inc. | Pitch determination using speech classification and prior pitch estimation |
US7272556B1 (en) | 1998-09-23 | 2007-09-18 | Lucent Technologies Inc. | Scalable and embedded codec for speech and audio signals |
FR2784218B1 (fr) * | 1998-10-06 | 2000-12-08 | Thomson Csf | Procede de codage de la parole a bas debit |
JP3343082B2 (ja) * | 1998-10-27 | 2002-11-11 | 松下電器産業株式会社 | Celp型音声符号化装置 |
US6691082B1 (en) | 1999-08-03 | 2004-02-10 | Lucent Technologies Inc | Method and system for sub-band hybrid coding |
US7315815B1 (en) | 1999-09-22 | 2008-01-01 | Microsoft Corporation | LPC-harmonic vocoder with superframe structure |
US6782360B1 (en) * | 1999-09-22 | 2004-08-24 | Mindspeed Technologies, Inc. | Gain quantization for a CELP speech coder |
AU7486200A (en) | 1999-09-22 | 2001-04-24 | Conexant Systems, Inc. | Multimode speech encoder |
US6792405B2 (en) * | 1999-12-10 | 2004-09-14 | At&T Corp. | Bitstream-based feature extraction method for a front-end speech recognizer |
JP2002055699A (ja) * | 2000-08-10 | 2002-02-20 | Mitsubishi Electric Corp | 音声符号化装置および音声符号化方法 |
JP2002055700A (ja) | 2000-08-11 | 2002-02-20 | Hitachi Kokusai Electric Inc | 音声信号符号復号化システム |
KR100872538B1 (ko) * | 2000-11-30 | 2008-12-08 | 파나소닉 주식회사 | Lpc 파라미터의 벡터 양자화 장치, lpc 파라미터복호화 장치, lpc 계수의 복호화 장치, 기록 매체,음성 부호화 장치, 음성 복호화 장치, 음성 신호 송신장치, 및 음성 신호 수신 장치 |
US6996523B1 (en) * | 2001-02-13 | 2006-02-07 | Hughes Electronics Corporation | Prototype waveform magnitude quantization for a frequency domain interpolative speech codec system |
KR20020075592A (ko) | 2001-03-26 | 2002-10-05 | 한국전자통신연구원 | 광대역 음성 부호화기용 lsf 양자화기 |
US7003454B2 (en) * | 2001-05-16 | 2006-02-21 | Nokia Corporation | Method and system for line spectral frequency vector quantization in speech codec |
US6584437B2 (en) * | 2001-06-11 | 2003-06-24 | Nokia Mobile Phones Ltd. | Method and apparatus for coding successive pitch periods in speech signal |
US6658383B2 (en) * | 2001-06-26 | 2003-12-02 | Microsoft Corporation | Method for coding speech and music signals |
US6711027B2 (en) | 2001-07-23 | 2004-03-23 | Intel Corporation | Modules having paths of different impedances |
US7647223B2 (en) * | 2001-08-16 | 2010-01-12 | Broadcom Corporation | Robust composite quantization with sub-quantizers and inverse sub-quantizers using illegal space |
US7386447B2 (en) * | 2001-11-02 | 2008-06-10 | Texas Instruments Incorporated | Speech coder and method |
SE521600C2 (sv) * | 2001-12-04 | 2003-11-18 | Global Ip Sound Ab | Lågbittaktskodek |
JP4263412B2 (ja) | 2002-01-29 | 2009-05-13 | 富士通株式会社 | 音声符号変換方法 |
US20040002856A1 (en) * | 2002-03-08 | 2004-01-01 | Udaya Bhaskar | Multi-rate frequency domain interpolative speech CODEC system |
JP4649208B2 (ja) | 2002-07-16 | 2011-03-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | オーディオコーディング |
US7536305B2 (en) * | 2002-09-04 | 2009-05-19 | Microsoft Corporation | Mixed lossless audio compression |
CA2511516C (en) | 2002-12-24 | 2009-03-03 | Nokia Corporation | Method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding |
KR100486732B1 (ko) | 2003-02-19 | 2005-05-03 | 삼성전자주식회사 | 블럭제한된 트렐리스 부호화 양자화방법과 음성부호화시스템에있어서 이를 채용한 라인스펙트럼주파수 계수양자화방법 및 장치 |
WO2004090864A2 (en) | 2003-03-12 | 2004-10-21 | The Indian Institute Of Technology, Bombay | Method and apparatus for the encoding and decoding of speech |
BRPI0409970B1 (pt) * | 2003-05-01 | 2018-07-24 | Nokia Technologies Oy | “Método para codificar um sinal de som amostrado, método para decodificar um fluxo de bit representativo de um sinal de som amostrado, codificador, decodificador e fluxo de bit” |
FR2867649A1 (fr) * | 2003-12-10 | 2005-09-16 | France Telecom | Procede de codage multiple optimise |
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 |
FR2869151B1 (fr) | 2004-04-19 | 2007-01-26 | Thales Sa | Procede de quantification d'un codeur de parole a tres bas debit |
RU2006137841A (ru) * | 2004-04-27 | 2008-05-10 | Мацусита Электрик Индастриал Ко., Лтд. (Jp) | Устройство масштабируемого кодирования, устройство масштабируемого декодирования и способ для этого |
US7739120B2 (en) * | 2004-05-17 | 2010-06-15 | Nokia Corporation | Selection of coding models for encoding an audio signal |
US7596486B2 (en) * | 2004-05-19 | 2009-09-29 | Nokia Corporation | Encoding an audio signal using different audio coder modes |
JP4871501B2 (ja) * | 2004-11-04 | 2012-02-08 | パナソニック株式会社 | ベクトル変換装置及びベクトル変換方法 |
BRPI0608306A2 (pt) | 2005-04-01 | 2009-12-08 | Qualcomm Inc | sistemas, métodos e equipamentos para supressão de rajada em banda alta |
JP2009511948A (ja) | 2005-10-05 | 2009-03-19 | エルジー エレクトロニクス インコーポレイティド | 信号処理方法及び装置、エンコーディング及びデコーディング方法並びにそのための装置 |
JP2007142547A (ja) | 2005-11-15 | 2007-06-07 | Oki Electric Ind Co Ltd | 符号化方法及び復号化方法とその符号器及び復号器 |
RU2462770C2 (ru) * | 2007-03-02 | 2012-09-27 | Панасоник Корпорэйшн | Устройство кодирования и способ кодирования |
CN101110214B (zh) * | 2007-08-10 | 2011-08-17 | 北京理工大学 | 一种基于多描述格型矢量量化技术的语音编码方法 |
US8515767B2 (en) * | 2007-11-04 | 2013-08-20 | Qualcomm Incorporated | Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs |
EP2077550B8 (en) | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
WO2009090876A1 (ja) * | 2008-01-16 | 2009-07-23 | Panasonic Corporation | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 |
US8386271B2 (en) * | 2008-03-25 | 2013-02-26 | Microsoft Corporation | Lossless and near lossless scalable audio codec |
GB2466670B (en) * | 2009-01-06 | 2012-11-14 | Skype | Speech encoding |
-
2009
- 2009-07-10 ES ES09793769.2T patent/ES2645375T3/es active Active
- 2009-07-10 ES ES09793768.4T patent/ES2639747T3/es active Active
- 2009-07-10 MX MX2011000363A patent/MX2011000363A/es active IP Right Grant
- 2009-07-10 US US12/501,188 patent/US8332213B2/en active Active
- 2009-07-10 DK DK09793769.2T patent/DK2313887T3/da active
- 2009-07-10 JP JP2011516938A patent/JP2011527442A/ja active Pending
- 2009-07-10 ES ES09793770.0T patent/ES2650492T3/es active Active
- 2009-07-10 CA CA2729751A patent/CA2729751C/en active Active
- 2009-07-10 NO NO09793769A patent/NO2313887T3/no unknown
- 2009-07-10 CN CN2009801267394A patent/CN102119414B/zh active Active
- 2009-07-10 BR BRPI0915450-7A patent/BRPI0915450B1/pt active IP Right Grant
- 2009-07-10 US US12/501,201 patent/US9245532B2/en not_active Ceased
- 2009-07-10 WO PCT/CA2009/000979 patent/WO2010003252A1/en active Application Filing
- 2009-07-10 DK DK09793770.0T patent/DK2301022T3/en active
- 2009-07-10 PT PT97937684T patent/PT2301021T/pt unknown
- 2009-07-10 RU RU2011104784/08A patent/RU2509379C2/ru active
- 2009-07-10 CA CA2729752A patent/CA2729752C/en active Active
- 2009-07-10 WO PCT/CA2009/000981 patent/WO2010003254A1/en active Application Filing
- 2009-07-10 US US12/501,197 patent/US8712764B2/en active Active
- 2009-07-10 PT PT97937700T patent/PT2301022T/pt unknown
- 2009-07-10 KR KR1020117002977A patent/KR101604774B1/ko active IP Right Grant
- 2009-07-10 WO PCT/CA2009/000980 patent/WO2010003253A1/en active Application Filing
- 2009-07-10 DK DK09793768.4T patent/DK2301021T3/en active
- 2009-07-10 JP JP2011516937A patent/JP5710476B2/ja active Active
- 2009-07-10 EP EP09793768.4A patent/EP2301021B1/en active Active
- 2009-07-10 KR KR1020117002983A patent/KR101592968B1/ko active IP Right Grant
- 2009-07-10 EP EP09793770.0A patent/EP2301022B1/en active Active
- 2009-07-10 CA CA2972812A patent/CA2972812C/en active Active
- 2009-07-10 PL PL09793769T patent/PL2313887T3/pl unknown
- 2009-07-10 PT PT97937692T patent/PT2313887T/pt unknown
- 2009-07-10 EP EP09793769.2A patent/EP2313887B1/en active Active
- 2009-07-10 CA CA2729665A patent/CA2729665C/en active Active
- 2009-07-10 CA CA2972808A patent/CA2972808C/en active Active
- 2009-07-10 CN CN2009801267267A patent/CN102089810B/zh active Active
- 2009-07-10 RU RU2011104813/08A patent/RU2011104813A/ru unknown
-
2011
- 2011-07-27 HK HK11107811.9A patent/HK1153840A1/xx unknown
- 2011-08-04 HK HK11108095.4A patent/HK1154109A1/xx unknown
-
2017
- 2017-09-08 CY CY20171100951T patent/CY1119501T1/el unknown
- 2017-10-26 CY CY20171101113T patent/CY1119494T1/el unknown
- 2017-12-05 CY CY20171101272T patent/CY1119659T1/el unknown
-
2018
- 2018-01-23 US US15/877,829 patent/USRE49363E1/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2645375T3 (es) | Dispositivo y método de cuantificación y cuantificación inversa de filtro LPC de tasa de bits variable | |
US10249313B2 (en) | Adaptive bandwidth extension and apparatus for the same | |
RU2459282C2 (ru) | Масштабируемое кодирование речи и аудио с использованием комбинаторного кодирования mdct-спектра | |
Ragot et al. | Itu-t g. 729.1: An 8-32 kbit/s scalable coder interoperable with g. 729 for wideband telephony and voice over ip | |
CN104126201B (zh) | 用于语音编码的混合码本激励的系统和方法 | |
Ragot et al. | Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit/s | |
KR100647290B1 (ko) | 합성된 음성의 특성을 이용하여 양자화/역양자화를선택하는 음성 부호화/복호화 장치 및 그 방법 | |
US20100280830A1 (en) | Decoder |