ES2982183T3 - Codificador y descodificador de audio - Google Patents

Codificador y descodificador de audio Download PDF

Info

Publication number
ES2982183T3
ES2982183T3 ES19200800T ES19200800T ES2982183T3 ES 2982183 T3 ES2982183 T3 ES 2982183T3 ES 19200800 T ES19200800 T ES 19200800T ES 19200800 T ES19200800 T ES 19200800T ES 2982183 T3 ES2982183 T3 ES 2982183T3
Authority
ES
Spain
Prior art keywords
envelope
blocks
current
transform
block
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
ES19200800T
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 ES2982183T3 publication Critical patent/ES2982183T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

El presente documento se refiere a un sistema de codificación y decodificación de audio (denominado sistema de códec de audio). En particular, el presente documento se refiere a un sistema de códec de audio basado en transformadas que es particularmente adecuado para la codificación/decodificación de voz. Se describe un codificador de voz basado en transformadas (100, 170) configurado para codificar una señal de voz en un flujo de bits. El codificador (100, 170) comprende una unidad de encuadre (101) configurada para recibir un conjunto (132, 332) de bloques; en donde el conjunto (132, 332) de bloques comprende una pluralidad de bloques secuenciales (131) de coeficientes de transformada; en donde la pluralidad de bloques (131) es indicativa de muestras de la señal de voz; en donde un bloque (131) de coeficientes de transformada comprende una pluralidad de coeficientes de transformada para una pluralidad correspondiente de contenedores de frecuencia (301). Además, el codificador (100, 170) comprende una unidad de estimación de envolvente (102) configurada para determinar una envolvente actual (133) basándose en la pluralidad de bloques secuenciales (131) de coeficientes de transformación; en donde la envolvente actual (133) es indicativa de una pluralidad de valores de energía espectral (303) para la pluralidad correspondiente de contenedores de frecuencia (301). Además, el codificador (100, 170) comprende 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 transformación, respectivamente, basándose en la envolvente actual (133); Además, el codificador (100, 170) comprende una unidad de aplanamiento (108) configurada para determinar una pluralidad de bloques (140) de coeficientes de transformación aplanados aplanando la pluralidad correspondiente de bloques (131) de coeficientes de transformación utilizando la pluralidad correspondiente de envolventes interpoladas (136), respectivamente; en donde el flujo de bits se determina en función de la pluralidad de bloques (140) de coeficientes de transformación aplanados. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificador y descodificador de audio
Referencia cruzada a solicitudes relacionadas
Esta solicitud es una solicitud divisional europea de la solicitud de patente europea EP18154660.7 (referencia: D13022EP02), para la que el formulario 1001 de la OEP fue presentado el 1 de febrero de 2018.
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 habla seca (no reverberante). Por consiguiente, 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. En otras palabras, 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 habla clásico de dominio tiempo basado en filtrado de predicción a corto plazo (LPC) y predicción a largo plazo (LTP).
Puede demostrarse 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 habla. Por otro lado, la incorporación de un codificador de habla clásico de dominio 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 habla clásicos de dominio tiempo modelan el sistema de producción de habla humana y se han optimizado para la codificación de señales de habla.
En vista de lo anterior, puede usarse un códec de audio basado en transformada en combinación con un códec de habla clásico de dominio tiempo, donde el códec de habla clásico de dominio tiempo se usa para segmentos de habla 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 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 base a las propiedades de la señal de audio. Además, la conmutación real entre un códec de dominio tiempo (para contenido de habla) 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 tiempo y el códec de dominio de transformada (y viceversa). Además, pueden requerirse modificaciones en el códec de dominio tiempo con el fin de hacer que el códec de dominio tiempo sea más robusto en lo que respecta a la inevitable codificación ocasional de señales que no son de habla, 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 habla y mediante ello consigue un rendimiento uniforme para la habla y la música manteniendo la arquitectura de un códec basado en transformada. En otras palabras, 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.
Sumario
La invención se describe de acuerdo con las características de las reivindicaciones independientes.
Breve descripción de las figuras
La invención se explica a continuación a modo de ejemplo con referencia a los dibujos que se acompañan, en los que:
la figura 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 figura 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 figura 2 ilustra la generación de una envolvente de ejemplo según una pluralidad de bloques de coeficientes de transformada;
la figura 3a ilustra envolventes de ejemplo de bloques de coeficientes de transformada;
la figura 3b ilustra la determinación de una envolvente interpolada de ejemplo;
la figura 4 ilustra conjuntos de cuantificadores de ejemplo;
la figura 5a muestra un diagrama de bloques de un descodificador de audio de ejemplo;
la figura 5b muestra un diagrama de bloques de un descodificador de envolvente de ejemplo del descodificador de audio de la figura 5a;
la figura 5c muestra un diagrama de bloques de un predictor de subbanda de ejemplo del descodificador de audio de la figura 5a; y
la figura 5d muestra un diagrama de bloques de un descodificador de espectro de ejemplo del descodificador de audio de la figura 5a.
Descripción detallada
Como se esbozó en la sección de 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 habla 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 habla o de no habla y la subsiguiente conmutación entre el códec de audio genérico y el códec de habla específico pueden simplificarse, debido a que ambos códecs funcionan en el dominio de transformada.
La figura 1a muestra un diagrama de bloques de un codificador de habla 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 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 hacer uso de 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 habla pueden considerarse estacionarias en segmentos temporales de 20 ms aproximadamente. En particular, la envolvente espectral de una señal de habla puede considerarse estacionaria en segmentos temporales de 20 ms aproximadamente. Con el fin de poder deducir estadísticas que tengan sentido en el domino de transformada para tales segmentos de 20 ms, puede ser útil dotar al codificador de habla 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 deducir 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 habla.
Por consiguiente, 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 habla. 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, cubriendo mediante ello aproximadamente un segmento de 20 ms de la señal de audio de entrada.
El codificador de habla 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 habla 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 habla) en un conjunto 132 de bloques cortos 131 (como se esbozó anteriormente). Por otro lado, cuando funciona en el modo de largo espaciamiento, el codificador de habla 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 habla. 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 consiguiente, 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 base al conjunto 132 de bloques. La envolvente 133 puede estar basada en valores de media cuadrática (RMS) de correspondientes coeficientes de transformada 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 correspondiente pluralidad de celdas de frecuencia 301 (véase la figura 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 base a 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 una banda de frecuencia particular 302 puede determinarse en base a 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 base al valor RMS de estos coeficientes de transformada. Como tal, 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 base a uno o más bloques adicionales 131 de coeficientes de transformada adyacentes al conjunto actual 132 de bloques. Esto se ilustra en la figura 2, donde la envolvente actual 133 (indicada por la envolvente actual cuantificada 134) se determina en base a los bloques 131 del conjunto actual 132 de bloques y en base al bloque 201 del conjunto de bloques anterior al conjunto actual 132 de bloques. En el ejemplo ilustrado, la envolvente actual 133 se determina en base a 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 se proporciona 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, 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 base a la envolvente actual cuantificada 134 y en base a 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 figuras 2, 3a y 3b. La figura 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 figura 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). Correspondientes valores de energía 303 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. En otras palabras, 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 base a lo cual se determina la envolvente actual cuantificada 134. Esto se ilustra en la figura 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 base a la envolvente actual cuantificada 134 y en base a 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 consiguiente, las envolventes interpoladas 136 mostradas en la figura 3b pueden usarse para aplanar los bloques 131 del conjunto desplazado 332 de bloques. Esto se muestra en la figura 3b en combinación con la figura 2. Puede observarse que la envolvente interpolada 341 de la figura 3b puede aplicarse al bloque 203 de la figura 2, que la envolvente interpolada 342 de la figura 3b puede aplicarse al bloque 201 de la figura 2, que la envolvente interpolada 343 de la figura 3b puede aplicarse al bloque 204 de la figura 2, y que la envolvente interpolada 344 de la figura 3b (que en el ejemplo ilustrado corresponde a la envolvente actual cuantificada 136) puede aplicarse al bloque 205 de la figura 2. Como tal, 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 figura 3b. Puede observarse que, mediante la interpolación entre un valor de energía de la envolvente previa cuantificada 135 y el correspondiente valor de energía 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, proporcionando mediante ello una pluralidad de envolventes 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 correspondiente descodificador en el flujo de bits. En consecuencia, el correspondiente descodificador 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 habla 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 consiguiente, solo se determina por trama un único bloque 131 de coeficientes de transformada. 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 consiguiente, 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 base a la envolvente interpolada actual 136 y en base al 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 iguales). La ganancia de envolvente a puede determinarse de modo que se ajuste laX(k) =
varianza de los coeficientes de transformada aplanados -a<2>
'V<B>
E(k<L>
). 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 subrango del rango de frecuencias completo del bloque actual 131 de los coeficientes de transformada. En otras palabras, la ganancia de envolvente a puede determinarse solamente en base a un subconjunto de las celdas de frecuencia 301 y/o solamente en base a un subconjunto de las bandas de frecuencia 302. A modo de ejemplo, la ganancia de envolvente a puede determinarse en base a 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 consiguiente, 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 figura 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, entregando mediante ello una envolvente ajustada 139, como se ilustra mediante la figura 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 base a la ganancia de envolvente a 137 y en base a 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 3 dB). Como tal, 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, entregando mediante ello el bloque 140 de coeficientes de transformada aplanados X(k). El bloque 140 de coeficientes de transformada aplanados %(k) puede codificarse usando un bucle de predicción en el dominio de transformada. Como tal, 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 base al bloque 140 de coeficientes de transformada aplanados X(k) y en base a 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. En otras palabras, 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 entregar un bloque 142 de coeficientes de error reescalados. La unidad de reescalado 111 puede hacer uso de 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 puede hacer uso de 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 figura 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. Como tal, un valor de energía de la envolvente de asignación 138 puede apuntar a un correspondiente cuantificador de la pluralidad de cuantificadores. Como tal, 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. En otras palabras, 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 hacen uso de ruido aleatorio para aleatorizar el error de cuantificación. Esto se ilustra en la figura 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. Como tal, la unidad de cuantificación de coeficientes 112 puede hacer uso de 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 base al 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, entregando mediante ello 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 base a 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 correspondiente valor de energía en la envolvente de asignación 138.
El proceso de asignación de bits puede hacer uso de 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 mediante ello cuantificadores con una mayor/menor resolución. Como tal, 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 adjudicados 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, correspondiente el descodificador 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 correspondiente descodificador. 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 la inversa con respecto a las operaciones de reescalado realizadas por la unidad de reescalado 111, entregando mediante ello 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, entregando mediante ello 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 correspondiente descodificador. 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 esboza 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 base a 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 esbozará 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. En otras palabras, 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 consiguiente, 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. En otras palabras, 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 correspondiente descodificador ya sabe que el bloque particular 131 no hace uso de un predictor 117).
El predictor 117 puede hacer uso de un modelo de señal, como se describe en la solicitud de patente US61750052 y las solicitudes de patente que reivindican prioridad de la misma. 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 figura 1b muestra un diagrama de bloques de un ejemplo adicional de un codificador de habla basado en transformada 170. El codificador de habla basado en transformada 170 de la figura 1b comprende muchos de los componentes del codificador 100 de la figura 1a. Sin embargo, el codificador de habla basado en transformada 170 de la figura 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 habla basados en transformada 100, 170 están configurados para generar un flujo de bits que indica o que comprende:
- Datos de envolvente 161 indicativos de 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.
- Datos de ganancia 162 indicativos de 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 diferente a se proporciona a cada bloque 131 del conjunto actual 132 o del conjunto desplazado 332 de bloques.
- Datos de coeficientes 163 indicativos del 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.
- Datos de predictor 164 indicativos de 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 correspondiente descodificador de habla basado en transformada 500 se describe en el contexto de las figuras 5a a 5d. La figura 5a muestra un diagrama de bloques de un descodificador de habla 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 tiempo, entregando mediante ello muestras de la señal de audio descodificada. El banco de filtros de síntesis 504 puede hacer uso de 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 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 rango de 5 ms para la gestión de fenómenos transitorios. Como tales, 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 figura 5a puede, por lo 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. En otras palabras, el descodificador de habla basado en transformada 500 de la figura 5a puede combinarse de manera adecuada con un descodificador de audio genérico basado en transformada. En particular, el descodificador de habla basado en transformada 500 de la figura 5a puede hacer uso del 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 base a los datos de envolvente 161 y los datos de ganancia 162. Como tal, 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 esbozó 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 base a 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). En otras palabras, 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 base a 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 base a, normalmente, la parte más grande del flujo de bits (es decir, en base a los datos de coeficientes 163). El proceso de descodificación de espectro se controla principalmente mediante un vector de asignación, que se deduce 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 figura 5a, puede haber una dependencia directa del descodificador de espectro 502 con respecto a los parámetros de predictor 520. Como tal, el descodificador de espectro 502 puede estar configurado para determinar el bloque 147 de coeficientes de error cuantificados y escalados en base a los datos de coeficientes recibidos 163. Como se esbozó 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 deducirse 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 parámetro de control 146 se puede deducir mediante el descodificador 500 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 figura 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 figura 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 correspondiente envolvente interpolada 136 con el fin de 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 figura 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). Como tales, 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.
Con el fin de 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 correspondiente conjunto desplazado 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 habla 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.
El funcionamiento del predictor de subbanda 517 se ilustra en la figura 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 T es 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. En otras palabras, 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 discusión detallada relacionada con una posible implementación del extractor 543 se proporciona en la solicitud de patente US61750052 y las solicitudes de patente que reivindican prioridad de la misma.
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 T0 unidades de tiempo en la memoria intermedia de envolventes 542, donde T0 es el entero más próximo a T Entonces, el vector de dominio aplanado puede escalarse mediante el parámetro de ganancia g para entregar 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 hacer uso de 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 correspondiente descodificador 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 la adecuación al 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. En otras palabras, se ha encontrado que los modelos de señales (por ejemplo, modelos sinusoidales o periódicos) usados por el predictor de subbanda 517 entregan 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 figura 5a). La unidad de conformación 544 de la figura 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á hacer uso normalmente de una contribución predictiva pero puede, no obstante, usar un número relativamente menor de bits para transportar la información de predictor 520. La 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.
En otras palabras, 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. Ya el bloque inmediatamente posterior 201 puede hacer uso de los beneficios 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 consiguiente, el esquema de codificación de habla 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. Como tal, el esquema de codificación de habla 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 T0 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 T0 de manera que el valor de retardo entero T0 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 T0 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 T0 puede limitarse a un valor que es una función del índice de bloque en la trama actual. A modo de ejemplo, el valor de retardo entero T0 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 distorsiones y/o estados no deseables debidos al proceso de aplanamiento.
La figura 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 adjudicar valores de coeficiente a los índices de cuantificación comprendidos en los datos de coeficientes 163. Como se esbozó 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 figura 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 entregar 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. En otras palabras, 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 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.
En otras palabras, 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 correspondiente cuantificador 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 entregar 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 figura 5d pueden usarse para adaptar la descodificación espectral a su uso en el descodificador global 500 mostrado en la figura 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 consiguiente, 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 esboza 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 sucede que es más prominente en situaciones con voz (es decir, para una señal que tiene un parámetro de control 146, rfu, relativamente grande). Como tal, 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(1, max(g, 0)).
Pueden usarse métodos 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
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.
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 base al 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 rango 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 para situaciones con voz / tonales. Como tal, una ganancia de predictor g relativamente alta (es decir, un parámetro de control 146 relativamente alto) puede indicar una señal de habla con voz 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 base a la ganancia de predictor g, mejorando mediante ello la calidad percibida de la señal de habla codificada.
Como tal, el parámetro de control 146 puede usarse para modificar el rango 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 rango 324 de cuantificadores con ruido aleatorio. En otras palabras, 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 rango 325 de cuantificadores con ruido aleatorio. En otras palabras, 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 rango 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. 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 con voz. 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 esbozó 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 entregar un bloque 142 de coeficientes de error reescalados. La unidad de reescalado 111 puede hacer uso de una o más reglas heurísticas predeterminadas para realizar el reescalado. En un ejemplo, la unidad de reescalado 111 puede hacer uso de una regla de escalado heurístico que comprende la ganancia d(f), por ejemplo
donde una frecuencia de ruptura f0 puede fijarse a, por ejemplo, 1000 Hz. Por consiguiente, 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 entregar 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 consiguiente, 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).
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 deducirse en base a la raíz cuadrada de la ganancia dependiente de la frecuencia, por ejemplo en base a
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 consiguiente, con el fin de 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 esbozó 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 correspondiente valor de energía 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 adjudicar 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(í ÍL)3) ' 1
curva dependiente de una frecuencia fija con un carácter de paso bajo V wJpuede sustituirse por una función 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.
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 predictor (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 es una función de la envolvente de señal (por ejemplo, una función 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 xi (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:
Tal ganancia de predictor p 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
D
enfoque da como resultado el siguiente criterio de error:<Z>
>'<' :-v 1 »,>
, que lleva a la siguiente definición de la ganancia de predictor óptima (en el sentido del error cuadrático medio ponderado):
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 base a 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 consiguiente, 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
donde¡,¡y¡ .Esta definición de la ganancia de predictor entrega 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:
=EÁl ~P2)
El parámetro de control rfu 146 puede determinarse en base a 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 esbozó 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 que tenga sentido perceptualmente. 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 deduce 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 esbozó 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 esbozado 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).
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 estar dada por p<e>[0, 1] tal que\\z \\w= pIMIw, donde llz llw 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\\x\\lindica la energía elevada al cuadrado del vector objetivo (es decir, el bloque 140 de coeficientes de transformada aplanados) en el dominio ponderado.
Pueden hacerse 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 base al aplanamiento realizado por la unidad de aplanamiento 108.
2. La varianza de las entradas del vector residual de predicción z es de la forma deE-{z2(i)} = m i ntUw(-0,'<l )>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 tal manera que el vector residualVwzes 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.
Con el fin de poder estimar el parámetro t, se pueden insertar las dos suposiciones antes mencionadas en la
fórmula de error de predicción (por ejemplo,D =YM¡ -fíy¡Tw¡) y proporcionar mediante ello la ecuación de “tipo de nivel de agua”
Puede demostrarse que hay una solución a la anterior ecuación en el intervalo t e [0, max(w(i))]. La ecuación para encontrar el parámetro t puede resolverse usando rutinas de ordenación.
La regla heurística puede estar dada entonces por donde i = 1, K identifica la celda demíni(t
frecuencia. La inversa de la regla de escalado heurística viene dada por d(l) lw(¡)' J. 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) = wi. 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).
2C
p =-----------Puede demostrarse que, cuando se usa la fórmulaET+ Ev para determinar la ganancia de predictor, se aplica la siguiente relación: p = 1 - p2.
Por consiguiente, 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 base a las dos suposiciones antes mencionadas (denominadas como método 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 base a 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 ~ p, método de escalado B se combina de manera conveniente con la definición de la ganancia <f
>■, 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 deducción de p como se esbozó anteriormente).
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 base a la ganancia de predictor p y/o en base a 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 deducido de la misma) es inferior a un umbral predeterminado (por ejemplo, 2 dB) y viceversa. Como se esbozó 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 2 dB), 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. En otras palabras, la ganancia de ruido del cuantificador de síntesis de ruido 321 puede verse afectada por la bandera de conservación de varianza. - Rango de cuantificadores con ruido aleatorio. En otras palabras, el rango 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
En la fórmula para la posganancia, <= e {x 2>es una 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 esbozó anteriormente, el parámetro de control rfu 146 puede estar en el rango [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 rango 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 consiguiente, cuando la bandera de conservación de varianza está activa (lo que indica una calidad 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 esbozó anteriormente, el rango de SNR de los 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 rango fijo de cuantificadores con ruido aleatorio 322 (por ejemplo, en el rango 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 rangos 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 deducirse para mejorar el rendimiento MSE de un cuantificador con ruido aleatorio 322 (por ejemplo, un cuantificador que suprime el ruido aleatorio). La posganancia puede estar dada por:
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 esbozó 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. En otras palabras, 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 hacer uso solamente del 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 habla basado en transformada 100, 170 y un correspondiente descodificador de habla basado en transformada 500. El códec de habla basado en transformada puede hacer uso de diversos aspectos que permiten mejorar la calidad de las señales de habla codificadas. El códec de habla puede hacer uso de bloques relativamente cortos (también denominados unidades de codificación), por ejemplo en el rango de 5 ms, garantizando mediante ello una resolución de tiempo apropiada y estadísticas que tengan sentido para señales de habla. Además, el códec de habla 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 habla puede hacer uso de 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 consiguiente, el códec de habla puede proporcionar actualizaciones predictivas de descubrimiento de envolvente a las unidades de codificación. Además, el códec de habla puede usar cuantificadores predeterminados que se adaptan a los resultados de la predicción. En otras palabras, el códec de habla puede hacer uso de cuantificadores escalares adaptativos de predicción.
Los métodos 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 métodos 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 métodos 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 (12)

REIVINDICACIONES
1. Un sistema para codificar una señal de habla en un flujo de bits; comprendiendo el codificador (100, 170): - una unidad de transformada configurada para recibir una señal de audio de entrada y para transformar una secuencia de muestras de la señal de audio de entrada en un bloque de coeficientes de transformada;
- una unidad de generación de tramas (101) configurada para recibir una pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde un bloque (131) de coeficientes de transformada comprende una pluralidad de coeficientes de transformada para una correspondiente pluralidad de celdas de frecuencia (301); - una unidad de estimación de envolvente (102) configurada para determinar una envolvente actual (133) en base a la pluralidad de bloques secuenciales (131) de coeficientes de transformada; donde la envolvente actual (133) es indicativa de una pluralidad de valores de energía espectral (303) para la correspondiente pluralidad de celdas de frecuencia (301);
- una unidad de cuantificación de envolvente (103) configurada para determinar una envolvente actual cuantificada (134) mediante la cuantificación de los valores de energía de 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 base a la envolvente actual cuantificada (133) y en base a una envolvente previa cuantificada (134) directamente anterior a la envolvente actual cuantificada; y
- una unidad de aplanamiento (108) configurada para determinar una pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la correspondiente pluralidad de bloques (131) de coeficientes de transformada usando la correspondiente pluralidad de envolventes interpoladas (136), respectivamente; donde el flujo de bits está determinado en base a la pluralidad de bloques (140) de coeficientes de transformada aplanados.
2. El sistema de la reivindicación 1, que comprende adicionalmente un bucle de predicción configurado para codificar la pluralidad de bloques de coeficientes de transformada aplanados.
3. El sistema de la reivindicación 2, en el que el bucle de predicción comprende un predictor de subbanda.
4. El sistema de la reivindicación 3, en el que el predictor de subbanda comprende un predictor basado en modelo que usa un modelo de señal, que comprende uno o más parámetros de modelo.
5. El sistema de la reivindicación 4, en el que los uno o más parámetros de modelo son indicativos de una frecuencia fundamental de un modelo de señal multisinusoidal.
6. El sistema de cualquier reivindicación anterior, que comprende adicionalmente:
- 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; y
- una unidad de refinamiento de envolvente (107) configurada para determinar una pluralidad de envolventes ajustadas (139) mediante el desfase de valores de energía espectral (303) de la pluralidad de envolventes interpoladas (136) según la pluralidad de ganancias de envolvente (137), respectivamente;
en el que la unidad de aplanamiento (108) está configurada para determinar la pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la correspondiente pluralidad de bloques (131) de coeficientes de transformada usando la correspondiente pluralidad de envolventes ajustadas (139), respectivamente.
7. Un método para codificar una señal de habla en un flujo de bits; comprendiendo el método:
- recibir una señal de audio de entrada;
- transformar una secuencia de muestras de la señal de audio de entrada en una secuencia de bloques de coeficientes de transformada, donde cada bloque (131) comprende una pluralidad de coeficientes de transformada para una correspondiente pluralidad de celdas de frecuencia (301);
- recibir la pluralidad de bloques secuenciales (131);
- determinar una envolvente actual (133) en base a la pluralidad de bloques secuenciales (131); donde la envolvente actual (133) es indicativa de una pluralidad de valores de energía espectrales (303) para la correspondiente pluralidad de celdas de frecuencia (301);
- determinar una envolvente actual cuantificada (134) mediante la cuantificación de los valores de energía de la envolvente actual (133);
- determinar una pluralidad de envolventes interpoladas (136) para la pluralidad de bloques (131), respectivamente, en base a la en volverte actual (133) y en base a una envolvente previa cuantificada (134) directamente anterior a la envolvente actual cuantificada;
- determinar una pluralidad de bloques (140) de coeficientes de transformada aplanados mediante el aplanamiento de la correspondiente pluralidad de bloques (131) de coeficientes de transformada usando la correspondiente pluralidad de envolventes interpoladas (136), respectivamente; y
- determinar el flujo de bits en base a la pluralidad de bloques (140) de coeficientes de transformada aplanados.
8. El método de la reivindicación 7, que comprende adicionalmente codificar la pluralidad de bloques de coeficientes de transformada aplanados usando un predictor de subbanda.
9. El método de la reivindicación 8, en el que el predictor de subbanda comprende un predictor basado en modelo que usa un modelo de señal, que comprende uno o más parámetros de modelo, donde los uno o más parámetros de modelo son indicativos de una frecuencia fundamental de un modelo de señal multisinusoidal.
10. Un sistema para descodificar un flujo de bits para proporcionar una señal de habla 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) es indicativa de una pluralidad de valores de energía espectral (303) para una correspondiente pluralidad de celdas de frecuencia (301); donde el flujo de bits comprende datos (163, 164) indicativos de 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 correspondiente pluralidad 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 base a la envolvente actual cuantificada (134) y en base a una envolvente previa cuantificada (134) directamente anterior a la envolvente actual cuantificada;
- una unidad de aplanamiento inverso (108) configurada para determinar una pluralidad de bloques (149) de coeficientes de transformada reconstruidos dotando de una forma espectral a la correspondiente pluralidad de bloques (148) de coeficientes de transformada aplanados reconstruidos, usando la correspondiente pluralidad de envolventes interpoladas (136), respectivamente; y
- una unidad de transformada configurada para generar la señal de habla reconstruida mediante la transformación de la pluralidad de bloques de coeficientes de transformada reconstruidos en el dominio tiempo.
11. Un método para descodificar un flujo de bits para proporcionar una señal de habla reconstruida; comprendiendo el método:
- 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) es indicativa de una pluralidad de valores de energía espectral (303) para una correspondiente pluralidad de celdas de frecuencia (301); donde el flujo de bits comprende datos (163, 164) indicativos de 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 correspondiente pluralidad 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 base a la envolvente actual cuantificada (134) y en base a una envolvente previa cuantificada (134) directamente anterior a la envolvente actual cuantificada; - determinar una pluralidad de bloques (149) de coeficientes de transformada reconstruidos dotando de una forma espectral a la correspondiente pluralidad de bloques (148) de coeficientes de transformada aplanados reconstruidos, usando la correspondiente pluralidad de envolventes interpoladas (136), respectivamente; y
- determinar la señal de habla reconstruida mediante la transformación de la pluralidad de bloques (149) de coeficientes de transformada reconstruidos en el dominio tiempo.
12. Un producto de programa de ordenador que comprende instrucciones que, cuando son ejecutadas por un sistema o dispositivo informático, hacen que dicho sistema o dispositivo informático realice el método de cualquiera de las reivindicaciones 7-9 o la reivindicación 11.
ES19200800T 2013-04-05 2014-04-04 Codificador y descodificador de audio Active ES2982183T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361808675P 2013-04-05 2013-04-05
US201361875553P 2013-09-09 2013-09-09

Publications (1)

Publication Number Publication Date
ES2982183T3 true ES2982183T3 (es) 2024-10-15

Family

ID=50439392

Family Applications (2)

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

Family Applications After (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 (19)

Country Link
US (4) US10043528B2 (es)
EP (3) EP3671738B1 (es)
JP (1) JP6227117B2 (es)
KR (5) KR101739789B1 (es)
CN (2) CN109712633B (es)
AU (8) AU2014247000B2 (es)
BR (3) BR122020017853B1 (es)
CA (6) CA3029037C (es)
DK (1) DK2981958T3 (es)
ES (2) ES2982183T3 (es)
HU (1) HUE039143T2 (es)
IL (6) IL294836B2 (es)
MX (1) MX343673B (es)
MY (2) MY176447A (es)
PL (1) PL2981958T3 (es)
RU (3) RU2740359C2 (es)
SG (1) SG11201507703SA (es)
UA (1) UA114967C2 (es)
WO (1) WO2014161991A2 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3671738B1 (en) 2013-04-05 2024-06-05 Dolby International AB Audio encoder and decoder
PL3699910T3 (pl) * 2014-05-01 2021-11-02 Nippon Telegraph And Telephone Corporation Urządzenie generujące sekwencję okresowej połączonej obwiedni, sposób generowania sekwencji okresowej połączonej obwiedni, program do generowania sekwencji okresowej połączonej obwiedni i nośnik rejestrujący
CA2958429C (en) * 2014-07-25 2020-03-10 Panasonic Intellectual Property Corporation Of America Audio signal coding apparatus, audio signal decoding apparatus, audio signal coding method, and audio signal decoding method
US9530400B2 (en) * 2014-09-29 2016-12-27 Nuance Communications, Inc. System and method for compressed domain language identification
EP3107096A1 (en) * 2015-06-16 2016-12-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Downscaled decoding
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文件的方法
EP3642839B1 (en) * 2017-06-19 2022-04-13 Rtx A/S Audio signal encoding and decoding
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
CN114424282B (zh) 2019-09-03 2026-03-24 杜比实验室特许公司 低时延低频率效应编译码器
KR102838273B1 (ko) * 2019-11-27 2025-07-25 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 코딩을 위한 음조 신호의 주파수 도메인 장기 예측을 위한 인코더, 디코더, 인코딩 방법 및 디코딩 방법
CN112201283B (zh) * 2020-09-09 2022-02-08 北京小米松果电子有限公司 音频播放方法及装置
EP4229633B1 (en) * 2020-10-16 2025-08-06 Dolby Laboratories Licensing Corporation Adaptive block switching with deep neural networks
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
US20250055997A1 (en) * 2021-12-21 2025-02-13 Interdigital Ce Patent Holdings, Sas Method and apparatus for video encoding and decoding with adaptive dependent quantization
CN115148217B (zh) * 2022-06-15 2024-07-09 腾讯科技(深圳)有限公司 音频处理方法、装置、电子设备、存储介质及程序产品
US12380902B2 (en) 2023-10-18 2025-08-05 Cisco Technology, Inc. Vector quantizer correction for audio codec system
US12308037B2 (en) 2023-10-18 2025-05-20 Cisco Technology, Inc. Reduced multidimensional indices compression for audio codec system

Family Cites Families (92)

* 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
US6988236B2 (en) * 2000-04-07 2006-01-17 Broadcom Corporation Method for selecting frame encoding parameters in a frame-based communications network
EP1279167B1 (en) * 2000-04-24 2007-05-30 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
US6895375B2 (en) * 2001-10-04 2005-05-17 At&T Corp. System for bandwidth extension of Narrow-band speech
US6988066B2 (en) * 2001-10-04 2006-01-17 At&T Corp. Method of bandwidth extension for 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
EP1527441B1 (en) * 2002-07-16 2017-09-06 Koninklijke Philips 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
US7299174B2 (en) * 2003-04-30 2007-11-20 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
WO2005086525A1 (ja) 2004-03-05 2005-09-15 Rohm Co., Ltd フィルタ回路およびそれを利用した再生装置
US8260611B2 (en) * 2005-04-01 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for highband excitation generation
US7567898B2 (en) 2005-07-26 2009-07-28 Broadcom Corporation Regulation of volume of voice in conjunction with background sound
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
EP1926083A4 (en) * 2005-09-30 2011-01-26 Panasonic Corp AUDIOCODING DEVICE AND AUDIOCODING METHOD
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
EP1870880B1 (en) 2006-06-19 2010-04-07 Sharp Kabushiki Kaisha Signal processing method, signal processing apparatus and recording medium
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
US8725499B2 (en) * 2006-07-31 2014-05-13 Qualcomm Incorporated Systems, methods, and apparatus for signal change detection
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
WO2008045950A2 (en) * 2006-10-11 2008-04-17 Nielsen Media Research, Inc. Methods and apparatus for embedding codes in compressed audio data streams
BRPI0718300B1 (pt) * 2006-10-24 2018-08-14 Voiceage Corporation Método e dispositivo para codificar quadros de transição em sinais de fala.
PL3848928T3 (pl) 2006-10-25 2023-07-17 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
US20100017197A1 (en) 2006-11-02 2010-01-21 Panasonic Corporation Voice coding device, voice decoding device and their methods
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
EP2165328B1 (en) * 2007-06-11 2018-01-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoding and decoding of an audio signal having an impulse-like portion and a stationary portion
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
EP2186087B1 (en) * 2007-08-27 2011-11-30 Telefonaktiebolaget L M Ericsson (PUBL) Improved transform coding of speech and audio signals
WO2009035615A1 (en) 2007-09-12 2009-03-19 Dolby Laboratories Licensing Corporation Speech enhancement
US9177569B2 (en) * 2007-10-30 2015-11-03 Samsung Electronics Co., Ltd. Apparatus, medium and method to encode and decode high frequency signal
KR101373004B1 (ko) * 2007-10-30 2014-03-26 삼성전자주식회사 고주파수 신호 부호화 및 복호화 장치 및 방법
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 华为技术有限公司 超宽带扩展编码、解码方法、编解码器及超宽带扩展系统
JP2011518345A (ja) * 2008-03-14 2011-06-23 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション スピーチライク信号及びノンスピーチライク信号のマルチモードコーディング
CN101572586B (zh) * 2008-04-30 2012-09-19 北京工业大学 编解码方法、装置及系统
RU2621965C2 (ru) * 2008-07-11 2017-06-08 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Передатчик сигнала активации с деформацией по времени, кодер звукового сигнала, способ преобразования сигнала активации с деформацией по времени, способ кодирования звукового сигнала и компьютерные программы
CA2730198C (en) * 2008-07-11 2014-09-16 Frederik Nagel Audio signal synthesizer and audio signal encoder
KR20100007738A (ko) * 2008-07-14 2010-01-22 한국전자통신연구원 음성/오디오 통합 신호의 부호화/복호화 장치
WO2010028299A1 (en) 2008-09-06 2010-03-11 Huawei Technologies Co., Ltd. Noise-feedback for spectral envelope quantization
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
WO2010028301A1 (en) 2008-09-06 2010-03-11 GH Innovation, Inc. Spectrum harmonic/noise sharpness control
US8463603B2 (en) * 2008-09-06 2013-06-11 Huawei Technologies Co., Ltd. Spectral envelope coding of energy attack signal
GB2466671B (en) * 2009-01-06 2013-03-27 Skype Speech encoding
WO2010086461A1 (en) * 2009-01-28 2010-08-05 Dolby International Ab Improved harmonic transposition
US8848788B2 (en) * 2009-05-16 2014-09-30 Thomson Licensing Method and apparatus for joint quantization parameter adjustment
JP4703747B2 (ja) 2009-07-30 2011-06-15 株式会社東芝 音声出力装置、音声出力方法
US9031834B2 (en) * 2009-09-04 2015-05-12 Nuance Communications, Inc. Speech enhancement techniques on the power spectrum
DE112009005147T5 (de) 2009-09-15 2012-08-23 Hewlett-Packard Development Company, L.P. System und Verfahren zum Modifizieren eines Audiosignals
ES2441069T3 (es) * 2009-10-08 2014-01-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decodificador multimodo para señal de audio, codificador multimodo para señal de audio, procedimiento y programa de computación que usan un modelado de ruido en base a linealidad-predicción-codificación
WO2011048094A1 (en) * 2009-10-20 2011-04-28 Fraunhofer-Gesellschaft zur Förderung 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
ES2710554T3 (es) * 2010-07-08 2019-04-25 Fraunhofer Ges Forschung Codificador que utiliza cancelación del efecto de solapamiento hacia delante
US9047875B2 (en) 2010-07-19 2015-06-02 Futurewei Technologies, Inc. Spectrum flatness control for bandwidth extension
US8560330B2 (en) 2010-07-19 2013-10-15 Futurewei Technologies, Inc. Energy envelope perceptual correction for high band coding
KR101826331B1 (ko) * 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
CN102436820B (zh) 2010-09-29 2013-08-28 华为技术有限公司 高频带信号编码方法及装置、高频带信号解码方法及装置
KR101418227B1 (ko) * 2010-11-24 2014-07-09 엘지전자 주식회사 스피치 시그널 부호화 방법 및 복호화 방법
KR101699898B1 (ko) 2011-02-14 2017-01-25 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 스펙트럼 영역에서 디코딩된 오디오 신호를 처리하기 위한 방법 및 장치
US9135929B2 (en) * 2011-04-28 2015-09-15 Dolby International Ab Efficient content classification and loudness estimation
WO2013002696A1 (en) * 2011-06-30 2013-01-03 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
TWI591620B (zh) * 2012-03-21 2017-07-11 三星電子股份有限公司 產生高頻雜訊的方法
CN107731237B (zh) * 2012-09-24 2021-07-20 三星电子株式会社 时域帧错误隐藏设备
HUE032831T2 (en) 2013-01-08 2017-11-28 Dolby Int Ab Model-based prediction in a critically sampled filter block
EP3671738B1 (en) * 2013-04-05 2024-06-05 Dolby International AB Audio encoder and decoder
US9487224B1 (en) * 2015-09-22 2016-11-08 Siemens Industry, Inc. Mechanically extendable railroad crossing gate

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2982183T3 (es) Codificador y descodificador de audio
AU2024219670C8 (en) Audio encoder and decoder
HK1250836B (en) Audio encoder and decoder
HK1218802B (en) Audio encoder and decoder