ES2665599T3 - Codificador y descodificador de audio - Google Patents

Codificador y descodificador de audio Download PDF

Info

Publication number
ES2665599T3
ES2665599T3 ES14715307.6T ES14715307T ES2665599T3 ES 2665599 T3 ES2665599 T3 ES 2665599T3 ES 14715307 T ES14715307 T ES 14715307T ES 2665599 T3 ES2665599 T3 ES 2665599T3
Authority
ES
Spain
Prior art keywords
envelope
transform coefficients
blocks
block
transform
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
Application number
ES14715307.6T
Other languages
English (en)
Inventor
Lars Villemoes
Janusz Klejsa
Per Hedelin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dolby International AB
Original Assignee
Dolby International AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International AB filed Critical Dolby International AB
Application granted granted Critical
Publication of ES2665599T3 publication Critical patent/ES2665599T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients

Abstract

Un codificador de voz basado en transformada (100, 170) configurado para codificar una señal de voz en un flujo de bits; comprendiendo el codificador (100, 170): - una unidad de generación de tramas (101) configurada para recibir un conjunto (132, 332) de bloques; donde el conjunto (132, 332) de bloques comprende una pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la pluralidad de bloques (131) indica muestras de la señal de voz; donde un bloque (131) de coeficientes de transformada comprende una pluralidad de coeficientes de transformada para una pluralidad correspondiente de celdas de frecuencia (301); - una unidad de estimación de envolvente (102) configurada para determinar una envolvente actual (133) en función de la pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la envolvente actual (133) indica una pluralidad de valores de energía espectral (303) para la pluralidad correspondiente de celdas de frecuencia (301); - una unidad de cuantificación de envolvente (103) configurada para determinar una envolvente actual cuantificada (134) cuantificando la envolvente actual (133); - una unidad de interpolación de envolvente (104) configurada para determinar una pluralidad de envolventes interpoladas (136) para la pluralidad de bloques (131) de coeficientes de transformada, respectivamente, en función de la envolvente actual cuantificada (134) y en función de una envolvente previa cuantificada (134); y - una unidad de aplanamiento (108) configurada para determinar una pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la pluralidad correspondiente de bloques (131) de coeficientes de transformada usando la pluralidad correspondiente de envolventes interpoladas (136), respectivamente; donde el flujo de bits se determina en función de la pluralidad de bloques (140) de coeficientes de transformada aplanados.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Codificador y descodificador de audio Campo técnico
El presente documento se refiere a un sistema de codificación y de descodificación de audio (denominado sistema de códecs de audio). En particular, el presente documento se refiere a un sistema de códecs de audio basado en transformada que, en particular, es muy adecuado para la codificación/descodificación de voz.
Antecedentes
Los codificadores de audio perceptuales de propósito general consiguen ganancias de codificación relativamente altas usando transformadas tales como la transformada discreta del coseno modificada (MDCT) con tamaños de bloque de muestras que abarcan varias decenas de milisegundos (por ejemplo, 20 ms). Un ejemplo de un sistema de códecs de audio basado en transformada de este tipo es la codificación de audio avanzada (AaC) o la AAC de alta eficacia (HE-ACC). Sin embargo, cuando se usan tales sistemas de códec de audio basados en transformada para señales de voz, la calidad de las señales de voz se degrada más rápidamente que la calidad de las señales musicales, llegando a velocidades binarias más bajas, especialmente en el caso de señales de voz seca (no reverberante). Por tanto, los sistemas de códecs de audio basados en transformada no son muy adecuados, en esencia, para la codificación de señales de voz o para la codificación de señales de audio que comprenden una componente de voz. Dicho de otro modo, los sistemas de códecs de audio basados en transformada presentan una asimetría en lo que respecta a la ganancia de codificación conseguida para las señales musicales en comparación con la ganancia de codificación conseguida para las señales de voz. Esta asimetría puede afrontarse añadiendo complementos a la codificación basada en transformada, donde los complementos tienen como objetivo una conformación espectral o una adaptación de señal mejoradas. Ejemplos de tales complementos son una conformación previa/posterior, una conformación de ruido temporal (TNS) y una MDCT deformada en el tiempo. Además, esta asimetría puede afrontarse mediante la incorporación de un codificador de voz clásico de dominio de tiempo basado en filtrado de predicción a corto plazo (LPC) o en predicción a largo plazo (LTP).
Puede observarse que las mejoras obtenidas proporcionando complementos a la codificación basada en transformada no son generalmente suficientes para igualar la diferencia de rendimiento entre la codificación de señales de música y de señales de voz. Por otro lado, la incorporación de un codificador de voz clásico de dominio de tiempo atenúa la diferencia de rendimiento hasta el punto en que la asimetría de rendimiento se invierte hacia el sentido contrario. Esto se debe a que los codificadores de voz clásicos de dominio de tiempo modelan el sistema de producción de voz humana y se han optimizado para la codificación de señales de voz.
En vista de lo anterior, puede usarse un códec de audio basado en transformada en combinación con un códec de voz clásico de dominio de tiempo, donde el códec de voz clásico de dominio de tiempo se usa para segmentos de voz de una señal de audio y donde el códec basado en transformada se usa para los segmentos restantes de la señal de audio. Sin embargo, la coexistencia de un códec de dominio de tiempo y de dominio de transformada en un único sistema de códecs de audio requiere herramientas fiables para la conmutación entre los diferentes códecs, en función de las propiedades de la señal de audio. Además, la conmutación real entre un códec de dominio de tiempo (para contenido de voz) y un códec de dominio de transformada (para el contenido restante) puede ser difícil de implementar. En particular, puede ser difícil garantizar una transición suave entre el códec de dominio de tiempo y el códec de dominio de transformada (y viceversa). Además, pueden requerirse modificaciones en el códec de dominio de tiempo para hacer que el códec de dominio de tiempo sea más robusto en lo que respecta a la inevitable codificación ocasional de señales que no son de voz, por ejemplo en la codificación de una voz que canta con un fondo instrumental. El presente documento afronta los problemas técnicos mencionados anteriormente de los sistemas de códecs de audio. En particular, el presente documento describe un sistema de códecs de audio que convierte solamente las características críticas de un códec de voz y, por lo tanto, consigue un rendimiento uniforme para la voz y la música manteniendo la arquitectura de un códec basado en transformada. Dicho de otro modo, el presente documento describe un códec de audio basado en transformada que es, en particular, muy adecuado para la codificación de señales de habla o de voz.
El documento de la técnica anterior titulado "Digital Audio Coding: Dolby AC-3' describe un codificador/descodificador de voz basado en transformada, que proporciona información de envolvente para una trama que consiste en varios bloques secuenciales de coeficientes de transformada.
Resumen
Según un aspecto, se describe un codificador de voz basado en transformada según la reivindicación 1 (codificador) y la reivindicación 7 (descodificador).
Breve descripción de las figuras
5
10
15
20
25
30
35
40
45
50
55
La invención se explica a continuación a modo de ejemplo con referencia a los dibujos adjuntos, en los que:
la Fig. 1a muestra un diagrama de bloques de un codificador de audio de ejemplo que proporciona un flujo de bits a una velocidad binaria constante;
la Fig. 1b muestra un diagrama de bloques de un codificador de audio de ejemplo que proporciona un flujo de bits a una velocidad binaria variable;
la Fig. 2 ilustra la generación de una envolvente de ejemplo según una pluralidad de bloques de coeficientes de transformada;
la Fig. 3a ilustra envolventes de ejemplo de bloques de coeficientes de transformada; la Fig. 3b ilustra la determinación de una envolvente interpolada de ejemplo; la Fig. 4 ilustra conjuntos de cuantificadores de ejemplo;
la Fig. 5a muestra un diagrama de bloques de un descodificador de audio de ejemplo;
la Fig. 5b muestra un diagrama de bloques de un descodificador de envolvente de ejemplo del descodificador de audio de la Fig. 5a;
la Fig. 5c muestra un diagrama de bloques de un predictor de subbanda de ejemplo del descodificador de audio de la Fig. 5a; y
la Fig. 5d muestra un diagrama de bloques de un descodificador de espectro de ejemplo del descodificador de audio de la Fig. 5a.
Descripción detallada
Como se ha indicado en la sección de los antecedentes, es deseable proporcionar un códec de audio basado en transformada que tenga ganancias de codificación relativamente altas para señales de habla o de voz. Un códec de audio basado en transformada de este tipo puede denominarse códec de habla basado en transformada o códec de voz basado en transformada. Un códec de voz basado en transformada puede combinarse de manera conveniente con un códec de audio genérico basado en transformada, tal como un AAC o un HE-AAC, ya que también funciona en el dominio de transformada. Además, la clasificación de un segmento (por ejemplo, una trama) de una señal de audio de entrada como de voz o de no voz y la subsiguiente conmutación entre el códec de audio genérico y el códec de voz específico pueden simplificarse, debido a que ambos códecs funcionan en el dominio de transformada.
La Fig. 1a muestra un diagrama de bloques de un codificador de voz basado en transformada 100 de ejemplo. El codificador 100 recibe como entrada un bloque 131 de coeficientes de transformada (también denominado unidad de codificación). El bloque 131 del coeficiente de transformada puede haberse obtenido mediante una unidad de transformada configurada para transformar una secuencia de muestras de la señal de audio de entrada desde el dominio de tiempo al dominio de transformada. La unidad de transformada puede configurarse para realizar una MDCT. La unidad de transformada puede ser parte de un códec de audio genérico, tal como un AAC o un HE-AAC. Tal códec de audio genérico puede usar diferentes tamaños de bloque, por ejemplo un bloque largo y un bloque corto. Tamaños de bloque de ejemplo son 1024 muestras para un bloque largo y 256 muestras para un bloque corto. Suponiendo una frecuencia de muestreo de 44,1 kHz y un solapamiento del 50%, un bloque largo abarca 20 ms aproximadamente de la señal de audio de entrada, y un bloque corto abarca 5 ms aproximadamente de la señal de audio de entrada. Los bloques largos se usan normalmente para segmentos estacionarios de la señal de audio de entrada, y los bloques cortos se usan normalmente para segmentos transitorios de la señal de audio de entrada.
Las señales de voz pueden considerarse estacionarias en segmentos temporales de 20 ms aproximadamente. En particular, la envolvente espectral de una señal de voz puede considerarse estacionaria en segmentos temporales de 20 ms aproximadamente. Para poder obtener estadísticas fiables en el domino de transformada para tales segmentos de 20 ms, puede ser útil dotar al codificador de voz basado en transformada 100 de bloques cortos 131 de coeficientes de transformada (que tienen una longitud de, por ejemplo, 5 ms). Al hacer esto, una pluralidad de bloques cortos 131 pueden usarse para obtener estadísticas relacionadas con segmentos de tiempo de, por ejemplo, 20 ms (por ejemplo, el segmento de tiempo de un bloque largo o trama). Además, esto tiene la ventaja de proporcionar una resolución de tiempo adecuada para las señales de voz.
Por tanto, la unidad de transformada puede configurarse para proporcionar bloques cortos 131 de coeficientes de transformada, si un segmento actual de la señal de audio de entrada se clasifica como de voz. El codificador 100 puede comprender una unidad de generación de tramas 101 configurada para extraer una pluralidad de bloques 131 de coeficientes de transformada, denominados conjunto 132 de bloques 131. El conjunto 132 de bloques también puede denominarse trama. A modo de ejemplo, el conjunto 132 de bloques 131 puede comprender cuatro bloques cortos de 256 coeficientes de transformada, lo que abarca por tanto, aproximadamente, un segmento de 20 ms de la señal de audio de entrada.
5
10
15
20
25
30
35
40
45
50
55
60
65
El codificador de voz basado en transformada 100 puede estar configurado para funcionar en una pluralidad de modos diferentes, por ejemplo en un modo de corto espaciamiento y en modo de largo espaciamiento. Cuando funciona en el modo de corto espaciamiento, el codificador de voz basado en transformada 100 puede estar configurado para subdividir un segmento o una trama de la señal de audio (por ejemplo, la señal de voz) en un conjunto 132 de bloques cortos 131 (como se ha indicado anteriormente). Por otro lado, cuando funciona en el modo de largo espaciamiento, el codificador de voz basado en transformada 100 puede estar configurado para procesar directamente el segmento o la trama de la señal de audio.
A modo de ejemplo, cuando funciona en el modo de corto espaciamiento, el codificador 100 puede estar configurado para procesar cuatro bloques 131 por trama. Las tramas del codificador 100 pueden ser relativamente cortas en tiempo físico para ciertas configuraciones de una operación síncrona de trama de vídeo. Esto es particularmente el caso de una frecuencia de trama de vídeo aumentada (por ejemplo, 100 Hz frente a 50 Hz), lo que da lugar a una reducción de la longitud temporal del segmento o de la trama de la señal de voz. En tales casos, la subdivisión de la trama en una pluralidad de bloques (cortos) 131 puede ser desventajosa debido a la menor resolución en el dominio de transformada. Por tanto, puede usarse un modo de largo espaciamiento para utilizar solamente un bloque 131 por trama. El uso de un único bloque 131 por trama también puede ser beneficioso para codificar señales de audio que incluyen música (incluso en tramas relativamente largas). Los beneficios pueden deberse a la mayor resolución en el domino de transformada cuando solo se usa un único bloque 131 por trama o cuando se usa un número reducido de bloques 131 por trama.
A continuación se describe en mayor detalle el funcionamiento del codificador 100 en el modo de corto espaciamiento. El conjunto 132 de bloques puede proporcionarse a una unidad de estimación de envolvente 102. La unidad de estimación de envolvente 102 puede configurarse para determinar una envolvente 133 en función del conjunto 132 de bloques. La envolvente 133 puede estar basada en valores de media cuadrática (RMS) de coeficientes de transformada correspondientes de la pluralidad de bloques 131 comprendidos en el conjunto 132 de bloques. Un bloque 131 proporciona normalmente una pluralidad de coeficientes de transformada (por ejemplo, 256 coeficientes de transformada) en una pluralidad correspondiente de celdas de frecuencia 301 (véase la Fig. 3a). La pluralidad de celdas de frecuencia 301 puede agruparse en una pluralidad de bandas de frecuencia 302. La pluralidad de bandas de frecuencia 302 puede seleccionarse según consideraciones psicoacústicas. A modo de ejemplo, las celdas de frecuencia 301 pueden agruparse en bandas de frecuencia 302 según una escala logarítmica o una escala de Bark. La envolvente 134 que se ha determinado en función de un conjunto actual 132 de bloques puede comprender una pluralidad de valores de energía para la pluralidad de bandas de frecuencia 302, respectivamente. Un valor de energía particular para un banda de frecuencia particular 302 puede determinarse en función de los coeficientes de transformada de los bloques 131 del conjunto 132, que corresponden a celdas de frecuencia 301 que están dentro de la banda de frecuencia particular 302. El valor de energía particular puede determinarse en función del valor RMS de estos coeficientes de transformada. De este modo, una envolvente 133 para un conjunto actual 132 de bloques (denominada envolvente actual 133) puede indicar una envolvente promedio de los bloques 131 de coeficientes de transformada comprendidos en el conjunto actual 132 de bloques, o puede indicar una envolvente promedio de bloques 132 de coeficientes de transformada usados para determinar la envolvente 133.
Debe observarse que la envolvente actual 133 puede determinarse en función de uno o más bloques adicionales 131 de coeficientes de transformada adyacentes al conjunto actual 132 de bloques. Esto se ilustra en la Fig. 2, donde la envolvente actual 133 (indicada por la envolvente actual cuantificada 134) se determina en función de los bloques 131 del conjunto actual 132 de bloques y en función del bloque 201 del conjunto de bloques anterior al conjunto actual 132 de bloques. En el ejemplo ilustrado, la envolvente actual 133 se determina en función de cinco bloques 131. Teniendo en cuenta bloques adyacentes cuando se determina la envolvente actual 133, puede garantizarse la continuidad de las envolventes de conjuntos adyacentes 132 de bloques.
Cuando se determina la envolvente actual 133 pueden ponderarse los coeficientes de transformada de los diferentes bloques 131. En particular, los bloques más externos 201, 202 que se tienen en cuenta para determinar la envolvente actual 133 pueden tener un menor peso que los bloques restantes 131. A modo de ejemplo, los coeficientes de transformada de los bloques más externos 201, 202 pueden ponderarse con 0,5, donde los coeficientes de transformada de los otros bloques 131 pueden ponderarse con 1.
Debe observarse que, de manera similar a la consideración de los bloques 201 de un conjunto previo 132 de bloques, uno o más bloques (denominados bloques de anticipación) de un conjunto directamente posterior 132 de bloques pueden considerarse para determinar la envolvente actual 133.
Los valores de energía de la envolvente actual 133 pueden representarse en una escala logarítmica (por ejemplo, en una escala de dB). La envolvente actual 133 puede proporcionarse a una unidad de cuantificación de envolvente 103 que está configurada para cuantificar los valores de energía de la envolvente actual 133. La unidad de cuantificación de envolvente 103 puede proporcionar una resolución de cuantificador predeterminada, por ejemplo una resolución de 3 dB. Los índices de cuantificación de la envolvente 133 pueden proporcionarse como datos de envolvente 161 en un flujo de bits generado por el codificador 100. Además, la envolvente cuantificada 134, es decir,
5
10
15
20
25
30
35
40
45
50
55
60
65
la envolvente que comprende los valores de energía cuantificados de la envolvente 133, puede proporcionarse a una unidad de interpolación 104.
La unidad de interpolación 104 está configurada para determinar una envolvente para cada bloque 131 del conjunto actual 132 de bloques en función de la envolvente actual cuantificada 134 y en función de la envolvente previa cuantificada 135 (que se ha determinado para el conjunto 132 de bloques directamente anterior al conjunto actual 132 de bloques). El funcionamiento de la unidad de interpolación 104 se ilustra en las Fig. 2, 3a y 3b. La Fig. 2 muestra una secuencia de bloques 131 de coeficientes de transformada. La secuencia de bloques 131 se agrupa en conjuntos subsiguientes 132 de bloques, donde cada conjunto 132 de bloques se usa para determinar una envolvente cuantificada, por ejemplo la envolvente actual cuantificada 134 y la envolvente previa cuantificada 135. La Fig. 3a muestra ejemplos de una envolvente previa cuantificada 135 y de una envolvente actual cuantificada 134. Como se ha indicado anteriormente, las envolventes pueden indicar la energía espectral 303 (por ejemplo, en una escala de dB). Valores de energía 303 correspondientes de la envolvente previa cuantificada 135 y de la envolvente actual cuantificada 134 para la misma banda de frecuencia 302 pueden interpolarse (por ejemplo, usando interpolación lineal) para determinar una envolvente interpolada 136. Dicho de otro modo, los valores de energía 303 de una banda de frecuencia particular 302 pueden interpolarse para proporcionar el valor de energía 303 de la envolvente interpolada 136 en la banda de frecuencia particular 302.
Debe observarse que el conjunto de bloques para el que las envolventes interpoladas 136 se determinan y aplican puede ser diferente del conjunto actual 132 de bloques, en función de lo cual se determina la envolvente actual cuantificada 134. Esto se ilustra en la Fig. 2, que muestra un conjunto desplazado 332 de bloques, que está desplazado en comparación con el conjunto actual 132 de bloques y que comprende los bloques 3 y 4 del conjunto previo 132 de bloques (indicados mediante los números de referencia 203 y 201, respectivamente) y los bloques 1 y 2 del conjunto actual 132 de bloques (indicados mediante los números de referencia 204 y 205, respectivamente). De hecho, las envolventes interpoladas 136 determinadas en función de la envolvente actual cuantificada 134 y en función de la envolvente previa cuantificada 135 pueden tener una mayor relevancia para los bloques del conjunto desplazado 332 de bloques, en comparación con la relevancia para los bloques del conjunto actual 132 de bloques.
Por tanto, las envolventes interpoladas 136 mostradas en la Fig. 3b pueden usarse para aplanar los bloques 131 del conjunto desplazado 332 de bloques. Esto se muestra en la Fig. 3b en combinación con la Fig. 2. Puede observarse que la envolvente interpolada 341 de la Fig. 3b puede aplicarse al bloque 203 de la Fig. 2, que la envolvente interpolada 342 de la Fig. 3b puede aplicarse al bloque 201 de la Fig. 2, que la envolvente interpolada 343 de la Fig. 3b puede aplicarse al bloque 204 de la Fig. 2, y que la envolvente interpolada 344 de la Fig. 3b (que en el ejemplo ilustrado corresponde a la envolvente actual cuantificada 136) puede aplicarse al bloque 205 de la Fig. 2. De este modo, el conjunto 132 de bloques para determinar la envolvente actual cuantificada 134 puede ser diferente del conjunto desplazado 332 de bloques para el que se determinan las envolventes interpoladas 136 y al que se aplican las envolventes interpoladas 136 (con fines de aplanamiento). En particular, la envolvente actual cuantificada 134 puede determinarse usando una cierta anticipación con respecto a los bloques 203, 201, 204, 205 del conjunto desplazado 332 de bloques, los cuales van a aplanarse usando la envolvente actual cuantificada 134. Esto es beneficioso desde el punto de vista de la continuidad.
La interpolación de los valores de energía 303 para determinar envolventes interpoladas 136 se ilustra en la Fig. 3b. Puede observarse que mediante la interpolación entre un valor de energía de la envolvente previa cuantificada 135 y el valor de energía correspondiente de la envolvente actual cuantificada 134, pueden determinarse valores de energía de las envolventes interpoladas 136 para los bloques 131 del conjunto desplazado 332 de bloques. En particular, para cada bloque 131 del conjunto desplazado 332 puede determinarse una envolvente interpolada 136, lo que proporciona una pluralidad de envolvente interpoladas 136 para la pluralidad de bloques 203, 201, 204, 205 del conjunto desplazado 332 de bloques. La envolvente interpolada 136 de un bloque 131 de coeficiente de transformada (por ejemplo, cualquiera de los bloques 203, 201, 204, 205 del conjunto desplazado 332 de bloques) puede usarse para codificar el bloque 131 de coeficientes de transformada. Debe observarse que los índices de cuantificación 161 de la envolvente actual 133 se proporcionan a un descodificador correspondiente en el flujo de bits. Por consiguiente, el descodificador correspondiente puede estar configurado para determinar la pluralidad de envolventes interpoladas 136 de una manera análoga con respecto a la unidad de interpolación 104 del codificador 100.
La unidad de generación de tramas 101, la unidad de estimación de envolvente 102, la unidad de cuantificación de envolvente 103 y la unidad de interpolación 104 actúan en un conjunto de bloques (es decir, el conjunto actual 132 de bloques y/o el conjunto desplazado 332 de bloques). Por otro lado, la codificación real del coeficiente de transformada puede realizarse bloque a bloque. A continuación se hace referencia a la codificación de un bloque actual 131 de coeficientes de transformada, que puede ser uno cualquiera de la pluralidad de bloques 131 del conjunto desplazado 332 de bloques (o posiblemente el conjunto actual 132 de bloques en otras implementaciones del codificador de voz basado en transformada 100).
Además, debe observarse que el codificador 100 puede hacerse funcionar en el denominado modo de largo espaciamiento. En este modo, una trama de segmento de la señal de audio no está subdividida y se procesa como un único bloque. Por tanto, solo se determina por trama un único bloque 131 de coeficientes de transformada.
5
10
15
20
25
30
35
40
45
50
55
60
Cuando funciona en el modo de largo espaciamiento, la unidad de generación de tramas 101 puede configurarse para extraer el único bloque actual 131 de coeficientes de transformada para el segmento o la trama de la señal de audio. La unidad de estimación de envolvente 102 puede configurarse para determinar la envolvente actual 133 para el bloque actual 131 y la unidad de cuantificación de envolvente 103 puede configurarse para cuantificar la única envolvente actual 133 para determinar la envolvente actual cuantificada 134 (y para determinar los datos de envolvente 161 para el bloque actual 131). Durante el modo de largo espaciamiento, la interpolación de envolvente está normalmente obsoleta. Por tanto, la envolvente interpolada 136 para el bloque actual 131 corresponde normalmente a la envolvente actual cuantificada 134 (cuando el codificador 100 está funcionando en el modo de largo espaciamiento).
La envolvente interpolada actual 136 para el bloque actual 131 puede proporcionar una aproximación de la envolvente espectral de los coeficientes de transformada del bloque actual 131. El codificador 100 puede comprender una unidad de aplanamiento previo 105 y una unidad de determinación de ganancia de envolvente 106 que están configuradas para determinar una envolvente ajustada 139 para el bloque actual 131 en función de la envolvente interpolada actual 136 y en función del bloque actual 131. En particular, una ganancia de envolvente para el bloque actual 131 puede determinarse de tal manera que se ajuste la varianza de los coeficientes de transformada aplanados del bloque actual 131. X(k), k = 1,..., K pueden ser los coeficientes de transformada del bloque actual 131 (donde, por ejemplo, K = 256), y E(k), k = 1,..., K pueden ser los valores de energía espectral promedio 303 de la envolvente interpolada actual 136 (donde los valores de energía E(k) de una misma banda de frecuencia 302 son ¡guales). La ganancia de envolvente a puede determinarse de modo que se ajuste la varianza de los coeficientes de
X(k) = -^=L
transformada aplanados aVE('0. En particular, la ganancia de envolvente a puede determinarse de manera
que la varianza sea uno.
Debe observarse que la ganancia de envolvente a puede determinarse para un subintervalo del intervalo de frecuencias completo del bloque actual 131 de los coeficientes de transformada. Dicho de otro modo, la ganancia de envolvente a puede determinarse solamente en función de un subconjunto de las celdas de frecuencia 301 y/o solamente en función de un subconjunto de las bandas de frecuencia 302. A modo de ejemplo, la ganancia de envolvente a puede determinarse en función de las celdas de frecuencia 301 mayores que una celda de frecuencia de inicio 304 (siendo la celda de frecuencia de inicio mayor que 0 o 1). En consecuencia, la envolvente ajustada 139 para el bloque actual 131 puede determinarse aplicando la ganancia de envolvente a solamente a los valores de energía espectral promedio 303 de la envolvente interpolada actual 136 que están asociados a las celdas de frecuencia 301 que están por encima de la celda de frecuencia de inicio 304. Por tanto, la envolvente ajustada 139 para el bloque actual 131 puede corresponder a la envolvente interpolada actual 136, para celdas de frecuencia 301 en y por debajo de la celda de frecuencia de inicio, y puede corresponder a la envolvente interpolada actual 136 desfasada por la ganancia de envolvente a, para celdas de frecuencia 301 por encima de la celda de frecuencia de inicio. Esto se ilustra en la Fig. 3a mediante la envolvente ajustada 339 (mostrada en líneas discontinuas).
La aplicación de la ganancia de envolvente a 137 (que también se denomina ganancia de corrección de nivel) en la envolvente interpolada actual 136 corresponde a un ajuste o un desfase de la envolvente interpolada actual 136, lo que da como resultado una envolvente ajustada 139, como se ilustra en la Fig. 3a. La ganancia de envolvente a 137 puede codificarse como datos de ganancia 162 en el flujo de bits.
El codificador 100 puede comprender además una unidad de refinamiento de envolvente 107 que está configurada para determinar la envolvente ajustada 139 en función de la ganancia de envolvente a 137 y en función de la envolvente interpolada actual 136. La envolvente ajustada 139 puede usarse para el procesamiento de señales del bloque 131 de coeficientes de transformada. La ganancia de envolvente a 137 puede cuantificarse a una mayor resolución (por ejemplo, en etapas de 1 dB) en comparación con la envolvente interpolada actual 136 (que puede cuantificarse en etapas de 3dB). De este modo, la envolvente ajustada 139 puede cuantificarse a la mayor resolución de la ganancia de envolvente a 137 (por ejemplo, en etapas de 1 dB).
Además, la unidad de refinamiento de envolvente 107 puede configurarse para determinar una envolvente de asignación 138. La envolvente de asignación 138 puede corresponder a una versión cuantificada de la envolvente ajustada 139 (por ejemplo, cuantificada a niveles de cuantificación de 3 dB). La envolvente de asignación 138 puede usarse con fines de asignación de bits. En particular, la envolvente de asignación 138 puede usarse para determinar, para un coeficiente de transformada particular del bloque actual 131, un cuantificador particular a partir de un conjunto predeterminado de cuantificadores, donde el cuantificador particular va a usarse para cuantificar el coeficiente de transformada particular.
El codificador 100 comprende una unidad de aplanamiento 108 configurada para aplanar el bloque actual 131 usando la envolvente ajustada 139, proporcionando así el bloque 140 de coeficientes de transformada aplanados X(k). El bloque 140 de coeficientes de transformada aplanados X(k) pueden codificarse usando un bucle de predicción en el dominio de transformada. De este modo, el bloque 140 puede codificarse usando un predictor de subbanda 117. El bucle de predicción comprende una unidad de diferencia 115 configurada para determinar un bloque 141 de coeficientes de error de predicción A(k) en función del bloque 140 de coeficientes de transformada
5
10
15
20
25
30
35
40
45
50
55
60
65
aplanados X(k) y en función de un bloque 150 de coeficientes de transformada estimados X(k), por ejemplo A(k) = X(k) -X(k). Debe observarse que debido a que el bloque 140 comprende coeficientes de transformada aplanados, es decir, coeficientes de transformada que se han normalizado o aplanado usando los valores de energía 303 de la envolvente ajustada 139, el bloque 150 de coeficientes de transformada estimados también comprende estimaciones de coeficientes de transformada aplanados. Dicho de otro modo, la unidad de diferencia 115 funciona en el denominado dominio aplanado. En consecuencia, el bloque 141 de coeficientes de error de predicción A(k) se representa en el dominio aplanado. El bloque 141 de coeficientes de error de predicción A(k) puede presentar una varianza diferente al valor uno. El codificador 100 puede comprender una unidad de reescalado 111 configurada para reescalar los coeficientes de error de predicción A(k) para proporcionar un bloque 142 de coeficientes de error reescalados. La unidad de reescalado 111 puede usar una o más reglas heurísticas predeterminadas para realizar el reescalado. Como resultado, el bloque 142 de coeficientes de error reescalados presenta una varianza que (por término medio) está más próxima a uno (en comparación con el bloque 141 de coeficientes de error de predicción). Esto puede ser beneficioso para la cuantificación y codificación subsiguientes. El codificador 100 comprende una unidad de cuantificación de coeficientes 112 configurada para cuantificar el bloque 141 de coeficientes de error de predicción o el bloque 142 de coeficientes de error reescalados. La unidad de cuantificación de coeficientes 112 puede comprender o usar un conjunto de cuantificadores predeterminados. El conjunto de cuantificadores predeterminados puede proporcionar cuantificadores con diferentes grados de precisión o diferente resolución. Esto se ilustra en la Fig. 4, donde se ilustran diferentes cuantificadores 321, 322, 323. Los diferentes cuantificadores pueden proporcionar diferentes niveles de precisión (indicados mediante los diferentes valores en dB). Un cuantificador particular de la pluralidad de cuantificadores 321, 322, 323 puede corresponder a un valor particular de la envolvente de asignación 138. De este modo, un valor de energía de la envolvente de asignación 138 puede apuntar a un cuantificador correspondiente de la pluralidad de cuantificadores. De este modo, la determinación de una envolvente de asignación 138 puede simplificar el proceso de selección de un cuantificador que se usará para un coeficiente de error particular. Dicho de otro modo, la envolvente de asignación 138 puede simplificar el proceso de asignación de bits.
El conjunto de cuantificadores puede comprender uno o más cuantificadores 322 que añaden ruido aleatorio para aleatorizar el error de cuantificación. Esto se ilustra en la Fig. 4, que muestra un primer conjunto 326 de cuantificadores predeterminados que comprende un subconjunto 324 de cuantificadores con ruido aleatorio y un segundo conjunto 327 de cuantificadores predeterminados que comprende un subconjunto 325 de cuantificadores con ruido aleatorio. De este modo, la unidad de cuantificación de coeficientes 112 puede usar diferentes conjuntos 326, 327 de cuantificadores predeterminados, donde el conjunto de cuantificadores predeterminados que va a usarse por la unidad de cuantificación de coeficientes 112 puede depender de un parámetro de control 146 proporcionado por el predictor 117. En particular, la unidad de cuantificación de coeficientes 112 puede configurarse para seleccionar un conjunto 326, 327 de cuantificadores predeterminados para cuantificar el bloque 142 de coeficientes de error reescalados, en función del parámetro de control 146, donde el parámetro de control 146 puede depender de uno o más parámetros de predictor proporcionados por el predictor 117. El uno o más parámetros de predictor pueden indicar la calidad del bloque 150 de coeficientes de transformada estimados proporcionados por el predictor 117.
Los coeficientes de error cuantificados pueden codificarse por entropía usando, por ejemplo, un código de Huffman, proporcionando así datos de coeficientes 163 que se incluirán en el flujo de bits generado por el codificador 100.
El codificador 100 puede estar configurado para realizar un proceso de asignación de bits. Con este fin, el codificador 100 puede comprender unidades de asignación de bits 109, 110. La unidad de asignación de bits 109 puede estar configurada para determinar el número total de bits 143 que están disponibles para codificar el bloque actual 142 de coeficientes de error reescalados. El número total de bits 143 puede determinarse en función de la envolvente de asignación 138. La unidad de asignación de bits 110 puede estar configurada para proporcionar una asignación relativa de bits a los diferentes coeficientes de error reescalados, dependiendo del valor de energía correspondiente en la envolvente de asignación 138.
El proceso de asignación de bits puede usar un procedimiento de asignación iterativo. En el transcurso del procedimiento de asignación, la envolvente de asignación 138 puede desfasarse usando un parámetro de desfase, seleccionándose de este modo cuantificadores con una mayor/menor resolución. De este modo, el parámetro de desfase puede usarse para refinar o hacer más tosca la cuantificación global. El parámetro de desfase puede determinarse de manera que los datos de coeficientes 163, que se obtienen usando los cuantificadores dados por el parámetro de desfase y la envolvente de asignación 138, comprenden una pluralidad de bits que corresponden a (o no superan) el número total de bits 143 asignados al bloque actual 131. El parámetro de desfase usado por el codificador 100 para codificar el bloque actual 131 se incluye como datos de coeficientes 163 en el flujo de bits. En consecuencia, el descodificador correspondiente puede determinar los cuantificadores usados por la unidad de cuantificación de coeficientes 112 para cuantificar el bloque 142 de coeficientes de error reescalados.
Como resultado de la cuantificación de los coeficientes de error reescalados, se obtiene un bloque 145 de coeficientes de error cuantificados. El bloque 145 de coeficientes de error cuantificados corresponde al bloque de coeficientes de error que están disponibles en el descodificador correspondiente. En consecuencia, el bloque 145 de coeficientes de error cuantificados puede usarse para determinar un bloque 150 de coeficientes de transformada estimados. El codificador 100 puede comprender una unidad de reescalado inversa 113 configurada para realizar lo
5
10
15
20
25
30
35
40
45
50
55
60
inverso con respecto a las operaciones de reescalado realizadas por la unidad de reescalado 113, proporcionándose así un bloque 147 de coeficientes de error cuantificados escalados. Una unidad de adición 116 puede usarse para determinar un bloque 148 de coeficientes aplanados reconstruidos añadiendo el bloque 150 de coeficientes de transformada estimados al bloque 147 de coeficientes de error cuantificados escalados. Además, una unidad de aplanamiento inversa 114 puede usarse para aplicar la envolvente ajustada 139 al bloque 148 de coeficientes aplanados reconstruidos, lo que proporciona un bloque 149 de coeficientes reconstruidos. El bloque 149 de coeficientes reconstruidos corresponde a la versión del bloque 131 de coeficientes de transformada que está disponible en el descodificador correspondiente. En consecuencia, el bloque 149 de coeficientes reconstruidos puede usarse en el predictor 117 para determinar el bloque 150 de coeficientes estimados.
El bloque 149 de coeficientes reconstruidos se representa en el dominio no aplanado, es decir, el bloque 149 de coeficientes reconstruidos también representa la envolvente espectral del bloque actual 131. Como se indica posteriormente, esto puede ser beneficioso para el rendimiento del predictor 117.
El predictor 117 puede estar configurado para estimar el bloque 150 de coeficientes de transformada estimados en función de uno o más bloques previos 149 de coeficientes reconstruidos. En particular, el predictor 117 puede estar configurado para determinar uno o más parámetros de predictor de modo que se reduzca (por ejemplo, se minimice) un criterio de error de predicción predeterminado. A modo de ejemplo, el uno o más parámetros de predictor pueden determinarse de manera que se reduzca (por ejemplo, se minimice) la energía, o la energía ponderada de manera perceptual, del bloque 141 de coeficientes de error de predicción. El uno o más parámetros de predictor pueden incluirse como datos de predictor 164 en un flujo de bits generado por el codificador 100.
Los datos de predictor 164 pueden indicar el uno o más parámetros de predictor. Como se describirá en el presente documento, el predictor 117 solo puede usarse para un subconjunto de tramas o bloques 131 de una señal de audio. En particular, el predictor 117 puede no usarse para el primer bloque 131 de una trama I (trama independiente), que está codificada normalmente de manera independiente a un bloque anterior. Además, los datos de predictor 164 pueden comprender una o más banderas que indican la presencia de un predictor 117 para un bloque particular 131. En cuanto a los bloques, donde la contribución del predictor es apenas significativa (por ejemplo, cuando la ganancia del predictor se cuantifica a cero), puede ser beneficioso usar la bandera de presencia de predictor para indicar esta situación, que normalmente requiere un número considerablemente reducido de bits en comparación con la transmisión de la ganancia cero. Dicho de otro modo, los datos de predictor 164 para un bloque 131 pueden comprender una o más banderas de presencia de predictor que indican si se han determinado uno o más parámetros de predictor (y están comprendidos en los datos de predictor 164). El uso de una o más banderas de presencia de predictor puede usarse para ahorrar bits, si el predictor 117 no se usa para un bloque particular 131. Por tanto, dependiendo del número de bloques 131 que se codifican sin el uso de un predictor 117, el uso de una o más banderas de presencia de predictor puede ser más eficiente (por término medio) en lo que respecta a la velocidad binaria que la transmisión de parámetros de predictor por defecto (por ejemplo, con valor cero).
La presencia de un predictor 117 puede transmitirse explícitamente bloque a bloque. Esto permite ahorrar bits cuando no se usa la predicción. A modo de ejemplo, en lo que respecta a las tramas I, solo pueden usarse tres indicadores de presencia de predictor, ya que el primer bloque de la trama I no puede usar predicción. Dicho de otro modo, si se sabe que un bloque particular 131 es el primer bloque de una trama I, entonces puede no ser necesario transmitir ninguna bandera de presencia de predictor para este bloque particular 131 (ya que el descodificador correspondiente ya sabe que el bloque particular 131 no usa un predictor 117).
El predictor 117 puede usar un modelo de señal, como se describe en la solicitud de patente US61750052 y en las solicitudes de patente que reivindican la prioridad de la misma, cuyo contenido se incorpora como referencia. El uno o más parámetros de predictor pueden corresponder a uno o más parámetros de modelo del modelo de señal.
La Fig. 1b muestra un diagrama de bloques de un ejemplo adicional de un codificador de voz basado en transformada 170. El codificador de voz basado en transformada 170 de la Fig. 1b comprende muchos de los componentes del codificador 100 de la Fig. 1a. Sin embargo, el codificador de voz basado en transformada 170 de la Fig. 1b está configurado para generar un flujo de bits que tiene una velocidad binaria variable. Con este fin, el codificador 170 comprende una unidad de estados de velocidad binaria promedio (ABR) 172 configurada para realizar un seguimiento de la velocidad binaria usada por el flujo de bits en bloques anteriores 131. La unidad de asignación de bits 171 usa esta información para determinar el número total de bits 143 que están disponibles para codificar el bloque actual 131 de coeficientes de transformada. En términos generales, los codificadores de voz basados en transformada 100, 170 están configurados para generar un flujo de bits que indica o que comprende:
• datos de envolvente 161 que indican una envolvente actual cuantificada 134. La envolvente actual
cuantificada 134 se usa para describir la envolvente de los bloques de un conjunto actual 132 o un conjunto desplazado 332 de bloques de coeficientes de transformada.
• Los datos de ganancia 162 indican una ganancia de corrección de nivel a para ajustar la envolvente
interpolada 136 de un bloque actual 131 de coeficientes de transformada. Normalmente, una ganancia
5
10
15
20
25
30
35
40
45
50
55
60
diferente a se proporciona a cada bloque 131 del conjunto actual 132 o del conjunto desplazado 332 de bloques.
• Los datos de coeficientes 163 indican el bloque 141 de coeficientes de error de predicción para el bloque actual 131. En particular, los datos de coeficientes 163 indican el bloque 145 de coeficientes de error cuantificados. Además, los datos de coeficientes 163 pueden indicar un parámetro de desfase que puede usarse para determinar los cuantificadores para realizar una cuantificación inversa en el descodificador.
• Los datos de predictor 164 indican uno o más coeficientes de predictor que se usarán para determinar un bloque 150 de coeficientes estimados a partir de bloques anteriores 149 de coeficientes reconstruidos.
A continuación, un descodificador de voz basado en transformada 500 correspondiente se describe en el contexto de las Fig. 5a a 5d. La Fig. 5a muestra un diagrama de bloques de un descodificador de voz basado en transformada 500 de ejemplo. El diagrama de bloques muestra un banco de filtros de síntesis 504 (también denominado unidad de transformada inversa) que se usa para convertir un bloque 149 de coeficientes reconstruidos desde el dominio de transformada al dominio de tiempo, lo que proporciona muestras de la señal de audio descodificada. El banco de filtros de síntesis 504 puede usar una MDCT inversa con un espaciamiento predeterminado (por ejemplo, un espaciamiento de 5 ms o de 256 muestras aproximadamente). El bucle principal del descodificador 500 actúa en unidades de este espaciamiento. Cada etapa produce un vector de dominio de transformada (también denominado bloque) que presenta una longitud o dimensión que corresponde a un ajuste de ancho de banda predeterminado del sistema. Tras realizar un relleno con ceros hasta el tamaño de transformada del banco de filtros de síntesis 504, el vector de dominio de transformada se usará para sintetizar una actualización de señal de dominio de tiempo de una longitud predeterminada (por ejemplo, 5 ms) en el proceso de solapamiento/adición del banco de filtros de síntesis 504.
Como se ha indicado anteriormente, los códecs de audio genéricos basados en transformada utilizan normalmente tramas con secuencias de bloques cortos en el intervalo de 5 ms para la gestión de fenómenos transitorios. De este modo, los códecs de audio genéricos basados en transformada proporcionan las transformadas necesarias y herramientas de conmutación de ventana para una correcta coexistencia de bloques cortos y largos. Una sección de entrada espectral de voz definida omitiendo el banco de filtros de síntesis 504 de la Fig. 5a puede, por tanto, integrarse de manera adecuada en el códec de audio basado en transformada de propósito general sin necesidad de introducir herramientas de conmutación adicionales. Dicho de otro modo, el descodificador de voz basado en transformada 500 de la Fig. 5a puede combinarse de manera adecuada con un descodificador de audio genérico basado en transformada. En particular, el descodificador de voz basado en transformada 500 de la Fig. 5a puede usar el banco de filtros de síntesis 504 proporcionado por el descodificador de audio genérico basado en transformada (por ejemplo, el descodificador AAC o el descodificador HE-AAC).
A partir del flujo de bits entrante (en particular, a partir de los datos de envolvente 161 y de los datos de ganancia 162 comprendidos en el flujo de bits), un descodificador de envolvente 503 puede determinar una envolvente de señal. En particular, el descodificador de envolvente 503 puede configurarse para determinar la envolvente ajustada 139 en función de los datos de envolvente 161 y los datos de ganancia 162. De este modo, el descodificador de envolvente 503 puede realizar tareas similares a la de la unidad de interpolación 104 y la unidad de refinamiento de envolvente 107 del codificador 100, 170. Como se ha descrito anteriormente, la envolvente ajustada 109 representa un modelo de la varianza de señal en un conjunto de bandas de frecuencia predefinidas 302.
Además, el descodificador 500 comprende una unidad de aplanamiento inverso 114 que está configurada para aplicar la envolvente ajustada 139 a un vector de dominio aplanado, cuyas entradas pueden tener, de manera nominal, una varianza uno. El vector de dominio aplanado corresponde al bloque 148 de coeficientes aplanados reconstruidos descritos en el contexto del codificador 100, 170. En la salida de la unidad de aplanamiento inverso 114 se obtiene el bloque 149 de coeficientes reconstruidos. El bloque 149 de coeficientes reconstruidos se proporciona al banco de filtros de síntesis 504 (para generar la señal de audio descodificada) y al predictor de subbanda 517.
El predictor de subbanda 517 funciona de manera similar al predictor 117 del codificador 100, 170. En particular, el predictor de subbanda 517 está configurado para determinar un bloque 150 de coeficientes de transformada estimados (en el dominio aplanado) en función de uno o más bloques previos 149 de coeficientes reconstruidos (usando el uno o más parámetros de predictor señalizados en el flujo de bits). Dicho de otro modo, el predictor de subbanda 517 está configurado para proporcionar un vector de dominio aplanado predicho a partir de una memoria intermedia de vectores de salida descodificados previamente y envolventes de señal, en función de los parámetros de predictor tales como un retardo de predictor y una ganancia de predictor. El descodificador 500 comprende un descodificador de predictor 501 configurado para descodificar los datos de predictor 164 para determinar el uno o más parámetros de predictor.
El descodificador 500 comprende además un descodificador de espectro 502 que está configurado para suministrar una corrección aditiva al vector de dominio aplanado predicho, en función de, normalmente, la parte más grande del flujo de bits (es decir, en función de los datos de coeficientes 163). El proceso de descodificación de espectro se
5
10
15
20
25
30
35
40
45
50
55
60
65
controla principalmente mediante un vector de asignación que se obtiene a partir de la envolvente y de un parámetro de control de asignación transmitido (también denominado parámetro de desfase). Como se ilustra en la Fig. 5a, puede haber una dependencia directa del descodificador de espectro 502 con respecto a los parámetros de predictor 520. De este modo, el descodificador de espectro 502 puede estar configurado para determinar el bloque 147 de coeficientes de error cuantificados y escalados en función de los datos de coeficientes recibidos 163. Como se ha indicado en el contexto del codificador 100, 170, los cuantificadores 321, 322, 323 usados para cuantificar el bloque 142 de coeficientes de error reescalados dependen normalmente de la envolvente de asignación 138 (que puede obtenerse a partir de la envolvente ajustada 139) y del parámetro de desfase. Además, los cuantificadores 321, 322, 323 pueden depender de un parámetro de control 146 proporcionado por el predictor 117. El descodificador 500 puede obtener el parámetro de control 146 usando los parámetros de predictor 520 (de manera análoga al codificador 100, 170).
Como se ha indicado anteriormente, el flujo de bits recibido comprende datos de envolvente 161 y datos de ganancia 162 que pueden usarse para determinar la envolvente ajustada 139. En particular, la unidad 531 del descodificador de envolvente 503 puede estar configurada para determinar la envolvente actual cuantificada 134 a partir de los datos de envolvente 161. A modo de ejemplo, la envolvente actual cuantificada 134 puede tener una resolución de 3 dB en bandas de frecuencia predefinidas 302 (como se indica en la Fig. 3a). La envolvente actual cuantificada 134 puede actualizarse para cada conjunto 132, 332 de bloques (por ejemplo, cada cuatro unidades de codificación, es decir, bloques, o cada 20 ms), en particular para cada conjunto desplazado 332 de bloques. Las bandas de frecuencia 302 de la envolvente actual cuantificada 134 pueden comprender un mayor número de celdas de frecuencia 301 en función de la frecuencia, con el fin de adaptarse a las propiedades de la audición humana.
La envolvente actual cuantificada 134 puede interpolarse linealmente a partir de una envolvente previa cuantificada 135 en envolvente interpoladas 136 para cada bloque 131 del conjunto desplazado 332 de bloques (o, posiblemente, del conjunto actual 132 de bloques). Las envolventes interpoladas 136 pueden determinarse en el dominio cuantificado de 3 dB. Esto significa que los valores de energía interpolados 303 pueden redondearse al nivel de 3 dB más próximo. Una envolvente interpolada 136 de ejemplo se ilustra mediante el gráfico de línea de puntos de la Fig. 3a. Para cada envolvente actual cuantificada 134, cuatro ganancias de corrección de nivel a 137 (también denominadas ganancias de envolvente) se proporcionan como datos de ganancia 162. La unidad de descodificación de ganancia 532 puede estar configurada para determinar las ganancias de corrección de nivel a 137 a partir de los datos de ganancia 162. Las ganancias de corrección de nivel pueden cuantificarse en etapas de 1 dB. Cada ganancia de corrección de nivel se aplica a la envolvente interpolada correspondiente 136 para proporcionar las envolventes ajustadas 139 para los diferentes bloques 131. Debido a la mayor resolución de las ganancias de corrección de nivel 137, la envolvente ajustada 139 puede tener una mayor resolución (por ejemplo, una resolución de 1 dB). La Fig. 3b muestra una interpolación lineal o geométrica de ejemplo entre la envolvente previa cuantificada 135 y la envolvente actual cuantificada 134. Las envolventes 135, 134 pueden separarse en una parte de nivel promedio y una parte de forma del espectro logarítmico. Estas partes pueden interpolarse con estrategias independientes tales como una estrategia lineal, geométrica o armónica (resistencias paralelas). De este modo, pueden usarse diferentes esquemas de interpolación para determinar las envolventes interpoladas 136. El esquema de interpolación usado por el descodificador 500 corresponde normalmente al esquema de interpolación usado por el codificador 100, 170.
La unidad de refinamiento de envolvente 107 del descodificador de envolvente 503 puede estar configurada para determinar una envolvente de asignación 138 a partir de la envolvente ajustada 139 cuantificando la envolvente ajustada 139 (por ejemplo, en etapas de 3 dB). La envolvente de asignación 138 puede usarse junto con el parámetro de control de asignación o el parámetro de desfase (comprendidos en los datos de coeficientes 163) para crear un vector de asignación de enteros nominal usado para controlar la descodificación espectral, es decir, la descodificación de los datos de coeficientes 163. En particular, el vector de asignación de enteros nominal puede usarse para determinar un cuantificador para la cuantificación inversa de los índices de cuantificación comprendidos en los datos de coeficientes 163. La envolvente de asignación 138 y el vector de asignación de enteros nominal pueden determinarse de manera análoga en el codificador 100, 170 y en el descodificador 500.
Para permitir que un descodificador 500 se sincronice con un flujo de bits recibido, pueden transmitirse diferentes tipos de tramas. Una trama puede corresponder a un conjunto 132, 132 de bloques, en particular a un bloque desplazado 332 de bloques. En particular, pueden transmitirse las denominadas tramas P, que se codifican de manera relativa con respecto a una trama previa. En la descripción anterior se supuso que el descodificador 500 se ha percatado de la envolvente previa cuantificada 135. La envolvente previa cuantificada 135 puede proporcionarse en una trama previa, de manera que el conjunto actual 132 o el conjunto desplazado correspondiente 332 pueden corresponder a una trama P. Sin embargo, en un escenario de arranque, el descodificador 500 no se percata normalmente de la envolvente previa cuantificada 135. Con este fin, puede transmitirse una trama I (por ejemplo, tras el arranque o de manera habitual). La trama I puede comprender dos envolventes, una de las cuales se usa como la envolvente previa cuantificada 135 y la otra se usa como la envolvente actual cuantificada 134. Las tramas I pueden usarse para el caso de arranque de la sección de entrada espectral de voz (es decir, del descodificador de voz basado en transformada 500), por ejemplo tras una trama que utiliza un modo de codificación de audio diferente y/o como una herramienta para habilitar explícitamente un punto de unión del flujo de bits de audio.
5
10
15
20
25
30
35
40
45
50
55
60
65
El funcionamiento del predictor de subbanda 517 se ilustra en la Fig. 5d. En el ejemplo ilustrado, los parámetros de predictor 520 son un parámetro de retardo y un parámetro de ganancia de predictor g. Los parámetros de predictor 520 pueden determinarse a partir de los datos de predictor 164 usando una tabla predeterminada de posibles valores del parámetro de retardo y del parámetro de ganancia de predictor. Esto permite la transmisión eficaz, en cuanto a la velocidad binaria, de los parámetros de predictor 520.
El uno o más vectores de coeficientes de transformada descodificados previamente (es decir, el uno o más bloques previos 149 de coeficientes reconstruidos) pueden almacenarse en una memoria intermedia de señales de subbanda (o MDCT) 541. La memoria intermedia 541 puede actualizarse según el espaciamiento (por ejemplo, cada 5 ms). El extractor de predictor 543 puede configurarse para funcionar en la memoria intermedia 541 dependiendo de un parámetro de retardo normalizado T. El parámetro de retardo normalizado T puede determinarse normalizando el parámetro de retardo 520 con respecto a unidades de espaciamiento (por ejemplo, con respecto a unidades de espaciamiento de MDCT). Si el parámetro de retardo Tes un entero, el extractor 543 puede almacenar una o más unidades de tiempo T de vectores de coeficientes de transformada previamente descodificados en la memoria intermedia 541. Dicho de otro modo, el parámetro de retardo T puede indicar cuáles de los uno o más bloques previos 149 de coeficientes reconstruidos van a usarse para determinar el bloque 150 de coeficientes de transformada estimados. Una descripción detallada relacionada con una posible implementación del extractor 543 se proporciona en la solicitud de patente US61750052 y en las solicitudes de patente que reivindican la prioridad de la misma, cuyo contenido se incorpora como referencia.
El extractor 543 puede actuar en vectores (o bloques) que transportan envolventes de señal completas. Por otro lado, el bloque 150 de coeficientes de transformada estimados (que serán proporcionados por el predictor de subbanda 517) se representa en el dominio aplanado. En consecuencia, la salida del extractor 543 puede conformarse en un vector de dominio aplanado. Esto puede conseguirse usando un conformador 544 que usa las envolventes ajustadas 139 del uno o más bloques previos 149 de coeficientes reconstruidos. Las envolventes ajustadas 139 del uno o más bloques previos 149 de coeficientes reconstruidos pueden envolverse en una memoria intermedia de envolventes 542. La unidad de conformación 544 puede estar configurada para introducir una envolvente de señal retardada que va a usarse en el aplanamiento de To unidades de tiempo en la memoria intermedia de envolventes 542, donde To es el entero más próximo a T. Después, el vector de dominio aplanado puede escalarse mediante el parámetro de ganancia g para proporcionar el bloque 150 de coeficientes de transformada estimados (en el dominio aplanado).
La unidad de conformación 544 puede configurarse para determinar un vector de dominio aplanado de manera que los vectores de dominio aplanado en la salida de la unidad de conformación 544 presentan una varianza unitaria en cada banda de frecuencia. La unidad de conformación 544 puede basarse totalmente en los datos de la memoria intermedia de envolventes 542 para conseguir este objetivo. A modo de ejemplo, la unidad de conformación 544 puede configurarse para seleccionar la envolvente de señal retardada de manera que los vectores de dominio aplanado en la salida de la unidad de conformación 544 presentan una varianza unitaria en cada banda de frecuencia. Además, o como alternativa, la unidad de conformación 544 puede estar configurada para medir la varianza de los vectores de dominio aplanado en la salida de la unidad de conformación 544 y para ajustar la varianza de los vectores en lo que respecta a la propiedad de varianza unitaria. Un posible tipo de normalización puede usar una única ganancia de banda ancha (por ranura) que normalice los vectores de dominio aplanado en un vector de varianza unitaria. Las ganancias pueden transmitirse desde un codificador 100 a un descodificador correspondiente 500 (por ejemplo, en una forma cuantificada y codificada) en el flujo de bits.
Como alternativa, el proceso de aplanamiento retardado llevado a cabo por el conformador 544 puede omitirse usando un predictor de subbanda 517 que funciona en el dominio aplanado, por ejemplo un predictor de subbanda 517 que actúa en los bloques 148 de coeficientes aplanados reconstruidos. Sin embargo, se ha observado que una secuencia de vectores (o bloques) de dominio aplanado no se correlacionan bien con señales de tiempo debido a los aspectos de solapamiento de tiempo de la trasformada (por ejemplo, la transformada MDCT). En consecuencia se reduce el requisito de adecuación con el modelo de señales subyacente del extractor 543 y se produce un mayor nivel de ruido de codificación a partir de la estructura alternativa. Dicho de otro modo, se ha observado que los modelos de señales (por ejemplo, modelos sinusoidales o periódicos) usados por el predictor de subbanda 517 ofrecen un mayor rendimiento en el dominio no aplanado (en comparación con el dominio aplanado).
Debe observarse que en un ejemplo alternativo, la salida del predictor 517 (es decir, el bloque 150 de los coeficientes de transformada estimados) pueden añadirse en la salida de la unidad de aplanamiento inverso 114 (es decir, al bloque 149 de coeficientes reconstruidos) (véase la Fig. 5a). La unidad de conformación 544 de la Fig. 5c puede configurarse entonces para realizar la operación combinada de aplanamiento retardado y de aplanamiento inverso.
Elementos del flujo de bits recibido pueden controlar el vaciado ocasional de la memoria intermedia de subbandas 541 y de la memoria intermedia de envolventes 542, por ejemplo en caso de una primera unidad de codificación (es decir, un primer bloque) de una trama I. Esto permite la descodificación de una trama I sin conocer los datos anteriores. La primera unidad de codificación no podrá usar normalmente una contribución predictiva pero, sin embargo, puede usar un número relativamente menor de bits para transportar la información de predictor 520. La
5
10
15
20
25
30
35
40
45
50
55
60
65
pérdida de ganancia de predicción puede compensarse asignando más bits a la codificación de errores de predicción de esta primera unidad de codificación. Normalmente, la contribución de predictor es también sustancial para la segunda unidad de codificación (es decir, un segundo bloque) de una trama I. Debido a estos aspectos, la calidad puede mantenerse con un incremento relativamente pequeño en la velocidad binaria, incluso con un uso muy frecuente de tramas I.
Dicho de otro modo, los conjuntos 132, 332 de bloques (también denominados tramas) comprenden una pluralidad de bloques 131 que pueden codificarse usando codificación predictiva. Cuando se codifica una trama I, solamente el primer bloque 203 de un conjunto 332 de bloques no puede codificarse usando la ganancia de codificación conseguida por un codificador predictivo. El bloque inmediatamente posterior 201 puede beneficiarse ya de la codificación predictiva. Esto significa que las desventajas de una trama I en lo que respecta a la eficacia de codificación están limitadas a la codificación del primer bloque 203 de coeficientes de transformada de la trama 332 y no se aplican a los otros bloques 201, 204, 205 de la trama 332. Por tanto, el esquema de codificación de voz basado en transformada descrito en el presente documento permite un uso relativamente frecuente de tramas I sin un impacto significativo en la eficacia de codificación. De este modo, el esquema de codificación de voz basado en transformada ahora descrito es, en particular, adecuado en aplicaciones que requieren una sincronización relativamente rápida y/o relativamente frecuente entre el descodificador y el codificador. Como se ha indicado anteriormente, durante la inicialización de una trama I, la memoria intermedia de señal de predictor, es decir, la memoria intermedia de subbandas 541, puede vaciarse con ceros y la memoria intermedia de envolventes 542 puede llenarse solamente con una ranura de tiempo de valores, es decir, puede llenarse solamente con una única envolvente ajustada 139 (correspondiente al primer bloque 131 de la trama I). El primer bloque 131 de la trama I no usará normalmente predicción. El segundo bloque 131 tiene acceso solamente a dos ranuras de tiempo de la memoria intermedia de envolventes 542 (es decir, a las envolventes 139 del primer y del segundo bloque 131), el tercer bloque solamente a tres ranuras de tiempo (es decir, a las envolventes 139 de tres bloques 131), y el cuarto bloque 131 solamente a cuatro ranuras de tiempo (es decir, a envolventes 139 de cuatro bloques 131).
La regla de aplanamiento retardado del conformador espectral 544 (para identificar una envolvente para determinar el bloque 150 de coeficientes de transformada estimados (en el dominio aplanado)) está basada en un valor de retardo entero To determinado mediante el redondeo del parámetro de retardo de predictor T, en unidades de tamaño de bloque K (donde la unidad de un tamaño de bloque puede denominarse ranura de tiempo o ranura), al entero más próximo. Sin embargo, en el caso de una trama I, este valor de retardo entero To puede apuntar a entradas no disponibles de la memoria intermedia de envolventes 542. Por ello, el conformador espectral 544 puede estar configurado para determinar el valor de retardo entero To de manera que el valor de retardo entero To está limitado al número de envolventes 139 que están almacenadas en la memoria intermedia de envolventes 542, es decir, de manera que el valor de retardo entero To no apunta a envolventes 139 que no están disponibles en la memoria intermedia de envolventes 542. Con este fin, el valor de retardo entero To puede limitarse a un valor que depende del índice de bloque en la trama actual. A modo de ejemplo, el valor de retardo entero To puede limitarse al valor de índice del bloque actual 131 (que va a codificarse) en la trama actual (por ejemplo, a 1 para el primer bloque 131, a 2 para el segundo bloque 131, a 3 para el tercer bloque 131 y a 4 para el cuarto bloque 131 de una trama). Al hacer esto pueden evitarse estados no deseables y/o distorsiones debidos al proceso de aplanamiento.
La Fig. 5d muestra un diagrama de bloques de un descodificador de espectro 502 de ejemplo. El descodificador de espectro 502 comprende un descodificador sin pérdidas 551 que está configurado para descodificar los datos de coeficientes codificados por entropía 163. Además, el descodificador de espectro 502 comprende un cuantificador inverso 552 que está configurado para asignar valores de coeficiente a los índices de cuantificación comprendidos en los datos de coeficientes 163. Como se ha descrito en el contexto del codificador 100, 170, diferentes coeficientes de transformada pueden cuantificarse usando diferentes cuantificadores seleccionados a partir de un conjunto de cuantificadores predeterminados, por ejemplo un conjunto finito de cuantificadores escalares basados en modelos. Como se muestra en la Fig. 4, un conjunto de cuantificadores 321, 322, 323 puede comprender diferentes tipos de cuantificadores. El conjunto de cuantificadores puede comprender un cuantificador 321 que proporciona síntesis de ruido (en caso de una velocidad binaria nula), uno o más cuantificadores con ruido aleatorio 322 (para relaciones de señal a ruido, SNR, relativamente bajas y para velocidades binarias intermedias) y/o uno o más cuantificadores planos 323 (para SNR relativamente altas y para velocidades binarias relativamente altas).
La unidad de refinamiento de envolvente 107 puede estar configurada para proporcionar la envolvente de asignación 138, que puede combinarse con el parámetro de desfase comprendido en los datos de coeficientes 163 para proporcionar un vector de asignación. El vector de asignación contiene un valor entero para cada banda de frecuencia 302. El valor entero para una banda de frecuencia particular 302 apunta al punto de distorsión de velocidad que se usará en la cuantificación inversa de los coeficientes de transformada de la banda particular 302. Dicho de otro modo, el valor entero para la banda de frecuencia particular 302 apunta al cuantificador que se usará para la cuantificación inversa de los coeficientes de transformada de la banda particular 302. Un incremento del valor entero en uno corresponde a un incremento de 1,5 dB en la SNR. En los cuantificadores con ruido aleatorio 322 y los cuantificadores planos 323, puede usarse un modelo de distribución de probabilidad de Laplace en la codificación sin pérdidas, que puede utilizar una codificación aritmética. Uno o más cuantificadores con ruido aleatorio 322 pueden usarse para conseguir una transición sin interrupciones entre casos de alta y baja velocidad
5
10
15
20
25
30
35
40
45
50
binaria. Cuantificadores con ruido aleatorio 322 pueden ser beneficiosos a la hora de crear una calidad de audio de salida suficientemente uniforme para señales estacionarias similares al ruido.
Dicho de otro modo, el cuantificador inverso 552 puede estar configurado para recibir los índices de cuantificación de coeficientes de un bloque actual 131 de coeficientes de transformada. El uno o más índices de cuantificación de coeficientes de una banda de frecuencia particular 302 se han determinado usando un cuantificador correspondiente a partir de un conjunto predeterminado de cuantificadores. El valor del vector de asignación (que puede determinarse desfasando la envolvente de asignación 138 con el parámetro de desfase) para la banda de frecuencia particular 302 indica el cuantificador que se ha usado para determinar el uno o más índices de cuantificación de coeficientes de la banda de frecuencia particular 302. Tras haberse identificado el cuantificador, el uno o más índices de cuantificación de coeficientes pueden cuantificarse de manera inversa para proporcionar el bloque 145 de coeficientes de error cuantificados.
Además, el descodificador espectral 502 puede comprender una unidad de reescalado inverso 113 para proporcionar el bloque 147 de coeficientes de error cuantificados. Las herramientas e interconexiones adicionales en torno al descodificador sin pérdidas 551 y al cuantificador inverso 552 de la Fig. 5d pueden usarse para adaptar la descodificación espectral a su uso en el descodificador global 500 mostrado en la Fig. 5a, donde la salida del descodificador espectral 502 (es decir, el bloque 145 de coeficientes de error cuantificados) se usa para proporcionar una corrección aditiva a un vector predicho de dominio aplanado (es decir, al bloque 150 de coeficientes de transformada estimados). En particular, las herramientas adicionales pueden garantizar que el procesamiento realizado por el descodificador 500 corresponde al procesamiento realizado por el codificador 100, 170.
En particular, el descodificador espectral 502 puede comprender una unidad de escalado heurístico 111. Como se muestra junto con el codificador 100, 170, la unidad de escalado heurístico 111 puede tener un impacto en la asignación de bits. En el codificador 100, 170, los bloques actuales 141 de coeficientes de error de predicción pueden escalarse hasta la varianza unitaria mediante una regla heurística. En consecuencia, la asignación por defecto puede dar lugar a una cuantificación muy precisa de la salida final escalada de manera descendente de la unidad de escalado heurístico 111. Por tanto, la asignación debería modificarse de manera similar a la modificación de los coeficientes de error de predicción. Sin embargo, como se describe posteriormente, puede ser beneficioso evitar la reducción de recursos de codificación para una o más de las celdas de baja frecuencia (o bandas de baja frecuencia). En particular, esto puede ser beneficioso para hacer frente a un artefacto de reverberación/ruido LF (baja frecuencia) que es más prominente en situaciones sonoras (es decir, para una señal que tiene un parámetro de control relativamente grande 146, rfu). De este modo, la selección de cuantificador / asignación de bits dependiente del parámetro de control 146, que se describe posteriormente, puede considerarse un "aumento adaptativo de la calidad de LF de una entonación".
El descodificador espectral puede depender de un parámetro de control 146 denominado rfu que puede ser una versión limitada de la ganancia de predictor g, por ejemplo rfu = min(l, max(g, 0)).
Pueden usarse procedimientos alternativos para determinar el parámetro de control 146, rfu. En particular, el parámetro de control 146 puede determinarse usando el seudocódigo dado en la Tabla 1.
Tabla 1
f_gain = f_pred_gain; if (f_gain < -1,0) f_rfu=1,0;
else if (f_gain < 0,0) f_rfu = -f_gain; else if (f_gain < 1,0) f_rfu = f_gain; else if (f_gain < 2,0) f_rfu = 2,0 - f_gain; else // f_gain >= 2,0 f_rfu = 0,0.
Las variables f_gain y f_pred_gain pueden fijarse al mismo valor. En particular, la variable f_gain puede corresponder a la ganancia de predictor g. El parámetro de control 146, rfu, se denomina f_rfu en la Tabla 1. La ganancia f_gain puede ser un número real.
En comparación con la primera definición del parámetro de control 146, la segunda definición (según la Tabla 1) reduce el valor del parámetro de control 146, rfu, para ganancias de predictor superiores a 1 y aumenta el parámetro de control 146, rfu, para ganancias de predictor negativas.
5
10
15
20
25
30
35
40
45
50
55
60
Usando el parámetro de control 146, puede adaptarse el conjunto de cuantificadores usado en la unidad de cuantificación de coeficientes 112 del codificador 100, 170 y usados en el cuantificador inverso 552. En particular, el ruido del conjunto de cuantificadores puede adaptarse en función del parámetro de control 146. A modo de ejemplo, el valor del parámetro de control 146, rfu, próximo a 1, puede hacer que se limite el intervalo de niveles de asignación usando cuantificadores con ruido aleatorio y puede hacer que se reduzca la varianza del nivel de síntesis de ruido. En un ejemplo, puede fijarse un umbral de decisión de ruido aleatorio con rfu = 0,75 y una ganancia de ruido igual a 1 -rfu. La adaptación de ruido aleatorio puede afectar tanto a la descodificación sin pérdidas como al cuantificador inverso, mientras que la adaptación de ganancia de ruido solo afecta normalmente al cuantificador inverso.
Puede suponerse que la contribución del predictor es sustancial en situaciones sonoras/tonales. De este modo, una ganancia de predictor relativamente alta g (es decir, un parámetro de control relativamente alto 146) puede indicar una señal de voz sonora o tonal. En tales situaciones, la adición de ruido aleatorio o explícito (caso de asignación cero) ha demostrado, empíricamente, ser contraproducente con respecto a la calidad percibida de la señal codificada. En consecuencia, el número de cuantificadores con ruido aleatorio 322 y/o el tipo de ruido usado en el cuantificador de síntesis de ruido 321 pueden adaptarse en función de la ganancia de predictor g, lo que mejora la calidad percibida de la señal de voz codificada.
De este modo, el parámetro de control 146 puede usarse para modificar el intervalo 324, 325 de SNR para el que se usan cuantificadores con ruido aleatorio 322. A modo de ejemplo, si el parámetro de control 146 rfu < 0,75, puede usarse el intervalo 324 de cuantificadores con ruido aleatorio. Dicho de otro modo, si el parámetro de control 146 es inferior a un umbral predeterminado, puede usarse el primer conjunto 326 de cuantificadores. Por otro lado, si el parámetro de control 146 rfu > 0,75, puede usarse el intervalo 325 de cuantificadores con ruido aleatorio. Dicho de otro modo, si el parámetro de control 146 es superior o igual al umbral predeterminado, puede usarse el segundo conjunto 327 de cuantificadores.
Además, el parámetro de control 146 puede usarse para la modificación de la varianza y la asignación de bits. El motivo es que, normalmente, una predicción satisfactoria requerirá una menor corrección, especialmente en el intervalo de menor frecuencia de 0 a 1 kHz. Puede ser ventajoso hacer que el cuantificador se percate explícitamente de esta desviación con respecto al modelo de varianza unitaria con el fin de liberar recursos de codificación para bandas de frecuencia superiores 302. Esto se describe en el contexto del panel iii de la Figura 17c del documento WO2009/086918, cuyo contenido se incorpora a modo de referencia. En el descodificador 500, esta modificación puede implementarse modificando el vector de asignación nominal según una regla de escalado heurístico (aplicada usando la unidad de escalado 111) y, al mismo tiempo, escalando en el tiempo la salida del cuantificador inverso 552 según una regla heurística de escalado inverso usando la unidad de escalado inverso 113. Siguiendo la teoría del documento WO2009/086918, la regla de escalado heurístico y la regla heurística de escalado inverso deben estar estrechamente relacionadas. Sin embargo, se ha observado que es ventajoso, desde un punto de vista empírico, cancelar la modificación de asignación para la una o más bandas de frecuencia más bajas 302 con el fin de hacer frente a problemas ocasionales con ruido LF (de baja frecuencia) para componentes de señales sonoras. La cancelación de la modificación de asignación puede realizarse dependiendo del valor de la ganancia de predictor g y/o del parámetro de control 146. En particular, la cancelación de la modificación de asignación puede realizarse solamente si el parámetro de control 146 supera el umbral de decisión de ruido aleatorio.
Como se ha descrito anteriormente, un codificador 100, 170 y/o un descodificador 500 puede comprender una unidad de escalado 111 que está configurada para reescalar los coeficientes de error de predicción A(k) para proporcionar un bloque 142 de coeficientes de error reescalados. La unidad de reescalado 111 puede usar una o más reglas heurísticas predeterminadas para realizar el reescalado. En un ejemplo, la unidad de reescalado 111 puede usar una regla de escalado heurístico que comprende la ganancia d(f), por ejemplo
d(f) = 1 +
7 ■ rfu2
imagen1
donde una frecuencia de ruptura fü puede fijarse a, por ejemplo, 1000 Hz. Por tanto, la unidad de reescalado 111 puede configurarse para aplicar una ganancia de dependencia de frecuencia d(f) a los coeficientes de error de predicción para proporcionar el bloque 142 de coeficientes de error reescalados. La unidad de reescalado inverso 113 puede configurarse para aplicar una inversa de la ganancia de dependencia de frecuencia d(f). La ganancia de dependencia de frecuencia d(f) puede depender del parámetro de control rfu 146. En el ejemplo anterior, la ganancia d(f) presenta un carácter de paso bajo, de manera que los coeficientes de error de predicción se atenúan más a frecuencias superiores que a frecuencias inferiores, y/o de manera que los coeficientes de error de predicción se enfatizan más a frecuencias inferiores que a frecuencias superiores. La ganancia mencionada anteriormente d(f) es siempre mayor o igual a uno. Por tanto, en una forma de realización preferida, la regla de escalado heurístico es tal que los coeficientes de error de predicción se enfatizan en un factor de uno o más (dependiendo de la frecuencia).
5
10
15
20
25
30
35
40
45
50
55
60
Debe observarse que la ganancia dependiente de la frecuencia puede indicar una potencia o una varianza. En tales casos, la regla de escalado y la regla de escalado inverso deben obtenerse en función de la raíz cuadrada de la
ganancia dependiente de la frecuencia, por ejemplo en función de . El grado de énfasis y/o atenuación
puede depender de la calidad de la predicción conseguida por el predictor 117. La ganancia de predictor g y/o el parámetro de control rfu 146 pueden indicar la calidad de la predicción. En particular, un valor relativamente bajo del parámetro de control rfu 146 (relativamente próximo a cero) puede indicar una calidad baja de predicción. En tales casos, cabe esperar que los coeficientes de error de predicción tengan valores (absolutos) relativamente altos en todas las frecuencias. Un valor relativamente alto del parámetro de control rfu 146 (relativamente próximo a uno) puede indicar una calidad alta de predicción. En tales casos, cabe esperar que los coeficientes de error de predicción tengan valores (absolutos) relativamente altos para altas frecuencias (que son más difíciles de predecir). Por tanto, para conseguir una varianza unitaria en la salida de la unidad de reescalado 111, la ganancia d(f) puede ser tal que, en caso de una calidad de predicción relativamente baja, la ganancia d(f) es sustancialmente plana para todas las frecuencias, mientras que en caso de una calidad de predicción relativamente alta, la ganancia d(f) tiene un carácter de paso bajo con el fin de incrementar o maximizar la varianza a bajas frecuencias. Este es el caso para la ganancia dependiente de rfu, d(f), mencionada anteriormente.
Como se ha indicado anteriormente, la unidad de asignación de bits 110 puede estar configurada para proporcionar una asignación relativa de bits a los diferentes coeficientes de error reescalados, dependiendo del valor de energía correspondiente en la envolvente de asignación 138. La unidad de asignación de bits 110 puede estar configurada para tener en cuenta la regla de reescalado heurística. La regla de reescalado heurística puede depender de la calidad de la predicción. En caso de una calidad de predicción relativamente alta, puede ser beneficioso asignar un número de bits relativamente mayor a la codificación de los coeficientes de error de predicción (o el bloque 142 de coeficientes de error reescalados) a altas frecuencias que con respecto a la codificación de los coeficientes a bajas frecuencias. Esto puede deberse a que en caso de una alta calidad de predicción, los coeficientes de baja frecuencia ya se han predicho correctamente, mientras que los coeficientes de alta frecuencia se predicen normalmente con peor precisión. Por otro lado, en caso de una calidad de predicción relativamente baja, la asignación de bits debe permanecer invariable.
El comportamiento anterior puede implementarse aplicando la inversa de las reglas heurísticas / ganancia d(f) a la envolvente ajustada actual 139 con el fin de determinar una envolvente de asignación 138 que tenga en cuenta la calidad de predicción.
La envolvente ajustada 139, los coeficientes de error de predicción y la ganancia d(f) pueden representarse en el dominio logarítmico o de dB. En tal caso, la aplicación de la ganancia d(f) a los coeficientes de error de predicción puede corresponder a una operación "suma", y la aplicación de la inversa de la ganancia d(f) con respecto a la envolvente ajustada 139 puede corresponder a una operación "resta".
Debe observarse que puede haber diversas variantes de las reglas heurísticas / ganancia d(f). En particular, la curva
, 3\
1 ' '
dependiente de una frecuencia fija con un carácter de paso bajo que depende de los datos de envolvente (por ejemplo, de la envolvente ajustada 139 para el bloque actual 131). Las reglas heurísticas modificadas pueden depender tanto del parámetro de control rfu 146 como de los datos de envolvente.
Mí)7
puede sustituirse por una función
A continuación se describen diferentes maneras de determinar una ganancia de predictor p, que puede corresponder a la ganancia de predictor g. La ganancia de predictor p puede usarse como una indicación de la calidad de la predicción. El vector residual de predicción (es decir, el bloque 141 de coeficientes de error de predicción z) puede venir dado por: z = x - py, donde x es el vector objetivo (por ejemplo, el bloque actual 140 de coeficientes de transformada aplanados o el bloque actual 131 de coeficientes de transformada), y es un vector que representa el candidato elegido para la predicción (por ejemplo, un bloque previo 149 de coeficientes reconstruidos), y p es la ganancia de predicción (escalar).
w >0 puede ser un vector de ponderación usado para la determinación de la ganancia de predictor p. En algunas formas de realización, el vector de ponderación depende de la envolvente de señal (por ejemplo, de la envolvente ajustada 139, que puede estimarse en el codificador 100, 170 y después transmitirse al descodificador 500). El vector de ponderación tiene normalmente la misma dimensión que el vector objetivo y el vector candidato. Una i-ésima entrada del vector x puede denotarse como x¡ (por ejemplo, i=1,...,K).
Hay diferentes maneras de definir la ganancia de predictor p. En una forma de realización, la ganancia de predictor p es una ganancia de MMSE (error cuadrático medio mínimo) definida según el criterio de error cuadrático medio mínimo. En este caso, la ganancia de predictor p puede calcularse usando la siguiente fórmula:
imagen2
5
10
15
20
25
30
35
40
45
50
D = 'L(xi-py¡)
Tal ganancia de predictorp normalmente minimiza el error cuadrático medio definido como
A menudo es (perceptualmente) beneficioso introducir una ponderación en la definición del error cuadrático medio D. La ponderación puede usarse para enfatizar la importancia de una correspondencia entre x e y para porciones perceptualmente importantes del espectro de señal y dejar de enfatizar la importancia de una correspondencia entre x e y para porciones del espectro de señal que son relativamente menos importantes. Tal enfoque da como
D X*-r. AvO'";,
resultado el siguiente criterio de error: ¡ lo que da lugar a la siguiente definición de la ganancia de
predictor óptima (en el sentido del error cuadrático medio ponderado):
imagen3
La anterior definición de la ganancia de predictor da normalmente como resultado una ganancia que no está acotada. Como se ha indicado anteriormente, los pesos w, del vector de ponderación w pueden determinarse en función de la envolvente ajustada 139. Por ejemplo, el vector de ponderación w puede determinarse usando una función predefinida de la envolvente ajustada 139. La función predefinida puede conocerse en el codificador y en el descodificador (lo que también es el caso para la envolvente ajustada 139). Por tanto, el vector de ponderación puede determinarse de la misma manera en el codificador y en el descodificador.
Otra posible fórmula de ganancia de predictor viene dada por
2 C
imagen4
C=Zw¡xiy¡ >E* = Z w:x¡ y E. = Z w¡y¡2 ■
donde ; ¡ ¡ Esta definición de la ganancia de predictor da como
resultado una ganancia que está siempre dentro del intervalo [-1, 1]. Una característica importante de la ganancia de predictor especificada por la segunda fórmula es que la ganancia de predictor p facilita una relación factible entre la energía de la señal objetivo xy la energía de la señal residual z. La energía residual LTP puede expresarse como:
ZH'¡zt
El parámetro de control rfu 146 puede determinarse en función de la ganancia de predictor g usando las fórmulas mencionadas anteriormente. La ganancia de predictor g puede ser igual a la ganancia de predictor p, determinada usando cualquiera de las fórmulas mencionadas anteriormente.
Como se ha mencionado anteriormente, el codificador 100, 170 está configurado para cuantificar y codificar el vector residual z (es decir, el bloque 141 de coeficientes de error de predicción). El proceso de cuantificación es guiado normalmente por la envolvente de señal (por ejemplo, por la envolvente de asignación 138) según un modelo perceptual subyacente con el fin de distribuir los bits disponibles entre las componentes espectrales de la señal de una manera perceptualmente significativa. El proceso de asignación de velocidad es guiado por la envolvente de señal (por ejemplo, por la envolvente de asignación 138), que se obtiene a partir de la señal de entrada (por ejemplo, a partir del bloque 131 de coeficientes de transformada). La operación del predictor 117 cambia normalmente la envolvente de señal. La unidad de cuantificación 112 usa normalmente cuantificadores que están diseñados suponiendo el funcionamiento en una fuente de varianza unitaria. Cabe señalar que en caso de una predicción de alta calidad (es decir, cuando el predictor 117 es satisfactorio), la propiedad de varianza unitaria puede no cumplirse, es decir, el bloque 141 de coeficientes de error de predicción puede no presentar una varianza unitaria.
Normalmente no es eficaz estimar la envolvente del bloque 141 de coeficientes de error de predicción (es decir, para la señal residual z) ni transmitir esta envolvente al descodificador (ni volver a aplanar el bloque 141 de coeficientes de error de predicción usando la envolvente estimada). En cambio, el codificador 100 y el descodificador 500 pueden usar una regla heurística para reescalar el bloque 141 de coeficientes de error de predicción (como se ha indicado anteriormente). La regla heurística puede usarse para reescalar el bloque 141 de coeficientes de error de predicción, de manera que el bloque 142 de coeficientes reescalados se aproxima a la varianza unitaria. En consecuencia, los resultados de la cuantificación pueden mejorarse (usando cuantificadores que suponen una varianza unitaria). Además, como ya se ha descrito anteriormente, la regla heurística puede usarse para modificar la envolvente de asignación 138, que se usa en el proceso de asignación de bits. La modificación de la envolvente de asignación 138 y el reescalado del bloque 141 de los coeficientes de error de predicción se realizan normalmente por el codificador 100 y por el descodificador 500 de la misma manera (usando la misma regla heurística).
5
10
15
20
25
30
35
40
45
50
Una posible regla heurística d(f) se ha descrito anteriormente. A continuación se describe otro enfoque para determinar una regla heurística. Una inversa de la ganancia de predicción de energía de dominio ponderado puede
obtenerse mediante p e[0,1], de manera que - donde indica la energía elevada al cuadrado del
vector residual (es decir, el bloque 141 de coeficientes de error de predicción) en el dominio ponderado y donde |M|2
" indica la energía elevada al cuadrado del vector objetivo (es decir, el bloque 140 de coeficientes de transformada aplanados) en el dominio ponderado.
Pueden adoptarse las siguientes suposiciones:
1. Las entradas del vector objetivo x tienen una varianza unitaria. Esto puede ser resultado del aplanamiento realizado por la unidad de aplanamiento 108. Esta suposición se satisface dependiendo de la calidad de la envolvente en función del aplanamiento realizado por la unidad de aplanamiento 108.
E{zz{í)} =
2. La varianza de las entradas del vector residual de predicción z son de la forma de 1
para i = 1,..., K y para algunos valores de t > 0. Esta suposición está basada en la heurística de que una búsqueda de predictor orientada a mínimos cuadrados da lugar a una contribución de error distribuida de
manera uniforme en el dominio ponderado, de manera que el vector residual es más o menos plano. Además, cabe esperar que el candidato a predictor sea casi plano, lo que da lugar a la relación razonable de E{z2 (i)} < 1. Debe observarse que pueden usarse varias modificaciones de esta segunda suposición.
Para poder estimar el parámetro t, puede usarse las dos suposiciones antes mencionadas en la fórmula de error de
£> = E i*/-/*’,-)2*;
predicción (por ejemplo,
) y proporcionar así la ecuación de "tipo de nivel de agua"
imagen5
Puede demostrarse que hay una solución a la anterior ecuación en el intervalo t e [0, max(w(/))]. La ecuación para encontrar el parámetro t puede resolverse usando rutinas de ordenación.
La regla heurística puede proporcionarse después mediante
d(¿) = max j^p-, lj.
donde i = 1,
K identifica la
d( i)
= trun
celda de frecuencia. La inversa de la regla de escalado heurística viene dada por La inversa
de la regla de escalado heurística se aplica mediante la unidad de reescalado inverso 113. La regla de escalado dependiente de la frecuencia depende de los pesos w(i) = w ¡. Como se ha indicado anteriormente, los pesos w(i) pueden depender de o pueden corresponder al bloque actual 131 de coeficientes de transformada (por ejemplo, la envolvente ajustada 139, o alguna función predefinida de la envolvente ajustada 139).
Puede demostrarse que cuando se usa la fórmula siguiente relación: p = 1 - p2.
imagen6
para determinar la ganancia de predictor, se aplica la
Por tanto, una regla de escalado heurística puede determinarse de varias maneras diferentes. Se ha observado de manera experimental que la regla de escalado que se determina en función de las dos suposiciones antes mencionadas (denominadas como procedimiento de escalado B) es ventajosa en comparación con la regla de escalado fija d(f). En particular, la regla de escalado que se determina en función de las dos suposiciones puede tener en cuenta el efecto de ponderación usado en el transcurso de una búsqueda de candidatos a predictor. El
2C P
procedimiento de escalado B se combina de manera conveniente con la definición de la ganancia debido a la relación analíticamente factible entre la varianza de la señal residual y la varianza de la señal (lo que facilita la obtención de p como se ha descrito anteriormente).
E, \ E .
A continuación se describe un aspecto adicional para mejorar el rendimiento del codificador de audio basado en transformada. En particular, se propone el uso de una denominada bandera de conservación de varianza. La bandera de conservación de varianza puede determinarse y transmitirse en cada bloque 131. La bandera de conservación de varianza puede indicar la calidad de la predicción. En una forma de realización, la bandera de conservación de varianza está inactiva en caso de una calidad de predicción relativamente alta, y la bandera de conservación de varianza está activa en caso de una calidad de predicción relativamente baja. La bandera de conservación de varianza puede determinarse por el codificador 100, 170, por ejemplo en función de la ganancia de
5
10
15
20
25
30
35
40
45
predictor p y/o en función de la ganancia de predictor g. A modo de ejemplo, la bandera de conservación de varianza puede fijarse a "activa" si la ganancia de predictor p o g (o un parámetro derivado de la misma) es inferior a un umbral predeterminado (por ejemplo, 2 dB) y viceversa. Como se ha observado anteriormente, la inversa de la ganancia de predicción de energía de dominio ponderado p depende normalmente de la ganancia de predictor, por ejemplo p = 1 - p2 La inversa del parámetro p puede usarse para determinar un valor de la bandera de conservación de varianza. A modo de ejemplo, 1/p (por ejemplo, expresado en dB) puede compararse con un umbral predeterminado (por ejemplo, de 2dB), con el fin de determinar el valor de la bandera de conservación de varianza. Si 1/p es mayor que el umbral predeterminado, la bandera de conservación de varianza puede fijarse a "inactiva" (lo que indica una calidad de predicción relativamente alta), y viceversa.
La bandera de conservación de varianza puede usarse para controlar diferentes ajustes del codificador 100 y del descodificador 500. En particular, la bandera de conservación de varianza puede usarse para controlar el grado de ruido de la pluralidad de cuantificadores 321, 322, 323. En particular, la bandera de conservación de varianza puede afectar a uno o más de los siguientes ajustes:
• Ganancia de ruido adaptativa para la asignación de bits con valor cero. Dicho de otro modo, la ganancia de
ruido del cuantificador de síntesis de ruido 321 puede verse afectada por la bandera de conservación de
varianza.
• Intervalo de cuantificadores con ruido aleatorio. Dicho de otro modo, el intervalo 324, 325 de SNR para el
que se usan cuantificadores con ruido aleatorio 322 puede verse afectada por la bandera de conservación
de varianza.
• Posganancia de los cuantificadores con ruido aleatorio. Puede aplicarse una posganancia en la salida de los cuantificadores con ruido aleatorio, con el fin de afectar al rendimiento del error cuadrático medio de los cuantificadores con ruido aleatorio. La posganancia puede depender de la bandera de conservación de varianza.
• Aplicación de escalado heurístico. El uso de escalado heurístico (en la unidad de reescalado 111 y en la unidad de reescalado inverso 113) puede depender de la bandera de conservación de varianza.
Un ejemplo de cómo la bandera de conservación de varianza puede modificar uno o más ajustes del codificador 100 y/o del descodificador 500 se proporciona en la Tabla 2.
Tabla 2
Tipo de ajuste
Conservación de varianza inactiva Conservación de varianza activa
Ganancia de ruido
gN = (1 - rfu) 9n = Vi1 - rfu2)
Intervalo de cuantificadores con ruido aleatorio
Depende del parámetro de control rfu Está fijado a un intervalo relativamente grande (por ejemplo, al intervalo más grande posible)
Posganancia de los cuantificadores con ruido aleatorio 7 o\. 1— Yo = .2 >r 1 = 7 ¿A <7 y + A 12
7= Yo- y = max(y0,gx -y,)
Regla de escalado heurística
activa inactiva
cr“ = E\X2
En la fórmula para la posganancia, " v — t'1 > es la varianza de uno o más de los coeficientes del bloque 141 de
coeficientes de error de predicción (que van a cuantificarse), y A es un tamaño de etapa de cuantificador de un cuantificador escalar (612) del cuantificador con ruido aleatorio al que se aplica la posganancia.
Como puede observarse a partir del ejemplo de la Tabla 2, la ganancia de ruido gN del cuantificador de síntesis de ruido 321 (es decir, la varianza del cuantificador de síntesis de ruido 321) puede depender de la bandera de conservación de varianza. Como se ha indicado anteriormente, el parámetro de control rfu 146 puede estar en el intervalo [0, 1], donde un valor relativamente bajo de rfu indica una calidad de predicción relativamente baja, y un valor relativamente alto de rfu indica una calidad de predicción relativamente alta. Para valores de rfu en el intervalo de [0, 1], la fórmula de la columna izquierda proporciona ganancias de ruido más bajas gN que la fórmula de la columna derecha. Por tanto, cuando la bandera de conservación de varianza está activa (lo que indica una calidad
5
10
15
20
25
30
35
40
45
50
55
de predicción relativamente baja), se usa una ganancia de ruido más alta a cuando la bandera de conservación de varianza está inactiva (lo que indica una calidad de predicción relativamente alta). Se ha observado experimentalmente que esto mejora la calidad perceptiva global.
Como se ha descrito anteriormente, el intervalo de SNR de 324, 325 de los cuantificadores con ruido aleatorio 322 puede variar dependiendo del parámetro de control rfu. Según la tabla 2, cuando la bandera de conservación de varianza está activa (lo que indica una calidad de predicción relativamente baja), se usa un gran intervalo fijo de cuantificadores con ruido aleatorio 322 (por ejemplo, en el intervalo 324). Por otro lado, cuando la bandera de conservación de varianza está inactiva (lo que indica una calidad de predicción relativamente alta), se usan diferentes intervalos 324, 325, dependiendo del parámetro de control rfu.
La determinación del bloque 145 de coeficientes de error cuantificados puede implicar la aplicación de una posganancia y en los coeficientes de error cuantificados, que se han cuantificado usando un cuantificador con ruido aleatorio 322. La posganancia y puede obtenerse para mejorar el rendimiento MSE de un cuantificador con ruido aleatorio 322 (por ejemplo, un cuantificador que suprime el ruido aleatorio). La posganancia puede obtenerse mediante:
Se ha observado experimentalmente que la calidad de codificación perceptual puede mejorarse cuando la posganancia depende de la bandera de conservación de varianza. Se usa la posganancia óptima MSE antes mencionada, cuando la bandera de conservación de varianza está inactiva (lo que indica una calidad de predicción relativamente alta). Por otro lado, cuando la bandera de conservación de varianza está activa (lo que indica una calidad de predicción relativamente baja), puede ser beneficioso usar una posganancia superior (determinada según la fórmula del lado derecho de la Tabla 2).
Como se ha indicado anteriormente, el escalado heurístico puede usarse para proporcionar bloques 142 de coeficientes de error reescalados que están más cerca de la propiedad de varianza unitaria que los bloques 141 de coeficientes de error de predicción. Las reglas de escalado heurísticas pueden depender del parámetro de control 146. Dicho de otro modo, las reglas de escalado heurísticas pueden depender de la calidad de predicción. El escalado heurístico puede ser particularmente beneficioso en caso de una calidad de predicción relativamente alta, mientras que los beneficios pueden limitarse en caso de una calidad de predicción relativamente baja. En vista de esto, puede ser beneficioso usar solamente el escalado heurístico cuando la bandera de conservación de varianza está inactiva (lo que indica una calidad de predicción relativamente alta).
En el presente documento se han descrito un codificador de voz basado en transformada 100, 170 y un descodificador de voz basado en transformada 500 correspondiente. El códec de voz basado en transformada puede usar varios aspectos que permiten mejorar la calidad de las señales de voz codificadas. El códec de voz puede usar bloques relativamente cortos (también denominados unidades de codificación), por ejemplo en el intervalo de 5 ms, lo que garantiza una resolución de tiempo apropiada y estadísticas útiles para señales de voz. Además, el códec de voz puede proporcionar una descripción adecuada de una envolvente espectral variable en el tiempo de las unidades de codificación. Además, el códec de voz puede usar predicción en el dominio de transformada, donde la predicción puede tener en cuenta las envolventes espectrales de las unidades de codificación. Por tanto, el códec de voz puede proporcionar actualizaciones predictivas de descubrimiento de envolvente a las unidades de codificación. Además, el códec de voz puede usar cuantificadores predeterminados que se adaptan a los resultados de la predicción. Dicho de otro modo, el códec de voz puede usar cuantificadores escalares adaptativos de predicción.
Los procedimientos y sistemas descritos en el presente documento pueden implementarse como software, firmware y/o hardware. Determinados componentes pueden implementarse, por ejemplo, como software que se ejecuta en un procesador o microprocesador de señales digitales. Otros componentes pueden implementarse, por ejemplo, como hardware y/o como circuitos integrados de aplicación específica. Las señales encontradas en los procedimientos y sistemas descritos pueden almacenarse en medios tales como una memoria de acceso aleatorio o medios de almacenamiento óptico. Pueden transferirse a través de redes, tales como redes radioeléctricas, redes por satélite, redes inalámbricas o redes cableadas, por ejemplo Internet. Dispositivos típicos que usan los procedimientos y sistemas descritos en el presente documento son dispositivos electrónicos portátiles u otros equipos de usuario que se usan para almacenar y/o reproducir señales de audio.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. Un codificador de voz basado en transformada (100, 170) configurado para codificar una señal de voz en un flujo de bits; comprendiendo el codificador (100, 170):
    - una unidad de generación de tramas (101) configurada para recibir un conjunto (132, 332) de bloques; donde el conjunto (132, 332) de bloques comprende una pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la pluralidad de bloques (131) indica muestras de la señal de voz; donde un bloque (131) de coeficientes de transformada comprende una pluralidad de coeficientes de transformada para una pluralidad correspondiente de celdas de frecuencia (301);
    - una unidad de estimación de envolvente (102) configurada para determinar una envolvente actual (133) en función de la pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la envolvente actual (133) indica una pluralidad de valores de energía espectral (303) para la pluralidad correspondiente de celdas de frecuencia (301);
    - una unidad de cuantificación de envolvente (103) configurada para determinar una envolvente actual cuantificada (134) cuantificando la envolvente actual (133);
    - una unidad de interpolación de envolvente (104) configurada para determinar una pluralidad de envolventes interpoladas (136) para la pluralidad de bloques (131) de coeficientes de transformada, respectivamente, en función de la envolvente actual cuantificada (134) y en función de una envolvente previa cuantificada (134); y
    - una unidad de aplanamiento (108) configurada para determinar una pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la pluralidad correspondiente de bloques (131) de coeficientes de transformada usando la pluralidad correspondiente de envolventes interpoladas (136), respectivamente; donde el flujo de bits se determina en función de la pluralidad de bloques (140) de coeficientes de transformada aplanados.
  2. 2. El codificador de voz basado en transformada (100, 170) según la reivindicación 1, en el que:
    - el codificador de voz basado en transformada (100, 170) comprende además una unidad de determinación de ganancia de envolvente (105, 106) configurada para determinar una pluralidad de ganancias de envolvente (137) para la pluralidad de bloques (131) de coeficientes de transformada, respectivamente;
    - el codificador de voz basado en transformada (100, 170) comprende además una unidad de refinamiento de envolvente (107) configurada para determinar una pluralidad de envolventes ajustadas (139) desfasando valores de energía espectral (303) de la pluralidad de envolventes interpoladas (136) según la pluralidad de ganancias de envolvente (137), respectivamente;
    - la unidad de aplanamiento (108) está configurada para determinar la pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la pluralidad correspondiente de bloques (131) de coeficientes de transformada usando la pluralidad correspondiente de envolventes ajustadas (139), respectivamente.
  3. 3. El codificador de voz basado en transformada (100, 170) según la reivindicación 2, en el que la unidad de determinación de ganancia de envolvente (105, 106) está configurada para determinar una primera ganancia de envolvente (137) de un primer bloque (131) de coeficientes de transformada, de manera que una varianza de los coeficientes de transformada aplanados de un primer bloque correspondiente (140) de coeficientes de transformada aplanados obtenidos usando una primera envolvente ajustada (139) se ajusta en comparación con una varianza de los coeficientes de transformada aplanados de un primer bloque correspondiente (140) de coeficientes de transformada aplanados obtenidos usando una primera envolvente interpolada (139), donde, opcionalmente, la unidad de determinación de ganancia de envolvente (105, 1066) está configurada para determinar la primera ganancia de envolvente (137) para el primer bloque (131) de coeficientes de transformada, de manera que la varianza de los coeficientes de transformada aplanados del primer bloque correspondiente (140) de coeficientes de transformada aplanados obtenidos usando la primera envolvente ajustada (139) es uno.
  4. 4. El codificador de voz basado en transformada (100, 170) según cualquier reivindicación anterior, en el que:
    - la envolvente actual (133) indica una pluralidad de valores de energía espectral (303) para una pluralidad correspondiente de bandas de frecuencia (302);
    - una banda de frecuencias (302) comprende una o más celdas de frecuencia (301);
    - la unidad de estimación de envolvente (102) está configurada para determinar el valor de energía espectral (303) para una banda de frecuencia particular (302) en función de los coeficientes de transformada de la pluralidad de bloques secuenciales (131) para la banda de frecuencia particular (302).
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
  5. 5. El codificador de voz basado en transformada (100, 170) según cualquier reivindicación anterior, en el que:
    - un bloque (131) de coeficientes de transformada comprende coeficientes MDCT; y/o
    - un bloque (131) de coeficientes de transformada comprende 256 coeficientes de transformada en 256 celdas de frecuencia (301); y/o
    - un conjunto (132, 332) de bloques comprende cuatro o más bloques (131) de coeficientes de transformada.
  6. 6. El codificador de voz basado en transformada (100, 170) según cualquier reivindicación anterior, en el que:
    - el codificador de voz basado en transformada (100, 170) está configurado para funcionar en una pluralidad de modos diferentes que comprenden un modo de corto espaciamiento y un modo de largo espaciamiento;
    - la unidad de generación de tramas (101), la unidad de estimación de envolvente (102) y la unidad de interpolación de envolvente (104) están configuradas para procesar el conjunto (132, 332) de bloques que comprenden la pluralidad de bloques secuenciales (131) de coeficientes de transformada, cuando el codificador de voz basado en transformada (100, 170) se hace funcionar en el modo de corto espaciamiento; y
    - la unidad de generación de tramas (101), la unidad de estimación de envolvente (102) y la unidad de interpolación de envolvente (104) están configuradas para procesar un conjunto (132, 332) de bloques que comprenden un único bloque (131) de coeficientes de transformada, cuando el codificador de voz basado en transformada (100, 170) se hace funcionar en el modo de largo espaciamiento, donde, opcionalmente, cuando en el modo de largo espaciamiento,
    - la unidad de estimación de envolvente (102) está configurada para determinar una envolvente actual (133) del único bloque (131) de coeficientes de transformada comprendidos en el conjunto (132, 133) de bloques; y
    - la unidad de interpolación de envolvente (104) está configurada para determinar una envolvente interpolada (136) del único bloque (131) de coeficientes de transformada como la envolvente actual (133) del único bloque (131) de coeficientes de transformada.
  7. 7. Un descodificador de voz basado en transformada (500) configurado para descodificar un flujo de bits para proporcionar una señal de voz reconstruida; comprendiendo el descodificador (500):
    - una unidad de descodificación de envolvente (531), configurada para determinar una envolvente actual cuantificada (134) a partir de datos de envolvente (161) comprendidos en el flujo de bits; donde la envolvente actual cuantificada (134) indica una pluralidad de valores de energía espectral (303) para una pluralidad correspondiente de celdas de frecuencia (301); donde el flujo de bits comprende datos (163, 164) que indican una pluralidad de bloques secuenciales (148) de coeficientes de transformada aplanados reconstruidos; donde un bloque (148) de coeficientes de transformada aplanados reconstruidos comprende una pluralidad de coeficientes de transformada aplanados reconstruidos para la pluralidad correspondiente de celdas de frecuencia (301);
    - una unidad de interpolación de envolvente (104) configurada para determinar una pluralidad de envolventes interpoladas (136) para la pluralidad de bloques (148) de coeficientes de transformada aplanados reconstruidos, respectivamente, en función de la envolvente actual cuantificada (134) y en función de una envolvente previa cuantificada (134); y
    - una unidad de aplanamiento inverso (108) configurada para determinar una pluralidad de bloques (149) de coeficientes de transformada reconstruidos dotando a la pluralidad correspondiente de bloques (148) de coeficientes de transformada aplanados reconstruidos de una forma espectral, usando la pluralidad correspondiente de envolventes interpoladas (136), respectivamente; donde la señal de voz reconstruida se determina en función de la pluralidad de bloques (149) de coeficientes de transformada reconstruidos, donde, opcionalmente, la envolvente previa cuantificada (134) está asociada a una pluralidad de bloques previos (149) de coeficientes de transformada reconstruidos, directamente anteriores a la pluralidad de bloques (149) de coeficientes de transformada reconstruidos.
  8. 8. El descodificador de voz basado en transformada (500) según la reivindicación 7, en el que:
    - la pluralidad de bloques secuenciales (148) de coeficientes de transformada aplanados reconstruidos comprende un primer bloque (148) de coeficientes de transformada aplanados reconstruidos en un primer instante de tiempo intermedio;
    - la unidad de interpolación de envolvente (104) está configurada para determinar un valor de energía espectral (303) para una celda de frecuencia particular (301) de una primera envolvente interpolada (136)
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    interpolando los valores de energía espectral (303) para la celda de frecuencia particular (301) de la envolvente actual cuantificada (135) y de la envolvente previa cuantificada (134) en el primer instante de tiempo intermedio;
    - la primera envolvente interpolada (136) está asociada al primer bloque (148) de coeficientes de transformada aplanados reconstruidos.
  9. 9. El descodificador de voz basado en transformada (500) según la reivindicación 8, en el que la unidad de interpolación de envolvente (104) está configurada para determinar el valor de energía espectral (303) para la celda de frecuencia particular (301) de la primera envolvente interpolada (136) cuantificando la interpolación entre los valores de energía espectral (303) para la celda de frecuencia particular (301) de la envolvente actual cuantificada (135) y de la envolvente previa cuantificada (134).
  10. 10. El descodificador de voz basado en transformada (500) según cualquiera de las reivindicaciones 8 o 9, en el que:
    - la pluralidad de bloques secuenciales (148) de coeficientes de transformada aplanados reconstruidos comprende un segundo bloque (148) de coeficientes de transformada aplanados reconstruidos en un segundo instante de tiempo intermedio;
    - la unidad de interpolación de envolvente (104) está configurada para determinar un valor de energía espectral (303) para la celda de frecuencia particular (301) de una segunda envolvente interpolada (136) interpolando los valores de energía espectral (303) para la celda de frecuencia particular (301) de la envolvente actual cuantificada (135) y de la envolvente previa cuantificada (134) en el segundo instante de tiempo intermedio;
    - la segunda envolvente interpolada (136) está asociada al segundo bloque (148) de coeficientes de transformada aplanados reconstruidos;
    - el segundo bloque (148) de coeficientes de transformada aplanados reconstruidos es subsiguiente al primer bloque (148) de coeficientes de transformada aplanados reconstruidos; y
    - el segundo instante de tiempo intermedio es posterior al primer instante de tiempo intermedio, donde una diferencia entre el segundo instante de tiempo intermedio y el primer instante de tiempo intermedio corresponde a un intervalo de tiempo entre el segundo bloque de coeficientes de transformada aplanados reconstruidos y el primer bloque (148) de coeficientes de transformada aplanados reconstruidos.
  11. 11. El descodificador de voz basado en transformada (500) según cualquiera de las reivindicaciones 7 a 10, en el que:
    - el flujo de bits indica una pluralidad de ganancias de envolvente (137) para la pluralidad de bloques (148) de coeficientes de transformada aplanados reconstruidos, respectivamente;
    - el descodificador de voz basado en transformada (500) comprende además una unidad de refinamiento de envolvente (107) configurada para determinar una pluralidad de envolventes ajustadas (139) aplicando la pluralidad de ganancias de envolvente (137) a la pluralidad de envolventes interpoladas (136), respectivamente;
    - la unidad de aplanamiento inverso (108) está configurada para determinar la pluralidad de bloques (149) de coeficientes de transformada reconstruidos dotando a la pluralidad correspondiente de bloques (148) de coeficientes de transformada aplanados reconstruidos de una forma espectral, usando la pluralidad correspondiente de envolventes interpoladas (139), respectivamente.
  12. 12. Un procedimiento para codificar una señal de voz en un flujo de bits; comprendiendo el procedimiento:
    - recibir un conjunto (132, 332) de bloques; donde el conjunto (132, 332) de bloques comprende una pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la pluralidad de bloques secuenciales (131) indica muestras de la señal de voz; donde un bloque (131) de coeficientes de transformada comprende una pluralidad de coeficientes de transformada para una pluralidad correspondiente de celdas de frecuencia (301); determinar una envolvente actual (133) en función de la pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la envolvente actual (133) indica una pluralidad de valores de energía espectral (303) para la pluralidad correspondiente de celdas de frecuencia (301);
    - determinar una envolvente actual cuantificada (134) cuantificando la envolvente actual (133);
    - determinar una pluralidad de envolventes interpoladas (136) para la pluralidad de bloques (131) de coeficientes de transformada, respectivamente, en función de la envolvente actual cuantificada (133) y en función de una envolvente previa cuantificada (134);
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    - determinar una pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la pluralidad correspondiente de bloques (131) de coeficientes de transformada usando la pluralidad correspondiente de envolventes interpoladas (136), respectivamente; y
    - determinar el flujo de bits en función de la pluralidad de bloques (140) de coeficientes de transformada aplanados.
  13. 13. Un procedimiento para descodificar un flujo de bits para proporcionar una señal de voz reconstruida, comprendiendo el procedimiento:
    - determinar una envolvente actual cuantificada (134) a partir de datos de envolvente (161) comprendidos en el flujo de bits; donde la envolvente actual cuantificada (134) indica una pluralidad de valores de energía espectral (303) para una pluralidad correspondiente de celdas de frecuencia (301); donde el flujo de bits comprende datos (163, 164) que indican una pluralidad de bloques secuenciales (148) de coeficientes de transformada aplanados reconstruidos; donde un bloque (148) de coeficientes de transformada aplanados reconstruidos comprende una pluralidad de coeficientes de transformada aplanados reconstruidos para la pluralidad correspondiente de celdas de frecuencia (301);
    - determinar una pluralidad de envolventes interpoladas (136) para la pluralidad de bloques (148) de coeficientes de transformada aplanados reconstruidos, respectivamente, en función de la envolvente actual cuantificada (134) y en función de una envolvente previa cuantificada (134);
    - determinar una pluralidad de bloques (149) de coeficientes de transformada reconstruidos dotando a la pluralidad correspondiente de bloques (148) de coeficientes de transformada aplanados reconstruidos de una forma espectral, usando la pluralidad correspondiente de envolventes interpoladas (136), respectivamente; y
    - determinar la señal de voz reconstruida en función de la pluralidad de bloques (149) de coeficientes de transformada reconstruidos.
  14. 14. Un procedimiento para codificar una señal de audio que comprende un segmento de voz en un flujo de bits, donde el procedimiento comprende:
    - identificar el segmento de voz a partir de la señal de audio;
    - determinar una pluralidad de bloques secuenciales (131) de coeficientes de transformada en función del segmento de voz, usando una unidad de transformada; donde un bloque (131) de coeficientes de transformada comprende una pluralidad de coeficientes de transformada para una pluralidad correspondiente de celdas de frecuencia (301); donde la unidad de transformada está configurada para determinar bloques largos que comprenden un primer número de coeficientes de transformada y bloques cortos que comprenden un segundo número de coeficientes de transformada; donde el primer número es mayor que el segundo número; donde los bloques (131) de la pluralidad de bloques secuenciales (131) son bloques cortos; y
    - codificar la pluralidad de bloques secuenciales (131) en el flujo de bits según la reivindicación 12.
  15. 15. Un procedimiento para descodificar un flujo de bits que indica una señal de audio que comprende un segmento de voz, comprendiendo el procedimiento:
    - determinar una pluralidad de bloques secuenciales (149) de coeficientes de transformada reconstruidos en función de datos (161, 162, 163, 164) comprendidos en el flujo de bits según la reivindicación 13; y
    - determinar un segmento de voz reconstruido en función de la pluralidad de bloques secuenciales (149) de coeficientes de transformada reconstruidos, usando una unidad de transformada inversa; donde un bloque (149) de coeficientes de transformada reconstruidos comprende una pluralidad de coeficientes de transformada reconstruidos para una pluralidad correspondiente de celdas de frecuencia (301); donde la unidad de transformada inversa (504) está configurada para procesar bloques largos que comprenden un primer número de coeficientes de transformada reconstruidos y bloques cortos que comprenden un segundo número de coeficientes de transformada reconstruidos; donde el primer número es mayor que el segundo número; donde los bloques (149) de la pluralidad de bloques secuenciales (149) son bloques cortos.
ES14715307.6T 2013-04-05 2014-04-04 Codificador y descodificador de audio Active ES2665599T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361808675P 2013-04-05 2013-04-05
US201361808675P 2013-04-05
US201361875553P 2013-09-09 2013-09-09
US201361875553P 2013-09-09
PCT/EP2014/056851 WO2014161991A2 (en) 2013-04-05 2014-04-04 Audio encoder and decoder

Publications (1)

Publication Number Publication Date
ES2665599T3 true ES2665599T3 (es) 2018-04-26

Family

ID=50439392

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14715307.6T Active ES2665599T3 (es) 2013-04-05 2014-04-04 Codificador y descodificador de audio

Country Status (20)

Country Link
US (4) US10043528B2 (es)
EP (3) EP3671738A1 (es)
JP (1) JP6227117B2 (es)
KR (5) KR102245916B1 (es)
CN (2) CN105247614B (es)
AU (6) AU2014247000B2 (es)
BR (3) BR122020017853B1 (es)
CA (6) CA3029041C (es)
DK (1) DK2981958T3 (es)
ES (1) ES2665599T3 (es)
HK (2) HK1218802A1 (es)
HU (1) HUE039143T2 (es)
IL (5) IL278164B (es)
MX (1) MX343673B (es)
MY (1) MY176447A (es)
PL (1) PL2981958T3 (es)
RU (3) RU2630887C2 (es)
SG (1) SG11201507703SA (es)
UA (1) UA114967C2 (es)
WO (1) WO2014161991A2 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX343673B (es) 2013-04-05 2016-11-16 Dolby Int Ab Codificador y decodificador de audio.
CN106537500B (zh) * 2014-05-01 2019-09-13 日本电信电话株式会社 周期性综合包络序列生成装置、周期性综合包络序列生成方法、记录介质
PL3174050T3 (pl) * 2014-07-25 2019-04-30 Fraunhofer Ges Forschung Urządzenie do kodowania sygnałów audio, urządzenie do dekodowania sygnałów audio i ich sposoby
US9530400B2 (en) * 2014-09-29 2016-12-27 Nuance Communications, Inc. System and method for compressed domain language identification
US10210871B2 (en) * 2016-03-18 2019-02-19 Qualcomm Incorporated Audio processing for temporally mismatched signals
CN106782573B (zh) * 2016-11-30 2020-04-24 北京酷我科技有限公司 一种编码生成aac文件的方法
JP6906876B2 (ja) * 2017-06-19 2021-07-21 アールティーエックス アー/エス オーディオ信号の符号化および復号化
CN110764422A (zh) * 2018-07-27 2020-02-07 珠海格力电器股份有限公司 电器的控制方法和装置
EP3751567B1 (en) 2019-06-10 2022-01-26 Axis AB A method, a computer program, an encoder and a monitoring device
BR112022010062A2 (pt) * 2019-11-27 2022-09-06 Fraunhofer Ges Forschung Codificador, decodificador, aparelho para ocultação de perda de quadro, sistema e métodos
CN112201283B (zh) * 2020-09-09 2022-02-08 北京小米松果电子有限公司 音频播放方法及装置
US11935546B2 (en) * 2021-08-19 2024-03-19 Semiconductor Components Industries, Llc Transmission error robust ADPCM compressor with enhanced response
WO2023056920A1 (en) * 2021-10-05 2023-04-13 Huawei Technologies Co., Ltd. Multilayer perceptron neural network for speech processing

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1062963C (zh) * 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
JP3123286B2 (ja) * 1993-02-18 2001-01-09 ソニー株式会社 ディジタル信号処理装置又は方法、及び記録媒体
US5684920A (en) * 1994-03-17 1997-11-04 Nippon Telegraph And Telephone Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein
JP3087814B2 (ja) * 1994-03-17 2000-09-11 日本電信電話株式会社 音響信号変換符号化装置および復号化装置
US5751903A (en) 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE506379C3 (sv) * 1995-03-22 1998-01-19 Ericsson Telefon Ab L M Lpc-talkodare med kombinerad excitation
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US7039581B1 (en) * 1999-09-22 2006-05-02 Texas Instruments Incorporated Hybrid speed coding and system
US6978236B1 (en) 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
US7000031B2 (en) * 2000-04-07 2006-02-14 Broadcom Corporation Method of providing synchronous transport of packets between asynchronous network nodes in a frame-based communications network
EP1796083B1 (en) * 2000-04-24 2009-01-07 Qualcomm Incorporated Method and apparatus for predictively quantizing voiced speech
SE0001926D0 (sv) 2000-05-23 2000-05-23 Lars Liljeryd Improved spectral translation/folding in the subband domain
JP3590342B2 (ja) * 2000-10-18 2004-11-17 日本電信電話株式会社 信号符号化方法、装置及び信号符号化プログラムを記録した記録媒体
US6636830B1 (en) * 2000-11-22 2003-10-21 Vialta Inc. System and method for noise reduction using bi-orthogonal modified discrete cosine transform
US6658383B2 (en) * 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US6963842B2 (en) 2001-09-05 2005-11-08 Creative Technology Ltd. Efficient system and method for converting between different transform-domain signal representations
US6988066B2 (en) * 2001-10-04 2006-01-17 At&T Corp. Method of bandwidth extension for narrow-band speech
US6895375B2 (en) * 2001-10-04 2005-05-17 At&T Corp. System for bandwidth extension of Narrow-band speech
US7599835B2 (en) * 2002-03-08 2009-10-06 Nippon Telegraph And Telephone Corporation Digital signal encoding method, decoding method, encoding device, decoding device, digital signal encoding program, and decoding program
US7752052B2 (en) * 2002-04-26 2010-07-06 Panasonic Corporation Scalable coder and decoder performing amplitude flattening for error spectrum estimation
US7516066B2 (en) 2002-07-16 2009-04-07 Koninklijke Philips Electronics N.V. Audio coding
SG108862A1 (en) * 2002-07-24 2005-02-28 St Microelectronics Asia Method and system for parametric characterization of transient audio signals
US7634399B2 (en) * 2003-01-30 2009-12-15 Digital Voice Systems, Inc. Voice transcoder
US7318027B2 (en) * 2003-02-06 2008-01-08 Dolby Laboratories Licensing Corporation Conversion of synthesized spectral components for encoding and low-complexity transcoding
WO2004082288A1 (en) 2003-03-11 2004-09-23 Nokia Corporation Switching between coding schemes
US8359197B2 (en) * 2003-04-01 2013-01-22 Digital Voice Systems, Inc. Half-rate vocoder
CA2524243C (en) * 2003-04-30 2013-02-19 Matsushita Electric Industrial Co. Ltd. Speech coding apparatus including enhancement layer performing long term prediction
US7460684B2 (en) * 2003-06-13 2008-12-02 Nielsen Media Research, Inc. Method and apparatus for embedding watermarks
US7325023B2 (en) 2003-09-29 2008-01-29 Sony Corporation Method of making a window type decision based on MDCT data in audio encoding
RU2376657C2 (ru) * 2005-04-01 2009-12-20 Квэлкомм Инкорпорейтед Системы, способы и устройства для высокополосного предыскажения шкалы времени
EP1760696B1 (en) * 2005-09-03 2016-02-03 GN ReSound A/S Method and apparatus for improved estimation of non-stationary noise for speech enhancement
WO2007037361A1 (ja) * 2005-09-30 2007-04-05 Matsushita Electric Industrial Co., Ltd. 音声符号化装置および音声符号化方法
RU2427978C2 (ru) * 2006-02-21 2011-08-27 Конинклейке Филипс Электроникс Н.В. Кодирование и декодирование аудио
US7590523B2 (en) 2006-03-20 2009-09-15 Mindspeed Technologies, Inc. Speech post-processing using MDCT coefficients
US20070270987A1 (en) * 2006-05-18 2007-11-22 Sharp Kabushiki Kaisha Signal processing method, signal processing apparatus and recording medium
DE602007005729D1 (de) 2006-06-19 2010-05-20 Sharp Kk Signalverarbeitungsverfahren, Signalverarbeitungsvorrichtung und Aufzeichnungsmedium
US7987089B2 (en) 2006-07-31 2011-07-26 Qualcomm Incorporated Systems and methods for modifying a zero pad region of a windowed frame of an audio signal
US8135047B2 (en) * 2006-07-31 2012-03-13 Qualcomm Incorporated Systems and methods for including an identifier with a packet associated with a speech signal
US8078301B2 (en) * 2006-10-11 2011-12-13 The Nielsen Company (Us), Llc Methods and apparatus for embedding codes in compressed audio data streams
DK2102619T3 (en) * 2006-10-24 2017-05-15 Voiceage Corp METHOD AND DEVICE FOR CODING TRANSITION FRAMEWORK IN SPEECH SIGNALS
PL3288027T3 (pl) 2006-10-25 2021-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Urządzenie i sposób do generowania wartości podpasm audio o wartościach zespolonych
WO2008053970A1 (fr) 2006-11-02 2008-05-08 Panasonic Corporation Dispositif de codage de la voix, dispositif de décodage de la voix et leurs procédés
FR2912249A1 (fr) * 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
US8214200B2 (en) 2007-03-14 2012-07-03 Xfrm, Inc. Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid
US8706480B2 (en) * 2007-06-11 2014-04-22 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder for encoding an audio signal having an impulse-like portion and stationary portion, encoding methods, decoder, decoding method, and encoding audio signal
KR101411901B1 (ko) 2007-06-12 2014-06-26 삼성전자주식회사 오디오 신호의 부호화/복호화 방법 및 장치
EP2015293A1 (en) 2007-06-14 2009-01-14 Deutsche Thomson OHG Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain
ES2375192T3 (es) * 2007-08-27 2012-02-27 Telefonaktiebolaget L M Ericsson (Publ) Codificación por transformación mejorada de habla y señales de audio.
JP2010539792A (ja) 2007-09-12 2010-12-16 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション スピーチ増強
KR101373004B1 (ko) * 2007-10-30 2014-03-26 삼성전자주식회사 고주파수 신호 부호화 및 복호화 장치 및 방법
US9177569B2 (en) * 2007-10-30 2015-11-03 Samsung Electronics Co., Ltd. Apparatus, medium and method to encode and decode high frequency signal
CN101465122A (zh) 2007-12-20 2009-06-24 株式会社东芝 语音的频谱波峰的检测以及语音识别方法和系统
ATE518224T1 (de) * 2008-01-04 2011-08-15 Dolby Int Ab Audiokodierer und -dekodierer
CN101527138B (zh) * 2008-03-05 2011-12-28 华为技术有限公司 超宽带扩展编码、解码方法、编解码器及超宽带扩展系统
EP2269188B1 (en) * 2008-03-14 2014-06-11 Dolby Laboratories Licensing Corporation Multimode coding of speech-like and non-speech-like signals
CN101572586B (zh) * 2008-04-30 2012-09-19 北京工业大学 编解码方法、装置及系统
EP2410522B1 (en) * 2008-07-11 2017-10-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio signal encoder, method for encoding an audio signal and computer program
BRPI0910792B1 (pt) * 2008-07-11 2020-03-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. "sintetizador de sinal de áudio e codificador de sinal de áudio"
KR20100007738A (ko) * 2008-07-14 2010-01-22 한국전자통신연구원 음성/오디오 통합 신호의 부호화/복호화 장치
US8463603B2 (en) * 2008-09-06 2013-06-11 Huawei Technologies Co., Ltd. Spectral envelope coding of energy attack signal
US8352279B2 (en) 2008-09-06 2013-01-08 Huawei Technologies Co., Ltd. Efficient temporal envelope coding approach by prediction between low band signal and high band signal
US8515747B2 (en) 2008-09-06 2013-08-20 Huawei Technologies Co., Ltd. Spectrum harmonic/noise sharpness control
WO2010028299A1 (en) 2008-09-06 2010-03-11 Huawei Technologies Co., Ltd. Noise-feedback for spectral envelope quantization
GB2466671B (en) * 2009-01-06 2013-03-27 Skype Speech encoding
PL3246919T3 (pl) 2009-01-28 2021-03-08 Dolby International Ab Ulepszona transpozycja harmonicznych
US8848788B2 (en) * 2009-05-16 2014-09-30 Thomson Licensing Method and apparatus for joint quantization parameter adjustment
BR112012007803B1 (pt) 2009-10-08 2022-03-15 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Decodificador de sinal de áudio multimodal, codificador de sinal de áudio multimodal e métodos usando uma configuração de ruído com base em codificação de previsão linear
CA2778240C (en) * 2009-10-20 2016-09-06 Fraunhofer Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Multi-mode audio codec and celp coding adapted therefore
JP5316896B2 (ja) 2010-03-17 2013-10-16 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法、並びにプログラム
US8600737B2 (en) * 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
JP5981913B2 (ja) * 2010-07-08 2016-08-31 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ フォワードエイリアシング消去を用いた符号器
US8560330B2 (en) 2010-07-19 2013-10-15 Futurewei Technologies, Inc. Energy envelope perceptual correction for high band coding
US9047875B2 (en) 2010-07-19 2015-06-02 Futurewei Technologies, Inc. Spectrum flatness control for bandwidth extension
KR101826331B1 (ko) * 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
CN102436820B (zh) 2010-09-29 2013-08-28 华为技术有限公司 高频带信号编码方法及装置、高频带信号解码方法及装置
WO2012070866A2 (ko) * 2010-11-24 2012-05-31 엘지전자 주식회사 스피치 시그널 부호화 방법 및 복호화 방법
ES2529025T3 (es) 2011-02-14 2015-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para procesar una señal de audio decodificada en un dominio espectral
WO2012146757A1 (en) * 2011-04-28 2012-11-01 Dolby International Ab Efficient content classification and loudness estimation
US9546924B2 (en) 2011-06-30 2017-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Transform audio codec and methods for encoding and decoding a time segment of an audio signal
US9251800B2 (en) * 2011-11-02 2016-02-02 Telefonaktiebolaget L M Ericsson (Publ) Generation of a high band extension of a bandwidth extended audio signal
EP2830062B1 (en) * 2012-03-21 2019-11-20 Samsung Electronics Co., Ltd. Method and apparatus for high-frequency encoding/decoding for bandwidth extension
CN104885149B (zh) * 2012-09-24 2017-11-17 三星电子株式会社 用于隐藏帧错误的方法和设备以及用于对音频进行解码的方法和设备
EP3893240B1 (en) 2013-01-08 2024-04-24 Dolby International AB Model based prediction in a critically sampled filterbank
MX343673B (es) * 2013-04-05 2016-11-16 Dolby Int Ab Codificador y decodificador de audio.
US9487224B1 (en) * 2015-09-22 2016-11-08 Siemens Industry, Inc. Mechanically extendable railroad crossing gate

Also Published As

Publication number Publication date
SG11201507703SA (en) 2015-10-29
RU2630887C2 (ru) 2017-09-13
AU2017201874A1 (en) 2017-04-06
IL241739A (en) 2017-06-29
BR112015025139A2 (pt) 2017-07-18
EP2981958B1 (en) 2018-03-07
IL258331B (en) 2020-11-30
IL258331A (en) 2018-05-31
RU2017129566A3 (es) 2020-11-02
BR122020017837B1 (pt) 2022-08-23
CN109712633B (zh) 2023-07-07
RU2015147276A (ru) 2017-05-16
AU2018260843B2 (en) 2020-09-03
RU2017129566A (ru) 2019-02-05
RU2740690C2 (ru) 2021-01-19
HK1218802A1 (zh) 2017-03-10
IL278164B (en) 2022-08-01
CA3029033C (en) 2021-03-30
IL278164A (en) 2020-11-30
IL252640A0 (en) 2017-07-31
BR112015025139B1 (pt) 2022-03-15
CA2997882A1 (en) 2014-10-09
WO2014161991A3 (en) 2015-04-23
CA2908625C (en) 2017-10-03
AU2017201872A1 (en) 2017-04-06
US10043528B2 (en) 2018-08-07
AU2014247000B2 (en) 2017-04-20
AU2017201874B2 (en) 2018-08-09
MY176447A (en) 2020-08-10
CN105247614B (zh) 2019-04-05
CA3029037A1 (en) 2014-10-09
KR101739789B1 (ko) 2017-05-25
KR20150127654A (ko) 2015-11-17
CA2908625A1 (en) 2014-10-09
RU2017129552A3 (es) 2020-11-02
US20230238011A1 (en) 2023-07-27
HUE039143T2 (hu) 2018-12-28
AU2023200174A1 (en) 2023-02-16
US11621009B2 (en) 2023-04-04
KR102150496B1 (ko) 2020-09-01
CA3029033A1 (en) 2014-10-09
KR102383819B1 (ko) 2022-04-08
JP6227117B2 (ja) 2017-11-08
RU2017129552A (ru) 2019-02-04
RU2740359C2 (ru) 2021-01-13
IL252640B (en) 2018-04-30
CA3029037C (en) 2021-12-28
KR102028888B1 (ko) 2019-11-08
US20180322886A1 (en) 2018-11-08
KR20160125540A (ko) 2016-10-31
AU2017201872B2 (en) 2018-08-09
KR20210046846A (ko) 2021-04-28
JP2016514857A (ja) 2016-05-23
US10515647B2 (en) 2019-12-24
CA2948694A1 (en) 2014-10-09
WO2014161991A2 (en) 2014-10-09
HK1250836A1 (zh) 2019-01-11
CA3029041A1 (en) 2014-10-09
KR20190112191A (ko) 2019-10-02
IL241739A0 (en) 2015-11-30
AU2020281040B2 (en) 2022-10-13
EP3352167A1 (en) 2018-07-25
DK2981958T3 (en) 2018-05-28
CA2997882C (en) 2020-06-30
CA3029041C (en) 2021-03-30
EP3352167B1 (en) 2019-10-02
IL294836A (en) 2022-09-01
AU2023200174B2 (en) 2024-02-22
CN109712633A (zh) 2019-05-03
CN105247614A (zh) 2016-01-13
UA114967C2 (uk) 2017-08-28
US20200126574A1 (en) 2020-04-23
PL2981958T3 (pl) 2018-07-31
BR122020017853B1 (pt) 2023-03-14
AU2014247000A1 (en) 2015-10-08
AU2020281040A1 (en) 2021-01-07
EP2981958A2 (en) 2016-02-10
CA2948694C (en) 2019-02-05
MX343673B (es) 2016-11-16
US20160064007A1 (en) 2016-03-03
AU2018260843A1 (en) 2018-11-22
MX2015013927A (es) 2015-12-11
EP3671738A1 (en) 2020-06-24
KR102245916B1 (ko) 2021-04-30
KR20200103881A (ko) 2020-09-02

Similar Documents

Publication Publication Date Title
ES2665599T3 (es) Codificador y descodificador de audio
ES2628127T3 (es) Cuantificador avanzado