ES2808302T3 - Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido - Google Patents

Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido Download PDF

Info

Publication number
ES2808302T3
ES2808302T3 ES11750025T ES11750025T ES2808302T3 ES 2808302 T3 ES2808302 T3 ES 2808302T3 ES 11750025 T ES11750025 T ES 11750025T ES 11750025 T ES11750025 T ES 11750025T ES 2808302 T3 ES2808302 T3 ES 2808302T3
Authority
ES
Spain
Prior art keywords
audio signal
energy
value
task
frequency domain
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
ES11750025T
Other languages
English (en)
Inventor
Vivek Rajendran
Ethan Robert Duni
Venkatesh Krishnan
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2808302T3 publication Critical patent/ES2808302T3/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
    • G10L19/028Noise substitution, i.e. substituting non-tonal spectral components by noisy source
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Electron Tubes For Measurement (AREA)

Abstract

Un procedimiento (M100) de procesamiento de una señal de audio, comprendiendo dicho procedimiento (M100): en base a información de la señal de audio, seleccionar (T100) una de una pluralidad de entradas de un libro de códigos; determinar (T200) ubicaciones, en un dominio de frecuencia, de elementos de valor cero de una primera señal que está basada en la entrada de libro de códigos seleccionada; calcular (T300) una energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas; calcular (T400) un valor de una medida de una distribución de la energía de la señal de audio entre las ubicaciones de dominio de frecuencia determinadas, en el que dicho valor calculado está basado en una relación entre (A) una energía total de un subconjunto adecuado de los elementos de la señal de audio en dichas ubicaciones de dominio de frecuencia determinadas y (B) una energía total de los elementos de la señal de audio en dichas ubicaciones de dominio de frecuencia determinadas; y en base a dicha energía calculada y dicho valor calculado, calcular (T500) un factor de ganancia de inyección de ruido.

Description

DESCRIPCIÓN
Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido ANTECEDENTES
Campo
[0001] La presente divulgación se refiere al campo del procesamiento de señales de audio.
Antecedentes
[0002] Los sistemas de codificación basados en la transformada discreta de coseno modificada (MDCT) se usan típicamente para codificar señales de audio generalizadas, que pueden incluir contenido de voz y/o no de voz, tal como música. Los ejemplos de códecs de audio existentes que usan codificación de MDCT incluyen la capa 3 de audio de MPEG-1 (MP3), Dolby Digital (Dolby Labs., Londres, Reino Unido; también denominado AC-3 y estandarizado como ATSC A/52), Vorbis (Xiph. Org Foundation, Somerville, MA), Windows Media Audio (WMA, Microsoft Corp., Redmond, WA), codificación acústica por transformada adaptativa (ATRAC, Sony Corp., Tokyo, JP) y codificación de audio avanzada (AAC, estandarizado últimamente en ISO/IEC 14496-3:2009). La codificación de MDCT también es un componente de algunos estándares de telecomunicaciones, como el códec de velocidad variable mejorado (EVRC, como se estandariza en el documento del Proyecto de Colaboración de Tercera Generación 2 (3GPP2) C.S0014-D v. 3.0, octubre de 2010, Asociación de la Industria de Telecomunicaciones, Arlington, VA), y el códec de velocidad variable mejorado (EVRC, como se estandariza en el documento del Proyecto de Colaboración de Tercera Generación 2 (3GPP2) C.S0014-D v. 2, enero de 2010, Asociación de la Industria de Telecomunicaciones, Arlington, VA). Estos divulgan un modo de codificación del EVRC en el que el proceso de inyección de ruido sustituye por ruido elementos de valor cero del espectro de línea residual codificado dentro de un intervalo de frecuencias predeterminado. El nivel de inyección de ruido está basado en la relación de la energía no codificada en el espectro de líneas residual original a la energía total del espectro de líneas original. El códec G.718 ("Frame error robust narrowband and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s", Sector de Normalización de las Telecomunicaciones (UIT-T), Ginebra, CH, junio de 2008, corregido en noviembre de 2008 y agosto de 2009, enmendado en marzo de 2009 y marzo de 2010) es un ejemplo de códec multicapa que usa codificación de MDCT.
BREVE EXPLICACIÓN
[0003] La invención está definida por las reivindicaciones independientes adjuntas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0004]
La FIG. 1 muestra tres ejemplos de forma de ventana sinusoidal típica para una operación de MDCT.
La FIG. 2 muestra un ejemplo de función de ventana diferente w(n).
La FIG. 3A muestra un diagrama de bloques de un procedimiento M100 de procesamiento de una señal de audio de acuerdo con una configuración general.
La FIG. 3B muestra un diagrama de flujo de una implementación M110 del procedimiento M100.
Las FIGS. 4A-C muestran ejemplos de estructuras de cuantificación vectorial de ganancia-forma.
La FIG. 5 muestra un ejemplo de vector de espectro de entrada antes y después de la codificación de impulsos. La FIG. 6A muestra un ejemplo de subconjunto en un conjunto ordenado de energías de coeficiente espectral. La FIG. 6B muestra un gráfico de una correlación del valor de un factor de dispersión con un valor de un factor de ajuste de ganancia.
La FIG. 6C muestra un gráfico de la correlación de la FIG. 6B para valores umbral en particular.
La FIG. 7A muestra un diagrama de flujo de una implementación T502 de una tarea T500.
La FIG. 7B muestra un diagrama de flujo de una implementación T504 de una tarea T500.
La FIG. 7C muestra un diagrama de flujo de una implementación T506 de unas tareas T502 y T504.
La FIG. 8A muestra un gráfico de una operación de recorte para un ejemplo de tarea T520.
La FIG. 8B muestra un gráfico de un ejemplo de tarea T520 para unos valores umbral en particular.
La FIG. 8C muestra un listado de pseudocódigo que se puede ejecutar para realizar una implementación de la tarea T520.
La FIG. 8D muestra un listado de pseudocódigo que se puede ejecutar para realizar una modulación basada en la dispersión de un factor de ganancia de inyección de ruido.
La FIG. 8E muestra un listado de pseudocódigo que se puede ejecutar para realizar una implementación de una tarea T540.
La FIG. 9A muestra un ejemplo de correlación de un valor de ganancia de LPC (en decibelios) con un valor de un factor z de acuerdo con una función monotónicamente decreciente.
La FIG. 9B muestra un gráfico de la correlación de la FIG. 9A para un valor umbral en particular.
La FIG. 9C muestra un ejemplo de implementación diferente de la correlación mostrada en la FIG. 9A.
La FIG. 9D muestra un gráfico de la correlación de la FIG. 9C para un valor umbral en particular.
La FIG. 10A muestra un ejemplo de relación entre ubicaciones de subbanda en una trama de referencia y una trama objetivo.
La FIG. 10B muestra un diagrama de flujo de un procedimiento M200 de inyección de ruido de acuerdo con una configuración general.
La FIG. 10C muestra un diagrama de bloques de un aparato para inyección de ruido MF200 de acuerdo con una configuración general.
La FIG. 10D muestra un diagrama de bloques de un aparato para inyección de ruido A200 de acuerdo con otra configuración general.
La FIG. 11 muestra un ejemplo de subbandas seleccionadas en una señal de audio de banda baja.
La FIG. 12 muestra un ejemplo de subbandas seleccionadas y componentes residuales en una señal de audio de banda alta.
La FIG. 13A muestra un diagrama de bloques de un aparato para procesar una señal de audio MF100 de acuerdo con una configuración general.
La FIG. 13B muestra un diagrama de bloques de un aparato para procesar una señal de audio A100 de acuerdo con otra configuración general.
La FIG. 14 muestra un diagrama de bloques de un codificador E20.
Las FIGS. 15A-E muestran una gama de aplicaciones para un codificador E100.
La FIG. 16A muestra un diagrama de bloques de un procedimiento MZ100 de clasificación de señales. La FIG. 16B muestra un diagrama de bloques de un dispositivo de comunicaciones D10.
La FIG. 17 muestra una vista frontal, trasera y lateral de un teléfono H100.
DESCRIPCIÓN DETALLADA
[0005] En un sistema para codificar vectores de señal para almacenamiento o transmisión, puede ser deseable incluir un algoritmo de inyección de ruido para ajustar adecuadamente la ganancia, la forma espectral y/u otras características del ruido inyectado para aumentar al máximo la calidad perceptiva mientras se reduce al mínimo la cantidad de información que se ha de transmitir. Por ejemplo, puede ser deseable aplicar un factor de dispersión como se describe en el presente documento para controlar dicho sistema de inyección de ruido (por ejemplo, para controlar el nivel del ruido que se ha de inyectar). Puede ser deseable a este respecto tomar precauciones en particular para evitar añadir ruido a las señales de audio que no tienen características de ruido, tales como las señales altamente tonales u otros espectros dispersos, ya que se puede suponer que estas señales ya están bien codificadas mediante el sistema de codificación subyacente. Del mismo modo, puede ser beneficioso conformar el espectro del ruido inyectado en relación con la señal codificada, o ajustar de otro modo sus características espectrales.
[0006] A menos que esté limitado expresamente por su contexto, el término "señal" se usa en el presente documento para indicar cualquiera de sus significados comunes, incluyendo un estado de una ubicación de memoria (o conjunto de ubicaciones de memoria), expresado en un cable, bus u otro medio de transmisión. A menos que esté limitado expresamente por su contexto, el término "generar" se usa en el presente documento para indicar cualquiera de sus significados comunes, tales como calcular u obtener de otro modo. A menos que esté limitado expresamente por su contexto, el término "calcular" se usa en el presente documento para indicar cualquiera de sus significados comunes, tales como calcular, evaluar, nivelar y/o seleccionar a partir de una pluralidad de valores. A menos que esté limitado expresamente por su contexto, el término "obtener" se usa para indicar cualquiera de sus significados comunes, tales como calcular, hallar, recibir (por ejemplo, desde un dispositivo externo) y/o recuperar (por ejemplo, desde una matriz de elementos de almacenamiento). A menos que esté limitado expresamente por su contexto, el término "seleccionar" se usa para indicar cualquiera de sus significados comunes, tales como identificar, indicar, aplicar y/o usar al menos uno, y menos que la totalidad, de un conjunto de dos o más. Cuando el término "que comprende" se usa en la presente descripción y en las reivindicaciones, no excluye otros elementos u operaciones. El término "basado en" (como en "A está basado en B") se usa para indicar cualquiera de sus significados comunes, incluyendo los casos (i) "hallado a partir de" (por ejemplo, "B es un precursor de A"), (ii) "basado al menos en" (por ejemplo, "A está basado al menos en B") y, si corresponde en el contexto en particular, (iii) "igual a" (por ejemplo, "A es igual a B"). De forma similar, el término "como respuesta a" se usa para indicar cualquiera de sus significados comunes, incluyendo "como respuesta a al menos".
[0007] A menos que se indique lo contrario, el término "serie" se usa para indicar una secuencia de dos o más elementos. El término "logaritmo" se usa para indicar el logaritmo de base diez, aunque las ampliaciones de dicha operación a otras bases están dentro del alcance de la presente divulgación. El término "componente de frecuencia" se usa para indicar una de entre un conjunto de frecuencias o bandas de frecuencia de una señal, tales como una muestra de una representación en el dominio de la frecuencia de la señal (por ejemplo, como se genera mediante una transformada rápida de Fourier o MDCT) o una subbanda de la señal (por ejemplo, una subbanda de escala Bark o de escala Mel).
[0008] A menos que se indique de otro modo, cualquier divulgación de una operación de un aparato que tiene una característica en particular también pretende expresamente divulgar un procedimiento que tiene una característica análoga (y viceversa), y cualquier divulgación de una operación de un aparato de acuerdo con una configuración en particular también pretende expresamente divulgar un procedimiento de acuerdo con una configuración análoga (y viceversa). El término "configuración" se puede usar con referencia a un procedimiento, aparato y/o sistema como indica su contexto en particular. Los términos "procedimiento", "proceso" y "técnica" se usan de manera genérica e intercambiable a menos que el contexto en particular indique lo contrario. Una "tarea" que tiene múltiples subtareas también es un procedimiento. Los términos "aparato" y "dispositivo" también se usan de manera genérica e intercambiable a menos que el contexto en particular indique lo contrario. Los términos "elemento" y "módulo" se usan típicamente para indicar una parte de una configuración más grande. A menos que esté limitado expresamente por su contexto, el término "sistema" se usa en el presente documento para indicar cualquiera de sus significados comunes, incluyendo "un grupo de elementos que interactúan para cumplir un propósito común".
[0009] Los sistemas, procedimientos y aparatos descritos en el presente documento son aplicables en general a representaciones de codificación de señales de audio en un dominio de frecuencia. Un ejemplo típico de dicha representación es una serie de coeficientes de transformada en un dominio de transformada. Los ejemplos de transformadas adecuadas incluyen transformadas discretas ortogonales, tales como transformadas unitarias sinusoidales. Los ejemplos de transformadas unitarias sinusoidales adecuadas incluyen las transformadas discretas trigonométricas, que incluyen, sin limitación, las transformadas discretas de coseno (DCT), las transformadas discretas de seno (DST) y la transformada discreta de Fourier (DFT). Otros ejemplos de transformadas adecuadas incluyen versiones superpuestas de dichas transformadas. Un ejemplo en particular de una transformada adecuada es la DCT modificada (MDCT) introducida anteriormente.
[0010] En la totalidad de la presente divulgación se hace referencia a una "banda baja" y a una "banda alta" (de manera equivalente, "banda superior") de un intervalo de frecuencias de audio, y al ejemplo en particular de una banda baja de cero a cuatro kilohercios (kHz) y una banda alta de 3,5 a siete kHz. Se señala expresamente que los principios analizados en el presente documento no están limitados a este ejemplo en particular de ninguna manera, a menos que dicha limitación se indique explícitamente. Otros ejemplos (nuevamente sin limitación) de intervalos de frecuencias con respecto a los cuales la aplicación de estos principios de codificación, descodificación, asignación, cuantificación y/u otro tipo de procesamiento se contemplan expresamente y se divulgan en el presente documento incluyen una banda baja que tiene un límite inferior en un valor cualquiera de 0, 25, 50, 100, 150 y 200 Hz y un límite superior en un valor cualquiera de 3000, 3500, 4000 y 4500 Hz, y una banda alta que tiene un límite inferior en un valor cualquiera de 3000, 3500, 4000, 4500 y 5000 Hz y un límite superior en un valor cualquiera de 6000, 6500, 7000, 7500, 8000, 8500 y 9000 Hz. La aplicación de dichos principios (nuevamente sin limitación) a una banda alta que tiene un límite inferior en un valor cualquiera de 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500 y 9000 Hz y un límite superior en un valor cualquiera de 10, 10,5, 11, 11,5, 12, 12,5, 13, 13,5, 14, 14,5, 15, 15,5 y 16 kHz también se contempla expresamente y se divulga en el presente documento. También se señala expresamente que, aunque una señal de banda alta típicamente se convertirá a una frecuencia de muestreo más baja en una fase anterior del proceso de codificación (por ejemplo, por medio de remuestreo y/o diezmado), sigue siendo una señal de banda alta y la información que transporta continúa representando el intervalo de frecuencias de audio de banda alta.
[0011] Se puede aplicar un sistema de codificación que incluye cálculo y/o aplicación de una ganancia de inyección de ruido como se describe en el presente documento para codificar cualquier señal de audio (por ejemplo, incluyendo voz). De forma alternativa, puede ser deseable usar dicho sistema de codificación solo para audio no de voz (por ejemplo, música). En dicho caso, el sistema de codificación se puede usar con un sistema de clasificación para determinar el tipo de contenido de cada trama de la señal de audio y para seleccionar un sistema de codificación adecuado.
[0012] Un sistema de codificación que incluye cálculo y/o aplicación de una ganancia de inyección de ruido como se describe en el presente documento se puede usar como un códec principal o como una capa o fase en un códec multicapa o multifase. En uno de dichos ejemplos, dicho sistema de codificación se usa para codificar una parte del contenido de frecuencia de una señal de audio (por ejemplo, una banda baja o una banda alta) y se usa otro sistema de codificación para codificar otra parte del contenido de frecuencia de la señal. En otro de dichos ejemplos, dicho sistema de codificación se usa para codificar un residuo (es decir, un error entre las señales originales y codificadas) de otra capa de codificación.
[0013] Puede ser deseable procesar una señal de audio como una representación de la señal en un dominio de frecuencia. Un ejemplo típico de dicha representación es una serie de coeficientes de transformada en un dominio de transformada. Dicha representación del dominio de transformada de la señal se puede obtener realizando una operación de transformada (por ejemplo, una operación de FFT o de MDCT) en una trama de muestras de PCM (modulación por impulsos codificados) de la señal en el dominio del tiempo. La codificación en el dominio de la transformada puede ayudar a incrementar la eficacia de codificación, por ejemplo, admitiendo sistemas de codificación que aprovechan la correlación en el espectro de energía entre subbandas de la señal a través de la frecuencia (por ejemplo, de una subbanda a otra) y/o el tiempo (por ejemplo, de una trama a otra). La señal de audio que se procesa puede ser un residuo de otra operación de codificación en una señal de entrada (por ejemplo, una señal de voz y/o música). En uno de dichos ejemplos, la señal de audio que se procesa es un residuo de una operación de análisis de codificación de predicción lineal (LPC) en una señal de audio de entrada (por ejemplo, una señal de voz y/o música).
[0014] Los procedimientos, sistemas y aparatos como se describen en el presente documento pueden estar configurados para procesar la señal de audio como una serie de segmentos. Un segmento (o "trama") puede ser un bloque de coeficientes de transformada que corresponde a un segmento de dominio de tiempo con una longitud típicamente en el intervalo de aproximadamente cinco o diez milisegundos a aproximadamente cuarenta o cincuenta milisegundos. Los segmentos del dominio del tiempo pueden estar superpuestos (por ejemplo, con una superposición con segmentos adyacentes de un 25 % o un 50 %) o pueden no estar superpuestos.
[0015] En un codificador de audio puede ser deseable obtener tanto una alta calidad como un bajo retardo. Un codificador de audio puede usar un tamaño de trama grande para obtener una alta calidad, pero desafortunadamente un tamaño de trama grande típicamente provoca un retardo más prolongado. Las ventajas potenciales de un codificador de audio como se describe en el presente documento incluyen codificación de alta calidad con tamaños de trama cortos (por ejemplo, un tamaño de trama de veinte milisegundos, con una anticipación de diez milisegundos). En un ejemplo en particular, la señal de dominio de tiempo se divide en una serie de segmentos no superpuestos de veinte milisegundos, y la MDCT para cada trama se realiza a través de una ventana de cuarenta milisegundos que se superpone diez milisegundos con cada una de las tramas adyacentes. Un ejemplo de operación de transformada MDCT que se puede usar para generar una señal de audio que se va a procesar mediante un sistema, procedimiento o aparato como se divulga en el presente documento se describe en la sección 4.13.4 (Modified Discrete Cosine Transform (MDCT), pp. 4-134 a 4-135) del documento C.S0014-D v. 3.0 citado anteriormente, como ejemplo de una operación de transformada MDCT.
[0016] Un segmento procesado por un procedimiento, sistema o aparato como se describe en el presente documento también puede ser una parte (por ejemplo, una banda baja o una banda alta) de un bloque generado por la transformada, o una parte de un bloque generado por una operación previa en dicho bloque. En un ejemplo en particular, cada uno de una serie de segmentos (o "tramas") procesados por dicho procedimiento, sistema o aparato contiene un conjunto de 160 coeficientes de MDCT que representan un intervalo de frecuencias de banda baja de 0 a 4 kHz. En otro ejemplo en particular, cada una de una serie de tramas procesadas por dicho procedimiento, sistema o aparato contiene un conjunto de 140 coeficientes de MDCT que representan un intervalo de frecuencias de banda alta de 3,5 a 7 kHz.
[0017] Un sistema de codificación de MDCT usa una ventana de codificación que se prolonga por (es decir, se superpone a) dos o más tramas consecutivas. Para una longitud de trama de M, la MDCT genera M coeficientes en base a una entrada de 2M muestras. Por lo tanto, una característica de un sistema de codificación de MDCT es que permite que la ventana de transformada se prolongue por uno o más límites de trama sin incrementar el número de coeficientes de transformada necesarios para representar la trama codificada.
£n=o 1x ( n ) h k (n),
[0018] El cálculo de los M coeficientes de MDCT se puede expresar como X(k) = donde
( 2 n M í ) ( 2 k l ) n
hk (n) = w (n ) J i c o s 4 M
para k = 0 , 1 , M-1. La función w (n) se selecciona típicamente para ser una ventana que satisface la condición vfi(ri) vfi(n + M) = 1 (también denominada condición de Princen-x l i j / Bradley). La operación de MDCT inversa correspondiente se puede expresar como (t ) — _ VAÍ
v J ¿ yjkM -l
=o ( \k^ Jh, k \ J para n = 0, 1, ..., 2M-1, donde X(k) son los M coeficientes de MDCT recibidos y x(n) son las 2M muestras descodificadas.
[0019] La FIG. 1 muestra tres ejemplos de forma de ventana sinusoidal típica para una operación de MDCT. Esta
, w(n) = sin (—) forma de ventana, que satisface la condición de Princen-Bradley, se puede expresar como V2M' para 0 < n <2M, donde n = 0 indica la primera muestra de la trama actual. Como se muestra en la figura, la ventana de MDCT 804 usada para codificar la trama actual (trama p) tiene valores distintos de cero durante la trama p y la trama (p+1), y en las demás tiene un valor cero. La ventana de MDCT 802 usada para codificar la trama previa ( trama (p-1)) tiene valores distintos de cero durante la trama (p-1) y la trama p, y en las demás tiene un valor cero, y la ventana de MDCT 806 usada para codificar la siguiente trama (trama (p+1)) está dispuesta de forma análoga. En el descodificador, las secuencias descodificadas se superponen de la misma manera que las secuencias de entrada y se añaden. Aunque la MDCT usa una función de ventana superpuesta, es un banco de filtros muestreado críticamente porque después de la superposición y la adición, el número de muestras de entrada por trama es el mismo que el número de coeficientes de MDCT por trama.
[0020] La FIG. 2 muestra un ejemplo de función de ventana w(n) que se puede usar (por ejemplo, en lugar de la función w(n) como se ilustra en la FIG. 1) para permitir un intervalo de anticipación que es más corto que M. En el ejemplo en particular mostrado en la FIG.2, el intervalo de anticipación es de M/2 muestras de longitud, pero dicha técnica se puede implementar para permitir una anticipación arbitraria de L muestras, donde L tiene cualquier valor de 0 a M. En esta técnica (ejemplos de la cual se describen en la sección 4.13.4 del documento C.S0014-D mencionado anteriormente), la ventana de MDCT comienza y termina con regiones de relleno con ceros de longitud (ML)/2, y w(n) satisface la condición de Princen-Bradley. Una implementación de dicha función de ventana se puede expresar como sigue:
Figure imgf000006_0001
M - L 3 M - L
n
donde 2 n
es la primera muestra de la trama actual p y 2 es la primera muestra de la siguiente trama (p+1). Una señal codificada de acuerdo con dicha técnica conserva la propiedad de reconstrucción perfecta (en ausencia de errores de cuantificación y numéricos). Cabe señalar que para el caso L = M, esta función de M . 3 M
— < n < — ventana es la misma que la ilustrada en la FIG. 1, y para el caso de L = 0, w (n) = 1 para 2 2 y es cero en otros casos, de modo que no hay superposición.
[0021] Cuando se codifican señales de audio en un dominio de frecuencia (por ejemplo, un dominio de MDCT o de FFT), especialmente a una velocidad de bits baja y una frecuencia de muestreo alta, partes significativas del espectro codificado pueden contener una cantidad de energía cero. Este resultado puede ser cierto en particular para señales que son residuos de una o más de otras operaciones de codificación, que tienden a tener baja energía con la que empezar. Este resultado también puede ser cierto en particular en las partes de frecuencia más alta del espectro, debido a la forma de "ruido rosa" promedio de las señales de audio. Aunque estas regiones son típicamente menos importantes globalmente que las regiones que están codificadas, su ausencia completa en la señal descodificada puede, no obstante, dar como resultado artefactos molestos, una "monotonía" general y/o una falta de naturalidad.
[0022] Para muchas clases prácticas de señales de audio, el contenido de dichas regiones se puede modelizar bien psicoacústicamente como ruido. Por tanto, puede ser deseable reducir dichos artefactos inyectando ruido en la señal durante la descodificación. Por un coste mínimo en bits, dicha inyección de ruido se puede aplicar como una operación de postprocesamiento a un sistema de codificación de audio de dominio espectral. En el codificador, dicha operación puede incluir calcular un factor de ganancia de inyección de ruido adecuado que se ha de codificar como un parámetro de la señal codificada. En el descodificador, dicha operación puede incluir llenar las regiones vacías de la señal codificada de entrada con ruido modulado de acuerdo con el factor de ganancia de inyección de ruido.
[0023] La FIG. 3A muestra un diagrama de flujo de un procedimiento M100 de procesamiento de una señal de audio de acuerdo con una configuración general que incluye unas tareas T100, T200, T300, T400 y T500. En base a la información de la señal de audio, la tarea T100 selecciona una de entre una pluralidad de entradas de un libro de códigos. En un sistema de VQ dividida o de VQ multifase, la tarea T100 puede estar configurada para cuantificar un vector de señal seleccionando una entrada de cada uno de dos o más libros de códigos. La tarea T200 determina las ubicaciones, en un dominio de frecuencia, de elementos de valor cero de la entrada de libro de códigos seleccionada (o la ubicación de dichos elementos de una señal en base a la entrada de libro de códigos seleccionada, tal como una señal basada en una o más entradas de libro de códigos adicionales). La tarea T300 calcula la energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas. La tarea T400 calcula un valor de una medida de distribución de energía dentro de la señal de audio. En base a la energía calculada y el valor de distribución de energía calculado, la tarea T500 calcula un factor de ganancia de inyección de ruido. El procedimiento M100 se implementa típicamente de modo que se ejecuta una instancia respectiva del procedimiento para cada trama de la señal de audio (por ejemplo, para cada bloque de coeficientes de transformada). El procedimiento M100 puede estar configurado para tomar como entrada un espectro de audio (que abarca un ancho de banda completo o alguna subbanda). En un ejemplo, la señal de audio procesada por el procedimiento M100 es un espectro UB-MDCT en el dominio de residuo de LPC.
[0024] Puede ser deseable configurar la tarea T100 para que genere una versión codificada de la señal de audio procesando un conjunto de coeficientes de transformada para una trama de la señal de audio como un vector. Por ejemplo, la tarea T100 puede estar implementada para realizar un sistema de cuantificación vectorial (VQ), que codifica un vector emparejándolo con una entrada de un libro de códigos (que también conoce el descodificador). En un sistema de VQ convencional, el libro de códigos es una tabla de vectores, y el índice de la entrada seleccionada dentro de esta tabla se usa para representar el vector. La longitud del índice de libro de códigos, que determina el número máximo de entradas del libro de códigos, puede ser cualquier número entero arbitrario que se considere adecuado para la aplicación. En un sistema de VQ de codificación de impulsos, la entrada de libro de códigos seleccionada (que también se puede denominar índice de libro de códigos) describe un patrón particular de impulsos. En el caso de la codificación de impulsos, la longitud de la entrada (o índice) determina el número máximo de impulsos en el patrón correspondiente. En un sistema de VQ dividida o de VQ multifase, la tarea T100 puede estar configurada para cuantificar un vector de señal seleccionando una entrada de cada uno de dos o más libros de códigos.
[0025] La cuantificación vectorial de ganancia-forma es una técnica de codificación que se puede usar para codificar eficazmente vectores de señal (por ejemplo, que representan datos de audio o de imagen) desacoplando la energía del vector, que está representada por un factor de ganancia, de la dirección del vector, que está representada por una forma. Dicha técnica puede ser especialmente adecuada para aplicaciones en las que la gama dinámica de la señal puede ser grande, tal como la codificación de señales de audio (por ejemplo, señales basadas en voz y/o música).
[0026] Un cuantificador vectorial de ganancia-forma(GSVQ) codifica la forma y la ganancia de un vector de señal x por separado. La FIG. 4A muestra un ejemplo de operación de cuantificación vectorial de ganancia-forma. En este ejemplo, el cuantificador de forma SQ100 está configurado para realizar un sistema de VQ seleccionando el vector de forma cuantificado S de un libro de códigos como el vector más cercano en el libro de códigos al vector de señal x (por ejemplo, el más cercano en un sentido de error cuadrático medio) y facilitando el índice al vector S en el libro de códigos. El calculador de norma NC10 está configurado para calcular la norma ||x|| del vector de señal x, y el cuantificador de ganancia GQ10 está configurado para cuantificar la norma para generar un factor de ganancia cuantificado. El cuantificador de ganancia GQ10 puede estar configurado para cuantificar la norma como un escalar o para combinar la norma con otras ganancias (por ejemplo, normas de otros de la pluralidad de vectores) en un vector de ganancia para cuantificación vectorial.
[0027] El cuantificador de forma SQ100 está implementado típicamente como un cuantificador vectorial con la restricción de que los vectores de libro de códigos tienen una norma de unidad (es decir, todos son puntos en la hiperesfera de unidad). Esta restricción simplifica la búsqueda en el libro de códigos (por ejemplo, de un cálculo de error cuadrático medio a una operación de producto interno). Por ejemplo, el cuantificador de forma SQ100 puede estar configurado para seleccionar un vector S de entre un libro de códigos de K vectores de norma de unidad Sk, k = 0,1, ..., K - 1, de acuerdo con una operación tal como arg máxk(XTSk). Dicha búsqueda puede ser exhaustiva u optimizada. Por ejemplo, los vectores pueden estar dispuestos dentro del libro de códigos para admitir una estrategia de búsqueda en particular.
[0028] En algunos casos, puede ser deseable restringir la entrada al cuantificador de forma SQ100 para que sea la norma de unidad (por ejemplo, para permitir una estrategia de búsqueda de libro de códigos en particular). La FIG. 4B muestra uno de dichos ejemplos de operación de cuantificación vectorial de ganancia-forma. En este ejemplo, el normalizador NL10 está configurado para normalizar el vector de señal x para generar una norma de vector ||x|| y un vector de forma de norma de unidad S = x/||x||, y el cuantificador de forma SQ100 está dispuesto para recibir el vector de forma S como entrada. En dicho caso, el cuantificador de forma SQ100 puede estar configurado para seleccionar el vector S de entre un libro de códigos de K vectores de norma de unidad Sk, k = 0,1, ..., K - 1, de acuerdo con una operación tal como arg máxk (STSk).
[0029] De forma alternativa, un cuantificador de forma puede estar configurado para seleccionar el vector codificado de entre un libro de códigos de patrones de impulsos unitarios. La FIG. 4C muestra un ejemplo de dicha operación de cuantificación vectorial de ganancia-forma. En este caso, el cuantificador SQ200 está configurado para seleccionar el patrón que está más cerca de un vector de forma escalado S sc (por ejemplo, más cercano en un sentido de error cuadrático medio). Dicho patrón está codificado típicamente como una entrada de libro de códigos que indica el número de impulsos y el signo para cada posición ocupada en el patrón. La selección del patrón puede incluir escalar el vector de señal (por ejemplo, en el escalador SC10) para obtener el vector de forma S sc y un factor de escala escalar correspondiente g sc , y, a continuación, emparejando el vector de forma escalado S sc con el patrón. En este caso, el escalador SC10 puede estar configurado para escalar el vector de señal x para generar el vector de forma escalado S sc de modo que la suma de los valores absolutos de los elementos de S sc (después de redondear cada elemento al entero más cercano) se aproxima a un valor deseado (por ejemplo, 23 o 28). El vector de señal descuantificado correspondiente se puede generar usando el factor de escala resultante g sc para normalizar el patrón seleccionado. Los ejemplos de sistemas de codificación de impulsos que el cuantificador de forma SQ200 puede realizar para codificar dichos patrones incluyen la codificación factorial de impulsos y la codificación combinatoria de impulsos. Un ejemplo de operación de cuantificación vectorial de codificación de impulsos que se puede realizar dentro de un sistema, procedimiento o aparato como se divulga en el presente documento se describe en las secciones 4.13.5 (MDCT Residual Line Spectrum Quantization, pp. 4-135 a 4-137) y 4.13.6 (Global Scale Factor Quantization, p. 4-137) del documento C.S0014-D v. 3,0 citado anteriormente, como ejemplo de implementación de la tarea T100.
[0030] La FIG. 5 muestra un ejemplo de vector de espectro de entrada (por ejemplo, un espectro de MDCT) antes y después de la codificación de impulsos. En este ejemplo, el vector de treinta dimensiones, cuyo valor original en cada dimensión está indicado por la línea continua, está representado por el patrón de impulsos (0, 0, -1, -1, 1, 2, -1,0, 0, 1, -1, -1, 1, -1, 1, -1, -1, 2, -1,0, 0, 0, 0, -1, 1, 1,0, 0, 0, 0), como se muestra mediante los puntos, que indican el espectro codificado, y los cuadrados, que indican los elementos de valor cero. Este patrón de impulsos típicamente puede estar representado por una entrada (o índice) de libro de códigos que es mucho menor que treinta bits.
[0031] La tarea T200 determina las ubicaciones de elementos de valor cero en el espectro codificado. En un ejemplo, la tarea T200 está implementada para generar una máscara de detección de ceros de acuerdo con una expresión tal como la siguiente:
Figure imgf000008_0001
donde zd denota la máscara de detección de ceros, Xc denota el vector de espectro de entrada codificado y k denota un índice de muestra. Para el ejemplo codificado mostrado en la FIG. 5, dicha máscara tiene la forma de {1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1}. En este caso, el cuarenta por ciento del vector original (doce de los treinta elementos) se codifica como elemento de valor cero.
[0032] Puede ser deseable configurar la tarea T200 para que indique ubicaciones de elementos de valor cero dentro de una subbanda del intervalo de frecuencias de la señal. En uno de dichos ejemplos, Xc es un vector de 160 coeficientes de MDCT que representan un intervalo de frecuencias de banda baja de 0 a 4 kHz, y la tarea T200 está implementada para generar una máscara de detección de ceros de acuerdo con una expresión tal como la siguiente:
40 < k < 143 y Xc(k) = 0
Figure imgf000009_0001
en otros casos (2)
(por ejemplo, para la detección de elementos de valor cero a través del intervalo de frecuencias de 1000 a 3600 Hz).
[0033] La tarea T300 calcula una energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas en la tarea T200 (por ejemplo, como se indica mediante la máscara de detección de ceros). El espectro de entrada en estas ubicaciones también se puede denominar "espectro de entrada no codificado" o "regiones no codificadas del espectro de entrada". En un ejemplo típico, la tarea T300 está configurada para calcular la energía como una suma de los cuadrados de los valores de la señal de audio en estas ubicaciones. Para el caso ilustrado en la FIG. 5, la tarea T300 puede estar configurada para calcular la energía como una suma de los cuadrados de los valores del espectro de entrada en las ubicaciones de dominio de frecuencia que están marcadas por cuadrados. Dicho cálculo se puede realizar de acuerdo con una expresión tal como la siguiente:
donde K denota la longitud del vector de entrada X. En otro ejemplo, esta suma se limita a una subbanda con respecto a la cual se calcula la máscara de detección de ceros en la tarea T200 (por ejemplo, con respecto al intervalo 40 < k < 143). Se entenderá que en el caso de una transformada que genera coeficientes de valor complejo, la energía se puede calcular como una suma de los cuadrados de las magnitudes de los valores de la señal de audio en las ubicaciones determinadas por la tarea T200.
[0034] En base a una medida de una distribución de la energía dentro del espectro no codificado (es decir, entre las ubicaciones de dominio de frecuencia determinadas de la señal de audio), la tarea T400 calcula un factor de dispersión correspondiente. La tarea T400 puede estar configurada para calcular el factor de dispersión en base a una relación entre una energía total del espectro no codificado (por ejemplo, como se calcula mediante la tarea T300) y una energía total de un subconjunto de los coeficientes del espectro no codificado. En uno de dichos ejemplos, el subconjunto se selecciona de entre los coeficientes que tienen la energía más alta en el espectro no codificado. Se puede entender que la relación entre estos valores [por ejemplo, (energía de subconjunto)/(energía total de espectro no codificado)] indica en qué grado la energía del espectro no codificado está concentrada o distribuida.
[0035] En un ejemplo, la tarea T400 calcula el factor de dispersión como la suma de las energías de los Lc coeficientes de energía más alta del espectro de entrada no codificado, dividida por la energía total del espectro de entrada no codificado (por ejemplo, calculada por la tarea T300). Dicho cálculo puede incluir ordenar las energías de los elementos del vector de espectro de entrada no codificado por orden descendente. Puede ser deseable que L C tenga un valor de aproximadamente cinco, seis, siete, ocho, nueve, diez, quince o veinte por ciento del número total de coeficientes en el vector de espectro de entrada no codificado. La FIG. 6A ilustra un ejemplo de selección de los Lc coeficientes de energía más alta.
[0036] Los ejemplos de valores para Lc incluyen 5, 10, 15 y 20. En un ejemplo en particular, Lc es igual a diez, y la longitud del vector de espectro de entrada de banda alta es 140 (de forma alternativa, y la longitud del vector de espectro de entrada de banda baja es 144). En los ejemplos descritos en el presente documento, se supone que la tarea T400 calcula el factor de dispersión en una escala de cero (por ejemplo, sin energía) a uno (por ejemplo, toda la energía se concentra en los Lc coeficientes de energía más alta), pero un experto en la técnica apreciará que ni estos principios ni su descripción en el presente documento están limitados por dicha restricción.
[0037] En un ejemplo, la tarea T400 está implementada para calcular el factor de dispersión de acuerdo con una expresión tal como la siguiente:
Figure imgf000009_0002
donde p denota el factor de dispersión y K denota la longitud del vector de entrada X. (En dicho caso, el denominador de la fracción en la expresión (3) se puede obtener a partir de la tarea T300.) En otro ejemplo, el grupo de donde se seleccionan los Lc coeficientes y la suma en el denominador de la expresión (3) están limitados a una subbanda a través de la cual se calcula la máscara de detección de ceros en la tarea T200 (por ejemplo, a través del intervalo 40 < k < 143).
[0038] En otro ejemplo, la tarea T400 está implementada para calcular el factor de dispersión en base al número de los coeficientes de energía más alta del espectro no codificado cuya suma de energía sobrepasa (de forma alternativa, no es menor que) una parte especificada de la energía total del espectro no codificado (por ejemplo, 5, 10, 12, 15, 20, 25 o 30 por ciento de la energía total del espectro no codificado). Dicho cálculo también puede estar limitado a una subbanda a través de la cual se calcula la máscara de detección de ceros en la tarea T200 (por ejemplo, a través del intervalo 40 < k < 143).
[0039] La tarea T500 calcula un factor de ganancia de inyección de ruido que está basado en la energía del espectro de entrada no codificado calculado por la tarea T300 y en el factor de dispersión del espectro de entrada no codificado calculado por la tarea T400. La tarea T500 puede estar configurada para calcular un valor inicial de un factor de ganancia de inyección de ruido que está basado en la energía calculada en las ubicaciones de dominio de frecuencia determinadas. En uno de dichos ejemplos, la tarea T500 está implementada para calcular el valor inicial del factor de ganancia de inyección de ruido de acuerdo con una expresión tal como la siguiente:
Figure imgf000010_0001
donde Ym denota el factor de ganancia de inyección de ruido, K denota la longitud del vector de entrada X, y a es un factor que tiene un valor no mayor que uno (por ejemplo, 0,8 o 0,9). (En dicho caso, el numerador de la fracción en la expresión (4) se puede obtener a partir de la tarea T300.) En otro ejemplo, las sumas en la expresión (4) están limitadas a una subbanda a través de la cual se calcula la máscara de detección de ceros en la tarea T200 (por ejemplo, a través del intervalo 40 < k < 143).
[0040] Puede ser deseable reducir la ganancia de ruido cuando el factor de dispersión tiene un valor alto (es decir, cuando el espectro no codificado no tiene características de ruido). La tarea T500 puede estar configurada para usar el factor de dispersión para modular el factor de ganancia de inyección de ruido de modo que el valor del factor de ganancia disminuye a medida que se incrementa el factor de dispersión. La FIG. 6B muestra un gráfico de una correlación del valor del factor de dispersión p con un valor de un factor de ajuste de ganancia f1 de acuerdo con una función monotónicamente decreciente. Dicha modulación puede estar incluida en el cálculo del factor de ganancia de inyección de ruido Ym (por ejemplo, puede estar aplicada al lado derecho de la expresión (4) anterior para generar el factor de ganancia de inyección de ruido) o el factor f1 se puede usar para actualizar un valor inicial del factor de ganancia de inyección de ruido Ym de acuerdo con una expresión tal como Ym ^ fi x Ym.
[0041] El ejemplo en particular mostrado en la FIG. 6B pasa el valor de ganancia intacto para valores de factor de dispersión menores que un valor de umbral inferior especificado L, reduce linealmente el valor de ganancia para valores de factor de dispersión entre L y un valor umbral superior especificado B, y recorta el valor de ganancia a cero para valores de factor de dispersión mayores que B. La línea de debajo de este gráfico ilustra que valores bajos del factor de dispersión indican un menor grado de concentración de energía (por ejemplo, un espectro de energía más distribuido) y que valores más altos del factor de dispersión indican un mayor grado de concentración de energía (por ejemplo, una señal tonal). La FIG. 6C muestra este ejemplo para valores de L = 0,5 y B = 0,7 (donde se supone que el valor del factor de dispersión está en el intervalo [0,1]). Estos ejemplos también pueden estar implementados de modo que la reducción no es lineal. La FIG. 8D muestra un listado de pseudocódigo que se puede ejecutar para realizar una modulación basada en dispersión del factor de ganancia de inyección de ruido de acuerdo con la correlación mostrada en la FIG. 6C.
[0042] Puede ser deseable cuantificar el factor de ganancia de inyección de ruido modulado en dispersión usando un pequeño número de bits, y transmitir el factor cuantificado como información secundaria de la trama. La FIG.
3B muestra un diagrama de flujo de una implementación M110 del procedimiento M100 que incluye una tarea T600 que cuantifica el factor de ganancia de inyección de ruido modulado generado por la tarea T500. Por ejemplo, la tarea T600 puede estar configurada para cuantificar el factor de ganancia de inyección de ruido en una escala logarítmica (por ejemplo, una escala de decibelios) usando un cuantificador escalar (por ejemplo, un cuantificador escalar de tres bits).
[0043] La tarea T500 también puede estar configurada para modular el factor de ganancia de inyección de ruido de acuerdo con su propia magnitud. La FIG. 7A muestra un diagrama de flujo de dicha implementación T502 de la tarea T500 que incluye las subtareas T510, T520 y T530. En la tarea T510 se calcula un valor inicial para el factor de ganancia de inyección de ruido (por ejemplo, como se describe anteriormente con referencia a la expresión (4)). En la tarea T520 se realiza una operación de recorte de baja ganancia en el valor inicial. Por ejemplo, la tarea T520 puede estar configurada para reducir a cero valores del factor de ganancia que están debajo de un valor umbral especificado. La FIG. 8A muestra un gráfico de dicha operación para un ejemplo de tarea T520 que recorta valores de ganancia por debajo de un valor umbral c a cero, correlaciona linealmente valores del intervalo de c a d con el intervalo de cero a d, y pasa valores más altos intactos. La FIG. 8B muestra un ejemplo en particular de la tarea T520 para los valores c = 200, d = 400. Estos ejemplos también pueden estar implementados de modo que la correlación no es lineal. La tarea T530 aplica el factor de dispersión al factor de ganancia recortado generado por la tarea T520 (por ejemplo, aplicando el factor de ajuste de ganancia f1 como se describe anteriormente para actualizar el factor recortado). La FIG. 8C muestra un listado de pseudocódigo que se puede ejecutar para realizar la tarea T520 de acuerdo con la correlación mostrada en la FIG. 8B. Un experto en la técnica reconocerá que la tarea T500 también puede estar implementada de modo que la secuencia de tareas T520 y T530 se invierte (es decir, de modo que la tarea T530 se realiza en el valor inicial generado por la tarea T510, y la tarea T520 se realiza en el resultado de la tarea T530).
[0044] Como se señala en el presente documento, la señal de audio procesada por el procedimiento M100 puede ser un residuo de un análisis de LPC de una señal de entrada. Como resultado del análisis de LPC, la señal de salida descodificada generada por una síntesis de LPC correspondiente en el descodificador puede ser más alta o más suave que la señal de entrada. Se puede usar un conjunto de coeficientes generados mediante el análisis de LPC de la señal de entrada (por ejemplo, un conjunto de coeficientes de reflexión o coeficientes de filtro) para calcular una ganancia de LPC que en general indica cuánto más alta o más suave se puede esperar que la señal llegue a ser al pasar a través del filtro de síntesis en el descodificador.
[0045] En un ejemplo, la ganancia de LPC está basada en un conjunto de coeficientes de reflexión generados mediante el análisis de LPC. En dicho caso, la ganancia de LPC se puede calcular de acuerdo con una expresión
-ioioglon?=1(i-Jc?),
tal como donde k¡ es el i-esimo coeficiente de reflexión y p es el orden del análisis de LPC. En otro ejemplo, la ganancia de LPC está basada en un conjunto de coeficientes de filtro generados mediante el análisis de LPC. En dicho caso, la ganancia de LPC se puede calcular como la energía de la respuesta a un impulso del filtro de análisis de LPC (por ejemplo, como se describe en la sección 4.6.1.2 (Generation of Spectral Transition Indicator (LPCFLAG), p. 4-40) del documento C.S0014-D v. 3.0 citado anteriormente, como un ejemplo de cálculo de ganancia de LPC).
[0046] Cuando se incrementa la ganancia de LPC, se puede esperar que el ruido inyectado en la señal residual también se amplifique. Además, una alta ganancia de LPC en general indica que la señal está muy correlacionada (por ejemplo, es tonal) en lugar de tener características de ruido, y que añadir ruido inyectado al residuo de dicha señal puede ser inapropiado. En dicho caso, la señal de entrada puede ser considerablemente tonal aunque el espectro se muestre no disperso en el dominio del residuo, de modo que una alta ganancia de LPC se puede considerar una indicación de tonalidad.
[0047] Puede ser deseable implementar la tarea T500 para modular el valor del factor de ganancia de inyección de ruido de acuerdo con el valor de una ganancia de LPC asociada con el espectro de audio de entrada. Por ejemplo, puede ser deseable configurar la tarea T500 para reducir el valor del factor de ganancia de inyección de ruido a medida que se incrementa la ganancia de LPC. Dicho control basado en la ganancia de LPC del factor de ganancia de inyección de ruido, que se puede realizar de forma adicional o alternativa a la operación de recorte de baja ganancia de la tarea T520, puede ayudar a allanar las variaciones de una trama a otra en la ganancia de LPC.
[0048] La FIG. 7B muestra un diagrama de flujo de una implementación T504 de la tarea T500 que incluye las subtareas T510, T530 y T540. La tarea T540 realiza un ajuste, en base a la ganancia de LPC, en el factor de ganancia de inyección de ruido modulado generado mediante la tarea T530. La FIG. 9A muestra un ejemplo de correlación del valor de ganancia de LPC g LPC (en decibelios) con un valor de factor z de acuerdo con una función monotónicamente decreciente. En este ejemplo, el factor z tiene un valor de cero cuando la ganancia de LPC es menor que u y un valor de (2 - g LPC ) en caso contrario. En dicho caso, la tarea T540 puede estar implementada para ajustar el factor de ganancia de inyección de ruido generado mediante la tarea T530 de acuerdo con una expresión tal como Ym^ 10z /20 x Y ni . La FIG. 9B muestra un gráfico de dicha correlación para el ejemplo en particular en el que el valor de u es dos.
[0049] La FIG. 9C muestra un ejemplo de una implementación diferente de la correlación mostrada en la FIG. 9A en el que el valor de ganancia de LPC g LPC (en decibelios) se correlaciona con un valor de un factor de ajuste de ganancia f2 de acuerdo con una función monotónicamente decreciente, y la FIG. 9D muestra un gráfico de dicha correlación para el ejemplo en particular en el que el valor de u es dos. Los ejes de los gráficos de las FIGS. 9C y 9D son logarítmicos. En dichos casos, la tarea T540 puede estar implementada para ajustar el factor de ganancia de inyección de ruido generado mediante la tarea T530 de acuerdo con una expresión tal como Ym^ Z 2 x Yni, donde el valor de f2 es 10(2_ sLp c )/20 cuando la ganancia de LPC es mayor que dos, y uno en caso contrario. La FIG. 8E muestra un listado de pseudocódigo que se puede ejecutar para realizar la tarea T540 de acuerdo con una correlación como se muestra en las FIGS. 9B y 9D. Un experto en la técnica reconocerá que la tarea T500 también puede estar implementada de modo que la secuencia de tareas T530 y T540 se invierte (es decir, de modo que la tarea T540 se realiza en el valor inicial generado por la tarea T510, y la tarea T530 se realiza en el resultado de la tarea T540). La FIG. 7C muestra un diagrama de flujo de una implementación T506 de las tareas T502 y T504 que incluye las subtareas T510, T520, T530 y T540. Un experto en la materia reconocerá que la tarea T500 también puede estar implementada con las tareas T520, T530 y/o T540 que se realizan en una secuencia diferente (por ejemplo, realizándose la tarea T540 antes que la tarea T520 y/o T530, y/o realizándose la tarea T530 antes que la tarea T520).
[0050] La FIG. 10B muestra un diagrama de flujo de un procedimiento M200 de inyección de ruido de acuerdo con una configuración general que incluye las subtareas TD100, TD200 y TD300. Dicho procedimiento se puede realizar, por ejemplo, en un descodificador. La tarea TD100 obtiene (por ejemplo, genera) un vector de ruido (por ejemplo, un vector de ruido gaussiano de distribución independiente e idéntica (i.i.d.)) de la misma longitud que el número de elementos vacíos en el espectro codificado de entrada. Puede ser deseable configurar la tarea TD100 para que genere el vector de ruido de acuerdo con una función determinista, de modo que el mismo vector de ruido que se genera en el descodificador también se pueda generar en el codificador (por ejemplo, para admitir un análisis de bucle cerrado de la señal codificada). Por ejemplo, puede ser deseable implementar la tarea TD100 para que genere el vector de ruido usando un generador de números aleatorios al que se facilitan valores semilla de la señal codificada (por ejemplo, con el índice de libro de códigos generado mediante la tarea T100).
[0051] La tarea TD100 puede estar configurada para normalizar el vector de ruido. Por ejemplo, la tarea TD100 puede estar configurada para escalar el vector de ruido para que tenga una norma (es decir, suma de cuadrados) igual a uno. La tarea TD100 también puede estar configurada para realizar una operación de conformación espectral en el vector de ruido de acuerdo con una función (por ejemplo, una función de ponderación espectral) que se puede hallar a partir de alguna información secundaria (tal como los parámetros de LPC de la trama) o directamente del espectro codificado de entrada. Por ejemplo, la tarea TD100 puede estar configurada para aplicar una curva de conformación espectral a un vector de ruido gaussiano, y para normalizar el resultado para que tenga energía de unidad.
[0052] Puede ser deseable realizar una conformación espectral para mantener una inclinación espectral deseada del vector de ruido. En un ejemplo, la tarea TD100 está configurada para realizar la conformación espectral aplicando un filtro de formantes al vector de ruido. Dicha operación puede tender a concentrar el ruido más alrededor de los picos espectrales indicados por los coeficientes de filtro de LPC, y no tanto en los valles espectrales, que pueden ser ligeramente preferentes desde el punto de vista de la percepción.
[0053] La tarea TD200 aplica el factor de ganancia de inyección de ruido descuantificado al vector de ruido. Por ejemplo, la tarea TD200 puede estar configurada para descuantificar el factor de ganancia de inyección de ruido cuantificado mediante la tarea T600 y para escalar el vector de ruido generado mediante la tarea TD100 por el factor de ganancia de inyección de ruido descuantificado.
[0054] La tarea TD300 inyecta los elementos del vector de ruido escalado generado mediante la tarea TD200 en los elementos vacíos correspondientes del espectro codificado de entrada para generar el espectro codificado inyectado con ruido de salida. Por ejemplo, la tarea TD300 puede estar configurada para descuantificar uno o más índices de libro de códigos (por ejemplo, como el generado mediante la tarea T100) para obtener el espectro codificado de entrada como un vector de señal descuantificado. En un ejemplo, la tarea TD300 está implementada para comenzar en un extremo del vector de señal descuantificado y en un extremo del vector de ruido escalado y atravesar el vector de señal descuantificado, inyectando el siguiente elemento del vector de ruido escalado en cada elemento de valor cero que se encuentra durante el recorrido a través del vector de señal descuantificado. En otro ejemplo, la tarea TD300 está configurada para calcular una máscara de detección de ceros a partir del vector de señal descuantificado (por ejemplo, como se describe en el presente documento con referencia a la tarea T200), para aplicar la máscara al vector de ruido escalado (por ejemplo, como una multiplicación de elemento por elemento) y para añadir el vector de ruido enmascarado resultante al vector de señal descuantificado.
[0055] Como se señala anteriormente, los procedimientos de inyección de ruido (por ejemplo, los procedimientos M100 y M200) se pueden aplicar a la codificación y la descodificación de señales codificadas por impulsos. Sin embargo, en general, dicha inyección de ruido se puede aplicar en general como una operación de postprocesamiento o de procesamiento dorsal a cualquier sistema de codificación que genera un resultado codificado en el que las regiones del espectro están establecidas en cero. Por ejemplo, dicha implementación del procedimiento M100 (con una implementación correspondiente del procedimiento M200) se puede aplicar al resultado de la codificación de impulsos de un residuo de un sistema de codificación de modo dependiente o de armónicos como se describe en el presente documento, o a la salida de dicho sistema de codificación de modo dependiente o de armónicos en el que el residuo se establece en cero.
[0056] La codificación de cada trama de una señal de audio típicamente incluye dividir la trama en una pluralidad de subbandas (es decir, dividir la trama como un vector en una pluralidad de subvectores), asignar una asignación de bits a cada subvector y codificar cada subvector como el correspondiente número de bits asignado. En una aplicación de codificación de audio típica, puede ser deseable, por ejemplo, realizar una cuantificación vectorial en un gran número (por ejemplo, diez, veinte, treinta o cuarenta) de vectores de subbanda diferentes para cada trama. Los ejemplos de tamaño de trama incluyen (sin limitación) los valores 100, 120, 140, 160 y 180 (por ejemplo, coeficientes de transformada), y los ejemplos de longitud de subbanda incluyen (sin limitación) cinco, seis, siete, ocho, nueve, diez, once, doce y dieciséis.
[0057] Un codificador de audio que incluye una implementación del aparato A100, o que está configurado de otro modo para realizar el procedimiento M100, puede estar configurado para recibir tramas de una señal de audio (por ejemplo, un residuo de LPC) como muestras en un dominio de transformada (por ejemplo, como coeficientes de transformada, tales como los coeficientes de MDCT o los coeficientes de FFT). Dicho codificador puede estar implementado para codificar cada trama agrupando los coeficientes de transformada en un conjunto de subvectores de acuerdo con un sistema de división predeterminado (es decir, un sistema de división fijo que el descodificador conoce antes de que se reciba la trama) y codificando cada subvector usando un sistema de cuantificación vectorial de ganancia-forma. Los subvectores pueden, pero no necesitan, superponerse e incluso pueden estar separados uno del otro (en los ejemplos en particular descritos en el presente documento, los subvectores no se superponen, excepto por una superposición como se describe entre una banda baja de 0-4 kHz y una banda alta de 3,5-7 kHz). Esta división puede estar predeterminada (por ejemplo, ser independiente del contenido del vector), de modo que cada vector de entrada se divide de la misma manera.
[0058] En un ejemplo de dicho sistema de división predeterminado, cada vector de entrada de 100 elementos se divide en tres subvectores de longitudes respectivas (25, 35, 40). Otro ejemplo de división predeterminada divide un vector de entrada de 140 elementos en un conjunto de veinte subvectores de longitud siete. Otro ejemplo de división predeterminada divide un vector de entrada de 280 elementos en un conjunto de cuarenta subvectores de longitud siete. En dichos casos, el aparato A100 o el procedimiento M100 pueden estar configurados para recibir cada uno de dos o más de los subvectores como un vector de señal de entrada separado y para calcular un factor de ganancia de inyección de ruido separado para cada uno de estos subvectores. También se contemplan múltiples implementaciones del aparato A100 o el procedimiento M100 dispuestas para procesar diferentes subvectores al mismo tiempo.
[0059] La codificación de baja velocidad de bits de las señales de audio a menudo exige una utilización óptima de los bits disponibles para codificar el contenido de la trama de señal de audio. Puede ser deseable identificar regiones de energía significativa dentro de una señal que se va a codificar. La separación de dichas regiones del resto de la señal permite la codificación dirigida de estas regiones para una eficacia de codificación incrementada. Por ejemplo, puede ser deseable incrementar la eficacia de codificación usando una cantidad relativamente mayor de bits para codificar dichas regiones y una cantidad relativamente menor de bits (o incluso ningún bit) para codificar otras regiones de la señal. En dichos casos, puede ser deseable realizar el procedimiento M100 en estas otras regiones, ya que sus espectros codificados típicamente incluirán un número significativo de elementos de valor cero.
[0060] De forma alternativa, esta división puede ser variable, de modo que los vectores de entrada se dividen de manera diferente de una trama a la siguiente (por ejemplo, de acuerdo con algunos criterios de percepción). Puede ser deseable, por ejemplo, realizar una codificación de dominio de transformada eficaz de una señal de audio mediante detección y codificación dirigida de componentes armónicos de la señal. La FIG. 11 muestra un gráfico de magnitud frente a frecuencia en el que ocho subbandas seleccionadas de longitud siete que corresponden a picos separados armónicamente de una señal residual de codificación de predicción lineal (LPC) de banda baja se indican mediante barras cerca del eje de la frecuencia. En dicho caso, las ubicaciones de las subbandas seleccionadas se pueden modelizar usando dos valores: un primer valor seleccionado para representar la frecuencia fundamental F0, y un segundo valor seleccionado para representar la separación entre picos adyacentes en el dominio de la frecuencia. La FIG. 12 muestra un ejemplo similar para una señal residual de LPC de banda alta que indica los componentes residuales que se encuentran entre y fuera de las subbandas seleccionadas. En dichos casos, puede ser deseable realizar el procedimiento M100 en los componentes residuales (por ejemplo, por separado en cada componente residual y/o en una concatenación de dos o más, y posiblemente todos, los componentes residuales). Una descripción adicional de modelizado de armónicos y de codificación en modo de armónicos (que incluye casos en que las ubicaciones de los picos en una región de banda alta de una trama se modelizan en base a las ubicaciones de los picos en una versión codificada de una región de banda baja de la misma trama) se puede encontrar en las solicitudes enumeradas anteriormente con respecto a las cuales la presente solicitud reivindica prioridad.
[0061] Otro ejemplo de sistema de división variable identifica un conjunto de subbandas perceptivamente importantes en la trama actual (también denominada trama objetivo) en base a las ubicaciones de subbandas perceptivamente importantes en una versión codificada de otra trama (también denominada trama de referencia), que puede ser la trama previa. La FIG. 10A muestra un ejemplo de operación de selección de subbandas en dicho sistema de codificación. Para señales de audio que tienen alto contenido armónico (por ejemplo, señales de música, señales de voz), las ubicaciones de regiones de energía significativa en el dominio de la frecuencia en un momento dado pueden ser relativamente persistentes a lo largo del tiempo. Puede ser deseable realizar una codificación eficaz en el dominio de la transformada de una señal de audio aprovechando dicha correlación a lo largo del tiempo. En uno de dichos ejemplos, se usa un sistema de selección dinámica de subbandas para emparejar subbandas perceptivamente importantes (por ejemplo, de alta energía) de una trama que se va a codificar con subbandas perceptivamente importantes de la trama previa descodificada (también denominado "codificación de modo dependiente"). En dichos casos, puede ser deseable realizar el procedimiento M100 en los componentes residuales que se encuentran entre y fuera de las subbandas seleccionadas (por ejemplo, por separado en cada componente residual y/o en una concatenación de dos o más, y posiblemente la totalidad, de los componentes residuales). En una aplicación en particular, dicho sistema se usa para codificar coeficientes de transformada de MDCT correspondientes al intervalo de 0-4 kHz de una señal de audio, tal como un residuo de una operación de codificación de predicción lineal (LPC). Se puede encontrar una descripción adicional de la codificación de modo dependiente en las solicitudes enumeradas anteriormente con respecto a las cuales la presente solicitud reivindica prioridad.
[0062] Otro ejemplo de señal residual se obtiene codificando un conjunto de subbandas seleccionadas (por ejemplo, seleccionadas de acuerdo con cualquiera de los sistemas de selección dinámica descritos anteriormente) y restando el conjunto codificado de la señal original. En dicho caso, puede ser deseable realizar el procedimiento M100 en la totalidad o una parte de la señal residual. Por ejemplo, puede ser deseable realizar el procedimiento M100 en el vector de señal residual entero o realizar el procedimiento M100 por separado en cada uno del uno o más subvectores de la señal residual, que se pueden dividir en subvectores de acuerdo con un sistema de división predeterminado.
[0063] La FIG. 13A muestra un diagrama de bloques de un aparato para procesar una señal de audio MF100 de acuerdo con una configuración general. El aparato MF100 incluye medios FA100 para seleccionar una de entre una pluralidad de entradas de un libro de códigos, en base a la información de la señal de audio (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T100). El aparato MF100 también incluye medios FA200 para determinar ubicaciones, en un dominio de frecuencia, de elementos de valor cero de una primera señal que está basada en la entrada de libro de códigos seleccionada (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T200). El aparato MF100 también incluye medios FA300 para calcular la energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T300). El aparato MF100 también incluye medios FA400 para calcular un valor de una medida de una distribución de la energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T400). El aparato MF100 también incluye medios FA500 para calcular un factor de ganancia de inyección de ruido en base a dicha energía calculada y dicho valor calculado (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T500).
[0064] La FIG. 13B muestra un diagrama de bloques de un aparato para procesar una señal de audio A100 de acuerdo con una configuración general que incluye un cuantificador vectorial 100, un detector de valores cero 200, un calculador de energía 300, una calculador de dispersión 400 y un calculador de factor de ganancia 500. El cuantificador vectorial 100 está configurado para seleccionar una de entre una pluralidad de entradas de un libro de códigos, en base a una información de la señal de audio (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T100). El detector de valores cero 200 está configurado para determinar ubicaciones, en un dominio de frecuencia, de elementos de valor cero de una primera señal que está basada en la entrada de libro de códigos seleccionada (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T200). El calculador de energía 300 está configurado para calcular la energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T300). El calculador de dispersión 400 está configurado para calcular un valor de una medida de una distribución de la energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T400). El calculador de factor de ganancia 500 está configurado para calcular un factor de ganancia de inyección de ruido en base a dicha energía calculada y dicho valor calculado (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T500). El aparato A100 también puede estar implementado para incluir un cuantificador escalar configurado para cuantificar el factor de ganancia de inyección de ruido generado por el calculador de factor de ganancia 500 (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea T600).
[0065] La FIG. 10C muestra un diagrama de bloques de un aparato para inyección de ruido MF200 de acuerdo con una configuración general. El aparato MF200 también incluye medios FD100 para obtener un vector de ruido (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TD100). El aparato MF200 también incluye medios FD200 para aplicar un factor de ganancia de inyección de ruido descuantificado (por ejemplo, como se describe en el presente documento con referencia a la tarea TD200). El aparato MF200 también incluye medios FD300 para inyectar el vector de ruido escalado en elementos vacíos de un espectro codificado (por ejemplo, como se describe en el presente documento con referencia a la tarea TD300).
[0066] La FIG. 10D muestra un diagrama de bloques de un aparato para inyección de ruido A200 de acuerdo con una configuración general que incluye un generador de ruido D100, un escalador D200 y un inyector de ruido D300. El generador de ruido D100 está configurado para obtener un vector de ruido (por ejemplo, como se describe en el presente documento con referencia a la tarea TD100). El escalador D200 está configurado para aplicar un factor de ganancia de inyección de ruido descuantificado al vector de ruido (por ejemplo, como se describe en el presente documento con referencia a la tarea TD200). Por ejemplo, el escalador D200 puede estar configurado para multiplicar cada elemento del vector de ruido por el factor de ganancia de inyección de ruido descuantificado. El inyector de ruido D300 está configurado para inyectar el vector de ruido escalado en elementos vacíos de un espectro codificado (por ejemplo, como se describe en el presente documento con referencia a unas implementaciones de la tarea TD300). En un ejemplo, el inyector de ruido D300 está implementado para comenzar en un extremo de un vector de señal descuantificado y en un extremo del vector de ruido escalado y atravesar el vector de señal descuantificado, inyectando el siguiente elemento del vector de ruido escalado en cada elemento de valor cero que se encuentra durante el recorrido a través del vector de señal descuantificado. En otro ejemplo, el inyector de ruido D300 está configurado para calcular una máscara de detección de ceros a partir del vector de señal descuantificado (por ejemplo, como se describe en el presente documento con referencia a la tarea T200), para aplicar la máscara al vector de ruido escalado (por ejemplo, como una multiplicación de elemento por elemento), y para añadir el vector de ruido enmascarado resultante al vector de señal descuantificado.
[0067] La FIG. 14 muestra un diagrama de bloques de un codificador E20 que está configurado para recibir una trama de audio SM10 como unas muestras en el dominio de MDCT (es decir, como unos coeficientes de dominio de transformada) y para generar una trama codificada correspondiente SE20. El codificador E20 incluye un codificador de subbandas BE10 que está configurado para codificar una pluralidad de subbandas de la trama (por ejemplo, de acuerdo con un sistema de VQ, tal como de GSVQ). Las subbandas codificadas se restan de la trama de entrada para generar una señal de error ES10 (también denominada residuo), que el codificador de errores EE10 codifica. El codificador de errores EE10 puede estar configurado para codificar la señal de error ES10 usando un sistema de codificación de impulsos como se describe en el presente documento, y para realizar una implementación del procedimiento M100 como se describe en el presente documento para calcular un factor de ganancia de inyección de ruido. Las subbandas codificadas y la señal de error codificada (que incluye una representación del factor de ganancia de inyección de ruido calculado) se combinan para obtener la trama codificada SE20.
[0068] Las FIGS. 15A-E muestran una gama de aplicaciones para un codificador E100 que está implementado para codificar una señal en un dominio de transformada (por ejemplo, realizando cualquiera de los sistemas de codificación descritos en el presente documento, tal como un sistema de codificación de armónicos o un sistema de codificación de modo dependiente o como una implementación del codificador E20) y también está configurado para realizar una instancia del procedimiento M100 como se describe en el presente documento. La FIG. 15A muestra un diagrama de bloques de una ruta de procesamiento de audio que incluye un módulo de transformada MM1 (por ejemplo, un módulo de transformada rápida de Fourier o de MDCT) y una instancia del codificador E100 que está dispuesto para recibir las tramas de audio SA10 como muestras en el dominio de la transformada (es decir, como coeficientes de dominio de transformada) y para generar unas tramas codificadas correspondientes SE10.
[0069] La FIG. 15B muestra un diagrama de bloques de una implementación de la ruta de la FIG. 15A en el que el módulo de transformada MM1 se implementa usando un módulo de transformada de MDCT. El módulo de DCT modificada MM10 realiza una operación de MDCT como se describe en el presente documento en cada trama de audio para generar un conjunto de coeficientes de dominio de MDCT.
[0070] La FIG. 15C muestra un diagrama de bloques de una implementación de la ruta de la FIG. 15A que incluye un módulo de análisis de codificación de predicción lineal AM10. El módulo de análisis de codificación de predicción lineal (LPC) AM10 realiza una operación de análisis de LPC en la trama clasificada para generar un conjunto de parámetros de LPC (por ejemplo, coeficientes de filtro) y una señal residual de LPC. En un ejemplo, el módulo de análisis AM de LPC 10 está configurado para realizar un análisis de LPC de décimo orden en una trama que tiene un ancho de banda de cero a 4000 Hz. En otro ejemplo, el módulo de análisis de LPC AM10 está configurado para realizar un análisis de LPC de sexto orden en una trama que representa un intervalo de frecuencias de banda alta de 3500 a 7000 Hz. El módulo de DCT modificada MM 10 realiza una operación de MDCT en la señal residual de LPC para generar un conjunto de coeficientes de dominio de transformada. Una ruta de descodificación correspondiente puede estar configurada para descodificar tramas codificadas SE10 y para realizar una transformada MDCT inversa en las tramas descodificadas para obtener una señal de excitación para introducirla en un filtro de síntesis de LPC.
[0071] La FIG. 15D muestra un diagrama de bloques de una ruta de procesamiento que incluye un clasificador de señales SC10. El clasificador de señales SC10 recibe tramas SA10 de una señal de audio y clasifica cada trama en una de al menos dos categorías. Por ejemplo, el clasificador de señales SC10 puede estar configurado para clasificar una trama SA10 como voz o música, de modo que si la trama se clasifica como música, entonces el resto de la ruta mostrada en la FIG. 15D se usa para codificarla, y si la trama se clasifica como voz, entonces se usa una ruta de procesamiento diferente para codificarla. Dicha clasificación puede incluir detección de actividad de señal, detección de ruido, detección de periodicidad, detección de dispersión en el dominio del tiempo y/o detección de dispersión en el dominio de la frecuencia.
[0072] La FIG. 16A muestra un diagrama de bloques de un procedimiento MZ100 de clasificación de señales que el clasificador de señales SC10 puede realizar (por ejemplo, en cada una de las tramas de audio SA10). El procedimiento MC100 incluye unas tareas TZ100, TZ200, TZ300, TZ400, TZ500 y TZ600. La tarea TZ100 cuantifica un nivel de actividad en la señal. Si el nivel de actividad es inferior a un umbral, la tarea TZ200 codifica la señal como silencio (por ejemplo, usando un sistema de predicción lineal con excitación por ruido (NELP) de baja velocidad de bits y/o un sistema de transmisión discontinua (DTX)). Si el nivel de actividad es suficientemente alto (por ejemplo, superior al umbral), la tarea TZ300 cuantifica un grado de periodicidad de la señal. Si la tarea TZ300 determina que la señal no es periódica, la tarea TZ400 codifica la señal usando un sistema de NELP. Si la tarea TZ300 determina que la señal es periódica, la tarea TZ500 cuantifica un grado de dispersión de la señal en el dominio del tiempo y/o de la frecuencia. Si la tarea TZ500 determina que la señal está dispersa en el dominio del tiempo, la tarea TZ600 codifica la señal usando un sistema de predicción lineal con excitación por código (CELP), tal como la CELP relajada (RCELP) o la CELP algebraica (ACELP). Si la tarea TZ500 determina que la señal está dispersa en el dominio de la frecuencia, la tarea TZ700 codifica la señal usando un modelo armónico, un modo dependiente o un sistema como se describe con referencia al codificador E20 (por ejemplo, haciendo pasar la señal por el resto de la ruta de procesamiento de la FIG. 15D).
[0073] Como se muestra en la FIG. 15D, la ruta de procesamiento puede incluir un módulo de poda perceptiva PM10 que está configurado para simplificar la señal de dominio de MDCT (por ejemplo, para reducir el número de coeficientes de dominio de transformada que se han de codificar) aplicando criterios psicoacústicos tales como enmascaramiento de tiempo, enmascaramiento de frecuencia y/o umbral de audición. El módulo de PM10 puede estar implementado para calcular los valores para dichos criterios aplicando un modelo perceptivo a las tramas de audio originales SA10. En este ejemplo, el codificador E100 está dispuesto para codificar las tramas podadas para generar las tramas codificados correspondientes SE10.
[0074] La FIG. 15E muestra un diagrama de bloques de una implementación de ambas de las rutas de las FIGS.
15C y 15D, en el que el codificador E100 está dispuesto para codificar el residuo de LPC.
[0075] La FIG. 16B muestra un diagrama de bloques de un dispositivo de comunicaciones D10 que incluye una implementación del aparato A100. El dispositivo D10 incluye un chip o un conjunto de chips CS10 (por ejemplo, un conjunto de chips de módem de estación móvil (MSM)) que incorpora los elementos del aparato A100 (o MF100) y posiblemente del aparato A200 (o MF200). El chip/conjunto de chips CS10 puede incluir uno o más procesadores, que pueden estar configurados para ejecutar una parte de software y/o firmware del aparato A100 o MF100 (por ejemplo, como instrucciones).
[0076] El chip/conjunto de chips CS10 incluye un receptor, que está configurado para recibir una señal de comunicaciones de radiofrecuencia (RF) y para descodificar y reproducir una señal de audio codificada dentro de la señal de RF, y un transmisor, que está configurado para transmitir una señal de comunicaciones de RF que describe una señal de audio codificada (por ejemplo, que incluye una representación de un factor de ganancia de inyección de ruido generado por el aparato A100) que está basada en una señal generada por el micrófono MV10. Dicho dispositivo puede estar configurado para transmitir y recibir inalámbricamente datos de comunicaciones de voz por medio de uno o más sistemas de codificación y descodificación (también denominados "códecs"). Los ejemplos de dichos códecs incluyen el códec de velocidad variable mejorado, como se describe en el documento C.S0014-C, v. 10 del Proyecto de Colaboración de Tercera Generación 2 (3GPP2), titulado "Enhanced Variable Rate Codec, Speech Service Options 3, 68, and 70 for Wideband Spread Spectrum Digital Systems", febrero de 2007 (disponible en línea en www-dot-3gpp-dot-org); el códec de voz, denominado vocodificador de modo seleccionable, como se describe en el documento C.S0030-0, v. 3.0 de 3GPP2 , titulado "Selectable Mode Vocoder (SMV) Service Option for Wideband Spread Spectrum Communication Systems", enero de 2004 (disponible en línea en www-dot-3gpp-dot-org); el códec de voz de multivelocidad adaptativa (AMR), como se describe en el documento ETSI TS 126 092 v. 6.0.0 (Instituto Europeo de Normas de Telecomunicaciones (ETSI), Sophia Antipolis Cedex, FR, diciembre de 2004); y el códec de voz de AMR de banda ancha, como se describe en el documento ETSI TS 126 192 v. 6.0.0 (eTs I, diciembre de 2004). Por ejemplo, el chip o conjunto de chips CS10 puede estar configurado para generar las tramas codificadas para que sean compatibles con uno o más de dichos códecs.
[0077] El dispositivo D10 está configurado para recibir y transmitir las señales de comunicaciones de RF por medio de una antena C30. El dispositivo D10 también puede incluir un diplexor y uno o más amplificadores de potencia en la ruta hacia la antena C30. El chip/conjunto de chips CS10 también está configurado para recibir una entrada de usuario por medio del teclado C10 y para visualizar información por medio de la pantalla C20. En este ejemplo, el dispositivo D10 también incluye una o más antenas C40 para admitir servicios de localización del sistema de posicionamiento global (GPS) y/o comunicaciones de corto alcance con un dispositivo externo tal como un auricular inalámbrico (por ejemplo, Bluetooth™). En otro ejemplo, dicho dispositivo de comunicaciones es en sí mismo un auricular Bluetooth™ y carece del teclado C10, de la pantalla C20 y de la antena C30.
[0078] El dispositivo de comunicaciones D10 puede estar incorporado en una variedad de dispositivos de comunicaciones, incluyendo teléfonos inteligentes y ordenadores portátiles y de tableta. La FIG. 17 muestra las vistas frontal, trasera y lateral de un teléfono H100 (por ejemplo, un teléfono inteligente) que tiene dos micrófonos de voz MV10-1 y MV10-3 dispuestos en la parte frontal, un micrófono de voz MV10-2 dispuesto en la parte trasera, un micrófono de error ME10 localizado en una esquina superior de la parte frontal, y un micrófono de referencia de ruido MR10 localizado en la parte posterior. Un altavoz LS10 está dispuesto en la parte superior central de la parte frontal cerca del micrófono de error ME10 y también se proporcionan otros dos altavoces LS20L, LS20R (por ejemplo, para aplicaciones de altavoces de teléfonos). Una distancia máxima entre los micrófonos de uno de dichos teléfonos es típicamente de aproximadamente diez o doce centímetros.
[0079] Los procedimientos y los aparatos divulgados en el presente documento se pueden aplicar en general en cualquier aplicación transceptora y/o detectora de audio, especialmente en instancias móviles o portátiles de dichas aplicaciones. Por ejemplo, la gama de configuraciones divulgadas en el presente documento incluye dispositivos de comunicaciones que residen en un sistema de comunicación de telefonía inalámbrica, configurado para emplear una interfaz aérea de acceso múltiple por división de código (CDMA). No obstante, los expertos en la técnica entenderán que un procedimiento y un aparato que tienen características como se describen en el presente documento pueden residir en cualquiera de los diversos sistemas de comunicación que emplean una amplia gama de tecnologías conocidas por los expertos en la técnica, tales como sistemas que emplean voz por IP (VoIP) a través de canales de transmisión alámbricos y/o inalámbricos (por ejemplo, de CDMA, TDMA, FDMA y/o TD-SCDMA).
[0080] Se contempla expresamente y se divulga en el presente documento que los dispositivos de comunicaciones divulgados en el presente documento pueden estar adaptados para su uso en redes con conmutación de paquetes (por ejemplo, redes alámbricas y/o inalámbricas dispuestas para transportar transmisiones de audio de acuerdo con protocolos tales como VoIP) y/o con conmutación de circuitos. También se contempla expresamente y se divulga en el presente documento que los dispositivos de comunicaciones divulgados en el presente documento pueden estar adaptados para su uso en sistemas de codificación de banda estrecha (por ejemplo, sistemas que codifican un intervalo de frecuencias de audio de aproximadamente cuatro o cinco kilohercios) y/o para su uso en sistemas de codificación de banda ancha (por ejemplo, sistemas que codifican frecuencias de audio superiores a cinco kilohercios), incluyendo sistemas de codificación de banda ancha de banda completa y sistemas de codificación de banda ancha de banda dividida.
[0081] La presentación de las configuraciones descritas se proporciona para permitir que cualquier experto en la técnica realice o use los procedimientos y otras estructuras divulgados en el presente documento. Los diagramas de flujo, los diagramas de bloques y otras estructuras mostradas y descritas en el presente documento son solo ejemplos, y otras variantes de estas estructuras también están dentro del alcance de la divulgación. Son posibles diversas modificaciones de estas configuraciones, y los principios genéricos presentados en el presente documento se pueden aplicar también a otras configuraciones. Por tanto, no se pretende limitar la presente divulgación a las configuraciones mostradas anteriormente, sino que se le debe otorgar el alcance más amplio consecuente con los principios y características novedosas divulgados de cualquier manera en el presente documento, incluyendo en las reivindicaciones adjuntas tal como se presentan, que forman una parte de la divulgación original.
[0082] Los expertos en la técnica entenderán que la información y las señales se pueden representar usando cualquiera de una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los mandatos, la información, las señales, los bits y los símbolos que se pueden haber mencionado a lo largo de la descripción anterior se pueden representar mediante tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos, o cualquier combinación de los mismos.
[0083] Unos requisitos de diseño importantes para la implementación de una configuración como se divulga en el presente documento pueden incluir reducir al mínimo el retardo de procesamiento y/o la complejidad de cálculo (medidos típicamente en millones de instrucciones por segundo o MIPS), especialmente para aplicaciones que requieren muchos cálculos, tales como la reproducción de audio comprimido o de información audiovisual (por ejemplo, un archivo o flujo codificado de acuerdo con un formato de compresión, tal como uno de los ejemplos identificados en el presente documento) o aplicaciones para comunicaciones de banda ancha (por ejemplo, comunicaciones de voz a frecuencias de muestreo superiores a ocho kilohercios, tales como 12, 16, 44,1, 48 o 192 kHz).
[0084] Un aparato como se divulga en el presente documento (por ejemplo, los aparatos A100 y MF100) puede estar implementado en cualquier combinación de hardware con software, y/o con firmware, que se considere adecuada para la aplicación deseada. Por ejemplo, los elementos de dicho aparato pueden estar fabricados como dispositivos electrónicos y/u ópticos que residen, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o compuertas lógicas, y cualquiera de estos elementos puede estar implementado como una o más de dichas matrices. Cualquiera de dos o más, o incluso la totalidad, de estos elementos puede estar implementado dentro de la misma matriz o matrices. Dicha una o más matrices pueden estar implementadas dentro de uno o más chips (por ejemplo, dentro de un conjunto de chips que incluye dos o más chips).
[0085] Uno o más elementos de las diversas implementaciones del aparato divulgado en el presente documento (por ejemplo, los aparatos A100 y MF100) pueden estar implementados total o parcialmente como uno o más conjuntos de instrucciones dispuestos para ejecutarse en una o más matrices fijas o programables de elementos lógicos, tales como microprocesadores, procesadores incluidos, núcleos de IP, procesadores de señales digitales, FPGA (matrices de compuertas programables in situ), ASSP (productos estándar específicos de la aplicación) y ASIC (circuitos integrados específicos de la aplicación). Cualquiera de los diversos elementos de una implementación de un aparato como se divulga en el presente documento también puede estar incorporada como uno o más ordenadores (por ejemplo, máquinas que incluyen una o más matrices programadas para ejecutar uno o más conjuntos o secuencias de instrucciones, también denominadas "procesadores"), y dos o más cualesquiera, o incluso la totalidad, de estos elementos pueden estar implementados dentro de dicho mismo ordenador u ordenadores.
[0086] Un procesador u otros medios para procesar como se divulga en el presente documento pueden estar fabricados como uno o más dispositivos electrónicos y/u ópticos que residen, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o compuertas lógicas, y cualquiera de estos elementos puede estar implementado como una o más de dichas matrices. Dicha una o más matrices pueden estar implementadas dentro de uno o más chips (por ejemplo, dentro de un conjunto de chips que incluye dos o más chips). Los ejemplos de dichas matrices incluyen matrices fijas o programables de elementos lógicos, tales como microprocesadores, procesadores incluidos, núcleos de IP, DSP, FPGA, ASSP y ASIC. Un procesador u otros medios para procesar, como se divulga en el presente documento, también se pueden incorporar como uno o más ordenadores (por ejemplo, máquinas que incluyen una o más matrices programadas para ejecutar uno o más conjuntos o secuencias de instrucciones) u otros procesadores. Es posible que un procesador como se describe en el presente documento se use para realizar tareas o ejecutar otros conjuntos de instrucciones que no están directamente relacionados con un procedimiento de una implementación del procedimiento M100 o MF200, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que el procesador está incluido (por ejemplo, un dispositivo de detección de audio). También es posible que un procesador del dispositivo de detección de audio realice parte de un procedimiento como se divulga en el presente documento y que se realice otra parte del procedimiento bajo el control de uno o más de otros procesadores.
[0087] Los expertos en la técnica apreciarán que los diversos módulos, bloques lógicos, circuitos y pruebas ilustrativos y otras operaciones descritas en relación con las configuraciones divulgadas en el presente documento pueden estar implementados como hardware electrónico, software informático o combinaciones de ambos. Dichos módulos, bloques lógicos, circuitos y operaciones se pueden implementar o realizar con un procesador de propósito general, un procesador de señales digitales (DSP), un ASIC o un ASSP, una FPGA u otro dispositivo de lógica programable, lógica de compuertas o de transistores discretos, componentes de hardware discretos o cualquier combinación de los mismos diseñada para generar la configuración como se divulga en el presente documento. Por ejemplo, dicha configuración puede estar implementada, al menos parcialmente, como un circuito cableado, como una configuración de circuito fabricada como un circuito integrado específico de la aplicación, o como un programa de firmware cargado en una memoria no volátil o un programa de software cargado desde, o en, un medio de almacenamiento de datos como código legible por máquina, siendo dicho código unas instrucciones ejecutables por una matriz de elementos lógicos tal como un procesador de propósito general u otra unidad de procesamiento de señales digitales. Un procesador de propósito general puede ser un microprocesador, pero, de forma alternativa el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede estar implementado como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo. Un módulo de software puede residir en un medio de almacenamiento no transitorio tal como RAM (memoria de acceso aleatorio), ROM (memoria de solo lectura), RAM no volátil (NVRAM) tal como memoria RAM flash, ROM programable y borrable (EPROM), ROM eléctricamente programable y borrable (EEPROM), unos registros, un disco duro, un disco extraíble o un CD-ROM; o en cualquier otra forma de medio de almacenamiento conocido en la técnica. Un medio de almacenamiento ilustrativo está acoplado al procesador de modo que el procesador puede leer información de, y escribir información en, el medio de almacenamiento. De forma alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en un terminal de usuario. Como alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un terminal de usuario.
[0088] Cabe señalar que los diversos procedimientos divulgados en el presente documento (por ejemplo, implementaciones de los procedimientos M100 y MF200) pueden ser realizados por una matriz de elementos lógicos tales como un procesador, y que los diversos elementos de un aparato como se describe en el presente documento se pueden implementar como módulos diseñados para ejecutarse en dicha matriz. Como se usa en el presente documento, el término "módulo" o "submódulo" se puede referir a cualquier procedimiento, aparato, dispositivo, unidad o medio de almacenamiento de datos legible por ordenador que incluye instrucciones de ordenador (por ejemplo, expresiones lógicas) en forma de software, hardware o firmware. Se debe entender que múltiples módulos o sistemas se pueden combinar en un módulo o sistema y que un módulo o sistema se puede separar en múltiples módulos o sistemas para realizar las mismas funciones. Cuando están implementados en software o en otras instrucciones ejecutables por ordenador, los elementos de un proceso son esencialmente los segmentos de código para realizar las tareas relacionadas, tales como rutinas, programas, objetos, componentes, estructuras de datos y similares. Se deberá entender que el término "software" incluye código fuente, código de lenguaje ensamblador, código de máquina, código binario, firmware, macrocódigo, microcódigo, uno o más cualesquiera de conjuntos o secuencias de instrucciones ejecutables por una matriz de elementos lógicos, y cualquier combinación de dichos ejemplos. El programa o los segmentos de código se pueden almacenar en un medio legible por procesador o transmitir mediante una señal de datos de ordenador incorporada en una onda portadora a través de un medio de transmisión o enlace de comunicación.
[0089] Las implementaciones de los procedimientos, sistemas y técnicas divulgados en el presente documento también pueden estar incorporadas de forma tangible (por ejemplo, en características tangibles y legibles por ordenador de uno o más medios de almacenamiento legibles por ordenador enumerados en el presente documento) como uno o más conjuntos de instrucciones ejecutables por una máquina que incluye una matriz de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estados finitos). El término "medio legible por ordenador" puede incluir cualquier medio que puede almacenar o transferir información, incluyendo medios de almacenamiento volátil, no volátil, extraíbles y no extraíbles. Los ejemplos de medio legible por ordenador incluyen un circuito electrónico, un dispositivo de memoria de semiconductores, una ROM, una memoria flash, una ROM borrable (EROM), un disquete u otro almacenamiento magnético, un CD-ROM/DVD u otro almacenamiento óptico, un disco duro o cualquier otro medio que se puede usar para almacenar la información deseada, un medio de fibra óptica, un enlace de radiofrecuencia (RF) o cualquier otro medio que se puede usar para transportar la información deseada y al que se pueda acceder. La señal de datos de ordenador puede incluir cualquier señal que se puede propagar por un medio de transmisión tal como unos canales de red electrónica, unas fibras ópticas, aire, unos medios electromagnéticos, unos enlaces de RF, etc. Los segmentos de código se pueden descargar por medio de redes informáticas tales como Internet o una intranet. En cualquier caso, no se debe interpretar que el alcance de la presente divulgación está limitado por dichos modos de realización.
[0090] Cada una de las tareas de los procedimientos descritos en el presente documento se puede realizar directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de ambos. En una aplicación típica de una implementación de un procedimiento como se divulga en el presente documento, una matriz de elementos lógicos (por ejemplo, compuertas lógicas) está configurada para realizar una, más de una o incluso la totalidad de las diversas tareas del procedimiento. Una o más (posiblemente la totalidad) de las tareas también pueden estar implementadas como código (por ejemplo, uno o más conjuntos de instrucciones), incorporadas en un producto de programa informático (por ejemplo, uno o más medios de almacenamiento de datos, tales como discos, memoria flash u otras tarjetas de memoria no volátil, chips de memoria de semiconductores, etc.), que es legible y/o ejecutable por una máquina (por ejemplo, un ordenador) que incluye una matriz de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estados finitos). Las tareas de una implementación de un procedimiento como se divulga en el presente documento también pueden ser realizadas por más de una de dicha matriz o máquina. En estas u otras implementaciones, las tareas se pueden realizar dentro de un dispositivo para comunicaciones inalámbricas, tal como un teléfono móvil u otro dispositivo que tiene dicha capacidad de comunicaciones. Dicho dispositivo puede estar configurado para comunicarse con redes con conmutación de circuitos y/o con conmutación de paquetes (por ejemplo, usando uno o más protocolos tales como VoIP). Por ejemplo, dicho dispositivo puede incluir circuitos de RF configurados para recibir y/o transmitir tramas codificadas.
[0091] Se divulga expresamente que los diversos procedimientos divulgados en el presente documento se pueden realizar mediante un dispositivo de comunicaciones portátil, tal como un teléfono, un auricular o un asistente digital portátil (PDA), y que los diversos aparatos descritos en el presente documento pueden estar incluidos dentro de dicho dispositivo. Una aplicación de tiempo real (por ejemplo, en línea) típica es una conversación telefónica realizada usando uno de dichos dispositivos móviles.
[0092] En uno o más modos de realización ejemplares, las operaciones descritas en el presente documento pueden estar implementadas en hardware, software, firmware o cualquier combinación de los mismos. Si están implementadas en software, dichas operaciones se pueden almacenar en, o transmitir por, un medio legible por ordenador como una o más instrucciones o código. El término "medios legibles por ordenador" incluye tanto medios de almacenamiento legibles por ordenador como medios de comunicación (por ejemplo, de transmisión). A modo de ejemplo, y no de limitación, los medios de almacenamiento legibles por ordenador pueden comprender una matriz de elementos de almacenamiento, tales como memoria de semiconductores (que puede incluir, sin limitación, RAM, ROM y EEPROM dinámicas o estáticas y/o RAM flash) o memoria ferroeléctrica, magnetorresistiva, ovónica, polimérica o de cambio de fase; CD-ROM u otro almacenamiento en disco óptico; y/o almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético. Dichos medios de almacenamiento pueden almacenar información en forma de instrucciones o estructuras de datos a las que se puede acceder mediante un ordenador. Los medios de comunicación pueden comprender cualquier medio que se puede usar para transportar un código de programa deseado en forma de instrucciones o de estructuras de datos y al que se puede acceder mediante un ordenador, incluyendo cualquier medio que facilita la transferencia de un programa informático de un lugar a otro. Asimismo, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si el software se transmite desde un sitio web, un servidor u otro origen remoto, usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o una tecnología inalámbrica tal como infrarrojos, radio y/o microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o la tecnología inalámbrica tal como infrarrojos, radio y/o microondas, están incluidos en la definición de medio. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray™ (Blu-Ray Disc Association, Universal City, CA), donde los discos flexibles reproducen normalmente datos magnéticamente, mientras que los demás discos reproducen datos ópticamente con láseres. Las combinaciones de los anteriores también deberán estar incluidas dentro del alcance de los medios legibles por ordenador.
[0093] Un aparato de procesamiento de señales acústicas como se describe en el presente documento puede estar incorporado en un dispositivo electrónico que acepta una entrada de voz para controlar determinadas operaciones, o que de otro modo se puede beneficiar de la separación de ruidos deseados con respecto a ruidos de fondo, tales como los dispositivos de comunicaciones. Muchas aplicaciones se pueden beneficiar de la mejora o de la separación del sonido claro deseado de los sonidos de fondo que se originan en múltiples direcciones. Dichas aplicaciones pueden incluir interfaces hombre-máquina en dispositivos electrónicos o informáticos que incorporan capacidades tales como el reconocimiento y la detección de voz, la mejora y la separación de voz, el control activado por voz y similares. Puede ser deseable implementar dicho aparato de procesamiento de señales acústicas para que sea adecuado en dispositivos que solo proporcionan capacidades de procesamiento limitadas.
[0094] Los elementos de las diversas implementaciones de los módulos, elementos y dispositivos descritos en el presente documento pueden estar fabricados como dispositivos electrónicos y/u ópticos que residen, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o compuertas. Uno o más elementos de las diversas implementaciones del aparato descrito en el presente documento pueden estar implementados también, total o parcialmente, como uno o más conjuntos de instrucciones dispuestas para ejecutarse en una o más matrices fijas o programables de elementos lógicos tales como microprocesadores, procesadores incluidos, núcleos de IP, procesadores de señales digitales, FPGA, ASSP y ASIC.
[0095] Es posible que uno o más elementos de una implementación de un aparato como se describe en el presente documento se usen para realizar tareas o ejecutar otros conjuntos de instrucciones que no están directamente relacionados con una operación del aparato, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que está incluido el aparato. También es posible que uno o más elementos de una implementación de dicho aparato tengan una estructura en común (por ejemplo, un procesador usado para ejecutar partes de código correspondientes a diferentes elementos en diferentes momentos, un conjunto de instrucciones ejecutadas para realizar tareas correspondientes a diferentes elementos en diferentes momentos o una disposición de dispositivos electrónicos y/u ópticos que realizan operaciones para diferentes elementos en diferentes momentos).

Claims (13)

REIVINDICACIONES
1. Un procedimiento (M100) de procesamiento de una señal de audio, comprendiendo dicho procedimiento (M100):
en base a información de la señal de audio, seleccionar (T100) una de una pluralidad de entradas de un libro de códigos;
determinar (T200) ubicaciones, en un dominio de frecuencia, de elementos de valor cero de una primera señal que está basada en la entrada de libro de códigos seleccionada;
calcular (T300) una energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas;
calcular (T400) un valor de una medida de una distribución de la energía de la señal de audio entre las ubicaciones de dominio de frecuencia determinadas, en el que dicho valor calculado está basado en una relación entre (A) una energía total de un subconjunto adecuado de los elementos de la señal de audio en dichas ubicaciones de dominio de frecuencia determinadas y (B) una energía total de los elementos de la señal de audio en dichas ubicaciones de dominio de frecuencia determinadas; y
en base a dicha energía calculada y dicho valor calculado, calcular (T500) un factor de ganancia de inyección de ruido.
2. El procedimiento de acuerdo con la reivindicación 1, en el que dicha entrada de libro de códigos seleccionada está basada en un patrón de impulsos de unidad.
3. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 y 2, en el que dicho cálculo de un valor de una medida de una distribución de la energía de la señal de audio incluye:
calcular una energía de un elemento de la señal de audio en cada una de las ubicaciones de dominio de frecuencia determinadas; y
ordenar las energías calculadas de los elementos.
4. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 -3, en el que dicho factor de ganancia de inyección de ruido está basado en una relación entre (A) dicha energía calculada de la señal de audio en las ubicaciones de dominio de frecuencia determinadas y (B) una energía de la señal de audio en un intervalo de frecuencias que incluye las ubicaciones de dominio de frecuencia determinadas.
5. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 -4, en el que dicho cálculo (T500) del factor de ganancia de inyección de ruido incluye:
detectar que un valor inicial del factor de ganancia de inyección de ruido no es mayor que un valor umbral; y
recortar el valor inicial del factor de ganancia de inyección de ruido como respuesta a dicha detección.
6. El procedimiento de acuerdo con la reivindicación 5, en el que dicho factor de ganancia de inyección de ruido está basado en un resultado de aplicar el valor calculado de la medida de distribución de energía al valor recortado.
7. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 -6, en el que dicha señal de audio es una pluralidad de coeficientes de transformada discreta de coseno modificada o en el que dicha señal de audio está basada en un residuo de un análisis de codificación de predicción lineal de una segunda señal de audio.
8. El procedimiento de acuerdo con una cualquiera de las reivindicaciones precedentes:
en el que la señal de audio está basada en un residuo de un análisis de codificación de predicción lineal de una segunda señal de audio;
en el que dicho factor de ganancia de inyección de ruido también está basado en una ganancia de codificación de predicción lineal, y
en el que dicha ganancia de codificación de predicción lineal está basada en un conjunto de coeficientes generado mediante dicho análisis de codificación de predicción lineal de la segunda señal de audio.
9. Un aparato (MF100) para procesar una señal de audio, comprendiendo dicho aparato (MF100): medios (FA100) para seleccionar una de una pluralidad de entradas de un libro de códigos, en base a información de la señal de audio;
medios (FA200) para determinar ubicaciones, en un dominio de frecuencia, de elementos de valor cero de una primera señal que está basada en la entrada de libro de códigos seleccionada;
medios (FA300) para calcular una energía de la señal de audio en las ubicaciones de dominio de frecuencia determinadas;
medios (FA400) para calcular un valor de una medida de una distribución de la energía de la señal de audio entre las ubicaciones de dominio de frecuencia determinadas, en el que dicho valor calculado está basado en una relación entre (A) una energía total de un subconjunto apropiado de los elementos de la señal de audio en dichas ubicaciones de dominio de frecuencia determinadas y (B) una energía total de los elementos de la señal de audio en dichas ubicaciones de dominio de frecuencia determinadas; y medios (FA500) para calcular un factor de ganancia de inyección de ruido en base a dicha energía calculada y dicho valor calculado.
10. El aparato de acuerdo con la reivindicación 9, en el que dichos medios (FA400) para calcular un valor de una medida de una distribución de la energía de la señal de audio incluyen:
medios para calcular una energía de un elemento de la señal de audio en cada una de las ubicaciones de dominio de frecuencia determinadas; y
medios para ordenar las energías calculadas de los elementos.
11. El aparato de acuerdo con una cualquiera de las reivindicaciones 9 a 10, en el que dicho factor de ganancia de inyección de ruido está basado en una relación entre (A) dicha energía calculada de la señal de audio en las ubicaciones de dominio de frecuencia determinadas y (B) una energía de la señal de audio en un intervalo de frecuencias que incluye las ubicaciones de dominio de frecuencia determinadas.
12. El aparato de acuerdo con una cualquiera de las reivindicaciones 9 a 11, en el que dichos medios (FA400) para calcular el factor de ganancia de inyección de ruido incluyen:
medios para detectar que un valor inicial del factor de ganancia de inyección de ruido no es mayor que un valor umbral; y
medios para recortar el valor inicial del factor de ganancia de inyección de ruido como respuesta a dicha detección.
13. Un medio de almacenamiento legible por ordenador que tiene características tangibles que hacen que una máquina que lee las características realice un procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 8.
ES11750025T 2010-08-17 2011-08-17 Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido Active ES2808302T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US37456510P 2010-08-17 2010-08-17
US38423710P 2010-09-17 2010-09-17
US201161470438P 2011-03-31 2011-03-31
US13/211,027 US9208792B2 (en) 2010-08-17 2011-08-16 Systems, methods, apparatus, and computer-readable media for noise injection
PCT/US2011/048056 WO2012024379A2 (en) 2010-08-17 2011-08-17 Systems, methods, apparatus, and computer-readable media for noise injection

Publications (1)

Publication Number Publication Date
ES2808302T3 true ES2808302T3 (es) 2021-02-26

Family

ID=45594772

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11750025T Active ES2808302T3 (es) 2010-08-17 2011-08-17 Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido

Country Status (8)

Country Link
US (1) US9208792B2 (es)
EP (1) EP2606487B1 (es)
JP (1) JP5680755B2 (es)
KR (1) KR101445512B1 (es)
CN (1) CN103069482B (es)
ES (1) ES2808302T3 (es)
HU (1) HUE049109T2 (es)
WO (1) WO2012024379A2 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL2304719T3 (pl) 2008-07-11 2017-12-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio, sposoby dostarczania strumienia audio oraz program komputerowy
EP3693963B1 (en) * 2009-10-15 2021-07-21 VoiceAge Corporation Simultaneous time-domain and frequency-domain noise shaping for tdac transforms
US8831933B2 (en) 2010-07-30 2014-09-09 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for multi-stage shape vector quantization
EP2681734B1 (en) * 2011-03-04 2017-06-21 Telefonaktiebolaget LM Ericsson (publ) Post-quantization gain correction in audio coding
PL397008A1 (pl) * 2011-11-17 2013-05-27 Politechnika Poznanska Sposób kodowania obrazu
WO2013147666A1 (en) * 2012-03-29 2013-10-03 Telefonaktiebolaget L M Ericsson (Publ) Transform encoding/decoding of harmonic audio signals
CN104620315B (zh) 2012-07-12 2018-04-13 诺基亚技术有限公司 一种矢量量化的方法及装置
PT2951818T (pt) * 2013-01-29 2019-02-25 Fraunhofer Ges Forschung Conceito de preenchimento de ruído
ES2732560T3 (es) * 2013-01-29 2019-11-25 Fraunhofer Ges Forschung Llenado de ruido sin información secundaria para codificadores tipo celp
WO2014168777A1 (en) * 2013-04-10 2014-10-16 Dolby Laboratories Licensing Corporation Speech dereverberation methods, devices and systems
US9502044B2 (en) 2013-05-29 2016-11-22 Qualcomm Incorporated Compression of decomposed representations of a sound field
US20150149157A1 (en) * 2013-11-22 2015-05-28 Qualcomm Incorporated Frequency domain gain shape estimation
US9542955B2 (en) 2014-03-31 2017-01-10 Qualcomm Incorporated High-band signal coding using multiple sub-bands
US10770087B2 (en) * 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
CN107424621B (zh) * 2014-06-24 2021-10-26 华为技术有限公司 音频编码方法和装置
US10847170B2 (en) * 2015-06-18 2020-11-24 Qualcomm Incorporated Device and method for generating a high-band signal from non-linearly processed sub-ranges
CN105578115B (zh) * 2015-12-22 2016-10-26 深圳市鹰硕音频科技有限公司 一种具有语音评估功能的网络教学方法及系统
CN108701462B (zh) * 2016-03-21 2020-09-25 华为技术有限公司 加权矩阵系数的自适应量化
US10991379B2 (en) * 2018-06-22 2021-04-27 Babblelabs Llc Data driven audio enhancement
CN113691224A (zh) * 2021-08-12 2021-11-23 上海艾为电子技术股份有限公司 数字音频功放电路、芯片及减小空闲音的方法

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3978287A (en) 1974-12-11 1976-08-31 Nasa Real time analysis of voiced sounds
US4516258A (en) 1982-06-30 1985-05-07 At&T Bell Laboratories Bit allocation generator for adaptive transform coder
JPS6333935A (ja) 1986-07-29 1988-02-13 Sharp Corp ゲイン/シエイプ・ベクトル量子化器
US4899384A (en) 1986-08-25 1990-02-06 Ibm Corporation Table controlled dynamic bit allocation in a variable rate sub-band speech coder
JPH01205200A (ja) 1988-02-12 1989-08-17 Nippon Telegr & Teleph Corp <Ntt> 音声符号化方式
US4964166A (en) 1988-05-26 1990-10-16 Pacific Communication Science, Inc. Adaptive transform coder having minimal bit allocation processing
US5388181A (en) 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
US5630011A (en) 1990-12-05 1997-05-13 Digital Voice Systems, Inc. Quantization of harmonic amplitudes representing speech
US5222146A (en) 1991-10-23 1993-06-22 International Business Machines Corporation Speech recognition apparatus having a speech coder outputting acoustic prototype ranks
EP0551705A3 (en) 1992-01-15 1993-08-18 Ericsson Ge Mobile Communications Inc. Method for subbandcoding using synthetic filler signals for non transmitted subbands
CA2088082C (en) 1992-02-07 1999-01-19 John Hartung Dynamic bit allocation for three-dimensional subband video coding
IT1257065B (it) 1992-07-31 1996-01-05 Sip Codificatore a basso ritardo per segnali audio, utilizzante tecniche di analisi per sintesi.
KR100188912B1 (ko) 1992-09-21 1999-06-01 윤종용 서브밴드코딩의 비트재할당 방법
US5664057A (en) * 1993-07-07 1997-09-02 Picturetel Corporation Fixed bit rate speech encoder/decoder
JP3228389B2 (ja) 1994-04-01 2001-11-12 株式会社東芝 利得形状ベクトル量子化装置
TW271524B (es) 1994-08-05 1996-03-01 Qualcomm Inc
US5751905A (en) 1995-03-15 1998-05-12 International Business Machines Corporation Statistical acoustic processing method and apparatus for speech recognition using a toned phoneme system
SE506379C3 (sv) 1995-03-22 1998-01-19 Ericsson Telefon Ab L M Lpc-talkodare med kombinerad excitation
US5692102A (en) * 1995-10-26 1997-11-25 Motorola, Inc. Method device and system for an efficient noise injection process for low bitrate audio compression
US5692949A (en) * 1995-11-17 1997-12-02 Minnesota Mining And Manufacturing Company Back-up pad for use with abrasive articles
US5956674A (en) 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5781888A (en) 1996-01-16 1998-07-14 Lucent Technologies Inc. Perceptual noise shaping in the time domain via LPC prediction in the frequency domain
JP3240908B2 (ja) 1996-03-05 2001-12-25 日本電信電話株式会社 声質変換方法
JPH09288498A (ja) 1996-04-19 1997-11-04 Matsushita Electric Ind Co Ltd 音声符号化装置
JP3707153B2 (ja) 1996-09-24 2005-10-19 ソニー株式会社 ベクトル量子化方法、音声符号化方法及び装置
KR20030096444A (ko) 1996-11-07 2003-12-31 마쯔시다덴기산교 가부시키가이샤 음원 벡터 생성 장치 및 방법
FR2761512A1 (fr) * 1997-03-25 1998-10-02 Philips Electronics Nv Dispositif de generation de bruit de confort et codeur de parole incluant un tel dispositif
US6064954A (en) 1997-04-03 2000-05-16 International Business Machines Corp. Digital audio signal coding
CN1231050A (zh) 1997-07-11 1999-10-06 皇家菲利浦电子有限公司 具有改进谐波语音编码器的发射机
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
US6233550B1 (en) 1997-08-29 2001-05-15 The Regents Of The University Of California Method and apparatus for hybrid coding of speech at 4kbps
US5999897A (en) 1997-11-14 1999-12-07 Comsat Corporation Method and apparatus for pitch estimation using perception based analysis by synthesis
JPH11224099A (ja) 1998-02-06 1999-08-17 Sony Corp 位相量子化装置及び方法
JP3802219B2 (ja) 1998-02-18 2006-07-26 富士通株式会社 音声符号化装置
US6301556B1 (en) 1998-03-04 2001-10-09 Telefonaktiebolaget L M. Ericsson (Publ) Reducing sparseness in coded speech signals
US6115689A (en) 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
JP3515903B2 (ja) 1998-06-16 2004-04-05 松下電器産業株式会社 オーディオ符号化のための動的ビット割り当て方法及び装置
US6094629A (en) 1998-07-13 2000-07-25 Lockheed Martin Corp. Speech coding system and method including spectral quantizer
US7272556B1 (en) 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
US6766288B1 (en) 1998-10-29 2004-07-20 Paul Reed Smith Guitars Fast find fundamental method
US6363338B1 (en) 1999-04-12 2002-03-26 Dolby Laboratories Licensing Corporation Quantization in perceptual audio coders with compensation for synthesis filter noise spreading
US6246345B1 (en) 1999-04-16 2001-06-12 Dolby Laboratories Licensing Corporation Using gain-adaptive quantization and non-uniform symbol lengths for improved audio coding
EP1175670B2 (en) 1999-04-16 2007-09-19 Dolby Laboratories Licensing Corporation Using gain-adaptive quantization and non-uniform symbol lengths for audio coding
JP4242516B2 (ja) 1999-07-26 2009-03-25 パナソニック株式会社 サブバンド符号化方式
US6236960B1 (en) 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding
US6782360B1 (en) 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US6952671B1 (en) 1999-10-04 2005-10-04 Xvd Corporation Vector quantization with a non-structured codebook for audio compression
JP2001242896A (ja) 2000-02-29 2001-09-07 Matsushita Electric Ind Co Ltd 音声符号化/復号装置およびその方法
JP3404350B2 (ja) 2000-03-06 2003-05-06 パナソニック モバイルコミュニケーションズ株式会社 音声符号化パラメータ取得方法、音声復号方法及び装置
CA2359260C (en) 2000-10-20 2004-07-20 Samsung Electronics Co., Ltd. Coding apparatus and method for orientation interpolator node
GB2375028B (en) 2001-04-24 2003-05-28 Motorola Inc Processing speech signals
JP3636094B2 (ja) 2001-05-07 2005-04-06 ソニー株式会社 信号符号化装置及び方法、並びに信号復号装置及び方法
DE60209888T2 (de) 2001-05-08 2006-11-23 Koninklijke Philips Electronics N.V. Kodieren eines audiosignals
JP3601473B2 (ja) 2001-05-11 2004-12-15 ヤマハ株式会社 ディジタルオーディオ圧縮回路および伸長回路
KR100347188B1 (en) 2001-08-08 2002-08-03 Amusetec Method and apparatus for judging pitch according to frequency analysis
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7310598B1 (en) 2002-04-12 2007-12-18 University Of Central Florida Research Foundation, Inc. Energy based split vector quantizer employing signal representation in multiple transform domains
DE10217297A1 (de) 2002-04-18 2003-11-06 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Codieren eines zeitdiskreten Audiosignals und Vorrichtung und Verfahren zum Decodieren von codierten Audiodaten
JP4296752B2 (ja) 2002-05-07 2009-07-15 ソニー株式会社 符号化方法及び装置、復号方法及び装置、並びにプログラム
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
TWI288915B (en) * 2002-06-17 2007-10-21 Dolby Lab Licensing Corp Improved audio coding system using characteristics of a decoded signal to adapt synthesized spectral components
KR100728428B1 (ko) 2002-09-19 2007-06-13 마츠시타 덴끼 산교 가부시키가이샤 오디오 디코딩 장치 및 오디오 디코딩 방법
JP4657570B2 (ja) 2002-11-13 2011-03-23 ソニー株式会社 音楽情報符号化装置及び方法、音楽情報復号装置及び方法、並びにプログラム及び記録媒体
FR2849727B1 (fr) 2003-01-08 2005-03-18 France Telecom Procede de codage et de decodage audio a debit variable
JP4191503B2 (ja) 2003-02-13 2008-12-03 日本電信電話株式会社 音声楽音信号符号化方法、復号化方法、符号化装置、復号化装置、符号化プログラム、および復号化プログラム
WO2005020210A2 (en) 2003-08-26 2005-03-03 Sarnoff Corporation Method and apparatus for adaptive variable bit rate audio encoding
US7613607B2 (en) 2003-12-18 2009-11-03 Nokia Corporation Audio enhancement in coded domain
CA2457988A1 (en) 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
CN1998045A (zh) 2004-07-13 2007-07-11 松下电器产业株式会社 音调频率估计装置以及音调频率估计方法
US20060015329A1 (en) 2004-07-19 2006-01-19 Chu Wai C Apparatus and method for audio coding
JP4977471B2 (ja) 2004-11-05 2012-07-18 パナソニック株式会社 符号化装置及び符号化方法
JP4599558B2 (ja) 2005-04-22 2010-12-15 国立大学法人九州工業大学 ピッチ周期等化装置及びピッチ周期等化方法、並びに音声符号化装置、音声復号装置及び音声符号化方法
JP4950210B2 (ja) 2005-11-04 2012-06-13 ノキア コーポレイション オーディオ圧縮
CN101030378A (zh) 2006-03-03 2007-09-05 北京工业大学 一种建立增益码书的方法
KR100770839B1 (ko) 2006-04-04 2007-10-26 삼성전자주식회사 음성 신호의 하모닉 정보 및 스펙트럼 포락선 정보,유성음화 비율 추정 방법 및 장치
US8712766B2 (en) 2006-05-16 2014-04-29 Motorola Mobility Llc Method and system for coding an information signal using closed loop adaptive bit allocation
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
US8374857B2 (en) 2006-08-08 2013-02-12 Stmicroelectronics Asia Pacific Pte, Ltd. Estimating rate controlling parameters in perceptual audio encoders
US20080059201A1 (en) * 2006-09-03 2008-03-06 Chih-Hsiang Hsiao Method and Related Device for Improving the Processing of MP3 Decoding and Encoding
JP4396683B2 (ja) 2006-10-02 2010-01-13 カシオ計算機株式会社 音声符号化装置、音声符号化方法、及び、プログラム
WO2008045846A1 (en) * 2006-10-10 2008-04-17 Qualcomm Incorporated Method and apparatus for encoding and decoding audio signals
US20080097757A1 (en) 2006-10-24 2008-04-24 Nokia Corporation Audio coding
KR100862662B1 (ko) 2006-11-28 2008-10-10 삼성전자주식회사 프레임 오류 은닉 방법 및 장치, 이를 이용한 오디오 신호복호화 방법 및 장치
CN101548316B (zh) 2006-12-13 2012-05-23 松下电器产业株式会社 编码装置、解码装置以及其方法
EP2101322B1 (en) 2006-12-15 2018-02-21 III Holdings 12, LLC Encoding device, decoding device, and method thereof
FR2912249A1 (fr) 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
DE602007004943D1 (de) 2007-03-23 2010-04-08 Honda Res Inst Europe Gmbh Tonhöhenextraktion mit Hemmung der Harmonischen und Subharmonischen der Grundfrequenz
US9653088B2 (en) 2007-06-13 2017-05-16 Qualcomm Incorporated Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
US8005023B2 (en) * 2007-06-14 2011-08-23 Microsoft Corporation Client-side echo cancellation for multi-party audio conferencing
US7774205B2 (en) 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US7761290B2 (en) * 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US8111176B2 (en) 2007-06-21 2012-02-07 Koninklijke Philips Electronics N.V. Method for encoding vectors
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
DK3401907T3 (da) * 2007-08-27 2020-03-02 Ericsson Telefon Ab L M Fremgangsmåde og indretning til perceptuel spektral afkodning af et audiosignal omfattende udfyldning af spektrale huller
CN101842833B (zh) * 2007-09-11 2012-07-18 沃伊斯亚吉公司 语音和音频编码中快速代数码本搜索的方法和设备
US8527265B2 (en) 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8139777B2 (en) * 2007-10-31 2012-03-20 Qnx Software Systems Co. System for comfort noise injection
CN101465122A (zh) 2007-12-20 2009-06-24 株式会社东芝 语音的频谱波峰的检测以及语音识别方法和系统
US20090319261A1 (en) 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
EP2410522B1 (en) * 2008-07-11 2017-10-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio signal encoder, method for encoding an audio signal and computer program
PL2304719T3 (pl) 2008-07-11 2017-12-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio, sposoby dostarczania strumienia audio oraz program komputerowy
US8300616B2 (en) 2008-08-26 2012-10-30 Futurewei Technologies, Inc. System and method for wireless communications
WO2010053287A2 (en) * 2008-11-04 2010-05-14 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
CA3162807C (en) 2009-01-16 2024-04-23 Dolby International Ab Cross product enhanced harmonic transposition
US8493244B2 (en) 2009-02-13 2013-07-23 Panasonic Corporation Vector quantization device, vector inverse-quantization device, and methods of same
FR2947945A1 (fr) 2009-07-07 2011-01-14 France Telecom Allocation de bits dans un codage/decodage d'amelioration d'un codage/decodage hierarchique de signaux audionumeriques
US9117458B2 (en) * 2009-11-12 2015-08-25 Lg Electronics Inc. Apparatus for processing an audio signal and method thereof
AU2011226143B9 (en) 2010-03-10 2015-03-19 Dolby International Ab Audio signal decoder, audio signal encoder, method for decoding an audio signal, method for encoding an audio signal and computer program using a pitch-dependent adaptation of a coding context
WO2011141772A1 (en) 2010-05-12 2011-11-17 Nokia Corporation Method and apparatus for processing an audio signal based on an estimated loudness
US8831933B2 (en) 2010-07-30 2014-09-09 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for multi-stage shape vector quantization

Also Published As

Publication number Publication date
HUE049109T2 (hu) 2020-09-28
EP2606487A2 (en) 2013-06-26
EP2606487B1 (en) 2020-04-29
US9208792B2 (en) 2015-12-08
JP5680755B2 (ja) 2015-03-04
KR101445512B1 (ko) 2014-09-26
WO2012024379A3 (en) 2012-04-26
KR20130030332A (ko) 2013-03-26
CN103069482B (zh) 2015-12-16
CN103069482A (zh) 2013-04-24
JP2013539068A (ja) 2013-10-17
US20120046955A1 (en) 2012-02-23
WO2012024379A2 (en) 2012-02-23

Similar Documents

Publication Publication Date Title
ES2808302T3 (es) Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido
EP2599081B1 (en) Systems, methods, apparatus, and computer-readable media for dynamic bit allocation
CN102934163B (zh) 用于宽带语音编码的系统、方法、设备
ES2758501T3 (es) Sistemas y procedimientos para controlar una velocidad de codificación promedio
ES2653799T3 (es) Sistemas, procedimientos, aparatos y medios legibles por ordenador para la decodificación de señales armónicas
EP2599079A2 (en) Systems, methods, apparatus, and computer-readable media for dependent-mode coding of audio signals